50 Commits

Author SHA1 Message Date
Janette James
b5bbb66b58 Delete UnderlinedTextFieldsTheming
PiperOrigin-RevId: 715118099
2025-01-13 14:58:30 -08:00
Janette James
43f701bd61 Delete FilledTextAreasTheming
PiperOrigin-RevId: 715100357
2025-01-13 14:04:54 -08:00
Cody Weaver
62b098735e Internal changes
PiperOrigin-RevId: 557888220
2023-08-17 11:40:13 -07:00
Nobody
bec0080936 Fixed up imports for TextControls
PiperOrigin-RevId: 472746963
2022-09-07 09:43:08 -07:00
Jeff Verkoeyen
d4447fdffd Remove all pre-iOS 12 logic.
PiperOrigin-RevId: 401219266
2021-10-06 05:29:40 -07:00
Andrew Overton
df09e7b521 [TextControls] Fix bug where outline was misplaced when label text was empty string
PiperOrigin-RevId: 388706359
2021-08-04 08:51:41 -07:00
Andrew Overton
a2a458fd9a [TextControls] Support original "accessibility element" VoiceOver behavior as well as "accessibility container" behavior similar to UITextField's
PiperOrigin-RevId: 385545545
2021-07-19 07:08:17 -07:00
Nobody
be99633db6 Rollback of ddb161b169
PiperOrigin-RevId: 382748576
2021-07-02 08:59:50 -07:00
Andrew Overton
afbc13663d [TextControls] Expose animationDuration on MDCBaseTextField
PiperOrigin-RevId: 380232003
2021-06-18 11:48:36 -07:00
Andrew Overton
ddb161b169 [TextControls] Refactor MDCBaseTextField VoiceOver Behavior
Closes https://github.com/material-components/material-components-ios/issues/10202

PiperOrigin-RevId: 375141882
2021-05-21 12:38:57 -07:00
Jeff Verkoeyen
a8e4831fd0 Flattening all unit tests into single directories as per convention.
PiperOrigin-RevId: 367426300
2021-04-08 07:33:29 -07:00
Andrew Overton
2a31a3162f [TextControls] Disable label animation when label is truncated
PiperOrigin-RevId: 367256976
2021-04-07 11:12:32 -07:00
Alyssa Weiss
924c49e43b Remove all iOS 10 availability checks from material_components_ios now that only iOS 10+ is supported.
PiperOrigin-RevId: 366437050
2021-04-02 06:33:16 -07:00
Andrew Overton
73e404888d [TextControls] Expose density on text fields and text areas
PiperOrigin-RevId: 355204832
2021-02-02 11:00:01 -08:00
Andrew Overton
ee7f2fce52 [TextControls] Fix imports for clang tidy
PiperOrigin-RevId: 354994728
2021-02-01 12:06:15 -08:00
Andrew Overton
48808bfe67 [TextControls] Add placeholderColor property
PiperOrigin-RevId: 351648295
2021-01-13 13:03:49 -08:00
Andrew Overton
16359d718a [TextControls] Expose inter item spacing
PiperOrigin-RevId: 344252502
2020-11-25 07:53:57 -08:00
Andrew Overton
732e39b160 [TextControls] Expose preferredContainerHeight on MDCBaseTextArea
PiperOrigin-RevId: 344161205
2020-11-24 17:34:22 -08:00
Andrew Overton
a349540e26 [TextControls] Add text areas leading/trailing views
PiperOrigin-RevId: 344113091
2020-11-24 12:45:27 -08:00
Andrew Overton
77c77dc0f8 [TextControl] Fix RTL placeholder behavior
PiperOrigin-RevId: 343916453
2020-11-23 13:26:40 -08:00
Andrew Overton
52e9d15a2b [TextControls] Add placeholder to text area
PiperOrigin-RevId: 341453573
2020-11-09 11:53:48 -08:00
Andrew Overton
a180642678 [TextControls] Add text area snapshot tests
PiperOrigin-RevId: 341414643
2020-11-09 08:53:54 -08:00
Andrew Overton
d729b5c464 [TextControls] Use custom leadingView/trailingView instead of UITextField's leftView/rightView
PiperOrigin-RevId: 341104274
2020-11-06 13:09:58 -08:00
Andrew Overton
9e8c6cc75c [TextControls] add RTL snapshot tests
PiperOrigin-RevId: 340513079
2020-11-03 13:31:54 -08:00
Andrew Overton
9d12dc1f98 [TextControls] Improve TextControls test coverage
PiperOrigin-RevId: 329912259
2020-09-03 07:09:37 -07:00
Andrew Overton
e360f3c1c4 [TextControls] Expose preferredContainerHeight on MDCBaseTextField
PiperOrigin-RevId: 322999254
2020-07-24 08:23:22 -07:00
Andrew Overton
9480bf4c88 [TextControls] Make text fields without floating labels shorter
PiperOrigin-RevId: 320432378
2020-07-09 11:06:27 -07:00
Andrew Overton
9c99bc9006 [TextControls] Add padding customizing properties to MDCBaseTextField and MDCBaseTextArea
This CL adds two new properties, leadingEdgePaddingOverride and trailingEdgePaddingOverride, to MDCBaseTextField and MDCBaseTextArea. When these properties are set, they will be used as padding values by the text field. When they are not set, the text field will use default values. I decided to make these properties NSNumbers, so there is a distinction between setting them to a @0 and leaving them as nil. This is where optionals would come in handy...

