poe-svelte-ui-lib 1.38.2 → 1.40.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 +13 -1
- package/dist/Accordion/README.md +51 -38
- package/dist/Button/README.md +57 -40
- package/dist/Carousel/README.md +28 -24
- package/dist/CommonSnippets.svelte +1 -4
- package/dist/Divider/README.md +40 -30
- package/dist/FileAttach/README.md +57 -39
- package/dist/Graph/README.md +61 -50
- package/dist/Input/README.md +64 -44
- package/dist/Joystick/README.md +60 -40
- package/dist/PeriodChart/README.md +73 -59
- package/dist/ProgressBar/README.md +56 -38
- package/dist/Select/README.md +60 -40
- package/dist/Slider/README.md +57 -40
- package/dist/Switch/README.md +57 -40
- package/dist/Table/README.md +66 -48
- package/dist/Tabs/README.md +52 -40
- package/dist/TextField/README.md +47 -35
- package/dist/VideoViewer/README.md +58 -42
- package/dist/Widget/README.md +60 -40
- package/dist/WidgetDeviceInfo/README.md +32 -7
- package/dist/WidgetFileSystem/README.md +40 -16
- package/dist/WidgetMap/README.md +43 -28
- package/dist/WidgetMap/WidgetMap.svelte +1 -0
- package/dist/WidgetMap/mapWrapper/MapLibre.svelte +4 -0
- package/dist/WidgetMap/mapWrapper/MapLibre.svelte.d.ts +1 -0
- package/dist/WidgetPFD/README.md +48 -16
- package/dist/{ColorPicker → WidgetRGBStrip}/ColorPicker.svelte +10 -2
- package/dist/WidgetRGBStrip/ColorPicker.svelte.d.ts +14 -0
- package/dist/WidgetRGBStrip/README.md +37 -11
- package/dist/WidgetRGBStrip/WidgetRGBStrip.svelte +2 -1
- package/dist/WidgetStackInfo/README.md +35 -14
- package/dist/WidgetWiFi/README.md +29 -6
- package/dist/index.d.ts +1 -3
- package/dist/index.js +0 -2
- package/dist/locales/translations.js +72 -77
- package/dist/types.d.ts +4 -15
- package/package.json +1 -1
- package/dist/ColorPicker/ColorPicker.svelte.d.ts +0 -4
- package/dist/ColorPicker/ColorPickerProps.svelte +0 -91
- package/dist/ColorPicker/ColorPickerProps.svelte.d.ts +0 -16
- package/dist/ColorPicker/README.md +0 -134
package/README.md
CHANGED
|
@@ -59,7 +59,19 @@ npm install poe-svelte-ui-lib
|
|
|
59
59
|
|
|
60
60
|
**Витрина повторяет конструктор DevCloud:** слева компонент и код (прижат к низу), справа панель свойств шириной `24rem` с тем же оформлением, что в облаке, — переполнение подписей видно сразу. Кнопка (i) в шапке панели открывает описание компонента.
|
|
61
61
|
|
|
62
|
-
**Описания компонентов (i)** — ключи `component.info.<Тип>` в `src/lib/locales/translations.ts` (ru/en/zh, Markdown). Один источник для витрины и конструктора DevCloud: облако показывает кнопку (i) у любого компонента, для которого есть описание. Добавляя компонент, допишите
|
|
62
|
+
**Описания компонентов (i)** — ключи `component.info.<Тип>` в `src/lib/locales/translations.ts` (ru/en/zh, Markdown). Один источник для витрины и конструктора DevCloud: облако показывает кнопку (i) у любого компонента, для которого есть описание. Добавляя компонент, допишите описание строго по шаблону — разделы всегда в этом порядке, неприменимые опускаются:
|
|
63
|
+
|
|
64
|
+
| Раздел | Что писать |
|
|
65
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `🎯 **Назначение**` | 1–2 фразы: что это и когда применять |
|
|
67
|
+
| `📦 **Пакет данных**` | откуда данные (переменная, группа полей, объект ответа), каким пакетом и как часто их слать, что и когда компонент отправляет сам или «только отображение»; не связан с устройством — так и написать |
|
|
68
|
+
| `🔑 **Ключи**` | по пункту на ключ: `` `Ключ` — тип, единицы, смысл``, обязательность; у простых компонентов — формат значения переменной |
|
|
69
|
+
| `✨ **Особенности**` | поведение, ограничения, советы, связь с другими компонентами |
|
|
70
|
+
| `⚙️ **Настройки**` | что меняется в панели свойств |
|
|
71
|
+
|
|
72
|
+
Пункты — списком `- `, без вложенных списков; имена ключей и значения — в обратных кавычках; одинаковые для нескольких виджетов ключи (`Lat`, `Lon`, `DevName`...) описываются одинаково.
|
|
73
|
+
|
|
74
|
+
**README компонента** (`src/lib/<Компонент>/README.md`, вкладка «Инфо» витрины) — развёрнутая документация для разработчика. Первые разделы повторяют описание (i) и не должны ему противоречить, дальше идут разработческие: `## Назначение` (плюс заметка о размерах) → `## Пакет данных` (плюс `### Протокол устройства` / пример кода прошивки) → `## Ключи` (таблица «Ключ / Описание», те же формулировки, что в (i)) → `## Особенности` (поведение, ограничения) → `## Пропсы` (таблица «Название / Тип / По умолчанию / Описание», колбэки — `### Колбэки`) → `## Примеры` (Svelte) → `## Конструктор свойств (<Компонент>Props.svelte)` → `## Внутреннее устройство`.
|
|
63
75
|
|
|
64
76
|
**Иконки вариантов панелей свойств** — `src/lib/libIcons/propsIcons.ts` (контурные SVG 24×24 строками), подставляются в `IOption.icon` в `options.ts`.
|
|
65
77
|
|
package/dist/Accordion/README.md
CHANGED
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
# Accordion Component
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Назначение
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Сворачиваемый блок для группировки компонентов: настройки, диагностика, редко используемые разделы.
|
|
6
|
+
|
|
7
|
+
## Пакет данных
|
|
8
|
+
|
|
9
|
+
Не связан с устройством — сам ничего не читает и не отправляет.
|
|
10
|
+
|
|
11
|
+
## Особенности
|
|
12
|
+
|
|
13
|
+
- Перетащите компоненты внутрь — у аккордеона своя сетка, её размер задаётся при создании и ресайзе
|
|
14
|
+
- Заголовок с иконкой открывает и закрывает содержимое
|
|
15
|
+
- По высоте занимает одну строку сетки и растягивается по содержимому
|
|
16
|
+
|
|
17
|
+
### Адаптивность
|
|
18
|
+
|
|
19
|
+
- Компонент использует Tailwind CSS для адаптивного дизайна
|
|
20
|
+
- Сетка содержимого адаптируется под размеры экрана (sm:p-3)
|
|
21
|
+
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
22
|
+
|
|
23
|
+
### Ограничения
|
|
24
|
+
|
|
25
|
+
- При использовании изображения фона высота строк сетки устанавливается в `minmax(6.5rem, auto)` вместо `auto`
|
|
26
|
+
- Необходимо убедиться, что переданный компонент иконки является валидным Svelte компонентом или SVG строкой
|
|
27
|
+
- Размеры сетки должны быть положительными числами (по умолчанию 1x1)
|
|
28
|
+
|
|
29
|
+
### Производительность
|
|
30
|
+
|
|
31
|
+
- Компонент использует оптимизации Svelte для минимизации перерисовок
|
|
32
|
+
- Содержимое аккордеона рендерится только при его открытии (`{#if isOpen}`)
|
|
33
|
+
- Используется эффективное объединение классов через `twMerge`
|
|
6
34
|
|
|
7
35
|
## Пропсы
|
|
8
36
|
|
|
@@ -21,7 +49,7 @@
|
|
|
21
49
|
| `children` | `Snippet` | `undefined` | Слот для содержимого, которое будет отображаться при открытии |
|
|
22
50
|
| `image` | `string` | `""` | URL изображения для фона содержимого аккордеона |
|
|
23
51
|
|
|
24
|
-
|
|
52
|
+
### Колбэки
|
|
25
53
|
|
|
26
54
|
Компонент не генерирует специфические события, но использует встроенную функцию `toggle()` для переключения состояния открытия/закрытия при клике на кнопку заголовка.
|
|
27
55
|
|
|
@@ -75,28 +103,6 @@
|
|
|
75
103
|
</UI.Accordion>
|
|
76
104
|
```
|
|
77
105
|
|
|
78
|
-
## Внутренняя архитектура
|
|
79
|
-
|
|
80
|
-
### Реактивность
|
|
81
|
-
|
|
82
|
-
- Переменная `isOpen` является реактивной и управляет состоянием отображения содержимого
|
|
83
|
-
- Функция `toggle()` изменяет состояние `isOpen`, вызывая повторный рендеринг компонента
|
|
84
|
-
|
|
85
|
-
### Сторы и зависимости
|
|
86
|
-
|
|
87
|
-
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
88
|
-
- Применяется переход `slide` из `svelte/transition` для анимации открытия/закрытия
|
|
89
|
-
|
|
90
|
-
### Директивы
|
|
91
|
-
|
|
92
|
-
- `transition:slide` для анимации открытия/закрытия содержимого
|
|
93
|
-
- `@render children` для отображения переданного содержимого
|
|
94
|
-
- `bind:isOpen` в конструкторе свойств для двусторонней привязки состояния
|
|
95
|
-
|
|
96
|
-
### Слоты
|
|
97
|
-
|
|
98
|
-
- `children` - слот для содержимого, которое отображается внутри аккордеона при его открытии
|
|
99
|
-
|
|
100
106
|
## Конструктор свойств (AccordionProps.svelte)
|
|
101
107
|
|
|
102
108
|
### Описание
|
|
@@ -120,22 +126,29 @@
|
|
|
120
126
|
- Использует систему локализации через `$T('constructor.props.*')`
|
|
121
127
|
- Поддерживает валидацию числовых значений (min/max) для размеров
|
|
122
128
|
|
|
123
|
-
|
|
129
|
+
### Что настраивается
|
|
124
130
|
|
|
125
|
-
|
|
131
|
+
- Заголовок, иконка, «Открыт по умолчанию» — состояние при загрузке интерфейса
|
|
132
|
+
- Картинка фона — изображение под содержимым (например схема устройства), поверх неё располагаются компоненты
|
|
126
133
|
|
|
127
|
-
|
|
128
|
-
- Сетка содержимого адаптируется под размеры экрана (sm:p-3)
|
|
129
|
-
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
134
|
+
## Внутреннее устройство
|
|
130
135
|
|
|
131
|
-
###
|
|
136
|
+
### Реактивность
|
|
132
137
|
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
- Размеры сетки должны быть положительными числами (по умолчанию 1x1)
|
|
138
|
+
- Переменная `isOpen` является реактивной и управляет состоянием отображения содержимого
|
|
139
|
+
- Функция `toggle()` изменяет состояние `isOpen`, вызывая повторный рендеринг компонента
|
|
136
140
|
|
|
137
|
-
###
|
|
141
|
+
### Сторы и зависимости
|
|
138
142
|
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
|
|
143
|
+
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
144
|
+
- Применяется переход `slide` из `svelte/transition` для анимации открытия/закрытия
|
|
145
|
+
|
|
146
|
+
### Директивы
|
|
147
|
+
|
|
148
|
+
- `transition:slide` для анимации открытия/закрытия содержимого
|
|
149
|
+
- `@render children` для отображения переданного содержимого
|
|
150
|
+
- `bind:isOpen` в конструкторе свойств для двусторонней привязки состояния
|
|
151
|
+
|
|
152
|
+
### Слоты
|
|
153
|
+
|
|
154
|
+
- `children` - слот для содержимого, которое отображается внутри аккордеона при его открытии
|
package/dist/Button/README.md
CHANGED
|
@@ -1,8 +1,41 @@
|
|
|
1
1
|
# Button Component
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Назначение
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Отправляет команду на устройство по нажатию.
|
|
6
|
+
|
|
7
|
+
## Пакет данных
|
|
8
|
+
|
|
9
|
+
- По нажатию уходит пакет **Заголовок** + **Аргумент**, например `SET` + `Restart`
|
|
10
|
+
- **Переменные** — текущие значения других компонентов кладутся в тот же пакет: так делается кнопка «Сохранить» для полей с аргументом `NoSend`
|
|
11
|
+
- **Фиксированное значение** (JSON) — отправляется как есть вместо переменных, например `{"Mode": 2}`
|
|
12
|
+
- Значение с устройства кнопка не показывает
|
|
13
|
+
|
|
14
|
+
## Ключи
|
|
15
|
+
|
|
16
|
+
| Ключ | Описание |
|
|
17
|
+
| -------------- | ------------------------------------------------------------------------------------------- |
|
|
18
|
+
| `<переменные>` | имена через пробел (имя переменной не содержит пробелов), например `CFG.StaSSID CFG.StaPSK` |
|
|
19
|
+
|
|
20
|
+
## Особенности
|
|
21
|
+
|
|
22
|
+
### Адаптивность
|
|
23
|
+
|
|
24
|
+
- Компонент использует Tailwind CSS для адаптивного дизайна
|
|
25
|
+
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
26
|
+
- Подсказки автоматически позиционируются в зависимости от стороны отображения
|
|
27
|
+
|
|
28
|
+
### Ограничения
|
|
29
|
+
|
|
30
|
+
- При использовании только иконки (без текста) кнопка становится прозрачной без фона
|
|
31
|
+
- Горячие клавиши регистрируются глобально и могут конфликтовать с другими компонентами
|
|
32
|
+
- Подсказки не поддерживают HTML-разметку, отображают только текст
|
|
33
|
+
|
|
34
|
+
### Производительность
|
|
35
|
+
|
|
36
|
+
- Компонент использует оптимизации Svelte для минимизации перерисовок
|
|
37
|
+
- Обработчики клавиатуры удаляются при размонтировании компонента
|
|
38
|
+
- Используется эффективное объединение классов через `twMerge`
|
|
6
39
|
|
|
7
40
|
## Пропсы
|
|
8
41
|
|
|
@@ -27,7 +60,7 @@
|
|
|
27
60
|
| `keyBind.showHint` | `boolean` | `true` | Показывать ли подсказку о горячих клавишах |
|
|
28
61
|
| `onClick` | `() => void` | `undefined` | Обработчик клика по кнопке |
|
|
29
62
|
|
|
30
|
-
|
|
63
|
+
### Колбэки
|
|
31
64
|
|
|
32
65
|
| Название | Тип | Описание |
|
|
33
66
|
| -------- | ---------- | ----------------------------------------------------------------------- |
|
|
@@ -99,30 +132,6 @@
|
|
|
99
132
|
</div>
|
|
100
133
|
```
|
|
101
134
|
|
|
102
|
-
## Внутренняя архитектура
|
|
103
|
-
|
|
104
|
-
### Реактивность
|
|
105
|
-
|
|
106
|
-
- Переменная `showInfo` управляет видимостью информационной подсказки
|
|
107
|
-
- Переменная `svgSize` вычисляет размеры SVG иконки на основе классов
|
|
108
|
-
- Объект `tooltipConfig` содержит конфигурацию позиционирования подсказок
|
|
109
|
-
|
|
110
|
-
### Сторы и зависимости
|
|
111
|
-
|
|
112
|
-
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
113
|
-
- Применяется переход `fly` из `svelte/transition` для анимации подсказки
|
|
114
|
-
- Используется `onMount` для подписки и отписки от глобальных событий клавиатуры
|
|
115
|
-
|
|
116
|
-
### Директивы
|
|
117
|
-
|
|
118
|
-
- `transition:fly` для анимации появления/скрытия информационной подсказки
|
|
119
|
-
- Обработчики `onmouseenter` и `onmouseleave` для показа/скрытия подсказки
|
|
120
|
-
- Обработчик `onclick` для активации кнопки
|
|
121
|
-
|
|
122
|
-
### Слоты
|
|
123
|
-
|
|
124
|
-
- Компонент не использует внешних слотов
|
|
125
|
-
|
|
126
135
|
## Конструктор свойств (ButtonProps.svelte)
|
|
127
136
|
|
|
128
137
|
### Описание
|
|
@@ -146,22 +155,30 @@
|
|
|
146
155
|
- Использует систему локализации через `$T('constructor.props.*')`
|
|
147
156
|
- Поддерживает валидацию вводимых данных через регулярные выражения
|
|
148
157
|
|
|
149
|
-
|
|
158
|
+
### Что настраивается
|
|
150
159
|
|
|
151
|
-
|
|
160
|
+
- Текст, иконка, цвет, подсказка при наведении
|
|
152
161
|
|
|
153
|
-
|
|
154
|
-
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
155
|
-
- Подсказки автоматически позиционируются в зависимости от стороны отображения
|
|
162
|
+
## Внутреннее устройство
|
|
156
163
|
|
|
157
|
-
###
|
|
164
|
+
### Реактивность
|
|
158
165
|
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
-
|
|
166
|
+
- Переменная `showInfo` управляет видимостью информационной подсказки
|
|
167
|
+
- Переменная `svgSize` вычисляет размеры SVG иконки на основе классов
|
|
168
|
+
- Объект `tooltipConfig` содержит конфигурацию позиционирования подсказок
|
|
162
169
|
|
|
163
|
-
###
|
|
170
|
+
### Сторы и зависимости
|
|
164
171
|
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
- Используется
|
|
172
|
+
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
173
|
+
- Применяется переход `fly` из `svelte/transition` для анимации подсказки
|
|
174
|
+
- Используется `onMount` для подписки и отписки от глобальных событий клавиатуры
|
|
175
|
+
|
|
176
|
+
### Директивы
|
|
177
|
+
|
|
178
|
+
- `transition:fly` для анимации появления/скрытия информационной подсказки
|
|
179
|
+
- Обработчики `onmouseenter` и `onmouseleave` для показа/скрытия подсказки
|
|
180
|
+
- Обработчик `onclick` для активации кнопки
|
|
181
|
+
|
|
182
|
+
### Слоты
|
|
183
|
+
|
|
184
|
+
- Компонент не использует внешних слотов
|
package/dist/Carousel/README.md
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
# Carousel Component
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Назначение
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Прокручиваемая лента карточек с навигацией стрелками — в GUIPreview облака и WebApp переключает модули устройства.
|
|
6
|
+
|
|
7
|
+
## Пакет данных
|
|
8
|
+
|
|
9
|
+
Не связан с устройством — содержимое передаётся снаружи.
|
|
10
|
+
|
|
11
|
+
## Особенности
|
|
12
|
+
|
|
13
|
+
### Адаптивность
|
|
14
|
+
|
|
15
|
+
- Компонент использует Tailwind CSS для адаптивного дизайна
|
|
16
|
+
- Стрелки навигации автоматически скрываются при достижении начала или конца карусели
|
|
17
|
+
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
18
|
+
|
|
19
|
+
### Ограничения
|
|
20
|
+
|
|
21
|
+
- Для корректного отображения элементы внутри карусели должны иметь фиксированную ширину
|
|
22
|
+
- Компонент не поддерживает вертикальную прокрутку
|
|
23
|
+
- Значение `scrollValue` влияет на величину прокрутки при нажатии стрелок
|
|
24
|
+
|
|
25
|
+
### Производительность
|
|
26
|
+
|
|
27
|
+
- Компонент использует оптимизации Svelte для минимизации перерисовок
|
|
28
|
+
- Обработчики событий и `ResizeObserver` корректно удаляются при размонтировании
|
|
29
|
+
- Используется эффективное объединение классов через `twMerge`
|
|
6
30
|
|
|
7
31
|
## Пропсы
|
|
8
32
|
|
|
@@ -16,7 +40,7 @@
|
|
|
16
40
|
| `scrollValue` | `number` | `200` | Значение прокрутки при нажатии на стрелки (в пикселях) |
|
|
17
41
|
| `children` | `Snippet` | `undefined` | Слот для содержимого, которое будет отображаться в карусели |
|
|
18
42
|
|
|
19
|
-
|
|
43
|
+
### Колбэки
|
|
20
44
|
|
|
21
45
|
Компонент не принимает коллбэк-пропсы и не генерирует событий.
|
|
22
46
|
|
|
@@ -94,7 +118,7 @@
|
|
|
94
118
|
</UI.Carousel>
|
|
95
119
|
```
|
|
96
120
|
|
|
97
|
-
##
|
|
121
|
+
## Внутреннее устройство
|
|
98
122
|
|
|
99
123
|
### Реактивность
|
|
100
124
|
|
|
@@ -118,23 +142,3 @@
|
|
|
118
142
|
### Слоты
|
|
119
143
|
|
|
120
144
|
- `children` - слот для содержимого, которое отображается внутри карусели
|
|
121
|
-
|
|
122
|
-
## Заметки
|
|
123
|
-
|
|
124
|
-
### Адаптивность
|
|
125
|
-
|
|
126
|
-
- Компонент использует Tailwind CSS для адаптивного дизайна
|
|
127
|
-
- Стрелки навигации автоматически скрываются при достижении начала или конца карусели
|
|
128
|
-
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
129
|
-
|
|
130
|
-
### Ограничения
|
|
131
|
-
|
|
132
|
-
- Для корректного отображения элементы внутри карусели должны иметь фиксированную ширину
|
|
133
|
-
- Компонент не поддерживает вертикальную прокрутку
|
|
134
|
-
- Значение `scrollValue` влияет на величину прокрутки при нажатии стрелок
|
|
135
|
-
|
|
136
|
-
### Производительность
|
|
137
|
-
|
|
138
|
-
- Компонент использует оптимизации Svelte для минимизации перерисовок
|
|
139
|
-
- Обработчики событий и `ResizeObserver` корректно удаляются при размонтировании
|
|
140
|
-
- Используется эффективное объединение классов через `twMerge`
|
|
@@ -94,7 +94,6 @@
|
|
|
94
94
|
| UI.IAccordionProps
|
|
95
95
|
| UI.IInputProps
|
|
96
96
|
| UI.ISwitchProps
|
|
97
|
-
| UI.IColorPickerProps
|
|
98
97
|
| UI.ISliderProps
|
|
99
98
|
| UI.IGraphProps
|
|
100
99
|
| UI.ITableProps<object>
|
|
@@ -120,7 +119,6 @@
|
|
|
120
119
|
| UI.IAccordionProps
|
|
121
120
|
| UI.IInputProps
|
|
122
121
|
| UI.ISwitchProps
|
|
123
|
-
| UI.IColorPickerProps
|
|
124
122
|
| UI.ISliderProps
|
|
125
123
|
| UI.IGraphProps
|
|
126
124
|
| UI.ITableProps<object>
|
|
@@ -143,7 +141,6 @@
|
|
|
143
141
|
| UI.IAccordionProps
|
|
144
142
|
| UI.IInputProps
|
|
145
143
|
| UI.ISwitchProps
|
|
146
|
-
| UI.IColorPickerProps
|
|
147
144
|
| UI.ISliderProps
|
|
148
145
|
| UI.IGraphProps
|
|
149
146
|
| UI.ITableProps<object>
|
|
@@ -195,7 +192,7 @@
|
|
|
195
192
|
{#snippet Readonly()}
|
|
196
193
|
<UI.Switch
|
|
197
194
|
label={{ name: $T("constructor.props.readonly") }}
|
|
198
|
-
value={Number((component.properties as UI.
|
|
195
|
+
value={Number((component.properties as UI.IInputProps | UI.IJoystickProps | UI.IWidgetProps).readonly)}
|
|
199
196
|
options={[{ id: crypto.randomUUID(), value: 0, class: "" }]}
|
|
200
197
|
onChange={(value) => updateProperty("readonly", value, component, onPropertyChange)}
|
|
201
198
|
/>
|
package/dist/Divider/README.md
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
# Divider Component
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Назначение
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Визуально разделяет группы компонентов.
|
|
6
|
+
|
|
7
|
+
## Пакет данных
|
|
8
|
+
|
|
9
|
+
Не связан с устройством.
|
|
10
|
+
|
|
11
|
+
## Особенности
|
|
12
|
+
|
|
13
|
+
### Адаптивность
|
|
14
|
+
|
|
15
|
+
- Ширина полосы всегда 100% ширины выделенной области, толщина настраивается отдельно
|
|
16
|
+
- Величина зазора вокруг полосы не выделена в отдельный пропс намеренно — компонент всегда занимает полную высоту, выделенную ему в сетке конструктора (см. Ограничения), поэтому нужный зазор достигается изменением высоты самого компонента, а `anchor` определяет положение полосы внутри этой высоты
|
|
17
|
+
|
|
18
|
+
### Ограничения
|
|
19
|
+
|
|
20
|
+
- В превью (`GUIPreview.svelte`) компонент всегда получает явную высоту по размеру сетки (как `Map`/`VideoViewer`) — без этого пустая ячейка без компонента схлопывается почти в ноль, так как сетка превью не резервирует высоту неиспользуемых строк
|
|
21
|
+
|
|
22
|
+
### Производительность
|
|
23
|
+
|
|
24
|
+
- Компонент не содержит состояния и внутренних эффектов, перерисовывается только при изменении пропсов
|
|
6
25
|
|
|
7
26
|
## Пропсы
|
|
8
27
|
|
|
@@ -15,7 +34,7 @@
|
|
|
15
34
|
| `color` | `string` | `""` | Класс цвета полосы из общей палитры (`bg-max`, `bg-red`, `bg-yellow`, `bg-green`, `bg-blue`, `bg-purple`, `bg-gray`); при пустом значении полоса красится в нейтральный `--hairline-color`, при заданном `bg-*` — в `--bg-color` (как в `Button.svelte`) |
|
|
16
35
|
| `anchor` | `"top" \| "center" \| "bottom"` | `"center"` | Положение полосы внутри выделенной компоненту высоты сетки |
|
|
17
36
|
|
|
18
|
-
|
|
37
|
+
### Колбэки
|
|
19
38
|
|
|
20
39
|
Компонент не генерирует специфические события.
|
|
21
40
|
|
|
@@ -51,25 +70,6 @@
|
|
|
51
70
|
<UI.Divider type="empty" />
|
|
52
71
|
```
|
|
53
72
|
|
|
54
|
-
## Внутренняя архитектура
|
|
55
|
-
|
|
56
|
-
### Реактивность
|
|
57
|
-
|
|
58
|
-
- Объект `anchorClass` определяет CSS-классы `justify-*` для положения полосы (`top`/`center`/`bottom`)
|
|
59
|
-
|
|
60
|
-
### Сторы и зависимости
|
|
61
|
-
|
|
62
|
-
- Используется `twMerge` для объединения Tailwind CSS классов
|
|
63
|
-
|
|
64
|
-
### Директивы
|
|
65
|
-
|
|
66
|
-
- `twMerge` для объединения классов обёртки и полосы
|
|
67
|
-
- `$props()` для получения пропсов компонента
|
|
68
|
-
|
|
69
|
-
### Слоты
|
|
70
|
-
|
|
71
|
-
- Компонент не использует внешних слотов
|
|
72
|
-
|
|
73
73
|
## Конструктор свойств (DividerProps.svelte)
|
|
74
74
|
|
|
75
75
|
### Описание
|
|
@@ -90,17 +90,27 @@
|
|
|
90
90
|
- `color` — переиспользует общий сниппет `CommonSnippets snippet="Colors"`, но привязан к собственному свойству `color`, а не к `wrapperClass`
|
|
91
91
|
- `width` — числовой ввод (1-20 px)
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
### Что настраивается
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
- Тип: **линия** или **пустое место** (отступ без линии)
|
|
96
|
+
- Привязка: линия сверху, по центру или снизу ячейки
|
|
97
|
+
- Цвет и толщина линии
|
|
96
98
|
|
|
97
|
-
|
|
98
|
-
- Величина зазора вокруг полосы не выделена в отдельный пропс намеренно — компонент всегда занимает полную высоту, выделенную ему в сетке конструктора (см. Ограничения), поэтому нужный зазор достигается изменением высоты самого компонента, а `anchor` определяет положение полосы внутри этой высоты
|
|
99
|
+
## Внутреннее устройство
|
|
99
100
|
|
|
100
|
-
###
|
|
101
|
+
### Реактивность
|
|
101
102
|
|
|
102
|
-
-
|
|
103
|
+
- Объект `anchorClass` определяет CSS-классы `justify-*` для положения полосы (`top`/`center`/`bottom`)
|
|
103
104
|
|
|
104
|
-
###
|
|
105
|
+
### Сторы и зависимости
|
|
105
106
|
|
|
106
|
-
-
|
|
107
|
+
- Используется `twMerge` для объединения Tailwind CSS классов
|
|
108
|
+
|
|
109
|
+
### Директивы
|
|
110
|
+
|
|
111
|
+
- `twMerge` для объединения классов обёртки и полосы
|
|
112
|
+
- `$props()` для получения пропсов компонента
|
|
113
|
+
|
|
114
|
+
### Слоты
|
|
115
|
+
|
|
116
|
+
- Компонент не использует внешних слотов
|
|
@@ -1,8 +1,41 @@
|
|
|
1
1
|
# FileAttach Component
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Назначение
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Закачивает выбранный файл в файловую систему устройства.
|
|
6
|
+
|
|
7
|
+
## Пакет данных
|
|
8
|
+
|
|
9
|
+
- После выбора файл уходит частями командой `SET FS`: `UploadStart` → `UploadChunk` → `UploadDone`
|
|
10
|
+
- Файлы с устройства компонент не показывает
|
|
11
|
+
|
|
12
|
+
## Ключи
|
|
13
|
+
|
|
14
|
+
| Ключ | Описание |
|
|
15
|
+
| ------ | ------------------------------------------------------- |
|
|
16
|
+
| `Name` | имя файла, не длиннее 31 символа (ограничение прошивки) |
|
|
17
|
+
|
|
18
|
+
## Особенности
|
|
19
|
+
|
|
20
|
+
- Для списка файлов, удаления и прогресса закачки используйте виджет «Файловая система»
|
|
21
|
+
|
|
22
|
+
### Адаптивность
|
|
23
|
+
|
|
24
|
+
- Компонент использует Tailwind CSS для адаптивного дизайна
|
|
25
|
+
- Изображения масштабируются с учетом режима (cover/contain)
|
|
26
|
+
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
27
|
+
|
|
28
|
+
### Ограничения
|
|
29
|
+
|
|
30
|
+
- При работе с изображениями компонент автоматически создает URL предварительного просмотра
|
|
31
|
+
- Принимаемые MIME-типы определяются строкой `accept`, которая должна соответствовать спецификации HTML
|
|
32
|
+
- Для изображений поддерживается только предварительный просмотр, сохранение происходит через обработчик
|
|
33
|
+
|
|
34
|
+
### Производительность
|
|
35
|
+
|
|
36
|
+
- Компонент использует оптимизации Svelte для минимизации перерисовок
|
|
37
|
+
- URL предварительного просмотра создаются только при необходимости
|
|
38
|
+
- Используется эффективное объединение классов через `twMerge`
|
|
6
39
|
|
|
7
40
|
## Пропсы
|
|
8
41
|
|
|
@@ -25,7 +58,7 @@
|
|
|
25
58
|
| `currentImage` | `string \| null` | `""` | Текущее изображение (для связывания) |
|
|
26
59
|
| `onChange` | `(event: Event, file: File \| null) => void` | `() => {}` | Обработчик изменения файла |
|
|
27
60
|
|
|
28
|
-
|
|
61
|
+
### Колбэки
|
|
29
62
|
|
|
30
63
|
| Название | Тип | Описание |
|
|
31
64
|
| -------- | ------------------------------------------ | ------------------------------------------------------------------------------------------- |
|
|
@@ -94,29 +127,6 @@
|
|
|
94
127
|
/>
|
|
95
128
|
```
|
|
96
129
|
|
|
97
|
-
## Внутренняя архитектура
|
|
98
|
-
|
|
99
|
-
### Реактивность
|
|
100
|
-
|
|
101
|
-
- Переменная `previewUrl` вычисляет URL для предварительного просмотра изображения (из `currentImage` или из только что выбранного файла)
|
|
102
|
-
- Переменная `fileName` хранит имя выбранного файла
|
|
103
|
-
- Объект `ID` генерирует уникальный идентификатор для элемента ввода
|
|
104
|
-
|
|
105
|
-
### Сторы и зависимости
|
|
106
|
-
|
|
107
|
-
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
108
|
-
- Используется `URL.createObjectURL` для мгновенного превью выбранного файла — предыдущий blob-URL отзывается через `URL.revokeObjectURL` перед созданием нового и при размонтировании компонента
|
|
109
|
-
|
|
110
|
-
### Директивы
|
|
111
|
-
|
|
112
|
-
- `bind:currentImage` для двусторонней привязки текущего изображения
|
|
113
|
-
- Обработчик `onchange` для отслеживания изменения файла
|
|
114
|
-
- Обработчик `onclick` для активации выбора файла
|
|
115
|
-
|
|
116
|
-
### Слоты
|
|
117
|
-
|
|
118
|
-
- Компонент не использует внешних слотов
|
|
119
|
-
|
|
120
130
|
## Конструктор свойств (FileAttachProps.svelte)
|
|
121
131
|
|
|
122
132
|
### Описание
|
|
@@ -139,22 +149,30 @@
|
|
|
139
149
|
- Имеет различные наборы полей в зависимости от режима (`forConstructor`)
|
|
140
150
|
- Использует систему локализации через `$T('constructor.props.*')`
|
|
141
151
|
|
|
142
|
-
|
|
152
|
+
### Что настраивается
|
|
143
153
|
|
|
144
|
-
|
|
154
|
+
- Вид: **Файл** — кнопка с именем выбранного файла; **Изображение** — квадратное превью, картинка сразу показывается локально
|
|
155
|
+
- «Допустимые файлы» (`accept`) — фильтр в окне выбора, например `.bin, .pem`
|
|
145
156
|
|
|
146
|
-
|
|
147
|
-
- Изображения масштабируются с учетом режима (cover/contain)
|
|
148
|
-
- Используются относительные единицы измерения для обеспечения масштабируемости
|
|
157
|
+
## Внутреннее устройство
|
|
149
158
|
|
|
150
|
-
###
|
|
159
|
+
### Реактивность
|
|
151
160
|
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
161
|
+
- Переменная `previewUrl` вычисляет URL для предварительного просмотра изображения (из `currentImage` или из только что выбранного файла)
|
|
162
|
+
- Переменная `fileName` хранит имя выбранного файла
|
|
163
|
+
- Объект `ID` генерирует уникальный идентификатор для элемента ввода
|
|
155
164
|
|
|
156
|
-
###
|
|
165
|
+
### Сторы и зависимости
|
|
157
166
|
|
|
158
|
-
-
|
|
159
|
-
- URL
|
|
160
|
-
|
|
167
|
+
- Используется стор `twMerge` для объединения Tailwind CSS классов
|
|
168
|
+
- Используется `URL.createObjectURL` для мгновенного превью выбранного файла — предыдущий blob-URL отзывается через `URL.revokeObjectURL` перед созданием нового и при размонтировании компонента
|
|
169
|
+
|
|
170
|
+
### Директивы
|
|
171
|
+
|
|
172
|
+
- `bind:currentImage` для двусторонней привязки текущего изображения
|
|
173
|
+
- Обработчик `onchange` для отслеживания изменения файла
|
|
174
|
+
- Обработчик `onclick` для активации выбора файла
|
|
175
|
+
|
|
176
|
+
### Слоты
|
|
177
|
+
|
|
178
|
+
- Компонент не использует внешних слотов
|