Skip to content

Commit

Permalink
Merge pull request #779 from unoplatform/dev/sb/m3-implicit-prefix
Browse files Browse the repository at this point in the history
chore: Remove WithImplicitStyles and M3 prefix
  • Loading branch information
jeromelaban committed May 23, 2022
2 parents 7eab7c6 + e615950 commit b20e884
Show file tree
Hide file tree
Showing 43 changed files with 2,566 additions and 2,205 deletions.
69 changes: 41 additions & 28 deletions doc/material-controls-styles.md
@@ -1,31 +1,47 @@
# Material Controls Styles
Control|Style Key|WithImplicitStyles*|
Control|Style Key|IsDefaultStyle*|
-|-|-
AppBarButton|AppBarButtonStyle|true
AppBarButton|AppBarButtonStyle|True|
Button|ElevatedButtonStyle|
Button|FilledButtonStyle|true
Button|FilledButtonStyle|True|
Button|FilledTonalButtonStyle|
Button|OutlinedButtonStyle|
Button|TextButtonStyle|
Button|IconButtonStyle|
CalendarDatePicker|CalendarDatePickerStyle|true
CalendarView|CalendarViewStyle|true
CheckBox|CheckBoxStyle|true
CommandBar|CommandBarStyle|true
DatePicker|DatePickerStyle|true
FlyoutPresenter|FlyoutPresenterStyle|true
HyperlinkButton|HyperlinkButtonStyle|true
HyperlinkButton|SecondaryHyperlinkButtonStyle
ListView|ListViewStyle|true
ListViewItem|ListViewItemStyle|true
MenuFlyoutPresenter|MenuFlyoutPresenterStyle|true
muxc:NavigationView|NavigationViewStyle|true
muxc:NavigationViewItem|NavigationViewItemStyle|true
PasswordBox|FilledPasswordBoxStyle|true
Button|FabStyle|
Button|SurfaceFabStyle|
Button|SecondaryFabStyle|
Button|TertiaryFabStyle|
Button|SmallFabStyle|
Button|SurfaceSmallFabStyle|
Button|SecondarySmallFabStyle|
Button|TertiarySmallFabStyle|
Button|LargeFabStyle|
Button|SurfaceLargeFabStyle|
Button|SecondaryLargeFabStyle|
Button|TertiaryLargeFabStyle|
Button|ExtendedFabStyle|
Button|SurfaceExtendedFabStyle|
Button|SecondaryExtendedFabStyle|
Button|TertiaryExtendedFabStyle|
CalendarDatePicker|CalendarDatePickerStyle|True|
CalendarView|CalendarViewStyle|True|
CheckBox|CheckBoxStyle|True|
ComboBox|ComboBoxStyle|True|
CommandBar|CommandBarStyle|True|
DatePicker|DatePickerStyle|True|
FlyoutPresenter|FlyoutPresenterStyle|True|
HyperlinkButton|HyperlinkButtonStyle|True|
HyperlinkButton|SecondaryHyperlinkButtonStyle|
ListView|ListViewStyle|True|
ListViewItem|ListViewItemStyle|True|
MenuFlyoutPresenter|MenuFlyoutPresenterStyle|True|
muxc:NavigationView|NavigationViewStyle|True|
muxc:NavigationViewItem|NavigationViewItemStyle|True|
PasswordBox|FilledPasswordBoxStyle|True|
PasswordBox|OutlinedPasswordBoxStyle|
ProgressBar|ProgressBarStyle|true
ProgressRing|ProgressRingStyle|true
RadioButton|RadioButtonStyle|true
RadioButton|RadioButtonStyle|True|
Slider|SliderStyle|True|
TextBlock|DisplayLarge|
TextBlock|DisplayMedium|
TextBlock|DisplaySmall|
Expand All @@ -39,15 +55,12 @@ TextBlock|LabelLarge|
TextBlock|LabelMedium|
TextBlock|LabelSmall|
TextBlock|BodyLarge|
TextBlock|BodyMedium|true
TextBlock|BodyMedium|True|
TextBlock|BodySmall|
TextBox|FilledTextBoxStyle|true
TextBox|FilledTextBoxStyle|True|
TextBox|OutlinedTextBoxStyle|
ToggleButton|TextToggleButtonStyle|true
ToggleButton|TextToggleButtonStyle|True|
ToggleButton|IconToggleButtonStyle|
ToggleSwitch|ToggleSwitchStyle|true
ToggleSwitch|ToggleSwitchStyle|True|

