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,22 +1,4 @@
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 CircularProgressIndeterminate: $$__sveltets_2_IsomorphicComponent<{
16
- display?: string;
17
- extraOptions?: HTMLAttributes<SVGElement>;
18
- }, {
19
- [evt: string]: CustomEvent<any>;
20
- }, {}, {}, string>;
21
- type CircularProgressIndeterminate = InstanceType<typeof CircularProgressIndeterminate>;
2
+ declare const CircularProgressIndeterminate: import("svelte").Component<HTMLAttributes<SVGElement>, {}, "">;
3
+ type CircularProgressIndeterminate = ReturnType<typeof CircularProgressIndeterminate>;
22
4
  export default CircularProgressIndeterminate;
@@ -1,5 +1,4 @@
1
1
  <script lang="ts">
2
- import { createEventDispatcher } from "svelte";
3
2
  import Actions from "./_picker/Actions.svelte";
4
3
  import CalendarPicker from "./_picker/CalendarPicker.svelte";
5
4
  import FocusPicker from "./_picker/FocusPicker.svelte";
@@ -7,59 +6,76 @@
7
6
 
8
7
  const now = new Date();
9
8
 
10
- export let display = "flex";
11
- export let date = "";
12
- export let clearable: boolean;
13
- export let focusedMonth: number = parseInt(date.slice(5, 7)) - 1 || now.getMonth(),
14
- focusedYear = parseInt(date.slice(0, 4)) || now.getFullYear(),
9
+ let {
10
+ date = "",
11
+ clearable,
12
+ focusedMonth = $bindable(parseInt(date.slice(5, 7)) - 1 || now.getMonth()),
13
+ focusedYear = $bindable(parseInt(date.slice(0, 4)) || now.getFullYear()),
15
14
  startYear = now.getFullYear() - 50,
16
- endYear = now.getFullYear() + 10;
17
- export let dateValidator: (date: string) => boolean = (_date: string) => true;
15
+ endYear = now.getFullYear() + 10,
16
+ dateValidator = (_date: string) => true,
17
+ close,
18
+ setDate,
19
+ }: {
20
+ date?: string;
21
+ clearable: boolean;
22
+ focusedMonth?: number;
23
+ focusedYear?: number;
24
+ startYear?: number;
25
+ endYear?: number;
26
+ dateValidator?: (date: string) => boolean;
27
+ close: () => void;
28
+ setDate: (date: string) => void;
29
+ } = $props();
18
30
 
19
- let currentView: "calendar" | "year" | "month" = "calendar",
20
- chosenDate: string;
21
- $: chosenDate = date;
31
+ let currentView: "calendar" | "year" | "month" = $state("calendar");
32
+ let chosenDate = $state(date);
33
+ $effect(() => {
34
+ chosenDate = date;
35
+ });
22
36
 
23
37
  const getLongMonth = (month: number) =>
24
38
  new Date(0, month).toLocaleDateString(undefined, { month: "long" });
25
- const dispatch = createEventDispatcher();
26
39
  </script>
27
40
 
28
- <div class="m3-container" style="display: {display};">
41
+ <div class="m3-container">
29
42
  <Header bind:currentView bind:focusedMonth bind:focusedYear {startYear} {endYear} />
