RK Registry
shadcn-регистр переиспользуемых блоков. Превью блоков →
Установка блока:
npx shadcn@latest add {url}/r/<name>.json- Format Dateregistry:lib
Форматирование дат/времени на русском (relative, deadline, duration, month, quarter). Без внешних зависимостей.
/r/format-date.json - use-mobileregistry:hook
Хук детекта мобильного вьюпорта через useSyncExternalStore (breakpoint 768px).
/r/use-mobile.json - Fieldregistry:component
Композиция полей формы: Field / FieldLabel / FieldDescription / FieldError / FieldGroup / FieldSet.
/r/field.json - Emptyregistry:ui
Пустое состояние: Empty / EmptyHeader / EmptyMedia / EmptyTitle / EmptyDescription / EmptyContent.
/r/empty.json - Max Cardregistry:ui
Карточка Max100: MaxCard / MaxCardHeader / MaxCardHeading / MaxCardTitle / MaxCardSubtitle / MaxCardActions / MaxCardContent.
/r/max-card.json - Max Attribute Rowregistry:ui
Строка «лейбл — значение» для панелей атрибутов: MaxAttributeRow / MaxAttributeText / MaxAttributeBadge.
/r/max-attribute-row.json - Max Avatarregistry:ui
Аватар с fallback на инициалы: next/image с unoptimized, сброс ошибки загрузки через adjust-state-during-render.
/r/max-avatar.json - Scrollbar Providerregistry:ui
Оверлей-скроллбар поверх контента (drag-to-scroll, авто-скрытие). Делегирует события на document; стили .scrollbar-thumb ставятся вместе с блоком.
/r/scrollbar-provider.json - Cookie Bannerregistry:component
Баннер согласия на cookie (РосКвартал): запись consent-куки на корневой домен, скрытие через useSyncExternalStore.
/r/cookie-banner.json - Input Groupregistry:ui
Группа инпута с аддонами/кнопками/текстом: InputGroup / InputGroupAddon / InputGroupButton / InputGroupText / InputGroupInput / InputGroupTextarea.
/r/input-group.json - Org Contextregistry:lib
Хранение выбранной организации (orgId) в sessionStorage: getOrgId / setOrgId / clearOrgId.
/r/org-context.json - Ticket Statusregistry:lib
Доменный маппинг статусов тикета РосКвартал → лейбл/цвет/иконка (TICKET_STATUS_CONFIG). Завязан на disds-иконки.
/r/ticket-status.json - Ticket Typeregistry:lib
Доменный маппинг типов/видов тикета (TICKET_TYPE_CONFIG, TICKET_KIND_CONFIG) → лейбл/цвет/иконка. Завязан на disds-иконки.
/r/ticket-type.json - FA Icon Mapregistry:lib
Резолвер FontAwesome-классов в disds-иконки: resolveFaIcon(faClass). Завязан на disds-иконки.
/r/fa-icon-map.json - Max Attribute Value Rowregistry:ui
Готовая строка «лейбл — текстовое значение» поверх MaxAttributeRow.
/r/max-attribute-value-row.json - Max Member Rowregistry:ui
Строка участника со MaxAvatar (аватар + имя/подпись).
/r/max-member-row.json - Max Activity Feedregistry:ui
Лента активности с относительным временем (использует format-date) и пустым состоянием.
/r/max-activity-feed.json - Spinnerregistry:ui
Спиннер на disds-иконке CircleNotch (анимация вращения).
/r/spinner.json - Sonner (Toaster)registry:ui
Обёртка над sonner-тостером с темой (next-themes) и disds-иконками статусов.
/r/sonner.json - Max Status Badgeregistry:ui
Generic-бейдж статуса: label + опциональная иконка/цвет через props (домен не зашит). Для тикетов совмещать с ticket-status.
/r/max-status-badge.json - Help Menuregistry:block
Меню помощи для сайдбара: кнопка-триггер, dropdown и модалка обратной связи. Отправку обращения приложение прокидывает через onSubmitFeedback (API не зашит).
/r/help-menu.json - App Sidebarregistry:block
Сайдбар приложения: навигация, переключатель организаций, выход и HelpMenu в футере. Навигация/организации/юзер/logout/onSubmitFeedback — через props (API не зашит).
/r/app-sidebar.json