poe-svelte-ui-lib 1.19.0 → 1.20.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.
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
})
|
|
98
98
|
</script>
|
|
99
99
|
|
|
100
|
-
<div class={twMerge(`relative flex w-full flex-col items-center`, wrapperClass)}>
|
|
100
|
+
<div class={twMerge(`relative flex w-full flex-col items-center gap-1`, wrapperClass)}>
|
|
101
101
|
<button
|
|
102
102
|
{id}
|
|
103
103
|
class={`${twMerge(
|
|
@@ -145,4 +145,9 @@
|
|
|
145
145
|
</button>
|
|
146
146
|
|
|
147
147
|
<Tooltip show={showInfo} text={content.info?.text ?? ""} side={content.info?.side ?? "top"} />
|
|
148
|
+
|
|
149
|
+
<!-- Такая же зарезервированная строка, как у Input/Select (h-4, всегда пустая — у кнопки
|
|
150
|
+
нет валидации), чтобы высота совпадала при совместном размещении в одной строке
|
|
151
|
+
(items-end) с полем ввода или селектом. -->
|
|
152
|
+
<span class="block h-4" aria-hidden="true"></span>
|
|
148
153
|
</div>
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
let {
|
|
7
7
|
id = crypto.randomUUID(),
|
|
8
8
|
wrapperClass = "",
|
|
9
|
+
componentClass = "",
|
|
9
10
|
label = { name: "", class: "" },
|
|
10
11
|
type = "file",
|
|
11
12
|
accept = "*/*",
|
|
@@ -93,8 +94,8 @@
|
|
|
93
94
|
<div class="flex shrink-0 items-center justify-center bg-(--accent-color) px-3 font-semibold whitespace-nowrap text-(--on-accent)">
|
|
94
95
|
{$T("constructor.props.file.select")}
|
|
95
96
|
</div>
|
|
96
|
-
<div class="flex min-w-0 flex-1 items-center justify-start truncate bg-(--field-color) px-3 text-(--font-color)">
|
|
97
|
-
<p class="truncate">{fileName || $T("constructor.props.file.notselected")}</p>
|
|
97
|
+
<div class={twMerge("flex min-w-0 flex-1 items-center justify-start truncate bg-(--field-color) px-3 text-(--font-color)", componentClass)}>
|
|
98
|
+
<p class="w-full truncate">{fileName || $T("constructor.props.file.notselected")}</p>
|
|
98
99
|
</div>
|
|
99
100
|
</div>
|
|
100
101
|
</label>
|
package/dist/Input/Input.svelte
CHANGED
|
@@ -239,10 +239,9 @@
|
|
|
239
239
|
{/if}
|
|
240
240
|
</div>
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
{/if}
|
|
242
|
+
<!-- Место под ошибку зарезервировано всегда (высота фиксирована, не только когда задан
|
|
243
|
+
help.regExp), чтобы Input сохранял одну и ту же высоту во всех случаях — иначе он не
|
|
244
|
+
совпадает по высоте с Select в одной строке (items-end), когда у одного поля есть
|
|
245
|
+
валидация, а у другого нет. -->
|
|
246
|
+
<span class="block h-4 text-[12px] text-(--red-color)">{help.regExp && !isValid ? "Неверный формат" : ""}</span>
|
|
248
247
|
</div>
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
let {
|
|
47
47
|
id = crypto.randomUUID(),
|
|
48
48
|
wrapperClass = "",
|
|
49
|
+
componentClass = "",
|
|
49
50
|
disabled = false,
|
|
50
51
|
label = { name: "", class: "" },
|
|
51
52
|
multiSelect = false,
|
|
@@ -156,7 +157,7 @@
|
|
|
156
157
|
aria-expanded={isDropdownOpen}
|
|
157
158
|
{disabled}
|
|
158
159
|
>
|
|
159
|
-
<span class="min-w-0 truncate {value?.name ? '' : 'text-(--faint-color)'}">{value?.name || $T("common.select_tag")}</span>
|
|
160
|
+
<span class="min-w-0 flex-1 truncate {value?.name ? '' : 'text-(--faint-color)'} {componentClass}">{value?.name || $T("common.select_tag")}</span>
|
|
160
161
|
<svg
|
|
161
162
|
class="size-3.5 shrink-0 text-(--faint-color) transition-transform duration-150"
|
|
162
163
|
style="transform: rotate({isDropdownOpen ? 180 : 0}deg)"
|
|
@@ -245,9 +246,11 @@
|
|
|
245
246
|
{:else if type === "input"}
|
|
246
247
|
<input
|
|
247
248
|
bind:value={searchValue}
|
|
248
|
-
class=
|
|
249
|
-
|
|
250
|
-
:
|
|
249
|
+
class={twMerge(
|
|
250
|
+
fieldBase,
|
|
251
|
+
disabled ? "cursor-not-allowed border-(--hairline-color) bg-(--container-color) text-(--faint-color)" : "cursor-text hover:border-(--faint-color)",
|
|
252
|
+
componentClass,
|
|
253
|
+
)}
|
|
251
254
|
id={`${id}-${crypto.randomUUID().slice(0, 6)}`}
|
|
252
255
|
{disabled}
|
|
253
256
|
oninput={handleSearch}
|
|
@@ -284,4 +287,8 @@
|
|
|
284
287
|
{/if}
|
|
285
288
|
{/if}
|
|
286
289
|
</div>
|
|
290
|
+
|
|
291
|
+
<!-- Такая же зарезервированная строка, как у Input (h-4, всегда пустая — у Select нет
|
|
292
|
+
валидации), чтобы высота совпадала при совместном размещении в одной строке (items-end). -->
|
|
293
|
+
<span class="block h-4 text-[12px]"></span>
|
|
287
294
|
</div>
|
package/dist/types.d.ts
CHANGED
|
@@ -121,6 +121,7 @@ export interface IDividerProps {
|
|
|
121
121
|
export interface IFileAttachProps {
|
|
122
122
|
id?: string;
|
|
123
123
|
wrapperClass?: string;
|
|
124
|
+
componentClass?: string;
|
|
124
125
|
label?: {
|
|
125
126
|
name?: string;
|
|
126
127
|
class?: string;
|
|
@@ -269,6 +270,7 @@ export interface IProgressBarProps {
|
|
|
269
270
|
export interface ISelectProps<T = unknown> {
|
|
270
271
|
id?: string;
|
|
271
272
|
wrapperClass?: string;
|
|
273
|
+
componentClass?: string;
|
|
272
274
|
disabled?: boolean;
|
|
273
275
|
label?: {
|
|
274
276
|
name?: string;
|