Things to come in upcoming CLs:
* Snapshot tests for text areas
* Will rename MDCTextControlVerticalPositioningReference to MDCTextControlVerticalPositioning, for consistency with its horizontal equivalent

PiperOrigin-RevId: 317349272
2020-06-19 11:49:20 -07:00
Andrew Overton
6f169c9950 [TextControls] Update Podspec after TextControls changes
PiperOrigin-RevId: 315477850
2020-06-09 07:17:11 -07:00
Andrew Overton
55f0fead00 [TextControls] Add underlined text field
This CL adds an MDCUnderlinedTextField class and some snapshot tests. Upcoming CLs will make slight visual modifications that will be reflected in snapshot diffs.

PiperOrigin-RevId: 314993621
2020-06-05 14:12:50 -07:00
Andrew Overton
9b2e7ecd7a [TextControls] Move private text fields files to TextControlsPrivate
The files moved in this CL were added before TextControlsPrivate existed. TextControlsPrivate is the best place for them.

PiperOrigin-RevId: 314922972
2020-06-05 07:16:26 -07:00
Andrew Overton
1b63eabe19 [TextControls] Add notion of horizontal positioning reference
No visible or public API changes. Internal refactor.

This change adds the notion of a horizontal positioning reference. This will make it so that different styles can have different horizontal padding values.

Prior to this change, there was only one "horizontal padding" value. This change separates it into two values: one for the padding between leftmost and rightmost views and the left and right edges of the TextControl, and one for the padding between subviews of the TextControl. These two values live on a horizontal positioning reference object. Different styles will one day have different horizontal positioning reference objects.

For now only TextControl text fields will use this.
It's a lot of files but trivial changes in most, if not all, of them.

PiperOrigin-RevId: 314748534
2020-06-04 09:58:13 -07:00
Cody Weaver
fdf87c5995 [MDC/ColorScheme] Remove usage of init within MDC.
We recommend using `initWithDefaults` and we should follow the recommendation. This change removes all usage of `init` within MDC components in order to let us remove that initializer from the public surface.

