* Replaced all occurences of picker from react native library with picker from community library in the fluent tester
* resolved argument type errors that occured after changing to the community picker control
* replaced picker with menu for basic avatar
* replaced picker for call out
* structured things so that the MenuPicker is only defined once
* replaced picker on AlignmentPicker with picker for win32
* moved MenuPicker to common folder
* resolved alignment picker type errors
* resolved alignment picker type errors and replaced standard usage and theme picker pickers with the menupicker
* added macos files and added menu picker for standard usage on win32 for persona coin
* added persona coins standard usage example to macos
* fixed alignment picker not showing selected option
* changed menu picker styles
* added picker community package to ios
* Change files
* added platform checks for callout
* removed dupe tests for basic avatar
* removed macos/win32 platform files for alignment picker
* removed dupe tests from personas
* created menu picker specific for theme picker macos
* replaced android picker props for community picker props
* defined menu picker props
* made menu picker control whether or not to use menu or community picker module
* made MenuPicker styles const objs
* moved styledpicker to common
* removed MenuPicker platform check and added MenuPicker platform specific files
* Added comment explaining why we have MenuPicker
* correctly adjusted community Picker props
* added community picker module to windows package.json
* resolved merge conflict
* revert adding picker module to windows package
* resolved build error
* removed merge conflict left behind in podfile
* added picker module to windows tester app
* Remove RNC-picker from windows test app
* set windows picker to have a width
* removed .vs
* reverted changelog change
* reverted yarn lock
* added const styles for ThemePicker macos
* removed rnc picker from ignoreMatches
* reverted win32 changelog
* removed set picker width for windows
* put picker styles in common
* removed unsused stylesheet
Co-authored-by: Andrew Coates <30809111+acoates-ms@users.noreply.github.com>
### Platforms Impacted
- [x] iOS
- [x] macOS
- [ ] win32 (Office)
- [ ] windows
- [ ] android
### Description of changes
This change refactors some of our native iOS and macOS code for better downstream integration into the office codebase.
Namely:
- Every native module's `<Component>-Bridging-Header.h` has been renamed to `<Component>ViewManager.h`.
- These files were never bridging headers, and cocoa pods / swift never interpreted them as such. There is potential to improve the RN docs on how to write a native swift module here as well.
- Adds the `BUILD_LIBRARY_FOR_DISTRIBUTION` flag to each native module's pod spec
- This flag allows for ABI stability in our swift static libraries. Note that the main side effect of this flag is it produces a `.swiftinterface` file in the static libraries' swift module. I do not include the swift module in the NuGet to be included downstream in office. In my testing I found it was not needed to get iOS NativeButton to link, so I opted not to include the swif module. This may change in the future as I try to figure out why the macOS NativeButton static library won't link.
- Adds the `OTHER_SWIFT_FLAGS=-gline-tables-only` flag to each native module's pod spec
- This is a potential security risk that is fixed, as per the comment here https://github.com/microsoft/fluentui-react-native/pull/710#discussion_r688016727 .
- removes the `CLANG_DEBUG_INFORMATION_LEVEL=line-tables-only` build flag
- This caused issues with the previous `BUILD_LIBRARY_FOR_DISTRIBUTION` flag and build failures. I'm not sure why.
- Sets the Swift version to 5.0
- I added this because I noticed that Azure pipelines would actually use the Swift 5.3.2 compiler, so I wanted to be explicit which version of swift we are compiling for.
Prior to this change, we could not link the NativeButton component downstream into office due to some linker issues. This change updates a few parts of our native iOS and macOS code such that we can now link the iOS NativeButton. The macOS NativeButton static library still does not properly link, I'll leave that as a followup.
### Verification
I had a local change downstream in office to consume an intermediate NuGet produced by this PR and test that linking worked. That's where I saw that iOS and not macOS works. Link for those who can see it: https://office.visualstudio.com/OE/_build/results?buildId=9621115&view=logs&j=4257c0a7-7659-5375-d6e0-cde9f28a3d36
### Pull request checklist
This PR has considered (when applicable):
- [x] Automated Tests
- [x] Documentation and examples
- [ ] Keyboard Accessibility
- [ ] Voiceover
- [ ] Internationalization and Right-to-left Layouts
* Explicitly specificy files to include in nuspec
* Update azure-pipelines.publish.yml for Azure Pipelines
* renamed nuspec in yml
* Fix some edits in package.nuspec
* Update azure-pipelines.publish.yml
* Copy Link into Shimmer
* try to add it to fluent tester
* Shimmer test (copy of Link Test) showing in iOS test app
* Minimum set of files for an empty native shimmer control, everything is commented out that isn't needed
* obj c version of wrapped shimmer view. needs a /MicrosoftFluentUI/Swift Compatibility Header in the HSP of the generated xcconfig to work
* updated gitignore
* Converted to swift
* Try adding a podspec and referencing it in our final app
* rename podspec
* Remove unnecessary files
* ShimmerView rendering in test app
* Wrapped Shimmer View instead of ShimmerLinesView
* Moved a file
* Trying to add a custom property, does not work
* Using compose framework once more
* shimmerAppearance also exposed
* Lets just use props and no tokens for now
* cleaner swift file
* minor changes
* More changes
* Update some dependencies from the upstream counterpart
* Added new test
* Change files
* Fixed two bugs where Shimmer.tsx threw a tyoe error, and where ShimmerContainverView did not set props correctly
* Some extra comments / documentation
* Setting a defualt token works, customization does not
* Token customization works
* use updated FUA version of shimmer
* Updated podspec
* Add back a minimum iOS deployment target, remove tokenProps
* Update Xcode Version to 11.4.1
* Remove tokenprops: true from Shimmer
* Yarn
* Enhance E2E Reporting + CI Reliability
* Nit - Formatting
* Removing sleep call - originated from RNW. Will observe how this affects the pipeline
* move projects up a dir and opt apple platforms into lerna/yarn
* Don't need to modify these anymore with our projects moved up a level
* try to fix some out of tree platform issues for apple
* Fix build error of wrong platform
* Add parity to win32/windows with our index.js and index.tsx mapping.
* split ios/macos, stand up ios tester
* Remove bundles
* Update CI with our new project locations
* More CI updates
* Pushing up changes the CI says it needs in yarn.lock
* delete unused app.js file
Co-authored-by: Jason Morse <jasonmo@microsoft.com>
* Add macOS/iOS RN deps, update CI
* Update CI steps to launch custom macos/ios packagers
* Update azure-pipelines.yml
* Update azure-pipelines.yml
* Syntax fixes to CI
* Rewrite the yml to fit ADO syntax. Split packagers into two shell scripts
Delete extraneous ios target
* Update apple-xcode-build.yml
* Remove extra vmimage reference
* Update yarn.lock
* Specify vmIage as macos within the job
* Fix path to podfiles
* Add more explicit description of pod install task
* bash var syntax
* Update apple-xcode-build.yml
* Update condition variable syntax
* update missed var name
* add yarn install to platform folders to install node_modules
* yarn install
* update path to build
* Build with rn commands instead of xcodebuild
* synax fix
* Update build settings and remove part of build infra to unblock
* Update mac test project
* Clean up view controller and app delegate code to load the bridge more succinctly
* Pull in the same version of rn for mac/ios
* Make the view controller our delegate
* Remove a pod we dont need until we're on 0.61
* Remove other pods that don't exist in 0.60
* Fix up more pod deps to match 0.60.0 instead of 0.62.0
* Remove flipper deps
* add initial windows template
* minor updates to configuration
* rename tester package
* update fluent-tester deps
* pull experiments/tester out of the compilation
* move tester sources to fluent-tester
* more file changes
* switch the bin name from just-script to fluent-scripts to disambiguate names
* get bundling working in fluent-tester for win32
* unhoist RN to unblock win32
* move last few files from experiments/tester
* Change files
* add .DS_Store to root gitignore
* more config and babel updates
* fix build/bundling errors after syncing master
* fixed metro bundling and start to build rn tools package
* restore checkbox test
* move checkbox test to match pattern from other components
* clean up unused files in scripts
* fix build errors from merge and script transfer
* fix final bundling issues
* Change files
* more updates to fix configurations
* remove demo and experimental web controls
* add pressability from RN 0.63 and rework interactive hooks
* remove win32 references from the tester
* move metro task to build tools
* rename file
* fix windows and win32 bundles
* improve overall bundling task workflow
* fix some win32 build errors
* add some configuration versatility
* add server option to metro task
* add postinstall script to update caches
* attempts to make XAML version reference the right bundle
* enable jest tests for Text and Separator
* Change files
* update yarn.lock
* write windows bundle to dist
* populate with files copied from sdx-platform
* some build fixes
* Some little fixes to get started with initial scaffolding (#1)
* patch to make tsc happy
* fixing some typings
* breakup theming somewhat and fix breaks
* remove postbuild step for now
* add basic docz inclusion
* add start of a demo app
* fix webpack + typescript integration for demo app
* create web versions of native control set
* split component infrastructure into separate packages
* Split theme-registry out and add some documentation