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
package/package.json CHANGED
@@ -1,24 +1,20 @@
1
1
  {
2
2
  "name": "m3-svelte",
3
- "version": "3.6.1",
3
+ "version": "4.0.0-beta.0",
4
4
  "license": "Apache-2.0 OR GPL-3.0-only",
5
5
  "repository": "KTibow/m3-svelte",
6
6
  "author": {
7
7
  "name": "KTibow"
8
8
  },
9
9
  "homepage": "https://github.com/KTibow/m3-svelte",
10
- "keywords": [
11
- "svelte",
12
- "material",
13
- "material 3",
14
- "material you",
15
- "m3",
16
- "ui",
17
- "frontend",
18
- "design-system",
19
- "ui-library",
20
- "theming"
10
+ "files": [
11
+ "package",
12
+ "!package/**/*.test.*",
13
+ "!package/**/*.spec.*"
21
14
  ],
15
+ "svelte": "./package/index.js",
16
+ "types": "./package/index.d.ts",
17
+ "type": "module",
22
18
  "exports": {
23
19
  ".": {
24
20
  "types": "./package/index.d.ts",
@@ -31,48 +27,53 @@
31
27
  "import": "./package/misc/recommended-styles.css"
32
28
  }
33
29
  },
30
+ "dependencies": {
31
+ "@iconify/types": "^2.0.0",
32
+ "@ktibow/iconset-material-symbols": "^0.0.1747426012",
33
+ "@material/material-color-utilities": "^0.3.0",
34
+ "svelte": "^5.0.0"
35
+ },
34
36
  "devDependencies": {
37
+ "@eslint/compat": "^1.2.5",
38
+ "@eslint/js": "^9.18.0",
35
39
  "@sveltejs/adapter-static": "^3.0.8",
36
- "@sveltejs/kit": "^2.20.2",
37
- "@sveltejs/package": "^2.3.10",
38
- "@sveltejs/vite-plugin-svelte": "^5.0.3",
39
- "@typescript-eslint/eslint-plugin": "^8.29.0",
40
- "@typescript-eslint/parser": "^8.29.0",
41
- "eslint": "^8.57.1",
42
- "eslint-config-prettier": "^10.1.1",
43
- "eslint-plugin-svelte": "^3.5.0",
40
+ "@sveltejs/kit": "^2.16.0",
41
+ "@sveltejs/package": "^2.0.0",
42
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
43
+ "eslint": "^9.18.0",
44
+ "eslint-config-prettier": "^10.0.1",
45
+ "eslint-plugin-svelte": "^3.0.0",
44
46
  "fast-glob": "^3.3.3",
45
47
  "globals": "^16.0.0",
46
- "prettier": "^3.5.3",
48
+ "prettier": "^3.4.2",
47
49
  "prettier-plugin-svelte": "^3.3.3",
48
- "svelte-check": "^4.1.5",
49
- "svelte-highlight": "^7.8.2",
50
- "tslib": "^2.8.1",
51
- "typescript": "^5.8.2",
52
- "vite": "^6.2.4"
50
+ "publint": "^0.3.2",
51
+ "svelte": "^5.0.0",
52
+ "svelte-check": "^4.0.0",
53
+ "svelte-highlight": "^7.8.3",
54
+ "typescript": "^5.0.0",
55
+ "typescript-eslint": "^8.20.0",
56
+ "vite": "^6.2.6"
53
57
  },
54
- "dependencies": {
55
- "@iconify/types": "^2.0.0",
56
- "@ktibow/iconset-material-symbols": "^0.0.1742538575",
57
- "@material/material-color-utilities": "^0.3.0",
58
- "svelte": "^5.25.6"
59
- },
60
- "files": [
61
- "package"
58
+ "keywords": [
59
+ "svelte",
60
+ "material",
61
+ "material 3",
62
+ "material you",
63
+ "m3",
64
+ "ui",
65
+ "frontend",
66
+ "design-system",
67
+ "ui-library",
68
+ "theming"
62
69
  ],
63
- "svelte": "./package/index.js",
64
- "types": "./package/index.d.ts",
65
- "type": "module",
66
70
  "sideEffects": false,
67
71
  "scripts": {
68
72
  "dev": "vite dev",
69
73
  "build": "vite build",
70
74
  "preview": "vite preview",
71
- "package": "svelte-kit sync && svelte-package -o package",
72
- "package-components": "vite build -c vite.config.lib.js",
73
- "lint": "prettier --plugin-search-dir . --check . && eslint .",
74
- "format": "prettier --plugin-search-dir . --write .",
75
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
76
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
75
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && eslint",
76
+ "format": "prettier --write .",
77
+ "lint": "prettier --check . && eslint ."
77
78
  }
78
79
  }
@@ -1,116 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAnchorAttributes } from "svelte/elements";
3
- import Layer from "../misc/Layer.svelte";
4
- export let display = "inline-flex";
5
- export let extraOptions: HTMLAnchorAttributes = {};
6
- export let iconType: "none" | "left" | "full" = "none";
7
- export let type: "elevated" | "filled" | "tonal" | "outlined" | "text";
8
- export let href: string;
9
- </script>
10
-
11
- <a
12
- {href}
13
- class="m3-container m3-font-label-large {type} icon-{iconType}"
14
- style="display: {display};"
15
- {...extraOptions}
16
- >
17
- <Layer />
18
- <slot />
19
- </a>
20
-
21
- <style>
22
- :root {
23
- --m3-button-shape: var(--m3-util-rounding-full);
24
- }
25
-
26
- .m3-container {
27
- height: 2.5rem;
28
- padding: 0 1.5rem;
29
- border-radius: var(--m3-button-shape);
30
- transition: all 200ms;
31
-
32
- align-items: center;
33
- justify-content: center;
34
- cursor: pointer;
35
- position: relative;
36
- overflow: hidden;
37
- user-select: none;
38
- }
39
-
40
- .m3-container > :global(*) {
41
- flex-shrink: 0;
42
- }
43
- .icon-left {
44
- padding-left: 1rem;
45
- gap: 0.5rem;
46
- }
47
- .icon-left > :global(svg) {
48
- width: 1.125rem;
49
- height: 1.125rem;
50
- }
51
- .icon-full {
52
- width: 2.5rem;
53
- padding: 0;
54
- }
55
- .icon-full > :global(svg) {
56
- width: 1.5rem;
57
- height: 1.5rem;
58
- }
59
-
60
- .m3-container.elevated {
61
- background-color: rgb(var(--m3-scheme-surface-container-low));
62
- color: rgb(var(--m3-scheme-primary));
63
- box-shadow: var(--m3-util-elevation-1);
64
- }
65
-
66
- .m3-container.filled {
67
- background-color: rgb(var(--m3-scheme-primary));
68
- color: rgb(var(--m3-scheme-on-primary));
69
- }
70
-
71
- .m3-container.tonal {
72
- background-color: rgb(var(--m3-scheme-secondary-container));
73
- color: rgb(var(--m3-scheme-on-secondary-container));
74
- }
75
-
76
- .m3-container.outlined {
77
- background-color: transparent;
78
- border: 0.0625rem solid rgb(var(--m3-scheme-outline));
79
- color: rgb(var(--m3-scheme-primary));
80
- }
81
-
82
- .m3-container.text {
83
- background-color: transparent;
84
- padding: 0 0.75rem;
85
- color: rgb(var(--m3-scheme-primary));
86
- }
87
- .m3-container.text.icon-left {
88
- padding-right: 1rem;
89
- }
90
-
91
- .m3-container {
92
- -webkit-tap-highlight-color: transparent;
93
- }
94
- @media (hover: hover) {
95
- .m3-container.elevated:hover {
96
- box-shadow: var(--m3-util-elevation-2);
97
- }
98
- .m3-container.filled:hover {
99
- box-shadow: var(--m3-util-elevation-1);
100
- }
101
- .m3-container.tonal:hover {
102
- box-shadow: var(--m3-util-elevation-1);
103
- }
104
- }
105
-
106
- .m3-container {
107
- print-color-adjust: exact;
108
- -webkit-print-color-adjust: exact;
109
- }
110
- @media screen and (forced-colors: active) {
111
- .m3-container:is(.elevated, .filled, .tonal) {
112
- background-color: transparent;
113
- border: 0.0625rem solid;
114
- }
115
- }
116
- </style>
@@ -1,34 +0,0 @@
1
- import type { HTMLAnchorAttributes } 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 ButtonLink: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- display?: string;
22
- extraOptions?: HTMLAnchorAttributes;
23
- iconType?: "none" | "left" | "full";
24
- type: "elevated" | "filled" | "tonal" | "outlined" | "text";
25
- href: string;
26
- }, {
27
- default: {};
28
- }>, {
29
- [evt: string]: CustomEvent<any>;
30
- }, {
31
- default: {};
32
- }, {}, string>;
33
- type ButtonLink = InstanceType<typeof ButtonLink>;
34
- export default ButtonLink;
@@ -1,27 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export let display = "inline-flex";
4
- export let extraOptions: HTMLAttributes<HTMLDivElement> = {};
5
- </script>
6
-
7
- <div class="m3-container" style="display: {display};" {...extraOptions}>
8
- <slot />
9
- </div>
10
-
11
- <style>
12
- :root {
13
- --m3-segmented-button-shape: var(--m3-util-rounding-full);
14
- }
15
-
16
- .m3-container {
17
- border: 0.0625rem solid rgb(var(--m3-scheme-outline));
18
- height: 2.5rem;
19
- border-radius: var(--m3-segmented-button-shape);
20
- overflow: hidden;
21
- }
22
- .m3-container > :global(input) {
23
- position: absolute;
24
- opacity: 0;
25
- pointer-events: none;
26
- }
27
- </style>
@@ -1,31 +0,0 @@
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
- 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 SegmentedButtonContainer: $$__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 SegmentedButtonContainer = InstanceType<typeof SegmentedButtonContainer>;
31
- export default SegmentedButtonContainer;
@@ -1,119 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLLabelAttributes } from "svelte/elements";
3
- import type { IconifyIcon } from "@iconify/types";
4
- import iconCheck from "@ktibow/iconset-material-symbols/check";
5
- import Icon from "../misc/_icon.svelte";
6
- import Layer from "../misc/Layer.svelte";
7
-
8
- export let display = "flex";
9
- export let extraOptions: HTMLLabelAttributes = {};
10
- export let input: string;
11
- export let icon: IconifyIcon | undefined = undefined;
12
- </script>
13
-
14
- <label
15
- for={input}
16
- class="m3-font-label-large"
17
- style="display: {display}; overflow: hidden;"
18
- {...extraOptions}
19
- >
20
- <Layer />
21
- {#if icon}
22
- <div class="custom icon">
23
- <Icon {icon} />
24
- </div>
25
- {/if}
26
- <div class="check icon">
27
- <Icon icon={iconCheck} />
28
- </div>
29
- <div class="start-pad pad"></div>
30
- <slot />
31
- {#if !icon}
32
- <div class="end-pad pad"></div>
33
- {/if}
34
- </label>
35
-
36
- <style>
37
- label {
38
- padding: 0 1rem;
39
- /* flex: 1; */
40
- min-width: 3rem;
41
- align-items: center;
42
- justify-content: center;
43
-
44
- color: rgb(var(--m3-scheme-on-surface));
45
- transition: all 200ms;
46
-
47
- cursor: pointer;
48
- white-space: nowrap;
49
- user-select: none;
50
- position: relative;
51
- }
52
- :global(label) ~ label {
53
- border-left: 0.0625rem solid rgb(var(--m3-scheme-outline));
54
- }
55
- :global(input:disabled) + label {
56
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
57
- cursor: auto;
58
- }
59
- .icon {
60
- height: 1.125rem;
61
- transition: all 200ms;
62
- flex-shrink: 0;
63
- transform-origin: 0.563rem 0.563rem;
64
- }
65
- .icon > :global(svg) {
66
- width: 1.125rem;
67
- height: 1.125rem;
68
- }
69
-
70
- .check.icon {
71
- width: 0;
72
- opacity: 0;
73
- }
74
- :global(input:checked) + label > .check.icon {
75
- opacity: 1;
76
- }
77
- .custom.icon + .check.icon {
78
- rotate: -60deg;
79
- }
80
- :global(input:checked) + label > .custom.icon + .check.icon {
81
- rotate: 0deg;
82
- }
83
- .custom.icon {
84
- width: 0;
85
- opacity: 0;
86
- rotate: 60deg;
87
- }
88
- :global(input:not(:checked)) + label > .custom.icon {
89
- opacity: 1;
90
- rotate: 0deg;
91
- }
92
-
93
- .pad {
94
- transition: all 200ms;
95
- flex-shrink: 0;
96
- }
97
- .start-pad {
98
- width: 0.8125rem;
99
- }
100
- .end-pad {
101
- width: 0.8125rem;
102
- }
103
- :global(input:checked) + label > .start-pad,
104
- .custom.icon ~ .start-pad {
105
- width: 1.625rem;
106
- }
107
- :global(input:checked) + label > .end-pad {
108
- width: 0rem;
109
- }
110
-
111
- label {
112
- -webkit-tap-highlight-color: transparent;
113
- }
114
-
115
- :global(input:checked) + label {
116
- background-color: rgb(var(--m3-scheme-secondary-container));
117
- color: rgb(var(--m3-scheme-on-secondary-container));
118
- }
119
- </style>
@@ -1,34 +0,0 @@
1
- import type { HTMLLabelAttributes } from "svelte/elements";
2
- 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 SegmentedButtonItem: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
22
- display?: string;
23
- extraOptions?: HTMLLabelAttributes;
24
- input: string;
25
- icon?: IconifyIcon | undefined;
26
- }, {
27
- default: {};
28
- }>, {
29
- [evt: string]: CustomEvent<any>;
30
- }, {
31
- default: {};
32
- }, {}, string>;
33
- type SegmentedButtonItem = InstanceType<typeof SegmentedButtonItem>;
34
- export default SegmentedButtonItem;
@@ -1,78 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes, HTMLButtonAttributes } from "svelte/elements";
3
- import Layer from "../misc/Layer.svelte";
4
-
5
- export let display = "flex";
6
- export let extraOptions: HTMLAttributes<HTMLDivElement> & HTMLButtonAttributes = {};
7
- export let type: "elevated" | "filled" | "outlined";
8
- </script>
9
-
10
- <button
11
- on:click|stopPropagation
12
- class="m3-container type-{type}"
13
- style="display: {display};"
14
- {...extraOptions}
15
- >
16
- <Layer />
17
- <slot />
18
- </button>
19
-
20
- <style>
21
- :root {
22
- --m3-card-shape: var(--m3-util-rounding-medium);
23
- }
24
- .m3-container {
25
- flex-direction: column;
26
- position: relative;
27
- padding: 1rem; /* protip: use margin: -1rem (adjust as needed) to make images stretch to the end */
28
- border: none;
29
- border-radius: var(--m3-card-shape);
30
- background-color: rgb(var(--m3-scheme-surface));
31
- color: rgb(var(--m3-scheme-on-surface));
32
- transition: all 200ms;
33
- }
34
-
35
- .type-elevated {
36
- background-color: rgb(var(--m3-scheme-surface-container-low));
37
- }
38
- .type-filled {
39
- background-color: rgb(var(--m3-scheme-surface-container-highest));
40
- }
41
- .type-outlined {
42
- border: solid 0.0625rem rgb(var(--m3-scheme-outline));
43
- }
44
-
45
- .type-elevated {
46
- box-shadow: var(--m3-util-elevation-1);
47
- }
48
-
49
- button {
50
- text-align: inherit;
51
- font: inherit;
52
- letter-spacing: inherit;
53
- cursor: pointer;
54
- -webkit-tap-highlight-color: transparent;
55
- }
56
- @media (hover: hover) {
57
- button:hover {
58
- box-shadow: var(--m3-util-elevation-1);
59
- }
60
- button.type-elevated:hover {
61
- box-shadow: var(--m3-util-elevation-2);
62
- }
63
- }
64
-
65
- @media print, (forced-colors: active) {
66
- .layer {
67
- display: none;
68
- }
69
- .type-filled {
70
- outline: solid 0.125rem;
71
- }
72
- }
73
- @media (forced-colors: active) {
74
- .type-elevated {
75
- outline: solid 0.125rem;
76
- }
77
- }
78
- </style>
@@ -1,34 +0,0 @@
1
- import type { HTMLAttributes, HTMLButtonAttributes } 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 CardClickable: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- display?: string;
22
- extraOptions?: HTMLAttributes<HTMLDivElement> & HTMLButtonAttributes;
23
- type: "elevated" | "filled" | "outlined";
24
- }, {
25
- default: {};
26
- }>, {
27
- click: MouseEvent;
28
- } & {
29
- [evt: string]: CustomEvent<any>;
30
- }, {
31
- default: {};
32
- }, {}, string>;
33
- type CardClickable = InstanceType<typeof CardClickable>;
34
- export default CardClickable;
@@ -1,86 +0,0 @@
1
- <script lang="ts">
2
- import type { HTMLButtonAttributes } from "svelte/elements";
3
- import Layer from "../misc/Layer.svelte";
4
-
5
- export let display = "flex";
6
- export let extraOptions: HTMLButtonAttributes = {};
7
- export let overline = "";
8
- export let headline = "";
9
- export let supporting = "";
10
- export let lines: number | undefined = undefined;
11
- $: _lines = lines || (overline && supporting ? 3 : overline || supporting ? 2 : 1);
12
- </script>
13
-
14
- <button on:click class="m3-container lines-{_lines}" style="display: {display}" {...extraOptions}>
15
- <Layer />
16
- {#if $$slots.leading}
17
- <div class="leading">
18
- <slot name="leading" />
19
- </div>
20
- {/if}
21
- <div class="body">
22
- {#if overline}
23
- <p class="overline m3-font-label-small">{overline}</p>
24
- {/if}
25
- <p class="headline m3-font-body-large">{headline}</p>
26
- {#if supporting}
27
- <p class="supporting m3-font-body-medium">{supporting}</p>
28
- {/if}
29
- </div>
30
- {#if $$slots.trailing}
31
- <div class="trailing m3-font-label-small">
32
- <slot name="trailing" />
33
- </div>
34
- {/if}
35
- </button>
36
-
37
- <style>
38
- .m3-container {
39
- align-items: center;
40
- padding: 0.5rem 1.5rem 0.5rem 1rem;
41
- gap: 1rem;
42
- text-align: inherit;
43
-
44
- background-color: transparent;
45
- border: none;
46
- position: relative;
47
-
48
- -webkit-tap-highlight-color: transparent;
49
- cursor: pointer;
50
- transition: background-color 200ms;
51
- }
52
- .lines-1 {
53
- height: 3.5rem;
54
- }
55
- .lines-2 {
56
- height: 4.5rem;
57
- }
58
- .lines-3 {
59
- height: 5.5rem;
60
- padding-top: 0.75rem;
61
- padding-bottom: 0.75rem;
62
- align-items: flex-start;
63
- }
64
- .leading,
65
- .trailing {
66
- display: contents;
67
- color: rgb(var(--m3-scheme-on-surface-variant));
68
- }
69
- .leading > :global(svg),
70
- .trailing > :global(svg) {
71
- width: 1.5rem;
72
- height: 1.5rem;
73
- flex-shrink: 0;
74
- }
75
-
76
- p {
77
- margin: 0;
78
- }
79
- .supporting,
80
- .overline {
81
- color: rgb(var(--m3-scheme-on-surface-variant));
82
- }
83
- .headline {
84
- color: rgb(var(--m3-scheme-on-surface));
85
- }
86
- </style>