@sveltia/ui 0.16.0 → 0.17.1
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/package/components/alert/alert.svelte +22 -7
- package/package/components/alert/alert.svelte.d.ts +32 -28
- package/package/components/button/button-group.svelte +16 -6
- package/package/components/button/button-group.svelte.d.ts +23 -23
- package/package/components/button/button.svelte +41 -136
- package/package/components/button/button.svelte.d.ts +5 -146
- package/package/components/button/select-button-group.svelte +31 -37
- package/package/components/button/select-button-group.svelte.d.ts +76 -34
- package/package/components/button/select-button.svelte +19 -62
- package/package/components/button/select-button.svelte.d.ts +17 -73
- package/package/components/button/split-button.svelte +37 -47
- package/package/components/button/split-button.svelte.d.ts +40 -47
- package/package/components/calendar/calendar.svelte +80 -55
- package/package/components/calendar/calendar.svelte.d.ts +13 -10
- package/package/components/checkbox/checkbox-group.svelte +23 -20
- package/package/components/checkbox/checkbox-group.svelte.d.ts +49 -27
- package/package/components/checkbox/checkbox.svelte +57 -67
- package/package/components/checkbox/checkbox.svelte.d.ts +67 -55
- package/package/components/dialog/alert-dialog.svelte +9 -36
- package/package/components/dialog/alert-dialog.svelte.d.ts +5 -44
- package/package/components/dialog/confirmation-dialog.svelte +9 -41
- package/package/components/dialog/confirmation-dialog.svelte.d.ts +5 -46
- package/package/components/dialog/dialog.svelte +60 -105
- package/package/components/dialog/dialog.svelte.d.ts +5 -102
- package/package/components/dialog/prompt-dialog.svelte +32 -61
- package/package/components/dialog/prompt-dialog.svelte.d.ts +38 -62
- package/package/components/disclosure/disclosure.svelte +39 -34
- package/package/components/disclosure/disclosure.svelte.d.ts +74 -56
- package/package/components/divider/divider.svelte +18 -14
- package/package/components/divider/divider.svelte.d.ts +31 -10
- package/package/components/divider/spacer.svelte +13 -8
- package/package/components/divider/spacer.svelte.d.ts +20 -9
- package/package/components/drawer/drawer.svelte +63 -76
- package/package/components/drawer/drawer.svelte.d.ts +102 -84
- package/package/components/grid/grid-body.svelte +15 -10
- package/package/components/grid/grid-body.svelte.d.ts +30 -24
- package/package/components/grid/grid-cell.svelte +16 -6
- package/package/components/grid/grid-cell.svelte.d.ts +23 -23
- package/package/components/grid/grid-col-header.svelte +16 -6
- package/package/components/grid/grid-col-header.svelte.d.ts +23 -23
- package/package/components/grid/grid-foot.svelte +16 -6
- package/package/components/grid/grid-foot.svelte.d.ts +23 -23
- package/package/components/grid/grid-head.svelte +16 -6
- package/package/components/grid/grid-head.svelte.d.ts +23 -23
- package/package/components/grid/grid-row-header.svelte +16 -6
- package/package/components/grid/grid-row-header.svelte.d.ts +23 -23
- package/package/components/grid/grid-row.svelte +19 -23
- package/package/components/grid/grid-row.svelte.d.ts +48 -38
- package/package/components/grid/grid.svelte +28 -25
- package/package/components/grid/grid.svelte.d.ts +56 -32
- package/package/components/icon/icon.svelte +14 -9
- package/package/components/icon/icon.svelte.d.ts +20 -9
- package/package/components/listbox/listbox.svelte +46 -52
- package/package/components/listbox/listbox.svelte.d.ts +102 -40
- package/package/components/listbox/option-group.svelte +23 -19
- package/package/components/listbox/option-group.svelte.d.ts +49 -27
- package/package/components/listbox/option.svelte +44 -57
- package/package/components/listbox/option.svelte.d.ts +54 -84
- package/package/components/menu/menu-button.svelte +42 -63
- package/package/components/menu/menu-button.svelte.d.ts +18 -72
- package/package/components/menu/menu-item-checkbox.svelte +29 -41
- package/package/components/menu/menu-item-checkbox.svelte.d.ts +5 -44
- package/package/components/menu/menu-item-group.svelte +22 -19
- package/package/components/menu/menu-item-group.svelte.d.ts +41 -27
- package/package/components/menu/menu-item-radio.svelte +29 -41
- package/package/components/menu/menu-item-radio.svelte.d.ts +5 -44
- package/package/components/menu/menu-item.svelte +66 -75
- package/package/components/menu/menu-item.svelte.d.ts +5 -80
- package/package/components/menu/menu.svelte +27 -22
- package/package/components/menu/menu.svelte.d.ts +50 -30
- package/package/components/radio/radio-group.svelte +38 -42
- package/package/components/radio/radio-group.svelte.d.ts +85 -35
- package/package/components/radio/radio.svelte +45 -48
- package/package/components/radio/radio.svelte.d.ts +96 -42
- package/package/components/select/combobox.svelte +76 -101
- package/package/components/select/combobox.svelte.d.ts +5 -56
- package/package/components/select/select-tags.svelte +48 -59
- package/package/components/select/select-tags.svelte.d.ts +109 -28
- package/package/components/select/select.svelte +18 -37
- package/package/components/select/select.svelte.d.ts +5 -40
- package/package/components/slider/slider.svelte +71 -68
- package/package/components/slider/slider.svelte.d.ts +142 -31
- package/package/components/switch/switch.svelte +36 -46
- package/package/components/switch/switch.svelte.d.ts +83 -37
- package/package/components/table/table-body.svelte +15 -11
- package/package/components/table/table-body.svelte.d.ts +30 -24
- package/package/components/table/table-cell.svelte +16 -6
- package/package/components/table/table-cell.svelte.d.ts +23 -23
- package/package/components/table/table-col-header.svelte +16 -6
- package/package/components/table/table-col-header.svelte.d.ts +23 -23
- package/package/components/table/table-foot.svelte +16 -6
- package/package/components/table/table-foot.svelte.d.ts +23 -23
- package/package/components/table/table-head.svelte +16 -6
- package/package/components/table/table-head.svelte.d.ts +23 -23
- package/package/components/table/table-row-header.svelte +16 -6
- package/package/components/table/table-row-header.svelte.d.ts +23 -23
- package/package/components/table/table-row.svelte +16 -6
- package/package/components/table/table-row.svelte.d.ts +23 -23
- package/package/components/table/table.svelte +16 -6
- package/package/components/table/table.svelte.d.ts +23 -23
- package/package/components/tabs/tab-box.svelte +16 -9
- package/package/components/tabs/tab-box.svelte.d.ts +32 -22
- package/package/components/tabs/tab-list.svelte +36 -35
- package/package/components/tabs/tab-list.svelte.d.ts +65 -33
- package/package/components/tabs/tab-panel.svelte +16 -6
- package/package/components/tabs/tab-panel.svelte.d.ts +23 -23
- package/package/components/tabs/tab-panels.svelte +16 -6
- package/package/components/tabs/tab-panels.svelte.d.ts +23 -21
- package/package/components/tabs/tab.svelte +28 -25
- package/package/components/tabs/tab.svelte.d.ts +17 -63
- package/package/components/text-editor/lexical-root.svelte +38 -32
- package/package/components/text-editor/lexical-root.svelte.d.ts +74 -13
- package/package/components/text-editor/text-editor.svelte +63 -79
- package/package/components/text-editor/text-editor.svelte.d.ts +97 -20
- package/package/components/text-editor/toolbar/editor-toolbar.svelte +41 -24
- package/package/components/text-editor/toolbar/editor-toolbar.svelte.d.ts +32 -7
- package/package/components/text-editor/toolbar/format-text-button.svelte +15 -5
- package/package/components/text-editor/toolbar/format-text-button.svelte.d.ts +13 -6
- package/package/components/text-editor/toolbar/insert-link-button.svelte +18 -16
- package/package/components/text-editor/toolbar/insert-link-button.svelte.d.ts +4 -8
- package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte +19 -7
- package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte.d.ts +13 -6
- package/package/components/text-field/number-input.svelte +63 -81
- package/package/components/text-field/number-input.svelte.d.ts +48 -55
- package/package/components/text-field/password-input.svelte +38 -57
- package/package/components/text-field/password-input.svelte.d.ts +16 -45
- package/package/components/text-field/search-bar.svelte +45 -62
- package/package/components/text-field/search-bar.svelte.d.ts +25 -66
- package/package/components/text-field/text-area.svelte +38 -54
- package/package/components/text-field/text-area.svelte.d.ts +100 -35
- package/package/components/text-field/text-input.svelte +28 -86
- package/package/components/text-field/text-input.svelte.d.ts +4 -78
- package/package/components/toast/toast.svelte +36 -30
- package/package/components/toast/toast.svelte.d.ts +50 -28
- package/package/components/toolbar/toolbar.svelte +25 -25
- package/package/components/toolbar/toolbar.svelte.d.ts +57 -29
- package/package/components/util/app-shell.svelte +22 -10
- package/package/components/util/app-shell.svelte.d.ts +25 -29
- package/package/components/util/group.svelte +20 -15
- package/package/components/util/group.svelte.d.ts +40 -26
- package/package/components/util/modal.svelte +89 -105
- package/package/components/util/modal.svelte.d.ts +6 -71
- package/package/components/util/placeholder.svelte +21 -0
- package/package/components/util/{portal.svelte.d.ts → placeholder.svelte.d.ts} +17 -25
- package/package/components/util/popup.svelte +65 -62
- package/package/components/util/popup.svelte.d.ts +89 -77
- package/package/services/{group.js → group.svelte.js} +11 -12
- package/package/services/{popup.js → popup.svelte.js} +6 -5
- package/package/typedefs.d.ts +545 -0
- package/package/typedefs.js +202 -0
- package/package.json +12 -19
- package/package/components/util/portal.svelte +0 -36
- /package/package/services/{events.d.ts → events.svelte.d.ts} +0 -0
- /package/package/services/{events.js → events.svelte.js} +0 -0
- /package/package/services/{group.d.ts → group.svelte.d.ts} +0 -0
- /package/package/services/{popup.d.ts → popup.svelte.d.ts} +0 -0
|
@@ -12,13 +12,22 @@
|
|
|
12
12
|
import { getContext } from 'svelte';
|
|
13
13
|
import { _ } from 'svelte-i18n';
|
|
14
14
|
import { availableButtons } from '..';
|
|
15
|
+
import Icon from '../../icon/icon.svelte';
|
|
15
16
|
import MenuItemCheckbox from '../../menu/menu-item-checkbox.svelte';
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @
|
|
19
|
+
* @typedef {object} Props
|
|
20
|
+
* @property {import('../../../typedefs').TextEditorBlockType} type - Button type.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @type {Props & Record<string, any>}
|
|
25
|
+
*/
|
|
26
|
+
let {
|
|
27
|
+
/* eslint-disable prefer-const */
|
|
28
|
+
type,
|
|
29
|
+
/* eslint-enable prefer-const */
|
|
30
|
+
} = $props();
|
|
22
31
|
|
|
23
32
|
/**
|
|
24
33
|
* Text editor state.
|
|
@@ -29,7 +38,7 @@
|
|
|
29
38
|
/**
|
|
30
39
|
* Whether the current selection matches the button {@link type}.
|
|
31
40
|
*/
|
|
32
|
-
|
|
41
|
+
const selectionTypeMatches = $derived($selectionBlockType === type);
|
|
33
42
|
|
|
34
43
|
/**
|
|
35
44
|
* Change the current selection’s type to {@link type}.
|
|
@@ -76,13 +85,16 @@
|
|
|
76
85
|
|
|
77
86
|
{#key selectionTypeMatches}
|
|
78
87
|
<MenuItemCheckbox
|
|
79
|
-
iconName={availableButtons[type].icon}
|
|
80
88
|
label={$_(`_sui.text_editor.${availableButtons[type].labelKey}`)}
|
|
81
89
|
checked={selectionTypeMatches}
|
|
82
|
-
|
|
90
|
+
onclick={() => {
|
|
83
91
|
if (!selectionTypeMatches) {
|
|
84
92
|
changeBlockType();
|
|
85
93
|
}
|
|
86
94
|
}}
|
|
87
|
-
|
|
95
|
+
>
|
|
96
|
+
{#snippet startIcon()}
|
|
97
|
+
<Icon name={availableButtons[type].icon} />
|
|
98
|
+
{/snippet}
|
|
99
|
+
</MenuItemCheckbox>
|
|
88
100
|
{/key}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
export default ToggleBlockMenuItem;
|
|
2
|
-
type ToggleBlockMenuItem = SvelteComponent<{
|
|
3
|
-
type: TextEditorBlockType;
|
|
4
|
-
}, {
|
|
2
|
+
type ToggleBlockMenuItem = SvelteComponent<Props & Record<string, any>, {
|
|
5
3
|
[evt: string]: CustomEvent<any>;
|
|
6
4
|
}, {}> & {
|
|
7
|
-
$$bindings?:
|
|
5
|
+
$$bindings?: "" | undefined;
|
|
8
6
|
};
|
|
9
7
|
declare const ToggleBlockMenuItem: $$__sveltets_2_IsomorphicComponent<{
|
|
8
|
+
/**
|
|
9
|
+
* - Button type.
|
|
10
|
+
*/
|
|
10
11
|
type: import("../../../typedefs").TextEditorBlockType;
|
|
11
|
-
}, {
|
|
12
|
+
} & Record<string, any>, {
|
|
12
13
|
[evt: string]: CustomEvent<any>;
|
|
13
|
-
}, {}, {},
|
|
14
|
+
}, {}, {}, "">;
|
|
15
|
+
type Props = {
|
|
16
|
+
/**
|
|
17
|
+
* - Button type.
|
|
18
|
+
*/
|
|
19
|
+
type: import("../../../typedefs").TextEditorBlockType;
|
|
20
|
+
};
|
|
14
21
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
15
22
|
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
16
23
|
$$bindings?: Bindings;
|
|
@@ -12,77 +12,56 @@
|
|
|
12
12
|
import TextInput from './text-input.svelte';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @
|
|
15
|
+
* @typedef {object} Props
|
|
16
|
+
* @property {number | undefined} [min] - Minimum allowed value.
|
|
17
|
+
* @property {number | undefined} [max] - Maximum allowed value.
|
|
18
|
+
* @property {number} [step] - Value to be added or removed when using the up/down arrow key or
|
|
19
|
+
* button.
|
|
20
|
+
* @property {import('svelte').Snippet} [increaseIcon] - Increase icon slot content.
|
|
21
|
+
* @property {import('svelte').Snippet} [decreaseIcon] - Decrease icon slot content.
|
|
17
22
|
*/
|
|
18
|
-
|
|
19
|
-
export { className as class };
|
|
20
|
-
/**
|
|
21
|
-
* Make the text input container flexible.
|
|
22
|
-
* @type {boolean}
|
|
23
|
-
*/
|
|
24
|
-
export let flex = false;
|
|
25
|
-
/**
|
|
26
|
-
* Whether to hide the widget. An alias of the `aria-hidden` attribute.
|
|
27
|
-
* @type {boolean | undefined}
|
|
28
|
-
*/
|
|
29
|
-
export let hidden = undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Whether to disable the widget. An alias of the `aria-disabled` attribute.
|
|
32
|
-
* @type {boolean}
|
|
33
|
-
*/
|
|
34
|
-
export let disabled = false;
|
|
35
|
-
/**
|
|
36
|
-
* Whether to disable the widget. An alias of `aria-readonly` attribute.
|
|
37
|
-
* @type {boolean}
|
|
38
|
-
*/
|
|
39
|
-
export let readonly = false;
|
|
40
|
-
/**
|
|
41
|
-
* Whether to mark the widget required. An alias of the `aria-required` attribute.
|
|
42
|
-
* @type {boolean}
|
|
43
|
-
*/
|
|
44
|
-
export let required = false;
|
|
45
|
-
/**
|
|
46
|
-
* Whether to mark the widget invalid. An alias of the `aria-invalid` attribute.
|
|
47
|
-
* @type {boolean}
|
|
48
|
-
*/
|
|
49
|
-
export let invalid = false;
|
|
50
|
-
/**
|
|
51
|
-
* Input value.
|
|
52
|
-
* @type {string | undefined}
|
|
53
|
-
*/
|
|
54
|
-
export let value = undefined;
|
|
55
|
-
/**
|
|
56
|
-
* Minimum allowed value.
|
|
57
|
-
* @type {number | undefined}
|
|
58
|
-
*/
|
|
59
|
-
export let min = undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Maximum allowed value.
|
|
62
|
-
* @type {number | undefined}
|
|
63
|
-
*/
|
|
64
|
-
export let max = undefined;
|
|
23
|
+
|
|
65
24
|
/**
|
|
66
|
-
*
|
|
25
|
+
* @type {import('../../typedefs').TextInputProps & import('../../typedefs').CommonEventHandlers &
|
|
26
|
+
* import('../../typedefs').InputEventHandlers & Props & Record<string, any>}
|
|
67
27
|
*/
|
|
68
|
-
|
|
28
|
+
let {
|
|
29
|
+
/* eslint-disable prefer-const */
|
|
30
|
+
value = $bindable(),
|
|
31
|
+
invalid = $bindable(false),
|
|
32
|
+
flex = false,
|
|
33
|
+
min = undefined,
|
|
34
|
+
max = undefined,
|
|
35
|
+
step = 1,
|
|
36
|
+
class: className,
|
|
37
|
+
hidden = false,
|
|
38
|
+
disabled = false,
|
|
39
|
+
readonly = false,
|
|
40
|
+
required = false,
|
|
41
|
+
children,
|
|
42
|
+
increaseIcon,
|
|
43
|
+
decreaseIcon,
|
|
44
|
+
onChange,
|
|
45
|
+
...restProps
|
|
46
|
+
/* eslint-enable prefer-const */
|
|
47
|
+
} = $props();
|
|
69
48
|
|
|
70
49
|
const id = generateElementId('input');
|
|
71
|
-
let edited = false;
|
|
72
|
-
|
|
73
|
-
$: maximumFractionDigits = String(step).split('.')[1]?.length || 0;
|
|
74
|
-
$: isMin = typeof min === 'number' && Number(value || 0) <= min;
|
|
75
|
-
$: isMax = typeof max === 'number' && Number(value || 0) >= max;
|
|
50
|
+
let edited = $state(false);
|
|
76
51
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
value !== '' &&
|
|
81
|
-
(Number.isNaN(Number(value)) ||
|
|
82
|
-
(typeof min === 'number' && Number(value || 0) < min) ||
|
|
83
|
-
(typeof max === 'number' && Number(value || 0) > max)));
|
|
52
|
+
const maximumFractionDigits = $derived(String(step).split('.')[1]?.length || 0);
|
|
53
|
+
const isMin = $derived(typeof min === 'number' && Number(value || 0) <= min);
|
|
54
|
+
const isMax = $derived(typeof max === 'number' && Number(value || 0) >= max);
|
|
84
55
|
|
|
85
|
-
|
|
56
|
+
$effect(() => {
|
|
57
|
+
invalid =
|
|
58
|
+
(required && edited && (value === undefined || value === '')) ||
|
|
59
|
+
(value !== undefined &&
|
|
60
|
+
value !== '' &&
|
|
61
|
+
(Number.isNaN(Number(value)) ||
|
|
62
|
+
(typeof min === 'number' && Number(value || 0) < min) ||
|
|
63
|
+
(typeof max === 'number' && Number(value || 0) > max)));
|
|
64
|
+
});
|
|
86
65
|
|
|
87
66
|
/**
|
|
88
67
|
* Decrease the number.
|
|
@@ -113,7 +92,7 @@
|
|
|
113
92
|
class:flex
|
|
114
93
|
class:disabled
|
|
115
94
|
class:readonly
|
|
116
|
-
|
|
95
|
+
{hidden}
|
|
117
96
|
>
|
|
118
97
|
<div role="none" class="buttons">
|
|
119
98
|
<Button
|
|
@@ -121,29 +100,38 @@
|
|
|
121
100
|
disabled={disabled || readonly || Number.isNaN(Number(value)) || isMax}
|
|
122
101
|
aria-label={$_('_sui.number_input.increase')}
|
|
123
102
|
aria-controls={id}
|
|
124
|
-
|
|
103
|
+
onclick={() => {
|
|
125
104
|
increase();
|
|
126
105
|
}}
|
|
127
106
|
>
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
107
|
+
{#snippet startIcon()}
|
|
108
|
+
{#if increaseIcon}
|
|
109
|
+
{@render increaseIcon()}
|
|
110
|
+
{:else}
|
|
111
|
+
<Icon name="expand_less" />
|
|
112
|
+
{/if}
|
|
113
|
+
{/snippet}
|
|
131
114
|
</Button>
|
|
132
115
|
<Button
|
|
133
116
|
iconic
|
|
134
117
|
disabled={disabled || readonly || Number.isNaN(Number(value)) || isMin}
|
|
135
118
|
aria-label={$_('_sui.number_input.decrease')}
|
|
136
119
|
aria-controls={id}
|
|
137
|
-
|
|
120
|
+
onclick={() => {
|
|
138
121
|
decrease();
|
|
139
122
|
}}
|
|
140
123
|
>
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
124
|
+
{#snippet startIcon()}
|
|
125
|
+
{#if decreaseIcon}
|
|
126
|
+
{@render decreaseIcon()}
|
|
127
|
+
{:else}
|
|
128
|
+
<Icon name="expand_more" />
|
|
129
|
+
{/if}
|
|
130
|
+
{/snippet}
|
|
144
131
|
</Button>
|
|
145
132
|
</div>
|
|
146
133
|
<TextInput
|
|
134
|
+
{...restProps}
|
|
147
135
|
role="spinbutton"
|
|
148
136
|
{id}
|
|
149
137
|
bind:value
|
|
@@ -158,9 +146,7 @@
|
|
|
158
146
|
aria-valuemin={min}
|
|
159
147
|
aria-valuemax={max}
|
|
160
148
|
inputmode={maximumFractionDigits > 0 ? 'decimal' : 'numeric'}
|
|
161
|
-
{
|
|
162
|
-
bind:this={component}
|
|
163
|
-
on:keydown={(event) => {
|
|
149
|
+
onkeydown={(event) => {
|
|
164
150
|
const { key, ctrlKey, metaKey, altKey, shiftKey } = event;
|
|
165
151
|
const hasModifier = shiftKey || altKey || ctrlKey || metaKey;
|
|
166
152
|
|
|
@@ -178,11 +164,7 @@
|
|
|
178
164
|
edited = true;
|
|
179
165
|
}
|
|
180
166
|
}}
|
|
181
|
-
|
|
182
|
-
on:keyup
|
|
183
|
-
on:keypress
|
|
184
|
-
on:input
|
|
185
|
-
on:change
|
|
167
|
+
{onChange}
|
|
186
168
|
/>
|
|
187
169
|
</div>
|
|
188
170
|
|
|
@@ -1,69 +1,62 @@
|
|
|
1
1
|
export default NumberInput;
|
|
2
|
-
type NumberInput = SvelteComponent<{
|
|
3
|
-
[x: string]: any;
|
|
4
|
-
class?: string | undefined;
|
|
5
|
-
disabled?: boolean | undefined;
|
|
6
|
-
invalid?: boolean | undefined;
|
|
7
|
-
max?: number | undefined;
|
|
8
|
-
min?: number | undefined;
|
|
9
|
-
required?: boolean | undefined;
|
|
10
|
-
step?: number | undefined;
|
|
11
|
-
value?: string | undefined;
|
|
12
|
-
hidden?: boolean | undefined;
|
|
13
|
-
readonly?: boolean | undefined;
|
|
14
|
-
flex?: boolean | undefined;
|
|
15
|
-
}, {
|
|
16
|
-
keydown: KeyboardEvent;
|
|
17
|
-
keyup: KeyboardEvent;
|
|
18
|
-
keypress: KeyboardEvent;
|
|
19
|
-
input: Event;
|
|
20
|
-
change: Event;
|
|
21
|
-
} & {
|
|
2
|
+
type NumberInput = SvelteComponent<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>, {
|
|
22
3
|
[evt: string]: CustomEvent<any>;
|
|
23
|
-
}, {
|
|
24
|
-
|
|
25
|
-
slot: string;
|
|
26
|
-
};
|
|
27
|
-
'decrease-icon': {
|
|
28
|
-
slot: string;
|
|
29
|
-
};
|
|
30
|
-
}> & {
|
|
31
|
-
$$bindings?: string | undefined;
|
|
4
|
+
}, {}> & {
|
|
5
|
+
$$bindings?: "invalid" | "value" | undefined;
|
|
32
6
|
};
|
|
33
7
|
/**
|
|
34
8
|
* The equivalent of the HTML `<input type="number">` element.
|
|
35
9
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number
|
|
36
10
|
* @see https://w3c.github.io/aria/#textbox
|
|
37
11
|
*/
|
|
38
|
-
declare const NumberInput: $$__sveltets_2_IsomorphicComponent<{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
invalid?: boolean | undefined;
|
|
43
|
-
max?: number | undefined;
|
|
12
|
+
declare const NumberInput: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").TextInputProps & import("../../typedefs").KeyboardEventHandlers & import("../../typedefs").MouseEventHandlers & import("../../typedefs").FocusEventHandlers & import("../../typedefs").DragEventHandlers & import("../../typedefs").InputEventHandlers & {
|
|
13
|
+
/**
|
|
14
|
+
* - Minimum allowed value.
|
|
15
|
+
*/
|
|
44
16
|
min?: number | undefined;
|
|
45
|
-
|
|
17
|
+
/**
|
|
18
|
+
* - Maximum allowed value.
|
|
19
|
+
*/
|
|
20
|
+
max?: number | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* - Value to be added or removed when using the up/down arrow key or
|
|
23
|
+
* button.
|
|
24
|
+
*/
|
|
46
25
|
step?: number | undefined;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
change: Event;
|
|
57
|
-
} & {
|
|
26
|
+
/**
|
|
27
|
+
* - Increase icon slot content.
|
|
28
|
+
*/
|
|
29
|
+
increaseIcon?: import("svelte").Snippet<[]> | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* - Decrease icon slot content.
|
|
32
|
+
*/
|
|
33
|
+
decreaseIcon?: import("svelte").Snippet<[]> | undefined;
|
|
34
|
+
} & Record<string, any>, {
|
|
58
35
|
[evt: string]: CustomEvent<any>;
|
|
59
|
-
}, {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
36
|
+
}, {}, {}, "invalid" | "value">;
|
|
37
|
+
type Props = {
|
|
38
|
+
/**
|
|
39
|
+
* - Minimum allowed value.
|
|
40
|
+
*/
|
|
41
|
+
min?: number | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* - Maximum allowed value.
|
|
44
|
+
*/
|
|
45
|
+
max?: number | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* - Value to be added or removed when using the up/down arrow key or
|
|
48
|
+
* button.
|
|
49
|
+
*/
|
|
50
|
+
step?: number | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* - Increase icon slot content.
|
|
53
|
+
*/
|
|
54
|
+
increaseIcon?: import("svelte").Snippet<[]> | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* - Decrease icon slot content.
|
|
57
|
+
*/
|
|
58
|
+
decreaseIcon?: import("svelte").Snippet<[]> | undefined;
|
|
59
|
+
};
|
|
67
60
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
68
61
|
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
69
62
|
$$bindings?: Bindings;
|
|
@@ -13,60 +13,42 @@
|
|
|
13
13
|
import TextInput from './text-input.svelte';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
16
|
+
* @typedef {object} Props
|
|
17
|
+
* @property {import('svelte').Snippet} [visibilityIcon] - Visibility icon slot content.
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
export { className as class };
|
|
21
|
-
/**
|
|
22
|
-
* Make the text input container flexible.
|
|
23
|
-
* @type {boolean}
|
|
24
|
-
*/
|
|
25
|
-
export let flex = false;
|
|
26
|
-
/**
|
|
27
|
-
* Whether to hide the widget. An alias of the `aria-hidden` attribute.
|
|
28
|
-
* @type {boolean | undefined}
|
|
29
|
-
*/
|
|
30
|
-
export let hidden = undefined;
|
|
31
|
-
/**
|
|
32
|
-
* Whether to disable the widget. An alias of the `aria-disabled` attribute.
|
|
33
|
-
* @type {boolean}
|
|
34
|
-
*/
|
|
35
|
-
export let disabled = false;
|
|
36
|
-
/**
|
|
37
|
-
* Whether to disable the widget. An alias of `aria-readonly` attribute.
|
|
38
|
-
* @type {boolean}
|
|
39
|
-
*/
|
|
40
|
-
export let readonly = false;
|
|
41
|
-
/**
|
|
42
|
-
* Whether to mark the widget required. An alias of the `aria-required` attribute.
|
|
43
|
-
* @type {boolean}
|
|
44
|
-
*/
|
|
45
|
-
export let required = false;
|
|
46
|
-
/**
|
|
47
|
-
* Whether to mark the widget invalid. An alias of the `aria-invalid` attribute.
|
|
48
|
-
* @type {boolean}
|
|
49
|
-
*/
|
|
50
|
-
export let invalid = false;
|
|
19
|
+
|
|
51
20
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
21
|
+
* @type {import('../../typedefs').TextInputProps & import('../../typedefs').CommonEventHandlers &
|
|
22
|
+
* import('../../typedefs').InputEventHandlers & Props & Record<string, any>}
|
|
54
23
|
*/
|
|
55
|
-
|
|
24
|
+
let {
|
|
25
|
+
/* eslint-disable prefer-const */
|
|
26
|
+
value = $bindable(),
|
|
27
|
+
flex = false,
|
|
28
|
+
class: className,
|
|
29
|
+
hidden = false,
|
|
30
|
+
disabled = false,
|
|
31
|
+
readonly = false,
|
|
32
|
+
required = false,
|
|
33
|
+
invalid = false,
|
|
34
|
+
children,
|
|
35
|
+
visibilityIcon,
|
|
36
|
+
...restProps
|
|
37
|
+
/* eslint-enable prefer-const */
|
|
38
|
+
} = $props();
|
|
56
39
|
|
|
57
40
|
const id = generateElementId('input');
|
|
58
41
|
|
|
59
42
|
/**
|
|
60
|
-
*
|
|
43
|
+
* Reference to the `<input>` element.
|
|
44
|
+
* @type {HTMLInputElement | undefined}
|
|
61
45
|
*/
|
|
62
|
-
let
|
|
63
|
-
let passwordVisible = false;
|
|
46
|
+
let inputElement = $state();
|
|
47
|
+
let passwordVisible = $state(false);
|
|
64
48
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}
|
|
49
|
+
$effect(() => {
|
|
50
|
+
inputElement?.setAttribute('type', passwordVisible ? 'text' : 'password');
|
|
51
|
+
});
|
|
70
52
|
</script>
|
|
71
53
|
|
|
72
54
|
<div
|
|
@@ -75,9 +57,11 @@
|
|
|
75
57
|
class:flex
|
|
76
58
|
class:disabled
|
|
77
59
|
class:readonly
|
|
78
|
-
|
|
60
|
+
{hidden}
|
|
79
61
|
>
|
|
80
62
|
<TextInput
|
|
63
|
+
bind:element={inputElement}
|
|
64
|
+
{...restProps}
|
|
81
65
|
{id}
|
|
82
66
|
bind:value
|
|
83
67
|
type="password"
|
|
@@ -88,13 +72,6 @@
|
|
|
88
72
|
{readonly}
|
|
89
73
|
{required}
|
|
90
74
|
{invalid}
|
|
91
|
-
{...$$restProps}
|
|
92
|
-
bind:this={inputComponent}
|
|
93
|
-
on:keydown
|
|
94
|
-
on:keyup
|
|
95
|
-
on:keypress
|
|
96
|
-
on:input
|
|
97
|
-
on:change
|
|
98
75
|
/>
|
|
99
76
|
<Button
|
|
100
77
|
iconic
|
|
@@ -104,13 +81,17 @@
|
|
|
104
81
|
passwordVisible ? '_sui.password_input.hide_password' : '_sui.password_input.show_password',
|
|
105
82
|
)}
|
|
106
83
|
aria-controls={id}
|
|
107
|
-
|
|
84
|
+
onclick={() => {
|
|
108
85
|
passwordVisible = !passwordVisible;
|
|
109
86
|
}}
|
|
110
87
|
>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
88
|
+
{#snippet startIcon()}
|
|
89
|
+
{#if visibilityIcon}
|
|
90
|
+
{@render visibilityIcon()}
|
|
91
|
+
{:else}
|
|
92
|
+
<Icon name={passwordVisible ? 'visibility_off' : 'visibility'} />
|
|
93
|
+
{/if}
|
|
94
|
+
{/snippet}
|
|
114
95
|
</Button>
|
|
115
96
|
</div>
|
|
116
97
|
|
|
@@ -1,28 +1,8 @@
|
|
|
1
1
|
export default PasswordInput;
|
|
2
|
-
type PasswordInput = SvelteComponent<{
|
|
3
|
-
[x: string]: any;
|
|
4
|
-
class?: string | undefined;
|
|
5
|
-
disabled?: boolean | undefined;
|
|
6
|
-
invalid?: boolean | undefined;
|
|
7
|
-
required?: boolean | undefined;
|
|
8
|
-
value?: string | undefined;
|
|
9
|
-
hidden?: boolean | undefined;
|
|
10
|
-
readonly?: boolean | undefined;
|
|
11
|
-
flex?: boolean | undefined;
|
|
12
|
-
}, {
|
|
13
|
-
keydown: KeyboardEvent;
|
|
14
|
-
keyup: KeyboardEvent;
|
|
15
|
-
keypress: KeyboardEvent;
|
|
16
|
-
input: Event;
|
|
17
|
-
change: Event;
|
|
18
|
-
} & {
|
|
2
|
+
type PasswordInput = SvelteComponent<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>, {
|
|
19
3
|
[evt: string]: CustomEvent<any>;
|
|
20
|
-
}, {
|
|
21
|
-
|
|
22
|
-
slot: string;
|
|
23
|
-
};
|
|
24
|
-
}> & {
|
|
25
|
-
$$bindings?: string | undefined;
|
|
4
|
+
}, {}> & {
|
|
5
|
+
$$bindings?: "value" | undefined;
|
|
26
6
|
};
|
|
27
7
|
/**
|
|
28
8
|
* The equivalent of the HTML `<input type="password">` element, but it comes with the Show/Hide
|
|
@@ -30,29 +10,20 @@ type PasswordInput = SvelteComponent<{
|
|
|
30
10
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password
|
|
31
11
|
* @see https://w3c.github.io/aria/#textbox
|
|
32
12
|
*/
|
|
33
|
-
declare const PasswordInput: $$__sveltets_2_IsomorphicComponent<{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
value?: string | undefined;
|
|
40
|
-
hidden?: boolean | undefined;
|
|
41
|
-
readonly?: boolean | undefined;
|
|
42
|
-
flex?: boolean | undefined;
|
|
43
|
-
}, {
|
|
44
|
-
keydown: KeyboardEvent;
|
|
45
|
-
keyup: KeyboardEvent;
|
|
46
|
-
keypress: KeyboardEvent;
|
|
47
|
-
input: Event;
|
|
48
|
-
change: Event;
|
|
49
|
-
} & {
|
|
13
|
+
declare const PasswordInput: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").TextInputProps & import("../../typedefs").KeyboardEventHandlers & import("../../typedefs").MouseEventHandlers & import("../../typedefs").FocusEventHandlers & import("../../typedefs").DragEventHandlers & import("../../typedefs").InputEventHandlers & {
|
|
14
|
+
/**
|
|
15
|
+
* - Visibility icon slot content.
|
|
16
|
+
*/
|
|
17
|
+
visibilityIcon?: import("svelte").Snippet<[]> | undefined;
|
|
18
|
+
} & Record<string, any>, {
|
|
50
19
|
[evt: string]: CustomEvent<any>;
|
|
51
|
-
}, {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
20
|
+
}, {}, {}, "value">;
|
|
21
|
+
type Props = {
|
|
22
|
+
/**
|
|
23
|
+
* - Visibility icon slot content.
|
|
24
|
+
*/
|
|
25
|
+
visibilityIcon?: import("svelte").Snippet<[]> | undefined;
|
|
26
|
+
};
|
|
56
27
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
57
28
|
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
58
29
|
$$bindings?: Bindings;
|