poe-svelte-ui-lib 1.55.0 → 1.56.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 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` `Hints.<тип>`), глобального переключателя нет. Элемент получает подсказку действием `use:hint={{ text, enabled: $hints }}` — всплывающее окно в стиле темы над элементом; тексты — в словаре библиотеки (`widget.*.hint.*`), только там, где смысл поля не очевиден.
60
+ **Подсказки смарт-виджетов** — `hints.ts`: у каждого виджета своя кнопка «?» в правом краю шапки (`WidgetHeader` с пропом `hints`), выбор запоминается в браузере для виджетов этого типа (`hintsSetting("WidgetPFD")`, ключ `localStorage` `Hints.<тип>`), глобального переключателя нет. Элемент получает подсказку действием `use:hint={{ text, enabled: $hints }}` — всплывающее окно в стиле темы над элементом; тексты — в словаре библиотеки (`widget.*.hint.*`), только там, где смысл поля не очевиден.
61
61
 
62
62
  **Предпросмотр темы** — вкладка «Тема» на главной витрины (`src/routes/ThemePreview.svelte`): палитра токенов и состояния, затем все компоненты и виджеты в порядке меню витрины — каждый тип в своём разделе с живыми демо-данными (графики, видео, полёт для PFD и карты), в конце типографика и Markdown; тема переключается кнопкой в шапке витрины. Правьте `theme.css` и смотрите результат там.
63
63
 
@@ -109,4 +109,4 @@
109
109
 
110
110
  ### Подсказки
111
111
 
112
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetDeviceInfo` в браузере (`hintsSetting("WidgetDeviceInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
112
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetDeviceInfo` в браузере (`hintsSetting("WidgetDeviceInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -118,4 +118,4 @@
118
118
 
119
119
  ### Подсказки
120
120
 
121
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetFileSystem` в браузере (`hintsSetting("WidgetFileSystem")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
121
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetFileSystem` в браузере (`hintsSetting("WidgetFileSystem")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -29,11 +29,11 @@
29
29
  const Icon = $derived(icon)
30
30
  </script>
31
31
 
32
- <!-- Фиксированная высота 32 px без переноса — свёрнутые виджеты одной высоты при любом содержимом справа; «?» — сразу за заголовком, видна и в узком виджете -->
32
+ <!-- Фиксированная высота 32 px без переноса — свёрнутые виджеты одной высоты при любом содержимом справа; «?» — в правом краю, после содержимого шапки -->
33
33
  <div class="flex h-[32px] items-center justify-between gap-3">
34
34
  <button
35
35
  type="button"
36
- class="flex min-w-0 cursor-pointer items-center gap-2 border-none bg-transparent p-0 text-left"
36
+ class="flex min-w-0 flex-1 cursor-pointer items-center gap-2 border-none bg-transparent p-0 text-left"
37
37
  onclick={() => (collapsed = !collapsed)}
38
38
  aria-expanded={!collapsed}
39
39
  >
@@ -48,6 +48,11 @@
48
48
  <ArrowIcon />
49
49
  </span>
50
50
  </button>
51
+ {#if right}
52
+ <div class="flex min-w-0 shrink-0 items-center justify-end">
53
+ {@render right()}
54
+ </div>
55
+ {/if}
51
56
  {#if hints}
52
57
  <button
53
58
  type="button"
@@ -60,10 +65,4 @@
60
65
  onclick={() => hints.update((on) => !on)}>?</button
61
66
  >
62
67
  {/if}
63
- <div class="flex-1"></div>
64
- {#if right}
65
- <div class="flex min-w-0 shrink-0 items-center justify-end">
66
- {@render right()}
67
- </div>
68
- {/if}
69
68
  </div>
@@ -98,4 +98,4 @@ Telemetry_SendObject(g_telemetry_stream, g_mcfg.DevSN, "Data", dev, sizeof(dev)
98
98
 
99
99
  ### Подсказки
100
100
 
101
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetMap` в браузере (`hintsSetting("WidgetMap")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
101
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetMap` в браузере (`hintsSetting("WidgetMap")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -81,4 +81,4 @@
81
81
 
82
82
  ### Подсказки
83
83
 
84
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetRGBStrip` в браузере (`hintsSetting("WidgetRGBStrip")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
84
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetRGBStrip` в браузере (`hintsSetting("WidgetRGBStrip")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -84,4 +84,4 @@
84
84
 
85
85
  ### Подсказки
86
86
 
87
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetStackInfo` в браузере (`hintsSetting("WidgetStackInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
87
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetStackInfo` в браузере (`hintsSetting("WidgetStackInfo")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -100,4 +100,4 @@
100
100
 
101
101
  ### Подсказки
102
102
 
103
- Кнопка «?» в шапке включает и выключает подсказки этого виджета; выбор общий для всех `WidgetWiFi` в браузере (`hintsSetting("WidgetWiFi")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
103
+ Кнопка «?» в правом краю шапки включает и выключает подсказки этого виджета; выбор общий для всех `WidgetWiFi` в браузере (`hintsSetting("WidgetWiFi")`, `hints.ts`). Подсказка всплывает при наведении на поле, смысл которого не очевиден, — что это за значение и на что влияет.
@@ -73,10 +73,10 @@
73
73
  устройство и режим на нём меняется. STA+AP не предупреждаем: STA остаётся активным. */
74
74
  let showAPWarning = $state(false)
75
75
 
76
- const IP_MODE_OPTIONS: IOption<number>[] = [
76
+ let IP_MODE_OPTIONS: IOption<number>[] = $derived([
77
77
  { id: "dhcp", name: "DHCP", value: 0 },
78
- { id: "static", name: "Static", value: 1 },
79
- ]
78
+ { id: "static", name: $T("widget.wifi.static"), value: 1 },
79
+ ])
80
80
  let selectedIPMode = $derived(IP_MODE_OPTIONS.find((o) => o.value === cfg.StaticIP) ?? IP_MODE_OPTIONS[0])
81
81
 
82
82
  const IP_REGEXP = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
@@ -548,6 +548,7 @@ const translations = {
548
548
  en: 'Auto polling — how often to request data from the device; "Refresh" — request now',
549
549
  zh: "自动轮询——向设备请求数据的频率;“刷新”——立即请求",
550
550
  },
551
+ "widget.wifi.static": { ru: "Статический", en: "Static", zh: "静态" },
551
552
  "widget.wifi.hint.mode": {
552
553
  ru: "Режим Wi-Fi: клиент — устройство подключается к роутеру, точка — создаёт свою сеть, оба — одновременно; выключено — Wi-Fi не работает",
553
554
  en: "Wi-Fi mode: client — the device joins a router, access point — creates its own network, both — at once; off — Wi-Fi is disabled",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-svelte-ui-lib",
3
- "version": "1.55.0",
3
+ "version": "1.56.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Oleg-Perevyshin/ElementsUI.git"