sprintify-ui 0.0.149 → 0.0.151
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/dist/sprintify-ui.es.js +4489 -4465
- package/dist/types/src/components/BaseIconPicker.vue.d.ts +5 -0
- package/dist/types/src/index.d.ts +4 -0
- package/package.json +1 -1
- package/src/components/BaseIconPicker.vue +47 -13
- package/src/components/BaseNumber.vue +10 -3
- package/src/lang/en.json +1 -0
- package/src/lang/fr.json +1 -0
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
2
2
|
modelValue?: string | null | undefined;
|
|
3
3
|
collection?: string | undefined;
|
|
4
|
+
maxWidth?: string | undefined;
|
|
4
5
|
}>, {
|
|
5
6
|
modelValue: null;
|
|
6
7
|
collection: string;
|
|
8
|
+
maxWidth: string;
|
|
7
9
|
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
8
10
|
modelValue?: string | null | undefined;
|
|
9
11
|
collection?: string | undefined;
|
|
12
|
+
maxWidth?: string | undefined;
|
|
10
13
|
}>, {
|
|
11
14
|
modelValue: null;
|
|
12
15
|
collection: string;
|
|
16
|
+
maxWidth: string;
|
|
13
17
|
}>>> & {
|
|
14
18
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
15
19
|
}, {
|
|
16
20
|
modelValue: string | null;
|
|
21
|
+
maxWidth: string;
|
|
17
22
|
collection: string;
|
|
18
23
|
}>;
|
|
19
24
|
export default _default;
|
|
@@ -49,6 +49,7 @@ declare const messages: {
|
|
|
49
49
|
remove: string;
|
|
50
50
|
remove_file: string;
|
|
51
51
|
remove_file_description: string;
|
|
52
|
+
search: string;
|
|
52
53
|
see_all_notifications: string;
|
|
53
54
|
select_an_item: string;
|
|
54
55
|
select_an_option: string;
|
|
@@ -116,6 +117,7 @@ declare const messages: {
|
|
|
116
117
|
remove: string;
|
|
117
118
|
remove_file: string;
|
|
118
119
|
remove_file_description: string;
|
|
120
|
+
search: string;
|
|
119
121
|
see_all_notifications: string;
|
|
120
122
|
select_an_item: string;
|
|
121
123
|
select_an_option: string;
|
|
@@ -196,6 +198,7 @@ declare const config: {
|
|
|
196
198
|
remove: string;
|
|
197
199
|
remove_file: string;
|
|
198
200
|
remove_file_description: string;
|
|
201
|
+
search: string;
|
|
199
202
|
see_all_notifications: string;
|
|
200
203
|
select_an_item: string;
|
|
201
204
|
select_an_option: string;
|
|
@@ -263,6 +266,7 @@ declare const config: {
|
|
|
263
266
|
remove: string;
|
|
264
267
|
remove_file: string;
|
|
265
268
|
remove_file_description: string;
|
|
269
|
+
search: string;
|
|
266
270
|
see_all_notifications: string;
|
|
267
271
|
select_an_item: string;
|
|
268
272
|
select_an_option: string;
|
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
2
|
+
<div
|
|
3
|
+
class="w-full overflow-hidden rounded border bg-white"
|
|
4
|
+
:style="{
|
|
5
|
+
maxWidth: maxWidth,
|
|
6
|
+
}"
|
|
7
|
+
>
|
|
8
|
+
<div class="flex w-full min-w-0 overflow-hidden px-2 py-2">
|
|
4
9
|
<select
|
|
5
10
|
v-model="suffix"
|
|
6
|
-
class="max-w-[
|
|
11
|
+
class="max-w-[150px] shrink-0 rounded-l border-r-0 border-slate-300 py-1.5 pl-2 pr-6 focus:border-slate-300 focus:outline-none focus:ring-0 sm:text-sm"
|
|
12
|
+
@change="onSuffixChange"
|
|
7
13
|
>
|
|
8
14
|
<option v-for="(label, key) in suffixes" :key="key" :value="key">
|
|
9
15
|
{{ label }}
|
|
@@ -13,12 +19,12 @@
|
|
|
13
19
|
<input
|
|
14
20
|
v-model="keywords"
|
|
15
21
|
type="text"
|
|
16
|
-
:placeholder="$t('sui.
|
|
17
|
-
class="grow rounded-r border-slate-300 text-
|
|
22
|
+
:placeholder="$t('sui.search') + '...'"
|
|
23
|
+
class="min-w-[40px] grow rounded-r border-slate-300 py-0 px-2 focus:border-blue-500 focus:ring-2 focus:ring-blue-300 sm:text-sm"
|
|
18
24
|
/>
|
|
19
25
|
</div>
|
|
20
26
|
|
|
21
|
-
<div ref="drawer" class="h-44 overflow-y-auto
|
|
27
|
+
<div ref="drawer" class="h-44 overflow-y-auto px-2 pb-2">
|
|
22
28
|
<ul class="flex flex-wrap">
|
|
23
29
|
<li v-for="icon in filteredIcons" :key="icon">
|
|
24
30
|
<button
|
|
@@ -27,7 +33,7 @@
|
|
|
27
33
|
:class="[
|
|
28
34
|
modelValue == icon
|
|
29
35
|
? 'bg-primary-600 text-white'
|
|
30
|
-
: 'bg-white text-slate-
|
|
36
|
+
: 'bg-white text-slate-800 hover:bg-slate-200',
|
|
31
37
|
]"
|
|
32
38
|
class="flex items-center justify-center rounded p-1"
|
|
33
39
|
@click="onClick(icon)"
|
|
@@ -47,10 +53,12 @@ const props = withDefaults(
|
|
|
47
53
|
defineProps<{
|
|
48
54
|
modelValue?: string | null;
|
|
49
55
|
collection?: string;
|
|
56
|
+
maxWidth?: string;
|
|
50
57
|
}>(),
|
|
51
58
|
{
|
|
52
59
|
modelValue: null,
|
|
53
60
|
collection: 'heroicons',
|
|
61
|
+
maxWidth: '300px',
|
|
54
62
|
}
|
|
55
63
|
);
|
|
56
64
|
|
|
@@ -62,6 +70,11 @@ function onClick(icon: string) {
|
|
|
62
70
|
|
|
63
71
|
const icons = ref<string[]>([]);
|
|
64
72
|
const suffixes = ref<Record<string, string>>({});
|
|
73
|
+
const orderedSuffixKeys = computed(() => {
|
|
74
|
+
return Object.keys(suffixes.value).sort((a, b) => {
|
|
75
|
+
return b.length - a.length;
|
|
76
|
+
});
|
|
77
|
+
});
|
|
65
78
|
const suffix = ref<string | null>(null);
|
|
66
79
|
const otherSuffixValue = computed(() => {
|
|
67
80
|
return Object.keys(suffixes.value).filter((s) => {
|
|
@@ -139,12 +152,8 @@ function selectCurrentSuffix() {
|
|
|
139
152
|
return;
|
|
140
153
|
}
|
|
141
154
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
for (let i = 0; i < suffixesOrderedByLength.length; i++) {
|
|
147
|
-
const s = suffixesOrderedByLength[i];
|
|
155
|
+
for (let i = 0; i < orderedSuffixKeys.value.length; i++) {
|
|
156
|
+
const s = orderedSuffixKeys.value[i];
|
|
148
157
|
|
|
149
158
|
if (props.modelValue.endsWith(s)) {
|
|
150
159
|
suffix.value = s;
|
|
@@ -174,6 +183,31 @@ function scrollToIcon() {
|
|
|
174
183
|
drawer.value.scrollTop = icon.offsetTop - 10;
|
|
175
184
|
}
|
|
176
185
|
|
|
186
|
+
function onSuffixChange() {
|
|
187
|
+
nextTick(() => {
|
|
188
|
+
let iconWithoutSuffix = props.modelValue ?? '';
|
|
189
|
+
|
|
190
|
+
orderedSuffixKeys.value.forEach((s) => {
|
|
191
|
+
let completeSuffix = s;
|
|
192
|
+
|
|
193
|
+
if (completeSuffix != '') {
|
|
194
|
+
completeSuffix = '-' + completeSuffix;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const regex = new RegExp(completeSuffix + '$');
|
|
198
|
+
|
|
199
|
+
iconWithoutSuffix = iconWithoutSuffix.replace(regex, '');
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
let suffixToAdd = suffix.value;
|
|
203
|
+
if (suffixToAdd != '') {
|
|
204
|
+
suffixToAdd = '-' + suffixToAdd;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
emit('update:modelValue', iconWithoutSuffix + suffixToAdd);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
177
211
|
onMounted(() => {
|
|
178
212
|
fetchIcons();
|
|
179
213
|
});
|
|
@@ -233,18 +233,25 @@ function onKeydown(e: KeyboardEvent) {
|
|
|
233
233
|
emit('keydown', e);
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
const defaultValue = computed<number>(() => {
|
|
237
|
+
return Math.max(0, props.min ?? 0);
|
|
238
|
+
});
|
|
239
|
+
|
|
236
240
|
function updateInternalValueToRealValue() {
|
|
237
241
|
if (realValueInternal.value === null) {
|
|
238
242
|
valueInternal.value = '';
|
|
239
243
|
return;
|
|
240
244
|
}
|
|
241
|
-
valueInternal.value = round(
|
|
245
|
+
valueInternal.value = round(
|
|
246
|
+
realValueInternal.value ?? defaultValue.value,
|
|
247
|
+
precision.value
|
|
248
|
+
);
|
|
242
249
|
}
|
|
243
250
|
|
|
244
251
|
function increment() {
|
|
245
252
|
if (props.disabled) return;
|
|
246
253
|
if (realValueInternal.value === null) {
|
|
247
|
-
valueInternal.value =
|
|
254
|
+
valueInternal.value = defaultValue.value;
|
|
248
255
|
} else {
|
|
249
256
|
const newValue = round(
|
|
250
257
|
realValueInternal.value + props.step,
|
|
@@ -260,7 +267,7 @@ function increment() {
|
|
|
260
267
|
function decrement() {
|
|
261
268
|
if (props.disabled) return;
|
|
262
269
|
if (realValueInternal.value === null) {
|
|
263
|
-
valueInternal.value =
|
|
270
|
+
valueInternal.value = defaultValue.value;
|
|
264
271
|
} else {
|
|
265
272
|
const newValue = round(
|
|
266
273
|
realValueInternal.value - props.step,
|
package/src/lang/en.json
CHANGED
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"remove": "Remove",
|
|
41
41
|
"remove_file": "Remove file?",
|
|
42
42
|
"remove_file_description": "Are you sure you want to remove the file? This action is irreversible.",
|
|
43
|
+
"search": "Search",
|
|
43
44
|
"see_all_notifications": "See all notifications",
|
|
44
45
|
"select_an_item": "Select an item",
|
|
45
46
|
"select_an_option": "Select an option",
|
package/src/lang/fr.json
CHANGED
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"remove": "Retirer",
|
|
41
41
|
"remove_file": "Retirer le fichier?",
|
|
42
42
|
"remove_file_description": "Voulez-vous vraiment supprimer le fichier ? \nCette action est irréversible.",
|
|
43
|
+
"search": "Rechercher",
|
|
43
44
|
"see_all_notifications": "Voir toutes les notifications",
|
|
44
45
|
"select_an_item": "Sélectionner un élément",
|
|
45
46
|
"select_an_option": "Sélectionner une option",
|