@saasmakers/ui 2.0.43 → 2.0.45
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.
|
@@ -100,6 +100,19 @@ const selectedOption = computed(() => {
|
|
|
100
100
|
})
|
|
101
101
|
})
|
|
102
102
|
|
|
103
|
+
const textSize = computed<BaseSize>(() => {
|
|
104
|
+
switch (props.size) {
|
|
105
|
+
case 'base':
|
|
106
|
+
return 'sm'
|
|
107
|
+
case 'lg':
|
|
108
|
+
return 'base'
|
|
109
|
+
case 'sm':
|
|
110
|
+
return 'xs'
|
|
111
|
+
default:
|
|
112
|
+
return 'sm'
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
|
|
103
116
|
watch(opened, (isOpened) => {
|
|
104
117
|
if (isOpened && props.searchable) {
|
|
105
118
|
nextTick(() => {
|
|
@@ -266,6 +279,7 @@ function selectOption(event: MouseEvent, value: string) {
|
|
|
266
279
|
:class="{ 'mr-2': !hideLabel && !square }"
|
|
267
280
|
:color="selectedOption.iconColor"
|
|
268
281
|
:icon="selectedOption.icon"
|
|
282
|
+
:size="textSize"
|
|
269
283
|
/>
|
|
270
284
|
|
|
271
285
|
<span
|
|
@@ -351,7 +365,7 @@ function selectOption(event: MouseEvent, value: string) {
|
|
|
351
365
|
class="pointer-events-none"
|
|
352
366
|
color="gray"
|
|
353
367
|
:icon="getLayerIcon('infoCircle')"
|
|
354
|
-
:size="
|
|
368
|
+
:size="textSize"
|
|
355
369
|
:text="t('noResults')"
|
|
356
370
|
/>
|
|
357
371
|
</div>
|
|
@@ -371,7 +385,10 @@ function selectOption(event: MouseEvent, value: string) {
|
|
|
371
385
|
:key="option.value"
|
|
372
386
|
class="flex cursor-pointer items-center outline-none"
|
|
373
387
|
:class="{
|
|
374
|
-
'base-border-b
|
|
388
|
+
'base-border-b px-3 hover:bg-gray-100 dark:hover:bg-gray-800 last:border-b-0': computedColumns.length < 2,
|
|
389
|
+
'h-10': size === 'sm' && computedColumns.length < 2,
|
|
390
|
+
'h-12': size === 'base' && computedColumns.length < 2,
|
|
391
|
+
'h-14': size === 'lg' && computedColumns.length < 2,
|
|
375
392
|
'px-2 py-1 hover:bg-gray-100 dark:hover:bg-gray-800 last:mb-2': computedColumns.length >= 2,
|
|
376
393
|
'font-medium underline': option.value === selectedOption?.value,
|
|
377
394
|
'text-gray-900 dark:text-gray-100': option.value === selectedOption?.value,
|
|
@@ -401,7 +418,7 @@ function selectOption(event: MouseEvent, value: string) {
|
|
|
401
418
|
class="pointer-events-none mr-2 flex-initial"
|
|
402
419
|
:color="option.iconColor"
|
|
403
420
|
:icon="option.icon"
|
|
404
|
-
:size="
|
|
421
|
+
:size="textSize"
|
|
405
422
|
:text="option.text"
|
|
406
423
|
/>
|
|
407
424
|
</div>
|
|
@@ -19,6 +19,7 @@ export default function useToast() {
|
|
|
19
19
|
|
|
20
20
|
const createToast = (params: {
|
|
21
21
|
action?: BaseToastAction
|
|
22
|
+
durationMs?: number
|
|
22
23
|
emoji?: string
|
|
23
24
|
i18nParams?: Record<string, number | string>
|
|
24
25
|
message: string
|
|
@@ -56,7 +57,10 @@ export default function useToast() {
|
|
|
56
57
|
existingToast.action = params.action
|
|
57
58
|
}
|
|
58
59
|
|
|
59
|
-
scheduleDismiss(existingToast.id,
|
|
60
|
+
scheduleDismiss(existingToast.id, {
|
|
61
|
+
durationMs: params.durationMs,
|
|
62
|
+
hasAction: !!existingToast.action,
|
|
63
|
+
})
|
|
60
64
|
|
|
61
65
|
return
|
|
62
66
|
}
|
|
@@ -70,7 +74,10 @@ export default function useToast() {
|
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
toasts.value.push(toast)
|
|
73
|
-
scheduleDismiss(toast.id,
|
|
77
|
+
scheduleDismiss(toast.id, {
|
|
78
|
+
durationMs: params.durationMs,
|
|
79
|
+
hasAction: !!params.action,
|
|
80
|
+
})
|
|
74
81
|
}
|
|
75
82
|
|
|
76
83
|
return {
|
|
@@ -123,10 +130,24 @@ function getFingerprint(params: {
|
|
|
123
130
|
return parts.join(':')
|
|
124
131
|
}
|
|
125
132
|
|
|
126
|
-
function
|
|
133
|
+
function getDismissDuration(params: {
|
|
134
|
+
durationMs?: number
|
|
135
|
+
hasAction: boolean
|
|
136
|
+
}): number {
|
|
137
|
+
if (params.durationMs !== undefined) {
|
|
138
|
+
return params.durationMs
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return (params.hasAction ? 8 : 5) * 1000
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function scheduleDismiss(toastId: string, params: {
|
|
145
|
+
durationMs?: number
|
|
146
|
+
hasAction: boolean
|
|
147
|
+
}) {
|
|
127
148
|
clearDismissTimer(toastId)
|
|
128
149
|
|
|
129
|
-
const duration = (
|
|
150
|
+
const duration = getDismissDuration(params)
|
|
130
151
|
const timer = setTimeout(() => closeToast(toastId), duration)
|
|
131
152
|
|
|
132
153
|
dismissTimers.set(toastId, timer)
|
package/nuxt.config.ts
CHANGED
|
@@ -140,11 +140,6 @@ export default defineNuxtConfig({
|
|
|
140
140
|
},
|
|
141
141
|
|
|
142
142
|
unocss: {
|
|
143
|
-
nuxtLayers: true,
|
|
144
|
-
presets: uno.presets,
|
|
145
|
-
rules: uno.rules,
|
|
146
|
-
shortcuts: uno.shortcuts,
|
|
147
|
-
theme: uno.theme,
|
|
148
143
|
content: {
|
|
149
144
|
// Force consumers to scan layer classes even when resolved from node_modules,
|
|
150
145
|
// otherwise transition utilities used only here are purged during their prod build.
|
|
@@ -152,5 +147,10 @@ export default defineNuxtConfig({
|
|
|
152
147
|
path.join(currentDir, 'app/**/*.{vue,ts}'),
|
|
153
148
|
],
|
|
154
149
|
},
|
|
150
|
+
nuxtLayers: true,
|
|
151
|
+
presets: uno.presets,
|
|
152
|
+
rules: uno.rules,
|
|
153
|
+
shortcuts: uno.shortcuts,
|
|
154
|
+
theme: uno.theme,
|
|
155
155
|
},
|
|
156
156
|
})
|