@rt-tools/ui-kit-v2 0.33.0 → 0.34.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 (217) hide show
  1. package/README.md +4 -3
  2. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +1 -0
  3. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
  4. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +92 -5
  5. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
  6. package/fesm2022/rt-tools-ui-kit-v2-badge.mjs +191 -0
  7. package/fesm2022/rt-tools-ui-kit-v2-badge.mjs.map +1 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +3 -2
  9. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -1
  10. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +6 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -1
  12. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +35 -4
  13. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
  14. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs +13 -4
  15. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs.map +1 -1
  16. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +245 -60
  17. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -1
  18. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +30 -5
  19. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
  20. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +113 -2
  21. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  22. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +14 -3
  23. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
  24. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +17 -3
  25. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
  26. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +6 -3
  27. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
  28. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +2 -2
  29. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
  30. package/fesm2022/rt-tools-ui-kit-v2-divider.mjs +112 -0
  31. package/fesm2022/rt-tools-ui-kit-v2-divider.mjs.map +1 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +1 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -1
  34. package/fesm2022/rt-tools-ui-kit-v2-drawer.mjs +854 -0
  35. package/fesm2022/rt-tools-ui-kit-v2-drawer.mjs.map +1 -0
  36. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +16 -5
  37. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
  38. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +580 -65
  39. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
  40. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +203 -15
  41. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
  42. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +40 -8
  43. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
  44. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +1 -0
  45. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
  46. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +7 -3
  47. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
  48. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +53 -2
  49. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -1
  50. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +14 -4
  51. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -1
  52. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +6 -3
  53. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -1
  54. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +16 -5
  55. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
  56. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +1 -0
  57. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
  58. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +14 -4
  59. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -1
  60. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +3 -2
  61. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
  62. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +207 -7
  63. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
  64. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
  66. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +3 -2
  67. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
  68. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +2 -0
  69. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
  70. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +3 -2
  71. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
  72. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs +3 -2
  73. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -1
  74. package/fesm2022/rt-tools-ui-kit-v2-progress-bar.mjs +171 -0
  75. package/fesm2022/rt-tools-ui-kit-v2-progress-bar.mjs.map +1 -0
  76. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +176 -6
  77. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
  78. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +2 -1
  79. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  80. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +1 -0
  81. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  82. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +142 -23
  83. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
  84. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +22 -9
  85. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  86. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +3 -2
  87. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -1
  88. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +105 -8
  89. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  90. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +13 -2
  91. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  92. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +609 -33
  93. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  94. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +1 -0
  95. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
  96. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +45 -7
  97. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
  98. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +2 -2
  99. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
  100. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +11 -2
  101. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  102. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +152 -11
  103. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  104. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +199 -17
  105. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
  106. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +35 -5
  107. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
  108. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +14 -4
  109. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -1
  110. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +6 -3
  111. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -1
  112. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +21 -6
  113. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  114. package/fesm2022/rt-tools-ui-kit-v2.mjs +4 -0
  115. package/package.json +17 -1
  116. package/src/assets/icons/volume-off.svg +2 -1
  117. package/src/lib/components/autocomplete/CONTEXT.md +25 -14
  118. package/src/lib/components/autocomplete/rt-autocomplete.component.scss +19 -0
  119. package/src/lib/components/badge/CONTEXT.md +33 -0
  120. package/src/lib/components/badge/rt-badge.directive.scss +104 -0
  121. package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +2 -2
  122. package/src/lib/components/button/CONTEXT.md +5 -0
  123. package/src/lib/components/button/rt-button.directive.scss +3 -1
  124. package/src/lib/components/checkbox/CONTEXT.md +15 -8
  125. package/src/lib/components/color-palette/rt-color-palette.component.scss +2 -2
  126. package/src/lib/components/container/CONTEXT.md +23 -6
  127. package/src/lib/components/container/rt-container.component.scss +90 -1
  128. package/src/lib/components/copy-value/CONTEXT.md +6 -5
  129. package/src/lib/components/copy-value/rt-copy-value.component.scss +16 -0
  130. package/src/lib/components/date-picker/rt-date-picker.component.scss +7 -0
  131. package/src/lib/components/date-range/rt-date-range.component.scss +7 -0
  132. package/src/lib/components/divider/CONTEXT.md +21 -0
  133. package/src/lib/components/divider/rt-divider.component.scss +34 -0
  134. package/src/lib/components/drawer/CONTEXT.md +73 -0
  135. package/src/lib/components/drawer/rt-drawer-container.component.scss +19 -0
  136. package/src/lib/components/drawer/rt-drawer.component.scss +168 -0
  137. package/src/lib/components/drawer/rt-resize-handle.component.scss +42 -0
  138. package/src/lib/components/dynamic-selector/CONTEXT.md +5 -0
  139. package/src/lib/components/expansion-panel/CONTEXT.md +32 -8
  140. package/src/lib/components/expansion-panel/rt-expansion-panel.component.scss +67 -2
  141. package/src/lib/components/field/CONTEXT.md +43 -0
  142. package/src/lib/components/field/rt-field-label-inside.scss +179 -0
  143. package/src/lib/components/field/rt-field.component.scss +51 -2
  144. package/src/lib/components/icon-button/CONTEXT.md +17 -15
  145. package/src/lib/components/icon-button/rt-icon-button.component.scss +3 -1
  146. package/src/lib/components/inline-edit/rt-inline-edit.component.scss +4 -4
  147. package/src/lib/components/input/CONTEXT.md +45 -11
  148. package/src/lib/components/input/rt-input-floating-label.scss +192 -0
  149. package/src/lib/components/input/rt-input-icons.scss +105 -0
  150. package/src/lib/components/input/rt-input.component.scss +91 -13
  151. package/src/lib/components/input-number/CONTEXT.md +7 -0
  152. package/src/lib/components/input-number/rt-input-number.component.scss +58 -1
  153. package/src/lib/components/menu/CONTEXT.md +1 -0
  154. package/src/lib/components/multiselect/CONTEXT.md +2 -1
  155. package/src/lib/components/multiselect/rt-multiselect.component.scss +7 -0
  156. package/src/lib/components/pagination/CONTEXT.md +3 -0
  157. package/src/lib/components/pagination/rt-pagination.component.scss +7 -0
  158. package/src/lib/components/progress-bar/CONTEXT.md +22 -0
  159. package/src/lib/components/progress-bar/rt-progress-bar.component.scss +77 -0
  160. package/src/lib/components/radio-button/CONTEXT.md +9 -0
  161. package/src/lib/components/radio-button/rt-radio-group.component.scss +13 -0
  162. package/src/lib/components/select/CONTEXT.md +28 -0
  163. package/src/lib/components/select/rt-select-clear.scss +88 -0
  164. package/src/lib/components/select/rt-select-floating-label.scss +155 -0
  165. package/src/lib/components/select/rt-select-material.scss +54 -0
  166. package/src/lib/components/select/rt-select.component.scss +54 -16
  167. package/src/lib/components/side-menu/CONTEXT.md +5 -0
  168. package/src/lib/components/speed-menu/rt-speed-menu.component.scss +5 -5
  169. package/src/lib/components/stepper/CONTEXT.md +13 -5
  170. package/src/lib/components/stepper/rt-stepper.component.scss +93 -0
  171. package/src/lib/components/tabs/CONTEXT.md +57 -9
  172. package/src/lib/components/tabs/rt-tabs.component.scss +201 -5
  173. package/src/lib/components/textarea/CONTEXT.md +12 -1
  174. package/src/lib/components/textarea/rt-textarea.component.scss +116 -1
  175. package/src/lib/components/toast/CONTEXT.md +23 -0
  176. package/src/lib/components/toast/rt-toast.component.scss +37 -0
  177. package/src/lib/components/toggle-button-group/CONTEXT.md +24 -4
  178. package/src/lib/components/toggle-button-group/rt-toggle-button-group-chips.scss +151 -0
  179. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +35 -0
  180. package/src/lib/components/tooltip/CONTEXT.md +7 -1
  181. package/src/lib/components/tree/rt-tree.component.scss +2 -2
  182. package/src/styles/_color-scheme.scss +1 -1
  183. package/src/styles/_density.scss +48 -0
  184. package/src/styles/_index.scss +8 -0
  185. package/src/styles/_preset-material.scss +160 -70
  186. package/src/styles/_primitives.scss +1 -0
  187. package/src/styles/_semantic-navigation.scss +117 -0
  188. package/src/styles/_semantic.scss +29 -98
  189. package/src/styles/_theme-dark.scss +8 -0
  190. package/styles/tokens.css +2066 -1134
  191. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +34 -0
  192. package/types/rt-tools-ui-kit-v2-badge.d.ts +71 -0
  193. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +17 -3
  194. package/types/rt-tools-ui-kit-v2-container.d.ts +65 -9
  195. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +11 -1
  196. package/types/rt-tools-ui-kit-v2-core.d.ts +109 -4
  197. package/types/rt-tools-ui-kit-v2-divider.d.ts +29 -0
  198. package/types/rt-tools-ui-kit-v2-drawer.d.ts +257 -0
  199. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +240 -25
  200. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +87 -3
  201. package/types/rt-tools-ui-kit-v2-field.d.ts +18 -1
  202. package/types/rt-tools-ui-kit-v2-form-control.d.ts +42 -4
  203. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +2 -1
  204. package/types/rt-tools-ui-kit-v2-input-number.d.ts +1 -0
  205. package/types/rt-tools-ui-kit-v2-input.d.ts +98 -4
  206. package/types/rt-tools-ui-kit-v2-progress-bar.d.ts +53 -0
  207. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +80 -1
  208. package/types/rt-tools-ui-kit-v2-select.d.ts +65 -1
  209. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +3 -0
  210. package/types/rt-tools-ui-kit-v2-stepper.d.ts +57 -4
  211. package/types/rt-tools-ui-kit-v2-tabs.d.ts +291 -6
  212. package/types/rt-tools-ui-kit-v2-textarea.d.ts +16 -0
  213. package/types/rt-tools-ui-kit-v2-toast.d.ts +38 -2
  214. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +83 -3
  215. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +17 -2
  216. package/types/rt-tools-ui-kit-v2.d.ts +4 -0
  217. package/src/lib/components/dynamic-selector/stories/component/test-dynamic-selector-popup-frame.component.scss +0 -6
