m3-svelte 3.6.1 → 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.
Files changed (130) hide show
  1. package/package/buttons/Button.svelte +142 -78
  2. package/package/buttons/Button.svelte.d.ts +17 -34
  3. package/package/buttons/ConnectedButtons.svelte +26 -0
  4. package/package/buttons/ConnectedButtons.svelte.d.ts +8 -0
  5. package/package/buttons/FAB.svelte +30 -15
  6. package/package/buttons/FAB.svelte.d.ts +14 -25
  7. package/package/containers/BottomSheet.svelte +33 -27
  8. package/package/containers/BottomSheet.svelte.d.ts +7 -21
  9. package/package/containers/Card.svelte +45 -14
  10. package/package/containers/Card.svelte.d.ts +10 -30
  11. package/package/containers/Dialog.svelte +46 -32
  12. package/package/containers/Dialog.svelte.d.ts +9 -34
  13. package/package/containers/ListItem.svelte +78 -14
  14. package/package/containers/ListItem.svelte.d.ts +14 -25
  15. package/package/containers/Menu.svelte +6 -3
  16. package/package/containers/Menu.svelte.d.ts +6 -28
  17. package/package/containers/MenuItem.svelte +15 -5
  18. package/package/containers/MenuItem.svelte.d.ts +7 -29
  19. package/package/containers/Snackbar.svelte +35 -37
  20. package/package/containers/Snackbar.svelte.d.ts +7 -22
  21. package/package/containers/SnackbarItem.svelte +6 -6
  22. package/package/containers/SnackbarItem.svelte.d.ts +6 -29
  23. package/package/containers/StandardSideSheet.svelte +14 -8
  24. package/package/containers/StandardSideSheet.svelte.d.ts +7 -30
  25. package/package/forms/Checkbox.svelte +19 -4
  26. package/package/forms/Checkbox.svelte.d.ts +6 -29
  27. package/package/forms/Chip.svelte +41 -29
  28. package/package/forms/Chip.svelte.d.ts +18 -41
  29. package/package/forms/CircularProgress.svelte +4 -6
  30. package/package/forms/CircularProgress.svelte.d.ts +4 -20
  31. package/package/forms/CircularProgressIndeterminate.svelte +3 -4
  32. package/package/forms/CircularProgressIndeterminate.svelte.d.ts +2 -20
  33. package/package/forms/DatePickerDocked.svelte +52 -35
  34. package/package/forms/DatePickerDocked.svelte.d.ts +6 -22
  35. package/package/forms/LinearProgress.svelte +10 -5
  36. package/package/forms/LinearProgress.svelte.d.ts +4 -20
  37. package/package/forms/LinearProgressIndeterminate.svelte +4 -3
  38. package/package/forms/LinearProgressIndeterminate.svelte.d.ts +2 -20
  39. package/package/forms/RadioAnim1.svelte +10 -4
  40. package/package/forms/RadioAnim1.svelte.d.ts +6 -29
  41. package/package/forms/RadioAnim2.svelte +10 -4
  42. package/package/forms/RadioAnim2.svelte.d.ts +6 -29
  43. package/package/forms/RadioAnim3.svelte +10 -4
  44. package/package/forms/RadioAnim3.svelte.d.ts +6 -29
  45. package/package/forms/Slider.svelte +32 -26
  46. package/package/forms/Slider.svelte.d.ts +5 -21
  47. package/package/forms/SliderTicks.svelte +40 -33
  48. package/package/forms/SliderTicks.svelte.d.ts +5 -21
  49. package/package/forms/Switch.svelte +23 -21
  50. package/package/forms/Switch.svelte.d.ts +5 -22
  51. package/package/forms/TextField.svelte +36 -19
  52. package/package/forms/TextField.svelte.d.ts +14 -27
  53. package/package/forms/TextFieldMultiline.svelte +21 -21
  54. package/package/forms/TextFieldMultiline.svelte.d.ts +6 -23
  55. package/package/forms/TextFieldOutlined.svelte +36 -18
  56. package/package/forms/TextFieldOutlined.svelte.d.ts +14 -26
  57. package/package/forms/TextFieldOutlinedMultiline.svelte +21 -21
  58. package/package/forms/TextFieldOutlinedMultiline.svelte.d.ts +6 -23
  59. package/package/forms/_picker/Actions.svelte +16 -18
  60. package/package/forms/_picker/Actions.svelte.d.ts +7 -22
  61. package/package/forms/_picker/CalendarPicker.svelte +14 -4
  62. package/package/forms/_picker/CalendarPicker.svelte.d.ts +4 -18
  63. package/package/forms/_picker/FocusPicker.svelte +8 -9
  64. package/package/forms/_picker/FocusPicker.svelte.d.ts +5 -21
  65. package/package/forms/_picker/Header.svelte +20 -9
  66. package/package/forms/_picker/Header.svelte.d.ts +4 -18
  67. package/package/forms/_picker/Item.svelte +15 -6
  68. package/package/forms/_picker/Item.svelte.d.ts +8 -23
  69. package/package/index.d.ts +3 -9
  70. package/package/index.js +1 -8
  71. package/package/misc/Layer.svelte +7 -3
  72. package/package/misc/Layer.svelte.d.ts +5 -17
  73. package/package/misc/StyleFromScheme.svelte +6 -2
  74. package/package/misc/StyleFromScheme.svelte.d.ts +5 -19
  75. package/package/misc/_icon.svelte +12 -5
  76. package/package/misc/_icon.svelte.d.ts +5 -19
  77. package/package/misc/_ripple.svelte +11 -3
  78. package/package/misc/_ripple.svelte.d.ts +5 -17
  79. package/package/misc/_ripplesimple.svelte +4 -0
  80. package/package/misc/_ripplesimple.svelte.d.ts +5 -25
  81. package/package/misc/_styling.svelte +7 -3
  82. package/package/misc/_styling.svelte.d.ts +5 -19
  83. package/package/misc/animation.js +1 -5
  84. package/package/misc/easing.js +1 -28
  85. package/package/misc/styles.css +135 -107
  86. package/package/misc/utils.d.ts +1 -0
  87. package/package/misc/utils.js +5 -0
  88. package/package/nav/NavDrawer.svelte +9 -5
  89. package/package/nav/NavDrawer.svelte.d.ts +6 -30
  90. package/package/nav/NavDrawerButton.svelte +22 -12
  91. package/package/nav/NavDrawerButton.svelte.d.ts +8 -31
  92. package/package/nav/NavDrawerLink.svelte +21 -12
  93. package/package/nav/NavDrawerLink.svelte.d.ts +8 -30
  94. package/package/nav/NavList.svelte +13 -9
  95. package/package/nav/NavList.svelte.d.ts +7 -31
  96. package/package/nav/NavListButton.svelte +26 -22
  97. package/package/nav/NavListButton.svelte.d.ts +9 -33
  98. package/package/nav/NavListLink.svelte +26 -23
  99. package/package/nav/NavListLink.svelte.d.ts +9 -32
  100. package/package/nav/Tabs.svelte +20 -19
  101. package/package/nav/Tabs.svelte.d.ts +5 -22
  102. package/package/nav/TabsLink.svelte +22 -18
  103. package/package/nav/TabsLink.svelte.d.ts +5 -22
  104. package/package/nav/VariableTabs.svelte +25 -20
  105. package/package/nav/VariableTabs.svelte.d.ts +5 -22
  106. package/package/nav/VariableTabsLink.svelte +29 -22
  107. package/package/nav/VariableTabsLink.svelte.d.ts +5 -22
  108. package/package/utils/ChipChooser.svelte +10 -4
  109. package/package/utils/ChipChooser.svelte.d.ts +5 -19
  110. package/package/utils/DateField.svelte +24 -18
  111. package/package/utils/DateField.svelte.d.ts +4 -19
  112. package/package/utils/Divider.svelte +5 -1
  113. package/package/utils/Divider.svelte.d.ts +4 -18
  114. package/package.json +44 -43
  115. package/package/buttons/ButtonLink.svelte +0 -116
  116. package/package/buttons/ButtonLink.svelte.d.ts +0 -34
  117. package/package/buttons/SegmentedButtonContainer.svelte +0 -27
  118. package/package/buttons/SegmentedButtonContainer.svelte.d.ts +0 -31
  119. package/package/buttons/SegmentedButtonItem.svelte +0 -119
  120. package/package/buttons/SegmentedButtonItem.svelte.d.ts +0 -34
  121. package/package/containers/CardClickable.svelte +0 -78
  122. package/package/containers/CardClickable.svelte.d.ts +0 -34
  123. package/package/containers/ListItemButton.svelte +0 -86
  124. package/package/containers/ListItemButton.svelte.d.ts +0 -31
  125. package/package/containers/ListItemLabel.svelte +0 -82
  126. package/package/containers/ListItemLabel.svelte.d.ts +0 -29
  127. package/package/containers/SnackbarAnim.svelte +0 -127
  128. package/package/containers/SnackbarAnim.svelte.d.ts +0 -33
  129. package/package/forms/CheckboxAnim.svelte +0 -116
  130. package/package/forms/CheckboxAnim.svelte.d.ts +0 -31
