material 3.2.1 → 3.2.3

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 (166) hide show
  1. package/README.md +5 -5
  2. package/dist/components/carousel/features/scroll.js +35 -22
  3. package/dist/components/slider/features/axis.d.ts +6 -1
  4. package/dist/components/slider/features/axis.js +6 -1
  5. package/dist/core/compose/component.js +2 -0
  6. package/dist/core/dom/direction.d.ts +16 -0
  7. package/dist/core/dom/direction.js +38 -0
  8. package/dist/elements/css/badge.css +1 -1
  9. package/dist/elements/css/badge.js +1 -1
  10. package/dist/elements/css/bottom-app-bar.css +1 -1
  11. package/dist/elements/css/bottom-app-bar.js +1 -1
  12. package/dist/elements/css/card.css +1 -1
  13. package/dist/elements/css/card.js +1 -1
  14. package/dist/elements/css/datepicker.css +1 -1
  15. package/dist/elements/css/datepicker.js +1 -1
  16. package/dist/elements/css/dialog.css +1 -1
  17. package/dist/elements/css/dialog.js +1 -1
  18. package/dist/elements/css/drawer.css +1 -1
  19. package/dist/elements/css/drawer.js +1 -1
  20. package/dist/elements/css/hosts/tabs.css +1 -1
  21. package/dist/elements/css/side-sheet.css +1 -1
  22. package/dist/elements/css/side-sheet.js +1 -1
  23. package/dist/elements/css/split-button.css +1 -1
  24. package/dist/elements/css/split-button.js +1 -1
  25. package/dist/elements/css/tabs.css +1 -1
  26. package/dist/elements/css/tabs.js +1 -1
  27. package/dist/elements/css/toolbar.css +1 -1
  28. package/dist/elements/css/toolbar.js +1 -1
  29. package/dist/elements/css/top-app-bar.css +1 -1
  30. package/dist/elements/css/top-app-bar.js +1 -1
  31. package/dist/elements/define.js +2 -0
  32. package/dist/elements/preupgrade/badge.css +1 -1
  33. package/dist/elements/preupgrade/bottom-app-bar.css +1 -1
  34. package/dist/elements/preupgrade/bottom-sheet.css +1 -1
  35. package/dist/elements/preupgrade/button-group.css +1 -1
  36. package/dist/elements/preupgrade/button.css +1 -1
  37. package/dist/elements/preupgrade/card.css +1 -1
  38. package/dist/elements/preupgrade/carousel.css +1 -1
  39. package/dist/elements/preupgrade/checkbox.css +1 -1
  40. package/dist/elements/preupgrade/chips.css +1 -1
  41. package/dist/elements/preupgrade/datepicker.css +1 -1
  42. package/dist/elements/preupgrade/dialog.css +1 -1
  43. package/dist/elements/preupgrade/divider.css +1 -1
  44. package/dist/elements/preupgrade/drawer.css +1 -1
  45. package/dist/elements/preupgrade/extended-fab.css +1 -1
  46. package/dist/elements/preupgrade/fab-menu.css +1 -1
  47. package/dist/elements/preupgrade/fab.css +1 -1
  48. package/dist/elements/preupgrade/icon-button.css +1 -1
  49. package/dist/elements/preupgrade/list.css +1 -1
  50. package/dist/elements/preupgrade/loading-indicator.css +1 -1
  51. package/dist/elements/preupgrade/menu.css +1 -1
  52. package/dist/elements/preupgrade/navigation-bar.css +1 -1
  53. package/dist/elements/preupgrade/navigation-rail.css +1 -1
  54. package/dist/elements/preupgrade/progress.css +1 -1
  55. package/dist/elements/preupgrade/radios.css +2 -2
  56. package/dist/elements/preupgrade/search.css +1 -1
  57. package/dist/elements/preupgrade/select.css +1 -1
  58. package/dist/elements/preupgrade/side-sheet.css +1 -1
  59. package/dist/elements/preupgrade/slider.css +1 -1
  60. package/dist/elements/preupgrade/snackbar.css +1 -1
  61. package/dist/elements/preupgrade/split-button.css +1 -1
  62. package/dist/elements/preupgrade/switch.css +1 -1
  63. package/dist/elements/preupgrade/tabs.css +1 -1
  64. package/dist/elements/preupgrade/text-field.css +1 -1
  65. package/dist/elements/preupgrade/timepicker.css +1 -1
  66. package/dist/elements/preupgrade/toolbar.css +1 -1
  67. package/dist/elements/preupgrade/tooltip.css +1 -1
  68. package/dist/elements/preupgrade/top-app-bar.css +1 -1
  69. package/dist/elements/preupgrade.css +2 -2
  70. package/dist/elements/preupgrade.js +1 -1
  71. package/dist/elements/tabs.js +1 -1
  72. package/dist/package.json +1 -1
  73. package/dist/styles/badge.css +2 -2
  74. package/dist/styles/base.css +1 -1
  75. package/dist/styles/bottom-app-bar.css +2 -2
  76. package/dist/styles/bottom-sheet.css +1 -1
  77. package/dist/styles/button-group.css +1 -1
  78. package/dist/styles/button.css +1 -1
  79. package/dist/styles/card.css +2 -2
  80. package/dist/styles/carousel.css +1 -1
  81. package/dist/styles/checkbox.css +1 -1
  82. package/dist/styles/chips.css +1 -1
  83. package/dist/styles/contrast.css +1 -1
  84. package/dist/styles/datepicker.css +2 -2
  85. package/dist/styles/dialog.css +2 -2
  86. package/dist/styles/divider.css +1 -1
  87. package/dist/styles/drawer.css +2 -2
  88. package/dist/styles/extended-fab.css +1 -1
  89. package/dist/styles/fab-menu.css +1 -1
  90. package/dist/styles/fab.css +1 -1
  91. package/dist/styles/icon-button.css +1 -1
  92. package/dist/styles/list.css +1 -1
  93. package/dist/styles/loading-indicator.css +1 -1
  94. package/dist/styles/menu.css +1 -1
  95. package/dist/styles/navigation-bar.css +1 -1
  96. package/dist/styles/navigation-rail.css +1 -1
  97. package/dist/styles/progress.css +1 -1
  98. package/dist/styles/radios.css +1 -1
  99. package/dist/styles/search.css +1 -1
  100. package/dist/styles/select.css +1 -1
  101. package/dist/styles/side-sheet.css +2 -2
  102. package/dist/styles/slider.css +1 -1
  103. package/dist/styles/snackbar.css +1 -1
  104. package/dist/styles/split-button.css +2 -2
  105. package/dist/styles/switch.css +1 -1
  106. package/dist/styles/tabs.css +2 -2
  107. package/dist/styles/text-field.css +1 -1
  108. package/dist/styles/timepicker.css +1 -1
  109. package/dist/styles/toolbar.css +2 -2
  110. package/dist/styles/tooltip.css +1 -1
  111. package/dist/styles/top-app-bar.css +2 -2
  112. package/dist/styles/typography.css +1 -1
  113. package/dist/styles/utilities.css +1 -1
  114. package/dist/styles.css +2 -2
  115. package/dist/themes/autumn-contrast.css +1 -1
  116. package/dist/themes/autumn.css +1 -1
  117. package/dist/themes/baseline-contrast.css +1 -1
  118. package/dist/themes/baseline.css +1 -1
  119. package/dist/themes/brownbeige-contrast.css +1 -1
  120. package/dist/themes/brownbeige.css +1 -1
  121. package/dist/themes/content-contrast.css +1 -1
  122. package/dist/themes/content.css +1 -1
  123. package/dist/themes/desert-contrast.css +1 -1
  124. package/dist/themes/desert.css +1 -1
  125. package/dist/themes/expressive-contrast.css +1 -1
  126. package/dist/themes/expressive.css +1 -1
  127. package/dist/themes/fidelity-contrast.css +1 -1
  128. package/dist/themes/fidelity.css +1 -1
  129. package/dist/themes/forest-contrast.css +1 -1
  130. package/dist/themes/forest.css +1 -1
  131. package/dist/themes/fruit-salad-contrast.css +1 -1
  132. package/dist/themes/fruit-salad.css +1 -1
  133. package/dist/themes/highcontrast-contrast.css +1 -1
  134. package/dist/themes/highcontrast.css +1 -1
  135. package/dist/themes/monochrome-contrast.css +1 -1
  136. package/dist/themes/monochrome.css +1 -1
  137. package/dist/themes/neutral-contrast.css +1 -1
  138. package/dist/themes/neutral.css +1 -1
  139. package/dist/themes/ocean-contrast.css +1 -1
  140. package/dist/themes/ocean.css +1 -1
  141. package/dist/themes/rainbow-contrast.css +1 -1
  142. package/dist/themes/rainbow.css +1 -1
  143. package/dist/themes/sageivory-contrast.css +1 -1
  144. package/dist/themes/sageivory.css +1 -1
  145. package/dist/themes/spring-contrast.css +1 -1
  146. package/dist/themes/spring.css +1 -1
  147. package/dist/themes/summer-contrast.css +1 -1
  148. package/dist/themes/summer.css +1 -1
  149. package/dist/themes/sunset-contrast.css +1 -1
  150. package/dist/themes/sunset.css +1 -1
  151. package/dist/themes/tealcaramel-contrast.css +1 -1
  152. package/dist/themes/tealcaramel.css +1 -1
  153. package/dist/themes/vibrant-contrast.css +1 -1
  154. package/dist/themes/vibrant.css +1 -1
  155. package/package.json +1 -1
  156. package/src/styles/abstract/_mixins.scss +50 -3
  157. package/src/styles/components/_badge.scss +22 -22
  158. package/src/styles/components/_bottom-app-bar.scss +10 -10
  159. package/src/styles/components/_card.scss +22 -2
  160. package/src/styles/components/_datepicker.scss +15 -3
  161. package/src/styles/components/_dialog.scss +2 -4
  162. package/src/styles/components/_drawer.scss +5 -9
  163. package/src/styles/components/_side-sheet.scss +13 -6
  164. package/src/styles/components/_toolbar.scss +13 -10
  165. package/src/styles/components/_top-app-bar.scss +28 -18
  166. package/src/styles/elements/_radios.scss +24 -2