30
43
  {#if currentView == "calendar"}
31
44
  <CalendarPicker {focusedMonth} {focusedYear} {dateValidator} bind:chosenDate />
32
45
  <Actions
33
46
  {clearable}
34
47
  chosenDate={Boolean(chosenDate)}
35
- on:clear={() => (chosenDate = "")}
36
- on:cancel={() => {
48
+ clear={() => (chosenDate = "")}
49
+ cancel={() => {
37
50
  chosenDate = date;
38
- dispatch("close");
51
+ close();
39
52
  }}
40
- on:ok={() => {
41
- dispatch("setDate", chosenDate);
42
- dispatch("close");
53
+ ok={() => {
54
+ setDate(chosenDate);
55
+ close();
43
56
  }}
44
57
  />
58
+ {:else if currentView == "month"}
59
+ <FocusPicker
60
+ options={Array.from({ length: 12 }, (_, i) => ({
61
+ name: getLongMonth(i),
62
+ selected: i == focusedMonth,
63
+ activate: () => {
64
+ focusedMonth = i;
65
+ currentView = "calendar";
66
+ },
67
+ }))}
68
+ />
45
69
  {:else}
46
70
  <FocusPicker
47
- options={currentView == "month"
48
- ? Array.from({ length: 12 }, (_, i) => ({
49
- id: i,
50
- name: getLongMonth(i),
51
- selected: i == focusedMonth,
52
- }))
53
- : Array.from({ length: endYear - startYear }, (_, i) => ({
54
- id: startYear + i + 1,
55
- name: (startYear + i + 1).toString(),
56
- selected: startYear + i + 1 == focusedYear,
57
- }))}
58
- on:chosen={(e) => {
59
- if (currentView == "month") focusedMonth = e.detail;
60
- else focusedYear = e.detail;
61
- currentView = "calendar";
62
- }}
71
+ options={Array.from({ length: endYear - startYear }, (_, i) => ({
72
+ name: (startYear + i + 1).toString(),
73
+ selected: startYear + i + 1 == focusedYear,
74
+ activate: () => {
75
+ focusedYear = startYear + i + 1;
76
+ currentView = "calendar";
77
+ },
78
+ }))}
63
79
  />
64
80
  {/if}
65
81
  </div>
@@ -70,6 +86,7 @@
70
86
  }
71
87
 
72
88
  .m3-container {
89
+ display: flex;
73
90
  position: relative;
74
91
  overflow: hidden;
75
92
  flex-direction: column;
@@ -1,18 +1,4 @@
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
- declare const DatePickerDocked: $$__sveltets_2_IsomorphicComponent<{
15
- display?: string;
1
+ type $$ComponentProps = {
16
2
  date?: string;
17
3
  clearable: boolean;
18
4
  focusedMonth?: number;
@@ -20,11 +6,9 @@ declare const DatePickerDocked: $$__sveltets_2_IsomorphicComponent<{
20
6
  startYear?: number;
21
7
  endYear?: number;
22
8
  dateValidator?: (date: string) => boolean;
23
- }, {
24
- close: CustomEvent<any>;
25
- setDate: CustomEvent<any>;
26
- } & {
27
- [evt: string]: CustomEvent<any>;
28
- }, {}, {}, string>;
29
- type DatePickerDocked = InstanceType<typeof DatePickerDocked>;
9
+ close: () => void;
10
+ setDate: (date: string) => void;
11
+ };
12
+ declare const DatePickerDocked: import("svelte").Component<$$ComponentProps, {}, "focusedMonth" | "focusedYear">;
13
+ type DatePickerDocked = ReturnType<typeof DatePickerDocked>;
30
14
  export default DatePickerDocked;
@@ -1,12 +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<HTMLDivElement> = {};
5
- export let percent: number;
3
+
4
+ let {
5
+ percent,
6
+ ...extra
7
+ }: {
8
+ percent: number;
9
+ } & HTMLAttributes<HTMLDivElement> = $props();
6
10
  </script>
7
11
 
8
- <div class="m3-container" style="display: {display};" role="progressbar" {...extraOptions}>
9
- <div class="percent" style="width: {percent}%;"></div>
12
+ <div class="m3-container" role="progressbar" {...extra}>
13
+ <div class="percent" style:width="{percent}%"></div>
10
14
  </div>
11
15
 
12
16
  <style>
@@ -14,6 +18,7 @@
14
18
  --m3-linear-progress-shape: var(--m3-util-rounding-full);
15
19
  }
16
20
  .m3-container {
21
+ display: inline-flex;
17
22
  background-color: rgb(var(--m3-scheme-primary-container));
18
23
  height: 0.25rem;
19
24
  min-width: 8rem;
@@ -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 LinearProgress: $$__sveltets_2_IsomorphicComponent<{
16
- display?: string;
17
- extraOptions?: HTMLAttributes<HTMLDivElement>;
2
+ type $$ComponentProps = {
18
3
  percent: number;
19
- }, {
20
- [evt: string]: CustomEvent<any>;
21
- }, {}, {}, string>;
22
- type LinearProgress = InstanceType<typeof LinearProgress>;
4
+ } & HTMLAttributes<HTMLDivElement>;
5
+ declare const LinearProgress: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type LinearProgress = ReturnType<typeof LinearProgress>;
23
7
  export default LinearProgress;
@@ -1,10 +1,10 @@
1
1
  <script lang="ts">
2
2
  import type { HTMLAttributes } from "svelte/elements";
3
- export let display = "inline-flex";
4
- export let extraOptions: HTMLAttributes<HTMLDivElement> = {};
3
+
4
+ let extra: HTMLAttributes<HTMLDivElement> = $props();
5
5
  </script>
6
6
 
7
- <div class="m3-container" style="display: {display};" role="progressbar" {...extraOptions}>
7
+ <div class="m3-container" role="progressbar" {...extra}>
8
8
  <div class="percent"></div>
9
9
  </div>
10
10
 
@@ -13,6 +13,7 @@
13
13
  --m3-linear-progress-shape: var(--m3-util-rounding-full);
14
14
  }
15
15
  .m3-container {
16
+ display: inline-flex;
16
17
  background-color: rgb(var(--m3-scheme-primary-container));
17
18
  height: 0.25rem;
18
19
  min-width: 8rem;
@@ -1,22 +1,4 @@
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 LinearProgressIndeterminate: $$__sveltets_2_IsomorphicComponent<{
16
- display?: string;
17
- extraOptions?: HTMLAttributes<HTMLDivElement>;
18
- }, {
19
- [evt: string]: CustomEvent<any>;
20
- }, {}, {}, string>;
21
- type LinearProgressIndeterminate = InstanceType<typeof LinearProgressIndeterminate>;
2
+ declare const LinearProgressIndeterminate: import("svelte").Component<HTMLAttributes<HTMLDivElement>, {}, "">;
3
+ type LinearProgressIndeterminate = ReturnType<typeof LinearProgressIndeterminate>;
22
4
  export default LinearProgressIndeterminate;
@@ -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="radio-circle"></div>
@@ -18,6 +23,7 @@
18
23
 
19
24
  <style>
20
25
  .m3-container {
26
+ display: inline-flex;
21
27
  position: relative;
22
28
  width: 1.25rem;
23
29
  height: 1.25rem;
@@ -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 RadioAnim1: $$__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 RadioAnim1 = InstanceType<typeof RadioAnim1>;
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ declare const RadioAnim1: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type RadioAnim1 = ReturnType<typeof RadioAnim1>;
31
8
  export default RadioAnim1;
@@ -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="radio-circle"></div>
@@ -18,6 +23,7 @@
18
23
 
19
24
  <style>
20
25
  .m3-container {
26
+ display: inline-flex;
21
27
  position: relative;
22
28
  width: 1.25rem;
23
29
  height: 1.25rem;
@@ -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 RadioAnim2: $$__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 RadioAnim2 = InstanceType<typeof RadioAnim2>;
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ declare const RadioAnim2: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type RadioAnim2 = ReturnType<typeof RadioAnim2>;
31
8
  export default RadioAnim2;
@@ -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="radio-circle"></div>
@@ -18,6 +23,7 @@
18
23
 
19
24
  <style>
20
25
  .m3-container {
26
+ display: inline-flex;
21
27
  position: relative;
22
28
  width: 1.25rem;
23
29
  height: 1.25rem;
@@ -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 RadioAnim3: $$__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 RadioAnim3 = InstanceType<typeof RadioAnim3>;
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ declare const RadioAnim3: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type RadioAnim3 = ReturnType<typeof RadioAnim3>;
31
8
  export default RadioAnim3;
@@ -1,44 +1,50 @@
1
1
  <script lang="ts">
2
- import type { HTMLAttributes, HTMLInputAttributes } from "svelte/elements";
3
- import { spring } from "svelte/motion";
4
-
5
- export let extraWrapperOptions: HTMLAttributes<HTMLDivElement> = {};
6
- export let extraOptions: HTMLInputAttributes = {};
7
- export let value: number;
8
- export let min = 0;
9
- export let max = 100;
10
- export let step: number | "any" = "any";
11
- export let disabled = false;
12
- export let showValue = true;
13
- export let format: (n: number) => string = (n: number) => {
14
- return n.toFixed(0);
15
- };
16
-
17
- const valueDisplayed = spring(value, { stiffness: 0.3, damping: 1 });
2
+ import type { HTMLInputAttributes } from "svelte/elements";
3
+ import { Spring } from "svelte/motion";
4
+
5
+ let {
6
+ value = $bindable(),
7
+ min = 0,
8
+ max = 100,
9
+ step = "any",
10
+ disabled = false,
11
+ showValue = true,
12
+ format = (n: number) => {
13
+ return n.toFixed(0);
14
+ },
15
+ ...extra
16
+ }: {
17
+ value: number;
18
+ min?: number;
19
+ max?: number;
20
+ step?: number | "any";
21
+ disabled?: boolean;
22
+ showValue?: boolean;
23
+ format?: (n: number) => string;
24
+ } & HTMLInputAttributes = $props();
25
+
26
+ const valueDisplayed = new Spring(value, { stiffness: 0.3, damping: 1 });
18
27
  const updateValue = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
19
28
  const newValue = Number(e.currentTarget.value);
20
29
  e.preventDefault();
21
30
  value = newValue;
22
- $valueDisplayed = newValue;
31
+ valueDisplayed.target = newValue;
23
32
  };
24
33
 
25
- let range: number, percent: number;
26
- $: {
27
- range = max - min;
28
- percent = ($valueDisplayed - min) / range;
29
- }
34
+ let range = $derived(max - min);
35
+ let percent = $derived((valueDisplayed.current - min) / range);
30
36
  </script>
31
37
 
32
- <div class="m3-container" style="--percent: {percent * 100}%;" {...extraWrapperOptions}>
38
+ <div class="m3-container" style:--percent="{percent * 100}%">
33
39
  <input
34
40
  type="range"
35
- on:input={updateValue}
36
- value={$valueDisplayed}
41
+ oninput={updateValue}
42
+ value={valueDisplayed.current}
37
43
  {min}
38
44
  {max}
39
45
  {step}
40
46
  {disabled}
41
- {...extraOptions}
47
+ {...extra}
42
48
  />
43
49
  <div class="track"></div>
44
50
  <div class="thumb"></div>
@@ -1,20 +1,5 @@
1
- import type { HTMLAttributes, HTMLInputAttributes } 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 Slider: $$__sveltets_2_IsomorphicComponent<{
16
- extraWrapperOptions?: HTMLAttributes<HTMLDivElement>;
17
- extraOptions?: HTMLInputAttributes;
1
+ import type { HTMLInputAttributes } from "svelte/elements";
2
+ type $$ComponentProps = {
18
3
  value: number;
19
4
  min?: number;
20
5
  max?: number;
@@ -22,8 +7,7 @@ declare const Slider: $$__sveltets_2_IsomorphicComponent<{
22
7
  disabled?: boolean;
23
8
  showValue?: boolean;
24
9
  format?: (n: number) => string;
25
- }, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {}, {}, string>;
28
- type Slider = InstanceType<typeof Slider>;
10
+ } & HTMLInputAttributes;
11
+ declare const Slider: import("svelte").Component<$$ComponentProps, {}, "value">;
12
+ type Slider = ReturnType<typeof Slider>;
29
13
  export default Slider;