@@ -1,14 +1,14 @@
1
- <script context="module" lang="ts">
1
+ <script module lang="ts">
2
2
  export type SnackbarIn = {
3
3
  message: string;
4
4
  actions?: Record<string, () => void>;
5
5
  closable?: boolean;
6
- timeout?: number | null;
7
6
  /*
8
7
  timeout: undefined/unset -> 4s timeout
9
8
  timeout: null -> no timeout
10
9
  timeout: 2000 -> 2s timeout
11
10
  */
11
+ timeout?: number | null;
12
12
  };
13
13
  </script>
14
14
 
@@ -16,18 +16,14 @@
16
16
  import { onDestroy, type ComponentProps } from "svelte";
17
17
  import type { HTMLAttributes } from "svelte/elements";
18
18
  import { fade } from "svelte/transition";
19
- import Icon from "../misc/_icon.svelte";
20
19
  import iconX from "@ktibow/iconset-material-symbols/close";
20
+ import Icon from "../misc/_icon.svelte";
21
21
  import SnackbarItem from "./SnackbarItem.svelte";
22
- type SnackbarData = {
23
- message: string;
24
- actions: Record<string, () => void>;
25
- closable: boolean;
26
- timeout: number | null;
27
- };
28
22
 
29
- export let extraWrapperOptions: HTMLAttributes<HTMLDivElement> = {};
30
- export let extraOptions: ComponentProps<SnackbarItem> = {};
23
+ type SnackbarConfig = Omit<ComponentProps<typeof SnackbarItem>, "children">;
24
+
25
+ let { config = {}, ...extra }: { config?: SnackbarConfig } & HTMLAttributes<HTMLDivElement> =
26
+ $props();
31
27
  export const show = ({ message, actions = {}, closable = false, timeout = 4000 }: SnackbarIn) => {
32
28
  snackbar = { message, actions, closable, timeout };
33
29
  clearTimeout(timeoutId);
@@ -37,7 +33,7 @@
37
33
  }, timeout);
