poe-svelte-ui-lib 1.56.0 → 1.57.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 +1 -1
- package/dist/Table/README.md +1 -1
- package/dist/Table/Table.svelte +1 -1
- package/dist/WidgetDeviceInfo/README.md +1 -1
- package/dist/WidgetFileSystem/README.md +1 -1
- package/dist/WidgetMap/README.md +1 -1
- package/dist/WidgetPFD/README.md +1 -1
- package/dist/WidgetRGBStrip/README.md +1 -1
- package/dist/WidgetStackInfo/README.md +1 -1
- package/dist/WidgetWiFi/README.md +1 -1
- package/dist/hints.js +14 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ npm install poe-svelte-ui-lib
|
|
|
57
57
|
|
|
58
58
|
**Поверхности — четыре ступени, заметные в обеих темах:** фон страницы `--bg-body` → панель `--back-color` → блок внутри панели `--container-color` → поле `--field-color` (в тёмной теме поле темнее блока — «утоплено»). Готовые рецепты — классы `ui-panel` (блок прямо на фоне страницы: карточка, шапка раздела, холст, область чата — заливка панели, волосяная рамка, лёгкая тень) и `ui-inset` (блок внутри панели: группа полей, шапка карточки, подложка сообщения). Отступы и скругление задаёт страница классами Tailwind. Панели не делаются полупрозрачными (`bg-(--back-color)/50` сливается с фоном): выпадающие меню и всплывающие блоки — `ui-panel` с тенью `--elevation-3`, свои сообщения в чатах — `--accent-soft`, чужие — `--container-color`.
|
|
59
59
|
|
|
60
|
-
**Подсказки смарт-виджетов** — `hints.ts`: у каждого виджета своя кнопка «?» в правом краю шапки (`WidgetHeader` с пропом `hints`), выбор запоминается в браузере для виджетов этого типа (`hintsSetting("WidgetPFD")`, ключ `localStorage` `
|
|
60
|
+
**Подсказки смарт-виджетов** — `hints.ts`: у каждого виджета своя кнопка «?» в правом краю шапки (`WidgetHeader` с пропом `hints`), по умолчанию подсказки выключены, выбор оператора запоминается в браузере для виджетов этого типа (`hintsSetting("WidgetPFD")`, ключ `localStorage` `WidgetHints.<тип>`, пишется только по нажатию «?»), глобального переключателя нет. Элемент получает подсказку действием `use:hint={{ text, enabled: $hints }}` — всплывающее окно в стиле темы над элементом; тексты — в словаре библиотеки (`widget.*.hint.*`), только там, где смысл поля не очевиден.
|
|
61
61
|
|
|
62
62
|
**Предпросмотр темы** — вкладка «Тема» на главной витрины (`src/routes/ThemePreview.svelte`): палитра токенов и состояния, затем все компоненты и виджеты в порядке меню витрины — каждый тип в своём разделе с живыми демо-данными (графики, видео, полёт для PFD и карты), в конце типографика и Markdown; тема переключается кнопкой в шапке витрины. Правьте `theme.css` и смотрите результат там.
|
|
63
63
|
|
package/dist/Table/README.md
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
### Шапка
|
|
23
23
|
|
|
24
|
-
- Фон шапки — токен `--table-header-color`, по умолчанию `--
|
|
24
|
+
- Фон шапки — токен `--table-header-color`, по умолчанию мягкий акцент `--accent-soft`, текст шапки — в тон акценту. Внутри смарт-виджета он равен мягкому оттенку мастер-цвета (`widgetAccentStyle`), поэтому шапка перекрашивается вместе с виджетом.
|
|
25
25
|
- Когда у тела появляется полоса прокрутки, шапка сдвигается ровно на её фактическую ширину (`offsetWidth − clientWidth`, пересчёт при изменении строк и размеров) — столбцы шапки и строк совпадают. Для полос поверх содержимого (macOS) сдвиг 0.
|
|
26
26
|
|
|
27
27
|
### Адаптивность
|
package/dist/Table/Table.svelte
CHANGED
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
<div class="relative flex h-full w-full flex-col overflow-hidden rounded-[14px] border border-(--hairline-color) bg-(--back-color)">
|
|
260
260
|
<!-- Table Header -->
|
|
261
261
|
<div
|
|
262
|
-
class="grid border-b border-(--hairline-color) bg-[var(--table-header-color,var(--
|
|
262
|
+
class="grid border-b border-(--hairline-color) bg-[var(--table-header-color,var(--accent-soft))] text-[11px] font-bold tracking-[0.06em] text-[color-mix(in_srgb,var(--accent-color)_60%,var(--font-color))] uppercase"
|
|
263
263
|
style={`grid-template-columns: ${gridTemplate}; padding-right: ${scrollbarWidth}px;`}
|
|
264
264
|
>
|
|
265
265
|
{#each header as column, index (column)}
|
|
@@ -109,4 +109,4 @@
|
|
|
109
109
|
|
|
110
110
|
### Подсказки
|
|
111
111
|
|
|
112
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
112
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetDeviceInfo` в браузере (`hintsSetting("WidgetDeviceInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
|
@@ -118,4 +118,4 @@
|
|
|
118
118
|
|
|
119
119
|
### Подсказки
|
|
120
120
|
|
|
121
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
121
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetFileSystem` в браузере (`hintsSetting("WidgetFileSystem")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
package/dist/WidgetMap/README.md
CHANGED
|
@@ -98,4 +98,4 @@ Telemetry_SendObject(g_telemetry_stream, g_mcfg.DevSN, "Data", dev, sizeof(dev)
|
|
|
98
98
|
|
|
99
99
|
### Подсказки
|
|
100
100
|
|
|
101
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
101
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetMap` в браузере (`hintsSetting("WidgetMap")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
package/dist/WidgetPFD/README.md
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
- **Авиагоризонт** — небо и земля по крену и тангажу, лестница тангажа через 5°, дуга крена (10/20/30/45/60°), символ самолёта. Ориентация сглаживается между пакетами (Tween 120 мс).
|
|
71
71
|
- **Лента скорости** (слева, путевая над землёй) и **лента высоты** (справа, над точкой взлёта) с вариометром у края, **лента курса** (снизу): розовый ▲ — трек (куда аппарат реально движется, по `Vx`/`Vy`), зелёный ● — направление на точку взлёта.
|
|
72
72
|
- **Углы под лентами** — воздушная скорость (относительно воздуха, отличается от путевой на ветер) и вертикальная скорость (+ набор зелёным, − снижение оранжевым).
|
|
73
|
-
- **Подсказки** — наведите курсор на любой элемент прибора, строки состояния или значений: расшифровка появляется в информационной строке внизу горизонта: первая строка — величина, единица и текущее значение (обновляется, пока курсор стоит на месте), ниже по строке — что означают знаки, цвета и пороги. Элемент помечен `data-tip` с ключом, тексты собраны в `tips` в скрипте виджета, поэтому её не обрезают края и прокрутка. Без наведения в той же строке — последнее сообщение автопилота (10 с), наведение на неё показывает историю. Включаются и выключаются кнопкой «?» в шапке; выбор общий для всех PFD в браузере (`hintsSetting("WidgetPFD")` из `hints.ts`, ключ `localStorage` `
|
|
73
|
+
- **Подсказки** — наведите курсор на любой элемент прибора, строки состояния или значений: расшифровка появляется в информационной строке внизу горизонта: первая строка — величина, единица и текущее значение (обновляется, пока курсор стоит на месте), ниже по строке — что означают знаки, цвета и пороги. Элемент помечен `data-tip` с ключом, тексты собраны в `tips` в скрипте виджета, поэтому её не обрезают края и прокрутка. Без наведения в той же строке — последнее сообщение автопилота (10 с), наведение на неё показывает историю. Включаются и выключаются кнопкой «?» в шапке; выбор общий для всех PFD в браузере (`hintsSetting("WidgetPFD")` из `hints.ts`, ключ `localStorage` `WidgetHints.WidgetPFD`, по умолчанию выключены; прежний выбор `WidgetPFD.tips` переносится).
|
|
74
74
|
- **Под прибором** — группы «Маршрут» (точка, расстояние, боковое отклонение), «Дом» (расстояние и направление), «Трек», «Позиция» (координаты, MSL), «Воздух» (давление, температура); каждая величина показана один раз.
|
|
75
75
|
- **Метки целей** (бирюзовые) — целевая скорость и высота текущей точки на лентах, курс на точку ◆ на ленте курса; цель за пределами ленты прижимается к краю.
|
|
76
76
|
- **Сообщения автопилота** (`STATUSTEXT`) — в информационной строке внизу горизонта на 10 с, цвет по важности; история последних пяти — при наведении на строку.
|
|
@@ -81,4 +81,4 @@
|
|
|
81
81
|
|
|
82
82
|
### Подсказки
|
|
83
83
|
|
|
84
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
84
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetRGBStrip` в браузере (`hintsSetting("WidgetRGBStrip")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
|
@@ -84,4 +84,4 @@
|
|
|
84
84
|
|
|
85
85
|
### Подсказки
|
|
86
86
|
|
|
87
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
87
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetStackInfo` в браузере (`hintsSetting("WidgetStackInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
|
@@ -100,4 +100,4 @@
|
|
|
100
100
|
|
|
101
101
|
### Подсказки
|
|
102
102
|
|
|
103
|
-
Кнопка «?» в правом краю шапки включает и выключает подсказки этого
|
|
103
|
+
Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета (по умолчанию выключены); выбор общий для всех `WidgetWiFi` в браузере (`hintsSetting("WidgetWiFi")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
|
package/dist/hints.js
CHANGED
|
@@ -6,23 +6,30 @@ import { writable } from "svelte/store";
|
|
|
6
6
|
/* Прежние ключи хранения — выбор оператора переносится */
|
|
7
7
|
const LEGACY_KEYS = { WidgetPFD: "WidgetPFD.tips" };
|
|
8
8
|
const settings = new Map();
|
|
9
|
-
/* Настройка подсказок виджета:
|
|
9
|
+
/* Настройка подсказок виджета: выключены по умолчанию, одна на тип виджета; в браузер пишется только выбор оператора (нажатие «?»),
|
|
10
|
+
ключ WidgetHints.<тип> — прежние Hints.<тип> записывались автоматически при первом показе и выбором не являются, удаляются */
|
|
10
11
|
export const hintsSetting = (widget) => {
|
|
11
12
|
const cached = settings.get(widget);
|
|
12
13
|
if (cached)
|
|
13
14
|
return cached;
|
|
14
|
-
const storageKey = `
|
|
15
|
-
let initial =
|
|
15
|
+
const storageKey = `WidgetHints.${widget}`;
|
|
16
|
+
let initial = false;
|
|
16
17
|
try {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
if (typeof localStorage !== "undefined") {
|
|
19
|
+
localStorage.removeItem(`Hints.${widget}`);
|
|
20
|
+
const saved = localStorage.getItem(storageKey) ?? localStorage.getItem(LEGACY_KEYS[widget] ?? "");
|
|
21
|
+
if (saved !== null)
|
|
22
|
+
initial = saved === "1";
|
|
23
|
+
}
|
|
20
24
|
}
|
|
21
25
|
catch {
|
|
22
|
-
/* хранилище недоступно — подсказки
|
|
26
|
+
/* хранилище недоступно — подсказки выключены */
|
|
23
27
|
}
|
|
24
28
|
const store = writable(initial);
|
|
29
|
+
let first = true;
|
|
25
30
|
store.subscribe((on) => {
|
|
31
|
+
if (first)
|
|
32
|
+
return void (first = false);
|
|
26
33
|
if (!on)
|
|
27
34
|
hideHint();
|
|
28
35
|
try {
|