@rt-tools/ui-kit-v2 0.1.0 → 0.4.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 (117) hide show
  1. package/README.md +25 -16
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +786 -1504
  3. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  4. package/package.json +1 -2
  5. package/rt-tools-ui-kit-v2-0.4.0.tgz +0 -0
  6. package/src/lib/components/CONTEXT.md +49 -0
  7. package/src/lib/components/aside/CONTEXT.md +51 -0
  8. package/src/lib/components/aside/_rt-aside-overlay.scss +88 -0
  9. package/src/lib/components/aside/rt-aside.component.scss +19 -94
  10. package/src/lib/components/aside-section/CONTEXT.md +26 -0
  11. package/src/lib/components/autocomplete/CONTEXT.md +58 -0
  12. package/src/lib/components/bar-list/CONTEXT.md +27 -0
  13. package/src/lib/components/bar-list/rt-bar-list.component.scss +5 -2
  14. package/src/lib/components/bottom-sheet/CONTEXT.md +54 -0
  15. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +53 -53
  16. package/src/lib/components/button/CONTEXT.md +53 -0
  17. package/src/lib/components/button/rt-button.directive.scss +20 -0
  18. package/src/lib/components/calendar/CONTEXT.md +41 -0
  19. package/src/lib/components/calendar/rt-calendar.component.scss +96 -99
  20. package/src/lib/components/card/CONTEXT.md +34 -0
  21. package/src/lib/components/card/rt-card.component.scss +5 -2
  22. package/src/lib/components/chat/CONTEXT.md +41 -0
  23. package/src/lib/components/checkbox/CONTEXT.md +37 -0
  24. package/src/lib/components/checkbox/rt-checkbox.component.scss +13 -4
  25. package/src/lib/components/collapsible-text/CONTEXT.md +29 -0
  26. package/src/lib/components/confirm-popover/CONTEXT.md +47 -0
  27. package/src/lib/components/container/CONTEXT.md +42 -0
  28. package/src/lib/components/container/rt-container.component.scss +5 -69
  29. package/src/lib/components/counter/CONTEXT.md +40 -0
  30. package/src/lib/components/counter/rt-counter.component.scss +10 -9
  31. package/src/lib/components/counter-row/CONTEXT.md +24 -0
  32. package/src/lib/components/counter-row/rt-counter-row.component.scss +23 -22
  33. package/src/lib/components/date-picker/CONTEXT.md +41 -0
  34. package/src/lib/components/delta-view/CONTEXT.md +31 -0
  35. package/src/lib/components/detail-list/CONTEXT.md +29 -0
  36. package/src/lib/components/dialog/CONTEXT.md +50 -0
  37. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +20 -9
  38. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -15
  39. package/src/lib/components/dialog/rt-dialog.component.scss +6 -2
  40. package/src/lib/components/download-link/CONTEXT.md +26 -0
  41. package/src/lib/components/download-link/rt-download-link.component.scss +13 -0
  42. package/src/lib/components/empty-state/CONTEXT.md +35 -0
  43. package/src/lib/components/field/CONTEXT.md +72 -0
  44. package/src/lib/components/file-card/CONTEXT.md +28 -0
  45. package/src/lib/components/file-drop/CONTEXT.md +39 -0
  46. package/src/lib/components/file-input/CONTEXT.md +36 -0
  47. package/src/lib/components/file-list/CONTEXT.md +15 -0
  48. package/src/lib/components/filter-control/CONTEXT.md +33 -0
  49. package/src/lib/components/form-control/CONTEXT.md +50 -0
  50. package/src/lib/components/header/CONTEXT.md +36 -0
  51. package/src/lib/components/icon/CONTEXT.md +46 -0
  52. package/src/lib/components/icon/rt-icon.component.scss +3 -5
  53. package/src/lib/components/icon-button/CONTEXT.md +49 -0
  54. package/src/lib/components/icon-button/rt-icon-button.component.scss +14 -1
  55. package/src/lib/components/info-item/CONTEXT.md +30 -0
  56. package/src/lib/components/input/CONTEXT.md +47 -0
  57. package/src/lib/components/input-number/CONTEXT.md +52 -0
  58. package/src/lib/components/live-badge/CONTEXT.md +31 -0
  59. package/src/lib/components/live-badge/rt-live-badge.component.scss +5 -2
  60. package/src/lib/components/logo/CONTEXT.md +42 -0
  61. package/src/lib/components/logo/rt-logo.component.scss +4 -6
  62. package/src/lib/components/menu/CONTEXT.md +65 -0
  63. package/src/lib/components/message/CONTEXT.md +35 -0
  64. package/src/lib/components/message/rt-message.component.scss +5 -2
  65. package/src/lib/components/message-composer/CONTEXT.md +46 -0
  66. package/src/lib/components/money-list/CONTEXT.md +32 -0
  67. package/src/lib/components/multiselect/CONTEXT.md +43 -0
  68. package/src/lib/components/night-grid/CONTEXT.md +31 -0
  69. package/src/lib/components/night-grid/rt-night-grid.component.scss +5 -2
  70. package/src/lib/components/note/CONTEXT.md +27 -0
  71. package/src/lib/components/notifications-bell/CONTEXT.md +29 -0
  72. package/src/lib/components/page-header/CONTEXT.md +33 -0
  73. package/src/lib/components/pagination/CONTEXT.md +43 -0
  74. package/src/lib/components/photo-viewer/CONTEXT.md +30 -0
  75. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +95 -96
  76. package/src/lib/components/popover/CONTEXT.md +54 -0
  77. package/src/lib/components/rich-editor/CONTEXT.md +36 -0
  78. package/src/lib/components/section-nav/CONTEXT.md +27 -0
  79. package/src/lib/components/section-nav/rt-section-nav.component.scss +7 -1
  80. package/src/lib/components/select/CONTEXT.md +54 -0
  81. package/src/lib/components/skeleton/CONTEXT.md +41 -0
  82. package/src/lib/components/skeleton-wrapper/CONTEXT.md +24 -0
  83. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +5 -1
  84. package/src/lib/components/spinner/CONTEXT.md +39 -0
  85. package/src/lib/components/split-button/CONTEXT.md +39 -0
  86. package/src/lib/components/split-button/rt-split-button.component.scss +13 -0
  87. package/src/lib/components/stat-tile/CONTEXT.md +35 -0
  88. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +5 -2
  89. package/src/lib/components/stepper/CONTEXT.md +36 -0
  90. package/src/lib/components/stepper/rt-stepper.component.scss +5 -2
  91. package/src/lib/components/table/CONTEXT.md +53 -0
  92. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +4 -2
  93. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +1 -1
  94. package/src/lib/components/tabs/CONTEXT.md +56 -0
  95. package/src/lib/components/tag/CONTEXT.md +47 -0
  96. package/src/lib/components/tag/rt-tag.component.scss +5 -2
  97. package/src/lib/components/textarea/CONTEXT.md +38 -0
  98. package/src/lib/components/theme-toggle/CONTEXT.md +28 -0
  99. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +5 -1
  100. package/src/lib/components/thread-list/CONTEXT.md +42 -0
  101. package/src/lib/components/timeline/CONTEXT.md +33 -0
  102. package/src/lib/components/timeline/rt-timeline.component.scss +5 -2
  103. package/src/lib/components/toast/CONTEXT.md +53 -0
  104. package/src/lib/components/toggle-button-group/CONTEXT.md +38 -0
  105. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +12 -7
  106. package/src/lib/components/toggle-switch/CONTEXT.md +35 -0
  107. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +13 -4
  108. package/src/lib/components/toolbar/CONTEXT.md +22 -0
  109. package/src/lib/components/tooltip/CONTEXT.md +34 -0
  110. package/src/lib/components/welcome-dialog/CONTEXT.md +20 -0
  111. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +6 -2
  112. package/src/lib/components/workspace/CONTEXT.md +46 -0
  113. package/src/lib/components/workspace-details/CONTEXT.md +42 -0
  114. package/src/styles/_semantic.scss +11 -2
  115. package/styles/tokens.css +26 -1
  116. package/types/rt-tools-ui-kit-v2.d.ts +365 -87
  117. package/rt-tools-ui-kit-v2-0.1.0.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InputSignal, WritableSignal, Renderer2, InjectionToken, Signal, InputSignalWithTransform, EnvironmentProviders, OutputEmitterRef, OnInit, OnDestroy, TemplateRef, ElementRef, AfterViewInit, DestroyRef, AfterContentInit, PipeTransform, ModelSignal } from '@angular/core';
