МожливостіСутності
Документація
    Ring Platform

    Децентралізоване самобудівне майбутнє

    Увійти
    Сутності
    Можливості
    Магазин
    Документація
    Концепції
    RING ЕкономікаSonoratek LLCГлобальний впливAI зустрічає Web3
    Розпочати
    Швидкий стартКалькуляторДорожня карта
    Конфіденційність|Контакти
    v1.104.23|Sonoratek LLC

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Кредитні винагороди
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Кредитні винагороди
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)

    Documentation

    Концепції, цінність і типові сценарії

    Ласкаво просимо до Ring
    Швидкий довідник
    Початок роботи
    Передумови
    Встановлення
    Валідація першого успіху
    Наступні кроки
    Функції
    Магазин
    Склад і залишки
    Керування вендорами
    Комісії та розрахунки
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Інтеграція платежів
    Публічні пули та DAO-банки
    Інтеграція WayForPay
    Web3 Гаманець
    WalletConductor
    Кредитні винагороди
    Партнерська та реферальна підтримка
    Реферальні коди (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Система Стейкінга Токенів
    Лабораторія проєкту власника (Owner Project Lab)
    Сутності
    Можливості
    AI Matcher
    Повідомлення
    Завдання Ring
    WebRTC-дзвінки та STUNner TURN
    Ігри з друзями
    Модуль Новин - Цифровий Газетний Досвід
    Блоги учасників
    Сторінки публічного профілю
    Віджети профілю облікового запису
    Ring File Cabinet
    Система Резервування Імен Користувачів
    Науковий редактор
    Notifications
    Push-сповіщення через FCM (Ring)
    Email AI-CRM
    Ring Mailer і RingdomX Mail
    Протокол Tunnel
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Безпека та відповідність
    Консоль адміністратора
    Адмінська Wiki
    Керування через Telegram
    Система локалей
    Мобільний Досвід
    Паттерни Оптимізації Продуктивності
    Приклади
    Швидкий старт
    Базове налаштування
    Білий лейбл
    Користувацьке брендування
    Інтеграція Web3
    Реальні приклади
    Розширені функції
    Кастомізація
    Швидкий старт — ваш перший клон Ring
    Повний посібник налаштування
    Вертикальні пресети (SSOT)
    Ringization playbook
    Брендування
    Теми
    Функції
    Локалізація
    Налаштування токеноміки
    Інтеграція платіжних шлюзів
    Еталонні деплої Ring
    Конфігурація
    Публічні змінні середовища
    Секрети Order Lab
    Project ID WalletConnect (Reown Cloud)
    Підтримувані сервіси
    Вікі NODUS (знання проєкту)
    Плейбук конфігурації
    Web3
    Token launch jurisdictions
    Гаманець
    Поради з безпеки гаманця
    Інтеграції
    Ethereum гаманці (Wagmi v3)
    RingFileBase (API об’єктного сховища)
    Ring CDN (edge RingFileBase)
    Розгортання
    Self-hosted розгортання
    Vercel
    Docker
    Конфігурація Середовища
    Моніторинг та Аналітика
    Оптимізація продуктивності
    Резервне копіювання і відновлення
    Архітектура
    Data Model
    Security
    Real Time
    Синхронізація discovery після мутацій
    Архітектура PaymentConductor
    Архітектура WalletConductor
    Бекенд Сервіси
    Інтеграція Firebase
    Розробка
    Ring MCP Server

    Швидкий вхід (CTO · аудитори · агенти)

    Вітаємо — місія та аудиторії
    Швидкий довідник
    Початок роботи
    Архітектура та Auth.js
    Режими бекенду та БД (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безпека та відповідність
    ringdom.org — база LegioX
    Код — ліцензія MIT (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Whitelabel-навігація

    Використовуйте вкладки Founder / Developer у бічній панелі docs, щоб фільтрувати цю сторінку. Спільні розділи стосуються обох аудиторій.

    Статус: Layer1 chrome — це data manifest + закрита мапа іконок, а не варіанти *-desktop-navigation.tsx на клон. Файлу config/navigation.config.ts немає. Паки перезаписують lib/navigation/primary-nav.ts. Клони ремаплять наявні id слотів у lib/navigation/primary-nav-overlay.ts. Невідомі icon id рендерять гліф users.

    Попередня звичкаЕквівалент у Ring
    Форкати vikka-desktop-navigation.tsx / greenfood-navigation.tsxL2 пак перезаписує lib/navigation/primary-nav.ts (слоти, hrefs, icon ids)
    Імпортувати вертикально-іменовану Lucide-іконку в chromeДодати generic id до PRIMARY_NAV_ICONS на Layer1, потім посилатися на цей id
    Overlay нового mobile tab з клонуOverlay не може додавати, ховати чи змінювати порядок слотів — змінюйте маніфест паку
    Копіювати desktop-sidebar.tsx на клонТримайте chrome на Layer1; ремапте лише iconById / labelKeysById / hrefById

    Архітектура

    Primary nav layers

    home.preset не обирає меню. Overflow-модулі (каталог [...]) живуть у lib/navigation/platform-menu.ts плюс ring-config.navigation.platformMenu. Паки не повинні перезаписувати platform-menu.ts; вертикальні дефолти належать у PACK.json.platformMenu і копіюються на ring-config клону.

    Що можна змінити без форку chrome

    • Підписи — ключі next-intl на кожному слоті (labelKeys). pack.json паку та overlay клону можуть перевизначати листки. Див. Localization.
    • Який гліф Lucide — оберіть id, який уже є в закритій мапі (таблиця нижче). Новий гліф — це зміна Layer1, не файл клону.
    • Href наявного слота — L3 hrefById на id цього слота (той самий контракт locale → string, що й у items паку).
    • Форма mobile bar — перші два href з маніфесту, center plus (add opportunity), далі решта. Пак, який перелічує три href плюс overflow (і пропускає docs-or-admin), отримує цей bar з тих самих chrome slices. Overlay не може додавати чи ховати ці слоти.

    Не просіть інтегратора класти кастомний sidebar-компонент у components/navigation/ заради brand icons.

    Закрита мапа іконок

    Шлях: lib/navigation/primary-nav-icons.ts. Chrome викликає getPrimaryNavIcon(id). Паки та overlays передають лише string ids.

    IdLucide export
    usersUsers (fallback for unknown ids)
    briefcaseBriefcase
    storeStore
    userUserRound
    file-textFileText
    ellipsisCircleEllipsis
    more-horizontalMoreHorizontal

    Часті запитання

    Вплив

    Чи може клон сховати вкладку Store лише через overlay?

    Ні. Приберіть або замініть слот у pack primary-nav.ts (compose overwrite). Overlay лише патчить icon / labelKeys / href на id, які вже існують.

    Що станеться, якщо пак використовує sun, перш ніж Layer1 його перелічить?

    getPrimaryNavIcon повертає Users. Bar не падає; гліф неправильний, доки Layer1 не завезе id.

    Міграція

    У нас досі є clone-local sidebar-компонент. Що замість?

    Видаліть форк. Направте compose на pack primary-nav.ts + empty-or-remap primary-nav-overlay.ts. Файли chrome лишаються на Layer1.

    Ops

    Хто володіє platform-menu.ts?

    Layer1. Паки не повинні rsync поверх нього. Clone ring-config.navigation.platformMenu (items / exclude / extra) — це важіль overflow-каталогу.

    Повʼязана документація

    Related documentation

    Vertical Presets (SSOT)

    Depends-on: L1 / L2 pack / L3 overlay compose and pack.json socket.

    Localization

    Same-workflow: nav labelKeys resolve through Layer1 → pack → overlay messages.

    Ringization playbook

    Prerequisite: chrome stays on Layer1; product stays on pack or clone overlay.

    Customization Guide

    See-also: ring-config feature flags that hide routes from nav.

    1. Документація
    2. /Розробка
    3. /Whitelabel-навігація

    Оновлено 9 вер. 2026 р.5 хв прослуховування

    Whitelabel-навігація

    Використовуйте вкладки Founder / Developer у бічній панелі docs, щоб фільтрувати цю сторінку. Спільні розділи стосуються обох аудиторій.

    Статус: Layer1 chrome — це data manifest + закрита мапа іконок, а не варіанти *-desktop-navigation.tsx на клон. Файлу config/navigation.config.ts немає. Паки перезаписують lib/navigation/primary-nav.ts. Клони ремаплять наявні id слотів у lib/navigation/primary-nav-overlay.ts. Невідомі icon id рендерять гліф users.

    Попередня звичкаЕквівалент у Ring
    Форкати vikka-desktop-navigation.tsx / greenfood-navigation.tsxL2 пак перезаписує lib/navigation/primary-nav.ts (слоти, hrefs, icon ids)
    Імпортувати вертикально-іменовану Lucide-іконку в chromeДодати generic id до PRIMARY_NAV_ICONS на Layer1, потім посилатися на цей id
    Overlay нового mobile tab з клонуOverlay не може додавати, ховати чи змінювати порядок слотів — змінюйте маніфест паку
    Копіювати desktop-sidebar.tsx на клонТримайте chrome на Layer1; ремапте лише iconById / labelKeysById / hrefById

    Архітектура

    Primary nav layers

    home.preset не обирає меню. Overflow-модулі (каталог [...]) живуть у lib/navigation/platform-menu.ts плюс ring-config.navigation.platformMenu. Паки не повинні перезаписувати platform-menu.ts; вертикальні дефолти належать у PACK.json.platformMenu і копіюються на ring-config клону.

    Що можна змінити без форку chrome

    • Підписи — ключі next-intl на кожному слоті (labelKeys). pack.json паку та overlay клону можуть перевизначати листки. Див. Localization.
    • Який гліф Lucide — оберіть id, який уже є в закритій мапі (таблиця нижче). Новий гліф — це зміна Layer1, не файл клону.
    • Href наявного слота — L3 hrefById на id цього слота (той самий контракт locale → string, що й у items паку).
    • Форма mobile bar — перші два href з маніфесту, center plus (add opportunity), далі решта. Пак, який перелічує три href плюс overflow (і пропускає docs-or-admin), отримує цей bar з тих самих chrome slices. Overlay не може додавати чи ховати ці слоти.

    Не просіть інтегратора класти кастомний sidebar-компонент у components/navigation/ заради brand icons.

    Закрита мапа іконок

    Шлях: lib/navigation/primary-nav-icons.ts. Chrome викликає getPrimaryNavIcon(id). Паки та overlays передають лише string ids.

    IdLucide export
    usersUsers (fallback for unknown ids)
    briefcaseBriefcase
    storeStore
    userUserRound
    file-textFileText
    ellipsisCircleEllipsis
    more-horizontalMoreHorizontal

    Часті запитання

    Вплив

    Чи може клон сховати вкладку Store лише через overlay?

    Ні. Приберіть або замініть слот у pack primary-nav.ts (compose overwrite). Overlay лише патчить icon / labelKeys / href на id, які вже існують.

    Що станеться, якщо пак використовує sun, перш ніж Layer1 його перелічить?

    getPrimaryNavIcon повертає Users. Bar не падає; гліф неправильний, доки Layer1 не завезе id.

    Міграція

    У нас досі є clone-local sidebar-компонент. Що замість?

    Видаліть форк. Направте compose на pack primary-nav.ts + empty-or-remap primary-nav-overlay.ts. Файли chrome лишаються на Layer1.

    Ops

    Хто володіє platform-menu.ts?

    Layer1. Паки не повинні rsync поверх нього. Clone ring-config.navigation.platformMenu (items / exclude / extra) — це важіль overflow-каталогу.

    Повʼязана документація

    Related documentation

    Vertical Presets (SSOT)

    Depends-on: L1 / L2 pack / L3 overlay compose and pack.json socket.

    Localization

    Same-workflow: nav labelKeys resolve through Layer1 → pack → overlay messages.

    Ringization playbook

    Prerequisite: chrome stays on Layer1; product stays on pack or clone overlay.

    Customization Guide

    See-also: ring-config feature flags that hide routes from nav.

    1. Документація
    2. /Розробка
    3. /Whitelabel-навігація

    Оновлено 9 вер. 2026 р.5 хв прослуховування

    Whitelabel-навігація

    Використовуйте вкладки Founder / Developer у бічній панелі docs, щоб фільтрувати цю сторінку. Спільні розділи стосуються обох аудиторій.

    Статус: Layer1 chrome — це data manifest + закрита мапа іконок, а не варіанти *-desktop-navigation.tsx на клон. Файлу config/navigation.config.ts немає. Паки перезаписують lib/navigation/primary-nav.ts. Клони ремаплять наявні id слотів у lib/navigation/primary-nav-overlay.ts. Невідомі icon id рендерять гліф users.

    Попередня звичкаЕквівалент у Ring
    Форкати vikka-desktop-navigation.tsx / greenfood-navigation.tsxL2 пак перезаписує lib/navigation/primary-nav.ts (слоти, hrefs, icon ids)
    Імпортувати вертикально-іменовану Lucide-іконку в chromeДодати generic id до PRIMARY_NAV_ICONS на Layer1, потім посилатися на цей id
    Overlay нового mobile tab з клонуOverlay не може додавати, ховати чи змінювати порядок слотів — змінюйте маніфест паку
    Копіювати desktop-sidebar.tsx на клонТримайте chrome на Layer1; ремапте лише iconById / labelKeysById / hrefById

    Архітектура

    Primary nav layers

    home.preset не обирає меню. Overflow-модулі (каталог [...]) живуть у lib/navigation/platform-menu.ts плюс ring-config.navigation.platformMenu. Паки не повинні перезаписувати platform-menu.ts; вертикальні дефолти належать у PACK.json.platformMenu і копіюються на ring-config клону.

    Що можна змінити без форку chrome

    • Підписи — ключі next-intl на кожному слоті (labelKeys). pack.json паку та overlay клону можуть перевизначати листки. Див. Localization.
    • Який гліф Lucide — оберіть id, який уже є в закритій мапі (таблиця нижче). Новий гліф — це зміна Layer1, не файл клону.
    • Href наявного слота — L3 hrefById на id цього слота (той самий контракт locale → string, що й у items паку).
    • Форма mobile bar — перші два href з маніфесту, center plus (add opportunity), далі решта. Пак, який перелічує три href плюс overflow (і пропускає docs-or-admin), отримує цей bar з тих самих chrome slices. Overlay не може додавати чи ховати ці слоти.

    Не просіть інтегратора класти кастомний sidebar-компонент у components/navigation/ заради brand icons.

    Закрита мапа іконок

    Шлях: lib/navigation/primary-nav-icons.ts. Chrome викликає getPrimaryNavIcon(id). Паки та overlays передають лише string ids.

    IdLucide export
    usersUsers (fallback for unknown ids)
    briefcaseBriefcase
    storeStore
    userUserRound
    file-textFileText
    ellipsisCircleEllipsis
    more-horizontalMoreHorizontal

    Часті запитання

    Вплив

    Чи може клон сховати вкладку Store лише через overlay?

    Ні. Приберіть або замініть слот у pack primary-nav.ts (compose overwrite). Overlay лише патчить icon / labelKeys / href на id, які вже існують.

    Що станеться, якщо пак використовує sun, перш ніж Layer1 його перелічить?

    getPrimaryNavIcon повертає Users. Bar не падає; гліф неправильний, доки Layer1 не завезе id.

    Міграція

    У нас досі є clone-local sidebar-компонент. Що замість?

    Видаліть форк. Направте compose на pack primary-nav.ts + empty-or-remap primary-nav-overlay.ts. Файли chrome лишаються на Layer1.

    Ops

    Хто володіє platform-menu.ts?

    Layer1. Паки не повинні rsync поверх нього. Clone ring-config.navigation.platformMenu (items / exclude / extra) — це важіль overflow-каталогу.

    Повʼязана документація

    Related documentation

    Vertical Presets (SSOT)

    Depends-on: L1 / L2 pack / L3 overlay compose and pack.json socket.

    Localization

    Same-workflow: nav labelKeys resolve through Layer1 → pack → overlay messages.

    Ringization playbook

    Prerequisite: chrome stays on Layer1; product stays on pack or clone overlay.

    Customization Guide

    See-also: ring-config feature flags that hide routes from nav.

    1. Документація
    2. /Розробка
    3. /Whitelabel-навігація

    Оновлено 9 вер. 2026 р.5 хв прослуховування

    shopping-basketShoppingBasket
    shopping-bagShoppingBag
    buildingBuilding2
    newspaperNewspaper
    tvTv
    sparklesSparkles
    gamepadGamepad2
    hexagonHexagon
    mapMap
    layout-gridLayoutGrid
    walletWallet
    bellBell
    heartHeart
    shopping-cartShoppingCart
    message-circleMessageCircle
    list-todoListTodo
    settingsSettings
    sunSun
    orbitOrbit
    calendarCalendar
    scaleScale
    hashHash
    typeType
    moonMoon
    compassCompass

    Додайте generic гліф сюди, перш ніж пак або overlay посилатиметься на новий id. Не накладайте цей файл іконками з іменами клону.

    Overlay socket (лише remap)

    Layer1 постачає export const PRIMARY_NAV_OVERLAY = {} у lib/navigation/primary-nav-overlay.ts, щоб webpack завжди резолвив імпорт. Клон перезаписує цей файл (не primary-nav.ts) так:

    getPrimaryNavManifest() проганяє BASE_MANIFEST через applyHrefOverlay / applyMobileOverlay. Id, яких немає в маніфесті паку/L1, ігноруються.

    Mobile chrome

    components/navigation/bottom-navigation.tsx рендерить navItems.slice(0, 2), потім center add control, потім navItems.slice(2). Компоненти іконок беруться з getPrimaryNavIcon. Desktop rail: sidebar-rail.tsx і sidebar-synced-layout.tsx використовують той самий helper.

    Оркестратор: components/navigation/navigation.tsx динамічно імпортує desktop-sidebar.tsx і bottom-navigation.tsx. Публічного реєстру варіантів DesktopNavigation немає.

    Рекомендований шлях

    Потрібен новий гліф? Спочатку зафіксуйте його на Layer1 (ring/web/lib/navigation/primary-nav-icons.ts), потім вкажіть id у слоті паку. Cursor skill layer2-preset-operator володіє pack primary-nav.ts; ringization-implementer володіє L3 overlay remap. Жоден не повинен копіювати chrome.

    Стартовий промпт (нічого не змінює, доки ви не схвалите):

    Add generic Lucide id <id> to Layer1 lib/navigation/primary-nav-icons.ts before pack <pack> references it. Do not import vertical-named icons in chrome. Overlay may only remap existing slot ids in primary-nav-overlay.ts.

    Ручний шлях

    1. 1

      Підтвердіть, що id слота існує в складеному маніфесті primary-nav.ts (масиви mobile / desktop). Overlay не може вигадувати id.

    2. 2

      Якщо icon id відсутній у PRIMARY_NAV_ICONS, додайте Lucide-імпорт і запис мапи на Layer1. Невідомі id тихо падають назад на users.

    3. 3

      Встановіть icon на слоті паку або PRIMARY_NAV_OVERLAY.iconById[slotId] на клоні. Тримайте platform-menu.ts на Layer1; вертикальні overflow-дефолти кладіть у PACK.json.platformMenu.

    Locale System

    Next-step: locale env used by href builders and next-intl.

    shopping-basketShoppingBasket
    shopping-bagShoppingBag
    buildingBuilding2
    newspaperNewspaper
    tvTv
    sparklesSparkles
    gamepadGamepad2
    hexagonHexagon
    mapMap
    layout-gridLayoutGrid
    walletWallet
    bellBell
    heartHeart
    shopping-cartShoppingCart
    message-circleMessageCircle
    list-todoListTodo
    settingsSettings
    sunSun
    orbitOrbit
    calendarCalendar
    scaleScale
    hashHash
    typeType
    moonMoon
    compassCompass

    Додайте generic гліф сюди, перш ніж пак або overlay посилатиметься на новий id. Не накладайте цей файл іконками з іменами клону.

    Overlay socket (лише remap)

    Layer1 постачає export const PRIMARY_NAV_OVERLAY = {} у lib/navigation/primary-nav-overlay.ts, щоб webpack завжди резолвив імпорт. Клон перезаписує цей файл (не primary-nav.ts) так:

    getPrimaryNavManifest() проганяє BASE_MANIFEST через applyHrefOverlay / applyMobileOverlay. Id, яких немає в маніфесті паку/L1, ігноруються.

    Mobile chrome

    components/navigation/bottom-navigation.tsx рендерить navItems.slice(0, 2), потім center add control, потім navItems.slice(2). Компоненти іконок беруться з getPrimaryNavIcon. Desktop rail: sidebar-rail.tsx і sidebar-synced-layout.tsx використовують той самий helper.

    Оркестратор: components/navigation/navigation.tsx динамічно імпортує desktop-sidebar.tsx і bottom-navigation.tsx. Публічного реєстру варіантів DesktopNavigation немає.

    Рекомендований шлях

    Потрібен новий гліф? Спочатку зафіксуйте його на Layer1 (ring/web/lib/navigation/primary-nav-icons.ts), потім вкажіть id у слоті паку. Cursor skill layer2-preset-operator володіє pack primary-nav.ts; ringization-implementer володіє L3 overlay remap. Жоден не повинен копіювати chrome.

    Стартовий промпт (нічого не змінює, доки ви не схвалите):

    Add generic Lucide id <id> to Layer1 lib/navigation/primary-nav-icons.ts before pack <pack> references it. Do not import vertical-named icons in chrome. Overlay may only remap existing slot ids in primary-nav-overlay.ts.

    Ручний шлях

    1. 1

      Підтвердіть, що id слота існує в складеному маніфесті primary-nav.ts (масиви mobile / desktop). Overlay не може вигадувати id.

    2. 2

      Якщо icon id відсутній у PRIMARY_NAV_ICONS, додайте Lucide-імпорт і запис мапи на Layer1. Невідомі id тихо падають назад на users.

    3. 3

      Встановіть icon на слоті паку або PRIMARY_NAV_OVERLAY.iconById[slotId] на клоні. Тримайте platform-menu.ts на Layer1; вертикальні overflow-дефолти кладіть у PACK.json.platformMenu.

    Locale System

    Next-step: locale env used by href builders and next-intl.

    shopping-basketShoppingBasket
    shopping-bagShoppingBag
    buildingBuilding2
    newspaperNewspaper
    tvTv
    sparklesSparkles
    gamepadGamepad2
    hexagonHexagon
    mapMap
    layout-gridLayoutGrid
    walletWallet
    bellBell
    heartHeart
    shopping-cartShoppingCart
    message-circleMessageCircle
    list-todoListTodo
    settingsSettings
    sunSun
    orbitOrbit
    calendarCalendar
    scaleScale
    hashHash
    typeType
    moonMoon
    compassCompass

    Додайте generic гліф сюди, перш ніж пак або overlay посилатиметься на новий id. Не накладайте цей файл іконками з іменами клону.

    Overlay socket (лише remap)

    Layer1 постачає export const PRIMARY_NAV_OVERLAY = {} у lib/navigation/primary-nav-overlay.ts, щоб webpack завжди резолвив імпорт. Клон перезаписує цей файл (не primary-nav.ts) так:

    getPrimaryNavManifest() проганяє BASE_MANIFEST через applyHrefOverlay / applyMobileOverlay. Id, яких немає в маніфесті паку/L1, ігноруються.

    Mobile chrome

    components/navigation/bottom-navigation.tsx рендерить navItems.slice(0, 2), потім center add control, потім navItems.slice(2). Компоненти іконок беруться з getPrimaryNavIcon. Desktop rail: sidebar-rail.tsx і sidebar-synced-layout.tsx використовують той самий helper.

    Оркестратор: components/navigation/navigation.tsx динамічно імпортує desktop-sidebar.tsx і bottom-navigation.tsx. Публічного реєстру варіантів DesktopNavigation немає.

    Рекомендований шлях

    Потрібен новий гліф? Спочатку зафіксуйте його на Layer1 (ring/web/lib/navigation/primary-nav-icons.ts), потім вкажіть id у слоті паку. Cursor skill layer2-preset-operator володіє pack primary-nav.ts; ringization-implementer володіє L3 overlay remap. Жоден не повинен копіювати chrome.

    Стартовий промпт (нічого не змінює, доки ви не схвалите):

    Add generic Lucide id <id> to Layer1 lib/navigation/primary-nav-icons.ts before pack <pack> references it. Do not import vertical-named icons in chrome. Overlay may only remap existing slot ids in primary-nav-overlay.ts.

    Ручний шлях

    1. 1

      Підтвердіть, що id слота існує в складеному маніфесті primary-nav.ts (масиви mobile / desktop). Overlay не може вигадувати id.

    2. 2

      Якщо icon id відсутній у PRIMARY_NAV_ICONS, додайте Lucide-імпорт і запис мапи на Layer1. Невідомі id тихо падають назад на users.

    3. 3

      Встановіть icon на слоті паку або PRIMARY_NAV_OVERLAY.iconById[slotId] на клоні. Тримайте platform-menu.ts на Layer1; вертикальні overflow-дефолти кладіть у PACK.json.platformMenu.

    Locale System

    Next-step: locale env used by href builders and next-intl.