poe-svelte-ui-lib 1.2.16 → 1.2.18

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.
@@ -16,6 +16,7 @@
16
16
  componentClass = '',
17
17
  maxlength = 100,
18
18
  textareaRows = 3,
19
+ isValid = $bindable(true),
19
20
  number = { minNum: -1000000, maxNum: 1000000, step: 1 },
20
21
  help = { info: '', autocomplete: 'off', copyButton: false, regExp: '^[\\s\\S]*$' },
21
22
  onUpdate = () => {},
@@ -38,7 +39,9 @@
38
39
  return match ? new RegExp(match[1], match[2]) : new RegExp(pattern)
39
40
  }
40
41
  let RegExpObj = $derived(() => parseRegExp(help.regExp ?? ''))
41
- let isValid = $derived(RegExpObj().test(typeof value === 'string' ? value : String(value)))
42
+ $effect(() => {
43
+ isValid = RegExpObj().test(typeof value === 'string' ? value : String(value))
44
+ })
42
45
 
43
46
  const handleInputChange = (value: string | number) => {
44
47
  if (type === 'number') {
@@ -63,7 +66,7 @@
63
66
  class={twMerge(
64
67
  `w-full rounded-2xl border px-4 py-1 text-center transition-all duration-300 outline-none focus:border-blue-400
65
68
  [&::-webkit-inner-spin-button]:hidden [&::-webkit-outer-spin-button]:hidden
66
- ${isValid ? 'border-(--border-color)' : 'border-red-400 shadow-[0_0_6px_var(--red-color)]'}
69
+ ${isValid ? 'border-(--border-color)' : 'border-red-400 shadow-[0_0_6px_var(--red-color)] focus:border-red-400'}
67
70
  ${disabled ? 'opacity-50' : 'hover:shadow-md'}
68
71
  ${readonly ? '' : 'hover:shadow-md'}
69
72
  ${help?.info ? 'pl-8' : ''}
@@ -1,4 +1,4 @@
1
1
  import type { IInputProps } from '../types';
2
- declare const Input: import("svelte").Component<IInputProps, {}, "value">;
2
+ declare const Input: import("svelte").Component<IInputProps, {}, "value" | "isValid">;
3
3
  type Input = ReturnType<typeof Input>;
4
4
  export default Input;
@@ -16,6 +16,7 @@
16
16
  },
17
17
  { name: 'tab 2', icon: '', class: 'bg-red' },
18
18
  ],
19
+ children,
19
20
  apiArray = [],
20
21
  Components,
21
22
  }: ITabsProps = $props()
@@ -73,6 +74,10 @@
73
74
  {#each (apiArray ?? []).filter((c) => c.id.endsWith(`${currentTabIndex}`)) as comp}
74
75
  {@render Components(comp, false)}
75
76
  {/each}
77
+ {:else if children}
78
+ {#each items as item}
79
+ {@render children(item)}
80
+ {/each}
76
81
  {:else}
77
82
  {@render items[currentTabIndex]?.children?.()}
78
83
  {/if}
package/dist/types.d.ts CHANGED
@@ -79,6 +79,7 @@ export interface IInputProps {
79
79
  maxlength?: number;
80
80
  textareaRows?: number;
81
81
  placeholder?: string;
82
+ isValid?: boolean;
82
83
  number?: {
83
84
  minNum?: number;
84
85
  maxNum?: number;
@@ -271,6 +272,7 @@ export interface ITabsProps {
271
272
  class?: string;
272
273
  children?: Snippet;
273
274
  }[];
275
+ children?: Snippet<[any]>;
274
276
  apiArray?: UIComponent[];
275
277
  Components?: Snippet<[component: UIComponent, fixedHeight: boolean]>;
276
278
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-svelte-ui-lib",
3
- "version": "1.2.16",
3
+ "version": "1.2.18",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@sveltejs/adapter-static": "^3.0.10",
46
- "@sveltejs/kit": "^2.48.4",
46
+ "@sveltejs/kit": "^2.48.5",
47
47
  "@sveltejs/package": "^2.5.4",
48
48
  "@sveltejs/vite-plugin-svelte": "^6.2.1",
49
49
  "@types/node": "^24.10.1",