2
+ import { InputSignal, WritableSignal, Renderer2, InjectionToken, Signal, EnvironmentProviders, InputSignalWithTransform, OutputEmitterRef, OnInit, OnDestroy, TemplateRef, ElementRef, AfterViewInit, DestroyRef, AfterContentInit, PipeTransform, ModelSignal } from '@angular/core';
3
3
  import { OverlayRef, ComponentType, ConnectedPosition } from '@angular/cdk/overlay';
4
4
  import { Observable, MonoTypeOperatorFunction } from 'rxjs';
5
5
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
@@ -191,6 +191,262 @@ declare class RtAsideService {
191
191
  */
192
192
  declare const RT_ASIDE_DATA: InjectionToken<unknown>;
193
193
 
194
+ /**
195
+ * Английские подписи кита — умолчание, а не локализация.
196
+ *
197
+ * Кит рисует часть текста сам: кнопки диалогов, тексты ошибок поля, расшифровки
198
+ * иконок для скринридера. Своего языка у него нет и быть не может — его знает
199
+ * приложение и отдаёт функцией-переводчиком (`provideRtKitLabels`). Этот набор
200
+ * стоит под ней умолчанием, чтобы кит без единой настройки не рисовал пустоты:
201
+ * среди ключей много `aria`-подписей, и пустая там означает кнопку без имени
202
+ * для скринридера.
203
+ *
204
+ * Набор задаёт и **перечень ключей**: `RtKitLabelKey` выводится отсюда, поэтому
205
+ * опечатка в ключе не доживает до рантайма.
206
+ *
207
+ * Места вида `{{name}}` заполняются параметрами — их принимает `rtKitLabel()`.
208
+ */
209
+ declare const RT_KIT_LABELS_EN: {
210
+ readonly bottomSheetClose: "Close";
211
+ readonly chatAttachAria: "Attach a file";
212
+ readonly chatAttachTooltip: "Attach a file";
213
+ readonly chatAttachmentFallback: "Attachment";
214
+ readonly chatCollapse: "Collapse chat";
215
+ readonly chatComposerAria: "Message input";
216
+ readonly chatDeleteAria: "Delete message";
217
+ readonly chatDeleteTooltip: "Delete";
218
+ readonly chatDropOverlay: "Drop the files to attach them to your message";
219
+ readonly chatEmptyHint: "Chat is not available yet.";
220
+ readonly chatEmptyThread: "No messages yet.";
221
+ readonly chatExpand: "Expand chat to full screen";
222
+ readonly chatMessageDeleted: "Message deleted";
223
+ readonly chatPlaceholder: "Type a message";
224
+ readonly chatRefreshAria: "Refresh messages";
225
+ readonly chatRefreshTooltip: "Refresh messages";
226
+ readonly chatRetryAria: "Send again";
227
+ readonly chatRetryTooltip: "Retry";
228
+ readonly chatSendAria: "Send message";
229
+ readonly chatSendLabel: "Send";
230
+ readonly chatStatusFailed: "Not sent";
231
+ readonly chatStatusRead: "Read";
232
+ readonly chatStatusSending: "Sending";
233
+ readonly chatStatusSent: "Delivered";
234
+ readonly chatTitle: "Chat";
235
+ readonly counterDecrease: "Decrease";
236
+ readonly counterIncrease: "Increase";
237
+ readonly fieldErrorEmail: "Invalid email";
238
+ readonly fieldErrorMax: "Value is too large";
239
+ readonly fieldErrorMaxLength: "Value is too long";
240
+ readonly fieldErrorMin: "Value is too small";
241
+ readonly fieldErrorMinLength: "Value is too short";
242
+ readonly fieldErrorPattern: "Invalid format";
243
+ readonly fieldErrorRequired: "Required field";
244
+ readonly photoViewerClose: "Close viewer";
245
+ readonly photoViewerNext: "Next photo";
246
+ readonly photoViewerPrev: "Previous photo";
247
+ readonly themeToggleLabel: "Switch theme";
248
+ readonly uiActions: "Actions";
249
+ readonly uiAuditEmptyHint: "Deal events will appear here — stage changes and other actions.";
250
+ readonly uiBack: "Back";
251
+ readonly uiBackToList: "Back to list";
252
+ readonly uiBaseline: "was {{value}}";
253
+ readonly uiCancel: "Cancel";
254
+ readonly uiChangeAgent: "Change agent";
255
+ readonly uiChooseFile: "Choose file";
256
+ readonly uiClear: "Clear";
257
+ readonly uiClose: "Close";
258
+ readonly uiCollapse: "Collapse";
259
+ readonly uiColumnLocked: "Column is pinned";
260
+ readonly uiColumnSettings: "Column settings";
261
+ readonly uiColumnSettingsTitle: "Configure columns";
262
+ readonly uiCommentOptional: "Comment (optional)";
263
+ readonly uiConfirm: "Confirm";
264
+ readonly uiConfirmAction: "Confirm action";
265
+ readonly uiContinue: "Continue";
266
+ readonly uiCopied: "Copied";
267
+ readonly uiCopy: "Copy";
268
+ readonly uiCurrentStage: "Current stage";
269
+ readonly uiDetails: "Details";
270
+ readonly uiDownload: "Download";
271
+ readonly uiDownloadFile: "Download: {{name}}";
272
+ readonly uiDragColumn: "Drag column";
273
+ readonly uiFileDropOverlay: "Drop the files to attach them";
274
+ readonly uiFilters: "Filters";
275
+ readonly uiForward: "Forward";
276
+ readonly uiHide: "Hide";
277
+ readonly uiHideColumn: "Hide column";
278
+ readonly uiHidePassword: "Hide password";
279
+ readonly uiHint: "Hint";
280
+ readonly uiHistory: "History";
281
+ readonly uiInviteUser: "Invite user";
282
+ readonly uiItemsPerPage: "Items per page";
283
+ readonly uiLiveOnSite: "On the site now";
284
+ readonly uiLoadMore: "Load more";
285
+ readonly uiMainNav: "Main navigation";
286
+ readonly uiMore: "More";
287
+ readonly uiMoreActions: "More actions";
288
+ readonly uiMoveStage: "Move";
289
+ readonly uiMoveStageAria: "Move stage";
290
+ readonly uiNavMenu: "Navigation menu";
291
+ readonly uiNavUnread: "Unread";
292
+ readonly uiNextPage: "Next page";
293
+ readonly uiNightGridAria: "Occupancy grid";
294
+ readonly uiNoData: "No data yet";
295
+ readonly uiNoOptions: "No options";
296
+ readonly uiNoRows: "No data";
297
+ readonly uiNothingFound: "Nothing found";
298
+ readonly uiNotifications: "Notifications";
299
+ readonly uiPageOf: "Page {{page}} of {{last}}";
300
+ readonly uiPagination: "Pagination";
301
+ readonly uiPerPage: "Per page:";
302
+ readonly uiPickAgent: "Select an agent";
303
+ readonly uiPickAnotherAgent: "Select a different agent";
304
+ readonly uiPickTransition: "Select a transition";
305
+ readonly uiPrevPage: "Previous page";
306
+ readonly uiProfile: "Profile";
307
+ readonly uiRangeEmpty: "0 of 0";
308
+ readonly uiRangeOf: "{{from}}–{{to}} of {{total}}";
309
+ readonly uiRemove: "Delete";
310
+ readonly uiRename: "Rename";
311
+ readonly uiReplace: "Replace";
312
+ readonly uiReplaceAgentTitle: "Replace agent";
313
+ readonly uiResetDefaults: "Reset to defaults";
314
+ readonly uiResizeDetails: "Resize details pane";
315
+ readonly uiResizeList: "Resize list pane";
316
+ readonly uiRevert: "Revert";
317
+ readonly uiSave: "Save";
318
+ readonly uiSaveNewAgent: "Save the new agent";
319
+ readonly uiSearch: "Search";
320
+ readonly uiSectionInProgress: "{{label}} — section under development";
321
+ readonly uiSelectValues: "Select values";
322
+ readonly uiShow: "Show";
323
+ readonly uiShowColumn: "Show column";
324
+ readonly uiShowDetails: "Show details";
325
+ readonly uiShowPassword: "Show password";
326
+ readonly uiStageNoteHint: "Internal note — the client will not see it.";
327
+ readonly uiStageTransition: "Stage transition";
328
+ readonly uiSubscribeNotifications: "Subscribe to notifications";
329
+ readonly uiTabInvalid: "This tab contains errors";
330
+ readonly uiTargetStage: "Target stage";
331
+ readonly uiTargetStageRequired: "Select a target stage.";
332
+ readonly uiThreadListEmptyHint: "New threads will appear here.";
333
+ readonly uiToList: "To list";
334
+ readonly uiUnsavedDiscard: "Close without saving";
335
+ readonly uiUnsavedMessage: "The panel has edits that have not been saved yet. Choose what to do with them.";
336
+ readonly uiUnsavedSave: "Save and close";
337
+ readonly uiUnsavedStay: "Stay";
338
+ readonly uiUnsavedTitle: "Unsaved changes";
339
+ readonly uiWelcomeAria: "Welcome message for a new user";
340
+ readonly uiYearOverYear: "YoY";
341
+ };
342
+
343
+ /**
344
+ * Ключ подписи кита. Перечень выводится из английского набора — того самого,
345
+ * что стоит умолчанием, — поэтому ключа, которого кит не рисует, не существует,
346
+ * а опечатка не доживает до рантайма.
347
+ */
348
+ type RtKitLabelKey = keyof typeof RT_KIT_LABELS_EN;
349
+ /**
350
+ * Подстановки в места вида `{{name}}`. Их просят пять подписей: строка
351
+ * сравнения, имя скачиваемого файла, «страница N из M», диапазон записей и
352
+ * подпись раздела в разработке.
353
+ */
354
+ type RtKitLabelParams = Readonly<Record<string, string | number>>;
355
+ /**
356
+ * Чем кит получает подпись. Даёт её приложение — оно одно знает и язык
357
+ * продукта, и его формулировки.
358
+ *
359
+ * Возвращать функция обязана готовую строку: подстановки уже сделаны, ключа на
360
+ * экране не бывает. Вернувшая пустое считается не давшей ответа — кит возьмёт
361
+ * английское умолчание, потому что пустая `aria`-подпись означает кнопку без
362
+ * имени для скринридера, а это хуже чужого языка.
363
+ */
364
+ type RtKitTranslator = (key: RtKitLabelKey, params?: RtKitLabelParams) => string;
365
+ /**
366
+ * Все подписи разом, ключ → готовая строка.
367
+ *
368
+ * Компонент читает карту целиком (`t().uiClose`), а не ключ по одному: одно поле
369
+ * на компонент вместо десятка, и при смене языка перерисовывается всё сразу.
370
+ * Подписи с подстановками в карту не входят — им нужны параметры, и они берутся
371
+ * через `rtKitLabel()`.
372
+ */
373
+ type RtKitLabelMap = Readonly<Record<RtKitLabelKey, string>>;
374
+
375
+ /**
376
+ * Функция, которой кит получает подписи. Её отдаёт приложение —
377
+ * `provideRtKitLabels()`.
378
+ *
379
+ * Токен объявлен **сигналом**, а не просто функцией: приложение, меняющее язык
380
+ * на ходу, кладёт в него новую функцию, и всё, что от неё считано,
381
+ * пересчитывается само.
382
+ */
383
+ declare const RT_KIT_TRANSLATOR: InjectionToken<Signal<RtKitTranslator>>;
384
+ /**
385
+ * Активная локаль. Ею кит форматирует даты — больше ни для чего она ему не
386
+ * нужна.
387
+ *
388
+ * Данные локали для `DatePipe` регистрирует приложение: без них пайп падает
389
+ * `Missing locale data`, и кит за это не отвечает.
390
+ */
391
+ declare const RT_KIT_LOCALE: InjectionToken<Signal<string>>;
392
+ /**
393
+ * Все подписи кита разом, ключ → готовая строка.
394
+ *
395
+ * Этим пользуются компоненты: `t().uiClose` вместо ключа по одному. Карта
396
+ * строится один раз на приложение (`providedIn: 'root'`) и пересчитывается,
397
+ * только когда приложение сменило функцию-переводчик.
398
+ *
399
+ * Подпись, которой переводчик не дал (вернул пустое или упал), берётся
400
+ * английской: пустая `aria`-подпись означает кнопку без имени для скринридера.
401
+ */
402
+ declare const RT_KIT_LABELS: InjectionToken<Signal<RtKitLabelMap>>;
403
+ /**
404
+ * Одна подпись, а не вся карта.
405
+ *
406
+ * Карте не годятся две вещи: подпись с подстановками (параметры приходят из
407
+ * состояния компонента) и подпись, ключ которой выбирается на ходу — кнопка
408
+ * «свернуть ↔ развернуть», текст ошибки поля по сработавшему валидатору. Обе
409
+ * берутся отсюда. Зовётся в поле класса, в инъекционном контексте.
410
+ *
411
+ * ```typescript
412
+ * readonly #range: Signal<string> = rtKitLabel('uiRangeOf', this.#rangeParams);
413
+ * readonly #expand: Signal<string> = rtKitLabel(computed(() => (this.expanded() ? 'chatCollapse' : 'chatExpand')));
414
+ * ```
415
+ *
416
+ * @param key Ключ подписи — значением или сигналом, если он меняется. Пустой
417
+ * ключ даёт пустую строку: у поля без сработавшего валидатора подписи нет, и
418
+ * умолчание тут показало бы ошибку там, где её не случилось.
419
+ * @param params Подстановки — значением или сигналом, если они меняются.
420
+ */
421
+ declare function rtKitLabel(key: RtKitLabelKey | '' | Signal<RtKitLabelKey | ''>, params?: RtKitLabelParams | Signal<RtKitLabelParams>): Signal<string>;
422
+ /**
423
+ * Отдаёт киту подписи приложения.
424
+ *
425
+ * Без него кит работает на английском умолчании — оно вшито и покрывает все
426
+ * ключи, поэтому пустой кнопки на экране не бывает никогда.
427
+ *
428
+ * ```typescript
429
+ * export const appConfig: ApplicationConfig = {
430
+ * providers: [
431
+ * provideRtKitLabels({
432
+ * translator: computed(() => (key, params) => transloco.translate(`rtKit.${key}`, params)),
433
+ * locale: toSignal(transloco.langChanges$, { initialValue: transloco.getActiveLang() }),
434
+ * }),
435
+ * ],
436
+ * };
437
+ * ```
438
+ *
439
+ * Способ доставки — дело приложения: Transloco, `$localize`, собственный
440
+ * словарь. Кит знает только ключи и то, что на них отвечают строкой.
441
+ *
442
+ * @param source Функция-переводчик и активная локаль. Локаль необязательна —
443
+ * без неё кит форматирует даты по-английски.
444
+ */
445
+ declare function provideRtKitLabels(source: {
446
+ readonly translator: Signal<RtKitTranslator>;
447
+ readonly locale?: Signal<string>;
448
+ }): EnvironmentProviders;
449
+
194
450
  /**
195
451
  * Имена иконок rt-icon. Набор лежит в `assets/icons` пакета, откуда сборка
196
452
  * приложения кладёт его туда, куда указывает `provideRtIcons()`. Большинство
@@ -216,7 +472,7 @@ declare namespace IRtIcon {
216
472
  /** Допустимые имена иконок. Литеральный union из {@link iconsName}. */
217
473
  type Name = (typeof iconsName)[number];
218
474
  /** Доступные размеры. Маппинг на пиксели — в `rt-icon.component.ts`. */
219
- type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
475
+ type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
220
476
  /** Семантические цвета. Маппинг на CSS-переменные `--rt-icon-color-*` — в `rt-icon.component.ts`. */
221
477
  type Color = 'current' | 'muted' | 'info' | 'success' | 'warning' | 'danger' | 'inverse';
222
478
  }
