poe-svelte-ui-lib 1.22.2 → 1.23.1

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 (43) hide show
  1. package/dist/Accordion/AccordionProps.svelte +15 -14
  2. package/dist/Button/Button.svelte +5 -1
  3. package/dist/Button/ButtonProps.svelte +15 -15
  4. package/dist/ColorPicker/ColorPickerProps.svelte +15 -14
  5. package/dist/Divider/Divider.svelte +1 -4
  6. package/dist/Divider/DividerProps.svelte +15 -14
  7. package/dist/FileAttach/FileAttachProps.svelte +15 -14
  8. package/dist/Graph/GraphProps.svelte +15 -14
  9. package/dist/Input/Input.svelte +3 -1
  10. package/dist/Input/InputProps.svelte +15 -15
  11. package/dist/Joystick/JoystickProps.svelte +17 -16
  12. package/dist/Map/MapProps.svelte +15 -15
  13. package/dist/PeriodChart/PeriodChartProps.svelte +79 -79
  14. package/dist/ProgressBar/ProgressBar.svelte +2 -2
  15. package/dist/ProgressBar/ProgressBarProps.svelte +88 -90
  16. package/dist/PropsGroup.svelte +39 -0
  17. package/dist/PropsGroup.svelte.d.ts +11 -0
  18. package/dist/Select/Select.svelte +4 -4
  19. package/dist/Select/SelectProps.svelte +85 -88
  20. package/dist/Slider/Slider.svelte +2 -7
  21. package/dist/Slider/SliderProps.svelte +15 -14
  22. package/dist/Switch/Switch.svelte +1 -3
  23. package/dist/Switch/SwitchProps.svelte +20 -23
  24. package/dist/Table/Table.svelte +13 -17
  25. package/dist/Table/TableProps.svelte +338 -335
  26. package/dist/Tabs/TabsProps.svelte +81 -84
  27. package/dist/TextField/TextFieldProps.svelte +15 -15
  28. package/dist/Tooltip.svelte +6 -1
  29. package/dist/VideoViewer/VideoViewerProps.svelte +15 -14
  30. package/dist/Widget/WidgetProps.svelte +15 -14
  31. package/dist/WidgetDeviceInfo/README.md +22 -22
  32. package/dist/WidgetDeviceInfo/RestartIcon.svelte +1 -8
  33. package/dist/WidgetDeviceInfo/WidgetDeviceInfo.svelte +13 -4
  34. package/dist/WidgetDeviceInfo/WidgetDeviceInfo.svelte.d.ts +1 -1
  35. package/dist/WidgetDeviceInfo/WidgetDeviceInfoProps.svelte +13 -19
  36. package/dist/WidgetWiFi/README.md +28 -28
  37. package/dist/WidgetWiFi/WarningIcon.svelte +8 -2
  38. package/dist/WidgetWiFi/WidgetWiFi.svelte +25 -11
  39. package/dist/WidgetWiFi/WidgetWiFi.svelte.d.ts +1 -1
  40. package/dist/WidgetWiFi/WidgetWiFiProps.svelte +9 -15
  41. package/dist/WidgetWiFi/WifiIcon.svelte +8 -2
  42. package/dist/locales/translations.js +8 -0
  43. package/package.json +1 -1
@@ -8,6 +8,7 @@
8
8
  import Button from "../Button/Button.svelte"
9
9
  import CrossIcon from "../libIcons/CrossIcon.svelte"
10
10
  import CommonSnippets from "../CommonSnippets.svelte"
11
+ import PropsGroup from "../PropsGroup.svelte"
11
12
 
