noph-ui 0.9.13 → 0.9.14

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.
@@ -127,5 +127,6 @@
127
127
  }
128
128
  @position-try --np-menu-position-fallback {
129
129
  position-area: var(--np-menu-position-area-fallback, top center);
130
+ position-area: var(--np-menu-position-area-fallback, top center);
130
131
  }
131
132
  </style>
@@ -31,9 +31,7 @@
31
31
  }: SelectProps = $props()
32
32
 
33
33
  let errorTextRaw: string = $state(errorText)
34
- $effect(() => {
35
- errorTextRaw = errorText
36
- })
34
+ let errorRaw = $state(error)
37
35
  let selectElement: HTMLSelectElement | undefined = $state()
38
36
  let menuElement: HTMLDivElement | undefined = $state()
39
37
  let field: HTMLDivElement | undefined = $state()
@@ -43,22 +41,22 @@
43
41
  return options.find((option) => option.value === value)?.label || ''
44
42
  })
45
43
  $effect(() => {
46
- if (value !== '') {
47
- error = false
44
+ if (value !== '' && selectElement?.checkValidity()) {
45
+ errorRaw = error
48
46
  errorTextRaw = errorText
49
47
  }
50
48
  })
51
49
  $effect(() => {
52
50
  if (selectElement) {
53
51
  selectElement.form?.addEventListener('reset', () => {
54
- error = false
52
+ errorRaw = error
55
53
  })
56
54
  selectElement.addEventListener('invalid', (event) => {
57
55
  event.preventDefault()
58
56
  const { currentTarget } = event as Event & {
59
57
  currentTarget: HTMLInputElement | HTMLTextAreaElement
60
58
  }
61
- error = true
59
+ errorRaw = true
62
60
  if (errorText === '') {
63
61
  errorTextRaw = currentTarget.validationMessage
64
62
  }
@@ -66,16 +64,6 @@
66
64
  currentTarget.focus()
67
65
  }
68
66
  })
69
-
70
- selectElement.addEventListener('select', (event) => {
71
- const { currentTarget } = event as Event & {
72
- currentTarget: HTMLSelectElement
73
- }
74
- if (currentTarget.checkValidity()) {
75
- error = false
76
- errorTextRaw = errorText
77
- }
78
- })
79
67
  }
80
68
  })
81
69
  </script>
@@ -100,7 +88,7 @@
100
88
  <div
101
89
  {id}
102
90
  class="field"
103
- class:error
91
+ class:error={errorRaw}
104
92
  class:no-label={!label?.length}
105
93
  class:with-start={start}
106
94
  class:menu-open={menuOpen}
@@ -202,10 +190,10 @@
202
190
  </div>
203
191
  </div>
204
192
  </div>
205
- {#if supportingText || (errorTextRaw && error)}
206
- <div class="supporting-text" role={error ? 'alert' : undefined}>
193
+ {#if supportingText || (errorTextRaw && errorRaw)}
194
+ <div class="supporting-text" role={errorRaw ? 'alert' : undefined}>
207
195
  <span>
208
- {error && errorTextRaw ? errorTextRaw : supportingText}
196
+ {errorRaw && errorTextRaw ? errorTextRaw : supportingText}
209
197
  </span>
210
198
  </div>
211
199
  {/if}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noph-ui",
3
- "version": "0.9.13",
3
+ "version": "0.9.14",
4
4
  "license": "MIT",
5
5
  "homepage": "https://noph.dev",
6
6
  "repository": {
@@ -60,16 +60,16 @@
60
60
  "@sveltejs/vite-plugin-svelte": "^5.0.3",
61
61
  "@types/eslint": "^9.6.1",
62
62
  "eslint": "^9.18.0",
63
- "eslint-config-prettier": "^9.1.0",
63
+ "eslint-config-prettier": "^10.0.1",
64
64
  "eslint-plugin-svelte": "^2.46.1",
65
65
  "globals": "^15.14.0",
66
66
  "prettier": "^3.4.2",
67
- "prettier-plugin-svelte": "^3.3.2",
68
- "publint": "^0.3.1",
69
- "svelte": "^5.17.3",
70
- "svelte-check": "^4.1.3",
67
+ "prettier-plugin-svelte": "^3.3.3",
68
+ "publint": "^0.3.2",
69
+ "svelte": "^5.18.0",
70
+ "svelte-check": "^4.1.4",
71
71
  "typescript": "^5.7.3",
72
- "typescript-eslint": "^8.19.1",
72
+ "typescript-eslint": "^8.20.0",
73
73
  "vite": "^6.0.7",
74
74
  "vitest": "^2.1.8"
75
75
  },