@sveltia/ui 0.9.0 → 0.10.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/package/components/alert/alert.svelte +2 -4
- package/package/components/alert/alert.svelte.d.ts +2 -2
- package/package/components/button/button.svelte +78 -26
- package/package/components/button/button.svelte.d.ts +73 -63
- package/package/components/button/select-button-group.svelte +6 -1
- package/package/components/button/select-button-group.svelte.d.ts +13 -13
- package/package/components/button/select-button.svelte +2 -1
- package/package/components/button/select-button.svelte.d.ts +19 -19
- package/package/components/button/split-button.svelte +10 -2
- package/package/components/button/split-button.svelte.d.ts +19 -11
- package/package/components/calendar/calendar.svelte +2 -2
- package/package/components/calendar/calendar.svelte.d.ts +2 -2
- package/package/components/checkbox/checkbox-group.svelte.d.ts +7 -7
- package/package/components/checkbox/checkbox.svelte +8 -6
- package/package/components/checkbox/checkbox.svelte.d.ts +22 -16
- package/package/components/dialog/alert-dialog.svelte.d.ts +6 -6
- package/package/components/dialog/confirmation-dialog.svelte.d.ts +8 -8
- package/package/components/dialog/dialog.svelte +17 -15
- package/package/components/dialog/dialog.svelte.d.ts +30 -24
- package/package/components/dialog/prompt-dialog.svelte +1 -1
- package/package/components/dialog/prompt-dialog.svelte.d.ts +12 -12
- package/package/components/disclosure/disclosure.svelte +6 -1
- package/package/components/disclosure/disclosure.svelte.d.ts +29 -19
- package/package/components/divider/divider.svelte.d.ts +5 -5
- package/package/components/divider/spacer.svelte.d.ts +4 -4
- package/package/components/drawer/drawer.svelte +34 -16
- package/package/components/drawer/drawer.svelte.d.ts +22 -16
- package/package/components/grid/grid-body.svelte.d.ts +4 -4
- package/package/components/grid/grid-cell.svelte.d.ts +2 -2
- package/package/components/grid/grid-col-header.svelte.d.ts +2 -2
- package/package/components/grid/grid-foot.svelte.d.ts +2 -2
- package/package/components/grid/grid-head.svelte.d.ts +2 -2
- package/package/components/grid/grid-row-header.svelte.d.ts +2 -2
- package/package/components/grid/grid-row.svelte +10 -2
- package/package/components/grid/grid-row.svelte.d.ts +8 -8
- package/package/components/grid/grid.svelte +7 -2
- package/package/components/grid/grid.svelte.d.ts +8 -8
- package/package/components/icon/icon.svelte.d.ts +4 -4
- package/package/components/listbox/listbox.svelte +11 -5
- package/package/components/listbox/listbox.svelte.d.ts +15 -15
- package/package/components/listbox/option-group.svelte.d.ts +7 -7
- package/package/components/listbox/option.svelte +4 -2
- package/package/components/listbox/option.svelte.d.ts +15 -13
- package/package/components/menu/menu-button.svelte +8 -2
- package/package/components/menu/menu-button.svelte.d.ts +20 -18
- package/package/components/menu/menu-item-checkbox.svelte +1 -1
- package/package/components/menu/menu-item-checkbox.svelte.d.ts +16 -16
- package/package/components/menu/menu-item-group.svelte +1 -1
- package/package/components/menu/menu-item-group.svelte.d.ts +7 -7
- package/package/components/menu/menu-item-radio.svelte +1 -1
- package/package/components/menu/menu-item-radio.svelte.d.ts +16 -16
- package/package/components/menu/menu-item.svelte +32 -19
- package/package/components/menu/menu-item.svelte.d.ts +32 -18
- package/package/components/menu/menu.svelte +13 -7
- package/package/components/menu/menu.svelte.d.ts +7 -7
- package/package/components/radio/radio-group.svelte +6 -1
- package/package/components/radio/radio-group.svelte.d.ts +15 -15
- package/package/components/radio/radio.svelte +1 -1
- package/package/components/radio/radio.svelte.d.ts +14 -14
- package/package/components/select/combobox.svelte +10 -8
- package/package/components/select/combobox.svelte.d.ts +22 -16
- package/package/components/select/select.svelte.d.ts +12 -12
- package/package/components/slider/slider.svelte +26 -22
- package/package/components/slider/slider.svelte.d.ts +23 -23
- package/package/components/switch/switch.svelte +5 -0
- package/package/components/switch/switch.svelte.d.ts +18 -14
- package/package/components/table/table-body.svelte.d.ts +4 -4
- package/package/components/table/table-cell.svelte.d.ts +2 -2
- package/package/components/table/table-col-header.svelte.d.ts +2 -2
- package/package/components/table/table-foot.svelte.d.ts +2 -2
- package/package/components/table/table-head.svelte.d.ts +2 -2
- package/package/components/table/table-row-header.svelte.d.ts +2 -2
- package/package/components/table/table-row.svelte.d.ts +2 -2
- package/package/components/table/table.svelte.d.ts +2 -2
- package/package/components/tabs/tab-box.svelte +30 -0
- package/package/components/tabs/tab-box.svelte.d.ts +33 -0
- package/package/components/tabs/tab-list.svelte +105 -22
- package/package/components/tabs/tab-list.svelte.d.ts +10 -10
- package/package/components/tabs/tab-panel.svelte +6 -2
- package/package/components/tabs/tab-panel.svelte.d.ts +2 -2
- package/package/components/tabs/tab-panels.svelte +32 -0
- package/package/components/tabs/tab-panels.svelte.d.ts +31 -0
- package/package/components/tabs/tab.svelte.d.ts +11 -11
- package/package/components/text-field/markdown-editor.svelte.d.ts +12 -12
- package/package/components/text-field/number-input.svelte +11 -4
- package/package/components/text-field/number-input.svelte.d.ts +40 -20
- package/package/components/text-field/password-input.svelte +7 -3
- package/package/components/text-field/password-input.svelte.d.ts +30 -18
- package/package/components/text-field/search-bar.svelte +7 -3
- package/package/components/text-field/search-bar.svelte.d.ts +46 -36
- package/package/components/text-field/text-area.svelte +4 -2
- package/package/components/text-field/text-area.svelte.d.ts +25 -21
- package/package/components/text-field/text-input.svelte +17 -2
- package/package/components/text-field/text-input.svelte.d.ts +53 -53
- package/package/components/toast/toast.svelte +16 -12
- package/package/components/toast/toast.svelte.d.ts +8 -8
- package/package/components/toolbar/toolbar.svelte.d.ts +8 -8
- package/package/components/util/app-shell.svelte +22 -6
- package/package/components/util/app-shell.svelte.d.ts +2 -0
- package/package/components/util/group.svelte.d.ts +5 -5
- package/package/components/util/modal.svelte +26 -9
- package/package/components/util/modal.svelte.d.ts +34 -34
- package/package/components/util/popup.svelte +35 -13
- package/package/components/util/popup.svelte.d.ts +33 -28
- package/package/components/util/portal.svelte +5 -3
- package/package/components/util/portal.svelte.d.ts +2 -2
- package/package/index.d.ts +5 -3
- package/package/index.js +6 -4
- package/package/services/events.d.ts +1 -1
- package/package/services/events.js +11 -8
- package/package/services/group.js +73 -30
- package/package/services/popup.d.ts +27 -13
- package/package/services/popup.js +23 -9
- package/package/services/util.d.ts +2 -2
- package/package/services/util.js +5 -5
- package/package/styles/core.scss +1 -0
- package/package/styles/variables.scss +1 -0
- package/package.json +39 -23
|
@@ -45,14 +45,18 @@
|
|
|
45
45
|
export let keepContent = false;
|
|
46
46
|
/**
|
|
47
47
|
* A reference to the `<dialog>` element.
|
|
48
|
-
* @type {HTMLDialogElement}
|
|
48
|
+
* @type {HTMLDialogElement | undefined}
|
|
49
49
|
*/
|
|
50
50
|
export let dialog = undefined;
|
|
51
51
|
/**
|
|
52
52
|
* Close the modal.
|
|
53
|
-
* @param {string} returnValue Return value to be used for `<dialog>`.
|
|
53
|
+
* @param {string} returnValue - Return value to be used for `<dialog>`.
|
|
54
54
|
*/
|
|
55
55
|
export const close = (returnValue) => {
|
|
56
|
+
if (!dialog) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
56
60
|
dialog.returnValue = returnValue;
|
|
57
61
|
open = false;
|
|
58
62
|
};
|
|
@@ -69,7 +73,8 @@
|
|
|
69
73
|
const waitForTransition = async () =>
|
|
70
74
|
new Promise((resolve) => {
|
|
71
75
|
/**
|
|
72
|
-
*
|
|
76
|
+
* Transition event listener.
|
|
77
|
+
* @param {TransitionEvent} event - `transition` event.
|
|
73
78
|
*/
|
|
74
79
|
const listener = (event) => {
|
|
75
80
|
if (event.target === dialog) {
|
|
@@ -78,13 +83,17 @@
|
|
|
78
83
|
}
|
|
79
84
|
};
|
|
80
85
|
|
|
81
|
-
dialog
|
|
86
|
+
dialog?.addEventListener('transitionend', listener);
|
|
82
87
|
});
|
|
83
88
|
|
|
84
89
|
/**
|
|
85
90
|
* Show the modal.
|
|
86
91
|
*/
|
|
87
92
|
const openDialog = async () => {
|
|
93
|
+
if (!dialog) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
88
97
|
dispatch('opening');
|
|
89
98
|
(document.querySelector('.sui.app-shell') ?? document.body).appendChild(dialog);
|
|
90
99
|
showContent = true;
|
|
@@ -102,6 +111,10 @@
|
|
|
102
111
|
* Hide the modal.
|
|
103
112
|
*/
|
|
104
113
|
const closeDialog = async () => {
|
|
114
|
+
if (!dialog) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
105
118
|
dispatch('closing');
|
|
106
119
|
setActiveClass = false;
|
|
107
120
|
setOpenClass = false;
|
|
@@ -110,12 +123,12 @@
|
|
|
110
123
|
dialog.close();
|
|
111
124
|
dialog.remove();
|
|
112
125
|
|
|
113
|
-
if (['ok', 'cancel'].includes(dialog
|
|
126
|
+
if (['ok', 'cancel'].includes(dialog.returnValue)) {
|
|
114
127
|
dispatch(dialog?.returnValue);
|
|
115
128
|
}
|
|
116
129
|
|
|
117
|
-
dispatch('close', dialog
|
|
118
|
-
dialog.returnValue =
|
|
130
|
+
dispatch('close', dialog.returnValue);
|
|
131
|
+
dialog.returnValue = '';
|
|
119
132
|
};
|
|
120
133
|
|
|
121
134
|
/**
|
|
@@ -138,7 +151,7 @@
|
|
|
138
151
|
}
|
|
139
152
|
|
|
140
153
|
onMount(() => {
|
|
141
|
-
dialog
|
|
154
|
+
dialog?.remove();
|
|
142
155
|
|
|
143
156
|
// onUnmount
|
|
144
157
|
return () => {
|
|
@@ -157,7 +170,11 @@
|
|
|
157
170
|
{...$$restProps}
|
|
158
171
|
bind:this={dialog}
|
|
159
172
|
on:click={({ target }) => {
|
|
160
|
-
if (
|
|
173
|
+
if (
|
|
174
|
+
dialog &&
|
|
175
|
+
lightDismiss &&
|
|
176
|
+
/** @type {HTMLElement | undefined} */ (target)?.matches('dialog')
|
|
177
|
+
) {
|
|
161
178
|
dialog.returnValue = 'cancel';
|
|
162
179
|
open = false;
|
|
163
180
|
}
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
/** A generic modal top-layer helper based on the HTML `<dialog>` element. */
|
|
5
5
|
export default class Modal extends SvelteComponent<{
|
|
6
6
|
[x: string]: any;
|
|
7
|
-
class?: string;
|
|
8
|
-
close?: (returnValue: string) => void;
|
|
9
|
-
dialog?: HTMLDialogElement;
|
|
10
|
-
role?: "dialog" | "none" | "alertdialog";
|
|
11
|
-
open?: boolean;
|
|
12
|
-
showBackdrop?: boolean;
|
|
13
|
-
lightDismiss?: boolean;
|
|
14
|
-
escapeDismiss?: boolean;
|
|
15
|
-
keepContent?: boolean;
|
|
7
|
+
class?: string | undefined;
|
|
8
|
+
close?: ((returnValue: string) => void) | undefined;
|
|
9
|
+
dialog?: HTMLDialogElement | undefined;
|
|
10
|
+
role?: "dialog" | "none" | "alertdialog" | undefined;
|
|
11
|
+
open?: boolean | undefined;
|
|
12
|
+
showBackdrop?: boolean | undefined;
|
|
13
|
+
lightDismiss?: boolean | undefined;
|
|
14
|
+
escapeDismiss?: boolean | undefined;
|
|
15
|
+
keepContent?: boolean | undefined;
|
|
16
16
|
}, {
|
|
17
17
|
opening: CustomEvent<any>;
|
|
18
18
|
open: CustomEvent<any>;
|
|
@@ -26,29 +26,29 @@ export default class Modal extends SvelteComponent<{
|
|
|
26
26
|
}> {
|
|
27
27
|
get close(): (returnValue: string) => void;
|
|
28
28
|
/**accessor*/
|
|
29
|
-
set class(arg: string);
|
|
30
|
-
get class(): string;
|
|
29
|
+
set class(arg: string | undefined);
|
|
30
|
+
get class(): string | undefined;
|
|
31
31
|
/**accessor*/
|
|
32
|
-
set role(arg: "dialog" | "none" | "alertdialog");
|
|
33
|
-
get role(): "dialog" | "none" | "alertdialog";
|
|
32
|
+
set role(arg: "dialog" | "none" | "alertdialog" | undefined);
|
|
33
|
+
get role(): "dialog" | "none" | "alertdialog" | undefined;
|
|
34
34
|
/**accessor*/
|
|
35
|
-
set open(arg: boolean);
|
|
36
|
-
get open(): boolean;
|
|
35
|
+
set open(arg: boolean | undefined);
|
|
36
|
+
get open(): boolean | undefined;
|
|
37
37
|
/**accessor*/
|
|
38
|
-
set showBackdrop(arg: boolean);
|
|
39
|
-
get showBackdrop(): boolean;
|
|
38
|
+
set showBackdrop(arg: boolean | undefined);
|
|
39
|
+
get showBackdrop(): boolean | undefined;
|
|
40
40
|
/**accessor*/
|
|
41
|
-
set lightDismiss(arg: boolean);
|
|
42
|
-
get lightDismiss(): boolean;
|
|
41
|
+
set lightDismiss(arg: boolean | undefined);
|
|
42
|
+
get lightDismiss(): boolean | undefined;
|
|
43
43
|
/**accessor*/
|
|
44
|
-
set escapeDismiss(arg: boolean);
|
|
45
|
-
get escapeDismiss(): boolean;
|
|
44
|
+
set escapeDismiss(arg: boolean | undefined);
|
|
45
|
+
get escapeDismiss(): boolean | undefined;
|
|
46
46
|
/**accessor*/
|
|
47
|
-
set keepContent(arg: boolean);
|
|
48
|
-
get keepContent(): boolean;
|
|
47
|
+
set keepContent(arg: boolean | undefined);
|
|
48
|
+
get keepContent(): boolean | undefined;
|
|
49
49
|
/**accessor*/
|
|
50
|
-
set dialog(arg: HTMLDialogElement);
|
|
51
|
-
get dialog(): HTMLDialogElement;
|
|
50
|
+
set dialog(arg: HTMLDialogElement | undefined);
|
|
51
|
+
get dialog(): HTMLDialogElement | undefined;
|
|
52
52
|
}
|
|
53
53
|
export type ModalProps = typeof __propDef.props;
|
|
54
54
|
export type ModalEvents = typeof __propDef.events;
|
|
@@ -57,15 +57,15 @@ import { SvelteComponent } from "svelte";
|
|
|
57
57
|
declare const __propDef: {
|
|
58
58
|
props: {
|
|
59
59
|
[x: string]: any;
|
|
60
|
-
class?: string;
|
|
61
|
-
close?: (returnValue: string) => void;
|
|
62
|
-
dialog?: HTMLDialogElement;
|
|
63
|
-
role?:
|
|
64
|
-
open?: boolean;
|
|
65
|
-
showBackdrop?: boolean;
|
|
66
|
-
lightDismiss?: boolean;
|
|
67
|
-
escapeDismiss?: boolean;
|
|
68
|
-
keepContent?: boolean;
|
|
60
|
+
class?: string | undefined;
|
|
61
|
+
close?: ((returnValue: string) => void) | undefined;
|
|
62
|
+
dialog?: HTMLDialogElement | undefined;
|
|
63
|
+
role?: "dialog" | "none" | "alertdialog" | undefined;
|
|
64
|
+
open?: boolean | undefined;
|
|
65
|
+
showBackdrop?: boolean | undefined;
|
|
66
|
+
lightDismiss?: boolean | undefined;
|
|
67
|
+
escapeDismiss?: boolean | undefined;
|
|
68
|
+
keepContent?: boolean | undefined;
|
|
69
69
|
};
|
|
70
70
|
events: {
|
|
71
71
|
opening: CustomEvent<any>;
|
|
@@ -22,14 +22,19 @@
|
|
|
22
22
|
* @type {import('svelte/store').Writable<boolean>}
|
|
23
23
|
*/
|
|
24
24
|
export let open = writable(false);
|
|
25
|
+
/**
|
|
26
|
+
* Whether to show the backdrop.
|
|
27
|
+
* @type {boolean}
|
|
28
|
+
*/
|
|
29
|
+
export let showBackdrop = false;
|
|
25
30
|
/**
|
|
26
31
|
* A reference to the anchor element that opens the popup. Typically a `<button>`.
|
|
27
|
-
* @type {HTMLElement}
|
|
32
|
+
* @type {HTMLElement | undefined}
|
|
28
33
|
*/
|
|
29
34
|
export let anchor;
|
|
30
35
|
/**
|
|
31
36
|
* A reference to the content element.
|
|
32
|
-
* @type {HTMLElement}
|
|
37
|
+
* @type {HTMLElement | undefined}
|
|
33
38
|
*/
|
|
34
39
|
export let content = undefined;
|
|
35
40
|
/**
|
|
@@ -39,7 +44,7 @@
|
|
|
39
44
|
export let position = 'bottom-left';
|
|
40
45
|
/**
|
|
41
46
|
* The base element of {@link position}. If omitted, this will be {@link anchor}.
|
|
42
|
-
* @type {HTMLElement}
|
|
47
|
+
* @type {HTMLElement | undefined}
|
|
43
48
|
*/
|
|
44
49
|
export let positionBaseElement = undefined;
|
|
45
50
|
/**
|
|
@@ -62,7 +67,7 @@
|
|
|
62
67
|
/**
|
|
63
68
|
* The type of the content displayed in the popup, defined with the `aria-haspopup` attribute on
|
|
64
69
|
* the anchor element.
|
|
65
|
-
* @type {string}
|
|
70
|
+
* @type {string | undefined}
|
|
66
71
|
* @see https://w3c.github.io/aria/#aria-haspopup
|
|
67
72
|
*/
|
|
68
73
|
let contentType;
|
|
@@ -80,7 +85,7 @@
|
|
|
80
85
|
$: {
|
|
81
86
|
if (anchor && modal?.dialog) {
|
|
82
87
|
({ open, style } = activatePopup(anchor, modal.dialog, position, positionBaseElement));
|
|
83
|
-
contentType = anchor.getAttribute('aria-haspopup');
|
|
88
|
+
contentType = anchor.getAttribute('aria-haspopup') ?? undefined;
|
|
84
89
|
}
|
|
85
90
|
}
|
|
86
91
|
|
|
@@ -95,7 +100,7 @@
|
|
|
95
100
|
role="none"
|
|
96
101
|
class="popup"
|
|
97
102
|
bind:open={$open}
|
|
98
|
-
showBackdrop={touch}
|
|
103
|
+
showBackdrop={showBackdrop ?? touch}
|
|
99
104
|
lightDismiss={true}
|
|
100
105
|
keepContent={true}
|
|
101
106
|
bind:this={modal}
|
|
@@ -109,6 +114,10 @@
|
|
|
109
114
|
on:open={async () => {
|
|
110
115
|
await sleep(100);
|
|
111
116
|
|
|
117
|
+
if (!content) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
|
|
112
121
|
const target = /** @type {HTMLElement} */ (
|
|
113
122
|
content.querySelector('[tabindex]:not([aria-disabled="true"])')
|
|
114
123
|
);
|
|
@@ -147,17 +156,30 @@
|
|
|
147
156
|
backdrop-filter: blur(16px);
|
|
148
157
|
transition-property: opacity, transform;
|
|
149
158
|
}
|
|
150
|
-
.content.
|
|
151
|
-
border-width: 1px;
|
|
152
|
-
border-style: solid;
|
|
153
|
-
border-color: var(--sui-secondary-border-color);
|
|
154
|
-
border-radius: 4px;
|
|
159
|
+
.content.menu {
|
|
160
|
+
border-width: var(--sui-menu-border-width, 1px);
|
|
161
|
+
border-style: var(--sui-menu-border-style, solid);
|
|
162
|
+
border-color: var(--sui-menu-border-width, var(--sui-secondary-border-color));
|
|
163
|
+
border-radius: var(--sui-menu-border-radius, 4px);
|
|
164
|
+
padding: var(--sui-menu-padding, 4px);
|
|
155
165
|
}
|
|
156
|
-
.content.listbox :global(.sui.listbox),
|
|
157
|
-
.content.listbox :global(.sui.menu), .content.menu :global(.sui.listbox),
|
|
158
166
|
.content.menu :global(.sui.menu) {
|
|
159
167
|
border-width: 0;
|
|
160
168
|
border-radius: 0;
|
|
169
|
+
padding: 0;
|
|
170
|
+
background-color: transparent;
|
|
171
|
+
}
|
|
172
|
+
.content.listbox {
|
|
173
|
+
border-width: var(--sui-listbox-border-width, 1px);
|
|
174
|
+
border-style: var(--sui-listbox-border-style, solid);
|
|
175
|
+
border-color: var(--sui-listbox-border-width, var(--sui-secondary-border-color));
|
|
176
|
+
border-radius: var(--sui-listbox-border-radius, 4px);
|
|
177
|
+
padding: var(--sui-listbox-padding, 4px);
|
|
178
|
+
}
|
|
179
|
+
.content.listbox :global(.sui.listbox) {
|
|
180
|
+
border-width: 0;
|
|
181
|
+
border-radius: 0;
|
|
182
|
+
padding: 0;
|
|
161
183
|
background-color: transparent;
|
|
162
184
|
}
|
|
163
185
|
.content.touch {
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
/** Generic popup helper. */
|
|
5
5
|
export default class Popup extends SvelteComponent<{
|
|
6
6
|
[x: string]: any;
|
|
7
|
-
anchor: HTMLElement;
|
|
8
|
-
class?: string;
|
|
9
|
-
position?: PopupPosition;
|
|
10
|
-
open?: import("svelte/store").Writable<boolean
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
anchor: HTMLElement | undefined;
|
|
8
|
+
class?: string | undefined;
|
|
9
|
+
position?: PopupPosition | undefined;
|
|
10
|
+
open?: import("svelte/store").Writable<boolean> | undefined;
|
|
11
|
+
showBackdrop?: boolean | undefined;
|
|
12
|
+
content?: HTMLElement | undefined;
|
|
13
|
+
positionBaseElement?: HTMLElement | undefined;
|
|
14
|
+
touchOptimized?: boolean | undefined;
|
|
14
15
|
}, {
|
|
15
16
|
opening: CustomEvent<any>;
|
|
16
17
|
open: CustomEvent<any>;
|
|
@@ -24,26 +25,29 @@ export default class Popup extends SvelteComponent<{
|
|
|
24
25
|
default: {};
|
|
25
26
|
}> {
|
|
26
27
|
/**accessor*/
|
|
27
|
-
set class(arg: string);
|
|
28
|
-
get class(): string;
|
|
28
|
+
set class(arg: string | undefined);
|
|
29
|
+
get class(): string | undefined;
|
|
29
30
|
/**accessor*/
|
|
30
|
-
set open(arg: import("svelte/store").Writable<boolean>);
|
|
31
|
-
get open(): import("svelte/store").Writable<boolean
|
|
31
|
+
set open(arg: import("svelte/store").Writable<boolean> | undefined);
|
|
32
|
+
get open(): import("svelte/store").Writable<boolean> | undefined;
|
|
32
33
|
/**accessor*/
|
|
33
|
-
set
|
|
34
|
-
get
|
|
34
|
+
set showBackdrop(arg: boolean | undefined);
|
|
35
|
+
get showBackdrop(): boolean | undefined;
|
|
35
36
|
/**accessor*/
|
|
36
|
-
set
|
|
37
|
-
get
|
|
37
|
+
set anchor(arg: HTMLElement | undefined);
|
|
38
|
+
get anchor(): HTMLElement | undefined;
|
|
38
39
|
/**accessor*/
|
|
39
|
-
set
|
|
40
|
-
get
|
|
40
|
+
set content(arg: HTMLElement | undefined);
|
|
41
|
+
get content(): HTMLElement | undefined;
|
|
41
42
|
/**accessor*/
|
|
42
|
-
set
|
|
43
|
-
get
|
|
43
|
+
set position(arg: PopupPosition | undefined);
|
|
44
|
+
get position(): PopupPosition | undefined;
|
|
44
45
|
/**accessor*/
|
|
45
|
-
set
|
|
46
|
-
get
|
|
46
|
+
set positionBaseElement(arg: HTMLElement | undefined);
|
|
47
|
+
get positionBaseElement(): HTMLElement | undefined;
|
|
48
|
+
/**accessor*/
|
|
49
|
+
set touchOptimized(arg: boolean | undefined);
|
|
50
|
+
get touchOptimized(): boolean | undefined;
|
|
47
51
|
}
|
|
48
52
|
export type PopupProps = typeof __propDef.props;
|
|
49
53
|
export type PopupEvents = typeof __propDef.events;
|
|
@@ -52,13 +56,14 @@ import { SvelteComponent } from "svelte";
|
|
|
52
56
|
declare const __propDef: {
|
|
53
57
|
props: {
|
|
54
58
|
[x: string]: any;
|
|
55
|
-
anchor: HTMLElement;
|
|
56
|
-
class?: string;
|
|
57
|
-
position?: PopupPosition;
|
|
58
|
-
open?: import(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
anchor: HTMLElement | undefined;
|
|
60
|
+
class?: string | undefined;
|
|
61
|
+
position?: PopupPosition | undefined;
|
|
62
|
+
open?: import("svelte/store").Writable<boolean> | undefined;
|
|
63
|
+
showBackdrop?: boolean | undefined;
|
|
64
|
+
content?: HTMLElement | undefined;
|
|
65
|
+
positionBaseElement?: HTMLElement | undefined;
|
|
66
|
+
touchOptimized?: boolean | undefined;
|
|
62
67
|
};
|
|
63
68
|
events: {
|
|
64
69
|
opening: CustomEvent<any>;
|
|
@@ -13,15 +13,17 @@
|
|
|
13
13
|
|
|
14
14
|
export { className as class };
|
|
15
15
|
|
|
16
|
-
/** @type {HTMLElement} */
|
|
16
|
+
/** @type {HTMLElement | undefined} */
|
|
17
17
|
let ref;
|
|
18
18
|
|
|
19
19
|
onMount(() => {
|
|
20
|
-
|
|
20
|
+
if (ref) {
|
|
21
|
+
document.body.appendChild(ref);
|
|
22
|
+
}
|
|
21
23
|
});
|
|
22
24
|
|
|
23
25
|
onDestroy(() => {
|
|
24
|
-
ref
|
|
26
|
+
ref?.remove();
|
|
25
27
|
});
|
|
26
28
|
</script>
|
|
27
29
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
/** @see https://github.com/sveltejs/svelte/issues/3088 */
|
|
5
5
|
export default class Portal extends SvelteComponent<{
|
|
6
6
|
[x: string]: any;
|
|
7
|
-
class?: string;
|
|
7
|
+
class?: string | undefined;
|
|
8
8
|
}, {
|
|
9
9
|
[evt: string]: CustomEvent<any>;
|
|
10
10
|
}, {
|
|
@@ -18,7 +18,7 @@ import { SvelteComponent } from "svelte";
|
|
|
18
18
|
declare const __propDef: {
|
|
19
19
|
props: {
|
|
20
20
|
[x: string]: any;
|
|
21
|
-
class?: string;
|
|
21
|
+
class?: string | undefined;
|
|
22
22
|
};
|
|
23
23
|
events: {
|
|
24
24
|
[evt: string]: CustomEvent<any>;
|
package/package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function initLocales({ fallbackLocale, initialLocale }?: {
|
|
2
|
-
fallbackLocale?: string;
|
|
3
|
-
initialLocale?: string;
|
|
4
|
-
}): void;
|
|
2
|
+
fallbackLocale?: string | undefined;
|
|
3
|
+
initialLocale?: string | undefined;
|
|
4
|
+
} | undefined): void;
|
|
5
5
|
export { default as Alert } from "./components/alert/alert.svelte";
|
|
6
6
|
export { default as Button } from "./components/button/button.svelte";
|
|
7
7
|
export { default as SelectButtonGroup } from "./components/button/select-button-group.svelte";
|
|
@@ -50,8 +50,10 @@ export { default as TableHead } from "./components/table/table-head.svelte";
|
|
|
50
50
|
export { default as TableRowHeader } from "./components/table/table-row-header.svelte";
|
|
51
51
|
export { default as TableRow } from "./components/table/table-row.svelte";
|
|
52
52
|
export { default as Table } from "./components/table/table.svelte";
|
|
53
|
+
export { default as TabBox } from "./components/tabs/tab-box.svelte";
|
|
53
54
|
export { default as TabList } from "./components/tabs/tab-list.svelte";
|
|
54
55
|
export { default as TabPanel } from "./components/tabs/tab-panel.svelte";
|
|
56
|
+
export { default as TabPanels } from "./components/tabs/tab-panels.svelte";
|
|
55
57
|
export { default as Tab } from "./components/tabs/tab.svelte";
|
|
56
58
|
export { default as MarkdownEditor } from "./components/text-field/markdown-editor.svelte";
|
|
57
59
|
export { default as NumberInput } from "./components/text-field/number-input.svelte";
|
package/package/index.js
CHANGED
|
@@ -2,9 +2,9 @@ import { addMessages, init } from 'svelte-i18n';
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Load strings and initialize the locales.
|
|
5
|
-
* @param {object} [init] Initialize options.
|
|
6
|
-
* @param {string} [init.fallbackLocale] Fallback locale.
|
|
7
|
-
* @param {string} [init.initialLocale] Initial locale.
|
|
5
|
+
* @param {object} [init] - Initialize options.
|
|
6
|
+
* @param {string} [init.fallbackLocale] - Fallback locale.
|
|
7
|
+
* @param {string} [init.initialLocale] - Initial locale.
|
|
8
8
|
* @see https://github.com/kaisermann/svelte-i18n/blob/main/docs/Getting%20Started.md
|
|
9
9
|
* @see https://vitejs.dev/guide/features.html#glob-import
|
|
10
10
|
*/
|
|
@@ -13,7 +13,7 @@ export const initLocales = ({ fallbackLocale = 'en', initialLocale = 'en' } = {}
|
|
|
13
13
|
const modules = import.meta.glob('./locales/*.js', { eager: true });
|
|
14
14
|
|
|
15
15
|
Object.entries(modules).forEach(([path, { strings }]) => {
|
|
16
|
-
const [, locale] = path.match(/([a-zA-Z-]+)\.js/);
|
|
16
|
+
const [, locale] = /** @type {string[]} */ (path.match(/([a-zA-Z-]+)\.js/));
|
|
17
17
|
|
|
18
18
|
// Add `_sui` suffix to avoid collision with app localization
|
|
19
19
|
addMessages(locale, /** @type {any} */ ({ _sui: strings }));
|
|
@@ -75,8 +75,10 @@ export { default as TableHead } from './components/table/table-head.svelte';
|
|
|
75
75
|
export { default as TableRowHeader } from './components/table/table-row-header.svelte';
|
|
76
76
|
export { default as TableRow } from './components/table/table-row.svelte';
|
|
77
77
|
export { default as Table } from './components/table/table.svelte';
|
|
78
|
+
export { default as TabBox } from './components/tabs/tab-box.svelte';
|
|
78
79
|
export { default as TabList } from './components/tabs/tab-list.svelte';
|
|
79
80
|
export { default as TabPanel } from './components/tabs/tab-panel.svelte';
|
|
81
|
+
export { default as TabPanels } from './components/tabs/tab-panels.svelte';
|
|
80
82
|
export { default as Tab } from './components/tabs/tab.svelte';
|
|
81
83
|
export { default as MarkdownEditor } from './components/text-field/markdown-editor.svelte';
|
|
82
84
|
export { default as NumberInput } from './components/text-field/number-input.svelte';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export function isMac(): boolean;
|
|
2
2
|
export function matchShortcuts(event: KeyboardEvent, shortcuts: string): boolean;
|
|
3
|
-
export function activateKeyShortcuts(element: (HTMLInputElement | HTMLButtonElement), shortcuts?: string): import('svelte/action').ActionReturn;
|
|
3
|
+
export function activateKeyShortcuts(element: (HTMLInputElement | HTMLButtonElement), shortcuts?: string | undefined): import('svelte/action').ActionReturn;
|
|
@@ -8,8 +8,8 @@ export const isMac = () =>
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Whether the event matches the given keyboard shortcuts.
|
|
11
|
-
* @param {KeyboardEvent} event `keydown` or `keypress` event.
|
|
12
|
-
* @param {string} shortcuts Keyboard shortcuts like `A` or `Ctrl+S`.
|
|
11
|
+
* @param {KeyboardEvent} event - `keydown` or `keypress` event.
|
|
12
|
+
* @param {string} shortcuts - Keyboard shortcuts like `A` or `Ctrl+S`.
|
|
13
13
|
* @returns {boolean} Result.
|
|
14
14
|
* @see https://w3c.github.io/aria/#aria-keyshortcuts
|
|
15
15
|
*/
|
|
@@ -47,10 +47,10 @@ export const matchShortcuts = (event, shortcuts) => {
|
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* Activate keyboard shortcuts.
|
|
50
|
-
* @param {(HTMLInputElement | HTMLButtonElement)} element Element.
|
|
51
|
-
* @param {string} [shortcuts] Keyboard shortcuts like `A` or `Accel+S` to focus and click the
|
|
52
|
-
* field or button. Multiple shortcuts can be defined space-separated. The `Accel` modifier
|
|
53
|
-
* replaced with `Ctrl` on Windows/Linux and `Command` on macOS.
|
|
50
|
+
* @param {(HTMLInputElement | HTMLButtonElement)} element - Element.
|
|
51
|
+
* @param {string} [shortcuts] - Keyboard shortcuts like `A` or `Accel+S` to focus and click the
|
|
52
|
+
* text field or button. Multiple shortcuts can be defined space-separated. The `Accel` modifier
|
|
53
|
+
* will be replaced with `Ctrl` on Windows/Linux and `Command` on macOS.
|
|
54
54
|
* @returns {import('svelte/action').ActionReturn} Actions.
|
|
55
55
|
*/
|
|
56
56
|
export const activateKeyShortcuts = (element, shortcuts = '') => {
|
|
@@ -59,10 +59,13 @@ export const activateKeyShortcuts = (element, shortcuts = '') => {
|
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Handle the event.
|
|
62
|
-
* @param {KeyboardEvent} event `keydown` event.
|
|
62
|
+
* @param {KeyboardEvent} event - `keydown` event.
|
|
63
63
|
*/
|
|
64
64
|
const handler = (event) => {
|
|
65
|
-
if (
|
|
65
|
+
if (
|
|
66
|
+
!!element.offsetParent &&
|
|
67
|
+
matchShortcuts(event, /** @type {string} */ (platformKeyShortcuts))
|
|
68
|
+
) {
|
|
66
69
|
event.preventDefault();
|
|
67
70
|
|
|
68
71
|
if (!element.disabled) {
|