noph-ui 0.13.2 → 0.13.3

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.
@@ -17,6 +17,7 @@
17
17
  variant = 'filled',
18
18
  placeholder = ' ',
19
19
  element = $bindable(),
20
+ inputElement = $bindable(),
20
21
  ...attributes
21
22
  }: TextFieldProps = $props()
22
23
 
@@ -28,18 +29,17 @@
28
29
  errorRaw = error
29
30
  errorTextRaw = errorText
30
31
  })
31
- let textElement: HTMLInputElement | HTMLTextAreaElement | undefined = $state()
32
32
 
33
33
  $effect(() => {
34
- if (textElement) {
35
- textElement.form?.addEventListener('reset', () => {
34
+ if (inputElement) {
35
+ inputElement.form?.addEventListener('reset', () => {
36
36
  errorRaw = error
37
37
  value = ''
38
38
  })
39
- textElement.addEventListener('input', () => {
39
+ inputElement.addEventListener('input', () => {
40
40
  checkValidity = true
41
41
  })
42
- textElement.addEventListener('invalid', (event) => {
42
+ inputElement.addEventListener('invalid', (event) => {
43
43
  event.preventDefault()
44
44
  const { currentTarget } = event as Event & {
45
45
  currentTarget: HTMLInputElement | HTMLTextAreaElement
@@ -53,7 +53,7 @@
53
53
  }
54
54
  })
55
55
 
56
- textElement.addEventListener('blur', (event) => {
56
+ inputElement.addEventListener('blur', (event) => {
57
57
  const { currentTarget } = event as Event & {
58
58
  currentTarget: HTMLInputElement | HTMLTextAreaElement
59
59
  }
@@ -131,7 +131,7 @@
131
131
  aria-label={label}
132
132
  {...attributes}
133
133
  bind:value
134
- bind:this={textElement}
134
+ bind:this={inputElement}
135
135
  class="input"
136
136
  {placeholder}
137
137
  rows={attributes.rows || 2}
@@ -147,7 +147,7 @@
147
147
  aria-label={label}
148
148
  {...attributes}
149
149
  bind:value
150
- bind:this={textElement}
150
+ bind:this={inputElement}
151
151
  class="input"
152
152
  {placeholder}
153
153
  aria-invalid={errorRaw}
@@ -1,4 +1,4 @@
1
1
  import type { TextFieldProps } from './types.ts';
2
- declare const TextField: import("svelte").Component<TextFieldProps, {}, "element" | "value">;
2
+ declare const TextField: import("svelte").Component<TextFieldProps, {}, "element" | "value" | "inputElement">;
3
3
  type TextField = ReturnType<typeof TextField>;
4
4
  export default TextField;
@@ -12,6 +12,7 @@ interface FieldProps {
12
12
  end?: Snippet;
13
13
  noAsterisk?: boolean;
14
14
  element?: HTMLSpanElement;
15
+ inputElement?: HTMLInputElement | HTMLTextAreaElement;
15
16
  }
16
17
  export interface InputFieldProps extends HTMLInputAttributes, FieldProps {
17
18
  type?: 'text' | 'password' | 'email' | 'number' | 'search' | 'tel' | 'url' | 'datetime-local';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noph-ui",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://noph.dev",
6
6
  "repository": {