@rt-tools/ui-kit-v2 0.13.1 → 0.15.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/README.md +25 -5
  2. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +90 -12
  3. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  4. package/fesm2022/rt-tools-ui-kit-v2.mjs +2267 -664
  5. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/rt-tools-ui-kit-v2-0.15.0.tgz +0 -0
  8. package/src/lib/components/CONTEXT.md +1 -1
  9. package/src/lib/components/action-bar/rt-action-bar.component.scss +5 -0
  10. package/src/lib/components/autocomplete/rt-autocomplete.component.scss +8 -1
  11. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +5 -0
  12. package/src/lib/components/button/CONTEXT.md +1 -1
  13. package/src/lib/components/button/rt-button.directive.scss +5 -7
  14. package/src/lib/components/calendar/CONTEXT.md +16 -2
  15. package/src/lib/components/calendar/rt-calendar.component.scss +81 -4
  16. package/src/lib/components/card/rt-card.component.scss +5 -0
  17. package/src/lib/components/checkbox/rt-checkbox.component.scss +5 -0
  18. package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +1 -1
  19. package/src/lib/components/data-list/toolbar/rt-data-list-toolbar.component.scss +1 -1
  20. package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +1 -1
  21. package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +1 -1
  22. package/src/lib/components/data-table/rt-data-table.component.scss +1 -1
  23. package/src/lib/components/date-picker/CONTEXT.md +33 -14
  24. package/src/lib/components/date-picker/panel/rt-date-panel.component.scss +155 -0
  25. package/src/lib/components/date-picker/rt-date-picker.component.scss +18 -2
  26. package/src/lib/components/date-range/CONTEXT.md +53 -0
  27. package/src/lib/components/date-range/panel/rt-date-range-panel.component.scss +103 -0
  28. package/src/lib/components/date-range/rt-date-range.component.scss +120 -0
  29. package/src/lib/components/dialog/rt-dialog.component.scss +5 -0
  30. package/src/lib/components/empty-state/rt-empty-state.component.scss +5 -0
  31. package/src/lib/components/file-card/rt-file-card.component.scss +5 -0
  32. package/src/lib/components/file-drop/rt-file-drop.component.scss +5 -0
  33. package/src/lib/components/header/rt-header.component.scss +5 -0
  34. package/src/lib/components/icon-button/CONTEXT.md +1 -1
  35. package/src/lib/components/icon-button/rt-icon-button.component.scss +9 -29
  36. package/src/lib/components/input/rt-input.component.scss +7 -1
  37. package/src/lib/components/input-number/rt-input-number.component.scss +7 -1
  38. package/src/lib/components/markdown-text/rt-markdown-text.component.scss +5 -0
  39. package/src/lib/components/menu/rt-menu-item.component.scss +5 -0
  40. package/src/lib/components/message/rt-message.component.scss +5 -0
  41. package/src/lib/components/money-list/rt-money-list.component.scss +5 -0
  42. package/src/lib/components/multiselect/CONTEXT.md +12 -5
  43. package/src/lib/components/multiselect/rt-multiselect.component.scss +32 -1
  44. package/src/lib/components/note/rt-note.component.scss +5 -0
  45. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +5 -0
  46. package/src/lib/components/pagination/rt-pagination.component.scss +6 -1
  47. package/src/lib/components/radio-button/rt-radio-button.component.scss +5 -0
  48. package/src/lib/components/section-nav/rt-section-nav.component.scss +5 -0
  49. package/src/lib/components/select/CONTEXT.md +10 -7
  50. package/src/lib/components/select/rt-select.component.scss +36 -1
  51. package/src/lib/components/skeleton/CONTEXT.md +14 -16
  52. package/src/lib/components/skeleton/rt-skeleton.component.scss +7 -1
  53. package/src/lib/components/skeleton-wrapper/CONTEXT.md +6 -6
  54. package/src/lib/components/split-button/rt-split-button.component.scss +6 -0
  55. package/src/lib/components/stepper/rt-stepper.component.scss +5 -0
  56. package/src/lib/components/table/rt-table.component.scss +12 -0
  57. package/src/lib/components/tag/CONTEXT.md +14 -15
  58. package/src/lib/components/tag/rt-tag.component.scss +6 -30
  59. package/src/lib/components/textarea/rt-textarea.component.scss +8 -1
  60. package/src/lib/components/thread-list/rt-thread-list.component.scss +5 -0
  61. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +7 -6
  62. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +5 -0
  63. package/src/rich-editor/lib/components/message-composer/CONTEXT.md +26 -2
  64. package/src/rich-editor/lib/components/message-composer/rt-message-composer.component.scss +78 -34
  65. package/src/styles/_mixins.scss +39 -0
  66. package/styles/tokens.css +30 -5
  67. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +32 -6
  68. package/types/rt-tools-ui-kit-v2.d.ts +396 -109
  69. package/rt-tools-ui-kit-v2-0.13.1.tgz +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { WritableSignal, InputSignal, Signal, OutputEmitterRef, Renderer2, InjectionToken, EnvironmentProviders, PipeTransform, InputSignalWithTransform, OnInit, OnDestroy, TemplateRef, ElementRef, DestroyRef, AfterViewChecked, AfterContentInit, ModelSignal, AfterViewInit } from '@angular/core';
