@saasmakers/ui 0.1.109 → 0.1.110

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.
@@ -70,12 +70,6 @@ const selectedOption = computed(() => {
70
70
  })
71
71
  })
72
72
 
73
- function onBlur() {
74
- if (props.openOnHover && !props.disabled) {
75
- opened.value = false
76
- }
77
- }
78
-
79
73
  function onClose() {
80
74
  reset()
81
75
  }
@@ -96,26 +90,20 @@ function onContainerKeypress(event: KeyboardEvent) {
96
90
  }
97
91
  }
98
92
 
99
- function onFocus() {
100
- if (props.openOnHover && !props.disabled) {
101
- opened.value = true
102
- }
103
- }
104
-
105
93
  function onLabelClick() {
106
94
  if (!props.disabled) {
107
95
  opened.value = !opened.value
108
96
  }
109
97
  }
110
98
 
111
- function onMouseEnter() {
99
+ function onMouseEnterOrFocus() {
112
100
  if (props.openOnHover && !props.disabled) {
113
101
  opened.value = true
114
102
  }
115
103
  }
116
104
 
117
- function onMouseLeave() {
118
- if (props.openOnHover) {
105
+ function onMouseLeaveOrBlur() {
106
+ if (props.openOnHover && !props.disabled) {
119
107
  opened.value = false
120
108
  }
121
109
  }
@@ -198,10 +186,10 @@ function selectOption(event: MouseEvent, value: string) {
198
186
  tabindex="0"
199
187
  @click="onContainerClick"
200
188
  @keypress.prevent="onContainerKeypress"
201
- @mouseenter="onMouseEnter"
202
- @mouseleave="onMouseLeave"
203
- @focusin="onFocus"
204
- @focusout="onBlur"
189
+ @mouseenter="onMouseEnterOrFocus"
190
+ @mouseleave="onMouseLeaveOrBlur"
191
+ @focusin="onMouseEnterOrFocus"
192
+ @focusout="onMouseLeaveOrBlur"
205
193
  >
206
194
  <template v-if="selectedOption">
207
195
  <BaseIcon
@@ -50,6 +50,7 @@ export default function useChartist() {
50
50
  // Clean up the dash attributes after it finishes
51
51
  const total = delay + duration + (stagger ? stagger * (lineCtx.seriesIndex ?? 0) : 0)
52
52
 
53
+ // eslint-disable-next-line sonarjs/no-nested-functions
53
54
  globalThis.setTimeout(() => {
54
55
  lineCtx.element.attr({
55
56
  'stroke-dasharray': undefined,
@@ -1,3 +1,5 @@
1
+ import { randomUUID } from 'node:crypto'
2
+
1
3
  const toasts = ref<BaseToast[]>([])
2
4
 
3
5
  export default function useToast() {
@@ -20,7 +22,7 @@ export default function useToast() {
20
22
  const createToast = (message: string, status: BaseStatus = 'success', i18nParams?: Record<string, number | string>) => {
21
23
  if (import.meta.client) {
22
24
  const toast: BaseToast = {
23
- id: Math.floor((1 + Math.random()) * 0x1_00_00).toString(16),
25
+ id: randomUUID(),
24
26
  status: status || 'success',
25
27
  text: message.includes(' ') ? message : nuxtApp.$i18n.t(`toasts.${message}`, i18nParams || {}),
26
28
  }
package/nuxt.config.ts CHANGED
@@ -6,26 +6,21 @@ import uno from './uno.config.js'
6
6
  const currentDir = path.dirname(fileURLToPath(import.meta.url))
7
7
 
8
8
  export default defineNuxtConfig({
9
- // --> BUILD <--
10
-
11
- compatibilityDate: '2025-09-24',
12
-
13
- experimental: { typedPages: true },
14
-
15
- typescript: {
16
- strict: true,
17
-
18
- tsConfig: {
19
- compilerOptions: {
20
- noUncheckedIndexedAccess: false,
21
- noUnusedParameters: true,
22
- },
23
-
24
- vueCompilerOptions: { strictTemplates: true },
25
- },
26
- },
27
-
28
- // --> COMPONENTS, CSS & MODULES <--
9
+ modules: [
10
+ '@nuxt/icon',
11
+ '@nuxt/scripts',
12
+ '@nuxtjs/color-mode',
13
+ '@nuxtjs/i18n',
14
+ '@nuxtjs/plausible',
15
+ '@nuxtjs/robots',
16
+ '@nuxtjs/sitemap',
17
+ '@nuxtjs/storybook',
18
+ '@pinia/nuxt',
19
+ '@unocss/nuxt',
20
+ '@vueuse/nuxt',
21
+ 'floating-vue/nuxt',
22
+ 'motion-v/nuxt',
23
+ ],
29
24
 
30
25
  components: [
31
26
  {
@@ -42,6 +37,8 @@ export default defineNuxtConfig({
42
37
  },
43
38
  ],
44
39
 
40
+ devtools: { enabled: true },
41
+
45
42
  css: [
46
43
  '@unocss/reset/tailwind.css',
47
44
  path.join(currentDir, './app/assets/styles/chartist.css'),
@@ -49,31 +46,28 @@ export default defineNuxtConfig({
49
46
  path.join(currentDir, './app/assets/styles/v-popper.css'),
50
47
  ],
51
48
 
52
- modules: [
53
- '@nuxt/icon',
54
- '@nuxt/scripts',
55
- '@nuxtjs/color-mode',
56
- '@nuxtjs/i18n',
57
- '@nuxtjs/plausible',
58
- '@nuxtjs/robots',
59
- '@nuxtjs/sitemap',
60
- '@nuxtjs/storybook',
61
- '@pinia/nuxt',
62
- '@unocss/nuxt',
63
- '@vueuse/nuxt',
64
- 'floating-vue/nuxt',
65
- 'motion-v/nuxt',
66
- ],
67
-
68
- // --> MODULES <--
69
-
70
49
  colorMode: {
71
50
  classSuffix: '',
72
51
  fallback: 'light',
73
52
  preference: 'system',
74
53
  },
75
54
 
76
- devtools: { enabled: true },
55
+ experimental: { typedPages: true },
56
+
57
+ compatibilityDate: '2025-09-24',
58
+
59
+ typescript: {
60
+ strict: true,
61
+
62
+ tsConfig: {
63
+ compilerOptions: {
64
+ noUncheckedIndexedAccess: false,
65
+ noUnusedParameters: true,
66
+ },
67
+
68
+ vueCompilerOptions: { strictTemplates: true },
69
+ },
70
+ },
77
71
 
78
72
  i18n: {
79
73
  defaultLocale: 'en',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saasmakers/ui",
3
- "version": "0.1.109",
3
+ "version": "0.1.110",
4
4
  "private": false,
5
5
  "description": "Reusable Nuxt UI components for SaaS Makers projects",
6
6
  "repository": {
@@ -55,10 +55,10 @@
55
55
  "devDependencies": {
56
56
  "nuxt": "4.2.2",
57
57
  "typescript": "5.9.3",
58
- "@saasmakers/shared": "0.1.15"
58
+ "@saasmakers/shared": "0.1.16"
59
59
  },
60
60
  "peerDependencies": {
61
- "@saasmakers/shared": "^0.1.15",
61
+ "@saasmakers/shared": "^0.1.16",
62
62
  "nuxt": "4.2.2"
63
63
  },
64
64
  "publishConfig": {
package/uno.config.ts CHANGED
@@ -187,9 +187,11 @@ export const theme = {
187
187
  /* eslint-enable perfectionist/sort-objects */
188
188
  }
189
189
 
190
+ /* eslint-disable nuxt/nuxt-config-keys-order */
190
191
  export default defineConfig({
191
192
  presets,
192
193
  rules,
193
194
  shortcuts,
194
195
  theme,
195
196
  })
197
+ /* eslint-enable nuxt/nuxt-config-keys-order */