PiperOrigin-RevId: 302958447
2020-03-25 13:36:51 -07:00
Andrew Overton
beca30be4a
[TextControls] add filled text areas (#9770)
This PR adds the TextControl filled text areas, as well as their theming extensions, and a bunch of unit tests. Snapshot tests to follow.

Related to #9407.
2020-02-20 16:10:53 -05:00
Andrew Overton
79d0ba0231
Add outlined text areas (#9771)
This PR adds the TextControl outlined text areas, as well as their theming extensions, and a bunch of unit tests. Snapshot tests to follow.

Related to #9407.
2020-02-20 15:37:30 -05:00
Andrew Overton
2c1669718c
Add first pass of unit tests for MDCBaseTextArea (#9754)
This PR adds some initial unit tests to MDCBaseTextArea.

Related to #9407.
2020-02-20 11:05:46 -05:00
Andrew Overton
a37edbf81a
MDCTextControlLabelState renamed to MDCTextControlLabelPosition and other changes (#9753)
This follow up PR for #9731 includes the following:
* MDCTextControlLabelState has been renamed to MDCTextControlLabelPosition
* Identical methods in MDCTextField and MDCBaseArea have been consolidated as C functions in shared locations.
* A few methods have been renamed.
* A few pragma marks have been renamed.

Related to #9407.
2020-02-18 16:24:45 -05:00
Andrew Overton
1d7746f552 Reevaluate RTL logic because of internal snapshot testing infrastructure
Some internal snapshot tests force RTL by setting the semantic content attribute. The "is RTL" logic in MDCBaseTextFields up to this point only looked at effective layout direction. This change makes it so that it checks if either RTL or LTR semantic content attributes are being forced before consulting effective layout direction.

PiperOrigin-RevId: 293201200
2020-02-04 12:19:14 -08:00
Andrew Overton
905dac8d81 Invalidate intrinsic content size in MDCBaseTextField
This change makes it so that the MDCBaseTextField invalidates its intrinsic content size when either the view's width or the view's layout's calculatedHeight has changed since the intrinsic content size was last calculated.

PiperOrigin-RevId: 293141339
2020-02-04 07:27:17 -08:00
Andrew Overton
2103f285ee This change adds a new property to the private protocol MDCTextControl. This property, labelFrame, is used by the outlined style object during style application. The outlined style object needs to know the label frame because the outline breaks before it hits the label and resumes after it. Accessing label.frame has proven unreliable during this scenario because of animations in progress.
PiperOrigin-RevId: 292384279
2020-01-30 11:11:01 -08:00
Andrew Overton
083cf8c12f
[TextControls] Restructure Cocoapods and Blaze targets (#9430)
## UPDATED PR DESCRIPTION:

**NOTE: [cl/290296411](http://cl/290296411) must be patched into whatever release includes this PR.**

There were requests to break it up further. With the latest changes, it will look like this in the future:

//components/TextControls:Shared # shared public types
//components/TextControls:BaseTextFields
//components/TextControls:FilledTextFields
//components/TextControls:FilledTextFieldsTheming
//components/TextControls:OutlinedTextFields
//components/TextControls:OutlinedTextFieldsTheming
//components/TextControls:BaseTextAreas
//components/TextControls:FilledTextAreas
//components/TextControls:FilledTextAreasTheming
//components/TextControls:OutlinedTextAreas
//components/TextControls:OutlinedTextAreasTheming
//components/TextControls:FilledInputChipView
//components/TextControls:FilledInputChipViewTheming
//components/TextControls:OutlinedInputChipView
//components/TextControls:OutlinedInputChipViewTheming
//components/private/TextControlsPrivate: Shared # shared private types
//components/private/TextControlsPrivate:OutlinedStyle
//components/private/TextControlsPrivate:FilledStyle

This would make it easier to sunset/retire a specific style of a specific text control type, for example.

## ORIGINAL PR DESCRIPTION:

This PR is an attempt to satisfy the recent requests to break up the Cocoapods subspecs and Bazel targets for TextControls.

~**NOTE: [cl/289710430](http://cl/289710430) must be patched into whatever release includes this PR.**~

**ANOTHER NOTE: This PR will break any third party people who depend on TextControls via Cocoapods and have not pinned to a specific version of our library.**

This PR takes the following Cocoapods subspecs:
TextControls
TextControls+Theming

And breaks them up into these ones:
TextControls
TextControls+TextFields
TextControls+TextFieldsTheming
private/TextControlsPrivate

Similarly, it takes the following bazel targets:
//components/TextControls
//components/TextControls:Theming

And breaks them up into these ones:
//components/TextControls
//components/TextControls:TextFields
//components/TextControls:TextFieldsTheming
//components/private/TextControlsPrivate

Where before a third party client would have had the following in their Podfile:
`pod 'MaterialComponents/TextControls'`
They would now have:
`pod 'MaterialComponents/TextControls+TextFields'`

When I started this work I originally planned to have there be top level components for each of the TextControls that all depended on a shared private component. However, I quickly remembered that all the text controls shared some public types too. At some point I decided it make make sense to make use of extensions.

In order to satisfy pod lib lint I had to add some dummy source files and dummy test files. The dummy test files could potentially have some stuff in there if we want to validate the enums they refer to somehow...

Closes #9405.
2020-01-17 15:21:08 -05:00
Wenyu Zhang
ab901f7654
Revert "[ColorScheme] deprecate init method and update documentation to reflect its purpose. (#9391)" (#9396)
This reverts commit 5fc6ec2f96e69f1e4c579ca69344557ad83329f2.
2020-01-09 13:54:20 -05:00
Wenyu Zhang
5fc6ec2f96
[ColorScheme] deprecate init method and update documentation to reflect its purpose. (#9391)
closes https://github.com/material-components/material-components-ios/issues/9390
2020-01-08 18:07:01 -05:00
Andrew Overton
9e51717abf
[TextControls] Use CGFloat consts in theming extensions (#9360)
This PR makes it so that the opacity values in the TextControls theming extensions use CGFloat consts.

c497441 also resolves an issue related to MDCTextControl textfield disabled opacity values being higher than they should be. I noticed the disabled opacity looked off while working on #9358. This gif, which demonstrates the theming extension value changes in this PR, was taken from that PR:
![example](https://user-images.githubusercontent.com/8020010/71596471-8ab66580-2b0d-11ea-81c5-e1a775d8db14.gif)

Closes #9361.
2020-01-02 09:15:51 -05:00
Andrew Overton
f3daf9b498
[TextControls] Add Outlined theming extension (#9002)
This PR adds the theming extension for MDCOutlinedTextField.

Here's a screenshot:

<img width="370" alt="Screen Shot 2019-11-20 at 12 09 06 PM" src="https://user-images.githubusercontent.com/8020010/69260871-91f16780-0b8e-11ea-8e65-b6b8a373cf89.png">

Closes #8682.
2019-11-20 16:16:21 -05:00
Andrew Overton
c806e4b9d0
[TextControls] Add MDCFilledTextField theming extension (#8993)
This PR adds the theming extension for MDCFilledTextField.

Here's a screenshot:

<img width="359" alt="Screen Shot 2019-11-19 at 9 54 59 AM" src="https://user-images.githubusercontent.com/8020010/69157248-b11ac700-0ab2-11ea-9acb-db06d96e94a3.png">


Related to #8682.
2019-11-20 11:32:58 -05:00
Andrew Overton
c1dc83ed44
[TextControls] Add adjusts content size category behavior (#8802)
This PR adds `UIContentSizeCategoryDidChangeNotification` observing and an implementation of `UIContentSizeCategoryAdjusting`.

Snapshot tests validating behavior in larger content sizes were added in #8781.

Closes #8770.
2019-11-14 13:31:59 -05:00
Andrew Overton
53a925d96d
Snapshot test with AXXXL sizes (#8781)
Note: This PR no longer relates to the automatic adjusting behavior on MDCBaseTextField. Instead, it is solely about adding snapshot test coverage for accessibility XXXL content sizes.

Closes #8800.
2019-11-13 12:26:25 -05:00
Andrew Overton
d5e6951264
[TextControls] Add accessibilityLabel override to MDCBaseTextField (#8773)
UITextField has some VoiceOver support built in--the text the user enters is reflected in the accessibilityValue. The accessibilityLabel, however, seems to be nil unless a user specifies something for it. This PR doesn't change that behavior, but it does make it so that if no accessibilityLabel is set the textfield returns a concatenated string consisting of the label text and any text from the assistive labels.

Closes #8771.
2019-11-12 11:00:42 -05:00
Andrew Overton
02f9c9f01d
Move new TextFields into TextControls directory (#8726)
In this PR I extract the new TextFields from the old TextFields directory. In the future, if we bring over the input chip view and text area, they will go under this new TextControls directory as well.

Closes #8684.
2019-11-07 14:17:56 -05:00