[{"data":1,"prerenderedAt":33081},["ShallowReactive",2],{"navigation_docs":3,"-react-native-version2-stylesheet-and-theming":3728,"-react-native-version2-stylesheet-and-theming-surround":33076},[4,1707,1912,2366,2547,2673,2880,3002,3052,3109,3143,3269,3346,3360,3495,3512,3525,3671,3724],{"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,"page":59},"React Native","\u002Freact-native","15.react-native",[3365,3386],{"title":3366,"path":3367,"stem":3368,"children":3369,"page":59},"Version1","\u002Freact-native\u002Fversion1","15.react-native\u002Fversion1",[3370,3374,3378,3382],{"title":3371,"path":3372,"stem":3373},"Що таке React Native","\u002Freact-native\u002Fversion1\u002Fwhat-is-react-native","15.react-native\u002Fversion1\u002F01.what-is-react-native",{"title":3375,"path":3376,"stem":3377},"Як влаштований React Native «під капотом»","\u002Freact-native\u002Fversion1\u002Freact-native-architecture","15.react-native\u002Fversion1\u002F02.react-native-architecture",{"title":3379,"path":3380,"stem":3381},"Від React до React Native: ключові відмінності","\u002Freact-native\u002Fversion1\u002Freact-native-vs-react","15.react-native\u002Fversion1\u002F03.react-native-vs-react",{"title":3383,"path":3384,"stem":3385},"View та Text — фундаментальні будівельні блоки","\u002Freact-native\u002Fversion1\u002Fview-and-text","15.react-native\u002Fversion1\u002F04.view-and-text",{"title":3387,"path":3388,"stem":3389,"children":3390,"page":59},"Version2","\u002Freact-native\u002Fversion2","15.react-native\u002Fversion2",[3391,3395,3399,3403,3407,3411,3415,3419,3423,3427,3431,3435,3439,3443,3447,3451,3455,3459,3463,3467,3471,3475,3479,3483,3487,3491],{"title":3392,"path":3393,"stem":3394},"React Native — навіщо він потрібен","\u002Freact-native\u002Fversion2\u002Fwhy-react-native","15.react-native\u002Fversion2\u002F01.why-react-native",{"title":3396,"path":3397,"stem":3398},"Налаштування середовища розробки","\u002Freact-native\u002Fversion2\u002Fenvironment-setup","15.react-native\u002Fversion2\u002F02.environment-setup",{"title":3400,"path":3401,"stem":3402},"Expo і класичний React Native — два шляхи одного фреймворку","\u002Freact-native\u002Fversion2\u002Fexpo-vs-cli-landscape","15.react-native\u002Fversion2\u002F03.expo-vs-cli-landscape",{"title":3404,"path":3405,"stem":3406},"Середовище Expo — перший запуск","\u002Freact-native\u002Fversion2\u002Fexpo-setup-and-tooling","15.react-native\u002Fversion2\u002F04.expo-setup-and-tooling",{"title":3408,"path":3409,"stem":3410},"Структура проєкту та перші UI-примітиви","\u002Freact-native\u002Fversion2\u002Fproject-structure-and-conventions","15.react-native\u002Fversion2\u002F05.project-structure-and-conventions",{"title":3412,"path":3413,"stem":3414},"Базові компоненти React Native","\u002Freact-native\u002Fversion2\u002Fcore-components","15.react-native\u002Fversion2\u002F06.core-components",{"title":3416,"path":3417,"stem":3418},"Flexbox і layout у React Native","\u002Freact-native\u002Fversion2\u002Fflexbox-and-layout","15.react-native\u002Fversion2\u002F07.flexbox-and-layout",{"title":3420,"path":3421,"stem":3422},"StyleSheet і теми (light \u002F dark)","\u002Freact-native\u002Fversion2\u002Fstylesheet-and-theming","15.react-native\u002Fversion2\u002F08.stylesheet-and-theming",{"title":3424,"path":3425,"stem":3426},"Списки та віртуалізація","\u002Freact-native\u002Fversion2\u002Flists-and-virtualization","15.react-native\u002Fversion2\u002F09.lists-and-virtualization",{"title":3428,"path":3429,"stem":3430},"Форми, ввід і валідація","\u002Freact-native\u002Fversion2\u002Fforms-input-validation","15.react-native\u002Fversion2\u002F10.forms-input-validation",{"title":3432,"path":3433,"stem":3434},"Основи Expo Router","\u002Freact-native\u002Fversion2\u002Fexpo-router-basics","15.react-native\u002Fversion2\u002F11.expo-router-basics",{"title":3436,"path":3437,"stem":3438},"Вкладені навігатори та модалки","\u002Freact-native\u002Fversion2\u002Fnested-navigators-and-modals","15.react-native\u002Fversion2\u002F12.nested-navigators-and-modals",{"title":3440,"path":3441,"stem":3442},"Deep linking і параметри маршрутів","\u002Freact-native\u002Fversion2\u002Fdeep-linking-and-params","15.react-native\u002Fversion2\u002F13.deep-linking-and-params",{"title":3444,"path":3445,"stem":3446},"Робота з мережею та життєвий цикл застосунку","\u002Freact-native\u002Fversion2\u002Fnetworking-and-app-lifecycle","15.react-native\u002Fversion2\u002F14.networking-and-app-lifecycle",{"title":3448,"path":3449,"stem":3450},"Redux Toolkit на мобільних платформах","\u002Freact-native\u002Fversion2\u002Fredux-toolkit-on-mobile","15.react-native\u002Fversion2\u002F15.redux-toolkit-on-mobile",{"title":3452,"path":3453,"stem":3454},"RTK Query на мобільних платформах","\u002Freact-native\u002Fversion2\u002Frtk-query-mobile","15.react-native\u002Fversion2\u002F16.rtk-query-mobile",{"title":3456,"path":3457,"stem":3458},"Автентифікація та Безпечне Зберігання","\u002Freact-native\u002Fversion2\u002Fauth-secure-storage","15.react-native\u002Fversion2\u002F18.auth-secure-storage",{"title":3460,"path":3461,"stem":3462},"Локальне сховище — AsyncStorage, MMKV, SQLite","\u002Freact-native\u002Fversion2\u002Flocal-storage-mmkv-sqlite","15.react-native\u002Fversion2\u002F19.local-storage-mmkv-sqlite",{"title":3464,"path":3465,"stem":3466},"Офлайн-First і синхронізація","\u002Freact-native\u002Fversion2\u002Foffline-first-sync","15.react-native\u002Fversion2\u002F20.offline-first-sync",{"title":3468,"path":3469,"stem":3470},"Камера, медіа та файлова система","\u002Freact-native\u002Fversion2\u002Fcamera-media-filesystem","15.react-native\u002Fversion2\u002F21.camera-media-filesystem",{"title":3472,"path":3473,"stem":3474},"Карти та геолокація","\u002Freact-native\u002Fversion2\u002Fmaps-and-location","15.react-native\u002Fversion2\u002F22.maps-and-location",{"title":3476,"path":3477,"stem":3478},"Жести та дотики","\u002Freact-native\u002Fversion2\u002Fgestures-and-touch","15.react-native\u002Fversion2\u002F23.gestures-and-touch",{"title":3480,"path":3481,"stem":3482},"Анімації з Reanimated","\u002Freact-native\u002Fversion2\u002Freanimated-animations","15.react-native\u002Fversion2\u002F24.reanimated-animations",{"title":3484,"path":3485,"stem":3486},"Push і локальні сповіщення","\u002Freact-native\u002Fversion2\u002Fpush-and-local-notifications","15.react-native\u002Fversion2\u002F25.push-and-local-notifications",{"title":3488,"path":3489,"stem":3490},"Доступність та інтернаціоналізація","\u002Freact-native\u002Fversion2\u002Faccessibility-and-i18n","15.react-native\u002Fversion2\u002F26.accessibility-and-i18n",{"title":3492,"path":3493,"stem":3494},"EAS Build та профілі збірки","\u002Freact-native\u002Fversion2\u002Feas-build-and-profiles","15.react-native\u002Fversion2\u002F29.eas-build-and-profiles",{"title":3496,"path":3497,"stem":3498,"children":3499,"page":59},"Ai Python","\u002Fai-python","16.ai-python",[3500,3504,3508],{"title":3501,"path":3502,"stem":3503},"Вступ до штучного інтелекту та машинного навчання","\u002Fai-python\u002Fintro-to-ai","16.ai-python\u002F01.intro-to-ai",{"title":3505,"path":3506,"stem":3507},"Знайомство з Jupyter Notebook та JupyterLab","\u002Fai-python\u002Fjupyter-notebook","16.ai-python\u002F02.jupyter-notebook",{"title":3509,"path":3510,"stem":3511},"Робота з даними з використанням NumPy і pandas","\u002Fai-python\u002Fnumpy-pandas","16.ai-python\u002F03.numpy-pandas",{"title":3513,"icon":658,"path":3514,"stem":3515,"children":3516,"page":59},"Клієнт-серверна архітектура","\u002Fclient-server-architecture","17.client-server-architecture",[3517,3521],{"title":3518,"path":3519,"stem":3520},"Архітектура клієнт-серверних систем та основи Go","\u002Fclient-server-architecture\u002Fclient-server-architecture-and-go","17.client-server-architecture\u002F01.client-server-architecture-and-go",{"title":3522,"path":3523,"stem":3524},"Система типів та модель пам’яті мови Go","\u002Fclient-server-architecture\u002Ftype-system-and-memory-model","17.client-server-architecture\u002F02.type-system-and-memory-model",{"title":3526,"icon":1946,"path":3527,"stem":3528,"children":3529,"page":59},"Розробка WEB-застосувань","\u002Fweb-development","18.web-development",[3530,3575,3613,3642],{"title":3531,"icon":658,"path":3532,"stem":3533,"children":3534,"page":59},"Архітектура комп'ютерних мереж та мережеві протоколи","\u002Fweb-development\u002Fnetwork-architecture-and-protocols","18.web-development\u002F01.network-architecture-and-protocols",[3535,3539,3543,3547,3551,3555,3559,3563,3567,3571],{"title":3536,"path":3537,"stem":3538},"Еволюція веброзробки та модель клієнт-сервер","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fweb-evolution-client-server","18.web-development\u002F01.network-architecture-and-protocols\u002F01.web-evolution-client-server",{"title":3540,"path":3541,"stem":3542},"Еталонна модель OSI","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fosi-model","18.web-development\u002F01.network-architecture-and-protocols\u002F02.osi-model",{"title":3544,"path":3545,"stem":3546},"Стек протоколів TCP\u002FIP","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Ftcp-ip-stack","18.web-development\u002F01.network-architecture-and-protocols\u002F03.tcp-ip-stack",{"title":3548,"path":3549,"stem":3550},"IP-адресація, порти та сокети","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fip-addressing-ports-sockets","18.web-development\u002F01.network-architecture-and-protocols\u002F04.ip-addressing-ports-sockets",{"title":3552,"path":3553,"stem":3554},"Протоколи TCP та UDP","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Ftcp-udp-protocols","18.web-development\u002F01.network-architecture-and-protocols\u002F05.tcp-udp-protocols",{"title":3556,"path":3557,"stem":3558},"Система доменних імен DNS","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fdns-system","18.web-development\u002F01.network-architecture-and-protocols\u002F06.dns-system",{"title":3560,"path":3561,"stem":3562},"Протокол SMTP та поштові протоколи","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fsmtp-email-protocols","18.web-development\u002F01.network-architecture-and-protocols\u002F07.smtp-email-protocols",{"title":3564,"path":3565,"stem":3566},"Протокол WebSocket","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fwebsocket-protocol","18.web-development\u002F01.network-architecture-and-protocols\u002F08.websocket-protocol",{"title":3568,"path":3569,"stem":3570},"Протокол SSH","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fssh-protocol","18.web-development\u002F01.network-architecture-and-protocols\u002F09.ssh-protocol",{"title":3572,"path":3573,"stem":3574},"Огляд сучасних серверних технологій","\u002Fweb-development\u002Fnetwork-architecture-and-protocols\u002Fmodern-backend-technologies","18.web-development\u002F01.network-architecture-and-protocols\u002F10.modern-backend-technologies",{"title":3576,"icon":3577,"path":3578,"stem":3579,"children":3580,"page":59},"Протокол HTTP та захищена передача даних HTTPS","i-lucide-lock","\u002Fweb-development\u002Fhttp-and-https","18.web-development\u002F02.http-and-https",[3581,3585,3589,3593,3597,3601,3605,3609],{"title":3582,"path":3583,"stem":3584},"Вступ до протоколу HTTP та еволюція веб-технологій","\u002Fweb-development\u002Fhttp-and-https\u002Fintroduction-and-evolution","18.web-development\u002F02.http-and-https\u002F01.introduction-and-evolution",{"title":3586,"path":3587,"stem":3588},"Анатомія HTTP-запиту","\u002Fweb-development\u002Fhttp-and-https\u002Fhttp-request-structure","18.web-development\u002F02.http-and-https\u002F02.http-request-structure",{"title":3590,"path":3591,"stem":3592},"Анатомія HTTP-відповіді","\u002Fweb-development\u002Fhttp-and-https\u002Fhttp-response-structure","18.web-development\u002F02.http-and-https\u002F03.http-response-structure",{"title":3594,"path":3595,"stem":3596},"Методи HTTP та їхня семантика","\u002Fweb-development\u002Fhttp-and-https\u002Fhttp-methods","18.web-development\u002F02.http-and-https\u002F04.http-methods",{"title":3598,"path":3599,"stem":3600},"Коди статусу HTTP та їхнє призначення","\u002Fweb-development\u002Fhttp-and-https\u002Fhttp-status-codes","18.web-development\u002F02.http-and-https\u002F05.http-status-codes",{"title":3602,"path":3603,"stem":3604},"HTTP-заголовки та їхнє призначення","\u002Fweb-development\u002Fhttp-and-https\u002Fhttp-headers","18.web-development\u002F02.http-and-https\u002F06.http-headers",{"title":3606,"path":3607,"stem":3608},"CORS та механізми безпеки HTTP","\u002Fweb-development\u002Fhttp-and-https\u002Fcors-and-security","18.web-development\u002F02.http-and-https\u002F07.cors-and-security",{"title":3610,"path":3611,"stem":3612},"HTTPS та криптографічні основи TLS","\u002Fweb-development\u002Fhttp-and-https\u002Fhttps-and-tls","18.web-development\u002F02.http-and-https\u002F08.https-and-tls",{"title":3614,"icon":2326,"path":3615,"stem":3616,"children":3617,"page":59},"Система типів мови TypeScript","\u002Fweb-development\u002Ftypescript-type-system","18.web-development\u002F03.typescript-type-system",[3618,3622,3626,3630,3634,3638],{"title":3619,"path":3620,"stem":3621},"Знайомство з TypeScript Compiler","\u002Fweb-development\u002Ftypescript-type-system\u002Fintroduction-compiler-config","18.web-development\u002F03.typescript-type-system\u002F01.introduction-compiler-config",{"title":3623,"path":3624,"stem":3625},"Примітивні типи даних: string, number, boolean","\u002Fweb-development\u002Ftypescript-type-system\u002Fprimitive-special-types","18.web-development\u002F03.typescript-type-system\u002F02.primitive-special-types",{"title":3627,"path":3628,"stem":3629},"Масиви, кортежі та об","\u002Fweb-development\u002Ftypescript-type-system\u002Farrays-tuples-objects","18.web-development\u002F03.typescript-type-system\u002F03.arrays-tuples-objects",{"title":3631,"path":3632,"stem":3633},"Union типи, Intersection типи та літеральні типи","\u002Fweb-development\u002Ftypescript-type-system\u002Funion-intersection-literals","18.web-development\u002F03.typescript-type-system\u002F04.union-intersection-literals",{"title":3635,"path":3636,"stem":3637},"Type Narrowing (звуження типів)","\u002Fweb-development\u002Ftypescript-type-system\u002Ftype-narrowing","18.web-development\u002F03.typescript-type-system\u002F05.type-narrowing",{"title":3639,"path":3640,"stem":3641},"Типізація функцій","\u002Fweb-development\u002Ftypescript-type-system\u002Ffunctions-typing","18.web-development\u002F03.typescript-type-system\u002F06.functions-typing",{"title":3643,"icon":2326,"path":3644,"stem":3645,"children":3646,"page":59},"Розширені засоби мови TypeScript","\u002Fweb-development\u002Ftypescript-advanced","18.web-development\u002F04.typescript-advanced",[3647,3651,3655,3659,3663,3667],{"title":3648,"path":3649,"stem":3650},"Interfaces та Classes","\u002Fweb-development\u002Ftypescript-advanced\u002Finterfaces-classes","18.web-development\u002F04.typescript-advanced\u002F01.interfaces-classes",{"title":3652,"path":3653,"stem":3654},"Основи Generic типів","\u002Fweb-development\u002Ftypescript-advanced\u002Fgenerics-fundamentals","18.web-development\u002F04.typescript-advanced\u002F02.generics-fundamentals",{"title":3656,"path":3657,"stem":3658},"Enums та Decorators","\u002Fweb-development\u002Ftypescript-advanced\u002Fenums-decorators","18.web-development\u002F04.typescript-advanced\u002F03.enums-decorators",{"title":3660,"path":3661,"stem":3662},"Utility Types","\u002Fweb-development\u002Ftypescript-advanced\u002Futility-types","18.web-development\u002F04.typescript-advanced\u002F04.utility-types",{"title":3664,"path":3665,"stem":3666},"Mapped та Conditional Types","\u002Fweb-development\u002Ftypescript-advanced\u002Fmapped-conditional-types","18.web-development\u002F04.typescript-advanced\u002F05.mapped-conditional-types",{"title":3668,"path":3669,"stem":3670},"Модулі та Strict Mode","\u002Fweb-development\u002Ftypescript-advanced\u002Fmodules-strict-mode","18.web-development\u002F04.typescript-advanced\u002F06.modules-strict-mode",{"title":3672,"path":3673,"stem":3674,"children":3675,"page":59},"Tailwind","\u002Ftailwind","21.tailwind",[3676,3680,3684,3688,3692,3696,3700,3704,3708,3712,3716,3720],{"title":3677,"path":3678,"stem":3679},"Що таке Tailwind CSS і навіщо він потрібен","\u002Ftailwind\u002Ftailwind-intro-philosophy","21.tailwind\u002F01.tailwind-intro-philosophy",{"title":3681,"path":3682,"stem":3683},"Встановлення та налаштування Tailwind CSS v4","\u002Ftailwind\u002Ftailwind-installation-setup","21.tailwind\u002F02.tailwind-installation-setup",{"title":3685,"path":3686,"stem":3687},"Utility-класи: основи та система Tailwind","\u002Ftailwind\u002Ftailwind-utility-classes-core","21.tailwind\u002F03.tailwind-utility-classes-core",{"title":3689,"path":3690,"stem":3691},"Layout: Flexbox та Grid через Tailwind","\u002Ftailwind\u002Ftailwind-flexbox-grid","21.tailwind\u002F04.tailwind-flexbox-grid",{"title":3693,"path":3694,"stem":3695},"Кастомізація теми через @theme у Tailwind v4","\u002Ftailwind\u002Ftailwind-theme-customization","21.tailwind\u002F05.tailwind-theme-customization",{"title":3697,"path":3698,"stem":3699},"Варіанти: hover, focus, responsive, dark mode та нові v4","\u002Ftailwind\u002Ftailwind-variants-states","21.tailwind\u002F06.tailwind-variants-states",{"title":3701,"path":3702,"stem":3703},"Типографіка та система кольорів у Tailwind v4","\u002Ftailwind\u002Ftailwind-typography-colors","21.tailwind\u002F07.tailwind-typography-colors",{"title":3705,"path":3706,"stem":3707},"Компоненти та повторюваність: @apply, @utility та патерни","\u002Ftailwind\u002Ftailwind-components-patterns","21.tailwind\u002F08.tailwind-components-patterns",{"title":3709,"path":3710,"stem":3711},"Темна тема та система дизайн-токенів у Tailwind v4","\u002Ftailwind\u002Ftailwind-dark-mode-theming","21.tailwind\u002F09.tailwind-dark-mode-theming",{"title":3713,"path":3714,"stem":3715},"Довільні значення та контейнерні запити у Tailwind v4","\u002Ftailwind\u002Ftailwind-arbitrary-container-queries","21.tailwind\u002F10.tailwind-arbitrary-container-queries",{"title":3717,"path":3718,"stem":3719},"Анімації, трансформації та 3D у Tailwind v4","\u002Ftailwind\u002Ftailwind-animations-transforms","21.tailwind\u002F11.tailwind-animations-transforms",{"title":3721,"path":3722,"stem":3723},"Tailwind CLI, PostCSS та інтеграція з фреймворками","\u002Ftailwind\u002Ftailwind-cli-tooling","21.tailwind\u002F12.tailwind-cli-tooling",{"title":3725,"path":3726,"stem":3727},"Тестування компонентів діаграм","\u002Ftest-components","98.test-components",{"id":3729,"title":3420,"body":3730,"description":33071,"extension":17398,"links":33072,"meta":33073,"navigation":4796,"path":3421,"seo":33074,"stem":3422,"__hash__":33075},"docs\u002F15.react-native\u002Fversion2\u002F08.stylesheet-and-theming.md",{"type":3731,"value":3732,"toc":32961},"minimark",[3733,3737,3742,3752,3760,3788,3791,3819,3824,3841,3875,3912,3925,3939,3942,3990,4020,4023,4027,4030,4056,4074,4199,4203,4254,4277,4298,4300,4304,4307,4331,4342,4344,4350,4366,4370,4373,4444,4447,4480,4489,4497,4537,4564,4574,4580,4706,4713,4726,5454,5462,5477,6072,6082,6099,6896,6905,6915,7601,7618,7633,9164,9168,9287,9297,9346,9369,9373,9380,9443,9462,9487,9510,9517,9596,9606,9610,9633,9635,9639,9646,9650,9667,9670,9701,9711,9715,9798,9802,9817,10108,10387,10412,10416,10502,10624,10637,10644,10647,10741,10755,12895,12902,12925,12938,12942,12971,12973,12977,12986,13000,13005,13016,13033,13044,13051,13065,13068,13083,13534,13595,13615,13617,13625,13636,13662,13858,13861,13936,13950,13958,13978,13982,14007,14014,14033,14037,15283,15285,15295,15302,15337,15343,15402,15431,15438,15448,15452,15455,15521,15543,15552,15578,15590,15705,15709,15720,15725,15742,15785,15806,15983,16044,16048,16246,16257,16266,16279,16653,16682,16689,16701,16800,16809,16834,16844,16848,16861,17162,17181,17188,17280,17286,17290,17422,17437,17441,17458,19360,19363,19419,19426,19430,19436,19522,19546,19550,19566,19582,19594,19681,19684,19710,19725,19732,19734,19738,19745,19875,19877,19881,19887,19891,19920,19924,19966,19973,19976,21401,21405,21479,21483,21498,21502,22839,22841,22845,22852,22856,22863,22867,22877,22891,22896,22938,22942,22962,22998,30682,30686,30697,30701,30707,30781,30791,30795,32665,32667,32671,32674,32728,32765,32778,32780,32784,32788,32811,32815,32834,32838,32863,32865,32869,32958],[3734,3735,3420],"h1",{"id":3736},"stylesheet-і-теми-light-dark",[3738,3739,3741],"h2",{"id":3740},"навіщо-ця-стаття","Навіщо ця стаття",[3743,3744,3745],"p",{},[3746,3747],"img",{"alt":3748,"className":3749,"src":3751},"Стиль ≠ тема",[3750],"diagram-img","\u002Fimages\u002Freact-native\u002Fstylesheet-and-theming\u002F01.svg",[3743,3753,3754,3755,3759],{},"Уявіть вечір у метро: людина відкриває щоденник подорожей, у телефоні давно увімкнений ",[3756,3757,3758],"strong",{},"темний режим"," (Dark Mode). Системні екрани й більшість улюблених застосунків уже темні: фон глибокий, текст світлий, статус-бар читабельний. Якщо ваш застосунок лишається сліпучо-білим, користувач не думає «ой, у них ще не зробили StyleSheet.create». Він думає: «цей додаток виглядає застаріло» — і закриває його.",[3743,3761,3762,3763,3767,3768,3771,3772,3775,3776,3779,3780,3783,3784,3787],{},"У попередніх статтях стилі вже з’являлись: ",[3764,3765,3766],"code",{},"StyleSheet.create",", ",[3764,3769,3770],{},"tokens.colors.primary",", інколи ",[3764,3773,3774],{},"useColorScheme"," у демо. Але кольори в Nomad досі були ",[3756,3777,3778],{},"одні"," — світла палітра «намертво» вшита в об’єкт ",[3764,3781,3782],{},"tokens",". Перемикач системи ",[3756,3785,3786],{},"нічого"," не змінював на екрані, бо компоненти питали не «який зараз режим?», а «який hex записаний у файлі раз і назавжди?».",[3743,3789,3790],{},"Ця стаття з’єднує дві речі, які на вебі часто плутають:",[3792,3793,3794,3809],"ol",{},[3795,3796,3797,3800,3801,3804,3805,3808],"li",{},[3756,3798,3799],{},"Як описувати вигляд"," елемента в React Native (об’єкти стилів, ",[3764,3802,3803],{},"StyleSheet",", масиви) — аналог CSS, але ",[3756,3806,3807],{},"інший"," механізм.",[3795,3810,3811,3814,3815,3818],{},[3756,3812,3813],{},"Як міняти theme (тему) всього застосунку"," (світла \u002F темна тема, семантичні імена кольорів) — аналог CSS-змінних і ",[3764,3816,3817],{},"prefers-color-scheme",", своїми інструментами.",[3820,3821,3823],"h3",{"id":3822},"терміни-простими-словами","Терміни простими словами",[3743,3825,3826,3829,3830,3832,3833,3836,3837,3840],{},[3756,3827,3828],{},"Стиль (style)"," у React Native — звичайний JavaScript-об’єкт (або зареєстрований через ",[3764,3831,3803],{}," ідентифікатор), який каже нативному UI: «відступ 16, заокруглення 12, колір фону такий-то». Немає окремого файлу ",[3764,3834,3835],{},".css",", немає селекторів ",[3764,3838,3839],{},".card > .title",".",[3743,3842,3843,3846,3847,3850,3851,3854,3855,3858,3859,3863,3864,3858,3867,3870,3871,3874],{},[3756,3844,3845],{},"Тема (theme)"," — узгоджений ",[3756,3848,3849],{},"набір значень"," (передусім кольорів) для ",[3756,3852,3853],{},"режиму відображення",". Найчастіше два режими: ",[3756,3856,3857],{},"світлий"," (",[3860,3861,3862],"em",{},"light",") і ",[3756,3865,3866],{},"темний",[3860,3868,3869],{},"dark","). Тема — не «красивий шаблон з Figma», а ",[3756,3872,3873],{},"словник",", з якого всі екрани беруть одні й ті самі ролі кольорів.",[3743,3876,3877,3880,3881,3884,3885,3888,3889,3892,3893,3895,3896,3899,3900,3903,3904,3907,3908,3911],{},[3756,3878,3879],{},"Семантичний токен (semantic token)"," — ім’я за ",[3756,3882,3883],{},"роллю",", а не за відтінком.",[3886,3887],"br",{},"\nПриклад: ",[3764,3890,3891],{},"surface"," означає «поверхня картки \u002F панелі», а не «білий». У light ",[3764,3894,3891],{}," може бути ",[3764,3897,3898],{},"#FFFFFF",", у dark — ",[3764,3901,3902],{},"#1C1C1E",". Компонент пише ",[3764,3905,3906],{},"colors.surface"," і ",[3756,3909,3910],{},"не знає",", який саме hex підставлять сьогодні.",[3743,3913,3914,3917,3918,3920,3921,3924],{},[3756,3915,3916],{},"Схема кольорів (color scheme)"," — відповідь операційної системи (або вашого перемикача): зараз світлий чи темний інтерфейс. Хук ",[3764,3919,3774],{}," читає ",[3756,3922,3923],{},"системну"," схему.",[3743,3926,3927,3930,3931,3934,3935,3938],{},[3756,3928,3929],{},"Перевага користувача (preference)"," у нашому коді — що ",[3756,3932,3933],{},"обрав"," людина в застосунку: «як у системі», «завжди світла», «завжди темна». Це вже не чиста ОС, а ",[3756,3936,3937],{},"ваш"," стан (поки в пам’яті; збереження на диск — пізніше).",[3743,3940,3941],{},"Після статті ви зможете:",[3792,3943,3944,3949,3956,3966,3973],{},[3795,3945,3946,3947,3840],{},"Пояснити, чим RN-стилі відрізняються від CSS і навіщо ",[3764,3948,3766],{},[3795,3950,3951,3952,3955],{},"Складати ",[3764,3953,3954],{},"style={[…]}"," без сюрпризів із перекриттям.",[3795,3957,3958,3959,3962,3963,3840],{},"Відокремити ",[3756,3960,3961],{},"геометрію"," (padding, radius) від ",[3756,3964,3965],{},"кольорів теми",[3795,3967,3968,3969,3972],{},"Зчитати системну тему і ",[3756,3970,3971],{},"перевизначити"," її вибором користувача.",[3795,3974,3975,3978,3979,3982,3983,3986,3987,3840],{},[3756,3976,3977],{},"Самі"," зібрати ",[3764,3980,3981],{},"ThemeProvider"," + ",[3764,3984,3985],{},"useTheme"," на React Context і підключити light\u002Fdark у ",[3756,3988,3989],{},"Nomad",[3991,3992,3993,3996,3997,4000,4001,4004,4005,4008,4009,4012,4013,4016,4017,4019],"note",{},[3756,3994,3995],{},"Головна думка."," Стилі описують ",[3756,3998,3999],{},"форму"," (відступи, радіус, flex, розташування). Тема описує ",[3756,4002,4003],{},"забарвлення ролей"," (фон екрана, поверхня картки, основний текст, акцент кнопки). Якщо в компоненті написано ",[3764,4006,4007],{},"backgroundColor: '#fff'",", темна тема ",[3756,4010,4011],{},"ніколи"," «сама» не з’явиться — рядок уже вирішив колір назавжди. Якщо написано ",[3764,4014,4015],{},"backgroundColor: colors.surface",", достатньо підмінити ",[3756,4018,3873],{}," кольорів — компонент перемалюється з новою theme, без правок у десятках файлів.",[4021,4022],"hr",{},[3738,4024,4026],{"id":4025},"місток-з-web-react-css","Місток з web React \u002F CSS",[3743,4028,4029],{},"На вебі ви звикли до трьох шарів:",[3792,4031,4032,4038,4044],{},[3795,4033,4034,4037],{},[3756,4035,4036],{},"Розмітка"," (JSX \u002F HTML) — що є на сторінці.",[3795,4039,4040,4043],{},[3756,4041,4042],{},"CSS"," — як воно виглядає (часто в іншому файлі або через Tailwind-класи).",[3795,4045,4046,4049,4050,3767,4053,4055],{},[3756,4047,4048],{},"Тема"," — CSS variables, ",[3764,4051,4052],{},"data-theme",[3764,4054,3817],{},", інколи Context у React.",[3743,4057,4058,4059,4062,4063,4069,4070,4073],{},"У React Native ",[3756,4060,4061],{},"розмітка"," лишається JSX, але «CSS-файлу» немає. Замість нього — ",[3756,4064,4065,4066],{},"prop ",[3764,4067,4068],{},"style"," на майже кожному візуальному компоненті. Значення — об’єкт (або масив об’єктів \u002F зареєстрованих стилів). Під капотом RN перетворює це на властивості ",[3756,4071,4072],{},"нативних"," view (UIView \u002F android.view), а не на CSSOM браузера.",[4075,4076,4077,4093],"table",{},[4078,4079,4080],"thead",{},[4081,4082,4083,4087,4090],"tr",{},[4084,4085,4086],"th",{},"У браузері",[4084,4088,4089],{},"У React Native",[4084,4091,4092],{},"Що це означає для вас",[4094,4095,4096,4114,4133,4154,4172],"tbody",{},[4081,4097,4098,4102,4107],{},[4099,4100,4101],"td",{},"CSS-файл, CSS Modules, Tailwind",[4099,4103,4104,4105],{},"об’єкти + ",[3764,4106,3803],{},[4099,4108,4109,4110,4113],{},"Немає глобальних селекторів ",[3764,4111,4112],{},".card { }",", немає «каскаду по дереву HTML» у класичному сенсі",[4081,4115,4116,4121,4126],{},[4099,4117,4118],{},[3764,4119,4120],{},"className=\"card active\"",[4099,4122,4123],{},[3764,4124,4125],{},"style={[styles.card, active && styles.active]}",[4099,4127,4128,4129,4132],{},"Стани вмикаєте ",[3756,4130,4131],{},"в JSX"," умовами, не другим класом у рядку",[4081,4134,4135,4142,4148],{},[4099,4136,4137,4138,4141],{},"CSS variables (",[3764,4139,4140],{},"--bg",")",[4099,4143,4144,4147],{},[3756,4145,4146],{},"токени"," + тема (Context \u002F props)",[4099,4149,4150,4151],{},"«Змінні» — ваш TypeScript-об’єкт, не ",[3764,4152,4153],{},":root",[4081,4155,4156,4160,4169],{},[4099,4157,4158],{},[3764,4159,3817],{},[4099,4161,4162,4165,4166],{},[3764,4163,4164],{},"useColorScheme()"," \u002F модуль ",[3764,4167,4168],{},"Appearance",[4099,4170,4171],{},"Система повідомляє light\u002Fdark; підписка через хук",[4081,4173,4174,4183,4189],{},[4099,4175,4176,4179,4180],{},[3764,4177,4178],{},"color-scheme"," на ",[3764,4181,4182],{},"html",[4099,4184,4185,4188],{},[3764,4186,4187],{},"StatusBar"," + кольори екрана",[4099,4190,4191,4192,4195,4196],{},"Системні іконки зверху ",[3756,4193,4194],{},"не"," підлаштовуються самі лише від фону ",[3764,4197,4198],{},"View",[3820,4200,4202],{"id":4201},"що-ламається-якщо-мислити-як-у-css","Що ламається, якщо мислити «як у CSS»",[4204,4205,4206,4223,4245],"ul",{},[3795,4207,4208,4211,4212,4215,4216,4211,4219,4222],{},[3756,4209,4210],{},"Немає"," ",[3764,4213,4214],{},"!important",", немає специфічності селекторів. Є лише ",[3756,4217,4218],{},"порядок у масиві",[3764,4220,4221],{},"style={[a, b, c]}"," — хто правіше, той перемагає в конфлікті ключів.",[3795,4224,4225,4227,4228,4231,4232,4235,4236,4238,4239,4242,4243,3840],{},[3756,4226,4210],{}," успадкування ",[3764,4229,4230],{},"color"," \u002F ",[3764,4233,4234],{},"font-size"," на всі вкладені ",[3764,4237,4198],{}," як у HTML. Текст живе в ",[3764,4240,4241],{},"Text","; стилі тексту не «просочуються» в дочірні ",[3764,4244,4198],{},[3795,4246,4247,4249,4250,4253],{},[3756,4248,4210],{}," «підключив dark.css і все перефарбувалось». Поки компонент читає літерал ",[3764,4251,4252],{},"#fff",", ніякий Dark Mode ОС йому не допоможе.",[4255,4256,4257,4260,4261,4264,4265,4268,4269,4272,4273,4276],"warning",{},[3756,4258,4259],{},"Web-звичка."," Шукати ",[3764,4262,4263],{},"dark:"," як у Tailwind або ",[3764,4266,4267],{},":root[data-theme=dark]"," і чекати, що RN «зрозуміє». У нашому шляху (StyleSheet + токени, без NativeWind) темна тема — це ",[3756,4270,4271],{},"ваші"," дві палітри + хук\u002Fконтекст + дисципліна «не писати hex у компонентах». Це не гірше — просто ",[3756,4274,4275],{},"явніше",": ви бачите, звідки взявся колір.",[4278,4279,4280,4283,4284,4287,4288,4291,4292,4294,4295,4297],"tip",{},[3756,4281,4282],{},"Аналогія."," CSS на сайті — як загальні правила будинку («усі двері коричневі»). Стилі RN — як ",[3756,4285,4286],{},"наклейка на кожні двері окремо",": «ця — 16 px padding, ось такий колір». Тема — як ",[3756,4289,4290],{},"палітра фарб на складі",": сьогодні видаємо світлі банки з етикеткою ",[3764,4293,3891],{},", завтра — темні з тією ж етикеткою. Майстер (компонент) просить «банку ",[3764,4296,3891],{},"», а не «білу №12».",[4021,4299],{},[3738,4301,4303],{"id":4302},"як-rn-малює-вигляд","Як RN малює «вигляд»",[3743,4305,4306],{},"Коротко, щоб не здавалось магією:",[3792,4308,4309,4315,4322,4328],{},[3795,4310,4311,4312,3840],{},"Ви пишете ",[3764,4313,4314],{},"\u003CView style={…} \u002F>",[3795,4316,4317,4318,4321],{},"React Native (разом із нативним шаром) застосовує ці властивості до ",[3756,4319,4320],{},"платформенного"," прямокутника на екрані.",[3795,4323,4324,4325,3840],{},"Flexbox (попередня стаття) рахує ",[3756,4326,4327],{},"розміри й позиції",[3795,4329,4330],{},"Колір, бордер, тінь, прозорість — окремі властивості того ж стилю.",[3743,4332,4333,4334,4337,4338,4341],{},"Тому «стилізація» у мобільному React — це не «підключити stylesheet до сторінки», а ",[3756,4335,4336],{},"проп на конкретному елементі",", плюс домовленість команди, ",[3756,4339,4340],{},"звідки"," брати повторювані значення (токени, тема).",[4021,4343],{},[3738,4345,4347,4349],{"id":4346},"stylesheet-навіщо-цей-модуль",[3764,4348,3803],{}," — навіщо цей модуль",[3743,4351,4352,4356,4357,4362,4363,3840],{},[3756,4353,4354],{},[3764,4355,3803],{}," — вбудований модуль React Native для роботи зі стилями. Найчастіший виклик — ",[3756,4358,4359],{},[3764,4360,4361],{},"StyleSheet.create({ … })",": ви передаєте об’єкт «ім’я → опис вигляду», отримуєте об’єкт з тими ж ключами для ",[3764,4364,4365],{},"style={styles.card}",[3820,4367,4369],{"id":4368},"навіщо-не-писати-все-inline","Навіщо не писати все inline",[3743,4371,4372],{},"Технічно так можна:",[4374,4375,4380],"pre",{"className":4376,"code":4377,"language":4378,"meta":4379,"style":4379},"language-tsx shiki shiki-themes light-plus dark-plus dark-plus","\u003CView style={{ flex: 1, padding: 16, backgroundColor: '#F8FAFC' }} \u002F>\n","tsx","",[3764,4381,4382],{"__ignoreMap":4379},[4383,4384,4387,4391,4394,4398,4402,4406,4410,4414,4418,4420,4423,4426,4428,4431,4435,4438,4441],"span",{"class":4385,"line":4386},"line",1,[4383,4388,4390],{"class":4389},"s0P7L","\u003C",[4383,4392,4198],{"class":4393},"sN1BT",[4383,4395,4397],{"class":4396},"sa4r_"," style",[4383,4399,4401],{"class":4400},"sHH4Y","=",[4383,4403,4405],{"class":4404},"su1O8","{",[4383,4407,4409],{"class":4408},"sD7JJ","{ ",[4383,4411,4413],{"class":4412},"siwwj","flex:",[4383,4415,4417],{"class":4416},"sJj4R"," 1",[4383,4419,3767],{"class":4408},[4383,4421,4422],{"class":4412},"padding:",[4383,4424,4425],{"class":4416}," 16",[4383,4427,3767],{"class":4408},[4383,4429,4430],{"class":4412},"backgroundColor:",[4383,4432,4434],{"class":4433},"sbdoH"," '#F8FAFC'",[4383,4436,4437],{"class":4408}," }",[4383,4439,4440],{"class":4404},"}",[4383,4442,4443],{"class":4389}," \u002F>\n",[3743,4445,4446],{},"На маленькому демо це читабельно. У реальному екрані з’являються проблеми:",[4204,4448,4449,4456,4463],{},[3795,4450,4451,4452,4455],{},"JSX ",[3756,4453,4454],{},"роздувається",": важко побачити структуру «шапка \u002F список \u002F кнопка» серед об’єктів.",[3795,4457,4458,4459,4462],{},"Ті самі відступи й радіуси ",[3756,4460,4461],{},"копіюють"," у п’ять місць — потім міняєте «16» на «12» і забуваєте одне.",[3795,4464,4465,4466,3767,4469,3767,4472,4475,4476,4479],{},"Умови (",[3764,4467,4468],{},"pressed",[3764,4470,4471],{},"disabled",[3764,4473,4474],{},"error",") перетворюють ",[3764,4477,4478],{},"style={{…}}"," на важкий для читання вираз.",[3743,4481,4482,4484,4485,4488],{},[3764,4483,3766],{}," — домовленість «",[3756,4486,4487],{},"вигляд зібрано окремо",", JSX описує склад». Це схоже на CSS Modules: імена локальні, але без окремого синтаксису CSS.",[3820,4490,4492,4493,4496],{"id":4491},"що-реально-дає-create-на-практиці","Що реально дає ",[3764,4494,4495],{},"create"," на практиці",[3792,4498,4499,4509,4515,4524],{},[3795,4500,4501,4504,4505,4508],{},[3756,4502,4503],{},"Ясність"," — стилі внизу файлу (або в ",[3764,4506,4507],{},"Foo.styles.ts","); у JSX лишаються імена.",[3795,4510,4511,4514],{},[3756,4512,4513],{},"Підказки TypeScript \u002F dev"," — зайва властивість або неправильний тип частіше «світиться» раніше, ніж на пристрої.",[3795,4516,4517,4520,4521,4523],{},[3756,4518,4519],{},"Передбачуваний патерн у команді"," — новий розробник шукає ",[3764,4522,3766],{}," і одразу розуміє, де живе вигляд.",[3795,4525,4526,4529,4530,4532,4533,4536],{},[3756,4527,4528],{},"Оптимізації з боку RN"," (історично: реєстрація стилів, менше «сирих» об’єктів на мості). Деталі змінювались між версіями; ",[3756,4531,4194],{}," будуйте архітектуру заради мікробенчмарків. Будуйте заради ",[3756,4534,4535],{},"читабельності"," й єдиного місця правки.",[3991,4538,4539,4211,4542,4211,4544,4546,4547,4211,4550,4552,4553,4556,4557,4560,4561,3840],{},[3756,4540,4541],{},"Важливо.",[3764,4543,3766],{},[3756,4545,4194],{}," робить стилі «реактивними до теми» саме по собі. Якщо ",[3756,4548,4549],{},"всередині",[3764,4551,4495],{}," на рівні модуля ви написали ",[3764,4554,4555],{},"backgroundColor: '#F8FAFC'",", це значення зафіксоване в момент завантаження модуля. Темна тема підключається інакше: або різні об’єкти стилів, або (краще) ",[3756,4558,4559],{},"динамічний"," колір у render: ",[3764,4562,4563],{},"[styles.card, { backgroundColor: colors.surface }]",[3820,4565,4567,4568,4570,4571],{"id":4566},"api-stylesheet-що-це-і-що-видно-на-екрані","API ",[3764,4569,3803],{}," — що це і ",[3756,4572,4573],{},"що видно на екрані",[3743,4575,4576,4577,3840],{},"Нижче — коротко API, а одразу після — демо: спочатку по одному інструменту, потім ",[3756,4578,4579],{},"усе разом",[4581,4582,4583,4608,4645,4665,4688],"field-group",{},[4584,4585,4587,4588,4591,4592,4594,4597,4598,4600,4601,4603,4604,4607],"field",{"name":4586,"type":731},"StyleSheet.create(obj)","Приймає об’єкт ",[3764,4589,4590],{},"{ name: ViewStyle | TextStyle | ImageStyle }",", повертає об’єкт з тими ж ключами.",[3886,4593],{},[3756,4595,4596],{},"На екрані:"," JSX лишається коротким (",[3764,4599,4365],{},"), а «паспорт» вигляду — внизу файлу. Без ",[3764,4602,4495],{}," той самий UI виглядає ",[3756,4605,4606],{},"так само",", але код роздувається.",[4584,4609,4611,4612,4615,4616,4619,4620,4622,4624,4625,4627,4628,4631,4632,4634,4637,4638,4641,4642,3840],{"name":4610,"type":731},"StyleSheet.flatten(style)","Зводить масив \u002F вкладені стилі до ",[3756,4613,4614],{},"одного"," плоского об’єкта (",[3764,4617,4618],{},"{ fontSize: 18, color: '…', … }",").",[3886,4621],{},[3756,4623,4596],{}," користувач ",[3756,4626,3786],{}," не «бачить» окремо — flatten для ",[3756,4629,4630],{},"вас"," (тест, лог, дебаг). У звичайному JSX flatten робить сам RN.",[3886,4633],{},[3756,4635,4636],{},"Коли треба руками:"," «який підсумковий ",[3764,4639,4640],{},"fontSize"," після трьох шарів?» → ",[3764,4643,4644],{},"JSON.stringify(StyleSheet.flatten([…]))",[4584,4646,4649,4650,3982,4653,4656,4657,3840,4660,4662,4664],{"name":4647,"type":4648},"StyleSheet.absoluteFill","preset","Готовий стиль: ",[3764,4651,4652],{},"position: 'absolute'",[3764,4654,4655],{},"top\u002Fleft\u002Fright\u002Fbottom: 0"," — розтягнути на ",[3756,4658,4659],{},"всього батька",[3886,4661],{},[3756,4663,4596],{}," напівпрозорий шар поверх фото\u002Fкартки («Завантаження…», «Недоступно»), затемнення під модалкою.",[4584,4666,4668,4669,4672,4673,4675,4677,4678,4681,4682,4684,4687],{"name":4667,"type":4648},"StyleSheet.absoluteFillObject","Те саме ",[3756,4670,4671],{},"як звичайний JS-об’єкт"," (його можна спредити).",[3886,4674],{},[3756,4676,4596],{}," те саме, що ",[3764,4679,4680],{},"absoluteFill",", але ви пишете",[3886,4683],{},[3764,4685,4686],{},"{ ...StyleSheet.absoluteFillObject, backgroundColor: 'rgba(0,0,0,0.5)', zIndex: 2 }"," — один об’єкт, без другого шару в масиві.",[4584,4689,4692,4693,4695,4697,4698,4701,4702,4705],{"name":4690,"type":4691},"StyleSheet.hairlineWidth","number","Найтонша лінія, яку платформа ще малює акуратно (часто менше за 1 логічний піксель).",[3886,4694],{},[3756,4696,4596],{}," розділювачі списку «як у Налаштуваннях iOS», а не жирна смуга ",[3764,4699,4700],{},"borderWidth: 1",". Порівняйте hairline vs ",[3764,4703,4704],{},"1"," у демо нижче.",[3820,4707,4709,4710,4712],{"id":4708},"демо-1-create-масив-стилів","Демо 1: ",[3764,4711,4495],{}," + масив стилів",[3743,4714,4715,4717,4718,4721,4722,4725],{},[3764,4716,4495],{}," тримає ",[3756,4719,4720],{},"базу"," кнопки. Масив у ",[3764,4723,4724],{},"Pressable"," додає шари: «увімкнено» і «натиснуто». Порядок зліва направо — пізніший ключ перемагає.",[4727,4728,4732],"react-native-preview",{"device":4729,"filename":4730,"title":4731},"iphone","StyleSheetCreateArray.tsx","create + масив стилів",[4374,4733,4735],{"className":4376,"code":4734,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\n\nexport default function App() {\n  const [on, setOn] = useState(false);\n\n  return (\n    \u003CView style={styles.screen}>\n      \u003CText style={styles.title}>create + масив\u003C\u002FText>\n      \u003CText style={styles.hint}>\n        styles.btn → (on ? btnOn) → (pressed ? btnPressed)\n      \u003C\u002FText>\n      \u003CPressable\n        onPress={() => setOn((v) => !v)}\n        style={({ pressed }) => [\n          styles.btn,\n          on && styles.btnOn,\n          pressed && styles.btnPressed,\n        ]}\n      >\n        \u003CText style={styles.btnText}>{on ? 'Увімкнено' : 'Вимкнено'}\u003C\u002FText>\n      \u003C\u002FPressable>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: {\n    flex: 1,\n    backgroundColor: '#F8FAFC',\n    padding: 24,\n    justifyContent: 'center',\n    gap: 12,\n  },\n  title: { fontSize: 20, fontWeight: '700', color: '#0f172a' },\n  hint: { fontSize: 13, color: '#64748b', lineHeight: 18 },\n  btn: {\n    backgroundColor: '#94a3b8',\n    paddingVertical: 14,\n    borderRadius: 12,\n    alignItems: 'center',\n  },\n  btnOn: { backgroundColor: '#2563EB' },\n  btnPressed: { opacity: 0.85 },\n  btnText: { color: '#fff', fontWeight: '700', fontSize: 16 },\n});\n",[3764,4736,4737,4761,4791,4798,4817,4849,4854,4863,4890,4926,4950,4956,4966,4974,5014,5037,5051,5070,5087,5095,5101,5150,5159,5169,5175,5180,5185,5205,5214,5224,5234,5245,5256,5267,5273,5306,5336,5344,5354,5365,5375,5385,5390,5405,5421,5448],{"__ignoreMap":4379},[4383,4738,4739,4743,4746,4749,4752,4755,4758],{"class":4385,"line":4386},[4383,4740,4742],{"class":4741},"s8xlr","import",[4383,4744,4745],{"class":4400}," { ",[4383,4747,4748],{"class":4412},"useState",[4383,4750,4751],{"class":4400}," } ",[4383,4753,4754],{"class":4741},"from",[4383,4756,4757],{"class":4433}," 'react'",[4383,4759,4760],{"class":4400},";\n",[4383,4762,4764,4766,4768,4770,4772,4774,4776,4778,4780,4782,4784,4786,4789],{"class":4385,"line":4763},2,[4383,4765,4742],{"class":4741},[4383,4767,4745],{"class":4400},[4383,4769,4198],{"class":4412},[4383,4771,3767],{"class":4400},[4383,4773,4241],{"class":4412},[4383,4775,3767],{"class":4400},[4383,4777,4724],{"class":4412},[4383,4779,3767],{"class":4400},[4383,4781,3803],{"class":4412},[4383,4783,4751],{"class":4400},[4383,4785,4754],{"class":4741},[4383,4787,4788],{"class":4433}," 'react-native'",[4383,4790,4760],{"class":4400},[4383,4792,4794],{"class":4385,"line":4793},3,[4383,4795,4797],{"emptyLinePlaceholder":4796},true,"\n",[4383,4799,4801,4804,4807,4810,4814],{"class":4385,"line":4800},4,[4383,4802,4803],{"class":4741},"export",[4383,4805,4806],{"class":4741}," default",[4383,4808,4809],{"class":4404}," function",[4383,4811,4813],{"class":4812},"s8Opu"," App",[4383,4815,4816],{"class":4400},"() {\n",[4383,4818,4820,4823,4826,4830,4832,4835,4838,4840,4843,4846],{"class":4385,"line":4819},5,[4383,4821,4822],{"class":4404},"  const",[4383,4824,4825],{"class":4400}," [",[4383,4827,4829],{"class":4828},"s-QsJ","on",[4383,4831,3767],{"class":4400},[4383,4833,4834],{"class":4828},"setOn",[4383,4836,4837],{"class":4400},"] = ",[4383,4839,4748],{"class":4812},[4383,4841,4842],{"class":4400},"(",[4383,4844,4845],{"class":4404},"false",[4383,4847,4848],{"class":4400},");\n",[4383,4850,4852],{"class":4385,"line":4851},6,[4383,4853,4797],{"emptyLinePlaceholder":4796},[4383,4855,4857,4860],{"class":4385,"line":4856},7,[4383,4858,4859],{"class":4741},"  return",[4383,4861,4862],{"class":4400}," (\n",[4383,4864,4866,4869,4871,4873,4875,4877,4880,4882,4885,4887],{"class":4385,"line":4865},8,[4383,4867,4868],{"class":4389},"    \u003C",[4383,4870,4198],{"class":4393},[4383,4872,4397],{"class":4396},[4383,4874,4401],{"class":4400},[4383,4876,4405],{"class":4404},[4383,4878,4879],{"class":4412},"styles",[4383,4881,3840],{"class":4408},[4383,4883,4884],{"class":4412},"screen",[4383,4886,4440],{"class":4404},[4383,4888,4889],{"class":4389},">\n",[4383,4891,4893,4896,4898,4900,4902,4904,4906,4908,4911,4913,4916,4919,4922,4924],{"class":4385,"line":4892},9,[4383,4894,4895],{"class":4389},"      \u003C",[4383,4897,4241],{"class":4393},[4383,4899,4397],{"class":4396},[4383,4901,4401],{"class":4400},[4383,4903,4405],{"class":4404},[4383,4905,4879],{"class":4412},[4383,4907,3840],{"class":4408},[4383,4909,4910],{"class":4412},"title",[4383,4912,4440],{"class":4404},[4383,4914,4915],{"class":4389},">",[4383,4917,4918],{"class":4400},"create + масив",[4383,4920,4921],{"class":4389},"\u003C\u002F",[4383,4923,4241],{"class":4393},[4383,4925,4889],{"class":4389},[4383,4927,4929,4931,4933,4935,4937,4939,4941,4943,4946,4948],{"class":4385,"line":4928},10,[4383,4930,4895],{"class":4389},[4383,4932,4241],{"class":4393},[4383,4934,4397],{"class":4396},[4383,4936,4401],{"class":4400},[4383,4938,4405],{"class":4404},[4383,4940,4879],{"class":4412},[4383,4942,3840],{"class":4408},[4383,4944,4945],{"class":4412},"hint",[4383,4947,4440],{"class":4404},[4383,4949,4889],{"class":4389},[4383,4951,4953],{"class":4385,"line":4952},11,[4383,4954,4955],{"class":4400},"        styles.btn → (on ? btnOn) → (pressed ? btnPressed)\n",[4383,4957,4959,4962,4964],{"class":4385,"line":4958},12,[4383,4960,4961],{"class":4389},"      \u003C\u002F",[4383,4963,4241],{"class":4393},[4383,4965,4889],{"class":4389},[4383,4967,4969,4971],{"class":4385,"line":4968},13,[4383,4970,4895],{"class":4389},[4383,4972,4973],{"class":4393},"Pressable\n",[4383,4975,4977,4980,4982,4984,4987,4990,4993,4996,4999,5002,5004,5007,5009,5011],{"class":4385,"line":4976},14,[4383,4978,4979],{"class":4396},"        onPress",[4383,4981,4401],{"class":4400},[4383,4983,4405],{"class":4404},[4383,4985,4986],{"class":4408},"() ",[4383,4988,4989],{"class":4404},"=>",[4383,4991,4992],{"class":4812}," setOn",[4383,4994,4995],{"class":4408},"((",[4383,4997,4998],{"class":4412},"v",[4383,5000,5001],{"class":4408},") ",[4383,5003,4989],{"class":4404},[4383,5005,5006],{"class":4400}," !",[4383,5008,4998],{"class":4412},[4383,5010,4141],{"class":4408},[4383,5012,5013],{"class":4404},"}\n",[4383,5015,5017,5020,5022,5024,5027,5029,5032,5034],{"class":4385,"line":5016},15,[4383,5018,5019],{"class":4396},"        style",[4383,5021,4401],{"class":4400},[4383,5023,4405],{"class":4404},[4383,5025,5026],{"class":4408},"({ ",[4383,5028,4468],{"class":4412},[4383,5030,5031],{"class":4408}," }) ",[4383,5033,4989],{"class":4404},[4383,5035,5036],{"class":4408}," [\n",[4383,5038,5040,5043,5045,5048],{"class":4385,"line":5039},16,[4383,5041,5042],{"class":4412},"          styles",[4383,5044,3840],{"class":4408},[4383,5046,5047],{"class":4412},"btn",[4383,5049,5050],{"class":4408},",\n",[4383,5052,5054,5057,5060,5063,5065,5068],{"class":4385,"line":5053},17,[4383,5055,5056],{"class":4412},"          on",[4383,5058,5059],{"class":4400}," &&",[4383,5061,5062],{"class":4412}," styles",[4383,5064,3840],{"class":4408},[4383,5066,5067],{"class":4412},"btnOn",[4383,5069,5050],{"class":4408},[4383,5071,5073,5076,5078,5080,5082,5085],{"class":4385,"line":5072},18,[4383,5074,5075],{"class":4412},"          pressed",[4383,5077,5059],{"class":4400},[4383,5079,5062],{"class":4412},[4383,5081,3840],{"class":4408},[4383,5083,5084],{"class":4412},"btnPressed",[4383,5086,5050],{"class":4408},[4383,5088,5090,5093],{"class":4385,"line":5089},19,[4383,5091,5092],{"class":4408},"        ]",[4383,5094,5013],{"class":4404},[4383,5096,5098],{"class":4385,"line":5097},20,[4383,5099,5100],{"class":4389},"      >\n",[4383,5102,5104,5107,5109,5111,5113,5115,5117,5119,5122,5124,5126,5128,5130,5133,5136,5139,5142,5144,5146,5148],{"class":4385,"line":5103},21,[4383,5105,5106],{"class":4389},"        \u003C",[4383,5108,4241],{"class":4393},[4383,5110,4397],{"class":4396},[4383,5112,4401],{"class":4400},[4383,5114,4405],{"class":4404},[4383,5116,4879],{"class":4412},[4383,5118,3840],{"class":4408},[4383,5120,5121],{"class":4412},"btnText",[4383,5123,4440],{"class":4404},[4383,5125,4915],{"class":4389},[4383,5127,4405],{"class":4404},[4383,5129,4829],{"class":4412},[4383,5131,5132],{"class":4400}," ?",[4383,5134,5135],{"class":4433}," 'Увімкнено'",[4383,5137,5138],{"class":4400}," :",[4383,5140,5141],{"class":4433}," 'Вимкнено'",[4383,5143,4440],{"class":4404},[4383,5145,4921],{"class":4389},[4383,5147,4241],{"class":4393},[4383,5149,4889],{"class":4389},[4383,5151,5153,5155,5157],{"class":4385,"line":5152},22,[4383,5154,4961],{"class":4389},[4383,5156,4724],{"class":4393},[4383,5158,4889],{"class":4389},[4383,5160,5162,5165,5167],{"class":4385,"line":5161},23,[4383,5163,5164],{"class":4389},"    \u003C\u002F",[4383,5166,4198],{"class":4393},[4383,5168,4889],{"class":4389},[4383,5170,5172],{"class":4385,"line":5171},24,[4383,5173,5174],{"class":4400},"  );\n",[4383,5176,5178],{"class":4385,"line":5177},25,[4383,5179,5013],{"class":4400},[4383,5181,5183],{"class":4385,"line":5182},26,[4383,5184,4797],{"emptyLinePlaceholder":4796},[4383,5186,5188,5191,5193,5196,5198,5200,5202],{"class":4385,"line":5187},27,[4383,5189,5190],{"class":4404},"const",[4383,5192,5062],{"class":4828},[4383,5194,5195],{"class":4400}," = ",[4383,5197,3803],{"class":4412},[4383,5199,3840],{"class":4400},[4383,5201,4495],{"class":4812},[4383,5203,5204],{"class":4400},"({\n",[4383,5206,5208,5211],{"class":4385,"line":5207},28,[4383,5209,5210],{"class":4412},"  screen:",[4383,5212,5213],{"class":4400}," {\n",[4383,5215,5217,5220,5222],{"class":4385,"line":5216},29,[4383,5218,5219],{"class":4412},"    flex:",[4383,5221,4417],{"class":4416},[4383,5223,5050],{"class":4400},[4383,5225,5227,5230,5232],{"class":4385,"line":5226},30,[4383,5228,5229],{"class":4412},"    backgroundColor:",[4383,5231,4434],{"class":4433},[4383,5233,5050],{"class":4400},[4383,5235,5237,5240,5243],{"class":4385,"line":5236},31,[4383,5238,5239],{"class":4412},"    padding:",[4383,5241,5242],{"class":4416}," 24",[4383,5244,5050],{"class":4400},[4383,5246,5248,5251,5254],{"class":4385,"line":5247},32,[4383,5249,5250],{"class":4412},"    justifyContent:",[4383,5252,5253],{"class":4433}," 'center'",[4383,5255,5050],{"class":4400},[4383,5257,5259,5262,5265],{"class":4385,"line":5258},33,[4383,5260,5261],{"class":4412},"    gap:",[4383,5263,5264],{"class":4416}," 12",[4383,5266,5050],{"class":4400},[4383,5268,5270],{"class":4385,"line":5269},34,[4383,5271,5272],{"class":4400},"  },\n",[4383,5274,5276,5279,5281,5284,5287,5289,5292,5295,5297,5300,5303],{"class":4385,"line":5275},35,[4383,5277,5278],{"class":4412},"  title:",[4383,5280,4745],{"class":4400},[4383,5282,5283],{"class":4412},"fontSize:",[4383,5285,5286],{"class":4416}," 20",[4383,5288,3767],{"class":4400},[4383,5290,5291],{"class":4412},"fontWeight:",[4383,5293,5294],{"class":4433}," '700'",[4383,5296,3767],{"class":4400},[4383,5298,5299],{"class":4412},"color:",[4383,5301,5302],{"class":4433}," '#0f172a'",[4383,5304,5305],{"class":4400}," },\n",[4383,5307,5309,5312,5314,5316,5319,5321,5323,5326,5328,5331,5334],{"class":4385,"line":5308},36,[4383,5310,5311],{"class":4412},"  hint:",[4383,5313,4745],{"class":4400},[4383,5315,5283],{"class":4412},[4383,5317,5318],{"class":4416}," 13",[4383,5320,3767],{"class":4400},[4383,5322,5299],{"class":4412},[4383,5324,5325],{"class":4433}," '#64748b'",[4383,5327,3767],{"class":4400},[4383,5329,5330],{"class":4412},"lineHeight:",[4383,5332,5333],{"class":4416}," 18",[4383,5335,5305],{"class":4400},[4383,5337,5339,5342],{"class":4385,"line":5338},37,[4383,5340,5341],{"class":4412},"  btn:",[4383,5343,5213],{"class":4400},[4383,5345,5347,5349,5352],{"class":4385,"line":5346},38,[4383,5348,5229],{"class":4412},[4383,5350,5351],{"class":4433}," '#94a3b8'",[4383,5353,5050],{"class":4400},[4383,5355,5357,5360,5363],{"class":4385,"line":5356},39,[4383,5358,5359],{"class":4412},"    paddingVertical:",[4383,5361,5362],{"class":4416}," 14",[4383,5364,5050],{"class":4400},[4383,5366,5368,5371,5373],{"class":4385,"line":5367},40,[4383,5369,5370],{"class":4412},"    borderRadius:",[4383,5372,5264],{"class":4416},[4383,5374,5050],{"class":4400},[4383,5376,5378,5381,5383],{"class":4385,"line":5377},41,[4383,5379,5380],{"class":4412},"    alignItems:",[4383,5382,5253],{"class":4433},[4383,5384,5050],{"class":4400},[4383,5386,5388],{"class":4385,"line":5387},42,[4383,5389,5272],{"class":4400},[4383,5391,5393,5396,5398,5400,5403],{"class":4385,"line":5392},43,[4383,5394,5395],{"class":4412},"  btnOn:",[4383,5397,4745],{"class":4400},[4383,5399,4430],{"class":4412},[4383,5401,5402],{"class":4433}," '#2563EB'",[4383,5404,5305],{"class":4400},[4383,5406,5408,5411,5413,5416,5419],{"class":4385,"line":5407},44,[4383,5409,5410],{"class":4412},"  btnPressed:",[4383,5412,4745],{"class":4400},[4383,5414,5415],{"class":4412},"opacity:",[4383,5417,5418],{"class":4416}," 0.85",[4383,5420,5305],{"class":4400},[4383,5422,5424,5427,5429,5431,5434,5436,5438,5440,5442,5444,5446],{"class":4385,"line":5423},45,[4383,5425,5426],{"class":4412},"  btnText:",[4383,5428,4745],{"class":4400},[4383,5430,5299],{"class":4412},[4383,5432,5433],{"class":4433}," '#fff'",[4383,5435,3767],{"class":4400},[4383,5437,5291],{"class":4412},[4383,5439,5294],{"class":4433},[4383,5441,3767],{"class":4400},[4383,5443,5283],{"class":4412},[4383,5445,4425],{"class":4416},[4383,5447,5305],{"class":4400},[4383,5449,5451],{"class":4385,"line":5450},46,[4383,5452,5453],{"class":4400},"});\n",[3820,5455,5457,5458,5461],{"id":5456},"демо-2-flatten-що-вийшло-в-сумі","Демо 2: ",[3764,5459,5460],{},"flatten"," — «що вийшло в сумі»",[3743,5463,5464,5465,5468,5469,5472,5473,5476],{},"Два шари стилів заголовка + колір з теми. На екрані — текст ",[3756,5466,5467],{},"і"," JSON підсумкового об’єкта після ",[3764,5470,5471],{},"StyleSheet.flatten",". У продакшені UI так рідко показують; тут — щоб ",[3756,5474,5475],{},"побачити"," злиття ключів.",[4727,5478,5480],{"device":4729,"filename":5479,"title":5471},"StyleSheetFlatten.tsx",[4374,5481,5483],{"className":4376,"code":5482,"language":4378,"meta":4379,"style":4379},"import { View, Text, StyleSheet } from 'react-native';\n\nexport default function App() {\n  const flat = StyleSheet.flatten([\n    styles.titleBase,       \u002F\u002F fontSize: 16, color: gray\n    styles.titleEmphasis,   \u002F\u002F fontSize: 22, fontWeight — перекриває size\n    { color: '#2563EB' },   \u002F\u002F color перемагає\n  ]);\n\n  return (\n    \u003CView style={styles.screen}>\n      \u003CText style={flat}>Заголовок після flatten\u003C\u002FText>\n      \u003CView style={styles.panel}>\n        \u003CText style={styles.label}>StyleSheet.flatten([...]) →\u003C\u002FText>\n        \u003CText style={styles.code}>{JSON.stringify(flat, null, 2)}\u003C\u002FText>\n      \u003C\u002FView>\n      \u003CText style={styles.hint}>\n        fontSize: 22 (з emphasis), color: #2563EB (з останнього шару).\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, backgroundColor: '#F8FAFC', padding: 20, justifyContent: 'center', gap: 14 },\n  titleBase: { fontSize: 16, color: '#64748b' },\n  titleEmphasis: { fontSize: 22, fontWeight: '800' },\n  panel: {\n    backgroundColor: '#fff',\n    borderRadius: 12,\n    borderWidth: 1,\n    borderColor: '#E2E8F0',\n    padding: 12,\n  },\n  label: { fontSize: 12, fontWeight: '600', color: '#64748b', marginBottom: 6 },\n  code: { fontFamily: 'monospace', fontSize: 12, color: '#0f172a', lineHeight: 18 },\n  hint: { fontSize: 13, color: '#64748b', lineHeight: 18 },\n});\n",[3764,5484,5485,5509,5513,5525,5543,5560,5575,5590,5595,5599,5605,5627,5655,5678,5710,5766,5774,5796,5801,5809,5817,5821,5825,5829,5845,5883,5902,5923,5930,5938,5946,5955,5965,5973,5977,6011,6044,6068],{"__ignoreMap":4379},[4383,5486,5487,5489,5491,5493,5495,5497,5499,5501,5503,5505,5507],{"class":4385,"line":4386},[4383,5488,4742],{"class":4741},[4383,5490,4745],{"class":4400},[4383,5492,4198],{"class":4412},[4383,5494,3767],{"class":4400},[4383,5496,4241],{"class":4412},[4383,5498,3767],{"class":4400},[4383,5500,3803],{"class":4412},[4383,5502,4751],{"class":4400},[4383,5504,4754],{"class":4741},[4383,5506,4788],{"class":4433},[4383,5508,4760],{"class":4400},[4383,5510,5511],{"class":4385,"line":4763},[4383,5512,4797],{"emptyLinePlaceholder":4796},[4383,5514,5515,5517,5519,5521,5523],{"class":4385,"line":4793},[4383,5516,4803],{"class":4741},[4383,5518,4806],{"class":4741},[4383,5520,4809],{"class":4404},[4383,5522,4813],{"class":4812},[4383,5524,4816],{"class":4400},[4383,5526,5527,5529,5532,5534,5536,5538,5540],{"class":4385,"line":4800},[4383,5528,4822],{"class":4404},[4383,5530,5531],{"class":4828}," flat",[4383,5533,5195],{"class":4400},[4383,5535,3803],{"class":4412},[4383,5537,3840],{"class":4400},[4383,5539,5460],{"class":4812},[4383,5541,5542],{"class":4400},"([\n",[4383,5544,5545,5548,5550,5553,5556],{"class":4385,"line":4819},[4383,5546,5547],{"class":4412},"    styles",[4383,5549,3840],{"class":4400},[4383,5551,5552],{"class":4412},"titleBase",[4383,5554,5555],{"class":4400},",       ",[4383,5557,5559],{"class":5558},"spJ8K","\u002F\u002F fontSize: 16, color: gray\n",[4383,5561,5562,5564,5566,5569,5572],{"class":4385,"line":4851},[4383,5563,5547],{"class":4412},[4383,5565,3840],{"class":4400},[4383,5567,5568],{"class":4412},"titleEmphasis",[4383,5570,5571],{"class":4400},",   ",[4383,5573,5574],{"class":5558},"\u002F\u002F fontSize: 22, fontWeight — перекриває size\n",[4383,5576,5577,5580,5582,5584,5587],{"class":4385,"line":4856},[4383,5578,5579],{"class":4400},"    { ",[4383,5581,5299],{"class":4412},[4383,5583,5402],{"class":4433},[4383,5585,5586],{"class":4400}," },   ",[4383,5588,5589],{"class":5558},"\u002F\u002F color перемагає\n",[4383,5591,5592],{"class":4385,"line":4865},[4383,5593,5594],{"class":4400},"  ]);\n",[4383,5596,5597],{"class":4385,"line":4892},[4383,5598,4797],{"emptyLinePlaceholder":4796},[4383,5600,5601,5603],{"class":4385,"line":4928},[4383,5602,4859],{"class":4741},[4383,5604,4862],{"class":4400},[4383,5606,5607,5609,5611,5613,5615,5617,5619,5621,5623,5625],{"class":4385,"line":4952},[4383,5608,4868],{"class":4389},[4383,5610,4198],{"class":4393},[4383,5612,4397],{"class":4396},[4383,5614,4401],{"class":4400},[4383,5616,4405],{"class":4404},[4383,5618,4879],{"class":4412},[4383,5620,3840],{"class":4408},[4383,5622,4884],{"class":4412},[4383,5624,4440],{"class":4404},[4383,5626,4889],{"class":4389},[4383,5628,5629,5631,5633,5635,5637,5639,5642,5644,5646,5649,5651,5653],{"class":4385,"line":4958},[4383,5630,4895],{"class":4389},[4383,5632,4241],{"class":4393},[4383,5634,4397],{"class":4396},[4383,5636,4401],{"class":4400},[4383,5638,4405],{"class":4404},[4383,5640,5641],{"class":4412},"flat",[4383,5643,4440],{"class":4404},[4383,5645,4915],{"class":4389},[4383,5647,5648],{"class":4400},"Заголовок після flatten",[4383,5650,4921],{"class":4389},[4383,5652,4241],{"class":4393},[4383,5654,4889],{"class":4389},[4383,5656,5657,5659,5661,5663,5665,5667,5669,5671,5674,5676],{"class":4385,"line":4968},[4383,5658,4895],{"class":4389},[4383,5660,4198],{"class":4393},[4383,5662,4397],{"class":4396},[4383,5664,4401],{"class":4400},[4383,5666,4405],{"class":4404},[4383,5668,4879],{"class":4412},[4383,5670,3840],{"class":4408},[4383,5672,5673],{"class":4412},"panel",[4383,5675,4440],{"class":4404},[4383,5677,4889],{"class":4389},[4383,5679,5680,5682,5684,5686,5688,5690,5692,5694,5697,5699,5701,5704,5706,5708],{"class":4385,"line":4976},[4383,5681,5106],{"class":4389},[4383,5683,4241],{"class":4393},[4383,5685,4397],{"class":4396},[4383,5687,4401],{"class":4400},[4383,5689,4405],{"class":4404},[4383,5691,4879],{"class":4412},[4383,5693,3840],{"class":4408},[4383,5695,5696],{"class":4412},"label",[4383,5698,4440],{"class":4404},[4383,5700,4915],{"class":4389},[4383,5702,5703],{"class":4400},"StyleSheet.flatten([...]) →",[4383,5705,4921],{"class":4389},[4383,5707,4241],{"class":4393},[4383,5709,4889],{"class":4389},[4383,5711,5712,5714,5716,5718,5720,5722,5724,5726,5728,5730,5732,5734,5737,5739,5742,5744,5746,5748,5751,5753,5756,5758,5760,5762,5764],{"class":4385,"line":5016},[4383,5713,5106],{"class":4389},[4383,5715,4241],{"class":4393},[4383,5717,4397],{"class":4396},[4383,5719,4401],{"class":4400},[4383,5721,4405],{"class":4404},[4383,5723,4879],{"class":4412},[4383,5725,3840],{"class":4408},[4383,5727,3764],{"class":4412},[4383,5729,4440],{"class":4404},[4383,5731,4915],{"class":4389},[4383,5733,4405],{"class":4404},[4383,5735,5736],{"class":4828},"JSON",[4383,5738,3840],{"class":4408},[4383,5740,5741],{"class":4812},"stringify",[4383,5743,4842],{"class":4408},[4383,5745,5641],{"class":4412},[4383,5747,3767],{"class":4408},[4383,5749,5750],{"class":4404},"null",[4383,5752,3767],{"class":4408},[4383,5754,5755],{"class":4416},"2",[4383,5757,4141],{"class":4408},[4383,5759,4440],{"class":4404},[4383,5761,4921],{"class":4389},[4383,5763,4241],{"class":4393},[4383,5765,4889],{"class":4389},[4383,5767,5768,5770,5772],{"class":4385,"line":5039},[4383,5769,4961],{"class":4389},[4383,5771,4198],{"class":4393},[4383,5773,4889],{"class":4389},[4383,5775,5776,5778,5780,5782,5784,5786,5788,5790,5792,5794],{"class":4385,"line":5053},[4383,5777,4895],{"class":4389},[4383,5779,4241],{"class":4393},[4383,5781,4397],{"class":4396},[4383,5783,4401],{"class":4400},[4383,5785,4405],{"class":4404},[4383,5787,4879],{"class":4412},[4383,5789,3840],{"class":4408},[4383,5791,4945],{"class":4412},[4383,5793,4440],{"class":4404},[4383,5795,4889],{"class":4389},[4383,5797,5798],{"class":4385,"line":5072},[4383,5799,5800],{"class":4400},"        fontSize: 22 (з emphasis), color: #2563EB (з останнього шару).\n",[4383,5802,5803,5805,5807],{"class":4385,"line":5089},[4383,5804,4961],{"class":4389},[4383,5806,4241],{"class":4393},[4383,5808,4889],{"class":4389},[4383,5810,5811,5813,5815],{"class":4385,"line":5097},[4383,5812,5164],{"class":4389},[4383,5814,4198],{"class":4393},[4383,5816,4889],{"class":4389},[4383,5818,5819],{"class":4385,"line":5103},[4383,5820,5174],{"class":4400},[4383,5822,5823],{"class":4385,"line":5152},[4383,5824,5013],{"class":4400},[4383,5826,5827],{"class":4385,"line":5161},[4383,5828,4797],{"emptyLinePlaceholder":4796},[4383,5830,5831,5833,5835,5837,5839,5841,5843],{"class":4385,"line":5171},[4383,5832,5190],{"class":4404},[4383,5834,5062],{"class":4828},[4383,5836,5195],{"class":4400},[4383,5838,3803],{"class":4412},[4383,5840,3840],{"class":4400},[4383,5842,4495],{"class":4812},[4383,5844,5204],{"class":4400},[4383,5846,5847,5849,5851,5853,5855,5857,5859,5861,5863,5865,5867,5869,5872,5874,5876,5879,5881],{"class":4385,"line":5177},[4383,5848,5210],{"class":4412},[4383,5850,4745],{"class":4400},[4383,5852,4413],{"class":4412},[4383,5854,4417],{"class":4416},[4383,5856,3767],{"class":4400},[4383,5858,4430],{"class":4412},[4383,5860,4434],{"class":4433},[4383,5862,3767],{"class":4400},[4383,5864,4422],{"class":4412},[4383,5866,5286],{"class":4416},[4383,5868,3767],{"class":4400},[4383,5870,5871],{"class":4412},"justifyContent:",[4383,5873,5253],{"class":4433},[4383,5875,3767],{"class":4400},[4383,5877,5878],{"class":4412},"gap:",[4383,5880,5362],{"class":4416},[4383,5882,5305],{"class":4400},[4383,5884,5885,5888,5890,5892,5894,5896,5898,5900],{"class":4385,"line":5182},[4383,5886,5887],{"class":4412},"  titleBase:",[4383,5889,4745],{"class":4400},[4383,5891,5283],{"class":4412},[4383,5893,4425],{"class":4416},[4383,5895,3767],{"class":4400},[4383,5897,5299],{"class":4412},[4383,5899,5325],{"class":4433},[4383,5901,5305],{"class":4400},[4383,5903,5904,5907,5909,5911,5914,5916,5918,5921],{"class":4385,"line":5187},[4383,5905,5906],{"class":4412},"  titleEmphasis:",[4383,5908,4745],{"class":4400},[4383,5910,5283],{"class":4412},[4383,5912,5913],{"class":4416}," 22",[4383,5915,3767],{"class":4400},[4383,5917,5291],{"class":4412},[4383,5919,5920],{"class":4433}," '800'",[4383,5922,5305],{"class":4400},[4383,5924,5925,5928],{"class":4385,"line":5207},[4383,5926,5927],{"class":4412},"  panel:",[4383,5929,5213],{"class":4400},[4383,5931,5932,5934,5936],{"class":4385,"line":5216},[4383,5933,5229],{"class":4412},[4383,5935,5433],{"class":4433},[4383,5937,5050],{"class":4400},[4383,5939,5940,5942,5944],{"class":4385,"line":5226},[4383,5941,5370],{"class":4412},[4383,5943,5264],{"class":4416},[4383,5945,5050],{"class":4400},[4383,5947,5948,5951,5953],{"class":4385,"line":5236},[4383,5949,5950],{"class":4412},"    borderWidth:",[4383,5952,4417],{"class":4416},[4383,5954,5050],{"class":4400},[4383,5956,5957,5960,5963],{"class":4385,"line":5247},[4383,5958,5959],{"class":4412},"    borderColor:",[4383,5961,5962],{"class":4433}," '#E2E8F0'",[4383,5964,5050],{"class":4400},[4383,5966,5967,5969,5971],{"class":4385,"line":5258},[4383,5968,5239],{"class":4412},[4383,5970,5264],{"class":4416},[4383,5972,5050],{"class":4400},[4383,5974,5975],{"class":4385,"line":5269},[4383,5976,5272],{"class":4400},[4383,5978,5979,5982,5984,5986,5988,5990,5992,5995,5997,5999,6001,6003,6006,6009],{"class":4385,"line":5275},[4383,5980,5981],{"class":4412},"  label:",[4383,5983,4745],{"class":4400},[4383,5985,5283],{"class":4412},[4383,5987,5264],{"class":4416},[4383,5989,3767],{"class":4400},[4383,5991,5291],{"class":4412},[4383,5993,5994],{"class":4433}," '600'",[4383,5996,3767],{"class":4400},[4383,5998,5299],{"class":4412},[4383,6000,5325],{"class":4433},[4383,6002,3767],{"class":4400},[4383,6004,6005],{"class":4412},"marginBottom:",[4383,6007,6008],{"class":4416}," 6",[4383,6010,5305],{"class":4400},[4383,6012,6013,6016,6018,6021,6024,6026,6028,6030,6032,6034,6036,6038,6040,6042],{"class":4385,"line":5308},[4383,6014,6015],{"class":4412},"  code:",[4383,6017,4745],{"class":4400},[4383,6019,6020],{"class":4412},"fontFamily:",[4383,6022,6023],{"class":4433}," 'monospace'",[4383,6025,3767],{"class":4400},[4383,6027,5283],{"class":4412},[4383,6029,5264],{"class":4416},[4383,6031,3767],{"class":4400},[4383,6033,5299],{"class":4412},[4383,6035,5302],{"class":4433},[4383,6037,3767],{"class":4400},[4383,6039,5330],{"class":4412},[4383,6041,5333],{"class":4416},[4383,6043,5305],{"class":4400},[4383,6045,6046,6048,6050,6052,6054,6056,6058,6060,6062,6064,6066],{"class":4385,"line":5338},[4383,6047,5311],{"class":4412},[4383,6049,4745],{"class":4400},[4383,6051,5283],{"class":4412},[4383,6053,5318],{"class":4416},[4383,6055,3767],{"class":4400},[4383,6057,5299],{"class":4412},[4383,6059,5325],{"class":4433},[4383,6061,3767],{"class":4400},[4383,6063,5330],{"class":4412},[4383,6065,5333],{"class":4416},[4383,6067,5305],{"class":4400},[4383,6069,6070],{"class":4385,"line":5346},[4383,6071,5453],{"class":4400},[3820,6073,6075,6076,6078,6079],{"id":6074},"демо-3-absolutefill-vs-absolutefillobject","Демо 3: ",[3764,6077,4680],{}," vs ",[3764,6080,6081],{},"absoluteFillObject",[3743,6083,6084,6085,6087,6088,6091,6092,4231,6095,6098],{},"Обидві картки тягнуть шар на весь батько. Зліва — ",[3764,6086,4647],{}," + другий стиль у масиві. Справа — один об’єкт через ",[3764,6089,6090],{},"...absoluteFillObject"," (зручно додати ",[3764,6093,6094],{},"backgroundColor",[3764,6096,6097],{},"zIndex"," «на місці»).",[4727,6100,6105],{"device":6101,"filename":6102,"title":6103,"height":6104},"android","AbsoluteFillCompare.tsx","absoluteFill vs absoluteFillObject",560,[4374,6106,6108],{"className":4376,"code":6107,"language":4378,"meta":4379,"style":4379},"import { View, Text, StyleSheet } from 'react-native';\n\nexport default function App() {\n  return (\n    \u003CView style={styles.screen}>\n      \u003CText style={styles.h}>absoluteFill\u003C\u002FText>\n      \u003CView style={styles.card}>\n        \u003CText style={styles.cardText}>Фон картки\u003C\u002FText>\n        \u003CView style={[StyleSheet.absoluteFill, styles.overlayA]}>\n          \u003CText style={styles.overlayText}>Fill\u003C\u002FText>\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CText style={styles.h}>absoluteFillObject\u003C\u002FText>\n      \u003CView style={styles.card}>\n        \u003CText style={styles.cardText}>Фон картки\u003C\u002FText>\n        \u003CView\n          style={{\n            ...StyleSheet.absoluteFillObject,\n            backgroundColor: 'rgba(37, 99, 235, 0.55)',\n            alignItems: 'center',\n            justifyContent: 'center',\n          }}\n        >\n          \u003CText style={styles.overlayText}>Object\u003C\u002FText>\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CText style={styles.hint}>\n        Обидва покривають батька. Object зручний, коли хочете один style-об’єкт\n        зі спред-оператором.\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, backgroundColor: '#F8FAFC', padding: 20, justifyContent: 'center', gap: 10 },\n  h: { fontSize: 14, fontWeight: '700', color: '#0f172a' },\n  card: {\n    height: 100,\n    borderRadius: 14,\n    backgroundColor: '#dbeafe',\n    alignItems: 'center',\n    justifyContent: 'center',\n    overflow: 'hidden',\n  },\n  cardText: { fontSize: 15, fontWeight: '600', color: '#1e3a8a' },\n  overlayA: {\n    backgroundColor: 'rgba(15, 23, 42, 0.55)',\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  overlayText: { color: '#fff', fontWeight: '800', fontSize: 16 },\n  hint: { fontSize: 13, color: '#64748b', lineHeight: 18, marginTop: 4 },\n});\n",[3764,6109,6110,6134,6138,6150,6156,6178,6209,6232,6264,6301,6334,6343,6351,6355,6385,6407,6437,6444,6456,6469,6479,6488,6497,6504,6509,6540,6548,6556,6560,6582,6587,6592,6600,6608,6612,6616,6620,6636,6673,6698,6705,6715,6723,6732,6740,6748,6758,6763,6791,6799,6809,6818,6827,6832,6858,6891],{"__ignoreMap":4379},[4383,6111,6112,6114,6116,6118,6120,6122,6124,6126,6128,6130,6132],{"class":4385,"line":4386},[4383,6113,4742],{"class":4741},[4383,6115,4745],{"class":4400},[4383,6117,4198],{"class":4412},[4383,6119,3767],{"class":4400},[4383,6121,4241],{"class":4412},[4383,6123,3767],{"class":4400},[4383,6125,3803],{"class":4412},[4383,6127,4751],{"class":4400},[4383,6129,4754],{"class":4741},[4383,6131,4788],{"class":4433},[4383,6133,4760],{"class":4400},[4383,6135,6136],{"class":4385,"line":4763},[4383,6137,4797],{"emptyLinePlaceholder":4796},[4383,6139,6140,6142,6144,6146,6148],{"class":4385,"line":4793},[4383,6141,4803],{"class":4741},[4383,6143,4806],{"class":4741},[4383,6145,4809],{"class":4404},[4383,6147,4813],{"class":4812},[4383,6149,4816],{"class":4400},[4383,6151,6152,6154],{"class":4385,"line":4800},[4383,6153,4859],{"class":4741},[4383,6155,4862],{"class":4400},[4383,6157,6158,6160,6162,6164,6166,6168,6170,6172,6174,6176],{"class":4385,"line":4819},[4383,6159,4868],{"class":4389},[4383,6161,4198],{"class":4393},[4383,6163,4397],{"class":4396},[4383,6165,4401],{"class":4400},[4383,6167,4405],{"class":4404},[4383,6169,4879],{"class":4412},[4383,6171,3840],{"class":4408},[4383,6173,4884],{"class":4412},[4383,6175,4440],{"class":4404},[4383,6177,4889],{"class":4389},[4383,6179,6180,6182,6184,6186,6188,6190,6192,6194,6197,6199,6201,6203,6205,6207],{"class":4385,"line":4851},[4383,6181,4895],{"class":4389},[4383,6183,4241],{"class":4393},[4383,6185,4397],{"class":4396},[4383,6187,4401],{"class":4400},[4383,6189,4405],{"class":4404},[4383,6191,4879],{"class":4412},[4383,6193,3840],{"class":4408},[4383,6195,6196],{"class":4412},"h",[4383,6198,4440],{"class":4404},[4383,6200,4915],{"class":4389},[4383,6202,4680],{"class":4400},[4383,6204,4921],{"class":4389},[4383,6206,4241],{"class":4393},[4383,6208,4889],{"class":4389},[4383,6210,6211,6213,6215,6217,6219,6221,6223,6225,6228,6230],{"class":4385,"line":4856},[4383,6212,4895],{"class":4389},[4383,6214,4198],{"class":4393},[4383,6216,4397],{"class":4396},[4383,6218,4401],{"class":4400},[4383,6220,4405],{"class":4404},[4383,6222,4879],{"class":4412},[4383,6224,3840],{"class":4408},[4383,6226,6227],{"class":4412},"card",[4383,6229,4440],{"class":4404},[4383,6231,4889],{"class":4389},[4383,6233,6234,6236,6238,6240,6242,6244,6246,6248,6251,6253,6255,6258,6260,6262],{"class":4385,"line":4865},[4383,6235,5106],{"class":4389},[4383,6237,4241],{"class":4393},[4383,6239,4397],{"class":4396},[4383,6241,4401],{"class":4400},[4383,6243,4405],{"class":4404},[4383,6245,4879],{"class":4412},[4383,6247,3840],{"class":4408},[4383,6249,6250],{"class":4412},"cardText",[4383,6252,4440],{"class":4404},[4383,6254,4915],{"class":4389},[4383,6256,6257],{"class":4400},"Фон картки",[4383,6259,4921],{"class":4389},[4383,6261,4241],{"class":4393},[4383,6263,4889],{"class":4389},[4383,6265,6266,6268,6270,6272,6274,6276,6279,6281,6283,6285,6287,6289,6291,6294,6297,6299],{"class":4385,"line":4892},[4383,6267,5106],{"class":4389},[4383,6269,4198],{"class":4393},[4383,6271,4397],{"class":4396},[4383,6273,4401],{"class":4400},[4383,6275,4405],{"class":4404},[4383,6277,6278],{"class":4408},"[",[4383,6280,3803],{"class":4412},[4383,6282,3840],{"class":4408},[4383,6284,4680],{"class":4412},[4383,6286,3767],{"class":4408},[4383,6288,4879],{"class":4412},[4383,6290,3840],{"class":4408},[4383,6292,6293],{"class":4412},"overlayA",[4383,6295,6296],{"class":4408},"]",[4383,6298,4440],{"class":4404},[4383,6300,4889],{"class":4389},[4383,6302,6303,6306,6308,6310,6312,6314,6316,6318,6321,6323,6325,6328,6330,6332],{"class":4385,"line":4928},[4383,6304,6305],{"class":4389},"          \u003C",[4383,6307,4241],{"class":4393},[4383,6309,4397],{"class":4396},[4383,6311,4401],{"class":4400},[4383,6313,4405],{"class":4404},[4383,6315,4879],{"class":4412},[4383,6317,3840],{"class":4408},[4383,6319,6320],{"class":4412},"overlayText",[4383,6322,4440],{"class":4404},[4383,6324,4915],{"class":4389},[4383,6326,6327],{"class":4400},"Fill",[4383,6329,4921],{"class":4389},[4383,6331,4241],{"class":4393},[4383,6333,4889],{"class":4389},[4383,6335,6336,6339,6341],{"class":4385,"line":4952},[4383,6337,6338],{"class":4389},"        \u003C\u002F",[4383,6340,4198],{"class":4393},[4383,6342,4889],{"class":4389},[4383,6344,6345,6347,6349],{"class":4385,"line":4958},[4383,6346,4961],{"class":4389},[4383,6348,4198],{"class":4393},[4383,6350,4889],{"class":4389},[4383,6352,6353],{"class":4385,"line":4968},[4383,6354,4797],{"emptyLinePlaceholder":4796},[4383,6356,6357,6359,6361,6363,6365,6367,6369,6371,6373,6375,6377,6379,6381,6383],{"class":4385,"line":4976},[4383,6358,4895],{"class":4389},[4383,6360,4241],{"class":4393},[4383,6362,4397],{"class":4396},[4383,6364,4401],{"class":4400},[4383,6366,4405],{"class":4404},[4383,6368,4879],{"class":4412},[4383,6370,3840],{"class":4408},[4383,6372,6196],{"class":4412},[4383,6374,4440],{"class":4404},[4383,6376,4915],{"class":4389},[4383,6378,6081],{"class":4400},[4383,6380,4921],{"class":4389},[4383,6382,4241],{"class":4393},[4383,6384,4889],{"class":4389},[4383,6386,6387,6389,6391,6393,6395,6397,6399,6401,6403,6405],{"class":4385,"line":5016},[4383,6388,4895],{"class":4389},[4383,6390,4198],{"class":4393},[4383,6392,4397],{"class":4396},[4383,6394,4401],{"class":4400},[4383,6396,4405],{"class":4404},[4383,6398,4879],{"class":4412},[4383,6400,3840],{"class":4408},[4383,6402,6227],{"class":4412},[4383,6404,4440],{"class":4404},[4383,6406,4889],{"class":4389},[4383,6408,6409,6411,6413,6415,6417,6419,6421,6423,6425,6427,6429,6431,6433,6435],{"class":4385,"line":5039},[4383,6410,5106],{"class":4389},[4383,6412,4241],{"class":4393},[4383,6414,4397],{"class":4396},[4383,6416,4401],{"class":4400},[4383,6418,4405],{"class":4404},[4383,6420,4879],{"class":4412},[4383,6422,3840],{"class":4408},[4383,6424,6250],{"class":4412},[4383,6426,4440],{"class":4404},[4383,6428,4915],{"class":4389},[4383,6430,6257],{"class":4400},[4383,6432,4921],{"class":4389},[4383,6434,4241],{"class":4393},[4383,6436,4889],{"class":4389},[4383,6438,6439,6441],{"class":4385,"line":5053},[4383,6440,5106],{"class":4389},[4383,6442,6443],{"class":4393},"View\n",[4383,6445,6446,6449,6451,6453],{"class":4385,"line":5072},[4383,6447,6448],{"class":4396},"          style",[4383,6450,4401],{"class":4400},[4383,6452,4405],{"class":4404},[4383,6454,6455],{"class":4408},"{\n",[4383,6457,6458,6461,6463,6465,6467],{"class":4385,"line":5089},[4383,6459,6460],{"class":4400},"            ...",[4383,6462,3803],{"class":4412},[4383,6464,3840],{"class":4408},[4383,6466,6081],{"class":4412},[4383,6468,5050],{"class":4408},[4383,6470,6471,6474,6477],{"class":4385,"line":5097},[4383,6472,6473],{"class":4412},"            backgroundColor:",[4383,6475,6476],{"class":4433}," 'rgba(37, 99, 235, 0.55)'",[4383,6478,5050],{"class":4408},[4383,6480,6481,6484,6486],{"class":4385,"line":5103},[4383,6482,6483],{"class":4412},"            alignItems:",[4383,6485,5253],{"class":4433},[4383,6487,5050],{"class":4408},[4383,6489,6490,6493,6495],{"class":4385,"line":5152},[4383,6491,6492],{"class":4412},"            justifyContent:",[4383,6494,5253],{"class":4433},[4383,6496,5050],{"class":4408},[4383,6498,6499,6502],{"class":4385,"line":5161},[4383,6500,6501],{"class":4408},"          }",[4383,6503,5013],{"class":4404},[4383,6505,6506],{"class":4385,"line":5171},[4383,6507,6508],{"class":4389},"        >\n",[4383,6510,6511,6513,6515,6517,6519,6521,6523,6525,6527,6529,6531,6534,6536,6538],{"class":4385,"line":5177},[4383,6512,6305],{"class":4389},[4383,6514,4241],{"class":4393},[4383,6516,4397],{"class":4396},[4383,6518,4401],{"class":4400},[4383,6520,4405],{"class":4404},[4383,6522,4879],{"class":4412},[4383,6524,3840],{"class":4408},[4383,6526,6320],{"class":4412},[4383,6528,4440],{"class":4404},[4383,6530,4915],{"class":4389},[4383,6532,6533],{"class":4400},"Object",[4383,6535,4921],{"class":4389},[4383,6537,4241],{"class":4393},[4383,6539,4889],{"class":4389},[4383,6541,6542,6544,6546],{"class":4385,"line":5182},[4383,6543,6338],{"class":4389},[4383,6545,4198],{"class":4393},[4383,6547,4889],{"class":4389},[4383,6549,6550,6552,6554],{"class":4385,"line":5187},[4383,6551,4961],{"class":4389},[4383,6553,4198],{"class":4393},[4383,6555,4889],{"class":4389},[4383,6557,6558],{"class":4385,"line":5207},[4383,6559,4797],{"emptyLinePlaceholder":4796},[4383,6561,6562,6564,6566,6568,6570,6572,6574,6576,6578,6580],{"class":4385,"line":5216},[4383,6563,4895],{"class":4389},[4383,6565,4241],{"class":4393},[4383,6567,4397],{"class":4396},[4383,6569,4401],{"class":4400},[4383,6571,4405],{"class":4404},[4383,6573,4879],{"class":4412},[4383,6575,3840],{"class":4408},[4383,6577,4945],{"class":4412},[4383,6579,4440],{"class":4404},[4383,6581,4889],{"class":4389},[4383,6583,6584],{"class":4385,"line":5226},[4383,6585,6586],{"class":4400},"        Обидва покривають батька. Object зручний, коли хочете один style-об’єкт\n",[4383,6588,6589],{"class":4385,"line":5236},[4383,6590,6591],{"class":4400},"        зі спред-оператором.\n",[4383,6593,6594,6596,6598],{"class":4385,"line":5247},[4383,6595,4961],{"class":4389},[4383,6597,4241],{"class":4393},[4383,6599,4889],{"class":4389},[4383,6601,6602,6604,6606],{"class":4385,"line":5258},[4383,6603,5164],{"class":4389},[4383,6605,4198],{"class":4393},[4383,6607,4889],{"class":4389},[4383,6609,6610],{"class":4385,"line":5269},[4383,6611,5174],{"class":4400},[4383,6613,6614],{"class":4385,"line":5275},[4383,6615,5013],{"class":4400},[4383,6617,6618],{"class":4385,"line":5308},[4383,6619,4797],{"emptyLinePlaceholder":4796},[4383,6621,6622,6624,6626,6628,6630,6632,6634],{"class":4385,"line":5338},[4383,6623,5190],{"class":4404},[4383,6625,5062],{"class":4828},[4383,6627,5195],{"class":4400},[4383,6629,3803],{"class":4412},[4383,6631,3840],{"class":4400},[4383,6633,4495],{"class":4812},[4383,6635,5204],{"class":4400},[4383,6637,6638,6640,6642,6644,6646,6648,6650,6652,6654,6656,6658,6660,6662,6664,6666,6668,6671],{"class":4385,"line":5346},[4383,6639,5210],{"class":4412},[4383,6641,4745],{"class":4400},[4383,6643,4413],{"class":4412},[4383,6645,4417],{"class":4416},[4383,6647,3767],{"class":4400},[4383,6649,4430],{"class":4412},[4383,6651,4434],{"class":4433},[4383,6653,3767],{"class":4400},[4383,6655,4422],{"class":4412},[4383,6657,5286],{"class":4416},[4383,6659,3767],{"class":4400},[4383,6661,5871],{"class":4412},[4383,6663,5253],{"class":4433},[4383,6665,3767],{"class":4400},[4383,6667,5878],{"class":4412},[4383,6669,6670],{"class":4416}," 10",[4383,6672,5305],{"class":4400},[4383,6674,6675,6678,6680,6682,6684,6686,6688,6690,6692,6694,6696],{"class":4385,"line":5356},[4383,6676,6677],{"class":4412},"  h:",[4383,6679,4745],{"class":4400},[4383,6681,5283],{"class":4412},[4383,6683,5362],{"class":4416},[4383,6685,3767],{"class":4400},[4383,6687,5291],{"class":4412},[4383,6689,5294],{"class":4433},[4383,6691,3767],{"class":4400},[4383,6693,5299],{"class":4412},[4383,6695,5302],{"class":4433},[4383,6697,5305],{"class":4400},[4383,6699,6700,6703],{"class":4385,"line":5367},[4383,6701,6702],{"class":4412},"  card:",[4383,6704,5213],{"class":4400},[4383,6706,6707,6710,6713],{"class":4385,"line":5377},[4383,6708,6709],{"class":4412},"    height:",[4383,6711,6712],{"class":4416}," 100",[4383,6714,5050],{"class":4400},[4383,6716,6717,6719,6721],{"class":4385,"line":5387},[4383,6718,5370],{"class":4412},[4383,6720,5362],{"class":4416},[4383,6722,5050],{"class":4400},[4383,6724,6725,6727,6730],{"class":4385,"line":5392},[4383,6726,5229],{"class":4412},[4383,6728,6729],{"class":4433}," '#dbeafe'",[4383,6731,5050],{"class":4400},[4383,6733,6734,6736,6738],{"class":4385,"line":5407},[4383,6735,5380],{"class":4412},[4383,6737,5253],{"class":4433},[4383,6739,5050],{"class":4400},[4383,6741,6742,6744,6746],{"class":4385,"line":5423},[4383,6743,5250],{"class":4412},[4383,6745,5253],{"class":4433},[4383,6747,5050],{"class":4400},[4383,6749,6750,6753,6756],{"class":4385,"line":5450},[4383,6751,6752],{"class":4412},"    overflow:",[4383,6754,6755],{"class":4433}," 'hidden'",[4383,6757,5050],{"class":4400},[4383,6759,6761],{"class":4385,"line":6760},47,[4383,6762,5272],{"class":4400},[4383,6764,6766,6769,6771,6773,6776,6778,6780,6782,6784,6786,6789],{"class":4385,"line":6765},48,[4383,6767,6768],{"class":4412},"  cardText:",[4383,6770,4745],{"class":4400},[4383,6772,5283],{"class":4412},[4383,6774,6775],{"class":4416}," 15",[4383,6777,3767],{"class":4400},[4383,6779,5291],{"class":4412},[4383,6781,5994],{"class":4433},[4383,6783,3767],{"class":4400},[4383,6785,5299],{"class":4412},[4383,6787,6788],{"class":4433}," '#1e3a8a'",[4383,6790,5305],{"class":4400},[4383,6792,6794,6797],{"class":4385,"line":6793},49,[4383,6795,6796],{"class":4412},"  overlayA:",[4383,6798,5213],{"class":4400},[4383,6800,6802,6804,6807],{"class":4385,"line":6801},50,[4383,6803,5229],{"class":4412},[4383,6805,6806],{"class":4433}," 'rgba(15, 23, 42, 0.55)'",[4383,6808,5050],{"class":4400},[4383,6810,6812,6814,6816],{"class":4385,"line":6811},51,[4383,6813,5380],{"class":4412},[4383,6815,5253],{"class":4433},[4383,6817,5050],{"class":4400},[4383,6819,6821,6823,6825],{"class":4385,"line":6820},52,[4383,6822,5250],{"class":4412},[4383,6824,5253],{"class":4433},[4383,6826,5050],{"class":4400},[4383,6828,6830],{"class":4385,"line":6829},53,[4383,6831,5272],{"class":4400},[4383,6833,6835,6838,6840,6842,6844,6846,6848,6850,6852,6854,6856],{"class":4385,"line":6834},54,[4383,6836,6837],{"class":4412},"  overlayText:",[4383,6839,4745],{"class":4400},[4383,6841,5299],{"class":4412},[4383,6843,5433],{"class":4433},[4383,6845,3767],{"class":4400},[4383,6847,5291],{"class":4412},[4383,6849,5920],{"class":4433},[4383,6851,3767],{"class":4400},[4383,6853,5283],{"class":4412},[4383,6855,4425],{"class":4416},[4383,6857,5305],{"class":4400},[4383,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877,6879,6881,6883,6886,6889],{"class":4385,"line":6860},55,[4383,6862,5311],{"class":4412},[4383,6864,4745],{"class":4400},[4383,6866,5283],{"class":4412},[4383,6868,5318],{"class":4416},[4383,6870,3767],{"class":4400},[4383,6872,5299],{"class":4412},[4383,6874,5325],{"class":4433},[4383,6876,3767],{"class":4400},[4383,6878,5330],{"class":4412},[4383,6880,5333],{"class":4416},[4383,6882,3767],{"class":4400},[4383,6884,6885],{"class":4412},"marginTop:",[4383,6887,6888],{"class":4416}," 4",[4383,6890,5305],{"class":4400},[4383,6892,6894],{"class":4385,"line":6893},56,[4383,6895,5453],{"class":4400},[3820,6897,6899,6900,6078,6903],{"id":6898},"демо-4-hairlinewidth-vs-1","Демо 4: ",[3764,6901,6902],{},"hairlineWidth",[3764,6904,4704],{},[3743,6906,6907,6908,6911,6912,6914],{},"Два рядки списку: зверху розділювач ",[3756,6909,6910],{},"hairline",", знизу — звичайна ",[3764,6913,4704],{},". На Retina\u002Fвисокій щільності hairline виглядає тоншою й «системнішою».",[4727,6916,6919],{"device":4729,"filename":6917,"title":6918},"HairlineDemo.tsx","hairlineWidth vs 1",[4374,6920,6922],{"className":4376,"code":6921,"language":4378,"meta":4379,"style":4379},"import { View, Text, StyleSheet } from 'react-native';\n\nexport default function App() {\n  return (\n    \u003CView style={styles.screen}>\n      \u003CText style={styles.title}>Розділювачі\u003C\u002FText>\n\n      \u003CView style={styles.list}>\n        \u003CText style={styles.row}>Рядок A\u003C\u002FText>\n        \u003CView style={styles.hairline} \u002F>\n        \u003CText style={styles.row}>Рядок B (після hairline)\u003C\u002FText>\n        \u003CView style={styles.thick} \u002F>\n        \u003CText style={styles.row}>Рядок C (після border 1)\u003C\u002FText>\n      \u003C\u002FView>\n\n      \u003CText style={styles.meta}>\n        hairlineWidth = {String(StyleSheet.hairlineWidth)} (залежить від екрана)\n      \u003C\u002FText>\n      \u003CText style={styles.hint}>\n        Верхня лінія — StyleSheet.hairlineWidth. Нижня — borderWidth: 1.\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, backgroundColor: '#F8FAFC', padding: 24, justifyContent: 'center', gap: 14 },\n  title: { fontSize: 20, fontWeight: '700', color: '#0f172a' },\n  list: {\n    backgroundColor: '#fff',\n    borderRadius: 12,\n    borderWidth: 1,\n    borderColor: '#E2E8F0',\n    overflow: 'hidden',\n  },\n  row: { paddingHorizontal: 16, paddingVertical: 14, fontSize: 16, color: '#0f172a' },\n  hairline: {\n    height: StyleSheet.hairlineWidth,\n    backgroundColor: '#94a3b8',\n    marginHorizontal: 16,\n  },\n  thick: {\n    height: 1,\n    backgroundColor: '#94a3b8',\n    marginHorizontal: 16,\n  },\n  meta: { fontSize: 13, fontWeight: '600', color: '#2563EB' },\n  hint: { fontSize: 13, color: '#64748b', lineHeight: 18 },\n});\n",[3764,6923,6924,6948,6952,6964,6970,6992,7023,7027,7050,7082,7104,7135,7158,7189,7197,7201,7224,7249,7257,7279,7284,7292,7300,7304,7308,7312,7328,7364,7388,7395,7403,7411,7419,7427,7435,7439,7472,7479,7492,7500,7509,7513,7520,7528,7536,7544,7548,7573,7597],{"__ignoreMap":4379},[4383,6925,6926,6928,6930,6932,6934,6936,6938,6940,6942,6944,6946],{"class":4385,"line":4386},[4383,6927,4742],{"class":4741},[4383,6929,4745],{"class":4400},[4383,6931,4198],{"class":4412},[4383,6933,3767],{"class":4400},[4383,6935,4241],{"class":4412},[4383,6937,3767],{"class":4400},[4383,6939,3803],{"class":4412},[4383,6941,4751],{"class":4400},[4383,6943,4754],{"class":4741},[4383,6945,4788],{"class":4433},[4383,6947,4760],{"class":4400},[4383,6949,6950],{"class":4385,"line":4763},[4383,6951,4797],{"emptyLinePlaceholder":4796},[4383,6953,6954,6956,6958,6960,6962],{"class":4385,"line":4793},[4383,6955,4803],{"class":4741},[4383,6957,4806],{"class":4741},[4383,6959,4809],{"class":4404},[4383,6961,4813],{"class":4812},[4383,6963,4816],{"class":4400},[4383,6965,6966,6968],{"class":4385,"line":4800},[4383,6967,4859],{"class":4741},[4383,6969,4862],{"class":4400},[4383,6971,6972,6974,6976,6978,6980,6982,6984,6986,6988,6990],{"class":4385,"line":4819},[4383,6973,4868],{"class":4389},[4383,6975,4198],{"class":4393},[4383,6977,4397],{"class":4396},[4383,6979,4401],{"class":4400},[4383,6981,4405],{"class":4404},[4383,6983,4879],{"class":4412},[4383,6985,3840],{"class":4408},[4383,6987,4884],{"class":4412},[4383,6989,4440],{"class":4404},[4383,6991,4889],{"class":4389},[4383,6993,6994,6996,6998,7000,7002,7004,7006,7008,7010,7012,7014,7017,7019,7021],{"class":4385,"line":4851},[4383,6995,4895],{"class":4389},[4383,6997,4241],{"class":4393},[4383,6999,4397],{"class":4396},[4383,7001,4401],{"class":4400},[4383,7003,4405],{"class":4404},[4383,7005,4879],{"class":4412},[4383,7007,3840],{"class":4408},[4383,7009,4910],{"class":4412},[4383,7011,4440],{"class":4404},[4383,7013,4915],{"class":4389},[4383,7015,7016],{"class":4400},"Розділювачі",[4383,7018,4921],{"class":4389},[4383,7020,4241],{"class":4393},[4383,7022,4889],{"class":4389},[4383,7024,7025],{"class":4385,"line":4856},[4383,7026,4797],{"emptyLinePlaceholder":4796},[4383,7028,7029,7031,7033,7035,7037,7039,7041,7043,7046,7048],{"class":4385,"line":4865},[4383,7030,4895],{"class":4389},[4383,7032,4198],{"class":4393},[4383,7034,4397],{"class":4396},[4383,7036,4401],{"class":4400},[4383,7038,4405],{"class":4404},[4383,7040,4879],{"class":4412},[4383,7042,3840],{"class":4408},[4383,7044,7045],{"class":4412},"list",[4383,7047,4440],{"class":4404},[4383,7049,4889],{"class":4389},[4383,7051,7052,7054,7056,7058,7060,7062,7064,7066,7069,7071,7073,7076,7078,7080],{"class":4385,"line":4892},[4383,7053,5106],{"class":4389},[4383,7055,4241],{"class":4393},[4383,7057,4397],{"class":4396},[4383,7059,4401],{"class":4400},[4383,7061,4405],{"class":4404},[4383,7063,4879],{"class":4412},[4383,7065,3840],{"class":4408},[4383,7067,7068],{"class":4412},"row",[4383,7070,4440],{"class":4404},[4383,7072,4915],{"class":4389},[4383,7074,7075],{"class":4400},"Рядок A",[4383,7077,4921],{"class":4389},[4383,7079,4241],{"class":4393},[4383,7081,4889],{"class":4389},[4383,7083,7084,7086,7088,7090,7092,7094,7096,7098,7100,7102],{"class":4385,"line":4928},[4383,7085,5106],{"class":4389},[4383,7087,4198],{"class":4393},[4383,7089,4397],{"class":4396},[4383,7091,4401],{"class":4400},[4383,7093,4405],{"class":4404},[4383,7095,4879],{"class":4412},[4383,7097,3840],{"class":4408},[4383,7099,6910],{"class":4412},[4383,7101,4440],{"class":4404},[4383,7103,4443],{"class":4389},[4383,7105,7106,7108,7110,7112,7114,7116,7118,7120,7122,7124,7126,7129,7131,7133],{"class":4385,"line":4952},[4383,7107,5106],{"class":4389},[4383,7109,4241],{"class":4393},[4383,7111,4397],{"class":4396},[4383,7113,4401],{"class":4400},[4383,7115,4405],{"class":4404},[4383,7117,4879],{"class":4412},[4383,7119,3840],{"class":4408},[4383,7121,7068],{"class":4412},[4383,7123,4440],{"class":4404},[4383,7125,4915],{"class":4389},[4383,7127,7128],{"class":4400},"Рядок B (після hairline)",[4383,7130,4921],{"class":4389},[4383,7132,4241],{"class":4393},[4383,7134,4889],{"class":4389},[4383,7136,7137,7139,7141,7143,7145,7147,7149,7151,7154,7156],{"class":4385,"line":4958},[4383,7138,5106],{"class":4389},[4383,7140,4198],{"class":4393},[4383,7142,4397],{"class":4396},[4383,7144,4401],{"class":4400},[4383,7146,4405],{"class":4404},[4383,7148,4879],{"class":4412},[4383,7150,3840],{"class":4408},[4383,7152,7153],{"class":4412},"thick",[4383,7155,4440],{"class":4404},[4383,7157,4443],{"class":4389},[4383,7159,7160,7162,7164,7166,7168,7170,7172,7174,7176,7178,7180,7183,7185,7187],{"class":4385,"line":4968},[4383,7161,5106],{"class":4389},[4383,7163,4241],{"class":4393},[4383,7165,4397],{"class":4396},[4383,7167,4401],{"class":4400},[4383,7169,4405],{"class":4404},[4383,7171,4879],{"class":4412},[4383,7173,3840],{"class":4408},[4383,7175,7068],{"class":4412},[4383,7177,4440],{"class":4404},[4383,7179,4915],{"class":4389},[4383,7181,7182],{"class":4400},"Рядок C (після border 1)",[4383,7184,4921],{"class":4389},[4383,7186,4241],{"class":4393},[4383,7188,4889],{"class":4389},[4383,7190,7191,7193,7195],{"class":4385,"line":4976},[4383,7192,4961],{"class":4389},[4383,7194,4198],{"class":4393},[4383,7196,4889],{"class":4389},[4383,7198,7199],{"class":4385,"line":5016},[4383,7200,4797],{"emptyLinePlaceholder":4796},[4383,7202,7203,7205,7207,7209,7211,7213,7215,7217,7220,7222],{"class":4385,"line":5039},[4383,7204,4895],{"class":4389},[4383,7206,4241],{"class":4393},[4383,7208,4397],{"class":4396},[4383,7210,4401],{"class":4400},[4383,7212,4405],{"class":4404},[4383,7214,4879],{"class":4412},[4383,7216,3840],{"class":4408},[4383,7218,7219],{"class":4412},"meta",[4383,7221,4440],{"class":4404},[4383,7223,4889],{"class":4389},[4383,7225,7226,7229,7231,7234,7236,7238,7240,7242,7244,7246],{"class":4385,"line":5053},[4383,7227,7228],{"class":4400},"        hairlineWidth = ",[4383,7230,4405],{"class":4404},[4383,7232,7233],{"class":4812},"String",[4383,7235,4842],{"class":4408},[4383,7237,3803],{"class":4412},[4383,7239,3840],{"class":4408},[4383,7241,6902],{"class":4412},[4383,7243,4141],{"class":4408},[4383,7245,4440],{"class":4404},[4383,7247,7248],{"class":4400}," (залежить від екрана)\n",[4383,7250,7251,7253,7255],{"class":4385,"line":5072},[4383,7252,4961],{"class":4389},[4383,7254,4241],{"class":4393},[4383,7256,4889],{"class":4389},[4383,7258,7259,7261,7263,7265,7267,7269,7271,7273,7275,7277],{"class":4385,"line":5089},[4383,7260,4895],{"class":4389},[4383,7262,4241],{"class":4393},[4383,7264,4397],{"class":4396},[4383,7266,4401],{"class":4400},[4383,7268,4405],{"class":4404},[4383,7270,4879],{"class":4412},[4383,7272,3840],{"class":4408},[4383,7274,4945],{"class":4412},[4383,7276,4440],{"class":4404},[4383,7278,4889],{"class":4389},[4383,7280,7281],{"class":4385,"line":5097},[4383,7282,7283],{"class":4400},"        Верхня лінія — StyleSheet.hairlineWidth. Нижня — borderWidth: 1.\n",[4383,7285,7286,7288,7290],{"class":4385,"line":5103},[4383,7287,4961],{"class":4389},[4383,7289,4241],{"class":4393},[4383,7291,4889],{"class":4389},[4383,7293,7294,7296,7298],{"class":4385,"line":5152},[4383,7295,5164],{"class":4389},[4383,7297,4198],{"class":4393},[4383,7299,4889],{"class":4389},[4383,7301,7302],{"class":4385,"line":5161},[4383,7303,5174],{"class":4400},[4383,7305,7306],{"class":4385,"line":5171},[4383,7307,5013],{"class":4400},[4383,7309,7310],{"class":4385,"line":5177},[4383,7311,4797],{"emptyLinePlaceholder":4796},[4383,7313,7314,7316,7318,7320,7322,7324,7326],{"class":4385,"line":5182},[4383,7315,5190],{"class":4404},[4383,7317,5062],{"class":4828},[4383,7319,5195],{"class":4400},[4383,7321,3803],{"class":4412},[4383,7323,3840],{"class":4400},[4383,7325,4495],{"class":4812},[4383,7327,5204],{"class":4400},[4383,7329,7330,7332,7334,7336,7338,7340,7342,7344,7346,7348,7350,7352,7354,7356,7358,7360,7362],{"class":4385,"line":5187},[4383,7331,5210],{"class":4412},[4383,7333,4745],{"class":4400},[4383,7335,4413],{"class":4412},[4383,7337,4417],{"class":4416},[4383,7339,3767],{"class":4400},[4383,7341,4430],{"class":4412},[4383,7343,4434],{"class":4433},[4383,7345,3767],{"class":4400},[4383,7347,4422],{"class":4412},[4383,7349,5242],{"class":4416},[4383,7351,3767],{"class":4400},[4383,7353,5871],{"class":4412},[4383,7355,5253],{"class":4433},[4383,7357,3767],{"class":4400},[4383,7359,5878],{"class":4412},[4383,7361,5362],{"class":4416},[4383,7363,5305],{"class":4400},[4383,7365,7366,7368,7370,7372,7374,7376,7378,7380,7382,7384,7386],{"class":4385,"line":5207},[4383,7367,5278],{"class":4412},[4383,7369,4745],{"class":4400},[4383,7371,5283],{"class":4412},[4383,7373,5286],{"class":4416},[4383,7375,3767],{"class":4400},[4383,7377,5291],{"class":4412},[4383,7379,5294],{"class":4433},[4383,7381,3767],{"class":4400},[4383,7383,5299],{"class":4412},[4383,7385,5302],{"class":4433},[4383,7387,5305],{"class":4400},[4383,7389,7390,7393],{"class":4385,"line":5216},[4383,7391,7392],{"class":4412},"  list:",[4383,7394,5213],{"class":4400},[4383,7396,7397,7399,7401],{"class":4385,"line":5226},[4383,7398,5229],{"class":4412},[4383,7400,5433],{"class":4433},[4383,7402,5050],{"class":4400},[4383,7404,7405,7407,7409],{"class":4385,"line":5236},[4383,7406,5370],{"class":4412},[4383,7408,5264],{"class":4416},[4383,7410,5050],{"class":4400},[4383,7412,7413,7415,7417],{"class":4385,"line":5247},[4383,7414,5950],{"class":4412},[4383,7416,4417],{"class":4416},[4383,7418,5050],{"class":4400},[4383,7420,7421,7423,7425],{"class":4385,"line":5258},[4383,7422,5959],{"class":4412},[4383,7424,5962],{"class":4433},[4383,7426,5050],{"class":4400},[4383,7428,7429,7431,7433],{"class":4385,"line":5269},[4383,7430,6752],{"class":4412},[4383,7432,6755],{"class":4433},[4383,7434,5050],{"class":4400},[4383,7436,7437],{"class":4385,"line":5275},[4383,7438,5272],{"class":4400},[4383,7440,7441,7444,7446,7449,7451,7453,7456,7458,7460,7462,7464,7466,7468,7470],{"class":4385,"line":5308},[4383,7442,7443],{"class":4412},"  row:",[4383,7445,4745],{"class":4400},[4383,7447,7448],{"class":4412},"paddingHorizontal:",[4383,7450,4425],{"class":4416},[4383,7452,3767],{"class":4400},[4383,7454,7455],{"class":4412},"paddingVertical:",[4383,7457,5362],{"class":4416},[4383,7459,3767],{"class":4400},[4383,7461,5283],{"class":4412},[4383,7463,4425],{"class":4416},[4383,7465,3767],{"class":4400},[4383,7467,5299],{"class":4412},[4383,7469,5302],{"class":4433},[4383,7471,5305],{"class":4400},[4383,7473,7474,7477],{"class":4385,"line":5338},[4383,7475,7476],{"class":4412},"  hairline:",[4383,7478,5213],{"class":4400},[4383,7480,7481,7483,7486,7488,7490],{"class":4385,"line":5346},[4383,7482,6709],{"class":4412},[4383,7484,7485],{"class":4412}," StyleSheet",[4383,7487,3840],{"class":4400},[4383,7489,6902],{"class":4412},[4383,7491,5050],{"class":4400},[4383,7493,7494,7496,7498],{"class":4385,"line":5356},[4383,7495,5229],{"class":4412},[4383,7497,5351],{"class":4433},[4383,7499,5050],{"class":4400},[4383,7501,7502,7505,7507],{"class":4385,"line":5367},[4383,7503,7504],{"class":4412},"    marginHorizontal:",[4383,7506,4425],{"class":4416},[4383,7508,5050],{"class":4400},[4383,7510,7511],{"class":4385,"line":5377},[4383,7512,5272],{"class":4400},[4383,7514,7515,7518],{"class":4385,"line":5387},[4383,7516,7517],{"class":4412},"  thick:",[4383,7519,5213],{"class":4400},[4383,7521,7522,7524,7526],{"class":4385,"line":5392},[4383,7523,6709],{"class":4412},[4383,7525,4417],{"class":4416},[4383,7527,5050],{"class":4400},[4383,7529,7530,7532,7534],{"class":4385,"line":5407},[4383,7531,5229],{"class":4412},[4383,7533,5351],{"class":4433},[4383,7535,5050],{"class":4400},[4383,7537,7538,7540,7542],{"class":4385,"line":5423},[4383,7539,7504],{"class":4412},[4383,7541,4425],{"class":4416},[4383,7543,5050],{"class":4400},[4383,7545,7546],{"class":4385,"line":5450},[4383,7547,5272],{"class":4400},[4383,7549,7550,7553,7555,7557,7559,7561,7563,7565,7567,7569,7571],{"class":4385,"line":6760},[4383,7551,7552],{"class":4412},"  meta:",[4383,7554,4745],{"class":4400},[4383,7556,5283],{"class":4412},[4383,7558,5318],{"class":4416},[4383,7560,3767],{"class":4400},[4383,7562,5291],{"class":4412},[4383,7564,5994],{"class":4433},[4383,7566,3767],{"class":4400},[4383,7568,5299],{"class":4412},[4383,7570,5402],{"class":4433},[4383,7572,5305],{"class":4400},[4383,7574,7575,7577,7579,7581,7583,7585,7587,7589,7591,7593,7595],{"class":4385,"line":6765},[4383,7576,5311],{"class":4412},[4383,7578,4745],{"class":4400},[4383,7580,5283],{"class":4412},[4383,7582,5318],{"class":4416},[4383,7584,3767],{"class":4400},[4383,7586,5299],{"class":4412},[4383,7588,5325],{"class":4433},[4383,7590,3767],{"class":4400},[4383,7592,5330],{"class":4412},[4383,7594,5333],{"class":4416},[4383,7596,5305],{"class":4400},[4383,7598,7599],{"class":4385,"line":6793},[4383,7600,5453],{"class":4400},[3820,7602,7604,7605,3858,7607,7609,7610,7609,7612,7609,7614,7609,7616,4141],{"id":7603},"демо-5-усе-разом-create-flatten-absolutefill-absolutefillobject-hairlinewidth","Демо 5: ",[3756,7606,4579],{},[3764,7608,4495],{}," · ",[3764,7611,5460],{},[3764,7613,4680],{},[3764,7615,6081],{},[3764,7617,6902],{},[3743,7619,7620,7621,7623,7624,7626,7627,7629,7630,7632],{},"Один екран-«візитка»: геометрія з ",[3764,7622,4495],{},", тонкі лінії hairline, підсумок ",[3764,7625,5460],{}," у підписі, кнопка відкриває оверлей через ",[3764,7628,4680],{},", бейдж «PRO» — через ",[3764,7631,6081],{}," у куті.",[4727,7634,7638],{"device":4729,"filename":7635,"title":7636,"height":7637},"StyleSheetAllApi.tsx","StyleSheet API · усе разом",700,[4374,7639,7641],{"className":4376,"code":7640,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\n\nexport default function App() {\n  const [locked, setLocked] = useState(false);\n\n  const titleFlat = StyleSheet.flatten([\n    styles.titleBase,\n    styles.titleStrong,\n    { color: '#0f172a' },\n  ]);\n\n  return (\n    \u003CView style={styles.screen}>\n      \u003CText style={titleFlat}>StyleSheet · all-in-one\u003C\u002FText>\n      \u003CText style={styles.sub}>\n        flatten title → fontSize {String((titleFlat as { fontSize?: number }).fontSize)}\n      \u003C\u002FText>\n\n      \u003CView style={styles.card}>\n        {\u002F* absoluteFillObject: кутовий бейдж *\u002F}\n        \u003CView\n          style={{\n            ...StyleSheet.absoluteFillObject,\n            top: 10,\n            left: undefined,\n            right: 10,\n            bottom: undefined,\n            width: 44,\n            height: 22,\n            borderRadius: 6,\n            backgroundColor: '#2563EB',\n            alignItems: 'center',\n            justifyContent: 'center',\n          }}\n        >\n          \u003CText style={styles.badgeText}>PRO\u003C\u002FText>\n        \u003C\u002FView>\n\n        \u003CText style={styles.name}>Карпати 2026\u003C\u002FText>\n        \u003CText style={styles.desc}>create тримає картку; hairline — розділювач.\u003C\u002FText>\n\n        \u003CView style={styles.hairline} \u002F>\n\n        \u003CText style={styles.meta}>12–18 червня · 6 днів\u003C\u002FText>\n\n        {\u002F* absoluteFill: затемнення поверх картки *\u002F}\n        {locked && (\n          \u003CView style={[StyleSheet.absoluteFill, styles.lockOverlay]}>\n            \u003CText style={styles.lockText}>Заблоковано\u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u003C\u002FView>\n\n      \u003CPressable\n        onPress={() => setLocked((v) => !v)}\n        style={({ pressed }) => [\n          styles.btn,\n          locked && styles.btnOn,\n          pressed && styles.btnPressed,\n        ]}\n      >\n        \u003CText style={styles.btnText}>\n          {locked ? 'Зняти оверлей (absoluteFill)' : 'Накрити absoluteFill'}\n        \u003C\u002FText>\n      \u003C\u002FPressable>\n\n      \u003CText style={styles.hint}>\n        create · flatten · absoluteFill · absoluteFillObject · hairlineWidth\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: {\n    flex: 1,\n    backgroundColor: '#F8FAFC',\n    padding: 20,\n    justifyContent: 'center',\n    gap: 12,\n  },\n  titleBase: { fontSize: 16 },\n  titleStrong: { fontSize: 20, fontWeight: '800' },\n  sub: { fontSize: 12, color: '#64748b', marginTop: -4 },\n  card: {\n    backgroundColor: '#fff',\n    borderRadius: 16,\n    borderWidth: 1,\n    borderColor: '#E2E8F0',\n    padding: 16,\n    minHeight: 150,\n    overflow: 'hidden',\n  },\n  badgeText: { color: '#fff', fontSize: 11, fontWeight: '800' },\n  name: { fontSize: 18, fontWeight: '700', color: '#0f172a', marginTop: 4 },\n  desc: { fontSize: 14, color: '#64748b', marginTop: 6, lineHeight: 20 },\n  hairline: {\n    height: StyleSheet.hairlineWidth,\n    backgroundColor: '#cbd5e1',\n    marginVertical: 12,\n  },\n  meta: { fontSize: 13, color: '#64748b' },\n  lockOverlay: {\n    backgroundColor: 'rgba(15, 23, 42, 0.62)',\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  lockText: { color: '#fff', fontWeight: '800', fontSize: 16 },\n  btn: {\n    backgroundColor: '#94a3b8',\n    paddingVertical: 14,\n    borderRadius: 12,\n    alignItems: 'center',\n  },\n  btnOn: { backgroundColor: '#2563EB' },\n  btnPressed: { opacity: 0.85 },\n  btnText: { color: '#fff', fontWeight: '700', fontSize: 14 },\n  hint: { fontSize: 12, color: '#94a3b8', textAlign: 'center' },\n});\n",[3764,7642,7643,7659,7687,7691,7703,7727,7731,7748,7758,7769,7779,7783,7787,7793,7815,7843,7866,7901,7909,7913,7935,7945,7951,7961,7973,7982,7992,8001,8010,8020,8029,8038,8046,8054,8062,8068,8072,8104,8112,8116,8148,8180,8184,8206,8210,8241,8245,8254,8264,8299,8332,8341,8348,8356,8360,8366,8397,8416,8427,8443,8458,8465,8470,8493,8513,8522,8531,8536,8559,8565,8574,8583,8588,8593,8598,8615,8622,8631,8640,8649,8658,8667,8672,8685,8705,8735,8742,8751,8760,8769,8778,8787,8798,8807,8812,8839,8871,8903,8910,8923,8933,8943,8948,8967,8975,8985,8994,9003,9008,9034,9041,9050,9059,9068,9077,9082,9095,9108,9133,9159],{"__ignoreMap":4379},[4383,7644,7645,7647,7649,7651,7653,7655,7657],{"class":4385,"line":4386},[4383,7646,4742],{"class":4741},[4383,7648,4745],{"class":4400},[4383,7650,4748],{"class":4412},[4383,7652,4751],{"class":4400},[4383,7654,4754],{"class":4741},[4383,7656,4757],{"class":4433},[4383,7658,4760],{"class":4400},[4383,7660,7661,7663,7665,7667,7669,7671,7673,7675,7677,7679,7681,7683,7685],{"class":4385,"line":4763},[4383,7662,4742],{"class":4741},[4383,7664,4745],{"class":4400},[4383,7666,4198],{"class":4412},[4383,7668,3767],{"class":4400},[4383,7670,4241],{"class":4412},[4383,7672,3767],{"class":4400},[4383,7674,4724],{"class":4412},[4383,7676,3767],{"class":4400},[4383,7678,3803],{"class":4412},[4383,7680,4751],{"class":4400},[4383,7682,4754],{"class":4741},[4383,7684,4788],{"class":4433},[4383,7686,4760],{"class":4400},[4383,7688,7689],{"class":4385,"line":4793},[4383,7690,4797],{"emptyLinePlaceholder":4796},[4383,7692,7693,7695,7697,7699,7701],{"class":4385,"line":4800},[4383,7694,4803],{"class":4741},[4383,7696,4806],{"class":4741},[4383,7698,4809],{"class":4404},[4383,7700,4813],{"class":4812},[4383,7702,4816],{"class":4400},[4383,7704,7705,7707,7709,7712,7714,7717,7719,7721,7723,7725],{"class":4385,"line":4819},[4383,7706,4822],{"class":4404},[4383,7708,4825],{"class":4400},[4383,7710,7711],{"class":4828},"locked",[4383,7713,3767],{"class":4400},[4383,7715,7716],{"class":4828},"setLocked",[4383,7718,4837],{"class":4400},[4383,7720,4748],{"class":4812},[4383,7722,4842],{"class":4400},[4383,7724,4845],{"class":4404},[4383,7726,4848],{"class":4400},[4383,7728,7729],{"class":4385,"line":4851},[4383,7730,4797],{"emptyLinePlaceholder":4796},[4383,7732,7733,7735,7738,7740,7742,7744,7746],{"class":4385,"line":4856},[4383,7734,4822],{"class":4404},[4383,7736,7737],{"class":4828}," titleFlat",[4383,7739,5195],{"class":4400},[4383,7741,3803],{"class":4412},[4383,7743,3840],{"class":4400},[4383,7745,5460],{"class":4812},[4383,7747,5542],{"class":4400},[4383,7749,7750,7752,7754,7756],{"class":4385,"line":4865},[4383,7751,5547],{"class":4412},[4383,7753,3840],{"class":4400},[4383,7755,5552],{"class":4412},[4383,7757,5050],{"class":4400},[4383,7759,7760,7762,7764,7767],{"class":4385,"line":4892},[4383,7761,5547],{"class":4412},[4383,7763,3840],{"class":4400},[4383,7765,7766],{"class":4412},"titleStrong",[4383,7768,5050],{"class":4400},[4383,7770,7771,7773,7775,7777],{"class":4385,"line":4928},[4383,7772,5579],{"class":4400},[4383,7774,5299],{"class":4412},[4383,7776,5302],{"class":4433},[4383,7778,5305],{"class":4400},[4383,7780,7781],{"class":4385,"line":4952},[4383,7782,5594],{"class":4400},[4383,7784,7785],{"class":4385,"line":4958},[4383,7786,4797],{"emptyLinePlaceholder":4796},[4383,7788,7789,7791],{"class":4385,"line":4968},[4383,7790,4859],{"class":4741},[4383,7792,4862],{"class":4400},[4383,7794,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813],{"class":4385,"line":4976},[4383,7796,4868],{"class":4389},[4383,7798,4198],{"class":4393},[4383,7800,4397],{"class":4396},[4383,7802,4401],{"class":4400},[4383,7804,4405],{"class":4404},[4383,7806,4879],{"class":4412},[4383,7808,3840],{"class":4408},[4383,7810,4884],{"class":4412},[4383,7812,4440],{"class":4404},[4383,7814,4889],{"class":4389},[4383,7816,7817,7819,7821,7823,7825,7827,7830,7832,7834,7837,7839,7841],{"class":4385,"line":5016},[4383,7818,4895],{"class":4389},[4383,7820,4241],{"class":4393},[4383,7822,4397],{"class":4396},[4383,7824,4401],{"class":4400},[4383,7826,4405],{"class":4404},[4383,7828,7829],{"class":4412},"titleFlat",[4383,7831,4440],{"class":4404},[4383,7833,4915],{"class":4389},[4383,7835,7836],{"class":4400},"StyleSheet · all-in-one",[4383,7838,4921],{"class":4389},[4383,7840,4241],{"class":4393},[4383,7842,4889],{"class":4389},[4383,7844,7845,7847,7849,7851,7853,7855,7857,7859,7862,7864],{"class":4385,"line":5039},[4383,7846,4895],{"class":4389},[4383,7848,4241],{"class":4393},[4383,7850,4397],{"class":4396},[4383,7852,4401],{"class":4400},[4383,7854,4405],{"class":4404},[4383,7856,4879],{"class":4412},[4383,7858,3840],{"class":4408},[4383,7860,7861],{"class":4412},"sub",[4383,7863,4440],{"class":4404},[4383,7865,4889],{"class":4389},[4383,7867,7868,7871,7873,7875,7877,7879,7882,7884,7886,7889,7892,7895,7897,7899],{"class":4385,"line":5053},[4383,7869,7870],{"class":4400},"        flatten title → fontSize ",[4383,7872,4405],{"class":4404},[4383,7874,7233],{"class":4812},[4383,7876,4995],{"class":4408},[4383,7878,7829],{"class":4412},[4383,7880,7881],{"class":4741}," as",[4383,7883,4745],{"class":4408},[4383,7885,4640],{"class":4412},[4383,7887,7888],{"class":4400},"?:",[4383,7890,7891],{"class":4393}," number",[4383,7893,7894],{"class":4408}," }).",[4383,7896,4640],{"class":4412},[4383,7898,4141],{"class":4408},[4383,7900,5013],{"class":4404},[4383,7902,7903,7905,7907],{"class":4385,"line":5072},[4383,7904,4961],{"class":4389},[4383,7906,4241],{"class":4393},[4383,7908,4889],{"class":4389},[4383,7910,7911],{"class":4385,"line":5089},[4383,7912,4797],{"emptyLinePlaceholder":4796},[4383,7914,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933],{"class":4385,"line":5097},[4383,7916,4895],{"class":4389},[4383,7918,4198],{"class":4393},[4383,7920,4397],{"class":4396},[4383,7922,4401],{"class":4400},[4383,7924,4405],{"class":4404},[4383,7926,4879],{"class":4412},[4383,7928,3840],{"class":4408},[4383,7930,6227],{"class":4412},[4383,7932,4440],{"class":4404},[4383,7934,4889],{"class":4389},[4383,7936,7937,7940,7943],{"class":4385,"line":5103},[4383,7938,7939],{"class":4404},"        {",[4383,7941,7942],{"class":5558},"\u002F* absoluteFillObject: кутовий бейдж *\u002F",[4383,7944,5013],{"class":4404},[4383,7946,7947,7949],{"class":4385,"line":5152},[4383,7948,5106],{"class":4389},[4383,7950,6443],{"class":4393},[4383,7952,7953,7955,7957,7959],{"class":4385,"line":5161},[4383,7954,6448],{"class":4396},[4383,7956,4401],{"class":4400},[4383,7958,4405],{"class":4404},[4383,7960,6455],{"class":4408},[4383,7962,7963,7965,7967,7969,7971],{"class":4385,"line":5171},[4383,7964,6460],{"class":4400},[4383,7966,3803],{"class":4412},[4383,7968,3840],{"class":4408},[4383,7970,6081],{"class":4412},[4383,7972,5050],{"class":4408},[4383,7974,7975,7978,7980],{"class":4385,"line":5177},[4383,7976,7977],{"class":4412},"            top:",[4383,7979,6670],{"class":4416},[4383,7981,5050],{"class":4408},[4383,7983,7984,7987,7990],{"class":4385,"line":5182},[4383,7985,7986],{"class":4412},"            left:",[4383,7988,7989],{"class":4404}," undefined",[4383,7991,5050],{"class":4408},[4383,7993,7994,7997,7999],{"class":4385,"line":5187},[4383,7995,7996],{"class":4412},"            right:",[4383,7998,6670],{"class":4416},[4383,8000,5050],{"class":4408},[4383,8002,8003,8006,8008],{"class":4385,"line":5207},[4383,8004,8005],{"class":4412},"            bottom:",[4383,8007,7989],{"class":4404},[4383,8009,5050],{"class":4408},[4383,8011,8012,8015,8018],{"class":4385,"line":5216},[4383,8013,8014],{"class":4412},"            width:",[4383,8016,8017],{"class":4416}," 44",[4383,8019,5050],{"class":4408},[4383,8021,8022,8025,8027],{"class":4385,"line":5226},[4383,8023,8024],{"class":4412},"            height:",[4383,8026,5913],{"class":4416},[4383,8028,5050],{"class":4408},[4383,8030,8031,8034,8036],{"class":4385,"line":5236},[4383,8032,8033],{"class":4412},"            borderRadius:",[4383,8035,6008],{"class":4416},[4383,8037,5050],{"class":4408},[4383,8039,8040,8042,8044],{"class":4385,"line":5247},[4383,8041,6473],{"class":4412},[4383,8043,5402],{"class":4433},[4383,8045,5050],{"class":4408},[4383,8047,8048,8050,8052],{"class":4385,"line":5258},[4383,8049,6483],{"class":4412},[4383,8051,5253],{"class":4433},[4383,8053,5050],{"class":4408},[4383,8055,8056,8058,8060],{"class":4385,"line":5269},[4383,8057,6492],{"class":4412},[4383,8059,5253],{"class":4433},[4383,8061,5050],{"class":4408},[4383,8063,8064,8066],{"class":4385,"line":5275},[4383,8065,6501],{"class":4408},[4383,8067,5013],{"class":4404},[4383,8069,8070],{"class":4385,"line":5308},[4383,8071,6508],{"class":4389},[4383,8073,8074,8076,8078,8080,8082,8084,8086,8088,8091,8093,8095,8098,8100,8102],{"class":4385,"line":5338},[4383,8075,6305],{"class":4389},[4383,8077,4241],{"class":4393},[4383,8079,4397],{"class":4396},[4383,8081,4401],{"class":4400},[4383,8083,4405],{"class":4404},[4383,8085,4879],{"class":4412},[4383,8087,3840],{"class":4408},[4383,8089,8090],{"class":4412},"badgeText",[4383,8092,4440],{"class":4404},[4383,8094,4915],{"class":4389},[4383,8096,8097],{"class":4400},"PRO",[4383,8099,4921],{"class":4389},[4383,8101,4241],{"class":4393},[4383,8103,4889],{"class":4389},[4383,8105,8106,8108,8110],{"class":4385,"line":5346},[4383,8107,6338],{"class":4389},[4383,8109,4198],{"class":4393},[4383,8111,4889],{"class":4389},[4383,8113,8114],{"class":4385,"line":5356},[4383,8115,4797],{"emptyLinePlaceholder":4796},[4383,8117,8118,8120,8122,8124,8126,8128,8130,8132,8135,8137,8139,8142,8144,8146],{"class":4385,"line":5367},[4383,8119,5106],{"class":4389},[4383,8121,4241],{"class":4393},[4383,8123,4397],{"class":4396},[4383,8125,4401],{"class":4400},[4383,8127,4405],{"class":4404},[4383,8129,4879],{"class":4412},[4383,8131,3840],{"class":4408},[4383,8133,8134],{"class":4412},"name",[4383,8136,4440],{"class":4404},[4383,8138,4915],{"class":4389},[4383,8140,8141],{"class":4400},"Карпати 2026",[4383,8143,4921],{"class":4389},[4383,8145,4241],{"class":4393},[4383,8147,4889],{"class":4389},[4383,8149,8150,8152,8154,8156,8158,8160,8162,8164,8167,8169,8171,8174,8176,8178],{"class":4385,"line":5377},[4383,8151,5106],{"class":4389},[4383,8153,4241],{"class":4393},[4383,8155,4397],{"class":4396},[4383,8157,4401],{"class":4400},[4383,8159,4405],{"class":4404},[4383,8161,4879],{"class":4412},[4383,8163,3840],{"class":4408},[4383,8165,8166],{"class":4412},"desc",[4383,8168,4440],{"class":4404},[4383,8170,4915],{"class":4389},[4383,8172,8173],{"class":4400},"create тримає картку; hairline — розділювач.",[4383,8175,4921],{"class":4389},[4383,8177,4241],{"class":4393},[4383,8179,4889],{"class":4389},[4383,8181,8182],{"class":4385,"line":5387},[4383,8183,4797],{"emptyLinePlaceholder":4796},[4383,8185,8186,8188,8190,8192,8194,8196,8198,8200,8202,8204],{"class":4385,"line":5392},[4383,8187,5106],{"class":4389},[4383,8189,4198],{"class":4393},[4383,8191,4397],{"class":4396},[4383,8193,4401],{"class":4400},[4383,8195,4405],{"class":4404},[4383,8197,4879],{"class":4412},[4383,8199,3840],{"class":4408},[4383,8201,6910],{"class":4412},[4383,8203,4440],{"class":4404},[4383,8205,4443],{"class":4389},[4383,8207,8208],{"class":4385,"line":5407},[4383,8209,4797],{"emptyLinePlaceholder":4796},[4383,8211,8212,8214,8216,8218,8220,8222,8224,8226,8228,8230,8232,8235,8237,8239],{"class":4385,"line":5423},[4383,8213,5106],{"class":4389},[4383,8215,4241],{"class":4393},[4383,8217,4397],{"class":4396},[4383,8219,4401],{"class":4400},[4383,8221,4405],{"class":4404},[4383,8223,4879],{"class":4412},[4383,8225,3840],{"class":4408},[4383,8227,7219],{"class":4412},[4383,8229,4440],{"class":4404},[4383,8231,4915],{"class":4389},[4383,8233,8234],{"class":4400},"12–18 червня · 6 днів",[4383,8236,4921],{"class":4389},[4383,8238,4241],{"class":4393},[4383,8240,4889],{"class":4389},[4383,8242,8243],{"class":4385,"line":5450},[4383,8244,4797],{"emptyLinePlaceholder":4796},[4383,8246,8247,8249,8252],{"class":4385,"line":6760},[4383,8248,7939],{"class":4404},[4383,8250,8251],{"class":5558},"\u002F* absoluteFill: затемнення поверх картки *\u002F",[4383,8253,5013],{"class":4404},[4383,8255,8256,8258,8260,8262],{"class":4385,"line":6765},[4383,8257,7939],{"class":4404},[4383,8259,7711],{"class":4412},[4383,8261,5059],{"class":4400},[4383,8263,4862],{"class":4408},[4383,8265,8266,8268,8270,8272,8274,8276,8278,8280,8282,8284,8286,8288,8290,8293,8295,8297],{"class":4385,"line":6793},[4383,8267,6305],{"class":4389},[4383,8269,4198],{"class":4393},[4383,8271,4397],{"class":4396},[4383,8273,4401],{"class":4400},[4383,8275,4405],{"class":4404},[4383,8277,6278],{"class":4408},[4383,8279,3803],{"class":4412},[4383,8281,3840],{"class":4408},[4383,8283,4680],{"class":4412},[4383,8285,3767],{"class":4408},[4383,8287,4879],{"class":4412},[4383,8289,3840],{"class":4408},[4383,8291,8292],{"class":4412},"lockOverlay",[4383,8294,6296],{"class":4408},[4383,8296,4440],{"class":4404},[4383,8298,4889],{"class":4389},[4383,8300,8301,8304,8306,8308,8310,8312,8314,8316,8319,8321,8323,8326,8328,8330],{"class":4385,"line":6801},[4383,8302,8303],{"class":4389},"            \u003C",[4383,8305,4241],{"class":4393},[4383,8307,4397],{"class":4396},[4383,8309,4401],{"class":4400},[4383,8311,4405],{"class":4404},[4383,8313,4879],{"class":4412},[4383,8315,3840],{"class":4408},[4383,8317,8318],{"class":4412},"lockText",[4383,8320,4440],{"class":4404},[4383,8322,4915],{"class":4389},[4383,8324,8325],{"class":4408},"Заблоковано",[4383,8327,4921],{"class":4389},[4383,8329,4241],{"class":4393},[4383,8331,4889],{"class":4389},[4383,8333,8334,8337,8339],{"class":4385,"line":6811},[4383,8335,8336],{"class":4389},"          \u003C\u002F",[4383,8338,4198],{"class":4393},[4383,8340,4889],{"class":4389},[4383,8342,8343,8346],{"class":4385,"line":6820},[4383,8344,8345],{"class":4408},"        )",[4383,8347,5013],{"class":4404},[4383,8349,8350,8352,8354],{"class":4385,"line":6829},[4383,8351,4961],{"class":4389},[4383,8353,4198],{"class":4393},[4383,8355,4889],{"class":4389},[4383,8357,8358],{"class":4385,"line":6834},[4383,8359,4797],{"emptyLinePlaceholder":4796},[4383,8361,8362,8364],{"class":4385,"line":6860},[4383,8363,4895],{"class":4389},[4383,8365,4973],{"class":4393},[4383,8367,8368,8370,8372,8374,8376,8378,8381,8383,8385,8387,8389,8391,8393,8395],{"class":4385,"line":6893},[4383,8369,4979],{"class":4396},[4383,8371,4401],{"class":4400},[4383,8373,4405],{"class":4404},[4383,8375,4986],{"class":4408},[4383,8377,4989],{"class":4404},[4383,8379,8380],{"class":4812}," setLocked",[4383,8382,4995],{"class":4408},[4383,8384,4998],{"class":4412},[4383,8386,5001],{"class":4408},[4383,8388,4989],{"class":4404},[4383,8390,5006],{"class":4400},[4383,8392,4998],{"class":4412},[4383,8394,4141],{"class":4408},[4383,8396,5013],{"class":4404},[4383,8398,8400,8402,8404,8406,8408,8410,8412,8414],{"class":4385,"line":8399},57,[4383,8401,5019],{"class":4396},[4383,8403,4401],{"class":4400},[4383,8405,4405],{"class":4404},[4383,8407,5026],{"class":4408},[4383,8409,4468],{"class":4412},[4383,8411,5031],{"class":4408},[4383,8413,4989],{"class":4404},[4383,8415,5036],{"class":4408},[4383,8417,8419,8421,8423,8425],{"class":4385,"line":8418},58,[4383,8420,5042],{"class":4412},[4383,8422,3840],{"class":4408},[4383,8424,5047],{"class":4412},[4383,8426,5050],{"class":4408},[4383,8428,8430,8433,8435,8437,8439,8441],{"class":4385,"line":8429},59,[4383,8431,8432],{"class":4412},"          locked",[4383,8434,5059],{"class":4400},[4383,8436,5062],{"class":4412},[4383,8438,3840],{"class":4408},[4383,8440,5067],{"class":4412},[4383,8442,5050],{"class":4408},[4383,8444,8446,8448,8450,8452,8454,8456],{"class":4385,"line":8445},60,[4383,8447,5075],{"class":4412},[4383,8449,5059],{"class":4400},[4383,8451,5062],{"class":4412},[4383,8453,3840],{"class":4408},[4383,8455,5084],{"class":4412},[4383,8457,5050],{"class":4408},[4383,8459,8461,8463],{"class":4385,"line":8460},61,[4383,8462,5092],{"class":4408},[4383,8464,5013],{"class":4404},[4383,8466,8468],{"class":4385,"line":8467},62,[4383,8469,5100],{"class":4389},[4383,8471,8473,8475,8477,8479,8481,8483,8485,8487,8489,8491],{"class":4385,"line":8472},63,[4383,8474,5106],{"class":4389},[4383,8476,4241],{"class":4393},[4383,8478,4397],{"class":4396},[4383,8480,4401],{"class":4400},[4383,8482,4405],{"class":4404},[4383,8484,4879],{"class":4412},[4383,8486,3840],{"class":4408},[4383,8488,5121],{"class":4412},[4383,8490,4440],{"class":4404},[4383,8492,4889],{"class":4389},[4383,8494,8496,8499,8501,8503,8506,8508,8511],{"class":4385,"line":8495},64,[4383,8497,8498],{"class":4404},"          {",[4383,8500,7711],{"class":4412},[4383,8502,5132],{"class":4400},[4383,8504,8505],{"class":4433}," 'Зняти оверлей (absoluteFill)'",[4383,8507,5138],{"class":4400},[4383,8509,8510],{"class":4433}," 'Накрити absoluteFill'",[4383,8512,5013],{"class":4404},[4383,8514,8516,8518,8520],{"class":4385,"line":8515},65,[4383,8517,6338],{"class":4389},[4383,8519,4241],{"class":4393},[4383,8521,4889],{"class":4389},[4383,8523,8525,8527,8529],{"class":4385,"line":8524},66,[4383,8526,4961],{"class":4389},[4383,8528,4724],{"class":4393},[4383,8530,4889],{"class":4389},[4383,8532,8534],{"class":4385,"line":8533},67,[4383,8535,4797],{"emptyLinePlaceholder":4796},[4383,8537,8539,8541,8543,8545,8547,8549,8551,8553,8555,8557],{"class":4385,"line":8538},68,[4383,8540,4895],{"class":4389},[4383,8542,4241],{"class":4393},[4383,8544,4397],{"class":4396},[4383,8546,4401],{"class":4400},[4383,8548,4405],{"class":4404},[4383,8550,4879],{"class":4412},[4383,8552,3840],{"class":4408},[4383,8554,4945],{"class":4412},[4383,8556,4440],{"class":4404},[4383,8558,4889],{"class":4389},[4383,8560,8562],{"class":4385,"line":8561},69,[4383,8563,8564],{"class":4400},"        create · flatten · absoluteFill · absoluteFillObject · hairlineWidth\n",[4383,8566,8568,8570,8572],{"class":4385,"line":8567},70,[4383,8569,4961],{"class":4389},[4383,8571,4241],{"class":4393},[4383,8573,4889],{"class":4389},[4383,8575,8577,8579,8581],{"class":4385,"line":8576},71,[4383,8578,5164],{"class":4389},[4383,8580,4198],{"class":4393},[4383,8582,4889],{"class":4389},[4383,8584,8586],{"class":4385,"line":8585},72,[4383,8587,5174],{"class":4400},[4383,8589,8591],{"class":4385,"line":8590},73,[4383,8592,5013],{"class":4400},[4383,8594,8596],{"class":4385,"line":8595},74,[4383,8597,4797],{"emptyLinePlaceholder":4796},[4383,8599,8601,8603,8605,8607,8609,8611,8613],{"class":4385,"line":8600},75,[4383,8602,5190],{"class":4404},[4383,8604,5062],{"class":4828},[4383,8606,5195],{"class":4400},[4383,8608,3803],{"class":4412},[4383,8610,3840],{"class":4400},[4383,8612,4495],{"class":4812},[4383,8614,5204],{"class":4400},[4383,8616,8618,8620],{"class":4385,"line":8617},76,[4383,8619,5210],{"class":4412},[4383,8621,5213],{"class":4400},[4383,8623,8625,8627,8629],{"class":4385,"line":8624},77,[4383,8626,5219],{"class":4412},[4383,8628,4417],{"class":4416},[4383,8630,5050],{"class":4400},[4383,8632,8634,8636,8638],{"class":4385,"line":8633},78,[4383,8635,5229],{"class":4412},[4383,8637,4434],{"class":4433},[4383,8639,5050],{"class":4400},[4383,8641,8643,8645,8647],{"class":4385,"line":8642},79,[4383,8644,5239],{"class":4412},[4383,8646,5286],{"class":4416},[4383,8648,5050],{"class":4400},[4383,8650,8652,8654,8656],{"class":4385,"line":8651},80,[4383,8653,5250],{"class":4412},[4383,8655,5253],{"class":4433},[4383,8657,5050],{"class":4400},[4383,8659,8661,8663,8665],{"class":4385,"line":8660},81,[4383,8662,5261],{"class":4412},[4383,8664,5264],{"class":4416},[4383,8666,5050],{"class":4400},[4383,8668,8670],{"class":4385,"line":8669},82,[4383,8671,5272],{"class":4400},[4383,8673,8675,8677,8679,8681,8683],{"class":4385,"line":8674},83,[4383,8676,5887],{"class":4412},[4383,8678,4745],{"class":4400},[4383,8680,5283],{"class":4412},[4383,8682,4425],{"class":4416},[4383,8684,5305],{"class":4400},[4383,8686,8688,8691,8693,8695,8697,8699,8701,8703],{"class":4385,"line":8687},84,[4383,8689,8690],{"class":4412},"  titleStrong:",[4383,8692,4745],{"class":4400},[4383,8694,5283],{"class":4412},[4383,8696,5286],{"class":4416},[4383,8698,3767],{"class":4400},[4383,8700,5291],{"class":4412},[4383,8702,5920],{"class":4433},[4383,8704,5305],{"class":4400},[4383,8706,8708,8711,8713,8715,8717,8719,8721,8723,8725,8727,8730,8733],{"class":4385,"line":8707},85,[4383,8709,8710],{"class":4412},"  sub:",[4383,8712,4745],{"class":4400},[4383,8714,5283],{"class":4412},[4383,8716,5264],{"class":4416},[4383,8718,3767],{"class":4400},[4383,8720,5299],{"class":4412},[4383,8722,5325],{"class":4433},[4383,8724,3767],{"class":4400},[4383,8726,6885],{"class":4412},[4383,8728,8729],{"class":4400}," -",[4383,8731,8732],{"class":4416},"4",[4383,8734,5305],{"class":4400},[4383,8736,8738,8740],{"class":4385,"line":8737},86,[4383,8739,6702],{"class":4412},[4383,8741,5213],{"class":4400},[4383,8743,8745,8747,8749],{"class":4385,"line":8744},87,[4383,8746,5229],{"class":4412},[4383,8748,5433],{"class":4433},[4383,8750,5050],{"class":4400},[4383,8752,8754,8756,8758],{"class":4385,"line":8753},88,[4383,8755,5370],{"class":4412},[4383,8757,4425],{"class":4416},[4383,8759,5050],{"class":4400},[4383,8761,8763,8765,8767],{"class":4385,"line":8762},89,[4383,8764,5950],{"class":4412},[4383,8766,4417],{"class":4416},[4383,8768,5050],{"class":4400},[4383,8770,8772,8774,8776],{"class":4385,"line":8771},90,[4383,8773,5959],{"class":4412},[4383,8775,5962],{"class":4433},[4383,8777,5050],{"class":4400},[4383,8779,8781,8783,8785],{"class":4385,"line":8780},91,[4383,8782,5239],{"class":4412},[4383,8784,4425],{"class":4416},[4383,8786,5050],{"class":4400},[4383,8788,8790,8793,8796],{"class":4385,"line":8789},92,[4383,8791,8792],{"class":4412},"    minHeight:",[4383,8794,8795],{"class":4416}," 150",[4383,8797,5050],{"class":4400},[4383,8799,8801,8803,8805],{"class":4385,"line":8800},93,[4383,8802,6752],{"class":4412},[4383,8804,6755],{"class":4433},[4383,8806,5050],{"class":4400},[4383,8808,8810],{"class":4385,"line":8809},94,[4383,8811,5272],{"class":4400},[4383,8813,8815,8818,8820,8822,8824,8826,8828,8831,8833,8835,8837],{"class":4385,"line":8814},95,[4383,8816,8817],{"class":4412},"  badgeText:",[4383,8819,4745],{"class":4400},[4383,8821,5299],{"class":4412},[4383,8823,5433],{"class":4433},[4383,8825,3767],{"class":4400},[4383,8827,5283],{"class":4412},[4383,8829,8830],{"class":4416}," 11",[4383,8832,3767],{"class":4400},[4383,8834,5291],{"class":4412},[4383,8836,5920],{"class":4433},[4383,8838,5305],{"class":4400},[4383,8840,8842,8845,8847,8849,8851,8853,8855,8857,8859,8861,8863,8865,8867,8869],{"class":4385,"line":8841},96,[4383,8843,8844],{"class":4412},"  name:",[4383,8846,4745],{"class":4400},[4383,8848,5283],{"class":4412},[4383,8850,5333],{"class":4416},[4383,8852,3767],{"class":4400},[4383,8854,5291],{"class":4412},[4383,8856,5294],{"class":4433},[4383,8858,3767],{"class":4400},[4383,8860,5299],{"class":4412},[4383,8862,5302],{"class":4433},[4383,8864,3767],{"class":4400},[4383,8866,6885],{"class":4412},[4383,8868,6888],{"class":4416},[4383,8870,5305],{"class":4400},[4383,8872,8874,8877,8879,8881,8883,8885,8887,8889,8891,8893,8895,8897,8899,8901],{"class":4385,"line":8873},97,[4383,8875,8876],{"class":4412},"  desc:",[4383,8878,4745],{"class":4400},[4383,8880,5283],{"class":4412},[4383,8882,5362],{"class":4416},[4383,8884,3767],{"class":4400},[4383,8886,5299],{"class":4412},[4383,8888,5325],{"class":4433},[4383,8890,3767],{"class":4400},[4383,8892,6885],{"class":4412},[4383,8894,6008],{"class":4416},[4383,8896,3767],{"class":4400},[4383,8898,5330],{"class":4412},[4383,8900,5286],{"class":4416},[4383,8902,5305],{"class":4400},[4383,8904,8906,8908],{"class":4385,"line":8905},98,[4383,8907,7476],{"class":4412},[4383,8909,5213],{"class":4400},[4383,8911,8913,8915,8917,8919,8921],{"class":4385,"line":8912},99,[4383,8914,6709],{"class":4412},[4383,8916,7485],{"class":4412},[4383,8918,3840],{"class":4400},[4383,8920,6902],{"class":4412},[4383,8922,5050],{"class":4400},[4383,8924,8926,8928,8931],{"class":4385,"line":8925},100,[4383,8927,5229],{"class":4412},[4383,8929,8930],{"class":4433}," '#cbd5e1'",[4383,8932,5050],{"class":4400},[4383,8934,8936,8939,8941],{"class":4385,"line":8935},101,[4383,8937,8938],{"class":4412},"    marginVertical:",[4383,8940,5264],{"class":4416},[4383,8942,5050],{"class":4400},[4383,8944,8946],{"class":4385,"line":8945},102,[4383,8947,5272],{"class":4400},[4383,8949,8951,8953,8955,8957,8959,8961,8963,8965],{"class":4385,"line":8950},103,[4383,8952,7552],{"class":4412},[4383,8954,4745],{"class":4400},[4383,8956,5283],{"class":4412},[4383,8958,5318],{"class":4416},[4383,8960,3767],{"class":4400},[4383,8962,5299],{"class":4412},[4383,8964,5325],{"class":4433},[4383,8966,5305],{"class":4400},[4383,8968,8970,8973],{"class":4385,"line":8969},104,[4383,8971,8972],{"class":4412},"  lockOverlay:",[4383,8974,5213],{"class":4400},[4383,8976,8978,8980,8983],{"class":4385,"line":8977},105,[4383,8979,5229],{"class":4412},[4383,8981,8982],{"class":4433}," 'rgba(15, 23, 42, 0.62)'",[4383,8984,5050],{"class":4400},[4383,8986,8988,8990,8992],{"class":4385,"line":8987},106,[4383,8989,5380],{"class":4412},[4383,8991,5253],{"class":4433},[4383,8993,5050],{"class":4400},[4383,8995,8997,8999,9001],{"class":4385,"line":8996},107,[4383,8998,5250],{"class":4412},[4383,9000,5253],{"class":4433},[4383,9002,5050],{"class":4400},[4383,9004,9006],{"class":4385,"line":9005},108,[4383,9007,5272],{"class":4400},[4383,9009,9011,9014,9016,9018,9020,9022,9024,9026,9028,9030,9032],{"class":4385,"line":9010},109,[4383,9012,9013],{"class":4412},"  lockText:",[4383,9015,4745],{"class":4400},[4383,9017,5299],{"class":4412},[4383,9019,5433],{"class":4433},[4383,9021,3767],{"class":4400},[4383,9023,5291],{"class":4412},[4383,9025,5920],{"class":4433},[4383,9027,3767],{"class":4400},[4383,9029,5283],{"class":4412},[4383,9031,4425],{"class":4416},[4383,9033,5305],{"class":4400},[4383,9035,9037,9039],{"class":4385,"line":9036},110,[4383,9038,5341],{"class":4412},[4383,9040,5213],{"class":4400},[4383,9042,9044,9046,9048],{"class":4385,"line":9043},111,[4383,9045,5229],{"class":4412},[4383,9047,5351],{"class":4433},[4383,9049,5050],{"class":4400},[4383,9051,9053,9055,9057],{"class":4385,"line":9052},112,[4383,9054,5359],{"class":4412},[4383,9056,5362],{"class":4416},[4383,9058,5050],{"class":4400},[4383,9060,9062,9064,9066],{"class":4385,"line":9061},113,[4383,9063,5370],{"class":4412},[4383,9065,5264],{"class":4416},[4383,9067,5050],{"class":4400},[4383,9069,9071,9073,9075],{"class":4385,"line":9070},114,[4383,9072,5380],{"class":4412},[4383,9074,5253],{"class":4433},[4383,9076,5050],{"class":4400},[4383,9078,9080],{"class":4385,"line":9079},115,[4383,9081,5272],{"class":4400},[4383,9083,9085,9087,9089,9091,9093],{"class":4385,"line":9084},116,[4383,9086,5395],{"class":4412},[4383,9088,4745],{"class":4400},[4383,9090,4430],{"class":4412},[4383,9092,5402],{"class":4433},[4383,9094,5305],{"class":4400},[4383,9096,9098,9100,9102,9104,9106],{"class":4385,"line":9097},117,[4383,9099,5410],{"class":4412},[4383,9101,4745],{"class":4400},[4383,9103,5415],{"class":4412},[4383,9105,5418],{"class":4416},[4383,9107,5305],{"class":4400},[4383,9109,9111,9113,9115,9117,9119,9121,9123,9125,9127,9129,9131],{"class":4385,"line":9110},118,[4383,9112,5426],{"class":4412},[4383,9114,4745],{"class":4400},[4383,9116,5299],{"class":4412},[4383,9118,5433],{"class":4433},[4383,9120,3767],{"class":4400},[4383,9122,5291],{"class":4412},[4383,9124,5294],{"class":4433},[4383,9126,3767],{"class":4400},[4383,9128,5283],{"class":4412},[4383,9130,5362],{"class":4416},[4383,9132,5305],{"class":4400},[4383,9134,9136,9138,9140,9142,9144,9146,9148,9150,9152,9155,9157],{"class":4385,"line":9135},119,[4383,9137,5311],{"class":4412},[4383,9139,4745],{"class":4400},[4383,9141,5283],{"class":4412},[4383,9143,5264],{"class":4416},[4383,9145,3767],{"class":4400},[4383,9147,5299],{"class":4412},[4383,9149,5351],{"class":4433},[4383,9151,3767],{"class":4400},[4383,9153,9154],{"class":4412},"textAlign:",[4383,9156,5253],{"class":4433},[4383,9158,5305],{"class":4400},[4383,9160,9162],{"class":4385,"line":9161},120,[4383,9163,5453],{"class":4400},[3820,9165,9167],{"id":9166},"inline-vs-stylesheet-коли-що","Inline vs StyleSheet: коли що",[4374,9169,9171],{"className":4376,"code":9170,"language":4378,"meta":4379,"style":4379},"\u002F\u002F Працює, але шумно, якщо так на кожному елементі\n\u003CView style={{ flex: 1, padding: 16, backgroundColor: '#F8FAFC' }} \u002F>\n\n\u002F\u002F Звичка для геометрії\n\u003CView style={styles.screen} \u002F>\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 16 },\n});\n",[3764,9172,9173,9178,9214,9218,9223,9245,9249,9265,9283],{"__ignoreMap":4379},[4383,9174,9175],{"class":4385,"line":4386},[4383,9176,9177],{"class":5558},"\u002F\u002F Працює, але шумно, якщо так на кожному елементі\n",[4383,9179,9180,9182,9184,9186,9188,9190,9192,9194,9196,9198,9200,9202,9204,9206,9208,9210,9212],{"class":4385,"line":4763},[4383,9181,4390],{"class":4389},[4383,9183,4198],{"class":4393},[4383,9185,4397],{"class":4396},[4383,9187,4401],{"class":4400},[4383,9189,4405],{"class":4404},[4383,9191,4409],{"class":4408},[4383,9193,4413],{"class":4412},[4383,9195,4417],{"class":4416},[4383,9197,3767],{"class":4408},[4383,9199,4422],{"class":4412},[4383,9201,4425],{"class":4416},[4383,9203,3767],{"class":4408},[4383,9205,4430],{"class":4412},[4383,9207,4434],{"class":4433},[4383,9209,4437],{"class":4408},[4383,9211,4440],{"class":4404},[4383,9213,4443],{"class":4389},[4383,9215,9216],{"class":4385,"line":4793},[4383,9217,4797],{"emptyLinePlaceholder":4796},[4383,9219,9220],{"class":4385,"line":4800},[4383,9221,9222],{"class":5558},"\u002F\u002F Звичка для геометрії\n",[4383,9224,9225,9227,9229,9231,9233,9235,9237,9239,9241,9243],{"class":4385,"line":4819},[4383,9226,4390],{"class":4389},[4383,9228,4198],{"class":4393},[4383,9230,4397],{"class":4396},[4383,9232,4401],{"class":4400},[4383,9234,4405],{"class":4404},[4383,9236,4879],{"class":4412},[4383,9238,3840],{"class":4408},[4383,9240,4884],{"class":4412},[4383,9242,4440],{"class":4404},[4383,9244,4443],{"class":4389},[4383,9246,9247],{"class":4385,"line":4851},[4383,9248,4797],{"emptyLinePlaceholder":4796},[4383,9250,9251,9253,9255,9257,9259,9261,9263],{"class":4385,"line":4856},[4383,9252,5190],{"class":4404},[4383,9254,5062],{"class":4828},[4383,9256,5195],{"class":4400},[4383,9258,3803],{"class":4412},[4383,9260,3840],{"class":4400},[4383,9262,4495],{"class":4812},[4383,9264,5204],{"class":4400},[4383,9266,9267,9269,9271,9273,9275,9277,9279,9281],{"class":4385,"line":4865},[4383,9268,5210],{"class":4412},[4383,9270,4745],{"class":4400},[4383,9272,4413],{"class":4412},[4383,9274,4417],{"class":4416},[4383,9276,3767],{"class":4400},[4383,9278,4422],{"class":4412},[4383,9280,4425],{"class":4416},[4383,9282,5305],{"class":4400},[4383,9284,9285],{"class":4385,"line":4892},[4383,9286,5453],{"class":4400},[3743,9288,9289,9292,9293,9296],{},[3756,9290,9291],{},"Inline доречний",", коли значення ",[3756,9294,9295],{},"обчислюється зараз"," і не варте окремого імені:",[4374,9298,9300],{"className":4376,"code":9299,"language":4378,"meta":4379,"style":4379},"\u002F\u002F Колір з поточної теми — так і треба\n\u003CView style={[styles.card, { backgroundColor: colors.surface }]} \u002F>\n",[3764,9301,9302,9307],{"__ignoreMap":4379},[4383,9303,9304],{"class":4385,"line":4386},[4383,9305,9306],{"class":5558},"\u002F\u002F Колір з поточної теми — так і треба\n",[4383,9308,9309,9311,9313,9315,9317,9319,9321,9323,9325,9327,9330,9332,9335,9337,9339,9342,9344],{"class":4385,"line":4763},[4383,9310,4390],{"class":4389},[4383,9312,4198],{"class":4393},[4383,9314,4397],{"class":4396},[4383,9316,4401],{"class":4400},[4383,9318,4405],{"class":4404},[4383,9320,6278],{"class":4408},[4383,9322,4879],{"class":4412},[4383,9324,3840],{"class":4408},[4383,9326,6227],{"class":4412},[4383,9328,9329],{"class":4408},", { ",[4383,9331,4430],{"class":4412},[4383,9333,9334],{"class":4412}," colors",[4383,9336,3840],{"class":4408},[4383,9338,3891],{"class":4412},[4383,9340,9341],{"class":4408}," }]",[4383,9343,4440],{"class":4404},[4383,9345,4443],{"class":4389},[3743,9347,9348,9349,9352,9353,3767,9356,3767,9359,3840,9362,9364,9366,9367,3840],{},"Тут ",[3764,9350,9351],{},"styles.card"," тримає стабільне: ",[3764,9354,9355],{},"borderRadius",[3764,9357,9358],{},"borderWidth",[3764,9360,9361],{},"overflow",[3886,9363],{},[3764,9365,3906],{}," — з теми, може змінитись між light і dark без нового ",[3764,9368,3766],{},[3820,9370,9372],{"id":9371},"масив-стилів-каскад-у-мініатюрі","Масив стилів — «каскад у мініатюрі»",[3743,9374,9375,9376,9379],{},"У CSS кілька класів і специфічність. У RN ви ",[3756,9377,9378],{},"явно"," складаєте шари:",[4374,9381,9383],{"className":4376,"code":9382,"language":4378,"meta":4379,"style":4379},"style={[\n  styles.base,              \u002F\u002F 1. база\n  pressed && styles.pressed, \u002F\u002F 2. стан жесту\n  disabled && styles.disabled, \u002F\u002F 3. стан «вимкнено»\n  styleFromProps,           \u002F\u002F 4. те, що передав батько (часто перемагає)\n]}\n",[3764,9384,9385,9395,9403,9417,9430,9438],{"__ignoreMap":4379},[4383,9386,9387,9389,9392],{"class":4385,"line":4386},[4383,9388,4068],{"class":4412},[4383,9390,9391],{"class":4400},"={",[4383,9393,9394],{"class":4412},"[\n",[4383,9396,9397,9400],{"class":4385,"line":4763},[4383,9398,9399],{"class":4412},"  styles.base,              ",[4383,9401,9402],{"class":5558},"\u002F\u002F 1. база\n",[4383,9404,9405,9408,9411,9414],{"class":4385,"line":4793},[4383,9406,9407],{"class":4412},"  pressed ",[4383,9409,9410],{"class":4400},"&&",[4383,9412,9413],{"class":4412}," styles.pressed, ",[4383,9415,9416],{"class":5558},"\u002F\u002F 2. стан жесту\n",[4383,9418,9419,9422,9424,9427],{"class":4385,"line":4800},[4383,9420,9421],{"class":4412},"  disabled ",[4383,9423,9410],{"class":4400},[4383,9425,9426],{"class":4412}," styles.disabled, ",[4383,9428,9429],{"class":5558},"\u002F\u002F 3. стан «вимкнено»\n",[4383,9431,9432,9435],{"class":4385,"line":4819},[4383,9433,9434],{"class":4412},"  styleFromProps,           ",[4383,9436,9437],{"class":5558},"\u002F\u002F 4. те, що передав батько (часто перемагає)\n",[4383,9439,9440],{"class":4385,"line":4851},[4383,9441,9442],{"class":4412},"]}\n",[3743,9444,9445,9448,9449,9452,9453,9455,9456,9458,9459,3840],{},[3756,9446,9447],{},"Порядок:"," зліва направо. Якщо і ",[3764,9450,9451],{},"base",", і ",[3764,9454,4468],{}," задають ",[3764,9457,6094],{},", перемагає ",[3756,9460,9461],{},"пізніший",[3743,9463,9464,4231,9466,4231,9468,9471,9472,9475,9476,9479,9480,9483,9484,9486],{},[3764,9465,4845],{},[3764,9467,5750],{},[3764,9469,9470],{},"undefined"," у масиві ",[3756,9473,9474],{},"ігноруються",". Тому ",[3764,9477,9478],{},"cond && styles.x"," безпечний: коли ",[3764,9481,9482],{},"cond"," хибний, у масив потрапляє ",[3764,9485,4845],{},", і RN його відкидає.",[4278,9488,9489,9492,9493,9495,9496,9499,9500,4211,9503,9505,9506,9509],{},[3756,9490,9491],{},"Що бачить користувач."," Натискає кнопку — на мить темнішає (",[3764,9494,4468],{},"). Це не окремий «CSS ",[9497,9498],"active",{}," файл», а ",[3756,9501,9502],{},"той самий",[3764,9504,4724],{},", який у функціональному ",[3764,9507,9508],{},"style={({ pressed }) => […]}"," підмішує другий шар. Усі стани видно в коді поруч.",[3820,9511,9513,9514,9516],{"id":9512},"типова-помилка-create-всередині-компонента-на-кожен-render","Типова помилка: ",[3764,9515,4495],{}," всередині компонента на кожен render",[4374,9518,9520],{"className":4376,"code":9519,"language":4378,"meta":4379,"style":4379},"function Card() {\n  const styles = StyleSheet.create({ box: { padding: 16 } }); \u002F\u002F погана звичка\n  return \u003CView style={styles.box} \u002F>;\n}\n",[3764,9521,9522,9532,9563,9592],{"__ignoreMap":4379},[4383,9523,9524,9527,9530],{"class":4385,"line":4386},[4383,9525,9526],{"class":4404},"function",[4383,9528,9529],{"class":4812}," Card",[4383,9531,4816],{"class":4400},[4383,9533,9534,9536,9538,9540,9542,9544,9546,9548,9551,9553,9555,9557,9560],{"class":4385,"line":4763},[4383,9535,4822],{"class":4404},[4383,9537,5062],{"class":4828},[4383,9539,5195],{"class":4400},[4383,9541,3803],{"class":4412},[4383,9543,3840],{"class":4400},[4383,9545,4495],{"class":4812},[4383,9547,5026],{"class":4400},[4383,9549,9550],{"class":4412},"box:",[4383,9552,4745],{"class":4400},[4383,9554,4422],{"class":4412},[4383,9556,4425],{"class":4416},[4383,9558,9559],{"class":4400}," } }); ",[4383,9561,9562],{"class":5558},"\u002F\u002F погана звичка\n",[4383,9564,9565,9567,9570,9572,9574,9576,9578,9580,9582,9585,9587,9590],{"class":4385,"line":4793},[4383,9566,4859],{"class":4741},[4383,9568,9569],{"class":4389}," \u003C",[4383,9571,4198],{"class":4393},[4383,9573,4397],{"class":4396},[4383,9575,4401],{"class":4400},[4383,9577,4405],{"class":4404},[4383,9579,4879],{"class":4412},[4383,9581,3840],{"class":4408},[4383,9583,9584],{"class":4412},"box",[4383,9586,4440],{"class":4404},[4383,9588,9589],{"class":4389}," \u002F>",[4383,9591,4760],{"class":4400},[4383,9593,9594],{"class":4385,"line":4800},[4383,9595,5013],{"class":4400},[3743,9597,9598,9599,9601,9602,9605],{},"На кожному рендері створюється новий набір. Для теми це ",[3756,9600,4194],{}," вирішує light\u002Fdark. Виносьте ",[3756,9603,9604],{},"стабільну"," геометрію на рівень модуля; динаміку — у масив у JSX.",[3820,9607,9609],{"id":9608},"платформа-тіні-й-hairline","Платформа: тіні й hairline",[3743,9611,9612,9613,9616,9617,9620,9621,9624,9625,9628,9629,9632],{},"Уже бачили ",[3764,9614,9615],{},"Platform.select"," для тіні (iOS ",[3764,9618,9619],{},"shadow*",", Android ",[3764,9622,9623],{},"elevation","). Це ",[3756,9626,9627],{},"теж"," частина стилізації, не теми. Тема може змінити ",[3764,9630,9631],{},"shadowOpacity"," у dark (тінь на чорному майже невидима) — але спочатку відокремте: «як малюємо тінь» vs «які кольори ролей».",[4021,9634],{},[3738,9636,9638],{"id":9637},"семантичні-токени-не-синій-а-primary","Семантичні токени (не «синій», а «primary»)",[3743,9640,9641],{},[3746,9642],{"alt":9643,"className":9644,"src":9645},"Семантичні токени light\u002Fdark",[3750],"\u002Fimages\u002Freact-native\u002Fstylesheet-and-theming\u002F02.svg",[3820,9647,9649],{"id":9648},"звідки-взялась-ідея","Звідки взялась ідея",[3743,9651,9652,9653,9655,9656,4211,9659,9662,9663,9666],{},"У статті 05 з’явився файл ",[3756,9654,3782],{}," — словник відступів, радіусів, кольорів. Тоді мета була простіша: ",[3756,9657,9658],{},"не розмножувати",[3764,9660,9661],{},"#2563EB"," у десяти кнопках. Тепер додаємо другий вимір: той самий словник має вміти ",[3756,9664,9665],{},"дві themes"," (light і dark), не ламаючи компоненти.",[3743,9668,9669],{},"На вебі в дизайн-системах (і в Figma) розрізняють рівні приблизно так:",[3792,9671,9672,9685],{},[3795,9673,9674,9677,9678,3767,9681,9684],{},[3756,9675,9676],{},"Примітивні"," значення: ",[3764,9679,9680],{},"blue-600 = #2563EB",[3764,9682,9683],{},"gray-50 = #F8FAFC"," — «як у віялі фарб».",[3795,9686,9687,9690,9691,3767,9694,3767,9697,9700],{},[3756,9688,9689],{},"Семантичні"," ролі: ",[3764,9692,9693],{},"color.bg.canvas",[3764,9695,9696],{},"color.fg.default",[3764,9698,9699],{},"color.action.primary"," — «для чого ця фарба на екрані».",[3743,9702,9703,9704,9706,9707,9710],{},"У малому застосунку ми ",[3756,9705,4194],{}," будуємо повну трирівневу систему з сотнею токенів. Але правило одне: ",[3756,9708,9709],{},"у JSX компонентів живуть ролі",", а hex — лише в таблицях light\u002Fdark.",[3820,9712,9714],{"id":9713},"погано-vs-добре","Погано vs добре",[4075,9716,9717,9730],{},[4078,9718,9719],{},[4081,9720,9721,9724,9727],{},[4084,9722,9723],{},"Погано (прив’язка до відтінку)",[4084,9725,9726],{},"Краще (роль)",[4084,9728,9729],{},"Чому",[4094,9731,9732,9751,9765,9781],{},[4081,9733,9734,9743,9748],{},[4099,9735,9736,9739,9740],{},[3764,9737,9738],{},"blue500"," у ",[3764,9741,9742],{},"TripCard",[4099,9744,9745],{},[3764,9746,9747],{},"primary",[4099,9749,9750],{},"Бренд може змінити синій — роль «головна дія» лишається",[4081,9752,9753,9758,9762],{},[4099,9754,9755,9757],{},[3764,9756,4252],{}," у двадцяти файлах",[4099,9759,9760],{},[3764,9761,3906],{},[4099,9763,9764],{},"Dark не білий; одне місце правки",[4081,9766,9767,9773,9778],{},[4099,9768,9769,9772],{},[3764,9770,9771],{},"gray900"," для тексту",[4099,9774,9775],{},[3764,9776,9777],{},"colors.text",[4099,9779,9780],{},"У dark текст світлий, не «сірий-900»",[4081,9782,9783,9786,9792],{},[4099,9784,9785],{},"«темна тема = інвертувати все»",[4099,9787,9788,9791],{},[3756,9789,9790],{},"друга таблиця"," з тими ж ключами",[4099,9793,9794,9795,9797],{},"Фото, карта, логотип бренду ",[3756,9796,4194],{}," інвертують",[3820,9799,9801],{"id":9800},"популярні-схеми-імен-як-називають-у-світі","Популярні схеми імен (як називають «у світі»)",[3743,9803,9804,9805,9808,9809,9812,9813,9816],{},"Різні дизайн-системи кажуть ",[3756,9806,9807],{},"те саме різними словами",". Важливо не «вгадати священну назву», а ",[3756,9810,9811],{},"узгодити словник"," у команді й тримати ",[3756,9814,9815],{},"однакові ключі"," в light і dark.",[4075,9818,9819,9838],{},[4078,9820,9821],{},[4081,9822,9823,9826,9829,9832,9835],{},[4084,9824,9825],{},"Роль змістом",[4084,9827,9828],{},"Плоскі імена (як у Nomad)",[4084,9830,9831],{},"Material \u002F M3-ish",[4084,9833,9834],{},"«bg \u002F fg» (часто в web DS)",[4084,9836,9837],{},"Apple HIG-орієнтир",[4094,9839,9840,9867,9892,9915,9941,9965,9991,10014,10039,10063,10083],{},[4081,9841,9842,9845,9850,9856,9864],{},[4099,9843,9844],{},"Фон екрана",[4099,9846,9847],{},[3764,9848,9849],{},"background",[4099,9851,9852,4231,9854],{},[3764,9853,3891],{},[3764,9855,9849],{},[4099,9857,9858,4231,9861],{},[3764,9859,9860],{},"bg.canvas",[3764,9862,9863],{},"bg.app",[4099,9865,9866],{},"system background",[4081,9868,9869,9872,9876,9881,9889],{},[4099,9870,9871],{},"Картка, панель",[4099,9873,9874],{},[3764,9875,3891],{},[4099,9877,9878],{},[3764,9879,9880],{},"surfaceContainer",[4099,9882,9883,4231,9886],{},[3764,9884,9885],{},"bg.elevated",[3764,9887,9888],{},"bg.card",[4099,9890,9891],{},"secondary system background",[4081,9893,9894,9897,9902,9907,9912],{},[4099,9895,9896],{},"Основний текст",[4099,9898,9899],{},[3764,9900,9901],{},"text",[4099,9903,9904],{},[3764,9905,9906],{},"onSurface",[4099,9908,9909],{},[3764,9910,9911],{},"fg.default",[4099,9913,9914],{},"label (primary)",[4081,9916,9917,9920,9925,9930,9938],{},[4099,9918,9919],{},"Другорядний текст",[4099,9921,9922],{},[3764,9923,9924],{},"textSecondary",[4099,9926,9927],{},[3764,9928,9929],{},"onSurfaceVariant",[4099,9931,9932,4231,9935],{},[3764,9933,9934],{},"fg.muted",[3764,9936,9937],{},"fg.subtle",[4099,9939,9940],{},"secondary label",[4081,9942,9943,9946,9950,9954,9962],{},[4099,9944,9945],{},"Головна дія",[4099,9947,9948],{},[3764,9949,9747],{},[4099,9951,9952],{},[3764,9953,9747],{},[4099,9955,9956,4231,9959],{},[3764,9957,9958],{},"accent",[3764,9960,9961],{},"brand",[4099,9963,9964],{},"tintColor",[4081,9966,9967,9974,9979,9983,9988],{},[4099,9968,9969,9970,9973],{},"Текст ",[3756,9971,9972],{},"на"," primary",[4099,9975,9976],{},[3764,9977,9978],{},"onPrimary",[4099,9980,9981],{},[3764,9982,9978],{},[4099,9984,9985],{},[3764,9986,9987],{},"fg.onAccent",[4099,9989,9990],{},"(контраст на tint)",[4081,9992,9993,9996,10001,10006,10011],{},[4099,9994,9995],{},"Обводка \u002F розділювач",[4099,9997,9998],{},[3764,9999,10000],{},"border",[4099,10002,10003],{},[3764,10004,10005],{},"outline",[4099,10007,10008],{},[3764,10009,10010],{},"border.default",[4099,10012,10013],{},"separator",[4081,10015,10016,10019,10024,10028,10036],{},[4099,10017,10018],{},"Помилка \u002F небезпека",[4099,10020,10021],{},[3764,10022,10023],{},"danger",[4099,10025,10026],{},[3764,10027,4474],{},[4099,10029,10030,4231,10033],{},[3764,10031,10032],{},"fg.danger",[3764,10034,10035],{},"bg.danger",[4099,10037,10038],{},"system red (семантика)",[4081,10040,10041,10044,10049,10055,10060],{},[4099,10042,10043],{},"Успіх (опційно)",[4099,10045,10046],{},[3764,10047,10048],{},"success",[4099,10050,10051,10054],{},[3764,10052,10053],{},"tertiary"," \u002F custom",[4099,10056,10057],{},[3764,10058,10059],{},"fg.success",[4099,10061,10062],{},"system green",[4081,10064,10065,10068,10072,10075,10080],{},[4099,10066,10067],{},"Попередження (опційно)",[4099,10069,10070],{},[3764,10071,4255],{},[4099,10073,10074],{},"custom",[4099,10076,10077],{},[3764,10078,10079],{},"fg.warning",[4099,10081,10082],{},"system orange",[4081,10084,10085,10088,10095,10100,10105],{},[4099,10086,10087],{},"Приглушений \u002F disabled",[4099,10089,10090,4231,10093],{},[3764,10091,10092],{},"muted",[3764,10094,4471],{},[4099,10096,10097,10099],{},[3764,10098,9906],{}," + opacity",[4099,10101,10102],{},[3764,10103,10104],{},"fg.disabled",[4099,10106,10107],{},"quaternary label",[10109,10110,10111,10203,10295],"tabs",{},[10112,10113,10115,10118,10198],"tabs-item",{"label":10114},"Плоский словник (Nomad)",[3743,10116,10117],{},"Прості ключі в одному об’єкті — зручно на старті:",[4374,10119,10123],{"className":10120,"code":10121,"language":10122,"meta":4379,"style":4379},"language-ts shiki shiki-themes light-plus dark-plus dark-plus","colors.background\ncolors.surface\ncolors.text\ncolors.textSecondary\ncolors.primary\ncolors.onPrimary\ncolors.border\ncolors.danger\n","ts",[3764,10124,10125,10135,10144,10153,10162,10171,10180,10189],{"__ignoreMap":4379},[4383,10126,10127,10130,10132],{"class":4385,"line":4386},[4383,10128,10129],{"class":4412},"colors",[4383,10131,3840],{"class":4400},[4383,10133,10134],{"class":4412},"background\n",[4383,10136,10137,10139,10141],{"class":4385,"line":4763},[4383,10138,10129],{"class":4412},[4383,10140,3840],{"class":4400},[4383,10142,10143],{"class":4412},"surface\n",[4383,10145,10146,10148,10150],{"class":4385,"line":4793},[4383,10147,10129],{"class":4412},[4383,10149,3840],{"class":4400},[4383,10151,10152],{"class":4412},"text\n",[4383,10154,10155,10157,10159],{"class":4385,"line":4800},[4383,10156,10129],{"class":4412},[4383,10158,3840],{"class":4400},[4383,10160,10161],{"class":4412},"textSecondary\n",[4383,10163,10164,10166,10168],{"class":4385,"line":4819},[4383,10165,10129],{"class":4412},[4383,10167,3840],{"class":4400},[4383,10169,10170],{"class":4412},"primary\n",[4383,10172,10173,10175,10177],{"class":4385,"line":4851},[4383,10174,10129],{"class":4412},[4383,10176,3840],{"class":4400},[4383,10178,10179],{"class":4412},"onPrimary\n",[4383,10181,10182,10184,10186],{"class":4385,"line":4856},[4383,10183,10129],{"class":4412},[4383,10185,3840],{"class":4400},[4383,10187,10188],{"class":4412},"border\n",[4383,10190,10191,10193,10195],{"class":4385,"line":4865},[4383,10192,10129],{"class":4412},[4383,10194,3840],{"class":4400},[4383,10196,10197],{"class":4412},"danger\n",[3743,10199,10200,10201,3840],{},"Мало вкладеності, легко читати в JSX: ",[3764,10202,3906],{},[10112,10204,10206,10209,10292],{"label":10205},"Вкладений bg \u002F fg",[3743,10207,10208],{},"Часто на вебі (і в Figma-токенах):",[4374,10210,10212],{"className":10120,"code":10211,"language":10122,"meta":4379,"style":4379},"colors.bg.canvas\ncolors.bg.surface\ncolors.fg.default\ncolors.fg.muted\ncolors.border.default\ncolors.action.primary\n",[3764,10213,10214,10228,10240,10254,10267,10279],{"__ignoreMap":4379},[4383,10215,10216,10218,10220,10223,10225],{"class":4385,"line":4386},[4383,10217,10129],{"class":4412},[4383,10219,3840],{"class":4400},[4383,10221,10222],{"class":4412},"bg",[4383,10224,3840],{"class":4400},[4383,10226,10227],{"class":4412},"canvas\n",[4383,10229,10230,10232,10234,10236,10238],{"class":4385,"line":4763},[4383,10231,10129],{"class":4412},[4383,10233,3840],{"class":4400},[4383,10235,10222],{"class":4412},[4383,10237,3840],{"class":4400},[4383,10239,10143],{"class":4412},[4383,10241,10242,10244,10246,10249,10251],{"class":4385,"line":4793},[4383,10243,10129],{"class":4412},[4383,10245,3840],{"class":4400},[4383,10247,10248],{"class":4412},"fg",[4383,10250,3840],{"class":4400},[4383,10252,10253],{"class":4412},"default\n",[4383,10255,10256,10258,10260,10262,10264],{"class":4385,"line":4800},[4383,10257,10129],{"class":4412},[4383,10259,3840],{"class":4400},[4383,10261,10248],{"class":4412},[4383,10263,3840],{"class":4400},[4383,10265,10266],{"class":4412},"muted\n",[4383,10268,10269,10271,10273,10275,10277],{"class":4385,"line":4819},[4383,10270,10129],{"class":4412},[4383,10272,3840],{"class":4400},[4383,10274,10000],{"class":4412},[4383,10276,3840],{"class":4400},[4383,10278,10253],{"class":4412},[4383,10280,10281,10283,10285,10288,10290],{"class":4385,"line":4851},[4383,10282,10129],{"class":4412},[4383,10284,3840],{"class":4400},[4383,10286,10287],{"class":4412},"action",[4383,10289,3840],{"class":4400},[4383,10291,10170],{"class":4412},[3743,10293,10294],{},"Добре, коли ролей багато: «усі фони» vs «усі тексти» лежать у різних гілках.",[10112,10296,10298,10301,10375],{"label":10297},"Material-ish",[3743,10299,10300],{},"Близько до Material You \u002F M3:",[4374,10302,10304],{"className":10120,"code":10303,"language":10122,"meta":4379,"style":4379},"colors.surface\ncolors.surfaceContainer\ncolors.onSurface\ncolors.onSurfaceVariant\ncolors.primary\ncolors.onPrimary\ncolors.outline\ncolors.error\n",[3764,10305,10306,10314,10323,10332,10341,10349,10357,10366],{"__ignoreMap":4379},[4383,10307,10308,10310,10312],{"class":4385,"line":4386},[4383,10309,10129],{"class":4412},[4383,10311,3840],{"class":4400},[4383,10313,10143],{"class":4412},[4383,10315,10316,10318,10320],{"class":4385,"line":4763},[4383,10317,10129],{"class":4412},[4383,10319,3840],{"class":4400},[4383,10321,10322],{"class":4412},"surfaceContainer\n",[4383,10324,10325,10327,10329],{"class":4385,"line":4793},[4383,10326,10129],{"class":4412},[4383,10328,3840],{"class":4400},[4383,10330,10331],{"class":4412},"onSurface\n",[4383,10333,10334,10336,10338],{"class":4385,"line":4800},[4383,10335,10129],{"class":4412},[4383,10337,3840],{"class":4400},[4383,10339,10340],{"class":4412},"onSurfaceVariant\n",[4383,10342,10343,10345,10347],{"class":4385,"line":4819},[4383,10344,10129],{"class":4412},[4383,10346,3840],{"class":4400},[4383,10348,10170],{"class":4412},[4383,10350,10351,10353,10355],{"class":4385,"line":4851},[4383,10352,10129],{"class":4412},[4383,10354,3840],{"class":4400},[4383,10356,10179],{"class":4412},[4383,10358,10359,10361,10363],{"class":4385,"line":4856},[4383,10360,10129],{"class":4412},[4383,10362,3840],{"class":4400},[4383,10364,10365],{"class":4412},"outline\n",[4383,10367,10368,10370,10372],{"class":4385,"line":4865},[4383,10369,10129],{"class":4412},[4383,10371,3840],{"class":4400},[4383,10373,10374],{"class":4412},"error\n",[3743,10376,10377,10380,10381,10384,10385,3840],{},[3764,10378,10379],{},"onX"," = «колір контенту ",[3756,10382,10383],{},"поверх"," ролі X» — та сама ідея, що наш ",[3764,10386,9978],{},[4278,10388,10389,10392,10393,10396,10397,10400,10401,10404,10405,3907,10407,3907,10409,10411],{},[3756,10390,10391],{},"Що обрати."," Для Nomad і більшості навчальних \u002F середніх продуктів вистачає ",[3756,10394,10395],{},"плоского"," словника з 8–12 ключів. Вкладені ",[3764,10398,10399],{},"bg\u002Ffg"," або повний M3 мають сенс, коли ролей десятки й дизайн уже так назвав токени в Figma. ",[3756,10402,10403],{},"Не змішуйте"," в одному проєкті ",[3764,10406,9747],{},[3764,10408,9961],{},[3764,10410,9958],{}," для тієї ж кнопки.",[3820,10413,10415],{"id":10414},"ролі-які-реально-потрібні-на-старті-nomad","Ролі, які реально потрібні на старті Nomad",[4581,10417,10418,10429,10447,10459,10469,10480,10494],{},[4584,10419,10421,10422,10425,10426,10428],{"name":9849,"type":10420},"роль","Фон ",[3756,10423,10424],{},"екрана"," (background \u002F canvas). У light — світло-сірий\u002Foff-white, у dark — майже чорний. Користувач бачить «колір застосунку за картками». Синоніми в інших системах: ",[3764,10427,9860],{},", system background.",[4584,10430,10431,10432,10435,10436,10439,10440,10442,10443,3767,10445,3840],{"name":3891,"type":10420},"Поверхня ",[3756,10433,10434],{},"піднятого"," блоку: картка, модалка, нижня панель. Зазвичай трохи ",[3756,10437,10438],{},"інша",", ніж ",[3764,10441,9849],{},", щоб картка відділялась від полотна без обов’язкової жирної рамки. Синоніми: ",[3764,10444,9888],{},[3764,10446,9880],{},[4584,10448,10450,10451,4231,10453,3767,10455,4231,10457,3840],{"name":10449,"type":10420},"text \u002F textSecondary","Основний і другорядний текст. Secondary — підписи, дати, підказки: менший контраст, але все ще читабельний. Синоніми: ",[3764,10452,9906],{},[3764,10454,9929],{},[3764,10456,9911],{},[3764,10458,9934],{},[4584,10460,10462,10463,3767,10465,3767,10467,3840],{"name":10461,"type":10420},"primary \u002F primaryPressed","Акцент дій (кнопка «Нова поїздка», активний чіп). Pressed — трохи темніший\u002Fсвітліший відтінок на час дотику. Синоніми: ",[3764,10464,9961],{},[3764,10466,9958],{},[3764,10468,9964],{},[4584,10470,10471,10472,10475,10476,3767,10478,3840],{"name":10000,"type":10420},"Лінії розділення, обводка картки. У dark бордери часто ",[3756,10473,10474],{},"світліші за фон",", але не білі «як крейда». Синоніми: ",[3764,10477,10005],{},[3764,10479,10013],{},[4584,10481,10482,10483,10485,10486,10488,10489,10491,10492,3840],{"name":9978,"type":10420},"Текст\u002Fіконка ",[3756,10484,9972],{}," тлі ",[3764,10487,9747],{}," (зазвичай білий). Окрема роль, щоб не плутати з ",[3764,10490,9901],{}," екрана. Синонім у M3: ",[3764,10493,9978],{},[4584,10495,10496,10497,3767,10499,3840],{"name":10023,"type":10420},"Помилки, деструктивні дії. У dark часто трохи м’якший червоний, щоб не «палав» на чорному. Синоніми: ",[3764,10498,4474],{},[3764,10500,10501],{},"destructive",[10503,10504,10505],"plant-uml",{},[4374,10506,10510],{"className":10507,"code":10508,"language":10509,"meta":4379,"style":4379},"language-plantuml shiki shiki-themes light-plus dark-plus dark-plus","@startuml\nskinparam style plain\nskinparam backgroundColor #ffffff\n\nrectangle \"Компонент TripCard\\n(не знає hex)\" as C {\n  rectangle \"backgroundColor: colors.surface\" as S\n  rectangle \"color: colors.text\" as T\n  rectangle \"borderColor: colors.border\" as B\n}\n\nrectangle \"Тема light\" as L {\n  rectangle \"surface = #FFFFFF\" as L1\n  rectangle \"text = #0F172A\" as L2\n}\n\nrectangle \"Тема dark\" as D {\n  rectangle \"surface = #1C1C1E\" as D1\n  rectangle \"text = #F5F5F7\" as D2\n}\n\nC --> L : useTheme().colors\nC --> D : useTheme().colors\n\n@enduml\n","plantuml",[3764,10511,10512,10517,10522,10527,10531,10536,10541,10546,10551,10555,10559,10564,10569,10574,10578,10582,10587,10592,10597,10601,10605,10610,10615,10619],{"__ignoreMap":4379},[4383,10513,10514],{"class":4385,"line":4386},[4383,10515,10516],{},"@startuml\n",[4383,10518,10519],{"class":4385,"line":4763},[4383,10520,10521],{},"skinparam style plain\n",[4383,10523,10524],{"class":4385,"line":4793},[4383,10525,10526],{},"skinparam backgroundColor #ffffff\n",[4383,10528,10529],{"class":4385,"line":4800},[4383,10530,4797],{"emptyLinePlaceholder":4796},[4383,10532,10533],{"class":4385,"line":4819},[4383,10534,10535],{},"rectangle \"Компонент TripCard\\n(не знає hex)\" as C {\n",[4383,10537,10538],{"class":4385,"line":4851},[4383,10539,10540],{},"  rectangle \"backgroundColor: colors.surface\" as S\n",[4383,10542,10543],{"class":4385,"line":4856},[4383,10544,10545],{},"  rectangle \"color: colors.text\" as T\n",[4383,10547,10548],{"class":4385,"line":4865},[4383,10549,10550],{},"  rectangle \"borderColor: colors.border\" as B\n",[4383,10552,10553],{"class":4385,"line":4892},[4383,10554,5013],{},[4383,10556,10557],{"class":4385,"line":4928},[4383,10558,4797],{"emptyLinePlaceholder":4796},[4383,10560,10561],{"class":4385,"line":4952},[4383,10562,10563],{},"rectangle \"Тема light\" as L {\n",[4383,10565,10566],{"class":4385,"line":4958},[4383,10567,10568],{},"  rectangle \"surface = #FFFFFF\" as L1\n",[4383,10570,10571],{"class":4385,"line":4968},[4383,10572,10573],{},"  rectangle \"text = #0F172A\" as L2\n",[4383,10575,10576],{"class":4385,"line":4976},[4383,10577,5013],{},[4383,10579,10580],{"class":4385,"line":5016},[4383,10581,4797],{"emptyLinePlaceholder":4796},[4383,10583,10584],{"class":4385,"line":5039},[4383,10585,10586],{},"rectangle \"Тема dark\" as D {\n",[4383,10588,10589],{"class":4385,"line":5053},[4383,10590,10591],{},"  rectangle \"surface = #1C1C1E\" as D1\n",[4383,10593,10594],{"class":4385,"line":5072},[4383,10595,10596],{},"  rectangle \"text = #F5F5F7\" as D2\n",[4383,10598,10599],{"class":4385,"line":5089},[4383,10600,5013],{},[4383,10602,10603],{"class":4385,"line":5097},[4383,10604,4797],{"emptyLinePlaceholder":4796},[4383,10606,10607],{"class":4385,"line":5103},[4383,10608,10609],{},"C --> L : useTheme().colors\n",[4383,10611,10612],{"class":4385,"line":5152},[4383,10613,10614],{},"C --> D : useTheme().colors\n",[4383,10616,10617],{"class":4385,"line":5161},[4383,10618,4797],{"emptyLinePlaceholder":4796},[4383,10620,10621],{"class":4385,"line":5171},[4383,10622,10623],{},"@enduml\n",[3743,10625,10626,10629,10630,10632,10633,10636],{},[3756,10627,10628],{},"Правило однією фразою:"," компонент знає ",[3860,10631,10420],{}," («я поверхня картки»), тема знає ",[3860,10634,10635],{},"конкретний колір"," для light і dark.",[3820,10638,10640,10641,10643],{"id":10639},"демо-семантичні-ролі-весь-stylesheet-api","Демо: семантичні ролі + весь ",[3764,10642,3803],{}," API",[3743,10645,10646],{},"Нижче — один екран, де:",[4075,10648,10649,10659],{},[4078,10650,10651],{},[4081,10652,10653,10656],{},[4084,10654,10655],{},"Що",[4084,10657,10658],{},"Де в демо",[4094,10660,10661,10685,10697,10706,10715,10724,10733],{},[4081,10662,10663,10682],{},[4099,10664,10665,4231,10668,4231,10670,4231,10672,4231,10674,4231,10676,4231,10678,4231,10680],{},[3764,10666,10667],{},"colors.background",[3764,10669,3891],{},[3764,10671,9901],{},[3764,10673,9924],{},[3764,10675,9747],{},[3764,10677,9978],{},[3764,10679,10000],{},[3764,10681,10023],{},[4099,10683,10684],{},"фон, картка, тексти, кнопка, обводка, рядок помилки",[4081,10686,10687,10691],{},[4099,10688,10689],{},[3764,10690,3766],{},[4099,10692,10693,10694],{},"геометрія ",[3764,10695,10696],{},"styles.*",[4081,10698,10699,10703],{},[4099,10700,10701],{},[3764,10702,5471],{},[4099,10704,10705],{},"підпис «title fontSize = …»",[4081,10707,10708,10712],{},[4099,10709,10710],{},[3764,10711,4690],{},[4099,10713,10714],{},"лінія під заголовком картки",[4081,10716,10717,10721],{},[4099,10718,10719],{},[3764,10720,4667],{},[4099,10722,10723],{},"бейдж «NEW» у куті",[4081,10725,10726,10730],{},[4099,10727,10728],{},[3764,10729,4647],{},[4099,10731,10732],{},"оверлей «Видалення…» поверх картки",[4081,10734,10735,10738],{},[4099,10736,10737],{},"масив стилів",[4099,10739,10740],{},"кнопка primary \u002F pressed \u002F danger",[3743,10742,10743,10744,10747,10748,10751,10752,10754],{},"Перемикач light\u002Fdark змінює ",[3756,10745,10746],{},"лише"," словник ",[3764,10749,10750],{},"c"," — JSX і ",[3764,10753,4879],{}," ті самі.",[4727,10756,10760],{"device":4729,"filename":10757,"title":10758,"height":10759},"TokensAndStyleSheetAll.tsx","Токени + StyleSheet API",720,[4374,10761,10763],{"className":4376,"code":10762,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\n\nconst light = {\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\nconst dark = {\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};\n\nexport default function App() {\n  const [mode, setMode] = useState\u003C'light' | 'dark'>('light');\n  const [busy, setBusy] = useState(false);\n  const c = mode === 'dark' ? dark : light;\n\n  const titleFlat = StyleSheet.flatten([\n    styles.titleBase,\n    styles.titleStrong,\n    { color: c.text },\n  ]);\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: c.background }]}>\n      \u003CView style={styles.row}>\n        {(['light', 'dark'] as const).map((m) => {\n          const active = mode === m;\n          return (\n            \u003CPressable\n              key={m}\n              onPress={() => setMode(m)}\n              style={[\n                styles.chip,\n                {\n                  backgroundColor: active ? c.primary : c.surface,\n                  borderColor: c.border,\n                },\n              ]}\n            >\n              \u003CText\n                style={{\n                  color: active ? c.onPrimary : c.text,\n                  fontWeight: '600',\n                  fontSize: 13,\n                }}\n              >\n                {m === 'light' ? 'Світла' : 'Темна'}\n              \u003C\u002FText>\n            \u003C\u002FPressable>\n          );\n        })}\n      \u003C\u002FView>\n\n      \u003CText style={titleFlat}>Поїздка · токени\u003C\u002FText>\n      \u003CText style={{ color: c.textSecondary, fontSize: 12 }}>\n        flatten → fontSize {(titleFlat as { fontSize?: number }).fontSize}\n      \u003C\u002FText>\n\n      \u003CView\n        style={[\n          styles.card,\n          { backgroundColor: c.surface, borderColor: c.border },\n        ]}\n      >\n        {\u002F* absoluteFillObject — кутовий бейдж *\u002F}\n        \u003CView\n          style={{\n            ...StyleSheet.absoluteFillObject,\n            top: 10,\n            left: undefined,\n            right: 10,\n            bottom: undefined,\n            width: 40,\n            height: 22,\n            borderRadius: 6,\n            backgroundColor: c.primary,\n            alignItems: 'center',\n            justifyContent: 'center',\n          }}\n        >\n          \u003CText style={{ color: c.onPrimary, fontSize: 10, fontWeight: '800' }}>\n            NEW\n          \u003C\u002FText>\n        \u003C\u002FView>\n\n        \u003CText style={[styles.cardTitle, { color: c.text }]}>Київ — Карпати\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 4, lineHeight: 18 }}>\n          surface + text + textSecondary. Hex лише в таблицях light\u002Fdark.\n        \u003C\u002FText>\n\n        {\u002F* hairlineWidth *\u002F}\n        \u003CView\n          style={{\n            height: StyleSheet.hairlineWidth,\n            backgroundColor: c.border,\n            marginVertical: 12,\n          }}\n        \u002F>\n\n        \u003CText style={{ color: c.danger, fontSize: 13, fontWeight: '600' }}>\n          danger · «Скасувати бронювання»\n        \u003C\u002FText>\n\n        {\u002F* absoluteFill — оверлей стану *\u002F}\n        {busy && (\n          \u003CView style={[StyleSheet.absoluteFill, styles.overlay]}>\n            \u003CText style={{ color: c.onPrimary, fontWeight: '800' }}>\n              Видалення…\n            \u003C\u002FText>\n          \u003C\u002FView>\n        )}\n      \u003C\u002FView>\n\n      \u003CPressable\n        onPress={() => setBusy((v) => !v)}\n        style={({ pressed }) => [\n          styles.btn,\n          { backgroundColor: pressed ? c.primaryPressed : c.primary },\n        ]}\n      >\n        \u003CText style={{ color: c.onPrimary, fontWeight: '700' }}>\n          {busy ? 'Сховати absoluteFill' : 'Показати absoluteFill'}\n        \u003C\u002FText>\n      \u003C\u002FPressable>\n\n      \u003CText style={{ color: c.textSecondary, fontSize: 12, lineHeight: 17 }}>\n        create · flatten · hairline · absoluteFill · absoluteFillObject ·\n        background\u002Fsurface\u002Ftext\u002Fprimary\u002Fborder\u002Fdanger\u002FonPrimary\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 18, justifyContent: 'center', gap: 10 },\n  row: { flexDirection: 'row', gap: 8 },\n  chip: {\n    paddingHorizontal: 12,\n    paddingVertical: 8,\n    borderRadius: 8,\n    borderWidth: 1,\n  },\n  titleBase: { fontSize: 16 },\n  titleStrong: { fontSize: 20, fontWeight: '800' },\n  card: {\n    borderRadius: 16,\n    borderWidth: 1,\n    padding: 16,\n    minHeight: 150,\n    overflow: 'hidden',\n  },\n  cardTitle: { fontSize: 17, fontWeight: '700', marginTop: 4 },\n  overlay: {\n    backgroundColor: 'rgba(15, 23, 42, 0.65)',\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  btn: {\n    paddingVertical: 14,\n    borderRadius: 12,\n    alignItems: 'center',\n  },\n});\n",[3764,10764,10765,10781,10809,10813,10823,10832,10842,10852,10862,10871,10881,10890,10900,10909,10914,10918,10927,10936,10945,10954,10963,10972,10980,10989,10998,11006,11010,11014,11026,11062,11086,11114,11118,11134,11144,11154,11168,11172,11176,11182,11218,11240,11278,11300,11307,11313,11326,11350,11361,11373,11378,11403,11416,11421,11428,11433,11441,11452,11477,11486,11495,11502,11507,11531,11540,11549,11554,11561,11569,11573,11600,11634,11661,11669,11673,11679,11689,11699,11725,11731,11735,11744,11750,11760,11772,11780,11788,11796,11804,11813,11821,11829,11841,11849,11857,11863,11867,11907,11912,11920,11928,11932,11978,12018,12023,12031,12035,12044,12050,12060,12072,12084,12093,12099,12104,12108,12148,12153,12161,12165,12174,12185,12221,12256,12262,12271,12280,12287,12296,12301,12308,12340,12359,12370,12399,12406,12411,12446,12465,12474,12483,12488,12530,12536,12542,12551,12560,12565,12570,12575,12592,12623,12645,12653,12663,12672,12681,12690,12695,12708,12727,12734,12743,12752,12761,12770,12779,12784,12810,12818,12828,12837,12846,12851,12858,12867,12876,12885,12890],{"__ignoreMap":4379},[4383,10766,10767,10769,10771,10773,10775,10777,10779],{"class":4385,"line":4386},[4383,10768,4742],{"class":4741},[4383,10770,4745],{"class":4400},[4383,10772,4748],{"class":4412},[4383,10774,4751],{"class":4400},[4383,10776,4754],{"class":4741},[4383,10778,4757],{"class":4433},[4383,10780,4760],{"class":4400},[4383,10782,10783,10785,10787,10789,10791,10793,10795,10797,10799,10801,10803,10805,10807],{"class":4385,"line":4763},[4383,10784,4742],{"class":4741},[4383,10786,4745],{"class":4400},[4383,10788,4198],{"class":4412},[4383,10790,3767],{"class":4400},[4383,10792,4241],{"class":4412},[4383,10794,3767],{"class":4400},[4383,10796,4724],{"class":4412},[4383,10798,3767],{"class":4400},[4383,10800,3803],{"class":4412},[4383,10802,4751],{"class":4400},[4383,10804,4754],{"class":4741},[4383,10806,4788],{"class":4433},[4383,10808,4760],{"class":4400},[4383,10810,10811],{"class":4385,"line":4793},[4383,10812,4797],{"emptyLinePlaceholder":4796},[4383,10814,10815,10817,10820],{"class":4385,"line":4800},[4383,10816,5190],{"class":4404},[4383,10818,10819],{"class":4828}," light",[4383,10821,10822],{"class":4400}," = {\n",[4383,10824,10825,10828,10830],{"class":4385,"line":4819},[4383,10826,10827],{"class":4412},"  background:",[4383,10829,4434],{"class":4433},[4383,10831,5050],{"class":4400},[4383,10833,10834,10837,10840],{"class":4385,"line":4851},[4383,10835,10836],{"class":4412},"  surface:",[4383,10838,10839],{"class":4433}," '#FFFFFF'",[4383,10841,5050],{"class":4400},[4383,10843,10844,10847,10850],{"class":4385,"line":4856},[4383,10845,10846],{"class":4412},"  text:",[4383,10848,10849],{"class":4433}," '#0F172A'",[4383,10851,5050],{"class":4400},[4383,10853,10854,10857,10860],{"class":4385,"line":4865},[4383,10855,10856],{"class":4412},"  textSecondary:",[4383,10858,10859],{"class":4433}," '#64748B'",[4383,10861,5050],{"class":4400},[4383,10863,10864,10867,10869],{"class":4385,"line":4892},[4383,10865,10866],{"class":4412},"  primary:",[4383,10868,5402],{"class":4433},[4383,10870,5050],{"class":4400},[4383,10872,10873,10876,10879],{"class":4385,"line":4928},[4383,10874,10875],{"class":4412},"  primaryPressed:",[4383,10877,10878],{"class":4433}," '#1D4ED8'",[4383,10880,5050],{"class":4400},[4383,10882,10883,10886,10888],{"class":4385,"line":4952},[4383,10884,10885],{"class":4412},"  border:",[4383,10887,5962],{"class":4433},[4383,10889,5050],{"class":4400},[4383,10891,10892,10895,10898],{"class":4385,"line":4958},[4383,10893,10894],{"class":4412},"  danger:",[4383,10896,10897],{"class":4433}," '#DC2626'",[4383,10899,5050],{"class":4400},[4383,10901,10902,10905,10907],{"class":4385,"line":4968},[4383,10903,10904],{"class":4412},"  onPrimary:",[4383,10906,10839],{"class":4433},[4383,10908,5050],{"class":4400},[4383,10910,10911],{"class":4385,"line":4976},[4383,10912,10913],{"class":4400},"};\n",[4383,10915,10916],{"class":4385,"line":5016},[4383,10917,4797],{"emptyLinePlaceholder":4796},[4383,10919,10920,10922,10925],{"class":4385,"line":5039},[4383,10921,5190],{"class":4404},[4383,10923,10924],{"class":4828}," dark",[4383,10926,10822],{"class":4400},[4383,10928,10929,10931,10934],{"class":4385,"line":5053},[4383,10930,10827],{"class":4412},[4383,10932,10933],{"class":4433}," '#000000'",[4383,10935,5050],{"class":4400},[4383,10937,10938,10940,10943],{"class":4385,"line":5072},[4383,10939,10836],{"class":4412},[4383,10941,10942],{"class":4433}," '#1C1C1E'",[4383,10944,5050],{"class":4400},[4383,10946,10947,10949,10952],{"class":4385,"line":5089},[4383,10948,10846],{"class":4412},[4383,10950,10951],{"class":4433}," '#F5F5F7'",[4383,10953,5050],{"class":4400},[4383,10955,10956,10958,10961],{"class":4385,"line":5097},[4383,10957,10856],{"class":4412},[4383,10959,10960],{"class":4433}," '#A1A1AA'",[4383,10962,5050],{"class":4400},[4383,10964,10965,10967,10970],{"class":4385,"line":5103},[4383,10966,10866],{"class":4412},[4383,10968,10969],{"class":4433}," '#3B82F6'",[4383,10971,5050],{"class":4400},[4383,10973,10974,10976,10978],{"class":4385,"line":5152},[4383,10975,10875],{"class":4412},[4383,10977,5402],{"class":4433},[4383,10979,5050],{"class":4400},[4383,10981,10982,10984,10987],{"class":4385,"line":5161},[4383,10983,10885],{"class":4412},[4383,10985,10986],{"class":4433}," '#3A3A3C'",[4383,10988,5050],{"class":4400},[4383,10990,10991,10993,10996],{"class":4385,"line":5171},[4383,10992,10894],{"class":4412},[4383,10994,10995],{"class":4433}," '#F87171'",[4383,10997,5050],{"class":4400},[4383,10999,11000,11002,11004],{"class":4385,"line":5177},[4383,11001,10904],{"class":4412},[4383,11003,10839],{"class":4433},[4383,11005,5050],{"class":4400},[4383,11007,11008],{"class":4385,"line":5182},[4383,11009,10913],{"class":4400},[4383,11011,11012],{"class":4385,"line":5187},[4383,11013,4797],{"emptyLinePlaceholder":4796},[4383,11015,11016,11018,11020,11022,11024],{"class":4385,"line":5207},[4383,11017,4803],{"class":4741},[4383,11019,4806],{"class":4741},[4383,11021,4809],{"class":4404},[4383,11023,4813],{"class":4812},[4383,11025,4816],{"class":4400},[4383,11027,11028,11030,11032,11035,11037,11040,11042,11044,11046,11049,11052,11055,11058,11060],{"class":4385,"line":5216},[4383,11029,4822],{"class":4404},[4383,11031,4825],{"class":4400},[4383,11033,11034],{"class":4828},"mode",[4383,11036,3767],{"class":4400},[4383,11038,11039],{"class":4828},"setMode",[4383,11041,4837],{"class":4400},[4383,11043,4748],{"class":4812},[4383,11045,4390],{"class":4400},[4383,11047,11048],{"class":4433},"'light'",[4383,11050,11051],{"class":4400}," | ",[4383,11053,11054],{"class":4433},"'dark'",[4383,11056,11057],{"class":4400},">(",[4383,11059,11048],{"class":4433},[4383,11061,4848],{"class":4400},[4383,11063,11064,11066,11068,11071,11073,11076,11078,11080,11082,11084],{"class":4385,"line":5226},[4383,11065,4822],{"class":4404},[4383,11067,4825],{"class":4400},[4383,11069,11070],{"class":4828},"busy",[4383,11072,3767],{"class":4400},[4383,11074,11075],{"class":4828},"setBusy",[4383,11077,4837],{"class":4400},[4383,11079,4748],{"class":4812},[4383,11081,4842],{"class":4400},[4383,11083,4845],{"class":4404},[4383,11085,4848],{"class":4400},[4383,11087,11088,11090,11093,11095,11097,11100,11102,11105,11107,11110,11112],{"class":4385,"line":5236},[4383,11089,4822],{"class":4404},[4383,11091,11092],{"class":4828}," c",[4383,11094,5195],{"class":4400},[4383,11096,11034],{"class":4412},[4383,11098,11099],{"class":4400}," === ",[4383,11101,11054],{"class":4433},[4383,11103,11104],{"class":4400}," ? ",[4383,11106,3869],{"class":4412},[4383,11108,11109],{"class":4400}," : ",[4383,11111,3862],{"class":4412},[4383,11113,4760],{"class":4400},[4383,11115,11116],{"class":4385,"line":5247},[4383,11117,4797],{"emptyLinePlaceholder":4796},[4383,11119,11120,11122,11124,11126,11128,11130,11132],{"class":4385,"line":5258},[4383,11121,4822],{"class":4404},[4383,11123,7737],{"class":4828},[4383,11125,5195],{"class":4400},[4383,11127,3803],{"class":4412},[4383,11129,3840],{"class":4400},[4383,11131,5460],{"class":4812},[4383,11133,5542],{"class":4400},[4383,11135,11136,11138,11140,11142],{"class":4385,"line":5269},[4383,11137,5547],{"class":4412},[4383,11139,3840],{"class":4400},[4383,11141,5552],{"class":4412},[4383,11143,5050],{"class":4400},[4383,11145,11146,11148,11150,11152],{"class":4385,"line":5275},[4383,11147,5547],{"class":4412},[4383,11149,3840],{"class":4400},[4383,11151,7766],{"class":4412},[4383,11153,5050],{"class":4400},[4383,11155,11156,11158,11160,11162,11164,11166],{"class":4385,"line":5308},[4383,11157,5579],{"class":4400},[4383,11159,5299],{"class":4412},[4383,11161,11092],{"class":4412},[4383,11163,3840],{"class":4400},[4383,11165,9901],{"class":4412},[4383,11167,5305],{"class":4400},[4383,11169,11170],{"class":4385,"line":5338},[4383,11171,5594],{"class":4400},[4383,11173,11174],{"class":4385,"line":5346},[4383,11175,4797],{"emptyLinePlaceholder":4796},[4383,11177,11178,11180],{"class":4385,"line":5356},[4383,11179,4859],{"class":4741},[4383,11181,4862],{"class":4400},[4383,11183,11184,11186,11188,11190,11192,11194,11196,11198,11200,11202,11204,11206,11208,11210,11212,11214,11216],{"class":4385,"line":5367},[4383,11185,4868],{"class":4389},[4383,11187,4198],{"class":4393},[4383,11189,4397],{"class":4396},[4383,11191,4401],{"class":4400},[4383,11193,4405],{"class":4404},[4383,11195,6278],{"class":4408},[4383,11197,4879],{"class":4412},[4383,11199,3840],{"class":4408},[4383,11201,4884],{"class":4412},[4383,11203,9329],{"class":4408},[4383,11205,4430],{"class":4412},[4383,11207,11092],{"class":4412},[4383,11209,3840],{"class":4408},[4383,11211,9849],{"class":4412},[4383,11213,9341],{"class":4408},[4383,11215,4440],{"class":4404},[4383,11217,4889],{"class":4389},[4383,11219,11220,11222,11224,11226,11228,11230,11232,11234,11236,11238],{"class":4385,"line":5377},[4383,11221,4895],{"class":4389},[4383,11223,4198],{"class":4393},[4383,11225,4397],{"class":4396},[4383,11227,4401],{"class":4400},[4383,11229,4405],{"class":4404},[4383,11231,4879],{"class":4412},[4383,11233,3840],{"class":4408},[4383,11235,7068],{"class":4412},[4383,11237,4440],{"class":4404},[4383,11239,4889],{"class":4389},[4383,11241,11242,11244,11247,11249,11251,11253,11256,11259,11262,11264,11267,11269,11272,11274,11276],{"class":4385,"line":5387},[4383,11243,7939],{"class":4404},[4383,11245,11246],{"class":4408},"([",[4383,11248,11048],{"class":4433},[4383,11250,3767],{"class":4408},[4383,11252,11054],{"class":4433},[4383,11254,11255],{"class":4408},"] ",[4383,11257,11258],{"class":4741},"as",[4383,11260,11261],{"class":4404}," const",[4383,11263,4619],{"class":4408},[4383,11265,11266],{"class":4812},"map",[4383,11268,4995],{"class":4408},[4383,11270,11271],{"class":4412},"m",[4383,11273,5001],{"class":4408},[4383,11275,4989],{"class":4404},[4383,11277,5213],{"class":4408},[4383,11279,11280,11283,11286,11289,11292,11295,11298],{"class":4385,"line":5392},[4383,11281,11282],{"class":4404},"          const",[4383,11284,11285],{"class":4828}," active",[4383,11287,11288],{"class":4400}," =",[4383,11290,11291],{"class":4412}," mode",[4383,11293,11294],{"class":4400}," ===",[4383,11296,11297],{"class":4412}," m",[4383,11299,4760],{"class":4408},[4383,11301,11302,11305],{"class":4385,"line":5407},[4383,11303,11304],{"class":4741},"          return",[4383,11306,4862],{"class":4408},[4383,11308,11309,11311],{"class":4385,"line":5423},[4383,11310,8303],{"class":4389},[4383,11312,4973],{"class":4393},[4383,11314,11315,11318,11320,11322,11324],{"class":4385,"line":5450},[4383,11316,11317],{"class":4396},"              key",[4383,11319,4401],{"class":4400},[4383,11321,4405],{"class":4404},[4383,11323,11271],{"class":4412},[4383,11325,5013],{"class":4404},[4383,11327,11328,11331,11333,11335,11337,11339,11342,11344,11346,11348],{"class":4385,"line":6760},[4383,11329,11330],{"class":4396},"              onPress",[4383,11332,4401],{"class":4400},[4383,11334,4405],{"class":4404},[4383,11336,4986],{"class":4408},[4383,11338,4989],{"class":4404},[4383,11340,11341],{"class":4812}," setMode",[4383,11343,4842],{"class":4408},[4383,11345,11271],{"class":4412},[4383,11347,4141],{"class":4408},[4383,11349,5013],{"class":4404},[4383,11351,11352,11355,11357,11359],{"class":4385,"line":6765},[4383,11353,11354],{"class":4396},"              style",[4383,11356,4401],{"class":4400},[4383,11358,4405],{"class":4404},[4383,11360,9394],{"class":4408},[4383,11362,11363,11366,11368,11371],{"class":4385,"line":6793},[4383,11364,11365],{"class":4412},"                styles",[4383,11367,3840],{"class":4408},[4383,11369,11370],{"class":4412},"chip",[4383,11372,5050],{"class":4408},[4383,11374,11375],{"class":4385,"line":6801},[4383,11376,11377],{"class":4408},"                {\n",[4383,11379,11380,11383,11385,11387,11389,11391,11393,11395,11397,11399,11401],{"class":4385,"line":6811},[4383,11381,11382],{"class":4412},"                  backgroundColor:",[4383,11384,11285],{"class":4412},[4383,11386,5132],{"class":4400},[4383,11388,11092],{"class":4412},[4383,11390,3840],{"class":4408},[4383,11392,9747],{"class":4412},[4383,11394,5138],{"class":4400},[4383,11396,11092],{"class":4412},[4383,11398,3840],{"class":4408},[4383,11400,3891],{"class":4412},[4383,11402,5050],{"class":4408},[4383,11404,11405,11408,11410,11412,11414],{"class":4385,"line":6820},[4383,11406,11407],{"class":4412},"                  borderColor:",[4383,11409,11092],{"class":4412},[4383,11411,3840],{"class":4408},[4383,11413,10000],{"class":4412},[4383,11415,5050],{"class":4408},[4383,11417,11418],{"class":4385,"line":6829},[4383,11419,11420],{"class":4408},"                },\n",[4383,11422,11423,11426],{"class":4385,"line":6834},[4383,11424,11425],{"class":4408},"              ]",[4383,11427,5013],{"class":4404},[4383,11429,11430],{"class":4385,"line":6860},[4383,11431,11432],{"class":4389},"            >\n",[4383,11434,11435,11438],{"class":4385,"line":6893},[4383,11436,11437],{"class":4389},"              \u003C",[4383,11439,11440],{"class":4393},"Text\n",[4383,11442,11443,11446,11448,11450],{"class":4385,"line":8399},[4383,11444,11445],{"class":4396},"                style",[4383,11447,4401],{"class":4400},[4383,11449,4405],{"class":4404},[4383,11451,6455],{"class":4408},[4383,11453,11454,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475],{"class":4385,"line":8418},[4383,11455,11456],{"class":4412},"                  color:",[4383,11458,11285],{"class":4412},[4383,11460,5132],{"class":4400},[4383,11462,11092],{"class":4412},[4383,11464,3840],{"class":4408},[4383,11466,9978],{"class":4412},[4383,11468,5138],{"class":4400},[4383,11470,11092],{"class":4412},[4383,11472,3840],{"class":4408},[4383,11474,9901],{"class":4412},[4383,11476,5050],{"class":4408},[4383,11478,11479,11482,11484],{"class":4385,"line":8429},[4383,11480,11481],{"class":4412},"                  fontWeight:",[4383,11483,5994],{"class":4433},[4383,11485,5050],{"class":4408},[4383,11487,11488,11491,11493],{"class":4385,"line":8445},[4383,11489,11490],{"class":4412},"                  fontSize:",[4383,11492,5318],{"class":4416},[4383,11494,5050],{"class":4408},[4383,11496,11497,11500],{"class":4385,"line":8460},[4383,11498,11499],{"class":4408},"                }",[4383,11501,5013],{"class":4404},[4383,11503,11504],{"class":4385,"line":8467},[4383,11505,11506],{"class":4389},"              >\n",[4383,11508,11509,11512,11514,11516,11519,11521,11524,11526,11529],{"class":4385,"line":8472},[4383,11510,11511],{"class":4404},"                {",[4383,11513,11271],{"class":4412},[4383,11515,11294],{"class":4400},[4383,11517,11518],{"class":4433}," 'light'",[4383,11520,5132],{"class":4400},[4383,11522,11523],{"class":4433}," 'Світла'",[4383,11525,5138],{"class":4400},[4383,11527,11528],{"class":4433}," 'Темна'",[4383,11530,5013],{"class":4404},[4383,11532,11533,11536,11538],{"class":4385,"line":8495},[4383,11534,11535],{"class":4389},"              \u003C\u002F",[4383,11537,4241],{"class":4393},[4383,11539,4889],{"class":4389},[4383,11541,11542,11545,11547],{"class":4385,"line":8515},[4383,11543,11544],{"class":4389},"            \u003C\u002F",[4383,11546,4724],{"class":4393},[4383,11548,4889],{"class":4389},[4383,11550,11551],{"class":4385,"line":8524},[4383,11552,11553],{"class":4408},"          );\n",[4383,11555,11556,11559],{"class":4385,"line":8533},[4383,11557,11558],{"class":4408},"        })",[4383,11560,5013],{"class":4404},[4383,11562,11563,11565,11567],{"class":4385,"line":8538},[4383,11564,4961],{"class":4389},[4383,11566,4198],{"class":4393},[4383,11568,4889],{"class":4389},[4383,11570,11571],{"class":4385,"line":8561},[4383,11572,4797],{"emptyLinePlaceholder":4796},[4383,11574,11575,11577,11579,11581,11583,11585,11587,11589,11591,11594,11596,11598],{"class":4385,"line":8567},[4383,11576,4895],{"class":4389},[4383,11578,4241],{"class":4393},[4383,11580,4397],{"class":4396},[4383,11582,4401],{"class":4400},[4383,11584,4405],{"class":4404},[4383,11586,7829],{"class":4412},[4383,11588,4440],{"class":4404},[4383,11590,4915],{"class":4389},[4383,11592,11593],{"class":4400},"Поїздка · токени",[4383,11595,4921],{"class":4389},[4383,11597,4241],{"class":4393},[4383,11599,4889],{"class":4389},[4383,11601,11602,11604,11606,11608,11610,11612,11614,11616,11618,11620,11622,11624,11626,11628,11630,11632],{"class":4385,"line":8576},[4383,11603,4895],{"class":4389},[4383,11605,4241],{"class":4393},[4383,11607,4397],{"class":4396},[4383,11609,4401],{"class":4400},[4383,11611,4405],{"class":4404},[4383,11613,4409],{"class":4408},[4383,11615,5299],{"class":4412},[4383,11617,11092],{"class":4412},[4383,11619,3840],{"class":4408},[4383,11621,9924],{"class":4412},[4383,11623,3767],{"class":4408},[4383,11625,5283],{"class":4412},[4383,11627,5264],{"class":4416},[4383,11629,4437],{"class":4408},[4383,11631,4440],{"class":4404},[4383,11633,4889],{"class":4389},[4383,11635,11636,11639,11641,11643,11645,11647,11649,11651,11653,11655,11657,11659],{"class":4385,"line":8585},[4383,11637,11638],{"class":4400},"        flatten → fontSize ",[4383,11640,4405],{"class":4404},[4383,11642,4842],{"class":4408},[4383,11644,7829],{"class":4412},[4383,11646,7881],{"class":4741},[4383,11648,4745],{"class":4408},[4383,11650,4640],{"class":4412},[4383,11652,7888],{"class":4400},[4383,11654,7891],{"class":4393},[4383,11656,7894],{"class":4408},[4383,11658,4640],{"class":4412},[4383,11660,5013],{"class":4404},[4383,11662,11663,11665,11667],{"class":4385,"line":8590},[4383,11664,4961],{"class":4389},[4383,11666,4241],{"class":4393},[4383,11668,4889],{"class":4389},[4383,11670,11671],{"class":4385,"line":8595},[4383,11672,4797],{"emptyLinePlaceholder":4796},[4383,11674,11675,11677],{"class":4385,"line":8600},[4383,11676,4895],{"class":4389},[4383,11678,6443],{"class":4393},[4383,11680,11681,11683,11685,11687],{"class":4385,"line":8617},[4383,11682,5019],{"class":4396},[4383,11684,4401],{"class":4400},[4383,11686,4405],{"class":4404},[4383,11688,9394],{"class":4408},[4383,11690,11691,11693,11695,11697],{"class":4385,"line":8624},[4383,11692,5042],{"class":4412},[4383,11694,3840],{"class":4408},[4383,11696,6227],{"class":4412},[4383,11698,5050],{"class":4408},[4383,11700,11701,11704,11706,11708,11710,11712,11714,11717,11719,11721,11723],{"class":4385,"line":8633},[4383,11702,11703],{"class":4408},"          { ",[4383,11705,4430],{"class":4412},[4383,11707,11092],{"class":4412},[4383,11709,3840],{"class":4408},[4383,11711,3891],{"class":4412},[4383,11713,3767],{"class":4408},[4383,11715,11716],{"class":4412},"borderColor:",[4383,11718,11092],{"class":4412},[4383,11720,3840],{"class":4408},[4383,11722,10000],{"class":4412},[4383,11724,5305],{"class":4408},[4383,11726,11727,11729],{"class":4385,"line":8642},[4383,11728,5092],{"class":4408},[4383,11730,5013],{"class":4404},[4383,11732,11733],{"class":4385,"line":8651},[4383,11734,5100],{"class":4389},[4383,11736,11737,11739,11742],{"class":4385,"line":8660},[4383,11738,7939],{"class":4404},[4383,11740,11741],{"class":5558},"\u002F* absoluteFillObject — кутовий бейдж *\u002F",[4383,11743,5013],{"class":4404},[4383,11745,11746,11748],{"class":4385,"line":8669},[4383,11747,5106],{"class":4389},[4383,11749,6443],{"class":4393},[4383,11751,11752,11754,11756,11758],{"class":4385,"line":8674},[4383,11753,6448],{"class":4396},[4383,11755,4401],{"class":4400},[4383,11757,4405],{"class":4404},[4383,11759,6455],{"class":4408},[4383,11761,11762,11764,11766,11768,11770],{"class":4385,"line":8687},[4383,11763,6460],{"class":4400},[4383,11765,3803],{"class":4412},[4383,11767,3840],{"class":4408},[4383,11769,6081],{"class":4412},[4383,11771,5050],{"class":4408},[4383,11773,11774,11776,11778],{"class":4385,"line":8707},[4383,11775,7977],{"class":4412},[4383,11777,6670],{"class":4416},[4383,11779,5050],{"class":4408},[4383,11781,11782,11784,11786],{"class":4385,"line":8737},[4383,11783,7986],{"class":4412},[4383,11785,7989],{"class":4404},[4383,11787,5050],{"class":4408},[4383,11789,11790,11792,11794],{"class":4385,"line":8744},[4383,11791,7996],{"class":4412},[4383,11793,6670],{"class":4416},[4383,11795,5050],{"class":4408},[4383,11797,11798,11800,11802],{"class":4385,"line":8753},[4383,11799,8005],{"class":4412},[4383,11801,7989],{"class":4404},[4383,11803,5050],{"class":4408},[4383,11805,11806,11808,11811],{"class":4385,"line":8762},[4383,11807,8014],{"class":4412},[4383,11809,11810],{"class":4416}," 40",[4383,11812,5050],{"class":4408},[4383,11814,11815,11817,11819],{"class":4385,"line":8771},[4383,11816,8024],{"class":4412},[4383,11818,5913],{"class":4416},[4383,11820,5050],{"class":4408},[4383,11822,11823,11825,11827],{"class":4385,"line":8780},[4383,11824,8033],{"class":4412},[4383,11826,6008],{"class":4416},[4383,11828,5050],{"class":4408},[4383,11830,11831,11833,11835,11837,11839],{"class":4385,"line":8789},[4383,11832,6473],{"class":4412},[4383,11834,11092],{"class":4412},[4383,11836,3840],{"class":4408},[4383,11838,9747],{"class":4412},[4383,11840,5050],{"class":4408},[4383,11842,11843,11845,11847],{"class":4385,"line":8800},[4383,11844,6483],{"class":4412},[4383,11846,5253],{"class":4433},[4383,11848,5050],{"class":4408},[4383,11850,11851,11853,11855],{"class":4385,"line":8809},[4383,11852,6492],{"class":4412},[4383,11854,5253],{"class":4433},[4383,11856,5050],{"class":4408},[4383,11858,11859,11861],{"class":4385,"line":8814},[4383,11860,6501],{"class":4408},[4383,11862,5013],{"class":4404},[4383,11864,11865],{"class":4385,"line":8841},[4383,11866,6508],{"class":4389},[4383,11868,11869,11871,11873,11875,11877,11879,11881,11883,11885,11887,11889,11891,11893,11895,11897,11899,11901,11903,11905],{"class":4385,"line":8873},[4383,11870,6305],{"class":4389},[4383,11872,4241],{"class":4393},[4383,11874,4397],{"class":4396},[4383,11876,4401],{"class":4400},[4383,11878,4405],{"class":4404},[4383,11880,4409],{"class":4408},[4383,11882,5299],{"class":4412},[4383,11884,11092],{"class":4412},[4383,11886,3840],{"class":4408},[4383,11888,9978],{"class":4412},[4383,11890,3767],{"class":4408},[4383,11892,5283],{"class":4412},[4383,11894,6670],{"class":4416},[4383,11896,3767],{"class":4408},[4383,11898,5291],{"class":4412},[4383,11900,5920],{"class":4433},[4383,11902,4437],{"class":4408},[4383,11904,4440],{"class":4404},[4383,11906,4889],{"class":4389},[4383,11908,11909],{"class":4385,"line":8905},[4383,11910,11911],{"class":4400},"            NEW\n",[4383,11913,11914,11916,11918],{"class":4385,"line":8912},[4383,11915,8336],{"class":4389},[4383,11917,4241],{"class":4393},[4383,11919,4889],{"class":4389},[4383,11921,11922,11924,11926],{"class":4385,"line":8925},[4383,11923,6338],{"class":4389},[4383,11925,4198],{"class":4393},[4383,11927,4889],{"class":4389},[4383,11929,11930],{"class":4385,"line":8935},[4383,11931,4797],{"emptyLinePlaceholder":4796},[4383,11933,11934,11936,11938,11940,11942,11944,11946,11948,11950,11953,11955,11957,11959,11961,11963,11965,11967,11969,11972,11974,11976],{"class":4385,"line":8945},[4383,11935,5106],{"class":4389},[4383,11937,4241],{"class":4393},[4383,11939,4397],{"class":4396},[4383,11941,4401],{"class":4400},[4383,11943,4405],{"class":4404},[4383,11945,6278],{"class":4408},[4383,11947,4879],{"class":4412},[4383,11949,3840],{"class":4408},[4383,11951,11952],{"class":4412},"cardTitle",[4383,11954,9329],{"class":4408},[4383,11956,5299],{"class":4412},[4383,11958,11092],{"class":4412},[4383,11960,3840],{"class":4408},[4383,11962,9901],{"class":4412},[4383,11964,9341],{"class":4408},[4383,11966,4440],{"class":4404},[4383,11968,4915],{"class":4389},[4383,11970,11971],{"class":4400},"Київ — Карпати",[4383,11973,4921],{"class":4389},[4383,11975,4241],{"class":4393},[4383,11977,4889],{"class":4389},[4383,11979,11980,11982,11984,11986,11988,11990,11992,11994,11996,11998,12000,12002,12004,12006,12008,12010,12012,12014,12016],{"class":4385,"line":8950},[4383,11981,5106],{"class":4389},[4383,11983,4241],{"class":4393},[4383,11985,4397],{"class":4396},[4383,11987,4401],{"class":4400},[4383,11989,4405],{"class":4404},[4383,11991,4409],{"class":4408},[4383,11993,5299],{"class":4412},[4383,11995,11092],{"class":4412},[4383,11997,3840],{"class":4408},[4383,11999,9924],{"class":4412},[4383,12001,3767],{"class":4408},[4383,12003,6885],{"class":4412},[4383,12005,6888],{"class":4416},[4383,12007,3767],{"class":4408},[4383,12009,5330],{"class":4412},[4383,12011,5333],{"class":4416},[4383,12013,4437],{"class":4408},[4383,12015,4440],{"class":4404},[4383,12017,4889],{"class":4389},[4383,12019,12020],{"class":4385,"line":8969},[4383,12021,12022],{"class":4400},"          surface + text + textSecondary. Hex лише в таблицях light\u002Fdark.\n",[4383,12024,12025,12027,12029],{"class":4385,"line":8977},[4383,12026,6338],{"class":4389},[4383,12028,4241],{"class":4393},[4383,12030,4889],{"class":4389},[4383,12032,12033],{"class":4385,"line":8987},[4383,12034,4797],{"emptyLinePlaceholder":4796},[4383,12036,12037,12039,12042],{"class":4385,"line":8996},[4383,12038,7939],{"class":4404},[4383,12040,12041],{"class":5558},"\u002F* hairlineWidth *\u002F",[4383,12043,5013],{"class":4404},[4383,12045,12046,12048],{"class":4385,"line":9005},[4383,12047,5106],{"class":4389},[4383,12049,6443],{"class":4393},[4383,12051,12052,12054,12056,12058],{"class":4385,"line":9010},[4383,12053,6448],{"class":4396},[4383,12055,4401],{"class":4400},[4383,12057,4405],{"class":4404},[4383,12059,6455],{"class":4408},[4383,12061,12062,12064,12066,12068,12070],{"class":4385,"line":9036},[4383,12063,8024],{"class":4412},[4383,12065,7485],{"class":4412},[4383,12067,3840],{"class":4408},[4383,12069,6902],{"class":4412},[4383,12071,5050],{"class":4408},[4383,12073,12074,12076,12078,12080,12082],{"class":4385,"line":9043},[4383,12075,6473],{"class":4412},[4383,12077,11092],{"class":4412},[4383,12079,3840],{"class":4408},[4383,12081,10000],{"class":4412},[4383,12083,5050],{"class":4408},[4383,12085,12086,12089,12091],{"class":4385,"line":9052},[4383,12087,12088],{"class":4412},"            marginVertical:",[4383,12090,5264],{"class":4416},[4383,12092,5050],{"class":4408},[4383,12094,12095,12097],{"class":4385,"line":9061},[4383,12096,6501],{"class":4408},[4383,12098,5013],{"class":4404},[4383,12100,12101],{"class":4385,"line":9070},[4383,12102,12103],{"class":4389},"        \u002F>\n",[4383,12105,12106],{"class":4385,"line":9079},[4383,12107,4797],{"emptyLinePlaceholder":4796},[4383,12109,12110,12112,12114,12116,12118,12120,12122,12124,12126,12128,12130,12132,12134,12136,12138,12140,12142,12144,12146],{"class":4385,"line":9084},[4383,12111,5106],{"class":4389},[4383,12113,4241],{"class":4393},[4383,12115,4397],{"class":4396},[4383,12117,4401],{"class":4400},[4383,12119,4405],{"class":4404},[4383,12121,4409],{"class":4408},[4383,12123,5299],{"class":4412},[4383,12125,11092],{"class":4412},[4383,12127,3840],{"class":4408},[4383,12129,10023],{"class":4412},[4383,12131,3767],{"class":4408},[4383,12133,5283],{"class":4412},[4383,12135,5318],{"class":4416},[4383,12137,3767],{"class":4408},[4383,12139,5291],{"class":4412},[4383,12141,5994],{"class":4433},[4383,12143,4437],{"class":4408},[4383,12145,4440],{"class":4404},[4383,12147,4889],{"class":4389},[4383,12149,12150],{"class":4385,"line":9097},[4383,12151,12152],{"class":4400},"          danger · «Скасувати бронювання»\n",[4383,12154,12155,12157,12159],{"class":4385,"line":9110},[4383,12156,6338],{"class":4389},[4383,12158,4241],{"class":4393},[4383,12160,4889],{"class":4389},[4383,12162,12163],{"class":4385,"line":9135},[4383,12164,4797],{"emptyLinePlaceholder":4796},[4383,12166,12167,12169,12172],{"class":4385,"line":9161},[4383,12168,7939],{"class":4404},[4383,12170,12171],{"class":5558},"\u002F* absoluteFill — оверлей стану *\u002F",[4383,12173,5013],{"class":4404},[4383,12175,12177,12179,12181,12183],{"class":4385,"line":12176},121,[4383,12178,7939],{"class":4404},[4383,12180,11070],{"class":4412},[4383,12182,5059],{"class":4400},[4383,12184,4862],{"class":4408},[4383,12186,12188,12190,12192,12194,12196,12198,12200,12202,12204,12206,12208,12210,12212,12215,12217,12219],{"class":4385,"line":12187},122,[4383,12189,6305],{"class":4389},[4383,12191,4198],{"class":4393},[4383,12193,4397],{"class":4396},[4383,12195,4401],{"class":4400},[4383,12197,4405],{"class":4404},[4383,12199,6278],{"class":4408},[4383,12201,3803],{"class":4412},[4383,12203,3840],{"class":4408},[4383,12205,4680],{"class":4412},[4383,12207,3767],{"class":4408},[4383,12209,4879],{"class":4412},[4383,12211,3840],{"class":4408},[4383,12213,12214],{"class":4412},"overlay",[4383,12216,6296],{"class":4408},[4383,12218,4440],{"class":4404},[4383,12220,4889],{"class":4389},[4383,12222,12224,12226,12228,12230,12232,12234,12236,12238,12240,12242,12244,12246,12248,12250,12252,12254],{"class":4385,"line":12223},123,[4383,12225,8303],{"class":4389},[4383,12227,4241],{"class":4393},[4383,12229,4397],{"class":4396},[4383,12231,4401],{"class":4400},[4383,12233,4405],{"class":4404},[4383,12235,4409],{"class":4408},[4383,12237,5299],{"class":4412},[4383,12239,11092],{"class":4412},[4383,12241,3840],{"class":4408},[4383,12243,9978],{"class":4412},[4383,12245,3767],{"class":4408},[4383,12247,5291],{"class":4412},[4383,12249,5920],{"class":4433},[4383,12251,4437],{"class":4408},[4383,12253,4440],{"class":4404},[4383,12255,4889],{"class":4389},[4383,12257,12259],{"class":4385,"line":12258},124,[4383,12260,12261],{"class":4408},"              Видалення…\n",[4383,12263,12265,12267,12269],{"class":4385,"line":12264},125,[4383,12266,11544],{"class":4389},[4383,12268,4241],{"class":4393},[4383,12270,4889],{"class":4389},[4383,12272,12274,12276,12278],{"class":4385,"line":12273},126,[4383,12275,8336],{"class":4389},[4383,12277,4198],{"class":4393},[4383,12279,4889],{"class":4389},[4383,12281,12283,12285],{"class":4385,"line":12282},127,[4383,12284,8345],{"class":4408},[4383,12286,5013],{"class":4404},[4383,12288,12290,12292,12294],{"class":4385,"line":12289},128,[4383,12291,4961],{"class":4389},[4383,12293,4198],{"class":4393},[4383,12295,4889],{"class":4389},[4383,12297,12299],{"class":4385,"line":12298},129,[4383,12300,4797],{"emptyLinePlaceholder":4796},[4383,12302,12304,12306],{"class":4385,"line":12303},130,[4383,12305,4895],{"class":4389},[4383,12307,4973],{"class":4393},[4383,12309,12311,12313,12315,12317,12319,12321,12324,12326,12328,12330,12332,12334,12336,12338],{"class":4385,"line":12310},131,[4383,12312,4979],{"class":4396},[4383,12314,4401],{"class":4400},[4383,12316,4405],{"class":4404},[4383,12318,4986],{"class":4408},[4383,12320,4989],{"class":4404},[4383,12322,12323],{"class":4812}," setBusy",[4383,12325,4995],{"class":4408},[4383,12327,4998],{"class":4412},[4383,12329,5001],{"class":4408},[4383,12331,4989],{"class":4404},[4383,12333,5006],{"class":4400},[4383,12335,4998],{"class":4412},[4383,12337,4141],{"class":4408},[4383,12339,5013],{"class":4404},[4383,12341,12343,12345,12347,12349,12351,12353,12355,12357],{"class":4385,"line":12342},132,[4383,12344,5019],{"class":4396},[4383,12346,4401],{"class":4400},[4383,12348,4405],{"class":4404},[4383,12350,5026],{"class":4408},[4383,12352,4468],{"class":4412},[4383,12354,5031],{"class":4408},[4383,12356,4989],{"class":4404},[4383,12358,5036],{"class":4408},[4383,12360,12362,12364,12366,12368],{"class":4385,"line":12361},133,[4383,12363,5042],{"class":4412},[4383,12365,3840],{"class":4408},[4383,12367,5047],{"class":4412},[4383,12369,5050],{"class":4408},[4383,12371,12373,12375,12377,12380,12382,12384,12386,12389,12391,12393,12395,12397],{"class":4385,"line":12372},134,[4383,12374,11703],{"class":4408},[4383,12376,4430],{"class":4412},[4383,12378,12379],{"class":4412}," pressed",[4383,12381,5132],{"class":4400},[4383,12383,11092],{"class":4412},[4383,12385,3840],{"class":4408},[4383,12387,12388],{"class":4412},"primaryPressed",[4383,12390,5138],{"class":4400},[4383,12392,11092],{"class":4412},[4383,12394,3840],{"class":4408},[4383,12396,9747],{"class":4412},[4383,12398,5305],{"class":4408},[4383,12400,12402,12404],{"class":4385,"line":12401},135,[4383,12403,5092],{"class":4408},[4383,12405,5013],{"class":4404},[4383,12407,12409],{"class":4385,"line":12408},136,[4383,12410,5100],{"class":4389},[4383,12412,12414,12416,12418,12420,12422,12424,12426,12428,12430,12432,12434,12436,12438,12440,12442,12444],{"class":4385,"line":12413},137,[4383,12415,5106],{"class":4389},[4383,12417,4241],{"class":4393},[4383,12419,4397],{"class":4396},[4383,12421,4401],{"class":4400},[4383,12423,4405],{"class":4404},[4383,12425,4409],{"class":4408},[4383,12427,5299],{"class":4412},[4383,12429,11092],{"class":4412},[4383,12431,3840],{"class":4408},[4383,12433,9978],{"class":4412},[4383,12435,3767],{"class":4408},[4383,12437,5291],{"class":4412},[4383,12439,5294],{"class":4433},[4383,12441,4437],{"class":4408},[4383,12443,4440],{"class":4404},[4383,12445,4889],{"class":4389},[4383,12447,12449,12451,12453,12455,12458,12460,12463],{"class":4385,"line":12448},138,[4383,12450,8498],{"class":4404},[4383,12452,11070],{"class":4412},[4383,12454,5132],{"class":4400},[4383,12456,12457],{"class":4433}," 'Сховати absoluteFill'",[4383,12459,5138],{"class":4400},[4383,12461,12462],{"class":4433}," 'Показати absoluteFill'",[4383,12464,5013],{"class":4404},[4383,12466,12468,12470,12472],{"class":4385,"line":12467},139,[4383,12469,6338],{"class":4389},[4383,12471,4241],{"class":4393},[4383,12473,4889],{"class":4389},[4383,12475,12477,12479,12481],{"class":4385,"line":12476},140,[4383,12478,4961],{"class":4389},[4383,12480,4724],{"class":4393},[4383,12482,4889],{"class":4389},[4383,12484,12486],{"class":4385,"line":12485},141,[4383,12487,4797],{"emptyLinePlaceholder":4796},[4383,12489,12491,12493,12495,12497,12499,12501,12503,12505,12507,12509,12511,12513,12515,12517,12519,12521,12524,12526,12528],{"class":4385,"line":12490},142,[4383,12492,4895],{"class":4389},[4383,12494,4241],{"class":4393},[4383,12496,4397],{"class":4396},[4383,12498,4401],{"class":4400},[4383,12500,4405],{"class":4404},[4383,12502,4409],{"class":4408},[4383,12504,5299],{"class":4412},[4383,12506,11092],{"class":4412},[4383,12508,3840],{"class":4408},[4383,12510,9924],{"class":4412},[4383,12512,3767],{"class":4408},[4383,12514,5283],{"class":4412},[4383,12516,5264],{"class":4416},[4383,12518,3767],{"class":4408},[4383,12520,5330],{"class":4412},[4383,12522,12523],{"class":4416}," 17",[4383,12525,4437],{"class":4408},[4383,12527,4440],{"class":4404},[4383,12529,4889],{"class":4389},[4383,12531,12533],{"class":4385,"line":12532},143,[4383,12534,12535],{"class":4400},"        create · flatten · hairline · absoluteFill · absoluteFillObject ·\n",[4383,12537,12539],{"class":4385,"line":12538},144,[4383,12540,12541],{"class":4400},"        background\u002Fsurface\u002Ftext\u002Fprimary\u002Fborder\u002Fdanger\u002FonPrimary\n",[4383,12543,12545,12547,12549],{"class":4385,"line":12544},145,[4383,12546,4961],{"class":4389},[4383,12548,4241],{"class":4393},[4383,12550,4889],{"class":4389},[4383,12552,12554,12556,12558],{"class":4385,"line":12553},146,[4383,12555,5164],{"class":4389},[4383,12557,4198],{"class":4393},[4383,12559,4889],{"class":4389},[4383,12561,12563],{"class":4385,"line":12562},147,[4383,12564,5174],{"class":4400},[4383,12566,12568],{"class":4385,"line":12567},148,[4383,12569,5013],{"class":4400},[4383,12571,12573],{"class":4385,"line":12572},149,[4383,12574,4797],{"emptyLinePlaceholder":4796},[4383,12576,12578,12580,12582,12584,12586,12588,12590],{"class":4385,"line":12577},150,[4383,12579,5190],{"class":4404},[4383,12581,5062],{"class":4828},[4383,12583,5195],{"class":4400},[4383,12585,3803],{"class":4412},[4383,12587,3840],{"class":4400},[4383,12589,4495],{"class":4812},[4383,12591,5204],{"class":4400},[4383,12593,12595,12597,12599,12601,12603,12605,12607,12609,12611,12613,12615,12617,12619,12621],{"class":4385,"line":12594},151,[4383,12596,5210],{"class":4412},[4383,12598,4745],{"class":4400},[4383,12600,4413],{"class":4412},[4383,12602,4417],{"class":4416},[4383,12604,3767],{"class":4400},[4383,12606,4422],{"class":4412},[4383,12608,5333],{"class":4416},[4383,12610,3767],{"class":4400},[4383,12612,5871],{"class":4412},[4383,12614,5253],{"class":4433},[4383,12616,3767],{"class":4400},[4383,12618,5878],{"class":4412},[4383,12620,6670],{"class":4416},[4383,12622,5305],{"class":4400},[4383,12624,12626,12628,12630,12633,12636,12638,12640,12643],{"class":4385,"line":12625},152,[4383,12627,7443],{"class":4412},[4383,12629,4745],{"class":4400},[4383,12631,12632],{"class":4412},"flexDirection:",[4383,12634,12635],{"class":4433}," 'row'",[4383,12637,3767],{"class":4400},[4383,12639,5878],{"class":4412},[4383,12641,12642],{"class":4416}," 8",[4383,12644,5305],{"class":4400},[4383,12646,12648,12651],{"class":4385,"line":12647},153,[4383,12649,12650],{"class":4412},"  chip:",[4383,12652,5213],{"class":4400},[4383,12654,12656,12659,12661],{"class":4385,"line":12655},154,[4383,12657,12658],{"class":4412},"    paddingHorizontal:",[4383,12660,5264],{"class":4416},[4383,12662,5050],{"class":4400},[4383,12664,12666,12668,12670],{"class":4385,"line":12665},155,[4383,12667,5359],{"class":4412},[4383,12669,12642],{"class":4416},[4383,12671,5050],{"class":4400},[4383,12673,12675,12677,12679],{"class":4385,"line":12674},156,[4383,12676,5370],{"class":4412},[4383,12678,12642],{"class":4416},[4383,12680,5050],{"class":4400},[4383,12682,12684,12686,12688],{"class":4385,"line":12683},157,[4383,12685,5950],{"class":4412},[4383,12687,4417],{"class":4416},[4383,12689,5050],{"class":4400},[4383,12691,12693],{"class":4385,"line":12692},158,[4383,12694,5272],{"class":4400},[4383,12696,12698,12700,12702,12704,12706],{"class":4385,"line":12697},159,[4383,12699,5887],{"class":4412},[4383,12701,4745],{"class":4400},[4383,12703,5283],{"class":4412},[4383,12705,4425],{"class":4416},[4383,12707,5305],{"class":4400},[4383,12709,12711,12713,12715,12717,12719,12721,12723,12725],{"class":4385,"line":12710},160,[4383,12712,8690],{"class":4412},[4383,12714,4745],{"class":4400},[4383,12716,5283],{"class":4412},[4383,12718,5286],{"class":4416},[4383,12720,3767],{"class":4400},[4383,12722,5291],{"class":4412},[4383,12724,5920],{"class":4433},[4383,12726,5305],{"class":4400},[4383,12728,12730,12732],{"class":4385,"line":12729},161,[4383,12731,6702],{"class":4412},[4383,12733,5213],{"class":4400},[4383,12735,12737,12739,12741],{"class":4385,"line":12736},162,[4383,12738,5370],{"class":4412},[4383,12740,4425],{"class":4416},[4383,12742,5050],{"class":4400},[4383,12744,12746,12748,12750],{"class":4385,"line":12745},163,[4383,12747,5950],{"class":4412},[4383,12749,4417],{"class":4416},[4383,12751,5050],{"class":4400},[4383,12753,12755,12757,12759],{"class":4385,"line":12754},164,[4383,12756,5239],{"class":4412},[4383,12758,4425],{"class":4416},[4383,12760,5050],{"class":4400},[4383,12762,12764,12766,12768],{"class":4385,"line":12763},165,[4383,12765,8792],{"class":4412},[4383,12767,8795],{"class":4416},[4383,12769,5050],{"class":4400},[4383,12771,12773,12775,12777],{"class":4385,"line":12772},166,[4383,12774,6752],{"class":4412},[4383,12776,6755],{"class":4433},[4383,12778,5050],{"class":4400},[4383,12780,12782],{"class":4385,"line":12781},167,[4383,12783,5272],{"class":4400},[4383,12785,12787,12790,12792,12794,12796,12798,12800,12802,12804,12806,12808],{"class":4385,"line":12786},168,[4383,12788,12789],{"class":4412},"  cardTitle:",[4383,12791,4745],{"class":4400},[4383,12793,5283],{"class":4412},[4383,12795,12523],{"class":4416},[4383,12797,3767],{"class":4400},[4383,12799,5291],{"class":4412},[4383,12801,5294],{"class":4433},[4383,12803,3767],{"class":4400},[4383,12805,6885],{"class":4412},[4383,12807,6888],{"class":4416},[4383,12809,5305],{"class":4400},[4383,12811,12813,12816],{"class":4385,"line":12812},169,[4383,12814,12815],{"class":4412},"  overlay:",[4383,12817,5213],{"class":4400},[4383,12819,12821,12823,12826],{"class":4385,"line":12820},170,[4383,12822,5229],{"class":4412},[4383,12824,12825],{"class":4433}," 'rgba(15, 23, 42, 0.65)'",[4383,12827,5050],{"class":4400},[4383,12829,12831,12833,12835],{"class":4385,"line":12830},171,[4383,12832,5380],{"class":4412},[4383,12834,5253],{"class":4433},[4383,12836,5050],{"class":4400},[4383,12838,12840,12842,12844],{"class":4385,"line":12839},172,[4383,12841,5250],{"class":4412},[4383,12843,5253],{"class":4433},[4383,12845,5050],{"class":4400},[4383,12847,12849],{"class":4385,"line":12848},173,[4383,12850,5272],{"class":4400},[4383,12852,12854,12856],{"class":4385,"line":12853},174,[4383,12855,5341],{"class":4412},[4383,12857,5213],{"class":4400},[4383,12859,12861,12863,12865],{"class":4385,"line":12860},175,[4383,12862,5359],{"class":4412},[4383,12864,5362],{"class":4416},[4383,12866,5050],{"class":4400},[4383,12868,12870,12872,12874],{"class":4385,"line":12869},176,[4383,12871,5370],{"class":4412},[4383,12873,5264],{"class":4416},[4383,12875,5050],{"class":4400},[4383,12877,12879,12881,12883],{"class":4385,"line":12878},177,[4383,12880,5380],{"class":4412},[4383,12882,5253],{"class":4433},[4383,12884,5050],{"class":4400},[4383,12886,12888],{"class":4385,"line":12887},178,[4383,12889,5272],{"class":4400},[4383,12891,12893],{"class":4385,"line":12892},179,[4383,12894,5453],{"class":4400},[3820,12896,12898,12899,12901],{"id":12897},"що-зазвичай-не-міняють-між-темами","Що зазвичай ",[3756,12900,4194],{}," міняють між темами",[4204,12903,12904,12913,12919],{},[3795,12905,12906,3858,12909,12912],{},[3756,12907,12908],{},"Відступи",[3764,12910,12911],{},"spacing",": 4, 8, 16…) — ритм сітки той самий.",[3795,12914,12915,12918],{},[3756,12916,12917],{},"Радіуси"," карток і кнопок.",[3795,12920,12921,12924],{},[3756,12922,12923],{},"Розміри шрифтів"," (інколи в dark трохи збільшують міжрядковість, але це вже полірування).",[3743,12926,12927,12928,12931,12932,12935,12936,4619],{},"Міняються переважно ",[3756,12929,12930],{},"кольори"," і інколи ",[3756,12933,12934],{},"тіні"," (на темному тлі важка тінь майже невидима — інколи зменшують opacity або покладаються на ",[3764,12937,10000],{},[3820,12939,12941],{"id":12940},"що-бачить-користувач-що-ламається","Що бачить користувач \u002F що ламається",[4204,12943,12944,12953],{},[3795,12945,12946,12949,12950,12952],{},[3756,12947,12948],{},"Добре:"," перемкнув тему — екран і картки узгоджено змінили theme, кнопка лишилась «головною дією» (primary), фото обкладинки поїздки ",[3756,12951,4194],{}," інвертувалось.",[3795,12954,12955,12958,12959,12962,12963,12966,12967,12970],{},[3756,12956,12957],{},"Погано:"," фон став чорним, а текст у ",[3764,12960,12961],{},"AppText"," лишився ",[3764,12964,12965],{},"#0F172A"," — майже невидимий. Причина: десь лишився зашитий hex або ",[3764,12968,12969],{},"tokens.colors"," зі старої світлої-only таблиці.",[4021,12972],{},[3738,12974,12976],{"id":12975},"системна-тема-що-це-в-житті","Системна тема: що це в житті",[3743,12978,12979,12980,3840,12983,12985],{},"На iPhone: ",[3756,12981,12982],{},"Налаштування → Екран і яскравість → Світлий \u002F Темний \u002F Авто",[3886,12984],{},"\nНа Android: схожий перемикач у налаштуваннях дисплея (назви залежать від виробника).",[3743,12987,12988,12989,12992,12993,12995,12996,3840],{},"Коли користувач обирає темний режим, ",[3756,12990,12991],{},"система"," повідомляє застосункам: «зараз dark». Багато системних екранів і якісних застосунків підлаштовуються. Ваш код отримає це через API ",[3756,12994,4168],{}," \u002F хук ",[3756,12997,12998],{},[3764,12999,3774],{},[3820,13001,13003],{"id":13002},"usecolorscheme",[3764,13004,4164],{},[3743,13006,13007,13011,13012,13015],{},[3756,13008,13009],{},[3764,13010,4164],{}," — хук React Native, який повертає поточну ",[3756,13013,13014],{},"схему кольорів",":",[4204,13017,13018,13023,13028],{},[3795,13019,13020,13022],{},[3764,13021,11048],{}," — світла;",[3795,13024,13025,13027],{},[3764,13026,11054],{}," — темна;",[3795,13029,13030,13032],{},[3764,13031,5750],{}," — модуль Appearance недоступний (рідко на реальному телефоні; трапляється в нестандартних середовищах).",[3743,13034,13035,13036,13039,13040,13043],{},"Хук ",[3756,13037,13038],{},"підписується"," на зміни: користувач увімкнув Dark Mode — компонент ",[3756,13041,13042],{},"перерендериться"," з новим значенням. Вам не треба самим крутити таймери чи «перевіряти раз на хвилину».",[3743,13045,13046,13047,13015],{},"Під капотом — модуль ",[3756,13048,13049],{},[3764,13050,4168],{},[4204,13052,13053,13059],{},[3795,13054,13055,13058],{},[3764,13056,13057],{},"Appearance.getColorScheme()"," — зчитати зараз (без підписки);",[3795,13060,13061,13064],{},[3764,13062,13063],{},"Appearance.addChangeListener(...)"," — імперативна підписка.",[3743,13066,13067],{},"У UI-коді достатньо хука: він уже підписаний і зручний у функційних компонентах.",[4278,13069,13070,4211,13073,13076,13077,13079,13080,3840],{},[3756,13071,13072],{},"Аналогія з вебом.",[3764,13074,13075],{},"window.matchMedia('(prefers-color-scheme: dark)')"," + listener. У RN — ",[3764,13078,4164],{},", без ручного ",[3764,13081,13082],{},"matchMedia",[4727,13084,13086],{"device":4729,"filename":13085,"title":3774},"UseColorSchemeDemo.tsx",[4374,13087,13089],{"className":4376,"code":13088,"language":4378,"meta":4379,"style":4379},"import { View, Text, StyleSheet, useColorScheme } from 'react-native';\n\nexport default function App() {\n  const scheme = useColorScheme();\n  const isDark = scheme === 'dark';\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: isDark ? '#000' : '#F8FAFC' }]}>\n      \u003CText style={[styles.label, { color: isDark ? '#a1a1aa' : '#64748b' }]}>\n        useColorScheme()\n      \u003C\u002FText>\n      \u003CText style={[styles.value, { color: isDark ? '#f5f5f7' : '#0f172a' }]}>\n        {scheme ?? 'null'}\n      \u003C\u002FText>\n      \u003CText style={[styles.hint, { color: isDark ? '#a1a1aa' : '#64748b' }]}>\n        Змініть тему ОС (або тему сайту в браузері) — значення може оновитись.\n        У Expo Go перемикайте appearance симулятора \u002F телефону.\n      \u003C\u002FText>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 24, justifyContent: 'center', gap: 8 },\n  label: { fontSize: 13, fontWeight: '600', textTransform: 'uppercase' },\n  value: { fontSize: 32, fontWeight: '800' },\n  hint: { fontSize: 13, lineHeight: 18, marginTop: 8 },\n});\n",[3764,13090,13091,13119,13123,13135,13149,13167,13171,13177,13218,13259,13264,13272,13314,13328,13336,13376,13381,13386,13394,13402,13406,13410,13414,13430,13460,13486,13506,13530],{"__ignoreMap":4379},[4383,13092,13093,13095,13097,13099,13101,13103,13105,13107,13109,13111,13113,13115,13117],{"class":4385,"line":4386},[4383,13094,4742],{"class":4741},[4383,13096,4745],{"class":4400},[4383,13098,4198],{"class":4412},[4383,13100,3767],{"class":4400},[4383,13102,4241],{"class":4412},[4383,13104,3767],{"class":4400},[4383,13106,3803],{"class":4412},[4383,13108,3767],{"class":4400},[4383,13110,3774],{"class":4412},[4383,13112,4751],{"class":4400},[4383,13114,4754],{"class":4741},[4383,13116,4788],{"class":4433},[4383,13118,4760],{"class":4400},[4383,13120,13121],{"class":4385,"line":4763},[4383,13122,4797],{"emptyLinePlaceholder":4796},[4383,13124,13125,13127,13129,13131,13133],{"class":4385,"line":4793},[4383,13126,4803],{"class":4741},[4383,13128,4806],{"class":4741},[4383,13130,4809],{"class":4404},[4383,13132,4813],{"class":4812},[4383,13134,4816],{"class":4400},[4383,13136,13137,13139,13142,13144,13146],{"class":4385,"line":4800},[4383,13138,4822],{"class":4404},[4383,13140,13141],{"class":4828}," scheme",[4383,13143,5195],{"class":4400},[4383,13145,3774],{"class":4812},[4383,13147,13148],{"class":4400},"();\n",[4383,13150,13151,13153,13156,13158,13161,13163,13165],{"class":4385,"line":4819},[4383,13152,4822],{"class":4404},[4383,13154,13155],{"class":4828}," isDark",[4383,13157,5195],{"class":4400},[4383,13159,13160],{"class":4412},"scheme",[4383,13162,11099],{"class":4400},[4383,13164,11054],{"class":4433},[4383,13166,4760],{"class":4400},[4383,13168,13169],{"class":4385,"line":4851},[4383,13170,4797],{"emptyLinePlaceholder":4796},[4383,13172,13173,13175],{"class":4385,"line":4856},[4383,13174,4859],{"class":4741},[4383,13176,4862],{"class":4400},[4383,13178,13179,13181,13183,13185,13187,13189,13191,13193,13195,13197,13199,13201,13203,13205,13208,13210,13212,13214,13216],{"class":4385,"line":4865},[4383,13180,4868],{"class":4389},[4383,13182,4198],{"class":4393},[4383,13184,4397],{"class":4396},[4383,13186,4401],{"class":4400},[4383,13188,4405],{"class":4404},[4383,13190,6278],{"class":4408},[4383,13192,4879],{"class":4412},[4383,13194,3840],{"class":4408},[4383,13196,4884],{"class":4412},[4383,13198,9329],{"class":4408},[4383,13200,4430],{"class":4412},[4383,13202,13155],{"class":4412},[4383,13204,5132],{"class":4400},[4383,13206,13207],{"class":4433}," '#000'",[4383,13209,5138],{"class":4400},[4383,13211,4434],{"class":4433},[4383,13213,9341],{"class":4408},[4383,13215,4440],{"class":4404},[4383,13217,4889],{"class":4389},[4383,13219,13220,13222,13224,13226,13228,13230,13232,13234,13236,13238,13240,13242,13244,13246,13249,13251,13253,13255,13257],{"class":4385,"line":4892},[4383,13221,4895],{"class":4389},[4383,13223,4241],{"class":4393},[4383,13225,4397],{"class":4396},[4383,13227,4401],{"class":4400},[4383,13229,4405],{"class":4404},[4383,13231,6278],{"class":4408},[4383,13233,4879],{"class":4412},[4383,13235,3840],{"class":4408},[4383,13237,5696],{"class":4412},[4383,13239,9329],{"class":4408},[4383,13241,5299],{"class":4412},[4383,13243,13155],{"class":4412},[4383,13245,5132],{"class":4400},[4383,13247,13248],{"class":4433}," '#a1a1aa'",[4383,13250,5138],{"class":4400},[4383,13252,5325],{"class":4433},[4383,13254,9341],{"class":4408},[4383,13256,4440],{"class":4404},[4383,13258,4889],{"class":4389},[4383,13260,13261],{"class":4385,"line":4928},[4383,13262,13263],{"class":4400},"        useColorScheme()\n",[4383,13265,13266,13268,13270],{"class":4385,"line":4952},[4383,13267,4961],{"class":4389},[4383,13269,4241],{"class":4393},[4383,13271,4889],{"class":4389},[4383,13273,13274,13276,13278,13280,13282,13284,13286,13288,13290,13293,13295,13297,13299,13301,13304,13306,13308,13310,13312],{"class":4385,"line":4958},[4383,13275,4895],{"class":4389},[4383,13277,4241],{"class":4393},[4383,13279,4397],{"class":4396},[4383,13281,4401],{"class":4400},[4383,13283,4405],{"class":4404},[4383,13285,6278],{"class":4408},[4383,13287,4879],{"class":4412},[4383,13289,3840],{"class":4408},[4383,13291,13292],{"class":4412},"value",[4383,13294,9329],{"class":4408},[4383,13296,5299],{"class":4412},[4383,13298,13155],{"class":4412},[4383,13300,5132],{"class":4400},[4383,13302,13303],{"class":4433}," '#f5f5f7'",[4383,13305,5138],{"class":4400},[4383,13307,5302],{"class":4433},[4383,13309,9341],{"class":4408},[4383,13311,4440],{"class":4404},[4383,13313,4889],{"class":4389},[4383,13315,13316,13318,13320,13323,13326],{"class":4385,"line":4968},[4383,13317,7939],{"class":4404},[4383,13319,13160],{"class":4412},[4383,13321,13322],{"class":4400}," ??",[4383,13324,13325],{"class":4433}," 'null'",[4383,13327,5013],{"class":4404},[4383,13329,13330,13332,13334],{"class":4385,"line":4976},[4383,13331,4961],{"class":4389},[4383,13333,4241],{"class":4393},[4383,13335,4889],{"class":4389},[4383,13337,13338,13340,13342,13344,13346,13348,13350,13352,13354,13356,13358,13360,13362,13364,13366,13368,13370,13372,13374],{"class":4385,"line":5016},[4383,13339,4895],{"class":4389},[4383,13341,4241],{"class":4393},[4383,13343,4397],{"class":4396},[4383,13345,4401],{"class":4400},[4383,13347,4405],{"class":4404},[4383,13349,6278],{"class":4408},[4383,13351,4879],{"class":4412},[4383,13353,3840],{"class":4408},[4383,13355,4945],{"class":4412},[4383,13357,9329],{"class":4408},[4383,13359,5299],{"class":4412},[4383,13361,13155],{"class":4412},[4383,13363,5132],{"class":4400},[4383,13365,13248],{"class":4433},[4383,13367,5138],{"class":4400},[4383,13369,5325],{"class":4433},[4383,13371,9341],{"class":4408},[4383,13373,4440],{"class":4404},[4383,13375,4889],{"class":4389},[4383,13377,13378],{"class":4385,"line":5039},[4383,13379,13380],{"class":4400},"        Змініть тему ОС (або тему сайту в браузері) — значення може оновитись.\n",[4383,13382,13383],{"class":4385,"line":5053},[4383,13384,13385],{"class":4400},"        У Expo Go перемикайте appearance симулятора \u002F телефону.\n",[4383,13387,13388,13390,13392],{"class":4385,"line":5072},[4383,13389,4961],{"class":4389},[4383,13391,4241],{"class":4393},[4383,13393,4889],{"class":4389},[4383,13395,13396,13398,13400],{"class":4385,"line":5089},[4383,13397,5164],{"class":4389},[4383,13399,4198],{"class":4393},[4383,13401,4889],{"class":4389},[4383,13403,13404],{"class":4385,"line":5097},[4383,13405,5174],{"class":4400},[4383,13407,13408],{"class":4385,"line":5103},[4383,13409,5013],{"class":4400},[4383,13411,13412],{"class":4385,"line":5152},[4383,13413,4797],{"emptyLinePlaceholder":4796},[4383,13415,13416,13418,13420,13422,13424,13426,13428],{"class":4385,"line":5161},[4383,13417,5190],{"class":4404},[4383,13419,5062],{"class":4828},[4383,13421,5195],{"class":4400},[4383,13423,3803],{"class":4412},[4383,13425,3840],{"class":4400},[4383,13427,4495],{"class":4812},[4383,13429,5204],{"class":4400},[4383,13431,13432,13434,13436,13438,13440,13442,13444,13446,13448,13450,13452,13454,13456,13458],{"class":4385,"line":5171},[4383,13433,5210],{"class":4412},[4383,13435,4745],{"class":4400},[4383,13437,4413],{"class":4412},[4383,13439,4417],{"class":4416},[4383,13441,3767],{"class":4400},[4383,13443,4422],{"class":4412},[4383,13445,5242],{"class":4416},[4383,13447,3767],{"class":4400},[4383,13449,5871],{"class":4412},[4383,13451,5253],{"class":4433},[4383,13453,3767],{"class":4400},[4383,13455,5878],{"class":4412},[4383,13457,12642],{"class":4416},[4383,13459,5305],{"class":4400},[4383,13461,13462,13464,13466,13468,13470,13472,13474,13476,13478,13481,13484],{"class":4385,"line":5177},[4383,13463,5981],{"class":4412},[4383,13465,4745],{"class":4400},[4383,13467,5283],{"class":4412},[4383,13469,5318],{"class":4416},[4383,13471,3767],{"class":4400},[4383,13473,5291],{"class":4412},[4383,13475,5994],{"class":4433},[4383,13477,3767],{"class":4400},[4383,13479,13480],{"class":4412},"textTransform:",[4383,13482,13483],{"class":4433}," 'uppercase'",[4383,13485,5305],{"class":4400},[4383,13487,13488,13491,13493,13495,13498,13500,13502,13504],{"class":4385,"line":5182},[4383,13489,13490],{"class":4412},"  value:",[4383,13492,4745],{"class":4400},[4383,13494,5283],{"class":4412},[4383,13496,13497],{"class":4416}," 32",[4383,13499,3767],{"class":4400},[4383,13501,5291],{"class":4412},[4383,13503,5920],{"class":4433},[4383,13505,5305],{"class":4400},[4383,13507,13508,13510,13512,13514,13516,13518,13520,13522,13524,13526,13528],{"class":4385,"line":5187},[4383,13509,5311],{"class":4412},[4383,13511,4745],{"class":4400},[4383,13513,5283],{"class":4412},[4383,13515,5318],{"class":4416},[4383,13517,3767],{"class":4400},[4383,13519,5330],{"class":4412},[4383,13521,5333],{"class":4416},[4383,13523,3767],{"class":4400},[4383,13525,6885],{"class":4412},[4383,13527,12642],{"class":4416},[4383,13529,5305],{"class":4400},[4383,13531,13532],{"class":4385,"line":5207},[4383,13533,5453],{"class":4400},[4278,13535,13536,13546,13575],{},[3743,13537,13538,13541,13542,13545],{},[3756,13539,13540],{},"Лише система — мало для продукту."," Багато людей хочуть: «телефон у мене темний, але ",[3756,13543,13544],{},"цей"," застосунок лиши світлим» (наприклад, читати при денному світлі) або навпаки. Тому зрілі продукти дають вибір:",[4204,13547,13548,13560,13568],{},[3795,13549,13550,3858,13553,13556,13557,13559],{},[3756,13551,13552],{},"Як у системі",[3860,13554,13555],{},"system",") — слухаємо ",[3764,13558,3774],{},";",[3795,13561,13562,3858,13565,13567],{},[3756,13563,13564],{},"Завжди світла",[3860,13566,3862],{},");",[3795,13569,13570,3858,13573,4619],{},[3756,13571,13572],{},"Завжди темна",[3860,13574,3869],{},[3743,13576,13577,13578,13580,13581,13584,13585,13587,13588,13591,13592,3840],{},"Тоді ",[3764,13579,3774],{}," — ",[3756,13582,13583],{},"один із входів"," для режиму ",[3764,13586,13555],{},", а не єдине джерело істини для всього UI. Нижче з’явиться ",[3764,13589,13590],{},"preference"," + функція ",[3764,13593,13594],{},"resolve",[4255,13596,13597,13600,13601,4211,13604,13606,13607,13610,13611,13614],{},[3756,13598,13599],{},"Браузер ≠ телефон."," У ",[3764,13602,13603],{},"::react-native-preview",[3764,13605,3774],{}," може йти від теми ",[3756,13608,13609],{},"сайту"," або браузера. У Expo Go — від ",[3756,13612,13613],{},"симулятора\u002Fтелефона",". Завжди перевіряйте Dark Mode там, де користувач реально відкриє застосунок.",[4021,13616],{},[3738,13618,13620,13621,13624],{"id":13619},"дві-палітри-з-однаковими-ключами","Дві палітри з ",[3756,13622,13623],{},"однаковими"," ключами",[3743,13626,13627,13628,13631,13632,13635],{},"Чому саме ",[3756,13629,13630],{},"дві таблиці",", а не ",[3764,13633,13634],{},"isDark ? '#000' : '#fff'"," у кожному рядку?",[3792,13637,13638,13647,13653],{},[3795,13639,13640,13580,13643,13646],{},[3756,13641,13642],{},"Один контракт для TypeScript",[3764,13644,13645],{},"ColorTokens"," з тими ж полями; забутий ключ у dark видно одразу.",[3795,13648,13649,13652],{},[3756,13650,13651],{},"Дизайн узгоджує набори",", а не «випадкові тернарники» в 40 файлах.",[3795,13654,13655,13658,13659,3840],{},[3756,13656,13657],{},"Компонент не розгалужується"," на light\u002Fdark — лише читає ",[3764,13660,13661],{},"colors.X",[4374,13663,13665],{"className":10120,"code":13664,"language":10122,"meta":4379,"style":4379},"export 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",[3764,13666,13667,13678,13686,13694,13702,13710,13718,13726,13734,13742,13750,13761,13765,13776,13784,13792,13800,13808,13816,13824,13832,13840,13848],{"__ignoreMap":4379},[4383,13668,13669,13671,13673,13676],{"class":4385,"line":4386},[4383,13670,4803],{"class":4741},[4383,13672,11261],{"class":4404},[4383,13674,13675],{"class":4828}," lightColors",[4383,13677,10822],{"class":4400},[4383,13679,13680,13682,13684],{"class":4385,"line":4763},[4383,13681,10827],{"class":4412},[4383,13683,4434],{"class":4433},[4383,13685,5050],{"class":4400},[4383,13687,13688,13690,13692],{"class":4385,"line":4793},[4383,13689,10836],{"class":4412},[4383,13691,10839],{"class":4433},[4383,13693,5050],{"class":4400},[4383,13695,13696,13698,13700],{"class":4385,"line":4800},[4383,13697,10846],{"class":4412},[4383,13699,10849],{"class":4433},[4383,13701,5050],{"class":4400},[4383,13703,13704,13706,13708],{"class":4385,"line":4819},[4383,13705,10856],{"class":4412},[4383,13707,10859],{"class":4433},[4383,13709,5050],{"class":4400},[4383,13711,13712,13714,13716],{"class":4385,"line":4851},[4383,13713,10866],{"class":4412},[4383,13715,5402],{"class":4433},[4383,13717,5050],{"class":4400},[4383,13719,13720,13722,13724],{"class":4385,"line":4856},[4383,13721,10875],{"class":4412},[4383,13723,10878],{"class":4433},[4383,13725,5050],{"class":4400},[4383,13727,13728,13730,13732],{"class":4385,"line":4865},[4383,13729,10885],{"class":4412},[4383,13731,5962],{"class":4433},[4383,13733,5050],{"class":4400},[4383,13735,13736,13738,13740],{"class":4385,"line":4892},[4383,13737,10894],{"class":4412},[4383,13739,10897],{"class":4433},[4383,13741,5050],{"class":4400},[4383,13743,13744,13746,13748],{"class":4385,"line":4928},[4383,13745,10904],{"class":4412},[4383,13747,10839],{"class":4433},[4383,13749,5050],{"class":4400},[4383,13751,13752,13755,13757,13759],{"class":4385,"line":4952},[4383,13753,13754],{"class":4400},"} ",[4383,13756,11258],{"class":4741},[4383,13758,11261],{"class":4404},[4383,13760,4760],{"class":4400},[4383,13762,13763],{"class":4385,"line":4958},[4383,13764,4797],{"emptyLinePlaceholder":4796},[4383,13766,13767,13769,13771,13774],{"class":4385,"line":4968},[4383,13768,4803],{"class":4741},[4383,13770,11261],{"class":4404},[4383,13772,13773],{"class":4828}," darkColors",[4383,13775,10822],{"class":4400},[4383,13777,13778,13780,13782],{"class":4385,"line":4976},[4383,13779,10827],{"class":4412},[4383,13781,10933],{"class":4433},[4383,13783,5050],{"class":4400},[4383,13785,13786,13788,13790],{"class":4385,"line":5016},[4383,13787,10836],{"class":4412},[4383,13789,10942],{"class":4433},[4383,13791,5050],{"class":4400},[4383,13793,13794,13796,13798],{"class":4385,"line":5039},[4383,13795,10846],{"class":4412},[4383,13797,10951],{"class":4433},[4383,13799,5050],{"class":4400},[4383,13801,13802,13804,13806],{"class":4385,"line":5053},[4383,13803,10856],{"class":4412},[4383,13805,10960],{"class":4433},[4383,13807,5050],{"class":4400},[4383,13809,13810,13812,13814],{"class":4385,"line":5072},[4383,13811,10866],{"class":4412},[4383,13813,10969],{"class":4433},[4383,13815,5050],{"class":4400},[4383,13817,13818,13820,13822],{"class":4385,"line":5089},[4383,13819,10875],{"class":4412},[4383,13821,5402],{"class":4433},[4383,13823,5050],{"class":4400},[4383,13825,13826,13828,13830],{"class":4385,"line":5097},[4383,13827,10885],{"class":4412},[4383,13829,10986],{"class":4433},[4383,13831,5050],{"class":4400},[4383,13833,13834,13836,13838],{"class":4385,"line":5103},[4383,13835,10894],{"class":4412},[4383,13837,10995],{"class":4433},[4383,13839,5050],{"class":4400},[4383,13841,13842,13844,13846],{"class":4385,"line":5152},[4383,13843,10904],{"class":4412},[4383,13845,10839],{"class":4433},[4383,13847,5050],{"class":4400},[4383,13849,13850,13852,13854,13856],{"class":4385,"line":5161},[4383,13851,13754],{"class":4400},[4383,13853,11258],{"class":4741},[4383,13855,11261],{"class":4404},[4383,13857,4760],{"class":4400},[3743,13859,13860],{},"Перемикання в одному місці:",[4374,13862,13864],{"className":10120,"code":13863,"language":10122,"meta":4379,"style":4379},"function colorsForScheme(scheme: 'light' | 'dark') {\n  return scheme === 'dark' ? darkColors : lightColors;\n}\n\nconst colors = colorsForScheme(scheme);\n",[3764,13865,13866,13889,13911,13915,13919],{"__ignoreMap":4379},[4383,13867,13868,13870,13873,13875,13877,13880,13882,13884,13886],{"class":4385,"line":4386},[4383,13869,9526],{"class":4404},[4383,13871,13872],{"class":4812}," colorsForScheme",[4383,13874,4842],{"class":4400},[4383,13876,13160],{"class":4412},[4383,13878,13879],{"class":4400},": ",[4383,13881,11048],{"class":4433},[4383,13883,11051],{"class":4400},[4383,13885,11054],{"class":4433},[4383,13887,13888],{"class":4400},") {\n",[4383,13890,13891,13893,13895,13897,13899,13901,13904,13906,13909],{"class":4385,"line":4763},[4383,13892,4859],{"class":4741},[4383,13894,13141],{"class":4412},[4383,13896,11099],{"class":4400},[4383,13898,11054],{"class":4433},[4383,13900,11104],{"class":4400},[4383,13902,13903],{"class":4412},"darkColors",[4383,13905,11109],{"class":4400},[4383,13907,13908],{"class":4412},"lightColors",[4383,13910,4760],{"class":4400},[4383,13912,13913],{"class":4385,"line":4793},[4383,13914,5013],{"class":4400},[4383,13916,13917],{"class":4385,"line":4800},[4383,13918,4797],{"emptyLinePlaceholder":4796},[4383,13920,13921,13923,13925,13927,13930,13932,13934],{"class":4385,"line":4819},[4383,13922,5190],{"class":4404},[4383,13924,9334],{"class":4828},[4383,13926,5195],{"class":4400},[4383,13928,13929],{"class":4812},"colorsForScheme",[4383,13931,4842],{"class":4400},[4383,13933,13160],{"class":4412},[4383,13935,4848],{"class":4400},[3743,13937,13938,13939,13580,13942,4211,13945,9739,13948,3840],{},"Усі екрани читають ",[3764,13940,13941],{},"colors.*",[3756,13943,13944],{},"жодного",[3764,13946,13947],{},"#F8FAFC",[3764,13949,9742],{},[3820,13951,13953,6078,13955,13957],{"id":13952},"background-vs-surface-навіщо-два-темні-два-світлі",[3764,13954,9849],{},[3764,13956,3891],{}," — навіщо два «темні» \u002F два «світлі»",[3743,13959,13960,13961,13964,13965,13967,13968,13970,13971,13973,13974,13977],{},"Якщо і екран, і картка одного кольору, список ",[3756,13962,13963],{},"зливається"," в одну пляму. У світлій темі часто: фон екрана злегка сірий (",[3764,13966,9849],{},"), картка біла (",[3764,13969,3891],{},"). У темній: фон чорний, картка темно-сіра (",[3764,13972,3902],{}," тощо). Користувач ",[3756,13975,13976],{},"відчуває глибину"," без важких тіней.",[3820,13979,13981],{"id":13980},"контраст-і-доступність-на-рівні-інтуїції","Контраст і доступність (на рівні інтуїції)",[4255,13983,13984,13987,13988,4179,13991,13994,13995,13998,13999,14002,14003,14006],{},[3756,13985,13986],{},"Контраст."," У dark не достатньо «зробити фон чорним». Сірий текст ",[3764,13989,13990],{},"#64748B",[3764,13992,13993],{},"#000"," може стати ",[3756,13996,13997],{},"занадто"," тьмяним; інколи secondary у dark роблять світлішим (",[3764,14000,14001],{},"#A1A1AA","). Перевіряйте на реальному екрані (яскравість, OLED). Повний аудит a11y — окрема тема пізніше; зараз мінімум: ",[3756,14004,14005],{},"прочитати"," заголовок і підпис очима.",[3820,14008,14010,14011,14013],{"id":14009},"чого-не-класти-в-палітру-теми","Чого ",[3756,14012,4194],{}," класти в палітру теми",[4204,14015,14016,14019,14024],{},[3795,14017,14018],{},"URL фото обкладинки;",[3795,14020,14021,14022,13567],{},"«магічні» відступи layout (вони в ",[3764,14023,12911],{},[3795,14025,14026,14027,14030,14031,4619],{},"колір, який ",[3756,14028,14029],{},"завжди"," білий на логотипі вендора (окремий виняток, не ",[3764,14032,9901],{},[3820,14034,14036],{"id":14035},"приклад-перемикач-семантичні-кольори","Приклад: перемикач + семантичні кольори",[4727,14038,14041],{"device":4729,"filename":14039,"title":14040},"ThemeTogglePlayground.tsx","Семантичні кольори · toggle",[4374,14042,14044],{"className":4376,"code":14043,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\n\nconst light = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  border: '#E2E8F0',\n  onPrimary: '#FFFFFF',\n};\n\nconst dark = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  border: '#3A3A3C',\n  onPrimary: '#FFFFFF',\n};\n\nexport default function App() {\n  const [mode, setMode] = useState\u003C'light' | 'dark'>('light');\n  const c = mode === 'dark' ? dark : light;\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: c.background }]}>\n      \u003CView style={styles.row}>\n        \u003CPressable\n          onPress={() => setMode('light')}\n          style={[\n            styles.chip,\n            {\n              backgroundColor: mode === 'light' ? c.primary : c.surface,\n              borderColor: c.border,\n            },\n          ]}\n        >\n          \u003CText\n            style={{\n              color: mode === 'light' ? c.onPrimary : c.text,\n              fontWeight: '600',\n            }}\n          >\n            Світла\n          \u003C\u002FText>\n        \u003C\u002FPressable>\n        \u003CPressable\n          onPress={() => setMode('dark')}\n          style={[\n            styles.chip,\n            {\n              backgroundColor: mode === 'dark' ? c.primary : c.surface,\n              borderColor: c.border,\n            },\n          ]}\n        >\n          \u003CText\n            style={{\n              color: mode === 'dark' ? c.onPrimary : c.text,\n              fontWeight: '600',\n            }}\n          >\n            Темна\n          \u003C\u002FText>\n        \u003C\u002FPressable>\n      \u003C\u002FView>\n\n      \u003CView\n        style={[\n          styles.card,\n          { backgroundColor: c.surface, borderColor: c.border },\n        ]}\n      >\n        \u003CText style={[styles.cardTitle, { color: c.text }]}>Карпати 2026\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 6, lineHeight: 20 }}>\n          Кольори з палітри «{mode}». Той самий JSX — інші значення токенів.\n        \u003C\u002FText>\n        \u003CView style={[styles.badge, { backgroundColor: c.primary }]}>\n          \u003CText style={{ color: c.onPrimary, fontWeight: '700', fontSize: 12 }}>\n            primary\n          \u003C\u002FText>\n        \u003C\u002FView>\n      \u003C\u002FView>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 20, gap: 16, justifyContent: 'center' },\n  row: { flexDirection: 'row', gap: 8 },\n  chip: {\n    paddingHorizontal: 14,\n    paddingVertical: 10,\n    borderRadius: 10,\n    borderWidth: 1,\n  },\n  card: {\n    borderRadius: 16,\n    borderWidth: 1,\n    padding: 16,\n  },\n  cardTitle: { fontSize: 18, fontWeight: '700' },\n  badge: {\n    alignSelf: 'flex-start',\n    marginTop: 12,\n    paddingHorizontal: 10,\n    paddingVertical: 6,\n    borderRadius: 8,\n  },\n});\n",[3764,14045,14046,14062,14090,14094,14102,14110,14118,14126,14134,14142,14150,14158,14162,14166,14174,14182,14190,14198,14206,14214,14222,14230,14234,14238,14250,14280,14304,14308,14314,14350,14372,14378,14401,14411,14422,14427,14456,14469,14474,14481,14485,14491,14502,14531,14540,14547,14552,14557,14565,14573,14579,14601,14611,14621,14625,14654,14666,14670,14676,14680,14686,14696,14724,14732,14738,14742,14747,14755,14763,14771,14775,14781,14791,14801,14825,14831,14835,14879,14919,14933,14941,14978,15018,15023,15031,15039,15047,15055,15059,15063,15067,15083,15113,15131,15137,15145,15153,15161,15169,15173,15179,15187,15195,15203,15207,15225,15232,15242,15251,15259,15267,15275,15279],{"__ignoreMap":4379},[4383,14047,14048,14050,14052,14054,14056,14058,14060],{"class":4385,"line":4386},[4383,14049,4742],{"class":4741},[4383,14051,4745],{"class":4400},[4383,14053,4748],{"class":4412},[4383,14055,4751],{"class":4400},[4383,14057,4754],{"class":4741},[4383,14059,4757],{"class":4433},[4383,14061,4760],{"class":4400},[4383,14063,14064,14066,14068,14070,14072,14074,14076,14078,14080,14082,14084,14086,14088],{"class":4385,"line":4763},[4383,14065,4742],{"class":4741},[4383,14067,4745],{"class":4400},[4383,14069,4198],{"class":4412},[4383,14071,3767],{"class":4400},[4383,14073,4241],{"class":4412},[4383,14075,3767],{"class":4400},[4383,14077,4724],{"class":4412},[4383,14079,3767],{"class":4400},[4383,14081,3803],{"class":4412},[4383,14083,4751],{"class":4400},[4383,14085,4754],{"class":4741},[4383,14087,4788],{"class":4433},[4383,14089,4760],{"class":4400},[4383,14091,14092],{"class":4385,"line":4793},[4383,14093,4797],{"emptyLinePlaceholder":4796},[4383,14095,14096,14098,14100],{"class":4385,"line":4800},[4383,14097,5190],{"class":4404},[4383,14099,10819],{"class":4828},[4383,14101,10822],{"class":4400},[4383,14103,14104,14106,14108],{"class":4385,"line":4819},[4383,14105,10827],{"class":4412},[4383,14107,4434],{"class":4433},[4383,14109,5050],{"class":4400},[4383,14111,14112,14114,14116],{"class":4385,"line":4851},[4383,14113,10836],{"class":4412},[4383,14115,10839],{"class":4433},[4383,14117,5050],{"class":4400},[4383,14119,14120,14122,14124],{"class":4385,"line":4856},[4383,14121,10846],{"class":4412},[4383,14123,10849],{"class":4433},[4383,14125,5050],{"class":4400},[4383,14127,14128,14130,14132],{"class":4385,"line":4865},[4383,14129,10856],{"class":4412},[4383,14131,10859],{"class":4433},[4383,14133,5050],{"class":4400},[4383,14135,14136,14138,14140],{"class":4385,"line":4892},[4383,14137,10866],{"class":4412},[4383,14139,5402],{"class":4433},[4383,14141,5050],{"class":4400},[4383,14143,14144,14146,14148],{"class":4385,"line":4928},[4383,14145,10885],{"class":4412},[4383,14147,5962],{"class":4433},[4383,14149,5050],{"class":4400},[4383,14151,14152,14154,14156],{"class":4385,"line":4952},[4383,14153,10904],{"class":4412},[4383,14155,10839],{"class":4433},[4383,14157,5050],{"class":4400},[4383,14159,14160],{"class":4385,"line":4958},[4383,14161,10913],{"class":4400},[4383,14163,14164],{"class":4385,"line":4968},[4383,14165,4797],{"emptyLinePlaceholder":4796},[4383,14167,14168,14170,14172],{"class":4385,"line":4976},[4383,14169,5190],{"class":4404},[4383,14171,10924],{"class":4828},[4383,14173,10822],{"class":4400},[4383,14175,14176,14178,14180],{"class":4385,"line":5016},[4383,14177,10827],{"class":4412},[4383,14179,10933],{"class":4433},[4383,14181,5050],{"class":4400},[4383,14183,14184,14186,14188],{"class":4385,"line":5039},[4383,14185,10836],{"class":4412},[4383,14187,10942],{"class":4433},[4383,14189,5050],{"class":4400},[4383,14191,14192,14194,14196],{"class":4385,"line":5053},[4383,14193,10846],{"class":4412},[4383,14195,10951],{"class":4433},[4383,14197,5050],{"class":4400},[4383,14199,14200,14202,14204],{"class":4385,"line":5072},[4383,14201,10856],{"class":4412},[4383,14203,10960],{"class":4433},[4383,14205,5050],{"class":4400},[4383,14207,14208,14210,14212],{"class":4385,"line":5089},[4383,14209,10866],{"class":4412},[4383,14211,10969],{"class":4433},[4383,14213,5050],{"class":4400},[4383,14215,14216,14218,14220],{"class":4385,"line":5097},[4383,14217,10885],{"class":4412},[4383,14219,10986],{"class":4433},[4383,14221,5050],{"class":4400},[4383,14223,14224,14226,14228],{"class":4385,"line":5103},[4383,14225,10904],{"class":4412},[4383,14227,10839],{"class":4433},[4383,14229,5050],{"class":4400},[4383,14231,14232],{"class":4385,"line":5152},[4383,14233,10913],{"class":4400},[4383,14235,14236],{"class":4385,"line":5161},[4383,14237,4797],{"emptyLinePlaceholder":4796},[4383,14239,14240,14242,14244,14246,14248],{"class":4385,"line":5171},[4383,14241,4803],{"class":4741},[4383,14243,4806],{"class":4741},[4383,14245,4809],{"class":4404},[4383,14247,4813],{"class":4812},[4383,14249,4816],{"class":4400},[4383,14251,14252,14254,14256,14258,14260,14262,14264,14266,14268,14270,14272,14274,14276,14278],{"class":4385,"line":5177},[4383,14253,4822],{"class":4404},[4383,14255,4825],{"class":4400},[4383,14257,11034],{"class":4828},[4383,14259,3767],{"class":4400},[4383,14261,11039],{"class":4828},[4383,14263,4837],{"class":4400},[4383,14265,4748],{"class":4812},[4383,14267,4390],{"class":4400},[4383,14269,11048],{"class":4433},[4383,14271,11051],{"class":4400},[4383,14273,11054],{"class":4433},[4383,14275,11057],{"class":4400},[4383,14277,11048],{"class":4433},[4383,14279,4848],{"class":4400},[4383,14281,14282,14284,14286,14288,14290,14292,14294,14296,14298,14300,14302],{"class":4385,"line":5182},[4383,14283,4822],{"class":4404},[4383,14285,11092],{"class":4828},[4383,14287,5195],{"class":4400},[4383,14289,11034],{"class":4412},[4383,14291,11099],{"class":4400},[4383,14293,11054],{"class":4433},[4383,14295,11104],{"class":4400},[4383,14297,3869],{"class":4412},[4383,14299,11109],{"class":4400},[4383,14301,3862],{"class":4412},[4383,14303,4760],{"class":4400},[4383,14305,14306],{"class":4385,"line":5187},[4383,14307,4797],{"emptyLinePlaceholder":4796},[4383,14309,14310,14312],{"class":4385,"line":5207},[4383,14311,4859],{"class":4741},[4383,14313,4862],{"class":4400},[4383,14315,14316,14318,14320,14322,14324,14326,14328,14330,14332,14334,14336,14338,14340,14342,14344,14346,14348],{"class":4385,"line":5216},[4383,14317,4868],{"class":4389},[4383,14319,4198],{"class":4393},[4383,14321,4397],{"class":4396},[4383,14323,4401],{"class":4400},[4383,14325,4405],{"class":4404},[4383,14327,6278],{"class":4408},[4383,14329,4879],{"class":4412},[4383,14331,3840],{"class":4408},[4383,14333,4884],{"class":4412},[4383,14335,9329],{"class":4408},[4383,14337,4430],{"class":4412},[4383,14339,11092],{"class":4412},[4383,14341,3840],{"class":4408},[4383,14343,9849],{"class":4412},[4383,14345,9341],{"class":4408},[4383,14347,4440],{"class":4404},[4383,14349,4889],{"class":4389},[4383,14351,14352,14354,14356,14358,14360,14362,14364,14366,14368,14370],{"class":4385,"line":5226},[4383,14353,4895],{"class":4389},[4383,14355,4198],{"class":4393},[4383,14357,4397],{"class":4396},[4383,14359,4401],{"class":4400},[4383,14361,4405],{"class":4404},[4383,14363,4879],{"class":4412},[4383,14365,3840],{"class":4408},[4383,14367,7068],{"class":4412},[4383,14369,4440],{"class":4404},[4383,14371,4889],{"class":4389},[4383,14373,14374,14376],{"class":4385,"line":5236},[4383,14375,5106],{"class":4389},[4383,14377,4973],{"class":4393},[4383,14379,14380,14383,14385,14387,14389,14391,14393,14395,14397,14399],{"class":4385,"line":5247},[4383,14381,14382],{"class":4396},"          onPress",[4383,14384,4401],{"class":4400},[4383,14386,4405],{"class":4404},[4383,14388,4986],{"class":4408},[4383,14390,4989],{"class":4404},[4383,14392,11341],{"class":4812},[4383,14394,4842],{"class":4408},[4383,14396,11048],{"class":4433},[4383,14398,4141],{"class":4408},[4383,14400,5013],{"class":4404},[4383,14402,14403,14405,14407,14409],{"class":4385,"line":5258},[4383,14404,6448],{"class":4396},[4383,14406,4401],{"class":4400},[4383,14408,4405],{"class":4404},[4383,14410,9394],{"class":4408},[4383,14412,14413,14416,14418,14420],{"class":4385,"line":5269},[4383,14414,14415],{"class":4412},"            styles",[4383,14417,3840],{"class":4408},[4383,14419,11370],{"class":4412},[4383,14421,5050],{"class":4408},[4383,14423,14424],{"class":4385,"line":5275},[4383,14425,14426],{"class":4408},"            {\n",[4383,14428,14429,14432,14434,14436,14438,14440,14442,14444,14446,14448,14450,14452,14454],{"class":4385,"line":5308},[4383,14430,14431],{"class":4412},"              backgroundColor:",[4383,14433,11291],{"class":4412},[4383,14435,11294],{"class":4400},[4383,14437,11518],{"class":4433},[4383,14439,5132],{"class":4400},[4383,14441,11092],{"class":4412},[4383,14443,3840],{"class":4408},[4383,14445,9747],{"class":4412},[4383,14447,5138],{"class":4400},[4383,14449,11092],{"class":4412},[4383,14451,3840],{"class":4408},[4383,14453,3891],{"class":4412},[4383,14455,5050],{"class":4408},[4383,14457,14458,14461,14463,14465,14467],{"class":4385,"line":5338},[4383,14459,14460],{"class":4412},"              borderColor:",[4383,14462,11092],{"class":4412},[4383,14464,3840],{"class":4408},[4383,14466,10000],{"class":4412},[4383,14468,5050],{"class":4408},[4383,14470,14471],{"class":4385,"line":5346},[4383,14472,14473],{"class":4408},"            },\n",[4383,14475,14476,14479],{"class":4385,"line":5356},[4383,14477,14478],{"class":4408},"          ]",[4383,14480,5013],{"class":4404},[4383,14482,14483],{"class":4385,"line":5367},[4383,14484,6508],{"class":4389},[4383,14486,14487,14489],{"class":4385,"line":5377},[4383,14488,6305],{"class":4389},[4383,14490,11440],{"class":4393},[4383,14492,14493,14496,14498,14500],{"class":4385,"line":5387},[4383,14494,14495],{"class":4396},"            style",[4383,14497,4401],{"class":4400},[4383,14499,4405],{"class":4404},[4383,14501,6455],{"class":4408},[4383,14503,14504,14507,14509,14511,14513,14515,14517,14519,14521,14523,14525,14527,14529],{"class":4385,"line":5392},[4383,14505,14506],{"class":4412},"              color:",[4383,14508,11291],{"class":4412},[4383,14510,11294],{"class":4400},[4383,14512,11518],{"class":4433},[4383,14514,5132],{"class":4400},[4383,14516,11092],{"class":4412},[4383,14518,3840],{"class":4408},[4383,14520,9978],{"class":4412},[4383,14522,5138],{"class":4400},[4383,14524,11092],{"class":4412},[4383,14526,3840],{"class":4408},[4383,14528,9901],{"class":4412},[4383,14530,5050],{"class":4408},[4383,14532,14533,14536,14538],{"class":4385,"line":5407},[4383,14534,14535],{"class":4412},"              fontWeight:",[4383,14537,5994],{"class":4433},[4383,14539,5050],{"class":4408},[4383,14541,14542,14545],{"class":4385,"line":5423},[4383,14543,14544],{"class":4408},"            }",[4383,14546,5013],{"class":4404},[4383,14548,14549],{"class":4385,"line":5450},[4383,14550,14551],{"class":4389},"          >\n",[4383,14553,14554],{"class":4385,"line":6760},[4383,14555,14556],{"class":4400},"            Світла\n",[4383,14558,14559,14561,14563],{"class":4385,"line":6765},[4383,14560,8336],{"class":4389},[4383,14562,4241],{"class":4393},[4383,14564,4889],{"class":4389},[4383,14566,14567,14569,14571],{"class":4385,"line":6793},[4383,14568,6338],{"class":4389},[4383,14570,4724],{"class":4393},[4383,14572,4889],{"class":4389},[4383,14574,14575,14577],{"class":4385,"line":6801},[4383,14576,5106],{"class":4389},[4383,14578,4973],{"class":4393},[4383,14580,14581,14583,14585,14587,14589,14591,14593,14595,14597,14599],{"class":4385,"line":6811},[4383,14582,14382],{"class":4396},[4383,14584,4401],{"class":4400},[4383,14586,4405],{"class":4404},[4383,14588,4986],{"class":4408},[4383,14590,4989],{"class":4404},[4383,14592,11341],{"class":4812},[4383,14594,4842],{"class":4408},[4383,14596,11054],{"class":4433},[4383,14598,4141],{"class":4408},[4383,14600,5013],{"class":4404},[4383,14602,14603,14605,14607,14609],{"class":4385,"line":6820},[4383,14604,6448],{"class":4396},[4383,14606,4401],{"class":4400},[4383,14608,4405],{"class":4404},[4383,14610,9394],{"class":4408},[4383,14612,14613,14615,14617,14619],{"class":4385,"line":6829},[4383,14614,14415],{"class":4412},[4383,14616,3840],{"class":4408},[4383,14618,11370],{"class":4412},[4383,14620,5050],{"class":4408},[4383,14622,14623],{"class":4385,"line":6834},[4383,14624,14426],{"class":4408},[4383,14626,14627,14629,14631,14633,14636,14638,14640,14642,14644,14646,14648,14650,14652],{"class":4385,"line":6860},[4383,14628,14431],{"class":4412},[4383,14630,11291],{"class":4412},[4383,14632,11294],{"class":4400},[4383,14634,14635],{"class":4433}," 'dark'",[4383,14637,5132],{"class":4400},[4383,14639,11092],{"class":4412},[4383,14641,3840],{"class":4408},[4383,14643,9747],{"class":4412},[4383,14645,5138],{"class":4400},[4383,14647,11092],{"class":4412},[4383,14649,3840],{"class":4408},[4383,14651,3891],{"class":4412},[4383,14653,5050],{"class":4408},[4383,14655,14656,14658,14660,14662,14664],{"class":4385,"line":6893},[4383,14657,14460],{"class":4412},[4383,14659,11092],{"class":4412},[4383,14661,3840],{"class":4408},[4383,14663,10000],{"class":4412},[4383,14665,5050],{"class":4408},[4383,14667,14668],{"class":4385,"line":8399},[4383,14669,14473],{"class":4408},[4383,14671,14672,14674],{"class":4385,"line":8418},[4383,14673,14478],{"class":4408},[4383,14675,5013],{"class":4404},[4383,14677,14678],{"class":4385,"line":8429},[4383,14679,6508],{"class":4389},[4383,14681,14682,14684],{"class":4385,"line":8445},[4383,14683,6305],{"class":4389},[4383,14685,11440],{"class":4393},[4383,14687,14688,14690,14692,14694],{"class":4385,"line":8460},[4383,14689,14495],{"class":4396},[4383,14691,4401],{"class":4400},[4383,14693,4405],{"class":4404},[4383,14695,6455],{"class":4408},[4383,14697,14698,14700,14702,14704,14706,14708,14710,14712,14714,14716,14718,14720,14722],{"class":4385,"line":8467},[4383,14699,14506],{"class":4412},[4383,14701,11291],{"class":4412},[4383,14703,11294],{"class":4400},[4383,14705,14635],{"class":4433},[4383,14707,5132],{"class":4400},[4383,14709,11092],{"class":4412},[4383,14711,3840],{"class":4408},[4383,14713,9978],{"class":4412},[4383,14715,5138],{"class":4400},[4383,14717,11092],{"class":4412},[4383,14719,3840],{"class":4408},[4383,14721,9901],{"class":4412},[4383,14723,5050],{"class":4408},[4383,14725,14726,14728,14730],{"class":4385,"line":8472},[4383,14727,14535],{"class":4412},[4383,14729,5994],{"class":4433},[4383,14731,5050],{"class":4408},[4383,14733,14734,14736],{"class":4385,"line":8495},[4383,14735,14544],{"class":4408},[4383,14737,5013],{"class":4404},[4383,14739,14740],{"class":4385,"line":8515},[4383,14741,14551],{"class":4389},[4383,14743,14744],{"class":4385,"line":8524},[4383,14745,14746],{"class":4400},"            Темна\n",[4383,14748,14749,14751,14753],{"class":4385,"line":8533},[4383,14750,8336],{"class":4389},[4383,14752,4241],{"class":4393},[4383,14754,4889],{"class":4389},[4383,14756,14757,14759,14761],{"class":4385,"line":8538},[4383,14758,6338],{"class":4389},[4383,14760,4724],{"class":4393},[4383,14762,4889],{"class":4389},[4383,14764,14765,14767,14769],{"class":4385,"line":8561},[4383,14766,4961],{"class":4389},[4383,14768,4198],{"class":4393},[4383,14770,4889],{"class":4389},[4383,14772,14773],{"class":4385,"line":8567},[4383,14774,4797],{"emptyLinePlaceholder":4796},[4383,14776,14777,14779],{"class":4385,"line":8576},[4383,14778,4895],{"class":4389},[4383,14780,6443],{"class":4393},[4383,14782,14783,14785,14787,14789],{"class":4385,"line":8585},[4383,14784,5019],{"class":4396},[4383,14786,4401],{"class":4400},[4383,14788,4405],{"class":4404},[4383,14790,9394],{"class":4408},[4383,14792,14793,14795,14797,14799],{"class":4385,"line":8590},[4383,14794,5042],{"class":4412},[4383,14796,3840],{"class":4408},[4383,14798,6227],{"class":4412},[4383,14800,5050],{"class":4408},[4383,14802,14803,14805,14807,14809,14811,14813,14815,14817,14819,14821,14823],{"class":4385,"line":8595},[4383,14804,11703],{"class":4408},[4383,14806,4430],{"class":4412},[4383,14808,11092],{"class":4412},[4383,14810,3840],{"class":4408},[4383,14812,3891],{"class":4412},[4383,14814,3767],{"class":4408},[4383,14816,11716],{"class":4412},[4383,14818,11092],{"class":4412},[4383,14820,3840],{"class":4408},[4383,14822,10000],{"class":4412},[4383,14824,5305],{"class":4408},[4383,14826,14827,14829],{"class":4385,"line":8600},[4383,14828,5092],{"class":4408},[4383,14830,5013],{"class":4404},[4383,14832,14833],{"class":4385,"line":8617},[4383,14834,5100],{"class":4389},[4383,14836,14837,14839,14841,14843,14845,14847,14849,14851,14853,14855,14857,14859,14861,14863,14865,14867,14869,14871,14873,14875,14877],{"class":4385,"line":8624},[4383,14838,5106],{"class":4389},[4383,14840,4241],{"class":4393},[4383,14842,4397],{"class":4396},[4383,14844,4401],{"class":4400},[4383,14846,4405],{"class":4404},[4383,14848,6278],{"class":4408},[4383,14850,4879],{"class":4412},[4383,14852,3840],{"class":4408},[4383,14854,11952],{"class":4412},[4383,14856,9329],{"class":4408},[4383,14858,5299],{"class":4412},[4383,14860,11092],{"class":4412},[4383,14862,3840],{"class":4408},[4383,14864,9901],{"class":4412},[4383,14866,9341],{"class":4408},[4383,14868,4440],{"class":4404},[4383,14870,4915],{"class":4389},[4383,14872,8141],{"class":4400},[4383,14874,4921],{"class":4389},[4383,14876,4241],{"class":4393},[4383,14878,4889],{"class":4389},[4383,14880,14881,14883,14885,14887,14889,14891,14893,14895,14897,14899,14901,14903,14905,14907,14909,14911,14913,14915,14917],{"class":4385,"line":8633},[4383,14882,5106],{"class":4389},[4383,14884,4241],{"class":4393},[4383,14886,4397],{"class":4396},[4383,14888,4401],{"class":4400},[4383,14890,4405],{"class":4404},[4383,14892,4409],{"class":4408},[4383,14894,5299],{"class":4412},[4383,14896,11092],{"class":4412},[4383,14898,3840],{"class":4408},[4383,14900,9924],{"class":4412},[4383,14902,3767],{"class":4408},[4383,14904,6885],{"class":4412},[4383,14906,6008],{"class":4416},[4383,14908,3767],{"class":4408},[4383,14910,5330],{"class":4412},[4383,14912,5286],{"class":4416},[4383,14914,4437],{"class":4408},[4383,14916,4440],{"class":4404},[4383,14918,4889],{"class":4389},[4383,14920,14921,14924,14926,14928,14930],{"class":4385,"line":8642},[4383,14922,14923],{"class":4400},"          Кольори з палітри «",[4383,14925,4405],{"class":4404},[4383,14927,11034],{"class":4412},[4383,14929,4440],{"class":4404},[4383,14931,14932],{"class":4400},"». Той самий JSX — інші значення токенів.\n",[4383,14934,14935,14937,14939],{"class":4385,"line":8651},[4383,14936,6338],{"class":4389},[4383,14938,4241],{"class":4393},[4383,14940,4889],{"class":4389},[4383,14942,14943,14945,14947,14949,14951,14953,14955,14957,14959,14962,14964,14966,14968,14970,14972,14974,14976],{"class":4385,"line":8660},[4383,14944,5106],{"class":4389},[4383,14946,4198],{"class":4393},[4383,14948,4397],{"class":4396},[4383,14950,4401],{"class":4400},[4383,14952,4405],{"class":4404},[4383,14954,6278],{"class":4408},[4383,14956,4879],{"class":4412},[4383,14958,3840],{"class":4408},[4383,14960,14961],{"class":4412},"badge",[4383,14963,9329],{"class":4408},[4383,14965,4430],{"class":4412},[4383,14967,11092],{"class":4412},[4383,14969,3840],{"class":4408},[4383,14971,9747],{"class":4412},[4383,14973,9341],{"class":4408},[4383,14975,4440],{"class":4404},[4383,14977,4889],{"class":4389},[4383,14979,14980,14982,14984,14986,14988,14990,14992,14994,14996,14998,15000,15002,15004,15006,15008,15010,15012,15014,15016],{"class":4385,"line":8669},[4383,14981,6305],{"class":4389},[4383,14983,4241],{"class":4393},[4383,14985,4397],{"class":4396},[4383,14987,4401],{"class":4400},[4383,14989,4405],{"class":4404},[4383,14991,4409],{"class":4408},[4383,14993,5299],{"class":4412},[4383,14995,11092],{"class":4412},[4383,14997,3840],{"class":4408},[4383,14999,9978],{"class":4412},[4383,15001,3767],{"class":4408},[4383,15003,5291],{"class":4412},[4383,15005,5294],{"class":4433},[4383,15007,3767],{"class":4408},[4383,15009,5283],{"class":4412},[4383,15011,5264],{"class":4416},[4383,15013,4437],{"class":4408},[4383,15015,4440],{"class":4404},[4383,15017,4889],{"class":4389},[4383,15019,15020],{"class":4385,"line":8674},[4383,15021,15022],{"class":4400},"            primary\n",[4383,15024,15025,15027,15029],{"class":4385,"line":8687},[4383,15026,8336],{"class":4389},[4383,15028,4241],{"class":4393},[4383,15030,4889],{"class":4389},[4383,15032,15033,15035,15037],{"class":4385,"line":8707},[4383,15034,6338],{"class":4389},[4383,15036,4198],{"class":4393},[4383,15038,4889],{"class":4389},[4383,15040,15041,15043,15045],{"class":4385,"line":8737},[4383,15042,4961],{"class":4389},[4383,15044,4198],{"class":4393},[4383,15046,4889],{"class":4389},[4383,15048,15049,15051,15053],{"class":4385,"line":8744},[4383,15050,5164],{"class":4389},[4383,15052,4198],{"class":4393},[4383,15054,4889],{"class":4389},[4383,15056,15057],{"class":4385,"line":8753},[4383,15058,5174],{"class":4400},[4383,15060,15061],{"class":4385,"line":8762},[4383,15062,5013],{"class":4400},[4383,15064,15065],{"class":4385,"line":8771},[4383,15066,4797],{"emptyLinePlaceholder":4796},[4383,15068,15069,15071,15073,15075,15077,15079,15081],{"class":4385,"line":8780},[4383,15070,5190],{"class":4404},[4383,15072,5062],{"class":4828},[4383,15074,5195],{"class":4400},[4383,15076,3803],{"class":4412},[4383,15078,3840],{"class":4400},[4383,15080,4495],{"class":4812},[4383,15082,5204],{"class":4400},[4383,15084,15085,15087,15089,15091,15093,15095,15097,15099,15101,15103,15105,15107,15109,15111],{"class":4385,"line":8789},[4383,15086,5210],{"class":4412},[4383,15088,4745],{"class":4400},[4383,15090,4413],{"class":4412},[4383,15092,4417],{"class":4416},[4383,15094,3767],{"class":4400},[4383,15096,4422],{"class":4412},[4383,15098,5286],{"class":4416},[4383,15100,3767],{"class":4400},[4383,15102,5878],{"class":4412},[4383,15104,4425],{"class":4416},[4383,15106,3767],{"class":4400},[4383,15108,5871],{"class":4412},[4383,15110,5253],{"class":4433},[4383,15112,5305],{"class":4400},[4383,15114,15115,15117,15119,15121,15123,15125,15127,15129],{"class":4385,"line":8800},[4383,15116,7443],{"class":4412},[4383,15118,4745],{"class":4400},[4383,15120,12632],{"class":4412},[4383,15122,12635],{"class":4433},[4383,15124,3767],{"class":4400},[4383,15126,5878],{"class":4412},[4383,15128,12642],{"class":4416},[4383,15130,5305],{"class":4400},[4383,15132,15133,15135],{"class":4385,"line":8809},[4383,15134,12650],{"class":4412},[4383,15136,5213],{"class":4400},[4383,15138,15139,15141,15143],{"class":4385,"line":8814},[4383,15140,12658],{"class":4412},[4383,15142,5362],{"class":4416},[4383,15144,5050],{"class":4400},[4383,15146,15147,15149,15151],{"class":4385,"line":8841},[4383,15148,5359],{"class":4412},[4383,15150,6670],{"class":4416},[4383,15152,5050],{"class":4400},[4383,15154,15155,15157,15159],{"class":4385,"line":8873},[4383,15156,5370],{"class":4412},[4383,15158,6670],{"class":4416},[4383,15160,5050],{"class":4400},[4383,15162,15163,15165,15167],{"class":4385,"line":8905},[4383,15164,5950],{"class":4412},[4383,15166,4417],{"class":4416},[4383,15168,5050],{"class":4400},[4383,15170,15171],{"class":4385,"line":8912},[4383,15172,5272],{"class":4400},[4383,15174,15175,15177],{"class":4385,"line":8925},[4383,15176,6702],{"class":4412},[4383,15178,5213],{"class":4400},[4383,15180,15181,15183,15185],{"class":4385,"line":8935},[4383,15182,5370],{"class":4412},[4383,15184,4425],{"class":4416},[4383,15186,5050],{"class":4400},[4383,15188,15189,15191,15193],{"class":4385,"line":8945},[4383,15190,5950],{"class":4412},[4383,15192,4417],{"class":4416},[4383,15194,5050],{"class":4400},[4383,15196,15197,15199,15201],{"class":4385,"line":8950},[4383,15198,5239],{"class":4412},[4383,15200,4425],{"class":4416},[4383,15202,5050],{"class":4400},[4383,15204,15205],{"class":4385,"line":8969},[4383,15206,5272],{"class":4400},[4383,15208,15209,15211,15213,15215,15217,15219,15221,15223],{"class":4385,"line":8977},[4383,15210,12789],{"class":4412},[4383,15212,4745],{"class":4400},[4383,15214,5283],{"class":4412},[4383,15216,5333],{"class":4416},[4383,15218,3767],{"class":4400},[4383,15220,5291],{"class":4412},[4383,15222,5294],{"class":4433},[4383,15224,5305],{"class":4400},[4383,15226,15227,15230],{"class":4385,"line":8987},[4383,15228,15229],{"class":4412},"  badge:",[4383,15231,5213],{"class":4400},[4383,15233,15234,15237,15240],{"class":4385,"line":8996},[4383,15235,15236],{"class":4412},"    alignSelf:",[4383,15238,15239],{"class":4433}," 'flex-start'",[4383,15241,5050],{"class":4400},[4383,15243,15244,15247,15249],{"class":4385,"line":9005},[4383,15245,15246],{"class":4412},"    marginTop:",[4383,15248,5264],{"class":4416},[4383,15250,5050],{"class":4400},[4383,15252,15253,15255,15257],{"class":4385,"line":9010},[4383,15254,12658],{"class":4412},[4383,15256,6670],{"class":4416},[4383,15258,5050],{"class":4400},[4383,15260,15261,15263,15265],{"class":4385,"line":9036},[4383,15262,5359],{"class":4412},[4383,15264,6008],{"class":4416},[4383,15266,5050],{"class":4400},[4383,15268,15269,15271,15273],{"class":4385,"line":9043},[4383,15270,5370],{"class":4412},[4383,15272,12642],{"class":4416},[4383,15274,5050],{"class":4400},[4383,15276,15277],{"class":4385,"line":9052},[4383,15278,5272],{"class":4400},[4383,15280,15281],{"class":4385,"line":9061},[4383,15282,5453],{"class":4400},[4021,15284],{},[3738,15286,15288,15289,15292,15293],{"id":15287},"тема-в-усьому-застосунку-ми-самі-пишемо-themeprovider","Тема в усьому застосунку: ми ",[3756,15290,15291],{},"самі"," пишемо ",[3764,15294,3981],{},[3743,15296,15297],{},[3746,15298],{"alt":15299,"className":15300,"src":15301},"preference → scheme → colors",[3750],"\u002Fimages\u002Freact-native\u002Fstylesheet-and-theming\u002F03.svg",[3991,15303,15304,15307,15309,3907,15311,13580,15313,15315,15316,15318,15319,15322,15323,4619,15326,15328,15329,15332,15333,15336],{},[3756,15305,15306],{},"Головне, щоб не загубитись.",[3886,15308],{},[3764,15310,3981],{},[3764,15312,3985],{},[3756,15314,4194],{}," готові API з React Native і ",[3756,15317,4194],{}," «магія Expo». Їх ",[3756,15320,15321],{},"пишемо ми"," (у Nomad — файли в ",[3764,15324,15325],{},"src\u002Fshared\u002Ftheme\u002F",[3886,15327],{},"\nReact дає лише загальний механізм ",[3756,15330,15331],{},"Context"," («коробка зі значенням для нащадків»). Ми кладемо в цю коробку ",[3756,15334,15335],{},"тему"," і даємо зручні імена: Provider і хук.",[3743,15338,15339,15340,13015],{},"Досі в демо тема жила ",[3756,15341,15342],{},"всередині одного екрана",[4374,15344,15346],{"className":4376,"code":15345,"language":4378,"meta":4379,"style":4379},"const [mode, setMode] = useState\u003C'light' | 'dark'>('light');\nconst c = mode === 'dark' ? dark : light;\n",[3764,15347,15348,15378],{"__ignoreMap":4379},[4383,15349,15350,15352,15354,15356,15358,15360,15362,15364,15366,15368,15370,15372,15374,15376],{"class":4385,"line":4386},[4383,15351,5190],{"class":4404},[4383,15353,4825],{"class":4400},[4383,15355,11034],{"class":4828},[4383,15357,3767],{"class":4400},[4383,15359,11039],{"class":4828},[4383,15361,4837],{"class":4400},[4383,15363,4748],{"class":4812},[4383,15365,4390],{"class":4400},[4383,15367,11048],{"class":4433},[4383,15369,11051],{"class":4400},[4383,15371,11054],{"class":4433},[4383,15373,11057],{"class":4400},[4383,15375,11048],{"class":4433},[4383,15377,4848],{"class":4400},[4383,15379,15380,15382,15384,15386,15388,15390,15392,15394,15396,15398,15400],{"class":4385,"line":4763},[4383,15381,5190],{"class":4404},[4383,15383,11092],{"class":4828},[4383,15385,5195],{"class":4400},[4383,15387,11034],{"class":4412},[4383,15389,11099],{"class":4400},[4383,15391,11054],{"class":4433},[4383,15393,11104],{"class":4400},[4383,15395,3869],{"class":4412},[4383,15397,11109],{"class":4400},[4383,15399,3862],{"class":4412},[4383,15401,4760],{"class":4400},[3743,15403,15404,15405,3767,15408,3767,15410,3767,15413,3767,15415,15418,15419,4211,15421,15423,15424,15426,15427,15430],{},"Це нормально для однієї сторінки. У реальному застосунку з’являються ",[3764,15406,15407],{},"Home",[3764,15409,9742],{},[3764,15411,15412],{},"Button",[3764,15414,12961],{},[3764,15416,15417],{},"Screen"," — і всім потрібен ",[3756,15420,9502],{},[3764,15422,10129],{},". Якщо передавати ",[3764,15425,10129],{}," пропсом зверху вниз через п’ять рівнів — це ",[3756,15428,15429],{},"prop drilling"," (prop drilling): «прокидання» даних лише заради того, щоб дістатися до далекого нащадка.",[4374,15432,15436],{"className":15433,"code":15435,"language":9901,"meta":4379},[15434],"language-text","App\n └─ colors={c} → Layout\n      └─ colors={c} → Home\n           └─ colors={c} → TripCard   ← насправді колір потрібен лише тут і в Button\n",[3764,15437,15435],{"__ignoreMap":4379},[3743,15439,15440,15441,15444,15445,15447],{},"Хочеться інакше: ",[3756,15442,15443],{},"один"," раз покласти тему «зверху», а будь-який компонент глибоко в дереві сказав: «дай мені поточні ",[3764,15446,10129],{},"».",[3820,15449,15451],{"id":15450},"звідки-береться-ідея-react-context-коротко-з-нуля","Звідки береться ідея: React Context (коротко з нуля)",[3743,15453,15454],{},"У React (і на вебі, і в RN) є три цеглини:",[4075,15456,15457,15470],{},[4078,15458,15459],{},[4081,15460,15461,15464,15467],{},[4084,15462,15463],{},"Цеглина",[4084,15465,15466],{},"Що це",[4084,15468,15469],{},"Аналогія",[4094,15471,15472,15489,15505],{},[4081,15473,15474,15479,15486],{},[4099,15475,15476],{},[3764,15477,15478],{},"createContext",[4099,15480,15481,15482,15485],{},"Створює ",[3756,15483,15484],{},"канал"," (контекст) — «про що ми говоримо» (тема, мова, user…)",[4099,15487,15488],{},"Спільний «канал» ThemeContext",[4081,15490,15491,15496,15502],{},[4099,15492,15493],{},[3764,15494,15495],{},"\u003CContext.Provider value={…}>",[4099,15497,15498,15501],{},[3756,15499,15500],{},"Кладе"," значення в канал для всіх нащадків усередині",[4099,15503,15504],{},"Кладете value у Provider",[4081,15506,15507,15512,15518],{},[4099,15508,15509],{},[3764,15510,15511],{},"useContext(Context)",[4099,15513,15514,15517],{},[3756,15515,15516],{},"Читає"," значення з найближчого Provider вище по дереву",[4099,15519,15520],{},"Будь-який нащадок читає value",[4255,15522,15523,15526,15527,15530,15531,5001,15533,4211,15536,15539,15540,15542],{},[3756,15524,15525],{},"Без Provider читати нічого."," Якщо викликати ",[3764,15528,15529],{},"useContext"," (або наш майбутній ",[3764,15532,3985],{},[3756,15534,15535],{},"поза",[3764,15537,15538],{},"\u003CProvider>",", отримаєте ",[3764,15541,5750],{}," \u002F дефолт \u002F помилку — бо Provider вище по дереву немає. Це найчастіша помилка новачка.",[3743,15544,15545,15547,15548,15551],{},[3764,15546,3981],{}," у нашому коді — це ",[3756,15549,15550],{},"звичайний React-компонент",", який:",[3792,15553,15554,15557,15562,15569],{},[3795,15555,15556],{},"тримає стан (що обрав користувач: system \u002F light \u002F dark);",[3795,15558,15559,15560,13559],{},"читає систему через ",[3764,15561,3774],{},[3795,15563,15564,15565,3907,15567,13559],{},"рахує ",[3764,15566,13160],{},[3764,15568,10129],{},[3795,15570,15571,15572,9739,15575,3840],{},"обгортає ",[3764,15573,15574],{},"children",[3764,15576,15577],{},"\u003CThemeContext.Provider value={…}>",[3743,15579,15580,13580,15582,15585,15586,15589],{},[3764,15581,3985],{},[3756,15583,15584],{},"короткий хук",", який робить ",[3764,15587,15588],{},"useContext(ThemeContext)"," і кидає зрозумілу помилку, якщо Provider немає.",[10503,15591,15592],{},[4374,15593,15595],{"className":10507,"code":15594,"language":10509,"meta":4379,"style":4379},"@startuml\nskinparam style plain\nskinparam backgroundColor #ffffff\n\nrectangle \"Ви пишете файл theme.tsx\" as YOU {\n  rectangle \"1. createContext → ThemeContext\" as C1\n  rectangle \"2. function ThemeProvider\" as C2\n  rectangle \"3. function useTheme\" as C3\n}\n\nrectangle \"Корінь застосунку\\n(app\u002F_layout.tsx)\" as ROOT {\n  rectangle \"ThemeProvider\\nобгортає дерево нащадків\" as P\n}\n\nrectangle \"Будь-який нащадок\" as CHILD {\n  rectangle \"const { colors } = useTheme()\" as U\n}\n\nYOU --> ROOT : імпорт ThemeProvider, useTheme\nROOT --> P\nP --> CHILD : value з colors, scheme, …\nCHILD --> U\n\n@enduml\n",[3764,15596,15597,15601,15605,15609,15613,15618,15623,15628,15633,15637,15641,15646,15651,15655,15659,15664,15669,15673,15677,15682,15687,15692,15697,15701],{"__ignoreMap":4379},[4383,15598,15599],{"class":4385,"line":4386},[4383,15600,10516],{},[4383,15602,15603],{"class":4385,"line":4763},[4383,15604,10521],{},[4383,15606,15607],{"class":4385,"line":4793},[4383,15608,10526],{},[4383,15610,15611],{"class":4385,"line":4800},[4383,15612,4797],{"emptyLinePlaceholder":4796},[4383,15614,15615],{"class":4385,"line":4819},[4383,15616,15617],{},"rectangle \"Ви пишете файл theme.tsx\" as YOU {\n",[4383,15619,15620],{"class":4385,"line":4851},[4383,15621,15622],{},"  rectangle \"1. createContext → ThemeContext\" as C1\n",[4383,15624,15625],{"class":4385,"line":4856},[4383,15626,15627],{},"  rectangle \"2. function ThemeProvider\" as C2\n",[4383,15629,15630],{"class":4385,"line":4865},[4383,15631,15632],{},"  rectangle \"3. function useTheme\" as C3\n",[4383,15634,15635],{"class":4385,"line":4892},[4383,15636,5013],{},[4383,15638,15639],{"class":4385,"line":4928},[4383,15640,4797],{"emptyLinePlaceholder":4796},[4383,15642,15643],{"class":4385,"line":4952},[4383,15644,15645],{},"rectangle \"Корінь застосунку\\n(app\u002F_layout.tsx)\" as ROOT {\n",[4383,15647,15648],{"class":4385,"line":4958},[4383,15649,15650],{},"  rectangle \"ThemeProvider\\nобгортає дерево нащадків\" as P\n",[4383,15652,15653],{"class":4385,"line":4968},[4383,15654,5013],{},[4383,15656,15657],{"class":4385,"line":4976},[4383,15658,4797],{"emptyLinePlaceholder":4796},[4383,15660,15661],{"class":4385,"line":5016},[4383,15662,15663],{},"rectangle \"Будь-який нащадок\" as CHILD {\n",[4383,15665,15666],{"class":4385,"line":5039},[4383,15667,15668],{},"  rectangle \"const { colors } = useTheme()\" as U\n",[4383,15670,15671],{"class":4385,"line":5053},[4383,15672,5013],{},[4383,15674,15675],{"class":4385,"line":5072},[4383,15676,4797],{"emptyLinePlaceholder":4796},[4383,15678,15679],{"class":4385,"line":5089},[4383,15680,15681],{},"YOU --> ROOT : імпорт ThemeProvider, useTheme\n",[4383,15683,15684],{"class":4385,"line":5097},[4383,15685,15686],{},"ROOT --> P\n",[4383,15688,15689],{"class":4385,"line":5103},[4383,15690,15691],{},"P --> CHILD : value з colors, scheme, …\n",[4383,15693,15694],{"class":4385,"line":5152},[4383,15695,15696],{},"CHILD --> U\n",[4383,15698,15699],{"class":4385,"line":5161},[4383,15700,4797],{"emptyLinePlaceholder":4796},[4383,15702,15703],{"class":4385,"line":5171},[4383,15704,10623],{},[3820,15706,15708],{"id":15707},"крок-за-кроком-збираємо-тему-самі","Крок за кроком: збираємо тему самі",[3743,15710,15711,15712,15715,15716,15719],{},"Нижче — ",[3756,15713,15714],{},"логіка того самого коду",", що потім ляже в ",[3764,15717,15718],{},"src\u002Fshared\u002Ftheme\u002FThemeProvider.tsx"," у Nomad. Читайте по порядку: кожен крок додає одну ідею.",[15721,15722,15724],"h4",{"id":15723},"крок-1-палітри-й-resolve-уже-були","Крок 1. Палітри й resolve (уже були)",[3743,15726,15727,15728,3767,15730,3767,15732,3840,15735,15737,15738,15741],{},"Ми вже маємо ",[3764,15729,13908],{},[3764,15731,13903],{},[3764,15733,15734],{},"colorsForScheme(scheme)",[3886,15736],{},"\nДодаємо ",[3756,15739,15740],{},"два"," поняття, які часто плутають:",[4075,15743,15744,15754],{},[4078,15745,15746],{},[4081,15747,15748,15751],{},[4084,15749,15750],{},"Слово",[4084,15752,15753],{},"Значення",[4094,15755,15756,15770],{},[4081,15757,15758,15762],{},[4099,15759,15760],{},[3756,15761,13590],{},[4099,15763,15764,4211,15767],{},[3860,15765,15766],{},"Що обрав користувач у застосунку:",[3764,15768,15769],{},"'system' | 'light' | 'dark'",[4081,15771,15772,15776],{},[4099,15773,15774],{},[3756,15775,13160],{},[4099,15777,15778,15781,15782],{},[3860,15779,15780],{},"Яка theme зараз фактично на екрані:"," тільки ",[3764,15783,15784],{},"'light' | 'dark'",[3743,15786,15787,15788,15790,15791,3840,15793,15795,15796,15798,15799,15801,15802,15805],{},"Якщо preference = ",[3764,15789,13555],{},", scheme береться з ",[3764,15792,4164],{},[3886,15794],{},"\nЯкщо preference = ",[3764,15797,3862],{}," або ",[3764,15800,3869],{},", scheme ",[3756,15803,15804],{},"дорівнює"," preference — система ігнорується.",[4374,15807,15809],{"className":10120,"code":15808,"language":10122,"meta":4379,"style":4379},"type ThemePreference = 'system' | 'light' | 'dark';\ntype ColorSchemeName = 'light' | 'dark';\n\nfunction resolveScheme(\n  preference: ThemePreference,\n  system: string | null | undefined,\n): ColorSchemeName {\n  if (preference === 'light' || preference === 'dark') {\n    return preference; \u002F\u002F користувач примусово\n  }\n  \u002F\u002F preference === 'system'\n  return system === 'dark' ? 'dark' : 'light'; \u002F\u002F null → light\n}\n",[3764,15810,15811,15834,15851,15855,15865,15877,15897,15907,15931,15945,15950,15955,15979],{"__ignoreMap":4379},[4383,15812,15813,15816,15819,15821,15824,15826,15828,15830,15832],{"class":4385,"line":4386},[4383,15814,15815],{"class":4404},"type",[4383,15817,15818],{"class":4393}," ThemePreference",[4383,15820,5195],{"class":4400},[4383,15822,15823],{"class":4433},"'system'",[4383,15825,11051],{"class":4400},[4383,15827,11048],{"class":4433},[4383,15829,11051],{"class":4400},[4383,15831,11054],{"class":4433},[4383,15833,4760],{"class":4400},[4383,15835,15836,15838,15841,15843,15845,15847,15849],{"class":4385,"line":4763},[4383,15837,15815],{"class":4404},[4383,15839,15840],{"class":4393}," ColorSchemeName",[4383,15842,5195],{"class":4400},[4383,15844,11048],{"class":4433},[4383,15846,11051],{"class":4400},[4383,15848,11054],{"class":4433},[4383,15850,4760],{"class":4400},[4383,15852,15853],{"class":4385,"line":4793},[4383,15854,4797],{"emptyLinePlaceholder":4796},[4383,15856,15857,15859,15862],{"class":4385,"line":4800},[4383,15858,9526],{"class":4404},[4383,15860,15861],{"class":4812}," resolveScheme",[4383,15863,15864],{"class":4400},"(\n",[4383,15866,15867,15870,15872,15875],{"class":4385,"line":4819},[4383,15868,15869],{"class":4412},"  preference",[4383,15871,13879],{"class":4400},[4383,15873,15874],{"class":4393},"ThemePreference",[4383,15876,5050],{"class":4400},[4383,15878,15879,15882,15884,15887,15889,15891,15893,15895],{"class":4385,"line":4851},[4383,15880,15881],{"class":4412},"  system",[4383,15883,13879],{"class":4400},[4383,15885,15886],{"class":4393},"string",[4383,15888,11051],{"class":4400},[4383,15890,5750],{"class":4393},[4383,15892,11051],{"class":4400},[4383,15894,9470],{"class":4393},[4383,15896,5050],{"class":4400},[4383,15898,15899,15902,15905],{"class":4385,"line":4856},[4383,15900,15901],{"class":4400},"): ",[4383,15903,15904],{"class":4393},"ColorSchemeName",[4383,15906,5213],{"class":4400},[4383,15908,15909,15912,15914,15916,15918,15920,15923,15925,15927,15929],{"class":4385,"line":4865},[4383,15910,15911],{"class":4741},"  if",[4383,15913,3858],{"class":4400},[4383,15915,13590],{"class":4412},[4383,15917,11099],{"class":4400},[4383,15919,11048],{"class":4433},[4383,15921,15922],{"class":4400}," || ",[4383,15924,13590],{"class":4412},[4383,15926,11099],{"class":4400},[4383,15928,11054],{"class":4433},[4383,15930,13888],{"class":4400},[4383,15932,15933,15936,15939,15942],{"class":4385,"line":4892},[4383,15934,15935],{"class":4741},"    return",[4383,15937,15938],{"class":4412}," preference",[4383,15940,15941],{"class":4400},"; ",[4383,15943,15944],{"class":5558},"\u002F\u002F користувач примусово\n",[4383,15946,15947],{"class":4385,"line":4928},[4383,15948,15949],{"class":4400},"  }\n",[4383,15951,15952],{"class":4385,"line":4952},[4383,15953,15954],{"class":5558},"  \u002F\u002F preference === 'system'\n",[4383,15956,15957,15959,15962,15964,15966,15968,15970,15972,15974,15976],{"class":4385,"line":4958},[4383,15958,4859],{"class":4741},[4383,15960,15961],{"class":4412}," system",[4383,15963,11099],{"class":4400},[4383,15965,11054],{"class":4433},[4383,15967,11104],{"class":4400},[4383,15969,11054],{"class":4433},[4383,15971,11109],{"class":4400},[4383,15973,11048],{"class":4433},[4383,15975,15941],{"class":4400},[4383,15977,15978],{"class":5558},"\u002F\u002F null → light\n",[4383,15980,15981],{"class":4385,"line":4968},[4383,15982,5013],{"class":4400},[15984,15985,15986,15990,15999,16003,16011,16015,16020,16024,16030,16034],"steps",{},[3820,15987,15989],{"id":15988},"користувач-тисне-чіп","Користувач тисне чіп",[3743,15991,15992,4231,15995,4231,15997,3840],{},[3764,15993,15994],{},"setPreference('dark')",[3764,15996,11048],{},[3764,15998,15823],{},[3820,16000,16002],{"id":16001},"provider-читає-ос","Provider читає ОС",[3743,16004,16005,13580,16008,3840],{},[3764,16006,16007],{},"const system = useColorScheme()",[3764,16009,16010],{},"'light' | 'dark' | null",[3820,16012,16014],{"id":16013},"рахуємо-scheme","Рахуємо scheme",[3743,16016,16017,3840],{},[3764,16018,16019],{},"resolveScheme(preference, system)",[3820,16021,16023],{"id":16022},"рахуємо-colors","Рахуємо colors",[3743,16025,16026,16029],{},[3764,16027,16028],{},"colors = colorsForScheme(scheme)"," — словник hex за ролями.",[3820,16031,16033],{"id":16032},"нащадки-лише-читають","Нащадки лише читають",[3743,16035,16036,16039,16040,16043],{},[3764,16037,16038],{},"const { colors, scheme } = useTheme()"," — без знання, ",[3860,16041,16042],{},"чому"," зараз dark.",[15721,16045,16047],{"id":16046},"крок-2-створюємо-context-канал-теми","Крок 2. Створюємо Context — «канал теми»",[4374,16049,16051],{"className":4376,"code":16050,"language":4378,"meta":4379,"style":4379},"import { createContext, useContext, useMemo, useState, useCallback, ReactNode } from 'react';\nimport { useColorScheme } from 'react-native';\n\n\u002F\u002F що лежить у «скриньці» для всіх нащадків\ntype ThemeContextValue = {\n  scheme: 'light' | 'dark';\n  preference: 'system' | 'light' | 'dark';\n  setPreference: (value: 'system' | 'light' | 'dark') => void;\n  colors: typeof lightColors; \u002F\u002F той самий набір ключів\n};\n\n\u002F\u002F null = «Provider ще не обгорнув» (так ми зловимо помилку в useTheme)\nconst ThemeContext = createContext\u003CThemeContextValue | null>(null);\n",[3764,16052,16053,16092,16108,16112,16117,16126,16141,16159,16190,16207,16211,16215,16220],{"__ignoreMap":4379},[4383,16054,16055,16057,16059,16061,16063,16065,16067,16070,16072,16074,16076,16079,16081,16084,16086,16088,16090],{"class":4385,"line":4386},[4383,16056,4742],{"class":4741},[4383,16058,4745],{"class":4400},[4383,16060,15478],{"class":4412},[4383,16062,3767],{"class":4400},[4383,16064,15529],{"class":4412},[4383,16066,3767],{"class":4400},[4383,16068,16069],{"class":4412},"useMemo",[4383,16071,3767],{"class":4400},[4383,16073,4748],{"class":4412},[4383,16075,3767],{"class":4400},[4383,16077,16078],{"class":4412},"useCallback",[4383,16080,3767],{"class":4400},[4383,16082,16083],{"class":4412},"ReactNode",[4383,16085,4751],{"class":4400},[4383,16087,4754],{"class":4741},[4383,16089,4757],{"class":4433},[4383,16091,4760],{"class":4400},[4383,16093,16094,16096,16098,16100,16102,16104,16106],{"class":4385,"line":4763},[4383,16095,4742],{"class":4741},[4383,16097,4745],{"class":4400},[4383,16099,3774],{"class":4412},[4383,16101,4751],{"class":4400},[4383,16103,4754],{"class":4741},[4383,16105,4788],{"class":4433},[4383,16107,4760],{"class":4400},[4383,16109,16110],{"class":4385,"line":4793},[4383,16111,4797],{"emptyLinePlaceholder":4796},[4383,16113,16114],{"class":4385,"line":4800},[4383,16115,16116],{"class":5558},"\u002F\u002F що лежить у «скриньці» для всіх нащадків\n",[4383,16118,16119,16121,16124],{"class":4385,"line":4819},[4383,16120,15815],{"class":4404},[4383,16122,16123],{"class":4393}," ThemeContextValue",[4383,16125,10822],{"class":4400},[4383,16127,16128,16131,16133,16135,16137,16139],{"class":4385,"line":4851},[4383,16129,16130],{"class":4412},"  scheme",[4383,16132,13879],{"class":4400},[4383,16134,11048],{"class":4433},[4383,16136,11051],{"class":4400},[4383,16138,11054],{"class":4433},[4383,16140,4760],{"class":4400},[4383,16142,16143,16145,16147,16149,16151,16153,16155,16157],{"class":4385,"line":4856},[4383,16144,15869],{"class":4412},[4383,16146,13879],{"class":4400},[4383,16148,15823],{"class":4433},[4383,16150,11051],{"class":4400},[4383,16152,11048],{"class":4433},[4383,16154,11051],{"class":4400},[4383,16156,11054],{"class":4433},[4383,16158,4760],{"class":4400},[4383,16160,16161,16164,16167,16169,16171,16173,16175,16177,16179,16181,16183,16185,16188],{"class":4385,"line":4865},[4383,16162,16163],{"class":4812},"  setPreference",[4383,16165,16166],{"class":4400},": (",[4383,16168,13292],{"class":4412},[4383,16170,13879],{"class":4400},[4383,16172,15823],{"class":4433},[4383,16174,11051],{"class":4400},[4383,16176,11048],{"class":4433},[4383,16178,11051],{"class":4400},[4383,16180,11054],{"class":4433},[4383,16182,5001],{"class":4400},[4383,16184,4989],{"class":4404},[4383,16186,16187],{"class":4393}," void",[4383,16189,4760],{"class":4400},[4383,16191,16192,16195,16197,16200,16202,16204],{"class":4385,"line":4892},[4383,16193,16194],{"class":4412},"  colors",[4383,16196,13879],{"class":4400},[4383,16198,16199],{"class":4404},"typeof",[4383,16201,13675],{"class":4412},[4383,16203,15941],{"class":4400},[4383,16205,16206],{"class":5558},"\u002F\u002F той самий набір ключів\n",[4383,16208,16209],{"class":4385,"line":4928},[4383,16210,10913],{"class":4400},[4383,16212,16213],{"class":4385,"line":4952},[4383,16214,4797],{"emptyLinePlaceholder":4796},[4383,16216,16217],{"class":4385,"line":4958},[4383,16218,16219],{"class":5558},"\u002F\u002F null = «Provider ще не обгорнув» (так ми зловимо помилку в useTheme)\n",[4383,16221,16222,16224,16227,16229,16231,16233,16236,16238,16240,16242,16244],{"class":4385,"line":4968},[4383,16223,5190],{"class":4404},[4383,16225,16226],{"class":4828}," ThemeContext",[4383,16228,5195],{"class":4400},[4383,16230,15478],{"class":4812},[4383,16232,4390],{"class":4400},[4383,16234,16235],{"class":4393},"ThemeContextValue",[4383,16237,11051],{"class":4400},[4383,16239,5750],{"class":4393},[4383,16241,11057],{"class":4400},[4383,16243,5750],{"class":4404},[4383,16245,4848],{"class":4400},[3743,16247,16248,13580,16251,16253,16254,3840],{},[3764,16249,16250],{},"ThemeContext",[3756,16252,4194],{}," компонент. Це об’єкт-канал. Компонент — ",[3764,16255,16256],{},"ThemeContext.Provider",[15721,16258,16260,16261,13580,16263],{"id":16259},"крок-3-пишемо-компонент-themeprovider-ми-його-створюємо","Крок 3. Пишемо компонент ",[3764,16262,3981],{},[3756,16264,16265],{},"ми його створюємо",[3743,16267,16268,16269,16271,16272,3767,16275,16278],{},"Ім’я ",[3764,16270,3981],{}," — домовленість (як ",[3764,16273,16274],{},"AuthProvider",[3764,16276,16277],{},"StoreProvider","). React його «не знає», поки ви не оголосите функцію:",[4374,16280,16282],{"className":4376,"code":16281,"language":4378,"meta":4379,"style":4379},"export function ThemeProvider({\n  children,\n  initialPreference = 'system',\n}: {\n  children: ReactNode;\n  initialPreference?: 'system' | 'light' | 'dark';\n}) {\n  \u002F\u002F 1) що обрав користувач у застосунку\n  const [preference, setPreferenceState] = useState(initialPreference);\n\n  \u002F\u002F 2) що каже операційна система\n  const systemScheme = useColorScheme();\n\n  \u002F\u002F 3) фактична theme (scheme)\n  const scheme = resolveScheme(preference, systemScheme);\n\n  \u002F\u002F 4) словник кольорів для цього scheme\n  const colors = useMemo(() => colorsForScheme(scheme), [scheme]);\n\n  const setPreference = useCallback((value: typeof preference) => {\n    setPreferenceState(value);\n  }, []);\n\n  \u002F\u002F 5) пакуємо все, що віддамо нащадкам\n  const value = useMemo(\n    () => ({ scheme, preference, setPreference, colors }),\n    [scheme, preference, setPreference, colors],\n  );\n\n  \u002F\u002F 6) кладемо value у Context і рендеримо `children`\n  return (\n    \u003CThemeContext.Provider value={value}>\n      {children}\n    \u003C\u002FThemeContext.Provider>\n  );\n}\n",[3764,16283,16284,16295,16302,16313,16318,16328,16347,16352,16357,16381,16385,16390,16403,16407,16412,16434,16438,16443,16472,16476,16503,16514,16519,16523,16528,16541,16569,16591,16595,16599,16604,16610,16628,16637,16645,16649],{"__ignoreMap":4379},[4383,16285,16286,16288,16290,16293],{"class":4385,"line":4386},[4383,16287,4803],{"class":4741},[4383,16289,4809],{"class":4404},[4383,16291,16292],{"class":4812}," ThemeProvider",[4383,16294,5204],{"class":4400},[4383,16296,16297,16300],{"class":4385,"line":4763},[4383,16298,16299],{"class":4412},"  children",[4383,16301,5050],{"class":4400},[4383,16303,16304,16307,16309,16311],{"class":4385,"line":4793},[4383,16305,16306],{"class":4412},"  initialPreference",[4383,16308,5195],{"class":4400},[4383,16310,15823],{"class":4433},[4383,16312,5050],{"class":4400},[4383,16314,16315],{"class":4385,"line":4800},[4383,16316,16317],{"class":4400},"}: {\n",[4383,16319,16320,16322,16324,16326],{"class":4385,"line":4819},[4383,16321,16299],{"class":4412},[4383,16323,13879],{"class":4400},[4383,16325,16083],{"class":4393},[4383,16327,4760],{"class":4400},[4383,16329,16330,16332,16335,16337,16339,16341,16343,16345],{"class":4385,"line":4851},[4383,16331,16306],{"class":4412},[4383,16333,16334],{"class":4400},"?: ",[4383,16336,15823],{"class":4433},[4383,16338,11051],{"class":4400},[4383,16340,11048],{"class":4433},[4383,16342,11051],{"class":4400},[4383,16344,11054],{"class":4433},[4383,16346,4760],{"class":4400},[4383,16348,16349],{"class":4385,"line":4856},[4383,16350,16351],{"class":4400},"}) {\n",[4383,16353,16354],{"class":4385,"line":4865},[4383,16355,16356],{"class":5558},"  \u002F\u002F 1) що обрав користувач у застосунку\n",[4383,16358,16359,16361,16363,16365,16367,16370,16372,16374,16376,16379],{"class":4385,"line":4892},[4383,16360,4822],{"class":4404},[4383,16362,4825],{"class":4400},[4383,16364,13590],{"class":4828},[4383,16366,3767],{"class":4400},[4383,16368,16369],{"class":4828},"setPreferenceState",[4383,16371,4837],{"class":4400},[4383,16373,4748],{"class":4812},[4383,16375,4842],{"class":4400},[4383,16377,16378],{"class":4412},"initialPreference",[4383,16380,4848],{"class":4400},[4383,16382,16383],{"class":4385,"line":4928},[4383,16384,4797],{"emptyLinePlaceholder":4796},[4383,16386,16387],{"class":4385,"line":4952},[4383,16388,16389],{"class":5558},"  \u002F\u002F 2) що каже операційна система\n",[4383,16391,16392,16394,16397,16399,16401],{"class":4385,"line":4958},[4383,16393,4822],{"class":4404},[4383,16395,16396],{"class":4828}," systemScheme",[4383,16398,5195],{"class":4400},[4383,16400,3774],{"class":4812},[4383,16402,13148],{"class":4400},[4383,16404,16405],{"class":4385,"line":4968},[4383,16406,4797],{"emptyLinePlaceholder":4796},[4383,16408,16409],{"class":4385,"line":4976},[4383,16410,16411],{"class":5558},"  \u002F\u002F 3) фактична theme (scheme)\n",[4383,16413,16414,16416,16418,16420,16423,16425,16427,16429,16432],{"class":4385,"line":5016},[4383,16415,4822],{"class":4404},[4383,16417,13141],{"class":4828},[4383,16419,5195],{"class":4400},[4383,16421,16422],{"class":4812},"resolveScheme",[4383,16424,4842],{"class":4400},[4383,16426,13590],{"class":4412},[4383,16428,3767],{"class":4400},[4383,16430,16431],{"class":4412},"systemScheme",[4383,16433,4848],{"class":4400},[4383,16435,16436],{"class":4385,"line":5039},[4383,16437,4797],{"emptyLinePlaceholder":4796},[4383,16439,16440],{"class":4385,"line":5053},[4383,16441,16442],{"class":5558},"  \u002F\u002F 4) словник кольорів для цього scheme\n",[4383,16444,16445,16447,16449,16451,16453,16456,16458,16460,16462,16464,16467,16469],{"class":4385,"line":5072},[4383,16446,4822],{"class":4404},[4383,16448,9334],{"class":4828},[4383,16450,5195],{"class":4400},[4383,16452,16069],{"class":4812},[4383,16454,16455],{"class":4400},"(() ",[4383,16457,4989],{"class":4404},[4383,16459,13872],{"class":4812},[4383,16461,4842],{"class":4400},[4383,16463,13160],{"class":4412},[4383,16465,16466],{"class":4400},"), [",[4383,16468,13160],{"class":4412},[4383,16470,16471],{"class":4400},"]);\n",[4383,16473,16474],{"class":4385,"line":5089},[4383,16475,4797],{"emptyLinePlaceholder":4796},[4383,16477,16478,16480,16483,16485,16487,16489,16491,16493,16495,16497,16499,16501],{"class":4385,"line":5097},[4383,16479,4822],{"class":4404},[4383,16481,16482],{"class":4828}," setPreference",[4383,16484,5195],{"class":4400},[4383,16486,16078],{"class":4812},[4383,16488,4995],{"class":4400},[4383,16490,13292],{"class":4412},[4383,16492,13879],{"class":4400},[4383,16494,16199],{"class":4404},[4383,16496,15938],{"class":4412},[4383,16498,5001],{"class":4400},[4383,16500,4989],{"class":4404},[4383,16502,5213],{"class":4400},[4383,16504,16505,16508,16510,16512],{"class":4385,"line":5103},[4383,16506,16507],{"class":4812},"    setPreferenceState",[4383,16509,4842],{"class":4400},[4383,16511,13292],{"class":4412},[4383,16513,4848],{"class":4400},[4383,16515,16516],{"class":4385,"line":5152},[4383,16517,16518],{"class":4400},"  }, []);\n",[4383,16520,16521],{"class":4385,"line":5161},[4383,16522,4797],{"emptyLinePlaceholder":4796},[4383,16524,16525],{"class":4385,"line":5171},[4383,16526,16527],{"class":5558},"  \u002F\u002F 5) пакуємо все, що віддамо нащадкам\n",[4383,16529,16530,16532,16535,16537,16539],{"class":4385,"line":5177},[4383,16531,4822],{"class":4404},[4383,16533,16534],{"class":4828}," value",[4383,16536,5195],{"class":4400},[4383,16538,16069],{"class":4812},[4383,16540,15864],{"class":4400},[4383,16542,16543,16546,16548,16551,16553,16555,16557,16559,16562,16564,16566],{"class":4385,"line":5182},[4383,16544,16545],{"class":4400},"    () ",[4383,16547,4989],{"class":4404},[4383,16549,16550],{"class":4400}," ({ ",[4383,16552,13160],{"class":4412},[4383,16554,3767],{"class":4400},[4383,16556,13590],{"class":4412},[4383,16558,3767],{"class":4400},[4383,16560,16561],{"class":4412},"setPreference",[4383,16563,3767],{"class":4400},[4383,16565,10129],{"class":4412},[4383,16567,16568],{"class":4400}," }),\n",[4383,16570,16571,16574,16576,16578,16580,16582,16584,16586,16588],{"class":4385,"line":5187},[4383,16572,16573],{"class":4400},"    [",[4383,16575,13160],{"class":4412},[4383,16577,3767],{"class":4400},[4383,16579,13590],{"class":4412},[4383,16581,3767],{"class":4400},[4383,16583,16561],{"class":4412},[4383,16585,3767],{"class":4400},[4383,16587,10129],{"class":4412},[4383,16589,16590],{"class":4400},"],\n",[4383,16592,16593],{"class":4385,"line":5207},[4383,16594,5174],{"class":4400},[4383,16596,16597],{"class":4385,"line":5216},[4383,16598,4797],{"emptyLinePlaceholder":4796},[4383,16600,16601],{"class":4385,"line":5226},[4383,16602,16603],{"class":5558},"  \u002F\u002F 6) кладемо value у Context і рендеримо `children`\n",[4383,16605,16606,16608],{"class":4385,"line":5236},[4383,16607,4859],{"class":4741},[4383,16609,4862],{"class":4400},[4383,16611,16612,16614,16616,16618,16620,16622,16624,16626],{"class":4385,"line":5247},[4383,16613,4868],{"class":4389},[4383,16615,16256],{"class":4393},[4383,16617,16534],{"class":4396},[4383,16619,4401],{"class":4400},[4383,16621,4405],{"class":4404},[4383,16623,13292],{"class":4412},[4383,16625,4440],{"class":4404},[4383,16627,4889],{"class":4389},[4383,16629,16630,16633,16635],{"class":4385,"line":5258},[4383,16631,16632],{"class":4404},"      {",[4383,16634,15574],{"class":4412},[4383,16636,5013],{"class":4404},[4383,16638,16639,16641,16643],{"class":4385,"line":5269},[4383,16640,5164],{"class":4389},[4383,16642,16256],{"class":4393},[4383,16644,4889],{"class":4389},[4383,16646,16647],{"class":4385,"line":5275},[4383,16648,5174],{"class":4400},[4383,16650,16651],{"class":4385,"line":5308},[4383,16652,5013],{"class":4400},[3743,16654,16655,16658,16659,16662,16663,16665,16668,16669,3840,16672,16674,16675,16677,16678,16681],{},[3756,16656,16657],{},"Хто «створює» ThemeProvider?"," Ви — у файлі ",[3764,16660,16661],{},"ThemeProvider.tsx"," (або поруч із палітрами).",[3886,16664],{},[3756,16666,16667],{},"Хто його «вмикає»?"," Корінь застосунку — обгортає дерево: ",[3764,16670,16671],{},"\u003CThemeProvider>…\u003C\u002FThemeProvider>",[3886,16673],{},"\nБез цієї обгортки ",[3764,16676,3985],{}," нижче ",[3756,16679,16680],{},"немає звідки"," взяти value.",[15721,16683,16685,16686,16688],{"id":16684},"крок-4-пишемо-usetheme-зручне-читання-context","Крок 4. Пишемо ",[3764,16687,3985],{}," — зручне читання Context",[3743,16690,16691,16692,16694,16695,16697,16698,16700],{},"Замість того щоб у кожному файлі писати ",[3764,16693,15588],{}," і перевіряти ",[3764,16696,5750],{},", робимо ",[3756,16699,15443],{}," хук:",[4374,16702,16704],{"className":4376,"code":16703,"language":4378,"meta":4379,"style":4379},"export function useTheme(): ThemeContextValue {\n  const ctx = useContext(ThemeContext);\n  if (!ctx) {\n    throw new Error(\n      'useTheme() потрібно викликати всередині \u003CThemeProvider>. ' +\n        'Обгорніть корінь застосунку в ThemeProvider.',\n    );\n  }\n  return ctx;\n}\n",[3764,16705,16706,16722,16739,16751,16764,16772,16779,16784,16788,16796],{"__ignoreMap":4379},[4383,16707,16708,16710,16712,16715,16718,16720],{"class":4385,"line":4386},[4383,16709,4803],{"class":4741},[4383,16711,4809],{"class":4404},[4383,16713,16714],{"class":4812}," useTheme",[4383,16716,16717],{"class":4400},"(): ",[4383,16719,16235],{"class":4393},[4383,16721,5213],{"class":4400},[4383,16723,16724,16726,16729,16731,16733,16735,16737],{"class":4385,"line":4763},[4383,16725,4822],{"class":4404},[4383,16727,16728],{"class":4828}," ctx",[4383,16730,5195],{"class":4400},[4383,16732,15529],{"class":4812},[4383,16734,4842],{"class":4400},[4383,16736,16250],{"class":4412},[4383,16738,4848],{"class":4400},[4383,16740,16741,16743,16746,16749],{"class":4385,"line":4793},[4383,16742,15911],{"class":4741},[4383,16744,16745],{"class":4400}," (!",[4383,16747,16748],{"class":4412},"ctx",[4383,16750,13888],{"class":4400},[4383,16752,16753,16756,16759,16762],{"class":4385,"line":4800},[4383,16754,16755],{"class":4741},"    throw",[4383,16757,16758],{"class":4404}," new",[4383,16760,16761],{"class":4812}," Error",[4383,16763,15864],{"class":4400},[4383,16765,16766,16769],{"class":4385,"line":4819},[4383,16767,16768],{"class":4433},"      'useTheme() потрібно викликати всередині \u003CThemeProvider>. '",[4383,16770,16771],{"class":4400}," +\n",[4383,16773,16774,16777],{"class":4385,"line":4851},[4383,16775,16776],{"class":4433},"        'Обгорніть корінь застосунку в ThemeProvider.'",[4383,16778,5050],{"class":4400},[4383,16780,16781],{"class":4385,"line":4856},[4383,16782,16783],{"class":4400},"    );\n",[4383,16785,16786],{"class":4385,"line":4865},[4383,16787,15949],{"class":4400},[4383,16789,16790,16792,16794],{"class":4385,"line":4892},[4383,16791,4859],{"class":4741},[4383,16793,16728],{"class":4412},[4383,16795,4760],{"class":4400},[4383,16797,16798],{"class":4385,"line":4928},[4383,16799,5013],{"class":4400},[3743,16801,16802,16803,3767,16805,3767,16807,13015],{},"Тепер у ",[3764,16804,9742],{},[3764,16806,15412],{},[3764,16808,15417],{},[4374,16810,16812],{"className":4376,"code":16811,"language":4378,"meta":4379,"style":4379},"const { colors } = useTheme();\n\u002F\u002F colors.surface, colors.text, …\n",[3764,16813,16814,16829],{"__ignoreMap":4379},[4383,16815,16816,16818,16820,16822,16825,16827],{"class":4385,"line":4386},[4383,16817,5190],{"class":4404},[4383,16819,4745],{"class":4400},[4383,16821,10129],{"class":4828},[4383,16823,16824],{"class":4400}," } = ",[4383,16826,3985],{"class":4812},[4383,16828,13148],{"class":4400},[4383,16830,16831],{"class":4385,"line":4763},[4383,16832,16833],{"class":5558},"\u002F\u002F colors.surface, colors.text, …\n",[3743,16835,16836,4211,16838,16841,16842,3840],{},[3764,16837,3985],{},[3756,16839,16840],{},"з’являється не з повітря"," — це 5 рядків, які ви експортуєте з того ж модуля, що й ",[3764,16843,3981],{},[15721,16845,16847],{"id":16846},"крок-5-підключаємо-в-корені-expo-router","Крок 5. Підключаємо в корені (Expo Router)",[3743,16849,16850,16851,16854,16855,16858,16859,3840],{},"У Expo Router корінь екранів — ",[3764,16852,16853],{},"app\u002F_layout.tsx",". Саме тут Provider має ",[3756,16856,16857],{},"обгорнути"," все, що викликає ",[3764,16860,3985],{},[10109,16862,16863,16966],{},[10112,16864,16866,16946],{"label":16865},"Погано",[4374,16867,16869],{"className":4376,"code":16868,"language":4378,"meta":4379,"style":4379},"\u002F\u002F useTheme у тому ж компоненті, де Provider ще «не вище себе»\nexport default function RootLayout() {\n  const { colors } = useTheme(); \u002F\u002F 💥 немає Provider-предка\n  return (\n    \u003CThemeProvider>\n      \u003CStack \u002F>\n    \u003C\u002FThemeProvider>\n  );\n}\n",[3764,16870,16871,16876,16889,16907,16913,16921,16930,16938,16942],{"__ignoreMap":4379},[4383,16872,16873],{"class":4385,"line":4386},[4383,16874,16875],{"class":5558},"\u002F\u002F useTheme у тому ж компоненті, де Provider ще «не вище себе»\n",[4383,16877,16878,16880,16882,16884,16887],{"class":4385,"line":4763},[4383,16879,4803],{"class":4741},[4383,16881,4806],{"class":4741},[4383,16883,4809],{"class":4404},[4383,16885,16886],{"class":4812}," RootLayout",[4383,16888,4816],{"class":4400},[4383,16890,16891,16893,16895,16897,16899,16901,16904],{"class":4385,"line":4793},[4383,16892,4822],{"class":4404},[4383,16894,4745],{"class":4400},[4383,16896,10129],{"class":4828},[4383,16898,16824],{"class":4400},[4383,16900,3985],{"class":4812},[4383,16902,16903],{"class":4400},"(); ",[4383,16905,16906],{"class":5558},"\u002F\u002F 💥 немає Provider-предка\n",[4383,16908,16909,16911],{"class":4385,"line":4800},[4383,16910,4859],{"class":4741},[4383,16912,4862],{"class":4400},[4383,16914,16915,16917,16919],{"class":4385,"line":4819},[4383,16916,4868],{"class":4389},[4383,16918,3981],{"class":4393},[4383,16920,4889],{"class":4389},[4383,16922,16923,16925,16928],{"class":4385,"line":4851},[4383,16924,4895],{"class":4389},[4383,16926,16927],{"class":4393},"Stack",[4383,16929,4443],{"class":4389},[4383,16931,16932,16934,16936],{"class":4385,"line":4856},[4383,16933,5164],{"class":4389},[4383,16935,3981],{"class":4393},[4383,16937,4889],{"class":4389},[4383,16939,16940],{"class":4385,"line":4865},[4383,16941,5174],{"class":4400},[4383,16943,16944],{"class":4385,"line":4892},[4383,16945,5013],{"class":4400},[3743,16947,16948,16949,16952,16953,4211,16956,16958,16959,16962,16963,3840],{},"Хук дивиться ",[3756,16950,16951],{},"вгору"," по дереву. Сам ",[3764,16954,16955],{},"RootLayout",[3756,16957,4194],{}," є дитиною свого ",[3764,16960,16961],{},"return"," — Provider з’являється лише для ",[3764,16964,16965],{},"\u003CStack \u002F>",[10112,16967,16969],{"label":16968},"Добре",[4374,16970,16972],{"className":4376,"code":16971,"language":4378,"meta":4379,"style":4379},"export default function RootLayout() {\n  return (\n    \u003CThemeProvider>\n      \u003CRootNavigator \u002F>\n    \u003C\u002FThemeProvider>\n  );\n}\n\n\u002F\u002F Окремий компонент — уже ВСЕРЕДИНІ Provider\nfunction RootNavigator() {\n  const { colors, scheme } = useTheme();\n  return (\n    \u003C>\n      \u003CStatusBar style={scheme === 'dark' ? 'light' : 'dark'} \u002F>\n      \u003CStack\n        screenOptions={{\n          contentStyle: { backgroundColor: colors.background },\n        }}\n      \u002F>\n    \u003C\u002F>\n  );\n}\n",[3764,16973,16974,16986,16992,17000,17009,17017,17021,17025,17029,17034,17043,17061,17067,17072,17102,17109,17120,17137,17144,17149,17154,17158],{"__ignoreMap":4379},[4383,16975,16976,16978,16980,16982,16984],{"class":4385,"line":4386},[4383,16977,4803],{"class":4741},[4383,16979,4806],{"class":4741},[4383,16981,4809],{"class":4404},[4383,16983,16886],{"class":4812},[4383,16985,4816],{"class":4400},[4383,16987,16988,16990],{"class":4385,"line":4763},[4383,16989,4859],{"class":4741},[4383,16991,4862],{"class":4400},[4383,16993,16994,16996,16998],{"class":4385,"line":4793},[4383,16995,4868],{"class":4389},[4383,16997,3981],{"class":4393},[4383,16999,4889],{"class":4389},[4383,17001,17002,17004,17007],{"class":4385,"line":4800},[4383,17003,4895],{"class":4389},[4383,17005,17006],{"class":4393},"RootNavigator",[4383,17008,4443],{"class":4389},[4383,17010,17011,17013,17015],{"class":4385,"line":4819},[4383,17012,5164],{"class":4389},[4383,17014,3981],{"class":4393},[4383,17016,4889],{"class":4389},[4383,17018,17019],{"class":4385,"line":4851},[4383,17020,5174],{"class":4400},[4383,17022,17023],{"class":4385,"line":4856},[4383,17024,5013],{"class":4400},[4383,17026,17027],{"class":4385,"line":4865},[4383,17028,4797],{"emptyLinePlaceholder":4796},[4383,17030,17031],{"class":4385,"line":4892},[4383,17032,17033],{"class":5558},"\u002F\u002F Окремий компонент — уже ВСЕРЕДИНІ Provider\n",[4383,17035,17036,17038,17041],{"class":4385,"line":4928},[4383,17037,9526],{"class":4404},[4383,17039,17040],{"class":4812}," RootNavigator",[4383,17042,4816],{"class":4400},[4383,17044,17045,17047,17049,17051,17053,17055,17057,17059],{"class":4385,"line":4952},[4383,17046,4822],{"class":4404},[4383,17048,4745],{"class":4400},[4383,17050,10129],{"class":4828},[4383,17052,3767],{"class":4400},[4383,17054,13160],{"class":4828},[4383,17056,16824],{"class":4400},[4383,17058,3985],{"class":4812},[4383,17060,13148],{"class":4400},[4383,17062,17063,17065],{"class":4385,"line":4958},[4383,17064,4859],{"class":4741},[4383,17066,4862],{"class":4400},[4383,17068,17069],{"class":4385,"line":4968},[4383,17070,17071],{"class":4389},"    \u003C>\n",[4383,17073,17074,17076,17078,17080,17082,17084,17086,17088,17090,17092,17094,17096,17098,17100],{"class":4385,"line":4976},[4383,17075,4895],{"class":4389},[4383,17077,4187],{"class":4393},[4383,17079,4397],{"class":4396},[4383,17081,4401],{"class":4400},[4383,17083,4405],{"class":4404},[4383,17085,13160],{"class":4412},[4383,17087,11294],{"class":4400},[4383,17089,14635],{"class":4433},[4383,17091,5132],{"class":4400},[4383,17093,11518],{"class":4433},[4383,17095,5138],{"class":4400},[4383,17097,14635],{"class":4433},[4383,17099,4440],{"class":4404},[4383,17101,4443],{"class":4389},[4383,17103,17104,17106],{"class":4385,"line":5016},[4383,17105,4895],{"class":4389},[4383,17107,17108],{"class":4393},"Stack\n",[4383,17110,17111,17114,17116,17118],{"class":4385,"line":5039},[4383,17112,17113],{"class":4396},"        screenOptions",[4383,17115,4401],{"class":4400},[4383,17117,4405],{"class":4404},[4383,17119,6455],{"class":4408},[4383,17121,17122,17125,17127,17129,17131,17133,17135],{"class":4385,"line":5053},[4383,17123,17124],{"class":4412},"          contentStyle:",[4383,17126,4745],{"class":4408},[4383,17128,4430],{"class":4412},[4383,17130,9334],{"class":4412},[4383,17132,3840],{"class":4408},[4383,17134,9849],{"class":4412},[4383,17136,5305],{"class":4408},[4383,17138,17139,17142],{"class":4385,"line":5072},[4383,17140,17141],{"class":4408},"        }",[4383,17143,5013],{"class":4404},[4383,17145,17146],{"class":4385,"line":5089},[4383,17147,17148],{"class":4389},"      \u002F>\n",[4383,17150,17151],{"class":4385,"line":5097},[4383,17152,17153],{"class":4389},"    \u003C\u002F>\n",[4383,17155,17156],{"class":4385,"line":5103},[4383,17157,5174],{"class":4400},[4383,17159,17160],{"class":4385,"line":5152},[4383,17161,5013],{"class":4400},[4278,17163,17164,4211,17167,17170,17171,4211,17174,17177,17178,17180],{},[3756,17165,17166],{},"Правило.",[3764,17168,17169],{},"useTheme()"," — лише в компонентах, які ",[3756,17172,17173],{},"рендеряться як нащадки",[3764,17175,17176],{},"\u003CThemeProvider>",". Якщо треба тема в корені — винесіть «внутрішній» компонент під Provider (як ",[3764,17179,17006],{}," вище).",[3820,17182,17184,17185,17187],{"id":17183},"що-саме-лежить-у-usetheme-контракт","Що саме лежить у ",[3764,17186,17169],{}," (контракт)",[4075,17189,17190,17203],{},[4078,17191,17192],{},[4081,17193,17194,17197,17200],{},[4084,17195,17196],{},"Поле",[4084,17198,17199],{},"Тип (ідея)",[4084,17201,17202],{},"Навіщо",[4094,17204,17205,17218,17231,17243,17263],{},[4081,17206,17207,17211,17215],{},[4099,17208,17209],{},[3764,17210,13160],{},[4099,17212,17213],{},[3764,17214,15784],{},[4099,17216,17217],{},"Фактичний scheme: StatusBar, підпис «зараз темна»",[4081,17219,17220,17224,17228],{},[4099,17221,17222],{},[3764,17223,13590],{},[4099,17225,17226],{},[3764,17227,15769],{},[4099,17229,17230],{},"Що обрано в UI (який чіп підсвітити)",[4081,17232,17233,17237,17240],{},[4099,17234,17235],{},[3764,17236,16561],{},[4099,17238,17239],{},"функція",[4099,17241,17242],{},"Змінити вибір (чіпи на домашньому екрані)",[4081,17244,17245,17249,17252],{},[4099,17246,17247],{},[3764,17248,10129],{},[4099,17250,17251],{},"словник ролей",[4099,17253,17254,3767,17256,3767,17258,3767,17260,17262],{},[3764,17255,9849],{},[3764,17257,3891],{},[3764,17259,9901],{},[3764,17261,9747],{},"…",[4081,17264,17265,17274,17277],{},[4099,17266,17267,4231,17269,4231,17272],{},[3764,17268,12911],{},[3764,17270,17271],{},"radius",[3764,17273,4640],{},[4099,17275,17276],{},"(у Nomad)",[4099,17278,17279],{},"Токени форми — спільні для light і dark",[3743,17281,17282,17283,3840],{},"У мінімальному варіанті достатньо перших чотирьох полів; spacing можна додати, коли вже є ",[3764,17284,17285],{},"tokens.ts",[3820,17287,17289],{"id":17288},"stylesheet-тема-разом-формула","StyleSheet + тема разом (формула)",[4374,17291,17293],{"className":4376,"code":17292,"language":4378,"meta":4379,"style":4379},"const { colors, spacing } = useTheme();\n\n\u002F\u002F геометрія — зі styles (модуль, один раз)\n\u002F\u002F колір — з теми (на кожен render, якщо scheme змінився)\n\u003CView\n  style={[\n    styles.card,\n    {\n      backgroundColor: colors.surface,\n      borderColor: colors.border,\n      padding: spacing?.md ?? 16,\n    },\n  ]}\n\u002F>\n",[3764,17294,17295,17313,17317,17322,17327,17333,17344,17354,17359,17372,17385,17405,17410,17417],{"__ignoreMap":4379},[4383,17296,17297,17299,17301,17303,17305,17307,17309,17311],{"class":4385,"line":4386},[4383,17298,5190],{"class":4404},[4383,17300,4745],{"class":4400},[4383,17302,10129],{"class":4828},[4383,17304,3767],{"class":4400},[4383,17306,12911],{"class":4828},[4383,17308,16824],{"class":4400},[4383,17310,3985],{"class":4812},[4383,17312,13148],{"class":4400},[4383,17314,17315],{"class":4385,"line":4763},[4383,17316,4797],{"emptyLinePlaceholder":4796},[4383,17318,17319],{"class":4385,"line":4793},[4383,17320,17321],{"class":5558},"\u002F\u002F геометрія — зі styles (модуль, один раз)\n",[4383,17323,17324],{"class":4385,"line":4800},[4383,17325,17326],{"class":5558},"\u002F\u002F колір — з теми (на кожен render, якщо scheme змінився)\n",[4383,17328,17329,17331],{"class":4385,"line":4819},[4383,17330,4390],{"class":4389},[4383,17332,6443],{"class":4393},[4383,17334,17335,17338,17340,17342],{"class":4385,"line":4851},[4383,17336,17337],{"class":4396},"  style",[4383,17339,4401],{"class":4400},[4383,17341,4405],{"class":4404},[4383,17343,9394],{"class":4408},[4383,17345,17346,17348,17350,17352],{"class":4385,"line":4856},[4383,17347,5547],{"class":4412},[4383,17349,3840],{"class":4408},[4383,17351,6227],{"class":4412},[4383,17353,5050],{"class":4408},[4383,17355,17356],{"class":4385,"line":4865},[4383,17357,17358],{"class":4408},"    {\n",[4383,17360,17361,17364,17366,17368,17370],{"class":4385,"line":4892},[4383,17362,17363],{"class":4412},"      backgroundColor:",[4383,17365,9334],{"class":4412},[4383,17367,3840],{"class":4408},[4383,17369,3891],{"class":4412},[4383,17371,5050],{"class":4408},[4383,17373,17374,17377,17379,17381,17383],{"class":4385,"line":4928},[4383,17375,17376],{"class":4412},"      borderColor:",[4383,17378,9334],{"class":4412},[4383,17380,3840],{"class":4408},[4383,17382,10000],{"class":4412},[4383,17384,5050],{"class":4408},[4383,17386,17387,17390,17393,17396,17399,17401,17403],{"class":4385,"line":4952},[4383,17388,17389],{"class":4412},"      padding:",[4383,17391,17392],{"class":4412}," spacing",[4383,17394,17395],{"class":4408},"?.",[4383,17397,17398],{"class":4412},"md",[4383,17400,13322],{"class":4400},[4383,17402,4425],{"class":4416},[4383,17404,5050],{"class":4408},[4383,17406,17407],{"class":4385,"line":4958},[4383,17408,17409],{"class":4408},"    },\n",[4383,17411,17412,17415],{"class":4385,"line":4968},[4383,17413,17414],{"class":4408},"  ]",[4383,17416,5013],{"class":4404},[4383,17418,17419],{"class":4385,"line":4976},[4383,17420,17421],{"class":4389},"\u002F>\n",[3743,17423,17424,17425,17427,17428,17430,17431,17433,17434,17436],{},"Так ви ",[3756,17426,4194],{}," пересоздаєте ",[3764,17429,3803],{}," на кожну зміну теми і ",[3756,17432,4194],{}," ховаєте hex у ",[3764,17435,4495],{}," на рівні файлу.",[3820,17438,17440],{"id":17439},"демо-мінімальний-themeprovider-з-нуля-в-одному-файлі","Демо: мінімальний ThemeProvider «з нуля» в одному файлі",[3743,17442,15711,17443,17446,17447,17449,17450,17449,17452,17454,17455,4619],{},[3756,17444,17445],{},"повний"," цикл у demо: ",[3764,17448,15478],{}," → ",[3764,17451,3981],{},[3764,17453,3985],{}," → екран з чіпами. Це та сама ідея, що в Nomad, лише без окремих файлів і без Router (у прев’ю немає ",[3764,17456,17457],{},"@\u002F…",[4727,17459,17462],{"device":4729,"filename":17460,"title":17461,"height":7637},"MiniThemeProvider.tsx","ThemeProvider · збираємо самі",[4374,17463,17465],{"className":4376,"code":17464,"language":4378,"meta":4379,"style":4379},"import {\n  createContext,\n  useCallback,\n  useContext,\n  useMemo,\n  useState,\n  type ReactNode,\n} from 'react';\nimport {\n  View,\n  Text,\n  Pressable,\n  StyleSheet,\n  useColorScheme,\n} from 'react-native';\n\n\u002F\u002F ——— 1. Палітри (у Nomad: colors.ts) ———\nconst lightColors = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  border: '#E2E8F0',\n  onPrimary: '#FFFFFF',\n};\n\nconst darkColors = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  border: '#3A3A3C',\n  onPrimary: '#FFFFFF',\n};\n\ntype Colors = typeof lightColors;\ntype Preference = 'system' | 'light' | 'dark';\ntype Scheme = 'light' | 'dark';\n\nfunction colorsForScheme(scheme: Scheme): Colors {\n  return scheme === 'dark' ? darkColors : lightColors;\n}\n\nfunction resolveScheme(\n  preference: Preference,\n  system: string | null | undefined,\n): Scheme {\n  if (preference === 'light' || preference === 'dark') return preference;\n  return system === 'dark' ? 'dark' : 'light';\n}\n\n\u002F\u002F ——— 2. Context + Provider + useTheme (у Nomad: ThemeProvider.tsx) ———\ntype ThemeValue = {\n  scheme: Scheme;\n  preference: Preference;\n  setPreference: (p: Preference) => void;\n  colors: Colors;\n};\n\nconst ThemeContext = createContext\u003CThemeValue | null>(null);\n\nfunction ThemeProvider({ children }: { children: ReactNode }) {\n  const system = useColorScheme();\n  const [preference, setPreferenceState] = useState\u003CPreference>('system');\n\n  const setPreference = useCallback((p: Preference) => {\n    setPreferenceState(p);\n  }, []);\n\n  const scheme = resolveScheme(preference, system);\n  const colors = useMemo(() => colorsForScheme(scheme), [scheme]);\n\n  const value = useMemo(\n    () => ({ scheme, preference, setPreference, colors }),\n    [scheme, preference, setPreference, colors],\n  );\n\n  return (\n    \u003CThemeContext.Provider value={value}>{children}\u003C\u002FThemeContext.Provider>\n  );\n}\n\nfunction useTheme(): ThemeValue {\n  const ctx = useContext(ThemeContext);\n  if (!ctx) {\n    throw new Error('useTheme() лише всередині \u003CThemeProvider>');\n  }\n  return ctx;\n}\n\n\u002F\u002F ——— 3. UI читає тему через хук (у Nomad: Screen, TripCard, …) ———\nfunction HomeScreen() {\n  const { colors, scheme, preference, setPreference } = useTheme();\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: colors.background }]}>\n      \u003CText style={[styles.title, { color: colors.text }]}>Мій ThemeProvider\u003C\u002FText>\n      \u003CText style={{ color: colors.textSecondary, marginBottom: 12 }}>\n        preference: {preference} · scheme: {scheme}\n      \u003C\u002FText>\n\n      \u003CView style={styles.row}>\n        {(['system', 'light', 'dark'] as Preference[]).map((p) => {\n          const active = preference === p;\n          return (\n            \u003CPressable\n              key={p}\n              onPress={() => setPreference(p)}\n              style={[\n                styles.chip,\n                {\n                  backgroundColor: active ? colors.primary : colors.surface,\n                  borderColor: colors.border,\n                },\n              ]}\n            >\n              \u003CText\n                style={{\n                  color: active ? colors.onPrimary : colors.text,\n                  fontWeight: '600',\n                  fontSize: 13,\n                }}\n              >\n                {p === 'system' ? 'Система' : p === 'light' ? 'Світла' : 'Темна'}\n              \u003C\u002FText>\n            \u003C\u002FPressable>\n          );\n        })}\n      \u003C\u002FView>\n\n      \u003CView\n        style={[\n          styles.card,\n          { backgroundColor: colors.surface, borderColor: colors.border },\n        ]}\n      >\n        \u003CText style={[styles.cardTitle, { color: colors.text }]}>\n          Картка через useTheme()\n        \u003C\u002FText>\n        \u003CText style={{ color: colors.textSecondary, marginTop: 6, lineHeight: 20 }}>\n          Цей екран не знає hex. Він просить colors у Context, який наповнив\n          ThemeProvider вище по дереву.\n        \u003C\u002FText>\n      \u003C\u002FView>\n    \u003C\u002FView>\n  );\n}\n\n\u002F\u002F ——— 4. Корінь: ОБОВʼЯЗКОВО обгорнути Provider ———\nexport default function App() {\n  return (\n    \u003CThemeProvider>\n      \u003CHomeScreen \u002F>\n    \u003C\u002FThemeProvider>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, padding: 20, justifyContent: 'center', gap: 8 },\n  title: { fontSize: 22, fontWeight: '800' },\n  row: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginBottom: 8 },\n  chip: {\n    paddingHorizontal: 12,\n    paddingVertical: 10,\n    borderRadius: 10,\n    borderWidth: 1,\n  },\n  card: { borderRadius: 16, borderWidth: 1, padding: 16, marginTop: 8 },\n  cardTitle: { fontSize: 17, fontWeight: '700' },\n});\n",[3764,17466,17467,17473,17480,17487,17494,17501,17508,17518,17528,17534,17541,17548,17555,17562,17569,17579,17583,17588,17596,17604,17612,17620,17628,17636,17644,17652,17656,17660,17668,17676,17684,17692,17700,17708,17716,17724,17728,17732,17747,17768,17785,17789,17811,17831,17835,17839,17847,17858,17876,17884,17912,17932,17936,17940,17945,17954,17964,17974,17994,18004,18008,18012,18037,18041,18063,18075,18101,18105,18129,18139,18143,18147,18167,18193,18197,18209,18233,18253,18257,18261,18267,18297,18301,18305,18309,18321,18337,18347,18362,18366,18374,18378,18382,18387,18396,18422,18426,18432,18468,18513,18547,18567,18575,18579,18601,18638,18655,18661,18667,18679,18701,18711,18721,18725,18749,18761,18765,18771,18775,18781,18791,18815,18823,18831,18837,18841,18875,18883,18891,18895,18901,18909,18913,18919,18929,18939,18963,18969,18973,19009,19014,19022,19062,19067,19072,19080,19088,19096,19100,19104,19108,19113,19125,19131,19139,19148,19156,19160,19164,19168,19184,19214,19232,19264,19270,19278,19286,19294,19302,19306,19338,19356],{"__ignoreMap":4379},[4383,17468,17469,17471],{"class":4385,"line":4386},[4383,17470,4742],{"class":4741},[4383,17472,5213],{"class":4400},[4383,17474,17475,17478],{"class":4385,"line":4763},[4383,17476,17477],{"class":4412},"  createContext",[4383,17479,5050],{"class":4400},[4383,17481,17482,17485],{"class":4385,"line":4793},[4383,17483,17484],{"class":4412},"  useCallback",[4383,17486,5050],{"class":4400},[4383,17488,17489,17492],{"class":4385,"line":4800},[4383,17490,17491],{"class":4412},"  useContext",[4383,17493,5050],{"class":4400},[4383,17495,17496,17499],{"class":4385,"line":4819},[4383,17497,17498],{"class":4412},"  useMemo",[4383,17500,5050],{"class":4400},[4383,17502,17503,17506],{"class":4385,"line":4851},[4383,17504,17505],{"class":4412},"  useState",[4383,17507,5050],{"class":4400},[4383,17509,17510,17513,17516],{"class":4385,"line":4856},[4383,17511,17512],{"class":4741},"  type",[4383,17514,17515],{"class":4412}," ReactNode",[4383,17517,5050],{"class":4400},[4383,17519,17520,17522,17524,17526],{"class":4385,"line":4865},[4383,17521,13754],{"class":4400},[4383,17523,4754],{"class":4741},[4383,17525,4757],{"class":4433},[4383,17527,4760],{"class":4400},[4383,17529,17530,17532],{"class":4385,"line":4892},[4383,17531,4742],{"class":4741},[4383,17533,5213],{"class":4400},[4383,17535,17536,17539],{"class":4385,"line":4928},[4383,17537,17538],{"class":4412},"  View",[4383,17540,5050],{"class":4400},[4383,17542,17543,17546],{"class":4385,"line":4952},[4383,17544,17545],{"class":4412},"  Text",[4383,17547,5050],{"class":4400},[4383,17549,17550,17553],{"class":4385,"line":4958},[4383,17551,17552],{"class":4412},"  Pressable",[4383,17554,5050],{"class":4400},[4383,17556,17557,17560],{"class":4385,"line":4968},[4383,17558,17559],{"class":4412},"  StyleSheet",[4383,17561,5050],{"class":4400},[4383,17563,17564,17567],{"class":4385,"line":4976},[4383,17565,17566],{"class":4412},"  useColorScheme",[4383,17568,5050],{"class":4400},[4383,17570,17571,17573,17575,17577],{"class":4385,"line":5016},[4383,17572,13754],{"class":4400},[4383,17574,4754],{"class":4741},[4383,17576,4788],{"class":4433},[4383,17578,4760],{"class":4400},[4383,17580,17581],{"class":4385,"line":5039},[4383,17582,4797],{"emptyLinePlaceholder":4796},[4383,17584,17585],{"class":4385,"line":5053},[4383,17586,17587],{"class":5558},"\u002F\u002F ——— 1. Палітри (у Nomad: colors.ts) ———\n",[4383,17589,17590,17592,17594],{"class":4385,"line":5072},[4383,17591,5190],{"class":4404},[4383,17593,13675],{"class":4828},[4383,17595,10822],{"class":4400},[4383,17597,17598,17600,17602],{"class":4385,"line":5089},[4383,17599,10827],{"class":4412},[4383,17601,4434],{"class":4433},[4383,17603,5050],{"class":4400},[4383,17605,17606,17608,17610],{"class":4385,"line":5097},[4383,17607,10836],{"class":4412},[4383,17609,10839],{"class":4433},[4383,17611,5050],{"class":4400},[4383,17613,17614,17616,17618],{"class":4385,"line":5103},[4383,17615,10846],{"class":4412},[4383,17617,10849],{"class":4433},[4383,17619,5050],{"class":4400},[4383,17621,17622,17624,17626],{"class":4385,"line":5152},[4383,17623,10856],{"class":4412},[4383,17625,10859],{"class":4433},[4383,17627,5050],{"class":4400},[4383,17629,17630,17632,17634],{"class":4385,"line":5161},[4383,17631,10866],{"class":4412},[4383,17633,5402],{"class":4433},[4383,17635,5050],{"class":4400},[4383,17637,17638,17640,17642],{"class":4385,"line":5171},[4383,17639,10885],{"class":4412},[4383,17641,5962],{"class":4433},[4383,17643,5050],{"class":4400},[4383,17645,17646,17648,17650],{"class":4385,"line":5177},[4383,17647,10904],{"class":4412},[4383,17649,10839],{"class":4433},[4383,17651,5050],{"class":4400},[4383,17653,17654],{"class":4385,"line":5182},[4383,17655,10913],{"class":4400},[4383,17657,17658],{"class":4385,"line":5187},[4383,17659,4797],{"emptyLinePlaceholder":4796},[4383,17661,17662,17664,17666],{"class":4385,"line":5207},[4383,17663,5190],{"class":4404},[4383,17665,13773],{"class":4828},[4383,17667,10822],{"class":4400},[4383,17669,17670,17672,17674],{"class":4385,"line":5216},[4383,17671,10827],{"class":4412},[4383,17673,10933],{"class":4433},[4383,17675,5050],{"class":4400},[4383,17677,17678,17680,17682],{"class":4385,"line":5226},[4383,17679,10836],{"class":4412},[4383,17681,10942],{"class":4433},[4383,17683,5050],{"class":4400},[4383,17685,17686,17688,17690],{"class":4385,"line":5236},[4383,17687,10846],{"class":4412},[4383,17689,10951],{"class":4433},[4383,17691,5050],{"class":4400},[4383,17693,17694,17696,17698],{"class":4385,"line":5247},[4383,17695,10856],{"class":4412},[4383,17697,10960],{"class":4433},[4383,17699,5050],{"class":4400},[4383,17701,17702,17704,17706],{"class":4385,"line":5258},[4383,17703,10866],{"class":4412},[4383,17705,10969],{"class":4433},[4383,17707,5050],{"class":4400},[4383,17709,17710,17712,17714],{"class":4385,"line":5269},[4383,17711,10885],{"class":4412},[4383,17713,10986],{"class":4433},[4383,17715,5050],{"class":4400},[4383,17717,17718,17720,17722],{"class":4385,"line":5275},[4383,17719,10904],{"class":4412},[4383,17721,10839],{"class":4433},[4383,17723,5050],{"class":4400},[4383,17725,17726],{"class":4385,"line":5308},[4383,17727,10913],{"class":4400},[4383,17729,17730],{"class":4385,"line":5338},[4383,17731,4797],{"emptyLinePlaceholder":4796},[4383,17733,17734,17736,17739,17741,17743,17745],{"class":4385,"line":5346},[4383,17735,15815],{"class":4404},[4383,17737,17738],{"class":4393}," Colors",[4383,17740,5195],{"class":4400},[4383,17742,16199],{"class":4404},[4383,17744,13675],{"class":4412},[4383,17746,4760],{"class":4400},[4383,17748,17749,17751,17754,17756,17758,17760,17762,17764,17766],{"class":4385,"line":5356},[4383,17750,15815],{"class":4404},[4383,17752,17753],{"class":4393}," Preference",[4383,17755,5195],{"class":4400},[4383,17757,15823],{"class":4433},[4383,17759,11051],{"class":4400},[4383,17761,11048],{"class":4433},[4383,17763,11051],{"class":4400},[4383,17765,11054],{"class":4433},[4383,17767,4760],{"class":4400},[4383,17769,17770,17772,17775,17777,17779,17781,17783],{"class":4385,"line":5367},[4383,17771,15815],{"class":4404},[4383,17773,17774],{"class":4393}," Scheme",[4383,17776,5195],{"class":4400},[4383,17778,11048],{"class":4433},[4383,17780,11051],{"class":4400},[4383,17782,11054],{"class":4433},[4383,17784,4760],{"class":4400},[4383,17786,17787],{"class":4385,"line":5377},[4383,17788,4797],{"emptyLinePlaceholder":4796},[4383,17790,17791,17793,17795,17797,17799,17801,17804,17806,17809],{"class":4385,"line":5387},[4383,17792,9526],{"class":4404},[4383,17794,13872],{"class":4812},[4383,17796,4842],{"class":4400},[4383,17798,13160],{"class":4412},[4383,17800,13879],{"class":4400},[4383,17802,17803],{"class":4393},"Scheme",[4383,17805,15901],{"class":4400},[4383,17807,17808],{"class":4393},"Colors",[4383,17810,5213],{"class":4400},[4383,17812,17813,17815,17817,17819,17821,17823,17825,17827,17829],{"class":4385,"line":5392},[4383,17814,4859],{"class":4741},[4383,17816,13141],{"class":4412},[4383,17818,11099],{"class":4400},[4383,17820,11054],{"class":4433},[4383,17822,11104],{"class":4400},[4383,17824,13903],{"class":4412},[4383,17826,11109],{"class":4400},[4383,17828,13908],{"class":4412},[4383,17830,4760],{"class":4400},[4383,17832,17833],{"class":4385,"line":5407},[4383,17834,5013],{"class":4400},[4383,17836,17837],{"class":4385,"line":5423},[4383,17838,4797],{"emptyLinePlaceholder":4796},[4383,17840,17841,17843,17845],{"class":4385,"line":5450},[4383,17842,9526],{"class":4404},[4383,17844,15861],{"class":4812},[4383,17846,15864],{"class":4400},[4383,17848,17849,17851,17853,17856],{"class":4385,"line":6760},[4383,17850,15869],{"class":4412},[4383,17852,13879],{"class":4400},[4383,17854,17855],{"class":4393},"Preference",[4383,17857,5050],{"class":4400},[4383,17859,17860,17862,17864,17866,17868,17870,17872,17874],{"class":4385,"line":6765},[4383,17861,15881],{"class":4412},[4383,17863,13879],{"class":4400},[4383,17865,15886],{"class":4393},[4383,17867,11051],{"class":4400},[4383,17869,5750],{"class":4393},[4383,17871,11051],{"class":4400},[4383,17873,9470],{"class":4393},[4383,17875,5050],{"class":4400},[4383,17877,17878,17880,17882],{"class":4385,"line":6793},[4383,17879,15901],{"class":4400},[4383,17881,17803],{"class":4393},[4383,17883,5213],{"class":4400},[4383,17885,17886,17888,17890,17892,17894,17896,17898,17900,17902,17904,17906,17908,17910],{"class":4385,"line":6801},[4383,17887,15911],{"class":4741},[4383,17889,3858],{"class":4400},[4383,17891,13590],{"class":4412},[4383,17893,11099],{"class":4400},[4383,17895,11048],{"class":4433},[4383,17897,15922],{"class":4400},[4383,17899,13590],{"class":4412},[4383,17901,11099],{"class":4400},[4383,17903,11054],{"class":4433},[4383,17905,5001],{"class":4400},[4383,17907,16961],{"class":4741},[4383,17909,15938],{"class":4412},[4383,17911,4760],{"class":4400},[4383,17913,17914,17916,17918,17920,17922,17924,17926,17928,17930],{"class":4385,"line":6811},[4383,17915,4859],{"class":4741},[4383,17917,15961],{"class":4412},[4383,17919,11099],{"class":4400},[4383,17921,11054],{"class":4433},[4383,17923,11104],{"class":4400},[4383,17925,11054],{"class":4433},[4383,17927,11109],{"class":4400},[4383,17929,11048],{"class":4433},[4383,17931,4760],{"class":4400},[4383,17933,17934],{"class":4385,"line":6820},[4383,17935,5013],{"class":4400},[4383,17937,17938],{"class":4385,"line":6829},[4383,17939,4797],{"emptyLinePlaceholder":4796},[4383,17941,17942],{"class":4385,"line":6834},[4383,17943,17944],{"class":5558},"\u002F\u002F ——— 2. Context + Provider + useTheme (у Nomad: ThemeProvider.tsx) ———\n",[4383,17946,17947,17949,17952],{"class":4385,"line":6860},[4383,17948,15815],{"class":4404},[4383,17950,17951],{"class":4393}," ThemeValue",[4383,17953,10822],{"class":4400},[4383,17955,17956,17958,17960,17962],{"class":4385,"line":6893},[4383,17957,16130],{"class":4412},[4383,17959,13879],{"class":4400},[4383,17961,17803],{"class":4393},[4383,17963,4760],{"class":4400},[4383,17965,17966,17968,17970,17972],{"class":4385,"line":8399},[4383,17967,15869],{"class":4412},[4383,17969,13879],{"class":4400},[4383,17971,17855],{"class":4393},[4383,17973,4760],{"class":4400},[4383,17975,17976,17978,17980,17982,17984,17986,17988,17990,17992],{"class":4385,"line":8418},[4383,17977,16163],{"class":4812},[4383,17979,16166],{"class":4400},[4383,17981,3743],{"class":4412},[4383,17983,13879],{"class":4400},[4383,17985,17855],{"class":4393},[4383,17987,5001],{"class":4400},[4383,17989,4989],{"class":4404},[4383,17991,16187],{"class":4393},[4383,17993,4760],{"class":4400},[4383,17995,17996,17998,18000,18002],{"class":4385,"line":8429},[4383,17997,16194],{"class":4412},[4383,17999,13879],{"class":4400},[4383,18001,17808],{"class":4393},[4383,18003,4760],{"class":4400},[4383,18005,18006],{"class":4385,"line":8445},[4383,18007,10913],{"class":4400},[4383,18009,18010],{"class":4385,"line":8460},[4383,18011,4797],{"emptyLinePlaceholder":4796},[4383,18013,18014,18016,18018,18020,18022,18024,18027,18029,18031,18033,18035],{"class":4385,"line":8467},[4383,18015,5190],{"class":4404},[4383,18017,16226],{"class":4828},[4383,18019,5195],{"class":4400},[4383,18021,15478],{"class":4812},[4383,18023,4390],{"class":4400},[4383,18025,18026],{"class":4393},"ThemeValue",[4383,18028,11051],{"class":4400},[4383,18030,5750],{"class":4393},[4383,18032,11057],{"class":4400},[4383,18034,5750],{"class":4404},[4383,18036,4848],{"class":4400},[4383,18038,18039],{"class":4385,"line":8472},[4383,18040,4797],{"emptyLinePlaceholder":4796},[4383,18042,18043,18045,18047,18049,18051,18054,18056,18058,18060],{"class":4385,"line":8495},[4383,18044,9526],{"class":4404},[4383,18046,16292],{"class":4812},[4383,18048,5026],{"class":4400},[4383,18050,15574],{"class":4412},[4383,18052,18053],{"class":4400}," }: { ",[4383,18055,15574],{"class":4412},[4383,18057,13879],{"class":4400},[4383,18059,16083],{"class":4393},[4383,18061,18062],{"class":4400}," }) {\n",[4383,18064,18065,18067,18069,18071,18073],{"class":4385,"line":8515},[4383,18066,4822],{"class":4404},[4383,18068,15961],{"class":4828},[4383,18070,5195],{"class":4400},[4383,18072,3774],{"class":4812},[4383,18074,13148],{"class":4400},[4383,18076,18077,18079,18081,18083,18085,18087,18089,18091,18093,18095,18097,18099],{"class":4385,"line":8524},[4383,18078,4822],{"class":4404},[4383,18080,4825],{"class":4400},[4383,18082,13590],{"class":4828},[4383,18084,3767],{"class":4400},[4383,18086,16369],{"class":4828},[4383,18088,4837],{"class":4400},[4383,18090,4748],{"class":4812},[4383,18092,4390],{"class":4400},[4383,18094,17855],{"class":4393},[4383,18096,11057],{"class":4400},[4383,18098,15823],{"class":4433},[4383,18100,4848],{"class":4400},[4383,18102,18103],{"class":4385,"line":8533},[4383,18104,4797],{"emptyLinePlaceholder":4796},[4383,18106,18107,18109,18111,18113,18115,18117,18119,18121,18123,18125,18127],{"class":4385,"line":8538},[4383,18108,4822],{"class":4404},[4383,18110,16482],{"class":4828},[4383,18112,5195],{"class":4400},[4383,18114,16078],{"class":4812},[4383,18116,4995],{"class":4400},[4383,18118,3743],{"class":4412},[4383,18120,13879],{"class":4400},[4383,18122,17855],{"class":4393},[4383,18124,5001],{"class":4400},[4383,18126,4989],{"class":4404},[4383,18128,5213],{"class":4400},[4383,18130,18131,18133,18135,18137],{"class":4385,"line":8561},[4383,18132,16507],{"class":4812},[4383,18134,4842],{"class":4400},[4383,18136,3743],{"class":4412},[4383,18138,4848],{"class":4400},[4383,18140,18141],{"class":4385,"line":8567},[4383,18142,16518],{"class":4400},[4383,18144,18145],{"class":4385,"line":8576},[4383,18146,4797],{"emptyLinePlaceholder":4796},[4383,18148,18149,18151,18153,18155,18157,18159,18161,18163,18165],{"class":4385,"line":8585},[4383,18150,4822],{"class":4404},[4383,18152,13141],{"class":4828},[4383,18154,5195],{"class":4400},[4383,18156,16422],{"class":4812},[4383,18158,4842],{"class":4400},[4383,18160,13590],{"class":4412},[4383,18162,3767],{"class":4400},[4383,18164,13555],{"class":4412},[4383,18166,4848],{"class":4400},[4383,18168,18169,18171,18173,18175,18177,18179,18181,18183,18185,18187,18189,18191],{"class":4385,"line":8590},[4383,18170,4822],{"class":4404},[4383,18172,9334],{"class":4828},[4383,18174,5195],{"class":4400},[4383,18176,16069],{"class":4812},[4383,18178,16455],{"class":4400},[4383,18180,4989],{"class":4404},[4383,18182,13872],{"class":4812},[4383,18184,4842],{"class":4400},[4383,18186,13160],{"class":4412},[4383,18188,16466],{"class":4400},[4383,18190,13160],{"class":4412},[4383,18192,16471],{"class":4400},[4383,18194,18195],{"class":4385,"line":8595},[4383,18196,4797],{"emptyLinePlaceholder":4796},[4383,18198,18199,18201,18203,18205,18207],{"class":4385,"line":8600},[4383,18200,4822],{"class":4404},[4383,18202,16534],{"class":4828},[4383,18204,5195],{"class":4400},[4383,18206,16069],{"class":4812},[4383,18208,15864],{"class":4400},[4383,18210,18211,18213,18215,18217,18219,18221,18223,18225,18227,18229,18231],{"class":4385,"line":8617},[4383,18212,16545],{"class":4400},[4383,18214,4989],{"class":4404},[4383,18216,16550],{"class":4400},[4383,18218,13160],{"class":4412},[4383,18220,3767],{"class":4400},[4383,18222,13590],{"class":4412},[4383,18224,3767],{"class":4400},[4383,18226,16561],{"class":4412},[4383,18228,3767],{"class":4400},[4383,18230,10129],{"class":4412},[4383,18232,16568],{"class":4400},[4383,18234,18235,18237,18239,18241,18243,18245,18247,18249,18251],{"class":4385,"line":8624},[4383,18236,16573],{"class":4400},[4383,18238,13160],{"class":4412},[4383,18240,3767],{"class":4400},[4383,18242,13590],{"class":4412},[4383,18244,3767],{"class":4400},[4383,18246,16561],{"class":4412},[4383,18248,3767],{"class":4400},[4383,18250,10129],{"class":4412},[4383,18252,16590],{"class":4400},[4383,18254,18255],{"class":4385,"line":8633},[4383,18256,5174],{"class":4400},[4383,18258,18259],{"class":4385,"line":8642},[4383,18260,4797],{"emptyLinePlaceholder":4796},[4383,18262,18263,18265],{"class":4385,"line":8651},[4383,18264,4859],{"class":4741},[4383,18266,4862],{"class":4400},[4383,18268,18269,18271,18273,18275,18277,18279,18281,18283,18285,18287,18289,18291,18293,18295],{"class":4385,"line":8660},[4383,18270,4868],{"class":4389},[4383,18272,16256],{"class":4393},[4383,18274,16534],{"class":4396},[4383,18276,4401],{"class":4400},[4383,18278,4405],{"class":4404},[4383,18280,13292],{"class":4412},[4383,18282,4440],{"class":4404},[4383,18284,4915],{"class":4389},[4383,18286,4405],{"class":4404},[4383,18288,15574],{"class":4412},[4383,18290,4440],{"class":4404},[4383,18292,4921],{"class":4389},[4383,18294,16256],{"class":4393},[4383,18296,4889],{"class":4389},[4383,18298,18299],{"class":4385,"line":8669},[4383,18300,5174],{"class":4400},[4383,18302,18303],{"class":4385,"line":8674},[4383,18304,5013],{"class":4400},[4383,18306,18307],{"class":4385,"line":8687},[4383,18308,4797],{"emptyLinePlaceholder":4796},[4383,18310,18311,18313,18315,18317,18319],{"class":4385,"line":8707},[4383,18312,9526],{"class":4404},[4383,18314,16714],{"class":4812},[4383,18316,16717],{"class":4400},[4383,18318,18026],{"class":4393},[4383,18320,5213],{"class":4400},[4383,18322,18323,18325,18327,18329,18331,18333,18335],{"class":4385,"line":8737},[4383,18324,4822],{"class":4404},[4383,18326,16728],{"class":4828},[4383,18328,5195],{"class":4400},[4383,18330,15529],{"class":4812},[4383,18332,4842],{"class":4400},[4383,18334,16250],{"class":4412},[4383,18336,4848],{"class":4400},[4383,18338,18339,18341,18343,18345],{"class":4385,"line":8744},[4383,18340,15911],{"class":4741},[4383,18342,16745],{"class":4400},[4383,18344,16748],{"class":4412},[4383,18346,13888],{"class":4400},[4383,18348,18349,18351,18353,18355,18357,18360],{"class":4385,"line":8753},[4383,18350,16755],{"class":4741},[4383,18352,16758],{"class":4404},[4383,18354,16761],{"class":4812},[4383,18356,4842],{"class":4400},[4383,18358,18359],{"class":4433},"'useTheme() лише всередині \u003CThemeProvider>'",[4383,18361,4848],{"class":4400},[4383,18363,18364],{"class":4385,"line":8762},[4383,18365,15949],{"class":4400},[4383,18367,18368,18370,18372],{"class":4385,"line":8771},[4383,18369,4859],{"class":4741},[4383,18371,16728],{"class":4412},[4383,18373,4760],{"class":4400},[4383,18375,18376],{"class":4385,"line":8780},[4383,18377,5013],{"class":4400},[4383,18379,18380],{"class":4385,"line":8789},[4383,18381,4797],{"emptyLinePlaceholder":4796},[4383,18383,18384],{"class":4385,"line":8800},[4383,18385,18386],{"class":5558},"\u002F\u002F ——— 3. UI читає тему через хук (у Nomad: Screen, TripCard, …) ———\n",[4383,18388,18389,18391,18394],{"class":4385,"line":8809},[4383,18390,9526],{"class":4404},[4383,18392,18393],{"class":4812}," HomeScreen",[4383,18395,4816],{"class":4400},[4383,18397,18398,18400,18402,18404,18406,18408,18410,18412,18414,18416,18418,18420],{"class":4385,"line":8814},[4383,18399,4822],{"class":4404},[4383,18401,4745],{"class":4400},[4383,18403,10129],{"class":4828},[4383,18405,3767],{"class":4400},[4383,18407,13160],{"class":4828},[4383,18409,3767],{"class":4400},[4383,18411,13590],{"class":4828},[4383,18413,3767],{"class":4400},[4383,18415,16561],{"class":4828},[4383,18417,16824],{"class":4400},[4383,18419,3985],{"class":4812},[4383,18421,13148],{"class":4400},[4383,18423,18424],{"class":4385,"line":8841},[4383,18425,4797],{"emptyLinePlaceholder":4796},[4383,18427,18428,18430],{"class":4385,"line":8873},[4383,18429,4859],{"class":4741},[4383,18431,4862],{"class":4400},[4383,18433,18434,18436,18438,18440,18442,18444,18446,18448,18450,18452,18454,18456,18458,18460,18462,18464,18466],{"class":4385,"line":8905},[4383,18435,4868],{"class":4389},[4383,18437,4198],{"class":4393},[4383,18439,4397],{"class":4396},[4383,18441,4401],{"class":4400},[4383,18443,4405],{"class":4404},[4383,18445,6278],{"class":4408},[4383,18447,4879],{"class":4412},[4383,18449,3840],{"class":4408},[4383,18451,4884],{"class":4412},[4383,18453,9329],{"class":4408},[4383,18455,4430],{"class":4412},[4383,18457,9334],{"class":4412},[4383,18459,3840],{"class":4408},[4383,18461,9849],{"class":4412},[4383,18463,9341],{"class":4408},[4383,18465,4440],{"class":4404},[4383,18467,4889],{"class":4389},[4383,18469,18470,18472,18474,18476,18478,18480,18482,18484,18486,18488,18490,18492,18494,18496,18498,18500,18502,18504,18507,18509,18511],{"class":4385,"line":8912},[4383,18471,4895],{"class":4389},[4383,18473,4241],{"class":4393},[4383,18475,4397],{"class":4396},[4383,18477,4401],{"class":4400},[4383,18479,4405],{"class":4404},[4383,18481,6278],{"class":4408},[4383,18483,4879],{"class":4412},[4383,18485,3840],{"class":4408},[4383,18487,4910],{"class":4412},[4383,18489,9329],{"class":4408},[4383,18491,5299],{"class":4412},[4383,18493,9334],{"class":4412},[4383,18495,3840],{"class":4408},[4383,18497,9901],{"class":4412},[4383,18499,9341],{"class":4408},[4383,18501,4440],{"class":4404},[4383,18503,4915],{"class":4389},[4383,18505,18506],{"class":4400},"Мій ThemeProvider",[4383,18508,4921],{"class":4389},[4383,18510,4241],{"class":4393},[4383,18512,4889],{"class":4389},[4383,18514,18515,18517,18519,18521,18523,18525,18527,18529,18531,18533,18535,18537,18539,18541,18543,18545],{"class":4385,"line":8925},[4383,18516,4895],{"class":4389},[4383,18518,4241],{"class":4393},[4383,18520,4397],{"class":4396},[4383,18522,4401],{"class":4400},[4383,18524,4405],{"class":4404},[4383,18526,4409],{"class":4408},[4383,18528,5299],{"class":4412},[4383,18530,9334],{"class":4412},[4383,18532,3840],{"class":4408},[4383,18534,9924],{"class":4412},[4383,18536,3767],{"class":4408},[4383,18538,6005],{"class":4412},[4383,18540,5264],{"class":4416},[4383,18542,4437],{"class":4408},[4383,18544,4440],{"class":4404},[4383,18546,4889],{"class":4389},[4383,18548,18549,18552,18554,18556,18558,18561,18563,18565],{"class":4385,"line":8935},[4383,18550,18551],{"class":4400},"        preference: ",[4383,18553,4405],{"class":4404},[4383,18555,13590],{"class":4412},[4383,18557,4440],{"class":4404},[4383,18559,18560],{"class":4400}," · scheme: ",[4383,18562,4405],{"class":4404},[4383,18564,13160],{"class":4412},[4383,18566,5013],{"class":4404},[4383,18568,18569,18571,18573],{"class":4385,"line":8945},[4383,18570,4961],{"class":4389},[4383,18572,4241],{"class":4393},[4383,18574,4889],{"class":4389},[4383,18576,18577],{"class":4385,"line":8950},[4383,18578,4797],{"emptyLinePlaceholder":4796},[4383,18580,18581,18583,18585,18587,18589,18591,18593,18595,18597,18599],{"class":4385,"line":8969},[4383,18582,4895],{"class":4389},[4383,18584,4198],{"class":4393},[4383,18586,4397],{"class":4396},[4383,18588,4401],{"class":4400},[4383,18590,4405],{"class":4404},[4383,18592,4879],{"class":4412},[4383,18594,3840],{"class":4408},[4383,18596,7068],{"class":4412},[4383,18598,4440],{"class":4404},[4383,18600,4889],{"class":4389},[4383,18602,18603,18605,18607,18609,18611,18613,18615,18617,18619,18621,18623,18626,18628,18630,18632,18634,18636],{"class":4385,"line":8977},[4383,18604,7939],{"class":4404},[4383,18606,11246],{"class":4408},[4383,18608,15823],{"class":4433},[4383,18610,3767],{"class":4408},[4383,18612,11048],{"class":4433},[4383,18614,3767],{"class":4408},[4383,18616,11054],{"class":4433},[4383,18618,11255],{"class":4408},[4383,18620,11258],{"class":4741},[4383,18622,17753],{"class":4393},[4383,18624,18625],{"class":4408},"[]).",[4383,18627,11266],{"class":4812},[4383,18629,4995],{"class":4408},[4383,18631,3743],{"class":4412},[4383,18633,5001],{"class":4408},[4383,18635,4989],{"class":4404},[4383,18637,5213],{"class":4408},[4383,18639,18640,18642,18644,18646,18648,18650,18653],{"class":4385,"line":8987},[4383,18641,11282],{"class":4404},[4383,18643,11285],{"class":4828},[4383,18645,11288],{"class":4400},[4383,18647,15938],{"class":4412},[4383,18649,11294],{"class":4400},[4383,18651,18652],{"class":4412}," p",[4383,18654,4760],{"class":4408},[4383,18656,18657,18659],{"class":4385,"line":8996},[4383,18658,11304],{"class":4741},[4383,18660,4862],{"class":4408},[4383,18662,18663,18665],{"class":4385,"line":9005},[4383,18664,8303],{"class":4389},[4383,18666,4973],{"class":4393},[4383,18668,18669,18671,18673,18675,18677],{"class":4385,"line":9010},[4383,18670,11317],{"class":4396},[4383,18672,4401],{"class":4400},[4383,18674,4405],{"class":4404},[4383,18676,3743],{"class":4412},[4383,18678,5013],{"class":4404},[4383,18680,18681,18683,18685,18687,18689,18691,18693,18695,18697,18699],{"class":4385,"line":9036},[4383,18682,11330],{"class":4396},[4383,18684,4401],{"class":4400},[4383,18686,4405],{"class":4404},[4383,18688,4986],{"class":4408},[4383,18690,4989],{"class":4404},[4383,18692,16482],{"class":4812},[4383,18694,4842],{"class":4408},[4383,18696,3743],{"class":4412},[4383,18698,4141],{"class":4408},[4383,18700,5013],{"class":4404},[4383,18702,18703,18705,18707,18709],{"class":4385,"line":9043},[4383,18704,11354],{"class":4396},[4383,18706,4401],{"class":4400},[4383,18708,4405],{"class":4404},[4383,18710,9394],{"class":4408},[4383,18712,18713,18715,18717,18719],{"class":4385,"line":9052},[4383,18714,11365],{"class":4412},[4383,18716,3840],{"class":4408},[4383,18718,11370],{"class":4412},[4383,18720,5050],{"class":4408},[4383,18722,18723],{"class":4385,"line":9061},[4383,18724,11377],{"class":4408},[4383,18726,18727,18729,18731,18733,18735,18737,18739,18741,18743,18745,18747],{"class":4385,"line":9070},[4383,18728,11382],{"class":4412},[4383,18730,11285],{"class":4412},[4383,18732,5132],{"class":4400},[4383,18734,9334],{"class":4412},[4383,18736,3840],{"class":4408},[4383,18738,9747],{"class":4412},[4383,18740,5138],{"class":4400},[4383,18742,9334],{"class":4412},[4383,18744,3840],{"class":4408},[4383,18746,3891],{"class":4412},[4383,18748,5050],{"class":4408},[4383,18750,18751,18753,18755,18757,18759],{"class":4385,"line":9079},[4383,18752,11407],{"class":4412},[4383,18754,9334],{"class":4412},[4383,18756,3840],{"class":4408},[4383,18758,10000],{"class":4412},[4383,18760,5050],{"class":4408},[4383,18762,18763],{"class":4385,"line":9084},[4383,18764,11420],{"class":4408},[4383,18766,18767,18769],{"class":4385,"line":9097},[4383,18768,11425],{"class":4408},[4383,18770,5013],{"class":4404},[4383,18772,18773],{"class":4385,"line":9110},[4383,18774,11432],{"class":4389},[4383,18776,18777,18779],{"class":4385,"line":9135},[4383,18778,11437],{"class":4389},[4383,18780,11440],{"class":4393},[4383,18782,18783,18785,18787,18789],{"class":4385,"line":9161},[4383,18784,11445],{"class":4396},[4383,18786,4401],{"class":4400},[4383,18788,4405],{"class":4404},[4383,18790,6455],{"class":4408},[4383,18792,18793,18795,18797,18799,18801,18803,18805,18807,18809,18811,18813],{"class":4385,"line":12176},[4383,18794,11456],{"class":4412},[4383,18796,11285],{"class":4412},[4383,18798,5132],{"class":4400},[4383,18800,9334],{"class":4412},[4383,18802,3840],{"class":4408},[4383,18804,9978],{"class":4412},[4383,18806,5138],{"class":4400},[4383,18808,9334],{"class":4412},[4383,18810,3840],{"class":4408},[4383,18812,9901],{"class":4412},[4383,18814,5050],{"class":4408},[4383,18816,18817,18819,18821],{"class":4385,"line":12187},[4383,18818,11481],{"class":4412},[4383,18820,5994],{"class":4433},[4383,18822,5050],{"class":4408},[4383,18824,18825,18827,18829],{"class":4385,"line":12223},[4383,18826,11490],{"class":4412},[4383,18828,5318],{"class":4416},[4383,18830,5050],{"class":4408},[4383,18832,18833,18835],{"class":4385,"line":12258},[4383,18834,11499],{"class":4408},[4383,18836,5013],{"class":4404},[4383,18838,18839],{"class":4385,"line":12264},[4383,18840,11506],{"class":4389},[4383,18842,18843,18845,18847,18849,18852,18854,18857,18859,18861,18863,18865,18867,18869,18871,18873],{"class":4385,"line":12273},[4383,18844,11511],{"class":4404},[4383,18846,3743],{"class":4412},[4383,18848,11294],{"class":4400},[4383,18850,18851],{"class":4433}," 'system'",[4383,18853,5132],{"class":4400},[4383,18855,18856],{"class":4433}," 'Система'",[4383,18858,5138],{"class":4400},[4383,18860,18652],{"class":4412},[4383,18862,11294],{"class":4400},[4383,18864,11518],{"class":4433},[4383,18866,5132],{"class":4400},[4383,18868,11523],{"class":4433},[4383,18870,5138],{"class":4400},[4383,18872,11528],{"class":4433},[4383,18874,5013],{"class":4404},[4383,18876,18877,18879,18881],{"class":4385,"line":12282},[4383,18878,11535],{"class":4389},[4383,18880,4241],{"class":4393},[4383,18882,4889],{"class":4389},[4383,18884,18885,18887,18889],{"class":4385,"line":12289},[4383,18886,11544],{"class":4389},[4383,18888,4724],{"class":4393},[4383,18890,4889],{"class":4389},[4383,18892,18893],{"class":4385,"line":12298},[4383,18894,11553],{"class":4408},[4383,18896,18897,18899],{"class":4385,"line":12303},[4383,18898,11558],{"class":4408},[4383,18900,5013],{"class":4404},[4383,18902,18903,18905,18907],{"class":4385,"line":12310},[4383,18904,4961],{"class":4389},[4383,18906,4198],{"class":4393},[4383,18908,4889],{"class":4389},[4383,18910,18911],{"class":4385,"line":12342},[4383,18912,4797],{"emptyLinePlaceholder":4796},[4383,18914,18915,18917],{"class":4385,"line":12361},[4383,18916,4895],{"class":4389},[4383,18918,6443],{"class":4393},[4383,18920,18921,18923,18925,18927],{"class":4385,"line":12372},[4383,18922,5019],{"class":4396},[4383,18924,4401],{"class":4400},[4383,18926,4405],{"class":4404},[4383,18928,9394],{"class":4408},[4383,18930,18931,18933,18935,18937],{"class":4385,"line":12401},[4383,18932,5042],{"class":4412},[4383,18934,3840],{"class":4408},[4383,18936,6227],{"class":4412},[4383,18938,5050],{"class":4408},[4383,18940,18941,18943,18945,18947,18949,18951,18953,18955,18957,18959,18961],{"class":4385,"line":12408},[4383,18942,11703],{"class":4408},[4383,18944,4430],{"class":4412},[4383,18946,9334],{"class":4412},[4383,18948,3840],{"class":4408},[4383,18950,3891],{"class":4412},[4383,18952,3767],{"class":4408},[4383,18954,11716],{"class":4412},[4383,18956,9334],{"class":4412},[4383,18958,3840],{"class":4408},[4383,18960,10000],{"class":4412},[4383,18962,5305],{"class":4408},[4383,18964,18965,18967],{"class":4385,"line":12413},[4383,18966,5092],{"class":4408},[4383,18968,5013],{"class":4404},[4383,18970,18971],{"class":4385,"line":12448},[4383,18972,5100],{"class":4389},[4383,18974,18975,18977,18979,18981,18983,18985,18987,18989,18991,18993,18995,18997,18999,19001,19003,19005,19007],{"class":4385,"line":12467},[4383,18976,5106],{"class":4389},[4383,18978,4241],{"class":4393},[4383,18980,4397],{"class":4396},[4383,18982,4401],{"class":4400},[4383,18984,4405],{"class":4404},[4383,18986,6278],{"class":4408},[4383,18988,4879],{"class":4412},[4383,18990,3840],{"class":4408},[4383,18992,11952],{"class":4412},[4383,18994,9329],{"class":4408},[4383,18996,5299],{"class":4412},[4383,18998,9334],{"class":4412},[4383,19000,3840],{"class":4408},[4383,19002,9901],{"class":4412},[4383,19004,9341],{"class":4408},[4383,19006,4440],{"class":4404},[4383,19008,4889],{"class":4389},[4383,19010,19011],{"class":4385,"line":12476},[4383,19012,19013],{"class":4400},"          Картка через useTheme()\n",[4383,19015,19016,19018,19020],{"class":4385,"line":12485},[4383,19017,6338],{"class":4389},[4383,19019,4241],{"class":4393},[4383,19021,4889],{"class":4389},[4383,19023,19024,19026,19028,19030,19032,19034,19036,19038,19040,19042,19044,19046,19048,19050,19052,19054,19056,19058,19060],{"class":4385,"line":12490},[4383,19025,5106],{"class":4389},[4383,19027,4241],{"class":4393},[4383,19029,4397],{"class":4396},[4383,19031,4401],{"class":4400},[4383,19033,4405],{"class":4404},[4383,19035,4409],{"class":4408},[4383,19037,5299],{"class":4412},[4383,19039,9334],{"class":4412},[4383,19041,3840],{"class":4408},[4383,19043,9924],{"class":4412},[4383,19045,3767],{"class":4408},[4383,19047,6885],{"class":4412},[4383,19049,6008],{"class":4416},[4383,19051,3767],{"class":4408},[4383,19053,5330],{"class":4412},[4383,19055,5286],{"class":4416},[4383,19057,4437],{"class":4408},[4383,19059,4440],{"class":4404},[4383,19061,4889],{"class":4389},[4383,19063,19064],{"class":4385,"line":12532},[4383,19065,19066],{"class":4400},"          Цей екран не знає hex. Він просить colors у Context, який наповнив\n",[4383,19068,19069],{"class":4385,"line":12538},[4383,19070,19071],{"class":4400},"          ThemeProvider вище по дереву.\n",[4383,19073,19074,19076,19078],{"class":4385,"line":12544},[4383,19075,6338],{"class":4389},[4383,19077,4241],{"class":4393},[4383,19079,4889],{"class":4389},[4383,19081,19082,19084,19086],{"class":4385,"line":12553},[4383,19083,4961],{"class":4389},[4383,19085,4198],{"class":4393},[4383,19087,4889],{"class":4389},[4383,19089,19090,19092,19094],{"class":4385,"line":12562},[4383,19091,5164],{"class":4389},[4383,19093,4198],{"class":4393},[4383,19095,4889],{"class":4389},[4383,19097,19098],{"class":4385,"line":12567},[4383,19099,5174],{"class":4400},[4383,19101,19102],{"class":4385,"line":12572},[4383,19103,5013],{"class":4400},[4383,19105,19106],{"class":4385,"line":12577},[4383,19107,4797],{"emptyLinePlaceholder":4796},[4383,19109,19110],{"class":4385,"line":12594},[4383,19111,19112],{"class":5558},"\u002F\u002F ——— 4. Корінь: ОБОВʼЯЗКОВО обгорнути Provider ———\n",[4383,19114,19115,19117,19119,19121,19123],{"class":4385,"line":12625},[4383,19116,4803],{"class":4741},[4383,19118,4806],{"class":4741},[4383,19120,4809],{"class":4404},[4383,19122,4813],{"class":4812},[4383,19124,4816],{"class":4400},[4383,19126,19127,19129],{"class":4385,"line":12647},[4383,19128,4859],{"class":4741},[4383,19130,4862],{"class":4400},[4383,19132,19133,19135,19137],{"class":4385,"line":12655},[4383,19134,4868],{"class":4389},[4383,19136,3981],{"class":4393},[4383,19138,4889],{"class":4389},[4383,19140,19141,19143,19146],{"class":4385,"line":12665},[4383,19142,4895],{"class":4389},[4383,19144,19145],{"class":4393},"HomeScreen",[4383,19147,4443],{"class":4389},[4383,19149,19150,19152,19154],{"class":4385,"line":12674},[4383,19151,5164],{"class":4389},[4383,19153,3981],{"class":4393},[4383,19155,4889],{"class":4389},[4383,19157,19158],{"class":4385,"line":12683},[4383,19159,5174],{"class":4400},[4383,19161,19162],{"class":4385,"line":12692},[4383,19163,5013],{"class":4400},[4383,19165,19166],{"class":4385,"line":12697},[4383,19167,4797],{"emptyLinePlaceholder":4796},[4383,19169,19170,19172,19174,19176,19178,19180,19182],{"class":4385,"line":12710},[4383,19171,5190],{"class":4404},[4383,19173,5062],{"class":4828},[4383,19175,5195],{"class":4400},[4383,19177,3803],{"class":4412},[4383,19179,3840],{"class":4400},[4383,19181,4495],{"class":4812},[4383,19183,5204],{"class":4400},[4383,19185,19186,19188,19190,19192,19194,19196,19198,19200,19202,19204,19206,19208,19210,19212],{"class":4385,"line":12729},[4383,19187,5210],{"class":4412},[4383,19189,4745],{"class":4400},[4383,19191,4413],{"class":4412},[4383,19193,4417],{"class":4416},[4383,19195,3767],{"class":4400},[4383,19197,4422],{"class":4412},[4383,19199,5286],{"class":4416},[4383,19201,3767],{"class":4400},[4383,19203,5871],{"class":4412},[4383,19205,5253],{"class":4433},[4383,19207,3767],{"class":4400},[4383,19209,5878],{"class":4412},[4383,19211,12642],{"class":4416},[4383,19213,5305],{"class":4400},[4383,19215,19216,19218,19220,19222,19224,19226,19228,19230],{"class":4385,"line":12736},[4383,19217,5278],{"class":4412},[4383,19219,4745],{"class":4400},[4383,19221,5283],{"class":4412},[4383,19223,5913],{"class":4416},[4383,19225,3767],{"class":4400},[4383,19227,5291],{"class":4412},[4383,19229,5920],{"class":4433},[4383,19231,5305],{"class":4400},[4383,19233,19234,19236,19238,19240,19242,19244,19247,19250,19252,19254,19256,19258,19260,19262],{"class":4385,"line":12745},[4383,19235,7443],{"class":4412},[4383,19237,4745],{"class":4400},[4383,19239,12632],{"class":4412},[4383,19241,12635],{"class":4433},[4383,19243,3767],{"class":4400},[4383,19245,19246],{"class":4412},"flexWrap:",[4383,19248,19249],{"class":4433}," 'wrap'",[4383,19251,3767],{"class":4400},[4383,19253,5878],{"class":4412},[4383,19255,12642],{"class":4416},[4383,19257,3767],{"class":4400},[4383,19259,6005],{"class":4412},[4383,19261,12642],{"class":4416},[4383,19263,5305],{"class":4400},[4383,19265,19266,19268],{"class":4385,"line":12754},[4383,19267,12650],{"class":4412},[4383,19269,5213],{"class":4400},[4383,19271,19272,19274,19276],{"class":4385,"line":12763},[4383,19273,12658],{"class":4412},[4383,19275,5264],{"class":4416},[4383,19277,5050],{"class":4400},[4383,19279,19280,19282,19284],{"class":4385,"line":12772},[4383,19281,5359],{"class":4412},[4383,19283,6670],{"class":4416},[4383,19285,5050],{"class":4400},[4383,19287,19288,19290,19292],{"class":4385,"line":12781},[4383,19289,5370],{"class":4412},[4383,19291,6670],{"class":4416},[4383,19293,5050],{"class":4400},[4383,19295,19296,19298,19300],{"class":4385,"line":12786},[4383,19297,5950],{"class":4412},[4383,19299,4417],{"class":4416},[4383,19301,5050],{"class":4400},[4383,19303,19304],{"class":4385,"line":12812},[4383,19305,5272],{"class":4400},[4383,19307,19308,19310,19312,19315,19317,19319,19322,19324,19326,19328,19330,19332,19334,19336],{"class":4385,"line":12820},[4383,19309,6702],{"class":4412},[4383,19311,4745],{"class":4400},[4383,19313,19314],{"class":4412},"borderRadius:",[4383,19316,4425],{"class":4416},[4383,19318,3767],{"class":4400},[4383,19320,19321],{"class":4412},"borderWidth:",[4383,19323,4417],{"class":4416},[4383,19325,3767],{"class":4400},[4383,19327,4422],{"class":4412},[4383,19329,4425],{"class":4416},[4383,19331,3767],{"class":4400},[4383,19333,6885],{"class":4412},[4383,19335,12642],{"class":4416},[4383,19337,5305],{"class":4400},[4383,19339,19340,19342,19344,19346,19348,19350,19352,19354],{"class":4385,"line":12830},[4383,19341,12789],{"class":4412},[4383,19343,4745],{"class":4400},[4383,19345,5283],{"class":4412},[4383,19347,12523],{"class":4416},[4383,19349,3767],{"class":4400},[4383,19351,5291],{"class":4412},[4383,19353,5294],{"class":4433},[4383,19355,5305],{"class":4400},[4383,19357,19358],{"class":4385,"line":12839},[4383,19359,5453],{"class":4400},[3743,19361,19362],{},"Розбір демо:",[3792,19364,19365,19373,19385,19392,19405],{},[3795,19366,19367,19372],{},[3756,19368,19369],{},[3764,19370,19371],{},"ThemeContext = createContext(null)"," — порожній канал.",[3795,19374,19375,19379,19380,3982,19382,3840],{},[3756,19376,19377],{},[3764,19378,3981],{}," — ваш компонент: state + ",[3764,19381,3774],{},[3764,19383,19384],{},"Provider value={…}",[3795,19386,19387,19391],{},[3756,19388,19389],{},[3764,19390,3985],{}," — читає канал; без Provider кине помилку.",[3795,19393,19394,19398,19399,19401,19402,3840],{},[3756,19395,19396],{},[3764,19397,19145],{}," — ніколи не імпортує ",[3764,19400,13908],{}," напряму; лише ",[3764,19403,19404],{},"useTheme().colors",[3795,19406,19407,13580,19412,19415,19416,3840],{},[3756,19408,19409],{},[3764,19410,19411],{},"export default function App",[3756,19413,19414],{},"єдине"," місце, де з’являється обгортка ",[3764,19417,19418],{},"\u003CThemeProvider>\u003CHomeScreen \u002F>\u003C\u002FThemeProvider>",[3743,19420,19421,19422,19425],{},"Якщо прибрати обгортку й лишити лише ",[3764,19423,19424],{},"\u003CHomeScreen \u002F>"," — червоний екран: «useTheme() лише всередині ThemeProvider».",[3820,19427,19429],{"id":19428},"звязок-з-файлами-nomad","Зв’язок з файлами Nomad",[3743,19431,19432,19433,13015],{},"У проєкті те саме розкладають по файлах (читабельність), але ",[3756,19434,19435],{},"суть ідентична",[4075,19437,19438,19448],{},[4078,19439,19440],{},[4081,19441,19442,19445],{},[4084,19443,19444],{},"Файл",[4084,19446,19447],{},"Відповідальність",[4094,19449,19450,19465,19482,19495,19508],{},[4081,19451,19452,19457],{},[4099,19453,19454],{},[3764,19455,19456],{},"src\u002Fshared\u002Ftheme\u002Fcolors.ts",[4099,19458,19459,3767,19461,3767,19463],{},[3764,19460,13908],{},[3764,19462,13903],{},[3764,19464,13929],{},[4081,19466,19467,19472],{},[4099,19468,19469],{},[3764,19470,19471],{},"src\u002Fshared\u002Ftheme\u002Ftokens.ts",[4099,19473,19474,3767,19477,3767,19479,19481],{},[3764,19475,19476],{},"space",[3764,19478,17271],{},[3764,19480,4640],{}," (форма, не light\u002Fdark)",[4081,19483,19484,19488],{},[4099,19485,19486],{},[3764,19487,15718],{},[4099,19489,19490,19491,3982,19493],{},"Context + ",[3764,19492,3981],{},[3764,19494,3985],{},[4081,19496,19497,19502],{},[4099,19498,19499],{},[3764,19500,19501],{},"src\u002Fshared\u002Ftheme\u002Findex.ts",[4099,19503,19504,19505],{},"реекспорт, щоб імпортувати ",[3764,19506,19507],{},"@\u002Fshared\u002Ftheme",[4081,19509,19510,19514],{},[4099,19511,19512],{},[3764,19513,16853],{},[4099,19515,19516,4211,19519,19521],{},[3756,19517,19518],{},"вмикає",[3764,19520,17176],{}," навколо навігації",[3991,19523,19524,19527,19528,19531,19532,3907,19534,15941,19536,19539,19540,3920,19543,19545],{},[3756,19525,19526],{},"Підсумок одним реченням."," React дає Context; ",[3756,19529,19530],{},"ви"," створюєте ",[3764,19533,3981],{},[3764,19535,3985],{},[3756,19537,19538],{},"корінь застосунку"," один раз обгортає дерево; ",[3756,19541,19542],{},"кожен екран\u002Fкнопка",[3764,19544,19404],{}," замість hex і замість prop drillingу.",[3820,19547,19549],{"id":19548},"statusbar-окремий-шар-системного-хрома","StatusBar — окремий шар «системного хрома»",[3743,19551,19552,19555,19556,19558,19559,19561,19562,19565],{},[3756,19553,19554],{},"Status bar"," (рядок стану) — зона зверху з годинником, батареєю, сигналом. Її малює ",[3756,19557,12991],{},", не ваш ",[3764,19560,4198],{},". Колір ",[3756,19563,19564],{},"іконок"," на ній треба узгодити з фоном:",[4204,19567,19568,19575],{},[3795,19569,19570,19571,19574],{},"темний фон екрана → ",[3756,19572,19573],{},"світлі"," іконки;",[3795,19576,19577,19578,19581],{},"світлий фон → ",[3756,19579,19580],{},"темні"," іконки.",[3743,19583,19584,19585,19590,19591,19593],{},"З пакетом ",[3756,19586,19587],{},[3764,19588,19589],{},"expo-status-bar"," (уже в Expo-проєктах), у компоненті ",[3756,19592,4549],{}," Provider:",[4374,19595,19597],{"className":4376,"code":19596,"language":4378,"meta":4379,"style":4379},"import { StatusBar } from 'expo-status-bar';\nimport { useTheme } from '@\u002Fshared\u002Ftheme';\n\nconst { scheme } = useTheme();\n\u003CStatusBar style={scheme === 'dark' ? 'light' : 'dark'} \u002F>\n",[3764,19598,19599,19616,19633,19637,19651],{"__ignoreMap":4379},[4383,19600,19601,19603,19605,19607,19609,19611,19614],{"class":4385,"line":4386},[4383,19602,4742],{"class":4741},[4383,19604,4745],{"class":4400},[4383,19606,4187],{"class":4412},[4383,19608,4751],{"class":4400},[4383,19610,4754],{"class":4741},[4383,19612,19613],{"class":4433}," 'expo-status-bar'",[4383,19615,4760],{"class":4400},[4383,19617,19618,19620,19622,19624,19626,19628,19631],{"class":4385,"line":4763},[4383,19619,4742],{"class":4741},[4383,19621,4745],{"class":4400},[4383,19623,3985],{"class":4412},[4383,19625,4751],{"class":4400},[4383,19627,4754],{"class":4741},[4383,19629,19630],{"class":4433}," '@\u002Fshared\u002Ftheme'",[4383,19632,4760],{"class":4400},[4383,19634,19635],{"class":4385,"line":4793},[4383,19636,4797],{"emptyLinePlaceholder":4796},[4383,19638,19639,19641,19643,19645,19647,19649],{"class":4385,"line":4800},[4383,19640,5190],{"class":4404},[4383,19642,4745],{"class":4400},[4383,19644,13160],{"class":4828},[4383,19646,16824],{"class":4400},[4383,19648,3985],{"class":4812},[4383,19650,13148],{"class":4400},[4383,19652,19653,19655,19657,19659,19661,19663,19665,19667,19669,19671,19673,19675,19677,19679],{"class":4385,"line":4819},[4383,19654,4390],{"class":4389},[4383,19656,4187],{"class":4393},[4383,19658,4397],{"class":4396},[4383,19660,4401],{"class":4400},[4383,19662,4405],{"class":4404},[4383,19664,13160],{"class":4412},[4383,19666,11294],{"class":4400},[4383,19668,14635],{"class":4433},[4383,19670,5132],{"class":4400},[4383,19672,11518],{"class":4433},[4383,19674,5138],{"class":4400},[4383,19676,14635],{"class":4433},[4383,19678,4440],{"class":4404},[4383,19680,4443],{"class":4389},[3743,19682,19683],{},"Плутанина в назвах:",[4204,19685,19686,19699],{},[3795,19687,19688,19691,19692,19694,19695,19698],{},[3764,19689,19690],{},"style=\"light\""," означає ",[3756,19693,19573],{}," іконки (для ",[3756,19696,19697],{},"темного"," фону);",[3795,19700,19701,13580,19704,19694,19706,19709],{},[3764,19702,19703],{},"style=\"dark\"",[3756,19705,19580],{},[3756,19707,19708],{},"світлого"," фону).",[3743,19711,19712,19713,19715,19716,13879,19719,19722,19723,3840],{},"У core API ",[3764,19714,4187],{}," з ",[3764,19717,19718],{},"react-native",[3764,19720,19721],{},"barStyle=\"light-content\" | \"dark-content\""," — той самий сенс, інші слова. У міні-проєкті blank можна core; у Nomad зручніше ",[3764,19724,19589],{},[19726,19727,19728,19731],"caution",{},[3756,19729,19730],{},"Що ламається."," Забули StatusBar при dark: чорний фон + чорні іконки → користувач не бачить час і батарею. Це виглядає як «зламаний» застосунок, хоча «основний» UI ок.",[4021,19733],{},[3738,19735,19737],{"id":19736},"антипатерни-і-що-замість","Антипатерни (і що замість)",[3743,19739,19740,19741,19744],{},"Ці помилки з’являються не тому, що хтось «не знає API», а тому, що тема ",[3756,19742,19743],{},"роз’їжджається"," (дублюється) по проєкту без єдиного правила.",[19746,19747,19748,19776,19798,19819,19836,19851,19862],"accordion",{},[19749,19750,19753,19756,19757,19759,19762,19763,19765,19768,19769,4231,19771,19773,19774,3840],"accordion-item",{"icon":19751,"label":19752},"i-lucide-bug","Hex у кожному компоненті",[3756,19754,19755],{},"Симптом:"," темна тема = PR на 40 файлів.",[3886,19758],{},[3756,19760,19761],{},"Чому болить:"," колір продублювали, половину забули.",[3886,19764],{},[3756,19766,19767],{},"Замість:"," hex лише в ",[3764,19770,13908],{},[3764,19772,13903],{},". У JSX — ",[3764,19775,13941],{},[19749,19777,19779,19781,19782,19784,19786,19787,19789,19791,19792,19794,19795,3840],{"icon":19751,"label":19778},"StyleSheet.create усередині render",[3756,19780,19755],{}," «я створюю create від isDark на кожен render».",[3886,19783],{},[3756,19785,19761],{}," зайва робота, складно дебажити, все одно дублюєте палітри.",[3886,19788],{},[3756,19790,19767],{}," геометрія в ",[3764,19793,4495],{}," на рівні модуля; кольори — ",[3764,19796,19797],{},"[styles.x, { color: colors.text }]",[19749,19799,19801,4211,19803,19806,19807,19809,19811,19812,19815,19816,19818],{"icon":19751,"label":19800},"colors зашиті в create на рівні файлу",[3756,19802,19755],{},[3764,19804,19805],{},"StyleSheet.create({ box: { backgroundColor: tokens.colors.background } })"," раз при імпорті — dark не підхоплюється.",[3886,19808],{},[3756,19810,19767],{}," не класти ",[3756,19813,19814],{},"темозалежні"," кольори в модульний ",[3764,19817,4495],{},"; динаміка — у масиві в JSX.",[19749,19820,19822,19824,19825,19827,4211,19829,4231,19831,19833,19834,3840],{"icon":19751,"label":19821},"Забути StatusBar",[3756,19823,19755],{}," темний UI, «немає» годинника.",[3886,19826],{},[3756,19828,19767],{},[3764,19830,4187],{},[3764,19832,19589],{}," від ",[3764,19835,13160],{},[19749,19837,19839,19841,19842,19844,4211,19846,3982,19848,19850],{"icon":19751,"label":19838},"Лише isDark && styles.dark у 30 місцях",[3756,19840,19755],{}," кожен екран винаходить свій dark.",[3886,19843],{},[3756,19845,19767],{},[3764,19847,13929],{},[3764,19849,17169],{}," один раз.",[19749,19852,19854,19856,19857,19859,19861],{"icon":19751,"label":19853},"Інверсія «всіх» кольорів фільтром",[3756,19855,19755],{}," фото поїздки виглядає як негатив; логотип бренду «перекинувся».",[3886,19858],{},[3756,19860,19767],{}," семантичні ролі; контентні зображення не чіпати.",[19749,19863,19865,19867,19868,19870,4211,19872,19874],{"icon":19751,"label":19864},"useTheme поза Provider",[3756,19866,19755],{}," червоний екран \u002F throw при старті.",[3886,19869],{},[3756,19871,19767],{},[3764,19873,3981],{}," у корені; хук лише в нащадках.",[4021,19876],{},[3738,19878,19880],{"id":19879},"міні-проєкт-theme-lab","Міні-проєкт: Theme Lab",[3743,19882,19883,19884,19886],{},"Окремий blank-проєкт (не Nomad). Мета — ",[3756,19885,15443],{}," екран з карткою профілю й перемикачем appearance.",[3820,19888,19890],{"id":19889},"постановка","Постановка",[3792,19892,19893,19896,19904,19911,19917],{},[3795,19894,19895],{},"Expo blank TypeScript.",[3795,19897,19898,19899,4231,19901,19903],{},"Дві палітри ",[3764,19900,3862],{},[3764,19902,3869],{}," з однаковими ключами.",[3795,19905,19906,19907,19910],{},"Стан ",[3764,19908,19909],{},"mode: 'light' | 'dark'"," (для міні-проєкту без «system» достатньо; system додасте в Nomad).",[3795,19912,19913,19914,19916],{},"Картка й фон беруть кольори ",[3756,19915,10746],{}," з палітри.",[3795,19918,19919],{},"Підпис показує поточний режим.",[3820,19921,19923],{"id":19922},"крок-1-проєкт","Крок 1. Проєкт",[4374,19925,19929],{"className":19926,"code":19927,"language":19928,"meta":4379,"style":4379},"language-bash shiki shiki-themes light-plus dark-plus dark-plus","npx create-expo-app@latest theme-lab -t blank-typescript@sdk-54\ncd theme-lab\nnpx expo start\n","bash",[3764,19930,19931,19948,19956],{"__ignoreMap":4379},[4383,19932,19933,19936,19939,19942,19945],{"class":4385,"line":4386},[4383,19934,19935],{"class":4812},"npx",[4383,19937,19938],{"class":4433}," create-expo-app@latest",[4383,19940,19941],{"class":4433}," theme-lab",[4383,19943,19944],{"class":4404}," -t",[4383,19946,19947],{"class":4433}," blank-typescript@sdk-54\n",[4383,19949,19950,19953],{"class":4385,"line":4763},[4383,19951,19952],{"class":4812},"cd",[4383,19954,19955],{"class":4433}," theme-lab\n",[4383,19957,19958,19960,19963],{"class":4385,"line":4793},[4383,19959,19935],{"class":4812},[4383,19961,19962],{"class":4433}," expo",[4383,19964,19965],{"class":4433}," start\n",[3820,19967,19969,19970],{"id":19968},"крок-2-замінити-apptsx","Крок 2. Замінити ",[3764,19971,19972],{},"App.tsx",[3743,19974,19975],{},"Повний лістинг згорнуто — розгорніть, щоб скопіювати.",[19977,19978,19980],"collapsible",{"title":19979},"Повний код App.tsx — розгорнути за потреби",[4374,19981,19983],{"className":4376,"code":19982,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport {\n  View,\n  Text,\n  Pressable,\n  StyleSheet,\n  SafeAreaView,\n  StatusBar,\n} from 'react-native';\n\nconst light = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  border: '#E2E8F0',\n  onPrimary: '#FFFFFF',\n};\n\nconst dark = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  border: '#3A3A3C',\n  onPrimary: '#FFFFFF',\n};\n\ntype Mode = 'light' | 'dark';\n\nexport default function App() {\n  const [mode, setMode] = useState\u003CMode>('light');\n  const c = mode === 'dark' ? dark : light;\n\n  return (\n    \u003CSafeAreaView style={[styles.safe, { backgroundColor: c.background }]}>\n      \u003CStatusBar barStyle={mode === 'dark' ? 'light-content' : 'dark-content'} \u002F>\n\n      \u003CView style={styles.header}>\n        \u003CText style={[styles.title, { color: c.text }]}>Theme Lab\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 4 }}>\n          Зараз: {mode === 'dark' ? 'темна' : 'світла'} тема\n        \u003C\u002FText>\n      \u003C\u002FView>\n\n      \u003CView style={styles.row}>\n        {(['light', 'dark'] as Mode[]).map((m) => {\n          const active = mode === m;\n          return (\n            \u003CPressable\n              key={m}\n              onPress={() => setMode(m)}\n              style={[\n                styles.chip,\n                {\n                  backgroundColor: active ? c.primary : c.surface,\n                  borderColor: c.border,\n                },\n              ]}\n            >\n              \u003CText\n                style={{\n                  color: active ? c.onPrimary : c.text,\n                  fontWeight: '700',\n                }}\n              >\n                {m === 'light' ? 'Світла' : 'Темна'}\n              \u003C\u002FText>\n            \u003C\u002FPressable>\n          );\n        })}\n      \u003C\u002FView>\n\n      \u003CView\n        style={[\n          styles.card,\n          { backgroundColor: c.surface, borderColor: c.border },\n        ]}\n      >\n        \u003CView style={[styles.avatar, { backgroundColor: c.primary }]}>\n          \u003CText style={{ color: c.onPrimary, fontWeight: '800', fontSize: 22 }}>Н\u003C\u002FText>\n        \u003C\u002FView>\n        \u003CText style={[styles.name, { color: c.text }]}>Мандрівник Nomad\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 6, lineHeight: 20 }}>\n          Кольори картки — семантичні токени. Перемкніть тему: та сама розмітка,\n          інша палітра.\n        \u003C\u002FText>\n      \u003C\u002FView>\n    \u003C\u002FSafeAreaView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1 },\n  header: { paddingHorizontal: 20, paddingTop: 12 },\n  title: { fontSize: 28, fontWeight: '800' },\n  row: {\n    flexDirection: 'row',\n    gap: 10,\n    paddingHorizontal: 20,\n    marginTop: 20,\n  },\n  chip: {\n    paddingHorizontal: 16,\n    paddingVertical: 12,\n    borderRadius: 12,\n    borderWidth: 1,\n  },\n  card: {\n    margin: 20,\n    marginTop: 24,\n    padding: 20,\n    borderRadius: 16,\n    borderWidth: 1,\n  },\n  avatar: {\n    width: 56,\n    height: 56,\n    borderRadius: 28,\n    alignItems: 'center',\n    justifyContent: 'center',\n    marginBottom: 12,\n  },\n  name: { fontSize: 20, fontWeight: '700' },\n});\n",[3764,19984,19985,20001,20007,20013,20019,20025,20031,20038,20045,20055,20059,20067,20075,20083,20091,20099,20107,20115,20123,20127,20131,20139,20147,20155,20163,20171,20179,20187,20195,20199,20203,20220,20224,20236,20263,20287,20291,20297,20335,20368,20372,20395,20440,20474,20502,20510,20518,20522,20544,20576,20592,20598,20604,20616,20638,20648,20658,20662,20686,20698,20702,20708,20712,20718,20728,20752,20760,20766,20770,20790,20798,20806,20810,20816,20824,20828,20834,20844,20854,20878,20884,20888,20925,20974,20982,21027,21067,21072,21077,21085,21093,21101,21105,21109,21113,21129,21142,21162,21181,21187,21196,21204,21212,21220,21224,21230,21238,21246,21254,21262,21266,21272,21281,21289,21297,21305,21313,21317,21324,21334,21342,21350,21358,21366,21375,21379,21397],{"__ignoreMap":4379},[4383,19986,19987,19989,19991,19993,19995,19997,19999],{"class":4385,"line":4386},[4383,19988,4742],{"class":4741},[4383,19990,4745],{"class":4400},[4383,19992,4748],{"class":4412},[4383,19994,4751],{"class":4400},[4383,19996,4754],{"class":4741},[4383,19998,4757],{"class":4433},[4383,20000,4760],{"class":4400},[4383,20002,20003,20005],{"class":4385,"line":4763},[4383,20004,4742],{"class":4741},[4383,20006,5213],{"class":4400},[4383,20008,20009,20011],{"class":4385,"line":4793},[4383,20010,17538],{"class":4412},[4383,20012,5050],{"class":4400},[4383,20014,20015,20017],{"class":4385,"line":4800},[4383,20016,17545],{"class":4412},[4383,20018,5050],{"class":4400},[4383,20020,20021,20023],{"class":4385,"line":4819},[4383,20022,17552],{"class":4412},[4383,20024,5050],{"class":4400},[4383,20026,20027,20029],{"class":4385,"line":4851},[4383,20028,17559],{"class":4412},[4383,20030,5050],{"class":4400},[4383,20032,20033,20036],{"class":4385,"line":4856},[4383,20034,20035],{"class":4412},"  SafeAreaView",[4383,20037,5050],{"class":4400},[4383,20039,20040,20043],{"class":4385,"line":4865},[4383,20041,20042],{"class":4412},"  StatusBar",[4383,20044,5050],{"class":4400},[4383,20046,20047,20049,20051,20053],{"class":4385,"line":4892},[4383,20048,13754],{"class":4400},[4383,20050,4754],{"class":4741},[4383,20052,4788],{"class":4433},[4383,20054,4760],{"class":4400},[4383,20056,20057],{"class":4385,"line":4928},[4383,20058,4797],{"emptyLinePlaceholder":4796},[4383,20060,20061,20063,20065],{"class":4385,"line":4952},[4383,20062,5190],{"class":4404},[4383,20064,10819],{"class":4828},[4383,20066,10822],{"class":4400},[4383,20068,20069,20071,20073],{"class":4385,"line":4958},[4383,20070,10827],{"class":4412},[4383,20072,4434],{"class":4433},[4383,20074,5050],{"class":4400},[4383,20076,20077,20079,20081],{"class":4385,"line":4968},[4383,20078,10836],{"class":4412},[4383,20080,10839],{"class":4433},[4383,20082,5050],{"class":4400},[4383,20084,20085,20087,20089],{"class":4385,"line":4976},[4383,20086,10846],{"class":4412},[4383,20088,10849],{"class":4433},[4383,20090,5050],{"class":4400},[4383,20092,20093,20095,20097],{"class":4385,"line":5016},[4383,20094,10856],{"class":4412},[4383,20096,10859],{"class":4433},[4383,20098,5050],{"class":4400},[4383,20100,20101,20103,20105],{"class":4385,"line":5039},[4383,20102,10866],{"class":4412},[4383,20104,5402],{"class":4433},[4383,20106,5050],{"class":4400},[4383,20108,20109,20111,20113],{"class":4385,"line":5053},[4383,20110,10885],{"class":4412},[4383,20112,5962],{"class":4433},[4383,20114,5050],{"class":4400},[4383,20116,20117,20119,20121],{"class":4385,"line":5072},[4383,20118,10904],{"class":4412},[4383,20120,10839],{"class":4433},[4383,20122,5050],{"class":4400},[4383,20124,20125],{"class":4385,"line":5089},[4383,20126,10913],{"class":4400},[4383,20128,20129],{"class":4385,"line":5097},[4383,20130,4797],{"emptyLinePlaceholder":4796},[4383,20132,20133,20135,20137],{"class":4385,"line":5103},[4383,20134,5190],{"class":4404},[4383,20136,10924],{"class":4828},[4383,20138,10822],{"class":4400},[4383,20140,20141,20143,20145],{"class":4385,"line":5152},[4383,20142,10827],{"class":4412},[4383,20144,10933],{"class":4433},[4383,20146,5050],{"class":4400},[4383,20148,20149,20151,20153],{"class":4385,"line":5161},[4383,20150,10836],{"class":4412},[4383,20152,10942],{"class":4433},[4383,20154,5050],{"class":4400},[4383,20156,20157,20159,20161],{"class":4385,"line":5171},[4383,20158,10846],{"class":4412},[4383,20160,10951],{"class":4433},[4383,20162,5050],{"class":4400},[4383,20164,20165,20167,20169],{"class":4385,"line":5177},[4383,20166,10856],{"class":4412},[4383,20168,10960],{"class":4433},[4383,20170,5050],{"class":4400},[4383,20172,20173,20175,20177],{"class":4385,"line":5182},[4383,20174,10866],{"class":4412},[4383,20176,10969],{"class":4433},[4383,20178,5050],{"class":4400},[4383,20180,20181,20183,20185],{"class":4385,"line":5187},[4383,20182,10885],{"class":4412},[4383,20184,10986],{"class":4433},[4383,20186,5050],{"class":4400},[4383,20188,20189,20191,20193],{"class":4385,"line":5207},[4383,20190,10904],{"class":4412},[4383,20192,10839],{"class":4433},[4383,20194,5050],{"class":4400},[4383,20196,20197],{"class":4385,"line":5216},[4383,20198,10913],{"class":4400},[4383,20200,20201],{"class":4385,"line":5226},[4383,20202,4797],{"emptyLinePlaceholder":4796},[4383,20204,20205,20207,20210,20212,20214,20216,20218],{"class":4385,"line":5236},[4383,20206,15815],{"class":4404},[4383,20208,20209],{"class":4393}," Mode",[4383,20211,5195],{"class":4400},[4383,20213,11048],{"class":4433},[4383,20215,11051],{"class":4400},[4383,20217,11054],{"class":4433},[4383,20219,4760],{"class":4400},[4383,20221,20222],{"class":4385,"line":5247},[4383,20223,4797],{"emptyLinePlaceholder":4796},[4383,20225,20226,20228,20230,20232,20234],{"class":4385,"line":5258},[4383,20227,4803],{"class":4741},[4383,20229,4806],{"class":4741},[4383,20231,4809],{"class":4404},[4383,20233,4813],{"class":4812},[4383,20235,4816],{"class":4400},[4383,20237,20238,20240,20242,20244,20246,20248,20250,20252,20254,20257,20259,20261],{"class":4385,"line":5269},[4383,20239,4822],{"class":4404},[4383,20241,4825],{"class":4400},[4383,20243,11034],{"class":4828},[4383,20245,3767],{"class":4400},[4383,20247,11039],{"class":4828},[4383,20249,4837],{"class":4400},[4383,20251,4748],{"class":4812},[4383,20253,4390],{"class":4400},[4383,20255,20256],{"class":4393},"Mode",[4383,20258,11057],{"class":4400},[4383,20260,11048],{"class":4433},[4383,20262,4848],{"class":4400},[4383,20264,20265,20267,20269,20271,20273,20275,20277,20279,20281,20283,20285],{"class":4385,"line":5275},[4383,20266,4822],{"class":4404},[4383,20268,11092],{"class":4828},[4383,20270,5195],{"class":4400},[4383,20272,11034],{"class":4412},[4383,20274,11099],{"class":4400},[4383,20276,11054],{"class":4433},[4383,20278,11104],{"class":4400},[4383,20280,3869],{"class":4412},[4383,20282,11109],{"class":4400},[4383,20284,3862],{"class":4412},[4383,20286,4760],{"class":4400},[4383,20288,20289],{"class":4385,"line":5308},[4383,20290,4797],{"emptyLinePlaceholder":4796},[4383,20292,20293,20295],{"class":4385,"line":5338},[4383,20294,4859],{"class":4741},[4383,20296,4862],{"class":4400},[4383,20298,20299,20301,20304,20306,20308,20310,20312,20314,20316,20319,20321,20323,20325,20327,20329,20331,20333],{"class":4385,"line":5346},[4383,20300,4868],{"class":4389},[4383,20302,20303],{"class":4393},"SafeAreaView",[4383,20305,4397],{"class":4396},[4383,20307,4401],{"class":4400},[4383,20309,4405],{"class":4404},[4383,20311,6278],{"class":4408},[4383,20313,4879],{"class":4412},[4383,20315,3840],{"class":4408},[4383,20317,20318],{"class":4412},"safe",[4383,20320,9329],{"class":4408},[4383,20322,4430],{"class":4412},[4383,20324,11092],{"class":4412},[4383,20326,3840],{"class":4408},[4383,20328,9849],{"class":4412},[4383,20330,9341],{"class":4408},[4383,20332,4440],{"class":4404},[4383,20334,4889],{"class":4389},[4383,20336,20337,20339,20341,20344,20346,20348,20350,20352,20354,20356,20359,20361,20364,20366],{"class":4385,"line":5356},[4383,20338,4895],{"class":4389},[4383,20340,4187],{"class":4393},[4383,20342,20343],{"class":4396}," barStyle",[4383,20345,4401],{"class":4400},[4383,20347,4405],{"class":4404},[4383,20349,11034],{"class":4412},[4383,20351,11294],{"class":4400},[4383,20353,14635],{"class":4433},[4383,20355,5132],{"class":4400},[4383,20357,20358],{"class":4433}," 'light-content'",[4383,20360,5138],{"class":4400},[4383,20362,20363],{"class":4433}," 'dark-content'",[4383,20365,4440],{"class":4404},[4383,20367,4443],{"class":4389},[4383,20369,20370],{"class":4385,"line":5367},[4383,20371,4797],{"emptyLinePlaceholder":4796},[4383,20373,20374,20376,20378,20380,20382,20384,20386,20388,20391,20393],{"class":4385,"line":5377},[4383,20375,4895],{"class":4389},[4383,20377,4198],{"class":4393},[4383,20379,4397],{"class":4396},[4383,20381,4401],{"class":4400},[4383,20383,4405],{"class":4404},[4383,20385,4879],{"class":4412},[4383,20387,3840],{"class":4408},[4383,20389,20390],{"class":4412},"header",[4383,20392,4440],{"class":4404},[4383,20394,4889],{"class":4389},[4383,20396,20397,20399,20401,20403,20405,20407,20409,20411,20413,20415,20417,20419,20421,20423,20425,20427,20429,20431,20434,20436,20438],{"class":4385,"line":5387},[4383,20398,5106],{"class":4389},[4383,20400,4241],{"class":4393},[4383,20402,4397],{"class":4396},[4383,20404,4401],{"class":4400},[4383,20406,4405],{"class":4404},[4383,20408,6278],{"class":4408},[4383,20410,4879],{"class":4412},[4383,20412,3840],{"class":4408},[4383,20414,4910],{"class":4412},[4383,20416,9329],{"class":4408},[4383,20418,5299],{"class":4412},[4383,20420,11092],{"class":4412},[4383,20422,3840],{"class":4408},[4383,20424,9901],{"class":4412},[4383,20426,9341],{"class":4408},[4383,20428,4440],{"class":4404},[4383,20430,4915],{"class":4389},[4383,20432,20433],{"class":4400},"Theme Lab",[4383,20435,4921],{"class":4389},[4383,20437,4241],{"class":4393},[4383,20439,4889],{"class":4389},[4383,20441,20442,20444,20446,20448,20450,20452,20454,20456,20458,20460,20462,20464,20466,20468,20470,20472],{"class":4385,"line":5392},[4383,20443,5106],{"class":4389},[4383,20445,4241],{"class":4393},[4383,20447,4397],{"class":4396},[4383,20449,4401],{"class":4400},[4383,20451,4405],{"class":4404},[4383,20453,4409],{"class":4408},[4383,20455,5299],{"class":4412},[4383,20457,11092],{"class":4412},[4383,20459,3840],{"class":4408},[4383,20461,9924],{"class":4412},[4383,20463,3767],{"class":4408},[4383,20465,6885],{"class":4412},[4383,20467,6888],{"class":4416},[4383,20469,4437],{"class":4408},[4383,20471,4440],{"class":4404},[4383,20473,4889],{"class":4389},[4383,20475,20476,20479,20481,20483,20485,20487,20489,20492,20494,20497,20499],{"class":4385,"line":5407},[4383,20477,20478],{"class":4400},"          Зараз: ",[4383,20480,4405],{"class":4404},[4383,20482,11034],{"class":4412},[4383,20484,11294],{"class":4400},[4383,20486,14635],{"class":4433},[4383,20488,5132],{"class":4400},[4383,20490,20491],{"class":4433}," 'темна'",[4383,20493,5138],{"class":4400},[4383,20495,20496],{"class":4433}," 'світла'",[4383,20498,4440],{"class":4404},[4383,20500,20501],{"class":4400}," тема\n",[4383,20503,20504,20506,20508],{"class":4385,"line":5423},[4383,20505,6338],{"class":4389},[4383,20507,4241],{"class":4393},[4383,20509,4889],{"class":4389},[4383,20511,20512,20514,20516],{"class":4385,"line":5450},[4383,20513,4961],{"class":4389},[4383,20515,4198],{"class":4393},[4383,20517,4889],{"class":4389},[4383,20519,20520],{"class":4385,"line":6760},[4383,20521,4797],{"emptyLinePlaceholder":4796},[4383,20523,20524,20526,20528,20530,20532,20534,20536,20538,20540,20542],{"class":4385,"line":6765},[4383,20525,4895],{"class":4389},[4383,20527,4198],{"class":4393},[4383,20529,4397],{"class":4396},[4383,20531,4401],{"class":4400},[4383,20533,4405],{"class":4404},[4383,20535,4879],{"class":4412},[4383,20537,3840],{"class":4408},[4383,20539,7068],{"class":4412},[4383,20541,4440],{"class":4404},[4383,20543,4889],{"class":4389},[4383,20545,20546,20548,20550,20552,20554,20556,20558,20560,20562,20564,20566,20568,20570,20572,20574],{"class":4385,"line":6793},[4383,20547,7939],{"class":4404},[4383,20549,11246],{"class":4408},[4383,20551,11048],{"class":4433},[4383,20553,3767],{"class":4408},[4383,20555,11054],{"class":4433},[4383,20557,11255],{"class":4408},[4383,20559,11258],{"class":4741},[4383,20561,20209],{"class":4393},[4383,20563,18625],{"class":4408},[4383,20565,11266],{"class":4812},[4383,20567,4995],{"class":4408},[4383,20569,11271],{"class":4412},[4383,20571,5001],{"class":4408},[4383,20573,4989],{"class":4404},[4383,20575,5213],{"class":4408},[4383,20577,20578,20580,20582,20584,20586,20588,20590],{"class":4385,"line":6801},[4383,20579,11282],{"class":4404},[4383,20581,11285],{"class":4828},[4383,20583,11288],{"class":4400},[4383,20585,11291],{"class":4412},[4383,20587,11294],{"class":4400},[4383,20589,11297],{"class":4412},[4383,20591,4760],{"class":4408},[4383,20593,20594,20596],{"class":4385,"line":6811},[4383,20595,11304],{"class":4741},[4383,20597,4862],{"class":4408},[4383,20599,20600,20602],{"class":4385,"line":6820},[4383,20601,8303],{"class":4389},[4383,20603,4973],{"class":4393},[4383,20605,20606,20608,20610,20612,20614],{"class":4385,"line":6829},[4383,20607,11317],{"class":4396},[4383,20609,4401],{"class":4400},[4383,20611,4405],{"class":4404},[4383,20613,11271],{"class":4412},[4383,20615,5013],{"class":4404},[4383,20617,20618,20620,20622,20624,20626,20628,20630,20632,20634,20636],{"class":4385,"line":6834},[4383,20619,11330],{"class":4396},[4383,20621,4401],{"class":4400},[4383,20623,4405],{"class":4404},[4383,20625,4986],{"class":4408},[4383,20627,4989],{"class":4404},[4383,20629,11341],{"class":4812},[4383,20631,4842],{"class":4408},[4383,20633,11271],{"class":4412},[4383,20635,4141],{"class":4408},[4383,20637,5013],{"class":4404},[4383,20639,20640,20642,20644,20646],{"class":4385,"line":6860},[4383,20641,11354],{"class":4396},[4383,20643,4401],{"class":4400},[4383,20645,4405],{"class":4404},[4383,20647,9394],{"class":4408},[4383,20649,20650,20652,20654,20656],{"class":4385,"line":6893},[4383,20651,11365],{"class":4412},[4383,20653,3840],{"class":4408},[4383,20655,11370],{"class":4412},[4383,20657,5050],{"class":4408},[4383,20659,20660],{"class":4385,"line":8399},[4383,20661,11377],{"class":4408},[4383,20663,20664,20666,20668,20670,20672,20674,20676,20678,20680,20682,20684],{"class":4385,"line":8418},[4383,20665,11382],{"class":4412},[4383,20667,11285],{"class":4412},[4383,20669,5132],{"class":4400},[4383,20671,11092],{"class":4412},[4383,20673,3840],{"class":4408},[4383,20675,9747],{"class":4412},[4383,20677,5138],{"class":4400},[4383,20679,11092],{"class":4412},[4383,20681,3840],{"class":4408},[4383,20683,3891],{"class":4412},[4383,20685,5050],{"class":4408},[4383,20687,20688,20690,20692,20694,20696],{"class":4385,"line":8429},[4383,20689,11407],{"class":4412},[4383,20691,11092],{"class":4412},[4383,20693,3840],{"class":4408},[4383,20695,10000],{"class":4412},[4383,20697,5050],{"class":4408},[4383,20699,20700],{"class":4385,"line":8445},[4383,20701,11420],{"class":4408},[4383,20703,20704,20706],{"class":4385,"line":8460},[4383,20705,11425],{"class":4408},[4383,20707,5013],{"class":4404},[4383,20709,20710],{"class":4385,"line":8467},[4383,20711,11432],{"class":4389},[4383,20713,20714,20716],{"class":4385,"line":8472},[4383,20715,11437],{"class":4389},[4383,20717,11440],{"class":4393},[4383,20719,20720,20722,20724,20726],{"class":4385,"line":8495},[4383,20721,11445],{"class":4396},[4383,20723,4401],{"class":4400},[4383,20725,4405],{"class":4404},[4383,20727,6455],{"class":4408},[4383,20729,20730,20732,20734,20736,20738,20740,20742,20744,20746,20748,20750],{"class":4385,"line":8515},[4383,20731,11456],{"class":4412},[4383,20733,11285],{"class":4412},[4383,20735,5132],{"class":4400},[4383,20737,11092],{"class":4412},[4383,20739,3840],{"class":4408},[4383,20741,9978],{"class":4412},[4383,20743,5138],{"class":4400},[4383,20745,11092],{"class":4412},[4383,20747,3840],{"class":4408},[4383,20749,9901],{"class":4412},[4383,20751,5050],{"class":4408},[4383,20753,20754,20756,20758],{"class":4385,"line":8524},[4383,20755,11481],{"class":4412},[4383,20757,5294],{"class":4433},[4383,20759,5050],{"class":4408},[4383,20761,20762,20764],{"class":4385,"line":8533},[4383,20763,11499],{"class":4408},[4383,20765,5013],{"class":4404},[4383,20767,20768],{"class":4385,"line":8538},[4383,20769,11506],{"class":4389},[4383,20771,20772,20774,20776,20778,20780,20782,20784,20786,20788],{"class":4385,"line":8561},[4383,20773,11511],{"class":4404},[4383,20775,11271],{"class":4412},[4383,20777,11294],{"class":4400},[4383,20779,11518],{"class":4433},[4383,20781,5132],{"class":4400},[4383,20783,11523],{"class":4433},[4383,20785,5138],{"class":4400},[4383,20787,11528],{"class":4433},[4383,20789,5013],{"class":4404},[4383,20791,20792,20794,20796],{"class":4385,"line":8567},[4383,20793,11535],{"class":4389},[4383,20795,4241],{"class":4393},[4383,20797,4889],{"class":4389},[4383,20799,20800,20802,20804],{"class":4385,"line":8576},[4383,20801,11544],{"class":4389},[4383,20803,4724],{"class":4393},[4383,20805,4889],{"class":4389},[4383,20807,20808],{"class":4385,"line":8585},[4383,20809,11553],{"class":4408},[4383,20811,20812,20814],{"class":4385,"line":8590},[4383,20813,11558],{"class":4408},[4383,20815,5013],{"class":4404},[4383,20817,20818,20820,20822],{"class":4385,"line":8595},[4383,20819,4961],{"class":4389},[4383,20821,4198],{"class":4393},[4383,20823,4889],{"class":4389},[4383,20825,20826],{"class":4385,"line":8600},[4383,20827,4797],{"emptyLinePlaceholder":4796},[4383,20829,20830,20832],{"class":4385,"line":8617},[4383,20831,4895],{"class":4389},[4383,20833,6443],{"class":4393},[4383,20835,20836,20838,20840,20842],{"class":4385,"line":8624},[4383,20837,5019],{"class":4396},[4383,20839,4401],{"class":4400},[4383,20841,4405],{"class":4404},[4383,20843,9394],{"class":4408},[4383,20845,20846,20848,20850,20852],{"class":4385,"line":8633},[4383,20847,5042],{"class":4412},[4383,20849,3840],{"class":4408},[4383,20851,6227],{"class":4412},[4383,20853,5050],{"class":4408},[4383,20855,20856,20858,20860,20862,20864,20866,20868,20870,20872,20874,20876],{"class":4385,"line":8642},[4383,20857,11703],{"class":4408},[4383,20859,4430],{"class":4412},[4383,20861,11092],{"class":4412},[4383,20863,3840],{"class":4408},[4383,20865,3891],{"class":4412},[4383,20867,3767],{"class":4408},[4383,20869,11716],{"class":4412},[4383,20871,11092],{"class":4412},[4383,20873,3840],{"class":4408},[4383,20875,10000],{"class":4412},[4383,20877,5305],{"class":4408},[4383,20879,20880,20882],{"class":4385,"line":8651},[4383,20881,5092],{"class":4408},[4383,20883,5013],{"class":4404},[4383,20885,20886],{"class":4385,"line":8660},[4383,20887,5100],{"class":4389},[4383,20889,20890,20892,20894,20896,20898,20900,20902,20904,20906,20909,20911,20913,20915,20917,20919,20921,20923],{"class":4385,"line":8669},[4383,20891,5106],{"class":4389},[4383,20893,4198],{"class":4393},[4383,20895,4397],{"class":4396},[4383,20897,4401],{"class":4400},[4383,20899,4405],{"class":4404},[4383,20901,6278],{"class":4408},[4383,20903,4879],{"class":4412},[4383,20905,3840],{"class":4408},[4383,20907,20908],{"class":4412},"avatar",[4383,20910,9329],{"class":4408},[4383,20912,4430],{"class":4412},[4383,20914,11092],{"class":4412},[4383,20916,3840],{"class":4408},[4383,20918,9747],{"class":4412},[4383,20920,9341],{"class":4408},[4383,20922,4440],{"class":4404},[4383,20924,4889],{"class":4389},[4383,20926,20927,20929,20931,20933,20935,20937,20939,20941,20943,20945,20947,20949,20951,20953,20955,20957,20959,20961,20963,20965,20968,20970,20972],{"class":4385,"line":8674},[4383,20928,6305],{"class":4389},[4383,20930,4241],{"class":4393},[4383,20932,4397],{"class":4396},[4383,20934,4401],{"class":4400},[4383,20936,4405],{"class":4404},[4383,20938,4409],{"class":4408},[4383,20940,5299],{"class":4412},[4383,20942,11092],{"class":4412},[4383,20944,3840],{"class":4408},[4383,20946,9978],{"class":4412},[4383,20948,3767],{"class":4408},[4383,20950,5291],{"class":4412},[4383,20952,5920],{"class":4433},[4383,20954,3767],{"class":4408},[4383,20956,5283],{"class":4412},[4383,20958,5913],{"class":4416},[4383,20960,4437],{"class":4408},[4383,20962,4440],{"class":4404},[4383,20964,4915],{"class":4389},[4383,20966,20967],{"class":4400},"Н",[4383,20969,4921],{"class":4389},[4383,20971,4241],{"class":4393},[4383,20973,4889],{"class":4389},[4383,20975,20976,20978,20980],{"class":4385,"line":8687},[4383,20977,6338],{"class":4389},[4383,20979,4198],{"class":4393},[4383,20981,4889],{"class":4389},[4383,20983,20984,20986,20988,20990,20992,20994,20996,20998,21000,21002,21004,21006,21008,21010,21012,21014,21016,21018,21021,21023,21025],{"class":4385,"line":8707},[4383,20985,5106],{"class":4389},[4383,20987,4241],{"class":4393},[4383,20989,4397],{"class":4396},[4383,20991,4401],{"class":4400},[4383,20993,4405],{"class":4404},[4383,20995,6278],{"class":4408},[4383,20997,4879],{"class":4412},[4383,20999,3840],{"class":4408},[4383,21001,8134],{"class":4412},[4383,21003,9329],{"class":4408},[4383,21005,5299],{"class":4412},[4383,21007,11092],{"class":4412},[4383,21009,3840],{"class":4408},[4383,21011,9901],{"class":4412},[4383,21013,9341],{"class":4408},[4383,21015,4440],{"class":4404},[4383,21017,4915],{"class":4389},[4383,21019,21020],{"class":4400},"Мандрівник Nomad",[4383,21022,4921],{"class":4389},[4383,21024,4241],{"class":4393},[4383,21026,4889],{"class":4389},[4383,21028,21029,21031,21033,21035,21037,21039,21041,21043,21045,21047,21049,21051,21053,21055,21057,21059,21061,21063,21065],{"class":4385,"line":8737},[4383,21030,5106],{"class":4389},[4383,21032,4241],{"class":4393},[4383,21034,4397],{"class":4396},[4383,21036,4401],{"class":4400},[4383,21038,4405],{"class":4404},[4383,21040,4409],{"class":4408},[4383,21042,5299],{"class":4412},[4383,21044,11092],{"class":4412},[4383,21046,3840],{"class":4408},[4383,21048,9924],{"class":4412},[4383,21050,3767],{"class":4408},[4383,21052,6885],{"class":4412},[4383,21054,6008],{"class":4416},[4383,21056,3767],{"class":4408},[4383,21058,5330],{"class":4412},[4383,21060,5286],{"class":4416},[4383,21062,4437],{"class":4408},[4383,21064,4440],{"class":4404},[4383,21066,4889],{"class":4389},[4383,21068,21069],{"class":4385,"line":8744},[4383,21070,21071],{"class":4400},"          Кольори картки — семантичні токени. Перемкніть тему: та сама розмітка,\n",[4383,21073,21074],{"class":4385,"line":8753},[4383,21075,21076],{"class":4400},"          інша палітра.\n",[4383,21078,21079,21081,21083],{"class":4385,"line":8762},[4383,21080,6338],{"class":4389},[4383,21082,4241],{"class":4393},[4383,21084,4889],{"class":4389},[4383,21086,21087,21089,21091],{"class":4385,"line":8771},[4383,21088,4961],{"class":4389},[4383,21090,4198],{"class":4393},[4383,21092,4889],{"class":4389},[4383,21094,21095,21097,21099],{"class":4385,"line":8780},[4383,21096,5164],{"class":4389},[4383,21098,20303],{"class":4393},[4383,21100,4889],{"class":4389},[4383,21102,21103],{"class":4385,"line":8789},[4383,21104,5174],{"class":4400},[4383,21106,21107],{"class":4385,"line":8800},[4383,21108,5013],{"class":4400},[4383,21110,21111],{"class":4385,"line":8809},[4383,21112,4797],{"emptyLinePlaceholder":4796},[4383,21114,21115,21117,21119,21121,21123,21125,21127],{"class":4385,"line":8814},[4383,21116,5190],{"class":4404},[4383,21118,5062],{"class":4828},[4383,21120,5195],{"class":4400},[4383,21122,3803],{"class":4412},[4383,21124,3840],{"class":4400},[4383,21126,4495],{"class":4812},[4383,21128,5204],{"class":4400},[4383,21130,21131,21134,21136,21138,21140],{"class":4385,"line":8841},[4383,21132,21133],{"class":4412},"  safe:",[4383,21135,4745],{"class":4400},[4383,21137,4413],{"class":4412},[4383,21139,4417],{"class":4416},[4383,21141,5305],{"class":4400},[4383,21143,21144,21147,21149,21151,21153,21155,21158,21160],{"class":4385,"line":8873},[4383,21145,21146],{"class":4412},"  header:",[4383,21148,4745],{"class":4400},[4383,21150,7448],{"class":4412},[4383,21152,5286],{"class":4416},[4383,21154,3767],{"class":4400},[4383,21156,21157],{"class":4412},"paddingTop:",[4383,21159,5264],{"class":4416},[4383,21161,5305],{"class":4400},[4383,21163,21164,21166,21168,21170,21173,21175,21177,21179],{"class":4385,"line":8905},[4383,21165,5278],{"class":4412},[4383,21167,4745],{"class":4400},[4383,21169,5283],{"class":4412},[4383,21171,21172],{"class":4416}," 28",[4383,21174,3767],{"class":4400},[4383,21176,5291],{"class":4412},[4383,21178,5920],{"class":4433},[4383,21180,5305],{"class":4400},[4383,21182,21183,21185],{"class":4385,"line":8912},[4383,21184,7443],{"class":4412},[4383,21186,5213],{"class":4400},[4383,21188,21189,21192,21194],{"class":4385,"line":8925},[4383,21190,21191],{"class":4412},"    flexDirection:",[4383,21193,12635],{"class":4433},[4383,21195,5050],{"class":4400},[4383,21197,21198,21200,21202],{"class":4385,"line":8935},[4383,21199,5261],{"class":4412},[4383,21201,6670],{"class":4416},[4383,21203,5050],{"class":4400},[4383,21205,21206,21208,21210],{"class":4385,"line":8945},[4383,21207,12658],{"class":4412},[4383,21209,5286],{"class":4416},[4383,21211,5050],{"class":4400},[4383,21213,21214,21216,21218],{"class":4385,"line":8950},[4383,21215,15246],{"class":4412},[4383,21217,5286],{"class":4416},[4383,21219,5050],{"class":4400},[4383,21221,21222],{"class":4385,"line":8969},[4383,21223,5272],{"class":4400},[4383,21225,21226,21228],{"class":4385,"line":8977},[4383,21227,12650],{"class":4412},[4383,21229,5213],{"class":4400},[4383,21231,21232,21234,21236],{"class":4385,"line":8987},[4383,21233,12658],{"class":4412},[4383,21235,4425],{"class":4416},[4383,21237,5050],{"class":4400},[4383,21239,21240,21242,21244],{"class":4385,"line":8996},[4383,21241,5359],{"class":4412},[4383,21243,5264],{"class":4416},[4383,21245,5050],{"class":4400},[4383,21247,21248,21250,21252],{"class":4385,"line":9005},[4383,21249,5370],{"class":4412},[4383,21251,5264],{"class":4416},[4383,21253,5050],{"class":4400},[4383,21255,21256,21258,21260],{"class":4385,"line":9010},[4383,21257,5950],{"class":4412},[4383,21259,4417],{"class":4416},[4383,21261,5050],{"class":4400},[4383,21263,21264],{"class":4385,"line":9036},[4383,21265,5272],{"class":4400},[4383,21267,21268,21270],{"class":4385,"line":9043},[4383,21269,6702],{"class":4412},[4383,21271,5213],{"class":4400},[4383,21273,21274,21277,21279],{"class":4385,"line":9052},[4383,21275,21276],{"class":4412},"    margin:",[4383,21278,5286],{"class":4416},[4383,21280,5050],{"class":4400},[4383,21282,21283,21285,21287],{"class":4385,"line":9061},[4383,21284,15246],{"class":4412},[4383,21286,5242],{"class":4416},[4383,21288,5050],{"class":4400},[4383,21290,21291,21293,21295],{"class":4385,"line":9070},[4383,21292,5239],{"class":4412},[4383,21294,5286],{"class":4416},[4383,21296,5050],{"class":4400},[4383,21298,21299,21301,21303],{"class":4385,"line":9079},[4383,21300,5370],{"class":4412},[4383,21302,4425],{"class":4416},[4383,21304,5050],{"class":4400},[4383,21306,21307,21309,21311],{"class":4385,"line":9084},[4383,21308,5950],{"class":4412},[4383,21310,4417],{"class":4416},[4383,21312,5050],{"class":4400},[4383,21314,21315],{"class":4385,"line":9097},[4383,21316,5272],{"class":4400},[4383,21318,21319,21322],{"class":4385,"line":9110},[4383,21320,21321],{"class":4412},"  avatar:",[4383,21323,5213],{"class":4400},[4383,21325,21326,21329,21332],{"class":4385,"line":9135},[4383,21327,21328],{"class":4412},"    width:",[4383,21330,21331],{"class":4416}," 56",[4383,21333,5050],{"class":4400},[4383,21335,21336,21338,21340],{"class":4385,"line":9161},[4383,21337,6709],{"class":4412},[4383,21339,21331],{"class":4416},[4383,21341,5050],{"class":4400},[4383,21343,21344,21346,21348],{"class":4385,"line":12176},[4383,21345,5370],{"class":4412},[4383,21347,21172],{"class":4416},[4383,21349,5050],{"class":4400},[4383,21351,21352,21354,21356],{"class":4385,"line":12187},[4383,21353,5380],{"class":4412},[4383,21355,5253],{"class":4433},[4383,21357,5050],{"class":4400},[4383,21359,21360,21362,21364],{"class":4385,"line":12223},[4383,21361,5250],{"class":4412},[4383,21363,5253],{"class":4433},[4383,21365,5050],{"class":4400},[4383,21367,21368,21371,21373],{"class":4385,"line":12258},[4383,21369,21370],{"class":4412},"    marginBottom:",[4383,21372,5264],{"class":4416},[4383,21374,5050],{"class":4400},[4383,21376,21377],{"class":4385,"line":12264},[4383,21378,5272],{"class":4400},[4383,21380,21381,21383,21385,21387,21389,21391,21393,21395],{"class":4385,"line":12273},[4383,21382,8844],{"class":4412},[4383,21384,4745],{"class":4400},[4383,21386,5283],{"class":4412},[4383,21388,5286],{"class":4416},[4383,21390,3767],{"class":4400},[4383,21392,5291],{"class":4412},[4383,21394,5294],{"class":4433},[4383,21396,5305],{"class":4400},[4383,21398,21399],{"class":4385,"line":12282},[4383,21400,5453],{"class":4400},[3820,21402,21404],{"id":21403},"крок-3-анатомія","Крок 3. Анатомія",[15984,21406,21407,21411,21421,21427,21439,21443,21459,21462],{},[3820,21408,21410],{"id":21409},"дві-палітри-одні-ключі","Дві палітри, одні ключі",[3743,21412,21413,3907,21415,21417,21418,21420],{},[3764,21414,3862],{},[3764,21416,3869],{}," — однакові поля. Компонент ніколи не пише ",[3764,21419,13993],{}," напряму для фону екрана.",[3820,21422,21424],{"id":21423},"const-c-mode-dark-dark-light",[3764,21425,21426],{},"const c = mode === 'dark' ? dark : light",[3743,21428,21429,21430,21432,21433,3767,21436,3840],{},"Один об’єкт ",[3764,21431,10750],{}," на рендер — усі ",[3764,21434,21435],{},"c.surface",[3764,21437,21438],{},"c.text",[3820,21440,21442],{"id":21441},"stylesheet-для-геометрії","StyleSheet для геометрії",[3743,21444,21445,3767,21448,3767,21450,21453,21454,21456,21457,3840],{},[3764,21446,21447],{},"padding",[3764,21449,9355],{},[3764,21451,21452],{},"flex"," — у ",[3764,21455,4879],{},". Кольори — у масиві \u002F inline від ",[3764,21458,10750],{},[3820,21460,4187],{"id":21461},"statusbar",[3743,21463,21464,21467,21468,21470,21471,21473,21474,19715,21476,4619],{},[3764,21465,21466],{},"barStyle"," залежить від ",[3764,21469,11034],{}," (у core ",[3764,21472,4187],{},"; у Expo-проєктах часто ",[3764,21475,19589],{},[3764,21477,21478],{},"style=\"light\" | \"dark\"",[3820,21480,21482],{"id":21481},"критерій-готово","Критерій «готово»",[4204,21484,21485,21488,21495],{},[3795,21486,21487],{},"Перемикач реально змінює фон, картку, текст.",[3795,21489,21490,21491,21494],{},"У JSX картки ",[3756,21492,21493],{},"немає"," hex поза палітрами.",[3795,21496,21497],{},"Статус-бар читабельний в обох режимах.",[3820,21499,21501],{"id":21500},"результат-міні-проєкту","Результат міні-проєкту",[4727,21503,21506],{"device":4729,"filename":21504,"title":20433,"height":21505},"ThemeLab.tsx",640,[4374,21507,21509],{"className":4376,"code":21508,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\n\nconst light = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  border: '#E2E8F0',\n  onPrimary: '#FFFFFF',\n};\n\nconst dark = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  border: '#3A3A3C',\n  onPrimary: '#FFFFFF',\n};\n\ntype Mode = 'light' | 'dark';\n\nexport default function App() {\n  const [mode, setMode] = useState\u003CMode>('light');\n  const c = mode === 'dark' ? dark : light;\n\n  return (\n    \u003CView style={[styles.safe, { backgroundColor: c.background }]}>\n      \u003CView style={styles.header}>\n        \u003CText style={[styles.title, { color: c.text }]}>Theme Lab\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 4 }}>\n          Зараз: {mode === 'dark' ? 'темна' : 'світла'} тема\n        \u003C\u002FText>\n      \u003C\u002FView>\n\n      \u003CView style={styles.row}>\n        {(['light', 'dark'] as Mode[]).map((m) => {\n          const active = mode === m;\n          return (\n            \u003CPressable\n              key={m}\n              onPress={() => setMode(m)}\n              style={[\n                styles.chip,\n                {\n                  backgroundColor: active ? c.primary : c.surface,\n                  borderColor: c.border,\n                },\n              ]}\n            >\n              \u003CText\n                style={{\n                  color: active ? c.onPrimary : c.text,\n                  fontWeight: '700',\n                }}\n              >\n                {m === 'light' ? 'Світла' : 'Темна'}\n              \u003C\u002FText>\n            \u003C\u002FPressable>\n          );\n        })}\n      \u003C\u002FView>\n\n      \u003CView\n        style={[\n          styles.card,\n          { backgroundColor: c.surface, borderColor: c.border },\n        ]}\n      >\n        \u003CView style={[styles.avatar, { backgroundColor: c.primary }]}>\n          \u003CText style={{ color: c.onPrimary, fontWeight: '800', fontSize: 22 }}>Н\u003C\u002FText>\n        \u003C\u002FView>\n        \u003CText style={[styles.name, { color: c.text }]}>Мандрівник Nomad\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 6, lineHeight: 20 }}>\n          Кольори картки — семантичні токени. Перемкніть тему: та сама розмітка,\n          інша палітра.\n        \u003C\u002FText>\n      \u003C\u002FView>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  safe: { flex: 1 },\n  header: { paddingHorizontal: 20, paddingTop: 12 },\n  title: { fontSize: 28, fontWeight: '800' },\n  row: {\n    flexDirection: 'row',\n    gap: 10,\n    paddingHorizontal: 20,\n    marginTop: 20,\n  },\n  chip: {\n    paddingHorizontal: 16,\n    paddingVertical: 12,\n    borderRadius: 12,\n    borderWidth: 1,\n  },\n  card: {\n    margin: 20,\n    marginTop: 24,\n    padding: 20,\n    borderRadius: 16,\n    borderWidth: 1,\n  },\n  avatar: {\n    width: 56,\n    height: 56,\n    borderRadius: 28,\n    alignItems: 'center',\n    justifyContent: 'center',\n    marginBottom: 12,\n  },\n  name: { fontSize: 20, fontWeight: '700' },\n});\n",[3764,21510,21511,21527,21555,21559,21567,21575,21583,21591,21599,21607,21615,21623,21627,21631,21639,21647,21655,21663,21671,21679,21687,21695,21699,21703,21719,21723,21735,21761,21785,21789,21795,21831,21853,21897,21931,21955,21963,21971,21975,21997,22029,22045,22051,22057,22069,22091,22101,22111,22115,22139,22151,22155,22161,22165,22171,22181,22205,22213,22219,22223,22243,22251,22259,22263,22269,22277,22281,22287,22297,22307,22331,22337,22341,22377,22425,22433,22477,22517,22521,22525,22533,22541,22549,22553,22557,22561,22577,22589,22607,22625,22631,22639,22647,22655,22663,22667,22673,22681,22689,22697,22705,22709,22715,22723,22731,22739,22747,22755,22759,22765,22773,22781,22789,22797,22805,22813,22817,22835],{"__ignoreMap":4379},[4383,21512,21513,21515,21517,21519,21521,21523,21525],{"class":4385,"line":4386},[4383,21514,4742],{"class":4741},[4383,21516,4745],{"class":4400},[4383,21518,4748],{"class":4412},[4383,21520,4751],{"class":4400},[4383,21522,4754],{"class":4741},[4383,21524,4757],{"class":4433},[4383,21526,4760],{"class":4400},[4383,21528,21529,21531,21533,21535,21537,21539,21541,21543,21545,21547,21549,21551,21553],{"class":4385,"line":4763},[4383,21530,4742],{"class":4741},[4383,21532,4745],{"class":4400},[4383,21534,4198],{"class":4412},[4383,21536,3767],{"class":4400},[4383,21538,4241],{"class":4412},[4383,21540,3767],{"class":4400},[4383,21542,4724],{"class":4412},[4383,21544,3767],{"class":4400},[4383,21546,3803],{"class":4412},[4383,21548,4751],{"class":4400},[4383,21550,4754],{"class":4741},[4383,21552,4788],{"class":4433},[4383,21554,4760],{"class":4400},[4383,21556,21557],{"class":4385,"line":4793},[4383,21558,4797],{"emptyLinePlaceholder":4796},[4383,21560,21561,21563,21565],{"class":4385,"line":4800},[4383,21562,5190],{"class":4404},[4383,21564,10819],{"class":4828},[4383,21566,10822],{"class":4400},[4383,21568,21569,21571,21573],{"class":4385,"line":4819},[4383,21570,10827],{"class":4412},[4383,21572,4434],{"class":4433},[4383,21574,5050],{"class":4400},[4383,21576,21577,21579,21581],{"class":4385,"line":4851},[4383,21578,10836],{"class":4412},[4383,21580,10839],{"class":4433},[4383,21582,5050],{"class":4400},[4383,21584,21585,21587,21589],{"class":4385,"line":4856},[4383,21586,10846],{"class":4412},[4383,21588,10849],{"class":4433},[4383,21590,5050],{"class":4400},[4383,21592,21593,21595,21597],{"class":4385,"line":4865},[4383,21594,10856],{"class":4412},[4383,21596,10859],{"class":4433},[4383,21598,5050],{"class":4400},[4383,21600,21601,21603,21605],{"class":4385,"line":4892},[4383,21602,10866],{"class":4412},[4383,21604,5402],{"class":4433},[4383,21606,5050],{"class":4400},[4383,21608,21609,21611,21613],{"class":4385,"line":4928},[4383,21610,10885],{"class":4412},[4383,21612,5962],{"class":4433},[4383,21614,5050],{"class":4400},[4383,21616,21617,21619,21621],{"class":4385,"line":4952},[4383,21618,10904],{"class":4412},[4383,21620,10839],{"class":4433},[4383,21622,5050],{"class":4400},[4383,21624,21625],{"class":4385,"line":4958},[4383,21626,10913],{"class":4400},[4383,21628,21629],{"class":4385,"line":4968},[4383,21630,4797],{"emptyLinePlaceholder":4796},[4383,21632,21633,21635,21637],{"class":4385,"line":4976},[4383,21634,5190],{"class":4404},[4383,21636,10924],{"class":4828},[4383,21638,10822],{"class":4400},[4383,21640,21641,21643,21645],{"class":4385,"line":5016},[4383,21642,10827],{"class":4412},[4383,21644,10933],{"class":4433},[4383,21646,5050],{"class":4400},[4383,21648,21649,21651,21653],{"class":4385,"line":5039},[4383,21650,10836],{"class":4412},[4383,21652,10942],{"class":4433},[4383,21654,5050],{"class":4400},[4383,21656,21657,21659,21661],{"class":4385,"line":5053},[4383,21658,10846],{"class":4412},[4383,21660,10951],{"class":4433},[4383,21662,5050],{"class":4400},[4383,21664,21665,21667,21669],{"class":4385,"line":5072},[4383,21666,10856],{"class":4412},[4383,21668,10960],{"class":4433},[4383,21670,5050],{"class":4400},[4383,21672,21673,21675,21677],{"class":4385,"line":5089},[4383,21674,10866],{"class":4412},[4383,21676,10969],{"class":4433},[4383,21678,5050],{"class":4400},[4383,21680,21681,21683,21685],{"class":4385,"line":5097},[4383,21682,10885],{"class":4412},[4383,21684,10986],{"class":4433},[4383,21686,5050],{"class":4400},[4383,21688,21689,21691,21693],{"class":4385,"line":5103},[4383,21690,10904],{"class":4412},[4383,21692,10839],{"class":4433},[4383,21694,5050],{"class":4400},[4383,21696,21697],{"class":4385,"line":5152},[4383,21698,10913],{"class":4400},[4383,21700,21701],{"class":4385,"line":5161},[4383,21702,4797],{"emptyLinePlaceholder":4796},[4383,21704,21705,21707,21709,21711,21713,21715,21717],{"class":4385,"line":5171},[4383,21706,15815],{"class":4404},[4383,21708,20209],{"class":4393},[4383,21710,5195],{"class":4400},[4383,21712,11048],{"class":4433},[4383,21714,11051],{"class":4400},[4383,21716,11054],{"class":4433},[4383,21718,4760],{"class":4400},[4383,21720,21721],{"class":4385,"line":5177},[4383,21722,4797],{"emptyLinePlaceholder":4796},[4383,21724,21725,21727,21729,21731,21733],{"class":4385,"line":5182},[4383,21726,4803],{"class":4741},[4383,21728,4806],{"class":4741},[4383,21730,4809],{"class":4404},[4383,21732,4813],{"class":4812},[4383,21734,4816],{"class":4400},[4383,21736,21737,21739,21741,21743,21745,21747,21749,21751,21753,21755,21757,21759],{"class":4385,"line":5187},[4383,21738,4822],{"class":4404},[4383,21740,4825],{"class":4400},[4383,21742,11034],{"class":4828},[4383,21744,3767],{"class":4400},[4383,21746,11039],{"class":4828},[4383,21748,4837],{"class":4400},[4383,21750,4748],{"class":4812},[4383,21752,4390],{"class":4400},[4383,21754,20256],{"class":4393},[4383,21756,11057],{"class":4400},[4383,21758,11048],{"class":4433},[4383,21760,4848],{"class":4400},[4383,21762,21763,21765,21767,21769,21771,21773,21775,21777,21779,21781,21783],{"class":4385,"line":5207},[4383,21764,4822],{"class":4404},[4383,21766,11092],{"class":4828},[4383,21768,5195],{"class":4400},[4383,21770,11034],{"class":4412},[4383,21772,11099],{"class":4400},[4383,21774,11054],{"class":4433},[4383,21776,11104],{"class":4400},[4383,21778,3869],{"class":4412},[4383,21780,11109],{"class":4400},[4383,21782,3862],{"class":4412},[4383,21784,4760],{"class":4400},[4383,21786,21787],{"class":4385,"line":5216},[4383,21788,4797],{"emptyLinePlaceholder":4796},[4383,21790,21791,21793],{"class":4385,"line":5226},[4383,21792,4859],{"class":4741},[4383,21794,4862],{"class":4400},[4383,21796,21797,21799,21801,21803,21805,21807,21809,21811,21813,21815,21817,21819,21821,21823,21825,21827,21829],{"class":4385,"line":5236},[4383,21798,4868],{"class":4389},[4383,21800,4198],{"class":4393},[4383,21802,4397],{"class":4396},[4383,21804,4401],{"class":4400},[4383,21806,4405],{"class":4404},[4383,21808,6278],{"class":4408},[4383,21810,4879],{"class":4412},[4383,21812,3840],{"class":4408},[4383,21814,20318],{"class":4412},[4383,21816,9329],{"class":4408},[4383,21818,4430],{"class":4412},[4383,21820,11092],{"class":4412},[4383,21822,3840],{"class":4408},[4383,21824,9849],{"class":4412},[4383,21826,9341],{"class":4408},[4383,21828,4440],{"class":4404},[4383,21830,4889],{"class":4389},[4383,21832,21833,21835,21837,21839,21841,21843,21845,21847,21849,21851],{"class":4385,"line":5247},[4383,21834,4895],{"class":4389},[4383,21836,4198],{"class":4393},[4383,21838,4397],{"class":4396},[4383,21840,4401],{"class":4400},[4383,21842,4405],{"class":4404},[4383,21844,4879],{"class":4412},[4383,21846,3840],{"class":4408},[4383,21848,20390],{"class":4412},[4383,21850,4440],{"class":4404},[4383,21852,4889],{"class":4389},[4383,21854,21855,21857,21859,21861,21863,21865,21867,21869,21871,21873,21875,21877,21879,21881,21883,21885,21887,21889,21891,21893,21895],{"class":4385,"line":5258},[4383,21856,5106],{"class":4389},[4383,21858,4241],{"class":4393},[4383,21860,4397],{"class":4396},[4383,21862,4401],{"class":4400},[4383,21864,4405],{"class":4404},[4383,21866,6278],{"class":4408},[4383,21868,4879],{"class":4412},[4383,21870,3840],{"class":4408},[4383,21872,4910],{"class":4412},[4383,21874,9329],{"class":4408},[4383,21876,5299],{"class":4412},[4383,21878,11092],{"class":4412},[4383,21880,3840],{"class":4408},[4383,21882,9901],{"class":4412},[4383,21884,9341],{"class":4408},[4383,21886,4440],{"class":4404},[4383,21888,4915],{"class":4389},[4383,21890,20433],{"class":4400},[4383,21892,4921],{"class":4389},[4383,21894,4241],{"class":4393},[4383,21896,4889],{"class":4389},[4383,21898,21899,21901,21903,21905,21907,21909,21911,21913,21915,21917,21919,21921,21923,21925,21927,21929],{"class":4385,"line":5269},[4383,21900,5106],{"class":4389},[4383,21902,4241],{"class":4393},[4383,21904,4397],{"class":4396},[4383,21906,4401],{"class":4400},[4383,21908,4405],{"class":4404},[4383,21910,4409],{"class":4408},[4383,21912,5299],{"class":4412},[4383,21914,11092],{"class":4412},[4383,21916,3840],{"class":4408},[4383,21918,9924],{"class":4412},[4383,21920,3767],{"class":4408},[4383,21922,6885],{"class":4412},[4383,21924,6888],{"class":4416},[4383,21926,4437],{"class":4408},[4383,21928,4440],{"class":4404},[4383,21930,4889],{"class":4389},[4383,21932,21933,21935,21937,21939,21941,21943,21945,21947,21949,21951,21953],{"class":4385,"line":5275},[4383,21934,20478],{"class":4400},[4383,21936,4405],{"class":4404},[4383,21938,11034],{"class":4412},[4383,21940,11294],{"class":4400},[4383,21942,14635],{"class":4433},[4383,21944,5132],{"class":4400},[4383,21946,20491],{"class":4433},[4383,21948,5138],{"class":4400},[4383,21950,20496],{"class":4433},[4383,21952,4440],{"class":4404},[4383,21954,20501],{"class":4400},[4383,21956,21957,21959,21961],{"class":4385,"line":5308},[4383,21958,6338],{"class":4389},[4383,21960,4241],{"class":4393},[4383,21962,4889],{"class":4389},[4383,21964,21965,21967,21969],{"class":4385,"line":5338},[4383,21966,4961],{"class":4389},[4383,21968,4198],{"class":4393},[4383,21970,4889],{"class":4389},[4383,21972,21973],{"class":4385,"line":5346},[4383,21974,4797],{"emptyLinePlaceholder":4796},[4383,21976,21977,21979,21981,21983,21985,21987,21989,21991,21993,21995],{"class":4385,"line":5356},[4383,21978,4895],{"class":4389},[4383,21980,4198],{"class":4393},[4383,21982,4397],{"class":4396},[4383,21984,4401],{"class":4400},[4383,21986,4405],{"class":4404},[4383,21988,4879],{"class":4412},[4383,21990,3840],{"class":4408},[4383,21992,7068],{"class":4412},[4383,21994,4440],{"class":4404},[4383,21996,4889],{"class":4389},[4383,21998,21999,22001,22003,22005,22007,22009,22011,22013,22015,22017,22019,22021,22023,22025,22027],{"class":4385,"line":5367},[4383,22000,7939],{"class":4404},[4383,22002,11246],{"class":4408},[4383,22004,11048],{"class":4433},[4383,22006,3767],{"class":4408},[4383,22008,11054],{"class":4433},[4383,22010,11255],{"class":4408},[4383,22012,11258],{"class":4741},[4383,22014,20209],{"class":4393},[4383,22016,18625],{"class":4408},[4383,22018,11266],{"class":4812},[4383,22020,4995],{"class":4408},[4383,22022,11271],{"class":4412},[4383,22024,5001],{"class":4408},[4383,22026,4989],{"class":4404},[4383,22028,5213],{"class":4408},[4383,22030,22031,22033,22035,22037,22039,22041,22043],{"class":4385,"line":5377},[4383,22032,11282],{"class":4404},[4383,22034,11285],{"class":4828},[4383,22036,11288],{"class":4400},[4383,22038,11291],{"class":4412},[4383,22040,11294],{"class":4400},[4383,22042,11297],{"class":4412},[4383,22044,4760],{"class":4408},[4383,22046,22047,22049],{"class":4385,"line":5387},[4383,22048,11304],{"class":4741},[4383,22050,4862],{"class":4408},[4383,22052,22053,22055],{"class":4385,"line":5392},[4383,22054,8303],{"class":4389},[4383,22056,4973],{"class":4393},[4383,22058,22059,22061,22063,22065,22067],{"class":4385,"line":5407},[4383,22060,11317],{"class":4396},[4383,22062,4401],{"class":4400},[4383,22064,4405],{"class":4404},[4383,22066,11271],{"class":4412},[4383,22068,5013],{"class":4404},[4383,22070,22071,22073,22075,22077,22079,22081,22083,22085,22087,22089],{"class":4385,"line":5423},[4383,22072,11330],{"class":4396},[4383,22074,4401],{"class":4400},[4383,22076,4405],{"class":4404},[4383,22078,4986],{"class":4408},[4383,22080,4989],{"class":4404},[4383,22082,11341],{"class":4812},[4383,22084,4842],{"class":4408},[4383,22086,11271],{"class":4412},[4383,22088,4141],{"class":4408},[4383,22090,5013],{"class":4404},[4383,22092,22093,22095,22097,22099],{"class":4385,"line":5450},[4383,22094,11354],{"class":4396},[4383,22096,4401],{"class":4400},[4383,22098,4405],{"class":4404},[4383,22100,9394],{"class":4408},[4383,22102,22103,22105,22107,22109],{"class":4385,"line":6760},[4383,22104,11365],{"class":4412},[4383,22106,3840],{"class":4408},[4383,22108,11370],{"class":4412},[4383,22110,5050],{"class":4408},[4383,22112,22113],{"class":4385,"line":6765},[4383,22114,11377],{"class":4408},[4383,22116,22117,22119,22121,22123,22125,22127,22129,22131,22133,22135,22137],{"class":4385,"line":6793},[4383,22118,11382],{"class":4412},[4383,22120,11285],{"class":4412},[4383,22122,5132],{"class":4400},[4383,22124,11092],{"class":4412},[4383,22126,3840],{"class":4408},[4383,22128,9747],{"class":4412},[4383,22130,5138],{"class":4400},[4383,22132,11092],{"class":4412},[4383,22134,3840],{"class":4408},[4383,22136,3891],{"class":4412},[4383,22138,5050],{"class":4408},[4383,22140,22141,22143,22145,22147,22149],{"class":4385,"line":6801},[4383,22142,11407],{"class":4412},[4383,22144,11092],{"class":4412},[4383,22146,3840],{"class":4408},[4383,22148,10000],{"class":4412},[4383,22150,5050],{"class":4408},[4383,22152,22153],{"class":4385,"line":6811},[4383,22154,11420],{"class":4408},[4383,22156,22157,22159],{"class":4385,"line":6820},[4383,22158,11425],{"class":4408},[4383,22160,5013],{"class":4404},[4383,22162,22163],{"class":4385,"line":6829},[4383,22164,11432],{"class":4389},[4383,22166,22167,22169],{"class":4385,"line":6834},[4383,22168,11437],{"class":4389},[4383,22170,11440],{"class":4393},[4383,22172,22173,22175,22177,22179],{"class":4385,"line":6860},[4383,22174,11445],{"class":4396},[4383,22176,4401],{"class":4400},[4383,22178,4405],{"class":4404},[4383,22180,6455],{"class":4408},[4383,22182,22183,22185,22187,22189,22191,22193,22195,22197,22199,22201,22203],{"class":4385,"line":6893},[4383,22184,11456],{"class":4412},[4383,22186,11285],{"class":4412},[4383,22188,5132],{"class":4400},[4383,22190,11092],{"class":4412},[4383,22192,3840],{"class":4408},[4383,22194,9978],{"class":4412},[4383,22196,5138],{"class":4400},[4383,22198,11092],{"class":4412},[4383,22200,3840],{"class":4408},[4383,22202,9901],{"class":4412},[4383,22204,5050],{"class":4408},[4383,22206,22207,22209,22211],{"class":4385,"line":8399},[4383,22208,11481],{"class":4412},[4383,22210,5294],{"class":4433},[4383,22212,5050],{"class":4408},[4383,22214,22215,22217],{"class":4385,"line":8418},[4383,22216,11499],{"class":4408},[4383,22218,5013],{"class":4404},[4383,22220,22221],{"class":4385,"line":8429},[4383,22222,11506],{"class":4389},[4383,22224,22225,22227,22229,22231,22233,22235,22237,22239,22241],{"class":4385,"line":8445},[4383,22226,11511],{"class":4404},[4383,22228,11271],{"class":4412},[4383,22230,11294],{"class":4400},[4383,22232,11518],{"class":4433},[4383,22234,5132],{"class":4400},[4383,22236,11523],{"class":4433},[4383,22238,5138],{"class":4400},[4383,22240,11528],{"class":4433},[4383,22242,5013],{"class":4404},[4383,22244,22245,22247,22249],{"class":4385,"line":8460},[4383,22246,11535],{"class":4389},[4383,22248,4241],{"class":4393},[4383,22250,4889],{"class":4389},[4383,22252,22253,22255,22257],{"class":4385,"line":8467},[4383,22254,11544],{"class":4389},[4383,22256,4724],{"class":4393},[4383,22258,4889],{"class":4389},[4383,22260,22261],{"class":4385,"line":8472},[4383,22262,11553],{"class":4408},[4383,22264,22265,22267],{"class":4385,"line":8495},[4383,22266,11558],{"class":4408},[4383,22268,5013],{"class":4404},[4383,22270,22271,22273,22275],{"class":4385,"line":8515},[4383,22272,4961],{"class":4389},[4383,22274,4198],{"class":4393},[4383,22276,4889],{"class":4389},[4383,22278,22279],{"class":4385,"line":8524},[4383,22280,4797],{"emptyLinePlaceholder":4796},[4383,22282,22283,22285],{"class":4385,"line":8533},[4383,22284,4895],{"class":4389},[4383,22286,6443],{"class":4393},[4383,22288,22289,22291,22293,22295],{"class":4385,"line":8538},[4383,22290,5019],{"class":4396},[4383,22292,4401],{"class":4400},[4383,22294,4405],{"class":4404},[4383,22296,9394],{"class":4408},[4383,22298,22299,22301,22303,22305],{"class":4385,"line":8561},[4383,22300,5042],{"class":4412},[4383,22302,3840],{"class":4408},[4383,22304,6227],{"class":4412},[4383,22306,5050],{"class":4408},[4383,22308,22309,22311,22313,22315,22317,22319,22321,22323,22325,22327,22329],{"class":4385,"line":8567},[4383,22310,11703],{"class":4408},[4383,22312,4430],{"class":4412},[4383,22314,11092],{"class":4412},[4383,22316,3840],{"class":4408},[4383,22318,3891],{"class":4412},[4383,22320,3767],{"class":4408},[4383,22322,11716],{"class":4412},[4383,22324,11092],{"class":4412},[4383,22326,3840],{"class":4408},[4383,22328,10000],{"class":4412},[4383,22330,5305],{"class":4408},[4383,22332,22333,22335],{"class":4385,"line":8576},[4383,22334,5092],{"class":4408},[4383,22336,5013],{"class":4404},[4383,22338,22339],{"class":4385,"line":8585},[4383,22340,5100],{"class":4389},[4383,22342,22343,22345,22347,22349,22351,22353,22355,22357,22359,22361,22363,22365,22367,22369,22371,22373,22375],{"class":4385,"line":8590},[4383,22344,5106],{"class":4389},[4383,22346,4198],{"class":4393},[4383,22348,4397],{"class":4396},[4383,22350,4401],{"class":4400},[4383,22352,4405],{"class":4404},[4383,22354,6278],{"class":4408},[4383,22356,4879],{"class":4412},[4383,22358,3840],{"class":4408},[4383,22360,20908],{"class":4412},[4383,22362,9329],{"class":4408},[4383,22364,4430],{"class":4412},[4383,22366,11092],{"class":4412},[4383,22368,3840],{"class":4408},[4383,22370,9747],{"class":4412},[4383,22372,9341],{"class":4408},[4383,22374,4440],{"class":4404},[4383,22376,4889],{"class":4389},[4383,22378,22379,22381,22383,22385,22387,22389,22391,22393,22395,22397,22399,22401,22403,22405,22407,22409,22411,22413,22415,22417,22419,22421,22423],{"class":4385,"line":8595},[4383,22380,6305],{"class":4389},[4383,22382,4241],{"class":4393},[4383,22384,4397],{"class":4396},[4383,22386,4401],{"class":4400},[4383,22388,4405],{"class":4404},[4383,22390,4409],{"class":4408},[4383,22392,5299],{"class":4412},[4383,22394,11092],{"class":4412},[4383,22396,3840],{"class":4408},[4383,22398,9978],{"class":4412},[4383,22400,3767],{"class":4408},[4383,22402,5291],{"class":4412},[4383,22404,5920],{"class":4433},[4383,22406,3767],{"class":4408},[4383,22408,5283],{"class":4412},[4383,22410,5913],{"class":4416},[4383,22412,4437],{"class":4408},[4383,22414,4440],{"class":4404},[4383,22416,4915],{"class":4389},[4383,22418,20967],{"class":4400},[4383,22420,4921],{"class":4389},[4383,22422,4241],{"class":4393},[4383,22424,4889],{"class":4389},[4383,22426,22427,22429,22431],{"class":4385,"line":8600},[4383,22428,6338],{"class":4389},[4383,22430,4198],{"class":4393},[4383,22432,4889],{"class":4389},[4383,22434,22435,22437,22439,22441,22443,22445,22447,22449,22451,22453,22455,22457,22459,22461,22463,22465,22467,22469,22471,22473,22475],{"class":4385,"line":8617},[4383,22436,5106],{"class":4389},[4383,22438,4241],{"class":4393},[4383,22440,4397],{"class":4396},[4383,22442,4401],{"class":4400},[4383,22444,4405],{"class":4404},[4383,22446,6278],{"class":4408},[4383,22448,4879],{"class":4412},[4383,22450,3840],{"class":4408},[4383,22452,8134],{"class":4412},[4383,22454,9329],{"class":4408},[4383,22456,5299],{"class":4412},[4383,22458,11092],{"class":4412},[4383,22460,3840],{"class":4408},[4383,22462,9901],{"class":4412},[4383,22464,9341],{"class":4408},[4383,22466,4440],{"class":4404},[4383,22468,4915],{"class":4389},[4383,22470,21020],{"class":4400},[4383,22472,4921],{"class":4389},[4383,22474,4241],{"class":4393},[4383,22476,4889],{"class":4389},[4383,22478,22479,22481,22483,22485,22487,22489,22491,22493,22495,22497,22499,22501,22503,22505,22507,22509,22511,22513,22515],{"class":4385,"line":8624},[4383,22480,5106],{"class":4389},[4383,22482,4241],{"class":4393},[4383,22484,4397],{"class":4396},[4383,22486,4401],{"class":4400},[4383,22488,4405],{"class":4404},[4383,22490,4409],{"class":4408},[4383,22492,5299],{"class":4412},[4383,22494,11092],{"class":4412},[4383,22496,3840],{"class":4408},[4383,22498,9924],{"class":4412},[4383,22500,3767],{"class":4408},[4383,22502,6885],{"class":4412},[4383,22504,6008],{"class":4416},[4383,22506,3767],{"class":4408},[4383,22508,5330],{"class":4412},[4383,22510,5286],{"class":4416},[4383,22512,4437],{"class":4408},[4383,22514,4440],{"class":4404},[4383,22516,4889],{"class":4389},[4383,22518,22519],{"class":4385,"line":8633},[4383,22520,21071],{"class":4400},[4383,22522,22523],{"class":4385,"line":8642},[4383,22524,21076],{"class":4400},[4383,22526,22527,22529,22531],{"class":4385,"line":8651},[4383,22528,6338],{"class":4389},[4383,22530,4241],{"class":4393},[4383,22532,4889],{"class":4389},[4383,22534,22535,22537,22539],{"class":4385,"line":8660},[4383,22536,4961],{"class":4389},[4383,22538,4198],{"class":4393},[4383,22540,4889],{"class":4389},[4383,22542,22543,22545,22547],{"class":4385,"line":8669},[4383,22544,5164],{"class":4389},[4383,22546,4198],{"class":4393},[4383,22548,4889],{"class":4389},[4383,22550,22551],{"class":4385,"line":8674},[4383,22552,5174],{"class":4400},[4383,22554,22555],{"class":4385,"line":8687},[4383,22556,5013],{"class":4400},[4383,22558,22559],{"class":4385,"line":8707},[4383,22560,4797],{"emptyLinePlaceholder":4796},[4383,22562,22563,22565,22567,22569,22571,22573,22575],{"class":4385,"line":8737},[4383,22564,5190],{"class":4404},[4383,22566,5062],{"class":4828},[4383,22568,5195],{"class":4400},[4383,22570,3803],{"class":4412},[4383,22572,3840],{"class":4400},[4383,22574,4495],{"class":4812},[4383,22576,5204],{"class":4400},[4383,22578,22579,22581,22583,22585,22587],{"class":4385,"line":8744},[4383,22580,21133],{"class":4412},[4383,22582,4745],{"class":4400},[4383,22584,4413],{"class":4412},[4383,22586,4417],{"class":4416},[4383,22588,5305],{"class":4400},[4383,22590,22591,22593,22595,22597,22599,22601,22603,22605],{"class":4385,"line":8753},[4383,22592,21146],{"class":4412},[4383,22594,4745],{"class":4400},[4383,22596,7448],{"class":4412},[4383,22598,5286],{"class":4416},[4383,22600,3767],{"class":4400},[4383,22602,21157],{"class":4412},[4383,22604,5264],{"class":4416},[4383,22606,5305],{"class":4400},[4383,22608,22609,22611,22613,22615,22617,22619,22621,22623],{"class":4385,"line":8762},[4383,22610,5278],{"class":4412},[4383,22612,4745],{"class":4400},[4383,22614,5283],{"class":4412},[4383,22616,21172],{"class":4416},[4383,22618,3767],{"class":4400},[4383,22620,5291],{"class":4412},[4383,22622,5920],{"class":4433},[4383,22624,5305],{"class":4400},[4383,22626,22627,22629],{"class":4385,"line":8771},[4383,22628,7443],{"class":4412},[4383,22630,5213],{"class":4400},[4383,22632,22633,22635,22637],{"class":4385,"line":8780},[4383,22634,21191],{"class":4412},[4383,22636,12635],{"class":4433},[4383,22638,5050],{"class":4400},[4383,22640,22641,22643,22645],{"class":4385,"line":8789},[4383,22642,5261],{"class":4412},[4383,22644,6670],{"class":4416},[4383,22646,5050],{"class":4400},[4383,22648,22649,22651,22653],{"class":4385,"line":8800},[4383,22650,12658],{"class":4412},[4383,22652,5286],{"class":4416},[4383,22654,5050],{"class":4400},[4383,22656,22657,22659,22661],{"class":4385,"line":8809},[4383,22658,15246],{"class":4412},[4383,22660,5286],{"class":4416},[4383,22662,5050],{"class":4400},[4383,22664,22665],{"class":4385,"line":8814},[4383,22666,5272],{"class":4400},[4383,22668,22669,22671],{"class":4385,"line":8841},[4383,22670,12650],{"class":4412},[4383,22672,5213],{"class":4400},[4383,22674,22675,22677,22679],{"class":4385,"line":8873},[4383,22676,12658],{"class":4412},[4383,22678,4425],{"class":4416},[4383,22680,5050],{"class":4400},[4383,22682,22683,22685,22687],{"class":4385,"line":8905},[4383,22684,5359],{"class":4412},[4383,22686,5264],{"class":4416},[4383,22688,5050],{"class":4400},[4383,22690,22691,22693,22695],{"class":4385,"line":8912},[4383,22692,5370],{"class":4412},[4383,22694,5264],{"class":4416},[4383,22696,5050],{"class":4400},[4383,22698,22699,22701,22703],{"class":4385,"line":8925},[4383,22700,5950],{"class":4412},[4383,22702,4417],{"class":4416},[4383,22704,5050],{"class":4400},[4383,22706,22707],{"class":4385,"line":8935},[4383,22708,5272],{"class":4400},[4383,22710,22711,22713],{"class":4385,"line":8945},[4383,22712,6702],{"class":4412},[4383,22714,5213],{"class":4400},[4383,22716,22717,22719,22721],{"class":4385,"line":8950},[4383,22718,21276],{"class":4412},[4383,22720,5286],{"class":4416},[4383,22722,5050],{"class":4400},[4383,22724,22725,22727,22729],{"class":4385,"line":8969},[4383,22726,15246],{"class":4412},[4383,22728,5242],{"class":4416},[4383,22730,5050],{"class":4400},[4383,22732,22733,22735,22737],{"class":4385,"line":8977},[4383,22734,5239],{"class":4412},[4383,22736,5286],{"class":4416},[4383,22738,5050],{"class":4400},[4383,22740,22741,22743,22745],{"class":4385,"line":8987},[4383,22742,5370],{"class":4412},[4383,22744,4425],{"class":4416},[4383,22746,5050],{"class":4400},[4383,22748,22749,22751,22753],{"class":4385,"line":8996},[4383,22750,5950],{"class":4412},[4383,22752,4417],{"class":4416},[4383,22754,5050],{"class":4400},[4383,22756,22757],{"class":4385,"line":9005},[4383,22758,5272],{"class":4400},[4383,22760,22761,22763],{"class":4385,"line":9010},[4383,22762,21321],{"class":4412},[4383,22764,5213],{"class":4400},[4383,22766,22767,22769,22771],{"class":4385,"line":9036},[4383,22768,21328],{"class":4412},[4383,22770,21331],{"class":4416},[4383,22772,5050],{"class":4400},[4383,22774,22775,22777,22779],{"class":4385,"line":9043},[4383,22776,6709],{"class":4412},[4383,22778,21331],{"class":4416},[4383,22780,5050],{"class":4400},[4383,22782,22783,22785,22787],{"class":4385,"line":9052},[4383,22784,5370],{"class":4412},[4383,22786,21172],{"class":4416},[4383,22788,5050],{"class":4400},[4383,22790,22791,22793,22795],{"class":4385,"line":9061},[4383,22792,5380],{"class":4412},[4383,22794,5253],{"class":4433},[4383,22796,5050],{"class":4400},[4383,22798,22799,22801,22803],{"class":4385,"line":9070},[4383,22800,5250],{"class":4412},[4383,22802,5253],{"class":4433},[4383,22804,5050],{"class":4400},[4383,22806,22807,22809,22811],{"class":4385,"line":9079},[4383,22808,21370],{"class":4412},[4383,22810,5264],{"class":4416},[4383,22812,5050],{"class":4400},[4383,22814,22815],{"class":4385,"line":9084},[4383,22816,5272],{"class":4400},[4383,22818,22819,22821,22823,22825,22827,22829,22831,22833],{"class":4385,"line":9097},[4383,22820,8844],{"class":4412},[4383,22822,4745],{"class":4400},[4383,22824,5283],{"class":4412},[4383,22826,5286],{"class":4416},[4383,22828,3767],{"class":4400},[4383,22830,5291],{"class":4412},[4383,22832,5294],{"class":4433},[4383,22834,5305],{"class":4400},[4383,22836,22837],{"class":4385,"line":9110},[4383,22838,5453],{"class":4400},[4021,22840],{},[3738,22842,22844],{"id":22843},"nomad-light-dark-семантичні-токени","Nomad: light \u002F dark + семантичні токени",[3743,22846,22847],{},[3746,22848],{"alt":22849,"className":22850,"src":22851},"Чіпи теми на home Nomad",[3750],"\u002Fimages\u002Freact-native\u002Fstylesheet-and-theming\u002F04.svg",[3820,22853,22855],{"id":22854},"навіщо-користувачу","Навіщо користувачу",[3743,22857,22858,22859,22862],{},"У метро ввечері білий екран сліпить. Nomad має слідувати системі або примусовій light\u002Fdark і малювати UI з ",[3756,22860,22861],{},"однієї"," семантичної палітри.",[3820,22864,22866],{"id":22865},"нитка-проєкту","Нитка проєкту",[3743,22868,22869,22872,22873,22876],{},[3756,22870,22871],{},"Уже є"," (з попередніх статей — ",[3756,22874,22875],{},"не викидаємо","):",[4204,22878,22879,22882],{},[3795,22880,22881],{},"Shell home: header + ScrollView зі стрічкою + sticky «Нова поїздка» (07).",[3795,22883,22884,22885,22887,22888,22890],{},"Кольори з ",[3756,22886,22861],{}," світлої палітри в ",[3764,22889,3782],{}," (темна тема ще не працювала).",[3743,22892,22893],{},[3756,22894,22895],{},"Додаємо в цій статті:",[4204,22897,22898,22908,22923,22930],{},[3795,22899,22900,22903,22904,3982,22906,3840],{},[3764,22901,22902],{},"colors.ts"," — light\u002Fdark палітри; ",[3764,22905,3981],{},[3764,22907,3985],{},[3795,22909,22910,22911,3767,22913,3767,22915,3863,22917,22919,22920,22922],{},"Примітиви (",[3764,22912,15417],{},[3764,22914,12961],{},[3764,22916,15412],{},[3764,22918,9742],{}," читають ",[3764,22921,13941],{}," з теми.",[3795,22924,22925,22926,22929],{},"На home — ",[3756,22927,22928],{},"чіпи"," Система \u002F Світла \u002F Темна (лишаються в шапці).",[3795,22931,22932,22934,22935,3840],{},[3764,22933,4187],{}," підлаштовується під scheme у ",[3764,22936,22937],{},"_layout",[3820,22939,22941],{"id":22940},"повний-знімок-проєкту-після-цієї-статті","Повний знімок проєкту після цієї статті",[4278,22943,22944,19715,22947,22953,22954,22957,22958,22961],{},[3756,22945,22946],{},"Готовий код 1:1",[22948,22949,3989],"a",{"href":22950,"rel":22951},"https:\u002F\u002Fgithub.com\u002Farakviel\u002Fnomad",[22952],"nofollow",". Найшвидший шлях: ",[3764,22955,22956],{},"git pull"," у клоні репо. Нижче — ",[3756,22959,22960],{},"весь"," проєкт на момент цієї статті (усі файли з кодом), не фрагмент «лише нові папки». Клік по файлу в дереві → повний вміст для копіпасту.",[4374,22963,22965],{"className":19926,"code":22964,"language":19928,"meta":4379,"style":4379},"cd \u002Fpath\u002Fto\u002Fnomad\ngit pull\nnpm install\nnpx expo start\n",[3764,22966,22967,22974,22982,22990],{"__ignoreMap":4379},[4383,22968,22969,22971],{"class":4385,"line":4386},[4383,22970,19952],{"class":4812},[4383,22972,22973],{"class":4433}," \u002Fpath\u002Fto\u002Fnomad\n",[4383,22975,22976,22979],{"class":4385,"line":4763},[4383,22977,22978],{"class":4812},"git",[4383,22980,22981],{"class":4433}," pull\n",[4383,22983,22984,22987],{"class":4385,"line":4793},[4383,22985,22986],{"class":4812},"npm",[4383,22988,22989],{"class":4433}," install\n",[4383,22991,22992,22994,22996],{"class":4385,"line":4800},[4383,22993,19935],{"class":4812},[4383,22995,19962],{"class":4433},[4383,22997,19965],{"class":4433},[22999,23000,23001,23272,23552,23654,23908,25949,26009,26223,26298,27448,28319,28655,28792,29168,29765,30327,30625],"code-tree",{},[4374,23002,23007],{"className":23003,"code":23004,"filename":23005,"language":23006,"meta":4379,"style":4379},"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    \"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","package.json","json",[3764,23008,23009,23013,23026,23038,23050,23058,23070,23082,23094,23104,23108,23115,23127,23139,23151,23163,23175,23187,23199,23211,23221,23225,23232,23244,23254,23258,23268],{"__ignoreMap":4379},[4383,23010,23011],{"class":4385,"line":4386},[4383,23012,6455],{"class":4400},[4383,23014,23015,23019,23021,23024],{"class":4385,"line":4763},[4383,23016,23018],{"class":23017},"sLwNe","  \"name\"",[4383,23020,13879],{"class":4400},[4383,23022,23023],{"class":4433},"\"nomad\"",[4383,23025,5050],{"class":4400},[4383,23027,23028,23031,23033,23036],{"class":4385,"line":4793},[4383,23029,23030],{"class":23017},"  \"version\"",[4383,23032,13879],{"class":4400},[4383,23034,23035],{"class":4433},"\"1.0.0\"",[4383,23037,5050],{"class":4400},[4383,23039,23040,23043,23045,23048],{"class":4385,"line":4800},[4383,23041,23042],{"class":23017},"  \"main\"",[4383,23044,13879],{"class":4400},[4383,23046,23047],{"class":4433},"\"expo-router\u002Fentry\"",[4383,23049,5050],{"class":4400},[4383,23051,23052,23055],{"class":4385,"line":4819},[4383,23053,23054],{"class":23017},"  \"scripts\"",[4383,23056,23057],{"class":4400},": {\n",[4383,23059,23060,23063,23065,23068],{"class":4385,"line":4851},[4383,23061,23062],{"class":23017},"    \"start\"",[4383,23064,13879],{"class":4400},[4383,23066,23067],{"class":4433},"\"expo start\"",[4383,23069,5050],{"class":4400},[4383,23071,23072,23075,23077,23080],{"class":4385,"line":4856},[4383,23073,23074],{"class":23017},"    \"android\"",[4383,23076,13879],{"class":4400},[4383,23078,23079],{"class":4433},"\"expo start --android\"",[4383,23081,5050],{"class":4400},[4383,23083,23084,23087,23089,23092],{"class":4385,"line":4865},[4383,23085,23086],{"class":23017},"    \"ios\"",[4383,23088,13879],{"class":4400},[4383,23090,23091],{"class":4433},"\"expo start --ios\"",[4383,23093,5050],{"class":4400},[4383,23095,23096,23099,23101],{"class":4385,"line":4892},[4383,23097,23098],{"class":23017},"    \"web\"",[4383,23100,13879],{"class":4400},[4383,23102,23103],{"class":4433},"\"expo start --web\"\n",[4383,23105,23106],{"class":4385,"line":4928},[4383,23107,5272],{"class":4400},[4383,23109,23110,23113],{"class":4385,"line":4952},[4383,23111,23112],{"class":23017},"  \"dependencies\"",[4383,23114,23057],{"class":4400},[4383,23116,23117,23120,23122,23125],{"class":4385,"line":4958},[4383,23118,23119],{"class":23017},"    \"expo\"",[4383,23121,13879],{"class":4400},[4383,23123,23124],{"class":4433},"\"~54.0.35\"",[4383,23126,5050],{"class":4400},[4383,23128,23129,23132,23134,23137],{"class":4385,"line":4968},[4383,23130,23131],{"class":23017},"    \"expo-constants\"",[4383,23133,13879],{"class":4400},[4383,23135,23136],{"class":4433},"\"~18.0.13\"",[4383,23138,5050],{"class":4400},[4383,23140,23141,23144,23146,23149],{"class":4385,"line":4976},[4383,23142,23143],{"class":23017},"    \"expo-linking\"",[4383,23145,13879],{"class":4400},[4383,23147,23148],{"class":4433},"\"~8.0.12\"",[4383,23150,5050],{"class":4400},[4383,23152,23153,23156,23158,23161],{"class":4385,"line":5016},[4383,23154,23155],{"class":23017},"    \"expo-router\"",[4383,23157,13879],{"class":4400},[4383,23159,23160],{"class":4433},"\"~6.0.24\"",[4383,23162,5050],{"class":4400},[4383,23164,23165,23168,23170,23173],{"class":4385,"line":5039},[4383,23166,23167],{"class":23017},"    \"expo-status-bar\"",[4383,23169,13879],{"class":4400},[4383,23171,23172],{"class":4433},"\"~3.0.9\"",[4383,23174,5050],{"class":4400},[4383,23176,23177,23180,23182,23185],{"class":4385,"line":5053},[4383,23178,23179],{"class":23017},"    \"react\"",[4383,23181,13879],{"class":4400},[4383,23183,23184],{"class":4433},"\"19.1.0\"",[4383,23186,5050],{"class":4400},[4383,23188,23189,23192,23194,23197],{"class":4385,"line":5072},[4383,23190,23191],{"class":23017},"    \"react-native\"",[4383,23193,13879],{"class":4400},[4383,23195,23196],{"class":4433},"\"0.81.5\"",[4383,23198,5050],{"class":4400},[4383,23200,23201,23204,23206,23209],{"class":4385,"line":5089},[4383,23202,23203],{"class":23017},"    \"react-native-safe-area-context\"",[4383,23205,13879],{"class":4400},[4383,23207,23208],{"class":4433},"\"~5.6.0\"",[4383,23210,5050],{"class":4400},[4383,23212,23213,23216,23218],{"class":4385,"line":5097},[4383,23214,23215],{"class":23017},"    \"react-native-screens\"",[4383,23217,13879],{"class":4400},[4383,23219,23220],{"class":4433},"\"~4.16.0\"\n",[4383,23222,23223],{"class":4385,"line":5103},[4383,23224,5272],{"class":4400},[4383,23226,23227,23230],{"class":4385,"line":5152},[4383,23228,23229],{"class":23017},"  \"devDependencies\"",[4383,23231,23057],{"class":4400},[4383,23233,23234,23237,23239,23242],{"class":4385,"line":5161},[4383,23235,23236],{"class":23017},"    \"@types\u002Freact\"",[4383,23238,13879],{"class":4400},[4383,23240,23241],{"class":4433},"\"~19.1.0\"",[4383,23243,5050],{"class":4400},[4383,23245,23246,23249,23251],{"class":4385,"line":5171},[4383,23247,23248],{"class":23017},"    \"typescript\"",[4383,23250,13879],{"class":4400},[4383,23252,23253],{"class":4433},"\"~5.9.2\"\n",[4383,23255,23256],{"class":4385,"line":5177},[4383,23257,5272],{"class":4400},[4383,23259,23260,23263,23265],{"class":4385,"line":5182},[4383,23261,23262],{"class":23017},"  \"private\"",[4383,23264,13879],{"class":4400},[4383,23266,23267],{"class":4404},"true\n",[4383,23269,23270],{"class":4385,"line":5187},[4383,23271,5013],{"class":4400},[4374,23273,23276],{"className":23003,"code":23274,"filename":23275,"language":23006,"meta":4379,"style":4379},"{\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",[3764,23277,23278,23282,23289,23301,23312,23323,23335,23347,23359,23370,23382,23389,23401,23413,23423,23427,23433,23442,23446,23452,23459,23471,23480,23485,23496,23506,23510,23516,23526,23530,23544,23548],{"__ignoreMap":4379},[4383,23279,23280],{"class":4385,"line":4386},[4383,23281,6455],{"class":4400},[4383,23283,23284,23287],{"class":4385,"line":4763},[4383,23285,23286],{"class":23017},"  \"expo\"",[4383,23288,23057],{"class":4400},[4383,23290,23291,23294,23296,23299],{"class":4385,"line":4793},[4383,23292,23293],{"class":23017},"    \"name\"",[4383,23295,13879],{"class":4400},[4383,23297,23298],{"class":4433},"\"Nomad\"",[4383,23300,5050],{"class":4400},[4383,23302,23303,23306,23308,23310],{"class":4385,"line":4800},[4383,23304,23305],{"class":23017},"    \"slug\"",[4383,23307,13879],{"class":4400},[4383,23309,23023],{"class":4433},[4383,23311,5050],{"class":4400},[4383,23313,23314,23317,23319,23321],{"class":4385,"line":4819},[4383,23315,23316],{"class":23017},"    \"version\"",[4383,23318,13879],{"class":4400},[4383,23320,23035],{"class":4433},[4383,23322,5050],{"class":4400},[4383,23324,23325,23328,23330,23333],{"class":4385,"line":4851},[4383,23326,23327],{"class":23017},"    \"orientation\"",[4383,23329,13879],{"class":4400},[4383,23331,23332],{"class":4433},"\"portrait\"",[4383,23334,5050],{"class":4400},[4383,23336,23337,23340,23342,23345],{"class":4385,"line":4856},[4383,23338,23339],{"class":23017},"    \"icon\"",[4383,23341,13879],{"class":4400},[4383,23343,23344],{"class":4433},"\".\u002Fassets\u002Ficon.png\"",[4383,23346,5050],{"class":4400},[4383,23348,23349,23352,23354,23357],{"class":4385,"line":4865},[4383,23350,23351],{"class":23017},"    \"userInterfaceStyle\"",[4383,23353,13879],{"class":4400},[4383,23355,23356],{"class":4433},"\"light\"",[4383,23358,5050],{"class":4400},[4383,23360,23361,23364,23366,23368],{"class":4385,"line":4892},[4383,23362,23363],{"class":23017},"    \"scheme\"",[4383,23365,13879],{"class":4400},[4383,23367,23023],{"class":4433},[4383,23369,5050],{"class":4400},[4383,23371,23372,23375,23377,23380],{"class":4385,"line":4928},[4383,23373,23374],{"class":23017},"    \"newArchEnabled\"",[4383,23376,13879],{"class":4400},[4383,23378,23379],{"class":4404},"true",[4383,23381,5050],{"class":4400},[4383,23383,23384,23387],{"class":4385,"line":4952},[4383,23385,23386],{"class":23017},"    \"splash\"",[4383,23388,23057],{"class":4400},[4383,23390,23391,23394,23396,23399],{"class":4385,"line":4958},[4383,23392,23393],{"class":23017},"      \"image\"",[4383,23395,13879],{"class":4400},[4383,23397,23398],{"class":4433},"\".\u002Fassets\u002Fsplash-icon.png\"",[4383,23400,5050],{"class":4400},[4383,23402,23403,23406,23408,23411],{"class":4385,"line":4968},[4383,23404,23405],{"class":23017},"      \"resizeMode\"",[4383,23407,13879],{"class":4400},[4383,23409,23410],{"class":4433},"\"contain\"",[4383,23412,5050],{"class":4400},[4383,23414,23415,23418,23420],{"class":4385,"line":4976},[4383,23416,23417],{"class":23017},"      \"backgroundColor\"",[4383,23419,13879],{"class":4400},[4383,23421,23422],{"class":4433},"\"#ffffff\"\n",[4383,23424,23425],{"class":4385,"line":5016},[4383,23426,17409],{"class":4400},[4383,23428,23429,23431],{"class":4385,"line":5039},[4383,23430,23086],{"class":23017},[4383,23432,23057],{"class":4400},[4383,23434,23435,23438,23440],{"class":4385,"line":5053},[4383,23436,23437],{"class":23017},"      \"supportsTablet\"",[4383,23439,13879],{"class":4400},[4383,23441,23267],{"class":4404},[4383,23443,23444],{"class":4385,"line":5072},[4383,23445,17409],{"class":4400},[4383,23447,23448,23450],{"class":4385,"line":5089},[4383,23449,23074],{"class":23017},[4383,23451,23057],{"class":4400},[4383,23453,23454,23457],{"class":4385,"line":5097},[4383,23455,23456],{"class":23017},"      \"adaptiveIcon\"",[4383,23458,23057],{"class":4400},[4383,23460,23461,23464,23466,23469],{"class":4385,"line":5103},[4383,23462,23463],{"class":23017},"        \"foregroundImage\"",[4383,23465,13879],{"class":4400},[4383,23467,23468],{"class":4433},"\".\u002Fassets\u002Fadaptive-icon.png\"",[4383,23470,5050],{"class":4400},[4383,23472,23473,23476,23478],{"class":4385,"line":5152},[4383,23474,23475],{"class":23017},"        \"backgroundColor\"",[4383,23477,13879],{"class":4400},[4383,23479,23422],{"class":4433},[4383,23481,23482],{"class":4385,"line":5161},[4383,23483,23484],{"class":4400},"      },\n",[4383,23486,23487,23490,23492,23494],{"class":4385,"line":5171},[4383,23488,23489],{"class":23017},"      \"edgeToEdgeEnabled\"",[4383,23491,13879],{"class":4400},[4383,23493,23379],{"class":4404},[4383,23495,5050],{"class":4400},[4383,23497,23498,23501,23503],{"class":4385,"line":5177},[4383,23499,23500],{"class":23017},"      \"predictiveBackGestureEnabled\"",[4383,23502,13879],{"class":4400},[4383,23504,23505],{"class":4404},"false\n",[4383,23507,23508],{"class":4385,"line":5182},[4383,23509,17409],{"class":4400},[4383,23511,23512,23514],{"class":4385,"line":5187},[4383,23513,23098],{"class":23017},[4383,23515,23057],{"class":4400},[4383,23517,23518,23521,23523],{"class":4385,"line":5207},[4383,23519,23520],{"class":23017},"      \"favicon\"",[4383,23522,13879],{"class":4400},[4383,23524,23525],{"class":4433},"\".\u002Fassets\u002Ffavicon.png\"\n",[4383,23527,23528],{"class":4385,"line":5216},[4383,23529,17409],{"class":4400},[4383,23531,23532,23535,23538,23541],{"class":4385,"line":5226},[4383,23533,23534],{"class":23017},"    \"plugins\"",[4383,23536,23537],{"class":4400},": [",[4383,23539,23540],{"class":4433},"\"expo-router\"",[4383,23542,23543],{"class":4400},"]\n",[4383,23545,23546],{"class":4385,"line":5236},[4383,23547,15949],{"class":4400},[4383,23549,23550],{"class":4385,"line":5247},[4383,23551,5013],{"class":4400},[4374,23553,23556],{"className":23003,"code":23554,"filename":23555,"language":23006,"meta":4379,"style":4379},"{\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",[3764,23557,23558,23562,23574,23581,23592,23599,23607,23612,23617,23622,23626,23633,23640,23645,23650],{"__ignoreMap":4379},[4383,23559,23560],{"class":4385,"line":4386},[4383,23561,6455],{"class":4400},[4383,23563,23564,23567,23569,23572],{"class":4385,"line":4763},[4383,23565,23566],{"class":23017},"  \"extends\"",[4383,23568,13879],{"class":4400},[4383,23570,23571],{"class":4433},"\"expo\u002Ftsconfig.base\"",[4383,23573,5050],{"class":4400},[4383,23575,23576,23579],{"class":4385,"line":4793},[4383,23577,23578],{"class":23017},"  \"compilerOptions\"",[4383,23580,23057],{"class":4400},[4383,23582,23583,23586,23588,23590],{"class":4385,"line":4800},[4383,23584,23585],{"class":23017},"    \"strict\"",[4383,23587,13879],{"class":4400},[4383,23589,23379],{"class":4404},[4383,23591,5050],{"class":4400},[4383,23593,23594,23597],{"class":4385,"line":4819},[4383,23595,23596],{"class":23017},"    \"paths\"",[4383,23598,23057],{"class":4400},[4383,23600,23601,23604],{"class":4385,"line":4851},[4383,23602,23603],{"class":23017},"      \"@\u002F*\"",[4383,23605,23606],{"class":4400},": [\n",[4383,23608,23609],{"class":4385,"line":4856},[4383,23610,23611],{"class":4433},"        \".\u002Fsrc\u002F*\"\n",[4383,23613,23614],{"class":4385,"line":4865},[4383,23615,23616],{"class":4400},"      ]\n",[4383,23618,23619],{"class":4385,"line":4892},[4383,23620,23621],{"class":4400},"    }\n",[4383,23623,23624],{"class":4385,"line":4928},[4383,23625,5272],{"class":4400},[4383,23627,23628,23631],{"class":4385,"line":4952},[4383,23629,23630],{"class":23017},"  \"include\"",[4383,23632,23606],{"class":4400},[4383,23634,23635,23638],{"class":4385,"line":4958},[4383,23636,23637],{"class":4433},"    \"**\u002F*.ts\"",[4383,23639,5050],{"class":4400},[4383,23641,23642],{"class":4385,"line":4968},[4383,23643,23644],{"class":4433},"    \"**\u002F*.tsx\"\n",[4383,23646,23647],{"class":4385,"line":4976},[4383,23648,23649],{"class":4400},"  ]\n",[4383,23651,23652],{"class":4385,"line":5016},[4383,23653,5013],{"class":4400},[4374,23655,23657],{"className":4376,"code":23656,"filename":16853,"language":4378,"meta":4379,"style":4379},"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",[3764,23658,23659,23676,23692,23696,23716,23720,23728,23746,23750,23756,23760,23790,23796,23806,23816,23832,23838,23842,23846,23850,23854,23858,23870,23876,23884,23892,23900,23904],{"__ignoreMap":4379},[4383,23660,23661,23663,23665,23667,23669,23671,23674],{"class":4385,"line":4386},[4383,23662,4742],{"class":4741},[4383,23664,4745],{"class":4400},[4383,23666,16927],{"class":4412},[4383,23668,4751],{"class":4400},[4383,23670,4754],{"class":4741},[4383,23672,23673],{"class":4433}," 'expo-router'",[4383,23675,4760],{"class":4400},[4383,23677,23678,23680,23682,23684,23686,23688,23690],{"class":4385,"line":4763},[4383,23679,4742],{"class":4741},[4383,23681,4745],{"class":4400},[4383,23683,4187],{"class":4412},[4383,23685,4751],{"class":4400},[4383,23687,4754],{"class":4741},[4383,23689,19613],{"class":4433},[4383,23691,4760],{"class":4400},[4383,23693,23694],{"class":4385,"line":4793},[4383,23695,4797],{"emptyLinePlaceholder":4796},[4383,23697,23698,23700,23702,23704,23706,23708,23710,23712,23714],{"class":4385,"line":4800},[4383,23699,4742],{"class":4741},[4383,23701,4745],{"class":4400},[4383,23703,3981],{"class":4412},[4383,23705,3767],{"class":4400},[4383,23707,3985],{"class":4412},[4383,23709,4751],{"class":4400},[4383,23711,4754],{"class":4741},[4383,23713,19630],{"class":4433},[4383,23715,4760],{"class":4400},[4383,23717,23718],{"class":4385,"line":4819},[4383,23719,4797],{"emptyLinePlaceholder":4796},[4383,23721,23722,23724,23726],{"class":4385,"line":4851},[4383,23723,9526],{"class":4404},[4383,23725,17040],{"class":4812},[4383,23727,4816],{"class":4400},[4383,23729,23730,23732,23734,23736,23738,23740,23742,23744],{"class":4385,"line":4856},[4383,23731,4822],{"class":4404},[4383,23733,4745],{"class":4400},[4383,23735,10129],{"class":4828},[4383,23737,3767],{"class":4400},[4383,23739,13160],{"class":4828},[4383,23741,16824],{"class":4400},[4383,23743,3985],{"class":4812},[4383,23745,13148],{"class":4400},[4383,23747,23748],{"class":4385,"line":4865},[4383,23749,4797],{"emptyLinePlaceholder":4796},[4383,23751,23752,23754],{"class":4385,"line":4892},[4383,23753,4859],{"class":4741},[4383,23755,4862],{"class":4400},[4383,23757,23758],{"class":4385,"line":4928},[4383,23759,17071],{"class":4389},[4383,23761,23762,23764,23766,23768,23770,23772,23774,23776,23778,23780,23782,23784,23786,23788],{"class":4385,"line":4952},[4383,23763,4895],{"class":4389},[4383,23765,4187],{"class":4393},[4383,23767,4397],{"class":4396},[4383,23769,4401],{"class":4400},[4383,23771,4405],{"class":4404},[4383,23773,13160],{"class":4412},[4383,23775,11294],{"class":4400},[4383,23777,14635],{"class":4433},[4383,23779,5132],{"class":4400},[4383,23781,11518],{"class":4433},[4383,23783,5138],{"class":4400},[4383,23785,14635],{"class":4433},[4383,23787,4440],{"class":4404},[4383,23789,4443],{"class":4389},[4383,23791,23792,23794],{"class":4385,"line":4958},[4383,23793,4895],{"class":4389},[4383,23795,17108],{"class":4393},[4383,23797,23798,23800,23802,23804],{"class":4385,"line":4968},[4383,23799,17113],{"class":4396},[4383,23801,4401],{"class":4400},[4383,23803,4405],{"class":4404},[4383,23805,6455],{"class":4408},[4383,23807,23808,23811,23814],{"class":4385,"line":4976},[4383,23809,23810],{"class":4412},"          headerShown:",[4383,23812,23813],{"class":4404}," false",[4383,23815,5050],{"class":4408},[4383,23817,23818,23820,23822,23824,23826,23828,23830],{"class":4385,"line":5016},[4383,23819,17124],{"class":4412},[4383,23821,4745],{"class":4408},[4383,23823,4430],{"class":4412},[4383,23825,9334],{"class":4412},[4383,23827,3840],{"class":4408},[4383,23829,9849],{"class":4412},[4383,23831,5305],{"class":4408},[4383,23833,23834,23836],{"class":4385,"line":5039},[4383,23835,17141],{"class":4408},[4383,23837,5013],{"class":4404},[4383,23839,23840],{"class":4385,"line":5053},[4383,23841,17148],{"class":4389},[4383,23843,23844],{"class":4385,"line":5072},[4383,23845,17153],{"class":4389},[4383,23847,23848],{"class":4385,"line":5089},[4383,23849,5174],{"class":4400},[4383,23851,23852],{"class":4385,"line":5097},[4383,23853,5013],{"class":4400},[4383,23855,23856],{"class":4385,"line":5103},[4383,23857,4797],{"emptyLinePlaceholder":4796},[4383,23859,23860,23862,23864,23866,23868],{"class":4385,"line":5152},[4383,23861,4803],{"class":4741},[4383,23863,4806],{"class":4741},[4383,23865,4809],{"class":4404},[4383,23867,16886],{"class":4812},[4383,23869,4816],{"class":4400},[4383,23871,23872,23874],{"class":4385,"line":5161},[4383,23873,4859],{"class":4741},[4383,23875,4862],{"class":4400},[4383,23877,23878,23880,23882],{"class":4385,"line":5171},[4383,23879,4868],{"class":4389},[4383,23881,3981],{"class":4393},[4383,23883,4889],{"class":4389},[4383,23885,23886,23888,23890],{"class":4385,"line":5177},[4383,23887,4895],{"class":4389},[4383,23889,17006],{"class":4393},[4383,23891,4443],{"class":4389},[4383,23893,23894,23896,23898],{"class":4385,"line":5182},[4383,23895,5164],{"class":4389},[4383,23897,3981],{"class":4393},[4383,23899,4889],{"class":4389},[4383,23901,23902],{"class":4385,"line":5187},[4383,23903,5174],{"class":4400},[4383,23905,23906],{"class":4385,"line":5207},[4383,23907,5013],{"class":4400},[4374,23909,23912],{"className":4376,"code":23910,"filename":23911,"language":4378,"meta":4379,"style":4379},"import { Pressable, ScrollView, StyleSheet, View } from 'react-native';\n\nimport { mockTrips, TripCard, type Trip } 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\n  const handleOpenTrip = (trip: Trip) => {\n    console.log('TODO: відкрити поїздку', trip.id, trip.title);\n  };\n\n  const hasTrips = mockTrips.length > 0;\n\n  return (\n    \u003CScreen style={styles.screen}>\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          {hasTrips ? `${mockTrips.length} поїздки у списку` : 'Список порожній'}\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      {hasTrips ? (\n        \u003CScrollView\n          style={styles.list}\n          contentContainerStyle={{\n            paddingHorizontal: spacing.md,\n            paddingTop: spacing.md,\n            paddingBottom: spacing.md,\n          }}\n          showsVerticalScrollIndicator={false}\n        >\n          \u003CAppText style={{ marginBottom: spacing.sm, fontWeight: '600' }}>\n            Ваші поїздки\n          \u003C\u002FAppText>\n          \u003CView style={{ gap: spacing.md }}>\n            {mockTrips.map((trip) => (\n              \u003CTripCard key={trip.id} trip={trip} onPress={handleOpenTrip} \u002F>\n            ))}\n          \u003C\u002FView>\n        \u003C\u002FScrollView>\n      ) : (\n        \u003CView\n          style={[\n            styles.empty,\n            {\n              paddingHorizontal: 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      \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  list: {\n    flex: 1,\n  },\n  empty: {\n    flex: 1,\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",[3764,23913,23914,23943,23947,23976,23998,24023,24027,24055,24074,24090,24106,24111,24115,24127,24157,24161,24185,24218,24223,24227,24251,24255,24261,24283,24289,24299,24309,24314,24327,24341,24354,24368,24381,24386,24392,24396,24421,24456,24479,24487,24494,24504,24514,24527,24540,24549,24555,24559,24592,24600,24604,24651,24672,24693,24700,24706,24723,24750,24760,24772,24777,24802,24815,24820,24827,24837,24857,24884,24888,24895,24904,24933,24951,24956,24969,24978,24986,24991,24998,25006,25014,25018,25028,25035,25051,25062,25074,25086,25098,25104,25114,25118,25152,25157,25165,25193,25214,25260,25267,25275,25283,25292,25298,25308,25319,25323,25337,25350,25354,25360,25364,25394,25399,25407,25413,25422,25439,25456,25460,25465,25473,25481,25488,25492,25498,25508,25519,25523,25535,25547,25559,25572,25584,25588,25594,25598,25605,25615,25629,25645,25651,25655,25663,25671,25675,25679,25683,25699,25705,25714,25718,25724,25733,25737,25744,25752,25761,25765,25772,25780,25788,25796,25804,25808,25815,25824,25828,25834,25842,25846,25853,25861,25869,25877,25881,25888,25897,25901,25908,25916,25921,25929,25939,25944],{"__ignoreMap":4379},[4383,23915,23916,23918,23920,23922,23924,23927,23929,23931,23933,23935,23937,23939,23941],{"class":4385,"line":4386},[4383,23917,4742],{"class":4741},[4383,23919,4745],{"class":4400},[4383,23921,4724],{"class":4412},[4383,23923,3767],{"class":4400},[4383,23925,23926],{"class":4412},"ScrollView",[4383,23928,3767],{"class":4400},[4383,23930,3803],{"class":4412},[4383,23932,3767],{"class":4400},[4383,23934,4198],{"class":4412},[4383,23936,4751],{"class":4400},[4383,23938,4754],{"class":4741},[4383,23940,4788],{"class":4433},[4383,23942,4760],{"class":4400},[4383,23944,23945],{"class":4385,"line":4763},[4383,23946,4797],{"emptyLinePlaceholder":4796},[4383,23948,23949,23951,23953,23956,23958,23960,23962,23964,23967,23969,23971,23974],{"class":4385,"line":4793},[4383,23950,4742],{"class":4741},[4383,23952,4745],{"class":4400},[4383,23954,23955],{"class":4412},"mockTrips",[4383,23957,3767],{"class":4400},[4383,23959,9742],{"class":4412},[4383,23961,3767],{"class":4400},[4383,23963,15815],{"class":4741},[4383,23965,23966],{"class":4412}," Trip",[4383,23968,4751],{"class":4400},[4383,23970,4754],{"class":4741},[4383,23972,23973],{"class":4433}," '@\u002Ffeatures\u002Ftrips'",[4383,23975,4760],{"class":4400},[4383,23977,23978,23980,23982,23984,23986,23988,23990,23992,23994,23996],{"class":4385,"line":4800},[4383,23979,4742],{"class":4741},[4383,23981,4745],{"class":4400},[4383,23983,3985],{"class":4412},[4383,23985,3767],{"class":4400},[4383,23987,15815],{"class":4741},[4383,23989,15818],{"class":4412},[4383,23991,4751],{"class":4400},[4383,23993,4754],{"class":4741},[4383,23995,19630],{"class":4433},[4383,23997,4760],{"class":4400},[4383,23999,24000,24002,24004,24006,24008,24010,24012,24014,24016,24018,24021],{"class":4385,"line":4819},[4383,24001,4742],{"class":4741},[4383,24003,4745],{"class":4400},[4383,24005,12961],{"class":4412},[4383,24007,3767],{"class":4400},[4383,24009,15412],{"class":4412},[4383,24011,3767],{"class":4400},[4383,24013,15417],{"class":4412},[4383,24015,4751],{"class":4400},[4383,24017,4754],{"class":4741},[4383,24019,24020],{"class":4433}," '@\u002Fshared\u002Fui'",[4383,24022,4760],{"class":4400},[4383,24024,24025],{"class":4385,"line":4851},[4383,24026,4797],{"emptyLinePlaceholder":4796},[4383,24028,24029,24031,24034,24037,24040,24042,24044,24046,24048,24050,24052],{"class":4385,"line":4856},[4383,24030,5190],{"class":4404},[4383,24032,24033],{"class":4828}," PREFS",[4383,24035,24036],{"class":4400},": { ",[4383,24038,24039],{"class":4412},"id",[4383,24041,13879],{"class":4400},[4383,24043,15874],{"class":4393},[4383,24045,15941],{"class":4400},[4383,24047,5696],{"class":4412},[4383,24049,13879],{"class":4400},[4383,24051,15886],{"class":4393},[4383,24053,24054],{"class":4400}," }[] = [\n",[4383,24056,24057,24060,24063,24065,24067,24070,24072],{"class":4385,"line":4865},[4383,24058,24059],{"class":4400},"  { ",[4383,24061,24062],{"class":4412},"id:",[4383,24064,18851],{"class":4433},[4383,24066,3767],{"class":4400},[4383,24068,24069],{"class":4412},"label:",[4383,24071,18856],{"class":4433},[4383,24073,5305],{"class":4400},[4383,24075,24076,24078,24080,24082,24084,24086,24088],{"class":4385,"line":4892},[4383,24077,24059],{"class":4400},[4383,24079,24062],{"class":4412},[4383,24081,11518],{"class":4433},[4383,24083,3767],{"class":4400},[4383,24085,24069],{"class":4412},[4383,24087,11523],{"class":4433},[4383,24089,5305],{"class":4400},[4383,24091,24092,24094,24096,24098,24100,24102,24104],{"class":4385,"line":4928},[4383,24093,24059],{"class":4400},[4383,24095,24062],{"class":4412},[4383,24097,14635],{"class":4433},[4383,24099,3767],{"class":4400},[4383,24101,24069],{"class":4412},[4383,24103,11528],{"class":4433},[4383,24105,5305],{"class":4400},[4383,24107,24108],{"class":4385,"line":4952},[4383,24109,24110],{"class":4400},"];\n",[4383,24112,24113],{"class":4385,"line":4958},[4383,24114,4797],{"emptyLinePlaceholder":4796},[4383,24116,24117,24119,24121,24123,24125],{"class":4385,"line":4968},[4383,24118,4803],{"class":4741},[4383,24120,4806],{"class":4741},[4383,24122,4809],{"class":4404},[4383,24124,18393],{"class":4812},[4383,24126,4816],{"class":4400},[4383,24128,24129,24131,24133,24135,24137,24139,24141,24143,24145,24147,24149,24151,24153,24155],{"class":4385,"line":4976},[4383,24130,4822],{"class":4404},[4383,24132,4745],{"class":4400},[4383,24134,10129],{"class":4828},[4383,24136,3767],{"class":4400},[4383,24138,12911],{"class":4828},[4383,24140,3767],{"class":4400},[4383,24142,13590],{"class":4828},[4383,24144,3767],{"class":4400},[4383,24146,16561],{"class":4828},[4383,24148,3767],{"class":4400},[4383,24150,13160],{"class":4828},[4383,24152,16824],{"class":4400},[4383,24154,3985],{"class":4812},[4383,24156,13148],{"class":4400},[4383,24158,24159],{"class":4385,"line":5016},[4383,24160,4797],{"emptyLinePlaceholder":4796},[4383,24162,24163,24165,24168,24171,24174,24176,24179,24181,24183],{"class":4385,"line":5039},[4383,24164,4822],{"class":4404},[4383,24166,24167],{"class":4812}," handleOpenTrip",[4383,24169,24170],{"class":4400}," = (",[4383,24172,24173],{"class":4412},"trip",[4383,24175,13879],{"class":4400},[4383,24177,24178],{"class":4393},"Trip",[4383,24180,5001],{"class":4400},[4383,24182,4989],{"class":4404},[4383,24184,5213],{"class":4400},[4383,24186,24187,24190,24192,24195,24197,24200,24202,24204,24206,24208,24210,24212,24214,24216],{"class":4385,"line":5053},[4383,24188,24189],{"class":4412},"    console",[4383,24191,3840],{"class":4400},[4383,24193,24194],{"class":4812},"log",[4383,24196,4842],{"class":4400},[4383,24198,24199],{"class":4433},"'TODO: відкрити поїздку'",[4383,24201,3767],{"class":4400},[4383,24203,24173],{"class":4412},[4383,24205,3840],{"class":4400},[4383,24207,24039],{"class":4412},[4383,24209,3767],{"class":4400},[4383,24211,24173],{"class":4412},[4383,24213,3840],{"class":4400},[4383,24215,4910],{"class":4412},[4383,24217,4848],{"class":4400},[4383,24219,24220],{"class":4385,"line":5072},[4383,24221,24222],{"class":4400},"  };\n",[4383,24224,24225],{"class":4385,"line":5089},[4383,24226,4797],{"emptyLinePlaceholder":4796},[4383,24228,24229,24231,24234,24236,24238,24240,24243,24246,24249],{"class":4385,"line":5097},[4383,24230,4822],{"class":4404},[4383,24232,24233],{"class":4828}," hasTrips",[4383,24235,5195],{"class":4400},[4383,24237,23955],{"class":4412},[4383,24239,3840],{"class":4400},[4383,24241,24242],{"class":4412},"length",[4383,24244,24245],{"class":4400}," > ",[4383,24247,24248],{"class":4416},"0",[4383,24250,4760],{"class":4400},[4383,24252,24253],{"class":4385,"line":5103},[4383,24254,4797],{"emptyLinePlaceholder":4796},[4383,24256,24257,24259],{"class":4385,"line":5152},[4383,24258,4859],{"class":4741},[4383,24260,4862],{"class":4400},[4383,24262,24263,24265,24267,24269,24271,24273,24275,24277,24279,24281],{"class":4385,"line":5161},[4383,24264,4868],{"class":4389},[4383,24266,15417],{"class":4393},[4383,24268,4397],{"class":4396},[4383,24270,4401],{"class":4400},[4383,24272,4405],{"class":4404},[4383,24274,4879],{"class":4412},[4383,24276,3840],{"class":4408},[4383,24278,4884],{"class":4412},[4383,24280,4440],{"class":4404},[4383,24282,4889],{"class":4389},[4383,24284,24285,24287],{"class":4385,"line":5171},[4383,24286,4895],{"class":4389},[4383,24288,6443],{"class":4393},[4383,24290,24291,24293,24295,24297],{"class":4385,"line":5177},[4383,24292,5019],{"class":4396},[4383,24294,4401],{"class":4400},[4383,24296,4405],{"class":4404},[4383,24298,9394],{"class":4408},[4383,24300,24301,24303,24305,24307],{"class":4385,"line":5182},[4383,24302,5042],{"class":4412},[4383,24304,3840],{"class":4408},[4383,24306,20390],{"class":4412},[4383,24308,5050],{"class":4408},[4383,24310,24311],{"class":4385,"line":5187},[4383,24312,24313],{"class":4408},"          {\n",[4383,24315,24316,24319,24321,24323,24325],{"class":4385,"line":5207},[4383,24317,24318],{"class":4412},"            paddingHorizontal:",[4383,24320,17392],{"class":4412},[4383,24322,3840],{"class":4408},[4383,24324,17398],{"class":4412},[4383,24326,5050],{"class":4408},[4383,24328,24329,24332,24334,24336,24339],{"class":4385,"line":5216},[4383,24330,24331],{"class":4412},"            paddingTop:",[4383,24333,17392],{"class":4412},[4383,24335,3840],{"class":4408},[4383,24337,24338],{"class":4412},"sm",[4383,24340,5050],{"class":4408},[4383,24342,24343,24346,24348,24350,24352],{"class":4385,"line":5226},[4383,24344,24345],{"class":4412},"            paddingBottom:",[4383,24347,17392],{"class":4412},[4383,24349,3840],{"class":4408},[4383,24351,17398],{"class":4412},[4383,24353,5050],{"class":4408},[4383,24355,24356,24359,24361,24363,24366],{"class":4385,"line":5236},[4383,24357,24358],{"class":4412},"            gap:",[4383,24360,17392],{"class":4412},[4383,24362,3840],{"class":4408},[4383,24364,24365],{"class":4412},"xs",[4383,24367,5050],{"class":4408},[4383,24369,24370,24373,24375,24377,24379],{"class":4385,"line":5247},[4383,24371,24372],{"class":4412},"            borderBottomColor:",[4383,24374,9334],{"class":4412},[4383,24376,3840],{"class":4408},[4383,24378,10000],{"class":4412},[4383,24380,5050],{"class":4408},[4383,24382,24383],{"class":4385,"line":5258},[4383,24384,24385],{"class":4408},"          },\n",[4383,24387,24388,24390],{"class":4385,"line":5269},[4383,24389,5092],{"class":4408},[4383,24391,5013],{"class":4404},[4383,24393,24394],{"class":4385,"line":5275},[4383,24395,5100],{"class":4389},[4383,24397,24398,24400,24402,24405,24407,24410,24412,24415,24417,24419],{"class":4385,"line":5308},[4383,24399,5106],{"class":4389},[4383,24401,12961],{"class":4393},[4383,24403,24404],{"class":4396}," variant",[4383,24406,4401],{"class":4400},[4383,24408,24409],{"class":4433},"\"title\"",[4383,24411,4915],{"class":4389},[4383,24413,24414],{"class":4400},"Мандрівник",[4383,24416,4921],{"class":4389},[4383,24418,12961],{"class":4393},[4383,24420,4889],{"class":4389},[4383,24422,24423,24425,24427,24429,24431,24434,24436,24438,24440,24442,24444,24446,24448,24450,24452,24454],{"class":4385,"line":5338},[4383,24424,5106],{"class":4389},[4383,24426,12961],{"class":4393},[4383,24428,24404],{"class":4396},[4383,24430,4401],{"class":4400},[4383,24432,24433],{"class":4433},"\"caption\"",[4383,24435,4397],{"class":4396},[4383,24437,4401],{"class":4400},[4383,24439,4405],{"class":4404},[4383,24441,4409],{"class":4408},[4383,24443,6885],{"class":4412},[4383,24445,17392],{"class":4412},[4383,24447,3840],{"class":4408},[4383,24449,24365],{"class":4412},[4383,24451,4437],{"class":4408},[4383,24453,4440],{"class":4404},[4383,24455,4889],{"class":4389},[4383,24457,24458,24461,24463,24465,24467,24469,24471,24473,24475,24477],{"class":4385,"line":5346},[4383,24459,24460],{"class":4400},"          Щоденник подорожей · тема: ",[4383,24462,4405],{"class":4404},[4383,24464,13160],{"class":4412},[4383,24466,11294],{"class":4400},[4383,24468,14635],{"class":4433},[4383,24470,5132],{"class":4400},[4383,24472,20491],{"class":4433},[4383,24474,5138],{"class":4400},[4383,24476,20496],{"class":4433},[4383,24478,5013],{"class":4404},[4383,24480,24481,24483,24485],{"class":4385,"line":5356},[4383,24482,6338],{"class":4389},[4383,24484,12961],{"class":4393},[4383,24486,4889],{"class":4389},[4383,24488,24489,24491],{"class":4385,"line":5367},[4383,24490,5106],{"class":4389},[4383,24492,24493],{"class":4393},"AppText\n",[4383,24495,24496,24499,24501],{"class":4385,"line":5377},[4383,24497,24498],{"class":4396},"          variant",[4383,24500,4401],{"class":4400},[4383,24502,24503],{"class":4433},"\"caption\"\n",[4383,24505,24506,24508,24510,24512],{"class":4385,"line":5387},[4383,24507,6448],{"class":4396},[4383,24509,4401],{"class":4400},[4383,24511,4405],{"class":4404},[4383,24513,6455],{"class":4408},[4383,24515,24516,24519,24521,24523,24525],{"class":4385,"line":5392},[4383,24517,24518],{"class":4412},"            marginTop:",[4383,24520,17392],{"class":4412},[4383,24522,3840],{"class":4408},[4383,24524,24365],{"class":4412},[4383,24526,5050],{"class":4408},[4383,24528,24529,24532,24534,24536,24538],{"class":4385,"line":5407},[4383,24530,24531],{"class":4412},"            color:",[4383,24533,9334],{"class":4412},[4383,24535,3840],{"class":4408},[4383,24537,9747],{"class":4412},[4383,24539,5050],{"class":4408},[4383,24541,24542,24545,24547],{"class":4385,"line":5423},[4383,24543,24544],{"class":4412},"            fontWeight:",[4383,24546,5994],{"class":4433},[4383,24548,5050],{"class":4408},[4383,24550,24551,24553],{"class":4385,"line":5450},[4383,24552,6501],{"class":4408},[4383,24554,5013],{"class":4404},[4383,24556,24557],{"class":4385,"line":6760},[4383,24558,6508],{"class":4389},[4383,24560,24561,24563,24566,24568,24571,24574,24576,24578,24580,24582,24585,24587,24590],{"class":4385,"line":6765},[4383,24562,8498],{"class":4404},[4383,24564,24565],{"class":4412},"hasTrips",[4383,24567,5132],{"class":4400},[4383,24569,24570],{"class":4433}," `",[4383,24572,24573],{"class":4404},"${",[4383,24575,23955],{"class":4412},[4383,24577,3840],{"class":4408},[4383,24579,24242],{"class":4412},[4383,24581,4440],{"class":4404},[4383,24583,24584],{"class":4433}," поїздки у списку`",[4383,24586,5138],{"class":4400},[4383,24588,24589],{"class":4433}," 'Список порожній'",[4383,24591,5013],{"class":4404},[4383,24593,24594,24596,24598],{"class":4385,"line":6793},[4383,24595,6338],{"class":4389},[4383,24597,12961],{"class":4393},[4383,24599,4889],{"class":4389},[4383,24601,24602],{"class":4385,"line":6801},[4383,24603,4797],{"emptyLinePlaceholder":4796},[4383,24605,24606,24608,24610,24612,24614,24616,24618,24620,24622,24625,24627,24629,24631,24633,24635,24637,24639,24641,24643,24645,24647,24649],{"class":4385,"line":6811},[4383,24607,5106],{"class":4389},[4383,24609,4198],{"class":4393},[4383,24611,4397],{"class":4396},[4383,24613,4401],{"class":4400},[4383,24615,4405],{"class":4404},[4383,24617,6278],{"class":4408},[4383,24619,4879],{"class":4412},[4383,24621,3840],{"class":4408},[4383,24623,24624],{"class":4412},"themeRow",[4383,24626,9329],{"class":4408},[4383,24628,5878],{"class":4412},[4383,24630,17392],{"class":4412},[4383,24632,3840],{"class":4408},[4383,24634,24338],{"class":4412},[4383,24636,3767],{"class":4408},[4383,24638,6885],{"class":4412},[4383,24640,17392],{"class":4412},[4383,24642,3840],{"class":4408},[4383,24644,24338],{"class":4412},[4383,24646,9341],{"class":4408},[4383,24648,4440],{"class":4404},[4383,24650,4889],{"class":4389},[4383,24652,24653,24655,24658,24660,24662,24664,24666,24668,24670],{"class":4385,"line":6820},[4383,24654,8498],{"class":4404},[4383,24656,24657],{"class":4828},"PREFS",[4383,24659,3840],{"class":4408},[4383,24661,11266],{"class":4812},[4383,24663,4995],{"class":4408},[4383,24665,3743],{"class":4412},[4383,24667,5001],{"class":4408},[4383,24669,4989],{"class":4404},[4383,24671,5213],{"class":4408},[4383,24673,24674,24677,24679,24681,24683,24685,24687,24689,24691],{"class":4385,"line":6829},[4383,24675,24676],{"class":4404},"            const",[4383,24678,11285],{"class":4828},[4383,24680,11288],{"class":4400},[4383,24682,15938],{"class":4412},[4383,24684,11294],{"class":4400},[4383,24686,18652],{"class":4412},[4383,24688,3840],{"class":4408},[4383,24690,24039],{"class":4412},[4383,24692,4760],{"class":4408},[4383,24694,24695,24698],{"class":4385,"line":6834},[4383,24696,24697],{"class":4741},"            return",[4383,24699,4862],{"class":4408},[4383,24701,24702,24704],{"class":4385,"line":6860},[4383,24703,11437],{"class":4389},[4383,24705,4973],{"class":4393},[4383,24707,24708,24711,24713,24715,24717,24719,24721],{"class":4385,"line":6893},[4383,24709,24710],{"class":4396},"                key",[4383,24712,4401],{"class":4400},[4383,24714,4405],{"class":4404},[4383,24716,3743],{"class":4412},[4383,24718,3840],{"class":4408},[4383,24720,24039],{"class":4412},[4383,24722,5013],{"class":4404},[4383,24724,24725,24728,24730,24732,24734,24736,24738,24740,24742,24744,24746,24748],{"class":4385,"line":8399},[4383,24726,24727],{"class":4396},"                onPress",[4383,24729,4401],{"class":4400},[4383,24731,4405],{"class":4404},[4383,24733,4986],{"class":4408},[4383,24735,4989],{"class":4404},[4383,24737,16482],{"class":4812},[4383,24739,4842],{"class":4408},[4383,24741,3743],{"class":4412},[4383,24743,3840],{"class":4408},[4383,24745,24039],{"class":4412},[4383,24747,4141],{"class":4408},[4383,24749,5013],{"class":4404},[4383,24751,24752,24754,24756,24758],{"class":4385,"line":8418},[4383,24753,11445],{"class":4396},[4383,24755,4401],{"class":4400},[4383,24757,4405],{"class":4404},[4383,24759,9394],{"class":4408},[4383,24761,24762,24765,24767,24770],{"class":4385,"line":8429},[4383,24763,24764],{"class":4412},"                  styles",[4383,24766,3840],{"class":4408},[4383,24768,24769],{"class":4412},"themeChip",[4383,24771,5050],{"class":4408},[4383,24773,24774],{"class":4385,"line":8445},[4383,24775,24776],{"class":4408},"                  {\n",[4383,24778,24779,24782,24784,24786,24788,24790,24792,24794,24796,24798,24800],{"class":4385,"line":8460},[4383,24780,24781],{"class":4412},"                    backgroundColor:",[4383,24783,11285],{"class":4412},[4383,24785,5132],{"class":4400},[4383,24787,9334],{"class":4412},[4383,24789,3840],{"class":4408},[4383,24791,9747],{"class":4412},[4383,24793,5138],{"class":4400},[4383,24795,9334],{"class":4412},[4383,24797,3840],{"class":4408},[4383,24799,3891],{"class":4412},[4383,24801,5050],{"class":4408},[4383,24803,24804,24807,24809,24811,24813],{"class":4385,"line":8467},[4383,24805,24806],{"class":4412},"                    borderColor:",[4383,24808,9334],{"class":4412},[4383,24810,3840],{"class":4408},[4383,24812,10000],{"class":4412},[4383,24814,5050],{"class":4408},[4383,24816,24817],{"class":4385,"line":8472},[4383,24818,24819],{"class":4408},"                  },\n",[4383,24821,24822,24825],{"class":4385,"line":8495},[4383,24823,24824],{"class":4408},"                ]",[4383,24826,5013],{"class":4404},[4383,24828,24829,24832,24834],{"class":4385,"line":8515},[4383,24830,24831],{"class":4396},"                accessibilityRole",[4383,24833,4401],{"class":4400},[4383,24835,24836],{"class":4433},"\"button\"\n",[4383,24838,24839,24842,24844,24846,24848,24851,24853,24855],{"class":4385,"line":8524},[4383,24840,24841],{"class":4396},"                accessibilityState",[4383,24843,4401],{"class":4400},[4383,24845,4405],{"class":4404},[4383,24847,4409],{"class":4408},[4383,24849,24850],{"class":4412},"selected:",[4383,24852,11285],{"class":4412},[4383,24854,4437],{"class":4408},[4383,24856,5013],{"class":4404},[4383,24858,24859,24862,24864,24866,24869,24871,24873,24875,24877,24879,24882],{"class":4385,"line":8533},[4383,24860,24861],{"class":4396},"                accessibilityLabel",[4383,24863,4401],{"class":4400},[4383,24865,4405],{"class":4404},[4383,24867,24868],{"class":4433},"`Тема: ",[4383,24870,24573],{"class":4404},[4383,24872,3743],{"class":4412},[4383,24874,3840],{"class":4408},[4383,24876,5696],{"class":4412},[4383,24878,4440],{"class":4404},[4383,24880,24881],{"class":4433},"`",[4383,24883,5013],{"class":4404},[4383,24885,24886],{"class":4385,"line":8538},[4383,24887,11506],{"class":4389},[4383,24889,24890,24893],{"class":4385,"line":8561},[4383,24891,24892],{"class":4389},"                \u003C",[4383,24894,24493],{"class":4393},[4383,24896,24897,24900,24902],{"class":4385,"line":8567},[4383,24898,24899],{"class":4396},"                  variant",[4383,24901,4401],{"class":4400},[4383,24903,24503],{"class":4433},[4383,24905,24906,24909,24911,24913,24915,24917,24919,24921,24923,24925,24927,24929,24931],{"class":4385,"line":8576},[4383,24907,24908],{"class":4396},"                  color",[4383,24910,4401],{"class":4400},[4383,24912,4405],{"class":4404},[4383,24914,9497],{"class":4412},[4383,24916,5132],{"class":4400},[4383,24918,9334],{"class":4412},[4383,24920,3840],{"class":4408},[4383,24922,9978],{"class":4412},[4383,24924,5138],{"class":4400},[4383,24926,9334],{"class":4412},[4383,24928,3840],{"class":4408},[4383,24930,9901],{"class":4412},[4383,24932,5013],{"class":4404},[4383,24934,24935,24938,24940,24942,24944,24946,24949],{"class":4385,"line":8585},[4383,24936,24937],{"class":4396},"                  style",[4383,24939,4401],{"class":4400},[4383,24941,4405],{"class":4404},[4383,24943,4879],{"class":4412},[4383,24945,3840],{"class":4408},[4383,24947,24948],{"class":4412},"themeChipText",[4383,24950,5013],{"class":4404},[4383,24952,24953],{"class":4385,"line":8590},[4383,24954,24955],{"class":4389},"                >\n",[4383,24957,24958,24961,24963,24965,24967],{"class":4385,"line":8595},[4383,24959,24960],{"class":4404},"                  {",[4383,24962,3743],{"class":4412},[4383,24964,3840],{"class":4408},[4383,24966,5696],{"class":4412},[4383,24968,5013],{"class":4404},[4383,24970,24971,24974,24976],{"class":4385,"line":8600},[4383,24972,24973],{"class":4389},"                \u003C\u002F",[4383,24975,12961],{"class":4393},[4383,24977,4889],{"class":4389},[4383,24979,24980,24982,24984],{"class":4385,"line":8617},[4383,24981,11535],{"class":4389},[4383,24983,4724],{"class":4393},[4383,24985,4889],{"class":4389},[4383,24987,24988],{"class":4385,"line":8624},[4383,24989,24990],{"class":4408},"            );\n",[4383,24992,24993,24996],{"class":4385,"line":8633},[4383,24994,24995],{"class":4408},"          })",[4383,24997,5013],{"class":4404},[4383,24999,25000,25002,25004],{"class":4385,"line":8642},[4383,25001,6338],{"class":4389},[4383,25003,4198],{"class":4393},[4383,25005,4889],{"class":4389},[4383,25007,25008,25010,25012],{"class":4385,"line":8651},[4383,25009,4961],{"class":4389},[4383,25011,4198],{"class":4393},[4383,25013,4889],{"class":4389},[4383,25015,25016],{"class":4385,"line":8660},[4383,25017,4797],{"emptyLinePlaceholder":4796},[4383,25019,25020,25022,25024,25026],{"class":4385,"line":8669},[4383,25021,16632],{"class":4404},[4383,25023,24565],{"class":4412},[4383,25025,5132],{"class":4400},[4383,25027,4862],{"class":4408},[4383,25029,25030,25032],{"class":4385,"line":8674},[4383,25031,5106],{"class":4389},[4383,25033,25034],{"class":4393},"ScrollView\n",[4383,25036,25037,25039,25041,25043,25045,25047,25049],{"class":4385,"line":8687},[4383,25038,6448],{"class":4396},[4383,25040,4401],{"class":4400},[4383,25042,4405],{"class":4404},[4383,25044,4879],{"class":4412},[4383,25046,3840],{"class":4408},[4383,25048,7045],{"class":4412},[4383,25050,5013],{"class":4404},[4383,25052,25053,25056,25058,25060],{"class":4385,"line":8707},[4383,25054,25055],{"class":4396},"          contentContainerStyle",[4383,25057,4401],{"class":4400},[4383,25059,4405],{"class":4404},[4383,25061,6455],{"class":4408},[4383,25063,25064,25066,25068,25070,25072],{"class":4385,"line":8737},[4383,25065,24318],{"class":4412},[4383,25067,17392],{"class":4412},[4383,25069,3840],{"class":4408},[4383,25071,17398],{"class":4412},[4383,25073,5050],{"class":4408},[4383,25075,25076,25078,25080,25082,25084],{"class":4385,"line":8744},[4383,25077,24331],{"class":4412},[4383,25079,17392],{"class":4412},[4383,25081,3840],{"class":4408},[4383,25083,17398],{"class":4412},[4383,25085,5050],{"class":4408},[4383,25087,25088,25090,25092,25094,25096],{"class":4385,"line":8753},[4383,25089,24345],{"class":4412},[4383,25091,17392],{"class":4412},[4383,25093,3840],{"class":4408},[4383,25095,17398],{"class":4412},[4383,25097,5050],{"class":4408},[4383,25099,25100,25102],{"class":4385,"line":8762},[4383,25101,6501],{"class":4408},[4383,25103,5013],{"class":4404},[4383,25105,25106,25109,25111],{"class":4385,"line":8771},[4383,25107,25108],{"class":4396},"          showsVerticalScrollIndicator",[4383,25110,4401],{"class":4400},[4383,25112,25113],{"class":4404},"{false}\n",[4383,25115,25116],{"class":4385,"line":8780},[4383,25117,6508],{"class":4389},[4383,25119,25120,25122,25124,25126,25128,25130,25132,25134,25136,25138,25140,25142,25144,25146,25148,25150],{"class":4385,"line":8789},[4383,25121,6305],{"class":4389},[4383,25123,12961],{"class":4393},[4383,25125,4397],{"class":4396},[4383,25127,4401],{"class":4400},[4383,25129,4405],{"class":4404},[4383,25131,4409],{"class":4408},[4383,25133,6005],{"class":4412},[4383,25135,17392],{"class":4412},[4383,25137,3840],{"class":4408},[4383,25139,24338],{"class":4412},[4383,25141,3767],{"class":4408},[4383,25143,5291],{"class":4412},[4383,25145,5994],{"class":4433},[4383,25147,4437],{"class":4408},[4383,25149,4440],{"class":4404},[4383,25151,4889],{"class":4389},[4383,25153,25154],{"class":4385,"line":8800},[4383,25155,25156],{"class":4408},"            Ваші поїздки\n",[4383,25158,25159,25161,25163],{"class":4385,"line":8809},[4383,25160,8336],{"class":4389},[4383,25162,12961],{"class":4393},[4383,25164,4889],{"class":4389},[4383,25166,25167,25169,25171,25173,25175,25177,25179,25181,25183,25185,25187,25189,25191],{"class":4385,"line":8814},[4383,25168,6305],{"class":4389},[4383,25170,4198],{"class":4393},[4383,25172,4397],{"class":4396},[4383,25174,4401],{"class":4400},[4383,25176,4405],{"class":4404},[4383,25178,4409],{"class":4408},[4383,25180,5878],{"class":4412},[4383,25182,17392],{"class":4412},[4383,25184,3840],{"class":4408},[4383,25186,17398],{"class":4412},[4383,25188,4437],{"class":4408},[4383,25190,4440],{"class":4404},[4383,25192,4889],{"class":4389},[4383,25194,25195,25198,25200,25202,25204,25206,25208,25210,25212],{"class":4385,"line":8841},[4383,25196,25197],{"class":4404},"            {",[4383,25199,23955],{"class":4412},[4383,25201,3840],{"class":4408},[4383,25203,11266],{"class":4812},[4383,25205,4995],{"class":4408},[4383,25207,24173],{"class":4412},[4383,25209,5001],{"class":4408},[4383,25211,4989],{"class":4404},[4383,25213,4862],{"class":4408},[4383,25215,25216,25218,25220,25223,25225,25227,25229,25231,25233,25235,25238,25240,25242,25244,25246,25249,25251,25253,25256,25258],{"class":4385,"line":8873},[4383,25217,11437],{"class":4389},[4383,25219,9742],{"class":4393},[4383,25221,25222],{"class":4396}," key",[4383,25224,4401],{"class":4400},[4383,25226,4405],{"class":4404},[4383,25228,24173],{"class":4412},[4383,25230,3840],{"class":4408},[4383,25232,24039],{"class":4412},[4383,25234,4440],{"class":4404},[4383,25236,25237],{"class":4396}," trip",[4383,25239,4401],{"class":4400},[4383,25241,4405],{"class":4404},[4383,25243,24173],{"class":4412},[4383,25245,4440],{"class":4404},[4383,25247,25248],{"class":4396}," onPress",[4383,25250,4401],{"class":4400},[4383,25252,4405],{"class":4404},[4383,25254,25255],{"class":4412},"handleOpenTrip",[4383,25257,4440],{"class":4404},[4383,25259,4443],{"class":4389},[4383,25261,25262,25265],{"class":4385,"line":8905},[4383,25263,25264],{"class":4408},"            ))",[4383,25266,5013],{"class":4404},[4383,25268,25269,25271,25273],{"class":4385,"line":8912},[4383,25270,8336],{"class":4389},[4383,25272,4198],{"class":4393},[4383,25274,4889],{"class":4389},[4383,25276,25277,25279,25281],{"class":4385,"line":8925},[4383,25278,6338],{"class":4389},[4383,25280,23926],{"class":4393},[4383,25282,4889],{"class":4389},[4383,25284,25285,25288,25290],{"class":4385,"line":8935},[4383,25286,25287],{"class":4408},"      ) ",[4383,25289,13015],{"class":4400},[4383,25291,4862],{"class":4408},[4383,25293,25294,25296],{"class":4385,"line":8945},[4383,25295,5106],{"class":4389},[4383,25297,6443],{"class":4393},[4383,25299,25300,25302,25304,25306],{"class":4385,"line":8950},[4383,25301,6448],{"class":4396},[4383,25303,4401],{"class":4400},[4383,25305,4405],{"class":4404},[4383,25307,9394],{"class":4408},[4383,25309,25310,25312,25314,25317],{"class":4385,"line":8969},[4383,25311,14415],{"class":4412},[4383,25313,3840],{"class":4408},[4383,25315,25316],{"class":4412},"empty",[4383,25318,5050],{"class":4408},[4383,25320,25321],{"class":4385,"line":8977},[4383,25322,14426],{"class":4408},[4383,25324,25325,25328,25330,25332,25335],{"class":4385,"line":8987},[4383,25326,25327],{"class":4412},"              paddingHorizontal:",[4383,25329,17392],{"class":4412},[4383,25331,3840],{"class":4408},[4383,25333,25334],{"class":4412},"xl",[4383,25336,5050],{"class":4408},[4383,25338,25339,25342,25344,25346,25348],{"class":4385,"line":8996},[4383,25340,25341],{"class":4412},"              gap:",[4383,25343,17392],{"class":4412},[4383,25345,3840],{"class":4408},[4383,25347,24338],{"class":4412},[4383,25349,5050],{"class":4408},[4383,25351,25352],{"class":4385,"line":9005},[4383,25353,14473],{"class":4408},[4383,25355,25356,25358],{"class":4385,"line":9010},[4383,25357,14478],{"class":4408},[4383,25359,5013],{"class":4404},[4383,25361,25362],{"class":4385,"line":9036},[4383,25363,6508],{"class":4389},[4383,25365,25366,25368,25370,25372,25374,25377,25379,25381,25383,25385,25387,25390,25392],{"class":4385,"line":9043},[4383,25367,6305],{"class":4389},[4383,25369,12961],{"class":4393},[4383,25371,24404],{"class":4396},[4383,25373,4401],{"class":4400},[4383,25375,25376],{"class":4433},"\"subtitle\"",[4383,25378,4397],{"class":4396},[4383,25380,4401],{"class":4400},[4383,25382,4405],{"class":4404},[4383,25384,4879],{"class":4412},[4383,25386,3840],{"class":4408},[4383,25388,25389],{"class":4412},"emptyTitle",[4383,25391,4440],{"class":4404},[4383,25393,4889],{"class":4389},[4383,25395,25396],{"class":4385,"line":9052},[4383,25397,25398],{"class":4408},"            Поки немає поїздок\n",[4383,25400,25401,25403,25405],{"class":4385,"line":9061},[4383,25402,8336],{"class":4389},[4383,25404,12961],{"class":4393},[4383,25406,4889],{"class":4389},[4383,25408,25409,25411],{"class":4385,"line":9070},[4383,25410,6305],{"class":4389},[4383,25412,24493],{"class":4393},[4383,25414,25415,25418,25420],{"class":4385,"line":9079},[4383,25416,25417],{"class":4396},"            variant",[4383,25419,4401],{"class":4400},[4383,25421,24503],{"class":4433},[4383,25423,25424,25427,25429,25431,25433,25435,25437],{"class":4385,"line":9084},[4383,25425,25426],{"class":4396},"            color",[4383,25428,4401],{"class":4400},[4383,25430,4405],{"class":4404},[4383,25432,10129],{"class":4412},[4383,25434,3840],{"class":4408},[4383,25436,9924],{"class":4412},[4383,25438,5013],{"class":4404},[4383,25440,25441,25443,25445,25447,25449,25451,25454],{"class":4385,"line":9097},[4383,25442,14495],{"class":4396},[4383,25444,4401],{"class":4400},[4383,25446,4405],{"class":4404},[4383,25448,4879],{"class":4412},[4383,25450,3840],{"class":4408},[4383,25452,25453],{"class":4412},"emptyDesc",[4383,25455,5013],{"class":4404},[4383,25457,25458],{"class":4385,"line":9110},[4383,25459,14551],{"class":4389},[4383,25461,25462],{"class":4385,"line":9135},[4383,25463,25464],{"class":4408},"            Створіть першу — і тут з’явиться стрічка з датами та обкладинками.\n",[4383,25466,25467,25469,25471],{"class":4385,"line":9161},[4383,25468,8336],{"class":4389},[4383,25470,12961],{"class":4393},[4383,25472,4889],{"class":4389},[4383,25474,25475,25477,25479],{"class":4385,"line":12176},[4383,25476,6338],{"class":4389},[4383,25478,4198],{"class":4393},[4383,25480,4889],{"class":4389},[4383,25482,25483,25486],{"class":4385,"line":12187},[4383,25484,25485],{"class":4408},"      )",[4383,25487,5013],{"class":4404},[4383,25489,25490],{"class":4385,"line":12223},[4383,25491,4797],{"emptyLinePlaceholder":4796},[4383,25493,25494,25496],{"class":4385,"line":12258},[4383,25495,4895],{"class":4389},[4383,25497,6443],{"class":4393},[4383,25499,25500,25502,25504,25506],{"class":4385,"line":12264},[4383,25501,5019],{"class":4396},[4383,25503,4401],{"class":4400},[4383,25505,4405],{"class":4404},[4383,25507,9394],{"class":4408},[4383,25509,25510,25512,25514,25517],{"class":4385,"line":12273},[4383,25511,5042],{"class":4412},[4383,25513,3840],{"class":4408},[4383,25515,25516],{"class":4412},"footer",[4383,25518,5050],{"class":4408},[4383,25520,25521],{"class":4385,"line":12282},[4383,25522,24313],{"class":4408},[4383,25524,25525,25527,25529,25531,25533],{"class":4385,"line":12289},[4383,25526,24318],{"class":4412},[4383,25528,17392],{"class":4412},[4383,25530,3840],{"class":4408},[4383,25532,17398],{"class":4412},[4383,25534,5050],{"class":4408},[4383,25536,25537,25539,25541,25543,25545],{"class":4385,"line":12298},[4383,25538,24331],{"class":4412},[4383,25540,17392],{"class":4412},[4383,25542,3840],{"class":4408},[4383,25544,24338],{"class":4412},[4383,25546,5050],{"class":4408},[4383,25548,25549,25551,25553,25555,25557],{"class":4385,"line":12303},[4383,25550,24345],{"class":4412},[4383,25552,17392],{"class":4412},[4383,25554,3840],{"class":4408},[4383,25556,17398],{"class":4412},[4383,25558,5050],{"class":4408},[4383,25560,25561,25564,25566,25568,25570],{"class":4385,"line":12310},[4383,25562,25563],{"class":4412},"            borderTopColor:",[4383,25565,9334],{"class":4412},[4383,25567,3840],{"class":4408},[4383,25569,10000],{"class":4412},[4383,25571,5050],{"class":4408},[4383,25573,25574,25576,25578,25580,25582],{"class":4385,"line":12342},[4383,25575,6473],{"class":4412},[4383,25577,9334],{"class":4412},[4383,25579,3840],{"class":4408},[4383,25581,9849],{"class":4412},[4383,25583,5050],{"class":4408},[4383,25585,25586],{"class":4385,"line":12361},[4383,25587,24385],{"class":4408},[4383,25589,25590,25592],{"class":4385,"line":12372},[4383,25591,5092],{"class":4408},[4383,25593,5013],{"class":4404},[4383,25595,25596],{"class":4385,"line":12401},[4383,25597,5100],{"class":4389},[4383,25599,25600,25602],{"class":4385,"line":12408},[4383,25601,5106],{"class":4389},[4383,25603,25604],{"class":4393},"Button\n",[4383,25606,25607,25610,25612],{"class":4385,"line":12413},[4383,25608,25609],{"class":4396},"          label",[4383,25611,4401],{"class":4400},[4383,25613,25614],{"class":4433},"\"Нова поїздка\"\n",[4383,25616,25617,25619,25621,25623,25625,25627],{"class":4385,"line":12448},[4383,25618,14382],{"class":4396},[4383,25620,4401],{"class":4400},[4383,25622,4405],{"class":4404},[4383,25624,4986],{"class":4408},[4383,25626,4989],{"class":4404},[4383,25628,5213],{"class":4408},[4383,25630,25631,25634,25636,25638,25640,25643],{"class":4385,"line":12467},[4383,25632,25633],{"class":4412},"            console",[4383,25635,3840],{"class":4408},[4383,25637,24194],{"class":4812},[4383,25639,4842],{"class":4408},[4383,25641,25642],{"class":4433},"'TODO: відкрити створення поїздки'",[4383,25644,4848],{"class":4408},[4383,25646,25647,25649],{"class":4385,"line":12476},[4383,25648,6501],{"class":4408},[4383,25650,5013],{"class":4404},[4383,25652,25653],{"class":4385,"line":12485},[4383,25654,12103],{"class":4389},[4383,25656,25657,25659,25661],{"class":4385,"line":12490},[4383,25658,4961],{"class":4389},[4383,25660,4198],{"class":4393},[4383,25662,4889],{"class":4389},[4383,25664,25665,25667,25669],{"class":4385,"line":12532},[4383,25666,5164],{"class":4389},[4383,25668,15417],{"class":4393},[4383,25670,4889],{"class":4389},[4383,25672,25673],{"class":4385,"line":12538},[4383,25674,5174],{"class":4400},[4383,25676,25677],{"class":4385,"line":12544},[4383,25678,5013],{"class":4400},[4383,25680,25681],{"class":4385,"line":12553},[4383,25682,4797],{"emptyLinePlaceholder":4796},[4383,25684,25685,25687,25689,25691,25693,25695,25697],{"class":4385,"line":12562},[4383,25686,5190],{"class":4404},[4383,25688,5062],{"class":4828},[4383,25690,5195],{"class":4400},[4383,25692,3803],{"class":4412},[4383,25694,3840],{"class":4400},[4383,25696,4495],{"class":4812},[4383,25698,5204],{"class":4400},[4383,25700,25701,25703],{"class":4385,"line":12567},[4383,25702,5210],{"class":4412},[4383,25704,5213],{"class":4400},[4383,25706,25707,25709,25712],{"class":4385,"line":12572},[4383,25708,12658],{"class":4412},[4383,25710,25711],{"class":4416}," 0",[4383,25713,5050],{"class":4400},[4383,25715,25716],{"class":4385,"line":12577},[4383,25717,5272],{"class":4400},[4383,25719,25720,25722],{"class":4385,"line":12594},[4383,25721,21146],{"class":4412},[4383,25723,5213],{"class":4400},[4383,25725,25726,25729,25731],{"class":4385,"line":12625},[4383,25727,25728],{"class":4412},"    borderBottomWidth:",[4383,25730,4417],{"class":4416},[4383,25732,5050],{"class":4400},[4383,25734,25735],{"class":4385,"line":12647},[4383,25736,5272],{"class":4400},[4383,25738,25739,25742],{"class":4385,"line":12655},[4383,25740,25741],{"class":4412},"  themeRow:",[4383,25743,5213],{"class":4400},[4383,25745,25746,25748,25750],{"class":4385,"line":12665},[4383,25747,21191],{"class":4412},[4383,25749,12635],{"class":4433},[4383,25751,5050],{"class":4400},[4383,25753,25754,25757,25759],{"class":4385,"line":12674},[4383,25755,25756],{"class":4412},"    flexWrap:",[4383,25758,19249],{"class":4433},[4383,25760,5050],{"class":4400},[4383,25762,25763],{"class":4385,"line":12683},[4383,25764,5272],{"class":4400},[4383,25766,25767,25770],{"class":4385,"line":12692},[4383,25768,25769],{"class":4412},"  themeChip:",[4383,25771,5213],{"class":4400},[4383,25773,25774,25776,25778],{"class":4385,"line":12697},[4383,25775,12658],{"class":4412},[4383,25777,5264],{"class":4416},[4383,25779,5050],{"class":4400},[4383,25781,25782,25784,25786],{"class":4385,"line":12710},[4383,25783,5359],{"class":4412},[4383,25785,12642],{"class":4416},[4383,25787,5050],{"class":4400},[4383,25789,25790,25792,25794],{"class":4385,"line":12729},[4383,25791,5370],{"class":4412},[4383,25793,12642],{"class":4416},[4383,25795,5050],{"class":4400},[4383,25797,25798,25800,25802],{"class":4385,"line":12736},[4383,25799,5950],{"class":4412},[4383,25801,4417],{"class":4416},[4383,25803,5050],{"class":4400},[4383,25805,25806],{"class":4385,"line":12745},[4383,25807,5272],{"class":4400},[4383,25809,25810,25813],{"class":4385,"line":12754},[4383,25811,25812],{"class":4412},"  themeChipText:",[4383,25814,5213],{"class":4400},[4383,25816,25817,25820,25822],{"class":4385,"line":12763},[4383,25818,25819],{"class":4412},"    fontWeight:",[4383,25821,5994],{"class":4433},[4383,25823,5050],{"class":4400},[4383,25825,25826],{"class":4385,"line":12772},[4383,25827,5272],{"class":4400},[4383,25829,25830,25832],{"class":4385,"line":12781},[4383,25831,7392],{"class":4412},[4383,25833,5213],{"class":4400},[4383,25835,25836,25838,25840],{"class":4385,"line":12786},[4383,25837,5219],{"class":4412},[4383,25839,4417],{"class":4416},[4383,25841,5050],{"class":4400},[4383,25843,25844],{"class":4385,"line":12812},[4383,25845,5272],{"class":4400},[4383,25847,25848,25851],{"class":4385,"line":12820},[4383,25849,25850],{"class":4412},"  empty:",[4383,25852,5213],{"class":4400},[4383,25854,25855,25857,25859],{"class":4385,"line":12830},[4383,25856,5219],{"class":4412},[4383,25858,4417],{"class":4416},[4383,25860,5050],{"class":4400},[4383,25862,25863,25865,25867],{"class":4385,"line":12839},[4383,25864,5380],{"class":4412},[4383,25866,5253],{"class":4433},[4383,25868,5050],{"class":4400},[4383,25870,25871,25873,25875],{"class":4385,"line":12848},[4383,25872,5250],{"class":4412},[4383,25874,5253],{"class":4433},[4383,25876,5050],{"class":4400},[4383,25878,25879],{"class":4385,"line":12853},[4383,25880,5272],{"class":4400},[4383,25882,25883,25886],{"class":4385,"line":12860},[4383,25884,25885],{"class":4412},"  emptyTitle:",[4383,25887,5213],{"class":4400},[4383,25889,25890,25893,25895],{"class":4385,"line":12869},[4383,25891,25892],{"class":4412},"    textAlign:",[4383,25894,5253],{"class":4433},[4383,25896,5050],{"class":4400},[4383,25898,25899],{"class":4385,"line":12878},[4383,25900,5272],{"class":4400},[4383,25902,25903,25906],{"class":4385,"line":12887},[4383,25904,25905],{"class":4412},"  emptyDesc:",[4383,25907,5213],{"class":4400},[4383,25909,25910,25912,25914],{"class":4385,"line":12892},[4383,25911,25892],{"class":4412},[4383,25913,5253],{"class":4433},[4383,25915,5050],{"class":4400},[4383,25917,25919],{"class":4385,"line":25918},180,[4383,25920,5272],{"class":4400},[4383,25922,25924,25927],{"class":4385,"line":25923},181,[4383,25925,25926],{"class":4412},"  footer:",[4383,25928,5213],{"class":4400},[4383,25930,25932,25935,25937],{"class":4385,"line":25931},182,[4383,25933,25934],{"class":4412},"    borderTopWidth:",[4383,25936,4417],{"class":4416},[4383,25938,5050],{"class":4400},[4383,25940,25942],{"class":4385,"line":25941},183,[4383,25943,5272],{"class":4400},[4383,25945,25947],{"class":4385,"line":25946},184,[4383,25948,5453],{"class":4400},[4374,25950,25953],{"className":10120,"code":25951,"filename":25952,"language":10122,"meta":4379,"style":4379},"export { mockTrips } from '.\u002Fmodel\u002FmockTrips';\nexport type { Trip } from '.\u002Fmodel\u002Ftypes';\nexport { TripCard } from '.\u002Fui\u002FTripCard';\n","src\u002Ffeatures\u002Ftrips\u002Findex.ts",[3764,25954,25955,25972,25992],{"__ignoreMap":4379},[4383,25956,25957,25959,25961,25963,25965,25967,25970],{"class":4385,"line":4386},[4383,25958,4803],{"class":4741},[4383,25960,4745],{"class":4400},[4383,25962,23955],{"class":4412},[4383,25964,4751],{"class":4400},[4383,25966,4754],{"class":4741},[4383,25968,25969],{"class":4433}," '.\u002Fmodel\u002FmockTrips'",[4383,25971,4760],{"class":4400},[4383,25973,25974,25976,25979,25981,25983,25985,25987,25990],{"class":4385,"line":4763},[4383,25975,4803],{"class":4741},[4383,25977,25978],{"class":4741}," type",[4383,25980,4745],{"class":4400},[4383,25982,24178],{"class":4412},[4383,25984,4751],{"class":4400},[4383,25986,4754],{"class":4741},[4383,25988,25989],{"class":4433}," '.\u002Fmodel\u002Ftypes'",[4383,25991,4760],{"class":4400},[4383,25993,25994,25996,25998,26000,26002,26004,26007],{"class":4385,"line":4793},[4383,25995,4803],{"class":4741},[4383,25997,4745],{"class":4400},[4383,25999,9742],{"class":4412},[4383,26001,4751],{"class":4400},[4383,26003,4754],{"class":4741},[4383,26005,26006],{"class":4433}," '.\u002Fui\u002FTripCard'",[4383,26008,4760],{"class":4400},[4374,26010,26013],{"className":10120,"code":26011,"filename":26012,"language":10122,"meta":4379,"style":4379},"import type { Trip } from '.\u002Ftypes';\n\nexport const mockTrips: Trip[] = [\n  {\n    id: '1',\n    title: 'Карпати на вихідні',\n    dateLabel: '12–14 бер. 2026',\n    description: 'Говерла, полонини й вечірній чай біля каміну в котеджі.',\n    coverUri: 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1464822759023-fed622ff2c3b?w=800&q=80',\n  },\n  {\n    id: '2',\n    title: 'Львівський вікенд',\n    dateLabel: '2–4 трав. 2026',\n    description: 'Кава, площа Ринок, закапелки й нічний трамвай.',\n    coverUri: 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555881400-74d7acaacd8b?w=800&q=80',\n  },\n  {\n    id: '3',\n    title: 'Одеса біля моря',\n    dateLabel: '18–22 лип. 2026',\n    description: 'Схід сонця на набережній, рибний ринок і вечірній Привоз.',\n    coverUri: 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=800&q=80',\n  },\n];\n","src\u002Ffeatures\u002Ftrips\u002Fmodel\u002FmockTrips.ts",[3764,26014,26015,26034,26038,26054,26059,26069,26079,26089,26099,26109,26113,26117,26126,26135,26144,26153,26162,26166,26170,26179,26188,26197,26206,26215,26219],{"__ignoreMap":4379},[4383,26016,26017,26019,26021,26023,26025,26027,26029,26032],{"class":4385,"line":4386},[4383,26018,4742],{"class":4741},[4383,26020,25978],{"class":4741},[4383,26022,4745],{"class":4400},[4383,26024,24178],{"class":4412},[4383,26026,4751],{"class":4400},[4383,26028,4754],{"class":4741},[4383,26030,26031],{"class":4433}," '.\u002Ftypes'",[4383,26033,4760],{"class":4400},[4383,26035,26036],{"class":4385,"line":4763},[4383,26037,4797],{"emptyLinePlaceholder":4796},[4383,26039,26040,26042,26044,26047,26049,26051],{"class":4385,"line":4793},[4383,26041,4803],{"class":4741},[4383,26043,11261],{"class":4404},[4383,26045,26046],{"class":4828}," mockTrips",[4383,26048,13879],{"class":4400},[4383,26050,24178],{"class":4393},[4383,26052,26053],{"class":4400},"[] = [\n",[4383,26055,26056],{"class":4385,"line":4800},[4383,26057,26058],{"class":4400},"  {\n",[4383,26060,26061,26064,26067],{"class":4385,"line":4819},[4383,26062,26063],{"class":4412},"    id:",[4383,26065,26066],{"class":4433}," '1'",[4383,26068,5050],{"class":4400},[4383,26070,26071,26074,26077],{"class":4385,"line":4851},[4383,26072,26073],{"class":4412},"    title:",[4383,26075,26076],{"class":4433}," 'Карпати на вихідні'",[4383,26078,5050],{"class":4400},[4383,26080,26081,26084,26087],{"class":4385,"line":4856},[4383,26082,26083],{"class":4412},"    dateLabel:",[4383,26085,26086],{"class":4433}," '12–14 бер. 2026'",[4383,26088,5050],{"class":4400},[4383,26090,26091,26094,26097],{"class":4385,"line":4865},[4383,26092,26093],{"class":4412},"    description:",[4383,26095,26096],{"class":4433}," 'Говерла, полонини й вечірній чай біля каміну в котеджі.'",[4383,26098,5050],{"class":4400},[4383,26100,26101,26104,26107],{"class":4385,"line":4892},[4383,26102,26103],{"class":4412},"    coverUri:",[4383,26105,26106],{"class":4433}," 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1464822759023-fed622ff2c3b?w=800&q=80'",[4383,26108,5050],{"class":4400},[4383,26110,26111],{"class":4385,"line":4928},[4383,26112,5272],{"class":4400},[4383,26114,26115],{"class":4385,"line":4952},[4383,26116,26058],{"class":4400},[4383,26118,26119,26121,26124],{"class":4385,"line":4958},[4383,26120,26063],{"class":4412},[4383,26122,26123],{"class":4433}," '2'",[4383,26125,5050],{"class":4400},[4383,26127,26128,26130,26133],{"class":4385,"line":4968},[4383,26129,26073],{"class":4412},[4383,26131,26132],{"class":4433}," 'Львівський вікенд'",[4383,26134,5050],{"class":4400},[4383,26136,26137,26139,26142],{"class":4385,"line":4976},[4383,26138,26083],{"class":4412},[4383,26140,26141],{"class":4433}," '2–4 трав. 2026'",[4383,26143,5050],{"class":4400},[4383,26145,26146,26148,26151],{"class":4385,"line":5016},[4383,26147,26093],{"class":4412},[4383,26149,26150],{"class":4433}," 'Кава, площа Ринок, закапелки й нічний трамвай.'",[4383,26152,5050],{"class":4400},[4383,26154,26155,26157,26160],{"class":4385,"line":5039},[4383,26156,26103],{"class":4412},[4383,26158,26159],{"class":4433}," 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555881400-74d7acaacd8b?w=800&q=80'",[4383,26161,5050],{"class":4400},[4383,26163,26164],{"class":4385,"line":5053},[4383,26165,5272],{"class":4400},[4383,26167,26168],{"class":4385,"line":5072},[4383,26169,26058],{"class":4400},[4383,26171,26172,26174,26177],{"class":4385,"line":5089},[4383,26173,26063],{"class":4412},[4383,26175,26176],{"class":4433}," '3'",[4383,26178,5050],{"class":4400},[4383,26180,26181,26183,26186],{"class":4385,"line":5097},[4383,26182,26073],{"class":4412},[4383,26184,26185],{"class":4433}," 'Одеса біля моря'",[4383,26187,5050],{"class":4400},[4383,26189,26190,26192,26195],{"class":4385,"line":5103},[4383,26191,26083],{"class":4412},[4383,26193,26194],{"class":4433}," '18–22 лип. 2026'",[4383,26196,5050],{"class":4400},[4383,26198,26199,26201,26204],{"class":4385,"line":5152},[4383,26200,26093],{"class":4412},[4383,26202,26203],{"class":4433}," 'Схід сонця на набережній, рибний ринок і вечірній Привоз.'",[4383,26205,5050],{"class":4400},[4383,26207,26208,26210,26213],{"class":4385,"line":5161},[4383,26209,26103],{"class":4412},[4383,26211,26212],{"class":4433}," 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1507525428034-b723cf961d3e?w=800&q=80'",[4383,26214,5050],{"class":4400},[4383,26216,26217],{"class":4385,"line":5171},[4383,26218,5272],{"class":4400},[4383,26220,26221],{"class":4385,"line":5177},[4383,26222,24110],{"class":4400},[4374,26224,26227],{"className":10120,"code":26225,"filename":26226,"language":10122,"meta":4379,"style":4379},"export type Trip = {\n  id: string;\n  title: string;\n  dateLabel: string;\n  description: string;\n  coverUri: string;\n};\n","src\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes.ts",[3764,26228,26229,26239,26250,26261,26272,26283,26294],{"__ignoreMap":4379},[4383,26230,26231,26233,26235,26237],{"class":4385,"line":4386},[4383,26232,4803],{"class":4741},[4383,26234,25978],{"class":4404},[4383,26236,23966],{"class":4393},[4383,26238,10822],{"class":4400},[4383,26240,26241,26244,26246,26248],{"class":4385,"line":4763},[4383,26242,26243],{"class":4412},"  id",[4383,26245,13879],{"class":4400},[4383,26247,15886],{"class":4393},[4383,26249,4760],{"class":4400},[4383,26251,26252,26255,26257,26259],{"class":4385,"line":4793},[4383,26253,26254],{"class":4412},"  title",[4383,26256,13879],{"class":4400},[4383,26258,15886],{"class":4393},[4383,26260,4760],{"class":4400},[4383,26262,26263,26266,26268,26270],{"class":4385,"line":4800},[4383,26264,26265],{"class":4412},"  dateLabel",[4383,26267,13879],{"class":4400},[4383,26269,15886],{"class":4393},[4383,26271,4760],{"class":4400},[4383,26273,26274,26277,26279,26281],{"class":4385,"line":4819},[4383,26275,26276],{"class":4412},"  description",[4383,26278,13879],{"class":4400},[4383,26280,15886],{"class":4393},[4383,26282,4760],{"class":4400},[4383,26284,26285,26288,26290,26292],{"class":4385,"line":4851},[4383,26286,26287],{"class":4412},"  coverUri",[4383,26289,13879],{"class":4400},[4383,26291,15886],{"class":4393},[4383,26293,4760],{"class":4400},[4383,26295,26296],{"class":4385,"line":4856},[4383,26297,10913],{"class":4400},[4374,26299,26302],{"className":4376,"code":26300,"filename":26301,"language":4378,"meta":4379,"style":4379},"import { 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\nexport function TripCard({ 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\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\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  footer: {\n    alignItems: 'flex-start',\n  },\n});\n","src\u002Ffeatures\u002Ftrips\u002Fui\u002FTripCard.tsx",[3764,26303,26304,26338,26342,26361,26377,26393,26397,26406,26417,26439,26443,26447,26473,26495,26499,26505,26511,26520,26546,26570,26589,26600,26605,26618,26631,26646,26651,26667,26674,26679,26686,26711,26742,26752,26757,26761,26808,26845,26885,26897,26905,26934,26947,26955,26963,26969,26982,27014,27018,27031,27039,27075,27104,27109,27117,27125,27133,27141,27145,27149,27153,27169,27175,27183,27191,27205,27212,27221,27231,27240,27261,27265,27272,27282,27286,27294,27299,27303,27310,27320,27324,27331,27340,27349,27353,27360,27367,27375,27383,27387,27394,27402,27406,27413,27422,27426,27432,27440,27444],{"__ignoreMap":4379},[4383,26305,26306,26308,26310,26313,26315,26318,26320,26322,26324,26326,26328,26330,26332,26334,26336],{"class":4385,"line":4386},[4383,26307,4742],{"class":4741},[4383,26309,4745],{"class":4400},[4383,26311,26312],{"class":4412},"Image",[4383,26314,3767],{"class":4400},[4383,26316,26317],{"class":4412},"Platform",[4383,26319,3767],{"class":4400},[4383,26321,4724],{"class":4412},[4383,26323,3767],{"class":4400},[4383,26325,3803],{"class":4412},[4383,26327,3767],{"class":4400},[4383,26329,4198],{"class":4412},[4383,26331,4751],{"class":4400},[4383,26333,4754],{"class":4741},[4383,26335,4788],{"class":4433},[4383,26337,4760],{"class":4400},[4383,26339,26340],{"class":4385,"line":4763},[4383,26341,4797],{"emptyLinePlaceholder":4796},[4383,26343,26344,26346,26348,26350,26352,26354,26356,26359],{"class":4385,"line":4793},[4383,26345,4742],{"class":4741},[4383,26347,25978],{"class":4741},[4383,26349,4745],{"class":4400},[4383,26351,24178],{"class":4412},[4383,26353,4751],{"class":4400},[4383,26355,4754],{"class":4741},[4383,26357,26358],{"class":4433}," '@\u002Ffeatures\u002Ftrips\u002Fmodel\u002Ftypes'",[4383,26360,4760],{"class":4400},[4383,26362,26363,26365,26367,26369,26371,26373,26375],{"class":4385,"line":4800},[4383,26364,4742],{"class":4741},[4383,26366,4745],{"class":4400},[4383,26368,3985],{"class":4412},[4383,26370,4751],{"class":4400},[4383,26372,4754],{"class":4741},[4383,26374,19630],{"class":4433},[4383,26376,4760],{"class":4400},[4383,26378,26379,26381,26383,26385,26387,26389,26391],{"class":4385,"line":4819},[4383,26380,4742],{"class":4741},[4383,26382,4745],{"class":4400},[4383,26384,12961],{"class":4412},[4383,26386,4751],{"class":4400},[4383,26388,4754],{"class":4741},[4383,26390,24020],{"class":4433},[4383,26392,4760],{"class":4400},[4383,26394,26395],{"class":4385,"line":4851},[4383,26396,4797],{"emptyLinePlaceholder":4796},[4383,26398,26399,26401,26404],{"class":4385,"line":4856},[4383,26400,15815],{"class":4404},[4383,26402,26403],{"class":4393}," TripCardProps",[4383,26405,10822],{"class":4400},[4383,26407,26408,26411,26413,26415],{"class":4385,"line":4865},[4383,26409,26410],{"class":4412},"  trip",[4383,26412,13879],{"class":4400},[4383,26414,24178],{"class":4393},[4383,26416,4760],{"class":4400},[4383,26418,26419,26422,26425,26427,26429,26431,26433,26435,26437],{"class":4385,"line":4892},[4383,26420,26421],{"class":4812},"  onPress",[4383,26423,26424],{"class":4400},"?: (",[4383,26426,24173],{"class":4412},[4383,26428,13879],{"class":4400},[4383,26430,24178],{"class":4393},[4383,26432,5001],{"class":4400},[4383,26434,4989],{"class":4404},[4383,26436,16187],{"class":4393},[4383,26438,4760],{"class":4400},[4383,26440,26441],{"class":4385,"line":4928},[4383,26442,10913],{"class":4400},[4383,26444,26445],{"class":4385,"line":4952},[4383,26446,4797],{"emptyLinePlaceholder":4796},[4383,26448,26449,26451,26453,26456,26458,26460,26462,26465,26468,26471],{"class":4385,"line":4958},[4383,26450,4803],{"class":4741},[4383,26452,4809],{"class":4404},[4383,26454,26455],{"class":4812}," TripCard",[4383,26457,5026],{"class":4400},[4383,26459,24173],{"class":4412},[4383,26461,3767],{"class":4400},[4383,26463,26464],{"class":4412},"onPress",[4383,26466,26467],{"class":4400}," }: ",[4383,26469,26470],{"class":4393},"TripCardProps",[4383,26472,13888],{"class":4400},[4383,26474,26475,26477,26479,26481,26483,26485,26487,26489,26491,26493],{"class":4385,"line":4968},[4383,26476,4822],{"class":4404},[4383,26478,4745],{"class":4400},[4383,26480,10129],{"class":4828},[4383,26482,3767],{"class":4400},[4383,26484,12911],{"class":4828},[4383,26486,3767],{"class":4400},[4383,26488,17271],{"class":4828},[4383,26490,16824],{"class":4400},[4383,26492,3985],{"class":4812},[4383,26494,13148],{"class":4400},[4383,26496,26497],{"class":4385,"line":4976},[4383,26498,4797],{"emptyLinePlaceholder":4796},[4383,26500,26501,26503],{"class":4385,"line":5016},[4383,26502,4859],{"class":4741},[4383,26504,4862],{"class":4400},[4383,26506,26507,26509],{"class":4385,"line":5039},[4383,26508,4868],{"class":4389},[4383,26510,4973],{"class":4393},[4383,26512,26513,26516,26518],{"class":4385,"line":5053},[4383,26514,26515],{"class":4396},"      accessibilityRole",[4383,26517,4401],{"class":4400},[4383,26519,24836],{"class":4433},[4383,26521,26522,26525,26527,26529,26532,26534,26536,26538,26540,26542,26544],{"class":4385,"line":5072},[4383,26523,26524],{"class":4396},"      accessibilityLabel",[4383,26526,4401],{"class":4400},[4383,26528,4405],{"class":4404},[4383,26530,26531],{"class":4433},"`Поїздка ",[4383,26533,24573],{"class":4404},[4383,26535,24173],{"class":4412},[4383,26537,3840],{"class":4408},[4383,26539,4910],{"class":4412},[4383,26541,4440],{"class":4404},[4383,26543,24881],{"class":4433},[4383,26545,5013],{"class":4404},[4383,26547,26548,26551,26553,26555,26557,26559,26561,26564,26566,26568],{"class":4385,"line":5089},[4383,26549,26550],{"class":4396},"      onPress",[4383,26552,4401],{"class":4400},[4383,26554,4405],{"class":4404},[4383,26556,4986],{"class":4408},[4383,26558,4989],{"class":4404},[4383,26560,25248],{"class":4812},[4383,26562,26563],{"class":4408},"?.(",[4383,26565,24173],{"class":4412},[4383,26567,4141],{"class":4408},[4383,26569,5013],{"class":4404},[4383,26571,26572,26575,26577,26579,26581,26583,26585,26587],{"class":4385,"line":5097},[4383,26573,26574],{"class":4396},"      style",[4383,26576,4401],{"class":4400},[4383,26578,4405],{"class":4404},[4383,26580,5026],{"class":4408},[4383,26582,4468],{"class":4412},[4383,26584,5031],{"class":4408},[4383,26586,4989],{"class":4404},[4383,26588,5036],{"class":4408},[4383,26590,26591,26594,26596,26598],{"class":4385,"line":5103},[4383,26592,26593],{"class":4412},"        styles",[4383,26595,3840],{"class":4408},[4383,26597,6227],{"class":4412},[4383,26599,5050],{"class":4408},[4383,26601,26602],{"class":4385,"line":5152},[4383,26603,26604],{"class":4408},"        {\n",[4383,26606,26607,26610,26612,26614,26616],{"class":4385,"line":5161},[4383,26608,26609],{"class":4412},"          backgroundColor:",[4383,26611,9334],{"class":4412},[4383,26613,3840],{"class":4408},[4383,26615,3891],{"class":4412},[4383,26617,5050],{"class":4408},[4383,26619,26620,26623,26625,26627,26629],{"class":4385,"line":5171},[4383,26621,26622],{"class":4412},"          borderColor:",[4383,26624,9334],{"class":4412},[4383,26626,3840],{"class":4408},[4383,26628,10000],{"class":4412},[4383,26630,5050],{"class":4408},[4383,26632,26633,26636,26639,26641,26644],{"class":4385,"line":5177},[4383,26634,26635],{"class":4412},"          borderRadius:",[4383,26637,26638],{"class":4412}," radius",[4383,26640,3840],{"class":4408},[4383,26642,26643],{"class":4412},"lg",[4383,26645,5050],{"class":4408},[4383,26647,26648],{"class":4385,"line":5182},[4383,26649,26650],{"class":4408},"        },\n",[4383,26652,26653,26656,26658,26660,26662,26665],{"class":4385,"line":5187},[4383,26654,26655],{"class":4412},"        pressed",[4383,26657,5059],{"class":4400},[4383,26659,5062],{"class":4412},[4383,26661,3840],{"class":4408},[4383,26663,26664],{"class":4412},"cardPressed",[4383,26666,5050],{"class":4408},[4383,26668,26669,26672],{"class":4385,"line":5207},[4383,26670,26671],{"class":4408},"      ]",[4383,26673,5013],{"class":4404},[4383,26675,26676],{"class":4385,"line":5216},[4383,26677,26678],{"class":4389},"    >\n",[4383,26680,26681,26683],{"class":4385,"line":5226},[4383,26682,4895],{"class":4389},[4383,26684,26685],{"class":4393},"Image\n",[4383,26687,26688,26691,26693,26695,26697,26700,26702,26704,26707,26709],{"class":4385,"line":5236},[4383,26689,26690],{"class":4396},"        source",[4383,26692,4401],{"class":4400},[4383,26694,4405],{"class":4404},[4383,26696,4409],{"class":4408},[4383,26698,26699],{"class":4412},"uri:",[4383,26701,25237],{"class":4412},[4383,26703,3840],{"class":4408},[4383,26705,26706],{"class":4412},"coverUri",[4383,26708,4437],{"class":4408},[4383,26710,5013],{"class":4404},[4383,26712,26713,26715,26717,26719,26721,26723,26725,26728,26730,26732,26734,26736,26738,26740],{"class":4385,"line":5247},[4383,26714,5019],{"class":4396},[4383,26716,4401],{"class":4400},[4383,26718,4405],{"class":4404},[4383,26720,6278],{"class":4408},[4383,26722,4879],{"class":4412},[4383,26724,3840],{"class":4408},[4383,26726,26727],{"class":4412},"cover",[4383,26729,9329],{"class":4408},[4383,26731,4430],{"class":4412},[4383,26733,9334],{"class":4412},[4383,26735,3840],{"class":4408},[4383,26737,10000],{"class":4412},[4383,26739,9341],{"class":4408},[4383,26741,5013],{"class":4404},[4383,26743,26744,26747,26749],{"class":4385,"line":5258},[4383,26745,26746],{"class":4396},"        resizeMode",[4383,26748,4401],{"class":4400},[4383,26750,26751],{"class":4433},"\"cover\"\n",[4383,26753,26754],{"class":4385,"line":5269},[4383,26755,26756],{"class":4396},"        accessibilityIgnoresInvertColors\n",[4383,26758,26759],{"class":4385,"line":5275},[4383,26760,17148],{"class":4389},[4383,26762,26763,26765,26767,26769,26771,26773,26775,26777,26779,26782,26784,26786,26788,26790,26792,26794,26796,26798,26800,26802,26804,26806],{"class":4385,"line":5308},[4383,26764,4895],{"class":4389},[4383,26766,4198],{"class":4393},[4383,26768,4397],{"class":4396},[4383,26770,4401],{"class":4400},[4383,26772,4405],{"class":4404},[4383,26774,6278],{"class":4408},[4383,26776,4879],{"class":4412},[4383,26778,3840],{"class":4408},[4383,26780,26781],{"class":4412},"body",[4383,26783,9329],{"class":4408},[4383,26785,4422],{"class":4412},[4383,26787,17392],{"class":4412},[4383,26789,3840],{"class":4408},[4383,26791,17398],{"class":4412},[4383,26793,3767],{"class":4408},[4383,26795,5878],{"class":4412},[4383,26797,17392],{"class":4412},[4383,26799,3840],{"class":4408},[4383,26801,24365],{"class":4412},[4383,26803,9341],{"class":4408},[4383,26805,4440],{"class":4404},[4383,26807,4889],{"class":4389},[4383,26809,26810,26812,26814,26816,26818,26820,26822,26824,26826,26829,26831,26833,26835,26837,26839,26841,26843],{"class":4385,"line":5338},[4383,26811,5106],{"class":4389},[4383,26813,4198],{"class":4393},[4383,26815,4397],{"class":4396},[4383,26817,4401],{"class":4400},[4383,26819,4405],{"class":4404},[4383,26821,6278],{"class":4408},[4383,26823,4879],{"class":4412},[4383,26825,3840],{"class":4408},[4383,26827,26828],{"class":4412},"titleRow",[4383,26830,9329],{"class":4408},[4383,26832,5878],{"class":4412},[4383,26834,17392],{"class":4412},[4383,26836,3840],{"class":4408},[4383,26838,24338],{"class":4412},[4383,26840,9341],{"class":4408},[4383,26842,4440],{"class":4404},[4383,26844,4889],{"class":4389},[4383,26846,26847,26849,26851,26853,26855,26857,26860,26862,26864,26866,26868,26870,26872,26874,26876,26878,26881,26883],{"class":4385,"line":5346},[4383,26848,6305],{"class":4389},[4383,26850,12961],{"class":4393},[4383,26852,24404],{"class":4396},[4383,26854,4401],{"class":4400},[4383,26856,25376],{"class":4433},[4383,26858,26859],{"class":4396}," numberOfLines",[4383,26861,4401],{"class":4400},[4383,26863,4405],{"class":4404},[4383,26865,4704],{"class":4416},[4383,26867,4440],{"class":4404},[4383,26869,4397],{"class":4396},[4383,26871,4401],{"class":4400},[4383,26873,4405],{"class":4404},[4383,26875,4879],{"class":4412},[4383,26877,3840],{"class":4408},[4383,26879,26880],{"class":4412},"titleFlex",[4383,26882,4440],{"class":4404},[4383,26884,4889],{"class":4389},[4383,26886,26887,26889,26891,26893,26895],{"class":4385,"line":5356},[4383,26888,25197],{"class":4404},[4383,26890,24173],{"class":4412},[4383,26892,3840],{"class":4408},[4383,26894,4910],{"class":4412},[4383,26896,5013],{"class":4404},[4383,26898,26899,26901,26903],{"class":4385,"line":5367},[4383,26900,8336],{"class":4389},[4383,26902,12961],{"class":4393},[4383,26904,4889],{"class":4389},[4383,26906,26907,26909,26911,26913,26915,26917,26919,26921,26923,26925,26927,26930,26932],{"class":4385,"line":5377},[4383,26908,6305],{"class":4389},[4383,26910,12961],{"class":4393},[4383,26912,24404],{"class":4396},[4383,26914,4401],{"class":4400},[4383,26916,24433],{"class":4433},[4383,26918,4397],{"class":4396},[4383,26920,4401],{"class":4400},[4383,26922,4405],{"class":4404},[4383,26924,4879],{"class":4412},[4383,26926,3840],{"class":4408},[4383,26928,26929],{"class":4412},"dates",[4383,26931,4440],{"class":4404},[4383,26933,4889],{"class":4389},[4383,26935,26936,26938,26940,26942,26945],{"class":4385,"line":5387},[4383,26937,25197],{"class":4404},[4383,26939,24173],{"class":4412},[4383,26941,3840],{"class":4408},[4383,26943,26944],{"class":4412},"dateLabel",[4383,26946,5013],{"class":4404},[4383,26948,26949,26951,26953],{"class":4385,"line":5392},[4383,26950,8336],{"class":4389},[4383,26952,12961],{"class":4393},[4383,26954,4889],{"class":4389},[4383,26956,26957,26959,26961],{"class":4385,"line":5407},[4383,26958,6338],{"class":4389},[4383,26960,4198],{"class":4393},[4383,26962,4889],{"class":4389},[4383,26964,26965,26967],{"class":4385,"line":5423},[4383,26966,5106],{"class":4389},[4383,26968,24493],{"class":4393},[4383,26970,26971,26974,26976,26978,26980],{"class":4385,"line":5450},[4383,26972,26973],{"class":4396},"          numberOfLines",[4383,26975,4401],{"class":4400},[4383,26977,4405],{"class":4404},[4383,26979,5755],{"class":4416},[4383,26981,5013],{"class":4404},[4383,26983,26984,26986,26988,26990,26992,26994,26996,26998,27000,27002,27004,27006,27008,27010,27012],{"class":4385,"line":6760},[4383,26985,6448],{"class":4396},[4383,26987,4401],{"class":4400},[4383,26989,4405],{"class":4404},[4383,26991,4409],{"class":4408},[4383,26993,6885],{"class":4412},[4383,26995,17392],{"class":4412},[4383,26997,3840],{"class":4408},[4383,26999,24365],{"class":4412},[4383,27001,3767],{"class":4408},[4383,27003,5299],{"class":4412},[4383,27005,9334],{"class":4412},[4383,27007,3840],{"class":4408},[4383,27009,9924],{"class":4412},[4383,27011,4437],{"class":4408},[4383,27013,5013],{"class":4404},[4383,27015,27016],{"class":4385,"line":6765},[4383,27017,6508],{"class":4389},[4383,27019,27020,27022,27024,27026,27029],{"class":4385,"line":6793},[4383,27021,8498],{"class":4404},[4383,27023,24173],{"class":4412},[4383,27025,3840],{"class":4408},[4383,27027,27028],{"class":4412},"description",[4383,27030,5013],{"class":4404},[4383,27032,27033,27035,27037],{"class":4385,"line":6801},[4383,27034,6338],{"class":4389},[4383,27036,12961],{"class":4393},[4383,27038,4889],{"class":4389},[4383,27040,27041,27043,27045,27047,27049,27051,27053,27055,27057,27059,27061,27063,27065,27067,27069,27071,27073],{"class":4385,"line":6811},[4383,27042,5106],{"class":4389},[4383,27044,4198],{"class":4393},[4383,27046,4397],{"class":4396},[4383,27048,4401],{"class":4400},[4383,27050,4405],{"class":4404},[4383,27052,6278],{"class":4408},[4383,27054,4879],{"class":4412},[4383,27056,3840],{"class":4408},[4383,27058,25516],{"class":4412},[4383,27060,9329],{"class":4408},[4383,27062,6885],{"class":4412},[4383,27064,17392],{"class":4412},[4383,27066,3840],{"class":4408},[4383,27068,24338],{"class":4412},[4383,27070,9341],{"class":4408},[4383,27072,4440],{"class":4404},[4383,27074,4889],{"class":4389},[4383,27076,27077,27079,27081,27083,27085,27087,27090,27092,27094,27096,27098,27100,27102],{"class":4385,"line":6820},[4383,27078,6305],{"class":4389},[4383,27080,12961],{"class":4393},[4383,27082,24404],{"class":4396},[4383,27084,4401],{"class":4400},[4383,27086,24433],{"class":4433},[4383,27088,27089],{"class":4396}," color",[4383,27091,4401],{"class":4400},[4383,27093,4405],{"class":4404},[4383,27095,10129],{"class":4412},[4383,27097,3840],{"class":4408},[4383,27099,9747],{"class":4412},[4383,27101,4440],{"class":4404},[4383,27103,4889],{"class":4389},[4383,27105,27106],{"class":4385,"line":6829},[4383,27107,27108],{"class":4400},"            Відкрити\n",[4383,27110,27111,27113,27115],{"class":4385,"line":6834},[4383,27112,8336],{"class":4389},[4383,27114,12961],{"class":4393},[4383,27116,4889],{"class":4389},[4383,27118,27119,27121,27123],{"class":4385,"line":6860},[4383,27120,6338],{"class":4389},[4383,27122,4198],{"class":4393},[4383,27124,4889],{"class":4389},[4383,27126,27127,27129,27131],{"class":4385,"line":6893},[4383,27128,4961],{"class":4389},[4383,27130,4198],{"class":4393},[4383,27132,4889],{"class":4389},[4383,27134,27135,27137,27139],{"class":4385,"line":8399},[4383,27136,5164],{"class":4389},[4383,27138,4724],{"class":4393},[4383,27140,4889],{"class":4389},[4383,27142,27143],{"class":4385,"line":8418},[4383,27144,5174],{"class":4400},[4383,27146,27147],{"class":4385,"line":8429},[4383,27148,5013],{"class":4400},[4383,27150,27151],{"class":4385,"line":8445},[4383,27152,4797],{"emptyLinePlaceholder":4796},[4383,27154,27155,27157,27159,27161,27163,27165,27167],{"class":4385,"line":8460},[4383,27156,5190],{"class":4404},[4383,27158,5062],{"class":4828},[4383,27160,5195],{"class":4400},[4383,27162,3803],{"class":4412},[4383,27164,3840],{"class":4400},[4383,27166,4495],{"class":4812},[4383,27168,5204],{"class":4400},[4383,27170,27171,27173],{"class":4385,"line":8467},[4383,27172,6702],{"class":4412},[4383,27174,5213],{"class":4400},[4383,27176,27177,27179,27181],{"class":4385,"line":8472},[4383,27178,5950],{"class":4412},[4383,27180,4417],{"class":4416},[4383,27182,5050],{"class":4400},[4383,27184,27185,27187,27189],{"class":4385,"line":8495},[4383,27186,6752],{"class":4412},[4383,27188,6755],{"class":4433},[4383,27190,5050],{"class":4400},[4383,27192,27193,27196,27198,27200,27203],{"class":4385,"line":8515},[4383,27194,27195],{"class":4400},"    ...",[4383,27197,26317],{"class":4412},[4383,27199,3840],{"class":4400},[4383,27201,27202],{"class":4812},"select",[4383,27204,5204],{"class":4400},[4383,27206,27207,27210],{"class":4385,"line":8524},[4383,27208,27209],{"class":4412},"      ios:",[4383,27211,5213],{"class":4400},[4383,27213,27214,27217,27219],{"class":4385,"line":8533},[4383,27215,27216],{"class":4412},"        shadowColor:",[4383,27218,13207],{"class":4433},[4383,27220,5050],{"class":4400},[4383,27222,27223,27226,27229],{"class":4385,"line":8538},[4383,27224,27225],{"class":4412},"        shadowOpacity:",[4383,27227,27228],{"class":4416}," 0.08",[4383,27230,5050],{"class":4400},[4383,27232,27233,27236,27238],{"class":4385,"line":8561},[4383,27234,27235],{"class":4412},"        shadowRadius:",[4383,27237,6670],{"class":4416},[4383,27239,5050],{"class":4400},[4383,27241,27242,27245,27247,27250,27252,27254,27257,27259],{"class":4385,"line":8567},[4383,27243,27244],{"class":4412},"        shadowOffset:",[4383,27246,4745],{"class":4400},[4383,27248,27249],{"class":4412},"width:",[4383,27251,25711],{"class":4416},[4383,27253,3767],{"class":4400},[4383,27255,27256],{"class":4412},"height:",[4383,27258,6888],{"class":4416},[4383,27260,5305],{"class":4400},[4383,27262,27263],{"class":4385,"line":8576},[4383,27264,23484],{"class":4400},[4383,27266,27267,27270],{"class":4385,"line":8585},[4383,27268,27269],{"class":4412},"      android:",[4383,27271,5213],{"class":4400},[4383,27273,27274,27277,27280],{"class":4385,"line":8590},[4383,27275,27276],{"class":4412},"        elevation:",[4383,27278,27279],{"class":4416}," 3",[4383,27281,5050],{"class":4400},[4383,27283,27284],{"class":4385,"line":8595},[4383,27285,23484],{"class":4400},[4383,27287,27288,27291],{"class":4385,"line":8600},[4383,27289,27290],{"class":4412},"      default:",[4383,27292,27293],{"class":4400}," {},\n",[4383,27295,27296],{"class":4385,"line":8617},[4383,27297,27298],{"class":4400},"    }),\n",[4383,27300,27301],{"class":4385,"line":8624},[4383,27302,5272],{"class":4400},[4383,27304,27305,27308],{"class":4385,"line":8633},[4383,27306,27307],{"class":4412},"  cardPressed:",[4383,27309,5213],{"class":4400},[4383,27311,27312,27315,27318],{"class":4385,"line":8642},[4383,27313,27314],{"class":4412},"    opacity:",[4383,27316,27317],{"class":4416}," 0.92",[4383,27319,5050],{"class":4400},[4383,27321,27322],{"class":4385,"line":8651},[4383,27323,5272],{"class":4400},[4383,27325,27326,27329],{"class":4385,"line":8660},[4383,27327,27328],{"class":4412},"  cover:",[4383,27330,5213],{"class":4400},[4383,27332,27333,27335,27338],{"class":4385,"line":8669},[4383,27334,21328],{"class":4412},[4383,27336,27337],{"class":4433}," '100%'",[4383,27339,5050],{"class":4400},[4383,27341,27342,27344,27347],{"class":4385,"line":8674},[4383,27343,6709],{"class":4412},[4383,27345,27346],{"class":4416}," 160",[4383,27348,5050],{"class":4400},[4383,27350,27351],{"class":4385,"line":8687},[4383,27352,5272],{"class":4400},[4383,27354,27355,27358],{"class":4385,"line":8707},[4383,27356,27357],{"class":4412},"  body:",[4383,27359,27293],{"class":4400},[4383,27361,27362,27365],{"class":4385,"line":8737},[4383,27363,27364],{"class":4412},"  titleRow:",[4383,27366,5213],{"class":4400},[4383,27368,27369,27371,27373],{"class":4385,"line":8744},[4383,27370,21191],{"class":4412},[4383,27372,12635],{"class":4433},[4383,27374,5050],{"class":4400},[4383,27376,27377,27379,27381],{"class":4385,"line":8753},[4383,27378,5380],{"class":4412},[4383,27380,5253],{"class":4433},[4383,27382,5050],{"class":4400},[4383,27384,27385],{"class":4385,"line":8762},[4383,27386,5272],{"class":4400},[4383,27388,27389,27392],{"class":4385,"line":8771},[4383,27390,27391],{"class":4412},"  titleFlex:",[4383,27393,5213],{"class":4400},[4383,27395,27396,27398,27400],{"class":4385,"line":8780},[4383,27397,5219],{"class":4412},[4383,27399,4417],{"class":4416},[4383,27401,5050],{"class":4400},[4383,27403,27404],{"class":4385,"line":8789},[4383,27405,5272],{"class":4400},[4383,27407,27408,27411],{"class":4385,"line":8800},[4383,27409,27410],{"class":4412},"  dates:",[4383,27412,5213],{"class":4400},[4383,27414,27415,27418,27420],{"class":4385,"line":8809},[4383,27416,27417],{"class":4412},"    flexShrink:",[4383,27419,25711],{"class":4416},[4383,27421,5050],{"class":4400},[4383,27423,27424],{"class":4385,"line":8814},[4383,27425,5272],{"class":4400},[4383,27427,27428,27430],{"class":4385,"line":8841},[4383,27429,25926],{"class":4412},[4383,27431,5213],{"class":4400},[4383,27433,27434,27436,27438],{"class":4385,"line":8873},[4383,27435,5380],{"class":4412},[4383,27437,15239],{"class":4433},[4383,27439,5050],{"class":4400},[4383,27441,27442],{"class":4385,"line":8905},[4383,27443,5272],{"class":4400},[4383,27445,27446],{"class":4385,"line":8912},[4383,27447,5453],{"class":4400},[4374,27449,27451],{"className":4376,"code":27450,"filename":15718,"language":4378,"meta":4379,"style":4379},"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",[3764,27452,27453,27459,27465,27472,27478,27484,27490,27496,27506,27527,27531,27537,27544,27552,27561,27572,27597,27601,27606,27624,27628,27636,27641,27651,27661,27681,27691,27705,27718,27732,27736,27740,27764,27768,27776,27786,27804,27812,27834,27842,27846,27866,27870,27874,27883,27893,27898,27908,27912,27916,27926,27932,27942,27952,27965,27980,27995,27999,28023,28033,28037,28041,28061,28087,28091,28108,28117,28124,28131,28138,28145,28154,28161,28168,28172,28192,28196,28200,28206,28236,28240,28244,28248,28262,28278,28288,28303,28307,28315],{"__ignoreMap":4379},[4383,27454,27455,27457],{"class":4385,"line":4386},[4383,27456,4742],{"class":4741},[4383,27458,5213],{"class":4400},[4383,27460,27461,27463],{"class":4385,"line":4763},[4383,27462,17477],{"class":4412},[4383,27464,5050],{"class":4400},[4383,27466,27467,27470],{"class":4385,"line":4793},[4383,27468,27469],{"class":4412},"  ReactNode",[4383,27471,5050],{"class":4400},[4383,27473,27474,27476],{"class":4385,"line":4800},[4383,27475,17484],{"class":4412},[4383,27477,5050],{"class":4400},[4383,27479,27480,27482],{"class":4385,"line":4819},[4383,27481,17491],{"class":4412},[4383,27483,5050],{"class":4400},[4383,27485,27486,27488],{"class":4385,"line":4851},[4383,27487,17498],{"class":4412},[4383,27489,5050],{"class":4400},[4383,27491,27492,27494],{"class":4385,"line":4856},[4383,27493,17505],{"class":4412},[4383,27495,5050],{"class":4400},[4383,27497,27498,27500,27502,27504],{"class":4385,"line":4865},[4383,27499,13754],{"class":4400},[4383,27501,4754],{"class":4741},[4383,27503,4757],{"class":4433},[4383,27505,4760],{"class":4400},[4383,27507,27508,27510,27512,27514,27516,27519,27521,27523,27525],{"class":4385,"line":4892},[4383,27509,4742],{"class":4741},[4383,27511,4745],{"class":4400},[4383,27513,3774],{"class":4412},[4383,27515,7881],{"class":4741},[4383,27517,27518],{"class":4412}," useSystemColorScheme",[4383,27520,4751],{"class":4400},[4383,27522,4754],{"class":4741},[4383,27524,4788],{"class":4433},[4383,27526,4760],{"class":4400},[4383,27528,27529],{"class":4385,"line":4928},[4383,27530,4797],{"emptyLinePlaceholder":4796},[4383,27532,27533,27535],{"class":4385,"line":4952},[4383,27534,4742],{"class":4741},[4383,27536,5213],{"class":4400},[4383,27538,27539,27542],{"class":4385,"line":4958},[4383,27540,27541],{"class":4412},"  colorsForScheme",[4383,27543,5050],{"class":4400},[4383,27545,27546,27548,27550],{"class":4385,"line":4968},[4383,27547,17512],{"class":4741},[4383,27549,15840],{"class":4412},[4383,27551,5050],{"class":4400},[4383,27553,27554,27556,27559],{"class":4385,"line":4976},[4383,27555,17512],{"class":4741},[4383,27557,27558],{"class":4412}," ColorTokens",[4383,27560,5050],{"class":4400},[4383,27562,27563,27565,27567,27570],{"class":4385,"line":5016},[4383,27564,13754],{"class":4400},[4383,27566,4754],{"class":4741},[4383,27568,27569],{"class":4433}," '.\u002Fcolors'",[4383,27571,4760],{"class":4400},[4383,27573,27574,27576,27578,27580,27582,27584,27586,27588,27590,27592,27595],{"class":4385,"line":5039},[4383,27575,4742],{"class":4741},[4383,27577,4745],{"class":4400},[4383,27579,4640],{"class":4412},[4383,27581,3767],{"class":4400},[4383,27583,17271],{"class":4412},[4383,27585,3767],{"class":4400},[4383,27587,19476],{"class":4412},[4383,27589,4751],{"class":4400},[4383,27591,4754],{"class":4741},[4383,27593,27594],{"class":4433}," '.\u002Ftokens'",[4383,27596,4760],{"class":4400},[4383,27598,27599],{"class":4385,"line":5053},[4383,27600,4797],{"emptyLinePlaceholder":4796},[4383,27602,27603],{"class":4385,"line":5072},[4383,27604,27605],{"class":5558},"\u002F** Що обрав користувач: слідувати системі або примусово light\u002Fdark. *\u002F\n",[4383,27607,27608,27610,27612,27614,27616,27618,27620,27622],{"class":4385,"line":5089},[4383,27609,4803],{"class":4741},[4383,27611,25978],{"class":4404},[4383,27613,15818],{"class":4393},[4383,27615,5195],{"class":4400},[4383,27617,15823],{"class":4433},[4383,27619,11051],{"class":4400},[4383,27621,15904],{"class":4393},[4383,27623,4760],{"class":4400},[4383,27625,27626],{"class":4385,"line":5097},[4383,27627,4797],{"emptyLinePlaceholder":4796},[4383,27629,27630,27632,27634],{"class":4385,"line":5103},[4383,27631,15815],{"class":4404},[4383,27633,16123],{"class":4393},[4383,27635,10822],{"class":4400},[4383,27637,27638],{"class":4385,"line":5152},[4383,27639,27640],{"class":5558},"  \u002F** Фактична схема, якою малюємо UI. *\u002F\n",[4383,27642,27643,27645,27647,27649],{"class":4385,"line":5161},[4383,27644,16130],{"class":4412},[4383,27646,13879],{"class":4400},[4383,27648,15904],{"class":4393},[4383,27650,4760],{"class":4400},[4383,27652,27653,27655,27657,27659],{"class":4385,"line":5171},[4383,27654,15869],{"class":4412},[4383,27656,13879],{"class":4400},[4383,27658,15874],{"class":4393},[4383,27660,4760],{"class":4400},[4383,27662,27663,27665,27667,27669,27671,27673,27675,27677,27679],{"class":4385,"line":5177},[4383,27664,16163],{"class":4812},[4383,27666,16166],{"class":4400},[4383,27668,13292],{"class":4412},[4383,27670,13879],{"class":4400},[4383,27672,15874],{"class":4393},[4383,27674,5001],{"class":4400},[4383,27676,4989],{"class":4404},[4383,27678,16187],{"class":4393},[4383,27680,4760],{"class":4400},[4383,27682,27683,27685,27687,27689],{"class":4385,"line":5182},[4383,27684,16194],{"class":4412},[4383,27686,13879],{"class":4400},[4383,27688,13645],{"class":4393},[4383,27690,4760],{"class":4400},[4383,27692,27693,27696,27698,27700,27703],{"class":4385,"line":5187},[4383,27694,27695],{"class":4412},"  spacing",[4383,27697,13879],{"class":4400},[4383,27699,16199],{"class":4404},[4383,27701,27702],{"class":4412}," space",[4383,27704,4760],{"class":4400},[4383,27706,27707,27710,27712,27714,27716],{"class":4385,"line":5207},[4383,27708,27709],{"class":4412},"  radius",[4383,27711,13879],{"class":4400},[4383,27713,16199],{"class":4404},[4383,27715,26638],{"class":4412},[4383,27717,4760],{"class":4400},[4383,27719,27720,27723,27725,27727,27730],{"class":4385,"line":5216},[4383,27721,27722],{"class":4412},"  fontSize",[4383,27724,13879],{"class":4400},[4383,27726,16199],{"class":4404},[4383,27728,27729],{"class":4412}," fontSize",[4383,27731,4760],{"class":4400},[4383,27733,27734],{"class":4385,"line":5226},[4383,27735,10913],{"class":4400},[4383,27737,27738],{"class":4385,"line":5236},[4383,27739,4797],{"emptyLinePlaceholder":4796},[4383,27741,27742,27744,27746,27748,27750,27752,27754,27756,27758,27760,27762],{"class":4385,"line":5247},[4383,27743,5190],{"class":4404},[4383,27745,16226],{"class":4828},[4383,27747,5195],{"class":4400},[4383,27749,15478],{"class":4812},[4383,27751,4390],{"class":4400},[4383,27753,16235],{"class":4393},[4383,27755,11051],{"class":4400},[4383,27757,5750],{"class":4393},[4383,27759,11057],{"class":4400},[4383,27761,5750],{"class":4404},[4383,27763,4848],{"class":4400},[4383,27765,27766],{"class":4385,"line":5258},[4383,27767,4797],{"emptyLinePlaceholder":4796},[4383,27769,27770,27772,27774],{"class":4385,"line":5269},[4383,27771,9526],{"class":4404},[4383,27773,15861],{"class":4812},[4383,27775,15864],{"class":4400},[4383,27777,27778,27780,27782,27784],{"class":4385,"line":5275},[4383,27779,15869],{"class":4412},[4383,27781,13879],{"class":4400},[4383,27783,15874],{"class":4393},[4383,27785,5050],{"class":4400},[4383,27787,27788,27790,27792,27794,27796,27798,27800,27802],{"class":4385,"line":5308},[4383,27789,15881],{"class":4412},[4383,27791,13879],{"class":4400},[4383,27793,15886],{"class":4393},[4383,27795,11051],{"class":4400},[4383,27797,5750],{"class":4393},[4383,27799,11051],{"class":4400},[4383,27801,9470],{"class":4393},[4383,27803,5050],{"class":4400},[4383,27805,27806,27808,27810],{"class":4385,"line":5338},[4383,27807,15901],{"class":4400},[4383,27809,15904],{"class":4393},[4383,27811,5213],{"class":4400},[4383,27813,27814,27816,27818,27820,27822,27824,27826,27828,27830,27832],{"class":4385,"line":5346},[4383,27815,15911],{"class":4741},[4383,27817,3858],{"class":4400},[4383,27819,13590],{"class":4412},[4383,27821,11099],{"class":4400},[4383,27823,11048],{"class":4433},[4383,27825,15922],{"class":4400},[4383,27827,13590],{"class":4412},[4383,27829,11099],{"class":4400},[4383,27831,11054],{"class":4433},[4383,27833,13888],{"class":4400},[4383,27835,27836,27838,27840],{"class":4385,"line":5356},[4383,27837,15935],{"class":4741},[4383,27839,15938],{"class":4412},[4383,27841,4760],{"class":4400},[4383,27843,27844],{"class":4385,"line":5367},[4383,27845,15949],{"class":4400},[4383,27847,27848,27850,27852,27854,27856,27858,27860,27862,27864],{"class":4385,"line":5377},[4383,27849,4859],{"class":4741},[4383,27851,15961],{"class":4412},[4383,27853,11099],{"class":4400},[4383,27855,11054],{"class":4433},[4383,27857,11104],{"class":4400},[4383,27859,11054],{"class":4433},[4383,27861,11109],{"class":4400},[4383,27863,11048],{"class":4433},[4383,27865,4760],{"class":4400},[4383,27867,27868],{"class":4385,"line":5387},[4383,27869,5013],{"class":4400},[4383,27871,27872],{"class":4385,"line":5392},[4383,27873,4797],{"emptyLinePlaceholder":4796},[4383,27875,27876,27878,27881],{"class":4385,"line":5407},[4383,27877,15815],{"class":4404},[4383,27879,27880],{"class":4393}," ThemeProviderProps",[4383,27882,10822],{"class":4400},[4383,27884,27885,27887,27889,27891],{"class":4385,"line":5423},[4383,27886,16299],{"class":4412},[4383,27888,13879],{"class":4400},[4383,27890,16083],{"class":4393},[4383,27892,4760],{"class":4400},[4383,27894,27895],{"class":4385,"line":5450},[4383,27896,27897],{"class":5558},"  \u002F** Початкова перевага (за замовчуванням — як у системі). *\u002F\n",[4383,27899,27900,27902,27904,27906],{"class":4385,"line":6760},[4383,27901,16306],{"class":4412},[4383,27903,16334],{"class":4400},[4383,27905,15874],{"class":4393},[4383,27907,4760],{"class":4400},[4383,27909,27910],{"class":4385,"line":6765},[4383,27911,10913],{"class":4400},[4383,27913,27914],{"class":4385,"line":6793},[4383,27915,4797],{"emptyLinePlaceholder":4796},[4383,27917,27918,27920,27922,27924],{"class":4385,"line":6801},[4383,27919,4803],{"class":4741},[4383,27921,4809],{"class":4404},[4383,27923,16292],{"class":4812},[4383,27925,5204],{"class":4400},[4383,27927,27928,27930],{"class":4385,"line":6811},[4383,27929,16299],{"class":4412},[4383,27931,5050],{"class":4400},[4383,27933,27934,27936,27938,27940],{"class":4385,"line":6820},[4383,27935,16306],{"class":4412},[4383,27937,5195],{"class":4400},[4383,27939,15823],{"class":4433},[4383,27941,5050],{"class":4400},[4383,27943,27944,27947,27950],{"class":4385,"line":6829},[4383,27945,27946],{"class":4400},"}: ",[4383,27948,27949],{"class":4393},"ThemeProviderProps",[4383,27951,13888],{"class":4400},[4383,27953,27954,27956,27958,27960,27963],{"class":4385,"line":6834},[4383,27955,4822],{"class":4404},[4383,27957,16396],{"class":4828},[4383,27959,5195],{"class":4400},[4383,27961,27962],{"class":4812},"useSystemColorScheme",[4383,27964,13148],{"class":4400},[4383,27966,27967,27969,27971,27973,27975,27977],{"class":4385,"line":6860},[4383,27968,4822],{"class":4404},[4383,27970,4825],{"class":4400},[4383,27972,13590],{"class":4828},[4383,27974,3767],{"class":4400},[4383,27976,16369],{"class":4828},[4383,27978,27979],{"class":4400},"] =\n",[4383,27981,27982,27985,27987,27989,27991,27993],{"class":4385,"line":6893},[4383,27983,27984],{"class":4812},"    useState",[4383,27986,4390],{"class":4400},[4383,27988,15874],{"class":4393},[4383,27990,11057],{"class":4400},[4383,27992,16378],{"class":4412},[4383,27994,4848],{"class":4400},[4383,27996,27997],{"class":4385,"line":8399},[4383,27998,4797],{"emptyLinePlaceholder":4796},[4383,28000,28001,28003,28005,28007,28009,28011,28013,28015,28017,28019,28021],{"class":4385,"line":8418},[4383,28002,4822],{"class":4404},[4383,28004,16482],{"class":4828},[4383,28006,5195],{"class":4400},[4383,28008,16078],{"class":4812},[4383,28010,4995],{"class":4400},[4383,28012,13292],{"class":4412},[4383,28014,13879],{"class":4400},[4383,28016,15874],{"class":4393},[4383,28018,5001],{"class":4400},[4383,28020,4989],{"class":4404},[4383,28022,5213],{"class":4400},[4383,28024,28025,28027,28029,28031],{"class":4385,"line":8429},[4383,28026,16507],{"class":4812},[4383,28028,4842],{"class":4400},[4383,28030,13292],{"class":4412},[4383,28032,4848],{"class":4400},[4383,28034,28035],{"class":4385,"line":8445},[4383,28036,16518],{"class":4400},[4383,28038,28039],{"class":4385,"line":8460},[4383,28040,4797],{"emptyLinePlaceholder":4796},[4383,28042,28043,28045,28047,28049,28051,28053,28055,28057,28059],{"class":4385,"line":8467},[4383,28044,4822],{"class":4404},[4383,28046,13141],{"class":4828},[4383,28048,5195],{"class":4400},[4383,28050,16422],{"class":4812},[4383,28052,4842],{"class":4400},[4383,28054,13590],{"class":4412},[4383,28056,3767],{"class":4400},[4383,28058,16431],{"class":4412},[4383,28060,4848],{"class":4400},[4383,28062,28063,28065,28067,28069,28071,28073,28075,28077,28079,28081,28083,28085],{"class":4385,"line":8472},[4383,28064,4822],{"class":4404},[4383,28066,9334],{"class":4828},[4383,28068,5195],{"class":4400},[4383,28070,16069],{"class":4812},[4383,28072,16455],{"class":4400},[4383,28074,4989],{"class":4404},[4383,28076,13872],{"class":4812},[4383,28078,4842],{"class":4400},[4383,28080,13160],{"class":4412},[4383,28082,16466],{"class":4400},[4383,28084,13160],{"class":4412},[4383,28086,16471],{"class":4400},[4383,28088,28089],{"class":4385,"line":8495},[4383,28090,4797],{"emptyLinePlaceholder":4796},[4383,28092,28093,28095,28097,28099,28101,28103,28105],{"class":4385,"line":8515},[4383,28094,4822],{"class":4404},[4383,28096,16534],{"class":4828},[4383,28098,5195],{"class":4400},[4383,28100,16069],{"class":4812},[4383,28102,4390],{"class":4400},[4383,28104,16235],{"class":4393},[4383,28106,28107],{"class":4400},">(\n",[4383,28109,28110,28112,28114],{"class":4385,"line":8524},[4383,28111,16545],{"class":4400},[4383,28113,4989],{"class":4404},[4383,28115,28116],{"class":4400}," ({\n",[4383,28118,28119,28122],{"class":4385,"line":8533},[4383,28120,28121],{"class":4412},"      scheme",[4383,28123,5050],{"class":4400},[4383,28125,28126,28129],{"class":4385,"line":8538},[4383,28127,28128],{"class":4412},"      preference",[4383,28130,5050],{"class":4400},[4383,28132,28133,28136],{"class":4385,"line":8561},[4383,28134,28135],{"class":4412},"      setPreference",[4383,28137,5050],{"class":4400},[4383,28139,28140,28143],{"class":4385,"line":8567},[4383,28141,28142],{"class":4412},"      colors",[4383,28144,5050],{"class":4400},[4383,28146,28147,28150,28152],{"class":4385,"line":8576},[4383,28148,28149],{"class":4412},"      spacing:",[4383,28151,27702],{"class":4412},[4383,28153,5050],{"class":4400},[4383,28155,28156,28159],{"class":4385,"line":8585},[4383,28157,28158],{"class":4412},"      radius",[4383,28160,5050],{"class":4400},[4383,28162,28163,28166],{"class":4385,"line":8590},[4383,28164,28165],{"class":4412},"      fontSize",[4383,28167,5050],{"class":4400},[4383,28169,28170],{"class":4385,"line":8595},[4383,28171,27298],{"class":4400},[4383,28173,28174,28176,28178,28180,28182,28184,28186,28188,28190],{"class":4385,"line":8600},[4383,28175,16573],{"class":4400},[4383,28177,13160],{"class":4412},[4383,28179,3767],{"class":4400},[4383,28181,13590],{"class":4412},[4383,28183,3767],{"class":4400},[4383,28185,16561],{"class":4412},[4383,28187,3767],{"class":4400},[4383,28189,10129],{"class":4412},[4383,28191,16590],{"class":4400},[4383,28193,28194],{"class":4385,"line":8617},[4383,28195,5174],{"class":4400},[4383,28197,28198],{"class":4385,"line":8624},[4383,28199,4797],{"emptyLinePlaceholder":4796},[4383,28201,28202,28204],{"class":4385,"line":8633},[4383,28203,4859],{"class":4741},[4383,28205,4862],{"class":4400},[4383,28207,28208,28210,28212,28214,28216,28218,28220,28222,28224,28226,28228,28230,28232,28234],{"class":4385,"line":8642},[4383,28209,4868],{"class":4389},[4383,28211,16256],{"class":4393},[4383,28213,16534],{"class":4396},[4383,28215,4401],{"class":4400},[4383,28217,4405],{"class":4404},[4383,28219,13292],{"class":4412},[4383,28221,4440],{"class":4404},[4383,28223,4915],{"class":4389},[4383,28225,4405],{"class":4404},[4383,28227,15574],{"class":4412},[4383,28229,4440],{"class":4404},[4383,28231,4921],{"class":4389},[4383,28233,16256],{"class":4393},[4383,28235,4889],{"class":4389},[4383,28237,28238],{"class":4385,"line":8651},[4383,28239,5174],{"class":4400},[4383,28241,28242],{"class":4385,"line":8660},[4383,28243,5013],{"class":4400},[4383,28245,28246],{"class":4385,"line":8669},[4383,28247,4797],{"emptyLinePlaceholder":4796},[4383,28249,28250,28252,28254,28256,28258,28260],{"class":4385,"line":8674},[4383,28251,4803],{"class":4741},[4383,28253,4809],{"class":4404},[4383,28255,16714],{"class":4812},[4383,28257,16717],{"class":4400},[4383,28259,16235],{"class":4393},[4383,28261,5213],{"class":4400},[4383,28263,28264,28266,28268,28270,28272,28274,28276],{"class":4385,"line":8687},[4383,28265,4822],{"class":4404},[4383,28267,16728],{"class":4828},[4383,28269,5195],{"class":4400},[4383,28271,15529],{"class":4812},[4383,28273,4842],{"class":4400},[4383,28275,16250],{"class":4412},[4383,28277,4848],{"class":4400},[4383,28279,28280,28282,28284,28286],{"class":4385,"line":8707},[4383,28281,15911],{"class":4741},[4383,28283,16745],{"class":4400},[4383,28285,16748],{"class":4412},[4383,28287,13888],{"class":4400},[4383,28289,28290,28292,28294,28296,28298,28301],{"class":4385,"line":8737},[4383,28291,16755],{"class":4741},[4383,28293,16758],{"class":4404},[4383,28295,16761],{"class":4812},[4383,28297,4842],{"class":4400},[4383,28299,28300],{"class":4433},"'useTheme() потрібно викликати всередині \u003CThemeProvider>.'",[4383,28302,4848],{"class":4400},[4383,28304,28305],{"class":4385,"line":8744},[4383,28306,15949],{"class":4400},[4383,28308,28309,28311,28313],{"class":4385,"line":8753},[4383,28310,4859],{"class":4741},[4383,28312,16728],{"class":4412},[4383,28314,4760],{"class":4400},[4383,28316,28317],{"class":4385,"line":8762},[4383,28318,5013],{"class":4400},[4374,28320,28322],{"className":10120,"code":28321,"filename":19456,"language":10122,"meta":4379,"style":4379},"\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",[3764,28323,28324,28329,28334,28339,28344,28348,28358,28366,28374,28382,28390,28398,28406,28414,28422,28430,28440,28444,28454,28462,28470,28478,28486,28494,28502,28510,28518,28526,28536,28540,28550,28576,28580,28584,28602,28606,28628,28651],{"__ignoreMap":4379},[4383,28325,28326],{"class":4385,"line":4386},[4383,28327,28328],{"class":5558},"\u002F**\n",[4383,28330,28331],{"class":4385,"line":4763},[4383,28332,28333],{"class":5558}," * Семантичні кольори: назва = роль на екрані, не «синій-500».\n",[4383,28335,28336],{"class":4385,"line":4793},[4383,28337,28338],{"class":5558}," * light \u002F dark — дві палітри з однаковими ключами.\n",[4383,28340,28341],{"class":4385,"line":4800},[4383,28342,28343],{"class":5558}," *\u002F\n",[4383,28345,28346],{"class":4385,"line":4819},[4383,28347,4797],{"emptyLinePlaceholder":4796},[4383,28349,28350,28352,28354,28356],{"class":4385,"line":4851},[4383,28351,4803],{"class":4741},[4383,28353,11261],{"class":4404},[4383,28355,13675],{"class":4828},[4383,28357,10822],{"class":4400},[4383,28359,28360,28362,28364],{"class":4385,"line":4856},[4383,28361,10827],{"class":4412},[4383,28363,4434],{"class":4433},[4383,28365,5050],{"class":4400},[4383,28367,28368,28370,28372],{"class":4385,"line":4865},[4383,28369,10836],{"class":4412},[4383,28371,10839],{"class":4433},[4383,28373,5050],{"class":4400},[4383,28375,28376,28378,28380],{"class":4385,"line":4892},[4383,28377,10846],{"class":4412},[4383,28379,10849],{"class":4433},[4383,28381,5050],{"class":4400},[4383,28383,28384,28386,28388],{"class":4385,"line":4928},[4383,28385,10856],{"class":4412},[4383,28387,10859],{"class":4433},[4383,28389,5050],{"class":4400},[4383,28391,28392,28394,28396],{"class":4385,"line":4952},[4383,28393,10866],{"class":4412},[4383,28395,5402],{"class":4433},[4383,28397,5050],{"class":4400},[4383,28399,28400,28402,28404],{"class":4385,"line":4958},[4383,28401,10875],{"class":4412},[4383,28403,10878],{"class":4433},[4383,28405,5050],{"class":4400},[4383,28407,28408,28410,28412],{"class":4385,"line":4968},[4383,28409,10885],{"class":4412},[4383,28411,5962],{"class":4433},[4383,28413,5050],{"class":4400},[4383,28415,28416,28418,28420],{"class":4385,"line":4976},[4383,28417,10894],{"class":4412},[4383,28419,10897],{"class":4433},[4383,28421,5050],{"class":4400},[4383,28423,28424,28426,28428],{"class":4385,"line":5016},[4383,28425,10904],{"class":4412},[4383,28427,10839],{"class":4433},[4383,28429,5050],{"class":4400},[4383,28431,28432,28434,28436,28438],{"class":4385,"line":5039},[4383,28433,13754],{"class":4400},[4383,28435,11258],{"class":4741},[4383,28437,11261],{"class":4404},[4383,28439,4760],{"class":4400},[4383,28441,28442],{"class":4385,"line":5053},[4383,28443,4797],{"emptyLinePlaceholder":4796},[4383,28445,28446,28448,28450,28452],{"class":4385,"line":5072},[4383,28447,4803],{"class":4741},[4383,28449,11261],{"class":4404},[4383,28451,13773],{"class":4828},[4383,28453,10822],{"class":4400},[4383,28455,28456,28458,28460],{"class":4385,"line":5089},[4383,28457,10827],{"class":4412},[4383,28459,10933],{"class":4433},[4383,28461,5050],{"class":4400},[4383,28463,28464,28466,28468],{"class":4385,"line":5097},[4383,28465,10836],{"class":4412},[4383,28467,10942],{"class":4433},[4383,28469,5050],{"class":4400},[4383,28471,28472,28474,28476],{"class":4385,"line":5103},[4383,28473,10846],{"class":4412},[4383,28475,10951],{"class":4433},[4383,28477,5050],{"class":4400},[4383,28479,28480,28482,28484],{"class":4385,"line":5152},[4383,28481,10856],{"class":4412},[4383,28483,10960],{"class":4433},[4383,28485,5050],{"class":4400},[4383,28487,28488,28490,28492],{"class":4385,"line":5161},[4383,28489,10866],{"class":4412},[4383,28491,10969],{"class":4433},[4383,28493,5050],{"class":4400},[4383,28495,28496,28498,28500],{"class":4385,"line":5171},[4383,28497,10875],{"class":4412},[4383,28499,5402],{"class":4433},[4383,28501,5050],{"class":4400},[4383,28503,28504,28506,28508],{"class":4385,"line":5177},[4383,28505,10885],{"class":4412},[4383,28507,10986],{"class":4433},[4383,28509,5050],{"class":4400},[4383,28511,28512,28514,28516],{"class":4385,"line":5182},[4383,28513,10894],{"class":4412},[4383,28515,10995],{"class":4433},[4383,28517,5050],{"class":4400},[4383,28519,28520,28522,28524],{"class":4385,"line":5187},[4383,28521,10904],{"class":4412},[4383,28523,10839],{"class":4433},[4383,28525,5050],{"class":4400},[4383,28527,28528,28530,28532,28534],{"class":4385,"line":5207},[4383,28529,13754],{"class":4400},[4383,28531,11258],{"class":4741},[4383,28533,11261],{"class":4404},[4383,28535,4760],{"class":4400},[4383,28537,28538],{"class":4385,"line":5216},[4383,28539,4797],{"emptyLinePlaceholder":4796},[4383,28541,28542,28544,28546,28548],{"class":4385,"line":5226},[4383,28543,4803],{"class":4741},[4383,28545,25978],{"class":4404},[4383,28547,27558],{"class":4393},[4383,28549,10822],{"class":4400},[4383,28551,28552,28555,28558,28561,28564,28567,28569,28572,28574],{"class":4385,"line":5236},[4383,28553,28554],{"class":4400},"  [",[4383,28556,28557],{"class":4393},"K",[4383,28559,28560],{"class":4404}," in",[4383,28562,28563],{"class":4404}," keyof",[4383,28565,28566],{"class":4404}," typeof",[4383,28568,13675],{"class":4412},[4383,28570,28571],{"class":4400},"]: ",[4383,28573,15886],{"class":4393},[4383,28575,4760],{"class":4400},[4383,28577,28578],{"class":4385,"line":5247},[4383,28579,10913],{"class":4400},[4383,28581,28582],{"class":4385,"line":5258},[4383,28583,4797],{"emptyLinePlaceholder":4796},[4383,28585,28586,28588,28590,28592,28594,28596,28598,28600],{"class":4385,"line":5269},[4383,28587,4803],{"class":4741},[4383,28589,25978],{"class":4404},[4383,28591,15840],{"class":4393},[4383,28593,5195],{"class":4400},[4383,28595,11048],{"class":4433},[4383,28597,11051],{"class":4400},[4383,28599,11054],{"class":4433},[4383,28601,4760],{"class":4400},[4383,28603,28604],{"class":4385,"line":5275},[4383,28605,4797],{"emptyLinePlaceholder":4796},[4383,28607,28608,28610,28612,28614,28616,28618,28620,28622,28624,28626],{"class":4385,"line":5308},[4383,28609,4803],{"class":4741},[4383,28611,4809],{"class":4404},[4383,28613,13872],{"class":4812},[4383,28615,4842],{"class":4400},[4383,28617,13160],{"class":4412},[4383,28619,13879],{"class":4400},[4383,28621,15904],{"class":4393},[4383,28623,15901],{"class":4400},[4383,28625,13645],{"class":4393},[4383,28627,5213],{"class":4400},[4383,28629,28630,28632,28634,28636,28638,28641,28643,28646,28648],{"class":4385,"line":5338},[4383,28631,4859],{"class":4741},[4383,28633,13141],{"class":4412},[4383,28635,11099],{"class":4400},[4383,28637,11054],{"class":4433},[4383,28639,28640],{"class":4400}," ? { ...",[4383,28642,13903],{"class":4412},[4383,28644,28645],{"class":4400}," } : { ...",[4383,28647,13908],{"class":4412},[4383,28649,28650],{"class":4400}," };\n",[4383,28652,28653],{"class":4385,"line":5346},[4383,28654,5013],{"class":4400},[4374,28656,28658],{"className":10120,"code":28657,"filename":19501,"language":10122,"meta":4379,"style":4379},"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",[3764,28659,28660,28684,28706,28734,28753,28774],{"__ignoreMap":4379},[4383,28661,28662,28664,28666,28668,28670,28672,28674,28676,28678,28680,28682],{"class":4385,"line":4386},[4383,28663,4803],{"class":4741},[4383,28665,4745],{"class":4400},[4383,28667,13908],{"class":4412},[4383,28669,3767],{"class":4400},[4383,28671,13903],{"class":4412},[4383,28673,3767],{"class":4400},[4383,28675,13929],{"class":4412},[4383,28677,4751],{"class":4400},[4383,28679,4754],{"class":4741},[4383,28681,27569],{"class":4433},[4383,28683,4760],{"class":4400},[4383,28685,28686,28688,28690,28692,28694,28696,28698,28700,28702,28704],{"class":4385,"line":4763},[4383,28687,4803],{"class":4741},[4383,28689,25978],{"class":4741},[4383,28691,4745],{"class":4400},[4383,28693,13645],{"class":4412},[4383,28695,3767],{"class":4400},[4383,28697,15904],{"class":4412},[4383,28699,4751],{"class":4400},[4383,28701,4754],{"class":4741},[4383,28703,27569],{"class":4433},[4383,28705,4760],{"class":4400},[4383,28707,28708,28710,28712,28714,28716,28718,28720,28722,28724,28726,28728,28730,28732],{"class":4385,"line":4793},[4383,28709,4803],{"class":4741},[4383,28711,4745],{"class":4400},[4383,28713,3782],{"class":4412},[4383,28715,3767],{"class":4400},[4383,28717,19476],{"class":4412},[4383,28719,3767],{"class":4400},[4383,28721,17271],{"class":4412},[4383,28723,3767],{"class":4400},[4383,28725,4640],{"class":4412},[4383,28727,4751],{"class":4400},[4383,28729,4754],{"class":4741},[4383,28731,27594],{"class":4433},[4383,28733,4760],{"class":4400},[4383,28735,28736,28738,28740,28742,28745,28747,28749,28751],{"class":4385,"line":4800},[4383,28737,4803],{"class":4741},[4383,28739,25978],{"class":4741},[4383,28741,4745],{"class":4400},[4383,28743,28744],{"class":4412},"Tokens",[4383,28746,4751],{"class":4400},[4383,28748,4754],{"class":4741},[4383,28750,27594],{"class":4433},[4383,28752,4760],{"class":4400},[4383,28754,28755,28757,28759,28761,28763,28765,28767,28769,28772],{"class":4385,"line":4819},[4383,28756,4803],{"class":4741},[4383,28758,4745],{"class":4400},[4383,28760,3981],{"class":4412},[4383,28762,3767],{"class":4400},[4383,28764,3985],{"class":4412},[4383,28766,4751],{"class":4400},[4383,28768,4754],{"class":4741},[4383,28770,28771],{"class":4433}," '.\u002FThemeProvider'",[4383,28773,4760],{"class":4400},[4383,28775,28776,28778,28780,28782,28784,28786,28788,28790],{"class":4385,"line":4851},[4383,28777,4803],{"class":4741},[4383,28779,25978],{"class":4741},[4383,28781,4745],{"class":4400},[4383,28783,15874],{"class":4412},[4383,28785,4751],{"class":4400},[4383,28787,4754],{"class":4741},[4383,28789,28771],{"class":4433},[4383,28791,4760],{"class":4400},[4374,28793,28795],{"className":10120,"code":28794,"filename":19471,"language":10122,"meta":4379,"style":4379},"\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",[3764,28796,28797,28801,28806,28811,28816,28820,28824,28834,28843,28852,28861,28870,28879,28889,28893,28903,28911,28919,28927,28937,28941,28951,28959,28967,28975,28983,28993,28997,29008,29019,29024,29031,29040,29049,29058,29067,29076,29085,29094,29103,29112,29116,29125,29131,29137,29147,29151],{"__ignoreMap":4379},[4383,28798,28799],{"class":4385,"line":4386},[4383,28800,28328],{"class":5558},[4383,28802,28803],{"class":4385,"line":4763},[4383,28804,28805],{"class":5558}," * Токени, що **не** залежать від light\u002Fdark:\n",[4383,28807,28808],{"class":4385,"line":4793},[4383,28809,28810],{"class":5558}," * відступи, радіуси, розміри шрифтів.\n",[4383,28812,28813],{"class":4385,"line":4800},[4383,28814,28815],{"class":5558}," * Кольори — у colors.ts + ThemeProvider.\n",[4383,28817,28818],{"class":4385,"line":4819},[4383,28819,28343],{"class":5558},[4383,28821,28822],{"class":4385,"line":4851},[4383,28823,4797],{"emptyLinePlaceholder":4796},[4383,28825,28826,28828,28830,28832],{"class":4385,"line":4856},[4383,28827,4803],{"class":4741},[4383,28829,11261],{"class":4404},[4383,28831,27702],{"class":4828},[4383,28833,10822],{"class":4400},[4383,28835,28836,28839,28841],{"class":4385,"line":4865},[4383,28837,28838],{"class":4412},"  xs:",[4383,28840,6888],{"class":4416},[4383,28842,5050],{"class":4400},[4383,28844,28845,28848,28850],{"class":4385,"line":4892},[4383,28846,28847],{"class":4412},"  sm:",[4383,28849,12642],{"class":4416},[4383,28851,5050],{"class":4400},[4383,28853,28854,28857,28859],{"class":4385,"line":4928},[4383,28855,28856],{"class":4412},"  md:",[4383,28858,4425],{"class":4416},[4383,28860,5050],{"class":4400},[4383,28862,28863,28866,28868],{"class":4385,"line":4952},[4383,28864,28865],{"class":4412},"  lg:",[4383,28867,5242],{"class":4416},[4383,28869,5050],{"class":4400},[4383,28871,28872,28875,28877],{"class":4385,"line":4958},[4383,28873,28874],{"class":4412},"  xl:",[4383,28876,13497],{"class":4416},[4383,28878,5050],{"class":4400},[4383,28880,28881,28883,28885,28887],{"class":4385,"line":4968},[4383,28882,13754],{"class":4400},[4383,28884,11258],{"class":4741},[4383,28886,11261],{"class":4404},[4383,28888,4760],{"class":4400},[4383,28890,28891],{"class":4385,"line":4976},[4383,28892,4797],{"emptyLinePlaceholder":4796},[4383,28894,28895,28897,28899,28901],{"class":4385,"line":5016},[4383,28896,4803],{"class":4741},[4383,28898,11261],{"class":4404},[4383,28900,26638],{"class":4828},[4383,28902,10822],{"class":4400},[4383,28904,28905,28907,28909],{"class":4385,"line":5039},[4383,28906,28847],{"class":4412},[4383,28908,12642],{"class":4416},[4383,28910,5050],{"class":4400},[4383,28912,28913,28915,28917],{"class":4385,"line":5053},[4383,28914,28856],{"class":4412},[4383,28916,5264],{"class":4416},[4383,28918,5050],{"class":4400},[4383,28920,28921,28923,28925],{"class":4385,"line":5072},[4383,28922,28865],{"class":4412},[4383,28924,4425],{"class":4416},[4383,28926,5050],{"class":4400},[4383,28928,28929,28931,28933,28935],{"class":4385,"line":5089},[4383,28930,13754],{"class":4400},[4383,28932,11258],{"class":4741},[4383,28934,11261],{"class":4404},[4383,28936,4760],{"class":4400},[4383,28938,28939],{"class":4385,"line":5097},[4383,28940,4797],{"emptyLinePlaceholder":4796},[4383,28942,28943,28945,28947,28949],{"class":4385,"line":5103},[4383,28944,4803],{"class":4741},[4383,28946,11261],{"class":4404},[4383,28948,27729],{"class":4828},[4383,28950,10822],{"class":4400},[4383,28952,28953,28955,28957],{"class":4385,"line":5152},[4383,28954,28847],{"class":4412},[4383,28956,5362],{"class":4416},[4383,28958,5050],{"class":4400},[4383,28960,28961,28963,28965],{"class":4385,"line":5161},[4383,28962,28856],{"class":4412},[4383,28964,4425],{"class":4416},[4383,28966,5050],{"class":4400},[4383,28968,28969,28971,28973],{"class":4385,"line":5171},[4383,28970,28865],{"class":4412},[4383,28972,5286],{"class":4416},[4383,28974,5050],{"class":4400},[4383,28976,28977,28979,28981],{"class":4385,"line":5177},[4383,28978,28874],{"class":4412},[4383,28980,21172],{"class":4416},[4383,28982,5050],{"class":4400},[4383,28984,28985,28987,28989,28991],{"class":4385,"line":5182},[4383,28986,13754],{"class":4400},[4383,28988,11258],{"class":4741},[4383,28990,11261],{"class":4404},[4383,28992,4760],{"class":4400},[4383,28994,28995],{"class":4385,"line":5187},[4383,28996,4797],{"emptyLinePlaceholder":4796},[4383,28998,28999,29002,29005],{"class":4385,"line":5207},[4383,29000,29001],{"class":5558},"\u002F** ",[4383,29003,29004],{"class":4404},"@deprecated",[4383,29006,29007],{"class":5558}," Використовуйте useTheme() для кольорів; space\u002Fradius\u002FfontSize — нижче. *\u002F\n",[4383,29009,29010,29012,29014,29017],{"class":4385,"line":5216},[4383,29011,4803],{"class":4741},[4383,29013,11261],{"class":4404},[4383,29015,29016],{"class":4828}," tokens",[4383,29018,10822],{"class":4400},[4383,29020,29021],{"class":4385,"line":5226},[4383,29022,29023],{"class":5558},"  \u002F** Світла палітра (fallback, якщо хтось імпортує tokens.colors без теми). *\u002F\n",[4383,29025,29026,29029],{"class":4385,"line":5236},[4383,29027,29028],{"class":4412},"  colors:",[4383,29030,5213],{"class":4400},[4383,29032,29033,29036,29038],{"class":4385,"line":5247},[4383,29034,29035],{"class":4412},"    background:",[4383,29037,4434],{"class":4433},[4383,29039,5050],{"class":4400},[4383,29041,29042,29045,29047],{"class":4385,"line":5258},[4383,29043,29044],{"class":4412},"    surface:",[4383,29046,10839],{"class":4433},[4383,29048,5050],{"class":4400},[4383,29050,29051,29054,29056],{"class":4385,"line":5269},[4383,29052,29053],{"class":4412},"    text:",[4383,29055,10849],{"class":4433},[4383,29057,5050],{"class":4400},[4383,29059,29060,29063,29065],{"class":4385,"line":5275},[4383,29061,29062],{"class":4412},"    textSecondary:",[4383,29064,10859],{"class":4433},[4383,29066,5050],{"class":4400},[4383,29068,29069,29072,29074],{"class":4385,"line":5308},[4383,29070,29071],{"class":4412},"    primary:",[4383,29073,5402],{"class":4433},[4383,29075,5050],{"class":4400},[4383,29077,29078,29081,29083],{"class":4385,"line":5338},[4383,29079,29080],{"class":4412},"    primaryPressed:",[4383,29082,10878],{"class":4433},[4383,29084,5050],{"class":4400},[4383,29086,29087,29090,29092],{"class":4385,"line":5346},[4383,29088,29089],{"class":4412},"    border:",[4383,29091,5962],{"class":4433},[4383,29093,5050],{"class":4400},[4383,29095,29096,29099,29101],{"class":4385,"line":5356},[4383,29097,29098],{"class":4412},"    danger:",[4383,29100,10897],{"class":4433},[4383,29102,5050],{"class":4400},[4383,29104,29105,29108,29110],{"class":4385,"line":5367},[4383,29106,29107],{"class":4412},"    onPrimary:",[4383,29109,10839],{"class":4433},[4383,29111,5050],{"class":4400},[4383,29113,29114],{"class":4385,"line":5377},[4383,29115,5272],{"class":4400},[4383,29117,29118,29121,29123],{"class":4385,"line":5387},[4383,29119,29120],{"class":4412},"  spacing:",[4383,29122,27702],{"class":4412},[4383,29124,5050],{"class":4400},[4383,29126,29127,29129],{"class":4385,"line":5392},[4383,29128,27709],{"class":4412},[4383,29130,5050],{"class":4400},[4383,29132,29133,29135],{"class":4385,"line":5407},[4383,29134,27722],{"class":4412},[4383,29136,5050],{"class":4400},[4383,29138,29139,29141,29143,29145],{"class":4385,"line":5423},[4383,29140,13754],{"class":4400},[4383,29142,11258],{"class":4741},[4383,29144,11261],{"class":4404},[4383,29146,4760],{"class":4400},[4383,29148,29149],{"class":4385,"line":5450},[4383,29150,4797],{"emptyLinePlaceholder":4796},[4383,29152,29153,29155,29157,29160,29162,29164,29166],{"class":4385,"line":6760},[4383,29154,4803],{"class":4741},[4383,29156,25978],{"class":4404},[4383,29158,29159],{"class":4393}," Tokens",[4383,29161,5195],{"class":4400},[4383,29163,16199],{"class":4404},[4383,29165,29016],{"class":4412},[4383,29167,4760],{"class":4400},[4374,29169,29172],{"className":4376,"code":29170,"filename":29171,"language":4378,"meta":4379,"style":4379},"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",[3764,29173,29174,29190,29220,29224,29240,29244,29273,29277,29291,29301,29313,29318,29329,29344,29348,29352,29363,29369,29379,29385,29391,29399,29408,29426,29436,29444,29474,29478,29484,29490,29500,29510,29540,29553,29566,29575,29585,29589,29602,29614,29622,29630,29634,29647,29659,29667,29671,29682,29688,29694,29706,29710,29718,29726,29730,29734,29738,29754,29761],{"__ignoreMap":4379},[4383,29175,29176,29178,29180,29182,29184,29186,29188],{"class":4385,"line":4386},[4383,29177,4742],{"class":4741},[4383,29179,4745],{"class":4400},[4383,29181,16083],{"class":4412},[4383,29183,4751],{"class":4400},[4383,29185,4754],{"class":4741},[4383,29187,4757],{"class":4433},[4383,29189,4760],{"class":4400},[4383,29191,29192,29194,29196,29198,29200,29202,29204,29207,29209,29212,29214,29216,29218],{"class":4385,"line":4763},[4383,29193,4742],{"class":4741},[4383,29195,4745],{"class":4400},[4383,29197,3803],{"class":4412},[4383,29199,3767],{"class":4400},[4383,29201,4241],{"class":4412},[4383,29203,3767],{"class":4400},[4383,29205,29206],{"class":4412},"TextProps",[4383,29208,3767],{"class":4400},[4383,29210,29211],{"class":4412},"TextStyle",[4383,29213,4751],{"class":4400},[4383,29215,4754],{"class":4741},[4383,29217,4788],{"class":4433},[4383,29219,4760],{"class":4400},[4383,29221,29222],{"class":4385,"line":4793},[4383,29223,4797],{"emptyLinePlaceholder":4796},[4383,29225,29226,29228,29230,29232,29234,29236,29238],{"class":4385,"line":4800},[4383,29227,4742],{"class":4741},[4383,29229,4745],{"class":4400},[4383,29231,3985],{"class":4412},[4383,29233,4751],{"class":4400},[4383,29235,4754],{"class":4741},[4383,29237,19630],{"class":4433},[4383,29239,4760],{"class":4400},[4383,29241,29242],{"class":4385,"line":4819},[4383,29243,4797],{"emptyLinePlaceholder":4796},[4383,29245,29246,29248,29251,29253,29256,29258,29261,29263,29266,29268,29271],{"class":4385,"line":4851},[4383,29247,15815],{"class":4404},[4383,29249,29250],{"class":4393}," AppTextVariant",[4383,29252,5195],{"class":4400},[4383,29254,29255],{"class":4433},"'body'",[4383,29257,11051],{"class":4400},[4383,29259,29260],{"class":4433},"'title'",[4383,29262,11051],{"class":4400},[4383,29264,29265],{"class":4433},"'subtitle'",[4383,29267,11051],{"class":4400},[4383,29269,29270],{"class":4433},"'caption'",[4383,29272,4760],{"class":4400},[4383,29274,29275],{"class":4385,"line":4856},[4383,29276,4797],{"emptyLinePlaceholder":4796},[4383,29278,29279,29281,29284,29286,29288],{"class":4385,"line":4865},[4383,29280,15815],{"class":4404},[4383,29282,29283],{"class":4393}," AppTextProps",[4383,29285,5195],{"class":4400},[4383,29287,29206],{"class":4393},[4383,29289,29290],{"class":4400}," & {\n",[4383,29292,29293,29295,29297,29299],{"class":4385,"line":4892},[4383,29294,16299],{"class":4412},[4383,29296,13879],{"class":4400},[4383,29298,16083],{"class":4393},[4383,29300,4760],{"class":4400},[4383,29302,29303,29306,29308,29311],{"class":4385,"line":4928},[4383,29304,29305],{"class":4412},"  variant",[4383,29307,16334],{"class":4400},[4383,29309,29310],{"class":4393},"AppTextVariant",[4383,29312,4760],{"class":4400},[4383,29314,29315],{"class":4385,"line":4952},[4383,29316,29317],{"class":5558},"  \u002F** Якщо не передано — body\u002Ftitle\u002Fsubtitle → text, caption → textSecondary. *\u002F\n",[4383,29319,29320,29323,29325,29327],{"class":4385,"line":4958},[4383,29321,29322],{"class":4412},"  color",[4383,29324,16334],{"class":4400},[4383,29326,15886],{"class":4393},[4383,29328,4760],{"class":4400},[4383,29330,29331,29333,29335,29337,29339,29341],{"class":4385,"line":4968},[4383,29332,17337],{"class":4412},[4383,29334,16334],{"class":4400},[4383,29336,29211],{"class":4393},[4383,29338,11051],{"class":4400},[4383,29340,29211],{"class":4393},[4383,29342,29343],{"class":4400},"[];\n",[4383,29345,29346],{"class":4385,"line":4976},[4383,29347,10913],{"class":4400},[4383,29349,29350],{"class":4385,"line":5016},[4383,29351,4797],{"emptyLinePlaceholder":4796},[4383,29353,29354,29356,29358,29361],{"class":4385,"line":5039},[4383,29355,4803],{"class":4741},[4383,29357,4809],{"class":4404},[4383,29359,29360],{"class":4812}," AppText",[4383,29362,5204],{"class":4400},[4383,29364,29365,29367],{"class":4385,"line":5053},[4383,29366,16299],{"class":4412},[4383,29368,5050],{"class":4400},[4383,29370,29371,29373,29375,29377],{"class":4385,"line":5072},[4383,29372,29305],{"class":4412},[4383,29374,5195],{"class":4400},[4383,29376,29255],{"class":4433},[4383,29378,5050],{"class":4400},[4383,29380,29381,29383],{"class":4385,"line":5089},[4383,29382,29322],{"class":4412},[4383,29384,5050],{"class":4400},[4383,29386,29387,29389],{"class":4385,"line":5097},[4383,29388,17337],{"class":4412},[4383,29390,5050],{"class":4400},[4383,29392,29393,29396],{"class":4385,"line":5103},[4383,29394,29395],{"class":4400},"  ...",[4383,29397,29398],{"class":4412},"rest\n",[4383,29400,29401,29403,29406],{"class":4385,"line":5152},[4383,29402,27946],{"class":4400},[4383,29404,29405],{"class":4393},"AppTextProps",[4383,29407,13888],{"class":4400},[4383,29409,29410,29412,29414,29416,29418,29420,29422,29424],{"class":4385,"line":5161},[4383,29411,4822],{"class":4404},[4383,29413,4745],{"class":4400},[4383,29415,10129],{"class":4828},[4383,29417,3767],{"class":4400},[4383,29419,4640],{"class":4828},[4383,29421,16824],{"class":4400},[4383,29423,3985],{"class":4812},[4383,29425,13148],{"class":4400},[4383,29427,29428,29430,29433],{"class":4385,"line":5171},[4383,29429,4822],{"class":4404},[4383,29431,29432],{"class":4828}," resolvedColor",[4383,29434,29435],{"class":4400}," =\n",[4383,29437,29438,29441],{"class":4385,"line":5177},[4383,29439,29440],{"class":4412},"    color",[4383,29442,29443],{"class":4400}," ??\n",[4383,29445,29446,29449,29452,29454,29456,29458,29460,29462,29464,29466,29468,29470,29472],{"class":4385,"line":5182},[4383,29447,29448],{"class":4400},"    (",[4383,29450,29451],{"class":4412},"variant",[4383,29453,11099],{"class":4400},[4383,29455,29270],{"class":4433},[4383,29457,11104],{"class":4400},[4383,29459,10129],{"class":4412},[4383,29461,3840],{"class":4400},[4383,29463,9924],{"class":4412},[4383,29465,11109],{"class":4400},[4383,29467,10129],{"class":4412},[4383,29469,3840],{"class":4400},[4383,29471,9901],{"class":4412},[4383,29473,4848],{"class":4400},[4383,29475,29476],{"class":4385,"line":5187},[4383,29477,4797],{"emptyLinePlaceholder":4796},[4383,29479,29480,29482],{"class":4385,"line":5207},[4383,29481,4859],{"class":4741},[4383,29483,4862],{"class":4400},[4383,29485,29486,29488],{"class":4385,"line":5216},[4383,29487,4868],{"class":4389},[4383,29489,11440],{"class":4393},[4383,29491,29492,29494,29496,29498],{"class":4385,"line":5226},[4383,29493,26574],{"class":4396},[4383,29495,4401],{"class":4400},[4383,29497,4405],{"class":4404},[4383,29499,9394],{"class":4408},[4383,29501,29502,29504,29506,29508],{"class":4385,"line":5236},[4383,29503,26593],{"class":4412},[4383,29505,3840],{"class":4408},[4383,29507,9451],{"class":4412},[4383,29509,5050],{"class":4408},[4383,29511,29512,29515,29517,29520,29522,29524,29526,29528,29530,29532,29534,29536,29538],{"class":4385,"line":5247},[4383,29513,29514],{"class":4412},"        variant",[4383,29516,11294],{"class":4400},[4383,29518,29519],{"class":4433}," 'body'",[4383,29521,5059],{"class":4400},[4383,29523,4745],{"class":4408},[4383,29525,5283],{"class":4412},[4383,29527,27729],{"class":4412},[4383,29529,3840],{"class":4408},[4383,29531,17398],{"class":4412},[4383,29533,3767],{"class":4408},[4383,29535,5330],{"class":4412},[4383,29537,5242],{"class":4416},[4383,29539,5305],{"class":4408},[4383,29541,29542,29544,29546,29549,29551],{"class":4385,"line":5258},[4383,29543,29514],{"class":4412},[4383,29545,11294],{"class":4400},[4383,29547,29548],{"class":4433}," 'title'",[4383,29550,5059],{"class":4400},[4383,29552,5213],{"class":4408},[4383,29554,29555,29558,29560,29562,29564],{"class":4385,"line":5269},[4383,29556,29557],{"class":4412},"          fontSize:",[4383,29559,27729],{"class":4412},[4383,29561,3840],{"class":4408},[4383,29563,25334],{"class":4412},[4383,29565,5050],{"class":4408},[4383,29567,29568,29571,29573],{"class":4385,"line":5275},[4383,29569,29570],{"class":4412},"          fontWeight:",[4383,29572,5294],{"class":4433},[4383,29574,5050],{"class":4408},[4383,29576,29577,29580,29583],{"class":4385,"line":5308},[4383,29578,29579],{"class":4412},"          lineHeight:",[4383,29581,29582],{"class":4416}," 34",[4383,29584,5050],{"class":4408},[4383,29586,29587],{"class":4385,"line":5338},[4383,29588,26650],{"class":4408},[4383,29590,29591,29593,29595,29598,29600],{"class":4385,"line":5346},[4383,29592,29514],{"class":4412},[4383,29594,11294],{"class":4400},[4383,29596,29597],{"class":4433}," 'subtitle'",[4383,29599,5059],{"class":4400},[4383,29601,5213],{"class":4408},[4383,29603,29604,29606,29608,29610,29612],{"class":4385,"line":5356},[4383,29605,29557],{"class":4412},[4383,29607,27729],{"class":4412},[4383,29609,3840],{"class":4408},[4383,29611,26643],{"class":4412},[4383,29613,5050],{"class":4408},[4383,29615,29616,29618,29620],{"class":4385,"line":5367},[4383,29617,29570],{"class":4412},[4383,29619,5994],{"class":4433},[4383,29621,5050],{"class":4408},[4383,29623,29624,29626,29628],{"class":4385,"line":5377},[4383,29625,29579],{"class":4412},[4383,29627,21172],{"class":4416},[4383,29629,5050],{"class":4408},[4383,29631,29632],{"class":4385,"line":5387},[4383,29633,26650],{"class":4408},[4383,29635,29636,29638,29640,29643,29645],{"class":4385,"line":5392},[4383,29637,29514],{"class":4412},[4383,29639,11294],{"class":4400},[4383,29641,29642],{"class":4433}," 'caption'",[4383,29644,5059],{"class":4400},[4383,29646,5213],{"class":4408},[4383,29648,29649,29651,29653,29655,29657],{"class":4385,"line":5407},[4383,29650,29557],{"class":4412},[4383,29652,27729],{"class":4412},[4383,29654,3840],{"class":4408},[4383,29656,24338],{"class":4412},[4383,29658,5050],{"class":4408},[4383,29660,29661,29663,29665],{"class":4385,"line":5423},[4383,29662,29579],{"class":4412},[4383,29664,5286],{"class":4416},[4383,29666,5050],{"class":4408},[4383,29668,29669],{"class":4385,"line":5450},[4383,29670,26650],{"class":4408},[4383,29672,29673,29676,29678,29680],{"class":4385,"line":6760},[4383,29674,29675],{"class":4408},"        { ",[4383,29677,5299],{"class":4412},[4383,29679,29432],{"class":4412},[4383,29681,5305],{"class":4408},[4383,29683,29684,29686],{"class":4385,"line":6765},[4383,29685,5019],{"class":4412},[4383,29687,5050],{"class":4408},[4383,29689,29690,29692],{"class":4385,"line":6793},[4383,29691,26671],{"class":4408},[4383,29693,5013],{"class":4404},[4383,29695,29696,29698,29701,29704],{"class":4385,"line":6801},[4383,29697,16632],{"class":4404},[4383,29699,29700],{"class":4400},"...",[4383,29702,29703],{"class":4412},"rest",[4383,29705,5013],{"class":4404},[4383,29707,29708],{"class":4385,"line":6811},[4383,29709,26678],{"class":4389},[4383,29711,29712,29714,29716],{"class":4385,"line":6820},[4383,29713,16632],{"class":4404},[4383,29715,15574],{"class":4412},[4383,29717,5013],{"class":4404},[4383,29719,29720,29722,29724],{"class":4385,"line":6829},[4383,29721,5164],{"class":4389},[4383,29723,4241],{"class":4393},[4383,29725,4889],{"class":4389},[4383,29727,29728],{"class":4385,"line":6834},[4383,29729,5174],{"class":4400},[4383,29731,29732],{"class":4385,"line":6860},[4383,29733,5013],{"class":4400},[4383,29735,29736],{"class":4385,"line":6893},[4383,29737,4797],{"emptyLinePlaceholder":4796},[4383,29739,29740,29742,29744,29746,29748,29750,29752],{"class":4385,"line":8399},[4383,29741,5190],{"class":4404},[4383,29743,5062],{"class":4828},[4383,29745,5195],{"class":4400},[4383,29747,3803],{"class":4412},[4383,29749,3840],{"class":4400},[4383,29751,4495],{"class":4812},[4383,29753,5204],{"class":4400},[4383,29755,29756,29759],{"class":4385,"line":8418},[4383,29757,29758],{"class":4412},"  base:",[4383,29760,27293],{"class":4400},[4383,29762,29763],{"class":4385,"line":8429},[4383,29764,5453],{"class":4400},[4374,29766,29769],{"className":4376,"code":29767,"filename":29768,"language":4378,"meta":4379,"style":4379},"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",[3764,29770,29771,29800,29804,29820,29824,29833,29844,29857,29869,29879,29883,29887,29923,29949,29953,29959,29965,29973,29986,29998,30016,30026,30030,30042,30060,30073,30085,30089,30120,30139,30145,30151,30155,30161,30171,30181,30205,30211,30215,30223,30231,30239,30243,30247,30251,30267,30273,30281,30285,30292,30301,30305,30311,30319,30323],{"__ignoreMap":4379},[4383,29772,29773,29775,29777,29779,29781,29783,29785,29787,29789,29792,29794,29796,29798],{"class":4385,"line":4386},[4383,29774,4742],{"class":4741},[4383,29776,4745],{"class":4400},[4383,29778,4724],{"class":4412},[4383,29780,3767],{"class":4400},[4383,29782,3803],{"class":4412},[4383,29784,3767],{"class":4400},[4383,29786,4241],{"class":4412},[4383,29788,3767],{"class":4400},[4383,29790,29791],{"class":4412},"ViewStyle",[4383,29793,4751],{"class":4400},[4383,29795,4754],{"class":4741},[4383,29797,4788],{"class":4433},[4383,29799,4760],{"class":4400},[4383,29801,29802],{"class":4385,"line":4763},[4383,29803,4797],{"emptyLinePlaceholder":4796},[4383,29805,29806,29808,29810,29812,29814,29816,29818],{"class":4385,"line":4793},[4383,29807,4742],{"class":4741},[4383,29809,4745],{"class":4400},[4383,29811,3985],{"class":4412},[4383,29813,4751],{"class":4400},[4383,29815,4754],{"class":4741},[4383,29817,19630],{"class":4433},[4383,29819,4760],{"class":4400},[4383,29821,29822],{"class":4385,"line":4800},[4383,29823,4797],{"emptyLinePlaceholder":4796},[4383,29825,29826,29828,29831],{"class":4385,"line":4819},[4383,29827,15815],{"class":4404},[4383,29829,29830],{"class":4393}," ButtonProps",[4383,29832,10822],{"class":4400},[4383,29834,29835,29838,29840,29842],{"class":4385,"line":4851},[4383,29836,29837],{"class":4412},"  label",[4383,29839,13879],{"class":4400},[4383,29841,15886],{"class":4393},[4383,29843,4760],{"class":4400},[4383,29845,29846,29848,29851,29853,29855],{"class":4385,"line":4856},[4383,29847,26421],{"class":4812},[4383,29849,29850],{"class":4400},": () ",[4383,29852,4989],{"class":4404},[4383,29854,16187],{"class":4393},[4383,29856,4760],{"class":4400},[4383,29858,29859,29862,29864,29867],{"class":4385,"line":4865},[4383,29860,29861],{"class":4412},"  disabled",[4383,29863,16334],{"class":4400},[4383,29865,29866],{"class":4393},"boolean",[4383,29868,4760],{"class":4400},[4383,29870,29871,29873,29875,29877],{"class":4385,"line":4892},[4383,29872,17337],{"class":4412},[4383,29874,16334],{"class":4400},[4383,29876,29791],{"class":4393},[4383,29878,4760],{"class":4400},[4383,29880,29881],{"class":4385,"line":4928},[4383,29882,10913],{"class":4400},[4383,29884,29885],{"class":4385,"line":4952},[4383,29886,4797],{"emptyLinePlaceholder":4796},[4383,29888,29889,29891,29893,29896,29898,29900,29902,29904,29906,29908,29910,29912,29914,29916,29918,29921],{"class":4385,"line":4958},[4383,29890,4803],{"class":4741},[4383,29892,4809],{"class":4404},[4383,29894,29895],{"class":4812}," Button",[4383,29897,5026],{"class":4400},[4383,29899,5696],{"class":4412},[4383,29901,3767],{"class":4400},[4383,29903,26464],{"class":4412},[4383,29905,3767],{"class":4400},[4383,29907,4471],{"class":4412},[4383,29909,5195],{"class":4400},[4383,29911,4845],{"class":4404},[4383,29913,3767],{"class":4400},[4383,29915,4068],{"class":4412},[4383,29917,26467],{"class":4400},[4383,29919,29920],{"class":4393},"ButtonProps",[4383,29922,13888],{"class":4400},[4383,29924,29925,29927,29929,29931,29933,29935,29937,29939,29941,29943,29945,29947],{"class":4385,"line":4968},[4383,29926,4822],{"class":4404},[4383,29928,4745],{"class":4400},[4383,29930,10129],{"class":4828},[4383,29932,3767],{"class":4400},[4383,29934,12911],{"class":4828},[4383,29936,3767],{"class":4400},[4383,29938,17271],{"class":4828},[4383,29940,3767],{"class":4400},[4383,29942,4640],{"class":4828},[4383,29944,16824],{"class":4400},[4383,29946,3985],{"class":4812},[4383,29948,13148],{"class":4400},[4383,29950,29951],{"class":4385,"line":4976},[4383,29952,4797],{"emptyLinePlaceholder":4796},[4383,29954,29955,29957],{"class":4385,"line":5016},[4383,29956,4859],{"class":4741},[4383,29958,4862],{"class":4400},[4383,29960,29961,29963],{"class":4385,"line":5039},[4383,29962,4868],{"class":4389},[4383,29964,4973],{"class":4393},[4383,29966,29967,29969,29971],{"class":4385,"line":5053},[4383,29968,26515],{"class":4396},[4383,29970,4401],{"class":4400},[4383,29972,24836],{"class":4433},[4383,29974,29975,29978,29980,29982,29984],{"class":4385,"line":5072},[4383,29976,29977],{"class":4396},"      disabled",[4383,29979,4401],{"class":4400},[4383,29981,4405],{"class":4404},[4383,29983,4471],{"class":4412},[4383,29985,5013],{"class":4404},[4383,29987,29988,29990,29992,29994,29996],{"class":4385,"line":5089},[4383,29989,26550],{"class":4396},[4383,29991,4401],{"class":4400},[4383,29993,4405],{"class":4404},[4383,29995,26464],{"class":4412},[4383,29997,5013],{"class":4404},[4383,29999,30000,30002,30004,30006,30008,30010,30012,30014],{"class":4385,"line":5097},[4383,30001,26574],{"class":4396},[4383,30003,4401],{"class":4400},[4383,30005,4405],{"class":4404},[4383,30007,5026],{"class":4408},[4383,30009,4468],{"class":4412},[4383,30011,5031],{"class":4408},[4383,30013,4989],{"class":4404},[4383,30015,5036],{"class":4408},[4383,30017,30018,30020,30022,30024],{"class":4385,"line":5103},[4383,30019,26593],{"class":4412},[4383,30021,3840],{"class":4408},[4383,30023,9451],{"class":4412},[4383,30025,5050],{"class":4408},[4383,30027,30028],{"class":4385,"line":5152},[4383,30029,26604],{"class":4408},[4383,30031,30032,30034,30036,30038,30040],{"class":4385,"line":5161},[4383,30033,26609],{"class":4412},[4383,30035,9334],{"class":4412},[4383,30037,3840],{"class":4408},[4383,30039,9747],{"class":4412},[4383,30041,5050],{"class":4408},[4383,30043,30044,30047,30049,30051,30053,30056,30058],{"class":4385,"line":5171},[4383,30045,30046],{"class":4412},"          paddingVertical:",[4383,30048,17392],{"class":4412},[4383,30050,3840],{"class":4408},[4383,30052,24338],{"class":4412},[4383,30054,30055],{"class":4400}," +",[4383,30057,6888],{"class":4416},[4383,30059,5050],{"class":4408},[4383,30061,30062,30065,30067,30069,30071],{"class":4385,"line":5177},[4383,30063,30064],{"class":4412},"          paddingHorizontal:",[4383,30066,17392],{"class":4412},[4383,30068,3840],{"class":4408},[4383,30070,17398],{"class":4412},[4383,30072,5050],{"class":4408},[4383,30074,30075,30077,30079,30081,30083],{"class":4385,"line":5182},[4383,30076,26635],{"class":4412},[4383,30078,26638],{"class":4412},[4383,30080,3840],{"class":4408},[4383,30082,17398],{"class":4412},[4383,30084,5050],{"class":4408},[4383,30086,30087],{"class":4385,"line":5187},[4383,30088,26650],{"class":4408},[4383,30090,30091,30093,30095,30097,30099,30101,30103,30105,30107,30109,30111,30113,30115,30118],{"class":4385,"line":5207},[4383,30092,26655],{"class":4412},[4383,30094,5059],{"class":4400},[4383,30096,5006],{"class":4400},[4383,30098,4471],{"class":4412},[4383,30100,5132],{"class":4400},[4383,30102,4745],{"class":4408},[4383,30104,4430],{"class":4412},[4383,30106,9334],{"class":4412},[4383,30108,3840],{"class":4408},[4383,30110,12388],{"class":4412},[4383,30112,4751],{"class":4408},[4383,30114,13015],{"class":4400},[4383,30116,30117],{"class":4404}," null",[4383,30119,5050],{"class":4408},[4383,30121,30122,30125,30127,30129,30131,30133,30135,30137],{"class":4385,"line":5216},[4383,30123,30124],{"class":4412},"        disabled",[4383,30126,5132],{"class":4400},[4383,30128,5062],{"class":4412},[4383,30130,3840],{"class":4408},[4383,30132,4471],{"class":4412},[4383,30134,5138],{"class":4400},[4383,30136,30117],{"class":4404},[4383,30138,5050],{"class":4408},[4383,30140,30141,30143],{"class":4385,"line":5226},[4383,30142,5019],{"class":4412},[4383,30144,5050],{"class":4408},[4383,30146,30147,30149],{"class":4385,"line":5236},[4383,30148,26671],{"class":4408},[4383,30150,5013],{"class":4404},[4383,30152,30153],{"class":4385,"line":5247},[4383,30154,26678],{"class":4389},[4383,30156,30157,30159],{"class":4385,"line":5258},[4383,30158,4895],{"class":4389},[4383,30160,11440],{"class":4393},[4383,30162,30163,30165,30167,30169],{"class":4385,"line":5269},[4383,30164,5019],{"class":4396},[4383,30166,4401],{"class":4400},[4383,30168,4405],{"class":4404},[4383,30170,9394],{"class":4408},[4383,30172,30173,30175,30177,30179],{"class":4385,"line":5275},[4383,30174,5042],{"class":4412},[4383,30176,3840],{"class":4408},[4383,30178,5696],{"class":4412},[4383,30180,5050],{"class":4408},[4383,30182,30183,30185,30187,30189,30191,30193,30195,30197,30199,30201,30203],{"class":4385,"line":5308},[4383,30184,11703],{"class":4408},[4383,30186,5299],{"class":4412},[4383,30188,9334],{"class":4412},[4383,30190,3840],{"class":4408},[4383,30192,9978],{"class":4412},[4383,30194,3767],{"class":4408},[4383,30196,5283],{"class":4412},[4383,30198,27729],{"class":4412},[4383,30200,3840],{"class":4408},[4383,30202,17398],{"class":4412},[4383,30204,5305],{"class":4408},[4383,30206,30207,30209],{"class":4385,"line":5338},[4383,30208,5092],{"class":4408},[4383,30210,5013],{"class":4404},[4383,30212,30213],{"class":4385,"line":5346},[4383,30214,5100],{"class":4389},[4383,30216,30217,30219,30221],{"class":4385,"line":5356},[4383,30218,7939],{"class":4404},[4383,30220,5696],{"class":4412},[4383,30222,5013],{"class":4404},[4383,30224,30225,30227,30229],{"class":4385,"line":5367},[4383,30226,4961],{"class":4389},[4383,30228,4241],{"class":4393},[4383,30230,4889],{"class":4389},[4383,30232,30233,30235,30237],{"class":4385,"line":5377},[4383,30234,5164],{"class":4389},[4383,30236,4724],{"class":4393},[4383,30238,4889],{"class":4389},[4383,30240,30241],{"class":4385,"line":5387},[4383,30242,5174],{"class":4400},[4383,30244,30245],{"class":4385,"line":5392},[4383,30246,5013],{"class":4400},[4383,30248,30249],{"class":4385,"line":5407},[4383,30250,4797],{"emptyLinePlaceholder":4796},[4383,30252,30253,30255,30257,30259,30261,30263,30265],{"class":4385,"line":5423},[4383,30254,5190],{"class":4404},[4383,30256,5062],{"class":4828},[4383,30258,5195],{"class":4400},[4383,30260,3803],{"class":4412},[4383,30262,3840],{"class":4400},[4383,30264,4495],{"class":4812},[4383,30266,5204],{"class":4400},[4383,30268,30269,30271],{"class":4385,"line":5450},[4383,30270,29758],{"class":4412},[4383,30272,5213],{"class":4400},[4383,30274,30275,30277,30279],{"class":4385,"line":6760},[4383,30276,5380],{"class":4412},[4383,30278,5253],{"class":4433},[4383,30280,5050],{"class":4400},[4383,30282,30283],{"class":4385,"line":6765},[4383,30284,5272],{"class":4400},[4383,30286,30287,30290],{"class":4385,"line":6793},[4383,30288,30289],{"class":4412},"  disabled:",[4383,30291,5213],{"class":4400},[4383,30293,30294,30296,30299],{"class":4385,"line":6801},[4383,30295,27314],{"class":4412},[4383,30297,30298],{"class":4416}," 0.5",[4383,30300,5050],{"class":4400},[4383,30302,30303],{"class":4385,"line":6811},[4383,30304,5272],{"class":4400},[4383,30306,30307,30309],{"class":4385,"line":6820},[4383,30308,5981],{"class":4412},[4383,30310,5213],{"class":4400},[4383,30312,30313,30315,30317],{"class":4385,"line":6829},[4383,30314,25819],{"class":4412},[4383,30316,5994],{"class":4433},[4383,30318,5050],{"class":4400},[4383,30320,30321],{"class":4385,"line":6834},[4383,30322,5272],{"class":4400},[4383,30324,30325],{"class":4385,"line":6860},[4383,30326,5453],{"class":4400},[4374,30328,30331],{"className":4376,"code":30329,"filename":30330,"language":4378,"meta":4379,"style":4379},"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",[3764,30332,30333,30349,30369,30386,30390,30410,30414,30423,30433,30443,30447,30451,30475,30489,30493,30499,30506,30542,30546,30554,30562,30566,30570,30574,30590,30597,30605,30617,30621],{"__ignoreMap":4379},[4383,30334,30335,30337,30339,30341,30343,30345,30347],{"class":4385,"line":4386},[4383,30336,4742],{"class":4741},[4383,30338,4745],{"class":4400},[4383,30340,16083],{"class":4412},[4383,30342,4751],{"class":4400},[4383,30344,4754],{"class":4741},[4383,30346,4757],{"class":4433},[4383,30348,4760],{"class":4400},[4383,30350,30351,30353,30355,30357,30359,30361,30363,30365,30367],{"class":4385,"line":4763},[4383,30352,4742],{"class":4741},[4383,30354,4745],{"class":4400},[4383,30356,3803],{"class":4412},[4383,30358,3767],{"class":4400},[4383,30360,29791],{"class":4412},[4383,30362,4751],{"class":4400},[4383,30364,4754],{"class":4741},[4383,30366,4788],{"class":4433},[4383,30368,4760],{"class":4400},[4383,30370,30371,30373,30375,30377,30379,30381,30384],{"class":4385,"line":4793},[4383,30372,4742],{"class":4741},[4383,30374,4745],{"class":4400},[4383,30376,20303],{"class":4412},[4383,30378,4751],{"class":4400},[4383,30380,4754],{"class":4741},[4383,30382,30383],{"class":4433}," 'react-native-safe-area-context'",[4383,30385,4760],{"class":4400},[4383,30387,30388],{"class":4385,"line":4800},[4383,30389,4797],{"emptyLinePlaceholder":4796},[4383,30391,30392,30394,30396,30398,30400,30402,30404,30406,30408],{"class":4385,"line":4819},[4383,30393,4742],{"class":4741},[4383,30395,4745],{"class":4400},[4383,30397,19476],{"class":4412},[4383,30399,3767],{"class":4400},[4383,30401,3985],{"class":4412},[4383,30403,4751],{"class":4400},[4383,30405,4754],{"class":4741},[4383,30407,19630],{"class":4433},[4383,30409,4760],{"class":4400},[4383,30411,30412],{"class":4385,"line":4851},[4383,30413,4797],{"emptyLinePlaceholder":4796},[4383,30415,30416,30418,30421],{"class":4385,"line":4856},[4383,30417,15815],{"class":4404},[4383,30419,30420],{"class":4393}," ScreenProps",[4383,30422,10822],{"class":4400},[4383,30424,30425,30427,30429,30431],{"class":4385,"line":4865},[4383,30426,16299],{"class":4412},[4383,30428,13879],{"class":4400},[4383,30430,16083],{"class":4393},[4383,30432,4760],{"class":4400},[4383,30434,30435,30437,30439,30441],{"class":4385,"line":4892},[4383,30436,17337],{"class":4412},[4383,30438,16334],{"class":4400},[4383,30440,29791],{"class":4393},[4383,30442,4760],{"class":4400},[4383,30444,30445],{"class":4385,"line":4928},[4383,30446,10913],{"class":4400},[4383,30448,30449],{"class":4385,"line":4952},[4383,30450,4797],{"emptyLinePlaceholder":4796},[4383,30452,30453,30455,30457,30460,30462,30464,30466,30468,30470,30473],{"class":4385,"line":4958},[4383,30454,4803],{"class":4741},[4383,30456,4809],{"class":4404},[4383,30458,30459],{"class":4812}," Screen",[4383,30461,5026],{"class":4400},[4383,30463,15574],{"class":4412},[4383,30465,3767],{"class":4400},[4383,30467,4068],{"class":4412},[4383,30469,26467],{"class":4400},[4383,30471,30472],{"class":4393},"ScreenProps",[4383,30474,13888],{"class":4400},[4383,30476,30477,30479,30481,30483,30485,30487],{"class":4385,"line":4968},[4383,30478,4822],{"class":4404},[4383,30480,4745],{"class":4400},[4383,30482,10129],{"class":4828},[4383,30484,16824],{"class":4400},[4383,30486,3985],{"class":4812},[4383,30488,13148],{"class":4400},[4383,30490,30491],{"class":4385,"line":4976},[4383,30492,4797],{"emptyLinePlaceholder":4796},[4383,30494,30495,30497],{"class":4385,"line":5016},[4383,30496,4859],{"class":4741},[4383,30498,4862],{"class":4400},[4383,30500,30501,30503],{"class":4385,"line":5039},[4383,30502,4868],{"class":4389},[4383,30504,30505],{"class":4393},"SafeAreaView\n",[4383,30507,30508,30510,30512,30514,30516,30518,30520,30523,30525,30527,30529,30531,30533,30536,30538,30540],{"class":4385,"line":5053},[4383,30509,26574],{"class":4396},[4383,30511,4401],{"class":4400},[4383,30513,4405],{"class":4404},[4383,30515,6278],{"class":4408},[4383,30517,4879],{"class":4412},[4383,30519,3840],{"class":4408},[4383,30521,30522],{"class":4412},"root",[4383,30524,9329],{"class":4408},[4383,30526,4430],{"class":4412},[4383,30528,9334],{"class":4412},[4383,30530,3840],{"class":4408},[4383,30532,9849],{"class":4412},[4383,30534,30535],{"class":4408}," }, ",[4383,30537,4068],{"class":4412},[4383,30539,6296],{"class":4408},[4383,30541,5013],{"class":4404},[4383,30543,30544],{"class":4385,"line":5072},[4383,30545,26678],{"class":4389},[4383,30547,30548,30550,30552],{"class":4385,"line":5089},[4383,30549,16632],{"class":4404},[4383,30551,15574],{"class":4412},[4383,30553,5013],{"class":4404},[4383,30555,30556,30558,30560],{"class":4385,"line":5097},[4383,30557,5164],{"class":4389},[4383,30559,20303],{"class":4393},[4383,30561,4889],{"class":4389},[4383,30563,30564],{"class":4385,"line":5103},[4383,30565,5174],{"class":4400},[4383,30567,30568],{"class":4385,"line":5152},[4383,30569,5013],{"class":4400},[4383,30571,30572],{"class":4385,"line":5161},[4383,30573,4797],{"emptyLinePlaceholder":4796},[4383,30575,30576,30578,30580,30582,30584,30586,30588],{"class":4385,"line":5171},[4383,30577,5190],{"class":4404},[4383,30579,5062],{"class":4828},[4383,30581,5195],{"class":4400},[4383,30583,3803],{"class":4412},[4383,30585,3840],{"class":4400},[4383,30587,4495],{"class":4812},[4383,30589,5204],{"class":4400},[4383,30591,30592,30595],{"class":4385,"line":5177},[4383,30593,30594],{"class":4412},"  root:",[4383,30596,5213],{"class":4400},[4383,30598,30599,30601,30603],{"class":4385,"line":5182},[4383,30600,5219],{"class":4412},[4383,30602,4417],{"class":4416},[4383,30604,5050],{"class":4400},[4383,30606,30607,30609,30611,30613,30615],{"class":4385,"line":5187},[4383,30608,12658],{"class":4412},[4383,30610,27702],{"class":4412},[4383,30612,3840],{"class":4400},[4383,30614,17398],{"class":4412},[4383,30616,5050],{"class":4400},[4383,30618,30619],{"class":4385,"line":5207},[4383,30620,5272],{"class":4400},[4383,30622,30623],{"class":4385,"line":5216},[4383,30624,5453],{"class":4400},[4374,30626,30629],{"className":10120,"code":30627,"filename":30628,"language":10122,"meta":4379,"style":4379},"export { AppText } from '.\u002FAppText';\nexport { Button } from '.\u002FButton';\nexport { Screen } from '.\u002FScreen';\n","src\u002Fshared\u002Fui\u002Findex.ts",[3764,30630,30631,30648,30665],{"__ignoreMap":4379},[4383,30632,30633,30635,30637,30639,30641,30643,30646],{"class":4385,"line":4386},[4383,30634,4803],{"class":4741},[4383,30636,4745],{"class":4400},[4383,30638,12961],{"class":4412},[4383,30640,4751],{"class":4400},[4383,30642,4754],{"class":4741},[4383,30644,30645],{"class":4433}," '.\u002FAppText'",[4383,30647,4760],{"class":4400},[4383,30649,30650,30652,30654,30656,30658,30660,30663],{"class":4385,"line":4763},[4383,30651,4803],{"class":4741},[4383,30653,4745],{"class":4400},[4383,30655,15412],{"class":4412},[4383,30657,4751],{"class":4400},[4383,30659,4754],{"class":4741},[4383,30661,30662],{"class":4433}," '.\u002FButton'",[4383,30664,4760],{"class":4400},[4383,30666,30667,30669,30671,30673,30675,30677,30680],{"class":4385,"line":4793},[4383,30668,4803],{"class":4741},[4383,30670,4745],{"class":4400},[4383,30672,15417],{"class":4412},[4383,30674,4751],{"class":4400},[4383,30676,4754],{"class":4741},[4383,30678,30679],{"class":4433}," '.\u002FScreen'",[4383,30681,4760],{"class":4400},[3820,30683,30685],{"id":30684},"перевірка","Перевірка",[3792,30687,30688,30691,30694],{},[3795,30689,30690],{},"Чіп «Темна» — темний фон, світлий текст, темні картки.",[3795,30692,30693],{},"«Світла» \u002F «Система» працюють як очікується.",[3795,30695,30696],{},"Статус-бар не зливається з фоном.",[3820,30698,30700],{"id":30699},"коміт","Коміт",[3743,30702,30703,30704,30706],{},"Якщо збирали вручну (не через ",[3764,30705,22956],{}," на вже запушений репо):",[4374,30708,30710],{"className":19926,"code":30709,"language":19928,"meta":4379,"style":4379},"cd \u002Fpath\u002Fto\u002Fnomad\ngit add -A\ngit commit -m \"$(cat \u003C\u003C'EOF'\nfeat: light\u002Fdark theme with semantic color tokens\n\nMaterial: content\u002F15.react-native\u002F08.stylesheet-and-theming.md\nEOF\n)\"\ngit push\n",[3764,30711,30712,30718,30728,30750,30755,30759,30764,30769,30774],{"__ignoreMap":4379},[4383,30713,30714,30716],{"class":4385,"line":4386},[4383,30715,19952],{"class":4812},[4383,30717,22973],{"class":4433},[4383,30719,30720,30722,30725],{"class":4385,"line":4763},[4383,30721,22978],{"class":4812},[4383,30723,30724],{"class":4433}," add",[4383,30726,30727],{"class":4404}," -A\n",[4383,30729,30730,30732,30735,30738,30741,30744,30747],{"class":4385,"line":4793},[4383,30731,22978],{"class":4812},[4383,30733,30734],{"class":4433}," commit",[4383,30736,30737],{"class":4404}," -m",[4383,30739,30740],{"class":4433}," \"$(",[4383,30742,30743],{"class":4812},"cat",[4383,30745,30746],{"class":4400}," \u003C\u003C",[4383,30748,30749],{"class":4433},"'EOF'\n",[4383,30751,30752],{"class":4385,"line":4800},[4383,30753,30754],{"class":4433},"feat: light\u002Fdark theme with semantic color tokens\n",[4383,30756,30757],{"class":4385,"line":4819},[4383,30758,4797],{"emptyLinePlaceholder":4796},[4383,30760,30761],{"class":4385,"line":4851},[4383,30762,30763],{"class":4433},"Material: content\u002F15.react-native\u002F08.stylesheet-and-theming.md\n",[4383,30765,30766],{"class":4385,"line":4856},[4383,30767,30768],{"class":4433},"EOF\n",[4383,30770,30771],{"class":4385,"line":4865},[4383,30772,30773],{"class":4433},")\"\n",[4383,30775,30776,30778],{"class":4385,"line":4892},[4383,30777,22978],{"class":4812},[4383,30779,30780],{"class":4433}," push\n",[3743,30782,30783,30784,30787,30788,30790],{},"У публічному репо цей коміт ",[3756,30785,30786],{},"уже є"," — після ",[3764,30789,22956],{}," повторно комітити не потрібно, якщо ви не змінювали код локально.",[3820,30792,30794],{"id":30793},"результат-чіпи-теми-стрічка","Результат: чіпи теми + стрічка",[4727,30796,30799],{"device":4729,"filename":30797,"title":30798,"height":7637},"NomadTheme.tsx","Nomad · theme chips",[4374,30800,30802],{"className":4376,"code":30801,"language":4378,"meta":4379,"style":4379},"import { useState } from 'react';\nimport { View, Text, Pressable, ScrollView, StyleSheet, Image } from 'react-native';\n\nconst light = {\n  background: '#F8FAFC',\n  surface: '#FFFFFF',\n  text: '#0F172A',\n  textSecondary: '#64748B',\n  primary: '#2563EB',\n  border: '#E2E8F0',\n  onPrimary: '#FFFFFF',\n};\n\nconst dark = {\n  background: '#000000',\n  surface: '#1C1C1E',\n  text: '#F5F5F7',\n  textSecondary: '#A1A1AA',\n  primary: '#3B82F6',\n  border: '#3A3A3C',\n  onPrimary: '#FFFFFF',\n};\n\ntype Pref = 'system' | 'light' | 'dark';\n\nconst TRIPS = [\n  {\n    title: 'Київ — Карпати',\n    date: '12–18 черв. 2026',\n    desc: 'Гори, полонини і ранки з кавою.',\n    cover: 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1464822759023-fed622ff2c3b?w=800&q=80',\n  },\n  {\n    title: 'Львівський вікенд',\n    date: '2–4 трав. 2026',\n    desc: 'Кава, площа Ринок, закапелки.',\n    cover: 'https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555881400-74d7acaacd8b?w=800&q=80',\n  },\n];\n\nexport default function App() {\n  \u002F\u002F У демо «system» ≈ light (немає реального Appearance)\n  const [pref, setPref] = useState\u003CPref>('light');\n  const scheme = pref === 'dark' ? 'dark' : 'light';\n  const c = scheme === 'dark' ? dark : light;\n\n  return (\n    \u003CView style={[styles.screen, { backgroundColor: c.background }]}>\n      \u003CView style={[styles.header, { borderBottomColor: c.border }]}>\n        \u003CText style={[styles.title, { color: c.text }]}>Мандрівник\u003C\u002FText>\n        \u003CText style={{ color: c.textSecondary, marginTop: 4 }}>\n          Тема: {scheme === 'dark' ? 'темна' : 'світла'}\n        \u003C\u002FText>\n        \u003CView style={styles.chips}>\n          {(\n            [\n              ['system', 'Система'],\n              ['light', 'Світла'],\n              ['dark', 'Темна'],\n            ] as const\n          ).map(([id, label]) => {\n            const active = pref === id;\n            return (\n              \u003CPressable\n                key={id}\n                onPress={() => setPref(id)}\n                style={[\n                  styles.chip,\n                  {\n                    backgroundColor: active ? c.primary : c.surface,\n                    borderColor: c.border,\n                  },\n                ]}\n              >\n                \u003CText\n                  style={{\n                    color: active ? c.onPrimary : c.text,\n                    fontWeight: '600',\n                    fontSize: 13,\n                  }}\n                >\n                  {label}\n                \u003C\u002FText>\n              \u003C\u002FPressable>\n            );\n          })}\n        \u003C\u002FView>\n      \u003C\u002FView>\n\n      \u003CScrollView contentContainerStyle={styles.list}>\n        {TRIPS.map((t) => (\n          \u003CView\n            key={t.title}\n            style={[styles.card, { backgroundColor: c.surface, borderColor: c.border }]}\n          >\n            \u003CImage source={{ uri: t.cover }} style={styles.cover} \u002F>\n            \u003CView style={styles.body}>\n              \u003CText style={[styles.cardTitle, { color: c.text }]} numberOfLines={1}>\n                {t.title}\n              \u003C\u002FText>\n              \u003CText style={{ color: c.textSecondary, fontSize: 12, marginTop: 4 }}>\n                {t.date}\n              \u003C\u002FText>\n              \u003CText style={{ color: c.textSecondary, marginTop: 6 }} numberOfLines={2}>\n                {t.desc}\n              \u003C\u002FText>\n            \u003C\u002FView>\n          \u003C\u002FView>\n        ))}\n      \u003C\u002FScrollView>\n\n      \u003CView style={[styles.footer, { borderTopColor: c.border, backgroundColor: c.background }]}>\n        \u003CPressable style={[styles.cta, { backgroundColor: c.primary }]}>\n          \u003CText style={{ color: c.onPrimary, fontWeight: '700' }}>Нова поїздка\u003C\u002FText>\n        \u003C\u002FPressable>\n      \u003C\u002FView>\n    \u003C\u002FView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1 },\n  header: { padding: 16, borderBottomWidth: 1, gap: 4 },\n  title: { fontSize: 28, fontWeight: '700' },\n  chips: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginTop: 10 },\n  chip: {\n    paddingHorizontal: 12,\n    paddingVertical: 8,\n    borderRadius: 8,\n    borderWidth: 1,\n  },\n  list: { padding: 16, gap: 14, paddingBottom: 24 },\n  card: { borderRadius: 16, borderWidth: 1, overflow: 'hidden' },\n  cover: { width: '100%', height: 120, backgroundColor: '#ccc' },\n  body: { padding: 14 },\n  cardTitle: { fontSize: 17, fontWeight: '700' },\n  footer: { padding: 16, borderTopWidth: 1 },\n  cta: {\n    borderRadius: 12,\n    paddingVertical: 14,\n    alignItems: 'center',\n  },\n});\n",[3764,30803,30804,30820,30856,30860,30868,30876,30884,30892,30900,30908,30916,30924,30928,30932,30940,30948,30956,30964,30972,30980,30988,30996,31000,31004,31025,31029,31039,31043,31052,31062,31072,31081,31085,31089,31097,31105,31114,31122,31126,31130,31134,31146,31151,31180,31204,31228,31232,31238,31274,31311,31355,31389,31412,31420,31443,31449,31454,31468,31481,31494,31504,31527,31545,31551,31557,31569,31592,31602,31612,31616,31640,31652,31656,31662,31666,31672,31682,31707,31716,31725,31732,31736,31744,31752,31760,31764,31770,31778,31786,31790,31813,31835,31841,31858,31898,31902,31946,31968,32014,32026,32034,32074,32087,32095,32139,32151,32159,32167,32175,32182,32190,32194,32241,32278,32321,32329,32337,32345,32349,32353,32357,32373,32385,32410,32428,32459,32465,32473,32481,32489,32497,32501,32526,32551,32577,32589,32607,32626,32633,32641,32649,32657,32661],{"__ignoreMap":4379},[4383,30805,30806,30808,30810,30812,30814,30816,30818],{"class":4385,"line":4386},[4383,30807,4742],{"class":4741},[4383,30809,4745],{"class":4400},[4383,30811,4748],{"class":4412},[4383,30813,4751],{"class":4400},[4383,30815,4754],{"class":4741},[4383,30817,4757],{"class":4433},[4383,30819,4760],{"class":4400},[4383,30821,30822,30824,30826,30828,30830,30832,30834,30836,30838,30840,30842,30844,30846,30848,30850,30852,30854],{"class":4385,"line":4763},[4383,30823,4742],{"class":4741},[4383,30825,4745],{"class":4400},[4383,30827,4198],{"class":4412},[4383,30829,3767],{"class":4400},[4383,30831,4241],{"class":4412},[4383,30833,3767],{"class":4400},[4383,30835,4724],{"class":4412},[4383,30837,3767],{"class":4400},[4383,30839,23926],{"class":4412},[4383,30841,3767],{"class":4400},[4383,30843,3803],{"class":4412},[4383,30845,3767],{"class":4400},[4383,30847,26312],{"class":4412},[4383,30849,4751],{"class":4400},[4383,30851,4754],{"class":4741},[4383,30853,4788],{"class":4433},[4383,30855,4760],{"class":4400},[4383,30857,30858],{"class":4385,"line":4793},[4383,30859,4797],{"emptyLinePlaceholder":4796},[4383,30861,30862,30864,30866],{"class":4385,"line":4800},[4383,30863,5190],{"class":4404},[4383,30865,10819],{"class":4828},[4383,30867,10822],{"class":4400},[4383,30869,30870,30872,30874],{"class":4385,"line":4819},[4383,30871,10827],{"class":4412},[4383,30873,4434],{"class":4433},[4383,30875,5050],{"class":4400},[4383,30877,30878,30880,30882],{"class":4385,"line":4851},[4383,30879,10836],{"class":4412},[4383,30881,10839],{"class":4433},[4383,30883,5050],{"class":4400},[4383,30885,30886,30888,30890],{"class":4385,"line":4856},[4383,30887,10846],{"class":4412},[4383,30889,10849],{"class":4433},[4383,30891,5050],{"class":4400},[4383,30893,30894,30896,30898],{"class":4385,"line":4865},[4383,30895,10856],{"class":4412},[4383,30897,10859],{"class":4433},[4383,30899,5050],{"class":4400},[4383,30901,30902,30904,30906],{"class":4385,"line":4892},[4383,30903,10866],{"class":4412},[4383,30905,5402],{"class":4433},[4383,30907,5050],{"class":4400},[4383,30909,30910,30912,30914],{"class":4385,"line":4928},[4383,30911,10885],{"class":4412},[4383,30913,5962],{"class":4433},[4383,30915,5050],{"class":4400},[4383,30917,30918,30920,30922],{"class":4385,"line":4952},[4383,30919,10904],{"class":4412},[4383,30921,10839],{"class":4433},[4383,30923,5050],{"class":4400},[4383,30925,30926],{"class":4385,"line":4958},[4383,30927,10913],{"class":4400},[4383,30929,30930],{"class":4385,"line":4968},[4383,30931,4797],{"emptyLinePlaceholder":4796},[4383,30933,30934,30936,30938],{"class":4385,"line":4976},[4383,30935,5190],{"class":4404},[4383,30937,10924],{"class":4828},[4383,30939,10822],{"class":4400},[4383,30941,30942,30944,30946],{"class":4385,"line":5016},[4383,30943,10827],{"class":4412},[4383,30945,10933],{"class":4433},[4383,30947,5050],{"class":4400},[4383,30949,30950,30952,30954],{"class":4385,"line":5039},[4383,30951,10836],{"class":4412},[4383,30953,10942],{"class":4433},[4383,30955,5050],{"class":4400},[4383,30957,30958,30960,30962],{"class":4385,"line":5053},[4383,30959,10846],{"class":4412},[4383,30961,10951],{"class":4433},[4383,30963,5050],{"class":4400},[4383,30965,30966,30968,30970],{"class":4385,"line":5072},[4383,30967,10856],{"class":4412},[4383,30969,10960],{"class":4433},[4383,30971,5050],{"class":4400},[4383,30973,30974,30976,30978],{"class":4385,"line":5089},[4383,30975,10866],{"class":4412},[4383,30977,10969],{"class":4433},[4383,30979,5050],{"class":4400},[4383,30981,30982,30984,30986],{"class":4385,"line":5097},[4383,30983,10885],{"class":4412},[4383,30985,10986],{"class":4433},[4383,30987,5050],{"class":4400},[4383,30989,30990,30992,30994],{"class":4385,"line":5103},[4383,30991,10904],{"class":4412},[4383,30993,10839],{"class":4433},[4383,30995,5050],{"class":4400},[4383,30997,30998],{"class":4385,"line":5152},[4383,30999,10913],{"class":4400},[4383,31001,31002],{"class":4385,"line":5161},[4383,31003,4797],{"emptyLinePlaceholder":4796},[4383,31005,31006,31008,31011,31013,31015,31017,31019,31021,31023],{"class":4385,"line":5171},[4383,31007,15815],{"class":4404},[4383,31009,31010],{"class":4393}," Pref",[4383,31012,5195],{"class":4400},[4383,31014,15823],{"class":4433},[4383,31016,11051],{"class":4400},[4383,31018,11048],{"class":4433},[4383,31020,11051],{"class":4400},[4383,31022,11054],{"class":4433},[4383,31024,4760],{"class":4400},[4383,31026,31027],{"class":4385,"line":5177},[4383,31028,4797],{"emptyLinePlaceholder":4796},[4383,31030,31031,31033,31036],{"class":4385,"line":5182},[4383,31032,5190],{"class":4404},[4383,31034,31035],{"class":4828}," TRIPS",[4383,31037,31038],{"class":4400}," = [\n",[4383,31040,31041],{"class":4385,"line":5187},[4383,31042,26058],{"class":4400},[4383,31044,31045,31047,31050],{"class":4385,"line":5207},[4383,31046,26073],{"class":4412},[4383,31048,31049],{"class":4433}," 'Київ — Карпати'",[4383,31051,5050],{"class":4400},[4383,31053,31054,31057,31060],{"class":4385,"line":5216},[4383,31055,31056],{"class":4412},"    date:",[4383,31058,31059],{"class":4433}," '12–18 черв. 2026'",[4383,31061,5050],{"class":4400},[4383,31063,31064,31067,31070],{"class":4385,"line":5226},[4383,31065,31066],{"class":4412},"    desc:",[4383,31068,31069],{"class":4433}," 'Гори, полонини і ранки з кавою.'",[4383,31071,5050],{"class":4400},[4383,31073,31074,31077,31079],{"class":4385,"line":5236},[4383,31075,31076],{"class":4412},"    cover:",[4383,31078,26106],{"class":4433},[4383,31080,5050],{"class":4400},[4383,31082,31083],{"class":4385,"line":5247},[4383,31084,5272],{"class":4400},[4383,31086,31087],{"class":4385,"line":5258},[4383,31088,26058],{"class":4400},[4383,31090,31091,31093,31095],{"class":4385,"line":5269},[4383,31092,26073],{"class":4412},[4383,31094,26132],{"class":4433},[4383,31096,5050],{"class":4400},[4383,31098,31099,31101,31103],{"class":4385,"line":5275},[4383,31100,31056],{"class":4412},[4383,31102,26141],{"class":4433},[4383,31104,5050],{"class":4400},[4383,31106,31107,31109,31112],{"class":4385,"line":5308},[4383,31108,31066],{"class":4412},[4383,31110,31111],{"class":4433}," 'Кава, площа Ринок, закапелки.'",[4383,31113,5050],{"class":4400},[4383,31115,31116,31118,31120],{"class":4385,"line":5338},[4383,31117,31076],{"class":4412},[4383,31119,26159],{"class":4433},[4383,31121,5050],{"class":4400},[4383,31123,31124],{"class":4385,"line":5346},[4383,31125,5272],{"class":4400},[4383,31127,31128],{"class":4385,"line":5356},[4383,31129,24110],{"class":4400},[4383,31131,31132],{"class":4385,"line":5367},[4383,31133,4797],{"emptyLinePlaceholder":4796},[4383,31135,31136,31138,31140,31142,31144],{"class":4385,"line":5377},[4383,31137,4803],{"class":4741},[4383,31139,4806],{"class":4741},[4383,31141,4809],{"class":4404},[4383,31143,4813],{"class":4812},[4383,31145,4816],{"class":4400},[4383,31147,31148],{"class":4385,"line":5387},[4383,31149,31150],{"class":5558},"  \u002F\u002F У демо «system» ≈ light (немає реального Appearance)\n",[4383,31152,31153,31155,31157,31160,31162,31165,31167,31169,31171,31174,31176,31178],{"class":4385,"line":5392},[4383,31154,4822],{"class":4404},[4383,31156,4825],{"class":4400},[4383,31158,31159],{"class":4828},"pref",[4383,31161,3767],{"class":4400},[4383,31163,31164],{"class":4828},"setPref",[4383,31166,4837],{"class":4400},[4383,31168,4748],{"class":4812},[4383,31170,4390],{"class":4400},[4383,31172,31173],{"class":4393},"Pref",[4383,31175,11057],{"class":4400},[4383,31177,11048],{"class":4433},[4383,31179,4848],{"class":4400},[4383,31181,31182,31184,31186,31188,31190,31192,31194,31196,31198,31200,31202],{"class":4385,"line":5407},[4383,31183,4822],{"class":4404},[4383,31185,13141],{"class":4828},[4383,31187,5195],{"class":4400},[4383,31189,31159],{"class":4412},[4383,31191,11099],{"class":4400},[4383,31193,11054],{"class":4433},[4383,31195,11104],{"class":4400},[4383,31197,11054],{"class":4433},[4383,31199,11109],{"class":4400},[4383,31201,11048],{"class":4433},[4383,31203,4760],{"class":4400},[4383,31205,31206,31208,31210,31212,31214,31216,31218,31220,31222,31224,31226],{"class":4385,"line":5423},[4383,31207,4822],{"class":4404},[4383,31209,11092],{"class":4828},[4383,31211,5195],{"class":4400},[4383,31213,13160],{"class":4412},[4383,31215,11099],{"class":4400},[4383,31217,11054],{"class":4433},[4383,31219,11104],{"class":4400},[4383,31221,3869],{"class":4412},[4383,31223,11109],{"class":4400},[4383,31225,3862],{"class":4412},[4383,31227,4760],{"class":4400},[4383,31229,31230],{"class":4385,"line":5450},[4383,31231,4797],{"emptyLinePlaceholder":4796},[4383,31233,31234,31236],{"class":4385,"line":6760},[4383,31235,4859],{"class":4741},[4383,31237,4862],{"class":4400},[4383,31239,31240,31242,31244,31246,31248,31250,31252,31254,31256,31258,31260,31262,31264,31266,31268,31270,31272],{"class":4385,"line":6765},[4383,31241,4868],{"class":4389},[4383,31243,4198],{"class":4393},[4383,31245,4397],{"class":4396},[4383,31247,4401],{"class":4400},[4383,31249,4405],{"class":4404},[4383,31251,6278],{"class":4408},[4383,31253,4879],{"class":4412},[4383,31255,3840],{"class":4408},[4383,31257,4884],{"class":4412},[4383,31259,9329],{"class":4408},[4383,31261,4430],{"class":4412},[4383,31263,11092],{"class":4412},[4383,31265,3840],{"class":4408},[4383,31267,9849],{"class":4412},[4383,31269,9341],{"class":4408},[4383,31271,4440],{"class":4404},[4383,31273,4889],{"class":4389},[4383,31275,31276,31278,31280,31282,31284,31286,31288,31290,31292,31294,31296,31299,31301,31303,31305,31307,31309],{"class":4385,"line":6793},[4383,31277,4895],{"class":4389},[4383,31279,4198],{"class":4393},[4383,31281,4397],{"class":4396},[4383,31283,4401],{"class":4400},[4383,31285,4405],{"class":4404},[4383,31287,6278],{"class":4408},[4383,31289,4879],{"class":4412},[4383,31291,3840],{"class":4408},[4383,31293,20390],{"class":4412},[4383,31295,9329],{"class":4408},[4383,31297,31298],{"class":4412},"borderBottomColor:",[4383,31300,11092],{"class":4412},[4383,31302,3840],{"class":4408},[4383,31304,10000],{"class":4412},[4383,31306,9341],{"class":4408},[4383,31308,4440],{"class":4404},[4383,31310,4889],{"class":4389},[4383,31312,31313,31315,31317,31319,31321,31323,31325,31327,31329,31331,31333,31335,31337,31339,31341,31343,31345,31347,31349,31351,31353],{"class":4385,"line":6801},[4383,31314,5106],{"class":4389},[4383,31316,4241],{"class":4393},[4383,31318,4397],{"class":4396},[4383,31320,4401],{"class":4400},[4383,31322,4405],{"class":4404},[4383,31324,6278],{"class":4408},[4383,31326,4879],{"class":4412},[4383,31328,3840],{"class":4408},[4383,31330,4910],{"class":4412},[4383,31332,9329],{"class":4408},[4383,31334,5299],{"class":4412},[4383,31336,11092],{"class":4412},[4383,31338,3840],{"class":4408},[4383,31340,9901],{"class":4412},[4383,31342,9341],{"class":4408},[4383,31344,4440],{"class":4404},[4383,31346,4915],{"class":4389},[4383,31348,24414],{"class":4400},[4383,31350,4921],{"class":4389},[4383,31352,4241],{"class":4393},[4383,31354,4889],{"class":4389},[4383,31356,31357,31359,31361,31363,31365,31367,31369,31371,31373,31375,31377,31379,31381,31383,31385,31387],{"class":4385,"line":6811},[4383,31358,5106],{"class":4389},[4383,31360,4241],{"class":4393},[4383,31362,4397],{"class":4396},[4383,31364,4401],{"class":4400},[4383,31366,4405],{"class":4404},[4383,31368,4409],{"class":4408},[4383,31370,5299],{"class":4412},[4383,31372,11092],{"class":4412},[4383,31374,3840],{"class":4408},[4383,31376,9924],{"class":4412},[4383,31378,3767],{"class":4408},[4383,31380,6885],{"class":4412},[4383,31382,6888],{"class":4416},[4383,31384,4437],{"class":4408},[4383,31386,4440],{"class":4404},[4383,31388,4889],{"class":4389},[4383,31390,31391,31394,31396,31398,31400,31402,31404,31406,31408,31410],{"class":4385,"line":6820},[4383,31392,31393],{"class":4400},"          Тема: ",[4383,31395,4405],{"class":4404},[4383,31397,13160],{"class":4412},[4383,31399,11294],{"class":4400},[4383,31401,14635],{"class":4433},[4383,31403,5132],{"class":4400},[4383,31405,20491],{"class":4433},[4383,31407,5138],{"class":4400},[4383,31409,20496],{"class":4433},[4383,31411,5013],{"class":4404},[4383,31413,31414,31416,31418],{"class":4385,"line":6829},[4383,31415,6338],{"class":4389},[4383,31417,4241],{"class":4393},[4383,31419,4889],{"class":4389},[4383,31421,31422,31424,31426,31428,31430,31432,31434,31436,31439,31441],{"class":4385,"line":6834},[4383,31423,5106],{"class":4389},[4383,31425,4198],{"class":4393},[4383,31427,4397],{"class":4396},[4383,31429,4401],{"class":4400},[4383,31431,4405],{"class":4404},[4383,31433,4879],{"class":4412},[4383,31435,3840],{"class":4408},[4383,31437,31438],{"class":4412},"chips",[4383,31440,4440],{"class":4404},[4383,31442,4889],{"class":4389},[4383,31444,31445,31447],{"class":4385,"line":6860},[4383,31446,8498],{"class":4404},[4383,31448,15864],{"class":4408},[4383,31450,31451],{"class":4385,"line":6893},[4383,31452,31453],{"class":4408},"            [\n",[4383,31455,31456,31459,31461,31463,31466],{"class":4385,"line":8399},[4383,31457,31458],{"class":4408},"              [",[4383,31460,15823],{"class":4433},[4383,31462,3767],{"class":4408},[4383,31464,31465],{"class":4433},"'Система'",[4383,31467,16590],{"class":4408},[4383,31469,31470,31472,31474,31476,31479],{"class":4385,"line":8418},[4383,31471,31458],{"class":4408},[4383,31473,11048],{"class":4433},[4383,31475,3767],{"class":4408},[4383,31477,31478],{"class":4433},"'Світла'",[4383,31480,16590],{"class":4408},[4383,31482,31483,31485,31487,31489,31492],{"class":4385,"line":8429},[4383,31484,31458],{"class":4408},[4383,31486,11054],{"class":4433},[4383,31488,3767],{"class":4408},[4383,31490,31491],{"class":4433},"'Темна'",[4383,31493,16590],{"class":4408},[4383,31495,31496,31499,31501],{"class":4385,"line":8445},[4383,31497,31498],{"class":4408},"            ] ",[4383,31500,11258],{"class":4741},[4383,31502,31503],{"class":4404}," const\n",[4383,31505,31506,31509,31511,31514,31516,31518,31520,31523,31525],{"class":4385,"line":8460},[4383,31507,31508],{"class":4408},"          ).",[4383,31510,11266],{"class":4812},[4383,31512,31513],{"class":4408},"(([",[4383,31515,24039],{"class":4412},[4383,31517,3767],{"class":4408},[4383,31519,5696],{"class":4412},[4383,31521,31522],{"class":4408},"]) ",[4383,31524,4989],{"class":4404},[4383,31526,5213],{"class":4408},[4383,31528,31529,31531,31533,31535,31538,31540,31543],{"class":4385,"line":8467},[4383,31530,24676],{"class":4404},[4383,31532,11285],{"class":4828},[4383,31534,11288],{"class":4400},[4383,31536,31537],{"class":4412}," pref",[4383,31539,11294],{"class":4400},[4383,31541,31542],{"class":4412}," id",[4383,31544,4760],{"class":4408},[4383,31546,31547,31549],{"class":4385,"line":8472},[4383,31548,24697],{"class":4741},[4383,31550,4862],{"class":4408},[4383,31552,31553,31555],{"class":4385,"line":8495},[4383,31554,11437],{"class":4389},[4383,31556,4973],{"class":4393},[4383,31558,31559,31561,31563,31565,31567],{"class":4385,"line":8515},[4383,31560,24710],{"class":4396},[4383,31562,4401],{"class":4400},[4383,31564,4405],{"class":4404},[4383,31566,24039],{"class":4412},[4383,31568,5013],{"class":4404},[4383,31570,31571,31573,31575,31577,31579,31581,31584,31586,31588,31590],{"class":4385,"line":8524},[4383,31572,24727],{"class":4396},[4383,31574,4401],{"class":4400},[4383,31576,4405],{"class":4404},[4383,31578,4986],{"class":4408},[4383,31580,4989],{"class":4404},[4383,31582,31583],{"class":4812}," setPref",[4383,31585,4842],{"class":4408},[4383,31587,24039],{"class":4412},[4383,31589,4141],{"class":4408},[4383,31591,5013],{"class":4404},[4383,31593,31594,31596,31598,31600],{"class":4385,"line":8533},[4383,31595,11445],{"class":4396},[4383,31597,4401],{"class":4400},[4383,31599,4405],{"class":4404},[4383,31601,9394],{"class":4408},[4383,31603,31604,31606,31608,31610],{"class":4385,"line":8538},[4383,31605,24764],{"class":4412},[4383,31607,3840],{"class":4408},[4383,31609,11370],{"class":4412},[4383,31611,5050],{"class":4408},[4383,31613,31614],{"class":4385,"line":8561},[4383,31615,24776],{"class":4408},[4383,31617,31618,31620,31622,31624,31626,31628,31630,31632,31634,31636,31638],{"class":4385,"line":8567},[4383,31619,24781],{"class":4412},[4383,31621,11285],{"class":4412},[4383,31623,5132],{"class":4400},[4383,31625,11092],{"class":4412},[4383,31627,3840],{"class":4408},[4383,31629,9747],{"class":4412},[4383,31631,5138],{"class":4400},[4383,31633,11092],{"class":4412},[4383,31635,3840],{"class":4408},[4383,31637,3891],{"class":4412},[4383,31639,5050],{"class":4408},[4383,31641,31642,31644,31646,31648,31650],{"class":4385,"line":8576},[4383,31643,24806],{"class":4412},[4383,31645,11092],{"class":4412},[4383,31647,3840],{"class":4408},[4383,31649,10000],{"class":4412},[4383,31651,5050],{"class":4408},[4383,31653,31654],{"class":4385,"line":8585},[4383,31655,24819],{"class":4408},[4383,31657,31658,31660],{"class":4385,"line":8590},[4383,31659,24824],{"class":4408},[4383,31661,5013],{"class":4404},[4383,31663,31664],{"class":4385,"line":8595},[4383,31665,11506],{"class":4389},[4383,31667,31668,31670],{"class":4385,"line":8600},[4383,31669,24892],{"class":4389},[4383,31671,11440],{"class":4393},[4383,31673,31674,31676,31678,31680],{"class":4385,"line":8617},[4383,31675,24937],{"class":4396},[4383,31677,4401],{"class":4400},[4383,31679,4405],{"class":4404},[4383,31681,6455],{"class":4408},[4383,31683,31684,31687,31689,31691,31693,31695,31697,31699,31701,31703,31705],{"class":4385,"line":8624},[4383,31685,31686],{"class":4412},"                    color:",[4383,31688,11285],{"class":4412},[4383,31690,5132],{"class":4400},[4383,31692,11092],{"class":4412},[4383,31694,3840],{"class":4408},[4383,31696,9978],{"class":4412},[4383,31698,5138],{"class":4400},[4383,31700,11092],{"class":4412},[4383,31702,3840],{"class":4408},[4383,31704,9901],{"class":4412},[4383,31706,5050],{"class":4408},[4383,31708,31709,31712,31714],{"class":4385,"line":8633},[4383,31710,31711],{"class":4412},"                    fontWeight:",[4383,31713,5994],{"class":4433},[4383,31715,5050],{"class":4408},[4383,31717,31718,31721,31723],{"class":4385,"line":8642},[4383,31719,31720],{"class":4412},"                    fontSize:",[4383,31722,5318],{"class":4416},[4383,31724,5050],{"class":4408},[4383,31726,31727,31730],{"class":4385,"line":8651},[4383,31728,31729],{"class":4408},"                  }",[4383,31731,5013],{"class":4404},[4383,31733,31734],{"class":4385,"line":8660},[4383,31735,24955],{"class":4389},[4383,31737,31738,31740,31742],{"class":4385,"line":8669},[4383,31739,24960],{"class":4404},[4383,31741,5696],{"class":4412},[4383,31743,5013],{"class":4404},[4383,31745,31746,31748,31750],{"class":4385,"line":8674},[4383,31747,24973],{"class":4389},[4383,31749,4241],{"class":4393},[4383,31751,4889],{"class":4389},[4383,31753,31754,31756,31758],{"class":4385,"line":8687},[4383,31755,11535],{"class":4389},[4383,31757,4724],{"class":4393},[4383,31759,4889],{"class":4389},[4383,31761,31762],{"class":4385,"line":8707},[4383,31763,24990],{"class":4408},[4383,31765,31766,31768],{"class":4385,"line":8737},[4383,31767,24995],{"class":4408},[4383,31769,5013],{"class":4404},[4383,31771,31772,31774,31776],{"class":4385,"line":8744},[4383,31773,6338],{"class":4389},[4383,31775,4198],{"class":4393},[4383,31777,4889],{"class":4389},[4383,31779,31780,31782,31784],{"class":4385,"line":8753},[4383,31781,4961],{"class":4389},[4383,31783,4198],{"class":4393},[4383,31785,4889],{"class":4389},[4383,31787,31788],{"class":4385,"line":8762},[4383,31789,4797],{"emptyLinePlaceholder":4796},[4383,31791,31792,31794,31796,31799,31801,31803,31805,31807,31809,31811],{"class":4385,"line":8771},[4383,31793,4895],{"class":4389},[4383,31795,23926],{"class":4393},[4383,31797,31798],{"class":4396}," contentContainerStyle",[4383,31800,4401],{"class":4400},[4383,31802,4405],{"class":4404},[4383,31804,4879],{"class":4412},[4383,31806,3840],{"class":4408},[4383,31808,7045],{"class":4412},[4383,31810,4440],{"class":4404},[4383,31812,4889],{"class":4389},[4383,31814,31815,31817,31820,31822,31824,31826,31829,31831,31833],{"class":4385,"line":8780},[4383,31816,7939],{"class":4404},[4383,31818,31819],{"class":4828},"TRIPS",[4383,31821,3840],{"class":4408},[4383,31823,11266],{"class":4812},[4383,31825,4995],{"class":4408},[4383,31827,31828],{"class":4412},"t",[4383,31830,5001],{"class":4408},[4383,31832,4989],{"class":4404},[4383,31834,4862],{"class":4408},[4383,31836,31837,31839],{"class":4385,"line":8789},[4383,31838,6305],{"class":4389},[4383,31840,6443],{"class":4393},[4383,31842,31843,31846,31848,31850,31852,31854,31856],{"class":4385,"line":8800},[4383,31844,31845],{"class":4396},"            key",[4383,31847,4401],{"class":4400},[4383,31849,4405],{"class":4404},[4383,31851,31828],{"class":4412},[4383,31853,3840],{"class":4408},[4383,31855,4910],{"class":4412},[4383,31857,5013],{"class":4404},[4383,31859,31860,31862,31864,31866,31868,31870,31872,31874,31876,31878,31880,31882,31884,31886,31888,31890,31892,31894,31896],{"class":4385,"line":8809},[4383,31861,14495],{"class":4396},[4383,31863,4401],{"class":4400},[4383,31865,4405],{"class":4404},[4383,31867,6278],{"class":4408},[4383,31869,4879],{"class":4412},[4383,31871,3840],{"class":4408},[4383,31873,6227],{"class":4412},[4383,31875,9329],{"class":4408},[4383,31877,4430],{"class":4412},[4383,31879,11092],{"class":4412},[4383,31881,3840],{"class":4408},[4383,31883,3891],{"class":4412},[4383,31885,3767],{"class":4408},[4383,31887,11716],{"class":4412},[4383,31889,11092],{"class":4412},[4383,31891,3840],{"class":4408},[4383,31893,10000],{"class":4412},[4383,31895,9341],{"class":4408},[4383,31897,5013],{"class":4404},[4383,31899,31900],{"class":4385,"line":8814},[4383,31901,14551],{"class":4389},[4383,31903,31904,31906,31908,31911,31913,31915,31917,31919,31922,31924,31926,31928,31930,31932,31934,31936,31938,31940,31942,31944],{"class":4385,"line":8841},[4383,31905,8303],{"class":4389},[4383,31907,26312],{"class":4393},[4383,31909,31910],{"class":4396}," source",[4383,31912,4401],{"class":4400},[4383,31914,4405],{"class":4404},[4383,31916,4409],{"class":4408},[4383,31918,26699],{"class":4412},[4383,31920,31921],{"class":4412}," t",[4383,31923,3840],{"class":4408},[4383,31925,26727],{"class":4412},[4383,31927,4437],{"class":4408},[4383,31929,4440],{"class":4404},[4383,31931,4397],{"class":4396},[4383,31933,4401],{"class":4400},[4383,31935,4405],{"class":4404},[4383,31937,4879],{"class":4412},[4383,31939,3840],{"class":4408},[4383,31941,26727],{"class":4412},[4383,31943,4440],{"class":4404},[4383,31945,4443],{"class":4389},[4383,31947,31948,31950,31952,31954,31956,31958,31960,31962,31964,31966],{"class":4385,"line":8873},[4383,31949,8303],{"class":4389},[4383,31951,4198],{"class":4393},[4383,31953,4397],{"class":4396},[4383,31955,4401],{"class":4400},[4383,31957,4405],{"class":4404},[4383,31959,4879],{"class":4412},[4383,31961,3840],{"class":4408},[4383,31963,26781],{"class":4412},[4383,31965,4440],{"class":4404},[4383,31967,4889],{"class":4389},[4383,31969,31970,31972,31974,31976,31978,31980,31982,31984,31986,31988,31990,31992,31994,31996,31998,32000,32002,32004,32006,32008,32010,32012],{"class":4385,"line":8905},[4383,31971,11437],{"class":4389},[4383,31973,4241],{"class":4393},[4383,31975,4397],{"class":4396},[4383,31977,4401],{"class":4400},[4383,31979,4405],{"class":4404},[4383,31981,6278],{"class":4408},[4383,31983,4879],{"class":4412},[4383,31985,3840],{"class":4408},[4383,31987,11952],{"class":4412},[4383,31989,9329],{"class":4408},[4383,31991,5299],{"class":4412},[4383,31993,11092],{"class":4412},[4383,31995,3840],{"class":4408},[4383,31997,9901],{"class":4412},[4383,31999,9341],{"class":4408},[4383,32001,4440],{"class":4404},[4383,32003,26859],{"class":4396},[4383,32005,4401],{"class":4400},[4383,32007,4405],{"class":4404},[4383,32009,4704],{"class":4416},[4383,32011,4440],{"class":4404},[4383,32013,4889],{"class":4389},[4383,32015,32016,32018,32020,32022,32024],{"class":4385,"line":8912},[4383,32017,11511],{"class":4404},[4383,32019,31828],{"class":4412},[4383,32021,3840],{"class":4408},[4383,32023,4910],{"class":4412},[4383,32025,5013],{"class":4404},[4383,32027,32028,32030,32032],{"class":4385,"line":8925},[4383,32029,11535],{"class":4389},[4383,32031,4241],{"class":4393},[4383,32033,4889],{"class":4389},[4383,32035,32036,32038,32040,32042,32044,32046,32048,32050,32052,32054,32056,32058,32060,32062,32064,32066,32068,32070,32072],{"class":4385,"line":8935},[4383,32037,11437],{"class":4389},[4383,32039,4241],{"class":4393},[4383,32041,4397],{"class":4396},[4383,32043,4401],{"class":4400},[4383,32045,4405],{"class":4404},[4383,32047,4409],{"class":4408},[4383,32049,5299],{"class":4412},[4383,32051,11092],{"class":4412},[4383,32053,3840],{"class":4408},[4383,32055,9924],{"class":4412},[4383,32057,3767],{"class":4408},[4383,32059,5283],{"class":4412},[4383,32061,5264],{"class":4416},[4383,32063,3767],{"class":4408},[4383,32065,6885],{"class":4412},[4383,32067,6888],{"class":4416},[4383,32069,4437],{"class":4408},[4383,32071,4440],{"class":4404},[4383,32073,4889],{"class":4389},[4383,32075,32076,32078,32080,32082,32085],{"class":4385,"line":8945},[4383,32077,11511],{"class":4404},[4383,32079,31828],{"class":4412},[4383,32081,3840],{"class":4408},[4383,32083,32084],{"class":4412},"date",[4383,32086,5013],{"class":4404},[4383,32088,32089,32091,32093],{"class":4385,"line":8950},[4383,32090,11535],{"class":4389},[4383,32092,4241],{"class":4393},[4383,32094,4889],{"class":4389},[4383,32096,32097,32099,32101,32103,32105,32107,32109,32111,32113,32115,32117,32119,32121,32123,32125,32127,32129,32131,32133,32135,32137],{"class":4385,"line":8969},[4383,32098,11437],{"class":4389},[4383,32100,4241],{"class":4393},[4383,32102,4397],{"class":4396},[4383,32104,4401],{"class":4400},[4383,32106,4405],{"class":4404},[4383,32108,4409],{"class":4408},[4383,32110,5299],{"class":4412},[4383,32112,11092],{"class":4412},[4383,32114,3840],{"class":4408},[4383,32116,9924],{"class":4412},[4383,32118,3767],{"class":4408},[4383,32120,6885],{"class":4412},[4383,32122,6008],{"class":4416},[4383,32124,4437],{"class":4408},[4383,32126,4440],{"class":4404},[4383,32128,26859],{"class":4396},[4383,32130,4401],{"class":4400},[4383,32132,4405],{"class":4404},[4383,32134,5755],{"class":4416},[4383,32136,4440],{"class":4404},[4383,32138,4889],{"class":4389},[4383,32140,32141,32143,32145,32147,32149],{"class":4385,"line":8977},[4383,32142,11511],{"class":4404},[4383,32144,31828],{"class":4412},[4383,32146,3840],{"class":4408},[4383,32148,8166],{"class":4412},[4383,32150,5013],{"class":4404},[4383,32152,32153,32155,32157],{"class":4385,"line":8987},[4383,32154,11535],{"class":4389},[4383,32156,4241],{"class":4393},[4383,32158,4889],{"class":4389},[4383,32160,32161,32163,32165],{"class":4385,"line":8996},[4383,32162,11544],{"class":4389},[4383,32164,4198],{"class":4393},[4383,32166,4889],{"class":4389},[4383,32168,32169,32171,32173],{"class":4385,"line":9005},[4383,32170,8336],{"class":4389},[4383,32172,4198],{"class":4393},[4383,32174,4889],{"class":4389},[4383,32176,32177,32180],{"class":4385,"line":9010},[4383,32178,32179],{"class":4408},"        ))",[4383,32181,5013],{"class":4404},[4383,32183,32184,32186,32188],{"class":4385,"line":9036},[4383,32185,4961],{"class":4389},[4383,32187,23926],{"class":4393},[4383,32189,4889],{"class":4389},[4383,32191,32192],{"class":4385,"line":9043},[4383,32193,4797],{"emptyLinePlaceholder":4796},[4383,32195,32196,32198,32200,32202,32204,32206,32208,32210,32212,32214,32216,32219,32221,32223,32225,32227,32229,32231,32233,32235,32237,32239],{"class":4385,"line":9052},[4383,32197,4895],{"class":4389},[4383,32199,4198],{"class":4393},[4383,32201,4397],{"class":4396},[4383,32203,4401],{"class":4400},[4383,32205,4405],{"class":4404},[4383,32207,6278],{"class":4408},[4383,32209,4879],{"class":4412},[4383,32211,3840],{"class":4408},[4383,32213,25516],{"class":4412},[4383,32215,9329],{"class":4408},[4383,32217,32218],{"class":4412},"borderTopColor:",[4383,32220,11092],{"class":4412},[4383,32222,3840],{"class":4408},[4383,32224,10000],{"class":4412},[4383,32226,3767],{"class":4408},[4383,32228,4430],{"class":4412},[4383,32230,11092],{"class":4412},[4383,32232,3840],{"class":4408},[4383,32234,9849],{"class":4412},[4383,32236,9341],{"class":4408},[4383,32238,4440],{"class":4404},[4383,32240,4889],{"class":4389},[4383,32242,32243,32245,32247,32249,32251,32253,32255,32257,32259,32262,32264,32266,32268,32270,32272,32274,32276],{"class":4385,"line":9061},[4383,32244,5106],{"class":4389},[4383,32246,4724],{"class":4393},[4383,32248,4397],{"class":4396},[4383,32250,4401],{"class":4400},[4383,32252,4405],{"class":4404},[4383,32254,6278],{"class":4408},[4383,32256,4879],{"class":4412},[4383,32258,3840],{"class":4408},[4383,32260,32261],{"class":4412},"cta",[4383,32263,9329],{"class":4408},[4383,32265,4430],{"class":4412},[4383,32267,11092],{"class":4412},[4383,32269,3840],{"class":4408},[4383,32271,9747],{"class":4412},[4383,32273,9341],{"class":4408},[4383,32275,4440],{"class":4404},[4383,32277,4889],{"class":4389},[4383,32279,32280,32282,32284,32286,32288,32290,32292,32294,32296,32298,32300,32302,32304,32306,32308,32310,32312,32315,32317,32319],{"class":4385,"line":9070},[4383,32281,6305],{"class":4389},[4383,32283,4241],{"class":4393},[4383,32285,4397],{"class":4396},[4383,32287,4401],{"class":4400},[4383,32289,4405],{"class":4404},[4383,32291,4409],{"class":4408},[4383,32293,5299],{"class":4412},[4383,32295,11092],{"class":4412},[4383,32297,3840],{"class":4408},[4383,32299,9978],{"class":4412},[4383,32301,3767],{"class":4408},[4383,32303,5291],{"class":4412},[4383,32305,5294],{"class":4433},[4383,32307,4437],{"class":4408},[4383,32309,4440],{"class":4404},[4383,32311,4915],{"class":4389},[4383,32313,32314],{"class":4400},"Нова поїздка",[4383,32316,4921],{"class":4389},[4383,32318,4241],{"class":4393},[4383,32320,4889],{"class":4389},[4383,32322,32323,32325,32327],{"class":4385,"line":9079},[4383,32324,6338],{"class":4389},[4383,32326,4724],{"class":4393},[4383,32328,4889],{"class":4389},[4383,32330,32331,32333,32335],{"class":4385,"line":9084},[4383,32332,4961],{"class":4389},[4383,32334,4198],{"class":4393},[4383,32336,4889],{"class":4389},[4383,32338,32339,32341,32343],{"class":4385,"line":9097},[4383,32340,5164],{"class":4389},[4383,32342,4198],{"class":4393},[4383,32344,4889],{"class":4389},[4383,32346,32347],{"class":4385,"line":9110},[4383,32348,5174],{"class":4400},[4383,32350,32351],{"class":4385,"line":9135},[4383,32352,5013],{"class":4400},[4383,32354,32355],{"class":4385,"line":9161},[4383,32356,4797],{"emptyLinePlaceholder":4796},[4383,32358,32359,32361,32363,32365,32367,32369,32371],{"class":4385,"line":12176},[4383,32360,5190],{"class":4404},[4383,32362,5062],{"class":4828},[4383,32364,5195],{"class":4400},[4383,32366,3803],{"class":4412},[4383,32368,3840],{"class":4400},[4383,32370,4495],{"class":4812},[4383,32372,5204],{"class":4400},[4383,32374,32375,32377,32379,32381,32383],{"class":4385,"line":12187},[4383,32376,5210],{"class":4412},[4383,32378,4745],{"class":4400},[4383,32380,4413],{"class":4412},[4383,32382,4417],{"class":4416},[4383,32384,5305],{"class":4400},[4383,32386,32387,32389,32391,32393,32395,32397,32400,32402,32404,32406,32408],{"class":4385,"line":12223},[4383,32388,21146],{"class":4412},[4383,32390,4745],{"class":4400},[4383,32392,4422],{"class":4412},[4383,32394,4425],{"class":4416},[4383,32396,3767],{"class":4400},[4383,32398,32399],{"class":4412},"borderBottomWidth:",[4383,32401,4417],{"class":4416},[4383,32403,3767],{"class":4400},[4383,32405,5878],{"class":4412},[4383,32407,6888],{"class":4416},[4383,32409,5305],{"class":4400},[4383,32411,32412,32414,32416,32418,32420,32422,32424,32426],{"class":4385,"line":12258},[4383,32413,5278],{"class":4412},[4383,32415,4745],{"class":4400},[4383,32417,5283],{"class":4412},[4383,32419,21172],{"class":4416},[4383,32421,3767],{"class":4400},[4383,32423,5291],{"class":4412},[4383,32425,5294],{"class":4433},[4383,32427,5305],{"class":4400},[4383,32429,32430,32433,32435,32437,32439,32441,32443,32445,32447,32449,32451,32453,32455,32457],{"class":4385,"line":12264},[4383,32431,32432],{"class":4412},"  chips:",[4383,32434,4745],{"class":4400},[4383,32436,12632],{"class":4412},[4383,32438,12635],{"class":4433},[4383,32440,3767],{"class":4400},[4383,32442,19246],{"class":4412},[4383,32444,19249],{"class":4433},[4383,32446,3767],{"class":4400},[4383,32448,5878],{"class":4412},[4383,32450,12642],{"class":4416},[4383,32452,3767],{"class":4400},[4383,32454,6885],{"class":4412},[4383,32456,6670],{"class":4416},[4383,32458,5305],{"class":4400},[4383,32460,32461,32463],{"class":4385,"line":12273},[4383,32462,12650],{"class":4412},[4383,32464,5213],{"class":4400},[4383,32466,32467,32469,32471],{"class":4385,"line":12282},[4383,32468,12658],{"class":4412},[4383,32470,5264],{"class":4416},[4383,32472,5050],{"class":4400},[4383,32474,32475,32477,32479],{"class":4385,"line":12289},[4383,32476,5359],{"class":4412},[4383,32478,12642],{"class":4416},[4383,32480,5050],{"class":4400},[4383,32482,32483,32485,32487],{"class":4385,"line":12298},[4383,32484,5370],{"class":4412},[4383,32486,12642],{"class":4416},[4383,32488,5050],{"class":4400},[4383,32490,32491,32493,32495],{"class":4385,"line":12303},[4383,32492,5950],{"class":4412},[4383,32494,4417],{"class":4416},[4383,32496,5050],{"class":4400},[4383,32498,32499],{"class":4385,"line":12310},[4383,32500,5272],{"class":4400},[4383,32502,32503,32505,32507,32509,32511,32513,32515,32517,32519,32522,32524],{"class":4385,"line":12342},[4383,32504,7392],{"class":4412},[4383,32506,4745],{"class":4400},[4383,32508,4422],{"class":4412},[4383,32510,4425],{"class":4416},[4383,32512,3767],{"class":4400},[4383,32514,5878],{"class":4412},[4383,32516,5362],{"class":4416},[4383,32518,3767],{"class":4400},[4383,32520,32521],{"class":4412},"paddingBottom:",[4383,32523,5242],{"class":4416},[4383,32525,5305],{"class":4400},[4383,32527,32528,32530,32532,32534,32536,32538,32540,32542,32544,32547,32549],{"class":4385,"line":12361},[4383,32529,6702],{"class":4412},[4383,32531,4745],{"class":4400},[4383,32533,19314],{"class":4412},[4383,32535,4425],{"class":4416},[4383,32537,3767],{"class":4400},[4383,32539,19321],{"class":4412},[4383,32541,4417],{"class":4416},[4383,32543,3767],{"class":4400},[4383,32545,32546],{"class":4412},"overflow:",[4383,32548,6755],{"class":4433},[4383,32550,5305],{"class":4400},[4383,32552,32553,32555,32557,32559,32561,32563,32565,32568,32570,32572,32575],{"class":4385,"line":12372},[4383,32554,27328],{"class":4412},[4383,32556,4745],{"class":4400},[4383,32558,27249],{"class":4412},[4383,32560,27337],{"class":4433},[4383,32562,3767],{"class":4400},[4383,32564,27256],{"class":4412},[4383,32566,32567],{"class":4416}," 120",[4383,32569,3767],{"class":4400},[4383,32571,4430],{"class":4412},[4383,32573,32574],{"class":4433}," '#ccc'",[4383,32576,5305],{"class":4400},[4383,32578,32579,32581,32583,32585,32587],{"class":4385,"line":12401},[4383,32580,27357],{"class":4412},[4383,32582,4745],{"class":4400},[4383,32584,4422],{"class":4412},[4383,32586,5362],{"class":4416},[4383,32588,5305],{"class":4400},[4383,32590,32591,32593,32595,32597,32599,32601,32603,32605],{"class":4385,"line":12408},[4383,32592,12789],{"class":4412},[4383,32594,4745],{"class":4400},[4383,32596,5283],{"class":4412},[4383,32598,12523],{"class":4416},[4383,32600,3767],{"class":4400},[4383,32602,5291],{"class":4412},[4383,32604,5294],{"class":4433},[4383,32606,5305],{"class":4400},[4383,32608,32609,32611,32613,32615,32617,32619,32622,32624],{"class":4385,"line":12413},[4383,32610,25926],{"class":4412},[4383,32612,4745],{"class":4400},[4383,32614,4422],{"class":4412},[4383,32616,4425],{"class":4416},[4383,32618,3767],{"class":4400},[4383,32620,32621],{"class":4412},"borderTopWidth:",[4383,32623,4417],{"class":4416},[4383,32625,5305],{"class":4400},[4383,32627,32628,32631],{"class":4385,"line":12448},[4383,32629,32630],{"class":4412},"  cta:",[4383,32632,5213],{"class":4400},[4383,32634,32635,32637,32639],{"class":4385,"line":12467},[4383,32636,5370],{"class":4412},[4383,32638,5264],{"class":4416},[4383,32640,5050],{"class":4400},[4383,32642,32643,32645,32647],{"class":4385,"line":12476},[4383,32644,5359],{"class":4412},[4383,32646,5362],{"class":4416},[4383,32648,5050],{"class":4400},[4383,32650,32651,32653,32655],{"class":4385,"line":12485},[4383,32652,5380],{"class":4412},[4383,32654,5253],{"class":4433},[4383,32656,5050],{"class":4400},[4383,32658,32659],{"class":4385,"line":12490},[4383,32660,5272],{"class":4400},[4383,32662,32663],{"class":4385,"line":12532},[4383,32664,5453],{"class":4400},[4021,32666],{},[3738,32668,32670],{"id":32669},"підсумок","Підсумок",[3743,32672,32673],{},"Якщо стиснути статтю до ланцюжка рішень:",[3792,32675,32676,32685,32694,32704,32715,32723],{},[3795,32677,32678,32681,32682,32684],{},[3756,32679,32680],{},"Форма"," екрана — Flexbox + ",[3764,32683,3803],{}," (відступи, радіуси, flex).",[3795,32686,32687,32690,32691,32693],{},[3756,32688,32689],{},"Theme"," — словник ролей ",[3764,32692,13941],{},", не розкиданий hex.",[3795,32695,32696,32699,32700,17449,32702,3840],{},[3756,32697,32698],{},"Звідки theme"," — system (ОС) і\u002Fабо вибір користувача → один ",[3764,32701,13160],{},[3764,32703,13929],{},[3795,32705,32706,32709,32710,3982,32712,32714],{},[3756,32707,32708],{},"Як рознести по дереву"," — ми пишемо ",[3764,32711,3981],{},[3764,32713,3985],{}," на React Context (без prop-drilling).",[3795,32716,32717,32720,32721,3840],{},[3756,32718,32719],{},"Системний хром"," — StatusBar узгодити з ",[3764,32722,13160],{},[3795,32724,32725,32727],{},[3756,32726,30685],{}," — очима на телефоні в light і dark.",[15984,32729,32730,32734,32738,32742,32746,32750,32758],{},[3820,32731,32733],{"id":32732},"stylesheetcreate-геометрія-й-дисципліна-стилів","StyleSheet.create — геометрія й дисципліна стилів",[3820,32735,32737],{"id":32736},"масив-style-умовні-стани-порядок-перекриття-зліва-направо","Масив style — умовні стани, порядок перекриття зліва направо",[3820,32739,32741],{"id":32740},"семантичні-токени-role-surfacetextprimary-не-hex-у-jsx","Семантичні токени — role (surface\u002Ftext\u002Fprimary), не hex у JSX",[3820,32743,32745],{"id":32744},"usecolorscheme-appearance-що-каже-операційна-система","useColorScheme \u002F Appearance — що каже операційна система",[3820,32747,32749],{"id":32748},"preference-systemlightdark-resolve-colorsforscheme","preference system|light|dark + resolve + colorsForScheme",[3820,32751,32753,32754,32757],{"id":32752},"themeprovider-usetheme-наш-код-на-context-обгортка-в-корені-statusbar-від-scheme","ThemeProvider \u002F useTheme — ",[3756,32755,32756],{},"наш"," код на Context; обгортка в корені; StatusBar від scheme",[3820,32759,32761,32762],{"id":32760},"у-компонентах-stylesgeometry-color-from-theme","У компонентах: ",[4383,32763,32764],{},"styles.geometry, { color from theme }",[3743,32766,32767,32768,13879,32771,32774,32775,32777],{},"Далі — ",[3756,32769,32770],{},"списки й віртуалізація",[3764,32772,32773],{},"FlatList",", секції, pull-to-refresh — коли карток стає багато. Тема лишиться з вами: віртуалізований список теж малює ",[3764,32776,3906],{}," на рядках.",[4021,32779],{},[3738,32781,32783],{"id":32782},"практичні-завдання","Практичні завдання",[3820,32785,32787],{"id":32786},"базовий-рівень","Базовий рівень",[3792,32789,32790,32798,32805],{},[3795,32791,32792,32793,3907,32795,32797],{},"Пояснити різницю між ",[3764,32794,3906],{},[3764,32796,3898],{}," у коді компонента.",[3795,32799,32800,32801,32804],{},"Зібрати ",[3764,32802,32803],{},"style={[styles.base, on && styles.on]}"," на кнопці.",[3795,32806,32807,32808,32810],{},"Показати ",[3764,32809,4164],{}," текстом на екрані.",[3820,32812,32814],{"id":32813},"середній-рівень","Середній рівень",[3792,32816,32817,32822,32828],{},[3795,32818,32819,32820,3840],{},"У theme-lab додати третій режим «system» через ",[3764,32821,3774],{},[3795,32823,32824,32825,32827],{},"У Nomad змінити ",[3764,32826,9747],{}," у dark-палітрі й перевірити кнопку + чіпи.",[3795,32829,32830,32831,32833],{},"Винести ",[3764,32832,6902],{}," на розділювач header\u002Ffooter.",[3820,32835,32837],{"id":32836},"професійний-рівень","Професійний рівень",[3792,32839,32840,32849,32857],{},[3795,32841,32842,32843,9739,32845,32848],{},"Зберегти ",[3764,32844,13590],{},[3764,32846,32847],{},"AsyncStorage"," (або MMKV пізніше) між перезапусками.",[3795,32850,32851,32852,32854,32855,4619],{},"Додати ",[3764,32853,9623],{}," \u002F тінь, що слабшає в dark (окремі токени ",[3764,32856,9631],{},[3795,32858,32859,32860,3840],{},"Порівняти (абзац) Context-тему vs майбутній RTK slice ",[3764,32861,32862],{},"settings.theme",[4021,32864],{},[3738,32866,32868],{"id":32867},"часті-запитання","Часті запитання",[19746,32870,32871,32889,32893,32900,32928,32950],{},[19749,32872,32875,32877,32878,32881,32882,32885,32886,32888],{"icon":32873,"label":32874},"i-lucide-circle-help","Чому colors у StyleSheet.create на модулі «не темнішають»?",[3764,32876,3766],{}," на рівні файлу виконується ",[3756,32879,32880],{},"один раз",". Якщо туди зашили ",[3764,32883,32884],{},"tokens.colors.background"," зі світлої палітри, dark не підхопиться. Динамічні кольори — з ",[3764,32887,17169],{}," у render (inline \u002F масив).",[19749,32890,32892],{"icon":32873,"label":32891},"Чи потрібен NativeWind \u002F Tailwind для теми?","Ні для цього шляху. Utility-CSS можливий окремо; тут — StyleSheet + семантичні токени.",[19749,32894,32896,32897,32899],{"icon":32873,"label":32895},"preference скидається після reload","Поки стан лише в ",[3764,32898,4748],{},". Персист — завдання Pro \u002F пізніші статті про storage.",[19749,32901,32903,32904,4211,32906,32908,32909,32912,32913,32915,32916,32918,32919,32921,32922,32924,32925,3840],{"icon":32873,"label":32902},"useTheme кидає помилку","Компонент рендериться ",[3756,32905,15535],{},[3764,32907,3981],{}," (або Provider взагалі не підключили в ",[3764,32910,32911],{},"_layout.tsx","). ",[3764,32914,3985],{}," — це ваш хук над ",[3764,32917,15529],{},": без ",[3764,32920,17176],{}," вище по дереву в Context лежить ",[3764,32923,5750],{}," → throw. Обгорніть корінь і викликайте хук лише в ",[3756,32926,32927],{},"нащадках",[19749,32929,32931,32932,32934,32935,32937,32938,4231,32940,32942,32943,3907,32945,13580,32947,32949],{"icon":32873,"label":32930},"ThemeProvider — це з бібліотеки?","Ні. У React Native ",[3756,32933,21493],{}," готового ",[3764,32936,3981],{}," для ваших семантичних кольорів. Є лише ",[3764,32939,3774],{},[3764,32941,4168],{},". ",[3764,32944,3981],{},[3764,32946,3985],{},[3756,32948,3937],{}," код на React Context (див. розділ «Тема в усьому застосунку»).",[19749,32951,32953,32954,32957],{"icon":32873,"label":32952},"Фото на картці «не темніє»","Так і має бути: зображення контенту не інвертують. Темнішають ",[3756,32955,32956],{},"chrome"," UI (фон, текст, бордери).",[4068,32959,32960],{},"html pre.shiki code .s0P7L, html code.shiki .s0P7L{--shiki-light:#800000;--shiki-default:#808080;--shiki-dark:#808080}html pre.shiki code .sN1BT, html code.shiki .sN1BT{--shiki-light:#267F99;--shiki-default:#4EC9B0;--shiki-dark:#4EC9B0}html pre.shiki code .sa4r_, html code.shiki .sa4r_{--shiki-light:#E50000;--shiki-default:#9CDCFE;--shiki-dark:#9CDCFE}html pre.shiki code .sHH4Y, html code.shiki .sHH4Y{--shiki-light:#000000;--shiki-default:#D4D4D4;--shiki-dark:#D4D4D4}html pre.shiki code .su1O8, html code.shiki .su1O8{--shiki-light:#0000FF;--shiki-default:#569CD6;--shiki-dark:#569CD6}html pre.shiki code .sD7JJ, html code.shiki .sD7JJ{--shiki-light:#000000FF;--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 .sJj4R, html code.shiki .sJj4R{--shiki-light:#098658;--shiki-default:#B5CEA8;--shiki-dark:#B5CEA8}html pre.shiki code .sbdoH, html code.shiki .sbdoH{--shiki-light:#A31515;--shiki-default:#CE9178;--shiki-dark:#CE9178}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 .s8Opu, html code.shiki .s8Opu{--shiki-light:#795E26;--shiki-default:#DCDCAA;--shiki-dark:#DCDCAA}html pre.shiki code .s-QsJ, html code.shiki .s-QsJ{--shiki-light:#0070C1;--shiki-default:#4FC1FF;--shiki-dark:#4FC1FF}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":4379,"searchDepth":4763,"depth":4763,"links":32962},[32963,32966,32969,32970,32993,33004,33007,33016,33032,33033,33046,33054,33065,33070],{"id":3740,"depth":4763,"text":3741,"children":32964},[32965],{"id":3822,"depth":4793,"text":3823},{"id":4025,"depth":4763,"text":4026,"children":32967},[32968],{"id":4201,"depth":4793,"text":4202},{"id":4302,"depth":4763,"text":4303},{"id":4346,"depth":4763,"text":32971,"children":32972},"StyleSheet — навіщо цей модуль",[32973,32974,32976,32978,32980,32982,32984,32986,32988,32989,32990,32992],{"id":4368,"depth":4793,"text":4369},{"id":4491,"depth":4793,"text":32975},"Що реально дає create на практиці",{"id":4566,"depth":4793,"text":32977},"API StyleSheet — що це і що видно на екрані",{"id":4708,"depth":4793,"text":32979},"Демо 1: create + масив стилів",{"id":5456,"depth":4793,"text":32981},"Демо 2: flatten — «що вийшло в сумі»",{"id":6074,"depth":4793,"text":32983},"Демо 3: absoluteFill vs absoluteFillObject",{"id":6898,"depth":4793,"text":32985},"Демо 4: hairlineWidth vs 1",{"id":7603,"depth":4793,"text":32987},"Демо 5: усе разом (create · flatten · absoluteFill · absoluteFillObject · hairlineWidth)",{"id":9166,"depth":4793,"text":9167},{"id":9371,"depth":4793,"text":9372},{"id":9512,"depth":4793,"text":32991},"Типова помилка: create всередині компонента на кожен render",{"id":9608,"depth":4793,"text":9609},{"id":9637,"depth":4763,"text":9638,"children":32994},[32995,32996,32997,32998,32999,33001,33003],{"id":9648,"depth":4793,"text":9649},{"id":9713,"depth":4793,"text":9714},{"id":9800,"depth":4793,"text":9801},{"id":10414,"depth":4793,"text":10415},{"id":10639,"depth":4793,"text":33000},"Демо: семантичні ролі + весь StyleSheet API",{"id":12897,"depth":4793,"text":33002},"Що зазвичай не міняють між темами",{"id":12940,"depth":4793,"text":12941},{"id":12975,"depth":4763,"text":12976,"children":33005},[33006],{"id":13002,"depth":4793,"text":4164},{"id":13619,"depth":4763,"text":33008,"children":33009},"Дві палітри з однаковими ключами",[33010,33012,33013,33015],{"id":13952,"depth":4793,"text":33011},"background vs surface — навіщо два «темні» \u002F два «світлі»",{"id":13980,"depth":4793,"text":13981},{"id":14009,"depth":4793,"text":33014},"Чого не класти в палітру теми",{"id":14035,"depth":4793,"text":14036},{"id":15287,"depth":4763,"text":33017,"children":33018},"Тема в усьому застосунку: ми самі пишемо ThemeProvider",[33019,33020,33021,33022,33023,33024,33025,33026,33028,33029,33030,33031],{"id":15450,"depth":4793,"text":15451},{"id":15707,"depth":4793,"text":15708},{"id":15988,"depth":4793,"text":15989},{"id":16001,"depth":4793,"text":16002},{"id":16013,"depth":4793,"text":16014},{"id":16022,"depth":4793,"text":16023},{"id":16032,"depth":4793,"text":16033},{"id":17183,"depth":4793,"text":33027},"Що саме лежить у useTheme() (контракт)",{"id":17288,"depth":4793,"text":17289},{"id":17439,"depth":4793,"text":17440},{"id":19428,"depth":4793,"text":19429},{"id":19548,"depth":4793,"text":19549},{"id":19736,"depth":4763,"text":19737},{"id":19879,"depth":4763,"text":19880,"children":33034},[33035,33036,33037,33039,33040,33041,33042,33043,33044,33045],{"id":19889,"depth":4793,"text":19890},{"id":19922,"depth":4793,"text":19923},{"id":19968,"depth":4793,"text":33038},"Крок 2. Замінити App.tsx",{"id":21403,"depth":4793,"text":21404},{"id":21409,"depth":4793,"text":21410},{"id":21423,"depth":4793,"text":21426},{"id":21441,"depth":4793,"text":21442},{"id":21461,"depth":4793,"text":4187},{"id":21481,"depth":4793,"text":21482},{"id":21500,"depth":4793,"text":21501},{"id":22843,"depth":4763,"text":22844,"children":33047},[33048,33049,33050,33051,33052,33053],{"id":22854,"depth":4793,"text":22855},{"id":22865,"depth":4793,"text":22866},{"id":22940,"depth":4793,"text":22941},{"id":30684,"depth":4793,"text":30685},{"id":30699,"depth":4793,"text":30700},{"id":30793,"depth":4793,"text":30794},{"id":32669,"depth":4763,"text":32670,"children":33055},[33056,33057,33058,33059,33060,33061,33063],{"id":32732,"depth":4793,"text":32733},{"id":32736,"depth":4793,"text":32737},{"id":32740,"depth":4793,"text":32741},{"id":32744,"depth":4793,"text":32745},{"id":32748,"depth":4793,"text":32749},{"id":32752,"depth":4793,"text":33062},"ThemeProvider \u002F useTheme — наш код на Context; обгортка в корені; StatusBar від scheme",{"id":32760,"depth":4793,"text":33064},"У компонентах: styles.geometry, { color from theme }",{"id":32782,"depth":4763,"text":32783,"children":33066},[33067,33068,33069],{"id":32786,"depth":4793,"text":32787},{"id":32813,"depth":4793,"text":32814},{"id":32836,"depth":4793,"text":32837},{"id":32867,"depth":4763,"text":32868},"StyleSheet.create, масиви стилів, семантичні токени кольорів, useColorScheme і перемикач світлої\u002Fтемної теми в Nomad",null,{},{"title":3420,"description":33071},"08Bblxp4Z-ABnCb0kofN_NcBkXHjhrOooj4w81BKqkM",[33077,33079],{"title":3416,"path":3417,"stem":3418,"description":33078,"children":-1},"Колонка за замовчуванням, осі, align\u002Fjustify, flex і gap, safe area, клавіатура — і п’ять типових екранів для мобільної верстки",{"title":3424,"path":3425,"stem":3426,"description":33080,"children":-1},"FlatList, SectionList, FlashList, pull-to-refresh, порожній і помилковий стан, пагінація UI — каталог книг і стрічки поїздок\u002Fмісць у Nomad",1788069958309]