@@ -57,6 +57,22 @@ export declare class RtAutocompleteComponent<TItem> extends RtFormControlBase<TI
57
57
  readonly itemTemplate: InputSignal<TemplateRef<{
58
58
  $implicit: TItem;
59
59
  }> | null>;
60
+ /**
61
+ * Подсказки грузятся: в панели строка со спиннером — вместо пустого результата при первой загрузке
62
+ * и под списком при подгрузке следующей страницы.
63
+ */
64
+ readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
65
+ /** Свой текст пустого результата; `null` — подпись кита `uiNothingFound`. */
66
+ readonly emptyText: InputSignal<string | null>;
67
+ /** Своя разметка пустого результата; сильнее `emptyText`. Обстановка — набранная строка. */
68
+ readonly emptyTemplate: InputSignal<TemplateRef<{
69
+ $implicit: string;
70
+ }> | null>;
71
+ /**
72
+ * Панель долистали до конца — пора просить следующую страницу. Не приходит, пока идёт загрузка, и
73
+ * приходит один раз на каждую длину списка: прокрутка у дна до прихода страницы её не повторяет.
74
+ */
75
+ readonly scrolledToEnd: OutputEmitterRef<void>;
60
76
  readonly complete: OutputEmitterRef<IRtAutocomplete.CompleteEvent>;
