Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging ControlTokenSet to main branch #1206

Merged
merged 4 commits into from
Aug 31, 2022

Conversation

mischreiber
Copy link
Contributor

@mischreiber mischreiber commented Aug 31, 2022

Platforms Impacted

  • iOS
  • macOS

Description of changes

This change represents a large merging of code from fluent2-tokens branch to support the new ControlTokenSet system of reading and customizing token properties.

No functional changes with this PR; this simply brings the ControlTokenSet format that has already been in use in fluent2-tokens over to main. For more information, check out #1146 and its attached list of PRs.

Note: this is not a full merge of fluent2-tokens into main; it's a very selective cherry-picking of changes. Thanks to that, there isn't a "real" merge commit associated with this PR.

Verification

Existing Fluent 2 components continue to behave as expected, with no impact to customization.

Pull request checklist

This PR has considered:

  • Light and Dark appearances
  • iOS supported versions (all major versions greater than or equal current target deployment version)
  • VoiceOver and Keyboard Accessibility
  • Internationalization and Right to Left layouts
  • Different resolutions (1x, 2x, 3x)
  • Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
  • iPad Pointer interaction
  • SwiftUI consumption (validation or new demo scenarios needed)
  • Objective-C exposure (provide it only if needed)
Microsoft Reviewers: Open in CodeFlow

@mischreiber mischreiber requested a review from a team as a code owner August 31, 2022 03:46
@huwilkes
Copy link
Collaborator

What's the change in binary size? Mostly just out of curiosity, I think we need this in main either way.

@mischreiber
Copy link
Contributor Author

What's the change in binary size? Mostly just out of curiosity, I think we need this in main either way.

@harrieshin It's pretty bad, a couple hundred kB. I'll do more work to try and bring it down, but this is a rough hit at first.

