@rt-tools/ui-kit-v2 0.8.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2.mjs +1001 -471
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  3. package/package.json +3 -3
  4. package/rt-tools-ui-kit-v2-0.11.0.tgz +0 -0
  5. package/src/assets/icons/social-facebook.svg +7 -0
  6. package/src/assets/icons/social-instagram.svg +14 -0
  7. package/src/assets/icons/social-kakaotalk.svg +7 -0
  8. package/src/assets/icons/social-line.svg +7 -0
  9. package/src/assets/icons/social-naver.svg +7 -0
  10. package/src/assets/icons/social-pinterest.svg +7 -0
  11. package/src/assets/icons/social-tiktok.svg +7 -0
  12. package/src/assets/icons/social-vk.svg +7 -0
  13. package/src/assets/icons/social-wechat.svg +7 -0
  14. package/src/assets/icons/social-x.svg +7 -0
  15. package/src/assets/icons/social-xiaohongshu.svg +7 -0
  16. package/src/assets/icons/social-youtube.svg +7 -0
  17. package/src/assets/icons-material/NOTICE.md +20 -0
  18. package/src/assets/icons-material/arrow-left.svg +3 -0
  19. package/src/assets/icons-material/ban.svg +5 -0
  20. package/src/assets/icons-material/bars.svg +3 -0
  21. package/src/assets/icons-material/check.svg +3 -0
  22. package/src/assets/icons-material/chevron-down.svg +3 -0
  23. package/src/assets/icons-material/chevron-left.svg +3 -0
  24. package/src/assets/icons-material/chevron-right.svg +3 -0
  25. package/src/assets/icons-material/close.svg +3 -0
  26. package/src/assets/icons-material/cloud-upload.svg +5 -0
  27. package/src/assets/icons-material/cog.svg +5 -0
  28. package/src/assets/icons-material/copy.svg +5 -0
  29. package/src/assets/icons-material/ellipsis-h.svg +5 -0
  30. package/src/assets/icons-material/ellipsis-v.svg +5 -0
  31. package/src/assets/icons-material/external-link.svg +5 -0
  32. package/src/assets/icons-material/eye-slash.svg +5 -0
  33. package/src/assets/icons-material/eye.svg +5 -0
  34. package/src/assets/icons-material/ico-download.svg +5 -0
  35. package/src/assets/icons-material/ico-plus.svg +3 -0
  36. package/src/assets/icons-material/info-circle.svg +5 -0
  37. package/src/assets/icons-material/pencil.svg +5 -0
  38. package/src/assets/icons-material/refresh.svg +5 -0
  39. package/src/assets/icons-material/search.svg +5 -0
  40. package/src/assets/icons-material/star.svg +5 -0
  41. package/src/assets/icons-material/sync.svg +5 -0
  42. package/src/assets/icons-material/table.svg +5 -0
  43. package/src/assets/icons-material/tag.svg +5 -0
  44. package/src/assets/icons-material/trash.svg +5 -0
  45. package/src/assets/icons-material/user.svg +5 -0
  46. package/src/lib/components/aside/CONTEXT.md +15 -0
  47. package/src/lib/components/aside/_rt-aside-overlay.scss +35 -22
  48. package/src/lib/components/aside-section/CONTEXT.md +8 -0
  49. package/src/lib/components/aside-section/rt-aside-section.component.scss +4 -16
  50. package/src/lib/components/button/rt-button.directive.scss +10 -1
  51. package/src/lib/components/icon/CONTEXT.md +23 -0
  52. package/src/lib/components/icon/rt-icon.component.scss +3 -0
  53. package/src/lib/components/icon-button/rt-icon-button.component.scss +31 -1
  54. package/src/lib/components/page-header/CONTEXT.md +19 -7
  55. package/src/lib/components/page-header/rt-page-header-compact.scss +149 -0
  56. package/src/lib/components/ripple/rt-ripple.directive.scss +46 -0
  57. package/src/lib/components/skeleton/rt-skeleton.component.scss +3 -3
  58. package/src/lib/components/tabs/CONTEXT.md +4 -0
  59. package/src/lib/components/thread-list/CONTEXT.md +6 -1
  60. package/src/styles/_form.scss +240 -0
  61. package/src/styles/_index.scss +16 -0
  62. package/src/styles/_preset-material.scss +102 -0
  63. package/src/styles/_primitives.scss +74 -4
  64. package/src/styles/_scrollbar.scss +39 -0
  65. package/src/styles/_semantic.scss +35 -24
  66. package/src/styles/_theme-dark.scss +16 -12
  67. package/styles/tokens.css +520 -38
  68. package/types/rt-tools-ui-kit-v2.d.ts +199 -33
  69. package/rt-tools-ui-kit-v2-0.8.1.tgz +0 -0
@@ -164,7 +164,7 @@ declare class RtAsideService {
164
164
  constructor();
165
165
  open<TComponent, TData = unknown, TResult = unknown>(component: ComponentType<TComponent>, config?: IRtAsideConfig<TData>): RtAsideRef<TResult>;
166
166
  static ɵfac: i0.ɵɵFactoryDeclaration<RtAsideService, never>;
167
- static ɵprov: i0.ɵɵInjectableDeclaration<RtAsideService>;
167
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
168
168
  }
169
169
 
170
170
  /**
@@ -475,7 +475,7 @@ declare class RtKitLabelPipe implements PipeTransform {
475
475
  * литеральный тип, нужный для `IRtIcon.Name` (см. `rt-icon.model.ts`). `as const`
476
476
  * сохраняет литеральные ключи.
477
477
  */
