@rt-tools/ui-kit-v2 0.34.3 → 0.34.4
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.
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +4 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +4 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +4 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +103 -6
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +6 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-pdf-viewer.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-pdf-viewer.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +10 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +6 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +8 -0
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +2 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/icon-button/CONTEXT.md +32 -16
- package/src/lib/components/icon-button/rt-icon-button.component.scss +17 -9
- package/src/lib/components/input/CONTEXT.md +6 -0
- package/src/styles/_form.scss +14 -1
- package/styles/tokens.css +13 -1
- package/types/rt-tools-ui-kit-v2-icon-button.d.ts +38 -2
- package/types/rt-tools-ui-kit-v2-input.d.ts +2 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BooleanInput, NumberInput } from "@angular/cdk/coercion";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import { InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal } from "@angular/core";
|
|
3
|
+
import { ElementRef, InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal } from "@angular/core";
|
|
4
|
+
import { RouterLink } from "@angular/router";
|
|
4
5
|
import { IRtIcon } from "@rt-tools/ui-kit-v2/core";
|
|
5
6
|
import * as i1 from "@rt-tools/ui-kit-v2/radius";
|
|
6
7
|
/**
|
|
@@ -19,11 +20,14 @@ export declare namespace IRtIconButton {
|
|
|
19
20
|
type Size = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
20
21
|
/** HTML-тип нативного `<button>`. */
|
|
21
22
|
type Type = 'button' | 'submit';
|
|
23
|
+
/** Какую панель открывает кнопка — значения `aria-haspopup`. */
|
|
24
|
+
type HasPopup = 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* Универсальная icon-only кнопка кита.
|
|
25
28
|
*
|
|
26
|
-
* Рендерит свой собственный `<button type="...">` внутри template (НЕ host-button)
|
|
29
|
+
* Рендерит свой собственный `<button type="...">` внутри template (НЕ host-button), а с входом
|
|
30
|
+
* `link` — ссылку `<a>` с тем же видом: её можно открыть в новой вкладке, и скринридер называет её ссылкой.
|
|
27
31
|
* Все цвета и размеры — через семантические `--rt-*` токены; геометрия квадрата
|
|
28
32
|
* берётся из `--rt-icon-button-size`, а без него — из шага `size`. Свойство, заданное на теге
|
|
29
33
|
* `<rt-icon-button>` или выше, доходит до кнопки; так же и `--rt-icon-button-bg`.
|
|
@@ -44,6 +48,14 @@ export declare class RtIconButtonComponent {
|
|
|
44
48
|
* должна остаться большой — в неё целятся пальцем.
|
|
45
49
|
*/
|
|
46
50
|
protected readonly resolvedIconSize: Signal<IRtIcon.Size>;
|
|
51
|
+
protected readonly buttonEl: Signal<ElementRef<HTMLButtonElement> | undefined>;
|
|
52
|
+
protected readonly linkEl: Signal<ElementRef<HTMLAnchorElement> | undefined>;
|
|
53
|
+
/** Компонент рисует ссылку: задан `link`. */
|
|
54
|
+
protected readonly isLink: Signal<boolean>;
|
|
55
|
+
/** Адрес ссылки: у недоступной или загружающейся его нет, и ссылка никуда не ведёт. */
|
|
56
|
+
protected readonly linkTarget: Signal<RouterLink['routerLink']>;
|
|
57
|
+
/** Недоступная ссылка выпадает из порядка Tab, как отключённая кнопка. */
|
|
58
|
+
protected readonly linkTabIndex: Signal<number>;
|
|
47
59
|
/** Кнопка отключена, если установлен disabled ИЛИ loading. */
|
|
48
60
|
protected readonly isDisabled: Signal<boolean>;
|
|
49
61
|
/**
|
|
@@ -110,10 +122,24 @@ export declare class RtIconButtonComponent {
|
|
|
110
122
|
* кнопка ничего не раскрывает, и атрибута нет.
|
|
111
123
|
*/
|
|
112
124
|
readonly expanded: InputSignal<boolean | null>;
|
|
125
|
+
/**
|
|
126
|
+
* Какую панель открывает кнопка — превращается в `aria-haspopup`: `'menu'` у кнопки, которая
|
|
127
|
+
* раскрывает меню. `null` — атрибута нет.
|
|
128
|
+
*/
|
|
129
|
+
readonly ariaHaspopup: InputSignal<IRtIconButton.HasPopup | null>;
|
|
130
|
+
/**
|
|
131
|
+
* Команды маршрута приложения, как у `routerLink`. Задан — компонент рисует ссылку `<a href>` с тем
|
|
132
|
+
* же видом, подсказкой и рябью: Ctrl/Cmd-click, Shift-click, средняя кнопка и контекстное меню
|
|
133
|
+
* браузера открывают её в новой вкладке или окне. `type`, `active` и `aria-pressed` у ссылки не
|
|
134
|
+
* пишутся. `null` — обычная кнопка.
|
|
135
|
+
*/
|
|
136
|
+
readonly link: InputSignal<RouterLink['routerLink']>;
|
|
113
137
|
/** Бейдж-индикатор (dot top-right через BEM-модификатор). */
|
|
114
138
|
readonly indicator: InputSignalWithTransform<boolean, BooleanInput>;
|
|
115
139
|
/** Эмиттит MouseEvent при клике (только когда не disabled и не loading). */
|
|
116
140
|
readonly clicked: OutputEmitterRef<MouseEvent>;
|
|
141
|
+
/** Фокусирует кнопку или ссылку внутри — например, когда закрылось меню, которое она открыла. */
|
|
142
|
+
focus(options?: FocusOptions): void;
|
|
117
143
|
protected onClick(event: MouseEvent): void;
|
|
118
144
|
static ɵfac: i0.ɵɵFactoryDeclaration<RtIconButtonComponent, never>;
|
|
119
145
|
static ɵcmp: i0.ɵɵComponentDeclaration<RtIconButtonComponent, "rt-icon-button", never, {
|
|
@@ -197,6 +223,16 @@ export declare class RtIconButtonComponent {
|
|
|
197
223
|
"required": false;
|
|
198
224
|
"isSignal": true;
|
|
199
225
|
};
|
|
226
|
+
"ariaHaspopup": {
|
|
227
|
+
"alias": "ariaHaspopup";
|
|
228
|
+
"required": false;
|
|
229
|
+
"isSignal": true;
|
|
230
|
+
};
|
|
231
|
+
"link": {
|
|
232
|
+
"alias": "link";
|
|
233
|
+
"required": false;
|
|
234
|
+
"isSignal": true;
|
|
235
|
+
};
|
|
200
236
|
"indicator": {
|
|
201
237
|
"alias": "indicator";
|
|
202
238
|
"required": false;
|
|
@@ -84,6 +84,8 @@ export declare class RtInputComponent extends RtFormControlBase<string> {
|
|
|
84
84
|
* Поэтому расхождение с полем пишется в него сразу.
|
|
85
85
|
*/
|
|
86
86
|
writeValue(value: string | null): void;
|
|
87
|
+
/** Фокусирует поле ввода внутри — например, поиск, когда открылась его панель. */
|
|
88
|
+
focus(options?: FocusOptions): void;
|
|
87
89
|
protected getEmptyValue(): string;
|
|
88
90
|
protected focusAfterClear(): void;
|
|
89
91
|
/**
|