@rt-tools/ui-kit-v2 0.3.0 → 0.5.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 (39) hide show
  1. package/README.md +25 -16
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +732 -1351
  3. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  4. package/package.json +1 -2
  5. package/rt-tools-ui-kit-v2-0.5.0.tgz +0 -0
  6. package/src/lib/components/CONTEXT.md +1 -1
  7. package/src/lib/components/bar-list/CONTEXT.md +5 -5
  8. package/src/lib/components/button/rt-button.directive.scss +4 -0
  9. package/src/lib/components/checkbox/rt-checkbox.component.scss +6 -2
  10. package/src/lib/components/confirm-popover/CONTEXT.md +8 -8
  11. package/src/lib/components/container/CONTEXT.md +22 -0
  12. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +20 -9
  13. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -15
  14. package/src/lib/components/download-link/CONTEXT.md +1 -1
  15. package/src/lib/components/download-link/rt-download-link.component.scss +13 -0
  16. package/src/lib/components/file-drop/CONTEXT.md +6 -6
  17. package/src/lib/components/file-input/CONTEXT.md +6 -6
  18. package/src/lib/components/live-badge/CONTEXT.md +5 -5
  19. package/src/lib/components/menu/CONTEXT.md +6 -6
  20. package/src/lib/components/message-composer/CONTEXT.md +10 -10
  21. package/src/lib/components/multiselect/CONTEXT.md +6 -6
  22. package/src/lib/components/night-grid/CONTEXT.md +4 -4
  23. package/src/lib/components/page-header/CONTEXT.md +7 -7
  24. package/src/lib/components/pagination/CONTEXT.md +1 -1
  25. package/src/lib/components/select/CONTEXT.md +8 -8
  26. package/src/lib/components/split-button/CONTEXT.md +7 -7
  27. package/src/lib/components/split-button/rt-split-button.component.scss +13 -0
  28. package/src/lib/components/stat-tile/CONTEXT.md +1 -1
  29. package/src/lib/components/table/CONTEXT.md +1 -1
  30. package/src/lib/components/table/sort-header/CONTEXT.md +40 -0
  31. package/src/lib/components/tabs/CONTEXT.md +14 -9
  32. package/src/lib/components/tag/CONTEXT.md +2 -2
  33. package/src/lib/components/theme-toggle/CONTEXT.md +1 -1
  34. package/src/lib/components/toast/CONTEXT.md +8 -0
  35. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +6 -2
  36. package/src/styles/_semantic.scss +11 -2
  37. package/styles/tokens.css +12 -1
  38. package/types/rt-tools-ui-kit-v2.d.ts +324 -74
  39. package/rt-tools-ui-kit-v2-0.3.0.tgz +0 -0
@@ -32,8 +32,8 @@
32
32
  вовсе — радиус берётся из `shape`.
33
33
  - Палитра дублируется атрибутом `data-severity` — по нему тег находят проверки и внешние стили,
34
34
  не завязываясь на BEM-класс.
35
- - Подпись крестика для скринридера берётся из словаря кита (`rtKit.uiRemove`). Без
36
- `provideRtKitTranslations()` там будет пусто.
35
+ - Подпись крестика для скринридера берётся из словаря кита (`uiRemove`). Без
36
+ `provideRtKitLabels()` там будет пусто.
37
37
 
38
38
  ## Края
39
39
 
@@ -23,6 +23,6 @@
23
23
 
24
24
  ## Края
25
25
 
26
- - Подпись берётся из словаря кита (`rtKit.themeToggleLabel`) и вычисляется один раз при создании.
26
+ - Подпись берётся из словаря кита (`themeToggleLabel`) и вычисляется один раз при создании.
27
27
  - В тестах между случаями надо чистить хранилище: иначе выбор предыдущего теста становится
28
28
  начальным состоянием следующего.
@@ -43,6 +43,14 @@ this.#notifications.error('Не удалось сохранить', 'danger', {
43
43
  - `meta` — приписка над сообщением (номер заявки), `description` — вторая строка под ним.
44
44
  - Положение раскладывается на два модификатора: `rt-toaster--y--bottom` и `rt-toaster--x--right`.
45
45
 
46
+ ## Края
47
+
48
+ - **Нулевая длительность не значит «висит, пока не закроют».** `duration: 0` — это таймер на
49
+ ноль миллисекунд: тост гасит себя сразу после первой отрисовки. Держать его открытым умеет
50
+ только пауза таймера — признак `interacting` либо развёрнутая стопка.
51
+ - **В матрице каждому тосту ставится `[interacting]="true"`.** Иначе ячейки гаснут одна за
52
+ другой, пока смотришь на показ, и кадр снимается с пустой сетки.
53
+
46
54
  ## Доступность
