@rt-tools/ui-kit-v2 0.11.0 → 0.12.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.
- package/README.md +110 -5
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +947 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs +11327 -8086
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +8 -1
- package/rt-tools-ui-kit-v2-0.12.0.tgz +0 -0
- package/src/assets/fonts/montserrat-cyrillic-ext-wght-italic.woff2 +0 -0
- package/src/assets/fonts/montserrat-cyrillic-ext-wght-normal.woff2 +0 -0
- package/src/assets/fonts/montserrat-cyrillic-wght-italic.woff2 +0 -0
- package/src/assets/fonts/montserrat-cyrillic-wght-normal.woff2 +0 -0
- package/src/assets/fonts/montserrat-latin-ext-wght-italic.woff2 +0 -0
- package/src/assets/fonts/montserrat-latin-ext-wght-normal.woff2 +0 -0
- package/src/assets/fonts/montserrat-latin-wght-italic.woff2 +0 -0
- package/src/assets/fonts/montserrat-latin-wght-normal.woff2 +0 -0
- package/src/assets/icons/arrows.svg +9 -0
- package/src/assets/icons/equals.svg +8 -0
- package/src/assets/icons/user-off.svg +16 -0
- package/src/assets/icons-material/NOTICE.md +6 -2
- package/src/assets/icons-material/arrow-left.fill.svg +3 -0
- package/src/assets/icons-material/arrow-left.svg +1 -1
- package/src/assets/icons-material/arrow-right.fill.svg +3 -0
- package/src/assets/icons-material/arrow-right.svg +3 -0
- package/src/assets/icons-material/arrows.fill.svg +5 -0
- package/src/assets/icons-material/arrows.svg +5 -0
- package/src/assets/icons-material/ban.fill.svg +5 -0
- package/src/assets/icons-material/ban.svg +1 -1
- package/src/assets/icons-material/bars.fill.svg +3 -0
- package/src/assets/icons-material/bars.svg +1 -1
- package/src/assets/icons-material/check.fill.svg +3 -0
- package/src/assets/icons-material/check.svg +1 -1
- package/src/assets/icons-material/chevron-down.fill.svg +3 -0
- package/src/assets/icons-material/chevron-down.svg +1 -1
- package/src/assets/icons-material/chevron-left.fill.svg +3 -0
- package/src/assets/icons-material/chevron-left.svg +1 -1
- package/src/assets/icons-material/chevron-right.fill.svg +3 -0
- package/src/assets/icons-material/chevron-right.svg +1 -1
- package/src/assets/icons-material/close.fill.svg +3 -0
- package/src/assets/icons-material/close.svg +1 -1
- package/src/assets/icons-material/cloud-upload.fill.svg +5 -0
- package/src/assets/icons-material/cloud-upload.svg +1 -1
- package/src/assets/icons-material/cog.fill.svg +5 -0
- package/src/assets/icons-material/cog.svg +1 -1
- package/src/assets/icons-material/copy.fill.svg +5 -0
- package/src/assets/icons-material/copy.svg +1 -1
- package/src/assets/icons-material/ellipsis-h.fill.svg +5 -0
- package/src/assets/icons-material/ellipsis-h.svg +1 -1
- package/src/assets/icons-material/ellipsis-v.fill.svg +5 -0
- package/src/assets/icons-material/ellipsis-v.svg +1 -1
- package/src/assets/icons-material/email.fill.svg +5 -0
- package/src/assets/icons-material/email.svg +5 -0
- package/src/assets/icons-material/equals.fill.svg +3 -0
- package/src/assets/icons-material/equals.svg +3 -0
- package/src/assets/icons-material/external-link.fill.svg +5 -0
- package/src/assets/icons-material/external-link.svg +1 -1
- package/src/assets/icons-material/eye-slash.fill.svg +5 -0
- package/src/assets/icons-material/eye-slash.svg +1 -1
- package/src/assets/icons-material/eye.fill.svg +5 -0
- package/src/assets/icons-material/eye.svg +1 -1
- package/src/assets/icons-material/ico-download.fill.svg +5 -0
- package/src/assets/icons-material/ico-download.svg +1 -1
- package/src/assets/icons-material/ico-plus.fill.svg +3 -0
- package/src/assets/icons-material/ico-plus.svg +1 -1
- package/src/assets/icons-material/info-circle.fill.svg +5 -0
- package/src/assets/icons-material/info-circle.svg +1 -1
- package/src/assets/icons-material/pencil.fill.svg +5 -0
- package/src/assets/icons-material/pencil.svg +1 -1
- package/src/assets/icons-material/refresh.fill.svg +5 -0
- package/src/assets/icons-material/refresh.svg +1 -1
- package/src/assets/icons-material/search.fill.svg +5 -0
- package/src/assets/icons-material/search.svg +1 -1
- package/src/assets/icons-material/star.fill.svg +3 -0
- package/src/assets/icons-material/star.svg +1 -1
- package/src/assets/icons-material/sync.fill.svg +5 -0
- package/src/assets/icons-material/sync.svg +1 -1
- package/src/assets/icons-material/table.fill.svg +5 -0
- package/src/assets/icons-material/table.svg +1 -1
- package/src/assets/icons-material/tag.fill.svg +5 -0
- package/src/assets/icons-material/tag.svg +1 -1
- package/src/assets/icons-material/trash.fill.svg +5 -0
- package/src/assets/icons-material/trash.svg +1 -1
- package/src/assets/icons-material/user-off.fill.svg +5 -0
- package/src/assets/icons-material/user-off.svg +5 -0
- package/src/assets/icons-material/user.fill.svg +5 -0
- package/src/assets/icons-material/user.svg +1 -1
- package/src/lib/components/CONTEXT.md +3 -0
- package/src/lib/components/action-bar/CONTEXT.md +53 -0
- package/src/lib/components/action-bar/rt-action-bar-holder.component.scss +70 -0
- package/src/lib/components/action-bar/rt-action-bar.component.scss +122 -0
- package/src/lib/components/aside/CONTEXT.md +5 -1
- package/src/lib/components/aside/_rt-aside-overlay.scss +9 -0
- package/src/lib/components/aside/header/rt-aside-header.component.scss +18 -2
- package/src/lib/components/aside/rt-aside.component.scss +5 -1
- package/src/lib/components/autocomplete/CONTEXT.md +2 -1
- package/src/lib/components/button/CONTEXT.md +11 -11
- package/src/lib/components/checkbox/rt-checkbox.component.scss +5 -1
- package/src/lib/components/data-list/CONTEXT.md +122 -0
- package/src/lib/components/data-list/rt-data-list.component.scss +57 -0
- package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +256 -0
- package/src/lib/components/data-list/toolbar/rt-data-list-toolbar.component.scss +128 -0
- package/src/lib/components/data-table/CONTEXT.md +102 -0
- package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +115 -0
- package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +51 -0
- package/src/lib/components/data-table/header-cell/rt-data-table-header-cell.component.scss +111 -0
- package/src/lib/components/data-table/rt-data-table.component.scss +263 -0
- package/src/lib/components/date-picker/rt-date-picker.component.scss +13 -0
- package/src/lib/components/delta-view/CONTEXT.md +1 -1
- package/src/lib/components/dialog/CONTEXT.md +4 -0
- package/src/lib/components/dynamic-list/CONTEXT.md +90 -0
- package/src/lib/components/dynamic-list/rt-dynamic-list.component.scss +123 -0
- package/src/lib/components/empty-state/CONTEXT.md +5 -0
- package/src/lib/components/empty-state/rt-empty-state.component.scss +19 -5
- package/src/lib/components/file-card/rt-file-card.component.scss +14 -0
- package/src/lib/components/file-drop/rt-file-drop.component.scss +44 -8
- package/src/lib/components/icon-button/rt-icon-button.component.scss +28 -4
- package/src/lib/components/input/rt-input.component.scss +25 -1
- package/src/lib/components/input-number/rt-input-number.component.scss +13 -0
- package/src/lib/components/menu/CONTEXT.md +10 -0
- package/src/lib/components/menu/rt-menu-item.component.scss +35 -3
- package/src/lib/components/menu/rt-menu.component.scss +15 -5
- package/src/lib/components/multiselect/CONTEXT.md +3 -0
- package/src/lib/components/multiselect/rt-multiselect.component.scss +58 -1
- package/src/lib/components/pagination/CONTEXT.md +4 -1
- package/src/lib/components/pagination/rt-pagination.component.scss +43 -13
- package/src/lib/components/radio-button/CONTEXT.md +42 -0
- package/src/lib/components/radio-button/rt-radio-button.component.scss +105 -0
- package/src/lib/components/scroll-area/CONTEXT.md +52 -0
- package/src/lib/components/scroll-area/rt-scroll-area.component.scss +69 -0
- package/src/lib/components/select/CONTEXT.md +8 -1
- package/src/lib/components/select/rt-select.component.scss +110 -7
- package/src/lib/components/table/CONTEXT.md +46 -1
- package/src/lib/components/table/filter-header/CONTEXT.md +64 -0
- package/src/lib/components/table/filter-header/rt-table-filter-header.component.scss +76 -0
- package/src/lib/components/table/rt-table.component.scss +32 -1
- package/src/lib/components/tag/CONTEXT.md +9 -0
- package/src/lib/components/tag/rt-tag.component.scss +38 -0
- package/src/lib/components/textarea/CONTEXT.md +1 -1
- package/src/lib/components/toolbar/CONTEXT.md +3 -0
- package/src/lib/components/toolbar/rt-toolbar.component.scss +9 -2
- package/src/lib/components/tooltip/CONTEXT.md +4 -4
- package/src/lib/components/tooltip/rt-tooltip.component.scss +2 -2
- package/src/{lib → rich-editor/lib}/components/chat/CONTEXT.md +1 -1
- package/src/{lib → rich-editor/lib}/components/message-composer/CONTEXT.md +5 -1
- package/src/{lib → rich-editor/lib}/components/message-composer/rt-message-composer.component.scss +9 -0
- package/src/{lib → rich-editor/lib}/components/rich-editor/CONTEXT.md +2 -2
- package/src/styles/_coarse-pointer.scss +15 -0
- package/src/styles/_coexist.scss +28 -0
- package/src/styles/_fonts.scss +99 -0
- package/src/styles/_index.scss +13 -0
- package/src/styles/_preset-material.scss +201 -26
- package/src/styles/_primitives.scss +41 -5
- package/src/styles/_scrollbar.scss +16 -12
- package/src/styles/_semantic-lists.scss +89 -0
- package/src/styles/_semantic.scss +80 -9
- package/src/styles/_theme-dark.scss +36 -0
- package/src/styles/_theme-scope.scss +111 -0
- package/src/styles/tokens.coexist.scss +3 -0
- package/src/styles/tokens.package.scss +6 -0
- package/styles/tokens.coexist.css +27 -0
- package/styles/tokens.css +5443 -43
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +529 -0
- package/types/rt-tools-ui-kit-v2.d.ts +2744 -1367
- package/rt-tools-ui-kit-v2-0.11.0.tgz +0 -0
- /package/src/{lib → rich-editor/lib}/components/chat/rt-chat.component.scss +0 -0
- /package/src/{lib → rich-editor/lib}/components/rich-editor/rt-rich-editor.component.scss +0 -0
package/README.md
CHANGED
|
@@ -14,19 +14,30 @@
|
|
|
14
14
|
pnpm add @rt-tools/ui-kit-v2 @rt-tools/core @rt-tools/utils
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
`quill` нужен только тем, кто ставит
|
|
18
|
-
|
|
17
|
+
`quill` нужен только тем, кто ставит редактор текста. Он и два компонента на нём — поле ввода
|
|
18
|
+
сообщения и чат — стоят отдельным входом `@rt-tools/ui-kit-v2/rich-editor`:
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { RtChatComponent, RtMessageComposerComponent, RtRichEditorComponent } from '@rt-tools/ui-kit-v2/rich-editor';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Основной вход quill не называет, и приложение без этих трёх компонентов собирается без него.
|
|
19
25
|
|
|
20
26
|
## Подключение
|
|
21
27
|
|
|
22
28
|
```typescript
|
|
29
|
+
import { provideRtIDBStorage } from '@rt-tools/core';
|
|
23
30
|
import { provideRtIcons } from '@rt-tools/ui-kit-v2';
|
|
24
31
|
|
|
25
32
|
export const appConfig: ApplicationConfig = {
|
|
26
|
-
providers: [provideHttpClient(), provideRtIcons()],
|
|
33
|
+
providers: [provideHttpClient(), provideRtIcons(), provideRtIDBStorage()],
|
|
27
34
|
};
|
|
28
35
|
```
|
|
29
36
|
|
|
37
|
+
`provideRtIDBStorage()` нужен `rt-data-table`, `rt-data-list` и `rt-table`: они хранят настройку
|
|
38
|
+
колонок в базе браузера. Без него страница с ними пустая, а в консоли стоит
|
|
39
|
+
`NG0201: No provider found for _IDBStorageService`.
|
|
40
|
+
|
|
30
41
|
Оформление — одной строкой в точке входа приложения; в пакете лежит и собранный CSS со всеми
|
|
31
42
|
свойствами, и исходники партиалов:
|
|
32
43
|
|
|
@@ -41,6 +52,39 @@ export const appConfig: ApplicationConfig = {
|
|
|
41
52
|
Объявления свойств на корне страницы в слой не уходят — их приложение перебивает порядком,
|
|
42
53
|
объявляя своё после `tokens.css`.
|
|
43
54
|
|
|
55
|
+
Тёмная тема кита включается только признаком на корне: `[data-theme='dark']` или класс
|
|
56
|
+
`html.rt-theme-dark`. Системную настройку CSS кита не читает: по ней признак ставит `ThemeService`
|
|
57
|
+
в режиме `auto`. Своя тема Material или класс тёмной темы приложения кит не переключают.
|
|
58
|
+
На узле ниже корня `[data-theme='dark']` даёт тёмный кусок страницы.
|
|
59
|
+
|
|
60
|
+
Под материальным набором тёмная тема не перебивает цвета, которые набор берёт из `--mat-sys-*`.
|
|
61
|
+
Поиск, поля отбора и пагинация следуют теме Material приложения, а она отвечает тёмной сама.
|
|
62
|
+
Без темы Material на странице набор рисует тёмные цвета кита.
|
|
63
|
+
|
|
64
|
+
Оба признака на корне ставят на `body` фон-градиент тёмной темы. Приложению со своим фоном
|
|
65
|
+
страницы его нужно перебить своим правилом `body`.
|
|
66
|
+
|
|
67
|
+
Приложение, которое переезжает с `@rt-tools/ui-kit` и пока держит оба кита, подключает ещё один
|
|
68
|
+
файл — файл совместимости, он лежит рядом с `tokens.css`:
|
|
69
|
+
|
|
70
|
+
```scss
|
|
71
|
+
@use '@rt-tools/ui-kit-v2/styles/tokens.coexist.css';
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Первый кит объявляет на корне страницы десять ступеней с теми же именами — `--rt-radius-*` и
|
|
75
|
+
`--rt-shadow-sm/md/lg` — и своими значениями. Его файл подключается позже, и внутри компонентов
|
|
76
|
+
второго кита действуют его ступени: скругление поля отбора выходит 8px вместо 4px. Файл
|
|
77
|
+
совместимости ставит значения второго кита на узел материального набора (`.rt-preset-material`,
|
|
78
|
+
`[data-preset='material']`), и такой узел рисуется своей шкалой, что бы ни лежало на корне. Набор
|
|
79
|
+
может стоять и на самом корне страницы: селектор файла весит на ступень больше корня первого кита,
|
|
80
|
+
и порядок подключения ничего не решает.
|
|
81
|
+
|
|
82
|
+
С этим файлом приложению не нужны свои скругления поверх кита: поле отбора, поле поиска и кнопки
|
|
83
|
+
страниц берут значения второго кита сами.
|
|
84
|
+
|
|
85
|
+
Файл удаляется вместе с первым китом. Он повторяет значения шкалы второго кита, поэтому без первого
|
|
86
|
+
кита вид от его удаления не меняется.
|
|
87
|
+
|
|
44
88
|
Подслой `vendor` — для чужого CSS, который чинит кит. Тема редактора текста подключается в
|
|
45
89
|
него, иначе она выигрывает у правил кита и панель редактора перестраивается:
|
|
46
90
|
|
|
@@ -48,6 +92,25 @@ export const appConfig: ApplicationConfig = {
|
|
|
48
92
|
@import 'quill/dist/quill.snow.css' layer(rt-kit.vendor);
|
|
49
93
|
```
|
|
50
94
|
|
|
95
|
+
Сброс приложения вида `* { margin: 0; padding: 0; }` вне слоя выигрывает у кита по тому же
|
|
96
|
+
правилу. Он обнуляет поля компонентов: ячейки таблицы, пункты меню и кнопки теряют отступы.
|
|
97
|
+
Сброс кладётся в тот же подслой `vendor`. Подслой нижний, и кит перебивает сброс своими
|
|
98
|
+
правилами, а остальная вёрстка приложения получает его как прежде:
|
|
99
|
+
|
|
100
|
+
```scss
|
|
101
|
+
@layer rt-kit.vendor {
|
|
102
|
+
* {
|
|
103
|
+
margin: 0;
|
|
104
|
+
padding: 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Полосу прокрутки кит рисует только своим узлам — с классом на `rt-`. Узлы приложения он не
|
|
110
|
+
трогает, и их `::-webkit-scrollbar` работает и в Chrome. Своя полоса приложения, поставленная всем
|
|
111
|
+
узлам, кладётся в тот же подслой `vendor`: вне слоя она перебивает полосы кита, и таблица
|
|
112
|
+
перестаёт прятать полосу, которую человек выключил в настройке колонок.
|
|
113
|
+
|
|
51
114
|
Иконки лежат отдельными файлами в `node_modules/@rt-tools/ui-kit-v2/src/assets/icons`: сборка
|
|
52
115
|
копирует каталог в свою статику, а `provideRtIcons('/icons')` называет адрес, по которому он
|
|
53
116
|
опубликован. Файл забирается тогда, когда значок с этим именем попросила разметка, и дальше
|
|
@@ -61,6 +124,36 @@ export const appConfig: ApplicationConfig = {
|
|
|
61
124
|
}
|
|
62
125
|
```
|
|
63
126
|
|
|
127
|
+
Приложение, которое объявляет материальный набор оформления, публикует и второй набор значков —
|
|
128
|
+
рисунки Material из `src/assets/icons-material`. Его адрес по умолчанию `/icons-material`, свой
|
|
129
|
+
называется вторым аргументом: `provideRtIcons('/icons', '/icons-material')`. Без этой записи
|
|
130
|
+
кит рисует свои значки и под материальным набором: пустого места не будет, но и рисунка Material
|
|
131
|
+
тоже.
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"glob": "**/*.svg",
|
|
136
|
+
"input": "node_modules/@rt-tools/ui-kit-v2/src/assets/icons-material",
|
|
137
|
+
"output": "icons-material"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Шрифт кит везёт сам. Начертания Montserrat лежат в
|
|
142
|
+
`node_modules/@rt-tools/ui-kit-v2/src/assets/fonts`, объявления `@font-face` — в слое оформления,
|
|
143
|
+
и адрес в них относительный: сборка приложения разрешает его от места файла стилей и уносит
|
|
144
|
+
файлы в свою статику сама. Отдельной настройки это не просит — в отличие от значков, которые
|
|
145
|
+
публикуются по адресу.
|
|
146
|
+
|
|
147
|
+
Начертание переменное, одно на все насыщенности: кит объявляет веса 400, 500, 600 и 700 и берёт
|
|
148
|
+
их из одной оси. Подмножеств четыре — кириллица, кириллическое расширение, латиница и латинское
|
|
149
|
+
расширение, каждое в прямом и наклонном начертании; браузер качает только те, чьи знаки на
|
|
150
|
+
странице встретились. Всего 332 КБ, русской странице достаются два файла из восьми.
|
|
151
|
+
|
|
152
|
+
Письменностей, которых в Montserrat нет, кит не везёт: тайская, хангыль и деванагари добавляются
|
|
153
|
+
приложением — своим `@font-face` и своим именем в конце `--rt-font-family-sans`. Именовать
|
|
154
|
+
семейство, которого кит не везёт, он не будет: названное и не привезённое рисуется тем, что
|
|
155
|
+
случайно стоит на машине читателя, а отступы и высоты строк кита рассчитаны под Montserrat.
|
|
156
|
+
|
|
64
157
|
## Что внутри
|
|
65
158
|
|
|
66
159
|
**Компоненты** — 73 семейства: поля формы (`rt-input`, `rt-select`, `rt-multiselect`,
|
|
@@ -79,16 +172,24 @@ export const appConfig: ApplicationConfig = {
|
|
|
79
172
|
`pnpm run build:tokens-source` и руками не правятся;
|
|
80
173
|
- `_primitives.scss` — шкалы: нейтральные и цветные ряды, отступы, радиусы, тени, типографика;
|
|
81
174
|
- `_semantic.scss` — назначения поверх шкал (`--rt-color-bg-surface`, `--rt-color-text-muted`);
|
|
175
|
+
- `_coarse-pointer.scss` — поправка назначений для сенсорного экрана: поле ввода не мельче 16px;
|
|
82
176
|
- `_theme-dark.scss` — переопределения назначений для `[data-theme='dark']`;
|
|
83
177
|
- `_theme-dark-rules.scss` — правила тёмной темы, которые свойств не объявляют: подложка экранов
|
|
84
178
|
входа и инверсия логотипа;
|
|
179
|
+
- `_theme-scope.scss` — те же назначения для узла, а не для корня: под ними живёт метка
|
|
180
|
+
`rtTheme`, и каждое правило объявляет весь набор целиком;
|
|
85
181
|
- `_scrollbar.scss` — оформление полос прокрутки;
|
|
86
182
|
- `_breakpoints.scss` — SCSS-переменные порогов: свойства оформления в `@media` не работают,
|
|
87
183
|
поэтому пороги остаются переменными препроцессора;
|
|
88
184
|
- `_mixins.scss` — миксины поверхности карточки и её заголовка;
|
|
89
185
|
- `_login.scss` — раскладка страницы входа.
|
|
90
186
|
|
|
91
|
-
|
|
187
|
+
`_coexist.scss` — ступени второго кита на узле материального набора на время переезда с первого
|
|
188
|
+
кита. Его собирает тот же генератор из источника шкалы, а файл совместимости собран из него
|
|
189
|
+
отдельно.
|
|
190
|
+
|
|
191
|
+
Всё, кроме `_breakpoints.scss` и `_coexist.scss`, собирает `_index.scss` — из него и собран
|
|
192
|
+
`tokens.css`. Пороги и
|
|
92
193
|
миксины подключаются партиалами напрямую:
|
|
93
194
|
|
|
94
195
|
```scss
|
|
@@ -96,9 +197,13 @@ export const appConfig: ApplicationConfig = {
|
|
|
96
197
|
@use 'pkg:@rt-tools/ui-kit-v2/styles/mixins';
|
|
97
198
|
```
|
|
98
199
|
|
|
99
|
-
**Среда исполнения** — `ThemeService` (
|
|
200
|
+
**Среда исполнения** — `ThemeService` (три состояния темы, признак на `<html data-theme>`,
|
|
201
|
+
переживает перезагрузку), `RtThemeScopeDirective` (метка `rtTheme`: своя тема у узла),
|
|
100
202
|
`BreakpointsService` (сигналы совпадения по ширине), `NotificationBus` (шина тостов).
|
|
101
203
|
|
|
204
|
+
**Умолчания кита** — `provideRtKit`: приложение одной раздачей задаёт тему старта и вид кнопки и
|
|
205
|
+
шторы. Раздача необязательна, а вход, написанный в разметке, её перебивает.
|
|
206
|
+
|
|
102
207
|
**Подписи** — 131 ключ: кнопки диалогов, тексты ошибок поля, расшифровки иконок для
|
|
103
208
|
скринридера. Своего языка у кита нет и быть не может — его знает приложение.
|
|
104
209
|
|