Skip to content
This repository was archived by the owner on Dec 11, 2025. It is now read-only.

Commit 1195948

Browse files
author
Jeff Verkoeyen
committed
Merge branch 'release-candidate'
2 parents ddb3515 + 5cbe9d4 commit 1195948

File tree

134 files changed

+5859
-1032
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+5859
-1032
lines changed

.arcconfig

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"load": [
33
"scripts/external/clang-format-linter",
4-
"scripts/external/arc-xcode-test-engine"
5-
4+
"scripts/external/arc-xcode-test-engine",
5+
"scripts/external/arc-proselint"
66
],
77
"phabricator.uri" : "http://codereview.cc/",
88
"repository.callsign" : "MDC",
@@ -17,6 +17,7 @@
1717
},
1818
"coverage": {
1919
"product": "MaterialComponents.framework/MaterialComponents"
20-
}
20+
},
21+
"pre-build": "pod install --project-directory=catalog/ --no-repo-update"
2122
}
2223
}

.arclint

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@
1818
"type": "chmod",
1919
"exclude": "(/Pods/)"
2020
},
21+
"prose": {
22+
"type": "prose",
23+
"include": "(\\.(md)$)",
24+
"exclude": "(/Pods/)",
25+
"severity": {
26+
"typography.symbols.curly_quotes": "disabled",
27+
"typography.symbols.ellipsis": "disabled",
28+
"leonard.exclamation.30ppm": "disabled"
29+
}
30+
},
2131
"spelling": {
2232
"type": "spelling",
2333
"include": "(\\.(m|h|mm|md)$)",

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "scripts/external/clang-format-linter"]
55
path = scripts/external/clang-format-linter
66
url = git@github.com:vhbit/clang-format-linter.git
7+
[submodule "scripts/external/arc-proselint"]
8+
path = scripts/external/arc-proselint
9+
url = git@github.com:google/arc-proselint.git

CHANGELOG.md

Lines changed: 178 additions & 4 deletions
Large diffs are not rendered by default.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Want to contribute? Great! First, read this page (including the small print at the end).
1+
Want to contribute? Great! First, read this page (including the [small print](#the-small-print)).
22

33
## Pull requests
44

MaterialComponents.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ load 'scripts/generated/icons.rb'
22

33
Pod::Spec.new do |s|
44
s.name = "MaterialComponents"
5-
s.version = "3.0.0"
5+
s.version = "3.1.0"
66
s.authors = { 'Apple platform engineering at Google' => 'appleplatforms@google.com' }
77
s.summary = "A collection of stand-alone production-ready UI libraries focused on design details."
88
s.homepage = "https://github.com/google/material-components-ios"
@@ -130,7 +130,7 @@ Pod::Spec.new do |s|
130130
}
131131

132132
ss.dependency "MaterialComponents/FontDiskLoader"
133-
# TODO: Make MDCRobotoFontLoader conform to the <MDCTypographyFontLoading>. This was intended to be a
133+
# TODO: https://github.com/google/material-components-ios/issues/74 This was intended to be a
134134
# strong dependancy but is weak during the deprecation period.
135135
# ss.dependency "MaterialComponents/Typography"
136136
end

MaterialComponentsCatalog.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
Pod::Spec.new do |s|
22
s.name = "MaterialComponentsCatalog"
3-
s.version = "3.0.0"
3+
s.version = "3.1.0"
44
s.authors = { 'Apple platform engineering at Google' => 'appleplatforms@google.com' }
55
s.summary = "A collection of stand-alone production-ready UI libraries focused on design details."
66
s.homepage = "https://github.com/google/material-components-ios"
77
s.license = 'Apache 2.0'
88
s.source = { :git => "https://github.com/google/material-components-ios.git", :tag => s.version.to_s }
99
s.platform = :ios, '7.0'
1010
s.requires_arc = true
11-
s.source_files = 'components/*/examples/*.{h,m,swift}'
11+
s.source_files = 'components/*/examples/*.{h,m,swift}', 'components/*/examples/supplemental/*.{h,m,swift}'
1212
s.resources = ['components/*/examples/resources/*']
1313
s.dependency 'MaterialComponents'
1414
end

MaterialComponentsUnitTests.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "MaterialComponentsUnitTests"
3-
s.version = "3.0.0"
3+
s.version = "3.1.0"
44
s.authors = { 'Apple platform engineering at Google' => 'appleplatforms@google.com' }
55
s.summary = "A collection of stand-alone production-ready UI libraries focused on design details."
66
s.homepage = "https://github.com/google/material-components-ios"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
Copyright 2016-present Google Inc. All Rights Reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
/**
18+
The CBCCatalogExample protocol defines the static methods that classes can implement in order to
19+
customize their location and behavior in the Catalog by Convention.
20+
21+
Examples should not formally conform to this protocol. Examples should simply implement these
22+
methods.
23+
*/
24+
@protocol CBCCatalogExample <NSObject>
25+
26+
/** Return a list of breadcrumbs defining the navigation path taken to reach this example. */
27+
+ (NSArray<NSString *> *)catalogBreadcrumbs;
28+
29+
@optional
30+
31+
/**
32+
Return the name of a UIStoryboard from which the example's view controller should be instantiated.
33+
*/
34+
- (NSString *)catalogStoryboardName;
35+
36+
@end
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
Copyright 2016-present Google Inc. All Rights Reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
#import <UIKit/UIKit.h>
18+
19+
@class CBCNode;
20+
21+
/**
22+
An instance of CBCNodeListViewController is able to represent a non-example CBCNode instance as a
23+
UITableView.
24+
*/
25+
@interface CBCNodeListViewController : UITableViewController
26+
27+
/** Initializes a CBCNodeViewController instance with a non-example node. */
28+
- (nonnull instancetype)initWithNode:(nonnull CBCNode *)node;
29+
30+
/** The node that this view controller must represent. */
31+
@property(nonatomic, strong, nonnull, readonly) CBCNode *node;
32+
33+
@end
34+
35+
/**
36+
Returns the root of a CBCNode tree representing the complete catalog navigation hierarchy.
37+
38+
Only classes that implement +catalogBreadcrumbs and return at least one breadcrumb will be part of
39+
the tree.
40+
*/
41+
FOUNDATION_EXTERN CBCNode *__nonnull CBCCreateNavigationTree(void);
42+
43+
/**
44+
A node describes a single navigable page in the Catalog by Convention.
45+
46+
A node either has children or it is an example.
47+
48+
- If a node has children, then the node should be represented by a list of some sort.
49+
- If a node is an example, then the example controller can be instantiated with
50+
createExampleViewController.
51+
*/
52+
@interface CBCNode : NSObject
53+
54+
/** Nodes cannot be created by clients. */
55+
- (nullable instancetype)init NS_UNAVAILABLE;
56+
57+
/** The title for this node. */
58+
@property(nonatomic, copy, nonnull, readonly) NSString *title;
59+
60+
/** The children of this node. */
61+
@property(nonatomic, strong, nonnull, readonly) NSArray<CBCNode *> *children;
62+
63+
/** Returns YES if this is an example node. */
64+
- (BOOL)isExample;
65+
66+
/** Returns an instance of a UIViewController for presentation purposes. */
67+
- (nonnull UIViewController *)createExampleViewController;
68+
69+
@end

0 commit comments

Comments
 (0)