478
- declare const iconsName: readonly ["alarm-clock", "align-center", "align-justify", "align-left", "align-right", "angle-double-down", "angle-double-left", "angle-double-right", "angle-double-up", "angle-down", "angle-left", "angle-right", "angle-up", "arrow-bottom-old", "arrow-circle-down", "arrow-circle-left", "arrow-circle-right", "arrow-circle-up", "arrow-down", "arrow-down-left", "arrow-down-long", "arrow-down-right", "arrow-left", "arrow-left-old", "arrow-leftlong", "arrow-right", "arrow-right-old", "arrow-rightlong", "arrow-top-old", "arrow-up", "arrow-up-left", "arrow-up-long", "arrow-up-right", "arrows-h", "arrows-v", "at", "attach-docx-doc", "attach-eml", "attach-folder", "attach-jpg-png", "attach-msg", "attach-other", "attach-pdf", "attach-ppt-pptx", "attach-txt", "attach-webp", "attach-xlsx-xls", "attach-zip-rar", "ban", "bars", "bell", "bolt", "book", "bookmark", "bookmark-fill", "bot", "box", "briefcase", "building", "burger", "calendar", "calendar-minus", "calendar-plus", "calendar-times", "camera", "chart-bar", "chart-line", "chart-line-2", "chart-pie", "check", "check-circle", "check-double", "check-square", "chevron-circle-down", "chevron-circle-left", "chevron-circle-right", "chevron-circle-up", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevron-up-down", "clock", "clone", "close", "cloud", "cloud-download", "cloud-upload", "code", "cog", "comment", "comments", "copy", "credit-card", "database", "desktop", "directions", "directions-alt", "doc-success", "docBox", "ellipsis-h", "ellipsis-v", "email", "exclamation-circle", "external-link", "eye", "eye-slash", "file", "file-excel", "file-o", "file-pdf", "filter", "filter-fill", "filter-slash", "flag", "flag-fill", "flagman-a", "flagman-b", "flagman-c", "flagman-q", "folder", "folder-open", "globe", "groupen", "hashtag", "heart", "heart-fill", "help", "history", "historyUpdate", "ico-age", "ico-alert", "ico-b", "ico-babyPacifier", "ico-bank", "ico-bill", "ico-bill-striked", "ico-bookmark-right", "ico-books", "ico-burger", "ico-businessman", "ico-c", "ico-calendar", "ico-case", "ico-change", "ico-change-2", "ico-check", "ico-checked", "ico-checked-alert", "ico-cheker", "ico-chevron", "ico-chevron-down", "ico-close", "ico-config", "ico-contragents", "ico-control", "ico-copy", "ico-counterparty", "ico-coworkers", "ico-debt", "ico-director", "ico-doc", "ico-docDocprimary", "ico-docs", "ico-door", "ico-dotted-more-horizontal", "ico-doubleArrows", "ico-download", "ico-eagle", "ico-edit", "ico-edo", "ico-email", "ico-email1", "ico-error", "ico-exit", "ico-eye", "ico-eyeClose", "ico-faq", "ico-farm", "ico-filter", "ico-fine", "ico-gasket", "ico-generator", "ico-grade", "ico-grade-2", "ico-ground-area-transport", "ico-groundArea", "ico-groupen", "ico-hands", "ico-help", "ico-ico-history", "ico-info", "ico-infoFill", "ico-invite", "ico-key", "ico-keyFill", "ico-letter", "ico-level", "ico-level-down", "ico-level-up", "ico-licence", "ico-limit", "ico-link", "ico-link-2", "ico-listadd", "ico-listing", "ico-lock", "ico-locked", "ico-megafon", "ico-new-window", "ico-notification", "ico-notificationOff", "ico-percent-alert", "ico-plus", "ico-referal", "ico-repeat", "ico-reset", "ico-return", "ico-search", "ico-setting", "ico-settings", "ico-site", "ico-snowflake", "ico-spec", "ico-statement", "ico-subuser", "ico-sun", "ico-sunrise", "ico-support", "ico-target", "ico-team", "ico-tech", "ico-telegram", "ico-time", "ico-trash", "ico-try", "ico-txt", "ico-unlock", "ico-upload", "ico-user", "ico-user-2", "ico-users", "ico-users-2", "ico-video-play", "ico-warning", "ico-warranty", "ico-warranty-shield", "ico-xml", "id-card", "image", "images", "inbox", "info", "info-circle", "link", "list", "lock", "lock-open", "map", "mapYandex", "microsoft", "minus", "minus-circle", "mobile", "money-bill", "moon", "paperclip", "pause", "pencil", "percentage", "phone", "pie-chart", "plus-circle", "power-off", "print", "qrcode", "question-circle", "refresh", "replay", "reply", "reset", "search", "search-minus", "search-plus", "send", "server", "share-alt", "shield", "sitemap", "sliders-v", "sort-alpha-alt-down", "sort-alpha-alt-up", "sort-alpha-down", "sort-alpha-up", "sort-alt", "sort-alt-slash", "sort-amount-down", "sort-amount-down-alt", "sort-amount-up", "sort-amount-up-alt", "sort-numeric-alt-down", "sort-numeric-alt-up", "sort-numeric-down", "sort-numeric-up", "spinner", "star", "star-fill", "stock", "stop", "sync", "table", "tablet", "tag", "tags", "telegram", "th-large", "ticket", "times-circle", "trash", "undo", "unlock", "user", "user-edit", "user-minus", "user-plus", "users", "video", "volume-down", "volume-off", "volume-up", "wallet", "warning", "wifi", "window-maximize", "window-minimize"];
478
+ declare const iconsName: readonly ["alarm-clock", "align-center", "align-justify", "align-left", "align-right", "angle-double-down", "angle-double-left", "angle-double-right", "angle-double-up", "angle-down", "angle-left", "angle-right", "angle-up", "arrow-bottom-old", "arrow-circle-down", "arrow-circle-left", "arrow-circle-right", "arrow-circle-up", "arrow-down", "arrow-down-left", "arrow-down-long", "arrow-down-right", "arrow-left", "arrow-left-old", "arrow-leftlong", "arrow-right", "arrow-right-old", "arrow-rightlong", "arrow-top-old", "arrow-up", "arrow-up-left", "arrow-up-long", "arrow-up-right", "arrows-h", "arrows-v", "at", "attach-docx-doc", "attach-eml", "attach-folder", "attach-jpg-png", "attach-msg", "attach-other", "attach-pdf", "attach-ppt-pptx", "attach-txt", "attach-webp", "attach-xlsx-xls", "attach-zip-rar", "ban", "bars", "bell", "bolt", "book", "bookmark", "bookmark-fill", "bot", "box", "briefcase", "building", "burger", "calendar", "calendar-minus", "calendar-plus", "calendar-times", "camera", "chart-bar", "chart-line", "chart-line-2", "chart-pie", "check", "check-circle", "check-double", "check-square", "chevron-circle-down", "chevron-circle-left", "chevron-circle-right", "chevron-circle-up", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevron-up-down", "clock", "clone", "close", "cloud", "cloud-download", "cloud-upload", "code", "cog", "comment", "comments", "copy", "credit-card", "database", "desktop", "directions", "directions-alt", "doc-success", "docBox", "ellipsis-h", "ellipsis-v", "email", "exclamation-circle", "external-link", "eye", "eye-slash", "file", "file-excel", "file-o", "file-pdf", "filter", "filter-fill", "filter-slash", "flag", "flag-fill", "flagman-a", "flagman-b", "flagman-c", "flagman-q", "folder", "folder-open", "globe", "groupen", "hashtag", "heart", "heart-fill", "help", "history", "historyUpdate", "ico-age", "ico-alert", "ico-b", "ico-babyPacifier", "ico-bank", "ico-bill", "ico-bill-striked", "ico-bookmark-right", "ico-books", "ico-burger", "ico-businessman", "ico-c", "ico-calendar", "ico-case", "ico-change", "ico-change-2", "ico-check", "ico-checked", "ico-checked-alert", "ico-cheker", "ico-chevron", "ico-chevron-down", "ico-close", "ico-config", "ico-contragents", "ico-control", "ico-copy", "ico-counterparty", "ico-coworkers", "ico-debt", "ico-director", "ico-doc", "ico-docDocprimary", "ico-docs", "ico-door", "ico-dotted-more-horizontal", "ico-doubleArrows", "ico-download", "ico-eagle", "ico-edit", "ico-edo", "ico-email", "ico-email1", "ico-error", "ico-exit", "ico-eye", "ico-eyeClose", "ico-faq", "ico-farm", "ico-filter", "ico-fine", "ico-gasket", "ico-generator", "ico-grade", "ico-grade-2", "ico-ground-area-transport", "ico-groundArea", "ico-groupen", "ico-hands", "ico-help", "ico-ico-history", "ico-info", "ico-infoFill", "ico-invite", "ico-key", "ico-keyFill", "ico-letter", "ico-level", "ico-level-down", "ico-level-up", "ico-licence", "ico-limit", "ico-link", "ico-link-2", "ico-listadd", "ico-listing", "ico-lock", "ico-locked", "ico-megafon", "ico-new-window", "ico-notification", "ico-notificationOff", "ico-percent-alert", "ico-plus", "ico-referal", "ico-repeat", "ico-reset", "ico-return", "ico-search", "ico-setting", "ico-settings", "ico-site", "ico-snowflake", "ico-spec", "ico-statement", "ico-subuser", "ico-sun", "ico-sunrise", "ico-support", "ico-target", "ico-team", "ico-tech", "ico-telegram", "ico-time", "ico-trash", "ico-try", "ico-txt", "ico-unlock", "ico-upload", "ico-user", "ico-user-2", "ico-users", "ico-users-2", "ico-video-play", "ico-warning", "ico-warranty", "ico-warranty-shield", "ico-xml", "id-card", "image", "images", "inbox", "info", "info-circle", "link", "list", "lock", "lock-open", "map", "mapYandex", "microsoft", "minus", "minus-circle", "mobile", "money-bill", "moon", "paperclip", "pause", "pencil", "percentage", "phone", "pie-chart", "plus-circle", "power-off", "print", "qrcode", "question-circle", "refresh", "replay", "reply", "reset", "search", "search-minus", "search-plus", "send", "server", "share-alt", "shield", "sitemap", "sliders-v", "social-facebook", "social-instagram", "social-kakaotalk", "social-line", "social-naver", "social-pinterest", "social-tiktok", "social-vk", "social-wechat", "social-x", "social-xiaohongshu", "social-youtube", "sort-alpha-alt-down", "sort-alpha-alt-up", "sort-alpha-down", "sort-alpha-up", "sort-alt", "sort-alt-slash", "sort-amount-down", "sort-amount-down-alt", "sort-amount-up", "sort-amount-up-alt", "sort-numeric-alt-down", "sort-numeric-alt-up", "sort-numeric-down", "sort-numeric-up", "spinner", "star", "star-fill", "stock", "stop", "sync", "table", "tablet", "tag", "tags", "telegram", "th-large", "ticket", "times-circle", "trash", "undo", "unlock", "user", "user-edit", "user-minus", "user-plus", "users", "video", "volume-down", "volume-off", "volume-up", "wallet", "warning", "wifi", "window-maximize", "window-minimize"];
479
479
 
480
480
  /**
481
481
  * Модель `<rt-icon>`: один корневой неймспейс с префиксом `I`.
@@ -486,18 +486,21 @@ declare namespace IRtIcon {
486
486
  type Name = (typeof iconsName)[number];
487
487
  /** Доступные размеры. Маппинг на пиксели — в `rt-icon.component.ts`. */
488
488
  type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
489
+ /** Набор рисунков: свой набор кита либо материальный. */
490
+ type Preset = 'base' | 'material';
489
491
  /** Семантические цвета. Маппинг на CSS-переменные `--rt-icon-color-*` — в `rt-icon.component.ts`. */
490
492
  type Color = 'current' | 'muted' | 'info' | 'success' | 'warning' | 'danger' | 'inverse';
491
493
  }
492
494
 
493
495
  /**
494
- * Категории иконок rt-icon. 10 buckets: 8 prefix-based + Custom (префикс `ico-`) + Misc (fallback).
496
+ * Категории иконок rt-icon. 11 buckets: 8 prefix-based + Social (префикс `social-`) + Custom
497
+ * (префикс `ico-`) + Misc (fallback).
495
498
  * Порядок фиксирован — соответствует порядку отображения в Catalog story (rt-icon.stories.ts).
496
499
  *
497
500
  * Аннотация типа намеренно не указывается: явный `readonly string[]` потерял бы узкий
498
501
  * литеральный тип, нужный для {@link TIconCategory}. `as const` сохраняет литеральные ключи.
499
502
  */
500
- declare const CATEGORY_ORDER: readonly ["Navigation", "Alignment & Sorting", "Status", "Time & Calendar", "Communication", "Documents", "People", "Commerce", "Custom", "Misc"];
503
+ declare const CATEGORY_ORDER: readonly ["Navigation", "Alignment & Sorting", "Status", "Time & Calendar", "Communication", "Documents", "People", "Commerce", "Social", "Custom", "Misc"];
501
504
  /** Литеральный union из {@link CATEGORY_ORDER}. */
502
505
  type TIconCategory = (typeof CATEGORY_ORDER)[number];
503
506
  /**
@@ -524,6 +527,12 @@ declare function categoryOf(name: IRtIcon.Name): TIconCategory;
524
527
  declare class RtIconComponent {
525
528
  #private;
526
529
  protected readonly href: Signal<string>;
530
+ /**
531
+ * Набор, которым рисуется этот значок. Материальный закрывает не все имена кита — он слой
532
+ * переопределений, как набор оформления: имя без материального рисунка рисуется своим, и это
533
+ * не пробел.
534
+ */
535
+ protected readonly preset: Signal<IRtIcon.Preset>;
527
536
  protected readonly sizePx: Signal<number>;
528
537
  protected readonly colorValue: Signal<string>;
529
538
  protected readonly rotateStyle: Signal<string | null>;
@@ -549,6 +558,14 @@ type TRotateInput = number | string | null;
549
558
  declare const RT_ICON_SPRITE_ID: string;
550
559
  /** Префикс `id` для inline-sprite символов. Изолирует от внешних `id` на странице. */
551
560
  declare const RT_ICON_SYMBOL_ID_PREFIX: string;
561
+ /**
562
+ * Префикс `id` символов материального набора. Свой, а не общий: наборов на странице бывает два —
563
+ * признак набора стоит и на корне, и на контейнере, — а один `id` держит один рисунок. С общим
564
+ * префиксом второй набор молча забирал бы символ первого.
565
+ */
566
+ declare const RT_ICON_MATERIAL_SYMBOL_ID_PREFIX: string;
567
+ /** Селекторы, которыми страница объявляет материальный набор. */
568
+ declare const RT_ICON_MATERIAL_PRESET_SELECTOR: string;
552
569
 
553
570
  /**
554
571
  * Называет адрес, по которому приложение опубликовало набор значков `rt-icon`.
@@ -569,9 +586,13 @@ declare const RT_ICON_SYMBOL_ID_PREFIX: string;
569
586
  * Сами файлы приложение публикует само — набор лежит в `assets/icons` пакета, и сборка копирует
570
587
  * его в свою статику.
571
588
  *
589
+ * Наборов значков два: свой и материальный. Второй нужен только приложению, которое объявляет
590
+ * материальный набор оформления, и адрес у него свой — набор лежит в `assets/icons-material`.
591
+ *
572
592
  * @param baseUrl Адрес опубликованного набора. По умолчанию `/icons`.
593
+ * @param materialBaseUrl Адрес материального набора. По умолчанию `/icons-material`.
573
594
  */
574
- declare function provideRtIcons(baseUrl?: string): EnvironmentProviders;
595
+ declare function provideRtIcons(baseUrl?: string, materialBaseUrl?: string): EnvironmentProviders;
575
596
 
576
597
  /**
577
598
  * Адрес, по которому приложение публикует набор из `assets/icons` пакета.
@@ -579,13 +600,22 @@ declare function provideRtIcons(baseUrl?: string): EnvironmentProviders;
579
600
  * задаётся аргументом `provideRtIcons()`.
580
601
  */
581
602
  declare const RT_ICONS_BASE_URL: InjectionToken<string>;
603
+ /**
604
+ * Адрес материального набора значков. Отдельный от своего: два набора стоят рядом, и приложение
605
+ * кладёт их двумя папками.
606
+ */
607
+ declare const RT_ICONS_MATERIAL_BASE_URL: InjectionToken<string>;
582
608
  declare class RtIconRegistry {
583
609
  #private;
584
610
  constructor();
585
611
  /**
586
612
  * Имя symbol для `<use href="#X">`. Возвращает строку с ведущим `#`.
613
+ *
614
+ * Набор назван явно, а не выведен из страницы: одна и та же страница держит оба набора
615
+ * рядом — признак стоит и на корне, и на контейнере, — и вывод по странице дал бы обоим
616
+ * один ответ.
587
617
  */
588
- symbolHref(name: IRtIcon.Name): string;
618
+ symbolHref(name: IRtIcon.Name, preset?: IRtIcon.Preset): string;
589
619
  /**
590
620
  * Просит значок по имени: грузит файл и дописывает `<symbol>` в спрайт страницы.
591
621
  *
@@ -593,9 +623,9 @@ declare class RtIconRegistry {
593
623
  * браузер дорисовывает её, когда символ приезжает. Подписка живёт здесь и только здесь —
594
624
  * иначе каждая разметка гасила бы её сама, а таких мест у значка два.
595
625
  */
596
- request(name: IRtIcon.Name): void;
626
+ request(name: IRtIcon.Name, preset?: IRtIcon.Preset): void;
597
627
  static ɵfac: i0.ɵɵFactoryDeclaration<RtIconRegistry, never>;
598
- static ɵprov: i0.ɵɵInjectableDeclaration<RtIconRegistry>;
628
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
599
629
  }
600
630
 
601
631
  /**
@@ -749,6 +779,11 @@ declare class RtAsideFooterComponent {
749
779
  * Заголовок (`[heading]`) рендерится только когда задан. Соседние секции
750
780
  * автоматически разделяются верхней границей — отдельный разделитель в
751
781
  * потребителе не нужен.
782
+ *
783
+ * Внутри секция размечена словарём формы панели: тело — колонкой контролов,
784
+ * заголовок — заголовком раздела. Ритм между ними приходит зазорами словаря,
785
+ * поэтому панель, собранная из готовых секций, и панель, размеченная словарём
786
+ * вручную, стоят одинаково.
752
787
  */
753
788
  declare class RtAsideSectionComponent {
754
789
  readonly heading: InputSignal<string | null>;
@@ -1040,6 +1075,40 @@ declare namespace IButton {
1040
1075
  type IconPos = 'left' | 'right';
1041
1076
  }
1042
1077
 
1078
+ /**
1079
+ * Волна нажатия. Ставится на элемент, который нажимают, и рисует расходящийся
1080
+ * от точки касания круг.
1081
+ *
1082
+ * Волна живёт в своём обрезающем слое внутри элемента, а не прямо в нём:
1083
+ * `overflow: hidden` на самой кнопке срезал бы всё, что торчит за её край, —
1084
+ * у кнопки-значка так стоит метка, вынесенная на два пикселя наружу.
1085
+ *
1086
+ * @example
1087
+ * ```html
1088
+ * <button rtRipple>Сохранить</button>
1089
+ * <button rtRipple [rippleDisabled]="loading()">Сохранить</button>
1090
+ * ```
1091
+ */
1092
+ declare class RtRippleDirective {
1093
+ #private;
1094
+ /**
1095
+ * Отключает волну, не трогая остальное поведение элемента.
1096
+ * Отключённая и загружающаяся кнопка волны не даёт.
1097
+ */
1098
+ readonly rippleDisabled: InputSignalWithTransform<boolean, BooleanInput>;
1099
+ /** Гасит незакончившиеся волны: иначе таймер трогает снятый из дерева узел. */
1100
+ constructor();
1101
+ /**
1102
+ * Ставит один слой волны от точки нажатия и снимает его, когда тот отгорит.
1103
+ *
1104
+ * Радиус считается по дальнему углу элемента: волна из угла должна накрыть
1105
+ * противоположный, иначе на широкой кнопке она обрывается на полпути.
1106
+ */
1107
+ launch(event: PointerEvent): void;
1108
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRippleDirective, never>;
1109
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtRippleDirective, "[rtRipple]", never, { "rippleDisabled": { "alias": "rippleDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1110
+ }
1111
+
1043
1112
  /**
1044
1113
  * Директива стилизованной кнопки. Применяется к `<button>` или `<a>`
1045
1114
  * (для ссылок-кнопок с `routerLink`/`href`).
@@ -1078,10 +1147,27 @@ declare class RtButtonDirective {
1078
1147
  readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
1079
1148
  /** Кастомный CSS-класс иконки в loading. Если null — встроенный CSS-спиннер. */
1080
1149
  readonly loadingIcon: InputSignal<string | null>;
1150
+ /**
1151
+ * Положение двухпозиционной кнопки: `true` — нажата, `false` — отжата, `null` — положения нет
1152
+ * вовсе.
1153
+ *
1154
+ * Три значения, а не два, потому что обычная кнопка переключателем не является и объявлять
1155
+ * себя двухпозиционной не должна: сказанное вспомогательным средствам «эта кнопка отжата» на
1156
+ * кнопке, которая просто запускает действие, — ложь, а не умолчание. Отжатое положение при
1157
+ * этом объявляется наравне с нажатым: молчащая в отжатом виде кнопка неотличима от обычной, и
1158
+ * о втором положении узнают только нажав.
1159
+ *
1160
+ * Само по нажатию положение не меняется: кнопка говорит о нажатии наружу, а положение
1161
+ * возвращает вызывающий — иначе вид кнопки и состояние приложения расходятся при первом же
1162
+ * отказе сохранения.
1163
+ */
1164
+ readonly pressed: InputSignal<boolean | null>;
1081
1165
  constructor();
1166
+ /** Положение наружу: атрибута нет вовсе там, где положения у кнопки не бывает. */
1167
+ protected get ariaPressed(): string | null;
1082
1168
  protected get hostClasses(): Record<string, boolean>;
1083
1169
  static ɵfac: i0.ɵɵFactoryDeclaration<RtButtonDirective, never>;
1084
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtButtonDirective, "button[rtButton], a[rtButton]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPos": { "alias": "iconPos"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingIcon": { "alias": "loadingIcon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1170
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtButtonDirective, "button[rtButton], a[rtButton]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPos": { "alias": "iconPos"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingIcon": { "alias": "loadingIcon"; "required": false; "isSignal": true; }; "pressed": { "alias": "pressed"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRippleDirective; inputs: { "rippleDisabled": "rippleDisabled"; }; outputs: {}; }]>;
1085
1171
  }
1086
1172
 
1087
1173
  /**
@@ -2224,7 +2310,7 @@ declare class RtContainerContentPanelDirective {
2224
2310
  declare class RtContainerStateService {
2225
2311
  readonly leftSidenavOpen: WritableSignal<boolean>;
2226
2312
  static ɵfac: i0.ɵɵFactoryDeclaration<RtContainerStateService, never>;
2227
- static ɵprov: i0.ɵɵInjectableDeclaration<RtContainerStateService>;
2313
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
2228
2314
  }
2229
2315
 
2230
2316
  /**
@@ -2669,7 +2755,7 @@ declare class RtDialogService {
2669
2755
  constructor();
2670
2756
  open<TComponent, TData = unknown, TResult = unknown>(component: ComponentType<TComponent>, config?: IRtDialogConfig<TData>): RtDialogRef<TResult>;
2671
2757
  static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogService, never>;
2672
- static ɵprov: i0.ɵɵInjectableDeclaration<RtDialogService>;
2758
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
2673
2759
  }
2674
2760
 
2675
2761
  /**
@@ -2857,8 +2943,14 @@ declare namespace IRtIconButton {
2857
2943
  type Variant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success' | 'warning';
2858
2944
  /** Размер квадрата кнопки. Маппинг на пиксели — в SCSS (`--rt-icon-button-size`). */
2859
2945
  type Size = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
2860
- /** Форма границы кнопки. */
2861
- type Shape = 'circle' | 'square';
2946
+ /**
2947
+ * Форма границы кнопки, от скруглённого квадрата к кругу.
2948
+ * Промежуточные ступени делят расстояние от квадрата до круга на три равные части,
2949
+ * а не задаются своей долей стороны: кнопка бывает от 32 до 64 пикселей, а радиус
2950
+ * квадрата на всех один — доля, взятая сама по себе, сливается с ним на одних
2951
+ * размерах и отрывается на других.
2952
+ */
2953
+ type Shape = 'square' | 'rounded-sm' | 'rounded-lg' | 'circle';
2862
2954
  /** HTML-тип нативного `<button>`. */
2863
2955
  type Type = 'button' | 'submit';
2864
2956
  }
@@ -3362,6 +3454,11 @@ declare class RtInputNumberComponent extends RtFormControlBase<number | null> {
3362
3454
  readonly max: InputSignal<number | null>;
3363
3455
  readonly minFractionDigits: InputSignal<number>;
3364
3456
  readonly maxFractionDigits: InputSignal<number>;
3457
+ /**
3458
+ * Группировать ли разряды. Снимается у чисел, которые разрядами не читаются:
3459
+ * год, номер дома, код. У года разделитель превращает `2026` в `2 026`.
3460
+ */
3461
+ readonly grouped: InputSignal<boolean>;
3365
3462
  writeValue(value: number | null): void;
3366
3463
  protected getEmptyValue(): number | null;
3367
3464
  protected focusAfterClear(): void;
@@ -3382,7 +3479,7 @@ declare class RtInputNumberComponent extends RtFormControlBase<number | null> {
3382
3479
  protected onInput(event: Event): void;
3383
3480
  protected onBlur(): void;
3384
3481
  static ɵfac: i0.ɵɵFactoryDeclaration<RtInputNumberComponent, never>;
3385
- static ɵcmp: i0.ɵɵComponentDeclaration<RtInputNumberComponent, "rt-input-number", never, { "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minFractionDigits": { "alias": "minFractionDigits"; "required": false; "isSignal": true; }; "maxFractionDigits": { "alias": "maxFractionDigits"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3482
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtInputNumberComponent, "rt-input-number", never, { "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minFractionDigits": { "alias": "minFractionDigits"; "required": false; "isSignal": true; }; "maxFractionDigits": { "alias": "maxFractionDigits"; "required": false; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3386
3483
  }
3387
3484
 
3388
3485
  /**
@@ -4022,6 +4119,12 @@ declare class RtPageHeaderComponent {
4022
4119
  protected readonly translate: Signal<TRtKitTranslator>;
4023
4120
  protected readonly t: Signal<TRtKitLabelMap>;
4024
4121
  protected readonly mobileNavPopoverRef: Signal<RtPopoverDirective | undefined>;
4122
+ /** Кнопка «ещё» сжатой полосы открывает ту же панель, что и бургер, своим поповером. */
4123
+ protected readonly compactNavPopoverRef: Signal<RtPopoverDirective | undefined>;
4124
+ /** Сжатое состояние: шапка липкая и прилипла к верху. */
4125
+ protected readonly compact: Signal<boolean>;
4126
+ /** Разделы в кругах сжатой полосы: первые с иконкой, число — по входу. */
4127
+ protected readonly compactSections: Signal<ReadonlyArray<IRtPageHeaderView.Section>>;
4025
4128
  /** Форма пункта решается один раз здесь, а не ветвлениями в шаблоне. */
4026
4129
  protected readonly sections: Signal<ReadonlyArray<IRtPageHeaderView.Section>>;
4027
4130
  /**
@@ -4045,11 +4148,22 @@ declare class RtPageHeaderComponent {
4045
4148
  readonly userMenu: InputSignal<TemplateRef<unknown> | null>;
4046
4149
  /** Пусто — берётся переведённая подпись по умолчанию */
4047
4150
  readonly ariaLabel: InputSignal<string>;
4151
+ /**
4152
+ * Шапка липнет к верху окна и, прилипнув, сжимается в полосу: круги первых разделов,
4153
+ * кнопка «ещё» и три слота потребителя. Выключено — поведение прежнее.
4154
+ */
4155
+ readonly stickyCompact: InputSignalWithTransform<boolean, BooleanInput>;
4156
+ /** Сколько разделов с иконкой показывать кругами в сжатой полосе; остальные — под «ещё». */
4157
+ readonly compactVisibleCount: InputSignalWithTransform<number, NumberInput>;
4048
4158
  /** Своё имя навигации важнее умолчания */
4049
4159
  readonly navAriaLabel: Signal<string>;
4050
4160
  readonly itemClick: OutputEmitterRef<string>;
4051
4161
  readonly userClick: OutputEmitterRef<void>;
4052
4162
  constructor();
4163
+ /** Панель разделов открывают и бургер, и кнопка «ещё»: закрываются обе. */
4164
+ protected closeNavPanels(): void;
4165
+ /** Круг раздела без адреса: раздел с панелью открывает общую панель, прочий — сообщает наружу. */
4166
+ protected onCompactSectionClick(section: IRtPageHeaderView.Section): void;
4053
4167
  protected onItemClick(id: string): void;
4054
4168
  protected onUserClick(): void;
4055
4169
  /** Аккордеон мобильной панели: тумблер раскрытия раздела по его id. */
@@ -4057,7 +4171,7 @@ declare class RtPageHeaderComponent {
4057
4171
  /** Клик по плоскому пункту мобильной панели: emit + закрыть панель. */
4058
4172
  protected onMobileItemClick(id: string): void;
4059
4173
  static ɵfac: i0.ɵɵFactoryDeclaration<RtPageHeaderComponent, never>;
4060
- static ɵcmp: i0.ɵɵComponentDeclaration<RtPageHeaderComponent, "rt-page-header", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "userTitle": { "alias": "userTitle"; "required": false; "isSignal": true; }; "userMenu": { "alias": "userMenu"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "userClick": "userClick"; }, never, ["[rtHeaderBell]"], true, never>;
4174
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtPageHeaderComponent, "rt-page-header", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "userTitle": { "alias": "userTitle"; "required": false; "isSignal": true; }; "userMenu": { "alias": "userMenu"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "stickyCompact": { "alias": "stickyCompact"; "required": false; "isSignal": true; }; "compactVisibleCount": { "alias": "compactVisibleCount"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "userClick": "userClick"; }, never, ["[rtCompactLeft]", "[rtCompactCenter]", "[rtCompactRight]", "[rtHeaderBell]"], true, never>;
4061
4175
  }
4062
4176
 
4063
4177
  /**
@@ -5080,7 +5194,7 @@ declare class RtTableSettingsRegistry {
5080
5194
  setActive(tableId: string): void;
5081
5195
  clearActive(): void;
5082
5196
  static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsRegistry, never>;
5083
- static ɵprov: i0.ɵɵInjectableDeclaration<RtTableSettingsRegistry>;
5197
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
5084
5198
  }
5085
5199
 
5086
5200
  /**
@@ -5165,6 +5279,16 @@ declare class RtTabDirective {
5165
5279
  readonly iconColor: InputSignal<IRtTabs.TitleColor>;
5166
5280
  /** Значение бейджа справа от заголовка (число/строка). `null` — без бейджа. */
5167
5281
  readonly badge: InputSignal<string | number | null>;
5282
+ /**
5283
+ * Подсказка при наведении на бейдж. Подсказка самой кнопки занята неверной вкладкой,
5284
+ * поэтому у бейджа своя. Пусто — подсказки нет.
5285
+ */
5286
+ readonly badgeTitle: InputSignal<string>;
5287
+ /**
5288
+ * Подпись бейджа для чтения с экрана: точка или число сами по себе не говорят, что значат.
5289
+ * Пусто — атрибут не ставится, и озвучивается значение бейджа как есть.
5290
+ */
5291
+ readonly badgeAriaLabel: InputSignal<string>;
5168
5292
  /** Заблокированная вкладка: не выбирается и не получает фокус. */
5169
5293
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
5170
5294
  /** Скрытая вкладка: не рендерится ни в шапке, ни в контенте. */
@@ -5176,7 +5300,7 @@ declare class RtTabDirective {
5176
5300
  /** Готовый текст подсказки: своя формулировка важнее умолчания. */
5177
5301
  readonly invalidTitle: Signal<string>;
5178
5302
  static ɵfac: i0.ɵɵFactoryDeclaration<RtTabDirective, never>;
5179
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtTabDirective, "[rtTab]", never, { "id": { "alias": "rtTab"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "titleTemplate": { "alias": "titleTemplate"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "invalidMessage": { "alias": "invalidMessage"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5303
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtTabDirective, "[rtTab]", never, { "id": { "alias": "rtTab"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "titleTemplate": { "alias": "titleTemplate"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeTitle": { "alias": "badgeTitle"; "required": false; "isSignal": true; }; "badgeAriaLabel": { "alias": "badgeAriaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "invalidMessage": { "alias": "invalidMessage"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5180
5304
  }
5181
5305
 
5182
5306
  /**
@@ -5368,6 +5492,8 @@ declare class RtThemeToggleComponent {
5368
5492
  * Модель `<rt-thread-list>`: один корневой неймспейс с префиксом `I`.
5369
5493
  */
5370
5494
  declare namespace IRtThreadList {
5495
+ /** Номер строки: список ведёт записи и с числовым ключом, и со строковым. */
5496
+ type TRowId = number | string;
5371
5497
  /**
5372
5498
  * Минимальный контракт строки списка. Shell читает `id` (трек + активный
5373
5499
  * сегмент + клик) и модификаторы отображения; всё остальное — забота
@@ -5377,7 +5503,7 @@ declare namespace IRtThreadList {
5377
5503
  * - `overdue` — просрочка (акцент в meta); необязателен, дефолт — нет.
5378
5504
  */
5379
5505
  interface Row {
5380
- id: number;
5506
+ id: TRowId;
5381
5507
  hasUnread: boolean;
5382
5508
  overdue?: boolean;
5383
5509
  }
@@ -5447,7 +5573,7 @@ declare class RtThreadListComponent<TRow extends IRtThreadList.Row> implements O
5447
5573
  protected readonly filtersTemplate: Signal<RtThreadListFiltersDirective | undefined>;
5448
5574
  protected readonly searchTemplate: Signal<RtThreadListSearchDirective | undefined>;
5449
5575
  readonly rows: InputSignal<readonly TRow[]>;
5450
- readonly activeId: InputSignal<number | null>;
5576
+ readonly activeId: InputSignal<IRtThreadList.TRowId | null>;
5451
5577
  /** Пусто — берётся переведённая подпись по умолчанию */
5452
5578
  readonly searchPlaceholder: InputSignal<string>;
5453
5579
  readonly emptyText: InputSignal<string>;
@@ -5455,12 +5581,12 @@ declare class RtThreadListComponent<TRow extends IRtThreadList.Row> implements O
5455
5581
  readonly fetching: InputSignalWithTransform<boolean, boolean | string>;
5456
5582
  readonly hasMore: InputSignalWithTransform<boolean, boolean | string>;
5457
5583
  readonly filtersActive: InputSignalWithTransform<boolean, boolean | string>;
5458
- readonly selectRow: OutputEmitterRef<number>;
5459
- readonly openInNewTab: OutputEmitterRef<number>;
5584
+ readonly selectRow: OutputEmitterRef<IRtThreadList.TRowId>;
5585
+ readonly openInNewTab: OutputEmitterRef<IRtThreadList.TRowId>;
5460
5586
  readonly searchChange: OutputEmitterRef<string>;
5461
5587
  readonly loadMore: OutputEmitterRef<void>;
5462
5588
  ngOnInit(): void;
5463
- protected onSelect(id: number, event: MouseEvent): void;
5589
+ protected onSelect(id: IRtThreadList.TRowId, event: MouseEvent): void;
5464
5590
  protected onLoadMore(): void;
5465
5591
  static ɵfac: i0.ɵɵFactoryDeclaration<RtThreadListComponent<any>, never>;
5466
5592
  static ɵcmp: i0.ɵɵComponentDeclaration<RtThreadListComponent<any>, "rt-thread-list", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "filtersActive": { "alias": "filtersActive"; "required": false; "isSignal": true; }; }, { "selectRow": "selectRow"; "openInNewTab": "openInNewTab"; "searchChange": "searchChange"; "loadMore": "loadMore"; }, ["rowTemplate", "filtersTemplate", "searchTemplate"], never, true, never>;
@@ -5516,7 +5642,7 @@ declare class BreakpointsService {
5516
5642
  */
5517
5643
  readonly narrow: Signal<boolean>;
5518
5644
  static ɵfac: i0.ɵɵFactoryDeclaration<BreakpointsService, never>;
5519
- static ɵprov: i0.ɵɵInjectableDeclaration<BreakpointsService>;
5645
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
5520
5646
  }
5521
5647
 
5522
5648
  /**
@@ -5603,7 +5729,7 @@ declare class NotificationBus {
5603
5729
  warning(message: string, type?: string, options?: INotification.Options): void;
5604
5730
  error(message: string, type?: string, options?: INotification.Options): void;
5605
5731
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBus, never>;
5606
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationBus>;
5732
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
5607
5733
  }
5608
5734
 
5609
5735
  /**
@@ -5643,7 +5769,7 @@ declare class ThemeService {
5643
5769
  toggle(): void;
5644
5770
  setTheme(theme: ITheme.Mode): void;
5645
5771
  static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
5646
- static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
5772
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
5647
5773
  }
5648
5774
 
5649
5775
  declare const RT_TOASTER_GAP_PX: number;
@@ -5741,12 +5867,29 @@ declare namespace IRtToggleButtonGroup {
5741
5867
  * - `label` — текстовая подпись (основной контент).
5742
5868
  * - `icon` — опциональная иконка перед лейблом (`<rt-icon>`).
5743
5869
  * - `title` — нативный HTML-title (вместо тултип-директивы).
5870
+ * - `disabled` — сегмент недоступен сейчас: он остаётся видимым, но нажатия не пропускает.
5871
+ * Признак лежит рядом с подписью, а не отдельным списком значений: список запретов
5872
+ * расходится с самим списком сегментов молча — в нём остаётся значение, которого в группе
5873
+ * уже нет.
5744
5874
  */
5745
5875
  interface Option<T = string> {
5746
5876
  readonly value: T;
5747
5877
  readonly label: string;
5748
5878
  readonly icon?: IRtIcon.Name;
5749
5879
  readonly title?: string;
5880
+ readonly disabled?: boolean;
5881
+ }
5882
+ /**
5883
+ * Сегмент, готовый к отрисовке: подсветка и недоступность посчитаны компонентом.
5884
+ *
5885
+ * Заведён затем, чтобы шаблон не считал ни того, ни другого: подсветка читается по-разному в
5886
+ * одиночном и множественном выборе, а недоступность приходит с двух сторон — от группы и от
5887
+ * самого сегмента.
5888
+ */
5889
+ interface Rendered<T = string> {
5890
+ readonly option: Option<T>;
5891
+ readonly active: boolean;
5892
+ readonly disabled: boolean;
5750
5893
  }
5751
5894
  }
5752
5895
 
@@ -5770,17 +5913,40 @@ declare namespace IRtToggleButtonGroup {
5770
5913
  */
5771
5914
  declare class RtToggleButtonGroupComponent<T = string> {
5772
5915
  protected readonly iconSize: Signal<IRtIcon.Size>;
5916
+ /**
5917
+ * Сегменты, готовые к отрисовке: подсветка и недоступность посчитаны здесь, а не в шаблоне.
5918
+ *
5919
+ * Подсветка читается по-разному в одиночном и множественном выборе, а недоступность приходит
5920
+ * с двух сторон — от группы и от самого сегмента. Признак группы главнее: доступный сегмент
5921
+ * внутри отключённой группы читался бы как её единственное живое место.
5922
+ */
5923
+ protected readonly items: Signal<ReadonlyArray<IRtToggleButtonGroup.Rendered<T>>>;
5773
5924
  readonly options: InputSignal<ReadonlyArray<IRtToggleButtonGroup.Option<T>>>;
5774
5925
  readonly value: InputSignal<T | undefined>;
5926
+ /**
5927
+ * Множественный выбор: нажатие добавляет сегмент или снимает его, а не переносит выбор.
5928
+ *
5929
+ * Своим входом, а не расширением типа `value`: вход, у которого тип значения меняется от
5930
+ * значения другого входа, не проверяет ни сборка, ни линтер — потребитель узнаёт о своей
5931
+ * ошибке, когда группа перестаёт подсвечивать выбранное.
5932
+ */
5933
+ readonly multiple: InputSignalWithTransform<boolean, BooleanInput>;
5934
+ /** Набор выбранного. Читается только при множественном выборе, одиночный берёт `value`. */
5935
+ readonly values: InputSignal<ReadonlyArray<T>>;
5775
5936
  readonly ariaLabel: InputSignal<string | null>;
5776
5937
  readonly size: InputSignal<IRtToggleButtonGroup.Size>;
5777
5938
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
5778
5939
  /** Растягивает группу на всю ширину контейнера; опции делят ширину поровну. */
5779
5940
  readonly fullWidth: InputSignalWithTransform<boolean, BooleanInput>;
5780
5941
  readonly valueChange: OutputEmitterRef<T>;
5781
- protected onOptionClick(option: IRtToggleButtonGroup.Option<T>): void;
5942
+ /**
5943
+ * Весь набор выбранного после нажатия, а не разница с прежним: разницу вызывающий сводит со
5944
+ * своим состоянием сам, и каждый сводит по-своему.
5945
+ */
5946
+ readonly valuesChange: OutputEmitterRef<ReadonlyArray<T>>;
5947
+ protected onOptionClick(item: IRtToggleButtonGroup.Rendered<T>): void;
5782
5948
  static ɵfac: i0.ɵɵFactoryDeclaration<RtToggleButtonGroupComponent<any>, never>;
5783
- static ɵcmp: i0.ɵɵComponentDeclaration<RtToggleButtonGroupComponent<any>, "rt-toggle-button-group", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
5949
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtToggleButtonGroupComponent<any>, "rt-toggle-button-group", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "valuesChange": "valuesChange"; }, never, never, true, never>;
5784
5950
  }
5785
5951
 
5786
5952
  /**
@@ -6200,14 +6366,14 @@ declare class RtInfiniteScrollDirective implements OnDestroy {
6200
6366
  static ɵdir: i0.ɵɵDirectiveDeclaration<RtInfiniteScrollDirective, "[rtInfiniteScroll]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rootMargin": { "alias": "rootMargin"; "required": false; "isSignal": true; }; }, { "loadMore": "loadMore"; }, never, never, true, never>;
6201
6367
  }
6202
6368
 
6203
- /** Имя свойства оформления, которое кит объявляет сам. */
6204
- type TRtDesignTokenName = '--rt-amber-400' | '--rt-border-width-medium' | '--rt-border-width-thick' | '--rt-border-width-thin' | '--rt-bp-lg' | '--rt-bp-md' | '--rt-bp-sm' | '--rt-bp-xl' | '--rt-brand-100' | '--rt-brand-200' | '--rt-brand-300' | '--rt-brand-400' | '--rt-brand-50' | '--rt-brand-500' | '--rt-brand-600' | '--rt-brand-700' | '--rt-brand-800' | '--rt-brand-900' | '--rt-brand-950' | '--rt-btn-tint-active' | '--rt-btn-tint-hover' | '--rt-charcoal-700' | '--rt-charcoal-800' | '--rt-charcoal-900' | '--rt-charcoal-950' | '--rt-charcoal-border' | '--rt-charcoal-border-strong' | '--rt-chat-bubble-date' | '--rt-chat-bubble-in-author' | '--rt-chat-bubble-in-bg' | '--rt-chat-bubble-own-author' | '--rt-chat-bubble-own-bg' | '--rt-chat-status-read' | '--rt-color-action-danger' | '--rt-color-action-danger-active' | '--rt-color-action-danger-hover' | '--rt-color-action-danger-on-surface' | '--rt-color-action-disabled' | '--rt-color-action-info' | '--rt-color-action-info-active' | '--rt-color-action-info-hover' | '--rt-color-action-info-on-surface' | '--rt-color-action-on-danger' | '--rt-color-action-on-disabled' | '--rt-color-action-on-info' | '--rt-color-action-on-primary' | '--rt-color-action-on-secondary' | '--rt-color-action-on-success' | '--rt-color-action-on-warning' | '--rt-color-action-primary' | '--rt-color-action-primary-active' | '--rt-color-action-primary-hover' | '--rt-color-action-primary-on-surface' | '--rt-color-action-primary-soft' | '--rt-color-action-primary-subtle' | '--rt-color-action-secondary' | '--rt-color-action-secondary-active' | '--rt-color-action-secondary-hover' | '--rt-color-action-secondary-on-surface' | '--rt-color-action-success' | '--rt-color-action-success-active' | '--rt-color-action-success-hover' | '--rt-color-action-success-on-surface' | '--rt-color-action-warning' | '--rt-color-action-warning-active' | '--rt-color-action-warning-hover' | '--rt-color-action-warning-on-surface' | '--rt-color-bg-hover' | '--rt-color-bg-inverse' | '--rt-color-bg-nav' | '--rt-color-bg-overlay' | '--rt-color-bg-page' | '--rt-color-bg-page-auth' | '--rt-color-bg-subtle' | '--rt-color-bg-surface' | '--rt-color-bg-surface-auth-card' | '--rt-color-bg-surface-subtle' | '--rt-color-bg-surface-subtle-2' | '--rt-color-border-default' | '--rt-color-border-focus' | '--rt-color-border-strong' | '--rt-color-border-subtle' | '--rt-color-state-danger' | '--rt-color-state-danger-bg' | '--rt-color-state-error-text' | '--rt-color-state-info' | '--rt-color-state-info-bg' | '--rt-color-state-success' | '--rt-color-state-success-bg' | '--rt-color-state-warning' | '--rt-color-state-warning-bg' | '--rt-color-state-warning-text' | '--rt-color-stepper-current' | '--rt-color-stepper-current-subtle' | '--rt-color-stepper-progress' | '--rt-color-stepper-track' | '--rt-color-text-disabled' | '--rt-color-text-inverse' | '--rt-color-text-link' | '--rt-color-text-link-hover' | '--rt-color-text-muted' | '--rt-color-text-primary' | '--rt-control-height-2xl' | '--rt-control-height-lg' | '--rt-control-height-md' | '--rt-control-height-sm' | '--rt-control-height-xl' | '--rt-control-max-width' | '--rt-control-panel-max-height' | '--rt-control-textarea-min-height-lg' | '--rt-control-textarea-min-height-md' | '--rt-control-textarea-min-height-sm' | '--rt-counter-gap' | '--rt-counter-row-color-border' | '--rt-counter-row-gap' | '--rt-counter-row-hint-color' | '--rt-counter-row-hint-font-size' | '--rt-counter-row-label-color' | '--rt-counter-row-label-font-size' | '--rt-counter-row-padding-y' | '--rt-counter-value-color' | '--rt-counter-value-font-size' | '--rt-counter-value-min-width' | '--rt-danger-50' | '--rt-danger-500' | '--rt-danger-600' | '--rt-danger-700' | '--rt-duration-base' | '--rt-duration-fast' | '--rt-duration-slow' | '--rt-duration-slower' | '--rt-field-error-color' | '--rt-field-error-font-size' | '--rt-field-gap' | '--rt-field-hint-color' | '--rt-field-hint-font-size' | '--rt-field-label-color' | '--rt-field-label-font-size' | '--rt-field-label-font-weight' | '--rt-field-label-help-gap' | '--rt-field-required-color' | '--rt-field-value-color' | '--rt-field-value-empty-color' | '--rt-field-value-font-size' | '--rt-focus-ring-color' | '--rt-focus-ring-color-danger' | '--rt-focus-ring-offset' | '--rt-focus-ring-width' | '--rt-font-family-mono' | '--rt-font-family-sans' | '--rt-font-weight-bold' | '--rt-font-weight-medium' | '--rt-font-weight-regular' | '--rt-font-weight-semibold' | '--rt-gray-350' | '--rt-icon-button-color-bg-hover' | '--rt-info-50' | '--rt-info-500' | '--rt-info-600' | '--rt-info-700' | '--rt-input-border-width' | '--rt-input-color-bg' | '--rt-input-color-bg-disabled' | '--rt-input-color-bg-hover' | '--rt-input-color-border' | '--rt-input-color-border-error' | '--rt-input-color-border-focus' | '--rt-input-color-text' | '--rt-input-color-text-placeholder' | '--rt-input-disabled-opacity' | '--rt-input-focus-outline-offset' | '--rt-input-focus-shadow' | '--rt-input-focus-shadow-error' | '--rt-input-font-size' | '--rt-input-height' | '--rt-input-height-lg' | '--rt-input-height-md' | '--rt-input-height-sm' | '--rt-input-line-height' | '--rt-input-max-width' | '--rt-input-padding-x' | '--rt-input-padding-y' | '--rt-input-panel-max-height' | '--rt-input-radius' | '--rt-input-transition' | '--rt-leading-none' | '--rt-leading-normal' | '--rt-leading-relaxed' | '--rt-leading-snug' | '--rt-leading-tight' | '--rt-letter-spacing-wide' | '--rt-nav-caret-size' | '--rt-nav-color-disabled' | '--rt-nav-color-focus' | '--rt-nav-header-color-bg' | '--rt-nav-header-padding' | '--rt-nav-item-color' | '--rt-nav-item-color-bg' | '--rt-nav-item-color-bg-active' | '--rt-nav-item-color-border' | '--rt-nav-item-color-caret' | '--rt-nav-item-color-hover' | '--rt-nav-item-color-pressed' | '--rt-nav-item-content-gap' | '--rt-nav-item-font-size' | '--rt-nav-item-font-weight' | '--rt-nav-item-gap' | '--rt-nav-item-height' | '--rt-nav-item-line-height' | '--rt-nav-item-padding' | '--rt-nav-marker-color' | '--rt-nav-marker-size' | '--rt-nav-panel-color-bg' | '--rt-nav-panel-color-border' | '--rt-nav-panel-column-gap' | '--rt-nav-panel-column-width' | '--rt-nav-panel-columns' | '--rt-nav-panel-group-color' | '--rt-nav-panel-group-content-gap' | '--rt-nav-panel-group-font-size' | '--rt-nav-panel-group-font-weight' | '--rt-nav-panel-group-gap' | '--rt-nav-panel-item-color' | '--rt-nav-panel-item-color-active' | '--rt-nav-panel-item-color-bg-active' | '--rt-nav-panel-item-color-bg-hover' | '--rt-nav-panel-item-content-gap' | '--rt-nav-panel-item-font-size' | '--rt-nav-panel-item-font-weight' | '--rt-nav-panel-item-gap' | '--rt-nav-panel-item-height' | '--rt-nav-panel-item-padding' | '--rt-nav-panel-padding' | '--rt-nav-panel-padding-y' | '--rt-nav-panel-shadow' | '--rt-navy-600' | '--rt-navy-900' | '--rt-neutral-0' | '--rt-neutral-100' | '--rt-neutral-200' | '--rt-neutral-300' | '--rt-neutral-400' | '--rt-neutral-50' | '--rt-neutral-500' | '--rt-neutral-600' | '--rt-neutral-700' | '--rt-neutral-800' | '--rt-neutral-900' | '--rt-neutral-950' | '--rt-opacity-disabled' | '--rt-overlay-amber-16' | '--rt-overlay-black-4' | '--rt-overlay-black-50' | '--rt-overlay-black-8' | '--rt-overlay-brand-24' | '--rt-overlay-brand-8' | '--rt-overlay-danger-16' | '--rt-overlay-navy-70' | '--rt-overlay-white-25' | '--rt-overlay-white-4' | '--rt-overlay-white-40' | '--rt-overlay-white-50' | '--rt-overlay-white-8' | '--rt-profile-avatar-font-size' | '--rt-profile-avatar-size' | '--rt-profile-item-content-gap' | '--rt-profile-item-font-size' | '--rt-profile-item-font-weight' | '--rt-profile-item-padding-y' | '--rt-profile-item-radius' | '--rt-profile-menu-min-width' | '--rt-profile-menu-padding' | '--rt-profile-menu-shadow' | '--rt-profile-row-inset' | '--rt-profile-theme-icon-padding' | '--rt-radius-2xl' | '--rt-radius-full' | '--rt-radius-lg' | '--rt-radius-md' | '--rt-radius-ms' | '--rt-radius-none' | '--rt-radius-sm' | '--rt-radius-xl' | '--rt-radius-xs' | '--rt-shadow-card' | '--rt-shadow-card-soft' | '--rt-shadow-dialog' | '--rt-shadow-focus-ring' | '--rt-shadow-focus-ring-danger' | '--rt-shadow-lg' | '--rt-shadow-md' | '--rt-shadow-nav-panel' | '--rt-shadow-none' | '--rt-shadow-profile-menu' | '--rt-shadow-sm' | '--rt-shadow-status-dot' | '--rt-shadow-step-indicator' | '--rt-shadow-xl' | '--rt-size-1' | '--rt-size-10' | '--rt-size-100' | '--rt-size-12' | '--rt-size-16' | '--rt-size-2' | '--rt-size-20' | '--rt-size-24' | '--rt-size-3' | '--rt-size-30' | '--rt-size-4' | '--rt-size-40' | '--rt-size-5' | '--rt-size-6' | '--rt-size-60' | '--rt-size-64' | '--rt-size-8' | '--rt-slate-300' | '--rt-space-0' | '--rt-space-0-5' | '--rt-space-1' | '--rt-space-10' | '--rt-space-12' | '--rt-space-16' | '--rt-space-2' | '--rt-space-20' | '--rt-space-24' | '--rt-space-2xl' | '--rt-space-2xs' | '--rt-space-3xl' | '--rt-space-4' | '--rt-space-5' | '--rt-space-6' | '--rt-space-8' | '--rt-space-lg' | '--rt-space-md' | '--rt-space-sm' | '--rt-space-xl' | '--rt-space-xs' | '--rt-success-100' | '--rt-success-50' | '--rt-success-500' | '--rt-success-600' | '--rt-success-700' | '--rt-text-2xl' | '--rt-text-2xs' | '--rt-text-3xl' | '--rt-text-3xs' | '--rt-text-4xl' | '--rt-text-base' | '--rt-text-lg' | '--rt-text-md' | '--rt-text-sm' | '--rt-text-xl' | '--rt-text-xs' | '--rt-textarea-line-height' | '--rt-textarea-min-height' | '--rt-textarea-min-height-lg' | '--rt-textarea-min-height-md' | '--rt-textarea-min-height-sm' | '--rt-textarea-padding-y' | '--rt-toggle-color-border' | '--rt-toggle-color-icon' | '--rt-toggle-color-thumb' | '--rt-toggle-color-track' | '--rt-toggle-color-track-on' | '--rt-toggle-shadow-border' | '--rt-toggle-shadow-thumb' | '--rt-warning-50' | '--rt-warning-500' | '--rt-warning-600' | '--rt-warning-700' | '--rt-yellow-400' | '--rt-z-base' | '--rt-z-dropdown' | '--rt-z-fixed' | '--rt-z-modal' | '--rt-z-modal-backdrop' | '--rt-z-popover' | '--rt-z-sticky' | '--rt-z-tooltip';
6205
- /** Имя ручки потребителя — свойства, которое кит намеренно не объявляет. */
6369
+ /** The name of a styling property the kit declares itself. */
6370
+ type TRtDesignTokenName = '--rt-amber-400' | '--rt-border-width-medium' | '--rt-border-width-thick' | '--rt-border-width-thin' | '--rt-bp-lg' | '--rt-bp-md' | '--rt-bp-sm' | '--rt-bp-xl' | '--rt-brand-100' | '--rt-brand-200' | '--rt-brand-300' | '--rt-brand-400' | '--rt-brand-50' | '--rt-brand-500' | '--rt-brand-600' | '--rt-brand-700' | '--rt-brand-800' | '--rt-brand-900' | '--rt-brand-950' | '--rt-btn-tint-active' | '--rt-btn-tint-hover' | '--rt-charcoal-700' | '--rt-charcoal-800' | '--rt-charcoal-900' | '--rt-charcoal-950' | '--rt-charcoal-border' | '--rt-charcoal-border-strong' | '--rt-chat-bubble-date' | '--rt-chat-bubble-in-author' | '--rt-chat-bubble-in-bg' | '--rt-chat-bubble-own-author' | '--rt-chat-bubble-own-bg' | '--rt-chat-status-read' | '--rt-color-action-danger' | '--rt-color-action-danger-active' | '--rt-color-action-danger-hover' | '--rt-color-action-danger-on-surface' | '--rt-color-action-disabled' | '--rt-color-action-info' | '--rt-color-action-info-active' | '--rt-color-action-info-hover' | '--rt-color-action-info-on-surface' | '--rt-color-action-on-danger' | '--rt-color-action-on-disabled' | '--rt-color-action-on-info' | '--rt-color-action-on-primary' | '--rt-color-action-on-secondary' | '--rt-color-action-on-success' | '--rt-color-action-on-warning' | '--rt-color-action-primary' | '--rt-color-action-primary-active' | '--rt-color-action-primary-hover' | '--rt-color-action-primary-on-surface' | '--rt-color-action-primary-soft' | '--rt-color-action-primary-subtle' | '--rt-color-action-secondary' | '--rt-color-action-secondary-active' | '--rt-color-action-secondary-hover' | '--rt-color-action-secondary-on-surface' | '--rt-color-action-success' | '--rt-color-action-success-active' | '--rt-color-action-success-hover' | '--rt-color-action-success-on-surface' | '--rt-color-action-warning' | '--rt-color-action-warning-active' | '--rt-color-action-warning-hover' | '--rt-color-action-warning-on-surface' | '--rt-color-bg-hover' | '--rt-color-bg-inverse' | '--rt-color-bg-nav' | '--rt-color-bg-overlay' | '--rt-color-bg-page' | '--rt-color-bg-page-auth' | '--rt-color-bg-subtle' | '--rt-color-bg-surface' | '--rt-color-bg-surface-auth-card' | '--rt-color-bg-surface-subtle' | '--rt-color-bg-surface-subtle-2' | '--rt-color-border-default' | '--rt-color-border-focus' | '--rt-color-border-strong' | '--rt-color-border-subtle' | '--rt-color-skeleton-base' | '--rt-color-skeleton-wave' | '--rt-color-state-danger' | '--rt-color-state-danger-bg' | '--rt-color-state-error-text' | '--rt-color-state-info' | '--rt-color-state-info-bg' | '--rt-color-state-success' | '--rt-color-state-success-bg' | '--rt-color-state-warning' | '--rt-color-state-warning-bg' | '--rt-color-state-warning-text' | '--rt-color-stepper-current' | '--rt-color-stepper-current-subtle' | '--rt-color-stepper-progress' | '--rt-color-stepper-track' | '--rt-color-text-disabled' | '--rt-color-text-inverse' | '--rt-color-text-link' | '--rt-color-text-link-hover' | '--rt-color-text-muted' | '--rt-color-text-primary' | '--rt-control-height-2xl' | '--rt-control-height-lg' | '--rt-control-height-md' | '--rt-control-height-sm' | '--rt-control-height-xl' | '--rt-control-max-width' | '--rt-control-panel-max-height' | '--rt-control-textarea-min-height-lg' | '--rt-control-textarea-min-height-md' | '--rt-control-textarea-min-height-sm' | '--rt-counter-gap' | '--rt-counter-row-color-border' | '--rt-counter-row-gap' | '--rt-counter-row-hint-color' | '--rt-counter-row-hint-font-size' | '--rt-counter-row-label-color' | '--rt-counter-row-label-font-size' | '--rt-counter-row-padding-y' | '--rt-counter-value-color' | '--rt-counter-value-font-size' | '--rt-counter-value-min-width' | '--rt-danger-50' | '--rt-danger-500' | '--rt-danger-600' | '--rt-danger-700' | '--rt-duration-base' | '--rt-duration-fast' | '--rt-duration-slow' | '--rt-duration-slower' | '--rt-field-error-color' | '--rt-field-error-font-size' | '--rt-field-gap' | '--rt-field-hint-color' | '--rt-field-hint-font-size' | '--rt-field-label-color' | '--rt-field-label-font-size' | '--rt-field-label-font-weight' | '--rt-field-label-help-gap' | '--rt-field-required-color' | '--rt-field-value-color' | '--rt-field-value-empty-color' | '--rt-field-value-font-size' | '--rt-focus-ring-color' | '--rt-focus-ring-color-danger' | '--rt-focus-ring-offset' | '--rt-focus-ring-width' | '--rt-font-family-mono' | '--rt-font-family-sans' | '--rt-font-weight-bold' | '--rt-font-weight-medium' | '--rt-font-weight-regular' | '--rt-font-weight-semibold' | '--rt-gray-350' | '--rt-icon-button-color-bg-hover' | '--rt-info-50' | '--rt-info-500' | '--rt-info-600' | '--rt-info-700' | '--rt-input-border-width' | '--rt-input-color-bg' | '--rt-input-color-bg-disabled' | '--rt-input-color-bg-hover' | '--rt-input-color-border' | '--rt-input-color-border-error' | '--rt-input-color-border-focus' | '--rt-input-color-text' | '--rt-input-color-text-placeholder' | '--rt-input-disabled-opacity' | '--rt-input-focus-outline-offset' | '--rt-input-focus-shadow' | '--rt-input-focus-shadow-error' | '--rt-input-font-size' | '--rt-input-height' | '--rt-input-height-lg' | '--rt-input-height-md' | '--rt-input-height-sm' | '--rt-input-line-height' | '--rt-input-max-width' | '--rt-input-padding-x' | '--rt-input-padding-y' | '--rt-input-panel-max-height' | '--rt-input-radius' | '--rt-input-transition' | '--rt-leading-none' | '--rt-leading-normal' | '--rt-leading-relaxed' | '--rt-leading-snug' | '--rt-leading-tight' | '--rt-letter-spacing-wide' | '--rt-mat-blue-100' | '--rt-mat-blue-20' | '--rt-mat-blue-40' | '--rt-mat-blue-60' | '--rt-mat-blue-80' | '--rt-mat-blue-active' | '--rt-mat-blue-hover' | '--rt-mat-green-10' | '--rt-mat-green-100' | '--rt-mat-green-20' | '--rt-mat-green-40' | '--rt-mat-green-60' | '--rt-mat-green-80' | '--rt-mat-green-active' | '--rt-mat-green-hover' | '--rt-mat-navy-100' | '--rt-mat-neutral-0' | '--rt-mat-neutral-10' | '--rt-mat-neutral-100' | '--rt-mat-neutral-15' | '--rt-mat-neutral-20' | '--rt-mat-neutral-25' | '--rt-mat-neutral-30' | '--rt-mat-neutral-35' | '--rt-mat-neutral-40' | '--rt-mat-neutral-5' | '--rt-mat-neutral-60' | '--rt-mat-neutral-80' | '--rt-mat-neutral-active' | '--rt-mat-neutral-hover' | '--rt-mat-orange-10' | '--rt-mat-orange-100' | '--rt-mat-orange-20' | '--rt-mat-orange-40' | '--rt-mat-orange-5' | '--rt-mat-orange-60' | '--rt-mat-orange-70' | '--rt-mat-orange-80' | '--rt-mat-orange-active' | '--rt-mat-orange-hover' | '--rt-mat-overlay-black-32' | '--rt-mat-overlay-black-4' | '--rt-mat-overlay-blue-24' | '--rt-mat-overlay-blue-8' | '--rt-mat-red-10' | '--rt-mat-red-100' | '--rt-mat-red-20' | '--rt-mat-red-40' | '--rt-mat-red-60' | '--rt-mat-red-80' | '--rt-mat-red-active' | '--rt-mat-red-hover' | '--rt-nav-caret-size' | '--rt-nav-color-disabled' | '--rt-nav-color-focus' | '--rt-nav-header-color-bg' | '--rt-nav-header-padding' | '--rt-nav-item-color' | '--rt-nav-item-color-bg' | '--rt-nav-item-color-bg-active' | '--rt-nav-item-color-border' | '--rt-nav-item-color-caret' | '--rt-nav-item-color-hover' | '--rt-nav-item-color-pressed' | '--rt-nav-item-content-gap' | '--rt-nav-item-font-size' | '--rt-nav-item-font-weight' | '--rt-nav-item-gap' | '--rt-nav-item-height' | '--rt-nav-item-line-height' | '--rt-nav-item-padding' | '--rt-nav-marker-color' | '--rt-nav-marker-size' | '--rt-nav-panel-color-bg' | '--rt-nav-panel-color-border' | '--rt-nav-panel-column-gap' | '--rt-nav-panel-column-width' | '--rt-nav-panel-columns' | '--rt-nav-panel-group-color' | '--rt-nav-panel-group-content-gap' | '--rt-nav-panel-group-font-size' | '--rt-nav-panel-group-font-weight' | '--rt-nav-panel-group-gap' | '--rt-nav-panel-item-color' | '--rt-nav-panel-item-color-active' | '--rt-nav-panel-item-color-bg-active' | '--rt-nav-panel-item-color-bg-hover' | '--rt-nav-panel-item-content-gap' | '--rt-nav-panel-item-font-size' | '--rt-nav-panel-item-font-weight' | '--rt-nav-panel-item-gap' | '--rt-nav-panel-item-height' | '--rt-nav-panel-item-padding' | '--rt-nav-panel-padding' | '--rt-nav-panel-padding-y' | '--rt-nav-panel-shadow' | '--rt-navy-600' | '--rt-navy-900' | '--rt-neutral-0' | '--rt-neutral-100' | '--rt-neutral-200' | '--rt-neutral-300' | '--rt-neutral-400' | '--rt-neutral-50' | '--rt-neutral-500' | '--rt-neutral-600' | '--rt-neutral-700' | '--rt-neutral-800' | '--rt-neutral-900' | '--rt-neutral-950' | '--rt-opacity-disabled' | '--rt-overlay-amber-16' | '--rt-overlay-black-4' | '--rt-overlay-black-50' | '--rt-overlay-black-8' | '--rt-overlay-brand-24' | '--rt-overlay-brand-8' | '--rt-overlay-danger-16' | '--rt-overlay-navy-70' | '--rt-overlay-white-25' | '--rt-overlay-white-4' | '--rt-overlay-white-40' | '--rt-overlay-white-50' | '--rt-overlay-white-8' | '--rt-profile-avatar-font-size' | '--rt-profile-avatar-size' | '--rt-profile-item-content-gap' | '--rt-profile-item-font-size' | '--rt-profile-item-font-weight' | '--rt-profile-item-padding-y' | '--rt-profile-item-radius' | '--rt-profile-menu-min-width' | '--rt-profile-menu-padding' | '--rt-profile-menu-shadow' | '--rt-profile-row-inset' | '--rt-profile-theme-icon-padding' | '--rt-radius-2xl' | '--rt-radius-control' | '--rt-radius-full' | '--rt-radius-lg' | '--rt-radius-md' | '--rt-radius-ms' | '--rt-radius-none' | '--rt-radius-sm' | '--rt-radius-xl' | '--rt-radius-xs' | '--rt-shadow-card' | '--rt-shadow-card-soft' | '--rt-shadow-dialog' | '--rt-shadow-focus-ring' | '--rt-shadow-focus-ring-danger' | '--rt-shadow-lg' | '--rt-shadow-md' | '--rt-shadow-nav-panel' | '--rt-shadow-none' | '--rt-shadow-profile-menu' | '--rt-shadow-sm' | '--rt-shadow-status-dot' | '--rt-shadow-step-indicator' | '--rt-shadow-xl' | '--rt-size-1' | '--rt-size-10' | '--rt-size-100' | '--rt-size-12' | '--rt-size-16' | '--rt-size-2' | '--rt-size-20' | '--rt-size-24' | '--rt-size-3' | '--rt-size-30' | '--rt-size-4' | '--rt-size-40' | '--rt-size-5' | '--rt-size-6' | '--rt-size-60' | '--rt-size-64' | '--rt-size-8' | '--rt-slate-300' | '--rt-space-0' | '--rt-space-0-5' | '--rt-space-1' | '--rt-space-10' | '--rt-space-12' | '--rt-space-16' | '--rt-space-2' | '--rt-space-20' | '--rt-space-24' | '--rt-space-2xl' | '--rt-space-2xs' | '--rt-space-3xl' | '--rt-space-4' | '--rt-space-5' | '--rt-space-6' | '--rt-space-8' | '--rt-space-lg' | '--rt-space-md' | '--rt-space-sm' | '--rt-space-xl' | '--rt-space-xs' | '--rt-success-100' | '--rt-success-50' | '--rt-success-500' | '--rt-success-600' | '--rt-success-700' | '--rt-text-2xl' | '--rt-text-2xs' | '--rt-text-3xl' | '--rt-text-3xs' | '--rt-text-4xl' | '--rt-text-base' | '--rt-text-lg' | '--rt-text-md' | '--rt-text-sm' | '--rt-text-xl' | '--rt-text-xs' | '--rt-textarea-line-height' | '--rt-textarea-min-height' | '--rt-textarea-min-height-lg' | '--rt-textarea-min-height-md' | '--rt-textarea-min-height-sm' | '--rt-textarea-padding-y' | '--rt-toggle-color-border' | '--rt-toggle-color-icon' | '--rt-toggle-color-thumb' | '--rt-toggle-color-track' | '--rt-toggle-color-track-on' | '--rt-toggle-shadow-border' | '--rt-toggle-shadow-thumb' | '--rt-warning-50' | '--rt-warning-500' | '--rt-warning-600' | '--rt-warning-700' | '--rt-yellow-400' | '--rt-z-base' | '--rt-z-dropdown' | '--rt-z-fixed' | '--rt-z-modal' | '--rt-z-modal-backdrop' | '--rt-z-popover' | '--rt-z-sticky' | '--rt-z-tooltip';
6371
+ /** The name of a consumer's handle — a property the kit deliberately does not declare. */
6206
6372
  type TRtConsumerHandleName = '--rt-aside-width' | '--rt-dialog-width' | '--rt-header-content-max-width' | '--rt-header-height' | '--rt-logo-tagline' | '--rt-logo-tagline-dark' | '--rt-logo-wordmark' | '--rt-logo-wordmark-dark' | '--rt-page-header-bg' | '--rt-workspace-aside-size' | '--rt-workspace-list-size';
6207
- /** Все свойства оформления, объявленные китом. */
6373
+ /** All the styling properties declared by the kit. */
6208
6374
  declare const RT_DESIGN_TOKEN_NAMES: readonly TRtDesignTokenName[];
6209
- /** Все ручки потребителя: значение приходит от приложения, до него работает запасное. */
6375
+ /** All the consumer's handles: the value comes from the application, until then the fallback works. */
6210
6376
  declare const RT_CONSUMER_HANDLE_NAMES: readonly TRtConsumerHandleName[];
6211
6377
 
6212
- export { BreakpointsService, CATEGORY_ORDER, ERtCalendarDayState, ERtChatMessageStatus, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, IButton, ICON_CATEGORY_RULES, INotification, IRtAsideHeader, IRtAutocomplete, IRtBarList, IRtCalendar, IRtChat, IRtConfirmPopover, IRtDatePicker, IRtField, IRtFileCard, IRtFileDrop, IRtFileInput, IRtFilterControl, IRtIcon, IRtIconButton, IRtInput, IRtLogo, IRtMenu, IRtMessageComposer, IRtNightGrid, IRtPageHeader, IRtPagination, IRtPhotoViewer, IRtPopover, IRtSectionNav, IRtSelect, IRtSpinner, IRtSplitButton, IRtStatTile, IRtStepper, IRtTable, IRtTabs, IRtTag, IRtThemeToggle, IRtThreadList, IRtTimeline, IRtToaster, IRtToggleButtonGroup, IRtToggleSwitch, IRtTooltip, IRtWelcomeDialog, IRtWorkspace, IRtWorkspaceDetails, ITheme, MessageBus, NotificationBus, RT_ASIDE_DATA, RT_CONSUMER_HANDLE_NAMES, RT_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DESIGN_TOKEN_NAMES, RT_DIALOG_DATA, RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RT_ICONS_BASE_URL, RT_ICON_SPRITE_ID, RT_ICON_SYMBOL_ID_PREFIX, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MENU_SELECT_EVENT, RT_TABLE_ROW_ACTIONS_COLUMN, RT_TOASTER_GAP_PX, RtAsideComponent, RtAsideFooterComponent, RtAsideHeaderComponent, RtAsideRef, RtAsideSectionComponent, RtAsideService, RtAutocompleteComponent, RtBarListComponent, RtBottomSheetComponent, RtButtonDirective, RtCalendarComponent, RtCardComponent, RtChatComponent, RtChatMessageActionsDirective, RtChatMessageHasActionsPipe, RtChatStatusLabelPipe, RtCheckboxComponent, RtCollapsibleTextComponent, RtConfirmDirective, RtConfirmPopoverComponent, RtContainerComponent, RtContainerContentDirective, RtContainerContentPanelDirective, RtContainerHeaderDirective, RtContainerLeftSidenavDirective, RtContainerLeftSidenavPanelDirective, RtContainerRightSidenavDirective, RtContainerRightSidenavPanelDirective, RtContainerStateService, RtContainerToolbarCenterDirective, RtContainerToolbarLeftDirective, RtContainerToolbarRightDirective, RtCopyCellComponent, RtCounterComponent, RtCounterRowComponent, RtDatePickerComponent, RtDayStampPipe, RtDeltaViewComponent, RtDetailListComponent, RtDetailRowComponent, RtDialogComponent, RtDialogFooterComponent, RtDialogHeaderComponent, RtDialogRef, RtDialogService, RtDownloadLinkComponent, RtEmptyStateComponent, RtFieldComponent, RtFieldHintDirective, RtFileCardComponent, RtFileDropComponent, RtFileInputComponent, RtFileListComponent, RtFilterControlComponent, RtFormControlBase, RtHeaderComponent, RtIconButtonComponent, RtIconComponent, RtIconRegistry, RtInfiniteScrollDirective, RtInfoItemComponent, RtInputComponent, RtInputNumberComponent, RtKitLabelPipe, RtLiveBadgeComponent, RtLogoComponent, RtMarkdownTextComponent, RtMenuComponent, RtMenuItemComponent, RtMessageComponent, RtMessageComposerComponent, RtMoneyListComponent, RtMoneyRowComponent, RtMultiselectComponent, RtNightGridComponent, RtNoteComponent, RtNotificationsBellComponent, RtPageHeaderComponent, RtPaginationComponent, RtPhotoViewerComponent, RtPopoverDirective, RtRichEditorComponent, RtRouteAsideComponent, RtRowHasActionsPipe, RtSectionNavComponent, RtSelectComponent, RtSkeletonComponent, RtSkeletonWrapperComponent, RtSpinnerComponent, RtSplitButtonComponent, RtStatTileComponent, RtStepperComponent, RtTabDirective, RtTableCardDirective, RtTableComponent, RtTableRowActionsDirective, RtTableRowDirective, RtTableSettingsAsideComponent, RtTableSettingsPanelComponent, RtTableSettingsRegistry, RtTableSortHeaderComponent, RtTabsComponent, RtTabsControlDirective, RtTagComponent, RtTextareaComponent, RtThemeToggleComponent, RtThreadListComponent, RtThreadListFiltersDirective, RtThreadListRowDirective, RtThreadListSearchDirective, RtTimelineComponent, RtToastComponent, RtToasterComponent, RtToggleButtonGroupComponent, RtToggleSwitchComponent, RtToolbarCenterDirective, RtToolbarComponent, RtToolbarLeftDirective, RtToolbarRightDirective, RtTooltipComponent, RtTooltipDirective, RtTruncateMiddlePipe, RtWelcomeDialogComponent, RtWorkspaceAsideDirective, RtWorkspaceCenterDirective, RtWorkspaceComponent, RtWorkspaceDesktopOnlyDirective, RtWorkspaceDetailsComponent, RtWorkspaceListDirective, SEARCH_DEBOUNCE_MS, ThemeService, ariaSortOf, breakNode, categoryOf, coerceQuillDeltaOutput, defaultColumnItems, deliveryStatus, deriveFileTitle, displayedColumnKeys, fileNameFromUrl, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, messageHasAvailableActions, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, parseInline, parseMarkdown, pendingToRtMessage, provideRtIcons, provideRtKitLabels, resolveColumns, rowHasAvailableActions, rtAsideUnsavedGuard, rtKitLabel, searchDebounce, shouldRenderPhoto, sortDirectionOf, toRtMessage, withoutLockedHidden };
6378
+ export { BreakpointsService, CATEGORY_ORDER, ERtCalendarDayState, ERtChatMessageStatus, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, IButton, ICON_CATEGORY_RULES, INotification, IRtAsideHeader, IRtAutocomplete, IRtBarList, IRtCalendar, IRtChat, IRtConfirmPopover, IRtDatePicker, IRtField, IRtFileCard, IRtFileDrop, IRtFileInput, IRtFilterControl, IRtIcon, IRtIconButton, IRtInput, IRtLogo, IRtMenu, IRtMessageComposer, IRtNightGrid, IRtPageHeader, IRtPagination, IRtPhotoViewer, IRtPopover, IRtSectionNav, IRtSelect, IRtSpinner, IRtSplitButton, IRtStatTile, IRtStepper, IRtTable, IRtTabs, IRtTag, IRtThemeToggle, IRtThreadList, IRtTimeline, IRtToaster, IRtToggleButtonGroup, IRtToggleSwitch, IRtTooltip, IRtWelcomeDialog, IRtWorkspace, IRtWorkspaceDetails, ITheme, MessageBus, NotificationBus, RT_ASIDE_DATA, RT_CONSUMER_HANDLE_NAMES, RT_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DESIGN_TOKEN_NAMES, RT_DIALOG_DATA, RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RT_ICONS_BASE_URL, RT_ICONS_MATERIAL_BASE_URL, RT_ICON_MATERIAL_PRESET_SELECTOR, RT_ICON_MATERIAL_SYMBOL_ID_PREFIX, RT_ICON_SPRITE_ID, RT_ICON_SYMBOL_ID_PREFIX, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MENU_SELECT_EVENT, RT_TABLE_ROW_ACTIONS_COLUMN, RT_TOASTER_GAP_PX, RtAsideComponent, RtAsideFooterComponent, RtAsideHeaderComponent, RtAsideRef, RtAsideSectionComponent, RtAsideService, RtAutocompleteComponent, RtBarListComponent, RtBottomSheetComponent, RtButtonDirective, RtCalendarComponent, RtCardComponent, RtChatComponent, RtChatMessageActionsDirective, RtChatMessageHasActionsPipe, RtChatStatusLabelPipe, RtCheckboxComponent, RtCollapsibleTextComponent, RtConfirmDirective, RtConfirmPopoverComponent, RtContainerComponent, RtContainerContentDirective, RtContainerContentPanelDirective, RtContainerHeaderDirective, RtContainerLeftSidenavDirective, RtContainerLeftSidenavPanelDirective, RtContainerRightSidenavDirective, RtContainerRightSidenavPanelDirective, RtContainerStateService, RtContainerToolbarCenterDirective, RtContainerToolbarLeftDirective, RtContainerToolbarRightDirective, RtCopyCellComponent, RtCounterComponent, RtCounterRowComponent, RtDatePickerComponent, RtDayStampPipe, RtDeltaViewComponent, RtDetailListComponent, RtDetailRowComponent, RtDialogComponent, RtDialogFooterComponent, RtDialogHeaderComponent, RtDialogRef, RtDialogService, RtDownloadLinkComponent, RtEmptyStateComponent, RtFieldComponent, RtFieldHintDirective, RtFileCardComponent, RtFileDropComponent, RtFileInputComponent, RtFileListComponent, RtFilterControlComponent, RtFormControlBase, RtHeaderComponent, RtIconButtonComponent, RtIconComponent, RtIconRegistry, RtInfiniteScrollDirective, RtInfoItemComponent, RtInputComponent, RtInputNumberComponent, RtKitLabelPipe, RtLiveBadgeComponent, RtLogoComponent, RtMarkdownTextComponent, RtMenuComponent, RtMenuItemComponent, RtMessageComponent, RtMessageComposerComponent, RtMoneyListComponent, RtMoneyRowComponent, RtMultiselectComponent, RtNightGridComponent, RtNoteComponent, RtNotificationsBellComponent, RtPageHeaderComponent, RtPaginationComponent, RtPhotoViewerComponent, RtPopoverDirective, RtRichEditorComponent, RtRippleDirective, RtRouteAsideComponent, RtRowHasActionsPipe, RtSectionNavComponent, RtSelectComponent, RtSkeletonComponent, RtSkeletonWrapperComponent, RtSpinnerComponent, RtSplitButtonComponent, RtStatTileComponent, RtStepperComponent, RtTabDirective, RtTableCardDirective, RtTableComponent, RtTableRowActionsDirective, RtTableRowDirective, RtTableSettingsAsideComponent, RtTableSettingsPanelComponent, RtTableSettingsRegistry, RtTableSortHeaderComponent, RtTabsComponent, RtTabsControlDirective, RtTagComponent, RtTextareaComponent, RtThemeToggleComponent, RtThreadListComponent, RtThreadListFiltersDirective, RtThreadListRowDirective, RtThreadListSearchDirective, RtTimelineComponent, RtToastComponent, RtToasterComponent, RtToggleButtonGroupComponent, RtToggleSwitchComponent, RtToolbarCenterDirective, RtToolbarComponent, RtToolbarLeftDirective, RtToolbarRightDirective, RtTooltipComponent, RtTooltipDirective, RtTruncateMiddlePipe, RtWelcomeDialogComponent, RtWorkspaceAsideDirective, RtWorkspaceCenterDirective, RtWorkspaceComponent, RtWorkspaceDesktopOnlyDirective, RtWorkspaceDetailsComponent, RtWorkspaceListDirective, SEARCH_DEBOUNCE_MS, ThemeService, ariaSortOf, breakNode, categoryOf, coerceQuillDeltaOutput, defaultColumnItems, deliveryStatus, deriveFileTitle, displayedColumnKeys, fileNameFromUrl, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, messageHasAvailableActions, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, parseInline, parseMarkdown, pendingToRtMessage, provideRtIcons, provideRtKitLabels, resolveColumns, rowHasAvailableActions, rtAsideUnsavedGuard, rtKitLabel, searchDebounce, shouldRenderPhoto, sortDirectionOf, toRtMessage, withoutLockedHidden };
6213
6379
  export type { IMessageBusEvent, IQuillDelta, IQuillDeltaAttributes, IQuillDeltaOp, IRtAsideConfig, IRtChatMessageActionsContext, IRtDialogConfig, IRtMappableMessage, IRtMarkdownBlockNode, IRtMarkdownInlineNode, IRtMarkdownListItem, IRtPendingMessage, IRtPicture, IRtPictureSource, IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, IToRtMessageOptions, TIconCategory, TRtAsideContentLayout, TRtAsidePosition, TRtAsideSize, TRtConsumerHandleName, TRtDesignTokenName, TRtDialogSize, TRtKitLabelKey, TRtKitLabelMap, TRtKitLabelParams, TRtKitTranslator, TRtRichEditorToolbar, TRtSkeletonRadius, TRtSkeletonShape, TRtSkeletonSize, TRtTableAriaSort, TRtTextareaResize };