@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="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 p-3 hover:bg-gray-100 dark:hover:bg-gray-800 last:border-b-0': computedColumns.length < 2,
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="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, !!existingToast.action)
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, !!params.action)
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 scheduleDismiss(toastId: string, hasAction: boolean) {
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 = (hasAction ? 8 : 5) * 1000
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
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saasmakers/ui",
3
- "version": "2.0.43",
3
+ "version": "2.0.45",
4
4
  "private": false,
5
5
  "description": "Reusable Nuxt UI components for SaaS Makers projects",
6
6
  "license": "MIT",