2
+ import { WritableSignal, InputSignal, InjectionToken, Signal, OutputEmitterRef, Renderer2, EnvironmentProviders, PipeTransform, InputSignalWithTransform, OnInit, OnDestroy, TemplateRef, ElementRef, DestroyRef, AfterViewChecked, AfterContentInit, ModelSignal, AfterViewInit } from '@angular/core';
3
3
  import { OverlayRef, ComponentType, CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
4
4
  import { Observable, MonoTypeOperatorFunction } from 'rxjs';
5
5
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
@@ -116,6 +116,51 @@ declare namespace IRtActionBar {
116
116
  */
117
117
  declare const RT_ACTION_BAR_LEAVE_MS: number;
118
118
 
119
+ /** Один шаг шкалы скругления. Значения шагов лежат в токенах `--rt-radius-<шаг>`. */
120
+ type TRtRadius = 'none' | 'xs' | 'sm' | 'ms' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
121
+ /** Шаги скругления кита — вся шкала, от квадрата до полного круга, по порядку. */
122
+ declare const RT_RADIUS_STEPS: readonly TRtRadius[];
123
+ /**
124
+ * Шаг, который компонент берёт, когда вход скругления пуст.
125
+ *
126
+ * Большинству компонентов он не нужен: их скругление по умолчанию стоит в их
127
+ * собственных стилях. Токен нужен тому, у кого умолчание задаёт приложение, —
128
+ * кнопке, чья настройка кита называет шаг для всех кнопок сразу.
129
+ */
130
+ declare const RT_RADIUS_DEFAULT: InjectionToken<TRtRadius | null>;
131
+
132
+ /**
133
+ * Вход скругления, один на весь кит. Компонент с поверхностью берёт его
134
+ * хост-директивой, и у всех он называется одинаково — `radius`.
135
+ *
136
+ * Шаг ложится на хост атрибутом `data-rt-radius`, а не наследуемым свойством:
137
+ * свойство протекло бы в каждый вложенный компонент, и скруглённая карточка
138
+ * скруглила бы все кнопки в себе. Атрибут читают только правила своего хоста.
139
+ *
140
+ * Пустой вход атрибута не пишет: компонент остаётся со своим скруглением по
141
+ * умолчанию из собственных стилей.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * @Component({
146
+ * selector: 'rt-card',
147
+ * hostDirectives: [{ directive: RtRadiusDirective, inputs: ['radius'] }],
148
+ * })
149
+ * ```
150
+ * ```html
151
+ * <rt-card radius="none">…</rt-card>
152
+ * ```
153
+ */
154
+ declare class RtRadiusDirective {
155
+ #private;
156
+ /** Шаг шкалы. Пусто — скругление компонента по умолчанию. */
157
+ readonly radius: InputSignal<TRtRadius | null | undefined>;
158
+ /** Шаг на хосте: названный входом, иначе умолчание хоста, если оно задано. */
159
+ readonly step: Signal<TRtRadius | null>;
160
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRadiusDirective, never>;
161
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtRadiusDirective, "[rtRadius]", never, { "radius": { "alias": "radius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
162
+ }
163
+
119
164
  /** Действие вместе с готовой записью модификаторов: шаблон методов не зовёт. */
120
165
  interface IActionView {
121
166
  readonly action: IRtActionBar.Action;
@@ -155,7 +200,7 @@ declare class RtActionBarComponent {
155
200
  protected onAction(action: IRtActionBar.Action): void;
156
201
  protected onClose(): void;
157
202
  static ɵfac: i0.ɵɵFactoryDeclaration<RtActionBarComponent, never>;
158
- static ɵcmp: i0.ɵɵComponentDeclaration<RtActionBarComponent, "rt-action-bar", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; }, { "actionRun": "actionRun"; "closed": "closed"; }, never, never, true, never>;
203
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtActionBarComponent, "rt-action-bar", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; }, { "actionRun": "actionRun"; "closed": "closed"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
159
204
  }
160
205
 
161
206
  /**
@@ -389,21 +434,6 @@ declare class RtAsideService {
389
434
  */
390
435
  declare const RT_ASIDE_DATA: InjectionToken<unknown>;
391
436
 
392
- /**
393
- * Английские подписи кита — умолчание, а не локализация.
394
- *
395
- * Кит рисует часть текста сам: кнопки диалогов, тексты ошибок поля, расшифровки
396
- * иконок для скринридера. Своего языка у него нет и быть не может — его знает
397
- * приложение и отдаёт функцией-переводчиком (`provideRtKitLabels`). Этот набор
398
- * стоит под ней умолчанием, чтобы кит без единой настройки не рисовал пустоты:
399
- * среди ключей много `aria`-подписей, и пустая там означает кнопку без имени
400
- * для скринридера.
401
- *
402
- * Набор задаёт и **перечень ключей**: `TRtKitLabelKey` выводится отсюда, поэтому
403
- * опечатка в ключе не доживает до рантайма.
404
- *
405
- * Места вида `{{name}}` заполняются параметрами — их принимает `rtKitLabel()`.
406
- */
407
437
  declare const RT_KIT_LABELS_EN: {
408
438
  readonly bottomSheetClose: "Close";
409
439
  readonly chatAttachAria: "Attach a file";
@@ -411,6 +441,7 @@ declare const RT_KIT_LABELS_EN: {
411
441
  readonly chatAttachmentFallback: "Attachment";
412
442
  readonly chatCollapse: "Collapse chat";
413
443
  readonly chatComposerAria: "Message input";
444
+ readonly chatComposerHint: "Enter to send, Shift + Enter for a new line";
414
445
  readonly chatDeleteAria: "Delete message";
415
446
  readonly chatDeleteTooltip: "Delete";
416
447
  readonly chatDropOverlay: "Drop the files to attach them to your message";
@@ -429,6 +460,8 @@ declare const RT_KIT_LABELS_EN: {
429
460
  readonly chatStatusRead: "Read";
430
461
  readonly chatStatusSending: "Sending";
431
462
  readonly chatStatusSent: "Delivered";
463
+ readonly chatStopAria: "Stop the answer";
464
+ readonly chatStopLabel: "Stop";
432
465
  readonly chatTitle: "Chat";
433
466
  readonly counterDecrease: "Decrease";
434
467
  readonly counterIncrease: "Increase";
@@ -468,6 +501,7 @@ declare const RT_KIT_LABELS_EN: {
468
501
  readonly photoViewerPrev: "Previous photo";
469
502
  readonly themeToggleLabel: "Switch theme";
470
503
  readonly uiActions: "Actions";
504
+ readonly uiApply: "Apply";
471
505
  readonly uiAuditEmptyHint: "Deal events will appear here — stage changes and other actions.";
472
506
  readonly uiBack: "Back";
473
507
  readonly uiBackToList: "Back to list";
@@ -475,6 +509,7 @@ declare const RT_KIT_LABELS_EN: {
475
509
  readonly uiCancel: "Cancel";
476
510
  readonly uiChangeAgent: "Change agent";
477
511
  readonly uiChooseFile: "Choose file";
512
+ readonly uiChooseMonth: "Choose month and year";
478
513
  readonly uiClear: "Clear";
479
514
  readonly uiClearFilters: "Clear filters";
480
515
  readonly uiClose: "Close";
@@ -489,11 +524,18 @@ declare const RT_KIT_LABELS_EN: {
489
524
  readonly uiCopied: "Copied";
490
525
  readonly uiCopy: "Copy";
491
526
  readonly uiCurrentStage: "Current stage";
527
+ readonly uiDate: "Date";
528
+ readonly uiDaysFew: string;
529
+ readonly uiDaysMany: string;
530
+ readonly uiDaysOne: "{{count}} day";
531
+ readonly uiDaysOther: string;
492
532
  readonly uiDetails: "Details";
493
533
  readonly uiDiscardChanges: "Discard Changes";
534
+ readonly uiDone: "Done";
494
535
  readonly uiDownload: "Download";
495
536
  readonly uiDownloadFile: "Download: {{name}}";
496
537
  readonly uiDragColumn: "Drag column";
538
+ readonly uiExpand: "Expand";
497
539
  readonly uiFileDropOverlay: "Drop the files to attach them";
498
540
  readonly uiFilterChoose: "Choose";
499
541
  readonly uiFilterContains: "Contains";
@@ -511,38 +553,54 @@ declare const RT_KIT_LABELS_EN: {
511
553
  readonly uiHidePassword: "Hide password";
512
554
  readonly uiHint: "Hint";
513
555
  readonly uiHistory: "History";
556
+ readonly uiHours: "Hours";
514
557
  readonly uiInviteUser: "Invite user";
515
558
  readonly uiItemsPerPage: "Items per page";
559
+ readonly uiLast30Days: "Last 30 days";
560
+ readonly uiLast7Days: "Last 7 days";
561
+ readonly uiLastMonth: "Last month";
516
562
  readonly uiLiveOnSite: "On the site now";
517
563
  readonly uiLoadMore: "Load more";
518
564
  readonly uiMainNav: "Main navigation";
565
+ readonly uiMinutes: "Minutes";
519
566
  readonly uiMore: "More";
520
567
  readonly uiMoreActions: "More actions";
521
568
  readonly uiMoveStage: "Move";
522
569
  readonly uiMoveStageAria: "Move stage";
523
570
  readonly uiNavMenu: "Navigation menu";
524
571
  readonly uiNavUnread: "Unread";
572
+ readonly uiNextMonth: "Next month";
525
573
  readonly uiNextPage: "Next page";
574
+ readonly uiNextYear: "Next year";
526
575
  readonly uiNightGridAria: "Occupancy grid";
527
576
  readonly uiNoData: "No data yet";
528
577
  readonly uiNoOptions: "No options";
529
578
  readonly uiNoRows: "No data";
530
579
  readonly uiNothingFound: "Nothing found";
531
580
  readonly uiNotifications: "Notifications";
581
+ readonly uiNow: "Now";
582
+ readonly uiOpenCalendar: "Open the calendar";
532
583
  readonly uiPageOf: "Page {{page}} of {{last}}";
533
584
  readonly uiPagination: "Pagination";
534
585
  readonly uiPerPage: "Items per page:";
586
+ readonly uiPeriod: "Period";
535
587
  readonly uiPickAgent: "Select an agent";
536
588
  readonly uiPickAnotherAgent: "Select a different agent";
589
+ readonly uiPickEndDate: "Pick the end date";
590
+ readonly uiPickStartDate: "Pick the start date";
537
591
  readonly uiPickTransition: "Select a transition";
592
+ readonly uiPrevMonth: "Previous month";
538
593
  readonly uiPrevPage: "Previous page";
594
+ readonly uiPrevYear: "Previous year";
539
595
  readonly uiProfile: "Profile";
596
+ readonly uiQuickRanges: "Quick ranges";
540
597
  readonly uiRangeEmpty: "0 of 0";
541
598
  readonly uiRangeOf: "{{from}}–{{to}} of {{total}}";
542
599
  readonly uiRemove: "Delete";
543
600
  readonly uiRename: "Rename";
544
601
  readonly uiReplace: "Replace";
545
602
  readonly uiReplaceAgentTitle: "Replace agent";
603
+ readonly uiReset: "Reset";
546
604
  readonly uiResetDefaults: "Reset to defaults";
547
605
  readonly uiResizeDetails: "Resize details pane";
548
606
  readonly uiResizeList: "Resize list pane";
@@ -557,6 +615,11 @@ declare const RT_KIT_LABELS_EN: {
557
615
  readonly uiSelectValues: "Select values";
558
616
  readonly uiSelectedCount: "Selected: {{count}}";
559
617
  readonly uiSelectedOf: "Selected: {{count}} of {{total}}";
618
+ readonly uiShapeDay: "dd";
619
+ readonly uiShapeHour: "hh";
620
+ readonly uiShapeMinute: "mm";
621
+ readonly uiShapeMonth: "mm";
622
+ readonly uiShapeYear: "yyyy";
560
623
  readonly uiShow: "Show";
561
624
  readonly uiShowColumn: "Show column";
562
625
  readonly uiShowDetails: "Show details";
@@ -567,8 +630,11 @@ declare const RT_KIT_LABELS_EN: {
567
630
  readonly uiTabInvalid: "This tab contains errors";
568
631
  readonly uiTargetStage: "Target stage";
569
632
  readonly uiTargetStageRequired: "Select a target stage.";
633
+ readonly uiThisMonth: "This month";
570
634
  readonly uiThreadListEmptyHint: "New threads will appear here.";
635
+ readonly uiTime: "Time";
571
636
  readonly uiToList: "To list";
637
+ readonly uiToday: "Today";
572
638
  readonly uiUnsavedDiscard: "Close without saving";
573
639
  readonly uiUnsavedMessage: "The panel has edits that have not been saved yet. Choose what to do with them.";
574
640
  readonly uiUnsavedSave: "Save and close";
@@ -576,6 +642,7 @@ declare const RT_KIT_LABELS_EN: {
576
642
  readonly uiUnsavedTitle: "Unsaved changes";
577
643
  readonly uiWelcomeAria: "Welcome message for a new user";
578
644
  readonly uiYearOverYear: "YoY";
645
+ readonly uiYesterday: "Yesterday";
579
646
  };
580
647
 
581
648
  /**
@@ -846,7 +913,7 @@ declare class RtIconRegistry {
846
913
  /**
847
914
  * Контракты `rt-tag` — status pill компонент.
848
915
  * Один корневой неймспейс с префиксом `I`, внутри литеральные union'ы
849
- * для severity / shape, используемые как контракт `input()` сигналов компонента
916
+ * для severity / size / appearance, используемые как контракт `input()` сигналов компонента
850
917
  * и в `argTypes` Storybook.
851
918
  */
852
919
  declare namespace IRtTag {
@@ -857,16 +924,8 @@ declare namespace IRtTag {
857
924
  * размер, каким метка рисовалась до появления ступеней, так что вид без входа не меняется.
858
925
  */
859
926
  type Size = 'sm' | 'md' | 'lg';
860
- /** Форма tag'а: pill (rounded) или square (small radius). */
861
- type Shape = 'pill' | 'square';
862
927
  /** Вид заливки: solid (фон палитры) или outlined (прозрачный фон + рамка цвета палитры). */
863
928
  type Appearance = 'solid' | 'outlined';
864
- /**
865
- * Явное скругление углов поверх `shape`. `null` (дефолт) — радиус берётся
866
- * из `shape`; заданное значение переопределяет. Значения — подмножество
867
- * шкалы `--rt-radius-*`.
868
- */
869
- type Radius = 'none' | 'sm' | 'md' | 'lg' | 'full';
870
929
  }
871
930
 
872
931
  /**
@@ -883,10 +942,8 @@ declare namespace IRtAsideHeader {
883
942
  severity?: IRtTag.Severity;
884
943
  /** Вид заливки. Дефолт потребления — `solid`. */
885
944
  appearance?: IRtTag.Appearance;
886
- /** Форма. Дефолт потребления — `pill`. */
887
- shape?: IRtTag.Shape;
888
- /** Переопределение скругления поверх `shape`. */
889
- radius?: IRtTag.Radius | null;
945
+ /** Шаг скругления метки. Пусто — `md`. */
946
+ radius?: TRtRadius | null;
890
947
  /** Префикс-иконка. */
891
948
  icon?: IRtIcon.Name | null;
892
949
  /**
@@ -1242,7 +1299,7 @@ declare class RtAutocompleteComponent<TItem> extends RtFormControlBase<TItem | n
1242
1299
  protected onSelect(item: TItem): void;
1243
1300
  protected onInputKeydown(event: KeyboardEvent): void;
1244
1301
  static ɵfac: i0.ɵɵFactoryDeclaration<RtAutocompleteComponent<any>, never>;
1245
- static ɵcmp: i0.ɵɵComponentDeclaration<RtAutocompleteComponent<any>, "rt-autocomplete", never, { "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; }, { "complete": "complete"; "itemSelect": "itemSelect"; }, never, never, true, never>;
1302
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtAutocompleteComponent<any>, "rt-autocomplete", never, { "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; }, { "complete": "complete"; "itemSelect": "itemSelect"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1246
1303
  }
1247
1304
 
1248
1305
  /**
@@ -1292,7 +1349,7 @@ declare class RtBottomSheetComponent {
1292
1349
  protected onDragStart(event: PointerEvent): void;
1293
1350
  protected dismiss(): void;
1294
1351
  static ɵfac: i0.ɵɵFactoryDeclaration<RtBottomSheetComponent, never>;
1295
- static ɵcmp: i0.ɵɵComponentDeclaration<RtBottomSheetComponent, "rt-bottom-sheet", never, { "open": { "alias": "open"; "required": true; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["[sheetHeader]", "*"], true, never>;
1352
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtBottomSheetComponent, "rt-bottom-sheet", never, { "open": { "alias": "open"; "required": true; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["[sheetHeader]", "*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1296
1353
  }
1297
1354
 
1298
1355
  /**
@@ -1378,8 +1435,6 @@ declare class RtButtonDirective {
1378
1435
  readonly appearance: InputSignal<IButton.Appearance>;
1379
1436
  /** Размер. Умолчание — из настроек кита. */
1380
1437
  readonly size: InputSignal<IButton.Size>;
1381
- /** Скруглённые углы (умолчание — из настроек кита; без них квадратная, с radius из --rt-btn-radius). */
1382
- readonly rounded: InputSignalWithTransform<boolean, BooleanInput>;
1383
1438
  /** Состояние загрузки: показывает спиннер вместо иконки, блокирует клики. */
1384
1439
  readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
1385
1440
  /** Кастомный CSS-класс иконки в loading. Если null — встроенный CSS-спиннер. */
@@ -1404,7 +1459,7 @@ declare class RtButtonDirective {
1404
1459
  protected get ariaPressed(): string | null;
1405
1460
  protected get hostClasses(): Record<string, boolean>;
1406
1461
  static ɵfac: i0.ɵɵFactoryDeclaration<RtButtonDirective, never>;
1407
- 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: {}; }]>;
1462
+ 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; }; "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: {}; }, { directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1408
1463
  }
1409
1464
 
1410
1465
  /**
@@ -1422,7 +1477,9 @@ declare enum ERtCalendarDayState {
1422
1477
  Blocked = "blocked",
1423
1478
  Start = "start",
1424
1479
  End = "end",
1425
- InRange = "in-range"
1480
+ InRange = "in-range",
1481
+ /** Выбранный день одиночного выбора — залит. */
1482
+ Chosen = "chosen"
1426
1483
  }
1427
1484
  declare namespace IRtCalendar {
1428
1485
  /** View-модель дня. `key` — стабильный ключ (ISO-дата). */
@@ -1433,6 +1490,13 @@ declare namespace IRtCalendar {
1433
1490
  sublabel: string;
1434
1491
  state: ERtCalendarDayState;
1435
1492
  disabled: boolean;
1493
+ /** Сегодняшний день — обведён рамкой поверх любого состояния. */
1494
+ today?: boolean;
1495
+ }
1496
+ /** Клавиша сетки, нажатая на дне. */
1497
+ interface GridKey {
1498
+ key: string;
1499
+ day: Day;
1436
1500
  }
1437
1501
  /** View-модель месяца: подпись, пустые ячейки до первого дня, дни. */
1438
1502
  interface Month {
@@ -1444,7 +1508,15 @@ declare namespace IRtCalendar {
1444
1508
  }
1445
1509
 
1446
1510
  declare class RtCalendarComponent {
1511
+ #private;
1447
1512
  protected readonly sublabelSkeletonHeight: string;
1513
+ protected readonly chosenState: ERtCalendarDayState;
1514
+ protected readonly dayButtons: Signal<readonly ElementRef<HTMLButtonElement>[]>;
1515
+ /**
1516
+ * День, что стоит в порядке обхода Tab в режиме сетки: `activeKey`, иначе выбранный, иначе
1517
+ * сегодняшний, иначе первый доступный. Вне режима сетки — `null`, и каждый день обходится Tab.
1518
+ */
1519
+ protected readonly rovingKey: Signal<string | null>;
1448
1520
  readonly months: InputSignal<readonly IRtCalendar.Month[]>;
1449
1521
  readonly weekdayLabels: InputSignal<readonly string[]>;
1450
1522
  readonly canPrev: InputSignalWithTransform<boolean, BooleanInput>;
@@ -1453,12 +1525,31 @@ declare class RtCalendarComponent {
1453
1525
  readonly prevAriaLabel: InputSignal<string>;
1454
1526
  readonly nextAriaLabel: InputSignal<string>;
1455
1527
  readonly sublabelsLoading: InputSignalWithTransform<boolean, BooleanInput>;
1528
+ /**
1529
+ * Режим сетки: один день в обходе Tab, клавиши стрелок, PageUp/PageDown, Home и End уходят
1530
+ * наружу событием `gridKey`, а фокус встаёт на `activeKey`. Выключен — поведение прежнее.
1531
+ */
1532
+ readonly grid: InputSignalWithTransform<boolean, BooleanInput>;
1533
+ /** День с фокусом в режиме сетки, ключ `YYYY-MM-DD`; его ставит consumer по `gridKey`. */
1534
+ readonly activeKey: InputSignal<string | null>;
1535
+ /** Заголовок месяца — кнопка, что шлёт `titleClick`: так consumer открывает выбор месяца. */
1536
+ readonly titleAction: InputSignalWithTransform<boolean, BooleanInput>;
1537
+ /** Заголовок первого месяца стоит в шапке между стрелками, а не над сеткой. */
1538
+ readonly headerTitle: InputSignalWithTransform<boolean, BooleanInput>;
1456
1539
  readonly prevMonth: OutputEmitterRef<void>;
1457
1540
  readonly nextMonth: OutputEmitterRef<void>;
1458
1541
  readonly dayClick: OutputEmitterRef<IRtCalendar.Day>;
1542
+ /** Клавиша сетки на дне: куда перевести фокус, решает consumer. */
1543
+ readonly gridKey: OutputEmitterRef<IRtCalendar.GridKey>;
1544
+ readonly titleClick: OutputEmitterRef<IRtCalendar.Month>;
1545
+ /** День под указателем или с фокусом; `null` — указатель ушёл с месяцев. По нему рисуется будущий диапазон. */
1546
+ readonly dayHover: OutputEmitterRef<IRtCalendar.Day | null>;
1547
+ constructor();
1548
+ protected onDayKey(event: KeyboardEvent, day: IRtCalendar.Day): void;
1549
+ protected onDayHover(day: IRtCalendar.Day): void;
1459
1550
  protected onDayClick(day: IRtCalendar.Day): void;
1460
1551
  static ɵfac: i0.ɵɵFactoryDeclaration<RtCalendarComponent, never>;
1461
- static ɵcmp: i0.ɵɵComponentDeclaration<RtCalendarComponent, "rt-calendar", never, { "months": { "alias": "months"; "required": true; "isSignal": true; }; "weekdayLabels": { "alias": "weekdayLabels"; "required": true; "isSignal": true; }; "canPrev": { "alias": "canPrev"; "required": false; "isSignal": true; }; "canNext": { "alias": "canNext"; "required": false; "isSignal": true; }; "prevAriaLabel": { "alias": "prevAriaLabel"; "required": false; "isSignal": true; }; "nextAriaLabel": { "alias": "nextAriaLabel"; "required": false; "isSignal": true; }; "sublabelsLoading": { "alias": "sublabelsLoading"; "required": false; "isSignal": true; }; }, { "prevMonth": "prevMonth"; "nextMonth": "nextMonth"; "dayClick": "dayClick"; }, never, ["[calendarHint]", "*"], true, never>;
1552
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtCalendarComponent, "rt-calendar", never, { "months": { "alias": "months"; "required": true; "isSignal": true; }; "weekdayLabels": { "alias": "weekdayLabels"; "required": true; "isSignal": true; }; "canPrev": { "alias": "canPrev"; "required": false; "isSignal": true; }; "canNext": { "alias": "canNext"; "required": false; "isSignal": true; }; "prevAriaLabel": { "alias": "prevAriaLabel"; "required": false; "isSignal": true; }; "nextAriaLabel": { "alias": "nextAriaLabel"; "required": false; "isSignal": true; }; "sublabelsLoading": { "alias": "sublabelsLoading"; "required": false; "isSignal": true; }; "grid": { "alias": "grid"; "required": false; "isSignal": true; }; "activeKey": { "alias": "activeKey"; "required": false; "isSignal": true; }; "titleAction": { "alias": "titleAction"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; }, { "prevMonth": "prevMonth"; "nextMonth": "nextMonth"; "dayClick": "dayClick"; "gridKey": "gridKey"; "titleClick": "titleClick"; "dayHover": "dayHover"; }, never, ["[calendarHint]", "*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1462
1553
  }
1463
1554
 
1464
1555
  /**
@@ -1490,7 +1581,7 @@ declare class RtCardComponent {
1490
1581
  protected onClick(event: MouseEvent): void;
1491
1582
  protected onKeyActivate(event: Event): void;
1492
1583
  static ɵfac: i0.ɵɵFactoryDeclaration<RtCardComponent, never>;
1493
- static ɵcmp: i0.ɵɵComponentDeclaration<RtCardComponent, "rt-card", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "cardClick": "cardClick"; }, never, ["[rtCardHeader]", "*", "[rtCardFooter]"], true, never>;
1584
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtCardComponent, "rt-card", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "cardClick": "cardClick"; }, never, ["[rtCardHeader]", "*", "[rtCardFooter]"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1494
1585
  }
1495
1586
 
1496
1587
  /**
@@ -1529,7 +1620,7 @@ declare class RtCheckboxComponent implements ControlValueAccessor {
1529
1620
  setDisabledState(disabled: boolean): void;
1530
1621
  protected toggle(): void;
1531
1622
  static ɵfac: i0.ɵɵFactoryDeclaration<RtCheckboxComponent, never>;
1532
- static ɵcmp: i0.ɵɵComponentDeclaration<RtCheckboxComponent, "rt-checkbox", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1623
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtCheckboxComponent, "rt-checkbox", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
1533
1624
  }
1534
1625
 
1535
1626
  declare class RtCollapsibleTextComponent implements OnDestroy {
@@ -3056,6 +3147,23 @@ declare namespace IRtSelect {
3056
3147
  label: string;
3057
3148
  value: TValue;
3058
3149
  disabled?: boolean;
3150
+ /** Дети опции того же вида. Хотя бы одна опция с детьми делает список деревом. */
3151
+ children?: ReadonlyArray<Option<TValue>>;
3152
+ }
3153
+ /** Видимая строка дерева: опция, её уровень и то, ветка ли она и раскрыта ли. */
3154
+ interface Row<TValue> {
3155
+ readonly option: Option<TValue>;
3156
+ readonly level: number;
3157
+ readonly branch: boolean;
3158
+ readonly open: boolean;
3159
+ readonly parent: TValue | null;
3160
+ }
3161
+ /** Сколько включённых листьев ветки выбрано: все, часть или ни одного. */
3162
+ type TBranchState = 'all' | 'some' | 'none';
3163
+ /** Что делать по боковой стрелке: какую ветку переключить и куда увести подсветку. */
3164
+ interface SideKeyAnswer<TValue> {
3165
+ readonly toggle: TValue | null;
3166
+ readonly index: number;
3059
3167
  }
3060
3168
  /**
3061
3169
  * Что кит отдаёт своей разметке указателя. Три значения и не больше: большее привязало бы
@@ -3184,37 +3292,213 @@ declare class RtDataTableSelectorsDirective<ENTITY_TYPE extends Record<string, u
3184
3292
 
3185
3293
  /** Контракт rt-date-picker. */
3186
3294
  declare namespace IRtDatePicker {
3187
- /** Тип нативного date-инпута. */
3295
+ /** Тип значения: дата, время или дата со временем. */
3188
3296
  type Type = 'date' | 'datetime-local' | 'time';
3297
+ /** Часть даты в тексте поля. */
3298
+ type DatePart = 'day' | 'month' | 'year';
3299
+ /** Как дата пишется в тексте поля по локали: порядок частей и знак между ними. */
3300
+ interface TextLayout {
3301
+ order: readonly DatePart[];
3302
+ separator: string;
3303
+ }
3304
+ /** Буквы подсказки формы текста: `дд`, `мм`, `гггг`, `чч`, `мм` под русскими метками. */
3305
+ interface ShapeLetters {
3306
+ day: string;
3307
+ month: string;
3308
+ year: string;
3309
+ hour: string;
3310
+ minute: string;
3311
+ }
3312
+ /** Ячейка колонки часов или минут. */
3313
+ interface TimeCell {
3314
+ value: number;
3315
+ label: string;
3316
+ disabled: boolean;
3317
+ }
3318
+ /** Колонки времени панели. */
3319
+ interface TimeColumns {
3320
+ hours: readonly TimeCell[];
3321
+ minutes: readonly TimeCell[];
3322
+ }
3323
+ /** Ячейка выбора месяца: `key` — `YYYY-MM`. */
3324
+ interface MonthCell {
3325
+ key: string;
3326
+ label: string;
3327
+ disabled: boolean;
3328
+ }
3329
+ /** Момент, разобранный на день `YYYY-MM-DD` и время `HH:mm`. */
3330
+ interface Moment {
3331
+ day: string;
3332
+ time: string;
3333
+ }
3334
+ /** Что месяц панели знает о выборе и границах. */
3335
+ interface MonthContext {
3336
+ locale: string;
3337
+ today: string;
3338
+ chosen: string | null;
3339
+ min: string | null;
3340
+ max: string | null;
3341
+ }
3342
+ /** Что колонки времени знают о выбранном дне и границах. */
3343
+ interface TimeContext {
3344
+ step: number;
3345
+ hour: number | null;
3346
+ day: string | null;
3347
+ min: string | null;
3348
+ max: string | null;
3349
+ }
3189
3350
  }
3190
3351
 
3191
3352
  /**
3192
- * Date/time picker на нативном `<input type="date"|"datetime-local"|"time">`,
3193
- * визуально и по токенам идентичный rt-input (host — box `--rt-input-*`, input —
3194
- * прозрачный `__field`). Календарь/часы — нативные браузерные (без сторонних
3195
- * библиотек). CVA через общий `RtFormControlBase`: clearable, авто-подсветка
3196
- * invalid, read-only представление (значение форматируется через Intl).
3353
+ * Поле даты, времени или даты со временем со своей панелью кита, визуально и по токенам
3354
+ * идентичное rt-input (host — box `--rt-input-*`, input — прозрачный `__field`). Кнопка в конце
3355
+ * поля открывает `rt-date-panel`: на широком экране в поповере, на узком — в нижней шторке.
3356
+ * CVA через общий `RtFormControlBase`: clearable, авто-подсветка invalid, read-only
3357
+ * представление (значение форматируется через Intl).
3197
3358
  *
3198
- * `value` — ISO-строка, которую отдаёт нативный input (`YYYY-MM-DD`,
3199
- * `YYYY-MM-DDTHH:mm`, `HH:mm`).
3359
+ * `value` — строка формы нативного input'а (`YYYY-MM-DD`, `YYYY-MM-DDTHH:mm`, `HH:mm`). Текст в
3360
+ * поле — дата в порядке языка интерфейса (`01.08.2026` под `ru`), время `HH:mm`; набирается так же,
3361
+ * вставленная форма значения тоже читается. Нечитаемый или лежащий за границами текст оставляет
3362
+ * значение прежним и помечает поле ошибкой.
3200
3363
  */
3201
3364
  declare class RtDatePickerComponent extends RtFormControlBase<string> {
3202
3365
  #private;
3203
3366
  protected readonly t: Signal<TRtKitLabelMap>;
3367
+ /** Узкий экран: панель открывается в нижней шторке, а не в поповере. */
3368
+ protected readonly narrow: Signal<boolean>;
3204
3369
  protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
3370
+ protected readonly popover: Signal<RtPopoverDirective | undefined>;
3371
+ /** Набранный текст не читается как значение в границах: поле помечено ошибкой. */
3372
+ protected readonly textInvalid: WritableSignal<boolean>;
3373
+ protected readonly sheetOpen: WritableSignal<boolean>;
3374
+ /** Подсказка формы текста буквами кита: `дд.мм.гггг` под русскими метками. */
3375
+ protected readonly shape: Signal<string>;
3376
+ /**
3377
+ * Текст в поле — значение в порядке языка интерфейса. Не строку форма кладёт мимо контракта
3378
+ * (например `Date`), и поле показывает её пустой, как показывало браузерное.
3379
+ */
3380
+ protected readonly text: Signal<string>;
3381
+ protected readonly openIcon: Signal<IRtIcon.Name>;
3205
3382
  protected readonly hasValue: Signal<boolean>;
3383
+ /**
3384
+ * Ширина поля в знаках — по длине формы значения. Без неё текстовое поле берёт от браузера
3385
+ * двадцать знаков и в строке отборов потребителя занимает место вдвое шире значения.
3386
+ */
3387
+ protected readonly fieldSize: Signal<number>;
3388
+ /** Подсказка обрезается многоточием в узком поле, поэтому шаблон целиком виден при наведении. */
3389
+ protected readonly shapeTitle: Signal<string | null>;
3206
3390
  /** Вид рамки: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */
3207
3391
  readonly appearance: InputSignal<IRtInput.Appearance>;
3208
3392
  readonly displayText: Signal<string>;
3209
3393
  readonly type: InputSignal<IRtDatePicker.Type>;
3210
3394
  readonly min: InputSignal<string | null>;
3211
3395
  readonly max: InputSignal<string | null>;
3396
+ /** Шаг колонки минут в панели. */
3397
+ readonly minuteStep: InputSignalWithTransform<number, NumberInput>;
3398
+ /** Значение из формы снимает ошибку набора: в поле теперь стоит оно. */
3399
+ writeValue(value: string | null): void;
3212
3400
  protected getEmptyValue(): string;
3213
3401
  protected focusAfterClear(): void;
3214
- protected onInput(event: Event): void;
3402
+ protected clearValue(): void;
3403
+ /** Набор текста: значение меняется, только когда текст читается как значение в границах. */
3404
+ protected onTyped(event: Event): void;
3405
+ /** Кнопка в конце поля: на узком экране открывает шторку, на широком поповер открывает сам. */
3406
+ protected openPanel(): void;
3407
+ protected closePanel(): void;
3408
+ protected onPicked(value: string): void;
3215
3409
  protected onBlur(): void;
3216
3410
  static ɵfac: i0.ɵɵFactoryDeclaration<RtDatePickerComponent, never>;
3217
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDatePickerComponent, "rt-date-picker", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3411
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDatePickerComponent, "rt-date-picker", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3412
+ }
3413
+
3414
+ /** Быстрый вариант диапазона в панели поля. */
3415
+ declare enum ERtDateRangePreset {
3416
+ Today = "today",
3417
+ Yesterday = "yesterday",
3418
+ Last7 = "last-7",
3419
+ Last30 = "last-30",
3420
+ ThisMonth = "this-month",
3421
+ LastMonth = "last-month"
3422
+ }
3423
+ /** Контракт rt-date-range. */
3424
+ declare namespace IRtDateRange {
3425
+ /** Значение поля: первый и последний день периода `YYYY-MM-DD`, оба включены, `start <= end`. */
3426
+ interface Value {
3427
+ start: string;
3428
+ end: string;
3429
+ }
3430
+ /** Быстрый вариант в панели: его диапазон и выключен ли он границами. */
3431
+ interface PresetCell {
3432
+ preset: ERtDateRangePreset;
3433
+ range: Value;
3434
+ disabled: boolean;
3435
+ }
3436
+ /** Что месяц панели знает о черновике, наведении и границах. */
3437
+ interface MonthContext {
3438
+ locale: string;
3439
+ today: string;
3440
+ start: string | null;
3441
+ end: string | null;
3442
+ /** День под указателем, пока выбрано только начало: до него рисуется будущий диапазон. */
3443
+ hover: string | null;
3444
+ min: string | null;
3445
+ max: string | null;
3446
+ }
3447
+ /** Форма числа дней по правилам множественного числа локали. */
3448
+ type Plural = 'one' | 'few' | 'many' | 'other';
3449
+ }
3450
+
3451
+ /**
3452
+ * Поле диапазона дат со своей панелью кита, визуально и по токенам идентичное rt-input (host — box
3453
+ * `--rt-input-*`, input — прозрачный `__field`). Кнопка в конце поля открывает
3454
+ * `rt-date-range-panel`: на широком экране в поповере, на узком — в нижней шторке. CVA через общий
3455
+ * `RtFormControlBase`: clearable, авто-подсветка invalid, read-only представление.
3456
+ *
3457
+ * `value` — пара дней `{ start, end }` в форме `YYYY-MM-DD` или `null`. Текст в поле — две даты в
3458
+ * порядке языка интерфейса через тире (`12.10.2026 — 15.10.2026` под `ru`); набирается так же.
3459
+ * Нечитаемый или лежащий за границами текст оставляет значение прежним и помечает поле ошибкой.
3460
+ */
3461
+ declare class RtDateRangeComponent extends RtFormControlBase<IRtDateRange.Value | null> {
3462
+ #private;
3463
+ protected readonly t: Signal<TRtKitLabelMap>;
3464
+ /** Узкий экран: панель открывается в нижней шторке, а не в поповере. */
3465
+ protected readonly narrow: Signal<boolean>;
3466
+ protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
3467
+ protected readonly popover: Signal<RtPopoverDirective | undefined>;
3468
+ /** Набранный текст не читается как диапазон в границах: поле помечено ошибкой. */
3469
+ protected readonly textInvalid: WritableSignal<boolean>;
3470
+ protected readonly sheetOpen: WritableSignal<boolean>;
3471
+ /** Подсказка формы текста буквами кита: `дд.мм.гггг — дд.мм.гггг` под русскими метками. */
3472
+ protected readonly shape: Signal<string>;
3473
+ /** Значение, прочитанное из формы: не пара дней по порядку поле показывает пустой. */
3474
+ protected readonly range: Signal<IRtDateRange.Value | null>;
3475
+ protected readonly text: Signal<string>;
3476
+ protected readonly hasValue: Signal<boolean>;
3477
+ /** Ширина поля в знаках — по длине формы значения, как у поля даты. */
3478
+ protected readonly fieldSize: Signal<number>;
3479
+ /** Подсказка обрезается многоточием в узком поле, поэтому шаблон целиком виден при наведении. */
3480
+ protected readonly shapeTitle: Signal<string | null>;
3481
+ /** Вид рамки: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */
3482
+ readonly appearance: InputSignal<IRtInput.Appearance>;
3483
+ readonly displayText: Signal<string>;
3484
+ /** Первый допустимый день `YYYY-MM-DD`. */
3485
+ readonly min: InputSignal<string | null>;
3486
+ /** Последний допустимый день `YYYY-MM-DD`. */
3487
+ readonly max: InputSignal<string | null>;
3488
+ /** Значение из формы снимает ошибку набора: в поле теперь стоит оно. */
3489
+ writeValue(value: IRtDateRange.Value | null): void;
3490
+ protected getEmptyValue(): IRtDateRange.Value | null;
3491
+ protected focusAfterClear(): void;
3492
+ protected clearValue(): void;
3493
+ /** Набор текста: значение меняется, только когда текст читается как диапазон в границах. */
3494
+ protected onTyped(event: Event): void;
3495
+ /** Кнопка в конце поля: на узком экране открывает шторку, на широком поповер открывает сам. */
3496
+ protected openPanel(): void;
3497
+ protected closePanel(): void;
3498
+ protected onPicked(value: IRtDateRange.Value): void;
3499
+ protected onBlur(): void;
3500
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDateRangeComponent, never>;
3501
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDateRangeComponent, "rt-date-range", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3218
3502
  }
3219
3503
 
3220
3504
  /**
@@ -3286,7 +3570,7 @@ declare class RtDialogComponent {
3286
3570
  /** ARIA-label для dialog-обёртки (если нет видимого заголовка). */
3287
3571
  readonly ariaLabel: InputSignal<string | null>;
3288
3572
  static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogComponent, never>;
3289
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogComponent, "rt-dialog", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
3573
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogComponent, "rt-dialog", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3290
3574
  }
3291
3575
 
3292
3576
  /**
@@ -3638,7 +3922,7 @@ declare class RtEmptyStateComponent {
3638
3922
  readonly title: InputSignal<string>;
3639
3923
  readonly description: InputSignal<string | null>;
3640
3924
  static ɵfac: i0.ɵɵFactoryDeclaration<RtEmptyStateComponent, never>;
3641
- static ɵcmp: i0.ɵɵComponentDeclaration<RtEmptyStateComponent, "rt-empty-state", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["[rtEmptyIllustration]", "*"], true, never>;
3925
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtEmptyStateComponent, "rt-empty-state", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["[rtEmptyIllustration]", "*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3642
3926
  }
3643
3927
 
3644
3928
  /**
@@ -3711,7 +3995,7 @@ declare class RtFieldComponent implements AfterContentInit {
3711
3995
 
3712
3996
  /**
3713
3997
  * Модель `<rt-icon-button>`: один корневой неймспейс с префиксом `I`.
3714
- * Внутри — литеральные union-типы для variant / size / shape / type, чтобы:
3998
+ * Внутри — литеральные union-типы для variant / size / type, чтобы:
3715
3999
  * - использовать как контракт `input()` сигналов компонента;
3716
4000
  * - переиспользовать в `argTypes` Storybook.
3717
4001
  */
@@ -3720,14 +4004,6 @@ declare namespace IRtIconButton {
3720
4004
  type Variant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success' | 'warning';
3721
4005
  /** Размер квадрата кнопки. Маппинг на пиксели — в SCSS (`--rt-icon-button-size`). */
3722
4006
  type Size = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
3723
- /**
3724
- * Форма границы кнопки, от скруглённого квадрата к кругу.
3725
- * Промежуточные ступени делят расстояние от квадрата до круга на три равные части,
3726
- * а не задаются своей долей стороны: кнопка бывает от 32 до 64 пикселей, а радиус
3727
- * квадрата на всех один — доля, взятая сама по себе, сливается с ним на одних
3728
- * размерах и отрывается на других.
3729
- */
3730
- type Shape = 'square' | 'rounded-sm' | 'rounded-lg' | 'circle';
3731
4007
  /** HTML-тип нативного `<button>`. */
3732
4008
  type Type = 'button' | 'submit';
3733
4009
  }
@@ -3806,7 +4082,7 @@ declare class RtFileCardComponent {
3806
4082
  protected onRemove(): void;
3807
4083
  protected onRename(): void;
3808
4084
  static ɵfac: i0.ɵɵFactoryDeclaration<RtFileCardComponent, never>;
3809
- static ɵcmp: i0.ɵɵComponentDeclaration<RtFileCardComponent, "rt-file-card", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "sizeBytes": { "alias": "sizeBytes"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showDownload": { "alias": "showDownload"; "required": false; "isSignal": true; }; "showRemove": { "alias": "showRemove"; "required": false; "isSignal": true; }; "showRename": { "alias": "showRename"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "download": "download"; "removed": "removed"; "rename": "rename"; }, never, never, true, never>;
4085
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtFileCardComponent, "rt-file-card", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "sizeBytes": { "alias": "sizeBytes"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showDownload": { "alias": "showDownload"; "required": false; "isSignal": true; }; "showRemove": { "alias": "showRemove"; "required": false; "isSignal": true; }; "showRename": { "alias": "showRename"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "download": "download"; "removed": "removed"; "rename": "rename"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3810
4086
  }
3811
4087
 
3812
4088
  /**
@@ -3904,7 +4180,7 @@ declare class RtFileDropComponent {
3904
4180
  protected onDragLeave(event: DragEvent): void;
3905
4181
  protected onDrop(event: DragEvent): void;
3906
4182
  static ɵfac: i0.ɵɵFactoryDeclaration<RtFileDropComponent, never>;
3907
- static ɵcmp: i0.ɵɵComponentDeclaration<RtFileDropComponent, "rt-file-drop", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "overlayLabel": { "alias": "overlayLabel"; "required": false; "isSignal": true; }; "zones": { "alias": "zones"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; }, { "filesDropped": "filesDropped"; "zoneFilesDropped": "zoneFilesDropped"; "draggingChange": "draggingChange"; }, never, ["*"], true, never>;
4183
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtFileDropComponent, "rt-file-drop", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "overlayLabel": { "alias": "overlayLabel"; "required": false; "isSignal": true; }; "zones": { "alias": "zones"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; }, { "filesDropped": "filesDropped"; "zoneFilesDropped": "zoneFilesDropped"; "draggingChange": "draggingChange"; }, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
3908
4184
  }
3909
4185
 
3910
4186
  /**
@@ -4055,7 +4331,7 @@ declare class RtHeaderComponent {
4055
4331
  protected onInviteClick(): void;
4056
4332
  protected onProfileClick(): void;
4057
4333
  static ɵfac: i0.ɵɵFactoryDeclaration<RtHeaderComponent, never>;
4058
- static ɵcmp: i0.ɵɵComponentDeclaration<RtHeaderComponent, "rt-header", never, { "canGoBack": { "alias": "canGoBack"; "required": false; "isSignal": true; }; "showInvite": { "alias": "showInvite"; "required": false; "isSignal": true; }; }, { "backClick": "backClick"; "inviteClick": "inviteClick"; "profileClick": "profileClick"; }, never, ["[rtHeaderBell]"], true, never>;
4334
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtHeaderComponent, "rt-header", never, { "canGoBack": { "alias": "canGoBack"; "required": false; "isSignal": true; }; "showInvite": { "alias": "showInvite"; "required": false; "isSignal": true; }; }, { "backClick": "backClick"; "inviteClick": "inviteClick"; "profileClick": "profileClick"; }, never, ["[rtHeaderBell]"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4059
4335
  }
4060
4336
 
4061
4337
  /**
@@ -4112,8 +4388,6 @@ declare class RtIconButtonComponent {
4112
4388
  readonly size: InputSignal<IRtIconButton.Size>;
4113
4389
  /** Размер иконки; пусто — берётся от размера кнопки. */
4114
4390
  readonly iconSize: InputSignal<IRtIcon.Size | null>;
4115
- /** Форма (круг или скруглённый квадрат). */
4116
- readonly shape: InputSignal<IRtIconButton.Shape>;
4117
4391
  /** HTML-type для нативного `<button>`. */
4118
4392
  readonly type: InputSignal<IRtIconButton.Type>;
4119
4393
  /**
@@ -4139,7 +4413,7 @@ declare class RtIconButtonComponent {
4139
4413
  readonly clicked: OutputEmitterRef<MouseEvent>;
4140
4414
  protected onClick(event: MouseEvent): void;
4141
4415
  static ɵfac: i0.ɵɵFactoryDeclaration<RtIconButtonComponent, never>;
4142
- static ɵcmp: i0.ɵɵComponentDeclaration<RtIconButtonComponent, "rt-icon-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconFill": { "alias": "iconFill"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "indicator": { "alias": "indicator"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
4416
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtIconButtonComponent, "rt-icon-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "iconFill": { "alias": "iconFill"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "indicator": { "alias": "indicator"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4143
4417
  }
4144
4418
 
4145
4419
  declare class RtInfoItemComponent {
@@ -4193,7 +4467,7 @@ declare class RtInputComponent extends RtFormControlBase<string> {
4193
4467
  protected onBlur(): void;
4194
4468
  protected togglePassword(): void;
4195
4469
  static ɵfac: i0.ɵɵFactoryDeclaration<RtInputComponent, never>;
4196
- static ɵcmp: i0.ɵɵComponentDeclaration<RtInputComponent, "rt-input", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "iconRight": { "alias": "iconRight"; "required": false; "isSignal": true; }; "passwordToggle": { "alias": "passwordToggle"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4470
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtInputComponent, "rt-input", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "iconRight": { "alias": "iconRight"; "required": false; "isSignal": true; }; "passwordToggle": { "alias": "passwordToggle"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4197
4471
  }
4198
4472
 
4199
4473
  /**
@@ -4252,7 +4526,7 @@ declare class RtInputNumberComponent extends RtFormControlBase<number | null> {
4252
4526
  protected onInput(event: Event): void;
4253
4527
  protected onBlur(): void;
4254
4528
  static ɵfac: i0.ɵɵFactoryDeclaration<RtInputNumberComponent, never>;
4255
- static ɵcmp: i0.ɵɵComponentDeclaration<RtInputNumberComponent, "rt-input-number", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "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>;
4529
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtInputNumberComponent, "rt-input-number", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "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, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4256
4530
  }
4257
4531
 
4258
4532
  /**
@@ -4419,7 +4693,7 @@ declare class RtMarkdownTextComponent {
4419
4693
  protected readonly blocks: Signal<readonly IRtMarkdownBlockNode[]>;
4420
4694
  readonly text: InputSignal<string | null>;
4421
4695
  static ɵfac: i0.ɵɵFactoryDeclaration<RtMarkdownTextComponent, never>;
4422
- static ɵcmp: i0.ɵɵComponentDeclaration<RtMarkdownTextComponent, "rt-markdown-text", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
4696
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtMarkdownTextComponent, "rt-markdown-text", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4423
4697
  }
4424
4698
 
4425
4699
  /**
@@ -4566,7 +4840,7 @@ declare class RtMenuItemComponent {
4566
4840
  protected onActivate(event: Event): void;
4567
4841
  protected onKey(event: Event): void;
4568
4842
  static ɵfac: i0.ɵɵFactoryDeclaration<RtMenuItemComponent, never>;
4569
- static ɵcmp: i0.ɵɵComponentDeclaration<RtMenuItemComponent, "rt-menu-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "glyph": { "alias": "glyph"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "confirmMessage": { "alias": "confirmMessage"; "required": false; "isSignal": true; }; "confirmTitle": { "alias": "confirmTitle"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "confirmCancelLabel": { "alias": "confirmCancelLabel"; "required": false; "isSignal": true; }; "confirmTone": { "alias": "confirmTone"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, [{ directive: typeof RtTooltipDirective; inputs: { "rtTooltip": "tooltip"; }; outputs: {}; }]>;
4843
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtMenuItemComponent, "rt-menu-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "glyph": { "alias": "glyph"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "confirmMessage": { "alias": "confirmMessage"; "required": false; "isSignal": true; }; "confirmTitle": { "alias": "confirmTitle"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "confirmCancelLabel": { "alias": "confirmCancelLabel"; "required": false; "isSignal": true; }; "confirmTone": { "alias": "confirmTone"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, [{ directive: typeof RtTooltipDirective; inputs: { "rtTooltip": "tooltip"; }; outputs: {}; }, { directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4570
4844
  }
4571
4845
 
4572
4846
  /**
@@ -4680,7 +4954,7 @@ declare class RtMessageComponent {
4680
4954
  readonly closed: OutputEmitterRef<void>;
4681
4955
  protected onClose(): void;
4682
4956
  static ɵfac: i0.ɵɵFactoryDeclaration<RtMessageComponent, never>;
4683
- static ɵcmp: i0.ɵɵComponentDeclaration<RtMessageComponent, "rt-message", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hideIcon": { "alias": "hideIcon"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
4957
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtMessageComponent, "rt-message", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hideIcon": { "alias": "hideIcon"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4684
4958
  }
4685
4959
 
4686
4960
  /**
@@ -4693,7 +4967,7 @@ declare class RtMessageComponent {
4693
4967
  */
4694
4968
  declare class RtMoneyListComponent {
4695
4969
  static ɵfac: i0.ɵɵFactoryDeclaration<RtMoneyListComponent, never>;
4696
- static ɵcmp: i0.ɵɵComponentDeclaration<RtMoneyListComponent, "rt-money-list", never, {}, {}, never, ["*"], true, never>;
4970
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtMoneyListComponent, "rt-money-list", never, {}, {}, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4697
4971
  }
4698
4972
 
4699
4973
  /**
@@ -4757,6 +5031,14 @@ declare class RtMultiselectComponent<TValue> extends RtFormControlBase<ReadonlyA
4757
5031
  protected readonly popover: Signal<RtPopoverDirective>;
4758
5032
  protected readonly triggerEl: Signal<ElementRef<HTMLButtonElement> | undefined>;
4759
5033
  protected readonly activeIndex: WritableSignal<number>;
5034
+ /** Раскрытые ветки дерева. Живут, пока открыта панель: при открытии раскрыты ветки над выбранным. */
5035
+ protected readonly openBranches: WritableSignal<ReadonlySet<TValue>>;
5036
+ /** Дерево ли список: тогда у строк есть место под стрелку и отступ по уровню. */
5037
+ protected readonly isTree: Signal<boolean>;
5038
+ /** Видимые строки: плоский список — как прежде, дерево — по раскрытым веткам. */
5039
+ protected readonly rows: Signal<ReadonlyArray<IRtSelect.Row<TValue>>>;
5040
+ /** Флажок каждой строки: у листа — выбран ли он, у ветки — выведен из её включённых листьев. */
5041
+ protected readonly rowChecks: Signal<ReadonlyArray<IRtSelect.TBranchState>>;
4760
5042
  protected readonly isOpen: Signal<boolean>;
4761
5043
  /** Идентификатор подсвеченной опции — тот же, что уходит в `aria-activedescendant`. */
4762
5044
  protected readonly activeOptionId: Signal<string | null>;
@@ -4775,6 +5057,8 @@ declare class RtMultiselectComponent<TValue> extends RtFormControlBase<ReadonlyA
4775
5057
  /** Пусто — берётся переведённая подпись по умолчанию */
4776
5058
  readonly placeholder: InputSignal<string>;
4777
5059
  readonly maxChips: InputSignal<number>;
5060
+ /** Иконка слева в указателе — та же, что у `rt-select`: перед подсказкой или чипами. */
5061
+ readonly iconLeft: InputSignal<IRtIcon.Name | null>;
4778
5062
  /**
4779
5063
  * Чем мерится панель. По умолчанию она не уже кнопки и дальше растёт по содержимому:
4780
5064
  * со своим указателем кнопка бывает узкой, и панель по её ширине давила бы содержимое.
@@ -4796,12 +5080,18 @@ declare class RtMultiselectComponent<TValue> extends RtFormControlBase<ReadonlyA
4796
5080
  protected focusAfterClear(): void;
4797
5081
  protected labelOf(value: TValue): string;
4798
5082
  protected isSelected(value: TValue): boolean;
5083
+ protected onOpened(): void;
5084
+ protected toggleBranch(event: Event, value: TValue): void;
4799
5085
  protected onClosed(): void;
5086
+ /**
5087
+ * Лист переключается сам. Ветка выбирает все свои включённые листья или снимает их, когда
5088
+ * выбраны все; своё значение ветки в выбор не пишется.
5089
+ */
4800
5090
  protected toggleOption(opt: IRtSelect.Option<TValue>): void;
4801
5091
  protected removeChip(value: TValue, event: MouseEvent): void;
4802
5092
  protected onTriggerKeydown(event: KeyboardEvent): void;
4803
5093
  static ɵfac: i0.ɵɵFactoryDeclaration<RtMultiselectComponent<any>, never>;
4804
- static ɵcmp: i0.ɵɵComponentDeclaration<RtMultiselectComponent<any>, "rt-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "maxChips": { "alias": "maxChips"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "panelMaxHeight": { "alias": "panelMaxHeight"; "required": false; "isSignal": true; }; }, {}, ["triggerTpl"], never, true, never>;
5094
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtMultiselectComponent<any>, "rt-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "maxChips": { "alias": "maxChips"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "panelMaxHeight": { "alias": "panelMaxHeight"; "required": false; "isSignal": true; }; }, {}, ["triggerTpl"], never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4805
5095
  }
4806
5096
 
4807
5097
  /**
@@ -4981,7 +5271,7 @@ declare class RtDeltaViewComponent {
4981
5271
  */
4982
5272
  declare class RtNoteComponent {
4983
5273
  static ɵfac: i0.ɵɵFactoryDeclaration<RtNoteComponent, never>;
4984
- static ɵcmp: i0.ɵɵComponentDeclaration<RtNoteComponent, "rt-note", never, {}, {}, never, ["*"], true, never>;
5274
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtNoteComponent, "rt-note", never, {}, {}, never, ["*"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
4985
5275
  }
4986
5276
 
4987
5277
  /**
@@ -4999,7 +5289,7 @@ declare class RtNotificationsBellComponent {
4999
5289
  readonly clicked: OutputEmitterRef<void>;
5000
5290
  protected onClick(): void;
5001
5291
  static ɵfac: i0.ɵɵFactoryDeclaration<RtNotificationsBellComponent, never>;
5002
- static ɵcmp: i0.ɵɵComponentDeclaration<RtNotificationsBellComponent, "rt-notifications-bell", never, { "unread": { "alias": "unread"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "unreadLabel": { "alias": "unreadLabel"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
5292
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtNotificationsBellComponent, "rt-notifications-bell", never, { "unread": { "alias": "unread"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "unreadLabel": { "alias": "unreadLabel"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5003
5293
  }
5004
5294
 
5005
5295
  declare namespace IRtPageHeader {
@@ -5314,7 +5604,7 @@ declare class RtPaginationComponent {
5314
5604
  goTo(pageNumber: number): void;
5315
5605
  protected onPerPage(value: number | null): void;
5316
5606
  static ɵfac: i0.ɵɵFactoryDeclaration<RtPaginationComponent, never>;
5317
- static ɵcmp: i0.ɵɵComponentDeclaration<RtPaginationComponent, "rt-pagination", never, { "pageModel": { "alias": "pageModel"; "required": true; "isSignal": true; }; "perPageOptions": { "alias": "perPageOptions"; "required": false; "isSignal": true; }; "prevIcon": { "alias": "prevIcon"; "required": false; "isSignal": true; }; "nextIcon": { "alias": "nextIcon"; "required": false; "isSignal": true; }; "numbering": { "alias": "numbering"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "perPageChange": "perPageChange"; }, never, never, true, never>;
5607
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtPaginationComponent, "rt-pagination", never, { "pageModel": { "alias": "pageModel"; "required": true; "isSignal": true; }; "perPageOptions": { "alias": "perPageOptions"; "required": false; "isSignal": true; }; "prevIcon": { "alias": "prevIcon"; "required": false; "isSignal": true; }; "nextIcon": { "alias": "nextIcon"; "required": false; "isSignal": true; }; "numbering": { "alias": "numbering"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "perPageChange": "perPageChange"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5318
5608
  }
5319
5609
 
5320
5610
  /**
@@ -5368,7 +5658,7 @@ declare class RtRadioButtonComponent implements ControlValueAccessor {
5368
5658
  protected onClick(event: MouseEvent): void;
5369
5659
  protected onKeydown(event: KeyboardEvent): void;
5370
5660
  static ɵfac: i0.ɵɵFactoryDeclaration<RtRadioButtonComponent, never>;
5371
- static ɵcmp: i0.ɵɵComponentDeclaration<RtRadioButtonComponent, "rt-radio-button", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "card": { "alias": "card"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clickAction": "clickAction"; "checkedChange": "checkedChange"; }, never, never, true, never>;
5661
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtRadioButtonComponent, "rt-radio-button", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "card": { "alias": "card"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clickAction": "clickAction"; "checkedChange": "checkedChange"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5372
5662
  }
5373
5663
 
5374
5664
  declare namespace IRtSectionNav {
@@ -5385,7 +5675,7 @@ declare class RtSectionNavComponent {
5385
5675
  readonly itemSelect: OutputEmitterRef<string>;
5386
5676
  protected onSelect(item: IRtSectionNav.Item): void;
5387
5677
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSectionNavComponent, never>;
5388
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSectionNavComponent, "rt-section-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
5678
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSectionNavComponent, "rt-section-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5389
5679
  }
5390
5680
 
5391
5681
  /**
@@ -5494,6 +5784,8 @@ declare class RtSelectComponent<TValue> extends RtFormControlBase<TValue | null>
5494
5784
  protected readonly triggerEl: Signal<ElementRef<HTMLButtonElement> | undefined>;
5495
5785
  protected readonly filterTerm: WritableSignal<string>;
5496
5786
  protected readonly activeIndex: WritableSignal<number>;
5787
+ /** Раскрытые ветки дерева. Живут, пока открыта панель: при открытии раскрыты ветки над выбранным. */
5788
+ protected readonly openBranches: WritableSignal<ReadonlySet<TValue>>;
5497
5789
  protected readonly isOpen: Signal<boolean>;
5498
5790
  /** Идентификатор подсвеченной опции — тот же, что уходит в `aria-activedescendant`. */
5499
5791
  protected readonly activeOptionId: Signal<string | null>;
@@ -5504,7 +5796,10 @@ declare class RtSelectComponent<TValue> extends RtFormControlBase<TValue | null>
5504
5796
  protected readonly triggerTpl: Signal<RtSelectTriggerDirective<TValue> | undefined>;
5505
5797
  protected readonly hasValue: Signal<boolean>;
5506
5798
  protected readonly selectedLabel: Signal<string>;
5507
- protected readonly filteredOptions: Signal<ReadonlyArray<IRtSelect.Option<TValue>>>;
5799
+ /** Дерево ли список: тогда у строк есть место под стрелку и отступ по уровню. */
5800
+ protected readonly isTree: Signal<boolean>;
5801
+ /** Видимые строки: плоский список — как прежде, дерево — по раскрытым веткам и поисковому слову. */
5802
+ protected readonly rows: Signal<ReadonlyArray<IRtSelect.Row<TValue>>>;
5508
5803
  /** Три значения, которые кит отдаёт своей разметке указателя, и не больше. */
5509
5804
  protected readonly triggerState: Signal<IRtSelect.TriggerState<TValue>>;
5510
5805
  /** Вид рамки: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */
@@ -5537,17 +5832,18 @@ declare class RtSelectComponent<TValue> extends RtFormControlBase<TValue | null>
5537
5832
  protected getEmptyValue(): TValue | null;
5538
5833
  protected focusAfterClear(): void;
5539
5834
  protected clear(event?: Event): void;
5835
+ protected onOpened(): void;
5836
+ protected toggleBranch(event: Event, value: TValue): void;
5540
5837
  protected onClosed(): void;
5541
5838
  protected select(opt: IRtSelect.Option<TValue>): void;
5542
5839
  protected setFilter(term: string): void;
5543
5840
  protected onTriggerKeydown(event: KeyboardEvent): void;
5544
5841
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSelectComponent<any>, never>;
5545
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSelectComponent<any>, "rt-select", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "panelMaxHeight": { "alias": "panelMaxHeight"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["triggerTpl"], never, true, never>;
5842
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSelectComponent<any>, "rt-select", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "panelMaxHeight": { "alias": "panelMaxHeight"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["triggerTpl"], never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5546
5843
  }
5547
5844
 
5548
5845
  type TRtSkeletonShape = 'rectangle' | 'circle' | 'square';
5549
5846
  type TRtSkeletonSize = 'sm' | 'md' | 'lg';
5550
- type TRtSkeletonRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5551
5847
  /**
5552
5848
  * Visual primitive для loading-state'а: серая полоска с shimmer-анимацией.
5553
5849
  *
@@ -5555,6 +5851,8 @@ type TRtSkeletonRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5555
5851
  * с input'ом `[isLoading]`. Wrapper решает что показать (skeleton или content),
5556
5852
  * этот компонент только рисует placeholder.
5557
5853
  *
5854
+ * Скругление прямоугольника и квадрата — шаг общего входа `radius`; круг остаётся кругом.
5855
+ *
5558
5856
  * Shimmer через background-position keyframes; `@media (prefers-reduced-motion)`
5559
5857
  * убирает анимацию для пользователей с reduced-motion preference.
5560
5858
  */
@@ -5564,13 +5862,6 @@ declare class RtSkeletonComponent {
5564
5862
  readonly size: InputSignal<TRtSkeletonSize>;
5565
5863
  readonly width: InputSignal<string>;
5566
5864
  readonly height: InputSignal<string>;
5567
- /**
5568
- * Скругление. `null` — «не задано»: прямоугольник берёт `xl`, квадрат —
5569
- * `sm` (пилюля из квадрата не квадрат). Умолчанием нельзя было держать сам
5570
- * `xl`: тогда явный `xl` неотличим от невыставленного, и квадрату
5571
- * приходилось прибивать `sm` жёстко — вход у него молча пропадал.
5572
- */
5573
- readonly borderRadius: InputSignal<TRtSkeletonRadius | null>;
5574
5865
  readonly animation: InputSignalWithTransform<boolean, BooleanInput>;
5575
5866
  protected get isRectangle(): boolean;
5576
5867
  protected get isCircle(): boolean;
@@ -5581,9 +5872,8 @@ declare class RtSkeletonComponent {
5581
5872
  protected get isAnimated(): boolean;
5582
5873
  protected get hostWidth(): string;
5583
5874
  protected get hostHeight(): string;
5584
- protected get hostBorderRadius(): string;
5585
5875
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSkeletonComponent, never>;
5586
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSkeletonComponent, "rt-skeleton", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
5876
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSkeletonComponent, "rt-skeleton", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5587
5877
  }
5588
5878
 
5589
5879
  /**
@@ -5603,12 +5893,12 @@ declare class RtSkeletonWrapperComponent {
5603
5893
  readonly height: InputSignal<string>;
5604
5894
  readonly shape: InputSignal<TRtSkeletonShape>;
5605
5895
  readonly size: InputSignal<TRtSkeletonSize>;
5606
- /** Как у `rt-skeleton`: `null` — «по фигуре», а не «без скругления». */
5607
- readonly borderRadius: InputSignal<TRtSkeletonRadius | null>;
5896
+ /** Шаг скругления заглушки, передаётся в `rt-skeleton`. Пусто — скругление заглушки по умолчанию. */
5897
+ readonly radius: InputSignal<TRtRadius | null>;
5608
5898
  readonly animation: InputSignalWithTransform<boolean, BooleanInput>;
5609
5899
  readonly isLoading: InputSignalWithTransform<boolean, BooleanInput>;
5610
5900
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSkeletonWrapperComponent, never>;
5611
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSkeletonWrapperComponent, "rt-skeleton-wrapper", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5901
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSkeletonWrapperComponent, "rt-skeleton-wrapper", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
5612
5902
  }
5613
5903
 
5614
5904
  /**
@@ -5708,7 +5998,7 @@ declare class RtSplitButtonComponent {
5708
5998
  protected onToggle(): void;
5709
5999
  protected onItem(item: IRtSplitButton.MenuItem): void;
5710
6000
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSplitButtonComponent, never>;
5711
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSplitButtonComponent, "rt-split-button", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "faceClick": "faceClick"; "itemSelect": "itemSelect"; }, never, never, true, never>;
6001
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSplitButtonComponent, "rt-split-button", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "faceClick": "faceClick"; "itemSelect": "itemSelect"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5712
6002
  }
5713
6003
 
5714
6004
  /**
@@ -5830,7 +6120,7 @@ declare class RtStepperComponent {
5830
6120
  readonly steps: InputSignal<readonly IRtStepper.Step[]>;
5831
6121
  readonly currentIndex: InputSignalWithTransform<number, number | string>;
5832
6122
  static ɵfac: i0.ɵɵFactoryDeclaration<RtStepperComponent, never>;
5833
- static ɵcmp: i0.ɵɵComponentDeclaration<RtStepperComponent, "rt-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "currentIndex": { "alias": "currentIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6123
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtStepperComponent, "rt-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "currentIndex": { "alias": "currentIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
5834
6124
  }
5835
6125
 
5836
6126
  /** Значение для буфера: явная строка/число либо `null` (тогда берётся отображаемый текст). */
@@ -6271,7 +6561,7 @@ declare class RtTableComponent<TRow> extends CdkTable<TRow> {
6271
6561
  /** Возвращает текущий источник данных, сохранённый базовым CdkTable. */
6272
6562
  get dataSource(): CdkTableDataSourceInput<TRow>;
6273
6563
  static ɵfac: i0.ɵɵFactoryDeclaration<RtTableComponent<any>, never>;
6274
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableComponent<any>, "rt-table, table[rt-table]", ["rtTable"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "columnsConfig": { "alias": "columnsConfig"; "required": false; "isSignal": true; }; "tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "showRowActions": { "alias": "showRowActions"; "required": false; "isSignal": true; }; "rowHasActions": { "alias": "rowHasActions"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "sortChange": "sortChange"; }, ["rowActions", "cardTemplate", "columnDefs", "emptyTemplate"], ["caption", "colgroup, col"], true, never>;
6564
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableComponent<any>, "rt-table, table[rt-table]", ["rtTable"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "columnsConfig": { "alias": "columnsConfig"; "required": false; "isSignal": true; }; "tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "showRowActions": { "alias": "showRowActions"; "required": false; "isSignal": true; }; "rowHasActions": { "alias": "rowHasActions"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "sortChange": "sortChange"; }, ["rowActions", "cardTemplate", "columnDefs", "emptyTemplate"], ["caption", "colgroup, col"], true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
6275
6565
  }
6276
6566
 
6277
6567
  /**
@@ -6630,7 +6920,7 @@ declare class RtTabsComponent {
6630
6920
  /**
6631
6921
  * Status/label pill для отображения статусов и счётчиков.
6632
6922
  * Поддерживает 6 severity-вариантов (`info` / `success` / `warning` / `danger` /
6633
- * `secondary` / `neutral`), 2 формы (`pill` / `square`) и опциональный close-control
6923
+ * `secondary` / `neutral`), любой шаг скругления входом `radius` и опциональный close-control
6634
6924
  * (рендерит `rt-icon-button` с иконкой `ico-close` и emits `closed` MouseEvent).
6635
6925
  *
6636
6926
  * Все цвета — через семантические `--rt-color-state-*` токены; layout через
@@ -6655,12 +6945,8 @@ declare class RtTagComponent implements OnDestroy {
6655
6945
  * другой ступени, и ряд пилюль перестал бы выстраиваться.
6656
6946
  */
6657
6947
  readonly size: InputSignal<IRtTag.Size>;
6658
- /** Форма tag'а. По умолчанию `pill` (фуллскруглённый). */
6659
- readonly shape: InputSignal<IRtTag.Shape>;
6660
6948
  /** Вид заливки. По умолчанию `solid`; `outlined` — прозрачный фон + рамка. */
6661
6949
  readonly appearance: InputSignal<IRtTag.Appearance>;
6662
- /** Переопределение скругления поверх `shape`. `null` — радиус по `shape`. */
6663
- readonly radius: InputSignal<IRtTag.Radius | null>;
6664
6950
  /** Префикс-иконка слева от текста. `null` (дефолт) — без иконки. */
6665
6951
  readonly icon: InputSignal<IRtIcon.Name | null>;
6666
6952
  /** Суффикс-иконка справа от текста (напр. `external-link` у тега-ссылки). */
@@ -6673,7 +6959,7 @@ declare class RtTagComponent implements OnDestroy {
6673
6959
  ngOnDestroy(): void;
6674
6960
  protected onClose(event: MouseEvent): void;
6675
6961
  static ɵfac: i0.ɵɵFactoryDeclaration<RtTagComponent, never>;
6676
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTagComponent, "rt-tag", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconEnd": { "alias": "iconEnd"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
6962
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTagComponent, "rt-tag", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconEnd": { "alias": "iconEnd"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
6677
6963
  }
6678
6964
 
6679
6965
  type TRtTextareaResize = 'none' | 'vertical';
@@ -6701,7 +6987,7 @@ declare class RtTextareaComponent extends RtFormControlBase<string> {
6701
6987
  protected onInput(event: Event): void;
6702
6988
  protected onBlur(): void;
6703
6989
  static ɵfac: i0.ɵɵFactoryDeclaration<RtTextareaComponent, never>;
6704
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTextareaComponent, "rt-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6990
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTextareaComponent, "rt-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
6705
6991
  }
6706
6992
 
6707
6993
  /**
@@ -6843,7 +7129,7 @@ declare class RtThreadListComponent<TRow extends IRtThreadList.Row> implements O
6843
7129
  protected onSelect(id: IRtThreadList.TRowId, event: MouseEvent): void;
6844
7130
  protected onLoadMore(): void;
6845
7131
  static ɵfac: i0.ɵɵFactoryDeclaration<RtThreadListComponent<any>, never>;
6846
- 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>;
7132
+ 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, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
6847
7133
  }
6848
7134
 
6849
7135
  declare namespace IRtTimeline {
@@ -7244,7 +7530,7 @@ declare class RtToggleButtonGroupComponent<T = string> {
7244
7530
  readonly valuesChange: OutputEmitterRef<ReadonlyArray<T>>;
7245
7531
  protected onOptionClick(item: IRtToggleButtonGroup.Rendered<T>): void;
7246
7532
  static ɵfac: i0.ɵɵFactoryDeclaration<RtToggleButtonGroupComponent<any>, never>;
7247
- 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>;
7533
+ 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, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
7248
7534
  }
7249
7535
 
7250
7536
  /**
@@ -7308,7 +7594,7 @@ declare class RtToggleSwitchComponent implements ControlValueAccessor {
7308
7594
  setDisabledState(disabled: boolean): void;
7309
7595
  protected toggle(): void;
7310
7596
  static ɵfac: i0.ɵɵFactoryDeclaration<RtToggleSwitchComponent, never>;
7311
- static ɵcmp: i0.ɵɵComponentDeclaration<RtToggleSwitchComponent, "rt-toggle-switch", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconOff": { "alias": "iconOff"; "required": false; "isSignal": true; }; "iconOn": { "alias": "iconOn"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7597
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtToggleSwitchComponent, "rt-toggle-switch", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconOff": { "alias": "iconOff"; "required": false; "isSignal": true; }; "iconOn": { "alias": "iconOn"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
7312
7598
  }
7313
7599
 
7314
7600
  /**
@@ -7673,7 +7959,8 @@ declare namespace IRtKitConfig {
7673
7959
  interface Button {
7674
7960
  appearance?: IButton.Appearance;
7675
7961
  size?: IButton.Size;
7676
- rounded?: boolean;
7962
+ /** Шаг скругления всех кнопок, пока на кнопке не назван свой. */
7963
+ radius?: TRtRadius;
7677
7964
  }
7678
7965
  /** Умолчания шторы. */
7679
7966
  interface Aside {
@@ -7778,5 +8065,5 @@ declare const RT_DESIGN_TOKEN_NAMES: readonly TRtDesignTokenName[];
7778
8065
  /** All the consumer's handles: the value comes from the application, until then the fallback works. */
7779
8066
  declare const RT_CONSUMER_HANDLE_NAMES: readonly TRtConsumerHandleName[];
7780
8067
 
7781
- export { BreakpointsService, CATEGORY_ORDER, DATA_LIST_PAGE_SIZES, DATA_TABLE_FILTER_MENU_OPERATORS, DATA_TABLE_FILTER_OPERATOR_GLYPHS, ERtCalendarDayState, ERtDataTableCellColor, ERtDataTableColumnType, ERtDataTableFilterType, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, IButton, ICON_CATEGORY_RULES, INotification, IRtAccordion, IRtActionBar, IRtAsideHeader, IRtAutocomplete, IRtBarList, IRtCalendar, IRtConfirmPopover, IRtDataTable, IRtDatePicker, IRtDynamicList, IRtField, IRtFileCard, IRtFileDrop, IRtFileInput, IRtFilterControl, IRtIcon, IRtIconButton, IRtInput, IRtKitConfig, IRtLogo, IRtMenu, 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_ACTION_BAR_LEAVE_MS, RT_ASIDE_DATA, RT_CONSUMER_HANDLE_NAMES, RT_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DATA_TABLE_PRESET_FROM_HOST, RT_DATA_TABLE_ROW_HOST, RT_DATA_TABLE_STOP_ROW_CLICK_ATTRIBUTE, 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_FILL_SYMBOL_ID_PREFIX, RT_ICON_MATERIAL_PRESET_SELECTOR, RT_ICON_MATERIAL_SYMBOL_ID_PREFIX, RT_ICON_SPRITE_ID, RT_ICON_SYMBOL_ID_PREFIX, RT_KIT_CONFIG, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MENU_SELECT_EVENT, RT_PRESET_MATERIAL_CLASS, RT_TABLE_ROW_ACTIONS_COLUMN, RT_TOASTER_GAP_PX, RtAccordionComponent, RtActionBarComponent, RtActionBarHolderComponent, RtActionBarService, RtAsideComponent, RtAsideFooterComponent, RtAsideHeaderComponent, RtAsideRef, RtAsideSectionComponent, RtAsideService, RtAutocompleteComponent, RtBarListComponent, RtBottomSheetComponent, RtButtonDirective, RtCalendarComponent, RtCardComponent, RtCheckboxComponent, RtCollapsibleTextComponent, RtConfirmDirective, RtConfirmPopoverComponent, RtContainerComponent, RtContainerContentDirective, RtContainerContentPanelDirective, RtContainerHeaderDirective, RtContainerLeftSidenavDirective, RtContainerLeftSidenavPanelDirective, RtContainerRightSidenavDirective, RtContainerRightSidenavPanelDirective, RtContainerStateService, RtContainerToolbarCenterDirective, RtContainerToolbarLeftDirective, RtContainerToolbarRightDirective, RtCopyCellComponent, RtCounterComponent, RtCounterRowComponent, RtDataListAdditionalRowActionsDirective, RtDataListComponent, RtDataListCustomCellsDirective, RtDataListRowActionsDirective, RtDataListSelectorsDirective, RtDataListSettingsAsideComponent, RtDataListToolbarActionsDirective, RtDataListToolbarComponent, RtDataListToolbarSelectorsDirective, RtDataTableAdditionalRowActionsDirective, RtDataTableCellComponent, RtDataTableComponent, RtDataTableConfigService, RtDataTableCustomCellsDirective, RtDataTableFilterCellComponent, RtDataTableHeaderCellComponent, RtDataTableIconDirective, RtDataTableRowActionsDirective, RtDataTableRowClickDirective, RtDataTableSelectorsDirective, RtDataTableStopRowClickDirective, RtDatePickerComponent, RtDayStampPipe, RtDeltaViewComponent, RtDetailListComponent, RtDetailRowComponent, RtDialogComponent, RtDialogFooterComponent, RtDialogHeaderComponent, RtDialogRef, RtDialogService, RtDownloadLinkComponent, RtDynamicListComponent, RtDynamicListToolbarActionsDirective, RtDynamicListToolbarSelectorsDirective, RtEmptyStateComponent, RtFieldComponent, RtFieldHintDirective, RtFileCardComponent, RtFileDropComponent, RtFileInputComponent, RtFileListComponent, RtFilterControlComponent, RtFormControlBase, RtHeaderComponent, RtIconButtonComponent, RtIconComponent, RtIconRegistry, RtInfiniteScrollDirective, RtInfoItemComponent, RtInputComponent, RtInputNumberComponent, RtKitLabelPipe, RtLiveBadgeComponent, RtLogoComponent, RtMarkdownTextComponent, RtMenuComponent, RtMenuItemComponent, RtMessageComponent, RtMoneyListComponent, RtMoneyRowComponent, RtMultiselectComponent, RtNightGridComponent, RtNoteComponent, RtNotificationsBellComponent, RtPageHeaderComponent, RtPaginationComponent, RtPhotoViewerComponent, RtPopoverDirective, RtRadioButtonComponent, RtRippleDirective, RtRouteAsideComponent, RtRowHasActionsPipe, RtScrollAreaComponent, RtScrollAreaContentDirective, RtScrollAreaFooterDirective, RtScrollAreaHeaderDirective, RtSectionNavComponent, RtSelectComponent, RtSelectTriggerDirective, RtSkeletonComponent, RtSkeletonWrapperComponent, RtSpinnerComponent, RtSplitButtonComponent, RtStatTileComponent, RtStepperComponent, RtTabDirective, RtTableCardDirective, RtTableComponent, RtTableFilterHeaderComponent, RtTableRowActionsDirective, RtTableRowDirective, RtTableSettingsAsideComponent, RtTableSettingsPanelComponent, RtTableSettingsRegistry, RtTableSortHeaderComponent, RtTabsComponent, RtTabsControlDirective, RtTagComponent, RtTextareaComponent, RtThemeScopeDirective, 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, comparePropNames, dataListColumnsFromItems, dataListExcludedAfterEntity, dataListExcludedAfterPageMarked, dataListExcludedAfterPageUnmarked, dataListMoveItem, dataListPageAfterSizeChange, dataListPageCount, dataListPageSizes, dataListSelectedAfterPage, dataListSettingItems, dataListSettingsChanged, dataListToggleHidden, dataTableAllOnPage, dataTableAnyOnPage, dataTableAriaSort, dataTableCellText, dataTableCellValue, dataTableColumnFilter, dataTableCopyButtonSide, dataTableDayToIso, dataTableDefaultOperator, dataTableFiltersWithOperator, dataTableFiltersWithValue, dataTableIconName, dataTableIsoToDay, dataTableKeysOf, dataTableNextSortOrder, dataTablePresetEntities, dataTableSortActive, dataTableWithEntity, dataTableWithPageEntities, dataTableWithoutPageEntities, defaultColumnItems, deriveFileTitle, displayedColumnKeys, fileNameFromUrl, filterCellsOf, filterOf, filterValueOf, filtersWithOperator, filtersWithValue, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, parseInline, parseMarkdown, provideRtIcons, provideRtKit, provideRtKitLabels, resolveColumns, rowHasAvailableActions, rtAsideUnsavedGuard, rtKitDefault, rtKitLabel, searchDebounce, shouldRenderPhoto, sortDirectionOf, startOperatorOf, withoutLockedHidden };
7782
- export type { IMessageBusEvent, IQuillDelta, IQuillDeltaAttributes, IQuillDeltaOp, IRtAsideConfig, IRtDataTableIconContext, IRtDataTableRowContext, IRtDataTableRowHost, IRtDialogConfig, IRtMarkdownBlockNode, IRtMarkdownInlineNode, IRtMarkdownListItem, IRtPicture, IRtPictureSource, IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, TIconCategory, TRtAsideContentLayout, TRtAsidePosition, TRtAsideSize, TRtConsumerHandleName, TRtDataTableAriaSort, TRtDataTableFilterValue, TRtDataTableFilters, TRtDesignTokenName, TRtDialogSize, TRtKitLabelKey, TRtKitLabelMap, TRtKitLabelParams, TRtKitTranslator, TRtSkeletonRadius, TRtSkeletonShape, TRtSkeletonSize, TRtTableAriaSort, TRtTableFilterInput, TRtTableFilterValue, TRtTextareaResize };
8068
+ export { BreakpointsService, CATEGORY_ORDER, DATA_LIST_PAGE_SIZES, DATA_TABLE_FILTER_MENU_OPERATORS, DATA_TABLE_FILTER_OPERATOR_GLYPHS, ERtCalendarDayState, ERtDataTableCellColor, ERtDataTableColumnType, ERtDataTableFilterType, ERtDateRangePreset, ERtMarkdownBlock, ERtMarkdownInline, ERtStorageKeys, IButton, ICON_CATEGORY_RULES, INotification, IRtAccordion, IRtActionBar, IRtAsideHeader, IRtAutocomplete, IRtBarList, IRtCalendar, IRtConfirmPopover, IRtDataTable, IRtDatePicker, IRtDateRange, IRtDynamicList, IRtField, IRtFileCard, IRtFileDrop, IRtFileInput, IRtFilterControl, IRtIcon, IRtIconButton, IRtInput, IRtKitConfig, IRtLogo, IRtMenu, 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_ACTION_BAR_LEAVE_MS, RT_ASIDE_DATA, RT_CONSUMER_HANDLE_NAMES, RT_COUNTER_DECREASE_KEY, RT_COUNTER_INCREASE_KEY, RT_DATA_TABLE_PRESET_FROM_HOST, RT_DATA_TABLE_ROW_HOST, RT_DATA_TABLE_STOP_ROW_CLICK_ATTRIBUTE, 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_FILL_SYMBOL_ID_PREFIX, RT_ICON_MATERIAL_PRESET_SELECTOR, RT_ICON_MATERIAL_SYMBOL_ID_PREFIX, RT_ICON_SPRITE_ID, RT_ICON_SYMBOL_ID_PREFIX, RT_KIT_CONFIG, RT_KIT_LABELS, RT_KIT_LABELS_EN, RT_KIT_LOCALE, RT_KIT_TRANSLATOR, RT_MENU_SELECT_EVENT, RT_PRESET_MATERIAL_CLASS, RT_RADIUS_DEFAULT, RT_RADIUS_STEPS, RT_TABLE_ROW_ACTIONS_COLUMN, RT_TOASTER_GAP_PX, RtAccordionComponent, RtActionBarComponent, RtActionBarHolderComponent, RtActionBarService, RtAsideComponent, RtAsideFooterComponent, RtAsideHeaderComponent, RtAsideRef, RtAsideSectionComponent, RtAsideService, RtAutocompleteComponent, RtBarListComponent, RtBottomSheetComponent, RtButtonDirective, RtCalendarComponent, RtCardComponent, RtCheckboxComponent, RtCollapsibleTextComponent, RtConfirmDirective, RtConfirmPopoverComponent, RtContainerComponent, RtContainerContentDirective, RtContainerContentPanelDirective, RtContainerHeaderDirective, RtContainerLeftSidenavDirective, RtContainerLeftSidenavPanelDirective, RtContainerRightSidenavDirective, RtContainerRightSidenavPanelDirective, RtContainerStateService, RtContainerToolbarCenterDirective, RtContainerToolbarLeftDirective, RtContainerToolbarRightDirective, RtCopyCellComponent, RtCounterComponent, RtCounterRowComponent, RtDataListAdditionalRowActionsDirective, RtDataListComponent, RtDataListCustomCellsDirective, RtDataListRowActionsDirective, RtDataListSelectorsDirective, RtDataListSettingsAsideComponent, RtDataListToolbarActionsDirective, RtDataListToolbarComponent, RtDataListToolbarSelectorsDirective, RtDataTableAdditionalRowActionsDirective, RtDataTableCellComponent, RtDataTableComponent, RtDataTableConfigService, RtDataTableCustomCellsDirective, RtDataTableFilterCellComponent, RtDataTableHeaderCellComponent, RtDataTableIconDirective, RtDataTableRowActionsDirective, RtDataTableRowClickDirective, RtDataTableSelectorsDirective, RtDataTableStopRowClickDirective, RtDatePickerComponent, RtDateRangeComponent, RtDayStampPipe, RtDeltaViewComponent, RtDetailListComponent, RtDetailRowComponent, RtDialogComponent, RtDialogFooterComponent, RtDialogHeaderComponent, RtDialogRef, RtDialogService, RtDownloadLinkComponent, RtDynamicListComponent, RtDynamicListToolbarActionsDirective, RtDynamicListToolbarSelectorsDirective, RtEmptyStateComponent, RtFieldComponent, RtFieldHintDirective, RtFileCardComponent, RtFileDropComponent, RtFileInputComponent, RtFileListComponent, RtFilterControlComponent, RtFormControlBase, RtHeaderComponent, RtIconButtonComponent, RtIconComponent, RtIconRegistry, RtInfiniteScrollDirective, RtInfoItemComponent, RtInputComponent, RtInputNumberComponent, RtKitLabelPipe, RtLiveBadgeComponent, RtLogoComponent, RtMarkdownTextComponent, RtMenuComponent, RtMenuItemComponent, RtMessageComponent, RtMoneyListComponent, RtMoneyRowComponent, RtMultiselectComponent, RtNightGridComponent, RtNoteComponent, RtNotificationsBellComponent, RtPageHeaderComponent, RtPaginationComponent, RtPhotoViewerComponent, RtPopoverDirective, RtRadioButtonComponent, RtRadiusDirective, RtRippleDirective, RtRouteAsideComponent, RtRowHasActionsPipe, RtScrollAreaComponent, RtScrollAreaContentDirective, RtScrollAreaFooterDirective, RtScrollAreaHeaderDirective, RtSectionNavComponent, RtSelectComponent, RtSelectTriggerDirective, RtSkeletonComponent, RtSkeletonWrapperComponent, RtSpinnerComponent, RtSplitButtonComponent, RtStatTileComponent, RtStepperComponent, RtTabDirective, RtTableCardDirective, RtTableComponent, RtTableFilterHeaderComponent, RtTableRowActionsDirective, RtTableRowDirective, RtTableSettingsAsideComponent, RtTableSettingsPanelComponent, RtTableSettingsRegistry, RtTableSortHeaderComponent, RtTabsComponent, RtTabsControlDirective, RtTagComponent, RtTextareaComponent, RtThemeScopeDirective, 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, comparePropNames, dataListColumnsFromItems, dataListExcludedAfterEntity, dataListExcludedAfterPageMarked, dataListExcludedAfterPageUnmarked, dataListMoveItem, dataListPageAfterSizeChange, dataListPageCount, dataListPageSizes, dataListSelectedAfterPage, dataListSettingItems, dataListSettingsChanged, dataListToggleHidden, dataTableAllOnPage, dataTableAnyOnPage, dataTableAriaSort, dataTableCellText, dataTableCellValue, dataTableColumnFilter, dataTableCopyButtonSide, dataTableDayToIso, dataTableDefaultOperator, dataTableFiltersWithOperator, dataTableFiltersWithValue, dataTableIconName, dataTableIsoToDay, dataTableKeysOf, dataTableNextSortOrder, dataTablePresetEntities, dataTableSortActive, dataTableWithEntity, dataTableWithPageEntities, dataTableWithoutPageEntities, defaultColumnItems, deriveFileTitle, displayedColumnKeys, fileNameFromUrl, filterCellsOf, filterOf, filterValueOf, filtersWithOperator, filtersWithValue, formatFileSize, getFileTypeIcon, iconsName, indexFromParam, indexFromScroll, isColumnSortable, nextPhotoIndex, nextSort, normalizeQuillDelta, paramFromIndex, parseInline, parseMarkdown, provideRtIcons, provideRtKit, provideRtKitLabels, resolveColumns, rowHasAvailableActions, rtAsideUnsavedGuard, rtKitDefault, rtKitLabel, searchDebounce, shouldRenderPhoto, sortDirectionOf, startOperatorOf, withoutLockedHidden };
8069
+ export type { IMessageBusEvent, IQuillDelta, IQuillDeltaAttributes, IQuillDeltaOp, IRtAsideConfig, IRtDataTableIconContext, IRtDataTableRowContext, IRtDataTableRowHost, IRtDialogConfig, IRtMarkdownBlockNode, IRtMarkdownInlineNode, IRtMarkdownListItem, IRtPicture, IRtPictureSource, IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, TIconCategory, TRtAsideContentLayout, TRtAsidePosition, TRtAsideSize, TRtConsumerHandleName, TRtDataTableAriaSort, TRtDataTableFilterValue, TRtDataTableFilters, TRtDesignTokenName, TRtDialogSize, TRtKitLabelKey, TRtKitLabelMap, TRtKitLabelParams, TRtKitTranslator, TRtRadius, TRtSkeletonShape, TRtSkeletonSize, TRtTableAriaSort, TRtTableFilterInput, TRtTableFilterValue, TRtTextareaResize };