WithImplicitStyles*: Styles in this column will be set as the default implicit styles by setting the `WithImplicitStyles` flag to `True`:
```xml
<MaterialResources xmlns="using:Uno.Material" WithImplicitStyles="True" />
```
IsDefaultStyle*: Styles in this column will be set as the default implicit style for the matching control
2,139 changes: 1,247 additions & 892 deletions src/library/Uno.Material/Generated/mergedpages.v2.xaml

Large diffs are not rendered by default.

145 changes: 69 additions & 76 deletions src/library/Uno.Material/MaterialResourcesV2.cs
Expand Up @@ -15,28 +15,26 @@ namespace Uno.Material
/// </summary>
public class MaterialResourcesV2 : ResourceDictionary
{
private const string StylePrefix = "M3Material";
private ResourceDictionary _implicitResources = new ResourceDictionary();

private const string StylePrefix = "Material";
public MaterialResourcesV2()
{
Source = new Uri("ms-appx:///Uno.Material/Generated/mergedpages.v2.xaml");

MapStyleInfo();
}

public bool WithImplicitStyles { set => ExportImplicitStyles(value); }

private void MapStyleInfo()
{
var aliasedResources = new ResourceDictionary();
var implicitResources = new ResourceDictionary();

foreach (var (resKey, sharedKey, isDefaultStyle) in GetStyleInfos())
{
var style = GetStyle(resKey);

if (isDefaultStyle)
{
_implicitResources.Add(style.TargetType, style);
implicitResources.Add(style.TargetType, style);
}

aliasedResources.Add(sharedKey, style);
Expand All @@ -46,13 +44,7 @@ private void MapStyleInfo()
// > Local values are not allowed in resource dictionary with Source set
// but, we can add them through merged-dict instead.
this.MergedDictionaries.Add(aliasedResources);
}

private void ExportImplicitStyles(bool value)
{
if (!value) return; // we don't support teardown

this.MergedDictionaries.Add(_implicitResources);
this.MergedDictionaries.Add(implicitResources);
}

private Style GetStyle(string key)
Expand All @@ -77,69 +69,70 @@ private IEnumerable<(string ResourceKey, string SharedKey, bool IsDefaultStyle)>
{
var result = new List<(string ResourceKey, string SharedKey, bool IsDefaultStyle)>();

Add("M3MaterialCheckBoxStyle", isImplicit: true);
Add("M3MaterialAppBarButtonStyle", isImplicit: true);
Add("M3MaterialCommandBarStyle", isImplicit: true);
Add("M3MaterialRadioButtonStyle", isImplicit: true);
Add("M3MaterialDisplayLarge");
Add("M3MaterialDisplayMedium");
Add("M3MaterialDisplaySmall");
Add("M3MaterialHeadlineLarge");
Add("M3MaterialHeadlineMedium");
Add("M3MaterialHeadlineSmall");
Add("M3MaterialTitleLarge");
Add("M3MaterialTitleMedium");
Add("M3MaterialTitleSmall");
Add("M3MaterialLabelLarge");
Add("M3MaterialLabelMedium");
Add("M3MaterialLabelSmall");
Add("M3MaterialBodyLarge");
Add("M3MaterialBodyMedium", isImplicit: true);
Add("M3MaterialBodySmall");
Add("M3MaterialOutlinedTextBoxStyle");
Add("M3MaterialFilledTextBoxStyle", isImplicit: true);
Add("M3MaterialOutlinedPasswordBoxStyle");
Add("M3MaterialFilledPasswordBoxStyle", isImplicit: true);
Add("M3MaterialElevatedButtonStyle");
Add("M3MaterialFilledButtonStyle", isImplicit: true);
Add("M3MaterialFilledTonalButtonStyle");
Add("M3MaterialOutlinedButtonStyle");
Add("M3MaterialTextButtonStyle");
Add("M3MaterialIconButtonStyle");
Add("M3MaterialCalendarViewStyle", isImplicit: true);
Add("M3MaterialCalendarDatePickerStyle", isImplicit: true);
Add("M3MaterialFlyoutPresenterStyle", isImplicit: true);
Add("M3MaterialMenuFlyoutPresenterStyle", isImplicit: true);
Add("M3MaterialNavigationViewStyle", isImplicit: true);
Add("M3MaterialNavigationViewItemStyle", isImplicit: true);
Add("M3MaterialListViewStyle", isImplicit: true);
Add("M3MaterialListViewItemStyle", isImplicit: true);
Add("M3MaterialTextToggleButtonStyle", isImplicit: true);
Add("M3MaterialIconToggleButtonStyle");
Add("M3MaterialDatePickerStyle", isImplicit: true);
Add("M3MaterialComboBoxStyle", isImplicit: true);
Add("M3MaterialFabStyle");
Add("M3MaterialSurfaceFabStyle");
Add("M3MaterialSecondaryFabStyle");
Add("M3MaterialTertiaryFabStyle");
Add("M3MaterialSmallFabStyle");
Add("M3MaterialSurfaceSmallFabStyle");
Add("M3MaterialSecondarySmallFabStyle");
Add("M3MaterialTertiarySmallFabStyle");
Add("M3MaterialLargeFabStyle");
Add("M3MaterialSurfaceLargeFabStyle");
Add("M3MaterialSecondaryLargeFabStyle");
Add("M3MaterialTertiaryLargeFabStyle");
Add("M3MaterialExtendedFabStyle");
Add("M3MaterialSurfaceExtendedFabStyle");
Add("M3MaterialSecondaryExtendedFabStyle");
Add("M3MaterialTertiaryExtendedFabStyle");
Add("M3MaterialSliderStyle");
Add("M3MaterialToggleSwitchStyle", isImplicit: true);
Add("M3MaterialHyperlinkButtonStyle", isImplicit: true);
Add("M3MaterialSecondaryHyperlinkButtonStyle");
Add("M3MaterialProgressRingStyle", isImplicit: true);
Add("M3MaterialProgressBarStyle", isImplicit: true);
Add("MaterialAppBarButtonStyle", isImplicit: true);
Add("MaterialBodyLarge");
Add("MaterialBodyMedium", isImplicit: true);
Add("MaterialBodySmall");
Add("MaterialCalendarDatePickerStyle", isImplicit: true);
Add("MaterialCalendarViewStyle", isImplicit: true);
Add("MaterialCheckBoxStyle", isImplicit: true);
Add("MaterialComboBoxStyle", isImplicit: true);
Add("MaterialCommandBarStyle", isImplicit: true);
Add("MaterialDatePickerStyle", isImplicit: true);
Add("MaterialDisplayLarge");
Add("MaterialDisplayMedium");
Add("MaterialDisplaySmall");
Add("MaterialElevatedButtonStyle");
Add("MaterialExtendedFabStyle");
Add("MaterialFabStyle");
Add("MaterialFilledButtonStyle", isImplicit: true);
Add("MaterialFilledPasswordBoxStyle", isImplicit: true);
Add("MaterialFilledTextBoxStyle", isImplicit: true);
Add("MaterialFilledTonalButtonStyle");
Add("MaterialFlyoutPresenterStyle", isImplicit: true);
Add("MaterialHeadlineLarge");
Add("MaterialHeadlineMedium");
Add("MaterialHeadlineSmall");
Add("MaterialHyperlinkButtonStyle", isImplicit: true);
Add("MaterialIconButtonStyle");
Add("MaterialIconToggleButtonStyle");
Add("MaterialLabelLarge");
Add("MaterialLabelMedium");
Add("MaterialLabelSmall");
Add("MaterialLargeFabStyle");
Add("MaterialListViewItemStyle", isImplicit: true);
Add("MaterialListViewStyle", isImplicit: true);
Add("MaterialMenuFlyoutPresenterStyle", isImplicit: true);
Add("MaterialNavigationViewItemStyle", isImplicit: true);
Add("MaterialNavigationViewStyle", isImplicit: true);
Add("MaterialOutlinedButtonStyle");
Add("MaterialOutlinedPasswordBoxStyle");
Add("MaterialOutlinedTextBoxStyle");
Add("MaterialRadioButtonStyle", isImplicit: true);
Add("MaterialSecondaryCheckBoxStyle");
Add("MaterialSecondaryExtendedFabStyle");
Add("MaterialSecondaryFabStyle");
Add("MaterialSecondaryHyperlinkButtonStyle");
Add("MaterialSecondaryLargeFabStyle");
Add("MaterialSecondaryRadioButtonStyle");
Add("MaterialSecondarySmallFabStyle");
Add("MaterialSliderStyle", isImplicit: true);
Add("MaterialSmallFabStyle");
Add("MaterialSurfaceExtendedFabStyle");
Add("MaterialSurfaceFabStyle");
Add("MaterialSurfaceLargeFabStyle");
Add("MaterialSurfaceSmallFabStyle");
Add("MaterialTertiaryExtendedFabStyle");
Add("MaterialTertiaryFabStyle");
Add("MaterialTertiaryLargeFabStyle");
Add("MaterialTertiarySmallFabStyle");
Add("MaterialTextButtonStyle");
Add("MaterialTextToggleButtonStyle", isImplicit: true);
Add("MaterialTitleLarge");
Add("MaterialTitleMedium");
Add("MaterialTitleSmall");
Add("MaterialToggleSwitchStyle", isImplicit: true);

return result;

void Add(string key, string alias = null, bool isImplicit = false) =>
Expand Down

0 comments on commit b20e884

Please sign in to comment.