12
13
  const {
13
14
  component,
@@ -92,11 +93,11 @@
92
93
  {/snippet}
93
94
 
94
95
  {#if forConstructor}
95
- <div class="flex items-start justify-center gap-8">
96
- <div class="flex w-1/3 flex-col px-2">
96
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
97
+ <PropsGroup label={$T("constructor.props.group.general")}>
97
98
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
98
- </div>
99
- <div class="flex w-1/3 flex-col px-2">
99
+ </PropsGroup>
100
+ <PropsGroup label={$T("constructor.props.group.content")}>
100
101
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
101
102
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
102
103
  <CommonSnippets
@@ -110,20 +111,20 @@
110
111
  {component}
111
112
  {onPropertyChange}
112
113
  />
113
- </div>
114
- <div class="flex w-1/3 flex-col gap-2 items-center px-2">
114
+ </PropsGroup>
115
+ <PropsGroup label={$T("constructor.props.group.appearance")} contentClass="items-center">
115
116
  {@render AccordionBackgroundImage()}
116
- </div>
117
+ </PropsGroup>
117
118
  </div>
118
119
  {:else}
119
- <div class="flex items-start justify-center gap-8">
120
- <div class="flex w-1/3 flex-col px-2">
120
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
121
+ <PropsGroup label={$T("constructor.props.group.general")}>
121
122
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
122
123
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
123
124
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
124
125
  {@render AccordionSize()}
125
- </div>
126
- <div class="flex w-1/3 flex-col px-2">
126
+ </PropsGroup>
127
+ <PropsGroup label={$T("constructor.props.group.content")}>
127
128
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
128
129
  <CommonSnippets snippet="LabelClass" initialValue={initialAlign} {component} {onPropertyChange} />
129
130
  <CommonSnippets
@@ -138,9 +139,9 @@
138
139
  {onPropertyChange}
139
140
  />
140
141
  {@render AccordionIsOpen()}
141
- </div>
142
- <div class="flex w-1/3 flex-col items-center gap-2 px-2">
142
+ </PropsGroup>
143
+ <PropsGroup label={$T("constructor.props.group.appearance")} contentClass="items-center">
143
144
  {@render AccordionBackgroundImage()}
144
- </div>
145
+ </PropsGroup>
145
146
  </div>
146
147
  {/if}
@@ -38,7 +38,11 @@
38
38
  const DANGER_BG = ["bg-red", "bg-pink"]
39
39
 
40
40
  const role = $derived.by(() => {
41
- const bg = componentClass.split(/\s+/).filter((c) => c.startsWith("bg-")).at(-1) ?? ""
41
+ const bg =
42
+ componentClass
43
+ .split(/\s+/)
44
+ .filter((c) => c.startsWith("bg-"))
45
+ .at(-1) ?? ""
42
46
  if (!bg || bg === "bg-transparent") return "plain"
43
47
  if (SURFACE_BG.includes(bg) || bg.endsWith("-soft")) return "secondary"
44
48
  if (DANGER_BG.includes(bg)) return "destructive"
@@ -7,6 +7,7 @@
7
7
  import { twMerge } from "tailwind-merge"
8
8
  import { ICONS } from "../icons"
9
9
  import CommonSnippets from "../CommonSnippets.svelte"
10
+ import PropsGroup from "../PropsGroup.svelte"
10
11
  import InfoIcon from "../libIcons/InfoIcon.svelte"
11
12
 
12
13
  const {
@@ -165,17 +166,16 @@
165
166
  {/snippet}
166
167
 
167
168
  {#if forConstructor}
168
- <div class="relative flex flex-row items-start justify-center">
169
- <!-- Сообщение для отправки в ws по нажатию кнопки -->
170
- <div class="flex w-1/3 flex-col px-2">
169
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
170
+ <PropsGroup label={$T("constructor.props.group.general")}>
171
171
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
172
172
  {@render ButtonHeaderArgument()}
173
- </div>
174
- <div class="flex w-1/3 flex-col px-2">
173
+ </PropsGroup>
174
+ <PropsGroup label={$T("constructor.props.group.value")}>
175
175
  {@render ButtonVariables()}
176
176
  {@render ButtonColors()}
177
- </div>
178
- <div class="flex w-1/3 flex-col px-2">
177
+ </PropsGroup>
178
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
179
179
  {@render ButtonName()}
180
180
  <CommonSnippets
181
181
  snippet="IconsLib"
@@ -189,22 +189,22 @@
189
189
  {onPropertyChange}
190
190
  />
191
191
  {@render ButtonHeight()}
192
- </div>
192
+ </PropsGroup>
193
193
  </div>
194
194
  {:else}
195
- <div class="relative flex flex-row items-start justify-center">
196
- <div class="flex w-1/3 flex-col px-2">
195
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
196
+ <PropsGroup label={$T("constructor.props.group.general")}>
197
197
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
198
198
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
199
199
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
200
200
  <CommonSnippets snippet="Disabled" {component} {onPropertyChange} />
201
- </div>
202
- <div class="flex w-1/3 flex-col px-2">
201
+ </PropsGroup>
202
+ <PropsGroup label={$T("constructor.props.group.content")}>
203
203
  {@render ButtonName()}
204
204
  {@render ButtonInfo()}
205
205
  {@render ButtonInfoSide()}
206
- </div>
207
- <div class="flex w-1/3 flex-col px-2">
206
+ </PropsGroup>
207
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
208
208
  {@render ButtonComponentClass()}
209
209
  {@render ButtonColors()}
210
210
  <CommonSnippets
@@ -218,6 +218,6 @@
218
218
  {component}
219
219
  {onPropertyChange}
220
220
  />
221
- </div>
221
+ </PropsGroup>
222
222
  </div>
223
223
  {/if}
@@ -6,6 +6,7 @@
6
6
  import { getContext } from "svelte"
7
7
  import { optionsStore } from "../options"
8
8
  import CommonSnippets from "../CommonSnippets.svelte"
9
+ import PropsGroup from "../PropsGroup.svelte"
9
10
 
10
11
  const {
11
12
  component,
@@ -58,33 +59,33 @@
58
59
  {/snippet}
59
60
 
60
61
  {#if forConstructor}
61
- <div class="relative flex flex-row items-start justify-center">
62
- <div class="flex w-1/3 flex-col px-2">
62
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
63
+ <PropsGroup label={$T("constructor.props.group.general")}>
63
64
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
64
- </div>
65
- <div class="flex w-1/3 flex-col px-2">
65
+ </PropsGroup>
66
+ <PropsGroup label={$T("constructor.props.group.value")}>
66
67
  <CommonSnippets snippet="Variable" {VARIABLE_OPTIONS} {component} {onPropertyChange} />
67
68
  <CommonSnippets snippet="EventHandlerArgument" {component} {onPropertyChange} />
68
- </div>
69
- <div class="flex w-1/3 flex-col px-2">
69
+ </PropsGroup>
70
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
70
71
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
71
72
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
72
- </div>
73
+ </PropsGroup>
73
74
  </div>
74
75
  {:else}
75
- <div class="relative flex flex-row items-start justify-center">
76
- <div class="flex w-1/3 flex-col px-2">
76
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
77
+ <PropsGroup label={$T("constructor.props.group.general")}>
77
78
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
78
79
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
79
- </div>
80
- <div class="flex w-1/3 flex-col px-2">
80
+ </PropsGroup>
81
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
81
82
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
82
83
  <CommonSnippets snippet="LabelClass" initialValue={initialAlign} {component} {onPropertyChange} />
83
84
  <CommonSnippets snippet="Readonly" {component} {onPropertyChange} />
84
- </div>
85
- <div class="flex w-1/3 flex-col px-2">
85
+ </PropsGroup>
86
+ <PropsGroup label={$T("constructor.props.group.value")}>
86
87
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
87
88
  {@render ColorPickerDefaultColor()}
88
- </div>
89
+ </PropsGroup>
89
90
  </div>
90
91
  {/if}
@@ -11,9 +11,6 @@
11
11
  <div id={`${id}-${crypto.randomUUID().slice(0, 6)}`} class={twMerge(`flex h-full w-full flex-col ${anchorClass[anchor]}`, wrapperClass)}>
12
12
  {#if type === "line"}
13
13
  <!-- Без bg-* класса берём --hairline-color; явный bg-* по-прежнему уважается через --bg-color -->
14
- <div
15
- class={twMerge("w-full", color)}
16
- style="height: {width}px; background: {color ? 'var(--bg-color)' : 'var(--hairline-color)'};"
17
- ></div>
14
+ <div class={twMerge("w-full", color)} style="height: {width}px; background: {color ? 'var(--bg-color)' : 'var(--hairline-color)'};"></div>
18
15
  {/if}
19
16
  </div>
@@ -5,6 +5,7 @@
5
5
  import * as UI from ".."
6
6
  import { optionsStore } from "../options"
7
7
  import CommonSnippets from "../CommonSnippets.svelte"
8
+ import PropsGroup from "../PropsGroup.svelte"
8
9
 
9
10
  const {
10
11
  component,
@@ -64,33 +65,33 @@
64
65
  {/snippet}
65
66
 
66
67
  {#if forConstructor}
67
- <div class="flex items-start justify-center gap-8">
68
- <div class="flex w-1/3 flex-col px-2">
68
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
69
+ <PropsGroup label={$T("constructor.props.group.general")}>
69
70
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
70
71
  {@render DividerType()}
71
- </div>
72
- <div class="flex w-1/3 flex-col px-2">
72
+ </PropsGroup>
73
+ <PropsGroup label={$T("constructor.props.group.layout")}>
73
74
  {@render DividerAnchor()}
74
75
  {@render DividerWidth()}
75
- </div>
76
- <div class="flex w-1/3 flex-col px-2">
76
+ </PropsGroup>
77
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
77
78
  {@render DividerColor()}
78
- </div>
79
+ </PropsGroup>
79
80
  </div>
80
81
  {:else}
81
- <div class="flex items-start justify-center gap-8">
82
- <div class="flex w-1/3 flex-col px-2">
82
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
83
+ <PropsGroup label={$T("constructor.props.group.general")}>
83
84
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
84
85
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
85
86
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
86
- </div>
87
- <div class="flex w-1/3 flex-col px-2">
87
+ </PropsGroup>
88
+ <PropsGroup label={$T("constructor.props.group.layout")}>
88
89
  {@render DividerType()}
89
90
  {@render DividerAnchor()}
90
- </div>
91
- <div class="flex w-1/3 flex-col px-2">
91
+ </PropsGroup>
92
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
92
93
  {@render DividerWidth()}
93
94
  {@render DividerColor()}
94
- </div>
95
+ </PropsGroup>
95
96
  </div>
96
97
  {/if}
@@ -7,6 +7,7 @@
7
7
  import { getContext } from "svelte"
8
8
  import { twMerge } from "tailwind-merge"
9
9
  import CommonSnippets from "../CommonSnippets.svelte"
10
+ import PropsGroup from "../PropsGroup.svelte"
10
11
 
11
12
  const {
12
13
  component,
@@ -81,33 +82,33 @@
81
82
  {/snippet}
82
83
 
83
84
  {#if forConstructor}
84
- <div class="relative flex flex-row items-start justify-center">
85
- <div class="flex w-1/3 flex-col px-2">
85
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
86
+ <PropsGroup label={$T("constructor.props.group.general")}>
86
87
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
87
- </div>
88
- <div class="flex w-1/3 flex-col px-2">
88
+ </PropsGroup>
89
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
89
90
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
90
91
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
91
- </div>
92
- <div class="flex w-1/3 flex-col px-2">
92
+ </PropsGroup>
93
+ <PropsGroup label={$T("constructor.props.group.content")}>
93
94
  {@render FileAccept()}
94
- </div>
95
+ </PropsGroup>
95
96
  </div>
96
97
  {:else}
97
- <div class="relative flex flex-row items-start justify-center">
98
- <div class="flex w-1/3 flex-col px-2">
98
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
99
+ <PropsGroup label={$T("constructor.props.group.general")}>
99
100
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
100
101
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
101
102
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
102
- </div>
103
- <div class="flex w-1/3 flex-col px-2">
103
+ </PropsGroup>
104
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
104
105
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
105
106
  <CommonSnippets snippet="LabelClass" initialValue={initialAlign} {component} {onPropertyChange} />
106
107
  <CommonSnippets snippet="Disabled" {component} {onPropertyChange} />
107
- </div>
108
- <div class="flex w-1/3 flex-col px-2">
108
+ </PropsGroup>
109
+ <PropsGroup label={$T("constructor.props.group.content")}>
109
110
  {@render FileAccept()}
110
111
  {@render FileType()}
111
- </div>
112
+ </PropsGroup>
112
113
  </div>
113
114
  {/if}
@@ -6,6 +6,7 @@
6
6
  import { optionsStore } from "../options"
7
7
  import { twMerge } from "tailwind-merge"
8
8
  import CommonSnippets from "../CommonSnippets.svelte"
9
+ import PropsGroup from "../PropsGroup.svelte"
9
10
  import { REFRESH_OPTIONS } from "./Graph.svelte"
10
11
 
11
12
  const {
@@ -48,34 +49,34 @@
48
49
  {/snippet}
49
50
 
50
51
  {#if forConstructor}
51
- <div class="relative flex flex-row items-start justify-center">
52
- <div class="flex w-1/3 flex-col px-2">
52
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
53
+ <PropsGroup label={$T("constructor.props.group.general")}>
53
54
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
54
55
  <CommonSnippets snippet="Variable" {VARIABLE_OPTIONS} {component} {onPropertyChange} />
55
- </div>
56
- <div class="flex w-1/3 flex-col px-2">
56
+ </PropsGroup>
57
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
57
58
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
58
59
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
59
- </div>
60
- <div class="flex w-1/3 flex-col px-2">
60
+ </PropsGroup>
61
+ <PropsGroup label={$T("constructor.props.group.behavior")}>
61
62
  {@render GraphIsTest()}
62
63
  {@render GraphSettings()}
63
- </div>
64
+ </PropsGroup>
64
65
  </div>
65
66
  {:else}
66
- <div class="relative mb-2 flex flex-row items-start justify-center">
67
- <div class="flex w-1/3 flex-col px-2">
67
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
68
+ <PropsGroup label={$T("constructor.props.group.general")}>
68
69
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
69
70
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
70
- </div>
71
- <div class="flex w-1/3 flex-col px-2">
71
+ </PropsGroup>
72
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
72
73
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
73
74
  <CommonSnippets snippet="LabelClass" initialValue={initialAlign} {component} {onPropertyChange} />
74
- </div>
75
- <div class="flex w-1/3 flex-col px-2">
75
+ </PropsGroup>
76
+ <PropsGroup label={$T("constructor.props.group.behavior")}>
76
77
  <CommonSnippets snippet="WrapperClass" {component} {onPropertyChange} />
77
78
  {@render GraphIsTest()}
78
79
  {@render GraphSettings()}
79
- </div>
80
+ </PropsGroup>
80
81
  </div>
81
82
  {/if}
@@ -143,7 +143,9 @@
143
143
  {#if showPassword}
144
144
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"
145
145
  ><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"
146
- ><path d="M15 12a3 3 0 1 1-6 0a3 3 0 0 1 6 0" /><path d="M2 12c1.6-4.097 5.336-7 10-7s8.4 2.903 10 7c-1.6 4.097-5.336 7-10 7s-8.4-2.903-10-7" /></g
146
+ ><path d="M15 12a3 3 0 1 1-6 0a3 3 0 0 1 6 0" /><path
147
+ d="M2 12c1.6-4.097 5.336-7 10-7s8.4 2.903 10 7c-1.6 4.097-5.336 7-10 7s-8.4-2.903-10-7"
148
+ /></g
147
149
  ></svg
148
150
  >
149
151
  {:else}
@@ -7,6 +7,7 @@
7
7
  import { twMerge } from "tailwind-merge"
8
8
  import Library from "../libIcons/Library.svelte"
9
9
  import CommonSnippets from "../CommonSnippets.svelte"
10
+ import PropsGroup from "../PropsGroup.svelte"
10
11
 
11
12
  const {
12
13
  component,
@@ -279,7 +280,6 @@
279
280
  {#snippet InputSettings()}
280
281
  {#if component.properties.type !== "bitMode"}
281
282
  <UI.Select
282
- wrapperClass="mt-5"
283
283
  options={$optionsStore.INPUT_SETTING_OPTIONS.map((o) => {
284
284
  if (component.properties.type === "password" && o.value == "help.copyButton") return { ...o, disabled: true }
285
285
  else return o
@@ -377,48 +377,48 @@
377
377
  {/snippet}
378
378
 
379
379
  {#if forConstructor}
380
- <div class="relative flex flex-row items-start justify-center">
381
- <div class="flex w-1/3 flex-col px-2">
380
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
381
+ <PropsGroup label={$T("constructor.props.group.general")}>
382
382
  {@render InputAccess()}
383
383
  {@render InputVariable()}
384
384
  {@render InputType()}
385
- </div>
386
- <div class="flex w-1/3 flex-col px-2">
385
+ </PropsGroup>
386
+ <PropsGroup label={$T("constructor.props.group.value")}>
387
387
  {@render InputValue()}
388
388
  {@render InputPlaceholder()}
389
389
  {@render InputInfo()}
390
390
  {@render InputSettings()}
391
391
  <CommonSnippets snippet="BitModeInfo" {component} {onPropertyChange} />
392
- </div>
393
- <div class="flex w-1/3 flex-col px-2">
392
+ </PropsGroup>
393
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
394
394
  {@render InputLabel()}
395
395
  {@render InputLabelAlign()}
396
396
  {@render InputAutocomplete()}
397
397
  {@render InputColors()}
398
- </div>
398
+ </PropsGroup>
399
399
  </div>
400
400
  {:else}
401
- <div class="relative flex flex-row items-start justify-center">
402
- <div class="flex w-1/3 flex-col px-2">
401
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
402
+ <PropsGroup label={$T("constructor.props.group.general")}>
403
403
  {@render InputIdentificator()}
404
404
  {@render InputWrapperClass()}
405
405
  {@render InputLabel()}
406
406
  {@render InputLabelClass()}
407
407
  {@render InputComponentClass()}
408
408
  {@render InputColors()}
409
- </div>
410
- <div class="flex w-1/3 flex-col px-2">
409
+ </PropsGroup>
410
+ <PropsGroup label={$T("constructor.props.group.value")}>
411
411
  {@render InputAccess()}
412
412
  {@render InputValue()}
413
413
  {@render InputType()}
414
414
  <CommonSnippets snippet="BitModeInfo" {component} {onPropertyChange} />
415
- </div>
416
- <div class="flex w-1/3 flex-col px-2">
415
+ </PropsGroup>
416
+ <PropsGroup label={$T("constructor.props.group.behavior")}>
417
417
  {@render InputPlaceholder()}
418
418
  {@render InputInfo()}
419
419
  {@render InputAutocomplete()}
420
420
  {@render InputSettings()}
421
421
  {@render InputDisabled()}
422
- </div>
422
+ </PropsGroup>
423
423
  </div>
424
424
  {/if}
@@ -6,6 +6,7 @@
6
6
  import { ICONS } from "../icons"
7
7
  import { optionsStore } from "../options"
8
8
  import CommonSnippets from "../CommonSnippets.svelte"
9
+ import PropsGroup from "../PropsGroup.svelte"
9
10
 
10
11
  const {
11
12
  component,
@@ -34,7 +35,7 @@
34
35
  </script>
35
36
 
36
37
  {#snippet JoystickAxesMinMax()}
37
- <div class="mt-2 flex w-full justify-around gap-2">
38
+ <PropsGroup label={$T("constructor.props.group.value")} wrapperClass="mt-3" contentClass="flex-row flex-wrap justify-around gap-2">
38
39
  {#each component.properties.axes as axe, index}
39
40
  {@const axesOptions = [
40
41
  { name: $T("constructor.props.joystick.pitch.axe"), info: "", regExp: /^[\p{L}0-9\-_"':{}]+$/u },
@@ -76,22 +77,22 @@
76
77
  />
77
78
  </div>
78
79
  {/each}
79
- </div>
80
+ </PropsGroup>
80
81
  {/snippet}
81
82
 
82
83
  {#if forConstructor}
83
84
  <div>
84
- <div class="relative flex flex-row items-start justify-center">
85
- <div class="flex w-1/3 flex-col px-2">
85
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
86
+ <PropsGroup label={$T("constructor.props.group.general")}>
86
87
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
87
88
  <CommonSnippets snippet="Variable" {VARIABLE_OPTIONS} {component} {onPropertyChange} />
88
89
  <CommonSnippets snippet="EventHandlerArgument" {component} {onPropertyChange} />
89
- </div>
90
- <div class="flex w-1/3 flex-col px-2">
90
+ </PropsGroup>
91
+ <PropsGroup label={$T("constructor.props.group.content")}>
91
92
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
92
93
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
93
- </div>
94
- <div class="flex w-1/3 flex-col px-2">
94
+ </PropsGroup>
95
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
95
96
  <CommonSnippets
96
97
  snippet="IconsLib"
97
98
  initialValue={{
@@ -104,23 +105,23 @@
104
105
  {onPropertyChange}
105
106
  />
106
107
  <CommonSnippets snippet="Colors" initialValue={{ color: initialColor }} {component} {onPropertyChange} />
107
- </div>
108
+ </PropsGroup>
108
109
  </div>
109
110
  {@render JoystickAxesMinMax()}
110
111
  </div>
111
112
  {:else}
112
113
  <div>
113
- <div class="relative mb-2 flex flex-row items-start justify-center">
114
- <div class="flex w-1/3 flex-col px-2">
114
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
115
+ <PropsGroup label={$T("constructor.props.group.general")}>
115
116
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
116
117
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
117
- </div>
118
- <div class="flex w-1/3 flex-col px-2">
118
+ </PropsGroup>
119
+ <PropsGroup label={$T("constructor.props.group.content")}>
119
120
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
120
121
  <CommonSnippets snippet="LabelClass" {component} {onPropertyChange} />
121
122
  <CommonSnippets snippet="Readonly" {component} {onPropertyChange} />
122
- </div>
123
- <div class="flex w-1/3 flex-col px-2">
123
+ </PropsGroup>
124
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
124
125
  <CommonSnippets
125
126
  snippet="IconsLib"
126
127
  initialValue={{
@@ -133,7 +134,7 @@
133
134
  {onPropertyChange}
134
135
  />
135
136
  <CommonSnippets snippet="Colors" initialValue={{ color: initialColor }} {component} {onPropertyChange} />
136
- </div>
137
+ </PropsGroup>
137
138
  </div>
138
139
  {@render JoystickAxesMinMax()}
139
140
  </div>
@@ -5,6 +5,7 @@
5
5
  import { optionsStore } from "../options"
6
6
  import { getContext } from "svelte"
7
7
  import CommonSnippets from "../CommonSnippets.svelte"
8
+ import PropsGroup from "../PropsGroup.svelte"
8
9
  import { Switch, Select } from ".."
9
10
 
10
11
  const TRACK_LENGTH_OPTIONS = [100, 500, 1000, 5000, 10000, 50000].map((value) => ({ id: crypto.randomUUID(), value, name: String(value) }))
@@ -30,16 +31,16 @@
30
31
  </script>
31
32
 
32
33
  {#if forConstructor}
33
- <div class="relative flex flex-row items-start justify-center">
34
- <div class="flex w-1/3 flex-col px-2">
34
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
35
+ <PropsGroup label={$T("constructor.props.group.general")}>
35
36
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
36
37
  <CommonSnippets snippet="Variable" {VARIABLE_OPTIONS} {component} {onPropertyChange} />
37
- </div>
38
- <div class="flex w-1/3 flex-col px-2">
38
+ </PropsGroup>
39
+ <PropsGroup label={$T("constructor.props.group.content")}>
39
40
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
40
41
  <CommonSnippets snippet="LabelAlign" initialValue={initialAlign} {component} {onPropertyChange} />
41
- </div>
42
- <div class="flex w-1/3 flex-col px-2">
42
+ </PropsGroup>
43
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
43
44
  <CommonSnippets
44
45
  snippet="IconsLib"
45
46
  initialValue={{
@@ -66,20 +67,19 @@
66
67
  onUpdate={(option) => updateProperty("trackLength", (option as { value: number }).value, component, onPropertyChange)}
67
68
  />
68
69
  {/if}
69
- </div>
70
+ </PropsGroup>
70
71
  </div>
71
72
  {:else}
72
- <div class="relative mb-2 flex flex-row items-start justify-center">
73
- <div class="flex w-1/3 flex-col px-2">
73
+ <div class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
74
+ <PropsGroup label={$T("constructor.props.group.general")}>
74
75
  <CommonSnippets snippet="Access" {component} {onPropertyChange} />
75
76
  <CommonSnippets snippet="Identificator" {component} {onPropertyChange} />
76
- </div>
77
- <div class="flex w-1/3 flex-col px-2">
77
+ </PropsGroup>
78
+ <PropsGroup label={$T("constructor.props.group.content")}>
78
79
  <CommonSnippets snippet="Label" {component} {onPropertyChange} />
79
80
  <CommonSnippets snippet="LabelClass" {component} {onPropertyChange} />
80
- </div>
81
-
82
- <div class="flex w-1/3 flex-col px-2">
81
+ </PropsGroup>
82
+ <PropsGroup label={$T("constructor.props.group.appearance")}>
83
83
  <CommonSnippets
84
84
  snippet="IconsLib"
85
85
  initialValue={{
@@ -106,6 +106,6 @@
106
106
  onUpdate={(option) => updateProperty("trackLength", (option as { value: number }).value, component, onPropertyChange)}
107
107
  />
108
108
  {/if}
109
- </div>
109
+ </PropsGroup>
110
110
  </div>
111
111
  {/if}