mtrl 0.8.0-next.45 → 0.8.0-next.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/button-group/button-group.js +7 -1
- package/dist/components/icon-button/config.js +1 -1
- package/dist/components/icon-button/constants.d.ts +21 -21
- package/dist/components/icon-button/constants.js +8 -8
- package/dist/components/icon-button/features/toggle.js +2 -11
- package/dist/components/icon-button/icon-button.js +0 -6
- package/dist/index.cjs +8 -8
- package/dist/package.json +1 -1
- package/dist/styles/badge.css +1 -1
- package/dist/styles/base.css +1 -1
- package/dist/styles/bottom-app-bar.css +1 -1
- package/dist/styles/bottom-sheet.css +1 -1
- package/dist/styles/button-group.css +1 -1
- package/dist/styles/button.css +1 -1
- package/dist/styles/card.css +1 -1
- package/dist/styles/carousel.css +1 -1
- package/dist/styles/checkbox.css +1 -1
- package/dist/styles/chips.css +1 -1
- package/dist/styles/dialog.css +1 -1
- package/dist/styles/divider.css +1 -1
- package/dist/styles/drawer.css +1 -1
- package/dist/styles/extended-fab.css +1 -1
- package/dist/styles/fab.css +1 -1
- package/dist/styles/icon-button.css +2 -2
- package/dist/styles/list.css +1 -1
- package/dist/styles/loading-indicator.css +1 -1
- package/dist/styles/menu.css +1 -1
- package/dist/styles/navigation-rail.css +1 -1
- package/dist/styles/navigation.css +1 -1
- package/dist/styles/progress.css +1 -1
- package/dist/styles/radios.css +1 -1
- package/dist/styles/search.css +1 -1
- package/dist/styles/segmented-button.css +1 -1
- package/dist/styles/select.css +1 -1
- package/dist/styles/side-sheet.css +1 -1
- package/dist/styles/slider.css +1 -1
- package/dist/styles/snackbar.css +1 -1
- package/dist/styles/split-button.css +1 -1
- package/dist/styles/switch.css +1 -1
- package/dist/styles/tabs.css +1 -1
- package/dist/styles/textfield.css +1 -1
- package/dist/styles/timepicker.css +1 -1
- package/dist/styles/top-app-bar.css +1 -1
- package/dist/styles/utilities.css +1 -1
- package/dist/styles.css +2 -2
- package/dist/themes/autumn.css +1 -1
- package/dist/themes/baseline.css +1 -1
- package/dist/themes/brownbeige.css +1 -1
- package/dist/themes/browngreen.css +1 -1
- package/dist/themes/desert.css +1 -1
- package/dist/themes/forest.css +1 -1
- package/dist/themes/highcontrast.css +1 -1
- package/dist/themes/legacy.css +1 -1
- package/dist/themes/material.css +1 -1
- package/dist/themes/ocean.css +1 -1
- package/dist/themes/sageivory.css +1 -1
- package/dist/themes/spring.css +1 -1
- package/dist/themes/summer.css +1 -1
- package/dist/themes/sunset.css +1 -1
- package/dist/themes/tealcaramel.css +1 -1
- package/dist/themes/winter.css +1 -1
- package/package.json +1 -1
- package/src/styles/components/_icon-button.scss +67 -103
|
@@ -42,8 +42,14 @@ const createButtonGroup = (config = {}) => {
|
|
|
42
42
|
else
|
|
43
43
|
toggleState.deselect();
|
|
44
44
|
}
|
|
45
|
+
else if (typeof button.setSelected === 'function') {
|
|
46
|
+
button.setSelected(selected);
|
|
47
|
+
}
|
|
45
48
|
else {
|
|
46
|
-
|
|
49
|
+
if (selected)
|
|
50
|
+
button.select?.();
|
|
51
|
+
else
|
|
52
|
+
button.deselect?.();
|
|
47
53
|
}
|
|
48
54
|
};
|
|
49
55
|
const expandedRatio = baseConfig.expandedRatio ?? BUTTON_GROUP_EXPANDED_RATIO;
|
|
@@ -38,7 +38,7 @@ export const getElementConfig = (config) => {
|
|
|
38
38
|
if (config.size && config.size !== "s") {
|
|
39
39
|
componentClasses.push(`icon-button--${config.size}`);
|
|
40
40
|
}
|
|
41
|
-
if (config.shape
|
|
41
|
+
if (config.shape) {
|
|
42
42
|
componentClasses.push(`icon-button--${config.shape}`);
|
|
43
43
|
}
|
|
44
44
|
if (config.width && config.width !== "default") {
|
|
@@ -26,22 +26,22 @@ export type IconButtonVariant = typeof ICON_BUTTON_VARIANTS[keyof typeof ICON_BU
|
|
|
26
26
|
*
|
|
27
27
|
* | Size | Container | Icon Size |
|
|
28
28
|
* |------|-----------|-----------|
|
|
29
|
-
* | XS | 32dp |
|
|
29
|
+
* | XS | 32dp | 20dp |
|
|
30
30
|
* | S | 40dp | 24dp |
|
|
31
31
|
* | M | 56dp | 24dp |
|
|
32
|
-
* | L | 96dp |
|
|
33
|
-
* | XL | 136dp |
|
|
32
|
+
* | L | 96dp | 32dp |
|
|
33
|
+
* | XL | 136dp | 40dp |
|
|
34
34
|
*/
|
|
35
35
|
export declare const ICON_BUTTON_SIZES: {
|
|
36
|
-
/** Extra small - 32px container,
|
|
36
|
+
/** Extra small - 32px container, 20px icon */
|
|
37
37
|
readonly XS: "xs";
|
|
38
38
|
/** Small - 40px container, 24px icon (default) */
|
|
39
39
|
readonly S: "s";
|
|
40
40
|
/** Medium - 56px container, 24px icon */
|
|
41
41
|
readonly M: "m";
|
|
42
|
-
/** Large - 96px container,
|
|
42
|
+
/** Large - 96px container, 32px icon */
|
|
43
43
|
readonly L: "l";
|
|
44
|
-
/** Extra large - 136px container,
|
|
44
|
+
/** Extra large - 136px container, 40px icon */
|
|
45
45
|
readonly XL: "xl";
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
@@ -69,11 +69,11 @@ export type IconButtonShape = typeof ICON_BUTTON_SHAPES[keyof typeof ICON_BUTTON
|
|
|
69
69
|
*
|
|
70
70
|
* | Size | Narrow | Default | Wide |
|
|
71
71
|
* |------|--------|---------|--------|
|
|
72
|
-
* | XS | 28dp | 32dp |
|
|
73
|
-
* | S | 32dp | 40dp |
|
|
74
|
-
* | M | 48dp | 56dp |
|
|
75
|
-
* | L |
|
|
76
|
-
* | XL |
|
|
72
|
+
* | XS | 28dp | 32dp | 40dp |
|
|
73
|
+
* | S | 32dp | 40dp | 52dp |
|
|
74
|
+
* | M | 48dp | 56dp | 72dp |
|
|
75
|
+
* | L | 64dp | 96dp | 128dp |
|
|
76
|
+
* | XL | 104dp | 136dp | 184dp |
|
|
77
77
|
*/
|
|
78
78
|
export declare const ICON_BUTTON_WIDTHS: {
|
|
79
79
|
/** Narrow width */
|
|
@@ -148,11 +148,11 @@ export declare const ICON_BUTTON_CORNER_RADIUS: {
|
|
|
148
148
|
* Icon sizes per button size (in dp)
|
|
149
149
|
*/
|
|
150
150
|
export declare const ICON_BUTTON_ICON_SIZES: {
|
|
151
|
-
readonly XS:
|
|
151
|
+
readonly XS: 20;
|
|
152
152
|
readonly S: 24;
|
|
153
153
|
readonly M: 24;
|
|
154
|
-
readonly L:
|
|
155
|
-
readonly XL:
|
|
154
|
+
readonly L: 32;
|
|
155
|
+
readonly XL: 40;
|
|
156
156
|
};
|
|
157
157
|
/**
|
|
158
158
|
* Container sizes per button size (in dp)
|
|
@@ -171,26 +171,26 @@ export declare const ICON_BUTTON_WIDTH_VALUES: {
|
|
|
171
171
|
readonly XS: {
|
|
172
172
|
readonly narrow: 28;
|
|
173
173
|
readonly default: 32;
|
|
174
|
-
readonly wide:
|
|
174
|
+
readonly wide: 40;
|
|
175
175
|
};
|
|
176
176
|
readonly S: {
|
|
177
177
|
readonly narrow: 32;
|
|
178
178
|
readonly default: 40;
|
|
179
|
-
readonly wide:
|
|
179
|
+
readonly wide: 52;
|
|
180
180
|
};
|
|
181
181
|
readonly M: {
|
|
182
182
|
readonly narrow: 48;
|
|
183
183
|
readonly default: 56;
|
|
184
|
-
readonly wide:
|
|
184
|
+
readonly wide: 72;
|
|
185
185
|
};
|
|
186
186
|
readonly L: {
|
|
187
|
-
readonly narrow:
|
|
187
|
+
readonly narrow: 64;
|
|
188
188
|
readonly default: 96;
|
|
189
|
-
readonly wide:
|
|
189
|
+
readonly wide: 128;
|
|
190
190
|
};
|
|
191
191
|
readonly XL: {
|
|
192
|
-
readonly narrow:
|
|
192
|
+
readonly narrow: 104;
|
|
193
193
|
readonly default: 136;
|
|
194
|
-
readonly wide:
|
|
194
|
+
readonly wide: 184;
|
|
195
195
|
};
|
|
196
196
|
};
|
|
@@ -45,11 +45,11 @@ export const ICON_BUTTON_CORNER_RADIUS = {
|
|
|
45
45
|
XL: { square: 28, pressed: 16 }
|
|
46
46
|
};
|
|
47
47
|
export const ICON_BUTTON_ICON_SIZES = {
|
|
48
|
-
XS:
|
|
48
|
+
XS: 20,
|
|
49
49
|
S: 24,
|
|
50
50
|
M: 24,
|
|
51
|
-
L:
|
|
52
|
-
XL:
|
|
51
|
+
L: 32,
|
|
52
|
+
XL: 40
|
|
53
53
|
};
|
|
54
54
|
export const ICON_BUTTON_CONTAINER_SIZES = {
|
|
55
55
|
XS: 32,
|
|
@@ -59,9 +59,9 @@ export const ICON_BUTTON_CONTAINER_SIZES = {
|
|
|
59
59
|
XL: 136
|
|
60
60
|
};
|
|
61
61
|
export const ICON_BUTTON_WIDTH_VALUES = {
|
|
62
|
-
XS: { narrow: 28, default: 32, wide:
|
|
63
|
-
S: { narrow: 32, default: 40, wide:
|
|
64
|
-
M: { narrow: 48, default: 56, wide:
|
|
65
|
-
L: { narrow:
|
|
66
|
-
XL: { narrow:
|
|
62
|
+
XS: { narrow: 28, default: 32, wide: 40 },
|
|
63
|
+
S: { narrow: 32, default: 40, wide: 52 },
|
|
64
|
+
M: { narrow: 48, default: 56, wide: 72 },
|
|
65
|
+
L: { narrow: 64, default: 96, wide: 128 },
|
|
66
|
+
XL: { narrow: 104, default: 136, wide: 184 }
|
|
67
67
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getCleanup } from "../../../core/compose/cleanup.js";
|
|
1
2
|
export const withToggle = (config) => (component) => {
|
|
2
3
|
if (!config.toggle) {
|
|
3
4
|
return {
|
|
@@ -112,17 +113,7 @@ export const withToggle = (config) => (component) => {
|
|
|
112
113
|
};
|
|
113
114
|
if (toggleOnClick) {
|
|
114
115
|
component.element.addEventListener("click", handleClick);
|
|
115
|
-
|
|
116
|
-
const originalDestroy = component.lifecycle?.destroy;
|
|
117
|
-
if (component.lifecycle) {
|
|
118
|
-
component.lifecycle.destroy = () => {
|
|
119
|
-
if (toggleOnClick) {
|
|
120
|
-
component.element.removeEventListener("click", handleClick);
|
|
121
|
-
}
|
|
122
|
-
if (originalDestroy) {
|
|
123
|
-
originalDestroy();
|
|
124
|
-
}
|
|
125
|
-
};
|
|
116
|
+
getCleanup(component).add(() => component.element.removeEventListener("click", handleClick));
|
|
126
117
|
}
|
|
127
118
|
return {
|
|
128
119
|
...component,
|
|
@@ -8,12 +8,6 @@ const createIconButton = (config = {}) => {
|
|
|
8
8
|
const baseConfig = createBaseConfig(config);
|
|
9
9
|
try {
|
|
10
10
|
const iconButton = pipe(createBase, withEvents(), withElement(getElementConfig(baseConfig)), withVariant(baseConfig), withSize(baseConfig), withIcon(baseConfig), withDisabled(baseConfig), withToggle(baseConfig), withRipple(baseConfig), withLifecycle(), (component) => {
|
|
11
|
-
if (baseConfig.shape && baseConfig.shape !== 'round' && component.element) {
|
|
12
|
-
const className = `${baseConfig.prefix}-${baseConfig.componentName}--${baseConfig.shape}`;
|
|
13
|
-
component.element.classList.add(className);
|
|
14
|
-
}
|
|
15
|
-
return component;
|
|
16
|
-
}, (component) => {
|
|
17
11
|
if (baseConfig.width && baseConfig.width !== 'default' && component.element) {
|
|
18
12
|
const className = `${baseConfig.prefix}-${baseConfig.componentName}--${baseConfig.width}`;
|
|
19
13
|
component.element.classList.add(className);
|