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.
Files changed (63) hide show
  1. package/dist/components/button-group/button-group.js +7 -1
  2. package/dist/components/icon-button/config.js +1 -1
  3. package/dist/components/icon-button/constants.d.ts +21 -21
  4. package/dist/components/icon-button/constants.js +8 -8
  5. package/dist/components/icon-button/features/toggle.js +2 -11
  6. package/dist/components/icon-button/icon-button.js +0 -6
  7. package/dist/index.cjs +8 -8
  8. package/dist/package.json +1 -1
  9. package/dist/styles/badge.css +1 -1
  10. package/dist/styles/base.css +1 -1
  11. package/dist/styles/bottom-app-bar.css +1 -1
  12. package/dist/styles/bottom-sheet.css +1 -1
  13. package/dist/styles/button-group.css +1 -1
  14. package/dist/styles/button.css +1 -1
  15. package/dist/styles/card.css +1 -1
  16. package/dist/styles/carousel.css +1 -1
  17. package/dist/styles/checkbox.css +1 -1
  18. package/dist/styles/chips.css +1 -1
  19. package/dist/styles/dialog.css +1 -1
  20. package/dist/styles/divider.css +1 -1
  21. package/dist/styles/drawer.css +1 -1
  22. package/dist/styles/extended-fab.css +1 -1
  23. package/dist/styles/fab.css +1 -1
  24. package/dist/styles/icon-button.css +2 -2
  25. package/dist/styles/list.css +1 -1
  26. package/dist/styles/loading-indicator.css +1 -1
  27. package/dist/styles/menu.css +1 -1
  28. package/dist/styles/navigation-rail.css +1 -1
  29. package/dist/styles/navigation.css +1 -1
  30. package/dist/styles/progress.css +1 -1
  31. package/dist/styles/radios.css +1 -1
  32. package/dist/styles/search.css +1 -1
  33. package/dist/styles/segmented-button.css +1 -1
  34. package/dist/styles/select.css +1 -1
  35. package/dist/styles/side-sheet.css +1 -1
  36. package/dist/styles/slider.css +1 -1
  37. package/dist/styles/snackbar.css +1 -1
  38. package/dist/styles/split-button.css +1 -1
  39. package/dist/styles/switch.css +1 -1
  40. package/dist/styles/tabs.css +1 -1
  41. package/dist/styles/textfield.css +1 -1
  42. package/dist/styles/timepicker.css +1 -1
  43. package/dist/styles/top-app-bar.css +1 -1
  44. package/dist/styles/utilities.css +1 -1
  45. package/dist/styles.css +2 -2
  46. package/dist/themes/autumn.css +1 -1
  47. package/dist/themes/baseline.css +1 -1
  48. package/dist/themes/brownbeige.css +1 -1
  49. package/dist/themes/browngreen.css +1 -1
  50. package/dist/themes/desert.css +1 -1
  51. package/dist/themes/forest.css +1 -1
  52. package/dist/themes/highcontrast.css +1 -1
  53. package/dist/themes/legacy.css +1 -1
  54. package/dist/themes/material.css +1 -1
  55. package/dist/themes/ocean.css +1 -1
  56. package/dist/themes/sageivory.css +1 -1
  57. package/dist/themes/spring.css +1 -1
  58. package/dist/themes/summer.css +1 -1
  59. package/dist/themes/sunset.css +1 -1
  60. package/dist/themes/tealcaramel.css +1 -1
  61. package/dist/themes/winter.css +1 -1
  62. package/package.json +1 -1
  63. 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
- button.setSelected?.(selected);
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 && config.shape !== "round") {
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 | 18dp |
29
+ * | XS | 32dp | 20dp |
30
30
  * | S | 40dp | 24dp |
31
31
  * | M | 56dp | 24dp |
32
- * | L | 96dp | 36dp |
33
- * | XL | 136dp | 48dp |
32
+ * | L | 96dp | 32dp |
33
+ * | XL | 136dp | 40dp |
34
34
  */
35
35
  export declare const ICON_BUTTON_SIZES: {
36
- /** Extra small - 32px container, 18px icon */
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, 36px icon */
42
+ /** Large - 96px container, 32px icon */
43
43
  readonly L: "l";
44
- /** Extra large - 136px container, 48px icon */
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 | 36dp |
73
- * | S | 32dp | 40dp | 48dp |
74
- * | M | 48dp | 56dp | 64dp |
75
- * | L | 80dp | 96dp | 112dp |
76
- * | XL | 112dp | 136dp | 160dp |
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: 18;
151
+ readonly XS: 20;
152
152
  readonly S: 24;
153
153
  readonly M: 24;
154
- readonly L: 36;
155
- readonly XL: 48;
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: 36;
174
+ readonly wide: 40;
175
175
  };
176
176
  readonly S: {
177
177
  readonly narrow: 32;
178
178
  readonly default: 40;
179
- readonly wide: 48;
179
+ readonly wide: 52;
180
180
  };
181
181
  readonly M: {
182
182
  readonly narrow: 48;
183
183
  readonly default: 56;
184
- readonly wide: 64;
184
+ readonly wide: 72;
185
185
  };
186
186
  readonly L: {
187
- readonly narrow: 80;
187
+ readonly narrow: 64;
188
188
  readonly default: 96;
189
- readonly wide: 112;
189
+ readonly wide: 128;
190
190
  };
191
191
  readonly XL: {
192
- readonly narrow: 112;
192
+ readonly narrow: 104;
193
193
  readonly default: 136;
194
- readonly wide: 160;
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: 18,
48
+ XS: 20,
49
49
  S: 24,
50
50
  M: 24,
51
- L: 36,
52
- XL: 48
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: 36 },
63
- S: { narrow: 32, default: 40, wide: 48 },
64
- M: { narrow: 48, default: 56, wide: 64 },
65
- L: { narrow: 80, default: 96, wide: 112 },
66
- XL: { narrow: 112, default: 136, wide: 160 }
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);