@@ -395,6 +651,7 @@ declare class RtAsideHeaderComponent {
395
651
  #private;
396
652
  /** Текст заголовка — рендерится в `<h2>`. Null/пустая строка вместе с
397
653
  * `[loading]=true` показывают skeleton вместо title. */
654
+ protected readonly t: Signal<RtKitLabelMap>;
398
655
  readonly title: InputSignal<string | null>;
399
656
  /**
400
657
  * Мелкий приглушённый надзаголовок НАД основным title (контекст действия:
@@ -490,7 +747,8 @@ declare namespace IRtInput {
490
747
  * - self-injected `NgControl` + ручная привязка `valueAccessor` (без
491
748
  * `NG_VALUE_ACCESSOR` provider — иначе NG0200 cycle при self-reference),
492
749
  * что даёт доступ к `control.invalid/touched` для авто-подсветки ошибки;
493
- * - сигнал значения `value`, состояния `isDisabled`/`isInvalid`;
750
+ * - сигнал значения `value`, состояния `isDisabled`/`isInvalid` (отключение
751
+ * складывается из входа `disabled` и слова формы — см. `isDisabled`);
494
752
  * - общие инпуты `size`/`disabled`/`controlId`/`ariaLabel`/`clearable`;
495
753
  * - оркестрацию очистки (`clear`) через абстрактные хуки конкретного поля.
496
754
  *
@@ -501,7 +759,14 @@ declare namespace IRtInput {
501
759
  declare abstract class RtFormControlBase<TValue> implements ControlValueAccessor, OnInit {
502
760
  #private;
503
761
  protected readonly value: WritableSignal<TValue>;
504
- protected readonly isDisabled: WritableSignal<boolean>;
762
+ /**
763
+ * Отключение: вход и форма — два независимых источника, поле отключено,
764
+ * если так сказал любой из них. Сводить их в один signal нельзя: форма
765
+ * зовёт `setDisabledState` при связывании контрола, то есть раньше, чем
766
+ * поле впервые обновит своё вью, и мирроринг входа затирал бы её слово —
767
+ * контрол, созданный отключённым, оказывался бы редактируемым.
768
+ */
769
+ protected readonly isDisabled: Signal<boolean>;
505
770
  protected readonly isInvalid: WritableSignal<boolean>;
506
771
  /** Видимость кнопки очистки: включена, есть значение, поле активно. */
507
772
  protected readonly showClearButton: Signal<boolean>;
@@ -656,6 +921,7 @@ declare namespace IRtAutocomplete {
656
921
  */
657
922
  declare class RtAutocompleteComponent<TItem> extends RtFormControlBase<TItem | null> {
658
923
  #private;
924
+ protected readonly t: Signal<RtKitLabelMap>;
659
925
  protected readonly panelId: string;
660
926
  protected readonly popover: Signal<RtPopoverDirective>;
661
927
  protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
@@ -730,6 +996,7 @@ declare class RtBarListComponent {
730
996
 
731
997
  declare class RtBottomSheetComponent {
732
998
  #private;
999
+ protected readonly t: Signal<RtKitLabelMap>;
733
1000
  protected readonly dragDeltaY: WritableSignal<number>;
734
1001
  protected readonly dragging: WritableSignal<boolean>;
735
1002
  readonly open: InputSignal<boolean>;
@@ -751,8 +1018,8 @@ declare namespace IButton {
751
1018
  type Theme = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';
752
1019
  /** Внешний вид: filled (заливка), outlined (контур), text (без фона). */
753
1020
  type Appearance = 'filled' | 'outlined' | 'text';
754
- /** Размер по высоте: sm — 30px, md — 40px (default), lg — 50px. */
755
- type Size = 'sm' | 'md' | 'lg';
1021
+ /** Размер по высоте: sm — 30px, md — 40px (default), lg — 50px, xl — 60px, 2xl — 70px. */
1022
+ type Size = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
756
1023
  /** Положение иконки относительно лейбла. */
757
1024
  type IconPos = 'left' | 'right';
758
1025
  }
@@ -1139,13 +1406,14 @@ declare namespace IRtChat {
1139
1406
  declare class RtChatComponent {
1140
1407
  #private;
1141
1408
  /**
1142
- * Дата сообщения форматируется по активному языку Transloco, а не по
1409
+ * Дата сообщения форматируется по активной локали приложения, а не по
1143
1410
  * `LOCALE_ID`: тот вычисляется на подъёме приложения и там, где язык
1144
1411
  * переключают на ходу, оставил бы часы в прежнем формате до перезагрузки.
1145
1412
  *
1146
1413
  * Данные локали для `DatePipe` регистрирует приложение: без них пайп падает
1147
1414
  * `Missing locale data`, и кит за это не отвечает.
1148
1415
  */
1416
+ protected readonly t: Signal<RtKitLabelMap>;
1149
1417
  protected readonly locale: Signal<string>;
1150
1418
  /**
1151
1419
  * Скролл-контейнер треда — для автопрокрутки к последнему сообщению.
@@ -1375,10 +1643,12 @@ declare function toRtMessage<TMessage extends IRtMappableMessage>(message: TMess
1375
1643
  * `useExisting: forwardRef(...)` — `useClass` на self-reference вызывает
1376
1644
  * NG0200 cycle при boot'е.
1377
1645
  *
1378
- * Source-of-truth для disabled — внутренний `isDisabled` signal: и signal-input
1379
- * `disabled`, и CVA `setDisabledState` пишут в один и тот же signal (input —
1380
- * через `effect()`, CVA — напрямую), так `[disabled]="true"` и
1381
- * `FormControl.disable()` ведут себя одинаково.
1646
+ * Отключение складывается из двух независимых источников: входа `disabled` и
1647
+ * слова формы (CVA `setDisabledState`). Отключено, если так сказал любой из
1648
+ * них. Сводить их в один signal нельзя: форма зовёт `setDisabledState` при
1649
+ * связывании контрола, то есть раньше, чем чекбокс впервые обновит своё вью,
1650
+ * и мирроринг входа затирал бы её слово — контрол, созданный отключённым,
1651
+ * оказывался бы кликабельным.
1382
1652
  *
1383
1653
  * `indeterminate` — чисто визуальное mixed-состояние; клик по нему разрешается
1384
1654
  * в `true` (стандартное поведение tri-state чекбокса).
@@ -1388,12 +1658,11 @@ declare function toRtMessage<TMessage extends IRtMappableMessage>(message: TMess
1388
1658
  declare class RtCheckboxComponent implements ControlValueAccessor {
1389
1659
  #private;
1390
1660
  protected readonly isChecked: WritableSignal<boolean>;
1391
- protected readonly isDisabled: WritableSignal<boolean>;
1661
+ protected readonly isDisabled: Signal<boolean>;
1392
1662
  readonly inputId: InputSignal<string | null>;
1393
1663
  readonly ariaLabel: InputSignal<string | null>;
1394
1664
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
1395
1665
  readonly indeterminate: InputSignalWithTransform<boolean, BooleanInput>;
1396
- constructor();
1397
1666
  writeValue(value: boolean | null | undefined): void;
1398
1667
  registerOnChange(fn: (value: boolean) => void): void;
1399
1668
  registerOnTouched(fn: () => void): void;
@@ -1405,6 +1674,7 @@ declare class RtCheckboxComponent implements ControlValueAccessor {
1405
1674
 
1406
1675
  declare class RtCollapsibleTextComponent implements OnDestroy {
1407
1676
  #private;
1677
+ protected readonly t: Signal<RtKitLabelMap>;
1408
1678
  protected readonly textRef: Signal<ElementRef<HTMLElement> | undefined>;
1409
1679
  protected readonly expanded: WritableSignal<boolean>;
1410
1680
  protected readonly overflowing: WritableSignal<boolean>;
@@ -1859,9 +2129,12 @@ declare abstract class RtRouteAsideComponent<T> implements OnInit {
1859
2129
  protected onResolved(): void;
1860
2130
  protected closeOutlets(): Record<string, Array<string> | null>;
1861
2131
  /**
1862
- * `successKey` — ключ словаря для тоста об успехе. Ключ принадлежит
1863
- * конкретной мутации, а не панели: у снятия промокода и опроса подписки свой
1864
- * текст успеха, и один ключ на панель показал бы не тот.
2132
+ * `successText` — готовый текст тоста об успехе. Он принадлежит конкретной
2133
+ * мутации, а не панели: у снятия промокода и опроса подписки свой текст
2134
+ * успеха, и один на панель показал бы не тот.
2135
+ *
2136
+ * Именно текст, а не ключ словаря: ключ принадлежал бы словарю приложения, а
2137
+ * кит чужих словарей не знает — переводит приложение и передаёт готовое.
1865
2138
  *
1866
2139
  * `errorText` принимается и функцией: причина отказа известна только после
1867
2140
  * него — стор кладёт её в свой сигнал, а панель без стора выводит из ответа
@@ -1869,7 +2142,7 @@ declare abstract class RtRouteAsideComponent<T> implements OnInit {
1869
2142
  */
1870
2143
  protected runMutation(op$: Observable<unknown>, opts?: {
1871
2144
  onSuccess?: () => void;
1872
- successKey?: string;
2145
+ successText?: string;
1873
2146
  errorText?: string | ((error: unknown) => string);
1874
2147
  closeOnSuccess?: boolean;
1875
2148
  refreshOnSuccess?: boolean;
@@ -1916,19 +2189,22 @@ declare const rtAsideUnsavedGuard: CanDeactivateFn<IRtAsideDeactivate | null>;
1916
2189
  * `useExisting: forwardRef(...)` — `useClass` на self-reference вызывает
1917
2190
  * NG0200 cycle при boot'е.
1918
2191
  *
1919
- * Source-of-truth для disabled — внутренний `isDisabled` signal: и signal-input
1920
- * `disabled`, и CVA `setDisabledState` пишут в него, поэтому `[disabled]="true"`
1921
- * и `FormControl.disable()` ведут себя одинаково.
2192
+ * Отключение складывается из двух независимых источников: входа `disabled` и
2193
+ * слова формы (CVA `setDisabledState`). Отключено, если так сказал любой из
2194
+ * них. Сводить их в один signal нельзя: форма зовёт `setDisabledState` при
2195
+ * связывании контрола, то есть раньше, чем счётчик впервые обновит своё вью,
2196
+ * и мирроринг входа затирал бы её слово — контрол, созданный отключённым,
2197
+ * оказывался бы рабочим.
1922
2198
  *
1923
2199
  * Хост объявлен группой с `aria-label`, значение помечено `aria-live`, так что
1924
2200
  * скринридер называет назначение счётчика и проговаривает новое число.
1925
2201
  *
1926
- * ViewEncapsulation — default (Emulated), стили обёрнуты в `:host { ... }`.
2202
+ * ViewEncapsulation.None — стили таргетируют имя элемента и BEM-класс блока.
1927
2203
  */
1928
2204
  declare class RtCounterComponent implements ControlValueAccessor {
1929
2205
  #private;
1930
2206
  protected readonly value: WritableSignal<number>;
1931
- protected readonly isDisabled: WritableSignal<boolean>;
2207
+ protected readonly isDisabled: Signal<boolean>;
1932
2208
  /** Своя подпись важнее умолчания: форма знает, что именно считает */
1933
2209
  protected readonly decreaseAriaLabel: Signal<string>;
1934
2210
  protected readonly increaseAriaLabel: Signal<string>;
@@ -1944,7 +2220,6 @@ declare class RtCounterComponent implements ControlValueAccessor {
1944
2220
  readonly decreaseLabel: InputSignal<string>;
1945
2221
  readonly increaseLabel: InputSignal<string>;
1946
2222
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
1947
- constructor();
1948
2223
  writeValue(value: number | null | undefined): void;
1949
2224
  registerOnChange(fn: (value: number) => void): void;
1950
2225
  registerOnTouched(fn: () => void): void;
@@ -1965,8 +2240,8 @@ declare class RtCounterComponent implements ControlValueAccessor {
1965
2240
  * берёт компонент, у которого есть доступ к текущей локали; перекрываются
1966
2241
  * поштучно через input'ы `decreaseLabel` / `increaseLabel`.
1967
2242
  */
1968
- declare const RT_COUNTER_DECREASE_KEY: string;
1969
- declare const RT_COUNTER_INCREASE_KEY: string;
2243
+ declare const RT_COUNTER_DECREASE_KEY: RtKitLabelKey;
2244
+ declare const RT_COUNTER_INCREASE_KEY: RtKitLabelKey;
1970
2245
 
1971
2246
  /**
1972
2247
  * Строка списка со счётчиком: подпись с пояснением слева, контрол справа,
@@ -1976,7 +2251,7 @@ declare const RT_COUNTER_INCREASE_KEY: string;
1976
2251
  * раскладку, и её не приходится расширять каждый раз, когда у `rt-counter`
1977
2252
  * появляется новый input.
1978
2253
  *
1979
- * ViewEncapsulation — default (Emulated), стили обёрнуты в `:host { ... }`.
2254
+ * ViewEncapsulation.None — стили таргетируют имя элемента и BEM-класс блока.
1980
2255
  */
1981
2256
  declare class RtCounterRowComponent {
1982
2257
  readonly label: InputSignal<string>;
@@ -2004,6 +2279,7 @@ declare namespace IRtDatePicker {
2004
2279
  */
2005
2280
  declare class RtDatePickerComponent extends RtFormControlBase<string> {
2006
2281
  #private;
2282
+ protected readonly t: Signal<RtKitLabelMap>;
2007
2283
  protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
2008
2284
  protected readonly hasValue: Signal<boolean>;
2009
2285
  readonly displayText: Signal<string>;
@@ -2251,6 +2527,7 @@ declare const RT_DIALOG_DATA: InjectionToken<unknown>;
2251
2527
  declare class RtDialogHeaderComponent {
2252
2528
  #private;
2253
2529
  /** Текст заголовка — рендерится в `<h2>`. */
2530
+ protected readonly t: Signal<RtKitLabelMap>;
2254
2531
  readonly title: InputSignal<string>;
2255
2532
  /** Показывать кнопку закрытия в углу заголовка. Дефолт `true`. */
2256
2533
  readonly closable: InputSignalWithTransform<boolean, BooleanInput>;
@@ -2280,6 +2557,11 @@ declare class RtDialogFooterComponent {
2280
2557
  }
2281
2558
 
2282
2559
  declare class RtDownloadLinkComponent {
2560
+ /**
2561
+ * Подпись для скринридера: имя файла подставляется в неё, поэтому карты
2562
+ * подписей ей мало — параметр приходит из входа.
2563
+ */
2564
+ protected readonly downloadAriaLabel: Signal<string>;
2283
2565
  readonly label: InputSignal<string>;
2284
2566
  readonly downloadClick: OutputEmitterRef<void>;
2285
2567
  protected onClick(): void;
@@ -2329,7 +2611,7 @@ declare namespace IRtField {
2329
2611
  * страницы ещё неизвестен, и готовый текст остался бы на языке по умолчанию
2330
2612
  * даже под переведённой подписью поля. Переводит сам компонент поля.
2331
2613
  */
2332
- declare const RT_FIELD_DEFAULT_ERROR_KEYS: IRtField.ErrorMessages;
2614
+ declare const RT_FIELD_DEFAULT_ERROR_KEYS: Readonly<Record<string, RtKitLabelKey>>;
2333
2615
  /** Текст-плейсхолдер read-only поля без значения. */
2334
2616
  declare const RT_FIELD_EMPTY_VALUE: string;
2335
2617
 
@@ -2349,6 +2631,7 @@ declare const RT_FIELD_EMPTY_VALUE: string;
2349
2631
  */
2350
2632
  declare class RtFieldComponent implements AfterContentInit {
2351
2633
  #private;
2634
+ protected readonly t: Signal<RtKitLabelMap>;
2352
2635
  protected readonly projectedControl: Signal<RtFormControlBase<unknown> | undefined>;
2353
2636
  protected readonly projectedHint: Signal<RtFieldHintDirective | undefined>;
2354
2637
  /** Итоговый id: явный controlId контрола важнее авто-id. */
@@ -2382,7 +2665,7 @@ declare namespace IRtIconButton {
2382
2665
  /** Семантическая палитра кнопки. */
2383
2666
  type Variant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success' | 'warning';
2384
2667
  /** Размер квадрата кнопки. Маппинг на пиксели — в SCSS (`--rt-icon-button-size`). */
2385
- type Size = 'sm' | 'md' | 'lg';
2668
+ type Size = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
2386
2669
  /** Форма границы кнопки. */
2387
2670
  type Shape = 'circle' | 'square';
2388
2671
  /** HTML-тип нативного `<button>`. */
@@ -2427,6 +2710,7 @@ declare namespace IRtFileCard {
2427
2710
  */
2428
2711
  declare class RtFileCardComponent {
2429
2712
  /** Имя цветной иконки типа файла по расширению. */
2713
+ protected readonly t: Signal<RtKitLabelMap>;
2430
2714
  protected readonly iconName: Signal<IRtIcon.Name>;
2431
2715
  /** Заголовок карточки, выведенный из имени файла (без расширения, разделители → пробелы). */
2432
2716
  protected readonly title: Signal<string>;
@@ -2713,6 +2997,7 @@ declare class RtFilterControlComponent<T = string> {
2713
2997
  * страницы в dark).
2714
2998
  */
2715
2999
  declare class RtHeaderComponent {
3000
+ protected readonly t: Signal<RtKitLabelMap>;
2716
3001
  readonly canGoBack: InputSignal<boolean>;
2717
3002
  /** Показывать action-иконку «Пригласить пользователя» слева от колокола. */
2718
3003
  readonly showInvite: InputSignalWithTransform<boolean, boolean | string>;
@@ -2825,6 +3110,7 @@ declare class RtInfoItemComponent {
2825
3110
  * Все размеры/цвета — через `--rt-input-*` semantic-токены.
2826
3111
  */
2827
3112
  declare class RtInputComponent extends RtFormControlBase<string> {
3113
+ protected readonly t: Signal<RtKitLabelMap>;
2828
3114
  protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
2829
3115
  protected readonly isPasswordVisible: WritableSignal<boolean>;
2830
3116
  protected readonly hasValue: Signal<boolean>;
@@ -2872,6 +3158,7 @@ declare class RtInputComponent extends RtFormControlBase<string> {
2872
3158
  */
2873
3159
  declare class RtInputNumberComponent extends RtFormControlBase<number | null> {
2874
3160
  #private;
3161
+ protected readonly t: Signal<RtKitLabelMap>;
2875
3162
  protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
2876
3163
  protected readonly displayValue: WritableSignal<string>;
2877
3164
  protected readonly hasValue: Signal<boolean>;
@@ -3178,6 +3465,7 @@ declare class RtMessageComponent {
3178
3465
  * передайте пустую строку как `[icon]` — она будет falsy и не «победит» default.
3179
3466
  * Полное отключение делается через severity `secondary` / `neutral`.
3180
3467
  */
3468
+ protected readonly t: Signal<RtKitLabelMap>;
3181
3469
  protected readonly effectiveIcon: Signal<IRtIcon.Name | null>;
3182
3470
  /** Семантическая палитра. По умолчанию `info` (синий info-banner). */
3183
3471
  readonly severity: InputSignal<IRtTag.Severity>;
@@ -3209,6 +3497,7 @@ interface IComposerFormShape {
3209
3497
  */
3210
3498
  declare class RtMessageComposerComponent {
3211
3499
  #private;
3500
+ protected readonly t: Signal<RtKitLabelMap>;
3212
3501
  protected readonly placeholderText: Signal<string>;
3213
3502
  protected readonly fileInput: Signal<ElementRef<HTMLInputElement> | undefined>;
3214
3503
  protected readonly form: FormGroup<IComposerFormShape>;
@@ -3294,6 +3583,7 @@ declare class RtMoneyRowComponent {
3294
3583
  */
3295
3584
  declare class RtMultiselectComponent<TValue> extends RtFormControlBase<ReadonlyArray<TValue>> {
3296
3585
  #private;
3586
+ protected readonly t: Signal<RtKitLabelMap>;
3297
3587
  protected readonly panelId: string;
3298
3588
  protected readonly placeholderText: Signal<string>;
3299
3589
  protected readonly popover: Signal<RtPopoverDirective>;
@@ -3513,6 +3803,7 @@ declare namespace IRtPageHeaderView {
3513
3803
  */
3514
3804
  declare class RtPageHeaderComponent {
3515
3805
  #private;
3806
+ protected readonly t: Signal<RtKitLabelMap>;
3516
3807
  protected readonly mobileNavPopoverRef: Signal<RtPopoverDirective | undefined>;
3517
3808
  /** Форма пункта решается один раз здесь, а не ветвлениями в шаблоне. */
3518
3809
  protected readonly sections: Signal<ReadonlyArray<IRtPageHeaderView.Section>>;
@@ -3542,6 +3833,12 @@ declare class RtPageHeaderComponent {
3542
3833
  readonly itemClick: OutputEmitterRef<string>;
3543
3834
  readonly userClick: OutputEmitterRef<void>;
3544
3835
  constructor();
3836
+ /**
3837
+ * Подпись раздела в разработке. Методом, а не сигналом: имя раздела приходит
3838
+ * элементом цикла, и до него подписи ещё нет. Метод читает сигнал
3839
+ * переводчика, поэтому смена языка перерисовывает разметку и зовёт его заново.
3840
+ */
3841
+ protected sectionInProgressLabel(label: string): string;
3545
3842
  protected onItemClick(id: string): void;
3546
3843
  protected onUserClick(): void;
3547
3844
  /** Аккордеон мобильной панели: тумблер раскрытия раздела по его id. */
@@ -3604,6 +3901,7 @@ declare namespace IRtPhotoViewer {
3604
3901
  */
3605
3902
  declare class RtPhotoViewerComponent {
3606
3903
  #private;
3904
+ protected readonly t: Signal<RtKitLabelMap>;
3607
3905
  protected readonly track: Signal<ElementRef<HTMLElement> | undefined>;
3608
3906
  protected readonly photos: readonly IRtPhotoViewer.Photo[];
3609
3907
  /** Панель правки под дорожкой; там, где кадр только смотрят, её нет */
@@ -3650,7 +3948,14 @@ declare namespace IRtPagination {
3650
3948
  }
3651
3949
 
3652
3950
  declare class RtPaginationComponent {
3951
+ protected readonly t: Signal<RtKitLabelMap>;
3653
3952
  protected readonly perPageSelectOptions: Signal<ReadonlyArray<IRtSelect.Option<number>>>;
3953
+ /**
3954
+ * Диапазон записей и номер страницы — с подстановками, поэтому карте подписей
3955
+ * они не годятся: числа приходят из модели страницы.
3956
+ */
3957
+ protected readonly rangeLabel: Signal<string>;
3958
+ protected readonly pageLabel: Signal<string>;
3654
3959
  protected readonly isFirst: Signal<boolean>;
3655
3960
  protected readonly isLast: Signal<boolean>;
3656
3961
  readonly pageModel: InputSignal<IPageModel>;
@@ -3714,6 +4019,7 @@ type IBooleanInput = boolean | string;
3714
4019
  */
3715
4020
  declare class RtSelectComponent<TValue> extends RtFormControlBase<TValue | null> {
3716
4021
  #private;
4022
+ protected readonly t: Signal<RtKitLabelMap>;
3717
4023
  protected readonly panelId: string;
3718
4024
  protected readonly filterPlaceholderText: Signal<string>;
3719
4025
  protected readonly popover: Signal<RtPopoverDirective>;
@@ -3763,7 +4069,13 @@ declare class RtSkeletonComponent {
3763
4069
  readonly size: InputSignal<IRtSkeletonSize>;
3764
4070
  readonly width: InputSignal<string>;
3765
4071
  readonly height: InputSignal<string>;
3766
- readonly borderRadius: InputSignal<IRtSkeletonRadius>;
4072
+ /**
4073
+ * Скругление. `null` — «не задано»: прямоугольник берёт `xl`, квадрат —
4074
+ * `sm` (пилюля из квадрата не квадрат). Умолчанием нельзя было держать сам
4075
+ * `xl`: тогда явный `xl` неотличим от невыставленного, и квадрату
4076
+ * приходилось прибивать `sm` жёстко — вход у него молча пропадал.
4077
+ */
4078
+ readonly borderRadius: InputSignal<IRtSkeletonRadius | null>;
3767
4079
  readonly animation: InputSignalWithTransform<boolean, BooleanInput>;
3768
4080
  protected get isRectangle(): boolean;
3769
4081
  protected get isCircle(): boolean;
@@ -3796,7 +4108,8 @@ declare class RtSkeletonWrapperComponent {
3796
4108
  readonly height: InputSignal<string>;
3797
4109
  readonly shape: InputSignal<IRtSkeletonShape>;
3798
4110
  readonly size: InputSignal<IRtSkeletonSize>;
3799
- readonly borderRadius: InputSignal<IRtSkeletonRadius>;
4111
+ /** Как у `rt-skeleton`: `null` — «по фигуре», а не «без скругления». */
4112
+ readonly borderRadius: InputSignal<IRtSkeletonRadius | null>;
3800
4113
  readonly animation: InputSignalWithTransform<boolean, BooleanInput>;
3801
4114
  readonly isLoading: InputSignalWithTransform<boolean, BooleanInput>;
3802
4115
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSkeletonWrapperComponent, never>;
@@ -3953,6 +4266,7 @@ declare class RtStatTileComponent {
3953
4266
  * = null) не рисуется вовсе: «—» рядом с цифрой читается как поломка, а не
3954
4267
  * как «сравнивать не с чем».
3955
4268
  */
4269
+ protected readonly t: Signal<RtKitLabelMap>;
3956
4270
  protected readonly primaryDelta: Signal<IDeltaRow | null>;
3957
4271
  /** Годовое сравнение — отдельным компактным чипом, без слов в строке. */
3958
4272
  protected readonly yearDelta: Signal<IDeltaRow | null>;
@@ -3999,7 +4313,10 @@ declare namespace IRtStepper {
3999
4313
  * скринридером через aria.
4000
4314
  */
4001
4315
  declare class RtStepperComponent {
4316
+ #private;
4002
4317
  protected readonly currentStep: Signal<IRtStepper.Step | null>;
4318
+ /** Номер текущего шага для скринридера: `0`, когда шагов нет вовсе. */
4319
+ protected readonly currentStepNumber: Signal<number>;
4003
4320
  /**
4004
4321
  * Доля заполненной полосы от 0 до 100. На один шаг и меньше — 0%, иначе
4005
4322
  * `idx / (total - 1)`. Без clamp в шаблоне получаем переполнение если
@@ -4533,6 +4850,7 @@ declare class RtTableSettingsRegistry {
4533
4850
  declare class RtTableSettingsAsideComponent extends RtRouteAsideComponent<never> {
4534
4851
  #private;
4535
4852
  /** Рабочая копия списка колонок (сидится из регистрации, редактируется телом-панелью). */
4853
+ protected readonly t: Signal<RtKitLabelMap>;
4536
4854
  protected readonly items: WritableSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
4537
4855
  constructor();
4538
4856
  protected resolve(): Observable<never | null>;
@@ -4551,6 +4869,7 @@ declare class RtTableSettingsAsideComponent extends RtRouteAsideComponent<never>
4551
4869
  * для «Сохранить»/«Сбросить» и передаёт сюда через `[(items)]`.
4552
4870
  */
4553
4871
  declare class RtTableSettingsPanelComponent {
4872
+ protected readonly t: Signal<RtKitLabelMap>;
4554
4873
  readonly items: ModelSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
4555
4874
  /** Reorder через drag-drop. Locked-строки drag-disabled; индексы — по всему списку. */
4556
4875
  protected onDrop(event: CdkDragDrop<ReadonlyArray<IRtTable.ColumnSettingItem>>): void;
@@ -4703,6 +5022,7 @@ declare class RtTabsComponent {
4703
5022
  */
4704
5023
  declare class RtTagComponent {
4705
5024
  /** Текст pill — обязательный input. */
5025
+ protected readonly t: Signal<RtKitLabelMap>;
4706
5026
  readonly value: InputSignal<string>;
4707
5027
  /** Семантическая палитра. По умолчанию `neutral` (нейтральный серый). */
4708
5028
  readonly severity: InputSignal<IRtTag.Severity>;
@@ -4739,7 +5059,6 @@ type IRtTextareaResize = 'none' | 'vertical';
4739
5059
  */
4740
5060
  declare class RtTextareaComponent extends RtFormControlBase<string> {
4741
5061
  protected readonly fieldEl: Signal<ElementRef<HTMLTextAreaElement> | undefined>;
4742
- protected readonly effectiveDisabled: Signal<boolean>;
4743
5062
  protected readonly hasValue: Signal<boolean>;
4744
5063
  readonly displayText: Signal<string>;
4745
5064
  readonly placeholder: InputSignal<string>;
@@ -4860,6 +5179,7 @@ declare class RtThreadListSearchDirective {
4860
5179
  */
4861
5180
  declare class RtThreadListComponent<TRow extends IRtThreadList.Row> implements OnInit {
4862
5181
  #private;
5182
+ protected readonly t: Signal<RtKitLabelMap>;
4863
5183
  protected readonly searchPlaceholderText: Signal<string>;
4864
5184
  protected readonly emptyTitle: Signal<string>;
4865
5185
  protected readonly skeletonRows: number[];
@@ -5096,6 +5416,7 @@ declare namespace IRtToaster {
5096
5416
 
5097
5417
  declare class RtToastComponent implements AfterViewInit, OnDestroy {
5098
5418
  #private;
5419
+ protected readonly t: Signal<RtKitLabelMap>;
5099
5420
  protected readonly icon: Signal<IRtIcon.Name>;
5100
5421
  readonly toast: InputSignal<IRtToaster.Toast>;
5101
5422
  readonly index: InputSignal<number>;
@@ -5231,22 +5552,24 @@ declare namespace IRtToggleSwitch {
5231
5552
  * `useExisting: forwardRef(...)` — `useClass` на self-reference вызывает
5232
5553
  * NG0200 cycle при boot'е.
5233
5554
  *
5234
- * Source-of-truth для disabled — внутренний `isDisabled` signal. И signal-input
5235
- * `disabled`, и CVA `setDisabledState` пишут в один и тот же signal: input —
5236
- * через `effect()`, CVA — напрямую через метод. Так `[disabled]="true"` и
5237
- * `FormControl.disable()` ведут себя одинаково.
5555
+ * Отключение складывается из двух независимых источников: входа `disabled` и
5556
+ * слова формы (CVA `setDisabledState`). Отключено, если так сказал любой из
5557
+ * них. Сводить их в один signal нельзя: форма зовёт `setDisabledState` при
5558
+ * связывании контрола, то есть раньше, чем переключатель впервые обновит своё
5559
+ * вью, и мирроринг входа затирал бы её слово — контрол, созданный отключённым,
5560
+ * оказывался бы кликабельным.
5238
5561
  *
5239
5562
  * Опциональные иконки `iconOff` / `iconOn` рисуются внутри трека статично:
5240
5563
  * off-иконка в начальной половине, on-иконка в конечной. Бегунок непрозрачен
5241
5564
  * и наезжает на иконку активного состояния, так что видна всегда иконка того
5242
5565
  * состояния, куда переключится контрол.
5243
5566
  *
5244
- * ViewEncapsulation — default (Emulated), стили обёрнуты в `:host { ... }`.
5567
+ * ViewEncapsulation.None — стили таргетируют имя элемента и BEM-класс блока.
5245
5568
  */
5246
5569
  declare class RtToggleSwitchComponent implements ControlValueAccessor {
5247
5570
  #private;
5248
5571
  protected readonly isOn: WritableSignal<boolean>;
5249
- protected readonly isDisabled: WritableSignal<boolean>;
5572
+ protected readonly isDisabled: Signal<boolean>;
5250
5573
  /**
5251
5574
  * BEM-модификаторы для `[rtMod]`. Собираем в .ts, потому что
5252
5575
  * Angular template-parser не поддерживает computed property keys
@@ -5262,7 +5585,6 @@ declare class RtToggleSwitchComponent implements ControlValueAccessor {
5262
5585
  /** Иконка включённого состояния — в конечной половине трека. Пусто — без иконки. */
5263
5586
  readonly iconOn: InputSignal<IRtIcon.Name | null>;
5264
5587
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
5265
- constructor();
5266
5588
  writeValue(value: boolean | null | undefined): void;
5267
5589
  registerOnChange(fn: (value: boolean) => void): void;
5268
5590
  registerOnTouched(fn: () => void): void;
@@ -5366,6 +5688,7 @@ declare namespace IRtWelcomeDialog {
5366
5688
  */
5367
5689
  declare class RtWelcomeDialogComponent {
5368
5690
  #private;
5691
+ protected readonly t: Signal<RtKitLabelMap>;
5369
5692
  protected readonly title: string;
5370
5693
  protected readonly paragraphs: string[];
5371
5694
  /** Своя подпись важнее умолчания: роль знает, куда ведёт кнопка */
@@ -5421,6 +5744,7 @@ declare class RtWorkspaceAsideDirective {
5421
5744
 
5422
5745
  declare class RtWorkspaceComponent implements IRtWorkspace.PanelApi {
5423
5746
  #private;
5747
+ protected readonly t: Signal<RtKitLabelMap>;
5424
5748
  protected readonly listSlot: Signal<RtWorkspaceListDirective | undefined>;
5425
5749
  protected readonly centerSlot: Signal<RtWorkspaceCenterDirective | undefined>;
5426
5750
  protected readonly asideSlot: Signal<RtWorkspaceAsideDirective | undefined>;
@@ -5531,6 +5855,7 @@ interface ITransitionFormShape {
5531
5855
  }
5532
5856
  declare class RtWorkspaceDetailsComponent {
5533
5857
  #private;
5858
+ protected readonly t: Signal<RtKitLabelMap>;
5534
5859
  protected readonly editingAgent: WritableSignal<boolean>;
5535
5860
  protected readonly selectedAgentId: WritableSignal<number | null>;
5536
5861
  protected readonly transitionForm: FormGroup<ITransitionFormShape>;
@@ -5622,52 +5947,5 @@ declare class RtInfiniteScrollDirective implements OnDestroy {
5622
5947
  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>;
5623
5948
  }
5624
5949
 
5625
- /**
5626
- * Словари кита: подписи, которые компоненты рисуют сами — кнопки диалогов,
5627
- * ярлыки состояний, подсказки для скринридера, тексты ошибок поля.
5628
- *
5629
- * Ключи лежат в собственном неймспейсе `rtKit`, чтобы не занимать глобальное
5630
- * пространство ключей приложения: в разметке они пишутся полным именем
5631
- * (`'rtKit.uiClose' | transloco`), а грузит их `provideRtKitTranslations()`.
5632
- *
5633
- * Приложение переопределяет любую подпись, передав свой словарь тем же
5634
- * провайдером: переданные ключи ложатся поверх этих.
5635
- */
5636
- declare const RT_KIT_TRANSLATIONS: Readonly<Record<string, Readonly<Record<string, string>>>>;
5637
-
5638
- /**
5639
- * Неймспейс, под которым лежат подписи кита. Он же — префикс ключа в разметке:
5640
- * `'rtKit.uiClose' | transloco`.
5641
- */
5642
- declare const RT_KIT_TRANSLATION_NAMESPACE: string;
5643
- /**
5644
- * Подключает словари кита к Transloco приложения.
5645
- *
5646
- * Кит рисует часть подписей сам — кнопки диалогов, тексты ошибок поля,
5647
- * расшифровки иконок для скринридера, — и без этого провайдера на экране
5648
- * остались бы ключи. Словари вшиты в пакет: сеть за ними не ходит и копировать
5649
- * ассеты не нужно.
5650
- *
5651
- * ```typescript
5652
- * export const appConfig: ApplicationConfig = {
5653
- * providers: [provideTransloco({ config, loader }), provideRtKitTranslations()],
5654
- * };
5655
- * ```
5656
- *
5657
- * Ключи ложатся в общий словарь языка под собственным неймспейсом, а не
5658
- * скоупом Transloco: скоуп, объявленный на корне, приписался бы и ко всем
5659
- * ключам приложения. Загрузку своих словарей это не задевает — они прилетают
5660
- * позже и домешиваются рядом.
5661
- *
5662
- * Раскладываются все восемь языков, но прочитаются только заявленные в
5663
- * `availableLangs` приложения: язык вне этого списка Transloco считает не
5664
- * языком, а именем скоупа, и ключ по нему не найдётся.
5665
- *
5666
- * @param translations Свои словари поверх вшитых: ключи ложатся сверху по
5667
- * каждому языку отдельно. Так переопределяется одна подпись, а не весь набор,
5668
- * и так же добавляется язык, которого в пакете нет.
5669
- */
5670
- declare function provideRtKitTranslations(translations?: Readonly<Record<string, Readonly<Record<string, string>>>>): EnvironmentProviders;
5671
-
5672
- export { BreakpointsService, CATEGORY_ORDER, ERtCalendarDayState, ERtChatMessageStatus, 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_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DIALOG_DATA, RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RT_ICONS_BASE_URL, RT_KIT_TRANSLATIONS, RT_KIT_TRANSLATION_NAMESPACE, 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, 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, RtLiveBadgeComponent, RtLogoComponent, 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, categoryOf, coerceQuillDeltaOutput, deliveryStatus, deriveFileTitle, fileNameFromUrl, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, pendingToRtMessage, provideRtIcons, provideRtKitTranslations, rowHasAvailableActions, rtAsideUnsavedGuard, searchDebounce, shouldRenderPhoto, sortDirectionOf, toRtMessage };
5673
- export type { IIconCategory, IMessageBusEvent, IQuillDelta, IQuillDeltaAttributes, IQuillDeltaOp, IRtAsideConfig, IRtAsideContentLayout, IRtAsideDeactivate, IRtAsidePosition, IRtAsideSize, IRtDialogConfig, IRtDialogSize, IRtMappableMessage, IRtPendingMessage, IRtPicture, IRtPictureSource, IRtRichEditorToolbar, IRtSkeletonRadius, IRtSkeletonShape, IRtSkeletonSize, IRtTableAriaSort, IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, IRtTextareaResize, IToRtMessageOptions };
5950
+ export { BreakpointsService, CATEGORY_ORDER, ERtCalendarDayState, ERtChatMessageStatus, 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_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DIALOG_DATA, RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RT_ICONS_BASE_URL, 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, 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, RtLiveBadgeComponent, RtLogoComponent, 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, categoryOf, coerceQuillDeltaOutput, deliveryStatus, deriveFileTitle, fileNameFromUrl, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, pendingToRtMessage, provideRtIcons, provideRtKitLabels, rowHasAvailableActions, rtAsideUnsavedGuard, rtKitLabel, searchDebounce, shouldRenderPhoto, sortDirectionOf, toRtMessage };
5951
+ export type { IIconCategory, IMessageBusEvent, IQuillDelta, IQuillDeltaAttributes, IQuillDeltaOp, IRtAsideConfig, IRtAsideContentLayout, IRtAsideDeactivate, IRtAsidePosition, IRtAsideSize, IRtDialogConfig, IRtDialogSize, IRtMappableMessage, IRtPendingMessage, IRtPicture, IRtPictureSource, IRtRichEditorToolbar, IRtSkeletonRadius, IRtSkeletonShape, IRtSkeletonSize, IRtTableAriaSort, IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, IRtTextareaResize, IToRtMessageOptions, RtKitLabelKey, RtKitLabelMap, RtKitLabelParams, RtKitTranslator };