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,32 +1,35 @@
1
1
  <script lang="ts">
2
2
  import type { IconifyIcon } from "@iconify/types";
3
- import type { HTMLAttributes, HTMLAnchorAttributes } from "svelte/elements";
3
+ import type { HTMLAnchorAttributes } from "svelte/elements";
4
4
  import Icon from "../misc/_icon.svelte";
5
5
  import Layer from "../misc/Layer.svelte";
6
- export let display = "flex";
7
- export let extraWrapperOptions: HTMLAttributes<HTMLDivElement> = {};
8
- export let extraOptions: HTMLAnchorAttributes = {};
9
- export let secondary = false;
10
- export let tab: string;
11
- export let items: {
12
- icon?: IconifyIcon;
13
- name: string;
14
- value: string;
15
- href: string;
16
- }[];
6
+
7
+ let {
8
+ secondary = false,
9
+ tab,
10
+ items,
11
+ ...extra
12
+ }: {
13
+ secondary?: boolean;
14
+ tab: string;
15
+ items: {
16
+ icon?: IconifyIcon;
17
+ name: string;
18
+ value: string;
19
+ href: string;
20
+ }[];
21
+ } & HTMLAnchorAttributes = $props();
17
22
  </script>
18
23
 
19
24
  <div
20
25
  class="m3-container"
21
26
  class:primary={!secondary}
22
- style="display: {display}; --items: {items.length}; --i: {items.findIndex(
23
- (i) => i.value == tab,
24
- )};"
25
- {...extraWrapperOptions}
27
+ style:--items={items.length}
28
+ style:--i={items.findIndex((i) => i.value == tab)}
26
29
  >
27
30
  <div class="divider"></div>