@mischreiber mischreiber added the API break This PR introduces a breaking API change label Aug 31, 2022
@mischreiber mischreiber enabled auto-merge (squash) August 31, 2022 23:36
@mischreiber mischreiber merged commit ec6bc43 into microsoft:main Aug 31, 2022
@mischreiber mischreiber deleted the mischreiber/main-cts branch September 1, 2022 00:07
@edjamesmsft edjamesmsft mentioned this pull request Sep 15, 2022
11 tasks
edjamesmsft added a commit that referenced this pull request Sep 27, 2022
* make sure macOS Avatar respect custom color (#1196)

-new private var to bookkeep when the colors are meant to be custom vs default
-remove unnecessary initialsTextField background coloring. It should be just handled by the initailsView itself.
-add a test case in TestAvatarController to have avatar hosted by NSPopover

* Fix Voice Over accessibility for title in TableViewHeaderFooterView w… (#1197)

ISSUE

When Voice Over accessibility is enabled, the TableViewHeaderFooterView title
has a wrong selection when presented in a popover on iPad.

The title in this header/footer is a UITextView and in the existing implementation we override the default accessibility behavior by making the UITextView an accessibility element.
This implementation leads to a wrong text selection for title in popover on iPad.

FIX

The fix is to remove the accessibility element assignment from UITextView and keep the accessibility trait insertion as .header when TableViewHeaderFooterView is used as header and remove the accessibility trait insertion when the view is used as footer. This implementation already exists but it was followed by a 'Bug in iOS - ...' implementation where accessibility element for UITextView was set up to 'false' and then back to 'true'. That implementation broke the VO selection for multi-line of text title for both header and footer scenarios. Removing that logic fixed the issue properly.

* introduced a Medium Fluent Button Size

* Fixed swiftlint issues

* Add Objective C demo for PopupMenu (#1198)

* Add Objective C demo for PopupMenu

* Move setup to loadVIew

* Set stack alignment to top to resize button

* Remove comments

* Add selected image for Toronto so it isn't a blue square

* Fix indentation

* Fix whitespace

* Move ObjC to middle of name

* Merging `ControlTokenSet` to main branch (#1206)

* Merging ControlTokenSet from fluent2-tokens

* Delete accidental file merge

* Restore lost code in separator merge (#1212)

* Revert "PillButtonBar: Fixing warnings for iOS 15 target deployment version. (#1165)" (#1213)

This reverts commit 8d26fe7.

* Align Notification Border with Figma (#1203)

* Align Notification with Figma

* Revert naming and token change

* Align Notification with Figma

* Revert naming and token change

* Rebase onto main

* Delete dupe edge border

* Revert removing default bool

* Implement functionality to show a custom view within a CommandBarItem (#1210)

Implement functionality to show a custom view within a CommandBarItem

* cherry-pick 45c022d (#1217)

Co-authored-by: Sophia Lee <sophia.lee0416@gmail.com>

* sanitization

* sanitization

* Fix tokens, text width, and showDefaultDismissActionButton demo (#1215)

* Remove all usage of UIScreen.main (#1216)

UIScreen.main is deprecated in iOS 16 (https://developer.apple.com/documentation/uikit/uiscreen/1617815-main).

Most of the usage of UIScreen main is legacy code that tries to figure out device pixel. But, in reality, in order to avoid anti-aliasing we should be just making sure we draw on integer points.
If we are trying to draw border, let's just draw on half point for now.

* update demo windowscene

* demo app only: tableviewcell accessory adhering to 1pt borderwidth and 2pt corner radius which are closer to fluent 2 design tokens

* remove usage of UIScreen.middleOrigin

* remove usage of roundDownToDevicePixels

* remove usuage of deviceLineHeight. just use UIFont's lineheight

* delete UIFont extension.

* remove usage of roundToDevicePixels

* remove UIScreen+extension

* Separator height to be half a point

* remove UITableViewCell+extension

* remove uiscreen.main.bounds usage

* remove file reference that doesn't exist

* use guard let to figure out the window for drawercontroller

* Update GradientInfo to specify the gradient is linear (#1218)

* Update documentation to be explicit about linear

* Add Linear to name of GradientInfo

* Remove UIEdgeInsets from SegmentedPillButton (#1221)

* Remove UIEdgeInsets from SegmentedPillButton

* Add TODO

* Move `fluentTheme` from window to view (#1219)

* Move `fluentTheme` from window to view

* Add logic to only refresh if view is a descendent of the newly themed view

* allow colorful image in notification toast

Currently we always render the toast image as template. If the client team pass in image that is set "renderAsOriginal" respect that mode.

* Added a minButtonHeight to account for the fact that the button height currently grows to fit the image size within it

* add new module map in the fluentuilib and add copy phase (#1231)

use FluentUI as a clang module in objc, we want to publish module.modulemap next to the fluentui-swift.h

* Removing spacing and padding values from token sets (#1220)

* First set of controls without spacing tokens

* Complete the rest of the controls

* Restoring in-use values

* Move layout constants to TokenSets

* Revert Notification Colors to Fluent 1 Tokens (#1226)

* CommandBar: Update group spacing and add large content viewer support (#1229)

* Decrease CommandBar item group spacing to 8. Change received approval from the Fluent Design team.
* Enable LargeContentViewer for the CommandBar

* Instantiating state variables in HUD (#1233)

* added min button heights for small and large sizes

* Update AttributedText to scale (#1234)

* no longer need .ado folder (#1232)

* Bumping FluentUI version (0.8.0) (#1230)

* sanitization. Addressed PR Comments

* Fix RTL behavior for CommandBar Pinned Items (#1236)

It was discovered that the RTL behavior for the pinned items in CommandBar was off. The leading and trailing groups were switching sides as expected, but the additional transform being applied `configureHierarchy` is causing the views inside the group to be shown in LTR order.

Fix: Remove the transform for the leading and trailing groups inside `configureHierarchy` and let the default behavior from the UIStackView handle the transition.

* Update Avatar size ramp (#1194)

* Renamed avatar sizes

* Added avatar size 20 and size 56

* Added new sizes in demo controllers

* Removed unused variable in AvatarGroupDemoController

* Moved changes to token sets

* Moved size tokens outside of AvatarTokenSet to fix conflicts

* Bottom sheet collapsed height resolver API (#1207)

* Revert "Revert "PillButtonBar: Fixing warnings for iOS 15 target deployment version. (#1165)" (#1213)" (#1244)

This reverts commit 518bdc6.

* Add swipe to hide API to bottom sheet (#1242)

* Resolved merge and build errors

* Removing unnecessary AvatarTokens.swift

* Trailing whitespace

Co-authored-by: Harrie Shin <hyshin@microsoft.com>
Co-authored-by: isatoderici <65185855+isatoderici@users.noreply.github.com>
Co-authored-by: Amogh Vinod Aralimatti <amaralim@microsoft.com>
Co-authored-by: Mike Schreiber <mischreiber@microsoft.com>
Co-authored-by: huwilkes <67026548+huwilkes@users.noreply.github.com>
Co-authored-by: Jeanie Huynh <31874971+jeaniehuynh@users.noreply.github.com>
Co-authored-by: Des Marks <johnmarks@microsoft.com>
Co-authored-by: Sophia Lee <sophia.lee0416@gmail.com>
Co-authored-by: Amogh Vinod Aralimatti <moggogogo@gmail.com>
Co-authored-by: Lamine Male <106181067+laminesm@users.noreply.github.com>
Co-authored-by: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API break This PR introduces a breaking API change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants