m3-svelte 3.6.0 → 4.0.0-beta.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/buttons/Button.svelte +142 -78
- package/package/buttons/Button.svelte.d.ts +17 -34
- package/package/buttons/ConnectedButtons.svelte +26 -0
- package/package/buttons/ConnectedButtons.svelte.d.ts +8 -0
- package/package/buttons/FAB.svelte +30 -15
- package/package/buttons/FAB.svelte.d.ts +14 -25
- package/package/containers/BottomSheet.svelte +33 -27
- package/package/containers/BottomSheet.svelte.d.ts +7 -21
- package/package/containers/Card.svelte +45 -14
- package/package/containers/Card.svelte.d.ts +10 -30
- package/package/containers/Dialog.svelte +46 -32
- package/package/containers/Dialog.svelte.d.ts +9 -34
- package/package/containers/ListItem.svelte +78 -14
- package/package/containers/ListItem.svelte.d.ts +14 -25
- package/package/containers/Menu.svelte +6 -3
- package/package/containers/Menu.svelte.d.ts +6 -28
- package/package/containers/MenuItem.svelte +15 -5
- package/package/containers/MenuItem.svelte.d.ts +7 -29
- package/package/containers/Snackbar.svelte +35 -37
- package/package/containers/Snackbar.svelte.d.ts +7 -22
- package/package/containers/SnackbarItem.svelte +6 -6
- package/package/containers/SnackbarItem.svelte.d.ts +6 -29
- package/package/containers/StandardSideSheet.svelte +14 -8
- package/package/containers/StandardSideSheet.svelte.d.ts +7 -30
- package/package/forms/Checkbox.svelte +19 -4
- package/package/forms/Checkbox.svelte.d.ts +6 -29
- package/package/forms/Chip.svelte +41 -29
- package/package/forms/Chip.svelte.d.ts +18 -41
- package/package/forms/CircularProgress.svelte +4 -6
- package/package/forms/CircularProgress.svelte.d.ts +4 -20
- package/package/forms/CircularProgressIndeterminate.svelte +3 -4
- package/package/forms/CircularProgressIndeterminate.svelte.d.ts +2 -20
- package/package/forms/DatePickerDocked.svelte +52 -35
- package/package/forms/DatePickerDocked.svelte.d.ts +6 -22
- package/package/forms/LinearProgress.svelte +10 -5
- package/package/forms/LinearProgress.svelte.d.ts +4 -20
- package/package/forms/LinearProgressIndeterminate.svelte +4 -3
- package/package/forms/LinearProgressIndeterminate.svelte.d.ts +2 -20
- package/package/forms/RadioAnim1.svelte +10 -4
- package/package/forms/RadioAnim1.svelte.d.ts +6 -29
- package/package/forms/RadioAnim2.svelte +10 -4
- package/package/forms/RadioAnim2.svelte.d.ts +6 -29
- package/package/forms/RadioAnim3.svelte +10 -4
- package/package/forms/RadioAnim3.svelte.d.ts +6 -29
- package/package/forms/Slider.svelte +32 -26
- package/package/forms/Slider.svelte.d.ts +5 -21
- package/package/forms/SliderTicks.svelte +40 -33
- package/package/forms/SliderTicks.svelte.d.ts +5 -21
- package/package/forms/Switch.svelte +23 -21
- package/package/forms/Switch.svelte.d.ts +5 -22
- package/package/forms/TextField.svelte +36 -19
- package/package/forms/TextField.svelte.d.ts +14 -27
- package/package/forms/TextFieldMultiline.svelte +21 -21
- package/package/forms/TextFieldMultiline.svelte.d.ts +6 -23
- package/package/forms/TextFieldOutlined.svelte +36 -18
- package/package/forms/TextFieldOutlined.svelte.d.ts +14 -26
- package/package/forms/TextFieldOutlinedMultiline.svelte +21 -21
- package/package/forms/TextFieldOutlinedMultiline.svelte.d.ts +6 -23
- package/package/forms/_picker/Actions.svelte +16 -18
- package/package/forms/_picker/Actions.svelte.d.ts +7 -22
- package/package/forms/_picker/CalendarPicker.svelte +14 -4
- package/package/forms/_picker/CalendarPicker.svelte.d.ts +4 -18
- package/package/forms/_picker/FocusPicker.svelte +8 -9
- package/package/forms/_picker/FocusPicker.svelte.d.ts +5 -21
- package/package/forms/_picker/Header.svelte +20 -9
- package/package/forms/_picker/Header.svelte.d.ts +4 -18
- package/package/forms/_picker/Item.svelte +15 -6
- package/package/forms/_picker/Item.svelte.d.ts +8 -23
- package/package/index.d.ts +3 -9
- package/package/index.js +1 -8
- package/package/misc/Layer.svelte +7 -3
- package/package/misc/Layer.svelte.d.ts +5 -17
- package/package/misc/StyleFromScheme.svelte +6 -2
- package/package/misc/StyleFromScheme.svelte.d.ts +5 -19
- package/package/misc/_icon.svelte +12 -5
- package/package/misc/_icon.svelte.d.ts +5 -19
- package/package/misc/_ripple.svelte +11 -3
- package/package/misc/_ripple.svelte.d.ts +5 -17
- package/package/misc/_ripplesimple.svelte +4 -0
- package/package/misc/_ripplesimple.svelte.d.ts +5 -25
- package/package/misc/_styling.svelte +7 -3
- package/package/misc/_styling.svelte.d.ts +5 -19
- package/package/misc/animation.js +1 -5
- package/package/misc/easing.js +1 -28
- package/package/misc/recommended-styles.css +2 -2
- package/package/misc/styles.css +135 -107
- package/package/misc/utils.d.ts +1 -0
- package/package/misc/utils.js +5 -0
- package/package/nav/NavDrawer.svelte +9 -5
- package/package/nav/NavDrawer.svelte.d.ts +6 -30
- package/package/nav/NavDrawerButton.svelte +22 -12
- package/package/nav/NavDrawerButton.svelte.d.ts +8 -31
- package/package/nav/NavDrawerLink.svelte +21 -12
- package/package/nav/NavDrawerLink.svelte.d.ts +8 -30
- package/package/nav/NavList.svelte +13 -9
- package/package/nav/NavList.svelte.d.ts +7 -31
- package/package/nav/NavListButton.svelte +26 -22
- package/package/nav/NavListButton.svelte.d.ts +9 -33
- package/package/nav/NavListLink.svelte +26 -23
- package/package/nav/NavListLink.svelte.d.ts +9 -32
- package/package/nav/Tabs.svelte +20 -19
- package/package/nav/Tabs.svelte.d.ts +5 -22
- package/package/nav/TabsLink.svelte +22 -18
- package/package/nav/TabsLink.svelte.d.ts +5 -22
- package/package/nav/VariableTabs.svelte +25 -20
- package/package/nav/VariableTabs.svelte.d.ts +5 -22
- package/package/nav/VariableTabsLink.svelte +29 -22
- package/package/nav/VariableTabsLink.svelte.d.ts +5 -22
- package/package/utils/ChipChooser.svelte +10 -4
- package/package/utils/ChipChooser.svelte.d.ts +5 -19
- package/package/utils/DateField.svelte +24 -18
- package/package/utils/DateField.svelte.d.ts +4 -19
- package/package/utils/Divider.svelte +5 -1
- package/package/utils/Divider.svelte.d.ts +4 -18
- package/package.json +44 -43
- package/package/buttons/ButtonLink.svelte +0 -116
- package/package/buttons/ButtonLink.svelte.d.ts +0 -34
- package/package/buttons/SegmentedButtonContainer.svelte +0 -27
- package/package/buttons/SegmentedButtonContainer.svelte.d.ts +0 -31
- package/package/buttons/SegmentedButtonItem.svelte +0 -119
- package/package/buttons/SegmentedButtonItem.svelte.d.ts +0 -34
- package/package/containers/CardClickable.svelte +0 -78
- package/package/containers/CardClickable.svelte.d.ts +0 -34
- package/package/containers/ListItemButton.svelte +0 -86
- package/package/containers/ListItemButton.svelte.d.ts +0 -31
- package/package/containers/ListItemLabel.svelte +0 -82
- package/package/containers/ListItemLabel.svelte.d.ts +0 -29
- package/package/containers/SnackbarAnim.svelte +0 -127
- package/package/containers/SnackbarAnim.svelte.d.ts +0 -33
- package/package/forms/CheckboxAnim.svelte +0 -116
- package/package/forms/CheckboxAnim.svelte.d.ts +0 -31
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
2
3
|
import type { HTMLAttributes, HTMLButtonAttributes } from "svelte/elements";
|
|
4
|
+
import Layer from "../misc/Layer.svelte";
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
type ActionProps =
|
|
7
|
+
| ({ click: () => void } & HTMLButtonAttributes)
|
|
8
|
+
| HTMLAttributes<HTMLDivElement>;
|
|
9
|
+
|
|
10
|
+
let props: {
|
|
11
|
+
variant: "elevated" | "filled" | "outlined";
|
|
12
|
+
children: Snippet;
|
|
13
|
+
} & ActionProps = $props();
|
|
7
14
|
</script>
|
|
8
15
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
{#if "click" in props}
|
|
17
|
+
{@const { variant, click, children, ...extra } = props}
|
|
18
|
+
<button class="m3-container {variant}" onclick={click} {...extra}>
|
|
19
|
+
<Layer />
|
|
20
|
+
{@render children()}
|
|
21
|
+
</button>
|
|
22
|
+
{:else}
|
|
23
|
+
{@const { variant, children, ...extra } = props}
|
|
24
|
+
<div class="m3-container {variant}" {...extra}>
|
|
25
|
+
{@render children()}
|
|
26
|
+
</div>
|
|
27
|
+
{/if}
|
|
12
28
|
|
|
13
29
|
<style>
|
|
14
30
|
:root {
|
|
@@ -16,27 +32,42 @@
|
|
|
16
32
|
}
|
|
17
33
|
|
|
18
34
|
.m3-container {
|
|
35
|
+
display: flex;
|
|
19
36
|
flex-direction: column;
|
|
20
37
|
position: relative;
|
|
21
38
|
padding: 1rem; /* protip: use margin: -1rem (adjust as needed) to make images stretch to the end */
|
|
39
|
+
border: none;
|
|
22
40
|
border-radius: var(--m3-card-shape);
|
|
23
41
|
background-color: rgb(var(--m3-scheme-surface));
|
|
24
42
|
color: rgb(var(--m3-scheme-on-surface));
|
|
25
43
|
}
|
|
26
44
|
|
|
27
|
-
|
|
28
|
-
|
|
45
|
+
button {
|
|
46
|
+
text-align: inherit;
|
|
47
|
+
font: inherit;
|
|
48
|
+
letter-spacing: inherit;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
-webkit-tap-highlight-color: transparent;
|
|
29
51
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
@media (hover: hover) {
|
|
53
|
+
button:hover {
|
|
54
|
+
box-shadow: var(--m3-util-elevation-1);
|
|
55
|
+
}
|
|
56
|
+
button.type-elevated:hover {
|
|
57
|
+
box-shadow: var(--m3-util-elevation-2);
|
|
58
|
+
}
|
|
35
59
|
}
|
|
36
60
|
|
|
37
|
-
.
|
|
61
|
+
.elevated {
|
|
62
|
+
background-color: rgb(var(--m3-scheme-surface-container-low));
|
|
38
63
|
box-shadow: var(--m3-util-elevation-1);
|
|
39
64
|
}
|
|
65
|
+
.filled {
|
|
66
|
+
background-color: rgb(var(--m3-scheme-surface-container-highest));
|
|
67
|
+
}
|
|
68
|
+
.outlined {
|
|
69
|
+
border: solid 1px rgb(var(--m3-scheme-outline-variant));
|
|
70
|
+
}
|
|
40
71
|
|
|
41
72
|
@media print, (forced-colors: active) {
|
|
42
73
|
.type-filled {
|
|
@@ -1,32 +1,12 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
1
2
|
import type { HTMLAttributes, HTMLButtonAttributes } from "svelte/elements";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
16
|
-
default: any;
|
|
17
|
-
} ? Props extends Record<string, never> ? any : {
|
|
18
|
-
children?: any;
|
|
19
|
-
} : {});
|
|
20
|
-
declare const Card: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
21
|
-
display?: string;
|
|
22
|
-
extraOptions?: HTMLAttributes<HTMLDivElement> & HTMLButtonAttributes;
|
|
23
|
-
type: "elevated" | "filled" | "outlined";
|
|
24
|
-
}, {
|
|
25
|
-
default: {};
|
|
26
|
-
}>, {
|
|
27
|
-
[evt: string]: CustomEvent<any>;
|
|
28
|
-
}, {
|
|
29
|
-
default: {};
|
|
30
|
-
}, {}, string>;
|
|
31
|
-
type Card = InstanceType<typeof Card>;
|
|
3
|
+
type ActionProps = ({
|
|
4
|
+
click: () => void;
|
|
5
|
+
} & HTMLButtonAttributes) | HTMLAttributes<HTMLDivElement>;
|
|
6
|
+
type $$ComponentProps = {
|
|
7
|
+
variant: "elevated" | "filled" | "outlined";
|
|
8
|
+
children: Snippet;
|
|
9
|
+
} & ActionProps;
|
|
10
|
+
declare const Card: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
11
|
+
type Card = ReturnType<typeof Card>;
|
|
32
12
|
export default Card;
|
|
@@ -1,45 +1,58 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import Icon from "../misc/_icon.svelte";
|
|
3
2
|
import type { IconifyIcon } from "@iconify/types";
|
|
4
|
-
import { createEventDispatcher } from "svelte";
|
|
5
3
|
import type { HTMLDialogAttributes } from "svelte/elements";
|
|
4
|
+
import type { Snippet } from "svelte";
|
|
5
|
+
import Icon from "../misc/_icon.svelte";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
let {
|
|
8
|
+
icon,
|
|
9
|
+
headline,
|
|
10
|
+
buttons,
|
|
11
|
+
children,
|
|
12
|
+
open = $bindable(),
|
|
13
|
+
closeOnEsc = true,
|
|
14
|
+
closeOnClick = true,
|
|
15
|
+
onEsc,
|
|
16
|
+
onClick,
|
|
17
|
+
...extra
|
|
18
|
+
}: {
|
|
19
|
+
icon?: IconifyIcon | undefined;
|
|
20
|
+
headline: string;
|
|
21
|
+
buttons: Snippet;
|
|
22
|
+
children: Snippet;
|
|
23
|
+
open: boolean;
|
|
24
|
+
closeOnEsc?: boolean;
|
|
25
|
+
closeOnClick?: boolean;
|
|
26
|
+
onEsc?: () => void;
|
|
27
|
+
onClick?: () => void;
|
|
28
|
+
} & HTMLDialogAttributes = $props();
|
|
14
29
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (!dialog) break $;
|
|
30
|
+
let dialog: HTMLDialogElement | undefined = $state();
|
|
31
|
+
$effect(() => {
|
|
32
|
+
if (!dialog) return;
|
|
19
33
|
if (open) dialog.showModal();
|
|
20
34
|
else dialog.close();
|
|
21
|
-
}
|
|
35
|
+
});
|
|
22
36
|
</script>
|
|
23
37
|
|
|
24
|
-
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
|
|
25
38
|
<dialog
|
|
26
|
-
|
|
39
|
+
oncancel={(e) => {
|
|
27
40
|
if (closeOnEsc) {
|
|
28
|
-
|
|
41
|
+
onEsc?.();
|
|
29
42
|
open = false;
|
|
30
43
|
} else {
|
|
31
44
|
e.preventDefault();
|
|
32
45
|
}
|
|
33
46
|
}}
|
|
34
|
-
|
|
47
|
+
onclick={(e) => {
|
|
48
|
+
if (e.target != e.currentTarget) return;
|
|
35
49
|
if (closeOnClick) {
|
|
36
|
-
|
|
50
|
+
onClick?.();
|
|
37
51
|
open = false;
|
|
38
52
|
}
|
|
39
53
|
}}
|
|
40
54
|
bind:this={dialog}
|
|
41
|
-
|
|
42
|
-
{...extraOptions}
|
|
55
|
+
{...extra}
|
|
43
56
|
>
|
|
44
57
|
<div class="m3-container">
|
|
45
58
|
{#if icon}
|
|
@@ -47,10 +60,10 @@
|
|
|
47
60
|
{/if}
|
|
48
61
|
<p class="headline m3-font-headline-small" class:center={icon}>{headline}</p>
|
|
49
62
|
<div class="content m3-font-body-medium">
|
|
50
|
-
|
|
63
|
+
{@render children()}
|
|
51
64
|
</div>
|
|
52
65
|
<div class="buttons">
|
|
53
|
-
|
|
66
|
+
{@render buttons()}
|
|
54
67
|
</div>
|
|
55
68
|
</div>
|
|
56
69
|
</dialog>
|
|
@@ -60,6 +73,7 @@
|
|
|
60
73
|
--m3-dialog-shape: var(--m3-util-rounding-extra-large);
|
|
61
74
|
}
|
|
62
75
|
dialog {
|
|
76
|
+
display: flex;
|
|
63
77
|
background-color: rgb(var(--m3-scheme-surface-container-high));
|
|
64
78
|
border: none;
|
|
65
79
|
border-radius: var(--m3-dialog-shape);
|
|
@@ -109,32 +123,32 @@
|
|
|
109
123
|
visibility: hidden;
|
|
110
124
|
pointer-events: none;
|
|
111
125
|
transition:
|
|
112
|
-
opacity
|
|
113
|
-
visibility
|
|
126
|
+
opacity var(--m3-util-easing-fast),
|
|
127
|
+
visibility var(--m3-util-easing-fast);
|
|
114
128
|
}
|
|
115
129
|
dialog[open] {
|
|
116
130
|
opacity: 1;
|
|
117
131
|
visibility: visible;
|
|
118
132
|
pointer-events: auto;
|
|
119
133
|
animation:
|
|
120
|
-
dialogIn
|
|
121
|
-
opacity
|
|
134
|
+
dialogIn var(--m3-util-curve-decel) 500ms,
|
|
135
|
+
opacity var(--m3-util-curve-decel) 100ms both;
|
|
122
136
|
}
|
|
123
137
|
dialog[open] .headline {
|
|
124
|
-
animation: opacity
|
|
138
|
+
animation: opacity var(--m3-util-easing-fast);
|
|
125
139
|
}
|
|
126
140
|
dialog[open] .content {
|
|
127
|
-
animation: opacity
|
|
141
|
+
animation: opacity var(--m3-util-easing-fast) 50ms both;
|
|
128
142
|
}
|
|
129
143
|
dialog[open] .buttons {
|
|
130
144
|
position: relative;
|
|
131
145
|
animation:
|
|
132
|
-
buttonsIn
|
|
133
|
-
opacity
|
|
146
|
+
buttonsIn var(--m3-util-curve-decel) 500ms,
|
|
147
|
+
opacity var(--m3-util-easing-fast) 100ms both;
|
|
134
148
|
}
|
|
135
149
|
dialog::backdrop {
|
|
136
150
|
background-color: rgb(var(--m3-scheme-scrim) / 0.3);
|
|
137
|
-
animation: opacity
|
|
151
|
+
animation: opacity var(--m3-util-curve-decel) 500ms;
|
|
138
152
|
}
|
|
139
153
|
@keyframes dialogIn {
|
|
140
154
|
0% {
|
|
@@ -1,42 +1,17 @@
|
|
|
1
1
|
import type { IconifyIcon } from "@iconify/types";
|
|
2
2
|
import type { HTMLDialogAttributes } from "svelte/elements";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
$$bindings?: Bindings;
|
|
6
|
-
} & Exports;
|
|
7
|
-
(internal: unknown, props: Props & {
|
|
8
|
-
$$events?: Events;
|
|
9
|
-
$$slots?: Slots;
|
|
10
|
-
}): Exports & {
|
|
11
|
-
$set?: any;
|
|
12
|
-
$on?: any;
|
|
13
|
-
};
|
|
14
|
-
z_$$bindings?: Bindings;
|
|
15
|
-
}
|
|
16
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
17
|
-
default: any;
|
|
18
|
-
} ? Props extends Record<string, never> ? any : {
|
|
19
|
-
children?: any;
|
|
20
|
-
} : {});
|
|
21
|
-
declare const Dialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
22
|
-
display?: string;
|
|
23
|
-
extraOptions?: HTMLDialogAttributes;
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
|
+
type $$ComponentProps = {
|
|
24
5
|
icon?: IconifyIcon | undefined;
|
|
25
6
|
headline: string;
|
|
7
|
+
buttons: Snippet;
|
|
8
|
+
children: Snippet;
|
|
26
9
|
open: boolean;
|
|
27
10
|
closeOnEsc?: boolean;
|
|
28
11
|
closeOnClick?: boolean;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
closedByClick: CustomEvent<any>;
|
|
35
|
-
} & {
|
|
36
|
-
[evt: string]: CustomEvent<any>;
|
|
37
|
-
}, {
|
|
38
|
-
default: {};
|
|
39
|
-
buttons: {};
|
|
40
|
-
}, {}, string>;
|
|
41
|
-
type Dialog = InstanceType<typeof Dialog>;
|
|
12
|
+
onEsc?: () => void;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
} & HTMLDialogAttributes;
|
|
15
|
+
declare const Dialog: import("svelte").Component<$$ComponentProps, {}, "open">;
|
|
16
|
+
type Dialog = ReturnType<typeof Dialog>;
|
|
42
17
|
export default Dialog;
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type {
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { HTMLAttributes, HTMLButtonAttributes, HTMLLabelAttributes } from "svelte/elements";
|
|
4
|
+
import Layer from "../misc/Layer.svelte";
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
type ActionProps =
|
|
7
|
+
| HTMLAttributes<HTMLDivElement>
|
|
8
|
+
| ({ click: () => void } & HTMLButtonAttributes)
|
|
9
|
+
| ({ label: true } & HTMLLabelAttributes);
|
|
10
|
+
|
|
11
|
+
let props: {
|
|
12
|
+
leading?: Snippet;
|
|
13
|
+
overline?: string;
|
|
14
|
+
headline?: string;
|
|
15
|
+
supporting?: string;
|
|
16
|
+
trailing?: Snippet;
|
|
17
|
+
lines?: number;
|
|
18
|
+
} & ActionProps = $props();
|
|
19
|
+
let _lines = $derived(
|
|
20
|
+
props.lines ||
|
|
21
|
+
(props.overline && props.supporting ? 3 : props.overline || props.supporting ? 2 : 1),
|
|
22
|
+
);
|
|
11
23
|
</script>
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
{#snippet content(
|
|
26
|
+
leading: Snippet | undefined,
|
|
27
|
+
overline: string,
|
|
28
|
+
headline: string,
|
|
29
|
+
supporting: string,
|
|
30
|
+
trailing: Snippet | undefined,
|
|
31
|
+
)}
|
|
32
|
+
{#if leading}
|
|
15
33
|
<div class="leading">
|
|
16
|
-
|
|
34
|
+
{@render leading()}
|
|
17
35
|
</div>
|
|
18
36
|
{/if}
|
|
19
37
|
<div class="body">
|
|
@@ -25,18 +43,64 @@
|
|
|
25
43
|
<p class="supporting m3-font-body-medium">{supporting}</p>
|
|
26
44
|
{/if}
|
|
27
45
|
</div>
|
|
28
|
-
{#if
|
|
46
|
+
{#if trailing}
|
|
29
47
|
<div class="trailing m3-font-label-small">
|
|
30
|
-
|
|
48
|
+
{@render trailing()}
|
|
31
49
|
</div>
|
|
32
50
|
{/if}
|
|
33
|
-
|
|
51
|
+
{/snippet}
|
|
52
|
+
|
|
53
|
+
{#if "label" in props}
|
|
54
|
+
{@const {
|
|
55
|
+
leading,
|
|
56
|
+
overline = "",
|
|
57
|
+
headline = "",
|
|
58
|
+
supporting = "",
|
|
59
|
+
trailing,
|
|
60
|
+
label: _,
|
|
61
|
+
...extra
|
|
62
|
+
} = props}
|
|
63
|
+
<label class="m3-container lines-{_lines}" {...extra}>
|
|
64
|
+
<Layer />
|
|
65
|
+
{@render content(leading, overline, headline, supporting, trailing)}
|
|
66
|
+
</label>
|
|
67
|
+
{:else if "click" in props}
|
|
68
|
+
{@const {
|
|
69
|
+
leading,
|
|
70
|
+
overline = "",
|
|
71
|
+
headline = "",
|
|
72
|
+
supporting = "",
|
|
73
|
+
trailing,
|
|
74
|
+
click,
|
|
75
|
+
...extra
|
|
76
|
+
} = props}
|
|
77
|
+
<button class="m3-container lines-{_lines}" onclick={click} {...extra}>
|
|
78
|
+
<Layer />
|
|
79
|
+
{@render content(leading, overline, headline, supporting, trailing)}
|
|
80
|
+
</button>
|
|
81
|
+
{:else}
|
|
82
|
+
{@const { leading, overline = "", headline = "", supporting = "", trailing, ...extra } = props}
|
|
83
|
+
<div class="m3-container lines-{_lines}" {...extra}>
|
|
84
|
+
{@render content(leading, overline, headline, supporting, trailing)}
|
|
85
|
+
</div>
|
|
86
|
+
{/if}
|
|
34
87
|
|
|
35
88
|
<style>
|
|
36
89
|
.m3-container {
|
|
90
|
+
display: flex;
|
|
37
91
|
padding: 0.5rem 1.5rem 0.5rem 1rem;
|
|
38
92
|
align-items: center;
|
|
39
93
|
gap: 1rem;
|
|
94
|
+
|
|
95
|
+
text-align: inherit;
|
|
96
|
+
border: none;
|
|
97
|
+
position: relative;
|
|
98
|
+
background: transparent;
|
|
99
|
+
-webkit-tap-highlight-color: transparent;
|
|
100
|
+
}
|
|
101
|
+
button.m3-container,
|
|
102
|
+
label.m3-container {
|
|
103
|
+
cursor: pointer;
|
|
40
104
|
}
|
|
41
105
|
.lines-1 {
|
|
42
106
|
height: 3.5rem;
|
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const ListItem: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
-
display?: string;
|
|
17
|
-
extraOptions?: HTMLAttributes<HTMLDivElement>;
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import type { HTMLAttributes, HTMLButtonAttributes, HTMLLabelAttributes } from "svelte/elements";
|
|
3
|
+
type ActionProps = HTMLAttributes<HTMLDivElement> | ({
|
|
4
|
+
click: () => void;
|
|
5
|
+
} & HTMLButtonAttributes) | ({
|
|
6
|
+
label: true;
|
|
7
|
+
} & HTMLLabelAttributes);
|
|
8
|
+
type $$ComponentProps = {
|
|
9
|
+
leading?: Snippet;
|
|
18
10
|
overline?: string;
|
|
19
11
|
headline?: string;
|
|
20
12
|
supporting?: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
trailing: {};
|
|
27
|
-
}, {}, string>;
|
|
28
|
-
type ListItem = InstanceType<typeof ListItem>;
|
|
13
|
+
trailing?: Snippet;
|
|
14
|
+
lines?: number;
|
|
15
|
+
} & ActionProps;
|
|
16
|
+
declare const ListItem: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
17
|
+
type ListItem = ReturnType<typeof ListItem>;
|
|
29
18
|
export default ListItem;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
|
|
4
|
+
let { children }: { children: Snippet } = $props();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
5
|
-
<div class="m3-container"
|
|
6
|
-
|
|
7
|
+
<div class="m3-container">
|
|
8
|
+
{@render children()}
|
|
7
9
|
</div>
|
|
8
10
|
|
|
9
11
|
<style>
|
|
@@ -11,6 +13,7 @@
|
|
|
11
13
|
--m3-menu-shape: var(--m3-util-rounding-extra-small);
|
|
12
14
|
}
|
|
13
15
|
.m3-container {
|
|
16
|
+
display: flex;
|
|
14
17
|
position: relative;
|
|
15
18
|
overflow: hidden;
|
|
16
19
|
flex-direction: column;
|
|
@@ -1,29 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
15
|
-
default: any;
|
|
16
|
-
} ? Props extends Record<string, never> ? any : {
|
|
17
|
-
children?: any;
|
|
18
|
-
} : {});
|
|
19
|
-
declare const Menu: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
-
display?: string;
|
|
21
|
-
}, {
|
|
22
|
-
default: {};
|
|
23
|
-
}>, {
|
|
24
|
-
[evt: string]: CustomEvent<any>;
|
|
25
|
-
}, {
|
|
26
|
-
default: {};
|
|
27
|
-
}, {}, string>;
|
|
28
|
-
type Menu = InstanceType<typeof Menu>;
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
children: Snippet;
|
|
4
|
+
};
|
|
5
|
+
declare const Menu: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type Menu = ReturnType<typeof Menu>;
|
|
29
7
|
export default Menu;
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { IconifyIcon } from "@iconify/types";
|
|
2
4
|
import Icon from "../misc/_icon.svelte";
|
|
3
5
|
import Layer from "../misc/Layer.svelte";
|
|
4
|
-
import type { IconifyIcon } from "@iconify/types";
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
let {
|
|
8
|
+
icon,
|
|
9
|
+
disabled = false,
|
|
10
|
+
click,
|
|
11
|
+
children,
|
|
12
|
+
}: {
|
|
13
|
+
icon?: IconifyIcon | "space" | undefined;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
click: () => void;
|
|
16
|
+
children: Snippet;
|
|
17
|
+
} = $props();
|
|
8
18
|
</script>
|
|
9
19
|
|
|
10
|
-
<button class="item m3-font-label-large" {disabled}
|
|
20
|
+
<button class="item m3-font-label-large" {disabled} onclick={click}>
|
|
11
21
|
<Layer />
|
|
12
22
|
{#if icon == "space"}
|
|
13
23
|
<span class="icon"></span>
|
|
@@ -16,7 +26,7 @@
|
|
|
16
26
|
<Icon {icon} />
|
|
17
27
|
</span>
|
|
18
28
|
{/if}
|
|
19
|
-
|
|
29
|
+
{@render children()}
|
|
20
30
|
</button>
|
|
21
31
|
|
|
22
32
|
<style>
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
1
2
|
import type { IconifyIcon } from "@iconify/types";
|
|
2
|
-
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
16
|
-
default: any;
|
|
17
|
-
} ? Props extends Record<string, never> ? any : {
|
|
18
|
-
children?: any;
|
|
19
|
-
} : {});
|
|
20
|
-
declare const MenuItem: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
3
|
+
type $$ComponentProps = {
|
|
21
4
|
icon?: IconifyIcon | "space" | undefined;
|
|
22
5
|
disabled?: boolean;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
[evt: string]: CustomEvent<any>;
|
|
29
|
-
}, {
|
|
30
|
-
default: {};
|
|
31
|
-
}, {}, string>;
|
|
32
|
-
type MenuItem = InstanceType<typeof MenuItem>;
|
|
6
|
+
click: () => void;
|
|
7
|
+
children: Snippet;
|
|
8
|
+
};
|
|
9
|
+
declare const MenuItem: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
10
|
+
type MenuItem = ReturnType<typeof MenuItem>;
|
|
33
11
|
export default MenuItem;
|