@@ -20,6 +20,11 @@ $component: '#{base.$prefix}-toolbar';
20
20
  --#{$component}-content: #{t.color('on-surface-variant')};
21
21
  // The window-edge margin of a placed floating toolbar
22
22
  --#{$component}-margin: 16px;
23
+ // The direction multiplier: 1 left-to-right at the root, -1 under the
24
+ // direction arm. Declared here, not only used as a var() fallback, because a
25
+ // custom property inherits: a nested LTR instance must not read its RTL
26
+ // parent's -1.
27
+ --#{$component}-dir: 1;
23
28
 
24
29
  display: flex;
25
30
  align-items: center;
@@ -156,6 +161,10 @@ $component: '#{base.$prefix}-toolbar';
156
161
 
157
162
  // Off screen, past the edge it is placed at
158
163
  &--hidden {
164
+ @include m.rtl($self: true) {
165
+ --#{$component}-dir: -1;
166
+ }
167
+
159
168
  &.#{$component}--bottom {
160
169
  transform: translateY(calc(100% + var(--#{$component}-margin)));
161
170
  }
@@ -168,20 +177,14 @@ $component: '#{base.$prefix}-toolbar';
168
177
  transform: translateY(calc(-100% - var(--#{$component}-margin)));
169
178
  }
170
179
 
180
+ // The edge it leaves is physical: start and end trade sides in right-to-left,
181
+ // where the root's multiplier is -1.
171
182
  &.#{$component}--start {
172
- transform: translateX(calc(-100% - var(--#{$component}-margin)));
183
+ transform: translateX(calc(-1 * var(--#{$component}-dir) * (100% + var(--#{$component}-margin))));
173
184
  }
174
185
 
175
186
  &.#{$component}--end {
176
- transform: translateX(calc(100% + var(--#{$component}-margin)));
177
- }
178
-
179
- &.#{$component}--start:dir(rtl) {
180
- transform: translateX(calc(100% + var(--#{$component}-margin)));
181
- }
182
-
183
- &.#{$component}--end:dir(rtl) {
184
- transform: translateX(calc(-100% - var(--#{$component}-margin)));
187
+ transform: translateX(calc(var(--#{$component}-dir) * (100% + var(--#{$component}-margin))));
185
188
  }
186
189
 
187
190
  // In the flow there is no edge to leave by
@@ -159,34 +159,35 @@ $component: '#{base.$prefix}-top-app-bar';
159
159
  }
160
160
 
161
161
  // RTL Support
162
- [dir="rtl"] & {
162
+ @include m.rtl {
163
163
  .#{$component}__leading {
164
164
  margin-right: 0;
165
165
  margin-left: 24px;
166
166
  }
167
-
167
+
168
168
  .#{$component}__trailing {
169
169
  margin-left: 0;
170
170
  margin-right: auto;
171
171
  }
172
172
 
173
- &--medium,
174
- &--large {
175
- .#{$component}__headline {
176
- margin-left: 0;
177
- margin-right: 16px;
178
- }
179
- }
180
-
181
- &--center {
182
- .#{$component}__headline {
183
- left: auto;
184
- right: 50%;
185
- transform: translateX(50%);
186
- }
187
- }
188
173
  }
189
-
174
+
175
+ @include m.rtl-selector('.#{$component}--medium .#{$component}__headline') {
176
+ margin-left: 0;
177
+ margin-right: 16px;
178
+ }
179
+
180
+ @include m.rtl-selector('.#{$component}--large .#{$component}__headline') {
181
+ margin-left: 0;
182
+ margin-right: 16px;
183
+ }
184
+
185
+ @include m.rtl-selector('.#{$component}--center .#{$component}__headline') {
186
+ left: auto;
187
+ right: 50%;
188
+ transform: translateX(50%);
189
+ }
190
+
190
191
  // Mobile screen adjustments
191
192
  @media (max-width: map.get(v.$breakpoints, 'sm')) {
192
193
  // Reduce side padding slightly on small screens
@@ -195,6 +196,15 @@ $component: '#{base.$prefix}-top-app-bar';
195
196
  .#{$component}__leading {
196
197
  margin-right: 16px;
197
198
  }
199
+
200
+ // The narrow bar reduces the leading's end gap, not its start edges: the
201
+ // direction rule has to be restated here, or this later rule wins over it.
202
+ @include m.rtl {
203
+ .#{$component}__leading {
204
+ margin-right: 0;
205
+ margin-left: 16px;
206
+ }
207
+ }
198
208
 
199
209
  .#{$component}__trailing {
200
210
  gap: 4px;
@@ -4,13 +4,35 @@
4
4
  @use 'config' as c;
5
5
 
6
6
  @include c.host('radios') {
7
- display: block;
7
+ display: flex;
8
+ flex-direction: column;
8
9
  @include m.typography('body-large');
9
10
 
10
11
  &[direction='horizontal'] {
11
- display: flex;
12
+ flex-direction: row;
12
13
  flex-wrap: wrap;
13
14
  }
15
+
16
+ // On upgrade the host's baseline is its first row's: the 20px circle's
17
+ // bottom edge, 14px down a 48px row (4px of label padding and 10px of the
18
+ // control around the circle). The column's first item is a strut that ends
19
+ // on that edge, so a baseline-aligned row holds the host in place; 0 wide
20
+ // and -34 below itself, it moves nothing. Without it the baseline was the
21
+ // label text's, 5px higher, and the host moved up 5px at upgrade
22
+ // (floor/material#109).
23
+ //
24
+ // Only a group with an option reserves that baseline: an empty host is 0
25
+ // tall after upgrade and exposes no baseline, so the strut would synthesize
26
+ // one 34px below its top and lift the text after it 24px at upgrade. The
27
+ // guard follows an actual option, not the absence of children: `:empty`
28
+ // counts the newline and spaces of indented markup as content, and that
29
+ // indented group has no option and no upgraded baseline either.
30
+ &:has(> #{c.tag('radio')})::before {
31
+ content: '';
32
+ flex: none;
33
+ height: 34px;
34
+ margin-block-end: -34px;
35
+ }
14
36
  }
15
37
 
16
38
  // As components/_radios.scss: a row at least 48px, the 40px control and 8px