28
31
  {#each items as item}
29
- <a href={item.href} class:tall={item.icon} class:selected={item.value == tab} {...extraOptions}>
32
+ <a href={item.href} class:tall={item.icon} class:selected={item.value == tab} {...extra}>
30
33
  <Layer />
31
34
  {#if item.icon}
32
35
  <Icon icon={item.icon} />
@@ -39,13 +42,14 @@
39
42
 
40
43
  <style>
41
44
  .m3-container {
45
+ display: flex;
42
46
  position: relative;
43
47
  background-color: rgb(var(--m3-scheme-surface));
44
48
  }
45
49
  .divider {
46
50
  position: absolute;
47
51
  inset: auto 0 0 0;
48
- height: 0.0625rem;
52
+ height: 1px;
49
53
  background-color: rgb(var(--m3-scheme-surface-container-highest));
50
54
  }
51
55
  a {
@@ -1,22 +1,6 @@
1
1
  import type { IconifyIcon } from "@iconify/types";
2
- import type { HTMLAttributes, HTMLAnchorAttributes } from "svelte/elements";
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
- declare const TabsLink: $$__sveltets_2_IsomorphicComponent<{
17
- display?: string;
18
- extraWrapperOptions?: HTMLAttributes<HTMLDivElement>;
19
- extraOptions?: HTMLAnchorAttributes;
2
+ import type { HTMLAnchorAttributes } from "svelte/elements";
3
+ type $$ComponentProps = {
20
4
  secondary?: boolean;
21
5
  tab: string;
22
6
  items: {
@@ -25,8 +9,7 @@ declare const TabsLink: $$__sveltets_2_IsomorphicComponent<{
25
9
  value: string;
26
10
  href: string;
27
11
  }[];
28
- }, {
29
- [evt: string]: CustomEvent<any>;
30
- }, {}, {}, string>;
31
- type TabsLink = InstanceType<typeof TabsLink>;
12
+ } & HTMLAnchorAttributes;
13
+ declare const TabsLink: import("svelte").Component<$$ComponentProps, {}, "">;
14
+ type TabsLink = ReturnType<typeof TabsLink>;
32
15
  export default TabsLink;
@@ -1,27 +1,33 @@
1
1
  <script lang="ts">
2
2
  import type { IconifyIcon } from "@iconify/types";
3
- import type { HTMLAttributes, HTMLInputAttributes } from "svelte/elements";
3
+ import type { HTMLInputAttributes } from "svelte/elements";
4
4
  import Icon from "../misc/_icon.svelte";
5
5
  import Layer from "../misc/Layer.svelte";
6
- export let display = "grid";
7
- export let extraWrapperOptions: HTMLAttributes<HTMLDivElement> = {};
8
- export let extraOptions: HTMLInputAttributes = {};
9
- export let secondary = false;
10
- export let tab: string;
11
- export let items: {
12
- icon?: IconifyIcon;
13
- name: string;
14
- value: string;
15
- }[];
6
+
7
+ let {
8
+ secondary = false,
9
+ tab = $bindable(),
10
+ items,
11
+ ...extra
12
+ }: {
13
+ secondary?: boolean;
14
+ tab: string;
15
+ items: {
16
+ icon?: IconifyIcon;
17
+ name: string;
18
+ value: string;
19
+ }[];
20
+ } & HTMLInputAttributes = $props();
16
21
 
17
22
  const name = crypto.randomUUID();
23
+ let wrapper: HTMLDivElement | undefined = $state();
18
24
  const handleInput = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
19
25
  const before = tab;
20
26
  const after = e.currentTarget.value;
21
- const beforeE = wrapper.querySelector(`input[value="${before}"] + label`) as HTMLInputElement;
22
- const afterE = wrapper.querySelector(`input[value="${after}"] + label`) as HTMLInputElement;
27
+ const beforeE = wrapper!.querySelector(`input[value="${before}"] + label`) as HTMLInputElement;
28
+ const afterE = wrapper!.querySelector(`input[value="${after}"] + label`) as HTMLInputElement;
23
29
 
24
- const bar = wrapper.querySelector(".bar") as HTMLDivElement;
30
+ const bar = wrapper!.querySelector(".bar") as HTMLDivElement;
25
31
  const beforeX = beforeE.offsetLeft + 0.5 * beforeE.offsetWidth;
26
32
  const afterX = afterE.offsetLeft + 0.5 * afterE.offsetWidth;
27
33
  const deltaX = afterX - beforeX;
@@ -59,15 +65,13 @@
59
65
  );
60
66
  }
61
67
  };
62
- let wrapper: HTMLDivElement;
63
68
  </script>
64
69
 
65
70
  <div
66
71
  class="m3-container"
67
72
  class:primary={!secondary}
68
- style="display: {display}; --items: {items.length};"
73
+ style:--items={items.length}
69
74
  bind:this={wrapper}
70
- {...extraWrapperOptions}
71
75
  >
72
76
  <div class="divider"></div>
73
77
  {#each items as item}
@@ -78,8 +82,8 @@
78
82
  {id}
79
83
  value={item.value}
80
84
  bind:group={tab}
81
- on:input={handleInput}
82
- {...extraOptions}
85
+ oninput={handleInput}
86
+ {...extra}
83
87
  />
84
88
  <label for={id} class:tall={item.icon}>
85
89
  <Layer />
@@ -94,6 +98,7 @@
94
98
 
95
99
  <style>
96
100
  .m3-container {
101
+ display: grid;
97
102
  position: relative;
98
103
  background-color: rgb(var(--m3-scheme-surface));
99
104
  grid-template-columns: repeat(var(--items), auto);
@@ -109,7 +114,7 @@
109
114
  .divider {
110
115
  position: absolute;
111
116
  inset: auto 0 0 0;
112
- height: 0.0625rem;
117
+ height: 1px;
113
118
  background-color: rgb(var(--m3-scheme-surface-container-highest));
114
119
  }
115
120
  label {
@@ -1,22 +1,6 @@
1
1
  import type { IconifyIcon } from "@iconify/types";
2
- import type { HTMLAttributes, HTMLInputAttributes } from "svelte/elements";
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
- declare const VariableTabs: $$__sveltets_2_IsomorphicComponent<{
17
- display?: string;
18
- extraWrapperOptions?: HTMLAttributes<HTMLDivElement>;
19
- extraOptions?: HTMLInputAttributes;
2
+ import type { HTMLInputAttributes } from "svelte/elements";
3
+ type $$ComponentProps = {
20
4
  secondary?: boolean;
21
5
  tab: string;
22
6
  items: {
@@ -24,8 +8,7 @@ declare const VariableTabs: $$__sveltets_2_IsomorphicComponent<{
24
8
  name: string;
25
9
  value: string;
26
10
  }[];
27
- }, {
28
- [evt: string]: CustomEvent<any>;
29
- }, {}, {}, string>;
30
- type VariableTabs = InstanceType<typeof VariableTabs>;
11
+ } & HTMLInputAttributes;
12
+ declare const VariableTabs: import("svelte").Component<$$ComponentProps, {}, "tab">;
13
+ type VariableTabs = ReturnType<typeof VariableTabs>;
31
14
  export default VariableTabs;
@@ -1,22 +1,30 @@
1
1
  <script lang="ts">
2
2
  import type { IconifyIcon } from "@iconify/types";
3
- import type { HTMLAttributes, HTMLAnchorAttributes } from "svelte/elements";
3
+ import type { HTMLAnchorAttributes } from "svelte/elements";
4
4
  import Icon from "../misc/_icon.svelte";
5
5
  import Layer from "../misc/Layer.svelte";
6
- export let display = "grid";
7
- export let extraWrapperOptions: HTMLAttributes<HTMLDivElement> = {};
8
- export let extraOptions: HTMLAnchorAttributes = {};
9
- export let secondary = false;
10
- export let tab: string;
11
- export let items: {
12
- icon?: IconifyIcon;
13
- name: string;
14
- value: string;
15
- href: string;
16
- }[];
17
6
 
18
- let prevTab = tab;
19
- $: if (wrapper) {
7
+ let {
8
+ secondary = false,
9
+ tab,
10
+ items,
11
+ ...extra
12
+ }: {
13
+ secondary?: boolean;
14
+ tab: string;
15
+ items: {
16
+ icon?: IconifyIcon;
17
+ name: string;
18
+ value: string;
19
+ href: string;
20
+ }[];
21
+ } & HTMLAnchorAttributes = $props();
22
+
23
+ let prevTab = $state(tab);
24
+ let wrapper: HTMLDivElement | undefined = $state();
25
+ $effect(() => {
26
+ if (!wrapper) return;
27
+
20
28
  const before = prevTab;
21
29
  const after = tab;
22
30
  const beforeI = items.findIndex((i) => i.value == before) + 1;
@@ -63,16 +71,14 @@
63
71
  }
64
72
 
65
73
  prevTab = tab;
66
- }
67
- let wrapper: HTMLDivElement;
74
+ });
68
75
  </script>
69
76
 
70
77
  <div
71
78
  class="m3-container"
72
79
  class:primary={!secondary}
73
- style="display: {display}; --items: {items.length};"
80
+ style:--items={items.length}
74
81
  bind:this={wrapper}
75
- {...extraWrapperOptions}
76
82
  >
77
83
  <div class="divider"></div>
78
84
  {#each items as item, i}
@@ -80,8 +86,8 @@
80
86
  href={item.href}
81
87
  class:tall={item.icon}
82
88
  class:selected={item.value == tab}
83
- style="grid-column: {i + 1}"
84
- {...extraOptions}
89
+ style:grid-column={i + 1}
90
+ {...extra}
85
91
  >
86
92
  <Layer />
87
93
  {#if item.icon}
@@ -95,9 +101,10 @@
95
101
 
96
102
  <style>
97
103
  .m3-container {
104
+ display: grid;
105
+ grid-template-columns: repeat(var(--items), auto);
98
106
  position: relative;
99
107
  background-color: rgb(var(--m3-scheme-surface));
100
- grid-template-columns: repeat(var(--items), auto);
101
108
  padding-inline: 1rem;
102
109
  justify-content: start;
103
110
  overflow-x: auto;
@@ -105,7 +112,7 @@
105
112
  .divider {
106
113
  position: absolute;
107
114
  inset: auto 0 0 0;
108
- height: 0.0625rem;
115
+ height: 1px;
109
116
  background-color: rgb(var(--m3-scheme-surface-container-highest));
110
117
  }
111
118
  a {
@@ -1,22 +1,6 @@
1
1
  import type { IconifyIcon } from "@iconify/types";
2
- import type { HTMLAttributes, HTMLAnchorAttributes } from "svelte/elements";
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
- declare const VariableTabsLink: $$__sveltets_2_IsomorphicComponent<{
17
- display?: string;
18
- extraWrapperOptions?: HTMLAttributes<HTMLDivElement>;
19
- extraOptions?: HTMLAnchorAttributes;
2
+ import type { HTMLAnchorAttributes } from "svelte/elements";
3
+ type $$ComponentProps = {
20
4
  secondary?: boolean;
21
5
  tab: string;
22
6
  items: {
@@ -25,8 +9,7 @@ declare const VariableTabsLink: $$__sveltets_2_IsomorphicComponent<{
25
9
  value: string;
26
10
  href: string;
27
11
  }[];
28
- }, {
29
- [evt: string]: CustomEvent<any>;
30
- }, {}, {}, string>;
31
- type VariableTabsLink = InstanceType<typeof VariableTabsLink>;
12
+ } & HTMLAnchorAttributes;
13
+ declare const VariableTabsLink: import("svelte").Component<$$ComponentProps, {}, "">;
14
+ type VariableTabsLink = ReturnType<typeof VariableTabsLink>;
32
15
  export default VariableTabsLink;
@@ -1,17 +1,23 @@
1
1
  <script lang="ts">
2
2
  import Chip from "../forms/Chip.svelte";
3
3
  import type { IconifyIcon } from "@iconify/types";
4
- export let options: { label: string; value: string; icon?: IconifyIcon }[];
5
- export let chosenOptions: string[] = [];
4
+
5
+ let {
6
+ options,
7
+ chosenOptions,
8
+ }: {
9
+ options: { label: string; value: string; icon?: IconifyIcon }[];
10
+ chosenOptions: string[];
11
+ } = $props();
6
12
  </script>
7
13
 
8
14
  <div class="m3-container">
9
15
  {#each options as option}
10
16
  <Chip
11
17
  {...option}
12
- type="input"
18
+ variant="input"
13
19
  selected={chosenOptions.includes(option.value)}
14
- on:click={() =>
20
+ click={() =>
15
21
  chosenOptions.includes(option.value)
16
22
  ? (chosenOptions = chosenOptions.filter((o) => o != option.value))
17
23
  : (chosenOptions = [...chosenOptions, option.value])}
@@ -1,26 +1,12 @@
1
1
  import type { IconifyIcon } from "@iconify/types";
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 ChipChooser: $$__sveltets_2_IsomorphicComponent<{
2
+ type $$ComponentProps = {
16
3
  options: {
17
4
  label: string;
18
5
  value: string;
19
6
  icon?: IconifyIcon;
20
7
  }[];
21
- chosenOptions?: string[];
22
- }, {
23
- [evt: string]: CustomEvent<any>;
24
- }, {}, {}, string>;
25
- type ChipChooser = InstanceType<typeof ChipChooser>;
8
+ chosenOptions: string[];
9
+ };
10
+ declare const ChipChooser: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type ChipChooser = ReturnType<typeof ChipChooser>;
26
12
  export default ChipChooser;
@@ -8,21 +8,27 @@
8
8
  import DatePickerDocked from "../forms/DatePickerDocked.svelte";
9
9
  import { easeEmphasized } from "../misc/easing";
10
10
 
11
- export let name: string;
12
- export let date = "";
13
- export let required = false;
14
- export let disabled = false;
15
- export let extraOptions: HTMLInputAttributes = {};
11
+ let {
12
+ name,
13
+ date = $bindable(""),
14
+ required = false,
15
+ disabled = false,
16
+ ...extra
17
+ }: {
18
+ name: string;
19
+ date?: string;
20
+ required?: boolean;
21
+ disabled?: boolean;
22
+ } & HTMLInputAttributes = $props();
16
23
 
17
24
  const id = crypto.randomUUID();
18
- let hasJs = false;
25
+ let hasJs = $state(false);
19
26
  onMount(() => {
20
27
  hasJs = true;
21
28
  });
22
29
 
23
- let picker = false;
24
- let container: HTMLDivElement;
25
- const clickOutside = (_node: Node) => {
30
+ let picker = $state(false);
31
+ const clickOutside = (container: Node) => {
26
32
  const handleClick = (event: Event) => {
27
33
  if (!container.contains(event.target as Node)) {
28
34
  picker = false;
@@ -35,7 +41,7 @@
35
41
  },
36
42
  };
37
43
  };
38
- const enterExit = (_node: Node): TransitionConfig => {
44
+ const enterExit = (_: Node): TransitionConfig => {
39
45
  return {
40
46
  duration: 400,
41
47
  easing: easeEmphasized,
@@ -47,7 +53,7 @@ opacity: ${Math.min(t * 3, 1)};`,
47
53
  };
48
54
  </script>
49
55
 
50
- <div class="m3-container" class:has-js={hasJs} class:disabled bind:this={container}>
56
+ <div class="m3-container" class:has-js={hasJs} class:disabled use:clickOutside>
51
57
  <input
52
58
  type="date"
53
59
  class="m3-font-body-large"
@@ -55,19 +61,19 @@ opacity: ${Math.min(t * 3, 1)};`,
55
61
  {required}
56
62
  {id}
57
63
  bind:value={date}
58
- {...extraOptions}
64
+ {...extra}
59
65
  />
60
66
  <label class="m3-font-body-small" for={id}>{name}</label>
61
- <button type="button" {disabled} on:click={() => (picker = !picker)}>
67
+ <button type="button" {disabled} onclick={() => (picker = !picker)}>
62
68
  <Icon icon={iconCalendar} />
63
69
  </button>
64
70
  {#if picker}
65
- <div class="picker" use:clickOutside transition:enterExit>
71
+ <div class="picker" transition:enterExit>
66
72
  <DatePickerDocked
73
+ {date}
67
74
  clearable={!required}
68
- bind:date
69
- on:close={() => (picker = false)}
70
- on:setDate={(e) => (date = e.detail)}
75
+ close={() => (picker = false)}
76
+ setDate={(d) => (date = d)}
71
77
  />
72
78
  </div>
73
79
  {/if}
@@ -83,7 +89,7 @@ opacity: ${Math.min(t * 3, 1)};`,
83
89
  min-width: 15rem;
84
90
  background-color: rgb(var(--m3-scheme-surface-container-highest));
85
91
  border-radius: var(--m3-datefield-shape) var(--m3-datefield-shape) 0 0;
86
- border-bottom: solid 0.0625rem rgb(var(--m3-scheme-on-surface-variant));
92
+ border-bottom: solid 1px rgb(var(--m3-scheme-on-surface-variant));
87
93
  }
88
94
  input {
89
95
  position: absolute;
@@ -1,25 +1,10 @@
1
1
  import type { 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 DateField: $$__sveltets_2_IsomorphicComponent<{
2
+ type $$ComponentProps = {
16
3
  name: string;
17
4
  date?: string;
18
5
  required?: boolean;
19
6
  disabled?: boolean;
20
- extraOptions?: HTMLInputAttributes;
21
- }, {
22
- [evt: string]: CustomEvent<any>;
23
- }, {}, {}, string>;
24
- type DateField = InstanceType<typeof DateField>;
7
+ } & HTMLInputAttributes;
8
+ declare const DateField: import("svelte").Component<$$ComponentProps, {}, "date">;
9
+ type DateField = ReturnType<typeof DateField>;
25
10
  export default DateField;
@@ -1,5 +1,9 @@
1
1
  <script lang="ts">
2
- export let inset = false;
2
+ let {
3
+ inset = false,
4
+ }: {
5
+ inset?: boolean;
6
+ } = $props();
3
7
  </script>
4
8
 
5
9
  <hr class:inset />
@@ -1,20 +1,6 @@
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 Divider: $$__sveltets_2_IsomorphicComponent<{
1
+ type $$ComponentProps = {
15
2
  inset?: boolean;
16
- }, {
17
- [evt: string]: CustomEvent<any>;
18
- }, {}, {}, string>;
19
- type Divider = InstanceType<typeof Divider>;
3
+ };
4
+ declare const Divider: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type Divider = ReturnType<typeof Divider>;
20
6
  export default Divider;