@sveltia/ui 0.7.5 → 0.8.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 +4 -4
- package/package/components/alert/alert.svelte.d.ts +2 -2
- package/package/components/button/button.svelte +5 -3
- package/package/components/button/button.svelte.d.ts +6 -4
- package/package/components/button/select-button-group.svelte +9 -5
- package/package/components/button/select-button.svelte +5 -4
- package/package/components/button/select-button.svelte.d.ts +2 -0
- package/package/components/calendar/calendar.svelte +20 -14
- package/package/components/checkbox/checkbox-group.svelte +6 -5
- package/package/components/checkbox/checkbox.svelte +6 -4
- package/package/components/checkbox/checkbox.svelte.d.ts +2 -2
- package/package/components/dialog/alert-dialog.svelte +50 -0
- package/package/components/dialog/alert-dialog.svelte.d.ts +55 -0
- package/package/components/dialog/confirmation-dialog.svelte +55 -0
- package/package/components/dialog/confirmation-dialog.svelte.d.ts +57 -0
- package/package/components/dialog/dialog.svelte +165 -221
- package/package/components/dialog/dialog.svelte.d.ts +20 -12
- package/package/components/dialog/prompt-dialog.svelte +78 -0
- package/package/components/dialog/prompt-dialog.svelte.d.ts +72 -0
- package/package/components/disclosure/disclosure.svelte +3 -2
- package/package/components/divider/divider.svelte +1 -1
- package/package/components/divider/spacer.svelte +1 -12
- package/package/components/divider/spacer.svelte.d.ts +0 -2
- package/package/components/drawer/drawer.svelte +119 -209
- package/package/components/drawer/drawer.svelte.d.ts +13 -9
- package/package/components/grid/grid-body.svelte +51 -0
- package/package/components/grid/grid-body.svelte.d.ts +36 -0
- package/package/components/grid/grid-cell.svelte +22 -0
- package/package/components/grid/grid-cell.svelte.d.ts +34 -0
- package/package/components/grid/grid-col-header.svelte +22 -0
- package/package/components/grid/grid-col-header.svelte.d.ts +34 -0
- package/package/components/grid/grid-foot.svelte +27 -0
- package/package/components/grid/grid-foot.svelte.d.ts +34 -0
- package/package/components/grid/grid-head.svelte +27 -0
- package/package/components/grid/grid-head.svelte.d.ts +34 -0
- package/package/components/grid/grid-row-header.svelte +23 -0
- package/package/components/grid/grid-row-header.svelte.d.ts +34 -0
- package/package/components/grid/grid-row.svelte +37 -0
- package/package/components/grid/grid-row.svelte.d.ts +44 -0
- package/package/components/grid/grid.svelte +52 -0
- package/package/components/grid/grid.svelte.d.ts +42 -0
- package/package/components/icon/icon.svelte +6 -7
- package/package/components/icon/icon.svelte.d.ts +0 -2
- package/package/components/listbox/listbox.svelte +3 -3
- package/package/components/listbox/option-group.svelte +6 -5
- package/package/components/listbox/option.svelte +7 -28
- package/package/components/listbox/option.svelte.d.ts +2 -0
- package/package/components/menu/menu-button.svelte +26 -16
- package/package/components/menu/menu-button.svelte.d.ts +2 -2
- package/package/components/menu/menu-item-checkbox.svelte +5 -4
- package/package/components/menu/menu-item-checkbox.svelte.d.ts +2 -0
- package/package/components/menu/menu-item-group.svelte +4 -3
- package/package/components/menu/menu-item-radio.svelte +5 -4
- package/package/components/menu/menu-item-radio.svelte.d.ts +2 -0
- package/package/components/menu/menu-item.svelte +7 -5
- package/package/components/menu/menu-item.svelte.d.ts +4 -2
- package/package/components/menu/menu.svelte +1 -1
- package/package/components/radio/radio-group.svelte +5 -5
- package/package/components/radio/radio.svelte +5 -2
- package/package/components/radio/radio.svelte.d.ts +2 -0
- package/package/components/select/combobox.svelte +11 -9
- package/package/components/slider/slider.svelte +12 -5
- package/package/components/switch/switch.svelte +3 -2
- package/package/components/switch/switch.svelte.d.ts +2 -2
- package/package/components/table/table-body.svelte +31 -3
- package/package/components/table/table-body.svelte.d.ts +2 -0
- package/package/components/table/table-cell.svelte +3 -4
- package/package/components/table/table-cell.svelte.d.ts +1 -1
- package/package/components/table/table-col-header.svelte +1 -2
- package/package/components/table/table-foot.svelte +7 -3
- package/package/components/table/table-head.svelte +7 -3
- package/package/components/table/table-row-header.svelte +1 -2
- package/package/components/table/table-row.svelte +1 -14
- package/package/components/table/table-row.svelte.d.ts +0 -8
- package/package/components/table/table.svelte +5 -17
- package/package/components/table/table.svelte.d.ts +1 -7
- package/package/components/tabs/tab-list.svelte +7 -5
- package/package/components/tabs/tab-panel.svelte +1 -1
- package/package/components/tabs/tab.svelte +2 -1
- package/package/components/tabs/tab.svelte.d.ts +2 -0
- package/package/components/text-field/markdown-editor.svelte +30 -6
- package/package/components/text-field/markdown-editor.svelte.d.ts +2 -0
- package/package/components/text-field/number-input.svelte +36 -6
- package/package/components/text-field/number-input.svelte.d.ts +2 -0
- package/package/components/text-field/password-input.svelte +34 -8
- package/package/components/text-field/password-input.svelte.d.ts +2 -0
- package/package/components/text-field/search-bar.svelte +39 -11
- package/package/components/text-field/search-bar.svelte.d.ts +5 -0
- package/package/components/text-field/text-area.svelte +21 -2
- package/package/components/text-field/text-area.svelte.d.ts +2 -0
- package/package/components/text-field/text-input.svelte +22 -4
- package/package/components/text-field/text-input.svelte.d.ts +7 -2
- package/package/components/toast/toast.svelte +6 -16
- package/package/components/toast/toast.svelte.d.ts +2 -2
- package/package/components/toolbar/toolbar.svelte +3 -4
- package/package/components/util/app-shell.svelte +26 -27
- package/package/components/util/group.svelte +2 -2
- package/package/components/util/modal.svelte +220 -0
- package/package/components/util/modal.svelte.d.ts +83 -0
- package/package/components/util/popup.svelte +81 -127
- package/package/components/util/popup.svelte.d.ts +22 -18
- package/package/components/util/portal.svelte +1 -1
- package/package/index.d.ts +12 -0
- package/package/index.js +12 -0
- package/package/locales/en.d.ts +1 -0
- package/package/locales/en.js +1 -0
- package/package/locales/ja.d.ts +1 -0
- package/package/locales/ja.js +1 -0
- package/package/services/group.js +51 -13
- package/package/styles/core.scss +9 -26
- package/package/styles/variables.scss +12 -0
- package/package.json +97 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridCellProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridCellEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridCellSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableCell>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td
|
|
7
|
+
* @see https://w3c.github.io/aria/#gridcell
|
|
8
|
+
*/
|
|
9
|
+
export default class GridCell extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type GridCellProps = typeof __propDef.props;
|
|
19
|
+
export type GridCellEvents = typeof __propDef.events;
|
|
20
|
+
export type GridCellSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponent } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
class?: string;
|
|
26
|
+
};
|
|
27
|
+
events: {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {
|
|
31
|
+
default: {};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<TableColHeader>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th
|
|
5
|
+
@see https://w3c.github.io/aria/#columnheader
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
/**
|
|
9
|
+
* The `class` attribute on the wrapper element.
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
let className = '';
|
|
13
|
+
export { className as class };
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div role="columnheader" class="sui grid-col-header {className}" {...$$restProps}>
|
|
17
|
+
<slot />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<style>.grid-col-header {
|
|
21
|
+
display: table-cell;
|
|
22
|
+
}</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridColHeaderProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridColHeaderEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridColHeaderSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableColHeader>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th
|
|
7
|
+
* @see https://w3c.github.io/aria/#columnheader
|
|
8
|
+
*/
|
|
9
|
+
export default class GridColHeader extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type GridColHeaderProps = typeof __propDef.props;
|
|
19
|
+
export type GridColHeaderEvents = typeof __propDef.events;
|
|
20
|
+
export type GridColHeaderSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponent } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
class?: string;
|
|
26
|
+
};
|
|
27
|
+
events: {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {
|
|
31
|
+
default: {};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<TableFoot>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot
|
|
5
|
+
@see https://w3c.github.io/aria/#rowgroup
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
/**
|
|
9
|
+
* The `class` attribute on the wrapper element.
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
let className = '';
|
|
13
|
+
export { className as class };
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div
|
|
17
|
+
role="rowgroup"
|
|
18
|
+
class="sui grid-foot {className}"
|
|
19
|
+
aria-roledescription="grid foot"
|
|
20
|
+
{...$$restProps}
|
|
21
|
+
>
|
|
22
|
+
<slot />
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<style>.grid-foot {
|
|
26
|
+
display: table-footer-group;
|
|
27
|
+
}</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridFootProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridFootEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridFootSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableFoot>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot
|
|
7
|
+
* @see https://w3c.github.io/aria/#rowgroup
|
|
8
|
+
*/
|
|
9
|
+
export default class GridFoot extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type GridFootProps = typeof __propDef.props;
|
|
19
|
+
export type GridFootEvents = typeof __propDef.events;
|
|
20
|
+
export type GridFootSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponent } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
class?: string;
|
|
26
|
+
};
|
|
27
|
+
events: {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {
|
|
31
|
+
default: {};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<TableThead>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead
|
|
5
|
+
@see https://w3c.github.io/aria/#rowgroup
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
/**
|
|
9
|
+
* The `class` attribute on the wrapper element.
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
let className = '';
|
|
13
|
+
export { className as class };
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div
|
|
17
|
+
role="rowgroup"
|
|
18
|
+
class="sui grid-head {className}"
|
|
19
|
+
aria-roledescription="grid head"
|
|
20
|
+
{...$$restProps}
|
|
21
|
+
>
|
|
22
|
+
<slot />
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<style>.grid-head {
|
|
26
|
+
display: table-header-group;
|
|
27
|
+
}</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridHeadProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridHeadEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridHeadSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableThead>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead
|
|
7
|
+
* @see https://w3c.github.io/aria/#rowgroup
|
|
8
|
+
*/
|
|
9
|
+
export default class GridHead extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type GridHeadProps = typeof __propDef.props;
|
|
19
|
+
export type GridHeadEvents = typeof __propDef.events;
|
|
20
|
+
export type GridHeadSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponent } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
class?: string;
|
|
26
|
+
};
|
|
27
|
+
events: {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {
|
|
31
|
+
default: {};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<TableRowHeader>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th
|
|
5
|
+
@see https://w3c.github.io/aria/#rowheader
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
/**
|
|
9
|
+
* The `class` attribute on the wrapper element.
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
let className = '';
|
|
13
|
+
export { className as class };
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div role="rowheader" class="sui grid-row-header {className}" {...$$restProps}>
|
|
17
|
+
<slot />
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<style>.grid-row-header {
|
|
21
|
+
display: table-cell;
|
|
22
|
+
height: var(--sui-secondary-row-height);
|
|
23
|
+
}</style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridRowHeaderProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridRowHeaderEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridRowHeaderSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableRowHeader>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th
|
|
7
|
+
* @see https://w3c.github.io/aria/#rowheader
|
|
8
|
+
*/
|
|
9
|
+
export default class GridRowHeader extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
}, {
|
|
15
|
+
default: {};
|
|
16
|
+
}> {
|
|
17
|
+
}
|
|
18
|
+
export type GridRowHeaderProps = typeof __propDef.props;
|
|
19
|
+
export type GridRowHeaderEvents = typeof __propDef.events;
|
|
20
|
+
export type GridRowHeaderSlots = typeof __propDef.slots;
|
|
21
|
+
import { SvelteComponent } from "svelte";
|
|
22
|
+
declare const __propDef: {
|
|
23
|
+
props: {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
class?: string;
|
|
26
|
+
};
|
|
27
|
+
events: {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {
|
|
31
|
+
default: {};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<TableRow>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr
|
|
5
|
+
@see https://w3c.github.io/aria/#row
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
/**
|
|
9
|
+
* The `class` attribute on the wrapper element.
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
let className = '';
|
|
13
|
+
export { className as class };
|
|
14
|
+
/**
|
|
15
|
+
* Whether to select the widget. An alias of the `aria-selected` attribute.
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
*/
|
|
18
|
+
export let selected = false;
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<div
|
|
22
|
+
role="row"
|
|
23
|
+
class="sui grid-row {className}"
|
|
24
|
+
tabindex="0"
|
|
25
|
+
aria-selected={selected}
|
|
26
|
+
{...$$restProps}
|
|
27
|
+
on:click
|
|
28
|
+
on:select
|
|
29
|
+
on:change
|
|
30
|
+
>
|
|
31
|
+
<slot />
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<style>.grid-row {
|
|
35
|
+
display: table-row;
|
|
36
|
+
height: var(--sui-primary-row-height);
|
|
37
|
+
}</style>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridRowProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridRowEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridRowSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<TableRow>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr
|
|
7
|
+
* @see https://w3c.github.io/aria/#row
|
|
8
|
+
*/
|
|
9
|
+
export default class GridRow extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
selected?: boolean;
|
|
13
|
+
}, {
|
|
14
|
+
click: MouseEvent;
|
|
15
|
+
select: Event;
|
|
16
|
+
change: Event;
|
|
17
|
+
} & {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
}, {
|
|
20
|
+
default: {};
|
|
21
|
+
}> {
|
|
22
|
+
}
|
|
23
|
+
export type GridRowProps = typeof __propDef.props;
|
|
24
|
+
export type GridRowEvents = typeof __propDef.events;
|
|
25
|
+
export type GridRowSlots = typeof __propDef.slots;
|
|
26
|
+
import { SvelteComponent } from "svelte";
|
|
27
|
+
declare const __propDef: {
|
|
28
|
+
props: {
|
|
29
|
+
[x: string]: any;
|
|
30
|
+
class?: string;
|
|
31
|
+
selected?: boolean;
|
|
32
|
+
};
|
|
33
|
+
events: {
|
|
34
|
+
click: MouseEvent;
|
|
35
|
+
select: Event;
|
|
36
|
+
change: Event;
|
|
37
|
+
} & {
|
|
38
|
+
[evt: string]: CustomEvent<any>;
|
|
39
|
+
};
|
|
40
|
+
slots: {
|
|
41
|
+
default: {};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
The interactive version of `<Table>`.
|
|
4
|
+
@see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table
|
|
5
|
+
@see https://w3c.github.io/aria/#grid
|
|
6
|
+
-->
|
|
7
|
+
<script>
|
|
8
|
+
import { activateGroup } from '../../services/group';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The `class` attribute on the wrapper element.
|
|
12
|
+
* @type {string}
|
|
13
|
+
*/
|
|
14
|
+
let className = '';
|
|
15
|
+
export { className as class };
|
|
16
|
+
/**
|
|
17
|
+
* Whether to allow selecting more than one `<GridRow>` and/or `<GridCell>`. An alias of the
|
|
18
|
+
* `aria-multiselectable` attribute.
|
|
19
|
+
* @type {boolean}
|
|
20
|
+
*/
|
|
21
|
+
export let multiple = false;
|
|
22
|
+
|
|
23
|
+
/** @type {HTMLElement?} */
|
|
24
|
+
export let element = undefined;
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<div
|
|
28
|
+
role="grid"
|
|
29
|
+
class="sui grid {className}"
|
|
30
|
+
aria-multiselectable={multiple}
|
|
31
|
+
{...$$restProps}
|
|
32
|
+
bind:this={element}
|
|
33
|
+
use:activateGroup
|
|
34
|
+
on:change
|
|
35
|
+
>
|
|
36
|
+
<slot />
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<style>.grid {
|
|
40
|
+
display: table;
|
|
41
|
+
margin: var(--sui-focus-ring-width);
|
|
42
|
+
width: calc(100% - var(--sui-focus-ring-width) * 2);
|
|
43
|
+
}
|
|
44
|
+
.grid:global(.data) {
|
|
45
|
+
border-collapse: collapse;
|
|
46
|
+
}
|
|
47
|
+
.grid:global(.data) :global(.grid-col-header),
|
|
48
|
+
.grid:global(.data) :global(.grid-row-header),
|
|
49
|
+
.grid:global(.data) :global(.grid-cell) {
|
|
50
|
+
border: 1px solid var(--sui-secondary-border-color);
|
|
51
|
+
padding: 8px 8px;
|
|
52
|
+
}</style>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} GridProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} GridEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} GridSlots */
|
|
4
|
+
/**
|
|
5
|
+
* The interactive version of `<Table>`.
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table
|
|
7
|
+
* @see https://w3c.github.io/aria/#grid
|
|
8
|
+
*/
|
|
9
|
+
export default class Grid extends SvelteComponent<{
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
class?: string;
|
|
12
|
+
multiple?: boolean;
|
|
13
|
+
element?: HTMLElement;
|
|
14
|
+
}, {
|
|
15
|
+
change: Event;
|
|
16
|
+
} & {
|
|
17
|
+
[evt: string]: CustomEvent<any>;
|
|
18
|
+
}, {
|
|
19
|
+
default: {};
|
|
20
|
+
}> {
|
|
21
|
+
}
|
|
22
|
+
export type GridProps = typeof __propDef.props;
|
|
23
|
+
export type GridEvents = typeof __propDef.events;
|
|
24
|
+
export type GridSlots = typeof __propDef.slots;
|
|
25
|
+
import { SvelteComponent } from "svelte";
|
|
26
|
+
declare const __propDef: {
|
|
27
|
+
props: {
|
|
28
|
+
[x: string]: any;
|
|
29
|
+
class?: string;
|
|
30
|
+
multiple?: boolean;
|
|
31
|
+
element?: HTMLElement | null;
|
|
32
|
+
};
|
|
33
|
+
events: {
|
|
34
|
+
change: Event;
|
|
35
|
+
} & {
|
|
36
|
+
[evt: string]: CustomEvent<any>;
|
|
37
|
+
};
|
|
38
|
+
slots: {
|
|
39
|
+
default: {};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
@@ -5,22 +5,21 @@
|
|
|
5
5
|
-->
|
|
6
6
|
<script>
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* The `class` attribute on the `span` element.
|
|
9
9
|
* @type {string}
|
|
10
10
|
*/
|
|
11
11
|
let className = '';
|
|
12
|
-
|
|
13
12
|
export { className as class };
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Icon name, e.g. `search`, `expand_more`, `close`, etc.
|
|
15
|
+
* @type {string}
|
|
16
|
+
*/
|
|
15
17
|
export let name = '';
|
|
16
|
-
|
|
17
|
-
export let label = '';
|
|
18
18
|
</script>
|
|
19
19
|
|
|
20
20
|
<span
|
|
21
21
|
class="sui icon material-symbols-outlined {className}"
|
|
22
|
-
aria-
|
|
23
|
-
aria-hidden={label ? undefined : true}
|
|
22
|
+
aria-hidden={!('aria-label' in $$restProps)}
|
|
24
23
|
{...$$restProps}
|
|
25
24
|
>
|
|
26
25
|
{name}
|
|
@@ -9,7 +9,6 @@ export default class Icon extends SvelteComponent<{
|
|
|
9
9
|
[x: string]: any;
|
|
10
10
|
class?: string;
|
|
11
11
|
name?: string;
|
|
12
|
-
label?: string;
|
|
13
12
|
}, {
|
|
14
13
|
[evt: string]: CustomEvent<any>;
|
|
15
14
|
}, {}> {
|
|
@@ -23,7 +22,6 @@ declare const __propDef: {
|
|
|
23
22
|
[x: string]: any;
|
|
24
23
|
class?: string;
|
|
25
24
|
name?: string;
|
|
26
|
-
label?: string;
|
|
27
25
|
};
|
|
28
26
|
events: {
|
|
29
27
|
[evt: string]: CustomEvent<any>;
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
</script>
|
|
49
49
|
|
|
50
50
|
<div
|
|
51
|
+
role="listbox"
|
|
51
52
|
class="sui listbox {className}"
|
|
52
53
|
tabindex={disabled ? -1 : 0}
|
|
53
|
-
role="listbox"
|
|
54
54
|
hidden={hidden || undefined}
|
|
55
55
|
aria-hidden={hidden}
|
|
56
56
|
aria-disabled={disabled}
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
on:click
|
|
64
64
|
on:change
|
|
65
65
|
>
|
|
66
|
-
<div class="inner" inert={disabled}>
|
|
66
|
+
<div role="none" class="inner" inert={disabled}>
|
|
67
67
|
<slot />
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<style>[role=listbox] {
|
|
72
72
|
display: flex;
|
|
73
73
|
flex-direction: column;
|
|
74
|
-
margin:
|
|
74
|
+
margin: var(--sui-focus-ring-width);
|
|
75
75
|
border-width: 1px;
|
|
76
76
|
border-color: var(--sui-listbox-border-color);
|
|
77
77
|
border-radius: var(--sui-listbox-border-radius);
|
|
@@ -34,22 +34,23 @@
|
|
|
34
34
|
</script>
|
|
35
35
|
|
|
36
36
|
<div
|
|
37
|
-
{id}
|
|
38
|
-
class="sui optgroup {className}"
|
|
39
37
|
role="group"
|
|
38
|
+
{id}
|
|
39
|
+
class="sui option-group {className}"
|
|
40
40
|
hidden={hidden || undefined}
|
|
41
41
|
aria-hidden={hidden}
|
|
42
42
|
aria-disabled={disabled}
|
|
43
43
|
aria-labelledby="{id}-label"
|
|
44
|
+
aria-roledescription="option group"
|
|
44
45
|
{...$$restProps}
|
|
45
46
|
>
|
|
46
|
-
<div id="{id}-label" class="label"
|
|
47
|
-
<div class="inner" inert={disabled}>
|
|
47
|
+
<div role="none" id="{id}-label" class="label">{label}</div>
|
|
48
|
+
<div role="none" class="inner" inert={disabled}>
|
|
48
49
|
<slot />
|
|
49
50
|
</div>
|
|
50
51
|
</div>
|
|
51
52
|
|
|
52
|
-
<style>.
|
|
53
|
+
<style>.option-group:not(:first-child) {
|
|
53
54
|
margin: 12px 0 0;
|
|
54
55
|
}
|
|
55
56
|
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
@see https://w3c.github.io/aria/#option
|
|
6
6
|
-->
|
|
7
7
|
<script>
|
|
8
|
-
import { onMount } from 'svelte';
|
|
9
8
|
import Button from '../button/button.svelte';
|
|
10
9
|
import Icon from '../icon/icon.svelte';
|
|
11
10
|
|
|
@@ -40,37 +39,12 @@
|
|
|
40
39
|
* @type {string | undefined}
|
|
41
40
|
*/
|
|
42
41
|
export let value = undefined;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Reference to the `Button` component.
|
|
46
|
-
* @type {Button | undefined}
|
|
47
|
-
*/
|
|
48
|
-
let buttonComponent;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Event listener for the `select` event fired in `group.js`.
|
|
52
|
-
* @param {CustomEvent} event `select` event.
|
|
53
|
-
*/
|
|
54
|
-
const listener = ({ type }) => {
|
|
55
|
-
selected = type === 'select';
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
onMount(() => {
|
|
59
|
-
buttonComponent.element.addEventListener('select', listener);
|
|
60
|
-
buttonComponent.element.addEventListener('unselect', listener);
|
|
61
|
-
|
|
62
|
-
return () => {
|
|
63
|
-
buttonComponent.element.removeEventListener('select', listener);
|
|
64
|
-
buttonComponent.element.removeEventListener('unselect', listener);
|
|
65
|
-
};
|
|
66
|
-
});
|
|
67
42
|
</script>
|
|
68
43
|
|
|
69
|
-
<div class="sui option {className}" hidden={hidden || undefined}>
|
|
44
|
+
<div role="none" class="sui option {className}" hidden={hidden || undefined}>
|
|
70
45
|
<Button
|
|
71
|
-
bind:this={buttonComponent}
|
|
72
|
-
tabindex="-1"
|
|
73
46
|
role="option"
|
|
47
|
+
tabindex="-1"
|
|
74
48
|
aria-selected={selected}
|
|
75
49
|
{label}
|
|
76
50
|
{value}
|
|
@@ -84,6 +58,10 @@
|
|
|
84
58
|
on:dragend
|
|
85
59
|
on:drop
|
|
86
60
|
on:select
|
|
61
|
+
on:change
|
|
62
|
+
on:change={(event) => {
|
|
63
|
+
selected = /** @type {CustomEvent} */ (event).detail.selected;
|
|
64
|
+
}}
|
|
87
65
|
>
|
|
88
66
|
{#if selected}
|
|
89
67
|
<Icon class="check" name="check" />
|
|
@@ -105,6 +83,7 @@
|
|
|
105
83
|
display: flex;
|
|
106
84
|
justify-content: space-between;
|
|
107
85
|
gap: 4px;
|
|
86
|
+
margin: 0 !important;
|
|
108
87
|
border-radius: var(--sui-option-border-radius);
|
|
109
88
|
padding: var(--sui-option-padding);
|
|
110
89
|
width: 100%;
|
|
@@ -21,6 +21,7 @@ export default class Option extends SvelteComponent<{
|
|
|
21
21
|
dragend: DragEvent;
|
|
22
22
|
drop: DragEvent;
|
|
23
23
|
select: Event;
|
|
24
|
+
change: Event;
|
|
24
25
|
} & {
|
|
25
26
|
[evt: string]: CustomEvent<any>;
|
|
26
27
|
}, {
|
|
@@ -54,6 +55,7 @@ declare const __propDef: {
|
|
|
54
55
|
dragend: DragEvent;
|
|
55
56
|
drop: DragEvent;
|
|
56
57
|
select: Event;
|
|
58
|
+
change: Event;
|
|
57
59
|
} & {
|
|
58
60
|
[evt: string]: CustomEvent<any>;
|
|
59
61
|
};
|