61
77
  readonly itemSelect: OutputEmitterRef<TItem>;
62
78
  writeValue(value: TItem | null): void;
@@ -67,6 +83,8 @@ export declare class RtAutocompleteComponent<TItem> extends RtFormControlBase<TI
67
83
  protected onInput(event: Event): void;
68
84
  protected onFocus(): void;
69
85
  protected onBlur(): void;
86
+ /** Прокрутка панели: у дна — сообщить, что пора следующая страница. */
87
+ protected onPanelScroll(event: Event): void;
70
88
  protected onClosed(): void;
71
89
  protected onSelect(item: TItem): void;
72
90
  protected onInputKeydown(event: KeyboardEvent): void;
@@ -107,7 +125,23 @@ export declare class RtAutocompleteComponent<TItem> extends RtFormControlBase<TI
107
125
  "required": false;
108
126
  "isSignal": true;
109
127
  };
128
+ "loading": {
129
+ "alias": "loading";
130
+ "required": false;
131
+ "isSignal": true;
132
+ };
133
+ "emptyText": {
134
+ "alias": "emptyText";
135
+ "required": false;
136
+ "isSignal": true;
137
+ };
138
+ "emptyTemplate": {
139
+ "alias": "emptyTemplate";
140
+ "required": false;
141
+ "isSignal": true;
142
+ };
110
143
  }, {
144
+ "scrolledToEnd": "scrolledToEnd";
111
145
  "complete": "complete";
112
146
  "itemSelect": "itemSelect";
113
147
  }, never, never, true, [{
@@ -0,0 +1,71 @@
1
+ import * as i0 from "@angular/core";
2
+ import { InputSignal, InputSignalWithTransform, Signal } from "@angular/core";
3
+ export declare namespace IRtBadge {
4
+ /** Значение пузырька: число или короткая строка; `null` — пузырька нет. */
5
+ type Value = string | number | null;
6
+ /** Что принимает вход: необязательное поле данных приходит `undefined`, и это тоже «нет». */
7
+ type ValueInput = Value | undefined;
8
+ /** Угол хоста, у которого стоит пузырёк: сверху или снизу, после или до содержимого. */
9
+ type Position = 'above-after' | 'above-before' | 'below-after' | 'below-before';
10
+ /** Ступень размера: `sm` — точка под короткое число, `md` — умолчание. */
11
+ type Size = 'sm' | 'md';
12
+ /** Цвет пузырька — заливка кнопочной палитры и её цвет текста. */
13
+ type Color = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
14
+ }
15
+ /**
16
+ * Пузырёк-счётчик на углу любого элемента: «Отели 12» у подписи вкладки, непрочитанные у пункта
17
+ * меню, отметка на дне календаря. Своей обёртки нет: директива ставится на сам элемент, и пузырёк
18
+ * встаёт в него последним узлом.
19
+ *
20
+ * С `rtBadgeOverlap` (умолчание) пузырёк накрывает угол хоста, как у значка; без него стоит рядом,
21
+ * за краем хоста, — так подпись не перекрывается. Пустое значение и `rtBadgeHidden` убирают его.
22
+ *
23
+ * Стили директивы подключены общим набором кита: своего представления у неё нет.
24
+ */
25
+ export declare class RtBadgeDirective {
26
+ #private;
27
+ /** Текст пузырька: число как есть, пустая строка и `null` — пузырька нет. */
28
+ protected readonly text: Signal<string>;
29
+ protected readonly classes: Signal<readonly string[]>;
30
+ readonly rtBadge: InputSignalWithTransform<IRtBadge.Value, IRtBadge.ValueInput>;
31
+ /** Пузырёк накрывает угол хоста; без этого стоит рядом, за его краем. */
32
+ readonly rtBadgeOverlap: InputSignalWithTransform<boolean, unknown>;
33
+ readonly rtBadgeHidden: InputSignalWithTransform<boolean, unknown>;
34
+ readonly rtBadgePosition: InputSignal<IRtBadge.Position>;
35
+ readonly rtBadgeSize: InputSignal<IRtBadge.Size>;
36
+ readonly rtBadgeColor: InputSignal<IRtBadge.Color>;
37
+ constructor();
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtBadgeDirective, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtBadgeDirective, "[rtBadge]", never, {
40
+ "rtBadge": {
41
+ "alias": "rtBadge";
42
+ "required": false;
43
+ "isSignal": true;
44
+ };
45
+ "rtBadgeOverlap": {
46
+ "alias": "rtBadgeOverlap";
47
+ "required": false;
48
+ "isSignal": true;
49
+ };
50
+ "rtBadgeHidden": {
51
+ "alias": "rtBadgeHidden";
52
+ "required": false;
53
+ "isSignal": true;
54
+ };
55
+ "rtBadgePosition": {
56
+ "alias": "rtBadgePosition";
57
+ "required": false;
58
+ "isSignal": true;
59
+ };
60
+ "rtBadgeSize": {
61
+ "alias": "rtBadgeSize";
62
+ "required": false;
63
+ "isSignal": true;
64
+ };
65
+ "rtBadgeColor": {
66
+ "alias": "rtBadgeColor";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
70
+ }, {}, never, never, true, never>;
71
+ }
@@ -1,6 +1,6 @@
1
1
  import { BooleanInput } from "@angular/cdk/coercion";
2
2
  import * as i0 from "@angular/core";
3
- import { InputSignal, InputSignalWithTransform, Signal, WritableSignal } from "@angular/core";
3
+ import { InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal } from "@angular/core";
4
4
  import { ControlValueAccessor } from "@angular/forms";
5
5
  import * as i1 from "@rt-tools/ui-kit-v2/radius";
6
6
  /**
@@ -20,6 +20,9 @@ import * as i1 from "@rt-tools/ui-kit-v2/radius";
20
20
  * и мирроринг входа затирал бы её слово — контрол, созданный отключённым,
21
21
  * оказывался бы кликабельным.
22
22
  *
23
+ * Без формы отметка ставится входом `checked`, а смена сообщается выходом `checkedChange` — так же,
24
+ * как у радиокнопки. Заданный вход решает раньше модели формы; выход приходит и при работе с формой.
25
+ *
23
26
  * `indeterminate` — чисто визуальное mixed-состояние; клик по нему разрешается
24
27
  * в `true` (стандартное поведение tri-state чекбокса).
25
28
  *
@@ -27,11 +30,15 @@ import * as i1 from "@rt-tools/ui-kit-v2/radius";
27
30
  */
28
31
  export declare class RtCheckboxComponent implements ControlValueAccessor {
29
32
  #private;
30
- protected readonly isChecked: WritableSignal<boolean>;
33
+ protected readonly isChecked: Signal<boolean>;
31
34
  protected readonly isDisabled: Signal<boolean>;
32
35
  readonly inputId: InputSignal<string | null>;
33
36
  readonly ariaLabel: InputSignal<string | null>;
34
37
  readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
38
+ /** Отметка без формы; не заданный вход оставляет решение форме. */
39
+ readonly checked: InputSignalWithTransform<boolean | null, BooleanInput | null | undefined>;
40
+ /** Отметку сменил человек: нажатием, пробелом или Enter. */
41
+ readonly checkedChange: OutputEmitterRef<boolean>;
35
42
  readonly indeterminate: InputSignalWithTransform<boolean, BooleanInput>;
36
43
  writeValue(value: boolean | null | undefined): void;
37
44
  registerOnChange(fn: (value: boolean) => void): void;
@@ -55,12 +62,19 @@ export declare class RtCheckboxComponent implements ControlValueAccessor {
55
62
  "required": false;
56
63
  "isSignal": true;
57
64
  };
65
+ "checked": {
66
+ "alias": "checked";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
58
70
  "indeterminate": {
59
71
  "alias": "indeterminate";
60
72
  "required": false;
61
73
  "isSignal": true;
62
74
  };
63
- }, {}, never, ["*"], true, [{
75
+ }, {
76
+ "checkedChange": "checkedChange";
77
+ }, never, ["*"], true, [{
64
78
  directive: typeof i1.RtRadiusDirective;
65
79
  inputs: {
66
80
  "radius": "radius";
@@ -1,19 +1,26 @@
1
1
  import * as i0 from "@angular/core";
2
- import { DestroyRef, InputSignal, OnDestroy, OnInit, OutputEmitterRef, Signal, TemplateRef, WritableSignal } from "@angular/core";
2
+ import { DestroyRef, ElementRef, InputSignal, InputSignalWithTransform, ModelSignal, OnDestroy, OnInit, OutputEmitterRef, Signal, TemplateRef, WritableSignal } from "@angular/core";
3
3
  import { AbstractControl } from "@angular/forms";
4
4
  import { ActivatedRoute, ActivatedRouteSnapshot, CanDeactivateFn, Params, Router } from "@angular/router";
5
5
  import { Observable } from "rxjs";
6
6
  import { IRtAsideUnsavedGuard } from "@rt-tools/ui-kit-v2/aside";
7
+ /** Где стоит правая панель: поверх страницы в оверлее или колонкой рядом с содержимым. */
8
+ export type TRtContainerRightMode = 'over' | 'side';
7
9
  /**
8
10
  * Multi-slot container с CSS-grid layout. Slot consumers wrap content в
9
11
  * `*rtContainerXxx` structural directives, контейнер подхватывает шаблоны через
10
12
  * `contentChild(..., { read: TemplateRef })` + рендерит через `*ngTemplateOutlet`.
11
13
  *
12
14
  * Slots: `header`, `leftSidenav`, `toolbarLeft/Center/Right`, `content` — живут в
13
- * CSS-grid. `rightSidenav` рендерится через CDK Overlay поверх grid'а (slide-in
14
- * side-sheet), а не как grid-cell — overlay переиспользует глобальные
15
+ * CSS-grid. `rightSidenav` по умолчанию (`rightMode="over"`) рендерится через CDK Overlay
16
+ * поверх grid'а (slide-in side-sheet) — overlay переиспользует глобальные
15
17
  * `rt-aside-overlay` / `rt-aside-backdrop` классы из rt-aside, чтобы анимация и
16
- * backdrop вели себя идентично программно открываемым asides.
18
+ * backdrop вели себя идентично программно открываемым asides. С `rightMode="side"` та же
19
+ * панель стоит колонкой справа от содержимого и сужает его; режим переключается на ходу,
20
+ * и при переключении содержимое панели создаётся заново на новом месте.
21
+ *
22
+ * Ширину правой панели задаёт `rightWidth` (без него — по содержимому), а с `rightResizable`
23
+ * у её левого края стоит ручка: ширину тянут указателем и двигают стрелками.
17
24
  *
18
25
  * Driver-directives (`[rtContainerLeftSidenavPanel/RightSidenavPanel]`) общаются с
19
26
  * контейнером через `RtContainerStateService` (для левой docked) и через
@@ -28,6 +35,13 @@ export declare class RtContainerComponent {
28
35
  protected readonly toolbarCenterTpl: Signal<TemplateRef<unknown> | undefined>;
29
36
  protected readonly toolbarRightTpl: Signal<TemplateRef<unknown> | undefined>;
30
37
  protected readonly contentTpl: Signal<TemplateRef<unknown> | undefined>;
38
+ /** Обёртка правой панели — ширина и ручка; ставится и в оверлей, и в колонку сетки. */
39
+ protected readonly rightPaneTpl: Signal<TemplateRef<unknown> | undefined>;
40
+ protected readonly rightCell: Signal<ElementRef<HTMLElement> | undefined>;
41
+ /** Ручку тянут: колонка панели гасит переход ширины. */
42
+ protected readonly rightResizing: WritableSignal<boolean>;
43
+ /** Ширина, которую рисует правая панель: вход в пределах, или `null` — по содержимому. */
44
+ protected readonly rightShownWidth: Signal<number | null>;
31
45
  /**
32
46
  * Поведение левого sidenav на мобилке (<=768px): `keep` — остаётся боковой
33
47
  * колонкой (по умолчанию, десктоп-стиль); `bottom` — сворачивается в нижний
@@ -41,21 +55,32 @@ export declare class RtContainerComponent {
41
55
  * каждая сама по себе (app-shell раскладка, напр. чаты бот-панели).
42
56
  */
43
57
  readonly height: InputSignal<'auto' | 'viewport'>;
58
+ /** `over` — правая панель поверх страницы (по умолчанию), `side` — колонкой рядом с содержимым. */
59
+ readonly rightMode: InputSignal<TRtContainerRightMode>;
60
+ /** Подложка под правой панелью в режиме `over`. Без неё страница остаётся доступной и не замирает. */
61
+ readonly rightBackdrop: InputSignalWithTransform<boolean, unknown>;
62
+ /** Ширина правой панели в пикселях; `null` — по содержимому, как прежде. Ручка пишет сюда. */
63
+ readonly rightWidth: ModelSignal<number | null>;
64
+ /** Ручка ширины у левого края правой панели. */
65
+ readonly rightResizable: InputSignalWithTransform<boolean, unknown>;
66
+ readonly rightMinWidth: InputSignalWithTransform<number, unknown>;
67
+ readonly rightMaxWidth: InputSignalWithTransform<number, unknown>;
44
68
  readonly backdropClick: OutputEmitterRef<void>;
45
69
  readonly rightOpened: OutputEmitterRef<void>;
46
70
  readonly rightClosed: OutputEmitterRef<void>;
47
71
  readonly rightOpen: WritableSignal<boolean>;
48
72
  /**
49
- * `true` когда CDK Overlay для правой sidenav создан и attache'нут (см.
50
- * effect в constructor'е). Дёргать panel.open() из консьюмера можно только
51
- * когда это true — иначе openRight() видит null overlayRef и early-return'ит,
52
- * --entering modifier остаётся, панель остаётся за экраном. Re-exposed на
53
- * driver через `panel.ready` для удобства route-driven dialog'ов.
73
+ * `true` когда правой панели есть где открыться: в режиме `over` — CDK Overlay создан и
74
+ * attache'нут (см. effect в constructor'е), в режиме `side` — шаблон панели объявлен.
75
+ * Дёргать panel.open() из консьюмера можно только когда это true — иначе openRight()
76
+ * видит null overlayRef и early-return'ит, --entering modifier остаётся, панель остаётся за
77
+ * экраном. Re-exposed на driver через `panel.ready` для удобства route-driven dialog'ов.
54
78
  */
55
79
  readonly rightOverlayReady: Signal<boolean>;
56
80
  constructor();
57
81
  openRight(): void;
58
82
  closeRight(): void;
83
+ protected onRightWidth(width: number): void;
59
84
  static ɵfac: i0.ɵɵFactoryDeclaration<RtContainerComponent, never>;
60
85
  static ɵcmp: i0.ɵɵComponentDeclaration<RtContainerComponent, "rt-container", never, {
61
86
  "mobileLeftNav": {
@@ -68,7 +93,38 @@ export declare class RtContainerComponent {
68
93
  "required": false;
69
94
  "isSignal": true;
70
95
  };
96
+ "rightMode": {
97
+ "alias": "rightMode";
98
+ "required": false;
99
+ "isSignal": true;
100
+ };
101
+ "rightBackdrop": {
102
+ "alias": "rightBackdrop";
103
+ "required": false;
104
+ "isSignal": true;
105
+ };
106
+ "rightWidth": {
107
+ "alias": "rightWidth";
108
+ "required": false;
109
+ "isSignal": true;
110
+ };
111
+ "rightResizable": {
112
+ "alias": "rightResizable";
113
+ "required": false;
114
+ "isSignal": true;
115
+ };
116
+ "rightMinWidth": {
117
+ "alias": "rightMinWidth";
118
+ "required": false;
119
+ "isSignal": true;
120
+ };
121
+ "rightMaxWidth": {
122
+ "alias": "rightMaxWidth";
123
+ "required": false;
124
+ "isSignal": true;
125
+ };
71
126
  }, {
127
+ "rightWidth": "rightWidthChange";
72
128
  "backdropClick": "backdropClick";
73
129
  "rightOpened": "rightOpened";
74
130
  "rightClosed": "rightClosed";
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- import { InputSignal, OutputEmitterRef, Signal, WritableSignal } from "@angular/core";
2
+ import { InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal, WritableSignal } from "@angular/core";
3
3
  import { IRtIcon } from "@rt-tools/ui-kit-v2/core";
4
4
  /**
5
5
  * Значение, которое человек переносит в другое место: номер обращения, ключ, идентификатор.
@@ -17,6 +17,11 @@ export declare class RtCopyValueComponent {
17
17
  readonly label: InputSignal<string>;
18
18
  /** Подсказка и имя кнопки в покое; пусто — переведённое «Copy». */
19
19
  readonly copyLabel: InputSignal<string>;
20
+ /**
21
+ * Значение переносится по строкам и прокручивается в своей высоте, а не режется многоточием:
22
+ * так копируют текст ошибки или журнал, который читают целиком.
23
+ */
24
+ readonly wrap: InputSignalWithTransform<boolean, unknown>;
20
25
  /** Значение ушло в буфер. */
21
26
  readonly copiedValue: OutputEmitterRef<string>;
22
27
  constructor();
@@ -38,6 +43,11 @@ export declare class RtCopyValueComponent {
38
43
  "required": false;
39
44
  "isSignal": true;
40
45
  };
46
+ "wrap": {
47
+ "alias": "wrap";
48
+ "required": false;
49
+ "isSignal": true;
50
+ };
41
51
  }, {
42
52
  "copiedValue": "copiedValue";
43
53
  }, never, never, true, never>;