38
34
  };
39
35
 
40
- let snackbar: SnackbarData | undefined;
36
+ let snackbar: Required<SnackbarIn> | undefined = $state();
41
37
  let timeoutId: number;
42
38
  onDestroy(() => {
43
39
  clearTimeout(timeoutId);
@@ -45,31 +41,33 @@
45
41
  </script>
46
42
 
47
43
  {#if snackbar}
48
- <div class="holder" out:fade={{ duration: 200 }} {...extraWrapperOptions}>
49
- <SnackbarItem {...extraOptions}>
50
- <p class="m3-font-body-medium">{snackbar.message}</p>
51
- {#each Object.entries(snackbar.actions) as [key, action]}
52
- <button
53
- class="action m3-font-label-large"
54
- on:click={() => {
55
- snackbar = undefined;
56
- action();
57
- }}
58
- >
59
- {key}
60
- </button>
61
- {/each}
62
- {#if snackbar.closable}
63
- <button
64
- class="close"
65
- on:click={() => {
66
- snackbar = undefined;
67
- }}
68
- >
69
- <Icon icon={iconX} />
70
- </button>
71
- {/if}
72
- </SnackbarItem>
44
+ <div class="holder" out:fade={{ duration: 200 }} {...extra}>
45
+ {#key snackbar}
46
+ <SnackbarItem {...config}>
47
+ <p class="m3-font-body-medium">{snackbar.message}</p>
48
+ {#each Object.entries(snackbar.actions) as [key, action]}
49
+ <button
50
+ class="action m3-font-label-large"
51
+ onclick={() => {
52
+ snackbar = undefined;
53
+ action();
54
+ }}
55
+ >
56
+ {key}
57
+ </button>
58
+ {/each}
59
+ {#if snackbar.closable}
60
+ <button
61
+ class="close"
62
+ onclick={() => {
63
+ snackbar = undefined;
64
+ }}
65
+ >
66
+ <Icon icon={iconX} />
67
+ </button>
68
+ {/if}
69
+ </SnackbarItem>
70
+ {/key}
73
71
  </div>
74
72
  {/if}
75
73
 
@@ -7,27 +7,12 @@ export type SnackbarIn = {
7
7
  import { type ComponentProps } from "svelte";
8
8
  import type { HTMLAttributes } from "svelte/elements";
9
9
  import SnackbarItem from "./SnackbarItem.svelte";
10
- 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> {
11
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
12
- $$bindings?: Bindings;
13
- } & Exports;
14
- (internal: unknown, props: Props & {
15
- $$events?: Events;
16
- $$slots?: Slots;
17
- }): Exports & {
18
- $set?: any;
19
- $on?: any;
20
- };
21
- z_$$bindings?: Bindings;
22
- }
23
- declare const Snackbar: $$__sveltets_2_IsomorphicComponent<{
24
- extraWrapperOptions?: HTMLAttributes<HTMLDivElement>;
25
- extraOptions?: ComponentProps<SnackbarItem>;
26
- show?: ({ message, actions, closable, timeout }: SnackbarIn) => void;
27
- }, {
28
- [evt: string]: CustomEvent<any>;
29
- }, {}, {
10
+ type SnackbarConfig = Omit<ComponentProps<typeof SnackbarItem>, "children">;
11
+ type $$ComponentProps = {
12
+ config?: SnackbarConfig;
13
+ } & HTMLAttributes<HTMLDivElement>;
14
+ declare const Snackbar: import("svelte").Component<$$ComponentProps, {
30
15
  show: ({ message, actions, closable, timeout }: SnackbarIn) => void;
31
- }, string>;
32
- type Snackbar = InstanceType<typeof Snackbar>;
16
+ }, "">;
17
+ type Snackbar = ReturnType<typeof Snackbar>;
33
18
  export default Snackbar;
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLAttributes } from "svelte/elements";
3
4
 
4
- export let display = "flex";
5
- export let extraOptions: HTMLAttributes<HTMLDivElement> = {};
5
+ let { children, ...extra }: { children: Snippet } & HTMLAttributes<HTMLDivElement> = $props();
6
6
  </script>
7
7
 
8
- <div class="m3-container" style="display: {display};" {...extraOptions}>
9
- <slot />
8
+ <div class="m3-container" {...extra}>
9
+ {@render children()}
10
10
  </div>
11
11
 
12
12
  <style>
@@ -25,8 +25,8 @@
25
25
  background-color: rgb(var(--m3-scheme-inverse-surface));
26
26
  color: rgb(var(--m3-scheme-inverse-on-surface));
27
27
  animation:
28
- snackbarIn 500ms var(--m3-easing-decel),
29
- opacity 100ms var(--m3-easing-decel);
28
+ snackbarIn var(--m3-util-curve-decel) 500ms,
29
+ opacity var(--m3-util-curve-decel) 100ms;
30
30
  }
31
31
  /*@TODO: Fix animation with different shaping or something*/
32
32
  @keyframes snackbarIn {
@@ -1,31 +1,8 @@
1
+ import type { Snippet } from "svelte";
1
2
  import type { HTMLAttributes } from "svelte/elements";
2
- 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> {
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 SnackbarItem: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- display?: string;
22
- extraOptions?: HTMLAttributes<HTMLDivElement>;
23
- }, {
24
- default: {};
25
- }>, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {
28
- default: {};
29
- }, {}, string>;
30
- type SnackbarItem = InstanceType<typeof SnackbarItem>;
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ declare const SnackbarItem: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type SnackbarItem = ReturnType<typeof SnackbarItem>;
31
8
  export default SnackbarItem;
@@ -1,27 +1,33 @@
1
1
  <script lang="ts">
2
- import { createEventDispatcher } from "svelte";
2
+ import type { Snippet } from "svelte";
3
3
  import iconX from "@ktibow/iconset-material-symbols/close";
4
4
  import Button from "../buttons/Button.svelte";
5
5
  import Icon from "../misc/_icon.svelte";
6
6
 
7
- export let headline: string;
8
- export let display = "flex";
9
-
10
- const dispatch = createEventDispatcher();
7
+ let {
8
+ headline,
9
+ children,
10
+ close,
11
+ }: {
12
+ headline: string;
13
+ children: Snippet;
14
+ close: () => void;
15
+ } = $props();
11
16
  </script>
12
17
 
13
- <div class="m3-container" style="display: {display};">
18
+ <div class="m3-container">
14
19
  <div class="header">
15
20
  <span class="m3-font-title-large">{headline}</span>
16
- <Button type="text" iconType="full" on:click={() => dispatch("close")}>
21
+ <Button variant="text" iconType="full" click={close}>
17
22
  <Icon icon={iconX} />
18
23
  </Button>
19
24
  </div>
20
- <slot />
25
+ {@render children()}
21
26
  </div>
22
27
 
23
28
  <style>
24
29
  .m3-container {
30
+ display: flex;
25
31
  flex-direction: column;
26
32
  }
27
33
  .header {
@@ -1,32 +1,9 @@
1
- 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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
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 StandardSideSheet: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
20
3
  headline: string;
21
- display?: string;
22
- }, {
23
- default: {};
24
- }>, {
25
- close: CustomEvent<any>;
26
- } & {
27
- [evt: string]: CustomEvent<any>;
28
- }, {
29
- default: {};
30
- }, {}, string>;
31
- type StandardSideSheet = InstanceType<typeof StandardSideSheet>;
4
+ children: Snippet;
5
+ close: () => void;
6
+ };
7
+ declare const StandardSideSheet: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type StandardSideSheet = ReturnType<typeof StandardSideSheet>;
32
9
  export default StandardSideSheet;
@@ -1,14 +1,19 @@
1
1
  <script lang="ts">
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLAttributes } from "svelte/elements";
3
4
  import Layer from "../misc/Layer.svelte";
4
5
 
5
- export let display = "inline-flex";
6
- export let extraOptions: HTMLAttributes<HTMLDivElement> = {};
7
6
  // MUST BE WRAPPED IN A <label>
7
+ let {
8
+ children,
9
+ ...extra
10
+ }: {
11
+ children: Snippet;
12
+ } & HTMLAttributes<HTMLDivElement> = $props();
8
13
  </script>
9
14
 
10
- <div class="m3-container" style="display: {display};" {...extraOptions}>
11
- <slot />
15
+ <div class="m3-container" {...extra}>
16
+ {@render children()}
12
17
  <div class="layer-container">
13
18
  <Layer />
14
19
  <div class="checkbox-box"></div>
@@ -25,6 +30,7 @@
25
30
 
26
31
  <style>
27
32
  .m3-container {
33
+ display: inline-flex;
28
34
  position: relative;
29
35
  width: 1.125rem;
30
36
  height: 1.125rem;
@@ -60,6 +66,11 @@
60
66
  opacity: 0;
61
67
  pointer-events: none;
62
68
  transition: opacity 200ms;
69
+ path {
70
+ stroke-dasharray: 20.874 20.874;
71
+ stroke-dashoffset: 20.874;
72
+ transition: stroke-dashoffset 0ms 200ms;
73
+ }
63
74
  }
64
75
 
65
76
  :global(input:focus-visible) + .layer-container {
@@ -75,6 +86,10 @@
75
86
 
76
87
  :global(input:checked) ~ svg {
77
88
  opacity: 1;
89
+ path {
90
+ stroke-dashoffset: 0;
91
+ transition: stroke-dashoffset 200ms;
92
+ }
78
93
  }
79
94
 
80
95
  :global(input:disabled) + .layer-container {
@@ -1,31 +1,8 @@
1
+ import type { Snippet } from "svelte";
1
2
  import type { HTMLAttributes } from "svelte/elements";
2
- 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> {
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 Checkbox: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- display?: string;
22
- extraOptions?: HTMLAttributes<HTMLDivElement>;
23
- }, {
24
- default: {};
25
- }>, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {
28
- default: {};
29
- }, {}, string>;
30
- type Checkbox = InstanceType<typeof Checkbox>;
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type Checkbox = ReturnType<typeof Checkbox>;
31
8
  export default Checkbox;
@@ -1,42 +1,54 @@
1
1
  <script lang="ts">
2
+ import type { Snippet } from "svelte";
2
3
  import type { HTMLButtonAttributes } from "svelte/elements";
3
4
  import type { IconifyIcon } from "@iconify/types";
4
5
  import Icon from "../misc/_icon.svelte";
5
6
  import Layer from "../misc/Layer.svelte";
6
7
 
7
- export let display = "inline-flex";
8
- export let extraOptions: HTMLButtonAttributes = {};
9
- /**
10
- * general is filter/suggestion since they're the same.
11
- * | name | use | example | phrasing |
12
- * |------------|------------------|-------------------------------|--------------------|
13
- * | input | information item | like a person in the to field | user-entered thing |
14
- * | assist | smart actions | like add to calendar | start with a verb |
15
- * | filter | selection | like in a search page | category |
16
- * | suggestion | smart actions | like a chat response | query/message |
17
- */
18
- export let type: "input" | "assist" | "general";
19
- export let icon: IconifyIcon | null = null;
20
- export let trailingIcon: IconifyIcon | null = null;
21
- export let elevated = false;
22
- export let disabled = false;
23
- export let selected = false;
8
+ let {
9
+ variant,
10
+ icon,
11
+ trailingIcon,
12
+ elevated = false,
13
+ disabled = false,
14
+ selected = false,
15
+ children,
16
+ click,
17
+ ...extra
18
+ }: {
19
+ /**
20
+ * general is filter/suggestion since they're the same.
21
+ * | name | use | example | phrasing |
22
+ * |------------|------------------|-------------------------------|--------------------|
23
+ * | input | information item | like a person in the to field | user-entered thing |
24
+ * | assist | smart actions | like add to calendar | start with a verb |
25
+ * | filter | selection | like in a search page | category |
26
+ * | suggestion | smart actions | like a chat response | query/message |
27
+ */
28
+ variant: "input" | "assist" | "general";
29
+ icon?: IconifyIcon | undefined;
30
+ trailingIcon?: IconifyIcon | undefined;
31
+ elevated?: boolean;
32
+ disabled?: boolean;
33
+ selected?: boolean;
34
+ children: Snippet;
35
+ click: () => void;
36
+ } & HTMLButtonAttributes = $props();
24
37
  </script>
25
38
 
26
39
  <button
27
- class="m3-container type-{type}"
28
- style="display: {display}"
40
+ class="m3-container {variant}"
29
41
  class:elevated
30
42
  class:selected
31
43
  {disabled}
32
- on:click
33
- {...extraOptions}
44
+ onclick={click}
45
+ {...extra}
34
46
  >
35
47
  <Layer />
36
48
  {#if icon}
37
49
  <Icon {icon} class="leading" />
38
50
  {/if}
39
- <span class="m3-font-label-large"><slot /></span>
51
+ <span class="m3-font-label-large">{@render children()}</span>
40
52
  {#if trailingIcon}
41
53
  <Icon icon={trailingIcon} class="trailing" />
42
54
  {/if}
@@ -55,7 +67,7 @@
55
67
 
56
68
  background-color: rgb(var(--m3-scheme-surface));
57
69
  color: rgb(var(--m3-scheme-on-surface-variant));
58
- border: solid 0.0625rem rgb(var(--m3-scheme-outline));
70
+ border: solid 1px rgb(var(--m3-scheme-outline));
59
71
  position: relative;
60
72
  cursor: pointer;
61
73
  -webkit-tap-highlight-color: transparent;
@@ -63,13 +75,13 @@
63
75
  }
64
76
 
65
77
  .m3-container > :global(:is(.ripple-container, .tint)) {
66
- inset: -0.0625rem;
78
+ inset: -1px;
67
79
  }
68
80
  .m3-container > :global(svg) {
69
81
  width: 1.125rem;
70
82
  height: 1.125rem;
71
83
  }
72
- .m3-container:enabled:not(.type-input):not(.selected) > :global(.leading) {
84
+ .m3-container:enabled:not(.input):not(.selected) > :global(.leading) {
73
85
  color: rgb(var(--m3-scheme-primary));
74
86
  }
75
87
  .m3-container > :global(.leading) {
@@ -78,17 +90,17 @@
78
90
  .m3-container > :global(.trailing) {
79
91
  margin-right: -0.5rem;
80
92
  }
81
- .type-input > :global(.leading) {
93
+ .input > :global(.leading) {
82
94
  margin-left: -0.25rem;
83
95
  }
84
- .type-input > :global(.trailing) {
96
+ .input > :global(.trailing) {
85
97
  margin-right: -0.25rem;
86
98
  }
87
99
 
88
- .type-assist {
100
+ .assist {
89
101
  color: rgb(var(--m3-scheme-on-surface));
90
102
  }
91
- .type-input {
103
+ .input {
92
104
  padding: 0 0.75rem;
93
105
  }
94
106
  .elevated {
@@ -1,48 +1,25 @@
1
+ import type { Snippet } from "svelte";
1
2
  import type { HTMLButtonAttributes } from "svelte/elements";
2
3
  import type { IconifyIcon } from "@iconify/types";
3
- 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> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
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 Chip: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
22
- display?: string;
23
- extraOptions?: HTMLButtonAttributes;
4
+ type $$ComponentProps = {
24
5
  /**
25
- * general is filter/suggestion since they're the same.
26
- * | name | use | example | phrasing |
27
- * |------------|------------------|-------------------------------|--------------------|
28
- * | input | information item | like a person in the to field | user-entered thing |
29
- * | assist | smart actions | like add to calendar | start with a verb |
30
- * | filter | selection | like in a search page | category |
31
- * | suggestion | smart actions | like a chat response | query/message |
32
- */ type: "input" | "assist" | "general";
33
- icon?: IconifyIcon | null;
34
- trailingIcon?: IconifyIcon | null;
6
+ * general is filter/suggestion since they're the same.
7
+ * | name | use | example | phrasing |
8
+ * |------------|------------------|-------------------------------|--------------------|
9
+ * | input | information item | like a person in the to field | user-entered thing |
10
+ * | assist | smart actions | like add to calendar | start with a verb |
11
+ * | filter | selection | like in a search page | category |
12
+ * | suggestion | smart actions | like a chat response | query/message |
13
+ */
14
+ variant: "input" | "assist" | "general";
15
+ icon?: IconifyIcon | undefined;
16
+ trailingIcon?: IconifyIcon | undefined;
35
17
  elevated?: boolean;
36
18
  disabled?: boolean;
37
19
  selected?: boolean;
38
- }, {
39
- default: {};
40
- }>, {
41
- click: MouseEvent;
42
- } & {
43
- [evt: string]: CustomEvent<any>;
44
- }, {
45
- default: {};
46
- }, {}, string>;
47
- type Chip = InstanceType<typeof Chip>;
20
+ children: Snippet;
21
+ click: () => void;
22
+ } & HTMLButtonAttributes;
23
+ declare const Chip: import("svelte").Component<$$ComponentProps, {}, "">;
24
+ type Chip = ReturnType<typeof Chip>;
48
25
  export default Chip;
@@ -1,18 +1,16 @@
1
1
  <script lang="ts">
2
2
  import type { HTMLAttributes } from "svelte/elements";
3
- export let display = "inline-flex";
4
- export let extraOptions: HTMLAttributes<SVGElement> = {};
5
- export let percent: number;
3
+
4
+ let { percent, ...extra }: { percent: number } & HTMLAttributes<SVGElement> = $props();
6
5
  </script>
7
6
 
8
7
  <svg
9
8
  viewBox="0 0 48 48"
10
9
  xmlns="http://www.w3.org/2000/svg"
11
10
  class="m3-container"
12
- class:indeterminate={percent === null}
13
- style="display: {display}; --percent: {percent}px;"
11
+ style:--percent="{percent}px"
14
12
  role="progressbar"
15
- {...extraOptions}
13
+ {...extra}
16
14
  >
17
15
  <circle
18
16
  cx="24"
@@ -1,23 +1,7 @@
1
1
  import type { HTMLAttributes } from "svelte/elements";
2
- 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> {
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
- declare const CircularProgress: $$__sveltets_2_IsomorphicComponent<{
16
- display?: string;
17
- extraOptions?: HTMLAttributes<SVGElement>;
2
+ type $$ComponentProps = {
18
3
  percent: number;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type CircularProgress = InstanceType<typeof CircularProgress>;
4
+ } & HTMLAttributes<SVGElement>;
5
+ declare const CircularProgress: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type CircularProgress = ReturnType<typeof CircularProgress>;
23
7
  export default CircularProgress;
@@ -1,16 +1,15 @@
1
1
  <script lang="ts">
2
2
  import type { HTMLAttributes } from "svelte/elements";
3
- export let display = "inline-flex";
4
- export let extraOptions: HTMLAttributes<SVGElement> = {};
3
+
4
+ let extra: HTMLAttributes<SVGElement> = $props();
5
5
  </script>
6
6
 
7
7
  <svg
8
8
  viewBox="0 0 48 48"
9
9
  xmlns="http://www.w3.org/2000/svg"
10
10
  class="m3-container"
11
- style="display: {display};"
12
11
  role="progressbar"
13
- {...extraOptions}
12
+ {...extra}
14
13
  >
15
14
  <circle
16
15
  cx="24"