47
55
 
48
56
  Стопка — `role="region"` с переведённой подписью, каждый тост — `role="status"` с
@@ -63,7 +63,11 @@ rt-toggle-switch .rt-toggle-switch {
63
63
  box-shadow var(--rt-duration-fast) ease;
64
64
  }
65
65
 
66
- &--on &__track {
66
+ /* Элемент адресуется классом, а не вторым `&`: родитель здесь составной
67
+ (`rt-toggle-switch .rt-toggle-switch`), и второй `&` развернулся бы в него целиком —
68
+ то есть в селектор, требующий вложенного переключателя. Включённое состояние
69
+ из-за этого не применялось: трек оставался серым, бегунок — слева. */
70
+ &--on .rt-toggle-switch__track {
67
71
  background: var(--rt-toggle-color-track-on);
68
72
  box-shadow: none;
69
73
  }
@@ -97,7 +101,7 @@ rt-toggle-switch .rt-toggle-switch {
97
101
  transition: transform var(--rt-duration-fast) ease;
98
102
  }
99
103
 
100
- &--on &__thumb {
104
+ &--on .rt-toggle-switch__thumb {
101
105
  transform: translateX(var(--rt-toggle-thumb-travel));
102
106
  }
103
107
  }
@@ -1,6 +1,11 @@
1
- /* Semantic design tokens — light defaults. */
1
+ /* Semantic design tokens — light defaults.
2
2
 
3
- :root {
3
+ Тело вынесено в @mixin по той же причине, что и у тёмной темы: набор нужен не
4
+ только на `:root`, но и на отдельном контейнере. Без этого светлую половину
5
+ пары «светлая ↔ тёмная» нельзя показать, пока приложение стоит в тёмной теме, —
6
+ контейнер унаследует тёмные значения, и обе половины покажут одно и то же. */
7
+
8
+ @mixin rt-theme-light-tokens {
4
9
  /* Background */
5
10
  --rt-color-bg-page: var(--rt-neutral-50);
6
11
  --rt-color-bg-surface: var(--rt-neutral-0);
@@ -287,6 +292,10 @@
287
292
  --rt-field-value-empty-color: var(--rt-color-text-muted);
288
293
  }
289
294
 
295
+ :root {
296
+ @include rt-theme-light-tokens;
297
+ }
298
+
290
299
  /* На тач-устройствах инпут не меньше 16px: WebKit (весь iOS, включая Chrome)
291
300
  зумит страницу при фокусе на поле с font-size < 16px — отсюда горизонтальный
292
301
  сдвиг вёрстки. Десктоп сохраняет плотный 14px. */
package/styles/tokens.css CHANGED
@@ -192,7 +192,12 @@
192
192
  --rt-bp-xl: 1380px;
193
193
  }
194
194
 
195
- /* Semantic design tokens — light defaults. */
195
+ /* Semantic design tokens — light defaults.
196
+
197
+ Тело вынесено в @mixin по той же причине, что и у тёмной темы: набор нужен не
198
+ только на `:root`, но и на отдельном контейнере. Без этого светлую половину
199
+ пары «светлая ↔ тёмная» нельзя показать, пока приложение стоит в тёмной теме, —
200
+ контейнер унаследует тёмные значения, и обе половины покажут одно и то же. */
196
201
  :root {
197
202
  /* Background */
198
203
  --rt-color-bg-page: var(--rt-neutral-50);
@@ -653,10 +658,16 @@ html.rt-theme-dark .rt-logo {
653
658
  --rt-btn-color: var(--rt-color-on-disabled, #6b7280);
654
659
  cursor: not-allowed;
655
660
  }
661
+ .rt-button {
662
+ /* `flex-shrink: 0` — иконке заданного размера. Без него в кнопке, которой ширину
663
+ навязали снаружи (пункт меню `rt-split-button` берёт её от панели), лейбл давит
664
+ на иконку, и та сжимается до нуля: место занято, а иконки не видно. */
665
+ }
656
666
  .rt-button__icon {
657
667
  display: inline-flex;
658
668
  width: var(--rt-btn-icon-size);
659
669
  height: var(--rt-btn-icon-size);
670
+ flex-shrink: 0;
660
671
  align-items: center;
661
672
  justify-content: center;
662
673
  font-size: var(--rt-btn-icon-size);