noph-ui 0.33.4 → 0.34.0
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.
- package/dist/autocomplete/AutoComplete.svelte +0 -1
- package/dist/autocomplete/types.d.ts +2 -4
- package/dist/button/Button.svelte +3 -3
- package/dist/button/IconButton.svelte +2 -3
- package/dist/button/types.d.ts +7 -38
- package/dist/card/Card.svelte +10 -9
- package/dist/card/types.d.ts +3 -26
- package/dist/chip/types.d.ts +5 -17
- package/dist/dialog/Dialog.svelte +2 -4
- package/dist/dialog/Dialog.svelte.d.ts +4 -1
- package/dist/dialog/types.d.ts +0 -2
- package/dist/icons/Icon.svelte +1 -1
- package/dist/list/Item.svelte +4 -5
- package/dist/list/ListItem.svelte.d.ts +1 -2
- package/dist/list/types.d.ts +5 -24
- package/dist/menu/Menu.svelte +2 -4
- package/dist/menu/Menu.svelte.d.ts +4 -1
- package/dist/menu/MenuItem.svelte +3 -8
- package/dist/menu/types.d.ts +3 -20
- package/dist/navigation-drawer/types.d.ts +3 -9
- package/dist/navigation-rail/types.d.ts +3 -8
- package/dist/snackbar/Snackbar.svelte +2 -4
- package/dist/snackbar/Snackbar.svelte.d.ts +4 -1
- package/dist/snackbar/types.d.ts +0 -2
- package/dist/text-field/TextField.svelte +1 -2
- package/dist/text-field/types.d.ts +8 -3
- package/package.json +23 -18
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TextFieldProps } from '../types.ts';
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
export interface AutoCompleteOption {
|
|
4
4
|
value?: string | number;
|
|
@@ -7,13 +7,11 @@ export interface AutoCompleteOption {
|
|
|
7
7
|
end?: Snippet;
|
|
8
8
|
supportingText?: string;
|
|
9
9
|
}
|
|
10
|
-
export interface AutoCompleteProps extends Omit<
|
|
10
|
+
export interface AutoCompleteProps extends Omit<TextFieldProps, 'clientWidth' | 'clientHeight'> {
|
|
11
11
|
options: AutoCompleteOption[];
|
|
12
12
|
optionsFilter?: (option: AutoCompleteOption) => boolean;
|
|
13
13
|
onoptionselect?: (option: AutoCompleteOption, menuElement: HTMLDivElement) => void;
|
|
14
14
|
clampMenuWidth?: boolean;
|
|
15
|
-
showPopover?: () => void;
|
|
16
|
-
hidePopover?: () => void;
|
|
17
15
|
virtualThreshold?: number;
|
|
18
16
|
menuOpen?: boolean;
|
|
19
17
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import Ripple from '../ripple/Ripple.svelte'
|
|
4
4
|
import Tooltip from '../tooltip/Tooltip.svelte'
|
|
5
5
|
import { onMount } from 'svelte'
|
|
6
|
-
import type { HTMLButtonAttributes
|
|
6
|
+
import type { HTMLButtonAttributes } from 'svelte/elements'
|
|
7
7
|
import type { ButtonProps } from './types.ts'
|
|
8
8
|
|
|
9
9
|
let {
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
size,
|
|
87
87
|
selected ? 'square' : shape,
|
|
88
88
|
toggle && 'toggle',
|
|
89
|
+
selected && 'selected',
|
|
89
90
|
'enabled',
|
|
90
91
|
variant,
|
|
91
92
|
pressed && 'pressed',
|
|
@@ -110,8 +111,7 @@
|
|
|
110
111
|
} else {
|
|
111
112
|
handlePress()
|
|
112
113
|
}
|
|
113
|
-
|
|
114
|
-
;(attributes.onclick as MouseEventHandler<HTMLButtonElement>)?.(event)
|
|
114
|
+
attributes.onclick?.(event)
|
|
115
115
|
}}
|
|
116
116
|
class={[
|
|
117
117
|
'np-button',
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import Ripple from '../ripple/Ripple.svelte'
|
|
4
4
|
import Tooltip from '../tooltip/Tooltip.svelte'
|
|
5
5
|
import { onMount } from 'svelte'
|
|
6
|
-
import type { HTMLButtonAttributes
|
|
6
|
+
import type { HTMLButtonAttributes } from 'svelte/elements'
|
|
7
7
|
import type { IconButtonProps } from './types.ts'
|
|
8
8
|
|
|
9
9
|
let {
|
|
@@ -103,8 +103,7 @@
|
|
|
103
103
|
} else {
|
|
104
104
|
handlePress()
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
;(attributes.onclick as MouseEventHandler<HTMLButtonElement>)?.(event)
|
|
106
|
+
attributes.onclick?.(event)
|
|
108
107
|
}}
|
|
109
108
|
class={[
|
|
110
109
|
'np-icon-button',
|
package/dist/button/types.d.ts
CHANGED
|
@@ -1,58 +1,27 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { HTMLAnchorAttributes, HTMLAttributes, HTMLButtonAttributes } from 'svelte/elements';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
start?: Snippet | undefined;
|
|
6
|
-
end?: Snippet | undefined;
|
|
3
|
+
export type ButtonElement = HTMLButtonElement | HTMLAnchorElement;
|
|
4
|
+
interface BaseButtonProps extends HTMLAttributes<ButtonElement>, Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLButtonElement> | 'type'>, Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLAnchorElement> | 'type'> {
|
|
7
5
|
element?: HTMLElement;
|
|
8
6
|
disabled?: boolean;
|
|
9
7
|
loading?: boolean;
|
|
10
8
|
loadingAriaLabel?: string;
|
|
11
|
-
size?: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
12
9
|
toggle?: boolean;
|
|
13
|
-
shape?: 'round' | 'square';
|
|
14
10
|
selected?: boolean;
|
|
11
|
+
shape?: 'round' | 'square';
|
|
12
|
+
size?: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
13
|
+
type?: 'submit' | 'reset' | 'button' | (string & {}) | null;
|
|
15
14
|
}
|
|
16
|
-
interface
|
|
15
|
+
export interface ButtonProps extends BaseButtonProps {
|
|
17
16
|
variant?: 'text' | 'filled' | 'outlined' | 'elevated' | 'tonal';
|
|
18
17
|
start?: Snippet;
|
|
19
18
|
end?: Snippet;
|
|
20
|
-
element?: HTMLElement;
|
|
21
|
-
disabled?: boolean;
|
|
22
|
-
loading?: boolean;
|
|
23
|
-
loadingAriaLabel?: string;
|
|
24
|
-
size?: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
25
|
-
toggle?: boolean;
|
|
26
|
-
shape?: 'round' | 'square';
|
|
27
|
-
selected?: boolean;
|
|
28
|
-
}
|
|
29
|
-
interface IconButtonButtonProps extends HTMLButtonAttributes {
|
|
30
|
-
variant?: 'text' | 'filled' | 'outlined' | 'tonal';
|
|
31
|
-
element?: HTMLElement;
|
|
32
|
-
toggle?: boolean;
|
|
33
|
-
selected?: boolean;
|
|
34
|
-
loading?: boolean;
|
|
35
|
-
loadingAriaLabel?: string;
|
|
36
|
-
selectedIcon?: Snippet;
|
|
37
|
-
shape?: 'round' | 'square';
|
|
38
|
-
size?: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
39
|
-
width?: 'narrow' | 'wide' | 'default';
|
|
40
19
|
}
|
|
41
|
-
interface
|
|
20
|
+
export interface IconButtonProps extends BaseButtonProps {
|
|
42
21
|
variant?: 'text' | 'filled' | 'outlined' | 'tonal';
|
|
43
|
-
element?: HTMLElement;
|
|
44
|
-
disabled?: boolean;
|
|
45
|
-
loading?: boolean;
|
|
46
|
-
loadingAriaLabel?: string;
|
|
47
|
-
toggle?: boolean;
|
|
48
|
-
selected?: boolean;
|
|
49
22
|
selectedIcon?: Snippet;
|
|
50
|
-
shape?: 'round' | 'square';
|
|
51
|
-
size?: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
52
23
|
width?: 'narrow' | 'wide' | 'default';
|
|
53
24
|
}
|
|
54
|
-
export type IconButtonProps = IconButtonButtonProps | IconButtonAnchorProps;
|
|
55
|
-
export type ButtonProps = ButtonButtonProps | ButtonAnchorProps;
|
|
56
25
|
export interface SegmentedButtonProps extends HTMLAttributes<HTMLDivElement> {
|
|
57
26
|
name: string;
|
|
58
27
|
multiSelect?: boolean;
|
package/dist/card/Card.svelte
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import Ripple from '../ripple/Ripple.svelte'
|
|
3
|
-
import type { FocusEventHandler } from 'svelte/elements'
|
|
4
3
|
import type { CardProps } from './types.ts'
|
|
5
4
|
|
|
6
5
|
let {
|
|
@@ -15,6 +14,7 @@
|
|
|
15
14
|
children,
|
|
16
15
|
onfocus,
|
|
17
16
|
onblur,
|
|
17
|
+
type,
|
|
18
18
|
...attributes
|
|
19
19
|
}: CardProps = $props()
|
|
20
20
|
|
|
@@ -60,12 +60,12 @@
|
|
|
60
60
|
<div class="np-card-action">{@render action()}</div>
|
|
61
61
|
{/if}
|
|
62
62
|
</div>
|
|
63
|
-
{#if !disabled &&
|
|
63
|
+
{#if !disabled && type !== 'text'}
|
|
64
64
|
<Ripple forceHover={focused} />
|
|
65
65
|
{/if}
|
|
66
66
|
{/snippet}
|
|
67
67
|
|
|
68
|
-
{#if
|
|
68
|
+
{#if type === 'text'}
|
|
69
69
|
<div
|
|
70
70
|
{...attributes}
|
|
71
71
|
bind:this={element}
|
|
@@ -79,18 +79,19 @@
|
|
|
79
79
|
>
|
|
80
80
|
{@render content()}
|
|
81
81
|
</div>
|
|
82
|
-
{:else if
|
|
82
|
+
{:else if type === 'button'}
|
|
83
83
|
<button
|
|
84
84
|
aria-disabled={disabled}
|
|
85
85
|
{...attributes}
|
|
86
|
+
type="button"
|
|
86
87
|
bind:this={element}
|
|
87
88
|
onfocus={(event) => {
|
|
88
89
|
focused = true
|
|
89
|
-
|
|
90
|
+
onfocus?.(event)
|
|
90
91
|
}}
|
|
91
92
|
onblur={(event) => {
|
|
92
93
|
focused = false
|
|
93
|
-
|
|
94
|
+
onblur?.(event)
|
|
94
95
|
}}
|
|
95
96
|
{disabled}
|
|
96
97
|
class={[
|
|
@@ -102,7 +103,7 @@
|
|
|
102
103
|
>
|
|
103
104
|
{@render content()}
|
|
104
105
|
</button>
|
|
105
|
-
{:else if
|
|
106
|
+
{:else if type === 'link'}
|
|
106
107
|
<a
|
|
107
108
|
{...attributes}
|
|
108
109
|
bind:this={element}
|
|
@@ -111,11 +112,11 @@
|
|
|
111
112
|
role="link"
|
|
112
113
|
onfocus={(event) => {
|
|
113
114
|
focused = true
|
|
114
|
-
|
|
115
|
+
onfocus?.(event)
|
|
115
116
|
}}
|
|
116
117
|
onblur={(event) => {
|
|
117
118
|
focused = false
|
|
118
|
-
|
|
119
|
+
onblur?.(event)
|
|
119
120
|
}}
|
|
120
121
|
class={[
|
|
121
122
|
'np-card-container',
|
package/dist/card/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { HTMLAnchorAttributes, HTMLAttributes, HTMLButtonAttributes } from 'svelte/elements';
|
|
3
|
-
|
|
3
|
+
export type CardElement = HTMLDivElement | HTMLButtonElement | HTMLAnchorElement;
|
|
4
|
+
export interface CardProps extends HTMLAttributes<CardElement>, Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLButtonElement> | 'type'>, Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLAnchorElement> | 'type'> {
|
|
4
5
|
variant?: 'elevated' | 'filled' | 'outlined';
|
|
5
6
|
disabled?: boolean;
|
|
6
7
|
image?: string | null;
|
|
@@ -9,29 +10,5 @@ interface TextProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
9
10
|
subhead?: string | null;
|
|
10
11
|
supportingText?: string | null;
|
|
11
12
|
action?: Snippet<[]>;
|
|
12
|
-
type: 'text';
|
|
13
|
+
type: 'text' | 'button' | 'link';
|
|
13
14
|
}
|
|
14
|
-
interface ButtonProps extends HTMLButtonAttributes {
|
|
15
|
-
variant?: 'elevated' | 'filled' | 'outlined';
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
image?: string | null;
|
|
18
|
-
element?: HTMLElement;
|
|
19
|
-
headline?: string | null;
|
|
20
|
-
subhead?: string | null;
|
|
21
|
-
supportingText?: string | null;
|
|
22
|
-
action?: Snippet<[]>;
|
|
23
|
-
type: 'button';
|
|
24
|
-
}
|
|
25
|
-
interface AnchorProps extends HTMLAnchorAttributes {
|
|
26
|
-
variant?: 'elevated' | 'filled' | 'outlined';
|
|
27
|
-
disabled?: boolean;
|
|
28
|
-
image?: string | null;
|
|
29
|
-
element?: HTMLElement;
|
|
30
|
-
headline?: string | null;
|
|
31
|
-
subhead?: string | null;
|
|
32
|
-
supportingText?: string | null;
|
|
33
|
-
action?: Snippet<[]>;
|
|
34
|
-
type: 'link';
|
|
35
|
-
}
|
|
36
|
-
export type CardProps = TextProps | ButtonProps | AnchorProps;
|
|
37
|
-
export {};
|
package/dist/chip/types.d.ts
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
|
+
import type { ButtonElement, ButtonProps } from '../button/types.ts';
|
|
1
2
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import type {
|
|
3
|
+
import type { HTMLAttributes, MouseEventHandler } from 'svelte/elements';
|
|
3
4
|
export interface ChipSetProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
5
|
chipsCount?: number;
|
|
5
6
|
}
|
|
6
|
-
interface
|
|
7
|
+
export interface AssistChipProps extends Omit<ButtonProps, 'variant' | 'start' | 'end' | 'element'> {
|
|
7
8
|
elevated?: boolean;
|
|
8
9
|
disabled?: boolean;
|
|
9
10
|
label?: string;
|
|
10
11
|
icon?: Snippet;
|
|
11
12
|
element?: HTMLDivElement;
|
|
12
13
|
}
|
|
13
|
-
interface AssistChipAnchorProps extends HTMLAnchorAttributes {
|
|
14
|
-
elevated?: boolean;
|
|
15
|
-
disabled?: boolean;
|
|
16
|
-
label?: string;
|
|
17
|
-
icon?: Snippet;
|
|
18
|
-
element?: HTMLDivElement;
|
|
19
|
-
}
|
|
20
|
-
export type AssistChipProps = AssistChipButtonProps | AssistChipAnchorProps;
|
|
21
14
|
export interface FilterChipProps extends HTMLAttributes<HTMLDivElement> {
|
|
22
15
|
selected?: boolean;
|
|
23
16
|
removable?: boolean;
|
|
@@ -31,9 +24,7 @@ export interface FilterChipProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
31
24
|
value?: string;
|
|
32
25
|
group?: (string | number)[] | null;
|
|
33
26
|
defaultSelected?: boolean | null;
|
|
34
|
-
onremove?:
|
|
35
|
-
currentTarget: EventTarget & HTMLButtonElement;
|
|
36
|
-
}) => void;
|
|
27
|
+
onremove?: MouseEventHandler<ButtonElement>;
|
|
37
28
|
}
|
|
38
29
|
export interface InputChipProps extends HTMLAttributes<HTMLDivElement> {
|
|
39
30
|
selected?: boolean;
|
|
@@ -44,9 +35,7 @@ export interface InputChipProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
44
35
|
element?: HTMLDivElement;
|
|
45
36
|
name?: string;
|
|
46
37
|
value?: string | number;
|
|
47
|
-
onremove?:
|
|
48
|
-
currentTarget: EventTarget & HTMLButtonElement;
|
|
49
|
-
}) => void;
|
|
38
|
+
onremove?: MouseEventHandler<ButtonElement>;
|
|
50
39
|
}
|
|
51
40
|
export interface ChipSetContext {
|
|
52
41
|
chips: {
|
|
@@ -55,4 +44,3 @@ export interface ChipSetContext {
|
|
|
55
44
|
value: string | number | undefined;
|
|
56
45
|
}[];
|
|
57
46
|
}
|
|
58
|
-
export {};
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
let {
|
|
6
6
|
element = $bindable(),
|
|
7
|
-
showPopover = $bindable(),
|
|
8
|
-
hidePopover = $bindable(),
|
|
9
7
|
quick = false,
|
|
10
8
|
children,
|
|
11
9
|
headline,
|
|
@@ -18,11 +16,11 @@
|
|
|
18
16
|
|
|
19
17
|
const uid = $props.id()
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
export function showPopover() {
|
|
22
20
|
element?.showPopover()
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
export function hidePopover() {
|
|
26
24
|
element?.hidePopover()
|
|
27
25
|
}
|
|
28
26
|
</script>
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { DialogProps } from './types.ts';
|
|
2
|
-
declare const Dialog: import("svelte").Component<DialogProps, {
|
|
2
|
+
declare const Dialog: import("svelte").Component<DialogProps, {
|
|
3
|
+
showPopover: () => void;
|
|
4
|
+
hidePopover: () => void;
|
|
5
|
+
}, "element">;
|
|
3
6
|
type Dialog = ReturnType<typeof Dialog>;
|
|
4
7
|
export default Dialog;
|
package/dist/dialog/types.d.ts
CHANGED
package/dist/icons/Icon.svelte
CHANGED
package/dist/list/Item.svelte
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import Ripple from '../ripple/Ripple.svelte'
|
|
3
3
|
import { onMount } from 'svelte'
|
|
4
|
-
import type { FocusEventHandler } from 'svelte/elements'
|
|
5
4
|
import type { ItemProps } from './types.ts'
|
|
6
5
|
|
|
7
6
|
let {
|
|
@@ -86,11 +85,11 @@
|
|
|
86
85
|
type={attributes.type ?? 'button'}
|
|
87
86
|
onfocus={(event) => {
|
|
88
87
|
focused = true
|
|
89
|
-
|
|
88
|
+
onfocus?.(event)
|
|
90
89
|
}}
|
|
91
90
|
onblur={(event) => {
|
|
92
91
|
focused = false
|
|
93
|
-
|
|
92
|
+
onblur?.(event)
|
|
94
93
|
}}
|
|
95
94
|
class={['np-item', selected && 'selected', attributes.class]}
|
|
96
95
|
bind:this={element}
|
|
@@ -105,11 +104,11 @@
|
|
|
105
104
|
{...attributes}
|
|
106
105
|
onfocus={(event) => {
|
|
107
106
|
focused = true
|
|
108
|
-
|
|
107
|
+
onfocus?.(event)
|
|
109
108
|
}}
|
|
110
109
|
onblur={(event) => {
|
|
111
110
|
focused = false
|
|
112
|
-
|
|
111
|
+
onblur?.(event)
|
|
113
112
|
}}
|
|
114
113
|
class={['np-item', selected && 'selected', attributes.class]}
|
|
115
114
|
bind:this={element}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare const ListItem: import("svelte").Component<ListItemProps, {}, "">;
|
|
1
|
+
declare const ListItem: import("svelte").Component<import("./types.ts").ItemProps, {}, "">;
|
|
3
2
|
type ListItem = ReturnType<typeof ListItem>;
|
|
4
3
|
export default ListItem;
|
package/dist/list/types.d.ts
CHANGED
|
@@ -1,37 +1,18 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { HTMLAnchorAttributes, HTMLAttributes, HTMLButtonAttributes } from 'svelte/elements';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
start?: Snippet;
|
|
6
|
-
end?: Snippet;
|
|
7
|
-
variant: 'button';
|
|
8
|
-
supportingText?: Snippet;
|
|
9
|
-
softFocus?: boolean;
|
|
10
|
-
lazy?: boolean;
|
|
11
|
-
}
|
|
12
|
-
interface AnchorProps extends HTMLAnchorAttributes {
|
|
13
|
-
selected?: boolean;
|
|
14
|
-
start?: Snippet;
|
|
15
|
-
end?: Snippet;
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
variant: 'link';
|
|
18
|
-
supportingText?: Snippet;
|
|
19
|
-
softFocus?: boolean;
|
|
20
|
-
lazy?: boolean;
|
|
21
|
-
}
|
|
22
|
-
interface TextProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
export type ItemElement = HTMLButtonElement | HTMLAnchorElement | HTMLDivElement;
|
|
4
|
+
export interface ItemProps extends HTMLAttributes<ItemElement>, Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLButtonElement> | 'type'>, Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLAnchorElement> | 'type'> {
|
|
23
5
|
selected?: boolean;
|
|
24
6
|
start?: Snippet;
|
|
25
7
|
end?: Snippet;
|
|
26
8
|
disabled?: boolean;
|
|
27
|
-
variant?: 'text';
|
|
9
|
+
variant?: 'button' | 'link' | 'text';
|
|
28
10
|
supportingText?: Snippet;
|
|
29
11
|
softFocus?: boolean;
|
|
30
12
|
lazy?: boolean;
|
|
13
|
+
type?: 'submit' | 'reset' | 'button' | null;
|
|
31
14
|
}
|
|
32
|
-
export type
|
|
33
|
-
export type ListItemProps = ButtonProps | AnchorProps | TextProps;
|
|
15
|
+
export type ListItemProps = ItemProps;
|
|
34
16
|
export interface ListProps extends HTMLAttributes<HTMLUListElement> {
|
|
35
17
|
element?: HTMLUListElement;
|
|
36
18
|
}
|
|
37
|
-
export {};
|
package/dist/menu/Menu.svelte
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
let {
|
|
6
6
|
children,
|
|
7
7
|
element = $bindable(),
|
|
8
|
-
showPopover = $bindable(),
|
|
9
|
-
hidePopover = $bindable(),
|
|
10
8
|
open = $bindable(),
|
|
11
9
|
style,
|
|
12
10
|
popover = 'auto',
|
|
@@ -19,11 +17,11 @@
|
|
|
19
17
|
let clientHeight = $state(0)
|
|
20
18
|
let innerHeight = $state(0)
|
|
21
19
|
|
|
22
|
-
|
|
20
|
+
export function showPopover() {
|
|
23
21
|
element?.showPopover()
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
export function hidePopover() {
|
|
27
25
|
element?.hidePopover()
|
|
28
26
|
}
|
|
29
27
|
const refreshValues = () => {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { MenuProps } from './types.ts';
|
|
2
|
-
declare const Menu: import("svelte").Component<MenuProps, {
|
|
2
|
+
declare const Menu: import("svelte").Component<MenuProps, {
|
|
3
|
+
showPopover: () => void;
|
|
4
|
+
hidePopover: () => void;
|
|
5
|
+
}, "element" | "open">;
|
|
3
6
|
type Menu = ReturnType<typeof Menu>;
|
|
4
7
|
export default Menu;
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import Item from '../list/Item.svelte'
|
|
3
|
-
import type { HTMLAnchorAttributes, HTMLButtonAttributes } from 'svelte/elements'
|
|
4
3
|
import type { MenuItemProps } from './types.ts'
|
|
5
4
|
|
|
6
5
|
let { ...attributes }: MenuItemProps = $props()
|
|
7
|
-
|
|
8
|
-
const isButton = (obj: unknown): obj is HTMLButtonAttributes => {
|
|
9
|
-
return (obj as HTMLAnchorAttributes).href === undefined
|
|
10
|
-
}
|
|
11
6
|
</script>
|
|
12
7
|
|
|
13
8
|
<li class="np-menu-item" role="menuitem">
|
|
14
|
-
{#if
|
|
15
|
-
<Item {...attributes} variant="button" />
|
|
16
|
-
{:else}
|
|
9
|
+
{#if 'href' in attributes}
|
|
17
10
|
<Item {...attributes} variant="link" />
|
|
11
|
+
{:else}
|
|
12
|
+
<Item {...attributes} variant="button" />
|
|
18
13
|
{/if}
|
|
19
14
|
</li>
|
|
20
15
|
|
package/dist/menu/types.d.ts
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
|
+
import type { ItemProps } from '../list/types.ts';
|
|
1
2
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import type {
|
|
3
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
4
|
export interface MenuProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
5
|
children: Snippet;
|
|
5
6
|
anchor?: HTMLElement | undefined;
|
|
6
|
-
showPopover?: () => void;
|
|
7
|
-
hidePopover?: () => void;
|
|
8
7
|
element?: HTMLDivElement;
|
|
9
8
|
open?: boolean;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
selected?: boolean;
|
|
13
|
-
start?: Snippet;
|
|
14
|
-
end?: Snippet;
|
|
15
|
-
supportingText?: Snippet;
|
|
16
|
-
lazy?: boolean;
|
|
17
|
-
}
|
|
18
|
-
interface AnchorProps extends HTMLAnchorAttributes {
|
|
19
|
-
selected?: boolean;
|
|
20
|
-
start?: Snippet;
|
|
21
|
-
end?: Snippet;
|
|
22
|
-
disabled?: boolean;
|
|
23
|
-
supportingText?: Snippet;
|
|
24
|
-
lazy?: boolean;
|
|
25
|
-
}
|
|
26
|
-
export type MenuItemProps = ButtonProps | AnchorProps;
|
|
27
|
-
export {};
|
|
10
|
+
export type MenuItemProps = Omit<ItemProps, 'variant' | 'softFocus'>;
|
|
@@ -6,17 +6,11 @@ export interface NavigationDrawerProps extends HTMLAttributes<HTMLElement> {
|
|
|
6
6
|
element?: HTMLElement;
|
|
7
7
|
direction?: 'rtl' | 'ltr';
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
export type NavigationDrawerItemElement = HTMLButtonElement | HTMLAnchorElement;
|
|
10
|
+
export interface NavigationDrawerItemProps extends HTMLAttributes<NavigationDrawerItemElement>, Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLButtonElement> | 'type'>, Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLAnchorElement> | 'type'> {
|
|
10
11
|
icon?: Snippet;
|
|
11
12
|
label: string;
|
|
12
13
|
selected?: boolean;
|
|
13
14
|
badgeLabelText?: string;
|
|
15
|
+
type?: 'submit' | 'reset' | 'button' | (string & {}) | null;
|
|
14
16
|
}
|
|
15
|
-
interface NavigationDrawerItemLink extends HTMLAnchorAttributes {
|
|
16
|
-
icon?: Snippet;
|
|
17
|
-
label: string;
|
|
18
|
-
selected?: boolean;
|
|
19
|
-
badgeLabelText?: string;
|
|
20
|
-
}
|
|
21
|
-
export type NavigationDrawerItemProps = NavigationDrawerItemButton | NavigationDrawerItemLink;
|
|
22
|
-
export {};
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { HTMLAnchorAttributes, HTMLAttributes, HTMLButtonAttributes } from 'svelte/elements';
|
|
3
3
|
export type NavigationRailProps = HTMLAttributes<HTMLElement>;
|
|
4
|
-
|
|
4
|
+
export type NavigationRailItemElement = HTMLButtonElement | HTMLAnchorElement;
|
|
5
|
+
export interface NavigationRailItemProps extends HTMLAttributes<NavigationRailItemElement>, Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLButtonElement> | 'type'>, Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLAnchorElement> | 'type'> {
|
|
5
6
|
icon: Snippet;
|
|
6
7
|
label: string;
|
|
7
8
|
selected?: boolean;
|
|
9
|
+
type?: 'submit' | 'reset' | 'button' | (string & {}) | null;
|
|
8
10
|
}
|
|
9
|
-
interface NavigationRailItemLink extends HTMLAnchorAttributes {
|
|
10
|
-
icon: Snippet;
|
|
11
|
-
label: string;
|
|
12
|
-
selected?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export type NavigationRailItemProps = NavigationRailItemButton | NavigationRailItemLink;
|
|
15
|
-
export {};
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
onIconClick = () => {
|
|
13
13
|
element?.hidePopover()
|
|
14
14
|
},
|
|
15
|
-
showPopover = $bindable(),
|
|
16
|
-
hidePopover = $bindable(),
|
|
17
15
|
open = $bindable(false),
|
|
18
16
|
onbeforetoggle,
|
|
19
17
|
timeout = 4000,
|
|
@@ -25,11 +23,11 @@
|
|
|
25
23
|
let timeoutId: number | undefined = $state()
|
|
26
24
|
const uid = $props.id()
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
export function showPopover() {
|
|
29
27
|
element?.showPopover()
|
|
30
28
|
}
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
export function hidePopover() {
|
|
33
31
|
element?.hidePopover()
|
|
34
32
|
}
|
|
35
33
|
</script>
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { SnackbarProps } from './types.ts';
|
|
2
|
-
declare const Snackbar: import("svelte").Component<SnackbarProps, {
|
|
2
|
+
declare const Snackbar: import("svelte").Component<SnackbarProps, {
|
|
3
|
+
showPopover: () => void;
|
|
4
|
+
hidePopover: () => void;
|
|
5
|
+
}, "element" | "open">;
|
|
3
6
|
type Snackbar = ReturnType<typeof Snackbar>;
|
|
4
7
|
export default Snackbar;
|
package/dist/snackbar/types.d.ts
CHANGED
|
@@ -8,8 +8,6 @@ export interface SnackbarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
8
8
|
onActionClick?: (event: Event) => void;
|
|
9
9
|
icon?: Snippet | undefined;
|
|
10
10
|
onIconClick?: (event: Event) => void;
|
|
11
|
-
showPopover?: () => void;
|
|
12
|
-
hidePopover?: () => void;
|
|
13
11
|
timeout?: number;
|
|
14
12
|
element?: HTMLElement;
|
|
15
13
|
popover?: 'auto' | 'manual';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import type { HTMLInputAttributes, HTMLTextareaAttributes } from 'svelte/elements';
|
|
2
|
+
import type { HTMLAttributes, HTMLInputAttributes, HTMLTextareaAttributes } from 'svelte/elements';
|
|
3
3
|
interface FieldProps {
|
|
4
4
|
label?: string;
|
|
5
5
|
supportingText?: string;
|
|
@@ -19,11 +19,16 @@ interface FieldProps {
|
|
|
19
19
|
clientHeight?: number;
|
|
20
20
|
focused?: boolean;
|
|
21
21
|
}
|
|
22
|
+
export type TextFieldType = 'text' | 'password' | 'email' | 'number' | 'search' | 'tel' | 'url' | 'datetime-local' | 'date' | 'datetime' | 'time';
|
|
23
|
+
export type TextFieldElement = HTMLInputElement | HTMLTextAreaElement;
|
|
22
24
|
export interface InputFieldProps extends HTMLInputAttributes, FieldProps {
|
|
23
|
-
type?:
|
|
25
|
+
type?: TextFieldType;
|
|
24
26
|
}
|
|
25
27
|
export interface TextAreaFieldProps extends HTMLTextareaAttributes, FieldProps {
|
|
26
28
|
type: 'textarea';
|
|
27
29
|
}
|
|
28
|
-
export
|
|
30
|
+
export interface TextFieldProps extends HTMLAttributes<TextFieldElement>, Omit<HTMLInputAttributes, keyof HTMLAttributes<HTMLInputElement> | 'type' | 'value' | 'defaultValue' | 'defaultvalue'>, Omit<HTMLTextareaAttributes, keyof HTMLAttributes<HTMLTextAreaElement> | 'value' | 'defaultValue' | 'defaultvalue'>, FieldProps {
|
|
31
|
+
type?: TextFieldType | 'textarea';
|
|
32
|
+
value?: string;
|
|
33
|
+
}
|
|
29
34
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "noph-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://noph.dev",
|
|
6
6
|
"repository": {
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
"author": {
|
|
11
11
|
"name": "cnolte"
|
|
12
12
|
},
|
|
13
|
+
"imports": {
|
|
14
|
+
"#lib": "./src/lib/index.js",
|
|
15
|
+
"#lib/*": "./src/lib/*"
|
|
16
|
+
},
|
|
13
17
|
"keywords": [
|
|
14
18
|
"svelte",
|
|
15
19
|
"svelte 5",
|
|
@@ -71,27 +75,28 @@
|
|
|
71
75
|
"devDependencies": {
|
|
72
76
|
"@eslint/js": "^10.0.1",
|
|
73
77
|
"@materialx/material-color-utilities": "^0.4.8",
|
|
74
|
-
"@playwright/test": "^1.
|
|
75
|
-
"@sveltejs/adapter-
|
|
76
|
-
"@sveltejs/kit": "
|
|
77
|
-
"@sveltejs/package": "
|
|
78
|
-
"@sveltejs/vite-plugin-svelte": "
|
|
78
|
+
"@playwright/test": "^1.61.1",
|
|
79
|
+
"@sveltejs/adapter-vercel": "7.0.0-next.2",
|
|
80
|
+
"@sveltejs/kit": "3.0.0-next.11",
|
|
81
|
+
"@sveltejs/package": "3.0.0-next.3",
|
|
82
|
+
"@sveltejs/vite-plugin-svelte": "7.2.0",
|
|
79
83
|
"@types/eslint": "^9.6.1",
|
|
80
|
-
"eslint": "^10.
|
|
84
|
+
"eslint": "^10.7.0",
|
|
81
85
|
"eslint-config-prettier": "^10.1.8",
|
|
82
|
-
"eslint-plugin-svelte": "^3.
|
|
83
|
-
"globals": "^17.
|
|
84
|
-
"prettier": "^3.
|
|
85
|
-
"prettier-plugin-svelte": "^
|
|
86
|
-
"publint": "^0.3.
|
|
87
|
-
"svelte": "^5.
|
|
88
|
-
"svelte-check": "^4.
|
|
86
|
+
"eslint-plugin-svelte": "^3.22.0",
|
|
87
|
+
"globals": "^17.7.0",
|
|
88
|
+
"prettier": "^3.9.6",
|
|
89
|
+
"prettier-plugin-svelte": "^4.1.1",
|
|
90
|
+
"publint": "^0.3.21",
|
|
91
|
+
"svelte": "^5.56.7",
|
|
92
|
+
"svelte-check": "^4.7.3",
|
|
89
93
|
"typescript": "^6.0.3",
|
|
90
|
-
"typescript-eslint": "^8.
|
|
91
|
-
"vite": "8.
|
|
92
|
-
"vitest": "^4.1.
|
|
94
|
+
"typescript-eslint": "^8.65.0",
|
|
95
|
+
"vite": "8.1.5",
|
|
96
|
+
"vitest": "^4.1.10"
|
|
93
97
|
},
|
|
94
98
|
"svelte": "./dist/index.js",
|
|
95
99
|
"types": "./dist/index.d.ts",
|
|
96
|
-
"type": "module"
|
|
100
|
+
"type": "module",
|
|
101
|
+
"packageManager": "pnpm@11.9.0"
|
|
97
102
|
}
|