From e7dd82fb83f82122830faab1fb46c3b4da355c6e Mon Sep 17 00:00:00 2001 From: Lamine Male <106181067+laminesm@users.noreply.github.com> Date: Tue, 2 Apr 2024 16:04:34 -0700 Subject: [PATCH 01/90] Publicly expose applyShadow function for SwiftUI (#1992) * Move applyFluentShadow to public extension in ShadowInfo * Add documentation for UIKit shadows * Cleanup --- ios/FluentUI/Button/FluentButtonStyle.swift | 2 +- ios/FluentUI/Core/SwiftUI+ViewModifiers.swift | 6 +++--- ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift | 12 +++++++++--- ios/FluentUI/Notification/FluentNotification.swift | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ios/FluentUI/Button/FluentButtonStyle.swift b/ios/FluentUI/Button/FluentButtonStyle.swift index b55a4d4446..ea8f3151be 100644 --- a/ios/FluentUI/Button/FluentButtonStyle.swift +++ b/ios/FluentUI/Button/FluentButtonStyle.swift @@ -72,7 +72,7 @@ public struct FluentButtonStyle: SwiftUI.ButtonStyle { .frame(minHeight: ButtonTokenSet.minContainerHeight(style: style, size: size)) .background(backgroundView) .overlay { overlayView } - .applyShadow(shadowInfo: shadowInfo) + .applyFluentShadow(shadowInfo: shadowInfo) .pointerInteraction(isEnabled) } diff --git a/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift b/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift index adc4ea225c..3570bcbfb0 100644 --- a/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift +++ b/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift @@ -51,11 +51,11 @@ extension View { modifier(LargeContentViewerModifier(text: text, image: image)) } - /// Applies multiple shadows on a View + /// Applies a key and an ambient shadow on a `View`. /// - Parameters: - /// - shadowInfo: The values of the two shadows to be applied + /// - shadowInfo: The values of the two shadows to be applied. /// - Returns: The modified view. - func applyShadow(shadowInfo: ShadowInfo) -> some View { + public func applyFluentShadow(shadowInfo: ShadowInfo) -> some View { modifier(ShadowModifier(shadowInfo: shadowInfo)) } diff --git a/ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift b/ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift index 5cca73c048..c038adcff7 100644 --- a/ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift +++ b/ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift @@ -5,7 +5,6 @@ import CoreGraphics import UIKit -import Foundation /// Represents a two-part shadow as used by FluentUI. @objc(MSFShadowInfo) @@ -68,7 +67,10 @@ public class ShadowInfo: NSObject { } public extension ShadowInfo { - + /// Applies a key and an ambient shadow on a `UIView`. + /// - Parameters: + /// - view: The view on which the shadows will be applied. + /// - parentController: The view controller responsible for the view on which the shadows will be applied. func applyShadow(to view: UIView, parentController: UIViewController? = nil) { guard var shadowable = (view as? Shadowable) ?? (view.superview as? Shadowable) ?? (parentController as? Shadowable) else { assertionFailure("Cannot apply Fluent shadows to a non-Shadowable view") @@ -88,6 +90,11 @@ public extension ShadowInfo { view.layer.insertSublayer(keyShadow, below: ambientShadow) } + /// Initializes a `CALayer` with the relevant `ShadowInfo` values. + /// - Parameters: + /// - view: The view on which the shadow layer will be applied. + /// - isAmbientShadow: Determines whether to apply ambient or key shadow values on the layer. + /// - Returns: The modified `CALayer`. func initializeShadowLayer(view: UIView, isAmbientShadow: Bool = false) -> CALayer { let layer = CALayer() @@ -109,7 +116,6 @@ public extension ShadowInfo { /// Public protocol that, when implemented, allows any UIView or one of its subviews to implement fluent shadows public protocol Shadowable { - /// The layer on which the ambient shadow is implemented var ambientShadow: CALayer? { get set } diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/ios/FluentUI/Notification/FluentNotification.swift index bb4d6ba061..27a725fdd2 100644 --- a/ios/FluentUI/Notification/FluentNotification.swift +++ b/ios/FluentUI/Notification/FluentNotification.swift @@ -288,7 +288,7 @@ public struct FluentNotification: View, TokenizedControlView { backgroundFill .clipShape(RoundedRectangle(cornerRadius: tokenSet[.cornerRadius].float)) ) - .applyShadow(shadowInfo: shadowInfo) + .applyFluentShadow(shadowInfo: shadowInfo) ) .onTapGesture { if let messageAction = messageButtonAction { From 585aa32eb6c9037d0ac24789e2339ae6d97a1ce8 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 3 Apr 2024 14:10:52 -0700 Subject: [PATCH 02/90] New `FluentButtonToggleStyle` (#1993) * Creating new `FluentButtonToggleStyle` * Simplify corner radius calculation for buttons * Typos, GlobalTokens, and renaming Presssed -> On --- .../Demos/ButtonDemoController_SwiftUI.swift | 53 ++++++++++++++----- ios/FluentUI.xcodeproj/project.pbxproj | 4 ++ ios/FluentUI/Button/ButtonTokenSet.swift | 2 +- ios/FluentUI/Button/FluentButtonStyle.swift | 34 +++++++----- .../Button/FluentButtonToggleStyle.swift | 49 +++++++++++++++++ 5 files changed, 114 insertions(+), 28 deletions(-) create mode 100644 ios/FluentUI/Button/FluentButtonToggleStyle.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift index 8b7781e218..9320590d41 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift @@ -65,7 +65,11 @@ extension ButtonDemoControllerSwiftUI: UIPopoverPresentationControllerDelegate { struct ButtonDemoView: View { public var body: some View { VStack { - demoButton(style, size, isDisabled: isDisabled) + if showToggle { + demoToggle(size, isDisabled: isDisabled) + } else { + demoButton(style, size, isDisabled: isDisabled) + } demoOptions } } @@ -77,33 +81,53 @@ struct ButtonDemoView: View { @State var showAlert: Bool = false @State var size: ControlSize = .large @State var style: FluentUI.ButtonStyle = .accent + @State var showToggle: Bool = false @Environment(\.fluentTheme) var fluentTheme: FluentTheme + @State var isToggleOn: Bool = false + + @ViewBuilder + private var buttonLabel: some View { + HStack { + if showImage { + Image("Placeholder_24") + } + if showLabel && text.count > 0 { + Text(text) + } + } + } + @ViewBuilder private func demoButton(_ buttonStyle: FluentUI.ButtonStyle, _ controlSize: ControlSize, isDisabled: Bool) -> some View { Button(action: { showAlert = true }, label: { - HStack { - if showImage { - Image("Placeholder_24") - } - if showLabel && text.count > 0 { - Text(text) - } - } + buttonLabel }) .buttonStyle(FluentButtonStyle(style: buttonStyle)) .controlSize(controlSize) .disabled(isDisabled) .fixedSize() - .padding(8.0) + .padding(GlobalTokens.spacing(.size80)) .alert(isPresented: $showAlert, content: { Alert(title: Text("Button tapped")) }) } + @ViewBuilder + private func demoToggle(_ controlSize: ControlSize, isDisabled: Bool) -> some View { + Toggle(isOn: $isToggleOn, label: { + buttonLabel + }) + .toggleStyle(FluentButtonToggleStyle()) + .controlSize(controlSize) + .disabled(isDisabled) + .fixedSize() + .padding(GlobalTokens.spacing(.size80)) + } + @ViewBuilder private var demoOptions: some View { Form { @@ -124,9 +148,12 @@ struct ButtonDemoView: View { } Section("Style and Size") { - Picker("Style", selection: $style) { - ForEach(Array(FluentUI.ButtonStyle.allCases.enumerated()), id: \.element) { _, buttonStyle in - Text("\(buttonStyle.description)").tag(buttonStyle.rawValue) + FluentUIDemoToggle(titleKey: "Present as toggle", isOn: $showToggle) + if !showToggle { + Picker("Style", selection: $style) { + ForEach(Array(FluentUI.ButtonStyle.allCases.enumerated()), id: \.element) { _, buttonStyle in + Text("\(buttonStyle.description)").tag(buttonStyle.rawValue) + } } } diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index 6da41252ac..e69c474cf7 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -200,6 +200,7 @@ 9298798B2669A875002B1EB4 /* PersonaButtonTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 927E34C62668350800998031 /* PersonaButtonTokenSet.swift */; }; 929DD257266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929DD255266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift */; }; 929DD25A266ED3B600E8175E /* PersonaButtonCarousel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */; }; + 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */; }; 92A1E4F526A791590007ED60 /* MSFCardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */; }; 92B7E6A326864AE900EFC15E /* MSFPersonaButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */; }; 92D49054278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */; }; @@ -367,6 +368,7 @@ 929215B82B6C75E500D4EA9F /* AvatarTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarTests.swift; sourceTree = ""; }; 929DD255266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselTokenSet.swift; sourceTree = ""; }; 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarousel.swift; sourceTree = ""; }; + 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentButtonToggleStyle.swift; sourceTree = ""; }; 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFCardNudge.swift; sourceTree = ""; }; 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFPersonaButton.swift; sourceTree = ""; }; 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselModifiers.swift; sourceTree = ""; }; @@ -668,6 +670,7 @@ A5CEC23020E451D00016922A /* Button.swift */, EC65F78F292EDCEF002A1A23 /* ButtonTokenSet.swift */, 92279B322B97C7DC00994D88 /* FluentButtonStyle.swift */, + 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */, ); path = Button; sourceTree = ""; @@ -1733,6 +1736,7 @@ 925728F7276D6AF800EE1019 /* ShadowInfo.swift in Sources */, 66963D0A29CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift in Sources */, 5328D97326FBA3D700F3723B /* IndeterminateProgressBarModifiers.swift in Sources */, + 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */, 923DB9D7274CB66D00D8E58A /* ControlHostingView.swift in Sources */, 5314E03B25F00E3D0099271A /* BadgeStringExtractor.swift in Sources */, EC1C31732923022E00CF052C /* SegmentedControlTokenSet.swift in Sources */, diff --git a/ios/FluentUI/Button/ButtonTokenSet.swift b/ios/FluentUI/Button/ButtonTokenSet.swift index 10bb01b61f..b49cf8474d 100644 --- a/ios/FluentUI/Button/ButtonTokenSet.swift +++ b/ios/FluentUI/Button/ButtonTokenSet.swift @@ -233,7 +233,7 @@ public class ButtonTokenSet: ControlTokenSet { } case .cornerRadius: return .float { - if Compatibility.isDeviceIdiomVision() { + if style().isFloating || Compatibility.isDeviceIdiomVision() { return ButtonTokenSet.minContainerHeight(style: style(), size: size()) / 2 } switch size() { diff --git a/ios/FluentUI/Button/FluentButtonStyle.swift b/ios/FluentUI/Button/FluentButtonStyle.swift index ea8f3151be..34b72a398d 100644 --- a/ios/FluentUI/Button/FluentButtonStyle.swift +++ b/ios/FluentUI/Button/FluentButtonStyle.swift @@ -6,7 +6,7 @@ import SwiftUI import UIKit -/// ButtonStyle which configures the Button View according to its state and design tokens. +/// `ButtonStyle` which configures the `Button` according to its state and design tokens. public struct FluentButtonStyle: SwiftUI.ButtonStyle { public init(style: ButtonStyle) { self.style = style @@ -16,10 +16,10 @@ public struct FluentButtonStyle: SwiftUI.ButtonStyle { let isPressed = configuration.isPressed let isDisabled = !isEnabled let isFocused = isFocused - let isFloatingStyle = style.isFloating let size = size let tokenSet = ButtonTokenSet(style: { style }, size: { size }) + tokenSet.replaceAllOverrides(with: tokenOverrides) tokenSet.update(fluentTheme) let cornerRadius = tokenSet[.cornerRadius].float @@ -44,27 +44,23 @@ public struct FluentButtonStyle: SwiftUI.ButtonStyle { } @ViewBuilder var backgroundView: some View { - if isFloatingStyle { - backgroundColor.clipShape(Capsule()) - } else { + if backgroundColor != Color(.clear) { backgroundColor.clipShape(RoundedRectangle(cornerRadius: cornerRadius)) } } @ViewBuilder var overlayView: some View { if borderColor != Color(.clear) { - if isFloatingStyle { - Capsule() - .stroke(style: .init(lineWidth: tokenSet[.borderWidth].float)) - .foregroundStyle(borderColor) - } else { - RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) - .stroke(style: .init(lineWidth: tokenSet[.borderWidth].float)) - .foregroundStyle(borderColor) - } + contentShape + .stroke(style: .init(lineWidth: tokenSet[.borderWidth].float)) + .foregroundStyle(borderColor) } } + @ViewBuilder var contentShape: some Shape { + RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) + } + return configuration.label .font(Font(tokenSet[.titleFont].uiFont)) .foregroundStyle(foregroundColor) @@ -73,6 +69,7 @@ public struct FluentButtonStyle: SwiftUI.ButtonStyle { .background(backgroundView) .overlay { overlayView } .applyFluentShadow(shadowInfo: shadowInfo) + .contentShape(contentShape) .pointerInteraction(isEnabled) } @@ -108,4 +105,13 @@ public struct FluentButtonStyle: SwiftUI.ButtonStyle { trailing: style.isFloating ? fabAlternativePadding : horizontalPadding ) } + + private var tokenOverrides: [ButtonToken: ControlTokenValue]? +} + +public extension FluentButtonStyle { + /// Provide override values for various `ButtonToken` values. + mutating func overrideTokens(_ overrides: [ButtonToken: ControlTokenValue]) { + tokenOverrides = overrides + } } diff --git a/ios/FluentUI/Button/FluentButtonToggleStyle.swift b/ios/FluentUI/Button/FluentButtonToggleStyle.swift new file mode 100644 index 0000000000..81c1db373d --- /dev/null +++ b/ios/FluentUI/Button/FluentButtonToggleStyle.swift @@ -0,0 +1,49 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// `ToggleStyle` which configures the `Toggle` according to its state and design tokens. +public struct FluentButtonToggleStyle: ToggleStyle { + public init() {} + + @Environment(\.fluentTheme) private var fluentTheme: FluentTheme + + public func makeBody(configuration: Configuration) -> some View { + SwiftUI.Button(action: { + configuration.isOn.toggle() + }, label: { + configuration.label + }) + .buttonStyle(configuration.isOn ? buttonStyleOn : buttonStyle) + } + + private var buttonStyle: FluentButtonStyle { + var style = FluentButtonStyle(style: .transparentNeutral) + style.overrideTokens(buttonTokens) + return style + } + + private var buttonStyleOn: FluentButtonStyle { + var style = FluentButtonStyle(style: .subtle) + style.overrideTokens(buttonOnTokens) + return style + } + + private var buttonTokens: [ButtonToken: ControlTokenValue] { + [ + .cornerRadius: .float { GlobalTokens.corner(.radius40) } + ] + } + + private var buttonOnTokens: [ButtonToken: ControlTokenValue] { + let backgroundColor = fluentTheme.color(.brandBackgroundTint) + return buttonTokens.merging([ + .backgroundColor: .uiColor { backgroundColor }, + .backgroundPressedColor: .uiColor { backgroundColor }, + .backgroundFocusedColor: .uiColor { backgroundColor } + ]) { (_, new) in new } + } +} From b50b2f407789cded88f0b490cb033c956ba2fa97 Mon Sep 17 00:00:00 2001 From: Michael Chong Date: Thu, 4 Apr 2024 09:16:39 -0600 Subject: [PATCH 03/90] Fix Mac Catalyst support of SPM (#1989) * fix * Update Package.swift * Update Package.swift --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index db4600650b..e4c3057494 100644 --- a/Package.swift +++ b/Package.swift @@ -23,7 +23,7 @@ let package = Package( .target( name: "FluentUI", dependencies: [ - .target(name: "FluentUI_ios", condition: .when(platforms: [.iOS, .visionOS])), + .target(name: "FluentUI_ios", condition: .when(platforms: [.iOS, .visionOS, .macCatalyst])), .target(name: "FluentUI_macos", condition: .when(platforms: [.macOS])) ], path: "public" From 3da41ed12da41ad90c0f2f6fed5cdbc8e8350cfc Mon Sep 17 00:00:00 2001 From: Glen Huang Date: Thu, 4 Apr 2024 13:44:32 -0700 Subject: [PATCH 04/90] Bumping to 0.27.0 (#1991) * bump version * Revert "bump version" This reverts commit b155eb338fbc422f815b4c57fa8db3caaa8aa4ce. * use script to bump version --- MicrosoftFluentUI.podspec | 2 +- ios/FluentUI.Demo/FluentUI.Demo/Info.plist | 4 ++-- ios/FluentUI.Resources/Info.plist | 4 ++-- macos/FluentUI/FluentUI-Info.plist | 4 ++-- macos/FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 55a87e01af..7ccfe489d9 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.26.0' + s.version = '0.27.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist index 9af53e24ba..b5fa117d83 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist +++ b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.26.0 + 1.27.0 CFBundleURLTypes @@ -26,7 +26,7 @@ CFBundleVersion - 137.26.0 + 137.27.0 LSRequiresIPhoneOS UIApplicationSceneManifest diff --git a/ios/FluentUI.Resources/Info.plist b/ios/FluentUI.Resources/Info.plist index cd5f8a1c6e..1f0b5d901b 100644 --- a/ios/FluentUI.Resources/Info.plist +++ b/ios/FluentUI.Resources/Info.plist @@ -13,8 +13,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 0.26.0 + 0.27.0 CFBundleVersion - 0.26.0 + 0.27.0 diff --git a/macos/FluentUI/FluentUI-Info.plist b/macos/FluentUI/FluentUI-Info.plist index 2022845a06..eafed2164d 100644 --- a/macos/FluentUI/FluentUI-Info.plist +++ b/macos/FluentUI/FluentUI-Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.26.0 + 0.27.0 CFBundleVersion - 0.26.0 + 0.27.0 diff --git a/macos/FluentUITestApp/FluentUITestApp-Info.plist b/macos/FluentUITestApp/FluentUITestApp-Info.plist index 878eb6b256..04d1b9545b 100644 --- a/macos/FluentUITestApp/FluentUITestApp-Info.plist +++ b/macos/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.26.0 + 0.27.0 CFBundleVersion - 62.26.0 + 62.27.0 LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion From 07cd71869d45e1dcdd3ee77a0d61ce43172e24af Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Mon, 8 Apr 2024 16:42:01 -0700 Subject: [PATCH 05/90] make modifiers optional (#1994) --- ios/FluentUI/List/ListItemModifiers.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/FluentUI/List/ListItemModifiers.swift b/ios/FluentUI/List/ListItemModifiers.swift index 73fcb4e5a9..08abd95520 100644 --- a/ios/FluentUI/List/ListItemModifiers.swift +++ b/ios/FluentUI/List/ListItemModifiers.swift @@ -26,7 +26,7 @@ public extension ListItem { /// The line limit for `title`. /// - Parameter titleLineLimit: The number of lines to display for the `title`. /// - Returns: The modified `ListItem` with the property set. - func titleLineLimit(_ titleLineLimit: Int) -> ListItem { + func titleLineLimit(_ titleLineLimit: Int?) -> ListItem { var listItem = self listItem.titleLineLimit = titleLineLimit return listItem @@ -35,7 +35,7 @@ public extension ListItem { /// The line limit for `subtitle`. /// - Parameter subtitleLineLimit: The number of lines to display for the `subtitle`. /// - Returns: The modified `ListItem` with the property set. - func subtitleLineLimit(_ subtitleLineLimit: Int) -> ListItem { + func subtitleLineLimit(_ subtitleLineLimit: Int?) -> ListItem { var listItem = self listItem.subtitleLineLimit = subtitleLineLimit return listItem @@ -44,7 +44,7 @@ public extension ListItem { /// The line limit for `footer`. /// - Parameter footerLineLimit: The number of lines to display for the `footer`. /// - Returns: The modified `ListItem` with the property set. - func footerLineLimit(_ footerLineLimit: Int) -> ListItem { + func footerLineLimit(_ footerLineLimit: Int?) -> ListItem { var listItem = self listItem.footerLineLimit = footerLineLimit return listItem From e01e7f4b1ece9473a110a5509e5797dd22c322f4 Mon Sep 17 00:00:00 2001 From: Des Marks Date: Mon, 15 Apr 2024 08:25:06 -0700 Subject: [PATCH 06/90] Extend FluentButtonToggleStyle to support overrideTokens(_:) (#1996) * Extend FluentButtonToggleStyle to support overrideTokens(_:) and add functionality to the SwiftUI button demo. --- .../Demos/ButtonDemoController_SwiftUI.swift | 27 +++++++++++++++++-- .../Button/FluentButtonToggleStyle.swift | 25 +++++++++++++++-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift index 9320590d41..97ee8ee7e2 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift @@ -82,6 +82,7 @@ struct ButtonDemoView: View { @State var size: ControlSize = .large @State var style: FluentUI.ButtonStyle = .accent @State var showToggle: Bool = false + @State var showThemeOverrides: Bool = false @Environment(\.fluentTheme) var fluentTheme: FluentTheme @@ -106,7 +107,7 @@ struct ButtonDemoView: View { }, label: { buttonLabel }) - .buttonStyle(FluentButtonStyle(style: buttonStyle)) + .buttonStyle(fluentButtonStyle(style: buttonStyle)) .controlSize(controlSize) .disabled(isDisabled) .fixedSize() @@ -121,7 +122,7 @@ struct ButtonDemoView: View { Toggle(isOn: $isToggleOn, label: { buttonLabel }) - .toggleStyle(FluentButtonToggleStyle()) + .toggleStyle(fluentButtonToggleStyle()) .controlSize(controlSize) .disabled(isDisabled) .fixedSize() @@ -162,6 +163,8 @@ struct ButtonDemoView: View { Text("\(buttonSize.description)").tag(buttonSize) } } + + FluentUIDemoToggle(titleKey: "Show theme overrides", isOn: $showThemeOverrides) } Section("More") { @@ -188,6 +191,26 @@ struct ButtonDemoView: View { } } } + + private func fluentButtonStyle(style: FluentUI.ButtonStyle) -> FluentButtonStyle { + var buttonStyle = FluentButtonStyle(style: style) + if showThemeOverrides { + buttonStyle.overrideTokens(tokenOverrides) + } + return buttonStyle + } + + private func fluentButtonToggleStyle() -> FluentButtonToggleStyle { + var buttonToggleStyle = FluentButtonToggleStyle() + if showThemeOverrides { + buttonToggleStyle.overrideTokens(tokenOverrides) + } + return buttonToggleStyle + } + + private var tokenOverrides: [ButtonToken: ControlTokenValue] = [ + .backgroundPressedColor: .uiColor { .red } + ] } private extension ControlSize { diff --git a/ios/FluentUI/Button/FluentButtonToggleStyle.swift b/ios/FluentUI/Button/FluentButtonToggleStyle.swift index 81c1db373d..cc12024787 100644 --- a/ios/FluentUI/Button/FluentButtonToggleStyle.swift +++ b/ios/FluentUI/Button/FluentButtonToggleStyle.swift @@ -33,17 +33,38 @@ public struct FluentButtonToggleStyle: ToggleStyle { } private var buttonTokens: [ButtonToken: ControlTokenValue] { - [ + var tokens: [ButtonToken: ControlTokenValue] = [ .cornerRadius: .float { GlobalTokens.corner(.radius40) } ] + + if let tokenOverrides = tokenOverrides { + tokens = tokens.merging(tokenOverrides) { (_, new) in new } + } + + return tokens } private var buttonOnTokens: [ButtonToken: ControlTokenValue] { let backgroundColor = fluentTheme.color(.brandBackgroundTint) - return buttonTokens.merging([ + var tokens: [ButtonToken: ControlTokenValue] = buttonTokens.merging([ .backgroundColor: .uiColor { backgroundColor }, .backgroundPressedColor: .uiColor { backgroundColor }, .backgroundFocusedColor: .uiColor { backgroundColor } ]) { (_, new) in new } + + if let tokenOverrides = tokenOverrides { + tokens = tokens.merging(tokenOverrides) { (_, new) in new } + } + + return tokens + } + + private var tokenOverrides: [ButtonToken: ControlTokenValue]? +} + +public extension FluentButtonToggleStyle { + /// Provide override values for various `ButtonToken` values. + mutating func overrideTokens(_ overrides: [ButtonToken: ControlTokenValue]) { + tokenOverrides = overrides } } From 3fed828e9b54601c50ebd4ceb51a9d349e488252 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 17 Apr 2024 14:17:17 -0700 Subject: [PATCH 07/90] Adding `minimumScaleFactor` to HUD rendering (#1997) * Adding `minimumScaleFactor` to HUD rendering * Move minimumScaleFactor constant to HeadsUpDisplayTokenSet --- ios/FluentUI/HUD/HeadsUpDisplay.swift | 1 + ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ios/FluentUI/HUD/HeadsUpDisplay.swift b/ios/FluentUI/HUD/HeadsUpDisplay.swift index 599492edbf..fb2d045060 100644 --- a/ios/FluentUI/HUD/HeadsUpDisplay.swift +++ b/ios/FluentUI/HUD/HeadsUpDisplay.swift @@ -79,6 +79,7 @@ public struct HeadsUpDisplay: View, TokenizedControlView { Spacer() .frame(height: verticalPadding) Text(label) + .minimumScaleFactor(HeadsUpDisplayTokenSet.labelMinimumScaleFactor) .foregroundColor(Color(tokenSet[.labelColor].uiColor)) .lineLimit(2) .multilineTextAlignment(.center) diff --git a/ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift b/ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift index 15fa1249d9..ddb272c425 100644 --- a/ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift +++ b/ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift @@ -76,4 +76,6 @@ extension HeadsUpDisplayTokenSet { /// The maximum value for the side of the squared background of the Heads-up display. static let maxSize: CGFloat = 192 + /// The minimum scale factor to use for the label when its text does not fit. + static let labelMinimumScaleFactor: CGFloat = 0.6 } From badfa8efff24090324bdc0bef66f4abcbf556ca5 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 17 Apr 2024 21:45:12 -0700 Subject: [PATCH 08/90] Move iOS projects to always use spaces for indentation (#1998) --- ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj | 1 + ios/FluentUI.xcodeproj/project.pbxproj | 1 + 2 files changed, 2 insertions(+) diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index 12eade7805..cc4da9461f 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -474,6 +474,7 @@ 5340828A26CFF298007716E1 /* Recovered References */, ); sourceTree = ""; + usesTabs = 0; }; A5CEC20D20E436F10016922A /* Products */ = { isa = PBXGroup; diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index e69c474cf7..5f7ac49e86 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -927,6 +927,7 @@ 923DF2E62712B6AB00637646 /* Frameworks */, ); sourceTree = ""; + usesTabs = 0; }; A5CEC15220D980B20016922A /* Products */ = { isa = PBXGroup; From a9ac8e46e4b1bbd281dfadcee81ecc5adc3e258d Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:41:24 -0700 Subject: [PATCH 09/90] Update accessoryCheckmarkColor on visionOS to be white (#1999) --- ios/FluentUI/Table View/TableViewCellTokenSet.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/FluentUI/Table View/TableViewCellTokenSet.swift b/ios/FluentUI/Table View/TableViewCellTokenSet.swift index 0405d46f0f..321dad9f9b 100644 --- a/ios/FluentUI/Table View/TableViewCellTokenSet.swift +++ b/ios/FluentUI/Table View/TableViewCellTokenSet.swift @@ -162,7 +162,7 @@ public class TableViewCellTokenSet: ControlTokenSet { return .uiColor { theme.color(.foreground3) } case .accessoryCheckmarkColor: - return .uiColor { theme.color(.brandForeground1) } + return .uiColor { Compatibility.isDeviceIdiomVision() ? .white : theme.color(.brandForeground1) } case .separatorColor: return .uiColor { theme.color(.stroke2) } From 0e7c12e038b47125c6dba7ad065ce7e5ef41c3bb Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:54:34 -0400 Subject: [PATCH 10/90] Place notification on glass on visionOS (#2002) --- ios/FluentUI/Notification/FluentNotification.swift | 3 +++ ios/FluentUI/Notification/NotificationTokenSet.swift | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/ios/FluentUI/Notification/FluentNotification.swift index 27a725fdd2..4595704457 100644 --- a/ios/FluentUI/Notification/FluentNotification.swift +++ b/ios/FluentUI/Notification/FluentNotification.swift @@ -290,6 +290,9 @@ public struct FluentNotification: View, TokenizedControlView { ) .applyFluentShadow(shadowInfo: shadowInfo) ) +#if os(visionOS) + .glassBackgroundEffect(in: RoundedRectangle(cornerRadius: tokenSet[.cornerRadius].float)) +#endif // os(visionOS) .onTapGesture { if let messageAction = messageButtonAction { isPresented = false diff --git a/ios/FluentUI/Notification/NotificationTokenSet.swift b/ios/FluentUI/Notification/NotificationTokenSet.swift index bdeace0f6b..6cc2f5a3a4 100644 --- a/ios/FluentUI/Notification/NotificationTokenSet.swift +++ b/ios/FluentUI/Notification/NotificationTokenSet.swift @@ -206,7 +206,7 @@ public class NotificationTokenSet: ControlTokenSet case .shadow: return .shadowInfo { - if style().isToast { + if style().isToast && !Compatibility.isDeviceIdiomVision() { return theme.shadow(.shadow16) } else { return theme.shadow(.clear) From b8a7cbb83acefeab3d65304d707dd4f31ceec8d8 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 24 Apr 2024 21:14:48 -0700 Subject: [PATCH 11/90] New SwiftUI `DemoHostingController` parent class (#2006) --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 4 + .../FluentUI.Demo/DemoController.swift | 2 +- .../FluentUI.Demo/DemoHostingController.swift | 75 +++++++++++++++++++ .../DemoTableViewController.swift | 2 +- .../Demos/ButtonDemoController_SwiftUI.swift | 53 ++----------- 5 files changed, 87 insertions(+), 49 deletions(-) create mode 100644 ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index cc4da9461f..891f5fdc88 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -85,6 +85,7 @@ 8F0B81122670200300463726 /* AppCenterDistribute in Frameworks */ = {isa = PBXBuildFile; platformFilter = ios; productRef = 8F0B81112670200300463726 /* AppCenterDistribute */; }; 8F0B8114267021A700463726 /* AppCenterAnalytics in Frameworks */ = {isa = PBXBuildFile; platformFilter = ios; productRef = 8F0B8113267021A700463726 /* AppCenterAnalytics */; }; 8F0B8116267021A700463726 /* AppCenterCrashes in Frameworks */ = {isa = PBXBuildFile; platformFilter = ios; productRef = 8F0B8115267021A700463726 /* AppCenterCrashes */; }; + 9211BC612BD97B7900B95200 /* DemoHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9211BC602BD97B7900B95200 /* DemoHostingController.swift */; }; 92279B352B97F5DA00994D88 /* ButtonDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92279B342B97F5D900994D88 /* ButtonDemoController_SwiftUI.swift */; }; 923DF2DB271158C900637646 /* libFluentUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 923DF2DA271158C900637646 /* libFluentUI.a */; }; 923DF2DF27115B4700637646 /* FluentUIResources-ios.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */; }; @@ -221,6 +222,7 @@ 807E8B4428F9F8B8002B8F84 /* PillButtonDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillButtonDemoController.swift; sourceTree = ""; }; 80AECC0B2630F1BB005AF2F3 /* BottomCommandingDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomCommandingDemoController.swift; sourceTree = ""; }; 80B1F7002628D8BB004DFEE5 /* BottomSheetDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetDemoController.swift; sourceTree = ""; }; + 9211BC602BD97B7900B95200 /* DemoHostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoHostingController.swift; sourceTree = ""; }; 92279B342B97F5D900994D88 /* ButtonDemoController_SwiftUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonDemoController_SwiftUI.swift; sourceTree = ""; }; 923DF2DA271158C900637646 /* libFluentUI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFluentUI.a; sourceTree = BUILT_PRODUCTS_DIR; }; 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = "FluentUIResources-ios.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -457,6 +459,7 @@ 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */, E6842995247C350700A29C40 /* DemoColorThemes.swift */, A5DCA75F211E3B4C005F4CB7 /* DemoController.swift */, + 9211BC602BD97B7900B95200 /* DemoHostingController.swift */, A5CEC21120E436F10016922A /* DemoListViewController.swift */, 92561E722718AD090072ED00 /* DemoTableViewController.swift */, 6FC8AD3A28DBAF280010C0F8 /* ReadmeViewController.swift */, @@ -818,6 +821,7 @@ 6FEED93B28A6E5520099D178 /* AliasColorTokensDemoController.swift in Sources */, A5DCA760211E3B4C005F4CB7 /* DemoController.swift in Sources */, F30B74382A7DB177000F63A0 /* ListActionItemDemoController_SwiftUI.swift in Sources */, + 9211BC612BD97B7900B95200 /* DemoHostingController.swift in Sources */, 5328D97B26FBA3EA00F3723B /* IndeterminateProgressBarDemoController.swift in Sources */, 5373D55F2694C3070032A3B4 /* AvatarDemoController.swift in Sources */, 7D0931C124AAA3D30072458A /* SideTabBarDemoController.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift index 40dd820abf..93062846bc 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift @@ -166,7 +166,7 @@ class DemoController: UIViewController { let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), style: .plain, target: self, - action: #selector(showReadmePopover)) + action: #selector(showReadmePopover(_:))) navigationItem.rightBarButtonItems = [readmeButton, settingsButton] } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift new file mode 100644 index 0000000000..91a16c4dff --- /dev/null +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift @@ -0,0 +1,75 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI +import FluentUI + +/// A specialized subclass of `FluentThemedHostingController` that can be used for SwiftUI demo screens. +class DemoHostingController: FluentThemedHostingController { + init(rootView: AnyView, title: String, readmeText: String? = nil) { + super.init(rootView: rootView) + self.title = title + } + + @objc required dynamic init?(coder aDecoder: NSCoder) { + preconditionFailure("init(coder:) has not been implemented") + } + + @MainActor required dynamic init(rootView: AnyView) { + super.init(rootView: rootView) + } + + override func viewDidLoad() { + super.viewDidLoad() + configureAppearanceAndReadmePopovers() + } + + // MARK: - Demo Appearance Popover + + func configureAppearanceAndReadmePopovers() { + let settingsButton = UIBarButtonItem(image: UIImage(named: "ic_fluent_settings_24_regular"), + style: .plain, + target: self, + action: #selector(showAppearancePopover(_:))) + let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), + style: .plain, + target: self, + action: #selector(showReadmePopover(_:))) + navigationItem.rightBarButtonItems = [readmeButton, settingsButton] + } + + @objc func showReadmePopover(_ sender: UIBarButtonItem) { + readmeViewController.popoverPresentationController?.barButtonItem = sender + readmeViewController.popoverPresentationController?.delegate = self + self.present(readmeViewController, animated: true, completion: nil) + } + + @objc func showAppearancePopover(_ sender: AnyObject, presenter: UIViewController) { + if let barButtonItem = sender as? UIBarButtonItem { + appearanceController.popoverPresentationController?.barButtonItem = barButtonItem + } else if let sourceView = sender as? UIView { + appearanceController.popoverPresentationController?.sourceView = sourceView + appearanceController.popoverPresentationController?.sourceRect = sourceView.bounds + } + appearanceController.popoverPresentationController?.delegate = self + presenter.present(appearanceController, animated: true, completion: nil) + } + + @objc func showAppearancePopover(_ sender: AnyObject) { + showAppearancePopover(sender, presenter: self) + } + + private var readmeText: String? + + private lazy var appearanceController: DemoAppearanceController = .init(delegate: self as? DemoAppearanceDelegate) + private lazy var readmeViewController: ReadmeViewController = .init(readmeString: readmeText) +} + +extension DemoHostingController: UIPopoverPresentationControllerDelegate { + /// Overridden to allow for popover-style modal presentation on compact (e.g. iPhone) devices. + func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { + return .none + } +} diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift index 02551fd6f7..40adc96bd5 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift @@ -57,7 +57,7 @@ class DemoTableViewController: UITableViewController { let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), style: .plain, target: self, - action: #selector(showReadmePopover)) + action: #selector(showReadmePopover(_:))) navigationItem.rightBarButtonItems = [readmeButton, settingsButton] } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift index 97ee8ee7e2..c1f4a9204b 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift @@ -7,58 +7,17 @@ import FluentUI import SwiftUI import UIKit -class ButtonDemoControllerSwiftUI: FluentThemedHostingController { - @objc required dynamic init?(coder aDecoder: NSCoder) { - preconditionFailure("init(coder:) has not been implemented") - } - +class ButtonDemoControllerSwiftUI: DemoHostingController { init() { - super.init(rootView: AnyView(ButtonDemoView())) - self.title = "Button (SwiftUI)" + super.init(rootView: AnyView(ButtonDemoView()), title: "Button (SwiftUI)") } - @MainActor required dynamic init(rootView: AnyView) { - super.init(rootView: rootView) - } - - override func viewDidLoad() { - super.viewDidLoad() - configureAppearanceAndReadmePopovers() - } - - // MARK: - Demo Appearance Popover - - func configureAppearanceAndReadmePopovers() { - let settingsButton = UIBarButtonItem(image: UIImage(named: "ic_fluent_settings_24_regular"), - style: .plain, - target: self, - action: #selector(showAppearancePopover(_:))) - navigationItem.rightBarButtonItems = [settingsButton] - } - - @objc func showAppearancePopover(_ sender: AnyObject, presenter: UIViewController) { - if let barButtonItem = sender as? UIBarButtonItem { - appearanceController.popoverPresentationController?.barButtonItem = barButtonItem - } else if let sourceView = sender as? UIView { - appearanceController.popoverPresentationController?.sourceView = sourceView - appearanceController.popoverPresentationController?.sourceRect = sourceView.bounds - } - appearanceController.popoverPresentationController?.delegate = self - presenter.present(appearanceController, animated: true, completion: nil) - } - - @objc func showAppearancePopover(_ sender: AnyObject) { - showAppearancePopover(sender, presenter: self) + @objc required dynamic init?(coder aDecoder: NSCoder) { + preconditionFailure("init(coder:) has not been implemented") } - private lazy var appearanceController: DemoAppearanceController = .init(delegate: self as? DemoAppearanceDelegate) - -} - -extension ButtonDemoControllerSwiftUI: UIPopoverPresentationControllerDelegate { - /// Overridden to allow for popover-style modal presentation on compact (e.g. iPhone) devices. - func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { - return .none + @MainActor required dynamic init(rootView: AnyView) { + preconditionFailure("init(rootView:) has not been implemented") } } From 87a618e4d152f6a042c0c89b0735100b3f015c1b Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Wed, 24 Apr 2024 23:42:22 -0700 Subject: [PATCH 12/90] Add localized strings to expose accessibility string (#2005) * add localized strings to expose accessibility string --- ios/FluentUI/Navigation/NavigationBar.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ios/FluentUI/Navigation/NavigationBar.swift b/ios/FluentUI/Navigation/NavigationBar.swift index 14a5c1fcb4..8f412c9d6c 100644 --- a/ios/FluentUI/Navigation/NavigationBar.swift +++ b/ios/FluentUI/Navigation/NavigationBar.swift @@ -165,6 +165,10 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl } } + /// The accessibility label that should be applied for the back button. + /// A temporary change so that consumers who use SwiftUI for navigation can avoid duplicated resources until support of a swiftUI control is available. + @objc public static let backButtonAccessibilityLabel: String = "Accessibility.NavigationBar.BackLabel".localized + /// An element size to describe the behavior of large title's avatar. If `.automatic`, avatar will resize when `expand(animated:)` and `contract(animated:)` are called. @objc open var avatarSize: ElementSize = .automatic { didSet { @@ -349,7 +353,7 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl target: nil, action: #selector(NavigationBarBackButtonDelegate.backButtonWasPressed)) backButtonItem.accessibilityIdentifier = "Back" - backButtonItem.accessibilityLabel = "Accessibility.NavigationBar.BackLabel".localized + backButtonItem.accessibilityLabel = backButtonAccessibilityLabel return backButtonItem }() From 54a3e7c7e6b4a6521684e0215143f7a1a2a5f54e Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:35:01 -0400 Subject: [PATCH 13/90] Reintroduce light mode iOS tokens on visionOS (#2008) --- .../Core/Theme/FluentTheme+visionOS.swift | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift index e05cf2c564..6e368deb54 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift @@ -8,48 +8,52 @@ import UIKit #if os(visionOS) extension FluentTheme { static func defaultColor_visionOS(_ token: FluentTheme.ColorToken) -> UIColor { + let visionColor: UIColor + // Apply overrides as needed. Note that visionOS only supports one mode, so there's no // need to provide multiple values (e.g. light + dark, elevated, etc). switch token { case .foreground1: - return .white + visionColor = .white case .foreground2: - return .white + visionColor = .white case .foreground3: - return .white + visionColor = .white case .foregroundDisabled1: - return .white.withAlphaComponent(0.8) + visionColor = .white.withAlphaComponent(0.8) case .foregroundOnColor: - return .white + visionColor = .white case .background1: - return .clear + visionColor = .clear case .background1Pressed: - return .white.withAlphaComponent(0.1) + visionColor = .white.withAlphaComponent(0.1) case .background2: - return .black.withAlphaComponent(0.1) + visionColor = .black.withAlphaComponent(0.1) case .background2Pressed: - return .clear + visionColor = .clear case .background3: - return .black.withAlphaComponent(0.1) + visionColor = .black.withAlphaComponent(0.1) case .background4: - return .clear + visionColor = .clear case .background5: - return .black.withAlphaComponent(0.2) + visionColor = .black.withAlphaComponent(0.2) case .background5Pressed: - return .black.withAlphaComponent(0.1) + visionColor = .black.withAlphaComponent(0.1) case .backgroundCanvas: - return .clear + visionColor = .clear case .stroke1: - return .white.withAlphaComponent(0.4) + visionColor = .white.withAlphaComponent(0.4) case .stroke2: - return .white.withAlphaComponent(0.5) + visionColor = .white.withAlphaComponent(0.5) case .dangerForeground2: - return GlobalTokens.sharedColor(.red, .primary) + visionColor = GlobalTokens.sharedColor(.red, .primary) default: // Return the standard iOS color by default. - return defaultColor(token) + visionColor = defaultColor(token) } + + return UIColor(light: defaultColor(token).light, dark: visionColor.dark) } } #endif From c1260d97679b4948bbbc4853af2de3fc49fdb8eb Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 26 Apr 2024 11:09:22 -0700 Subject: [PATCH 14/90] SwiftUI Tooltip (#2010) --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 4 + ios/FluentUI.Demo/FluentUI.Demo/Demos.swift | 2 +- .../Demos/TooltipDemoController.swift | 6 + .../Demos/TooltipDemoController_SwiftUI.swift | 133 ++++++++++++++++++ ios/FluentUI.xcodeproj/project.pbxproj | 4 + ios/FluentUI/Tooltip/Tooltip.swift | 4 +- ios/FluentUI/Tooltip/TooltipModifiers.swift | 133 ++++++++++++++++++ 7 files changed, 283 insertions(+), 3 deletions(-) create mode 100644 ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift create mode 100644 ios/FluentUI/Tooltip/TooltipModifiers.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index 891f5fdc88..9ebc6372bf 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -98,6 +98,7 @@ 92DD1E8D279F496300FDEE0F /* DemoAppearanceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */; }; 92E977B726C7144F008E10A8 /* UIResponder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92E977B526C713F3008E10A8 /* UIResponder+Extensions.swift */; }; 92E977B826C7144F008E10A8 /* DemoControllerScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92E977B426C713F3008E10A8 /* DemoControllerScrollView.swift */; }; + 92EFD3E42BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92EFD3E32BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift */; }; A589F856211BA71000471C23 /* LabelDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A589F855211BA71000471C23 /* LabelDemoController.swift */; }; A591A3F420F429EB001ED23B /* Demos.swift in Sources */ = {isa = PBXBuildFile; fileRef = A591A3F320F429EB001ED23B /* Demos.swift */; }; A5CEC21020E436F10016922A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEC20F20E436F10016922A /* AppDelegate.swift */; }; @@ -236,6 +237,7 @@ 92E4784B2661AED800BAA058 /* PersonaButtonCarouselDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselDemoController.swift; sourceTree = ""; }; 92E977B426C713F3008E10A8 /* DemoControllerScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoControllerScrollView.swift; sourceTree = ""; }; 92E977B526C713F3008E10A8 /* UIResponder+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIResponder+Extensions.swift"; sourceTree = ""; }; + 92EFD3E32BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TooltipDemoController_SwiftUI.swift; sourceTree = ""; }; A589F855211BA71000471C23 /* LabelDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelDemoController.swift; sourceTree = ""; }; A591A3F320F429EB001ED23B /* Demos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Demos.swift; sourceTree = ""; }; A5961FA8218A61BB00E2A506 /* PopupMenuDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuDemoController.swift; sourceTree = ""; }; @@ -571,6 +573,7 @@ EC98E2B72992FE6900B9DF91 /* TextFieldObjCDemoController.h */, EC98E2B52992FE5000B9DF91 /* TextFieldObjCDemoController.m */, FD7DF06121FB941400857267 /* TooltipDemoController.swift */, + 92EFD3E32BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift */, 66963D0B29CB792E006F5FA9 /* TwoLineTitleViewDemoController.swift */, 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */, 6FEED93A28A6E5520099D178 /* AliasColorTokensDemoController.swift */, @@ -841,6 +844,7 @@ 497DC2DE24185896008D86F8 /* PillButtonBarDemoController.swift in Sources */, B4EF53C5215C45C400573E8F /* PersonaListViewDemoController.swift in Sources */, A5DCA75E211E3A92005F4CB7 /* DrawerDemoController.swift in Sources */, + 92EFD3E42BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift in Sources */, B4414792228F6F740040E88E /* TableViewCellSampleData.swift in Sources */, 92B45E4E279A1A0B00E72517 /* DemoAppearanceController.swift in Sources */, E6842974247B672000A29C40 /* SceneDelegate.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift index 04244b2d6d..98c5368805 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift @@ -54,7 +54,7 @@ struct Demos { DemoDescriptor("TableViewCell", TableViewCellDemoController.self, supportsVisionOS: true), DemoDescriptor("TableViewHeaderFooterView", TableViewHeaderFooterViewDemoController.self, supportsVisionOS: true), DemoDescriptor("Text Field", TextFieldDemoController.self, supportsVisionOS: false), - DemoDescriptor("Tooltip", TooltipDemoController.self, supportsVisionOS: false), + DemoDescriptor("Tooltip", TooltipDemoController.self, supportsVisionOS: true), DemoDescriptor("TwoLineTitleView", TwoLineTitleViewDemoController.self, supportsVisionOS: false) ] diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift index e095e1fd34..c3f138f66a 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift @@ -19,6 +19,7 @@ class TooltipDemoController: DemoController { navigationItem.titleView = titleView navigationItem.rightBarButtonItems?.append(UIBarButtonItem(title: "Show on title", style: .plain, target: self, action: #selector(showTitleTooltip))) + container.addArrangedSubview(createButton(title: "Show SwiftUI Demo", action: #selector(showSwiftUIDemo))) container.addArrangedSubview(createButton(title: "Show single-line tooltip below", action: #selector(showSingleTooltipBelow))) container.addArrangedSubview(createButton(title: "Show double-line tooltip above", action: #selector(showDoubleTooltipAbove))) container.addArrangedSubview(createButton(title: "Show tooltip with title above", action: #selector(showTooltipWithTitle))) @@ -92,6 +93,11 @@ class TooltipDemoController: DemoController { return container } + @objc func showSwiftUIDemo() { + navigationController?.pushViewController(TooltipDemoControllerSwiftUI(), + animated: true) + } + @objc func showTitleTooltip(sender: UIBarButtonItem) { Tooltip.shared.show(with: "This is a title-based tooltip.", for: titleView, preferredArrowDirection: .up) } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift new file mode 100644 index 0000000000..4a093bfca7 --- /dev/null +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift @@ -0,0 +1,133 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import FluentUI +import SwiftUI +import UIKit + +class TooltipDemoControllerSwiftUI: DemoHostingController { + init() { + super.init(rootView: AnyView(TooltipDemoView()), title: "Tooltip (SwiftUI)") + } + + @objc required dynamic init?(coder aDecoder: NSCoder) { + preconditionFailure("init(coder:) has not been implemented") + } + + @MainActor required dynamic init(rootView: AnyView) { + preconditionFailure("init(rootView:) has not been implemented") + } +} + +struct TooltipDemoView: View { + var body: some View { + VStack { + tooltipAnchor + demoOptions + } + } + + @ViewBuilder + private var tooltipAnchor: some View { + Button(action: { + showTooltip = true + }, label: { + Text("Tap for Tooltip") + }) + .buttonStyle(FluentButtonStyle(style: .accent)) + .controlSize(.large) + .fixedSize() + .fluentTooltip(message: tooltipMessage, + title: (tooltipTitle != "") ? tooltipTitle : nil, + preferredArrowDirection: arrowDirection, + offset: offset, + dismissMode: dismissMode, + isPresented: $showTooltip) + .padding(GlobalTokens.spacing(.size560)) + } + + @ViewBuilder + private var demoOptions: some View { + Form { + Section("Content") { + HStack(alignment: .firstTextBaseline) { + Text("Title") + Spacer() + TextField("Title", text: $tooltipTitle) + .autocapitalization(.none) + .disableAutocorrection(true) + .multilineTextAlignment(.trailing) + } + .frame(maxWidth: .infinity) + + HStack(alignment: .firstTextBaseline) { + Text("Message") + Spacer() + TextField("Message", text: $tooltipMessage) + .autocapitalization(.none) + .disableAutocorrection(true) + .multilineTextAlignment(.trailing) + } + .frame(maxWidth: .infinity) + } + + Section("Layout") { + Picker("Dismiss Mode", selection: $dismissMode) { + ForEach(Array(Tooltip.DismissMode.allCases.enumerated()), id: \.element) { _, dismissMode in + Text("\(dismissMode.description)").tag(dismissMode) + } + } + + Picker("Arrow Direction", selection: $arrowDirection) { + ForEach(Array(Tooltip.ArrowDirection.allCases.enumerated()), id: \.element) { _, direction in + Text("\(direction.description)").tag(direction) + } + } + + FluentUIDemoToggle(titleKey: "Use offset for origin", isOn: $useOffset) + } + } + } + + private var offset: CGPoint { + useOffset ? .init(x: 20, y: 20) : .zero + } + + @State private var showTooltip: Bool = true + + @State private var tooltipTitle: String = "" + @State private var tooltipMessage: String = "Tooltip message" + @State private var arrowDirection: Tooltip.ArrowDirection = .down + @State private var dismissMode: Tooltip.DismissMode = .tapAnywhere + @State private var useOffset: Bool = false +} + +private extension Tooltip.ArrowDirection { + var description: String { + switch self { + case .up: + return "Up" + case .down: + return "Down" + case .left: + return "Left" + case .right: + return "Right" + } + } +} + +private extension Tooltip.DismissMode { + var description: String { + switch self { + case .tapAnywhere: + return "Tap anywhere" + case .tapOnTooltip: + return "Tap on Tooltip" + case .tapOnTooltipOrAnchor: + return "Tap on Tooltip or Anchor" + } + } +} diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index 5f7ac49e86..38f78d4a41 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -202,6 +202,7 @@ 929DD25A266ED3B600E8175E /* PersonaButtonCarousel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */; }; 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */; }; 92A1E4F526A791590007ED60 /* MSFCardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */; }; + 92B2E2352BD71F27005D42C4 /* TooltipModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */; }; 92B7E6A326864AE900EFC15E /* MSFPersonaButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */; }; 92D49054278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */; }; 92D5598226A0FD2800328FD3 /* CardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598026A0FD2800328FD3 /* CardNudge.swift */; }; @@ -370,6 +371,7 @@ 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarousel.swift; sourceTree = ""; }; 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentButtonToggleStyle.swift; sourceTree = ""; }; 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFCardNudge.swift; sourceTree = ""; }; + 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipModifiers.swift; sourceTree = ""; }; 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFPersonaButton.swift; sourceTree = ""; }; 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselModifiers.swift; sourceTree = ""; }; 92D5598026A0FD2800328FD3 /* CardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudge.swift; sourceTree = ""; }; @@ -1309,6 +1311,7 @@ isa = PBXGroup; children = ( FD7DF05B21FA7F5000857267 /* Tooltip.swift */, + 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */, 4B8245D7293FC7A200CF0C77 /* TooltipTokenSet.swift */, FD7DF05D21FA7FC100857267 /* TooltipView.swift */, FD7DF05F21FA83C900857267 /* TooltipViewController.swift */, @@ -1720,6 +1723,7 @@ 80AECC22263339E5005AF2F3 /* BottomSheetPassthroughView.swift in Sources */, 925728F9276D6B5800EE1019 /* FontInfo.swift in Sources */, 5314E1CD25F01B730099271A /* AnimationSynchronizer.swift in Sources */, + 92B2E2352BD71F27005D42C4 /* TooltipModifiers.swift in Sources */, 92088EF92666DB2C003F571A /* PersonaButton.swift in Sources */, 9231491428BF026A001B033E /* MSFHeadsUpDisplay.swift in Sources */, 5314E13425F016370099271A /* PopupMenuItem.swift in Sources */, diff --git a/ios/FluentUI/Tooltip/Tooltip.swift b/ios/FluentUI/Tooltip/Tooltip.swift index f40cb10eaf..61396e0ccb 100644 --- a/ios/FluentUI/Tooltip/Tooltip.swift +++ b/ios/FluentUI/Tooltip/Tooltip.swift @@ -229,7 +229,7 @@ open class Tooltip: NSObject, TokenizedControlInternal { } @objc(MSFTooltipArrowDirection) - public enum ArrowDirection: Int { + public enum ArrowDirection: Int, CaseIterable { case up, down, left, right var isVertical: Bool { @@ -256,7 +256,7 @@ open class Tooltip: NSObject, TokenizedControlInternal { } @objc(MSFTooltipDismissMode) - public enum DismissMode: Int { + public enum DismissMode: Int, CaseIterable { case tapAnywhere case tapOnTooltip case tapOnTooltipOrAnchor diff --git a/ios/FluentUI/Tooltip/TooltipModifiers.swift b/ios/FluentUI/Tooltip/TooltipModifiers.swift new file mode 100644 index 0000000000..f4cbbc2670 --- /dev/null +++ b/ios/FluentUI/Tooltip/TooltipModifiers.swift @@ -0,0 +1,133 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +public extension View { + + /// Displays a tooltip based on the current settings, pointing to the `View` being modified. + /// If another tooltip view is already showing, it will be dismissed and the new tooltip will be shown. + /// + /// - Parameters: + /// - message: The text to be displayed on the new tooltip view. + /// - title: The optional bolded text to be displayed above the message on the new tooltip view. + /// - preferredArrowDirection: The preferrred direction for the tooltip's arrow. Only the arrow's axis is guaranteed; the direction may be changed based on available space between the anchorView and the screen's margins. Defaults to down. + /// - offset: An offset from the tooltip's default position. + /// - dismissMode: The mode of tooltip dismissal. Defaults to tapping anywhere. + /// - isPresented: A binding to a Boolean value that determines whether to present the tooltip. When the user dismisses the tooltip, this value is set to `false`. + /// - onTap: An optional closure used to do work after the user taps + @ViewBuilder + func fluentTooltip(message: String, + title: String? = nil, + preferredArrowDirection: Tooltip.ArrowDirection = .down, + offset: CGPoint = CGPoint(x: 0, y: 0), + dismissMode: Tooltip.DismissMode = .tapAnywhere, + isPresented: Binding, + onTap: (() -> Void)? = nil) -> some View { + // Package up all the values to pass through. + let values = TooltipAnchorViewValues( + message: message, + title: title, + preferredArrowDirection: preferredArrowDirection, + offset: offset, + dismissMode: dismissMode, + onTap: onTap) + + self.modifier( + TooltipModifier( + values: values, + isPresented: isPresented + ) + ) + } +} + +// MARK: - Private support for public modifiers + +/// Convenience wrapper for the values used to show a `Tooltip`. +private struct TooltipAnchorViewValues { + let message: String + let title: String? + let preferredArrowDirection: Tooltip.ArrowDirection + let offset: CGPoint + let dismissMode: Tooltip.DismissMode + let onTap: (() -> Void)? +} + +private struct TooltipModifier: ViewModifier { + let values: TooltipAnchorViewValues + @Binding var isPresented: Bool + + func body(content: Content) -> some View { + content + .background { + TooltipAnchorViewRepresentable(values: values, isPresented: $isPresented) + } + } +} + +/// `UIView` subclass that serves as an anchor to the `Tooltip`. +/// +/// Our existing `Tooltip` logic is built entirely around `UIView` anchoring. To reuse this in SwiftUI, we create +/// a simple `UIView` that acts as this anchor. +private class TooltipAnchorView: UIView { + var values: TooltipAnchorViewValues + var isPresented: Binding + + init(values: TooltipAnchorViewValues, isPresented: Binding) { + self.values = values + self.isPresented = isPresented + super.init(frame: .zero) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func didMoveToWindow() { + super.didMoveToWindow() + + // It's possible that we were asked to show the tooltip before we had loaded into a window. + // Check again now, just to be safe. + showTooltipIfPossible() + } + + func showTooltipIfPossible() { + if isPresented.wrappedValue && window != nil { + Tooltip.shared.show(with: values.message, + title: values.title, + for: self, + preferredArrowDirection: values.preferredArrowDirection, + offset: values.offset, + dismissOn: values.dismissMode, + onTap: { [weak self, values] in + values.onTap?() + + // Set the `isPresented` binding back to `false` once the tooltip dismisses. + self?.isPresented.wrappedValue = false + }) + } + } +} + +/// Subclass of `UIViewRepresentable` that creates the `TooltipAnchorView`. +private struct TooltipAnchorViewRepresentable: UIViewRepresentable { + var values: TooltipAnchorViewValues + @Binding var isPresented: Bool + + func makeUIView(context: Self.Context) -> TooltipAnchorView { + let view = TooltipAnchorView(values: values, isPresented: $isPresented) + return view + } + + func updateUIView(_ uiView: TooltipAnchorView, context: Context) { + uiView.values = values + if isPresented { + uiView.showTooltipIfPossible() + } else { + Tooltip.shared.hide() + } + } +} From 2bf778520a38b874b60bc768bfdb96a8bd49c31a Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Mon, 29 Apr 2024 18:27:14 -0700 Subject: [PATCH 15/90] expose accessibility string (#2011) --- ios/FluentUI/Navigation/NavigationBar.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ios/FluentUI/Navigation/NavigationBar.swift b/ios/FluentUI/Navigation/NavigationBar.swift index 8f412c9d6c..5ae86cb5a4 100644 --- a/ios/FluentUI/Navigation/NavigationBar.swift +++ b/ios/FluentUI/Navigation/NavigationBar.swift @@ -169,6 +169,10 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl /// A temporary change so that consumers who use SwiftUI for navigation can avoid duplicated resources until support of a swiftUI control is available. @objc public static let backButtonAccessibilityLabel: String = "Accessibility.NavigationBar.BackLabel".localized + /// The accessibility label that should be applied for the done button for when navigation bar is shown in a modal view. + /// A temporary change so that consumers who use SwiftUI for navigation can avoid duplicated resources until support of a swiftUI control is available. + @objc public static let doneButtonAccessibilityLabel: String = "Accessibility.Done.Label".localized + /// An element size to describe the behavior of large title's avatar. If `.automatic`, avatar will resize when `expand(animated:)` and `contract(animated:)` are called. @objc open var avatarSize: ElementSize = .automatic { didSet { From c27f45113993a65973c4e92f9a9b6c493ab9cdde Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Mon, 29 Apr 2024 21:12:21 -0700 Subject: [PATCH 16/90] expose string elsewhere (#2013) --- ios/FluentUI/BarButtonItems/BarButtonItems.swift | 7 ++++++- ios/FluentUI/Navigation/NavigationBar.swift | 4 ---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ios/FluentUI/BarButtonItems/BarButtonItems.swift b/ios/FluentUI/BarButtonItems/BarButtonItems.swift index 2d457eafba..5d46dba10f 100644 --- a/ios/FluentUI/BarButtonItems/BarButtonItems.swift +++ b/ios/FluentUI/BarButtonItems/BarButtonItems.swift @@ -6,13 +6,18 @@ import UIKit public final class BarButtonItems: NSObject { + + /// The accessibility label that should be applied for the done bar button. + /// A temporary change so that consumers who use SwiftUI for a toolbar can avoid duplicated resources until support of a swiftUI control is available. + @objc public static let doneButtonAccessibilityLabel: String = "Accessibility.Done.Label".localized + /// When adding this barButtonItem to the view, tint it with appropriate app color UIColor(light: Colors.primary(for: window), dark: Colors.textDominant) @objc static func confirm(target: Any?, action: Selector?) -> UIBarButtonItem { let image = UIImage.staticImageNamed("checkmark-24x24") let landscapeImage = UIImage.staticImageNamed("checkmark-thin-20x20") let button = UIBarButtonItem(image: image, landscapeImagePhone: landscapeImage, style: .plain, target: target, action: action) - button.accessibilityLabel = "Accessibility.Done.Label".localized + button.accessibilityLabel = doneButtonAccessibilityLabel return button } diff --git a/ios/FluentUI/Navigation/NavigationBar.swift b/ios/FluentUI/Navigation/NavigationBar.swift index 5ae86cb5a4..8f412c9d6c 100644 --- a/ios/FluentUI/Navigation/NavigationBar.swift +++ b/ios/FluentUI/Navigation/NavigationBar.swift @@ -169,10 +169,6 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl /// A temporary change so that consumers who use SwiftUI for navigation can avoid duplicated resources until support of a swiftUI control is available. @objc public static let backButtonAccessibilityLabel: String = "Accessibility.NavigationBar.BackLabel".localized - /// The accessibility label that should be applied for the done button for when navigation bar is shown in a modal view. - /// A temporary change so that consumers who use SwiftUI for navigation can avoid duplicated resources until support of a swiftUI control is available. - @objc public static let doneButtonAccessibilityLabel: String = "Accessibility.Done.Label".localized - /// An element size to describe the behavior of large title's avatar. If `.automatic`, avatar will resize when `expand(animated:)` and `contract(animated:)` are called. @objc open var avatarSize: ElementSize = .automatic { didSet { From b663754b4ebc0a268d1e522b2d82c18cb89795f1 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:34:46 -0400 Subject: [PATCH 17/90] Add support for ListItem on visionOS (#2000) * add support for ListItem on visionOS * pass in tokenSet * clean up padding * more cleanup * fix typo * fix vo frame --- ios/FluentUI.Demo/FluentUI.Demo/Demos.swift | 2 +- .../ListItemDemoController_SwiftUI.swift | 118 ++++++++------- ios/FluentUI/List/ListItem.swift | 136 ++++++++++++------ 3 files changed, 166 insertions(+), 90 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift index 98c5368805..5dacf2443a 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift @@ -36,7 +36,7 @@ struct Demos { DemoDescriptor("IndeterminateProgressBar", IndeterminateProgressBarDemoController.self, supportsVisionOS: false), DemoDescriptor("Label", LabelDemoController.self, supportsVisionOS: true), DemoDescriptor("ListActionItem", ListActionItemDemoController.self, supportsVisionOS: false), - DemoDescriptor("ListItem", ListItemDemoController.self, supportsVisionOS: false), + DemoDescriptor("ListItem", ListItemDemoController.self, supportsVisionOS: true), DemoDescriptor("MultilineCommandBar", MultilineCommandBarDemoController.self, supportsVisionOS: false), DemoDescriptor("NavigationController", NavigationControllerDemoController.self, supportsVisionOS: true), DemoDescriptor("NotificationView", NotificationViewDemoController.self, supportsVisionOS: true), diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift index 46bd8cd29d..4ce21b8226 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift @@ -21,7 +21,8 @@ class ListItemDemoControllerSwiftUI: UIHostingController { } struct ListItemDemoView: View { - @State var showingAlert: Bool = false + @State var showingPrimaryAlert: Bool = false + @State var showingSecondaryAlert: Bool = false @ObservedObject var fluentTheme: FluentTheme = .shared let accessoryTypes: [ListItemAccessoryType] = [.none, .checkmark, .detailButton, .disclosureIndicator] @@ -32,6 +33,7 @@ struct ListItemDemoView: View { @State var showFooter: Bool = false @State var showLeadingContent: Bool = true @State var showTrailingContent: Bool = true + @State var isTappable: Bool = true @State var isDisabled: Bool = false @State var accessoryType: ListItemAccessoryType = .none @State var leadingContentSize: ListItemLeadingContentSize = .default @@ -41,6 +43,7 @@ struct ListItemDemoView: View { @State var footerLineLimit: Int = 1 @State var trailingContentFocusableElementCount: Int = 0 @State var trailingContentToggleEnabled: Bool = true + @State var renderStandalone: Bool = false public var body: some View { @@ -73,7 +76,9 @@ struct ListItemDemoView: View { .accessibilityIdentifier("leadingContentSwitch") FluentUIDemoToggle(titleKey: "Show trailing content", isOn: $showTrailingContent) .accessibilityIdentifier("trailingContentSwitch") + FluentUIDemoToggle(titleKey: "Tappable", isOn: $isTappable) FluentUIDemoToggle(titleKey: "Disabled", isOn: $isDisabled) + FluentUIDemoToggle(titleKey: "Render standalone", isOn: $renderStandalone) } @ViewBuilder @@ -135,58 +140,75 @@ struct ListItemDemoView: View { .resizable() } + @ViewBuilder + var listItem: some View { + ListItem(title: title, + subtitle: showSubtitle ? subtitle : "", + footer: showFooter ? footer : "", + leadingContent: { + if showLeadingContent { + leadingContent + } + }, + trailingContent: { + if showTrailingContent { + switch trailingContentFocusableElementCount { + case 0: + Text("Spreadsheet") + case 1: + Toggle("", isOn: $trailingContentToggleEnabled) + default: + HStack { + Button { + showingSecondaryAlert = true + } label: { + Text("Button 1") + } + Button { + showingSecondaryAlert = true + } label: { + Text("Button 2") + } + } + } + } + }, + action: !isTappable ? nil : { + showingPrimaryAlert = true + } + ) + .backgroundStyleType(backgroundStyle) + .accessoryType(accessoryType) + .leadingContentSize(leadingContentSize) + .titleLineLimit(titleLineLimit) + .subtitleLineLimit(subtitleLineLimit) + .footerLineLimit(footerLineLimit) + .combineTrailingContentAccessibilityElement(trailingContentFocusableElementCount < 2) + .onAccessoryTapped { + showingSecondaryAlert = true + } + .disabled(isDisabled) + .alert("List Item tapped", isPresented: $showingPrimaryAlert) { + Button("OK", role: .cancel) { } + } + .alert("Detail button tapped", isPresented: $showingSecondaryAlert) { + Button("OK", role: .cancel) { } + } + } + @ViewBuilder var content: some View { VStack { + if renderStandalone { + listItem + } List { - Section { - ListItem(title: title, - subtitle: showSubtitle ? subtitle : "", - footer: showFooter ? footer : "", - leadingContent: { - if showLeadingContent { - leadingContent - } - }, - trailingContent: { - if showTrailingContent { - switch trailingContentFocusableElementCount { - case 0: - Text("Spreadsheet") - case 1: - Toggle("", isOn: $trailingContentToggleEnabled) - default: - HStack { - Button { - showingAlert = true - } label: { - Text("Button 1") - } - Button { - showingAlert = true - } label: { - Text("Button 2") - } - } - } - } - }) - .backgroundStyleType(backgroundStyle) - .accessoryType(accessoryType) - .leadingContentSize(leadingContentSize) - .titleLineLimit(titleLineLimit) - .subtitleLineLimit(subtitleLineLimit) - .footerLineLimit(footerLineLimit) - .combineTrailingContentAccessibilityElement(trailingContentFocusableElementCount < 2) - .onAccessoryTapped { - showingAlert = true - } - .disabled(isDisabled) - .alert("Detail button tapped", isPresented: $showingAlert) { - Button("OK", role: .cancel) { } + if !renderStandalone { + Section { + listItem + } header: { + Text("ListItem") } - } header: { - Text("ListItem") } controls } diff --git a/ios/FluentUI/List/ListItem.swift b/ios/FluentUI/List/ListItem.swift index a8444899b7..e4f4038aed 100644 --- a/ios/FluentUI/List/ListItem.swift +++ b/ios/FluentUI/List/ListItem.swift @@ -17,25 +17,28 @@ public struct ListItem: View { - // MARK: Initializer - - /// Creates a ListItem view - /// - Parameters: - /// - title: Text that appears as the first line of text - /// - subtitle: Text that appears as the second line of text - /// - footer: Text that appears as the third line of text - /// - leadingContent: The content that appears on the leading edge of the view - /// - trailingContent: The content that appears on the trailing edge of the view, next to the accessory type if provided + // MARK: Initializer + + /// Creates a `ListItem` + /// - Parameters: + /// - title: Text that appears as the first line of text + /// - subtitle: Text that appears as the second line of text + /// - footer: Text that appears as the third line of text + /// - leadingContent: The content that appears on the leading edge of the view + /// - trailingContent: The content that appears on the trailing edge of the view, next to the accessory type if provided + /// - action: The action to be dispatched by tapping on the `ListItem` public init(title: Title, subtitle: Subtitle = String(), footer: Footer = String(), @ViewBuilder leadingContent: @escaping () -> LeadingContent, - @ViewBuilder trailingContent: @escaping () -> TrailingContent) { + @ViewBuilder trailingContent: @escaping () -> TrailingContent, + action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.footer = footer self.leadingContent = leadingContent self.trailingContent = trailingContent + self.action = action let layoutType = ListItem.layoutType(subtitle: subtitle, footer: footer) self.tokenSet = ListItemTokenSet(customViewSize: { layoutType.leadingContentSize }) } @@ -92,27 +95,30 @@ public struct ListItem LeadingContent)? private var trailingContent: (() -> TrailingContent)? + private var action: (() -> Void)? private let footer: Footer private let subtitle: Subtitle private let title: Title } +// MARK: Internal structs + +private struct ListItemButtonStyle: SwiftUI.ButtonStyle { + init(backgroundStyleType: ListItemBackgroundStyleType, tokenSet: ListItemTokenSet) { + self.backgroundStyleType = backgroundStyleType + self.tokenSet = tokenSet + } + + func makeBody(configuration: Configuration) -> some View { + let backgroundColor = configuration.isPressed ? tokenSet[.cellBackgroundSelectedColor].uiColor : .clear + let cornerRadius = backgroundStyleType == .plain && Compatibility.isDeviceIdiomVision() ? 16.0 : 0 + + return configuration.label + .background(Color(backgroundColor)) + .clipShape(RoundedRectangle(cornerRadius: cornerRadius)) + .contentShape(RoundedRectangle(cornerRadius: cornerRadius)) + .pointerInteraction(isEnabled) + } + + let backgroundStyleType: ListItemBackgroundStyleType + let tokenSet: ListItemTokenSet + + @Environment(\.isEnabled) private var isEnabled: Bool +} + // MARK: Constants private struct AccessibilityIdentifiers { @@ -287,10 +335,12 @@ private struct AccessibilityIdentifiers { public extension ListItem where LeadingContent == EmptyView, TrailingContent == EmptyView { init(title: Title, subtitle: Subtitle = String(), - footer: Footer = String()) { + footer: Footer = String(), + action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.footer = footer + self.action = action let layoutType = ListItem.layoutType(subtitle: subtitle, footer: footer) self.tokenSet = ListItemTokenSet(customViewSize: { layoutType.leadingContentSize }) } @@ -300,11 +350,13 @@ public extension ListItem where TrailingContent == EmptyView { init(title: Title, subtitle: Subtitle = String(), footer: Footer = String(), - @ViewBuilder leadingContent: @escaping () -> LeadingContent) { + @ViewBuilder leadingContent: @escaping () -> LeadingContent, + action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.footer = footer self.leadingContent = leadingContent + self.action = action let layoutType = ListItem.layoutType(subtitle: subtitle, footer: footer) self.tokenSet = ListItemTokenSet(customViewSize: { layoutType.leadingContentSize }) } @@ -314,11 +366,13 @@ public extension ListItem where LeadingContent == EmptyView { init(title: Title, subtitle: Subtitle = String(), footer: Footer = String(), - @ViewBuilder trailingContent: @escaping () -> TrailingContent) { + @ViewBuilder trailingContent: @escaping () -> TrailingContent, + action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.footer = footer self.trailingContent = trailingContent + self.action = action let layoutType = ListItem.layoutType(subtitle: subtitle, footer: footer) self.tokenSet = ListItemTokenSet(customViewSize: { layoutType.leadingContentSize }) } From 17330887ed802c10888b4a24e50275ab876c080c Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 3 May 2024 20:08:20 -0700 Subject: [PATCH 18/90] Store color tokens as SwiftUI `Color` literals, instead of `UIColor` (#2014) * Using `Color` for GlobalTokens, and `DynamicColor` for alias * Remove unintentional diff from debugging * Add SwiftUI demo to AliasColorTokens * Remove unneeded public tag --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 4 + .../DemoListViewController.swift | 2 +- .../AliasColorTokensDemoController.swift | 220 +- ...iasColorTokensDemoController_SwiftUI.swift | 64 + .../Demos/DrawerDemoController.swift | 2 +- .../Demos/SideTabBarDemoController.swift | 2 +- ios/FluentUI.Tests/ColorTests.swift | 71 +- ios/FluentUI.xcodeproj/project.pbxproj | 20 +- .../Button/FluentButtonToggleStyle.swift | 8 +- ios/FluentUI/Core/FluentUIFramework.swift | 5 +- .../Core/Theme/FluentTheme+Tokens.swift | 402 ++- .../Core/Theme/FluentTheme+UIKit.swift | 28 + .../Core/Theme/FluentTheme+visionOS.swift | 45 +- ios/FluentUI/Core/Theme/FluentTheme.swift | 25 +- .../Core/Theme/Tokens/AliasTokens.swift | 210 -- .../Core/Theme/Tokens/ControlTokenSet.swift | 32 +- .../Core/Theme/Tokens/DynamicColor.swift | 194 -- .../Theme/Tokens/GlobalTokens+UIKit.swift | 30 + .../Core/Theme/Tokens/GlobalTokens.swift | 2984 ++++------------- .../Views/DateTimePickerView.swift | 2 +- .../Extensions/Color+DynamicColor.swift | 94 + .../Extensions/UIColor+Extensions.swift | 72 +- ios/FluentUI/Label/Label.swift | 18 - .../PageCardPresenterController.swift | 2 +- ios/xcode/FluentUITests.xcconfig | 1 + 25 files changed, 1343 insertions(+), 3194 deletions(-) create mode 100644 ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift create mode 100644 ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift delete mode 100644 ios/FluentUI/Core/Theme/Tokens/AliasTokens.swift delete mode 100644 ios/FluentUI/Core/Theme/Tokens/DynamicColor.swift create mode 100644 ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift create mode 100644 ios/FluentUI/Extensions/Color+DynamicColor.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index 9ebc6372bf..ab1c4106f5 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -93,6 +93,7 @@ 92561E732718AD090072ED00 /* DemoTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92561E722718AD090072ED00 /* DemoTableViewController.swift */; }; 928C00B12B8920E60023ECE7 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 928C00B02B8920E60023ECE7 /* View+Extensions.swift */; }; 92B45E4E279A1A0B00E72517 /* DemoAppearanceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceController.swift */; }; + 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */; }; 92D5598426A1523400328FD3 /* CardNudgeDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */; }; 92D5FDFD28AC57650087894B /* TypographyTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */; }; 92DD1E8D279F496300FDEE0F /* DemoAppearanceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */; }; @@ -231,6 +232,7 @@ 92561E722718AD090072ED00 /* DemoTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoTableViewController.swift; sourceTree = ""; }; 928C00B02B8920E60023ECE7 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = ""; }; 92B45E4D279A1A0B00E72517 /* DemoAppearanceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceController.swift; sourceTree = ""; }; + 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasColorTokensDemoController_SwiftUI.swift; sourceTree = ""; }; 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudgeDemoController.swift; sourceTree = ""; }; 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyTokensDemoController.swift; sourceTree = ""; }; 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceView.swift; sourceTree = ""; }; @@ -577,6 +579,7 @@ 66963D0B29CB792E006F5FA9 /* TwoLineTitleViewDemoController.swift */, 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */, 6FEED93A28A6E5520099D178 /* AliasColorTokensDemoController.swift */, + 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */, 6F453CA428AC536300ED91A4 /* ShadowTokensDemoController.swift */, ); path = Demos; @@ -834,6 +837,7 @@ B45EB79221A4D047008646A2 /* BadgeFieldDemoController.swift in Sources */, B4EF66562295F729007FEAB0 /* TableViewHeaderFooterSampleData.swift in Sources */, 53097D3A27028AC900A6E4DC /* DateTimePickerDemoController.swift in Sources */, + 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */, B4D852DB225C010A004B1B29 /* ButtonDemoController.swift in Sources */, 53097D4127028AEA00A6E4DC /* PopupMenuDemoController.swift in Sources */, 5306075926A1E73F002D49CF /* AvatarGroupDemoController.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift index 9a248a2643..a27d9397dd 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift @@ -32,7 +32,7 @@ class DemoListViewController: DemoTableViewController { if let provider = self.provider { window.setColorProvider(provider) let fluentTheme = self.view.fluentTheme - let primaryColor = fluentTheme.color(.brandBackground1) + let primaryColor: UIColor = fluentTheme.color(.brandBackground1) FluentUIFramework.initializeAppearance(with: primaryColor, whenContainedInInstancesOf: [type(of: window)]) } else { window.resetFluentTheme() diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift index b4225b684f..9ddead1b94 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift @@ -11,6 +11,7 @@ class AliasColorTokensDemoController: DemoTableViewController { override func viewDidLoad() { super.viewDidLoad() tableView.register(UITableViewCell.self, forCellReuseIdentifier: TableViewCell.identifier) + tableView.register(ActionsCell.self, forCellReuseIdentifier: ActionsCell.identifier) } override func numberOfSections(in tableView: UITableView) -> Int { @@ -22,14 +23,28 @@ class AliasColorTokensDemoController: DemoTableViewController { } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + if AliasColorTokensDemoSection.allCases[section] == .swiftUI { + // Special case for the SwiftUI demo dispatch + return 1 + } return AliasColorTokensDemoSection.allCases[section].rows.count } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCell.identifier, for: indexPath) let section = AliasColorTokensDemoSection.allCases[indexPath.section] - let row = section.rows[indexPath.row] + if section == .swiftUI { + // Special case! + guard let cell = tableView.dequeueReusableCell(withIdentifier: ActionsCell.identifier, for: indexPath) as? ActionsCell else { + preconditionFailure() + } + cell.setup(action1Title: "Show SwiftUI Demo") + cell.action1Button.addTarget(self, action: #selector(showSwiftUIDemo), for: .touchUpInside) + return cell + } + + let row = section.rows[indexPath.row] + let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCell.identifier, for: indexPath) cell.backgroundConfiguration?.backgroundColor = fluentTheme.color(row) cell.selectionStyle = .none @@ -37,7 +52,7 @@ class AliasColorTokensDemoController: DemoTableViewController { let text = "\(row.text)" contentConfiguration.attributedText = NSAttributedString(string: text, attributes: [ - .foregroundColor: textColor(for: row) + .foregroundColor: row.textColor(fluentTheme) ]) contentConfiguration.textProperties.alignment = .center cell.contentConfiguration = contentConfiguration @@ -45,98 +60,9 @@ class AliasColorTokensDemoController: DemoTableViewController { return cell } - private func textColor(for token: FluentTheme.ColorToken) -> UIColor { - switch token { - case .background1, - .background1Pressed, - .background1Selected, - .background2, - .background2Pressed, - .background2Selected, - .background3, - .background3Pressed, - .background3Selected, - .background4, - .background4Pressed, - .background4Selected, - .background5, - .background5Pressed, - .background5Selected, - .background6, - .backgroundDisabled, - .brandBackgroundDisabled, - .backgroundCanvas, - .stencil1, - .stencil2, - .foregroundDisabled2, - .foregroundOnColor, - .brandForegroundDisabled2, - .stroke1, - .stroke1Pressed, - .stroke2, - .strokeFocus1, - .strokeDisabled, - .brandBackgroundTint, - .foregroundDisabled1, - .dangerBackground1, - .successBackground1, - .warningBackground1, - .severeBackground1: - return fluentTheme.color(.foreground1) - case .foreground1, - .foreground2, - .foreground3, - .strokeFocus2, - .strokeAccessible, - .brandBackground1Pressed, - .brandForeground1Pressed, - .brandStroke1Pressed, - .brandStroke1, - .brandForegroundTint, - .brandStroke1Selected, - .brandGradient1, - .dangerBackground2, - .dangerForeground1, - .dangerForeground2, - .dangerStroke1, - .dangerStroke2, - .successBackground2, - .successForeground1, - .successForeground2, - .successStroke1, - .warningForeground1, - .warningForeground2, - .warningStroke1, - .severeBackground2, - .severeForeground1, - .severeForeground2, - .severeStroke1: - return fluentTheme.color(.foregroundOnColor) - case .foregroundLightStatic, - .backgroundLightStatic, - .backgroundLightStaticDisabled, - .warningBackground2, - .brandGradient2, - .brandGradient3: - return fluentTheme.color(.foregroundDarkStatic) - case .brandForeground1, - .brandForeground1Selected, - .brandForegroundDisabled1, - .backgroundInverted, - .brandBackground1, - .brandBackground1Selected, - .brandBackground2, - .brandBackground2Pressed, - .brandBackground2Selected, - .brandBackground3, - .backgroundDarkStatic, - .foregroundDarkStatic, - .presenceAway, - .presenceDnd, - .presenceAvailable, - .presenceOof: - return fluentTheme.color(.foregroundLightStatic) - } + @objc private func showSwiftUIDemo() { + navigationController?.pushViewController(AliasColorTokensDemoControllerSwiftUI(), + animated: true) } private var fluentTheme: FluentTheme { @@ -144,7 +70,8 @@ class AliasColorTokensDemoController: DemoTableViewController { } } -private enum AliasColorTokensDemoSection: CaseIterable { +enum AliasColorTokensDemoSection: CaseIterable { + case swiftUI case neutralBackgrounds case brandBackgrounds case neutralForegrounds @@ -157,6 +84,8 @@ private enum AliasColorTokensDemoSection: CaseIterable { var title: String { switch self { + case .swiftUI: + return "SwiftUI Demo" case .neutralBackgrounds: return "Neutral Backgrounds" case .brandBackgrounds: @@ -180,6 +109,8 @@ private enum AliasColorTokensDemoSection: CaseIterable { var rows: [FluentTheme.ColorToken] { switch self { + case .swiftUI: + preconditionFailure("Should not fetch colors for SwiftUI section!") case .neutralBackgrounds: return [.background1, .background1Pressed, @@ -278,7 +209,7 @@ private enum AliasColorTokensDemoSection: CaseIterable { } } -private extension FluentTheme.ColorToken { +extension FluentTheme.ColorToken { var text: String { switch self { case .foreground1: @@ -453,4 +384,99 @@ private extension FluentTheme.ColorToken { return "PresenceOof" } } + + func textColor(_ fluentTheme: FluentTheme) -> UIColor { + switch self { + case .background1, + .background1Pressed, + .background1Selected, + .background2, + .background2Pressed, + .background2Selected, + .background3, + .background3Pressed, + .background3Selected, + .background4, + .background4Pressed, + .background4Selected, + .background5, + .background5Pressed, + .background5Selected, + .background6, + .backgroundDisabled, + .brandBackgroundDisabled, + .backgroundCanvas, + .stencil1, + .stencil2, + .foregroundDisabled2, + .foregroundOnColor, + .brandForegroundDisabled2, + .stroke1, + .stroke1Pressed, + .stroke2, + .strokeFocus1, + .strokeDisabled, + .brandBackgroundTint, + .foregroundDisabled1, + .dangerBackground1, + .successBackground1, + .warningBackground1, + .severeBackground1: + return fluentTheme.color(.foreground1) + case .foreground1, + .foreground2, + .foreground3, + .strokeFocus2, + .strokeAccessible, + .brandBackground1Pressed, + .brandForeground1Pressed, + .brandStroke1Pressed, + .brandStroke1, + .brandForegroundTint, + .brandStroke1Selected, + .brandGradient1, + .dangerBackground2, + .dangerForeground1, + .dangerForeground2, + .dangerStroke1, + .dangerStroke2, + .successBackground2, + .successForeground1, + .successForeground2, + .successStroke1, + .warningForeground1, + .warningForeground2, + .warningStroke1, + .severeBackground2, + .severeForeground1, + .severeForeground2, + .severeStroke1: + return fluentTheme.color(.foregroundOnColor) + case .foregroundLightStatic, + .backgroundLightStatic, + .backgroundLightStaticDisabled, + .warningBackground2, + .brandGradient2, + .brandGradient3: + return fluentTheme.color(.foregroundDarkStatic) + case .brandForeground1, + .brandForeground1Selected, + .brandForegroundDisabled1, + .backgroundInverted, + .brandBackground1, + .brandBackground1Selected, + .brandBackground2, + .brandBackground2Pressed, + .brandBackground2Selected, + .brandBackground3, + .backgroundDarkStatic, + .foregroundDarkStatic, + .presenceAway, + .presenceDnd, + .presenceAvailable, + .presenceOof: + return fluentTheme.color(.foregroundLightStatic) + } + } + } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift new file mode 100644 index 0000000000..d3a9645486 --- /dev/null +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift @@ -0,0 +1,64 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import FluentUI +import SwiftUI +import UIKit + +class AliasColorTokensDemoControllerSwiftUI: DemoHostingController { + init() { + super.init(rootView: AnyView(AliasColorTokensDemoView()), title: "Alias Color Tokens") + } + + @objc required dynamic init?(coder aDecoder: NSCoder) { + preconditionFailure("init(coder:) has not been implemented") + } + + @MainActor required dynamic init(rootView: AnyView) { + preconditionFailure("init(rootView:) has not been implemented") + } +} + +struct AliasColorTokensDemoView: View { + @Environment(\.fluentTheme) var fluentTheme: FluentTheme + + var body: some View { + if #available(iOS 16.0, *) { + formContent.scrollContentBackground(.hidden) + } else { + formContent.onAppear { + UITableView.appearance().backgroundColor = .clear + } + .onDisappear { + UITableView.appearance().backgroundColor = .systemGroupedBackground + } + } + } + + @ViewBuilder + var formContent: some View { + Form { + ForEach(AliasColorTokensDemoSection.allCases, id: \.self) { demoSection in + // No need for SwiftUI section in SwiftUI demo! + if demoSection != .swiftUI { + colorSection(demoSection) + } + } + } + .background(fluentTheme.color(.backgroundCanvas)) + } + + @ViewBuilder + func colorSection(_ demoSection: AliasColorTokensDemoSection) -> some View { + Section(demoSection.title) { + ForEach(demoSection.rows, id: \.self) { colorRow in + Text(colorRow.text) + .frame(maxWidth: .infinity, alignment: .center) + .listRowBackground(fluentTheme.color(colorRow)) + .foregroundStyle(Color(colorRow.textColor(fluentTheme))) + } + } + } +} diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift index 2c55b39f46..7f57d4f4bf 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift @@ -138,7 +138,7 @@ class DrawerDemoController: DemoController { UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) ] - let backgroundColor = view.fluentTheme.color(.background3) + let backgroundColor: UIColor = view.fluentTheme.color(.background3) controller.view.addSubview(content) content.frame = controller.view.bounds diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift index ee1ac82476..d305f3e83b 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift @@ -81,7 +81,7 @@ class SideTabBarDemoController: DemoController { sideTabBar.topItems[2].isUnreadDotVisible = true var premiumImage = UIImage(named: "ic_fluent_premium_24_regular")! - let primaryColor = view.fluentTheme.color(.brandForegroundTint) + let primaryColor: UIColor = view.fluentTheme.color(.brandForegroundTint) premiumImage = premiumImage.withTintColor(primaryColor, renderingMode: .alwaysOriginal) sideTabBar.bottomItems = [ diff --git a/ios/FluentUI.Tests/ColorTests.swift b/ios/FluentUI.Tests/ColorTests.swift index f7148ebe08..306a2a5e7f 100644 --- a/ios/FluentUI.Tests/ColorTests.swift +++ b/ios/FluentUI.Tests/ColorTests.swift @@ -4,56 +4,73 @@ // import XCTest +import SwiftUI @testable import FluentUI class ColorTests: XCTestCase { - @available(*, deprecated) - func testColorValue() { - let hexColorValue = ColorValue(0xC7E0F4) - XCTAssertEqual(hexColorValue.a, 1.0) - XCTAssertEqual(hexColorValue.r, CGFloat(0xC7) / 255.0) - XCTAssertEqual(hexColorValue.g, CGFloat(0xE0) / 255.0) - XCTAssertEqual(hexColorValue.b, CGFloat(0xF4) / 255.0) - - let rgbaColorValue = ColorValue(r: 0.35, g: 1.0, b: 0.82, a: 0.75) - XCTAssertEqual(rgbaColorValue.a, 0.75, accuracy: 0.01) - XCTAssertEqual(rgbaColorValue.r, 0.35, accuracy: 0.01) - XCTAssertEqual(rgbaColorValue.g, 1.0, accuracy: 0.01) - XCTAssertEqual(rgbaColorValue.b, 0.82, accuracy: 0.01) - } - - @available(*, deprecated) - func testColorValueConversions() { - let colorValue = ColorValue(r: 0.35, g: 1.0, b: 0.82, a: 0.75) - let color = UIColor(colorValue: colorValue) + func testUIColorHexValue() { + let hexValue = UInt32(0xC7E0F4) + let color = UIColor(hexValue: hexValue) var red: CGFloat = 0.0 var green: CGFloat = 0.0 var blue: CGFloat = 0.0 var alpha: CGFloat = 0.0 - // Verify that UIColor's getters return the same values as ColorValue's + // Verify that UIColor's getters return the same values as the hex value XCTAssertTrue(color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)) - XCTAssertEqual(colorValue.a, alpha) - XCTAssertEqual(colorValue.r, red) - XCTAssertEqual(colorValue.g, green) - XCTAssertEqual(colorValue.b, blue) + XCTAssertEqual(1.0, alpha) + XCTAssertEqual(CGFloat(0xC7) / 255.0, red, accuracy: 0.01) + XCTAssertEqual(CGFloat(0xE0) / 255.0, green, accuracy: 0.01) + XCTAssertEqual(CGFloat(0xF4) / 255.0, blue, accuracy: 0.01) } func testColorHexValue() { let hexValue = UInt32(0xC7E0F4) - let color = UIColor(hexValue: hexValue) + let color = Color(hexValue: hexValue) var red: CGFloat = 0.0 var green: CGFloat = 0.0 var blue: CGFloat = 0.0 var alpha: CGFloat = 0.0 - // Verify that UIColor's getters return the same values as ColorValue's - XCTAssertTrue(color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)) + // Verify that UIColor's getters return the same values as the hex value + let uiColor = UIColor(color) + XCTAssertTrue(uiColor.getRed(&red, green: &green, blue: &blue, alpha: &alpha)) XCTAssertEqual(1.0, alpha) XCTAssertEqual(CGFloat(0xC7) / 255.0, red, accuracy: 0.01) XCTAssertEqual(CGFloat(0xE0) / 255.0, green, accuracy: 0.01) XCTAssertEqual(CGFloat(0xF4) / 255.0, blue, accuracy: 0.01) + + if #available(iOS 17, *) { + let components = color.resolve(in: EnvironmentValues()) + XCTAssertEqual(red, CGFloat(components.red), accuracy: 0.01) + XCTAssertEqual(green, CGFloat(components.green), accuracy: 0.01) + XCTAssertEqual(blue, CGFloat(components.blue), accuracy: 0.01) + XCTAssertEqual(alpha, CGFloat(components.opacity), accuracy: 0.01) + } + } + + func testDynamicColorValue() { + let dynamicColor = DynamicColor(light: .white, + dark: .black) + let dynamicUIColor = UIColor(dynamicColor: dynamicColor) + XCTAssertEqual(dynamicUIColor.light, UIColor(Color.white)) + XCTAssertEqual(dynamicUIColor.dark, UIColor(Color.black)) + XCTAssertEqual(dynamicUIColor.darkElevated, UIColor(Color.black)) + + if #available(iOS 17, *) { + var lightColorEnvironment = EnvironmentValues() + lightColorEnvironment.colorScheme = .light + XCTAssertEqual(lightColorEnvironment.colorScheme, .light) + let lightColor = dynamicColor.resolve(in: lightColorEnvironment) + XCTAssertEqual(lightColor, Color.white.resolve(in: .init())) + + var darkColorEnvironment = EnvironmentValues() + darkColorEnvironment.colorScheme = .dark + XCTAssertEqual(darkColorEnvironment.colorScheme, .dark) + let darkColor = dynamicColor.resolve(in: darkColorEnvironment) + XCTAssertEqual(darkColor, Color.black.resolve(in: darkColorEnvironment)) + } } func testColorExtensions() { diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index 38f78d4a41..4a5bd3281b 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -191,7 +191,6 @@ 925728F7276D6AF800EE1019 /* ShadowInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925728F6276D6AF800EE1019 /* ShadowInfo.swift */; }; 925728F9276D6B5800EE1019 /* FontInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925728F8276D6B5800EE1019 /* FontInfo.swift */; }; 925D461D26FD133600179583 /* GlobalTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925D461B26FD133600179583 /* GlobalTokens.swift */; }; - 925D462026FD18B200179583 /* AliasTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925D461E26FD18B200179583 /* AliasTokens.swift */; }; 926B4C9A2B8E94F6001EBA16 /* FluentTheme+visionOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */; }; 926FEEAA2B45A8B4002C61D0 /* Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 926FEEA92B45A8B4002C61D0 /* Compatibility.swift */; }; 9275105626815A7100F12730 /* MSFPersonaButtonCarousel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9275105426815A7100F12730 /* MSFPersonaButtonCarousel.swift */; }; @@ -208,7 +207,9 @@ 92D5598226A0FD2800328FD3 /* CardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598026A0FD2800328FD3 /* CardNudge.swift */; }; 92D5FDFB28A713990087894B /* LinearGradientInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */; }; 92DEE2252723D34400E31ED0 /* ControlTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */; }; - 92E7AD5026FE51FF00AE7FF8 /* DynamicColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92E7AD4E26FE51FF00AE7FF8 /* DynamicColor.swift */; }; + 92ECB2DB2BE0697F00404D79 /* GlobalTokens+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */; }; + 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */; }; + 92ECB2DF2BE06BCB00404D79 /* FluentTheme+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */; }; 92EE82AE27025A94009D52B5 /* TokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92EE82AC27025A94009D52B5 /* TokenSet.swift */; }; 92F8054E272B2DF3000EAFDB /* CardNudgeModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92079C8E26B66E5100D688DA /* CardNudgeModifiers.swift */; }; 94A7EC1A2836DCB200BFFBAE /* CommandBarCommandGroupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */; }; @@ -360,7 +361,6 @@ 925728F6276D6AF800EE1019 /* ShadowInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowInfo.swift; sourceTree = ""; }; 925728F8276D6B5800EE1019 /* FontInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontInfo.swift; sourceTree = ""; }; 925D461B26FD133600179583 /* GlobalTokens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalTokens.swift; sourceTree = ""; }; - 925D461E26FD18B200179583 /* AliasTokens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasTokens.swift; sourceTree = ""; }; 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+visionOS.swift"; sourceTree = ""; }; 926FEEA92B45A8B4002C61D0 /* Compatibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Compatibility.swift; sourceTree = ""; }; 9275105426815A7100F12730 /* MSFPersonaButtonCarousel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFPersonaButtonCarousel.swift; sourceTree = ""; }; @@ -377,7 +377,9 @@ 92D5598026A0FD2800328FD3 /* CardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudge.swift; sourceTree = ""; }; 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinearGradientInfo.swift; sourceTree = ""; }; 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ControlTokenSet.swift; sourceTree = ""; }; - 92E7AD4E26FE51FF00AE7FF8 /* DynamicColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicColor.swift; sourceTree = ""; }; + 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GlobalTokens+UIKit.swift"; sourceTree = ""; }; + 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+DynamicColor.swift"; sourceTree = ""; }; + 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+UIKit.swift"; sourceTree = ""; }; 92EE82AC27025A94009D52B5 /* TokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenSet.swift; sourceTree = ""; }; 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarCommandGroupsView.swift; sourceTree = ""; }; A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "FluentUI-ios.xcassets"; path = "FluentUI/Resources/FluentUI-ios.xcassets"; sourceTree = ""; }; @@ -829,6 +831,7 @@ 925D461A26FD126800179583 /* Tokens */, 923DB9D3274CB65700D8E58A /* FluentTheme.swift */, 9231F10229BB99090079CD94 /* FluentTheme+Tokens.swift */, + 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */, 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */, ); path = Theme; @@ -837,12 +840,11 @@ 925D461A26FD126800179583 /* Tokens */ = { isa = PBXGroup; children = ( - 925D461E26FD18B200179583 /* AliasTokens.swift */, 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */, - 92E7AD4E26FE51FF00AE7FF8 /* DynamicColor.swift */, 92016FF7299DF34A00660DB7 /* EmptyTokenSet.swift */, 925728F8276D6B5800EE1019 /* FontInfo.swift */, 925D461B26FD133600179583 /* GlobalTokens.swift */, + 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */, 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */, 925728F6276D6AF800EE1019 /* ShadowInfo.swift */, 923DB9D2274CB65700D8E58A /* TokenizedControl.swift */, @@ -892,6 +894,7 @@ A5B87AED211BCA4A0038C37C /* Extensions */ = { isa = PBXGroup; children = ( + 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */, FD41C8B422DD3EA20086F899 /* NSLayoutConstraint+Extensions.swift */, A559BB7D212B6D100055E107 /* String+Extension.swift */, A56CE7B522E68A7800AA77EE /* UIColor+Extensions.swift */, @@ -1617,6 +1620,7 @@ EC65F790292EDCEF002A1A23 /* ButtonTokenSet.swift in Sources */, 5314E26625F023B20099271A /* UIColor+Extensions.swift in Sources */, 5314E30225F0260E0099271A /* AccessibilityContainerView.swift in Sources */, + 92ECB2DB2BE0697F00404D79 /* GlobalTokens+UIKit.swift in Sources */, 8035CAD026377C17007B3FD1 /* CommandingItem.swift in Sources */, 5314E0F325F012C80099271A /* ShyHeaderController.swift in Sources */, 535559E42711411E0094A871 /* FluentThemedHostingController.swift in Sources */, @@ -1640,6 +1644,7 @@ 4BDBE18928EC9E6F00314696 /* ShimmerTokenSet.swift in Sources */, 2A9745DE281733D700E1A1FD /* TableViewCellTokenSet.swift in Sources */, 530D9C5127EE388200BDCBBF /* SwiftUI+ViewPresentation.swift in Sources */, + 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */, 6F050B6D29D3D1A90070D3D5 /* TabBarTokenSet.swift in Sources */, 5314E0E725F012C00099271A /* UINavigationItem+Navigation.swift in Sources */, 920945492703DDA000B38E1A /* CardNudgeTokenSet.swift in Sources */, @@ -1648,10 +1653,8 @@ 4B53505F27F63E3F0033B47F /* NotificationModifiers.swift in Sources */, 5314E14425F016860099271A /* PageCardPresenterController.swift in Sources */, 5314E11B25F015EA0099271A /* PersonaListView.swift in Sources */, - 925D462026FD18B200179583 /* AliasTokens.swift in Sources */, 5314E28E25F024590099271A /* Date+Extensions.swift in Sources */, 5306076126A201C8002D49CF /* Persona.swift in Sources */, - 92E7AD5026FE51FF00AE7FF8 /* DynamicColor.swift in Sources */, 5314E14E25F016CD0099271A /* ResizingHandleView.swift in Sources */, 804EDE1528C00CA400371C6B /* ContentHeightResolutionContext.swift in Sources */, 4B8245D8293FC7A200CF0C77 /* TooltipTokenSet.swift in Sources */, @@ -1741,6 +1744,7 @@ 925728F7276D6AF800EE1019 /* ShadowInfo.swift in Sources */, 66963D0A29CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift in Sources */, 5328D97326FBA3D700F3723B /* IndeterminateProgressBarModifiers.swift in Sources */, + 92ECB2DF2BE06BCB00404D79 /* FluentTheme+UIKit.swift in Sources */, 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */, 923DB9D7274CB66D00D8E58A /* ControlHostingView.swift in Sources */, 5314E03B25F00E3D0099271A /* BadgeStringExtractor.swift in Sources */, diff --git a/ios/FluentUI/Button/FluentButtonToggleStyle.swift b/ios/FluentUI/Button/FluentButtonToggleStyle.swift index cc12024787..281a840d89 100644 --- a/ios/FluentUI/Button/FluentButtonToggleStyle.swift +++ b/ios/FluentUI/Button/FluentButtonToggleStyle.swift @@ -45,11 +45,11 @@ public struct FluentButtonToggleStyle: ToggleStyle { } private var buttonOnTokens: [ButtonToken: ControlTokenValue] { - let backgroundColor = fluentTheme.color(.brandBackgroundTint) + let backgroundColor: Color = fluentTheme.color(.brandBackgroundTint) var tokens: [ButtonToken: ControlTokenValue] = buttonTokens.merging([ - .backgroundColor: .uiColor { backgroundColor }, - .backgroundPressedColor: .uiColor { backgroundColor }, - .backgroundFocusedColor: .uiColor { backgroundColor } + .backgroundColor: .color { backgroundColor }, + .backgroundPressedColor: .color { backgroundColor }, + .backgroundFocusedColor: .color { backgroundColor } ]) { (_, new) in new } if let tokenOverrides = tokenOverrides { diff --git a/ios/FluentUI/Core/FluentUIFramework.swift b/ios/FluentUI/Core/FluentUIFramework.swift index ddaea524a4..371abb643b 100644 --- a/ios/FluentUI/Core/FluentUIFramework.swift +++ b/ios/FluentUI/Core/FluentUIFramework.swift @@ -28,7 +28,7 @@ public class FluentUIFramework: NSObject { @available(*, deprecated, renamed: "initializeAppearance(with:whenContainedInInstancesOf:)") @objc public static func initializeAppearance() { - let primaryColor = FluentTheme.shared.color(.brandBackground1) + let primaryColor: UIColor = FluentTheme.shared.color(.brandBackground1) initializeAppearance(with: primaryColor) } @@ -99,8 +99,9 @@ public class FluentUIFramework: NSObject { navigationBar.shadowImage = traits.userInterfaceStyle == .dark ? UIImage() : nil var titleAttributes = standardAppearance.titleTextAttributes + let foregroundColor: UIColor = fluentTheme.color(.foreground1) titleAttributes[.font] = fluentTheme.typography(.body1Strong) - titleAttributes[.foregroundColor] = fluentTheme.color(.foreground1) + titleAttributes[.foregroundColor] = foregroundColor standardAppearance.titleTextAttributes = titleAttributes diff --git a/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift b/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift index f092273215..eb254c8e18 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift @@ -3,7 +3,7 @@ // Licensed under the MIT License. // -import UIKit +import SwiftUI public extension FluentTheme { @objc(MSFGradientToken) @@ -148,10 +148,9 @@ public extension FluentTheme { /// Returns the color value for the given token. /// /// - Parameter token: The `ColorsTokens` value to be retrieved. - /// - Returns: A `UIColor` for the given token. - @objc(colorForToken:) - func color(_ token: ColorToken) -> UIColor { - return colorTokenSet[token] + /// - Returns: A `Color` for the given token. + func color(_ token: ColorToken) -> Color { + return Color(dynamicColor: colorTokenSet[token]) } /// Returns the shadow value for the given token. @@ -192,292 +191,291 @@ public extension FluentTheme { /// Returns an array of colors for the given token. /// /// - Parameter token: The `GradientTokens` value to be retrieved. - /// - Returns: An array of `UIColor` values for the given token. - @objc(gradientColorsForToken:) - func gradient(_ token: GradientToken) -> [UIColor] { - return gradientTokenSet[token] + /// - Returns: An array of `Color` values for the given token. + func gradient(_ token: GradientToken) -> [Color] { + return gradientTokenSet[token].map { Color(dynamicColor: $0) } } } extension FluentTheme { - static func defaultColor(_ token: FluentTheme.ColorToken) -> UIColor { + static func defaultColor(_ token: FluentTheme.ColorToken) -> DynamicColor { switch token { case .foreground1: - return UIColor(light: GlobalTokens.neutralColor(.grey14), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey14), + dark: GlobalTokens.neutralColor(.white)) case .foreground2: - return UIColor(light: GlobalTokens.neutralColor(.grey38), - dark: GlobalTokens.neutralColor(.grey84)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey38), + dark: GlobalTokens.neutralColor(.grey84)) case .foreground3: - return UIColor(light: GlobalTokens.neutralColor(.grey50), - dark: GlobalTokens.neutralColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey50), + dark: GlobalTokens.neutralColor(.grey68)) case .foregroundDisabled1: - return UIColor(light: GlobalTokens.neutralColor(.grey74), - dark: GlobalTokens.neutralColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey74), + dark: GlobalTokens.neutralColor(.grey36)) case .foregroundDisabled2: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.grey18)) case .foregroundOnColor: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.black)) case .brandForegroundTint: - return UIColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm130)) + return DynamicColor(light: GlobalTokens.brandColor(.comm60), + dark: GlobalTokens.brandColor(.comm130)) case .brandForeground1: - return UIColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandColor(.comm80), + dark: GlobalTokens.brandColor(.comm100)) case .brandForeground1Pressed: - return UIColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandColor(.comm50), + dark: GlobalTokens.brandColor(.comm140)) case .brandForeground1Selected: - return UIColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandColor(.comm60), + dark: GlobalTokens.brandColor(.comm120)) case .brandForegroundDisabled1: - return UIColor(light: GlobalTokens.brandColor(.comm90)) + return DynamicColor(light: GlobalTokens.brandColor(.comm90)) case .brandForegroundDisabled2: - return UIColor(light: GlobalTokens.brandColor(.comm140), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandColor(.comm140), + dark: GlobalTokens.brandColor(.comm40)) case .brandGradient1: - return UIColor(light: GlobalTokens.brandColor(.gradientPrimaryLight), - dark: GlobalTokens.brandColor(.gradientPrimaryDark)) + return DynamicColor(light: GlobalTokens.brandColor(.gradientPrimaryLight), + dark: GlobalTokens.brandColor(.gradientPrimaryDark)) case .brandGradient2: - return UIColor(light: GlobalTokens.brandColor(.gradientSecondaryLight), - dark: GlobalTokens.brandColor(.gradientSecondaryDark)) + return DynamicColor(light: GlobalTokens.brandColor(.gradientSecondaryLight), + dark: GlobalTokens.brandColor(.gradientSecondaryDark)) case .brandGradient3: - return UIColor(light: GlobalTokens.brandColor(.gradientTertiaryLight), - dark: GlobalTokens.brandColor(.gradientTertiaryDark)) + return DynamicColor(light: GlobalTokens.brandColor(.gradientTertiaryLight), + dark: GlobalTokens.brandColor(.gradientTertiaryDark)) case .foregroundDarkStatic: - return UIColor(light: GlobalTokens.neutralColor(.black), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralColor(.black), + dark: GlobalTokens.neutralColor(.black)) case .foregroundLightStatic: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.white)) case .background1: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black), - darkElevated: GlobalTokens.neutralColor(.grey4)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.black), + darkElevated: GlobalTokens.neutralColor(.grey4)) case .background1Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey18), - darkElevated: GlobalTokens.neutralColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey18), + darkElevated: GlobalTokens.neutralColor(.grey18)) case .background1Selected: - return UIColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey14), - darkElevated: GlobalTokens.neutralColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey92), + dark: GlobalTokens.neutralColor(.grey14), + darkElevated: GlobalTokens.neutralColor(.grey14)) case .background2: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey12), - darkElevated: GlobalTokens.neutralColor(.grey16)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.grey12), + darkElevated: GlobalTokens.neutralColor(.grey16)) case .background2Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey30), + darkElevated: GlobalTokens.neutralColor(.grey30)) case .background2Selected: - return UIColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey26), - darkElevated: GlobalTokens.neutralColor(.grey26)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey92), + dark: GlobalTokens.neutralColor(.grey26), + darkElevated: GlobalTokens.neutralColor(.grey26)) case .background3: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey16), - darkElevated: GlobalTokens.neutralColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.grey16), + darkElevated: GlobalTokens.neutralColor(.grey20)) case .background3Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey34), - darkElevated: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey34), + darkElevated: GlobalTokens.neutralColor(.grey34)) case .background3Selected: - return UIColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey92), + dark: GlobalTokens.neutralColor(.grey30), + darkElevated: GlobalTokens.neutralColor(.grey30)) case .background4: - return UIColor(light: GlobalTokens.neutralColor(.grey98), - dark: GlobalTokens.neutralColor(.grey20), - darkElevated: GlobalTokens.neutralColor(.grey24)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey98), + dark: GlobalTokens.neutralColor(.grey20), + darkElevated: GlobalTokens.neutralColor(.grey24)) case .background4Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey86), - dark: GlobalTokens.neutralColor(.grey38), - darkElevated: GlobalTokens.neutralColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey86), + dark: GlobalTokens.neutralColor(.grey38), + darkElevated: GlobalTokens.neutralColor(.grey38)) case .background4Selected: - return UIColor(light: GlobalTokens.neutralColor(.grey90), - dark: GlobalTokens.neutralColor(.grey34), - darkElevated: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey90), + dark: GlobalTokens.neutralColor(.grey34), + darkElevated: GlobalTokens.neutralColor(.grey34)) case .background5: - return UIColor(light: GlobalTokens.neutralColor(.grey94), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey28)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey94), + dark: GlobalTokens.neutralColor(.grey24), + darkElevated: GlobalTokens.neutralColor(.grey28)) case .background5Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey42), - darkElevated: GlobalTokens.neutralColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey82), + dark: GlobalTokens.neutralColor(.grey42), + darkElevated: GlobalTokens.neutralColor(.grey42)) case .background5Selected: - return UIColor(light: GlobalTokens.neutralColor(.grey86), - dark: GlobalTokens.neutralColor(.grey38), - darkElevated: GlobalTokens.neutralColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey86), + dark: GlobalTokens.neutralColor(.grey38), + darkElevated: GlobalTokens.neutralColor(.grey38)) case .background6: - return UIColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey36), - darkElevated: GlobalTokens.neutralColor(.grey40)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey82), + dark: GlobalTokens.neutralColor(.grey36), + darkElevated: GlobalTokens.neutralColor(.grey40)) case .backgroundDisabled: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey32), - darkElevated: GlobalTokens.neutralColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey32), + darkElevated: GlobalTokens.neutralColor(.grey32)) case .brandBackgroundTint: - return UIColor(light: GlobalTokens.brandColor(.comm150), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandColor(.comm150), + dark: GlobalTokens.brandColor(.comm40)) case .brandBackground1: - return UIColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandColor(.comm80), + dark: GlobalTokens.brandColor(.comm100)) case .brandBackground1Pressed: - return UIColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandColor(.comm50), + dark: GlobalTokens.brandColor(.comm140)) case .brandBackground1Selected: - return UIColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandColor(.comm60), + dark: GlobalTokens.brandColor(.comm120)) case .brandBackground2: - return UIColor(light: GlobalTokens.brandColor(.comm70)) + return DynamicColor(light: GlobalTokens.brandColor(.comm70)) case .brandBackground2Pressed: - return UIColor(light: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandColor(.comm40)) case .brandBackground2Selected: - return UIColor(light: GlobalTokens.brandColor(.comm80)) + return DynamicColor(light: GlobalTokens.brandColor(.comm80)) case .brandBackground3: - return UIColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandColor(.comm60), + dark: GlobalTokens.brandColor(.comm120)) case .brandBackgroundDisabled: - return UIColor(light: GlobalTokens.brandColor(.comm140), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandColor(.comm140), + dark: GlobalTokens.brandColor(.comm40)) case .stencil1: - return UIColor(light: GlobalTokens.neutralColor(.grey90), - dark: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey90), + dark: GlobalTokens.neutralColor(.grey34)) case .stencil2: - return UIColor(light: GlobalTokens.neutralColor(.grey98), - dark: GlobalTokens.neutralColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey98), + dark: GlobalTokens.neutralColor(.grey20)) case .backgroundCanvas: - return UIColor(light: GlobalTokens.neutralColor(.grey96), - dark: GlobalTokens.neutralColor(.grey8), - darkElevated: GlobalTokens.neutralColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey96), + dark: GlobalTokens.neutralColor(.grey8), + darkElevated: GlobalTokens.neutralColor(.grey14)) case .backgroundDarkStatic: - return UIColor(light: GlobalTokens.neutralColor(.grey14), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey14), + dark: GlobalTokens.neutralColor(.grey24), + darkElevated: GlobalTokens.neutralColor(.grey30)) case .backgroundInverted: - return UIColor(light: GlobalTokens.neutralColor(.grey46), - dark: GlobalTokens.neutralColor(.grey72), - darkElevated: GlobalTokens.neutralColor(.grey78)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey46), + dark: GlobalTokens.neutralColor(.grey72), + darkElevated: GlobalTokens.neutralColor(.grey78)) case .backgroundLightStatic: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.white), - darkElevated: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.white), + darkElevated: GlobalTokens.neutralColor(.white)) case .backgroundLightStaticDisabled: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey68), - darkElevated: GlobalTokens.neutralColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.grey68), + darkElevated: GlobalTokens.neutralColor(.grey42)) case .stroke1: - return UIColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey82), + dark: GlobalTokens.neutralColor(.grey30), + darkElevated: GlobalTokens.neutralColor(.grey36)) case .stroke1Pressed: - return UIColor(light: GlobalTokens.neutralColor(.grey70), - dark: GlobalTokens.neutralColor(.grey48)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey70), + dark: GlobalTokens.neutralColor(.grey48)) case .stroke2: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey24), + darkElevated: GlobalTokens.neutralColor(.grey30)) case .strokeAccessible: - return UIColor(light: GlobalTokens.neutralColor(.grey38), - dark: GlobalTokens.neutralColor(.grey62), - darkElevated: GlobalTokens.neutralColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey38), + dark: GlobalTokens.neutralColor(.grey62), + darkElevated: GlobalTokens.neutralColor(.grey68)) case .strokeFocus1: - return UIColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralColor(.white), + dark: GlobalTokens.neutralColor(.black)) case .strokeFocus2: - return UIColor(light: GlobalTokens.neutralColor(.black), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralColor(.black), + dark: GlobalTokens.neutralColor(.white)) case .strokeDisabled: - return UIColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey26), - darkElevated: GlobalTokens.neutralColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralColor(.grey88), + dark: GlobalTokens.neutralColor(.grey26), + darkElevated: GlobalTokens.neutralColor(.grey32)) case .brandStroke1: - return UIColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandColor(.comm80), + dark: GlobalTokens.brandColor(.comm100)) case .brandStroke1Pressed: - return UIColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandColor(.comm50), + dark: GlobalTokens.brandColor(.comm140)) case .brandStroke1Selected: - return UIColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandColor(.comm60), + dark: GlobalTokens.brandColor(.comm120)) case .dangerBackground1: - return UIColor(light: GlobalTokens.sharedColor(.red, .tint60), - dark: GlobalTokens.sharedColor(.red, .shade40)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .tint60), + dark: GlobalTokens.sharedColor(.red, .shade40)) case .dangerBackground2: - return UIColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .shade10)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), + dark: GlobalTokens.sharedColor(.red, .shade10)) case .dangerForeground1: - return UIColor(light: GlobalTokens.sharedColor(.red, .shade10), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .shade10), + dark: GlobalTokens.sharedColor(.red, .tint30)) case .dangerForeground2: - return UIColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), + dark: GlobalTokens.sharedColor(.red, .tint30)) case .dangerStroke1: - return UIColor(light: GlobalTokens.sharedColor(.red, .tint20), - dark: GlobalTokens.sharedColor(.red, .tint20)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .tint20), + dark: GlobalTokens.sharedColor(.red, .tint20)) case .dangerStroke2: - return UIColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), + dark: GlobalTokens.sharedColor(.red, .tint30)) case .successBackground1: - return UIColor(light: GlobalTokens.sharedColor(.green, .tint60), - dark: GlobalTokens.sharedColor(.green, .shade40)) + return DynamicColor(light: GlobalTokens.sharedColor(.green, .tint60), + dark: GlobalTokens.sharedColor(.green, .shade40)) case .successBackground2: - return UIColor(light: GlobalTokens.sharedColor(.green, .primary), - dark: GlobalTokens.sharedColor(.green, .shade10)) + return DynamicColor(light: GlobalTokens.sharedColor(.green, .primary), + dark: GlobalTokens.sharedColor(.green, .shade10)) case .successForeground1: - return UIColor(light: GlobalTokens.sharedColor(.green, .shade10), - dark: GlobalTokens.sharedColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.green, .shade10), + dark: GlobalTokens.sharedColor(.green, .tint30)) case .successForeground2: - return UIColor(light: GlobalTokens.sharedColor(.green, .primary), - dark: GlobalTokens.sharedColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.green, .primary), + dark: GlobalTokens.sharedColor(.green, .tint30)) case .successStroke1: - return UIColor(light: GlobalTokens.sharedColor(.green, .tint20), - dark: GlobalTokens.sharedColor(.green, .tint20)) + return DynamicColor(light: GlobalTokens.sharedColor(.green, .tint20), + dark: GlobalTokens.sharedColor(.green, .tint20)) case .severeBackground1: - return UIColor(light: GlobalTokens.sharedColor(.darkOrange, .tint60), - dark: GlobalTokens.sharedColor(.darkOrange, .shade40)) + return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .tint60), + dark: GlobalTokens.sharedColor(.darkOrange, .shade40)) case .severeBackground2: - return UIColor(light: GlobalTokens.sharedColor(.darkOrange, .primary), - dark: GlobalTokens.sharedColor(.darkOrange, .shade10)) + return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .primary), + dark: GlobalTokens.sharedColor(.darkOrange, .shade10)) case .severeForeground1: - return UIColor(light: GlobalTokens.sharedColor(.darkOrange, .shade10), - dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .shade10), + dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) case .severeForeground2: - return UIColor(light: GlobalTokens.sharedColor(.darkOrange, .shade20), - dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .shade20), + dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) case .severeStroke1: - return UIColor(light: GlobalTokens.sharedColor(.darkOrange, .tint10), - dark: GlobalTokens.sharedColor(.darkOrange, .tint20)) + return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .tint10), + dark: GlobalTokens.sharedColor(.darkOrange, .tint20)) case .warningBackground1: - return UIColor(light: GlobalTokens.sharedColor(.yellow, .tint60), - dark: GlobalTokens.sharedColor(.yellow, .shade40)) + return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .tint60), + dark: GlobalTokens.sharedColor(.yellow, .shade40)) case .warningBackground2: - return UIColor(light: GlobalTokens.sharedColor(.yellow, .primary), - dark: GlobalTokens.sharedColor(.yellow, .shade10)) + return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .primary), + dark: GlobalTokens.sharedColor(.yellow, .shade10)) case .warningForeground1: - return UIColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), + dark: GlobalTokens.sharedColor(.yellow, .tint30)) case .warningForeground2: - return UIColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), + dark: GlobalTokens.sharedColor(.yellow, .tint30)) case .warningStroke1: - return UIColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .shade20)) + return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), + dark: GlobalTokens.sharedColor(.yellow, .shade20)) case .presenceAway: - return UIColor(light: GlobalTokens.sharedColor(.marigold, .primary)) + return DynamicColor(light: GlobalTokens.sharedColor(.marigold, .primary)) case .presenceDnd: - return UIColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint10)) + return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), + dark: GlobalTokens.sharedColor(.red, .tint10)) case .presenceAvailable: - return UIColor(light: GlobalTokens.sharedColor(.lightGreen, .primary), - dark: GlobalTokens.sharedColor(.lightGreen, .tint20)) + return DynamicColor(light: GlobalTokens.sharedColor(.lightGreen, .primary), + dark: GlobalTokens.sharedColor(.lightGreen, .tint20)) case .presenceOof: - return UIColor(light: GlobalTokens.sharedColor(.berry, .primary), - dark: GlobalTokens.sharedColor(.berry, .tint20)) + return DynamicColor(light: GlobalTokens.sharedColor(.berry, .primary), + dark: GlobalTokens.sharedColor(.berry, .tint20)) } } @@ -603,7 +601,7 @@ extension FluentTheme { } /// Derives its default values from the theme's `colorTokenSet` values - static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet) -> [UIColor] { + static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet) -> [DynamicColor] { switch token { case .flair: return [colorTokenSet[.brandGradient1], diff --git a/ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift b/ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift new file mode 100644 index 0000000000..ff201281ac --- /dev/null +++ b/ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift @@ -0,0 +1,28 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import UIKit +import SwiftUI + +public extension FluentTheme { + + /// Returns the color value for the given token. + /// + /// - Parameter token: The `ColorsTokens` value to be retrieved. + /// - Returns: A `UIColor` for the given token. + @objc(colorForToken:) + func color(_ token: ColorToken) -> UIColor { + return UIColor(dynamicColor: colorTokenSet[token]) + } + + /// Returns an array of colors for the given token. + /// + /// - Parameter token: The `GradientTokens` value to be retrieved. + /// - Returns: An array of `UIColor` values for the given token. + @objc(gradientColorsForToken:) + func gradient(_ token: GradientToken) -> [UIColor] { + return gradientTokenSet[token].map { UIColor(dynamicColor: $0) } + } +} diff --git a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift index 6e368deb54..27dd488083 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift @@ -3,57 +3,58 @@ // Licensed under the MIT License. // -import UIKit +import SwiftUI #if os(visionOS) extension FluentTheme { - static func defaultColor_visionOS(_ token: FluentTheme.ColorToken) -> UIColor { - let visionColor: UIColor + static func defaultColor_visionOS(_ token: FluentTheme.ColorToken) -> DynamicColor { + let visionColorDark: Color // Apply overrides as needed. Note that visionOS only supports one mode, so there's no // need to provide multiple values (e.g. light + dark, elevated, etc). switch token { case .foreground1: - visionColor = .white + visionColorDark = GlobalTokens.neutralColor(.white) case .foreground2: - visionColor = .white + visionColorDark = .white case .foreground3: - visionColor = .white + visionColorDark = .white case .foregroundDisabled1: - visionColor = .white.withAlphaComponent(0.8) + visionColorDark = .white.opacity(0.8) case .foregroundOnColor: - visionColor = .white + visionColorDark = .white case .background1: - visionColor = .clear + visionColorDark = .clear case .background1Pressed: - visionColor = .white.withAlphaComponent(0.1) + visionColorDark = .white.opacity(0.1) case .background2: - visionColor = .black.withAlphaComponent(0.1) + visionColorDark = .black.opacity(0.1) case .background2Pressed: - visionColor = .clear + visionColorDark = .clear case .background3: - visionColor = .black.withAlphaComponent(0.1) + visionColorDark = .black.opacity(0.1) case .background4: - visionColor = .clear + visionColorDark = .clear case .background5: - visionColor = .black.withAlphaComponent(0.2) + visionColorDark = .black.opacity(0.2) case .background5Pressed: - visionColor = .black.withAlphaComponent(0.1) + visionColorDark = .black.opacity(0.1) case .backgroundCanvas: - visionColor = .clear + visionColorDark = .clear case .stroke1: - visionColor = .white.withAlphaComponent(0.4) + visionColorDark = .white.opacity(0.4) case .stroke2: - visionColor = .white.withAlphaComponent(0.5) + visionColorDark = .white.opacity(0.5) case .dangerForeground2: - visionColor = GlobalTokens.sharedColor(.red, .primary) + visionColorDark = GlobalTokens.sharedColor(.red, .primary) default: // Return the standard iOS color by default. - visionColor = defaultColor(token) + return defaultColor(token) } - return UIColor(light: defaultColor(token).light, dark: visionColor.dark) + // Otherwise, use the override for `dark` and fall back to the default for `light`. + return DynamicColor(light: defaultColor(token).light, dark: visionColorDark) } } #endif diff --git a/ios/FluentUI/Core/Theme/FluentTheme.swift b/ios/FluentUI/Core/Theme/FluentTheme.swift index 59ccd19fb5..0d7ad39d48 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme.swift @@ -42,17 +42,21 @@ public class FluentTheme: NSObject, ObservableObject { return FontInfo(name: font.fontName, size: font.pointSize) }) + let mappedColorOverrides = colorOverrides?.compactMapValues({ color in + return DynamicColor(uiColor: color) + }) + #if os(visionOS) // We have custom overrides for `defaultColors` in visionOS. - let defaultColorFunction = FluentTheme.defaultColor_visionOS(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor_visionOS(_:) #else - let defaultColorFunction = FluentTheme.defaultColor(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor(_:) #endif - let colorTokenSet = TokenSet(defaultColorFunction, colorOverrides) + let colorTokenSet = TokenSet(defaultColorFunction, mappedColorOverrides) let shadowTokenSet = TokenSet(FluentTheme.defaultShadow(_:), shadowOverrides) let typographyTokenSet = TokenSet(FluentTheme.defaultTypography(_:), mappedTypographyOverrides) - let gradientTokenSet = TokenSet({ [colorTokenSet] token in + let gradientTokenSet = TokenSet({ [colorTokenSet] token in // Reference the colorTokenSet as part of the gradient lookup return FluentTheme.defaultGradientColor(token, colorTokenSet: colorTokenSet) }) @@ -81,15 +85,6 @@ public class FluentTheme: NSObject, ObservableObject { return controlTokenSets[tokenKey(tokenSetType)] as? [T: ControlTokenValue] } - /// The associated `AliasTokens` for this theme. - @available(*, deprecated, message: "AliasTokens are deprecated. Please use the token lookup methods on FluentTheme directly.") - @objc public lazy var aliasTokens: AliasTokens = { - AliasTokens(colorTokenSet: colorTokenSet, - shadowTokenSet: shadowTokenSet, - typographyTokenSet: typographyTokenSet, - gradientTokenSet: gradientTokenSet) - }() - /// The shared `FluentTheme` instance used by default for controls in the app. /// /// This static `FluentTheme` instance will normally return the default token values associated @@ -130,10 +125,10 @@ public class FluentTheme: NSObject, ObservableObject { } // Token storage - let colorTokenSet: TokenSet + let colorTokenSet: TokenSet let shadowTokenSet: TokenSet let typographyTokenSet: TokenSet - let gradientTokenSet: TokenSet + let gradientTokenSet: TokenSet private func tokenKey(_ tokenSetType: ControlTokenSet.Type) -> String { return "\(tokenSetType)" diff --git a/ios/FluentUI/Core/Theme/Tokens/AliasTokens.swift b/ios/FluentUI/Core/Theme/Tokens/AliasTokens.swift deleted file mode 100644 index fbcba887c0..0000000000 --- a/ios/FluentUI/Core/Theme/Tokens/AliasTokens.swift +++ /dev/null @@ -1,210 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -import SwiftUI - -/// Alias Tokens represent a unified set of semantic values to be used by Fluent UI. -/// -/// Values are derived from the Fluent UI design token system at https://github.com/microsoft/fluentui-design-tokens. -@available(*, deprecated, message: "`AliasTokens` is now deprecated. Please fetch all token values from `FluentTheme` directly.") -@objc(MSFAliasTokens) -public final class AliasTokens: NSObject { - - // MARK: - Typography - - @objc(MSFTypographyAliasTokens) - public enum TypographyTokens: Int, TokenSetKey { - case display - case largeTitle - case title1 - case title2 - case title3 - case body1Strong - case body1 - case body2Strong - case body2 - case caption1Strong - case caption1 - case caption2 - } - - @available(*, deprecated, message: "`AliasTokens` is now deprecated. Please use `typography` on `FluentTheme`.") - @available(swift, obsoleted: 1.0, message: "This method exists for Objective-C backwards compatibility and should not be invoked from Swift. Please use the `typography` property directly.") - @objc(typographyForToken:) - public func typography(_ token: TypographyTokens) -> FontInfo { - return typography[token] - } - - public let typography: TokenSet - - // MARK: - Shadow - - @objc(MSFShadowAliasTokens) - public enum ShadowTokens: Int, TokenSetKey { - case clear - case shadow02 - case shadow04 - case shadow08 - case shadow16 - case shadow28 - case shadow64 - } - - @available(*, deprecated, message: "`AliasTokens` is now deprecated. Please use `shadow` on `FluentTheme`.") - @available(swift, obsoleted: 1.0, message: "This method exists for Objective-C backwards compatibility and should not be invoked from Swift. Please use the `shadow` property directly.") - @objc(shadowForToken:) - public func shadow(_ token: ShadowTokens) -> ShadowInfo { - return shadow[token] - } - - public let shadow: TokenSet - - // MARK: - Colors - - @objc(MSFColorAliasTokens) - public enum ColorsTokens: Int, TokenSetKey { - // Neutral colors - Background - case background1 - case background1Pressed - case background1Selected - case background2 - case background2Pressed - case background2Selected - case background3 - case background3Pressed - case background3Selected - case background4 - case background4Pressed - case background4Selected - case background5 - case background5Pressed - case background5Selected - case background6 - case backgroundCanvas - case backgroundDarkStatic - case backgroundLightStatic - case backgroundLightStaticDisabled - case backgroundInverted - case backgroundDisabled - case stencil1 - case stencil2 - - // Neutral colors - Foreground - case foreground1 - case foreground2 - case foreground3 - case foregroundDisabled1 - case foregroundDisabled2 - case foregroundOnColor - case foregroundDarkStatic - case foregroundLightStatic - - // Neutral colors - Stroke - case stroke1 - case stroke1Pressed - case stroke2 - case strokeAccessible - case strokeFocus1 - case strokeFocus2 - case strokeDisabled - - // Brand colors - Brand background - case brandBackground1 - case brandBackground1Pressed - case brandBackground1Selected - case brandBackground2 - case brandBackground2Pressed - case brandBackground2Selected - case brandBackground3 - case brandBackgroundTint - case brandBackgroundDisabled - - // Brand colors - Brand foreground - case brandForeground1 - case brandForeground1Pressed - case brandForeground1Selected - case brandForegroundTint - case brandForegroundDisabled1 - case brandForegroundDisabled2 - - // Brand colors - Brand gradient - case brandGradient1 - case brandGradient2 - case brandGradient3 - - // Brand colors - Brand stroke - case brandStroke1 - case brandStroke1Pressed - case brandStroke1Selected - - // Shared colors - Error & Status - case dangerBackground1 - case dangerBackground2 - case dangerForeground1 - case dangerForeground2 - case dangerStroke1 - case dangerStroke2 - case successBackground1 - case successBackground2 - case successForeground1 - case successForeground2 - case successStroke1 - case warningBackground1 - case warningBackground2 - case warningForeground1 - case warningForeground2 - case warningStroke1 - case severeBackground1 - case severeBackground2 - case severeForeground1 - case severeForeground2 - case severeStroke1 - - // Shared colors - Presence - case presenceAway - case presenceDnd - case presenceAvailable - case presenceOof - } - - @available(*, deprecated, message: "`AliasTokens` is now deprecated. Please use `color` on `FluentTheme`.") - @available(swift, obsoleted: 1.0, message: "This method exists for Objective-C backwards compatibility and should not be invoked from Swift. Please use the `colors` property directly.") - @objc(aliasColorForToken:) - public func color(_ token: ColorsTokens) -> DynamicColor { - return colors[token] - } - public private(set) var colors: TokenSet - - // MARK: - Gradient Colors - - @objc(MSFGradientColorAliasTokens) - public enum GradientTokens: Int, TokenSetKey { - case flair - case tint - } - - @available(*, deprecated, message: "`AliasTokens` is now deprecated. Please use `gradient` on `FluentTheme`.") - @available(swift, obsoleted: 1.0, message: "This method exists for Objective-C backwards compatibility and should not be invoked from Swift. Please use the `gradientColors` property directly.") - @objc(aliasGradientColorsForToken:) - public func gradientColors(_ token: GradientTokens) -> [UIColor] { - return gradients[token] - } - public let gradients: TokenSet - - // MARK: Initialization - - init(colorTokenSet: TokenSet, - shadowTokenSet: TokenSet, - typographyTokenSet: TokenSet, - gradientTokenSet: TokenSet) { - - self.colors = .init { colorTokenSet[FluentTheme.ColorToken(rawValue: $0.rawValue)!].dynamicColor! } - self.shadow = .init { shadowTokenSet[FluentTheme.ShadowToken(rawValue: $0.rawValue)!] } - self.typography = .init { typographyTokenSet[FluentTheme.TypographyToken(rawValue: $0.rawValue)!] } - self.gradients = .init { gradientTokenSet[FluentTheme.GradientToken(rawValue: $0.rawValue)!] } - - super.init() - } -} diff --git a/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift b/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift index b1413f7dd7..c69156895c 100644 --- a/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift +++ b/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift @@ -5,6 +5,7 @@ import Combine import UIKit +import SwiftUI /// Base class for all Fluent control tokenization. public class ControlTokenSet: ObservableObject { @@ -204,6 +205,7 @@ public class ControlTokenSet: ObservableObject { public enum ControlTokenValue { case float(() -> CGFloat) case uiColor(() -> UIColor) + case color(() -> Color) case uiFont(() -> UIFont) case shadowInfo(() -> ShadowInfo) @@ -219,8 +221,21 @@ public enum ControlTokenValue { public var uiColor: UIColor { if case .uiColor(let uiColor) = self { return uiColor() + } else if case .color(let color) = self { + return UIColor(color()) } else { assertionFailure("Cannot convert token to UIColor: \(self)") + return fallbackUIColor + } + } + + public var color: Color { + if case .color(let color) = self { + return color() + } else if case .uiColor(let uiColor) = self { + return Color(uiColor()) + } else { + assertionFailure("Cannot convert token to Color: \(self)") return fallbackColor } } @@ -239,11 +254,11 @@ public enum ControlTokenValue { return shadowInfo() } else { assertionFailure("Cannot convert token to ShadowInfo: \(self)") - return ShadowInfo(keyColor: fallbackColor, + return ShadowInfo(keyColor: fallbackUIColor, keyBlur: 10.0, xKey: 10.0, yKey: 10.0, - ambientColor: fallbackColor, + ambientColor: fallbackUIColor, ambientBlur: 10.0, xAmbient: 10.0, yAmbient: 10.0) @@ -282,7 +297,16 @@ public enum ControlTokenValue { // MARK: - Helpers - private var fallbackColor: UIColor { + private var fallbackUIColor: UIColor { +#if DEBUG + // Use our global "Hot Pink" in debug builds, to help identify unintentional conversions. + return GlobalTokens.sharedColor(.hotPink, .primary) +#else + return GlobalTokens.neutralColor(.black) +#endif + } + + private var fallbackColor: Color { #if DEBUG // Use our global "Hot Pink" in debug builds, to help identify unintentional conversions. return GlobalTokens.sharedColor(.hotPink, .primary) @@ -301,6 +325,8 @@ extension ControlTokenValue: CustomStringConvertible { return "ControlTokenValue.float (\(float())" case .uiColor(let uiColor): return "ControlTokenValue.uiColor (\(uiColor())" + case .color(let color): + return "ControlTokenValue.color (\(color())" case .uiFont(let uiFont): return "ControlTokenValue.uiFont (\(uiFont())" case .shadowInfo(let shadowInfo): diff --git a/ios/FluentUI/Core/Theme/Tokens/DynamicColor.swift b/ios/FluentUI/Core/Theme/Tokens/DynamicColor.swift deleted file mode 100644 index 0881204852..0000000000 --- a/ios/FluentUI/Core/Theme/Tokens/DynamicColor.swift +++ /dev/null @@ -1,194 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -import SwiftUI - -/// A platform-agnostic representation of a 32-bit RGBA color value. -@available(*, deprecated, message: "Please use UIColor or Color directly.") -@objc(MSFColorValue) -public class ColorValue: NSObject { - - public static let clear: ColorValue = .init(r: 0.0, g: 0.0, b: 0.0, a: 0.0) - - /// Creates a color value instance with the specified three-channel, 8-bit-per-channel color value, usually in hex. - /// - /// For example: `0xFF0000` represents red, `0x00FF00` green, and `0x0000FF` blue. - /// There is no way to specify an alpha channel via this initializer. For that, use `init(r:g:b:a)` instead. - /// - /// - Parameter hexValue: The color value to store, in 24-bit (three-channel, 8-bit) RGB. - /// - /// - Returns: A color object that stores the provided color information. - @objc public init(_ hexValue: UInt32) { - self.hexValue = hexValue << 8 | 0xFF - } - - /// Creates a color value instance with the specified channel values. - /// - /// Parameters work just like `UIColor`, `NSColor`, or `SwiftUI.Color`, and should all be in the range of `0.0 ≤ value ≤ 1.0`. - /// Any channel that is above 1.0 will be clipped down to 1.0; results are undefined for negative inputs. - /// - /// - Parameter r: The red channel. - /// - Parameter g: The green channel. - /// - Parameter b: The blue channel. - /// - Parameter a: The alpha channel. - /// - /// - Returns: A color object that stores the provided color information. - @objc public init(r: CGFloat, - g: CGFloat, - b: CGFloat, - a: CGFloat) { - hexValue = (min(UInt32(r * 255.0), 0xFF) << 24) | - (min(UInt32(g * 255.0), 0xFF) << 16) | - (min(UInt32(b * 255.0), 0xFF) << 8) | - (min(UInt32(a * 255.0), 0xFF)) - } - - var r: CGFloat { CGFloat((hexValue & 0xFF000000) >> 24) / 255.0 } - var g: CGFloat { CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0 } - var b: CGFloat { CGFloat((hexValue & 0x0000FF00) >> 8) / 255.0 } - var a: CGFloat { CGFloat(hexValue & 0x000000FF) / 255.0 } - - // Value is stored in RGBA format. - private let hexValue: UInt32 -} - -/// Represents a set of color values to be used in different contexts. -@available(*, deprecated, message: "Please use UIColor or Color directly.") -@objc(MSFDynamicColor) -public class DynamicColor: NSObject { - - /// Creates a dynamic color object that wraps a set of color values for various rendering contexts. - /// - /// - Parameter light: The default color for a light context. Required. - /// - Parameter lightHighContrast: The override color for a light, high contrast context. Optional. - /// - Parameter lightElevated: The override color for a light, elevated context. Optional. - /// - Parameter lightElevatedHighContrast: The override color for a light, elevated, high contrast context. Optional. - /// - Parameter dark: The override color for a dark context. Optional. - /// - Parameter darkHighContrast: The override color for a dark, high contrast context. Optional. - /// - Parameter darkElevated: The override color for a dark, elevated context. Optional. - /// - Parameter darkElevatedHighContrast: The override color for a dark, elevated, high contrast context. Optional. - @objc public init(light: ColorValue, - lightHighContrast: ColorValue? = nil, - lightElevated: ColorValue? = nil, - lightElevatedHighContrast: ColorValue? = nil, - dark: ColorValue? = nil, - darkHighContrast: ColorValue? = nil, - darkElevated: ColorValue? = nil, - darkElevatedHighContrast: ColorValue? = nil) { - self.light = light - self.lightHighContrast = lightHighContrast - self.lightElevated = lightElevated - self.lightElevatedHighContrast = lightElevatedHighContrast - self.dark = dark - self.darkHighContrast = darkHighContrast - self.darkElevated = darkElevated - self.darkElevatedHighContrast = darkElevatedHighContrast - } - - /// The default color for a light context. Required. - let light: ColorValue - - /// The override color for a light, high contrast context. Optional. - let lightHighContrast: ColorValue? - - /// The override color for a light, elevated context. Optional. - let lightElevated: ColorValue? - - /// The override color for a light, elevated, high contrast context. Optional. - let lightElevatedHighContrast: ColorValue? - - /// The override color for a dark context. Optional. - let dark: ColorValue? - - /// The override color for a dark, high contrast context. Optional. - let darkHighContrast: ColorValue? - - /// The override color for a dark, elevated context. Optional. - let darkElevated: ColorValue? - - /// The override color for a dark, elevated, high contrast context. Optional. - let darkElevatedHighContrast: ColorValue? - - // MARK: - Internal functions - - /// Returns an appropriate color value based on the contextual info passed in. - /// - /// The decision order for choosing between the colors is based on the following questions, in order: - /// - Is the current `userInterfaceStyle` `.dark` or `.light`? - /// - Is the current `userInterfaceLevel` `.base` or `.elevated`? - /// - Is the current `accessibilityContrast` `.normal` or `.high`? - /// - /// - Parameters: - /// - colorScheme: The current color scheme, `.dark` or `.light`. - /// - contrast: The current contrast value, `.base` or `.elevated`. - /// - isElevated: Whether we are in an elevated context. - func value(colorScheme: ColorScheme, - contrast: ColorSchemeContrast, - isElevated: Bool) -> ColorValue { - if colorScheme == .dark, - let color = getColor(dark, - darkHighContrast, - darkElevated, - darkElevatedHighContrast, - contrast, - isElevated) { - return color - } else if let color = getColor(light, - lightHighContrast, - lightElevated, - lightElevatedHighContrast, - contrast, - isElevated) { - return color - } else { - preconditionFailure("Unable to choose color. Should not be reachable, as `light` color is non-optional.") - } - } - - // MARK: - Private functions - - private func getColorForContrast(_ default: ColorValue?, - _ highContrast: ColorValue?, - _ contrast: ColorSchemeContrast) -> ColorValue? { - if contrast == .increased, let color = highContrast { - return color - } - return `default` - } - - private func getColor(_ default: ColorValue?, - _ highContrast: ColorValue?, - _ elevated: ColorValue?, - _ elevatedHighContrast: ColorValue?, - _ contrast: ColorSchemeContrast, - _ isElevated: Bool) -> ColorValue? { - if isElevated == true, - let color = getColorForContrast(elevated, elevatedHighContrast, contrast) { - return color - } - return getColorForContrast(`default`, highContrast, contrast) - } -} - -// MARK: - Extensions - -public extension Color { - /// Creates a dynamic color object that returns the appropriate color value based on the current - /// rendering context. - /// - /// - Parameter dynamicColor: The set of color values that may be applied based on the current context. - @available(*, deprecated, message: "Please use Color directly, or init via UIColor.") - init(dynamicColor: DynamicColor) { - self.init(UIColor(dynamicColor: dynamicColor)) - } - - /// Creates a Color from a `ColorValue` instance. - /// - /// - Parameter colorValue: Color value to use to initialize this color. - @available(*, deprecated, message: "Please use Color directly, or init via UIColor.") - init(colorValue: ColorValue) { - self.init(UIColor(colorValue: colorValue)) - } -} diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift new file mode 100644 index 0000000000..b20e67ca3c --- /dev/null +++ b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift @@ -0,0 +1,30 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import UIKit + +public extension GlobalTokens { + + // MARK: - BrandColor + + @objc(colorForBrandColorToken:) + static func brandColor(_ token: BrandColorToken) -> UIColor { + return UIColor(GlobalTokens.brandColor(token)) + } + + // MARK: - NeutralColor + + @objc(colorForNeutralColorToken:) + static func neutralColor(_ token: NeutralColorToken) -> UIColor { + return UIColor(GlobalTokens.neutralColor(token)) + } + + // MARK: - SharedColor + + @objc(colorForSharedColorSet:token:) + static func sharedColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> UIColor { + return UIColor(GlobalTokens.sharedColor(sharedColor, token)) + } +} diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift index bb488b771a..e8b80a33e1 100644 --- a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift +++ b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift @@ -42,53 +42,52 @@ public class GlobalTokens: NSObject { case gradientTertiaryDark } - @objc(colorForBrandColorToken:) - public static func brandColor(_ token: BrandColorToken) -> UIColor { + public static func brandColor(_ token: BrandColorToken) -> Color { switch token { case .comm10: - return UIColor(hexValue: 0x061724) + return Color(hexValue: 0x061724) case .comm20: - return UIColor(hexValue: 0x082338) + return Color(hexValue: 0x082338) case .comm30: - return UIColor(hexValue: 0x0A2E4A) + return Color(hexValue: 0x0A2E4A) case .comm40: - return UIColor(hexValue: 0x0C3B5E) + return Color(hexValue: 0x0C3B5E) case .comm50: - return UIColor(hexValue: 0x0E4775) + return Color(hexValue: 0x0E4775) case .comm60: - return UIColor(hexValue: 0x0F548C) + return Color(hexValue: 0x0F548C) case .comm70: - return UIColor(hexValue: 0x115EA3) + return Color(hexValue: 0x115EA3) case .comm80: - return UIColor(hexValue: 0x0F6CBD) + return Color(hexValue: 0x0F6CBD) case .comm90: - return UIColor(hexValue: 0x2886DE) + return Color(hexValue: 0x2886DE) case .comm100: - return UIColor(hexValue: 0x479EF5) + return Color(hexValue: 0x479EF5) case .comm110: - return UIColor(hexValue: 0x62ABF5) + return Color(hexValue: 0x62ABF5) case .comm120: - return UIColor(hexValue: 0x77B7F7) + return Color(hexValue: 0x77B7F7) case .comm130: - return UIColor(hexValue: 0x96C6FA) + return Color(hexValue: 0x96C6FA) case .comm140: - return UIColor(hexValue: 0xB4D6FA) + return Color(hexValue: 0xB4D6FA) case .comm150: - return UIColor(hexValue: 0xCFE4FA) + return Color(hexValue: 0xCFE4FA) case .comm160: - return UIColor(hexValue: 0xEBF3FC) + return Color(hexValue: 0xEBF3FC) case .gradientPrimaryLight: - return UIColor(hexValue: 0x464FEB) + return Color(hexValue: 0x464FEB) case .gradientPrimaryDark: - return UIColor(hexValue: 0x7385FF) + return Color(hexValue: 0x7385FF) case .gradientSecondaryLight: - return UIColor(hexValue: 0x47CFFA) + return Color(hexValue: 0x47CFFA) case .gradientSecondaryDark: - return UIColor(hexValue: 0x7ADFFF) + return Color(hexValue: 0x7ADFFF) case .gradientTertiaryLight: - return UIColor(hexValue: 0xB47CF8) + return Color(hexValue: 0xB47CF8) case .gradientTertiaryDark: - return UIColor(hexValue: 0xBF80FF) + return Color(hexValue: 0xBF80FF) } } @@ -148,111 +147,110 @@ public class GlobalTokens: NSObject { case grey98 case white } - @objc(colorForNeutralColorToken:) - public static func neutralColor(_ token: NeutralColorToken) -> UIColor { + public static func neutralColor(_ token: NeutralColorToken) -> Color { switch token { case .black: - return UIColor(hexValue: 0x000000) + return Color(hexValue: 0x000000) case .grey2: - return UIColor(hexValue: 0x050505) + return Color(hexValue: 0x050505) case .grey4: - return UIColor(hexValue: 0x0A0A0A) + return Color(hexValue: 0x0A0A0A) case .grey6: - return UIColor(hexValue: 0x0F0F0F) + return Color(hexValue: 0x0F0F0F) case .grey8: - return UIColor(hexValue: 0x141414) + return Color(hexValue: 0x141414) case .grey10: - return UIColor(hexValue: 0x1A1A1A) + return Color(hexValue: 0x1A1A1A) case .grey12: - return UIColor(hexValue: 0x1F1F1F) + return Color(hexValue: 0x1F1F1F) case .grey14: - return UIColor(hexValue: 0x242424) + return Color(hexValue: 0x242424) case .grey16: - return UIColor(hexValue: 0x292929) + return Color(hexValue: 0x292929) case .grey18: - return UIColor(hexValue: 0x2E2E2E) + return Color(hexValue: 0x2E2E2E) case .grey20: - return UIColor(hexValue: 0x333333) + return Color(hexValue: 0x333333) case .grey22: - return UIColor(hexValue: 0x383838) + return Color(hexValue: 0x383838) case .grey24: - return UIColor(hexValue: 0x3D3D3D) + return Color(hexValue: 0x3D3D3D) case .grey26: - return UIColor(hexValue: 0x424242) + return Color(hexValue: 0x424242) case .grey28: - return UIColor(hexValue: 0x474747) + return Color(hexValue: 0x474747) case .grey30: - return UIColor(hexValue: 0x4D4D4D) + return Color(hexValue: 0x4D4D4D) case .grey32: - return UIColor(hexValue: 0x525252) + return Color(hexValue: 0x525252) case .grey34: - return UIColor(hexValue: 0x575757) + return Color(hexValue: 0x575757) case .grey36: - return UIColor(hexValue: 0x5C5C5C) + return Color(hexValue: 0x5C5C5C) case .grey38: - return UIColor(hexValue: 0x616161) + return Color(hexValue: 0x616161) case .grey40: - return UIColor(hexValue: 0x666666) + return Color(hexValue: 0x666666) case .grey42: - return UIColor(hexValue: 0x6B6B6B) + return Color(hexValue: 0x6B6B6B) case .grey44: - return UIColor(hexValue: 0x707070) + return Color(hexValue: 0x707070) case .grey46: - return UIColor(hexValue: 0x757575) + return Color(hexValue: 0x757575) case .grey48: - return UIColor(hexValue: 0x7A7A7A) + return Color(hexValue: 0x7A7A7A) case .grey50: - return UIColor(hexValue: 0x808080) + return Color(hexValue: 0x808080) case .grey52: - return UIColor(hexValue: 0x858585) + return Color(hexValue: 0x858585) case .grey54: - return UIColor(hexValue: 0x8A8A8A) + return Color(hexValue: 0x8A8A8A) case .grey56: - return UIColor(hexValue: 0x8F8F8F) + return Color(hexValue: 0x8F8F8F) case .grey58: - return UIColor(hexValue: 0x949494) + return Color(hexValue: 0x949494) case .grey60: - return UIColor(hexValue: 0x999999) + return Color(hexValue: 0x999999) case .grey62: - return UIColor(hexValue: 0x9E9E9E) + return Color(hexValue: 0x9E9E9E) case .grey64: - return UIColor(hexValue: 0xA3A3A3) + return Color(hexValue: 0xA3A3A3) case .grey66: - return UIColor(hexValue: 0xA8A8A8) + return Color(hexValue: 0xA8A8A8) case .grey68: - return UIColor(hexValue: 0xADADAD) + return Color(hexValue: 0xADADAD) case .grey70: - return UIColor(hexValue: 0xB2B2B2) + return Color(hexValue: 0xB2B2B2) case .grey72: - return UIColor(hexValue: 0xB8B8B8) + return Color(hexValue: 0xB8B8B8) case .grey74: - return UIColor(hexValue: 0xBDBDBD) + return Color(hexValue: 0xBDBDBD) case .grey76: - return UIColor(hexValue: 0xC2C2C2) + return Color(hexValue: 0xC2C2C2) case .grey78: - return UIColor(hexValue: 0xC7C7C7) + return Color(hexValue: 0xC7C7C7) case .grey80: - return UIColor(hexValue: 0xCCCCCC) + return Color(hexValue: 0xCCCCCC) case .grey82: - return UIColor(hexValue: 0xD1D1D1) + return Color(hexValue: 0xD1D1D1) case .grey84: - return UIColor(hexValue: 0xD6D6D6) + return Color(hexValue: 0xD6D6D6) case .grey86: - return UIColor(hexValue: 0xDBDBDB) + return Color(hexValue: 0xDBDBDB) case .grey88: - return UIColor(hexValue: 0xE0E0E0) + return Color(hexValue: 0xE0E0E0) case .grey90: - return UIColor(hexValue: 0xE5E5E5) + return Color(hexValue: 0xE5E5E5) case .grey92: - return UIColor(hexValue: 0xEBEBEB) + return Color(hexValue: 0xEBEBEB) case .grey94: - return UIColor(hexValue: 0xF0F0F0) + return Color(hexValue: 0xF0F0F0) case .grey96: - return UIColor(hexValue: 0xF5F5F5) + return Color(hexValue: 0xF5F5F5) case .grey98: - return UIColor(hexValue: 0xFAFAFA) + return Color(hexValue: 0xFAFAFA) case .white: - return UIColor(hexValue: 0xFFFFFF) + return Color(hexValue: 0xFFFFFF) } } @@ -327,1331 +325,1330 @@ public class GlobalTokens: NSObject { case tint60 } - @objc(colorForSharedColorSet:token:) - public static func sharedColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> UIColor { + public static func sharedColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> Color { switch sharedColor { case .anchor: switch token { case .primary: - return UIColor(hexValue: 0x394146) + return Color(hexValue: 0x394146) case .shade10: - return UIColor(hexValue: 0x333A3F) + return Color(hexValue: 0x333A3F) case .shade20: - return UIColor(hexValue: 0x2B3135) + return Color(hexValue: 0x2B3135) case .shade30: - return UIColor(hexValue: 0x202427) + return Color(hexValue: 0x202427) case .shade40: - return UIColor(hexValue: 0x111315) + return Color(hexValue: 0x111315) case .shade50: - return UIColor(hexValue: 0x090A0B) + return Color(hexValue: 0x090A0B) case .tint10: - return UIColor(hexValue: 0x4D565C) + return Color(hexValue: 0x4D565C) case .tint20: - return UIColor(hexValue: 0x626C72) + return Color(hexValue: 0x626C72) case .tint30: - return UIColor(hexValue: 0x808A90) + return Color(hexValue: 0x808A90) case .tint40: - return UIColor(hexValue: 0xBCC3C7) + return Color(hexValue: 0xBCC3C7) case .tint50: - return UIColor(hexValue: 0xDBDFE1) + return Color(hexValue: 0xDBDFE1) case .tint60: - return UIColor(hexValue: 0xF6F7F8) + return Color(hexValue: 0xF6F7F8) } case .beige: switch token { case .primary: - return UIColor(hexValue: 0x7A7574) + return Color(hexValue: 0x7A7574) case .shade10: - return UIColor(hexValue: 0x6E6968) + return Color(hexValue: 0x6E6968) case .shade20: - return UIColor(hexValue: 0x5D5958) + return Color(hexValue: 0x5D5958) case .shade30: - return UIColor(hexValue: 0x444241) + return Color(hexValue: 0x444241) case .shade40: - return UIColor(hexValue: 0x252323) + return Color(hexValue: 0x252323) case .shade50: - return UIColor(hexValue: 0x141313) + return Color(hexValue: 0x141313) case .tint10: - return UIColor(hexValue: 0x8A8584) + return Color(hexValue: 0x8A8584) case .tint20: - return UIColor(hexValue: 0x9A9594) + return Color(hexValue: 0x9A9594) case .tint30: - return UIColor(hexValue: 0xAFABAA) + return Color(hexValue: 0xAFABAA) case .tint40: - return UIColor(hexValue: 0xD7D4D4) + return Color(hexValue: 0xD7D4D4) case .tint50: - return UIColor(hexValue: 0xEAE8E8) + return Color(hexValue: 0xEAE8E8) case .tint60: - return UIColor(hexValue: 0xFAF9F9) + return Color(hexValue: 0xFAF9F9) } case .berry: switch token { case .primary: - return UIColor(hexValue: 0xC239B3) + return Color(hexValue: 0xC239B3) case .shade10: - return UIColor(hexValue: 0xAF33A1) + return Color(hexValue: 0xAF33A1) case .shade20: - return UIColor(hexValue: 0x932B88) + return Color(hexValue: 0x932B88) case .shade30: - return UIColor(hexValue: 0x6D2064) + return Color(hexValue: 0x6D2064) case .shade40: - return UIColor(hexValue: 0x3A1136) + return Color(hexValue: 0x3A1136) case .shade50: - return UIColor(hexValue: 0x1F091D) + return Color(hexValue: 0x1F091D) case .tint10: - return UIColor(hexValue: 0xC94CBC) + return Color(hexValue: 0xC94CBC) case .tint20: - return UIColor(hexValue: 0xD161C4) + return Color(hexValue: 0xD161C4) case .tint30: - return UIColor(hexValue: 0xDA7ED0) + return Color(hexValue: 0xDA7ED0) case .tint40: - return UIColor(hexValue: 0xEDBBE7) + return Color(hexValue: 0xEDBBE7) case .tint50: - return UIColor(hexValue: 0xF5DAF2) + return Color(hexValue: 0xF5DAF2) case .tint60: - return UIColor(hexValue: 0xFDF5FC) + return Color(hexValue: 0xFDF5FC) } case .blue: switch token { case .primary: - return UIColor(hexValue: 0x0078D4) + return Color(hexValue: 0x0078D4) case .shade10: - return UIColor(hexValue: 0x006CBF) + return Color(hexValue: 0x006CBF) case .shade20: - return UIColor(hexValue: 0x005BA1) + return Color(hexValue: 0x005BA1) case .shade30: - return UIColor(hexValue: 0x004377) + return Color(hexValue: 0x004377) case .shade40: - return UIColor(hexValue: 0x002440) + return Color(hexValue: 0x002440) case .shade50: - return UIColor(hexValue: 0x001322) + return Color(hexValue: 0x001322) case .tint10: - return UIColor(hexValue: 0x1A86D9) + return Color(hexValue: 0x1A86D9) case .tint20: - return UIColor(hexValue: 0x3595DE) + return Color(hexValue: 0x3595DE) case .tint30: - return UIColor(hexValue: 0x5CAAE5) + return Color(hexValue: 0x5CAAE5) case .tint40: - return UIColor(hexValue: 0xA9D3F2) + return Color(hexValue: 0xA9D3F2) case .tint50: - return UIColor(hexValue: 0xD0E7F8) + return Color(hexValue: 0xD0E7F8) case .tint60: - return UIColor(hexValue: 0xF3F9FD) + return Color(hexValue: 0xF3F9FD) } case .brass: switch token { case .primary: - return UIColor(hexValue: 0x986F0B) + return Color(hexValue: 0x986F0B) case .shade10: - return UIColor(hexValue: 0x89640A) + return Color(hexValue: 0x89640A) case .shade20: - return UIColor(hexValue: 0x745408) + return Color(hexValue: 0x745408) case .shade30: - return UIColor(hexValue: 0x553E06) + return Color(hexValue: 0x553E06) case .shade40: - return UIColor(hexValue: 0x2E2103) + return Color(hexValue: 0x2E2103) case .shade50: - return UIColor(hexValue: 0x181202) + return Color(hexValue: 0x181202) case .tint10: - return UIColor(hexValue: 0xA47D1E) + return Color(hexValue: 0xA47D1E) case .tint20: - return UIColor(hexValue: 0xB18C34) + return Color(hexValue: 0xB18C34) case .tint30: - return UIColor(hexValue: 0xC1A256) + return Color(hexValue: 0xC1A256) case .tint40: - return UIColor(hexValue: 0xE0CEA2) + return Color(hexValue: 0xE0CEA2) case .tint50: - return UIColor(hexValue: 0xEFE4CB) + return Color(hexValue: 0xEFE4CB) case .tint60: - return UIColor(hexValue: 0xFBF8F2) + return Color(hexValue: 0xFBF8F2) } case .bronze: switch token { case .primary: - return UIColor(hexValue: 0xA74109) + return Color(hexValue: 0xA74109) case .shade10: - return UIColor(hexValue: 0x963A08) + return Color(hexValue: 0x963A08) case .shade20: - return UIColor(hexValue: 0x7F3107) + return Color(hexValue: 0x7F3107) case .shade30: - return UIColor(hexValue: 0x5E2405) + return Color(hexValue: 0x5E2405) case .shade40: - return UIColor(hexValue: 0x321303) + return Color(hexValue: 0x321303) case .shade50: - return UIColor(hexValue: 0x1B0A01) + return Color(hexValue: 0x1B0A01) case .tint10: - return UIColor(hexValue: 0xB2521E) + return Color(hexValue: 0xB2521E) case .tint20: - return UIColor(hexValue: 0xBC6535) + return Color(hexValue: 0xBC6535) case .tint30: - return UIColor(hexValue: 0xCA8057) + return Color(hexValue: 0xCA8057) case .tint40: - return UIColor(hexValue: 0xE5BBA4) + return Color(hexValue: 0xE5BBA4) case .tint50: - return UIColor(hexValue: 0xF1D9CC) + return Color(hexValue: 0xF1D9CC) case .tint60: - return UIColor(hexValue: 0xFBF5F2) + return Color(hexValue: 0xFBF5F2) } case .brown: switch token { case .primary: - return UIColor(hexValue: 0x8E562E) + return Color(hexValue: 0x8E562E) case .shade10: - return UIColor(hexValue: 0x804D29) + return Color(hexValue: 0x804D29) case .shade20: - return UIColor(hexValue: 0x6C4123) + return Color(hexValue: 0x6C4123) case .shade30: - return UIColor(hexValue: 0x50301A) + return Color(hexValue: 0x50301A) case .shade40: - return UIColor(hexValue: 0x2B1A0E) + return Color(hexValue: 0x2B1A0E) case .shade50: - return UIColor(hexValue: 0x170E07) + return Color(hexValue: 0x170E07) case .tint10: - return UIColor(hexValue: 0x9C663F) + return Color(hexValue: 0x9C663F) case .tint20: - return UIColor(hexValue: 0xA97652) + return Color(hexValue: 0xA97652) case .tint30: - return UIColor(hexValue: 0xBB8F6F) + return Color(hexValue: 0xBB8F6F) case .tint40: - return UIColor(hexValue: 0xDDC3B0) + return Color(hexValue: 0xDDC3B0) case .tint50: - return UIColor(hexValue: 0xEDDED3) + return Color(hexValue: 0xEDDED3) case .tint60: - return UIColor(hexValue: 0xFAF7F4) + return Color(hexValue: 0xFAF7F4) } case .burgundy: switch token { case .primary: - return UIColor(hexValue: 0xA4262C) + return Color(hexValue: 0xA4262C) case .shade10: - return UIColor(hexValue: 0x942228) + return Color(hexValue: 0x942228) case .shade20: - return UIColor(hexValue: 0x7D1D21) + return Color(hexValue: 0x7D1D21) case .shade30: - return UIColor(hexValue: 0x5C1519) + return Color(hexValue: 0x5C1519) case .shade40: - return UIColor(hexValue: 0x310B0D) + return Color(hexValue: 0x310B0D) case .shade50: - return UIColor(hexValue: 0x1A0607) + return Color(hexValue: 0x1A0607) case .tint10: - return UIColor(hexValue: 0xAF393E) + return Color(hexValue: 0xAF393E) case .tint20: - return UIColor(hexValue: 0xBA4D52) + return Color(hexValue: 0xBA4D52) case .tint30: - return UIColor(hexValue: 0xC86C70) + return Color(hexValue: 0xC86C70) case .tint40: - return UIColor(hexValue: 0xE4AFB2) + return Color(hexValue: 0xE4AFB2) case .tint50: - return UIColor(hexValue: 0xF0D3D4) + return Color(hexValue: 0xF0D3D4) case .tint60: - return UIColor(hexValue: 0xFBF4F4) + return Color(hexValue: 0xFBF4F4) } case .charcoal: switch token { case .primary: - return UIColor(hexValue: 0x393939) + return Color(hexValue: 0x393939) case .shade10: - return UIColor(hexValue: 0x333333) + return Color(hexValue: 0x333333) case .shade20: - return UIColor(hexValue: 0x2B2B2B) + return Color(hexValue: 0x2B2B2B) case .shade30: - return UIColor(hexValue: 0x202020) + return Color(hexValue: 0x202020) case .shade40: - return UIColor(hexValue: 0x111111) + return Color(hexValue: 0x111111) case .shade50: - return UIColor(hexValue: 0x090909) + return Color(hexValue: 0x090909) case .tint10: - return UIColor(hexValue: 0x515151) + return Color(hexValue: 0x515151) case .tint20: - return UIColor(hexValue: 0x686868) + return Color(hexValue: 0x686868) case .tint30: - return UIColor(hexValue: 0x888888) + return Color(hexValue: 0x888888) case .tint40: - return UIColor(hexValue: 0xC4C4C4) + return Color(hexValue: 0xC4C4C4) case .tint50: - return UIColor(hexValue: 0xDFDFDF) + return Color(hexValue: 0xDFDFDF) case .tint60: - return UIColor(hexValue: 0xF7F7F7) + return Color(hexValue: 0xF7F7F7) } case .cornflower: switch token { case .primary: - return UIColor(hexValue: 0x4F6BED) + return Color(hexValue: 0x4F6BED) case .shade10: - return UIColor(hexValue: 0x4760D5) + return Color(hexValue: 0x4760D5) case .shade20: - return UIColor(hexValue: 0x3C51B4) + return Color(hexValue: 0x3C51B4) case .shade30: - return UIColor(hexValue: 0x2C3C85) + return Color(hexValue: 0x2C3C85) case .shade40: - return UIColor(hexValue: 0x182047) + return Color(hexValue: 0x182047) case .shade50: - return UIColor(hexValue: 0x0D1126) + return Color(hexValue: 0x0D1126) case .tint10: - return UIColor(hexValue: 0x637CEF) + return Color(hexValue: 0x637CEF) case .tint20: - return UIColor(hexValue: 0x778DF1) + return Color(hexValue: 0x778DF1) case .tint30: - return UIColor(hexValue: 0x93A4F4) + return Color(hexValue: 0x93A4F4) case .tint40: - return UIColor(hexValue: 0xC8D1FA) + return Color(hexValue: 0xC8D1FA) case .tint50: - return UIColor(hexValue: 0xE1E6FC) + return Color(hexValue: 0xE1E6FC) case .tint60: - return UIColor(hexValue: 0xF7F9FE) + return Color(hexValue: 0xF7F9FE) } case .cranberry: switch token { case .primary: - return UIColor(hexValue: 0xC50F1F) + return Color(hexValue: 0xC50F1F) case .shade10: - return UIColor(hexValue: 0xB10E1C) + return Color(hexValue: 0xB10E1C) case .shade20: - return UIColor(hexValue: 0x960B18) + return Color(hexValue: 0x960B18) case .shade30: - return UIColor(hexValue: 0x6E0811) + return Color(hexValue: 0x6E0811) case .shade40: - return UIColor(hexValue: 0x3B0509) + return Color(hexValue: 0x3B0509) case .shade50: - return UIColor(hexValue: 0x200205) + return Color(hexValue: 0x200205) case .tint10: - return UIColor(hexValue: 0xCC2635) + return Color(hexValue: 0xCC2635) case .tint20: - return UIColor(hexValue: 0xD33F4C) + return Color(hexValue: 0xD33F4C) case .tint30: - return UIColor(hexValue: 0xDC626D) + return Color(hexValue: 0xDC626D) case .tint40: - return UIColor(hexValue: 0xEEACB2) + return Color(hexValue: 0xEEACB2) case .tint50: - return UIColor(hexValue: 0xF6D1D5) + return Color(hexValue: 0xF6D1D5) case .tint60: - return UIColor(hexValue: 0xFDF3F4) + return Color(hexValue: 0xFDF3F4) } case .cyan: switch token { case .primary: - return UIColor(hexValue: 0x0099BC) + return Color(hexValue: 0x0099BC) case .shade10: - return UIColor(hexValue: 0x008AA9) + return Color(hexValue: 0x008AA9) case .shade20: - return UIColor(hexValue: 0x00748F) + return Color(hexValue: 0x00748F) case .shade30: - return UIColor(hexValue: 0x005669) + return Color(hexValue: 0x005669) case .shade40: - return UIColor(hexValue: 0x002E38) + return Color(hexValue: 0x002E38) case .shade50: - return UIColor(hexValue: 0x00181E) + return Color(hexValue: 0x00181E) case .tint10: - return UIColor(hexValue: 0x18A4C4) + return Color(hexValue: 0x18A4C4) case .tint20: - return UIColor(hexValue: 0x31AFCC) + return Color(hexValue: 0x31AFCC) case .tint30: - return UIColor(hexValue: 0x56BFD7) + return Color(hexValue: 0x56BFD7) case .tint40: - return UIColor(hexValue: 0xA4DEEB) + return Color(hexValue: 0xA4DEEB) case .tint50: - return UIColor(hexValue: 0xCDEDF4) + return Color(hexValue: 0xCDEDF4) case .tint60: - return UIColor(hexValue: 0xF2FAFC) + return Color(hexValue: 0xF2FAFC) } case .darkBlue: switch token { case .primary: - return UIColor(hexValue: 0x003966) + return Color(hexValue: 0x003966) case .shade10: - return UIColor(hexValue: 0x00335C) + return Color(hexValue: 0x00335C) case .shade20: - return UIColor(hexValue: 0x002B4E) + return Color(hexValue: 0x002B4E) case .shade30: - return UIColor(hexValue: 0x002039) + return Color(hexValue: 0x002039) case .shade40: - return UIColor(hexValue: 0x00111F) + return Color(hexValue: 0x00111F) case .shade50: - return UIColor(hexValue: 0x000910) + return Color(hexValue: 0x000910) case .tint10: - return UIColor(hexValue: 0x0E4A78) + return Color(hexValue: 0x0E4A78) case .tint20: - return UIColor(hexValue: 0x215C8B) + return Color(hexValue: 0x215C8B) case .tint30: - return UIColor(hexValue: 0x4178A3) + return Color(hexValue: 0x4178A3) case .tint40: - return UIColor(hexValue: 0x92B5D1) + return Color(hexValue: 0x92B5D1) case .tint50: - return UIColor(hexValue: 0xC2D6E7) + return Color(hexValue: 0xC2D6E7) case .tint60: - return UIColor(hexValue: 0xEFF4F9) + return Color(hexValue: 0xEFF4F9) } case .darkBrown: switch token { case .primary: - return UIColor(hexValue: 0x4D291C) + return Color(hexValue: 0x4D291C) case .shade10: - return UIColor(hexValue: 0x452519) + return Color(hexValue: 0x452519) case .shade20: - return UIColor(hexValue: 0x3A1F15) + return Color(hexValue: 0x3A1F15) case .shade30: - return UIColor(hexValue: 0x2B1710) + return Color(hexValue: 0x2B1710) case .shade40: - return UIColor(hexValue: 0x170C08) + return Color(hexValue: 0x170C08) case .shade50: - return UIColor(hexValue: 0x0C0704) + return Color(hexValue: 0x0C0704) case .tint10: - return UIColor(hexValue: 0x623A2B) + return Color(hexValue: 0x623A2B) case .tint20: - return UIColor(hexValue: 0x784D3E) + return Color(hexValue: 0x784D3E) case .tint30: - return UIColor(hexValue: 0x946B5C) + return Color(hexValue: 0x946B5C) case .tint40: - return UIColor(hexValue: 0xCAADA3) + return Color(hexValue: 0xCAADA3) case .tint50: - return UIColor(hexValue: 0xE3D2CB) + return Color(hexValue: 0xE3D2CB) case .tint60: - return UIColor(hexValue: 0xF8F3F2) + return Color(hexValue: 0xF8F3F2) } case .darkGreen: switch token { case .primary: - return UIColor(hexValue: 0x0B6A0B) + return Color(hexValue: 0x0B6A0B) case .shade10: - return UIColor(hexValue: 0x0A5F0A) + return Color(hexValue: 0x0A5F0A) case .shade20: - return UIColor(hexValue: 0x085108) + return Color(hexValue: 0x085108) case .shade30: - return UIColor(hexValue: 0x063B06) + return Color(hexValue: 0x063B06) case .shade40: - return UIColor(hexValue: 0x032003) + return Color(hexValue: 0x032003) case .shade50: - return UIColor(hexValue: 0x021102) + return Color(hexValue: 0x021102) case .tint10: - return UIColor(hexValue: 0x1A7C1A) + return Color(hexValue: 0x1A7C1A) case .tint20: - return UIColor(hexValue: 0x2D8E2D) + return Color(hexValue: 0x2D8E2D) case .tint30: - return UIColor(hexValue: 0x4DA64D) + return Color(hexValue: 0x4DA64D) case .tint40: - return UIColor(hexValue: 0x9AD29A) + return Color(hexValue: 0x9AD29A) case .tint50: - return UIColor(hexValue: 0xC6E7C6) + return Color(hexValue: 0xC6E7C6) case .tint60: - return UIColor(hexValue: 0xF0F9F0) + return Color(hexValue: 0xF0F9F0) } case .darkOrange: switch token { case .primary: - return UIColor(hexValue: 0xDA3B01) + return Color(hexValue: 0xDA3B01) case .shade10: - return UIColor(hexValue: 0xC43501) + return Color(hexValue: 0xC43501) case .shade20: - return UIColor(hexValue: 0xA62D01) + return Color(hexValue: 0xA62D01) case .shade30: - return UIColor(hexValue: 0x7A2101) + return Color(hexValue: 0x7A2101) case .shade40: - return UIColor(hexValue: 0x411200) + return Color(hexValue: 0x411200) case .shade50: - return UIColor(hexValue: 0x230900) + return Color(hexValue: 0x230900) case .tint10: - return UIColor(hexValue: 0xDE501C) + return Color(hexValue: 0xDE501C) case .tint20: - return UIColor(hexValue: 0xE36537) + return Color(hexValue: 0xE36537) case .tint30: - return UIColor(hexValue: 0xE9835E) + return Color(hexValue: 0xE9835E) case .tint40: - return UIColor(hexValue: 0xF4BFAB) + return Color(hexValue: 0xF4BFAB) case .tint50: - return UIColor(hexValue: 0xF9DCD1) + return Color(hexValue: 0xF9DCD1) case .tint60: - return UIColor(hexValue: 0xFDF6F3) + return Color(hexValue: 0xFDF6F3) } case .darkPurple: switch token { case .primary: - return UIColor(hexValue: 0x401B6C) + return Color(hexValue: 0x401B6C) case .shade10: - return UIColor(hexValue: 0x3A1861) + return Color(hexValue: 0x3A1861) case .shade20: - return UIColor(hexValue: 0x311552) + return Color(hexValue: 0x311552) case .shade30: - return UIColor(hexValue: 0x240F3C) + return Color(hexValue: 0x240F3C) case .shade40: - return UIColor(hexValue: 0x130820) + return Color(hexValue: 0x130820) case .shade50: - return UIColor(hexValue: 0x0A0411) + return Color(hexValue: 0x0A0411) case .tint10: - return UIColor(hexValue: 0x512B7E) + return Color(hexValue: 0x512B7E) case .tint20: - return UIColor(hexValue: 0x633E8F) + return Color(hexValue: 0x633E8F) case .tint30: - return UIColor(hexValue: 0x7E5CA7) + return Color(hexValue: 0x7E5CA7) case .tint40: - return UIColor(hexValue: 0xB9A3D3) + return Color(hexValue: 0xB9A3D3) case .tint50: - return UIColor(hexValue: 0xD8CCE7) + return Color(hexValue: 0xD8CCE7) case .tint60: - return UIColor(hexValue: 0xF5F2F9) + return Color(hexValue: 0xF5F2F9) } case .darkRed: switch token { case .primary: - return UIColor(hexValue: 0x750B1C) + return Color(hexValue: 0x750B1C) case .shade10: - return UIColor(hexValue: 0x690A19) + return Color(hexValue: 0x690A19) case .shade20: - return UIColor(hexValue: 0x590815) + return Color(hexValue: 0x590815) case .shade30: - return UIColor(hexValue: 0x420610) + return Color(hexValue: 0x420610) case .shade40: - return UIColor(hexValue: 0x230308) + return Color(hexValue: 0x230308) case .shade50: - return UIColor(hexValue: 0x130204) + return Color(hexValue: 0x130204) case .tint10: - return UIColor(hexValue: 0x861B2C) + return Color(hexValue: 0x861B2C) case .tint20: - return UIColor(hexValue: 0x962F3F) + return Color(hexValue: 0x962F3F) case .tint30: - return UIColor(hexValue: 0xAC4F5E) + return Color(hexValue: 0xAC4F5E) case .tint40: - return UIColor(hexValue: 0xD69CA5) + return Color(hexValue: 0xD69CA5) case .tint50: - return UIColor(hexValue: 0xE9C7CD) + return Color(hexValue: 0xE9C7CD) case .tint60: - return UIColor(hexValue: 0xF9F0F2) + return Color(hexValue: 0xF9F0F2) } case .darkTeal: switch token { case .primary: - return UIColor(hexValue: 0x006666) + return Color(hexValue: 0x006666) case .shade10: - return UIColor(hexValue: 0x005C5C) + return Color(hexValue: 0x005C5C) case .shade20: - return UIColor(hexValue: 0x004E4E) + return Color(hexValue: 0x004E4E) case .shade30: - return UIColor(hexValue: 0x003939) + return Color(hexValue: 0x003939) case .shade40: - return UIColor(hexValue: 0x001F1F) + return Color(hexValue: 0x001F1F) case .shade50: - return UIColor(hexValue: 0x001010) + return Color(hexValue: 0x001010) case .tint10: - return UIColor(hexValue: 0x0E7878) + return Color(hexValue: 0x0E7878) case .tint20: - return UIColor(hexValue: 0x218B8B) + return Color(hexValue: 0x218B8B) case .tint30: - return UIColor(hexValue: 0x41A3A3) + return Color(hexValue: 0x41A3A3) case .tint40: - return UIColor(hexValue: 0x92D1D1) + return Color(hexValue: 0x92D1D1) case .tint50: - return UIColor(hexValue: 0xC2E7E7) + return Color(hexValue: 0xC2E7E7) case .tint60: - return UIColor(hexValue: 0xEFF9F9) + return Color(hexValue: 0xEFF9F9) } case .forest: switch token { case .primary: - return UIColor(hexValue: 0x498205) + return Color(hexValue: 0x498205) case .shade10: - return UIColor(hexValue: 0x427505) + return Color(hexValue: 0x427505) case .shade20: - return UIColor(hexValue: 0x376304) + return Color(hexValue: 0x376304) case .shade30: - return UIColor(hexValue: 0x294903) + return Color(hexValue: 0x294903) case .shade40: - return UIColor(hexValue: 0x162702) + return Color(hexValue: 0x162702) case .shade50: - return UIColor(hexValue: 0x0C1501) + return Color(hexValue: 0x0C1501) case .tint10: - return UIColor(hexValue: 0x599116) + return Color(hexValue: 0x599116) case .tint20: - return UIColor(hexValue: 0x6BA02B) + return Color(hexValue: 0x6BA02B) case .tint30: - return UIColor(hexValue: 0x85B44C) + return Color(hexValue: 0x85B44C) case .tint40: - return UIColor(hexValue: 0xBDD99B) + return Color(hexValue: 0xBDD99B) case .tint50: - return UIColor(hexValue: 0xDBEBC7) + return Color(hexValue: 0xDBEBC7) case .tint60: - return UIColor(hexValue: 0xF6FAF0) + return Color(hexValue: 0xF6FAF0) } case .gold: switch token { case .primary: - return UIColor(hexValue: 0xC19C00) + return Color(hexValue: 0xC19C00) case .shade10: - return UIColor(hexValue: 0xAE8C00) + return Color(hexValue: 0xAE8C00) case .shade20: - return UIColor(hexValue: 0x937700) + return Color(hexValue: 0x937700) case .shade30: - return UIColor(hexValue: 0x6C5700) + return Color(hexValue: 0x6C5700) case .shade40: - return UIColor(hexValue: 0x3A2F00) + return Color(hexValue: 0x3A2F00) case .shade50: - return UIColor(hexValue: 0x1F1900) + return Color(hexValue: 0x1F1900) case .tint10: - return UIColor(hexValue: 0xC8A718) + return Color(hexValue: 0xC8A718) case .tint20: - return UIColor(hexValue: 0xD0B232) + return Color(hexValue: 0xD0B232) case .tint30: - return UIColor(hexValue: 0xDAC157) + return Color(hexValue: 0xDAC157) case .tint40: - return UIColor(hexValue: 0xECDFA5) + return Color(hexValue: 0xECDFA5) case .tint50: - return UIColor(hexValue: 0xF5EECE) + return Color(hexValue: 0xF5EECE) case .tint60: - return UIColor(hexValue: 0xFDFBF2) + return Color(hexValue: 0xFDFBF2) } case .grape: switch token { case .primary: - return UIColor(hexValue: 0x881798) + return Color(hexValue: 0x881798) case .shade10: - return UIColor(hexValue: 0x7A1589) + return Color(hexValue: 0x7A1589) case .shade20: - return UIColor(hexValue: 0x671174) + return Color(hexValue: 0x671174) case .shade30: - return UIColor(hexValue: 0x4C0D55) + return Color(hexValue: 0x4C0D55) case .shade40: - return UIColor(hexValue: 0x29072E) + return Color(hexValue: 0x29072E) case .shade50: - return UIColor(hexValue: 0x160418) + return Color(hexValue: 0x160418) case .tint10: - return UIColor(hexValue: 0x952AA4) + return Color(hexValue: 0x952AA4) case .tint20: - return UIColor(hexValue: 0xA33FB1) + return Color(hexValue: 0xA33FB1) case .tint30: - return UIColor(hexValue: 0xB55FC1) + return Color(hexValue: 0xB55FC1) case .tint40: - return UIColor(hexValue: 0xD9A7E0) + return Color(hexValue: 0xD9A7E0) case .tint50: - return UIColor(hexValue: 0xEACEEF) + return Color(hexValue: 0xEACEEF) case .tint60: - return UIColor(hexValue: 0xFAF2FB) + return Color(hexValue: 0xFAF2FB) } case .green: switch token { case .primary: - return UIColor(hexValue: 0x107C10) + return Color(hexValue: 0x107C10) case .shade10: - return UIColor(hexValue: 0x0E700E) + return Color(hexValue: 0x0E700E) case .shade20: - return UIColor(hexValue: 0x0C5E0C) + return Color(hexValue: 0x0C5E0C) case .shade30: - return UIColor(hexValue: 0x094509) + return Color(hexValue: 0x094509) case .shade40: - return UIColor(hexValue: 0x052505) + return Color(hexValue: 0x052505) case .shade50: - return UIColor(hexValue: 0x031403) + return Color(hexValue: 0x031403) case .tint10: - return UIColor(hexValue: 0x218C21) + return Color(hexValue: 0x218C21) case .tint20: - return UIColor(hexValue: 0x359B35) + return Color(hexValue: 0x359B35) case .tint30: - return UIColor(hexValue: 0x54B054) + return Color(hexValue: 0x54B054) case .tint40: - return UIColor(hexValue: 0x9FD89F) + return Color(hexValue: 0x9FD89F) case .tint50: - return UIColor(hexValue: 0xC9EAC9) + return Color(hexValue: 0xC9EAC9) case .tint60: - return UIColor(hexValue: 0xF1FAF1) + return Color(hexValue: 0xF1FAF1) } case .hotPink: switch token { case .primary: - return UIColor(hexValue: 0xE3008C) + return Color(hexValue: 0xE3008C) case .shade10: - return UIColor(hexValue: 0xCC007E) + return Color(hexValue: 0xCC007E) case .shade20: - return UIColor(hexValue: 0xAD006A) + return Color(hexValue: 0xAD006A) case .shade30: - return UIColor(hexValue: 0x7F004E) + return Color(hexValue: 0x7F004E) case .shade40: - return UIColor(hexValue: 0x44002A) + return Color(hexValue: 0x44002A) case .shade50: - return UIColor(hexValue: 0x240016) + return Color(hexValue: 0x240016) case .tint10: - return UIColor(hexValue: 0xE61C99) + return Color(hexValue: 0xE61C99) case .tint20: - return UIColor(hexValue: 0xEA38A6) + return Color(hexValue: 0xEA38A6) case .tint30: - return UIColor(hexValue: 0xEE5FB7) + return Color(hexValue: 0xEE5FB7) case .tint40: - return UIColor(hexValue: 0xF7ADDA) + return Color(hexValue: 0xF7ADDA) case .tint50: - return UIColor(hexValue: 0xFBD2EB) + return Color(hexValue: 0xFBD2EB) case .tint60: - return UIColor(hexValue: 0xFEF4FA) + return Color(hexValue: 0xFEF4FA) } case .lavender: switch token { case .primary: - return UIColor(hexValue: 0x7160E8) + return Color(hexValue: 0x7160E8) case .shade10: - return UIColor(hexValue: 0x6656D1) + return Color(hexValue: 0x6656D1) case .shade20: - return UIColor(hexValue: 0x5649B0) + return Color(hexValue: 0x5649B0) case .shade30: - return UIColor(hexValue: 0x3F3682) + return Color(hexValue: 0x3F3682) case .shade40: - return UIColor(hexValue: 0x221D46) + return Color(hexValue: 0x221D46) case .shade50: - return UIColor(hexValue: 0x120F25) + return Color(hexValue: 0x120F25) case .tint10: - return UIColor(hexValue: 0x8172EB) + return Color(hexValue: 0x8172EB) case .tint20: - return UIColor(hexValue: 0x9184EE) + return Color(hexValue: 0x9184EE) case .tint30: - return UIColor(hexValue: 0xA79CF1) + return Color(hexValue: 0xA79CF1) case .tint40: - return UIColor(hexValue: 0xD2CCF8) + return Color(hexValue: 0xD2CCF8) case .tint50: - return UIColor(hexValue: 0xE7E4FB) + return Color(hexValue: 0xE7E4FB) case .tint60: - return UIColor(hexValue: 0xF9F8FE) + return Color(hexValue: 0xF9F8FE) } case .lightBlue: switch token { case .primary: - return UIColor(hexValue: 0x3A96DD) + return Color(hexValue: 0x3A96DD) case .shade10: - return UIColor(hexValue: 0x3487C7) + return Color(hexValue: 0x3487C7) case .shade20: - return UIColor(hexValue: 0x2C72A8) + return Color(hexValue: 0x2C72A8) case .shade30: - return UIColor(hexValue: 0x20547C) + return Color(hexValue: 0x20547C) case .shade40: - return UIColor(hexValue: 0x112D42) + return Color(hexValue: 0x112D42) case .shade50: - return UIColor(hexValue: 0x091823) + return Color(hexValue: 0x091823) case .tint10: - return UIColor(hexValue: 0x4FA1E1) + return Color(hexValue: 0x4FA1E1) case .tint20: - return UIColor(hexValue: 0x65ADE5) + return Color(hexValue: 0x65ADE5) case .tint30: - return UIColor(hexValue: 0x83BDEB) + return Color(hexValue: 0x83BDEB) case .tint40: - return UIColor(hexValue: 0xBFDDF5) + return Color(hexValue: 0xBFDDF5) case .tint50: - return UIColor(hexValue: 0xDCEDFA) + return Color(hexValue: 0xDCEDFA) case .tint60: - return UIColor(hexValue: 0xF6FAFE) + return Color(hexValue: 0xF6FAFE) } case .lightGreen: switch token { case .primary: - return UIColor(hexValue: 0x13A10E) + return Color(hexValue: 0x13A10E) case .shade10: - return UIColor(hexValue: 0x11910D) + return Color(hexValue: 0x11910D) case .shade20: - return UIColor(hexValue: 0x0E7A0B) + return Color(hexValue: 0x0E7A0B) case .shade30: - return UIColor(hexValue: 0x0B5A08) + return Color(hexValue: 0x0B5A08) case .shade40: - return UIColor(hexValue: 0x063004) + return Color(hexValue: 0x063004) case .shade50: - return UIColor(hexValue: 0x031A02) + return Color(hexValue: 0x031A02) case .tint10: - return UIColor(hexValue: 0x27AC22) + return Color(hexValue: 0x27AC22) case .tint20: - return UIColor(hexValue: 0x3DB838) + return Color(hexValue: 0x3DB838) case .tint30: - return UIColor(hexValue: 0x5EC75A) + return Color(hexValue: 0x5EC75A) case .tint40: - return UIColor(hexValue: 0xA7E3A5) + return Color(hexValue: 0xA7E3A5) case .tint50: - return UIColor(hexValue: 0xCEF0CD) + return Color(hexValue: 0xCEF0CD) case .tint60: - return UIColor(hexValue: 0xF2FBF2) + return Color(hexValue: 0xF2FBF2) } case .lightTeal: switch token { case .primary: - return UIColor(hexValue: 0x00B7C3) + return Color(hexValue: 0x00B7C3) case .shade10: - return UIColor(hexValue: 0x00A5AF) + return Color(hexValue: 0x00A5AF) case .shade20: - return UIColor(hexValue: 0x008B94) + return Color(hexValue: 0x008B94) case .shade30: - return UIColor(hexValue: 0x00666D) + return Color(hexValue: 0x00666D) case .shade40: - return UIColor(hexValue: 0x00373A) + return Color(hexValue: 0x00373A) case .shade50: - return UIColor(hexValue: 0x001D1F) + return Color(hexValue: 0x001D1F) case .tint10: - return UIColor(hexValue: 0x18BFCA) + return Color(hexValue: 0x18BFCA) case .tint20: - return UIColor(hexValue: 0x32C8D1) + return Color(hexValue: 0x32C8D1) case .tint30: - return UIColor(hexValue: 0x58D3DB) + return Color(hexValue: 0x58D3DB) case .tint40: - return UIColor(hexValue: 0xA6E9ED) + return Color(hexValue: 0xA6E9ED) case .tint50: - return UIColor(hexValue: 0xCEF3F5) + return Color(hexValue: 0xCEF3F5) case .tint60: - return UIColor(hexValue: 0xF2FCFD) + return Color(hexValue: 0xF2FCFD) } case .lilac: switch token { case .primary: - return UIColor(hexValue: 0xB146C2) + return Color(hexValue: 0xB146C2) case .shade10: - return UIColor(hexValue: 0x9F3FAF) + return Color(hexValue: 0x9F3FAF) case .shade20: - return UIColor(hexValue: 0x863593) + return Color(hexValue: 0x863593) case .shade30: - return UIColor(hexValue: 0x63276D) + return Color(hexValue: 0x63276D) case .shade40: - return UIColor(hexValue: 0x35153A) + return Color(hexValue: 0x35153A) case .shade50: - return UIColor(hexValue: 0x1C0B1F) + return Color(hexValue: 0x1C0B1F) case .tint10: - return UIColor(hexValue: 0xBA58C9) + return Color(hexValue: 0xBA58C9) case .tint20: - return UIColor(hexValue: 0xC36BD1) + return Color(hexValue: 0xC36BD1) case .tint30: - return UIColor(hexValue: 0xCF87DA) + return Color(hexValue: 0xCF87DA) case .tint40: - return UIColor(hexValue: 0xE6BFED) + return Color(hexValue: 0xE6BFED) case .tint50: - return UIColor(hexValue: 0xF2DCF5) + return Color(hexValue: 0xF2DCF5) case .tint60: - return UIColor(hexValue: 0xFCF6FD) + return Color(hexValue: 0xFCF6FD) } case .lime: switch token { case .primary: - return UIColor(hexValue: 0x73AA24) + return Color(hexValue: 0x73AA24) case .shade10: - return UIColor(hexValue: 0x689920) + return Color(hexValue: 0x689920) case .shade20: - return UIColor(hexValue: 0x57811B) + return Color(hexValue: 0x57811B) case .shade30: - return UIColor(hexValue: 0x405F14) + return Color(hexValue: 0x405F14) case .shade40: - return UIColor(hexValue: 0x23330B) + return Color(hexValue: 0x23330B) case .shade50: - return UIColor(hexValue: 0x121B06) + return Color(hexValue: 0x121B06) case .tint10: - return UIColor(hexValue: 0x81B437) + return Color(hexValue: 0x81B437) case .tint20: - return UIColor(hexValue: 0x90BE4C) + return Color(hexValue: 0x90BE4C) case .tint30: - return UIColor(hexValue: 0xA4CC6C) + return Color(hexValue: 0xA4CC6C) case .tint40: - return UIColor(hexValue: 0xCFE5AF) + return Color(hexValue: 0xCFE5AF) case .tint50: - return UIColor(hexValue: 0xE5F1D3) + return Color(hexValue: 0xE5F1D3) case .tint60: - return UIColor(hexValue: 0xF8FCF4) + return Color(hexValue: 0xF8FCF4) } case .magenta: switch token { case .primary: - return UIColor(hexValue: 0xBF0077) + return Color(hexValue: 0xBF0077) case .shade10: - return UIColor(hexValue: 0xAC006B) + return Color(hexValue: 0xAC006B) case .shade20: - return UIColor(hexValue: 0x91005A) + return Color(hexValue: 0x91005A) case .shade30: - return UIColor(hexValue: 0x6B0043) + return Color(hexValue: 0x6B0043) case .shade40: - return UIColor(hexValue: 0x390024) + return Color(hexValue: 0x390024) case .shade50: - return UIColor(hexValue: 0x1F0013) + return Color(hexValue: 0x1F0013) case .tint10: - return UIColor(hexValue: 0xC71885) + return Color(hexValue: 0xC71885) case .tint20: - return UIColor(hexValue: 0xCE3293) + return Color(hexValue: 0xCE3293) case .tint30: - return UIColor(hexValue: 0xD957A8) + return Color(hexValue: 0xD957A8) case .tint40: - return UIColor(hexValue: 0xECA5D1) + return Color(hexValue: 0xECA5D1) case .tint50: - return UIColor(hexValue: 0xF5CEE6) + return Color(hexValue: 0xF5CEE6) case .tint60: - return UIColor(hexValue: 0xFCF2F9) + return Color(hexValue: 0xFCF2F9) } case .marigold: switch token { case .primary: - return UIColor(hexValue: 0xEAA300) + return Color(hexValue: 0xEAA300) case .shade10: - return UIColor(hexValue: 0xD39300) + return Color(hexValue: 0xD39300) case .shade20: - return UIColor(hexValue: 0xB27C00) + return Color(hexValue: 0xB27C00) case .shade30: - return UIColor(hexValue: 0x835B00) + return Color(hexValue: 0x835B00) case .shade40: - return UIColor(hexValue: 0x463100) + return Color(hexValue: 0x463100) case .shade50: - return UIColor(hexValue: 0x251A00) + return Color(hexValue: 0x251A00) case .tint10: - return UIColor(hexValue: 0xEDAD1C) + return Color(hexValue: 0xEDAD1C) case .tint20: - return UIColor(hexValue: 0xEFB839) + return Color(hexValue: 0xEFB839) case .tint30: - return UIColor(hexValue: 0xF2C661) + return Color(hexValue: 0xF2C661) case .tint40: - return UIColor(hexValue: 0xF9E2AE) + return Color(hexValue: 0xF9E2AE) case .tint50: - return UIColor(hexValue: 0xFCEFD3) + return Color(hexValue: 0xFCEFD3) case .tint60: - return UIColor(hexValue: 0xFEFBF4) + return Color(hexValue: 0xFEFBF4) } case .mink: switch token { case .primary: - return UIColor(hexValue: 0x5D5A58) + return Color(hexValue: 0x5D5A58) case .shade10: - return UIColor(hexValue: 0x54514F) + return Color(hexValue: 0x54514F) case .shade20: - return UIColor(hexValue: 0x474443) + return Color(hexValue: 0x474443) case .shade30: - return UIColor(hexValue: 0x343231) + return Color(hexValue: 0x343231) case .shade40: - return UIColor(hexValue: 0x1C1B1A) + return Color(hexValue: 0x1C1B1A) case .shade50: - return UIColor(hexValue: 0x0F0E0E) + return Color(hexValue: 0x0F0E0E) case .tint10: - return UIColor(hexValue: 0x706D6B) + return Color(hexValue: 0x706D6B) case .tint20: - return UIColor(hexValue: 0x84817E) + return Color(hexValue: 0x84817E) case .tint30: - return UIColor(hexValue: 0x9E9B99) + return Color(hexValue: 0x9E9B99) case .tint40: - return UIColor(hexValue: 0xCECCCB) + return Color(hexValue: 0xCECCCB) case .tint50: - return UIColor(hexValue: 0xE5E4E3) + return Color(hexValue: 0xE5E4E3) case .tint60: - return UIColor(hexValue: 0xF8F8F8) + return Color(hexValue: 0xF8F8F8) } case .navy: switch token { case .primary: - return UIColor(hexValue: 0x0027B4) + return Color(hexValue: 0x0027B4) case .shade10: - return UIColor(hexValue: 0x0023A2) + return Color(hexValue: 0x0023A2) case .shade20: - return UIColor(hexValue: 0x001E89) + return Color(hexValue: 0x001E89) case .shade30: - return UIColor(hexValue: 0x001665) + return Color(hexValue: 0x001665) case .shade40: - return UIColor(hexValue: 0x000C36) + return Color(hexValue: 0x000C36) case .shade50: - return UIColor(hexValue: 0x00061D) + return Color(hexValue: 0x00061D) case .tint10: - return UIColor(hexValue: 0x173BBD) + return Color(hexValue: 0x173BBD) case .tint20: - return UIColor(hexValue: 0x3050C6) + return Color(hexValue: 0x3050C6) case .tint30: - return UIColor(hexValue: 0x546FD2) + return Color(hexValue: 0x546FD2) case .tint40: - return UIColor(hexValue: 0xA3B2E8) + return Color(hexValue: 0xA3B2E8) case .tint50: - return UIColor(hexValue: 0xCCD5F3) + return Color(hexValue: 0xCCD5F3) case .tint60: - return UIColor(hexValue: 0xF2F4FC) + return Color(hexValue: 0xF2F4FC) } case .orange: switch token { case .primary: - return UIColor(hexValue: 0xF7630C) + return Color(hexValue: 0xF7630C) case .shade10: - return UIColor(hexValue: 0xDE590B) + return Color(hexValue: 0xDE590B) case .shade20: - return UIColor(hexValue: 0xBC4B09) + return Color(hexValue: 0xBC4B09) case .shade30: - return UIColor(hexValue: 0x8A3707) + return Color(hexValue: 0x8A3707) case .shade40: - return UIColor(hexValue: 0x4A1E04) + return Color(hexValue: 0x4A1E04) case .shade50: - return UIColor(hexValue: 0x271002) + return Color(hexValue: 0x271002) case .tint10: - return UIColor(hexValue: 0xF87528) + return Color(hexValue: 0xF87528) case .tint20: - return UIColor(hexValue: 0xF98845) + return Color(hexValue: 0xF98845) case .tint30: - return UIColor(hexValue: 0xFAA06B) + return Color(hexValue: 0xFAA06B) case .tint40: - return UIColor(hexValue: 0xFDCFB4) + return Color(hexValue: 0xFDCFB4) case .tint50: - return UIColor(hexValue: 0xFEE5D7) + return Color(hexValue: 0xFEE5D7) case .tint60: - return UIColor(hexValue: 0xFFF9F5) + return Color(hexValue: 0xFFF9F5) } case .orchid: switch token { case .primary: - return UIColor(hexValue: 0x8764B8) + return Color(hexValue: 0x8764B8) case .shade10: - return UIColor(hexValue: 0x795AA6) + return Color(hexValue: 0x795AA6) case .shade20: - return UIColor(hexValue: 0x674C8C) + return Color(hexValue: 0x674C8C) case .shade30: - return UIColor(hexValue: 0x4C3867) + return Color(hexValue: 0x4C3867) case .shade40: - return UIColor(hexValue: 0x281E37) + return Color(hexValue: 0x281E37) case .shade50: - return UIColor(hexValue: 0x16101D) + return Color(hexValue: 0x16101D) case .tint10: - return UIColor(hexValue: 0x9373C0) + return Color(hexValue: 0x9373C0) case .tint20: - return UIColor(hexValue: 0xA083C9) + return Color(hexValue: 0xA083C9) case .tint30: - return UIColor(hexValue: 0xB29AD4) + return Color(hexValue: 0xB29AD4) case .tint40: - return UIColor(hexValue: 0xD7CAEA) + return Color(hexValue: 0xD7CAEA) case .tint50: - return UIColor(hexValue: 0xE9E2F4) + return Color(hexValue: 0xE9E2F4) case .tint60: - return UIColor(hexValue: 0xF9F8FC) + return Color(hexValue: 0xF9F8FC) } case .peach: switch token { case .primary: - return UIColor(hexValue: 0xFF8C00) + return Color(hexValue: 0xFF8C00) case .shade10: - return UIColor(hexValue: 0xE67E00) + return Color(hexValue: 0xE67E00) case .shade20: - return UIColor(hexValue: 0xC26A00) + return Color(hexValue: 0xC26A00) case .shade30: - return UIColor(hexValue: 0x8F4E00) + return Color(hexValue: 0x8F4E00) case .shade40: - return UIColor(hexValue: 0x4D2A00) + return Color(hexValue: 0x4D2A00) case .shade50: - return UIColor(hexValue: 0x291600) + return Color(hexValue: 0x291600) case .tint10: - return UIColor(hexValue: 0xFF9A1F) + return Color(hexValue: 0xFF9A1F) case .tint20: - return UIColor(hexValue: 0xFFA83D) + return Color(hexValue: 0xFFA83D) case .tint30: - return UIColor(hexValue: 0xFFBA66) + return Color(hexValue: 0xFFBA66) case .tint40: - return UIColor(hexValue: 0xFFDDB3) + return Color(hexValue: 0xFFDDB3) case .tint50: - return UIColor(hexValue: 0xFFEDD6) + return Color(hexValue: 0xFFEDD6) case .tint60: - return UIColor(hexValue: 0xFFFAF5) + return Color(hexValue: 0xFFFAF5) } case .pink: switch token { case .primary: - return UIColor(hexValue: 0xE43BA6) + return Color(hexValue: 0xE43BA6) case .shade10: - return UIColor(hexValue: 0xCD3595) + return Color(hexValue: 0xCD3595) case .shade20: - return UIColor(hexValue: 0xAD2D7E) + return Color(hexValue: 0xAD2D7E) case .shade30: - return UIColor(hexValue: 0x80215D) + return Color(hexValue: 0x80215D) case .shade40: - return UIColor(hexValue: 0x441232) + return Color(hexValue: 0x441232) case .shade50: - return UIColor(hexValue: 0x24091B) + return Color(hexValue: 0x24091B) case .tint10: - return UIColor(hexValue: 0xE750B0) + return Color(hexValue: 0xE750B0) case .tint20: - return UIColor(hexValue: 0xEA66BA) + return Color(hexValue: 0xEA66BA) case .tint30: - return UIColor(hexValue: 0xEF85C8) + return Color(hexValue: 0xEF85C8) case .tint40: - return UIColor(hexValue: 0xF7C0E3) + return Color(hexValue: 0xF7C0E3) case .tint50: - return UIColor(hexValue: 0xFBDDF0) + return Color(hexValue: 0xFBDDF0) case .tint60: - return UIColor(hexValue: 0xFEF6FB) + return Color(hexValue: 0xFEF6FB) } case .platinum: switch token { case .primary: - return UIColor(hexValue: 0x69797E) + return Color(hexValue: 0x69797E) case .shade10: - return UIColor(hexValue: 0x5F6D71) + return Color(hexValue: 0x5F6D71) case .shade20: - return UIColor(hexValue: 0x505C60) + return Color(hexValue: 0x505C60) case .shade30: - return UIColor(hexValue: 0x3B4447) + return Color(hexValue: 0x3B4447) case .shade40: - return UIColor(hexValue: 0x1F2426) + return Color(hexValue: 0x1F2426) case .shade50: - return UIColor(hexValue: 0x111314) + return Color(hexValue: 0x111314) case .tint10: - return UIColor(hexValue: 0x79898D) + return Color(hexValue: 0x79898D) case .tint20: - return UIColor(hexValue: 0x89989D) + return Color(hexValue: 0x89989D) case .tint30: - return UIColor(hexValue: 0xA0ADB2) + return Color(hexValue: 0xA0ADB2) case .tint40: - return UIColor(hexValue: 0xCDD6D8) + return Color(hexValue: 0xCDD6D8) case .tint50: - return UIColor(hexValue: 0xE4E9EA) + return Color(hexValue: 0xE4E9EA) case .tint60: - return UIColor(hexValue: 0xF8F9FA) + return Color(hexValue: 0xF8F9FA) } case .plum: switch token { case .primary: - return UIColor(hexValue: 0x77004D) + return Color(hexValue: 0x77004D) case .shade10: - return UIColor(hexValue: 0x6B0045) + return Color(hexValue: 0x6B0045) case .shade20: - return UIColor(hexValue: 0x5A003B) + return Color(hexValue: 0x5A003B) case .shade30: - return UIColor(hexValue: 0x43002B) + return Color(hexValue: 0x43002B) case .shade40: - return UIColor(hexValue: 0x240017) + return Color(hexValue: 0x240017) case .shade50: - return UIColor(hexValue: 0x13000C) + return Color(hexValue: 0x13000C) case .tint10: - return UIColor(hexValue: 0x87105D) + return Color(hexValue: 0x87105D) case .tint20: - return UIColor(hexValue: 0x98246F) + return Color(hexValue: 0x98246F) case .tint30: - return UIColor(hexValue: 0xAD4589) + return Color(hexValue: 0xAD4589) case .tint40: - return UIColor(hexValue: 0xD696C0) + return Color(hexValue: 0xD696C0) case .tint50: - return UIColor(hexValue: 0xE9C4DC) + return Color(hexValue: 0xE9C4DC) case .tint60: - return UIColor(hexValue: 0xFAF0F6) + return Color(hexValue: 0xFAF0F6) } case .pumpkin: switch token { case .primary: - return UIColor(hexValue: 0xCA5010) + return Color(hexValue: 0xCA5010) case .shade10: - return UIColor(hexValue: 0xB6480E) + return Color(hexValue: 0xB6480E) case .shade20: - return UIColor(hexValue: 0x9A3D0C) + return Color(hexValue: 0x9A3D0C) case .shade30: - return UIColor(hexValue: 0x712D09) + return Color(hexValue: 0x712D09) case .shade40: - return UIColor(hexValue: 0x3D1805) + return Color(hexValue: 0x3D1805) case .shade50: - return UIColor(hexValue: 0x200D03) + return Color(hexValue: 0x200D03) case .tint10: - return UIColor(hexValue: 0xD06228) + return Color(hexValue: 0xD06228) case .tint20: - return UIColor(hexValue: 0xD77440) + return Color(hexValue: 0xD77440) case .tint30: - return UIColor(hexValue: 0xDF8E64) + return Color(hexValue: 0xDF8E64) case .tint40: - return UIColor(hexValue: 0xEFC4AD) + return Color(hexValue: 0xEFC4AD) case .tint50: - return UIColor(hexValue: 0xF7DFD2) + return Color(hexValue: 0xF7DFD2) case .tint60: - return UIColor(hexValue: 0xFDF7F4) + return Color(hexValue: 0xFDF7F4) } case .purple: switch token { case .primary: - return UIColor(hexValue: 0x5C2E91) + return Color(hexValue: 0x5C2E91) case .shade10: - return UIColor(hexValue: 0x532982) + return Color(hexValue: 0x532982) case .shade20: - return UIColor(hexValue: 0x46236E) + return Color(hexValue: 0x46236E) case .shade30: - return UIColor(hexValue: 0x341A51) + return Color(hexValue: 0x341A51) case .shade40: - return UIColor(hexValue: 0x1C0E2B) + return Color(hexValue: 0x1C0E2B) case .shade50: - return UIColor(hexValue: 0x0F0717) + return Color(hexValue: 0x0F0717) case .tint10: - return UIColor(hexValue: 0x6B3F9E) + return Color(hexValue: 0x6B3F9E) case .tint20: - return UIColor(hexValue: 0x7C52AB) + return Color(hexValue: 0x7C52AB) case .tint30: - return UIColor(hexValue: 0x9470BD) + return Color(hexValue: 0x9470BD) case .tint40: - return UIColor(hexValue: 0xC6B1DE) + return Color(hexValue: 0xC6B1DE) case .tint50: - return UIColor(hexValue: 0xE0D3ED) + return Color(hexValue: 0xE0D3ED) case .tint60: - return UIColor(hexValue: 0xF7F4FB) + return Color(hexValue: 0xF7F4FB) } case .red: switch token { case .primary: - return UIColor(hexValue: 0xD13438) + return Color(hexValue: 0xD13438) case .shade10: - return UIColor(hexValue: 0xBC2F32) + return Color(hexValue: 0xBC2F32) case .shade20: - return UIColor(hexValue: 0x9F282B) + return Color(hexValue: 0x9F282B) case .shade30: - return UIColor(hexValue: 0x751D1F) + return Color(hexValue: 0x751D1F) case .shade40: - return UIColor(hexValue: 0x3F1011) + return Color(hexValue: 0x3F1011) case .shade50: - return UIColor(hexValue: 0x210809) + return Color(hexValue: 0x210809) case .tint10: - return UIColor(hexValue: 0xD7494C) + return Color(hexValue: 0xD7494C) case .tint20: - return UIColor(hexValue: 0xDC5E62) + return Color(hexValue: 0xDC5E62) case .tint30: - return UIColor(hexValue: 0xE37D80) + return Color(hexValue: 0xE37D80) case .tint40: - return UIColor(hexValue: 0xF1BBBC) + return Color(hexValue: 0xF1BBBC) case .tint50: - return UIColor(hexValue: 0xF8DADB) + return Color(hexValue: 0xF8DADB) case .tint60: - return UIColor(hexValue: 0xFDF6F6) + return Color(hexValue: 0xFDF6F6) } case .royalBlue: switch token { case .primary: - return UIColor(hexValue: 0x004E8C) + return Color(hexValue: 0x004E8C) case .shade10: - return UIColor(hexValue: 0x00467E) + return Color(hexValue: 0x00467E) case .shade20: - return UIColor(hexValue: 0x003B6A) + return Color(hexValue: 0x003B6A) case .shade30: - return UIColor(hexValue: 0x002C4E) + return Color(hexValue: 0x002C4E) case .shade40: - return UIColor(hexValue: 0x00172A) + return Color(hexValue: 0x00172A) case .shade50: - return UIColor(hexValue: 0x000C16) + return Color(hexValue: 0x000C16) case .tint10: - return UIColor(hexValue: 0x125E9A) + return Color(hexValue: 0x125E9A) case .tint20: - return UIColor(hexValue: 0x286FA8) + return Color(hexValue: 0x286FA8) case .tint30: - return UIColor(hexValue: 0x4A89BA) + return Color(hexValue: 0x4A89BA) case .tint40: - return UIColor(hexValue: 0x9ABFDC) + return Color(hexValue: 0x9ABFDC) case .tint50: - return UIColor(hexValue: 0xC7DCED) + return Color(hexValue: 0xC7DCED) case .tint60: - return UIColor(hexValue: 0xF0F6FA) + return Color(hexValue: 0xF0F6FA) } case .seafoam: switch token { case .primary: - return UIColor(hexValue: 0x00CC6A) + return Color(hexValue: 0x00CC6A) case .shade10: - return UIColor(hexValue: 0x00B85F) + return Color(hexValue: 0x00B85F) case .shade20: - return UIColor(hexValue: 0x009B51) + return Color(hexValue: 0x009B51) case .shade30: - return UIColor(hexValue: 0x00723B) + return Color(hexValue: 0x00723B) case .shade40: - return UIColor(hexValue: 0x003D20) + return Color(hexValue: 0x003D20) case .shade50: - return UIColor(hexValue: 0x002111) + return Color(hexValue: 0x002111) case .tint10: - return UIColor(hexValue: 0x19D279) + return Color(hexValue: 0x19D279) case .tint20: - return UIColor(hexValue: 0x34D889) + return Color(hexValue: 0x34D889) case .tint30: - return UIColor(hexValue: 0x5AE0A0) + return Color(hexValue: 0x5AE0A0) case .tint40: - return UIColor(hexValue: 0xA8F0CD) + return Color(hexValue: 0xA8F0CD) case .tint50: - return UIColor(hexValue: 0xCFF7E4) + return Color(hexValue: 0xCFF7E4) case .tint60: - return UIColor(hexValue: 0xF3FDF8) + return Color(hexValue: 0xF3FDF8) } case .silver: switch token { case .primary: - return UIColor(hexValue: 0x859599) + return Color(hexValue: 0x859599) case .shade10: - return UIColor(hexValue: 0x78868A) + return Color(hexValue: 0x78868A) case .shade20: - return UIColor(hexValue: 0x657174) + return Color(hexValue: 0x657174) case .shade30: - return UIColor(hexValue: 0x4A5356) + return Color(hexValue: 0x4A5356) case .shade40: - return UIColor(hexValue: 0x282D2E) + return Color(hexValue: 0x282D2E) case .shade50: - return UIColor(hexValue: 0x151818) + return Color(hexValue: 0x151818) case .tint10: - return UIColor(hexValue: 0x92A1A5) + return Color(hexValue: 0x92A1A5) case .tint20: - return UIColor(hexValue: 0xA0AEB1) + return Color(hexValue: 0xA0AEB1) case .tint30: - return UIColor(hexValue: 0xB3BFC2) + return Color(hexValue: 0xB3BFC2) case .tint40: - return UIColor(hexValue: 0xD8DFE0) + return Color(hexValue: 0xD8DFE0) case .tint50: - return UIColor(hexValue: 0xEAEEEF) + return Color(hexValue: 0xEAEEEF) case .tint60: - return UIColor(hexValue: 0xFAFBFB) + return Color(hexValue: 0xFAFBFB) } case .steel: switch token { case .primary: - return UIColor(hexValue: 0x005B70) + return Color(hexValue: 0x005B70) case .shade10: - return UIColor(hexValue: 0x005265) + return Color(hexValue: 0x005265) case .shade20: - return UIColor(hexValue: 0x004555) + return Color(hexValue: 0x004555) case .shade30: - return UIColor(hexValue: 0x00333F) + return Color(hexValue: 0x00333F) case .shade40: - return UIColor(hexValue: 0x001B22) + return Color(hexValue: 0x001B22) case .shade50: - return UIColor(hexValue: 0x000F12) + return Color(hexValue: 0x000F12) case .tint10: - return UIColor(hexValue: 0x0F6C81) + return Color(hexValue: 0x0F6C81) case .tint20: - return UIColor(hexValue: 0x237D92) + return Color(hexValue: 0x237D92) case .tint30: - return UIColor(hexValue: 0x4496A9) + return Color(hexValue: 0x4496A9) case .tint40: - return UIColor(hexValue: 0x94C8D4) + return Color(hexValue: 0x94C8D4) case .tint50: - return UIColor(hexValue: 0xC3E1E8) + return Color(hexValue: 0xC3E1E8) case .tint60: - return UIColor(hexValue: 0xEFF7F9) + return Color(hexValue: 0xEFF7F9) } case .teal: switch token { case .primary: - return UIColor(hexValue: 0x038387) + return Color(hexValue: 0x038387) case .shade10: - return UIColor(hexValue: 0x037679) + return Color(hexValue: 0x037679) case .shade20: - return UIColor(hexValue: 0x026467) + return Color(hexValue: 0x026467) case .shade30: - return UIColor(hexValue: 0x02494C) + return Color(hexValue: 0x02494C) case .shade40: - return UIColor(hexValue: 0x012728) + return Color(hexValue: 0x012728) case .shade50: - return UIColor(hexValue: 0x001516) + return Color(hexValue: 0x001516) case .tint10: - return UIColor(hexValue: 0x159195) + return Color(hexValue: 0x159195) case .tint20: - return UIColor(hexValue: 0x2AA0A4) + return Color(hexValue: 0x2AA0A4) case .tint30: - return UIColor(hexValue: 0x4CB4B7) + return Color(hexValue: 0x4CB4B7) case .tint40: - return UIColor(hexValue: 0x9BD9DB) + return Color(hexValue: 0x9BD9DB) case .tint50: - return UIColor(hexValue: 0xC7EBEC) + return Color(hexValue: 0xC7EBEC) case .tint60: - return UIColor(hexValue: 0xF0FAFA) + return Color(hexValue: 0xF0FAFA) } case .yellow: switch token { case .primary: - return UIColor(hexValue: 0xFDE300) + return Color(hexValue: 0xFDE300) case .shade10: - return UIColor(hexValue: 0xE4CC00) + return Color(hexValue: 0xE4CC00) case .shade20: - return UIColor(hexValue: 0xC0AD00) + return Color(hexValue: 0xC0AD00) case .shade30: - return UIColor(hexValue: 0x817400) + return Color(hexValue: 0x817400) case .shade40: - return UIColor(hexValue: 0x4C4400) + return Color(hexValue: 0x4C4400) case .shade50: - return UIColor(hexValue: 0x282400) + return Color(hexValue: 0x282400) case .tint10: - return UIColor(hexValue: 0xFDE61E) + return Color(hexValue: 0xFDE61E) case .tint20: - return UIColor(hexValue: 0xFDEA3D) + return Color(hexValue: 0xFDEA3D) case .tint30: - return UIColor(hexValue: 0xFEEE66) + return Color(hexValue: 0xFEEE66) case .tint40: - return UIColor(hexValue: 0xFEF7B2) + return Color(hexValue: 0xFEF7B2) case .tint50: - return UIColor(hexValue: 0xFFFAD6) + return Color(hexValue: 0xFFFAD6) case .tint60: - return UIColor(hexValue: 0xFFFEF5) + return Color(hexValue: 0xFFFEF5) } } } @@ -1871,1659 +1868,6 @@ public class GlobalTokens: NSObject { return 6 } } - // MARK: - Deprecated - - // MARK: - BrandColors - - @available(*, deprecated, renamed: "BrandColorToken") - @objc(MSFBrandColorsGlobalTokens) - public enum BrandColorsTokens: Int, TokenSetKey { - // Communication blue colors - case comm10 - case comm20 - case comm30 - case comm40 - case comm50 - case comm60 - case comm70 - case comm80 - case comm90 - case comm100 - case comm110 - case comm120 - case comm130 - case comm140 - case comm150 - case comm160 - - // Gradient colors - case gradientPrimaryLight - case gradientPrimaryDark - case gradientSecondaryLight - case gradientSecondaryDark - case gradientTertiaryLight - case gradientTertiaryDark - } - - @available(*, deprecated, renamed: "brandColor(_token:)") - @objc(brandColorForGlobalToken:) - public static func brandColors(_ token: BrandColorsTokens) -> ColorValue { - switch token { - case .comm10: - return ColorValue(0x061724) - case .comm20: - return ColorValue(0x082338) - case .comm30: - return ColorValue(0x0A2E4A) - case .comm40: - return ColorValue(0x0C3B5E) - case .comm50: - return ColorValue(0x0E4775) - case .comm60: - return ColorValue(0x0F548C) - case .comm70: - return ColorValue(0x115EA3) - case .comm80: - return ColorValue(0x0F6CBD) - case .comm90: - return ColorValue(0x2886DE) - case .comm100: - return ColorValue(0x479EF5) - case .comm110: - return ColorValue(0x62ABF5) - case .comm120: - return ColorValue(0x77B7F7) - case .comm130: - return ColorValue(0x96C6FA) - case .comm140: - return ColorValue(0xB4D6FA) - case .comm150: - return ColorValue(0xCFE4FA) - case .comm160: - return ColorValue(0xEBF3FC) - case .gradientPrimaryLight: - return ColorValue(0x464FEB) - case .gradientPrimaryDark: - return ColorValue(0x7385FF) - case .gradientSecondaryLight: - return ColorValue(0x47CFFA) - case .gradientSecondaryDark: - return ColorValue(0x7ADFFF) - case .gradientTertiaryLight: - return ColorValue(0xB47CF8) - case .gradientTertiaryDark: - return ColorValue(0xBF80FF) - } - } - - // MARK: - NeutralColors - - @available(*, deprecated, renamed: "NeutralColorToken") - @objc(MSFNeutralColorsToken) - public enum NeutralColorsToken: Int, TokenSetKey { - case black - case grey2 - case grey4 - case grey6 - case grey8 - case grey10 - case grey12 - case grey14 - case grey16 - case grey18 - case grey20 - case grey22 - case grey24 - case grey26 - case grey28 - case grey30 - case grey32 - case grey34 - case grey36 - case grey38 - case grey40 - case grey42 - case grey44 - case grey46 - case grey48 - case grey50 - case grey52 - case grey54 - case grey56 - case grey58 - case grey60 - case grey62 - case grey64 - case grey66 - case grey68 - case grey70 - case grey72 - case grey74 - case grey76 - case grey78 - case grey80 - case grey82 - case grey84 - case grey86 - case grey88 - case grey90 - case grey92 - case grey94 - case grey96 - case grey98 - case white - } - @available(*, deprecated, renamed: "neutralColor(_:)") - @objc(neutralColorForToken:) - public static func neutralColors(_ token: NeutralColorsToken) -> ColorValue { - switch token { - case .black: - return ColorValue(0x000000) - case .grey2: - return ColorValue(0x050505) - case .grey4: - return ColorValue(0x0A0A0A) - case .grey6: - return ColorValue(0x0F0F0F) - case .grey8: - return ColorValue(0x141414) - case .grey10: - return ColorValue(0x1A1A1A) - case .grey12: - return ColorValue(0x1F1F1F) - case .grey14: - return ColorValue(0x242424) - case .grey16: - return ColorValue(0x292929) - case .grey18: - return ColorValue(0x2E2E2E) - case .grey20: - return ColorValue(0x333333) - case .grey22: - return ColorValue(0x383838) - case .grey24: - return ColorValue(0x3D3D3D) - case .grey26: - return ColorValue(0x424242) - case .grey28: - return ColorValue(0x474747) - case .grey30: - return ColorValue(0x4D4D4D) - case .grey32: - return ColorValue(0x525252) - case .grey34: - return ColorValue(0x575757) - case .grey36: - return ColorValue(0x5C5C5C) - case .grey38: - return ColorValue(0x616161) - case .grey40: - return ColorValue(0x666666) - case .grey42: - return ColorValue(0x6B6B6B) - case .grey44: - return ColorValue(0x707070) - case .grey46: - return ColorValue(0x757575) - case .grey48: - return ColorValue(0x7A7A7A) - case .grey50: - return ColorValue(0x808080) - case .grey52: - return ColorValue(0x858585) - case .grey54: - return ColorValue(0x8A8A8A) - case .grey56: - return ColorValue(0x8F8F8F) - case .grey58: - return ColorValue(0x949494) - case .grey60: - return ColorValue(0x999999) - case .grey62: - return ColorValue(0x9E9E9E) - case .grey64: - return ColorValue(0xA3A3A3) - case .grey66: - return ColorValue(0xA8A8A8) - case .grey68: - return ColorValue(0xADADAD) - case .grey70: - return ColorValue(0xB3B3B3) - case .grey72: - return ColorValue(0xB8B8B8) - case .grey74: - return ColorValue(0xBDBDBD) - case .grey76: - return ColorValue(0xC2C2C2) - case .grey78: - return ColorValue(0xC7C7C7) - case .grey80: - return ColorValue(0xCCCCCC) - case .grey82: - return ColorValue(0xD1D1D1) - case .grey84: - return ColorValue(0xD6D6D6) - case .grey86: - return ColorValue(0xDBDBDB) - case .grey88: - return ColorValue(0xE0E0E0) - case .grey90: - return ColorValue(0xE6E6E6) - case .grey92: - return ColorValue(0xEBEBEB) - case .grey94: - return ColorValue(0xF0F0F0) - case .grey96: - return ColorValue(0xF5F5F5) - case .grey98: - return ColorValue(0xFAFAFA) - case .white: - return ColorValue(0xFFFFFF) - } - } - - // MARK: - SharedColors - - @available(*, deprecated, renamed: "SharedColorSet") - @objc(MSFSharedColorSets) - public enum SharedColorSets: Int, TokenSetKey { - case darkRed - case burgundy - case cranberry - case red - case darkOrange - case bronze - case pumpkin - case orange - case peach - case marigold - case yellow - case gold - case brass - case brown - case darkBrown - case lime - case forest - case seafoam - case lightGreen - case green - case darkGreen - case lightTeal - case teal - case darkTeal - case cyan - case steel - case lightBlue - case blue - case royalBlue - case darkBlue - case cornflower - case navy - case lavender - case purple - case darkPurple - case orchid - case grape - case berry - case lilac - case pink - case hotPink - case magenta - case plum - case beige - case mink - case silver - case platinum - case anchor - case charcoal - } - - @available(*, deprecated, renamed: "SharedColorToken") - @objc(MSFSharedColorsTokens) - public enum SharedColorsTokens: Int, TokenSetKey { - case shade50 - case shade40 - case shade30 - case shade20 - case shade10 - case primary - case tint10 - case tint20 - case tint30 - case tint40 - case tint50 - case tint60 - } - - @available(*, deprecated, renamed: "sharedColor(_:_:)") - @objc(sharedColorForColorSet:token:) - public static func sharedColors(_ sharedColor: SharedColorSets, _ token: SharedColorsTokens) -> ColorValue { - switch sharedColor { - case .anchor: - switch token { - case .primary: - return ColorValue(0x394146) - case .shade10: - return ColorValue(0x333A3F) - case .shade20: - return ColorValue(0x2B3135) - case .shade30: - return ColorValue(0x202427) - case .shade40: - return ColorValue(0x111315) - case .shade50: - return ColorValue(0x090A0B) - case .tint10: - return ColorValue(0x4D565C) - case .tint20: - return ColorValue(0x626C72) - case .tint30: - return ColorValue(0x808A90) - case .tint40: - return ColorValue(0xBCC3C7) - case .tint50: - return ColorValue(0xDBDFE1) - case .tint60: - return ColorValue(0xF6F7F8) - } - case .beige: - switch token { - case .primary: - return ColorValue(0x7A7574) - case .shade10: - return ColorValue(0x6E6968) - case .shade20: - return ColorValue(0x5D5958) - case .shade30: - return ColorValue(0x444241) - case .shade40: - return ColorValue(0x252323) - case .shade50: - return ColorValue(0x141313) - case .tint10: - return ColorValue(0x8A8584) - case .tint20: - return ColorValue(0x9A9594) - case .tint30: - return ColorValue(0xAFABAA) - case .tint40: - return ColorValue(0xD7D4D4) - case .tint50: - return ColorValue(0xEAE8E8) - case .tint60: - return ColorValue(0xFAF9F9) - } - case .berry: - switch token { - case .primary: - return ColorValue(0xC239B3) - case .shade10: - return ColorValue(0xAF33A1) - case .shade20: - return ColorValue(0x932B88) - case .shade30: - return ColorValue(0x6D2064) - case .shade40: - return ColorValue(0x3A1136) - case .shade50: - return ColorValue(0x1F091D) - case .tint10: - return ColorValue(0xC94CBC) - case .tint20: - return ColorValue(0xD161C4) - case .tint30: - return ColorValue(0xDA7ED0) - case .tint40: - return ColorValue(0xEDBBE7) - case .tint50: - return ColorValue(0xF5DAF2) - case .tint60: - return ColorValue(0xFDF5FC) - } - case .blue: - switch token { - case .primary: - return ColorValue(0x0078D4) - case .shade10: - return ColorValue(0x006CBF) - case .shade20: - return ColorValue(0x005BA1) - case .shade30: - return ColorValue(0x004377) - case .shade40: - return ColorValue(0x002440) - case .shade50: - return ColorValue(0x001322) - case .tint10: - return ColorValue(0x1A86D9) - case .tint20: - return ColorValue(0x3595DE) - case .tint30: - return ColorValue(0x5CAAE5) - case .tint40: - return ColorValue(0xA9D3F2) - case .tint50: - return ColorValue(0xD0E7F8) - case .tint60: - return ColorValue(0xF3F9FD) - } - case .brass: - switch token { - case .primary: - return ColorValue(0x986F0B) - case .shade10: - return ColorValue(0x89640A) - case .shade20: - return ColorValue(0x745408) - case .shade30: - return ColorValue(0x553E06) - case .shade40: - return ColorValue(0x2E2103) - case .shade50: - return ColorValue(0x181202) - case .tint10: - return ColorValue(0xA47D1E) - case .tint20: - return ColorValue(0xB18C34) - case .tint30: - return ColorValue(0xC1A256) - case .tint40: - return ColorValue(0xE0CEA2) - case .tint50: - return ColorValue(0xEFE4CB) - case .tint60: - return ColorValue(0xFBF8F2) - } - case .bronze: - switch token { - case .primary: - return ColorValue(0xA74109) - case .shade10: - return ColorValue(0x963A08) - case .shade20: - return ColorValue(0x7F3107) - case .shade30: - return ColorValue(0x5E2405) - case .shade40: - return ColorValue(0x321303) - case .shade50: - return ColorValue(0x1B0A01) - case .tint10: - return ColorValue(0xB2521E) - case .tint20: - return ColorValue(0xBC6535) - case .tint30: - return ColorValue(0xCA8057) - case .tint40: - return ColorValue(0xE5BBA4) - case .tint50: - return ColorValue(0xF1D9CC) - case .tint60: - return ColorValue(0xFBF5F2) - } - case .brown: - switch token { - case .primary: - return ColorValue(0x8E562E) - case .shade10: - return ColorValue(0x804D29) - case .shade20: - return ColorValue(0x6C4123) - case .shade30: - return ColorValue(0x50301A) - case .shade40: - return ColorValue(0x2B1A0E) - case .shade50: - return ColorValue(0x170E07) - case .tint10: - return ColorValue(0x9C663F) - case .tint20: - return ColorValue(0xA97652) - case .tint30: - return ColorValue(0xBB8F6F) - case .tint40: - return ColorValue(0xDDC3B0) - case .tint50: - return ColorValue(0xEDDED3) - case .tint60: - return ColorValue(0xFAF7F4) - } - case .burgundy: - switch token { - case .primary: - return ColorValue(0xA4262C) - case .shade10: - return ColorValue(0x942228) - case .shade20: - return ColorValue(0x7D1D21) - case .shade30: - return ColorValue(0x5C1519) - case .shade40: - return ColorValue(0x310B0D) - case .shade50: - return ColorValue(0x1A0607) - case .tint10: - return ColorValue(0xAF393E) - case .tint20: - return ColorValue(0xBA4D52) - case .tint30: - return ColorValue(0xC86C70) - case .tint40: - return ColorValue(0xE4AFB2) - case .tint50: - return ColorValue(0xF0D3D4) - case .tint60: - return ColorValue(0xFBF4F4) - } - case .charcoal: - switch token { - case .primary: - return ColorValue(0x393939) - case .shade10: - return ColorValue(0x333333) - case .shade20: - return ColorValue(0x2B2B2B) - case .shade30: - return ColorValue(0x202020) - case .shade40: - return ColorValue(0x111111) - case .shade50: - return ColorValue(0x090909) - case .tint10: - return ColorValue(0x515151) - case .tint20: - return ColorValue(0x686868) - case .tint30: - return ColorValue(0x888888) - case .tint40: - return ColorValue(0xC4C4C4) - case .tint50: - return ColorValue(0xDFDFDF) - case .tint60: - return ColorValue(0xF7F7F7) - } - case .cornflower: - switch token { - case .primary: - return ColorValue(0x4F6BED) - case .shade10: - return ColorValue(0x4760D5) - case .shade20: - return ColorValue(0x3C51B4) - case .shade30: - return ColorValue(0x2C3C85) - case .shade40: - return ColorValue(0x182047) - case .shade50: - return ColorValue(0x0D1126) - case .tint10: - return ColorValue(0x637CEF) - case .tint20: - return ColorValue(0x778DF1) - case .tint30: - return ColorValue(0x93A4F4) - case .tint40: - return ColorValue(0xC8D1FA) - case .tint50: - return ColorValue(0xE1E6FC) - case .tint60: - return ColorValue(0xF7F9FE) - } - case .cranberry: - switch token { - case .primary: - return ColorValue(0xC50F1F) - case .shade10: - return ColorValue(0xB10E1C) - case .shade20: - return ColorValue(0x960B18) - case .shade30: - return ColorValue(0x6E0811) - case .shade40: - return ColorValue(0x3B0509) - case .shade50: - return ColorValue(0x200205) - case .tint10: - return ColorValue(0xCC2635) - case .tint20: - return ColorValue(0xD33F4C) - case .tint30: - return ColorValue(0xDC626D) - case .tint40: - return ColorValue(0xEEACB2) - case .tint50: - return ColorValue(0xF6D1D5) - case .tint60: - return ColorValue(0xFDF3F4) - } - case .cyan: - switch token { - case .primary: - return ColorValue(0x0099BC) - case .shade10: - return ColorValue(0x008AA9) - case .shade20: - return ColorValue(0x00748F) - case .shade30: - return ColorValue(0x005669) - case .shade40: - return ColorValue(0x002E38) - case .shade50: - return ColorValue(0x00181E) - case .tint10: - return ColorValue(0x18A4C4) - case .tint20: - return ColorValue(0x31AFCC) - case .tint30: - return ColorValue(0x56BFD7) - case .tint40: - return ColorValue(0xA4DEEB) - case .tint50: - return ColorValue(0xCDEDF4) - case .tint60: - return ColorValue(0xF2FAFC) - } - case .darkBlue: - switch token { - case .primary: - return ColorValue(0x003966) - case .shade10: - return ColorValue(0x00335C) - case .shade20: - return ColorValue(0x002B4E) - case .shade30: - return ColorValue(0x002039) - case .shade40: - return ColorValue(0x00111F) - case .shade50: - return ColorValue(0x000910) - case .tint10: - return ColorValue(0x0E4A78) - case .tint20: - return ColorValue(0x215C8B) - case .tint30: - return ColorValue(0x4178A3) - case .tint40: - return ColorValue(0x92B5D1) - case .tint50: - return ColorValue(0xC2D6E7) - case .tint60: - return ColorValue(0xEFF4F9) - } - case .darkBrown: - switch token { - case .primary: - return ColorValue(0x4D291C) - case .shade10: - return ColorValue(0x452519) - case .shade20: - return ColorValue(0x3A1F15) - case .shade30: - return ColorValue(0x2B1710) - case .shade40: - return ColorValue(0x170C08) - case .shade50: - return ColorValue(0x0C0704) - case .tint10: - return ColorValue(0x623A2B) - case .tint20: - return ColorValue(0x784D3E) - case .tint30: - return ColorValue(0x946B5C) - case .tint40: - return ColorValue(0xCAADA3) - case .tint50: - return ColorValue(0xE3D2CB) - case .tint60: - return ColorValue(0xF8F3F2) - } - case .darkGreen: - switch token { - case .primary: - return ColorValue(0x0B6A0B) - case .shade10: - return ColorValue(0x0A5F0A) - case .shade20: - return ColorValue(0x085108) - case .shade30: - return ColorValue(0x063B06) - case .shade40: - return ColorValue(0x032003) - case .shade50: - return ColorValue(0x021102) - case .tint10: - return ColorValue(0x1A7C1A) - case .tint20: - return ColorValue(0x2D8E2D) - case .tint30: - return ColorValue(0x4DA64D) - case .tint40: - return ColorValue(0x9AD29A) - case .tint50: - return ColorValue(0xC6E7C6) - case .tint60: - return ColorValue(0xF0F9F0) - } - case .darkOrange: - switch token { - case .primary: - return ColorValue(0xDA3B01) - case .shade10: - return ColorValue(0xC43501) - case .shade20: - return ColorValue(0xA62D01) - case .shade30: - return ColorValue(0x7A2101) - case .shade40: - return ColorValue(0x411200) - case .shade50: - return ColorValue(0x230900) - case .tint10: - return ColorValue(0xDE501C) - case .tint20: - return ColorValue(0xE36537) - case .tint30: - return ColorValue(0xE9835E) - case .tint40: - return ColorValue(0xF4BFAB) - case .tint50: - return ColorValue(0xF9DCD1) - case .tint60: - return ColorValue(0xFDF6F3) - } - case .darkPurple: - switch token { - case .primary: - return ColorValue(0x401B6C) - case .shade10: - return ColorValue(0x3A1861) - case .shade20: - return ColorValue(0x311552) - case .shade30: - return ColorValue(0x240F3C) - case .shade40: - return ColorValue(0x130820) - case .shade50: - return ColorValue(0x0A0411) - case .tint10: - return ColorValue(0x512B7E) - case .tint20: - return ColorValue(0x633E8F) - case .tint30: - return ColorValue(0x7E5CA7) - case .tint40: - return ColorValue(0xB9A3D3) - case .tint50: - return ColorValue(0xD8CCE7) - case .tint60: - return ColorValue(0xF5F2F9) - } - case .darkRed: - switch token { - case .primary: - return ColorValue(0x750B1C) - case .shade10: - return ColorValue(0x690A19) - case .shade20: - return ColorValue(0x590815) - case .shade30: - return ColorValue(0x420610) - case .shade40: - return ColorValue(0x230308) - case .shade50: - return ColorValue(0x130204) - case .tint10: - return ColorValue(0x861B2C) - case .tint20: - return ColorValue(0x962F3F) - case .tint30: - return ColorValue(0xAC4F5E) - case .tint40: - return ColorValue(0xD69CA5) - case .tint50: - return ColorValue(0xE9C7CD) - case .tint60: - return ColorValue(0xF9F0F2) - } - case .darkTeal: - switch token { - case .primary: - return ColorValue(0x006666) - case .shade10: - return ColorValue(0x005C5C) - case .shade20: - return ColorValue(0x004E4E) - case .shade30: - return ColorValue(0x003939) - case .shade40: - return ColorValue(0x001F1F) - case .shade50: - return ColorValue(0x001010) - case .tint10: - return ColorValue(0x0E7878) - case .tint20: - return ColorValue(0x218B8B) - case .tint30: - return ColorValue(0x41A3A3) - case .tint40: - return ColorValue(0x92D1D1) - case .tint50: - return ColorValue(0xC2E7E7) - case .tint60: - return ColorValue(0xEFF9F9) - } - case .forest: - switch token { - case .primary: - return ColorValue(0x498205) - case .shade10: - return ColorValue(0x427505) - case .shade20: - return ColorValue(0x376304) - case .shade30: - return ColorValue(0x294903) - case .shade40: - return ColorValue(0x162702) - case .shade50: - return ColorValue(0x0C1501) - case .tint10: - return ColorValue(0x599116) - case .tint20: - return ColorValue(0x6BA02B) - case .tint30: - return ColorValue(0x85B44C) - case .tint40: - return ColorValue(0xBDD99B) - case .tint50: - return ColorValue(0xDBEBC7) - case .tint60: - return ColorValue(0xF6FAF0) - } - case .gold: - switch token { - case .primary: - return ColorValue(0xC19C00) - case .shade10: - return ColorValue(0xAE8C00) - case .shade20: - return ColorValue(0x937700) - case .shade30: - return ColorValue(0x6C5700) - case .shade40: - return ColorValue(0x3A2F00) - case .shade50: - return ColorValue(0x1F1900) - case .tint10: - return ColorValue(0xC8A718) - case .tint20: - return ColorValue(0xD0B232) - case .tint30: - return ColorValue(0xDAC157) - case .tint40: - return ColorValue(0xECDFA5) - case .tint50: - return ColorValue(0xF5EECE) - case .tint60: - return ColorValue(0xFDFBF2) - } - case .grape: - switch token { - case .primary: - return ColorValue(0x881798) - case .shade10: - return ColorValue(0x7A1589) - case .shade20: - return ColorValue(0x671174) - case .shade30: - return ColorValue(0x4C0D55) - case .shade40: - return ColorValue(0x29072E) - case .shade50: - return ColorValue(0x160418) - case .tint10: - return ColorValue(0x952AA4) - case .tint20: - return ColorValue(0xA33FB1) - case .tint30: - return ColorValue(0xB55FC1) - case .tint40: - return ColorValue(0xD9A7E0) - case .tint50: - return ColorValue(0xEACEEF) - case .tint60: - return ColorValue(0xFAF2FB) - } - case .green: - switch token { - case .primary: - return ColorValue(0x107C10) - case .shade10: - return ColorValue(0x0E700E) - case .shade20: - return ColorValue(0x0C5E0C) - case .shade30: - return ColorValue(0x094509) - case .shade40: - return ColorValue(0x052505) - case .shade50: - return ColorValue(0x031403) - case .tint10: - return ColorValue(0x218C21) - case .tint20: - return ColorValue(0x359B35) - case .tint30: - return ColorValue(0x54B054) - case .tint40: - return ColorValue(0x9FD89F) - case .tint50: - return ColorValue(0xC9EAC9) - case .tint60: - return ColorValue(0xF1FAF1) - } - case .hotPink: - switch token { - case .primary: - return ColorValue(0xE3008C) - case .shade10: - return ColorValue(0xCC007E) - case .shade20: - return ColorValue(0xAD006A) - case .shade30: - return ColorValue(0x7F004E) - case .shade40: - return ColorValue(0x44002A) - case .shade50: - return ColorValue(0x240016) - case .tint10: - return ColorValue(0xE61C99) - case .tint20: - return ColorValue(0xEA38A6) - case .tint30: - return ColorValue(0xEE5FB7) - case .tint40: - return ColorValue(0xF7ADDA) - case .tint50: - return ColorValue(0xFBD2EB) - case .tint60: - return ColorValue(0xFEF4FA) - } - case .lavender: - switch token { - case .primary: - return ColorValue(0x7160E8) - case .shade10: - return ColorValue(0x6656D1) - case .shade20: - return ColorValue(0x5649B0) - case .shade30: - return ColorValue(0x3F3682) - case .shade40: - return ColorValue(0x221D46) - case .shade50: - return ColorValue(0x120F25) - case .tint10: - return ColorValue(0x8172EB) - case .tint20: - return ColorValue(0x9184EE) - case .tint30: - return ColorValue(0xA79CF1) - case .tint40: - return ColorValue(0xD2CCF8) - case .tint50: - return ColorValue(0xE7E4FB) - case .tint60: - return ColorValue(0xF9F8FE) - } - case .lightBlue: - switch token { - case .primary: - return ColorValue(0x3A96DD) - case .shade10: - return ColorValue(0x3487C7) - case .shade20: - return ColorValue(0x2C72A8) - case .shade30: - return ColorValue(0x20547C) - case .shade40: - return ColorValue(0x112D42) - case .shade50: - return ColorValue(0x091823) - case .tint10: - return ColorValue(0x4FA1E1) - case .tint20: - return ColorValue(0x65ADE5) - case .tint30: - return ColorValue(0x83BDEB) - case .tint40: - return ColorValue(0xBFDDF5) - case .tint50: - return ColorValue(0xDCEDFA) - case .tint60: - return ColorValue(0xF6FAFE) - } - case .lightGreen: - switch token { - case .primary: - return ColorValue(0x13A10E) - case .shade10: - return ColorValue(0x11910D) - case .shade20: - return ColorValue(0x0E7A0B) - case .shade30: - return ColorValue(0x0B5A08) - case .shade40: - return ColorValue(0x063004) - case .shade50: - return ColorValue(0x031A02) - case .tint10: - return ColorValue(0x27AC22) - case .tint20: - return ColorValue(0x3DB838) - case .tint30: - return ColorValue(0x5EC75A) - case .tint40: - return ColorValue(0xA7E3A5) - case .tint50: - return ColorValue(0xCEF0CD) - case .tint60: - return ColorValue(0xF2FBF2) - } - case .lightTeal: - switch token { - case .primary: - return ColorValue(0x00B7C3) - case .shade10: - return ColorValue(0x00A5AF) - case .shade20: - return ColorValue(0x008B94) - case .shade30: - return ColorValue(0x00666D) - case .shade40: - return ColorValue(0x00373A) - case .shade50: - return ColorValue(0x001D1F) - case .tint10: - return ColorValue(0x18BFCA) - case .tint20: - return ColorValue(0x32C8D1) - case .tint30: - return ColorValue(0x58D3DB) - case .tint40: - return ColorValue(0xA6E9ED) - case .tint50: - return ColorValue(0xCEF3F5) - case .tint60: - return ColorValue(0xF2FCFD) - } - case .lilac: - switch token { - case .primary: - return ColorValue(0xB146C2) - case .shade10: - return ColorValue(0x9F3FAF) - case .shade20: - return ColorValue(0x863593) - case .shade30: - return ColorValue(0x63276D) - case .shade40: - return ColorValue(0x35153A) - case .shade50: - return ColorValue(0x1C0B1F) - case .tint10: - return ColorValue(0xBA58C9) - case .tint20: - return ColorValue(0xC36BD1) - case .tint30: - return ColorValue(0xCF87DA) - case .tint40: - return ColorValue(0xE6BFED) - case .tint50: - return ColorValue(0xF2DCF5) - case .tint60: - return ColorValue(0xFCF6FD) - } - case .lime: - switch token { - case .primary: - return ColorValue(0x73AA24) - case .shade10: - return ColorValue(0x689920) - case .shade20: - return ColorValue(0x57811B) - case .shade30: - return ColorValue(0x405F14) - case .shade40: - return ColorValue(0x23330B) - case .shade50: - return ColorValue(0x121B06) - case .tint10: - return ColorValue(0x81B437) - case .tint20: - return ColorValue(0x90BE4C) - case .tint30: - return ColorValue(0xA4CC6C) - case .tint40: - return ColorValue(0xCFE5AF) - case .tint50: - return ColorValue(0xE5F1D3) - case .tint60: - return ColorValue(0xF8FCF4) - } - case .magenta: - switch token { - case .primary: - return ColorValue(0xBF0077) - case .shade10: - return ColorValue(0xAC006B) - case .shade20: - return ColorValue(0x91005A) - case .shade30: - return ColorValue(0x6B0043) - case .shade40: - return ColorValue(0x390024) - case .shade50: - return ColorValue(0x1F0013) - case .tint10: - return ColorValue(0xC71885) - case .tint20: - return ColorValue(0xCE3293) - case .tint30: - return ColorValue(0xD957A8) - case .tint40: - return ColorValue(0xECA5D1) - case .tint50: - return ColorValue(0xF5CEE6) - case .tint60: - return ColorValue(0xFCF2F9) - } - case .marigold: - switch token { - case .primary: - return ColorValue(0xEAA300) - case .shade10: - return ColorValue(0xD39300) - case .shade20: - return ColorValue(0xB27C00) - case .shade30: - return ColorValue(0x835B00) - case .shade40: - return ColorValue(0x463100) - case .shade50: - return ColorValue(0x251A00) - case .tint10: - return ColorValue(0xEDAD1C) - case .tint20: - return ColorValue(0xEFB839) - case .tint30: - return ColorValue(0xF2C661) - case .tint40: - return ColorValue(0xF9E2AE) - case .tint50: - return ColorValue(0xFCEFD3) - case .tint60: - return ColorValue(0xFEFBF4) - } - case .mink: - switch token { - case .primary: - return ColorValue(0x5D5A58) - case .shade10: - return ColorValue(0x54514F) - case .shade20: - return ColorValue(0x474443) - case .shade30: - return ColorValue(0x343231) - case .shade40: - return ColorValue(0x1C1B1A) - case .shade50: - return ColorValue(0x0F0E0E) - case .tint10: - return ColorValue(0x706D6B) - case .tint20: - return ColorValue(0x84817E) - case .tint30: - return ColorValue(0x9E9B99) - case .tint40: - return ColorValue(0xCECCCB) - case .tint50: - return ColorValue(0xE5E4E3) - case .tint60: - return ColorValue(0xF8F8F8) - } - case .navy: - switch token { - case .primary: - return ColorValue(0x0027B4) - case .shade10: - return ColorValue(0x0023A2) - case .shade20: - return ColorValue(0x001E89) - case .shade30: - return ColorValue(0x001665) - case .shade40: - return ColorValue(0x000C36) - case .shade50: - return ColorValue(0x00061D) - case .tint10: - return ColorValue(0x173BBD) - case .tint20: - return ColorValue(0x3050C6) - case .tint30: - return ColorValue(0x546FD2) - case .tint40: - return ColorValue(0xA3B2E8) - case .tint50: - return ColorValue(0xCCD5F3) - case .tint60: - return ColorValue(0xF2F4FC) - } - case .orange: - switch token { - case .primary: - return ColorValue(0xF7630C) - case .shade10: - return ColorValue(0xDE590B) - case .shade20: - return ColorValue(0xBC4B09) - case .shade30: - return ColorValue(0x8A3707) - case .shade40: - return ColorValue(0x4A1E04) - case .shade50: - return ColorValue(0x271002) - case .tint10: - return ColorValue(0xF87528) - case .tint20: - return ColorValue(0xF98845) - case .tint30: - return ColorValue(0xFAA06B) - case .tint40: - return ColorValue(0xFDCFB4) - case .tint50: - return ColorValue(0xFEE5D7) - case .tint60: - return ColorValue(0xFFF9F5) - } - case .orchid: - switch token { - case .primary: - return ColorValue(0x8764B8) - case .shade10: - return ColorValue(0x795AA6) - case .shade20: - return ColorValue(0x674C8C) - case .shade30: - return ColorValue(0x4C3867) - case .shade40: - return ColorValue(0x281E37) - case .shade50: - return ColorValue(0x16101D) - case .tint10: - return ColorValue(0x9373C0) - case .tint20: - return ColorValue(0xA083C9) - case .tint30: - return ColorValue(0xB29AD4) - case .tint40: - return ColorValue(0xD7CAEA) - case .tint50: - return ColorValue(0xE9E2F4) - case .tint60: - return ColorValue(0xF9F8FC) - } - case .peach: - switch token { - case .primary: - return ColorValue(0xFF8C00) - case .shade10: - return ColorValue(0xE67E00) - case .shade20: - return ColorValue(0xC26A00) - case .shade30: - return ColorValue(0x8F4E00) - case .shade40: - return ColorValue(0x4D2A00) - case .shade50: - return ColorValue(0x291600) - case .tint10: - return ColorValue(0xFF9A1F) - case .tint20: - return ColorValue(0xFFA83D) - case .tint30: - return ColorValue(0xFFBA66) - case .tint40: - return ColorValue(0xFFDDB3) - case .tint50: - return ColorValue(0xFFEDD6) - case .tint60: - return ColorValue(0xFFFAF5) - } - case .pink: - switch token { - case .primary: - return ColorValue(0xE43BA6) - case .shade10: - return ColorValue(0xCD3595) - case .shade20: - return ColorValue(0xAD2D7E) - case .shade30: - return ColorValue(0x80215D) - case .shade40: - return ColorValue(0x441232) - case .shade50: - return ColorValue(0x24091B) - case .tint10: - return ColorValue(0xE750B0) - case .tint20: - return ColorValue(0xEA66BA) - case .tint30: - return ColorValue(0xEF85C8) - case .tint40: - return ColorValue(0xF7C0E3) - case .tint50: - return ColorValue(0xFBDDF0) - case .tint60: - return ColorValue(0xFEF6FB) - } - case .platinum: - switch token { - case .primary: - return ColorValue(0x69797E) - case .shade10: - return ColorValue(0x5F6D71) - case .shade20: - return ColorValue(0x505C60) - case .shade30: - return ColorValue(0x3B4447) - case .shade40: - return ColorValue(0x1F2426) - case .shade50: - return ColorValue(0x111314) - case .tint10: - return ColorValue(0x79898D) - case .tint20: - return ColorValue(0x89989D) - case .tint30: - return ColorValue(0xA0ADB2) - case .tint40: - return ColorValue(0xCDD6D8) - case .tint50: - return ColorValue(0xE4E9EA) - case .tint60: - return ColorValue(0xF8F9FA) - } - case .plum: - switch token { - case .primary: - return ColorValue(0x77004D) - case .shade10: - return ColorValue(0x6B0045) - case .shade20: - return ColorValue(0x5A003B) - case .shade30: - return ColorValue(0x43002B) - case .shade40: - return ColorValue(0x240017) - case .shade50: - return ColorValue(0x13000C) - case .tint10: - return ColorValue(0x87105D) - case .tint20: - return ColorValue(0x98246F) - case .tint30: - return ColorValue(0xAD4589) - case .tint40: - return ColorValue(0xD696C0) - case .tint50: - return ColorValue(0xE9C4DC) - case .tint60: - return ColorValue(0xFAF0F6) - } - case .pumpkin: - switch token { - case .primary: - return ColorValue(0xCA5010) - case .shade10: - return ColorValue(0xB6480E) - case .shade20: - return ColorValue(0x9A3D0C) - case .shade30: - return ColorValue(0x712D09) - case .shade40: - return ColorValue(0x3D1805) - case .shade50: - return ColorValue(0x200D03) - case .tint10: - return ColorValue(0xD06228) - case .tint20: - return ColorValue(0xD77440) - case .tint30: - return ColorValue(0xDF8E64) - case .tint40: - return ColorValue(0xEFC4AD) - case .tint50: - return ColorValue(0xF7DFD2) - case .tint60: - return ColorValue(0xFDF7F4) - } - case .purple: - switch token { - case .primary: - return ColorValue(0x5C2E91) - case .shade10: - return ColorValue(0x532982) - case .shade20: - return ColorValue(0x46236E) - case .shade30: - return ColorValue(0x341A51) - case .shade40: - return ColorValue(0x1C0E2B) - case .shade50: - return ColorValue(0x0F0717) - case .tint10: - return ColorValue(0x6B3F9E) - case .tint20: - return ColorValue(0x7C52AB) - case .tint30: - return ColorValue(0x9470BD) - case .tint40: - return ColorValue(0xC6B1DE) - case .tint50: - return ColorValue(0xE0D3ED) - case .tint60: - return ColorValue(0xF7F4FB) - } - case .red: - switch token { - case .primary: - return ColorValue(0xD13438) - case .shade10: - return ColorValue(0xBC2F32) - case .shade20: - return ColorValue(0x9F282B) - case .shade30: - return ColorValue(0x751D1F) - case .shade40: - return ColorValue(0x3F1011) - case .shade50: - return ColorValue(0x210809) - case .tint10: - return ColorValue(0xD7494C) - case .tint20: - return ColorValue(0xDC5E62) - case .tint30: - return ColorValue(0xE37D80) - case .tint40: - return ColorValue(0xF1BBBC) - case .tint50: - return ColorValue(0xF8DADB) - case .tint60: - return ColorValue(0xFDF6F6) - } - case .royalBlue: - switch token { - case .primary: - return ColorValue(0x004E8C) - case .shade10: - return ColorValue(0x00467E) - case .shade20: - return ColorValue(0x003B6A) - case .shade30: - return ColorValue(0x002C4E) - case .shade40: - return ColorValue(0x00172A) - case .shade50: - return ColorValue(0x000C16) - case .tint10: - return ColorValue(0x125E9A) - case .tint20: - return ColorValue(0x286FA8) - case .tint30: - return ColorValue(0x4A89BA) - case .tint40: - return ColorValue(0x9ABFDC) - case .tint50: - return ColorValue(0xC7DCED) - case .tint60: - return ColorValue(0xF0F6FA) - } - case .seafoam: - switch token { - case .primary: - return ColorValue(0x00CC6A) - case .shade10: - return ColorValue(0x00B85F) - case .shade20: - return ColorValue(0x009B51) - case .shade30: - return ColorValue(0x00723B) - case .shade40: - return ColorValue(0x003D20) - case .shade50: - return ColorValue(0x002111) - case .tint10: - return ColorValue(0x19D279) - case .tint20: - return ColorValue(0x34D889) - case .tint30: - return ColorValue(0x5AE0A0) - case .tint40: - return ColorValue(0xA8F0CD) - case .tint50: - return ColorValue(0xCFF7E4) - case .tint60: - return ColorValue(0xF3FDF8) - } - case .silver: - switch token { - case .primary: - return ColorValue(0x859599) - case .shade10: - return ColorValue(0x78868A) - case .shade20: - return ColorValue(0x657174) - case .shade30: - return ColorValue(0x4A5356) - case .shade40: - return ColorValue(0x282D2E) - case .shade50: - return ColorValue(0x151818) - case .tint10: - return ColorValue(0x92A1A5) - case .tint20: - return ColorValue(0xA0AEB1) - case .tint30: - return ColorValue(0xB3BFC2) - case .tint40: - return ColorValue(0xD8DFE0) - case .tint50: - return ColorValue(0xEAEEEF) - case .tint60: - return ColorValue(0xFAFBFB) - } - case .steel: - switch token { - case .primary: - return ColorValue(0x005B70) - case .shade10: - return ColorValue(0x005265) - case .shade20: - return ColorValue(0x004555) - case .shade30: - return ColorValue(0x00333F) - case .shade40: - return ColorValue(0x001B22) - case .shade50: - return ColorValue(0x000F12) - case .tint10: - return ColorValue(0x0F6C81) - case .tint20: - return ColorValue(0x237D92) - case .tint30: - return ColorValue(0x4496A9) - case .tint40: - return ColorValue(0x94C8D4) - case .tint50: - return ColorValue(0xC3E1E8) - case .tint60: - return ColorValue(0xEFF7F9) - } - case .teal: - switch token { - case .primary: - return ColorValue(0x038387) - case .shade10: - return ColorValue(0x037679) - case .shade20: - return ColorValue(0x026467) - case .shade30: - return ColorValue(0x02494C) - case .shade40: - return ColorValue(0x012728) - case .shade50: - return ColorValue(0x001516) - case .tint10: - return ColorValue(0x159195) - case .tint20: - return ColorValue(0x2AA0A4) - case .tint30: - return ColorValue(0x4CB4B7) - case .tint40: - return ColorValue(0x9BD9DB) - case .tint50: - return ColorValue(0xC7EBEC) - case .tint60: - return ColorValue(0xF0FAFA) - } - case .yellow: - switch token { - case .primary: - return ColorValue(0xFDE300) - case .shade10: - return ColorValue(0xE4CC00) - case .shade20: - return ColorValue(0xC0AD00) - case .shade30: - return ColorValue(0x817400) - case .shade40: - return ColorValue(0x4C4400) - case .shade50: - return ColorValue(0x282400) - case .tint10: - return ColorValue(0xFDE61E) - case .tint20: - return ColorValue(0xFDEA3D) - case .tint30: - return ColorValue(0xFEEE66) - case .tint40: - return ColorValue(0xFEF7B2) - case .tint50: - return ColorValue(0xFFFAD6) - case .tint60: - return ColorValue(0xFFFEF5) - } - } - } // MARK: Initialization diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift b/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift index 84b813d365..168fecf0a0 100644 --- a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift +++ b/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift @@ -59,7 +59,7 @@ class DateTimePickerView: UIControl { } private func updateGradientLayerColors(gradientLayer: CAGradientLayer) { - let backgroundColor = fluentTheme.color(.background2) + let backgroundColor: UIColor = fluentTheme.color(.background2) let transparentColor = backgroundColor.withAlphaComponent(0) gradientLayer.colors = [backgroundColor.cgColor, transparentColor.cgColor, transparentColor.cgColor, backgroundColor.cgColor] } diff --git a/ios/FluentUI/Extensions/Color+DynamicColor.swift b/ios/FluentUI/Extensions/Color+DynamicColor.swift new file mode 100644 index 0000000000..a30c8afd1d --- /dev/null +++ b/ios/FluentUI/Extensions/Color+DynamicColor.swift @@ -0,0 +1,94 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +extension Color { + /// Creates a `Color` instance with the specified three-channel, 8-bit-per-channel color value, usually in hex. + /// + /// For example: `0xFF0000` represents red, `0x00FF00` green, and `0x0000FF` blue. There is no way to specify an + /// alpha channel via this initializer. For that, use the `.opacity(:)` modifier on the resulting `Color` instance. + /// + /// - Parameter hexValue: The color value to store, in 24-bit (three-channel, 8-bit) RGB. + /// + /// - Returns: A color object that stores the provided color information. + init(hexValue: UInt32) { + let red: CGFloat = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0 + let green: CGFloat = CGFloat((hexValue & 0x0000FF00) >> 8) / 255.0 + let blue: CGFloat = CGFloat(hexValue & 0x000000FF) / 255.0 + self.init(red: red, + green: green, + blue: blue) + } + + /// Creates a custom `Color` that stores a dynamic set of `Color` values. + /// + /// - Parameter light: The default `Color` for a light context. Required. + /// - Parameter dark: The override `Color` for a dark context. Optional. + /// - Parameter darkElevated: The override `Color` for a dark elevated context. Optional. + init(light: Color, + dark: Color? = nil, + darkElevated: Color? = nil) { + + let dynamicColor = DynamicColor(light: light, dark: dark, darkElevated: darkElevated) + if #available(iOS 17, *) { + self.init(dynamicColor) + } else { + self.init(uiColor: UIColor(dynamicColor: dynamicColor)) + } + } + + init(dynamicColor: DynamicColor) { + if #available(iOS 17, *) { + self.init(dynamicColor) + } else { + self.init(uiColor: UIColor(dynamicColor: dynamicColor)) + } + } +} + +/// A container that stores a dynamic set of `Color` values. +struct DynamicColor: Hashable { + + /// Creates a custom `ShapeStyle` that stores a dynamic set of `Color` values. + /// + /// - Parameter light: The default `Color` for a light context. Required. + /// - Parameter dark: The override `Color` for a dark context. Optional. + /// - Parameter darkElevated: The override `Color` for a dark elevated context. Optional. + init(light: Color, + dark: Color? = nil, + darkElevated: Color? = nil) { + self.light = light + self.dark = dark + self.darkElevated = darkElevated + } + + init(uiColor: UIColor) { + self.init(light: Color(uiColor.light), + dark: Color(uiColor.dark), + darkElevated: Color(uiColor.darkElevated)) + } + + let light: Color + let dark: Color? + let darkElevated: Color? +} + +@available(iOS 17, *) +extension DynamicColor: ShapeStyle { + /// Evaluate to a resolved `Color` (in the form of a `ShapeStyle`) given the current `environment`. + func resolve(in environment: EnvironmentValues) -> Color.Resolved { + if environment.colorScheme == .dark { + if environment.isPresented, let darkElevated = darkElevated { + return darkElevated.resolve(in: environment) + } else if let dark = dark { + return dark.resolve(in: environment) + } + } + + // default + return light.resolve(in: environment) + } +} diff --git a/ios/FluentUI/Extensions/UIColor+Extensions.swift b/ios/FluentUI/Extensions/UIColor+Extensions.swift index 98b1ae0af4..bb72d77cae 100644 --- a/ios/FluentUI/Extensions/UIColor+Extensions.swift +++ b/ios/FluentUI/Extensions/UIColor+Extensions.swift @@ -80,47 +80,6 @@ extension UIColor { darkElevatedHighContrast: nil) } - /// `DynamicColor` representation of the `UIColor` object. - /// Requires the `UIColor` to be able to resolve its color values for at least the `.light` user interface style. - @available(*, deprecated, message: "Please use UIColor directly.") - public var dynamicColor: DynamicColor? { - // Only the light color value is mandatory when making a DynamicColor. - if let lightColorValue = resolvedColorValue(userInterfaceStyle: .light).colorValue { - let colors = DynamicColor( - light: lightColorValue, - lightHighContrast: resolvedColorValue(userInterfaceStyle: .light, - accessibilityContrast: .high).colorValue, - lightElevated: resolvedColorValue(userInterfaceStyle: .light, - userInterfaceLevel: .elevated).colorValue, - lightElevatedHighContrast: resolvedColorValue(userInterfaceStyle: .light, - accessibilityContrast: .high, - userInterfaceLevel: .elevated).colorValue, - dark: resolvedColorValue(userInterfaceStyle: .dark).colorValue, - darkHighContrast: resolvedColorValue(userInterfaceStyle: .dark, - accessibilityContrast: .high).colorValue, - darkElevated: resolvedColorValue(userInterfaceStyle: .dark, - userInterfaceLevel: .elevated).colorValue, - darkElevatedHighContrast: resolvedColorValue(userInterfaceStyle: .dark, - accessibilityContrast: .high, - userInterfaceLevel: .elevated).colorValue) - return colors - } else { - return nil - } - } - - /// Creates a UIColor from a `ColorValue` instance. - /// - /// - Parameter colorValue: Color value to use to initialize this color. - @available(*, deprecated, renamed: "init(hexValue:)") - @objc public convenience init(colorValue: ColorValue) { - self.init( - red: colorValue.r, - green: colorValue.g, - blue: colorValue.b, - alpha: colorValue.a) - } - /// Creates a `UIColor` instance with the specified three-channel, 8-bit-per-channel color value, usually in hex. /// /// For example: `0xFF0000` represents red, `0x00FF00` green, and `0x0000FF` blue. There is no way to specify an @@ -139,20 +98,6 @@ extension UIColor { alpha: 1.0) } - /// Creates a dynamic color object that returns the appropriate color value based on the current - /// rendering context. - /// - /// - Parameter dynamicColor: The set of color values that may be applied based on the current context. - @available(*, deprecated, message: "Please use UIColor directly.") - @objc public convenience init(dynamicColor: DynamicColor) { - self.init { traits -> UIColor in - let colorValue = dynamicColor.value(colorScheme: (traits.userInterfaceStyle == .dark ? .dark : .light), - contrast: traits.accessibilityContrast == .high ? .increased : .standard, - isElevated: traits.userInterfaceLevel == .elevated) - return UIColor(colorValue: colorValue) - } - } - @objc public var light: UIColor { return resolvedColorValue(userInterfaceStyle: .light) } @@ -193,18 +138,11 @@ extension UIColor { userInterfaceLevel: .elevated) } - @available(*, deprecated, message: "Please use UIColor directly.") - private var colorValue: ColorValue? { - var redValue: CGFloat = 1.0 - var greenValue: CGFloat = 1.0 - var blueValue: CGFloat = 1.0 - var alphaValue: CGFloat = 1.0 - if self.getRed(&redValue, green: &greenValue, blue: &blueValue, alpha: &alphaValue) { - let colorValue = ColorValue(r: redValue, g: greenValue, b: blueValue, a: alphaValue) - return colorValue - } else { - return nil - } + convenience init(dynamicColor: DynamicColor) { + let colorResolver = { $0 != nil ? UIColor($0!) : nil } + self.init(light: UIColor(dynamicColor.light), + dark: colorResolver(dynamicColor.dark), + darkElevated: colorResolver(dynamicColor.darkElevated)) } /// Returns the version of the current color that results from the specified traits as a `ColorValue`. diff --git a/ios/FluentUI/Label/Label.swift b/ios/FluentUI/Label/Label.swift index 7c6bacc313..1d8f3f5153 100644 --- a/ios/FluentUI/Label/Label.swift +++ b/ios/FluentUI/Label/Label.swift @@ -23,16 +23,6 @@ open class Label: UILabel, TokenizedControlInternal { } } - @available(*, deprecated, renamed: "textStyle") - @objc open var style: AliasTokens.TypographyTokens { - get { - return AliasTokens.TypographyTokens(rawValue: textStyle.rawValue)! - } - set { - self.textStyle = FluentTheme.TypographyToken(rawValue: newValue.rawValue)! - } - } - @objc open var textStyle: FluentTheme.TypographyToken = .body1 { didSet { updateFont() @@ -96,14 +86,6 @@ open class Label: UILabel, TokenizedControlInternal { self.init(textStyle: .body1, colorStyle: .regular) } - @available(*, deprecated, renamed: "init(textStyle:colorStyle:)") - @objc public init(style: AliasTokens.TypographyTokens = .body1, colorStyle: TextColorStyle = .regular) { - super.init(frame: .zero) - self.style = style - self.colorStyle = colorStyle - initialize() - } - @objc public init(textStyle: FluentTheme.TypographyToken = .body1, colorStyle: TextColorStyle = .regular) { super.init(frame: .zero) self.textStyle = textStyle diff --git a/ios/FluentUI/Presenters/PageCardPresenterController.swift b/ios/FluentUI/Presenters/PageCardPresenterController.swift index 55578fe24d..8d5a804c63 100644 --- a/ios/FluentUI/Presenters/PageCardPresenterController.swift +++ b/ios/FluentUI/Presenters/PageCardPresenterController.swift @@ -83,7 +83,7 @@ open class PageCardPresenterController: UIViewController { } private func updatePageControlColors() { - let color = GlobalTokens.neutralColor(.white) + let color: UIColor = GlobalTokens.neutralColor(.white) pageControl.pageIndicatorTintColor = color.withAlphaComponent(0.5) pageControl.currentPageIndicatorTintColor = color diff --git a/ios/xcode/FluentUITests.xcconfig b/ios/xcode/FluentUITests.xcconfig index 32c8108368..f2851e0c21 100644 --- a/ios/xcode/FluentUITests.xcconfig +++ b/ios/xcode/FluentUITests.xcconfig @@ -8,6 +8,7 @@ CODE_SIGN_STYLE = Automatic DEVELOPMENT_TEAM = UBF8T346G9 INFOPLIST_FILE = FluentUI.Tests/Info.plist LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks +OTHER_LDFLAGS = -ObjC PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.FluentUITests PRODUCT_NAME = $(TARGET_NAME) SUPPORTED_PLATFORMS = iphoneos iphonesimulator xros xrsimulator From 8e57eeb35c33a0a225dfc445a217a1dcc8df481d Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Mon, 6 May 2024 14:48:40 -0700 Subject: [PATCH 19/90] Convert DemoAppearanceView to a SwiftUI Menu (#2016) * Convert DemoAppearanceView to a SwiftUI Menu * DemoAppearanceView -> DemoAppearanceMenu --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 16 +- ....swift => DemoAppearanceControlView.swift} | 73 +++------ .../FluentUI.Demo/DemoAppearanceMenu.swift | 126 +++++++++++++++ .../FluentUI.Demo/DemoAppearanceView.swift | 143 ------------------ .../FluentUI.Demo/DemoController.swift | 28 +--- .../FluentUI.Demo/DemoHostingController.swift | 26 +--- .../DemoTableViewController.swift | 21 +-- .../Demos/CardNudgeDemoController.swift | 2 +- .../Demos/ObjectiveCDemoController.m | 25 +-- .../Demos/SideTabBarDemoController.swift | 32 ++-- ios/FluentUI/Core/ControlHostingView.swift | 2 +- 11 files changed, 200 insertions(+), 294 deletions(-) rename ios/FluentUI.Demo/FluentUI.Demo/{DemoAppearanceController.swift => DemoAppearanceControlView.swift} (64%) create mode 100644 ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift delete mode 100644 ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceView.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index ab1c4106f5..4d9f755b11 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -92,11 +92,11 @@ 9245E1F927BECDBB007616F3 /* GlobalColorTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */; }; 92561E732718AD090072ED00 /* DemoTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92561E722718AD090072ED00 /* DemoTableViewController.swift */; }; 928C00B12B8920E60023ECE7 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 928C00B02B8920E60023ECE7 /* View+Extensions.swift */; }; - 92B45E4E279A1A0B00E72517 /* DemoAppearanceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceController.swift */; }; + 92B45E4E279A1A0B00E72517 /* DemoAppearanceControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */; }; 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */; }; 92D5598426A1523400328FD3 /* CardNudgeDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */; }; 92D5FDFD28AC57650087894B /* TypographyTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */; }; - 92DD1E8D279F496300FDEE0F /* DemoAppearanceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */; }; + 92DD1E8D279F496300FDEE0F /* DemoAppearanceMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD1E8C279F496300FDEE0F /* DemoAppearanceMenu.swift */; }; 92E977B726C7144F008E10A8 /* UIResponder+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92E977B526C713F3008E10A8 /* UIResponder+Extensions.swift */; }; 92E977B826C7144F008E10A8 /* DemoControllerScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92E977B426C713F3008E10A8 /* DemoControllerScrollView.swift */; }; 92EFD3E42BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92EFD3E32BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift */; }; @@ -231,11 +231,11 @@ 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalColorTokensDemoController.swift; sourceTree = ""; }; 92561E722718AD090072ED00 /* DemoTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoTableViewController.swift; sourceTree = ""; }; 928C00B02B8920E60023ECE7 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = ""; }; - 92B45E4D279A1A0B00E72517 /* DemoAppearanceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceController.swift; sourceTree = ""; }; + 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceControlView.swift; sourceTree = ""; }; 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasColorTokensDemoController_SwiftUI.swift; sourceTree = ""; }; 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudgeDemoController.swift; sourceTree = ""; }; 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyTokensDemoController.swift; sourceTree = ""; }; - 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceView.swift; sourceTree = ""; }; + 92DD1E8C279F496300FDEE0F /* DemoAppearanceMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceMenu.swift; sourceTree = ""; }; 92E4784B2661AED800BAA058 /* PersonaButtonCarouselDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselDemoController.swift; sourceTree = ""; }; 92E977B426C713F3008E10A8 /* DemoControllerScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoControllerScrollView.swift; sourceTree = ""; }; 92E977B526C713F3008E10A8 /* UIResponder+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIResponder+Extensions.swift"; sourceTree = ""; }; @@ -459,8 +459,8 @@ A591A3F520F42A9E001ED23B /* Shell */ = { isa = PBXGroup; children = ( - 92B45E4D279A1A0B00E72517 /* DemoAppearanceController.swift */, - 92DD1E8C279F496300FDEE0F /* DemoAppearanceView.swift */, + 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */, + 92DD1E8C279F496300FDEE0F /* DemoAppearanceMenu.swift */, E6842995247C350700A29C40 /* DemoColorThemes.swift */, A5DCA75F211E3B4C005F4CB7 /* DemoController.swift */, 9211BC602BD97B7900B95200 /* DemoHostingController.swift */, @@ -850,7 +850,7 @@ A5DCA75E211E3A92005F4CB7 /* DrawerDemoController.swift in Sources */, 92EFD3E42BDA28F100DB35F2 /* TooltipDemoController_SwiftUI.swift in Sources */, B4414792228F6F740040E88E /* TableViewCellSampleData.swift in Sources */, - 92B45E4E279A1A0B00E72517 /* DemoAppearanceController.swift in Sources */, + 92B45E4E279A1A0B00E72517 /* DemoAppearanceControlView.swift in Sources */, E6842974247B672000A29C40 /* SceneDelegate.swift in Sources */, EC24DBC628B97EB70026EF92 /* PopupMenuObjCDemoController.m in Sources */, 53097D3C27028AD000A6E4DC /* HUDDemoController.swift in Sources */, @@ -873,7 +873,7 @@ B498141621E42C140077B48D /* TableViewCellDemoController.swift in Sources */, ECA9D48A2979F5370048ADEC /* TextFieldDemoController.swift in Sources */, FDCF7C8321BF35680058E9E6 /* SegmentedControlDemoController.swift in Sources */, - 92DD1E8D279F496300FDEE0F /* DemoAppearanceView.swift in Sources */, + 92DD1E8D279F496300FDEE0F /* DemoAppearanceMenu.swift in Sources */, 53097D4027028AE500A6E4DC /* PersonaButtonCarouselDemoController.swift in Sources */, C0938E4A235F733100256251 /* ShimmerLinesViewDemoController.swift in Sources */, EC1C31752923032000CF052C /* ColoredPillBackgroundView.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceControlView.swift similarity index 64% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceController.swift rename to ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceControlView.swift index 7eb46b4aa6..b226a0e44f 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceControlView.swift @@ -7,7 +7,7 @@ import FluentUI import SwiftUI import UIKit -/// Callbacks for changes to a `DemoAppearanceView` via the `DemoAppearanceController`. This delegate should +/// Callbacks for changes to a `DemoAppearanceMenu` via the `DemoAppearanceControlView`. This delegate should /// ensure that the appropriate token overrides are set when these callbacks are received. @objc(MSFDemoAppearanceDelegate) protocol DemoAppearanceDelegate: NSObjectProtocol { @@ -34,38 +34,20 @@ protocol DemoAppearanceDelegate: NSObjectProtocol { @objc func isThemeWideOverrideApplied() -> Bool } -@objc(MSFDemoAppearanceControllerWrapper) -class DemoAppearanceControllerWrapper: NSObject { - /// Convenience wrapper to allow creation of a `DemoAppearanceController` from Objective-C. - /// - /// The class itself cannot be represented via `@objc` because it inherits from `UIHostingController`, which is a Swift-only class. - /// This workaround allows us to create one anyway, though it will be type-erased to `UIViewController` in the process. - /// - /// - Parameter delegate: An optional `DemoAppearanceDelegate` for the created `DemoAppearanceController`. - /// - /// - Returns: A new `DemoAppearanceController`, type-erased to `UIViewController`. - @available(swift, obsoleted: 1.0, message: "This method exists for Objective-C backwards compatibility and should not be invoked from Swift. Please create a `DemoAppearanceController` instance directly.") - @objc static func createDemoAppearanceController(delegate: DemoAppearanceDelegate?) -> UIViewController { - return DemoAppearanceController(delegate: delegate) - } -} - -/// Wrapper class to allow presenting of `DemoAppearanceView` from a UIKit host. -class DemoAppearanceController: UIHostingController, ObservableObject { +/// Wrapper class to allow presenting of `DemoAppearanceMenu` from a UIKit host. +@objc(MSFDemoAppearanceControlView) +class DemoAppearanceControlView: FluentUI.ControlHostingView, ObservableObject { + @objc(initWithDelegate:) init(delegate: DemoAppearanceDelegate?) { - let configuration = DemoAppearanceView.Configuration(delegate: delegate) + let configuration = DemoAppearanceMenu.Configuration(delegate: delegate) self.configuration = configuration - super.init(rootView: DemoAppearanceView(configuration: configuration)) + super.init(AnyView(DemoAppearanceMenu(configuration: configuration))) configuration.onWindowThemeChanged = self.onWindowThemeChanged(_:) configuration.onAppWideThemeChanged = self.onAppWideThemeChanged(_:) configuration.onUserInterfaceStyleChanged = self.onUserInterfaceStyleChanged(_:) - self.modalPresentationStyle = .popover - self.preferredContentSize.height = 400 - self.popoverPresentationController?.permittedArrowDirections = .up - // Different themes can have different overrides, so update our state when we detect a theme change. self.themeObserver = NotificationCenter.default.addObserver(forName: .didChangeTheme, object: nil, queue: nil) { [weak self] _ in DispatchQueue.main.async { @@ -78,23 +60,20 @@ class DemoAppearanceController: UIHostingController, Observa preconditionFailure("init(coder:) has not been implemented") } - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - updateToggleConfiguration() - configuration.isConfigured = true + @MainActor required dynamic init(rootView: AnyView) { + preconditionFailure("init(rootView:) has not been implemented") } - override func willMove(toParent parent: UIViewController?) { - guard let parent, - let window = parent.view.window else { - return - } - - rootView.fluentTheme = window.fluentTheme + override func didMoveToWindow() { + super.didMoveToWindow() + updateToggleConfiguration() } private func updateToggleConfiguration() { - configuration.userInterfaceStyle = view.window?.overrideUserInterfaceStyle ?? .unspecified + guard let window else { + return + } + configuration.userInterfaceStyle = window.overrideUserInterfaceStyle configuration.windowTheme = currentDemoListViewController?.theme ?? .default configuration.appWideTheme = DemoColorTheme.currentAppWideTheme if let isThemeOverrideEnabled = configuration.themeOverridePreviouslyApplied { @@ -106,12 +85,10 @@ class DemoAppearanceController: UIHostingController, Observa /// Callback for handling per-window theme changes. private func onWindowThemeChanged(_ theme: DemoColorTheme) { guard let currentDemoListViewController = currentDemoListViewController, - let window = view.window else { - return - } + let window else { + return + } currentDemoListViewController.updateColorProviderFor(window: window, theme: theme) - - rootView.fluentTheme = window.fluentTheme } /// Callback for handling app-wide theme changes @@ -121,23 +98,23 @@ class DemoAppearanceController: UIHostingController, Observa /// Callback for handling color scheme changes. private func onUserInterfaceStyleChanged(_ userInterfaceStyle: UIUserInterfaceStyle) { - view.window?.overrideUserInterfaceStyle = userInterfaceStyle + window?.overrideUserInterfaceStyle = userInterfaceStyle } private var currentDemoListViewController: DemoListViewController? { - guard let navigationController = view.window?.rootViewController as? UINavigationController, + guard let navigationController = window?.rootViewController as? UINavigationController, let currentDemoListViewController = navigationController.viewControllers.first as? DemoListViewController else { return nil } return currentDemoListViewController } - private var configuration: DemoAppearanceView.Configuration + private var configuration: DemoAppearanceMenu.Configuration private var themeObserver: NSObjectProtocol? } -extension DemoAppearanceView.Configuration { - /// Allows `DemoAppearanceView.Configuration` to be initialized with an optional instance of `DemoAppearanceDelegate`. +extension DemoAppearanceMenu.Configuration { + /// Allows `DemoAppearanceMenu.Configuration` to be initialized with an optional instance of `DemoAppearanceDelegate`. convenience init(delegate: DemoAppearanceDelegate?) { self.init() @@ -150,7 +127,7 @@ extension DemoAppearanceView.Configuration { self.onThemeWideOverrideChanged = { [weak delegate] isOverrideEnabled in delegate?.themeWideOverrideDidChange(isOverrideEnabled: isOverrideEnabled) } - self.onPerControlOverrideChanged = { [weak delegate]isOverrideEnabled in + self.onPerControlOverrideChanged = { [weak delegate] isOverrideEnabled in delegate?.perControlOverrideDidChange(isOverrideEnabled: isOverrideEnabled) } self.themeOverridePreviouslyApplied = { [weak delegate] in diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift new file mode 100644 index 0000000000..e1244b763b --- /dev/null +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift @@ -0,0 +1,126 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import FluentUI +import SwiftUI + +/// This class displays the contents of the DemoAppearance `Menu`. All actions are callback-based, allowing a +/// wrapping component, `DemoAppearanceControlView`, to manage interop with our UIKit environment. +struct DemoAppearanceMenu: View { + + @Environment(\.colorScheme) var systemColorScheme: ColorScheme + @ObservedObject var configuration: Configuration + @State var showingThemeWideAlert: Bool = false + + /// Picker for setting the app's color scheme. + @ViewBuilder + var appColorSchemePicker: some View { + Picker("Color Scheme", systemImage: "cloud.rainbow.half", selection: $configuration.userInterfaceStyle) { + Label("System", systemImage: "circle.lefthalf.filled").tag(UIUserInterfaceStyle.unspecified) + Label("Light", systemImage: "sun.max").tag(UIUserInterfaceStyle.light) + Label("Dark", systemImage: "moon.stars").tag(UIUserInterfaceStyle.dark) + } + .pickerStyle(.menu) + } + + /// Picker for setting the current Fluent theme. + @ViewBuilder + func themePicker(_ titleKey: String, systemImage: String, selection: Binding) -> some View { + Picker(titleKey, systemImage: systemImage, selection: selection) { + Text("\(DemoColorTheme.default.name)").tag(DemoColorTheme.default) + Text("\(DemoColorTheme.green.name)").tag(DemoColorTheme.green) + Text("\(DemoColorTheme.purple.name)").tag(DemoColorTheme.purple) + } + .pickerStyle(.menu) + } + + /// Collects the various pickers and toggles together. + @ViewBuilder + var contents: some View { + Section { + appColorSchemePicker + themePicker("Window Theme", systemImage: "macwindow", selection: $configuration.windowTheme) + themePicker("App-Wide Theme", systemImage: "app.gift", selection: $configuration.appWideTheme) + } + + if showThemeWideOverrideToggle || showPerControlOverrideToggle { + Section("Control Tokens") { + // Theme-wide override toggle + if showThemeWideOverrideToggle { + Toggle("Theme-wide override", systemImage: "swatchpalette", isOn: $configuration.themeWideOverride) + } + + // Per-control override toggle + if showPerControlOverrideToggle { + Toggle("Per-control override", systemImage: "switch.2", isOn: $configuration.perControlOverride) + } + } + } + } + + var body: some View { + Menu(content: { + contents + }, label: { + Image(systemName: "gearshape") + }) + + // Changes + .onChange_iOS17(of: configuration.userInterfaceStyle) { newValue in + configuration.onUserInterfaceStyleChanged?(newValue) + } + .onChange_iOS17(of: configuration.windowTheme) { newValue in + configuration.onWindowThemeChanged?(newValue) + } + .onChange_iOS17(of: configuration.appWideTheme) { newValue in + configuration.onAppWideThemeChanged?(newValue) + } + .onChange_iOS17(of: configuration.themeWideOverride) { newValue in + configuration.onThemeWideOverrideChanged?(newValue) + + // TODO: Still working through some issues with the theme-wide override tokens, so inform the user how to make it visible for now. + showingThemeWideAlert = true + } + .onChange_iOS17(of: configuration.perControlOverride) { newValue in + configuration.onPerControlOverrideChanged?(newValue) + } + + // TODO: Still working through some issues with the theme-wide override tokens, so inform the user how to make it visible for now. + .alert(isPresented: $showingThemeWideAlert) { + Alert(title: Text("Theme-wide override"), + message: Text("Changes to \"Theme-wide override\" tokens will only take effect when the control redraws for some othe reason.\n\nTry backing out of this view and re-entering it.")) + } + } + + /// Container class for data and control-specific callbacks. + class Configuration: ObservableObject { + // Data + @Published var userInterfaceStyle: UIUserInterfaceStyle = .unspecified + @Published var windowTheme: DemoColorTheme = .default + @Published var appWideTheme: DemoColorTheme = .default + @Published var themeWideOverride: Bool = false + @Published var perControlOverride: Bool = false + + // Global callbacks + var onAppWideThemeChanged: ((_ theme: DemoColorTheme) -> Void)? + + // Window-specific callbacks + var onUserInterfaceStyleChanged: ((_ userInterfaceStyle: UIUserInterfaceStyle) -> Void)? + var onWindowThemeChanged: ((_ theme: DemoColorTheme) -> Void)? + + // Control-specific callbacks + var onThemeWideOverrideChanged: ((_ themeWideOverrideEnabled: Bool) -> Void)? + var onPerControlOverrideChanged: ((_ perControlOverrideEnabled: Bool) -> Void)? + var themeOverridePreviouslyApplied: (() -> Bool)? + } + + private var showThemeWideOverrideToggle: Bool { + return configuration.onThemeWideOverrideChanged != nil && configuration.themeOverridePreviouslyApplied != nil + } + + private var showPerControlOverrideToggle: Bool { + return configuration.onPerControlOverrideChanged != nil + } +} diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceView.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceView.swift deleted file mode 100644 index 5b6fb0efad..0000000000 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceView.swift +++ /dev/null @@ -1,143 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -import FluentUI -import SwiftUI - -/// This class displays the contents of the DemoAppearance popover. All actions are callback-based, allowing a -/// wrapping component, DemoAppearanceController, to manage interop with our UIKit environment. -struct DemoAppearanceView: View { - - @Environment(\.colorScheme) var systemColorScheme: ColorScheme - @ObservedObject var configuration: Configuration - @State var showingThemeWideAlert: Bool = false - @ObservedObject var fluentTheme: FluentTheme = .shared - - /// Picker for setting the app's color scheme. - @ViewBuilder - var appColorSchemePicker: some View { - Text("App Color Scheme") - .font(.headline) - Picker("Color Scheme", selection: $configuration.userInterfaceStyle) { - Text("System").tag(UIUserInterfaceStyle.unspecified) - Text("Light").tag(UIUserInterfaceStyle.light) - Text("Dark").tag(UIUserInterfaceStyle.dark) - } - .pickerStyle(.segmented) - } - - /// Picker for setting the current Fluent theme. - @ViewBuilder - func themePicker(_ titleKey: String, selection: Binding) -> some View { - Text(titleKey) - .font(.headline) - Picker(titleKey, selection: selection) { - Text("\(DemoColorTheme.default.name)").tag(DemoColorTheme.default) - Text("\(DemoColorTheme.green.name)").tag(DemoColorTheme.green) - Text("\(DemoColorTheme.purple.name)").tag(DemoColorTheme.purple) - } - .pickerStyle(.segmented) - } - - /// Collects the various pickers and toggles together. - @ViewBuilder - var contents: some View { - VStack { - appColorSchemePicker - themePicker("Window Theme", selection: $configuration.windowTheme) - themePicker("App-Wide Theme", selection: $configuration.appWideTheme) - Divider() - .padding() - - if showThemeWideOverrideToggle || showPerControlOverrideToggle { - Text("Control") - .font(.headline) - } - - // Theme-wide override toggle - if showThemeWideOverrideToggle { - FluentUIDemoToggle(titleKey: "Theme-wide override", isOn: $configuration.themeWideOverride) - } - - // Per-control override toggle - if showPerControlOverrideToggle { - FluentUIDemoToggle(titleKey: "Per-control override", isOn: $configuration.perControlOverride) - } - - Spacer() - } - .fluentTheme(fluentTheme) - } - - var body: some View { - // Can't use `guard` in SwiftUI body, sadly - if configuration.isConfigured == false { - FluentUI.ActivityIndicator(size: .xLarge) - .isAnimating(true) - } else { - contents - .padding() - - // Changes - .onChange_iOS17(of: configuration.userInterfaceStyle) { newValue in - configuration.onUserInterfaceStyleChanged?(newValue) - } - .onChange_iOS17(of: configuration.windowTheme) { newValue in - configuration.onWindowThemeChanged?(newValue) - } - .onChange_iOS17(of: configuration.appWideTheme) { newValue in - configuration.onAppWideThemeChanged?(newValue) - } - .onChange_iOS17(of: configuration.themeWideOverride) { newValue in - configuration.onThemeWideOverrideChanged?(newValue) - - // TODO: Still working through some issues with the theme-wide override tokens, so inform the user how to make it visible for now. - showingThemeWideAlert = true - } - .onChange_iOS17(of: configuration.perControlOverride) { newValue in - configuration.onPerControlOverrideChanged?(newValue) - } - - // TODO: Still working through some issues with the theme-wide override tokens, so inform the user how to make it visible for now. - .alert(isPresented: $showingThemeWideAlert) { - Alert(title: Text("Theme-wide override"), - message: Text("Changes to \"Theme-wide override\" tokens will only take effect when the control redraws for some othe reason.\n\nTry backing out of this view and re-entering it.")) - } - } - } - - /// Container class for data and control-specific callbacks. - class Configuration: ObservableObject { - // Data - @Published var userInterfaceStyle: UIUserInterfaceStyle = .unspecified - @Published var windowTheme: DemoColorTheme = .default - @Published var appWideTheme: DemoColorTheme = .default - @Published var themeWideOverride: Bool = false - @Published var perControlOverride: Bool = false - - // Environment - @Published var isConfigured: Bool = false - - // Global callbacks - var onAppWideThemeChanged: ((_ theme: DemoColorTheme) -> Void)? - - // Window-specific callbacks - var onUserInterfaceStyleChanged: ((_ userInterfaceStyle: UIUserInterfaceStyle) -> Void)? - var onWindowThemeChanged: ((_ theme: DemoColorTheme) -> Void)? - - // Control-specific callbacks - var onThemeWideOverrideChanged: ((_ themeWideOverrideEnabled: Bool) -> Void)? - var onPerControlOverrideChanged: ((_ perControlOverrideEnabled: Bool) -> Void)? - var themeOverridePreviouslyApplied: (() -> Bool)? - } - - private var showThemeWideOverrideToggle: Bool { - return configuration.onThemeWideOverrideChanged != nil && configuration.themeOverridePreviouslyApplied != nil - } - - private var showPerControlOverrideToggle: Bool { - return configuration.onPerControlOverrideChanged != nil - } -} diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift index 93062846bc..7afe9bbafc 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift @@ -153,16 +153,13 @@ class DemoController: UIViewController { // disable it for all DemoController subclasses. self.navigationItem.largeTitleDisplayMode = .never - configureAppearanceAndReadmePopovers() + configureBarButtonItems() } // MARK: - Demo Appearance Popover - func configureAppearanceAndReadmePopovers() { - let settingsButton = UIBarButtonItem(image: UIImage(named: "ic_fluent_settings_24_regular"), - style: .plain, - target: self, - action: #selector(showAppearancePopover(_:))) + func configureBarButtonItems() { + let settingsButton = UIBarButtonItem(customView: appearanceControlView) let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), style: .plain, target: self, @@ -176,25 +173,10 @@ class DemoController: UIViewController { self.present(readmeViewController, animated: true, completion: nil) } - @objc func showAppearancePopover(_ sender: AnyObject, presenter: UIViewController) { - if let barButtonItem = sender as? UIBarButtonItem { - appearanceController.popoverPresentationController?.barButtonItem = barButtonItem - } else if let sourceView = sender as? UIView { - appearanceController.popoverPresentationController?.sourceView = sourceView - appearanceController.popoverPresentationController?.sourceRect = sourceView.bounds - } - appearanceController.popoverPresentationController?.delegate = self - presenter.present(appearanceController, animated: true, completion: nil) - } - - @objc func showAppearancePopover(_ sender: AnyObject) { - showAppearancePopover(sender, presenter: self) - } - var readmeString: String? - private lazy var appearanceController: DemoAppearanceController = .init(delegate: self as? DemoAppearanceDelegate) - private lazy var readmeViewController: ReadmeViewController = .init(readmeString: readmeString) + lazy var appearanceControlView: DemoAppearanceControlView = .init(delegate: self as? DemoAppearanceDelegate) + lazy var readmeViewController: ReadmeViewController = .init(readmeString: readmeString) } extension DemoController: UIPopoverPresentationControllerDelegate { diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift index 91a16c4dff..bdb8d47274 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift @@ -23,16 +23,13 @@ class DemoHostingController: FluentThemedHostingController { override func viewDidLoad() { super.viewDidLoad() - configureAppearanceAndReadmePopovers() + configureBarButtonItems() } // MARK: - Demo Appearance Popover - func configureAppearanceAndReadmePopovers() { - let settingsButton = UIBarButtonItem(image: UIImage(named: "ic_fluent_settings_24_regular"), - style: .plain, - target: self, - action: #selector(showAppearancePopover(_:))) + func configureBarButtonItems() { + let settingsButton = UIBarButtonItem(customView: appearanceControlView) let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), style: .plain, target: self, @@ -46,24 +43,9 @@ class DemoHostingController: FluentThemedHostingController { self.present(readmeViewController, animated: true, completion: nil) } - @objc func showAppearancePopover(_ sender: AnyObject, presenter: UIViewController) { - if let barButtonItem = sender as? UIBarButtonItem { - appearanceController.popoverPresentationController?.barButtonItem = barButtonItem - } else if let sourceView = sender as? UIView { - appearanceController.popoverPresentationController?.sourceView = sourceView - appearanceController.popoverPresentationController?.sourceRect = sourceView.bounds - } - appearanceController.popoverPresentationController?.delegate = self - presenter.present(appearanceController, animated: true, completion: nil) - } - - @objc func showAppearancePopover(_ sender: AnyObject) { - showAppearancePopover(sender, presenter: self) - } - private var readmeText: String? - private lazy var appearanceController: DemoAppearanceController = .init(delegate: self as? DemoAppearanceDelegate) + private lazy var appearanceControlView: DemoAppearanceControlView = .init(delegate: self as? DemoAppearanceDelegate) private lazy var readmeViewController: ReadmeViewController = .init(readmeString: readmeText) } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift index 40adc96bd5..bd74318094 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift @@ -25,7 +25,7 @@ class DemoTableViewController: UITableViewController { tableView.backgroundColor = TableViewCell.tableBackgroundGroupedColor tableView.separatorStyle = .none - configureAppearancePopover() + configureBarButtonItems() } func showMessage(_ message: String, autoDismiss: Bool = true, completion: (() -> Void)? = nil) { @@ -46,14 +46,11 @@ class DemoTableViewController: UITableViewController { } } - // MARK: - Demo Appearance Popover + // MARK: - Demo Appearance - func configureAppearancePopover() { - // Display the DemoAppearancePopover button - let settingsButton = UIBarButtonItem(image: UIImage(named: "ic_fluent_settings_24_regular"), - style: .plain, - target: self, - action: #selector(showAppearancePopover)) + func configureBarButtonItems() { + // Display the DemoAppearance and Readme buttons + let settingsButton = UIBarButtonItem(customView: appearanceControlView) let readmeButton = UIBarButtonItem(image: UIImage(systemName: "info.circle.fill"), style: .plain, target: self, @@ -61,12 +58,6 @@ class DemoTableViewController: UITableViewController { navigationItem.rightBarButtonItems = [readmeButton, settingsButton] } - @objc func showAppearancePopover(_ sender: UIBarButtonItem) { - appearanceController.popoverPresentationController?.barButtonItem = sender - appearanceController.popoverPresentationController?.delegate = self - self.present(appearanceController, animated: true, completion: nil) - } - @objc func showReadmePopover(_ sender: UIBarButtonItem) { readmeViewController.popoverPresentationController?.barButtonItem = sender readmeViewController.popoverPresentationController?.delegate = self @@ -75,7 +66,7 @@ class DemoTableViewController: UITableViewController { var readmeString: String? - private lazy var appearanceController: DemoAppearanceController = .init(delegate: self as? DemoAppearanceDelegate) + private lazy var appearanceControlView: DemoAppearanceControlView = .init(delegate: self as? DemoAppearanceDelegate) private lazy var readmeViewController: ReadmeViewController = .init(readmeString: readmeString) } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift index b446ebba46..a96a3ae4ad 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift @@ -34,7 +34,7 @@ class CardNudgeDemoController: DemoTableViewController { name: UIContentSizeCategory.didChangeNotification, object: nil) - self.configureAppearancePopover() + self.configureBarButtonItems() } // MARK: - Table view data source diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m index 0d520de3bc..38467f8069 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m @@ -15,7 +15,7 @@ @interface ObjectiveCDemoController () *addedLabels; @@ -57,8 +57,8 @@ - (void)viewDidLoad { [self setAddedLabels:[NSMutableSet set]]; - [self setAppearanceController:[MSFDemoAppearanceControllerWrapper createDemoAppearanceControllerWithDelegate:nil]]; - [self configureAppearancePopover]; + [self setAppearanceControlView:[[MSFDemoAppearanceControlView alloc] initWithDelegate:nil]]; + [self configureAppearanceBarButtonItem]; [[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(themeDidChange:) @@ -157,25 +157,14 @@ - (void)addTitleWithText:(NSString*)text { [self.container addArrangedSubview:titleLabel]; } -#pragma mark Demo Appearance Controller +#pragma mark Demo Appearance Control -- (void)configureAppearancePopover { - // Display the DemoAppearancePopover button - UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"ic_fluent_settings_24_regular"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(showAppearancePopover:)]; +- (void)configureAppearanceBarButtonItem { + // Display the DemoAppearance button + UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:[self appearanceControlView]]; [[self navigationItem] setRightBarButtonItem:item]; } -- (void)showAppearancePopover:(UIBarButtonItem *)sender { - [[[self appearanceController] popoverPresentationController] setBarButtonItem:sender]; - [[[self appearanceController] popoverPresentationController] setDelegate:self]; - [self presentViewController:[self appearanceController] - animated:YES - completion:nil]; -} - - (void)themeDidChange:(NSNotification *)n { [self resetAddedLabels]; } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift index d305f3e83b..53429fa3f0 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift @@ -226,14 +226,6 @@ class SideTabBarDemoController: DemoController { modifyBadgeNumbers(increment: -1) } - /// Custom presentation logic to let `contentViewController` present the appearance popover. - @objc private func showAppearancePopoverLocal(_ sender: AnyObject) { - guard let contentViewController = contentViewController else { - return - } - super.showAppearancePopover(sender, presenter: contentViewController) - } - private let optionsCellItems: [CellItem] = { return [CellItem(title: "Show Avatar View", type: .boolean, action: #selector(toggleAvatarView(_:)), isOn: true), CellItem(title: "Show top item titles", type: .boolean, action: #selector(toggleShowTopItemTitles(_:))), @@ -241,9 +233,9 @@ class SideTabBarDemoController: DemoController { CellItem(title: "Show badge numbers", type: .boolean, action: #selector(toggleShowBadgeNumbers(_:))), CellItem(title: "Use higher badge numbers", type: .boolean, action: #selector(toggleUseHigherBadgeNumbers(_:))), CellItem(title: "Modify badge numbers", type: .stepper, action: nil), + CellItem(title: "Show Appearance Menu", type: .appearanceMenu, action: nil), CellItem(title: "Show tooltip for Home button", type: .action, action: #selector(showTooltipForHomeButton)), - CellItem(title: "Dismiss", type: .action, action: #selector(dismissSideTabBar)), - CellItem(title: "Show Appearance Popover", type: .action, action: #selector(showAppearancePopoverLocal(_:))) + CellItem(title: "Dismiss", type: .action, action: #selector(dismissSideTabBar)) ] }() } @@ -278,7 +270,8 @@ extension SideTabBarDemoController: UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let item = optionsCellItems[indexPath.row] - if item.type == .boolean { + switch item.type { + case .boolean: guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { return UITableViewCell() } @@ -288,7 +281,7 @@ extension SideTabBarDemoController: UITableViewDataSource { self?.perform(item.action, with: cell) } return cell - } else if item.type == .action { + case .action: guard let cell = tableView.dequeueReusableCell(withIdentifier: ActionsCell.identifier) as? ActionsCell else { return UITableViewCell() } @@ -298,7 +291,7 @@ extension SideTabBarDemoController: UITableViewDataSource { } cell.bottomSeparatorType = .full return cell - } else if item.type == .stepper { + case .stepper: guard let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCell.identifier) as? TableViewCell else { return UITableViewCell() } @@ -313,9 +306,17 @@ extension SideTabBarDemoController: UITableViewDataSource { cell.setup(title: item.title, customAccessoryView: stackView) cell.titleNumberOfLines = 0 return cell - } + case .appearanceMenu: + guard let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCell.identifier) as? TableViewCell else { + return UITableViewCell() + } + + appearanceControlView.tintColor = view.fluentTheme.color(.foreground1) - return UITableViewCell() + cell.setup(title: item.title, customAccessoryView: appearanceControlView) + cell.titleNumberOfLines = 0 + return cell + } } } @@ -399,6 +400,7 @@ enum CellType { case action case boolean case stepper + case appearanceMenu } struct CellItem { diff --git a/ios/FluentUI/Core/ControlHostingView.swift b/ios/FluentUI/Core/ControlHostingView.swift index 0f5b355237..294bbe4e4c 100644 --- a/ios/FluentUI/Core/ControlHostingView.swift +++ b/ios/FluentUI/Core/ControlHostingView.swift @@ -35,7 +35,7 @@ open class ControlHostingView: UIView { /// the control view in an `AnyView.` /// /// - Parameter controlView: An `AnyView`-wrapped component to host. - init(_ controlView: AnyView) { + public init(_ controlView: AnyView) { hostingController = FluentThemedHostingController.init(rootView: controlView) hostingController.disableSafeAreaInsets() super.init(frame: .zero) From 0000e4d7101bd20482ea615ee68cefb03cc6facf Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Tue, 7 May 2024 17:49:17 -0700 Subject: [PATCH 20/90] Fix `Notification` animation tearing in SwiftUI (#2018) * Switch FluentNotification to use Color, remove AttributedText * Fix animation curve on SwiftUI notification --- ...tificationViewDemoController_SwiftUI.swift | 2 +- .../Core/UIKit+SwiftUI_interoperability.swift | 31 ------------------ .../Notification/FluentNotification.swift | 32 ++++++------------- .../Notification/NotificationTokenSet.swift | 8 ++--- 4 files changed, 15 insertions(+), 58 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift index af23267c2b..f61d63934d 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift @@ -17,7 +17,7 @@ class NotificationViewDemoControllerSwiftUI: UIHostingController UILabel { - let label = UILabel() - - // Setting this ensures the UIViewRepresentable respects the parent view's width - label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) - label.lineBreakMode = .byWordWrapping - label.numberOfLines = 0 - label.adjustsFontForContentSizeCategory = true - return label - } - - func updateUIView(_ label: UILabel, context: Context) { - // Update the UILabel's attributes if it changes. - DispatchQueue.main.async { - label.attributedText = attributedString - label.preferredMaxLayoutWidth = preferredMaxWidth - } - } -} diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/ios/FluentUI/Notification/FluentNotification.swift index 4595704457..56f38c2daa 100644 --- a/ios/FluentUI/Notification/FluentNotification.swift +++ b/ios/FluentUI/Notification/FluentNotification.swift @@ -137,7 +137,7 @@ public struct FluentNotification: View, TokenizedControlView { .frame(width: imageSize.width, height: imageSize.height, alignment: .center) - .foregroundColor(Color(tokenSet[.imageColor].uiColor)) + .foregroundColor(tokenSet[.imageColor].color) } } } @@ -146,16 +146,11 @@ public struct FluentNotification: View, TokenizedControlView { var titleLabel: some View { if state.style.isToast && hasSecondTextRow { if let attributedTitle = state.attributedTitle { - AttributedText(attributedTitle, attributedTitleSize.width) - .fixedSize(horizontal: isFlexibleWidthToast, vertical: true) - .onSizeChange { newSize in - attributedTitleSize = newSize - } - .accessibilityLabel(attributedTitle.string) + Text(AttributedString(attributedTitle)) + .frame(idealWidth: attributedTitleSize.width) } else if let title = state.title { Text(title) .font(.init(tokenSet[.boldTextFont].uiFont)) - .foregroundColor(Color(tokenSet[.foregroundColor].uiColor)) } } } @@ -163,16 +158,11 @@ public struct FluentNotification: View, TokenizedControlView { @ViewBuilder var messageLabel: some View { if let attributedMessage = state.attributedMessage { - AttributedText(attributedMessage, attributedMessageSize.width) - .fixedSize(horizontal: isFlexibleWidthToast, vertical: true) - .onSizeChange { newSize in - attributedMessageSize = newSize - } - .accessibilityLabel(attributedMessage.string) + Text(AttributedString(attributedMessage)) + .frame(idealWidth: attributedMessageSize.width) } else if let message = state.message { Text(message) .font(.init(tokenSet[.regularTextFont].uiFont)) - .foregroundColor(Color(tokenSet[.foregroundColor].uiColor)) } } @@ -191,14 +181,12 @@ public struct FluentNotification: View, TokenizedControlView { var button: some View { let shouldHaveDefaultAction = state.showDefaultDismissActionButton && shouldSelfPresent if let buttonAction = state.actionButtonAction ?? (shouldHaveDefaultAction ? dismissAnimated : nil) { - let foregroundColor = tokenSet[.foregroundColor].uiColor if let actionTitle = state.actionButtonTitle, !actionTitle.isEmpty { SwiftUI.Button(actionTitle) { isPresented = false buttonAction() } .lineLimit(1) - .foregroundColor(Color(foregroundColor)) .font(.init(tokenSet[.boldTextFont].uiFont)) .hoverEffect() } else { @@ -214,7 +202,6 @@ public struct FluentNotification: View, TokenizedControlView { .accessibilityLabel("Accessibility.Dismiss.Label".localized) } }) - .foregroundColor(Color(foregroundColor)) .hoverEffect() } } @@ -271,7 +258,7 @@ public struct FluentNotification: View, TokenizedControlView { .scaleEffect(x: 1.0, y: g.size.height / g.size.width, anchor: .top) } } else { - Color(tokenSet[.backgroundColor].uiColor) + tokenSet[.backgroundColor].color } } @@ -279,11 +266,12 @@ public struct FluentNotification: View, TokenizedControlView { var notification: some View { let shadowInfo = tokenSet[.shadow].shadowInfo innerContents + .foregroundStyle(tokenSet[.foregroundColor].color) .background( RoundedRectangle(cornerRadius: tokenSet[.cornerRadius].float) .border(width: tokenSet[.outlineWidth].float, edges: state.showFromBottom ? [.top] : [.bottom], - color: Color(tokenSet[.outlineColor].uiColor)).foregroundColor(.clear) + color: tokenSet[.outlineColor].color).foregroundColor(.clear) .background( backgroundFill .clipShape(RoundedRectangle(cornerRadius: tokenSet[.cornerRadius].float)) @@ -364,7 +352,7 @@ public struct FluentNotification: View, TokenizedControlView { } private func presentAnimated() { - withAnimation(.spring(response: state.style.animationDurationForShow, + withAnimation(.spring(response: state.style.animationDurationForShow / 2.0, dampingFraction: state.style.animationDampingRatio, blendDuration: 0)) { bottomOffset = 0 @@ -373,7 +361,7 @@ public struct FluentNotification: View, TokenizedControlView { } private func dismissAnimated() { - withAnimation(.linear(duration: state.style.animationDurationForHide)) { + withAnimation(.linear(duration: state.style.animationDurationForHide / 2.0)) { bottomOffset = bottomOffsetForDismissedState opacity = 0 } diff --git a/ios/FluentUI/Notification/NotificationTokenSet.swift b/ios/FluentUI/Notification/NotificationTokenSet.swift index 6cc2f5a3a4..e7e963e9bc 100644 --- a/ios/FluentUI/Notification/NotificationTokenSet.swift +++ b/ios/FluentUI/Notification/NotificationTokenSet.swift @@ -108,7 +108,7 @@ public class NotificationTokenSet: ControlTokenSet super.init { [style] token, theme in switch token { case .backgroundColor: - return .uiColor { + return .color { switch style() { case .primaryToast, .primaryBar: @@ -127,7 +127,7 @@ public class NotificationTokenSet: ControlTokenSet } case .foregroundColor: - return .uiColor { + return .color { switch style() { case .primaryToast, .primaryBar: @@ -145,7 +145,7 @@ public class NotificationTokenSet: ControlTokenSet } case .imageColor: - return .uiColor { + return .color { switch style() { case .primaryToast, .primaryBar: @@ -192,7 +192,7 @@ public class NotificationTokenSet: ControlTokenSet return .float { 52.0 } case .outlineColor: - return .uiColor { + return .color { switch style() { case .primaryToast, .neutralToast, .primaryBar, .neutralBar, .dangerToast, .warningToast: return .clear From 036dac727a4a9714e963fdbbe6257979eb1ace3e Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Wed, 8 May 2024 17:26:06 -0400 Subject: [PATCH 21/90] Add documentation for ListItem (#2017) * listitem documentation * add accessory types * add ### --- .../Controls/.attachments/ListItem-Button.png | Bin 0 -> 18808 bytes .../.attachments/ListItem-Checkmark.png | Bin 0 -> 19369 bytes .../Controls/.attachments/ListItem-Detail.png | Bin 0 -> 19135 bytes .../.attachments/ListItem-Disclosure.png | Bin 0 -> 19208 bytes .../Controls/.attachments/ListItem-List.png | Bin 0 -> 31183 bytes .../Controls/.attachments/ListItem-None.png | Bin 0 -> 18940 bytes .../.attachments/ListItem-Standalone.png | Bin 0 -> 24077 bytes .../Controls/.attachments/ListItem-View.png | Bin 0 -> 19022 bytes ios/docs/Controls/ListItem.md | 40 ++++++++++++++++++ 9 files changed, 40 insertions(+) create mode 100644 ios/docs/Controls/.attachments/ListItem-Button.png create mode 100644 ios/docs/Controls/.attachments/ListItem-Checkmark.png create mode 100644 ios/docs/Controls/.attachments/ListItem-Detail.png create mode 100644 ios/docs/Controls/.attachments/ListItem-Disclosure.png create mode 100644 ios/docs/Controls/.attachments/ListItem-List.png create mode 100644 ios/docs/Controls/.attachments/ListItem-None.png create mode 100644 ios/docs/Controls/.attachments/ListItem-Standalone.png create mode 100644 ios/docs/Controls/.attachments/ListItem-View.png create mode 100644 ios/docs/Controls/ListItem.md diff --git a/ios/docs/Controls/.attachments/ListItem-Button.png b/ios/docs/Controls/.attachments/ListItem-Button.png new file mode 100644 index 0000000000000000000000000000000000000000..83b313c73fbbb9bd9852d91ca3b87588baa4abee GIT binary patch literal 18808 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 Xc<;8#omt-hCM#t{^*gz@Edu@*_f#S9 literal 0 HcmV?d00001 diff --git a/ios/docs/Controls/.attachments/ListItem-Detail.png b/ios/docs/Controls/.attachments/ListItem-Detail.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa1469bd535987e31e3a7aa50ac4410f2325c0e GIT binary patch literal 19135 zcmeIacUV(P^e&8GEI~z&6cG{BV*vytKtMVwpkQdBNJk)GAoSh^1rkg)oHz!2cE(^Gfj>u0Bw>;i6xo5)yH7#DcUHrP$}kEFmm3rm&tFnd zkb$b_GZYl|cPJ?4^eHHWK2cCGSVa~qi2xTA5ldK4W?^>>+K;qb=HvAG8n6qI~Ol_z#jV2_0iEzP-} z8d(}3xSY(b4sW0kaS{TG<_No|tWM@A3tJ&4(W`&lAq12UtGTbT{&9<)ndsFgFh$n; zmNp1hDAygXJ6FZPtgNgeHb%xm$`7RfY7Tr8z52|~&Ps@z+tJaH%aNDM(#C|F=kDFR z+;e?H{z=R82z8rmSO?2wigtcTBiYG7$^Cwlej;fuci z{Mk>06Y|HKENuT87BE2W!zx69T32 z0BMe}um!p%2I1$2iv01OUoQRV=}%3c{AkLqtg%%T`rg!}u75Cb<%22W5> zNKia_AgSVXggAII@)9DvZpCD=exjWFo76*KnOdAX`#^=ZN|aXP=@FfC13o$rKuRhS zl1l0y?yH|EGCD_dl-8aOR20ngSn%Wfw*z&*+ZrvJ4SRmLm|~V%F77UuFcTjW!b z=2>%7E@s4M1-OZBCAb_6_d-o+%;jW!n4rY#vn|Z z$`-HuBaurNc9P4OGL9xNeMmnr# z0b+lGZ}M158YZ*_YPRsKo=CCzi*xr?F|m)s1ZE(3nK8M1$r%8C1vpXpF#kTnI-^!5+`MOQw69~;cT|EZr%;tNuDR{%^{?Y-{0?YiK zo?2Z}<3Y{U+_|D5ys}K%$PJ4wx=*52-hoYAxGs+ZcnLSsl>FTtdyV=%(HMgyH zNHr&%+ev)pa3qb{9M;povCQG zK0URA=0W=Yj&#c>I=1nR7N+lHG9=1q?HwYDSk<)d2bBnLFe)Q!xT@d$s?H~VSJGFM z;ndZvXj*hzEWkA*1iJZ3{4rbS108nwi8fW3mQ4pUGduXYc3W~U49n{cD;bOu_;v30 zPXgV6-!}^~M{vy0nFDqluK>16?M(i7&$-3HlK|qm0bLccfSh~Hv zo#x6dfhdayK6EsWRqbR+}Q!_W{}hT99--Uvvy`_qbpy(MCgmSsMJ zuG1B4kXE79=P0MKHx3PK*e9y0s`7PN=P8j4K+VmC7U8A5Iu_3XO--^cpM)3oyu4sl zizrE(n<8X$&1Cl{Yjo;xYvjeDsjY$<_kEY+ezQ4;=e}?Mov=|_)cib-(BpeC)t+O( z+`8&2LJ(m#XGWf>cj(RA#_6vPK@FRXEb;Q`?D)Q?nHIVTCLPb~TuF2xQX%PjIPCqA zu!`M8_a)ciHOQw`#+A3+<4nQrOc$j;90kX%t^ zw=Bn9W~8odEmg~=Hy3$?tNeIfZXvHzK9@isc+lj1{#=z&Jjd?3T7Q$c zGkj1U5`vIdUv#Xy^gqm3$?u0F(UVcf+S}O`qvB1q@}3sKtUHHN8aN&^$`&UlOLw}3 zZRDjVx2UOQu2I6HqN0X2qXwNEt2ulLPGMK_@x94VlU+UmQOnn=#blUigCAjvQWFd@ zH&4nx#^4lp`pl7T{o;v_atr%AOMxO+x}!9*^u1s)VuKhM+IVtuQWq8>FyvHy*?Hnz zYI5?dbtFX0VWD>vl$j^qED~6;N3>+54G0KeY<2#K^6E}i@2?Zv%>E`31PL~7iA35? zHLX|}*1gN0Yz#xsMRRK5ns&lZ#zc8|w1^+LmF$z})ANEod%lQ?$oz1wv2B#Q>dp_f zH-h*?Ej9~97iKnn)RdGhYOY%zL;DssVT#UUv|#Wu(W1HQaARdT_13YWAm6|ZZ{<#D zSkAeS`#Pg50)cp~ZYVK}p@%cOhAB)dp5v@MlL%$Zc9Y3fELC!OQ=dtUIX2oQ%{llElP;cov$~=+RFlt|D;WlfxJjy~ogV1%1lu+PgLOi`?srr03CP9n1F_*vD z+rUs7GPaxB3AUZQo(OfAdDw5+p*zHG+u#5epgSh+(&NQ-f&cSP;?yR+R?F{X+vc1iI;wQs*^}R#==ev!Ix5nNQWAMU99}OR(rMNI_3Tbw%!nogP$@*Xs5ebRTiyL_P z)Nmm-d99SS%Sa$ZK0l&MuSCmTzH^$-US0#H<$x;a*@P~+-?MD(qy;CjZq)`b@k)D4 ze2^g&02<-}bA{u4)q2U_WW+wUVk z1uLx7ll;XGwp(4{%XuQD!yaqs;oihBUBWmu?!d*8#IBza+e_Y<*WuYcgBEelaZF8H z2#>;RiEo!o>~ zoZ5yL-*RquhVmo0{IZ5Uc0i8x^DDZpL`2RPZL^{AZa!*F-9-_Fp4QDa-O>#K*!ftH{Mwc=S@FkiYg zsAgU}_EETeUe%T5Y4L+TLVrK6{8T*4Uec`Gat7}6{Z|AwY~;re&3X3oYMFOd#da2g z;3UEUR(vmcZ;YWLi{GrrDW-eb>->$!SwRY7efyJo`!!nExp!SGTlrNL_1^7m7PY#! zyc6GdT1tjwdu-;$^bI-=n`>Hg_pV>pX;pkj;_b4MehJkN8xQm zMv^VdT^l1@MoGbv1$I%uh9=KDQH`;S*e=6DJm=P44!C<=A{S!sTVaLdt9#Mv%a?LR z&m5EAb9dnHb>8S!pXMu50o8=?TtJEMuLQz2;#QG(ZCjYMJMIOISTEp_QqpwRH+kcD z23_XUH%DI3L{Q$X+WdN6;S=RcmV>Rj7wEDY$}SU60x(*n>tu*}F-^Chr#nJ!j`w%0 z>rxq>`ojEhiGFA6AYhM7O`_~W%f^|PW_Xtq^i{Va*F_@h8QlVhE_-e_0zd$;zOD>= zx<#`XbaBku5BsmL5A1+8#xkCF+NhU2@=Clrjx9mj@}~E~!d!D5;NfWKbZAZtqz=Jl z|D=SP9mXPBzv)I|v;ty4s!T(d_|rZ}WsN!fq=1R{w*VaLb}e zdf~;w@lx)VhK%~ebnPO@xLi(-ZC9Q_@7?LhafHN!jrb;ZW?+kPu5->n^UZDc`vyCk zM4Um5Uy?;}!7MdOh59&U^$u-Az2|V4u1h^v$wJO$c>OMZ&lS`)5!X-SxpjZ(Q#FnF zfM-$b&b=7*7%D>1iyZwg#7xhV8!l#j z9@2{?OJXH}7kAm)RynIy6{)W0p1;FMyFROs^=MqpIKey01Aa$X3x0NcUhkloA??hu z;Od>mjg>kUl0~j@^Xj|1GqEqel-P^o@3K{1IOW22VJJpFNNk$Sj33zTX~?)4?PNf5 zUHNH_Mvf-+b-gX~mg>Jak3wv?xZ1DDYUMcRcjxojvGBNjJE3*Q+0ykD$FcpzBFi;O z1;Z3+Ck;g*wbW+wJ|#nLbEm;*jWs`2f%5zu9mks@57VEQKWEEj>z!(iiE+d{Sl(J5 z7bOjJMmtZ1`=h-fW&E%Zc<9F*KQb71bVsSy+nb5KI89&46J6dm|JD#kp;)K~Qp+eD z1D7m+p|0j8_DuUYd?Y4gqX{OlY;GNy75l|u{BaVJTKJhxtXek)+w{DEtFPg5E}H@s80 zhf^{WD%%^G)C-Zec`JF|+p?UK0!hMbq-~ zx_UBn=0PD}B(I37*S^5CEL0rqk6O66XT&geN0>fy;=Ps1ofl!85F0*sE?u{b&M?{^y1%MH|Zof9jNio^4orgM5$LJ|9-N)DkAa0nZ1q(#zgjHTN+lWr7$ z)h!N1uWNg06P&1^R-<@>~@R0sHpmt{q#3y{8adqF35us2)G`HjpIZ=rYmQ>Lt*H9Sw`#bJkFxR6gUnPqXQ)`Vo--JM z-zn&=?yqCT`v4q?=1G^5mt0s}r!@C&uQ`$?PPf>LnM(`n(mpRMo-qLff zLWG0!&!Zy9*jRX$^aqHrcOP>K!ZtLO2B?g1s62A~sK5rfuuUFJe-w*iD~xSA*ImfY z&Ar5r(F*4APUL~M#b3$d*`Z(MLX!$f=P^f9#EYg02eMa=xL)?UV? zVuf9^@442N&`rtTtyMV}J}*huSkTjT(d%2sxj_NzGFdbp%P;PFazE4*e=*Ww6iL}R z0}+gi$#an^$Gb|EtE*(%rgn9^)KsgMB&QX2HQFgt$Z~YfQs2v^mN$3QfW3v@E~ry0 z*Jqk5kale9QK6op)-Fsou9x5kUAgSKknLYE>^SURHfu*VNJe3-I;S^umR!R2CT@yn zTg9UKau5!C8~9f=vl~Sa+b$IWsXitpuN!3w^z((DjqCLE6Ff4=%r;HdmAw1Jv5W$S*e|5CdnsfSvV; zXh}}H(@o(Qaq;4u5Whmmm4v2zZBM;hZRZEn;VZQ78}ogr3c<%@(uXdbIfIOtJ}oey zugRF3iSg$Lj0QR8R~0wnK`@l+WoV4_0A+Eq(t_*XLEm8Jlcd<&RnJo8u>T zs>^ALy9WpaWS&Pgtfbf%(wM`wa?S0$5>DG|l`SNqUP1GqTK4w?l8rmxh2AL8)N#e> zto1LdMRLu}-H z>6-cMruZkg(=XwL%h}~;6=K9hv1=c&YI7ZSR}MBm)3_(qWm8$}iXQt=cdVPHGsUzl zT@zE;NzGk4lK#keW__W*tPW%Z12bo)Jdce^b*Xp2$lIcWnbw@SZs+xq3w715=>rF~-Rv8I+2 zKPX#JP^4uRQxIp)HItuT8-Y`~IoC5~N|l)J^Fo+?QCN|4w+3EQs5&7qj3L}%S7Szv zmcPjKVM)EE#}%$pHE!G*&FnTucdoVf?0C>}5$zYYg=C}(*?`4_>Gc|+d&LY<3~bFB zQ$fM=Ceom(rP4L|%$5(BF(f$@mza#a`1Fn(8$SE^eCX__n=x(>tm-VEkGz*~1zQ^< z-2_}(BP+S5UrC0UZlG)05QI_jWbe%Zq4N~BB5k5%N#Cvo8a@6D*GXFD8yUIa^?$ZFfJVI!G6BoDl0szb63jeoGjG5s!Jh&IN*wnAl@QHF>BV%Y8o!jaQMI}^}D85r>fv8jQ^ZAZ}^VaO?50 zQnF}orB}mq;ps@*$5m8x;_7FA$G4`71!?jqRRwUn&&u@-3|yMITSQY`)vYa4tY1Y* zEpMyZ^K`3NW`pj`18D^RtRN`S8zz~(&j&N1#^H5co4;tp?$4+6L2aiVA0!vt(-WNO z-ZL1H+=|TGlFW!fO9+Vk6>IUL1;4Bieh_u6XH_9umfGevbB6I7AqnpH%A)jFe((JhtnK^mp z{kS8HrD}Jn8LB$j75B_XQODeqPb+{LdmNp>Fx;MZ|4oJHOKzs=>FJEE<1P?I`GyfC zB3i%G?z;P|`g1AJSI5NDUCzXYPt|p%vVF7Im_@oKkGW)QX@qpGl=8 zr7-3>5D8ZJH?Gl3HldZoK#X*er*KxjD$D$rul*Trs~q{Q?Xlm`{d8j32@gnsh-Pq%J@XgducAi>-Tk#(2m#a>_M7fi& z5|%i+zML`{&jOl+Ac*B5i@dZp8dw1^n_67Da#s@psKkThO z{EWK&LuVgme%sGcA_vSv>w*XGi>HnqZf;ZsdW!YoZ=2C~suAKvAr*eI+AypES^!|8 z3u$&!%$ZQLp#nhorxAo6N{JdJRl5s;zJ$XX&a~MKZ_`e`8*hp){}ymrw0KxYraRgX z{A_*a^s$*rFT0KgE%Iu{V@%SlZo_Wd$F=>OH8Kh*6p#6Rws#1eK{Me@H>M1L?k0{i z87NUt@@GhRUW8T_{fFAPkOLJrt*WxBUfL5qdZQ|tkD6m-!#HzqMs5e2gLS%E3&3Vm z%G$gP(@Fb#X5Tq#+-5PlzN_kyU1oS>n6Kz3$ zwZ4$sx`_#wN<2lg?hLBad0p3#b+`*IMZS*N8JK>|@8u0kCAk9x3(U>|ZdJN1re;+` z1D$;W(u?zk0WgT|jRzcuKY259M7+6>hTGx&ioq!b721jdjP2?R7(oF(3*6W6tV8yt z2R!P=-p0qj!-Afk09J}}Tdgl~8+$Zw5~grVlKCuZZqneE6W?IBu8>opduiNAHAkxU z2BtvmbE-vBz6rk6Ak$oT5`?DxWQsC(;OGf?;#0zQhkuCf1fI4u0^_nIot4b699%}r z&pZhbI{Z@KsQcn5Z$!j(57XPDx?I-_4!nf8<}Ssx@Z(pcn3*;%SMAf@+Fm-?w=6j% zJ{3I4L5`g{>k;gs>1^|l+iv<9^eZ)4t9U!_nEdCvRA`pY5@=y zhz!sVMRwXEAfWjIAMxB#`CR}m)gjQb*x}55vAO$w7FDE^q(Ca>{Nz0D@bk-qDg>Vd+VzFzw@X zsxu<&Z#nS$A9M6RMy@ji!xcokOOWiJa%`jBH#IUpdOwP*+^OWY}f$kYkUI-AY$g z6`{GeSiZBk<{M(pt|K;0D>=ugD8(=RXXaJyT&QZeD=|)vwVYSKdb~jK$DX@ z9M{`rOd?-{8JA>ZZ^q|FDbO~7hg7iFd*di2(NJ^n;zwYE+u$H1IM?`0H|mD|bb=6) zy=`}Ujo8H7n#W{OScN9rtu+g{YA`*8rr)0Oyh75Gn{(bC?;j+A$-Y{asWBkZX}lY_ zJd~I{mvh>V8m|jJ{&ZdVmY|P3oJX~qRqHKz`&|ksl(;2`BiYN7nUhcw6>LoNTjPPG z7@NTFz~=oO0N7}7ee>rDBF<lnHS^&SNSJ0?*;=~6i0WiWhC?Sx*s9@DW@wP-Dbg(c3D3TE$U+3+yt-E2vkydo z&|nmxlQ{!LsQb)6NPeR0skQYaJvzi3k+ff4Cvho^9-ET`5uW;FSW4MD>d#!X&B$5) zRI^2{vpjEAcNu3hDSN<2b{BUiulqmdwx`Yi@>HcPHL226k4huoR8_BJVG~cMPn{u{ zoNQNxDqN-&>gM+o^7M=aN1D-9>UYk0_@KbPAoVY9qdp9`FYujG_}tkg?7oTo5&Nk> z%&aNqN)$HZB=S4Z2;0CEaS*0%8@BO@9$?4P z#R`Uim^O@)n7%Kkrm8lZuI5-7TxPzT)z0;N((iQ%_e!1}^|Smt2+UEmTD@kjG0X~H z!Eylb2t@0&A>M&^qMN<`ut3qxCxMAgybd#yZ_2ws{Z+?VP)btOFLn|ptqGAWg5#$w zRf}Vn01x~^p{x!mnCa&SE+NmQmeFnJvBy}5@AS30M9P&j1$&)uQ6vB~sjJ<2Re@U< znr5sez8-@ubzG&O8l#Iapit5biN~LmW&a_gTn_ zwaXhdODU-t4ZS@vH@PczbC8I10L7(_=pF3ghe+k5ZJIJy_ak^e`E4kS%563=4048= z6t!Y-FZyV%kPDOYmUhR8U7O@_M5J<85oWZMHdv?7>S=9}$m+Li7*wSWG7#YK1FPe` zVL*tJn5|dtb*;M_OrNya{`82z(HAfmE%6I*IDDLwYJo<|KFqi|Vp6=>g+(`6UL!;< z^mcvm!J^ZZOA@QCY$87LZ+R~PK)uB9#QK}>3UoFINR5bk-vD9f;L2yaR@ZmMVxwp~ z$k-V^Bdu~~V~*RtP(oS9_C;9^(g%p9g_~y#FM>jYi4y{%7W2peX@U z(Z+6QI`RG~7u+<5Ij>Gz-N_A;y!0Chuf2+PtFjw1+upDmyhOL4I^~<;?ipdqDe$jMvqmxEw?H7Q2rSmw@j(IhI>@XG#L`!knG)vhr zl;Xg)z`WK0c9Qz|Ox_FJt6a3l{#p#_n_t7s?d1oO*&LarkSv5giz%X-ibf>M_3XY% z@iJ|(6$N(Zc^ef1T7Rn-*a~w`ER3^|09s?1nw>o>so%Pe89z??RAITLE13M zmLgk!hn~9vH+vgq81^H~<~0FipAnqR`BW_)AVLak2811YOjo(J!l*CsPvk!P`_6I-`#xlBhnPW4u6m9SOIRpEh9T3LR( zXom?@+wfTDA=R%8BhoI`gd_s_X z1M*vn=X$+@2gFbhA(UeA#7W89KZ;U;mX-`CmC5PTrw0XKqn&~_=2f=JBRh^2J36&@ zlVhyZ)HB?3S-vM~NQ@qRZL^T4)@ITH>}c&Loce9M9%N!ZLc;Cfdx_os0)&svsihK~ zWCG{VoNXUh=Vq;tmTp;3sHKh>M+)ARKYF*EpzV7Y^wc@l?Nk666l5Y^<|ug+YT-rW zHbSMVG`+0x>|!JaJ0qs8exo!qC%onE^rb_jl%A2nHI6`B()QS%WbFTs)2{!45vh@^Bn_ApXJpFxutHxdI}c~Np>EE|IU0&35f4WXp3N=rk%;7kZA zH{!6mfXXb}jBtdJHHmV11L6R2ZsKMU+-$wsXL7t`-b4G_+MGwH2uso?9>^;Qvkvy) zI*e58^wx~$)RlqpGa-d z#I?Tjdp$p`EcqpY-yP>&(^jz-wbZM(zZ$mqv>YflU38isVq2CtGH-PUZl9m0JT_MI zmde#wYyfADW(e*u;T7b}Nl9tg2Qp~*ZKuVeXC0Au1QSs?dIx0upbQ(@tk$1#u+{lT zYUlgMUL8hfQkUZ|@)#vGUoOA~q+D7AeNq{4O+}M2n5!e6{aH=A+67%|#bd)8=>Zs| zeV?YQNlAh1pn>}EqwvSJwF+zAas<8Hl-*f}!vu}=)A?M6DYa;iuypamY@p)#j5SO- zTM27#o=b=~G-A;fh#`D}*a9$f3Z~H>#)n{KbCuGY^49Cx6g;=YSzB>9MC`U|v<*CVk}Q;4>`IrWMLLD^1fd$`(1415-2 zmQ0o-Gb-(|y6e(iQl(cYoZZbVnu_pOC4AX=CL3mYp&oBJH*co56QQ1_&ELKr4PGn< zQeuYk6`?`mK5`mDiHV7#l(`;yKILH{^rx21n0&B7Q_2@a1dXH69eXo`01y-|>&19yE(Ew+)Fp^znhnWpr4dF+r?_30r7{9)W!^jHFS z6OG8SL?E%uTrq$VHr!`fvFFmCzLS5~cB&VME1b8K)!BNBrMy(U(M`MFrt%3$vn$Tj zIlf@u{qZE;x?SHW4Lz)qCYnOm@yI9HbE}%grH`lTd64%d(x79EijgUdL zZ)@N{Zu~SD>^`qGyy`%6JTgy7y2wLqkEAkk|496Jp!m=*t#c-6pNy|q1j&Cn!U4*4 z;dq^{zk~?WnJQB-nx@KAI&xjSm-f<^PdtWKb2(q^JP=i@gu$POOy(gPL;ZDV6R3~P zL3B@vC>ekBVDMEhq+aNlzaIrx$$E4o%?hKR$-MF-L$~rdaA1h=sG=LefXpun(>b#2 z_i@#qI_~lB2m$_*N<}%>^)S3Y)xh~~XXW?FKq?@Bi7hk(xO($!bW*8JlZT;>3QU(M z$&l19BV>aVZmkCGIfYKhNP|HU5bAX8Dx6KNa3>Ao(KyE{5W^?PZ>z{$lh)1JsKz6OaZ`Jo_E6?~`Qt2ZS%W|e-P4&v7(VF$tv2+th`dv9#9q~Gj&YjzQ_WWT`$3^W< z+I*`cMD2HjgFClwrGda-IwAbbuyENuWP^T3*YH}acm9gf+Sr(Ph6I{nC*)F*-0mnt4OE`2(d;0XF)bNcs5h{Pm2+xrBxhCA1* ztX9_F6r+BJNfjOJ?+|hQ7HgRC2^*J)do~N%brEw*FU_zMHl-DpiDcirhK+rk9tEX4p62hVNjtiKtvfUp>_Y2?(Ue+h~3hC2rnpfiS_U4)f^+E~J!3+V0>GOl-QT$>h#ur9I+1^NV3QLv~zM zp-Z&IBiSx#&ojg_0lq3tody;z-3RtbRSTs|0sFB(FHD6=LO_i`D#APe42O+Kh|u`S z?+&%ng6@`0zUDFFr3_2J)RvG(`yDy-uLv&@dW@nnRnUvwvNGx#H3{d`RC-7Z=`9Tg zW-K}uQFQJm(zL6QTprWmo7>|pwlGNkWud3?mt^(<(8w?;1J9y{^?|5)h zO}mPfHvcQA#lVca1MSSGQLrM1u=SUhC*6Ygd=$3i=~2K_X~~2qXs0EV{#8 ze#H4-tLiJ_Q5V&CzTP;+WG<{3k(Ql)SFO<70rTcvRFpAsv8PodP>QIdraWv>11rO4 zvCTLa32;~}-dfjM_4wlzC+Q1;q!@@aX|teW@MHNi$=c`6KQi$2UkLT`#n~jmnD18g z;4QLm6nxY+ZG;z5z}3yL_W4EnaFYXBlyen^nfPYs8-qZJZQP$HHb;)C+}{$T9!(Lcmg8NQ!^g&|7={ z2OBg&eVC9RY3)k*lyXjOxZ|0YW7iY&#xrK908b$uxNUB?z=9R;puw4=z*yAfO6JCAgAGCV*nq_vy|6KXW=L-StUjQ;-T7)dp#kMB7J@3xXm;Qucv=0vy zq})o)0ydfi*QwIxDcGl{4W_1n!mJY+L_IyHp2fYr%rsm%R}Tjfwli;a?k0o&oT(k7 zhDS5TfZ-XtL;j%LKr<-nuY7@1H@rSvlOb>x3>d(%^30F1HAUYKq&-VPMe zKr0LwCgK-rZaxIG{YUO%2iu*b7qHpV-^=_7G<>R|8ner?92xA6Z(tA5F6YLt|FMi; zf+HOWNE{G}wzLDB0CX@VCFM6EO<$kyTgvx=!0LC)%URG;nS%sqk6?|SIfsfG5YqI6 zhEj6|{03d=!b%#aF`UA z5h>M@_SKn=fnn0+#Lh3rswKcjU%&fm^?|*S1GW3D9qRT?5q{REr$7P-@&u$^vI{e}VP&ur-AgoLiz zz>9|Py2m-z*Q99%^qow;>*(Kx;kC};A-06hn~(EpF1bXis-DUwZrH2!Kd}tpgz>D4 zY!xTn&g274pBdbt5O%1jHm_i`JwE)%M*5$f+GVCbJg7CsAv|4KHl=mnHmDogr3Jem zMH2MQIIhD`J)ly}Q!PX2pW@29MiT9nKEo_F)AHf`KTmv(ENR3hHRe~CJQr*!tA>To z&n#q_Z}8)aFa)$Tb~-PbGO^~mnwq9@{HuU!OZE)ZZQD-*QS&2FAwD z&Gh025dOYiKC)Gs+SQkG`GfzK#P>^QA0`4Sq@oKwHuOq1kAmWO+~NNM2>AP{-%Y`Z z-{HXXA(_SVImEjyd;T;QK`itnVKKEbaf_Q2!g=&+Fj7+52yC{tpHG zPxt;aE#KLcKWz1PC-I-<{6B9wW#{M7L3bh2KVa?;NcdjJ>)^O;zU{@_<92`igQrJQ L@((iZ>3jb#2Kt}O literal 0 HcmV?d00001 diff --git a/ios/docs/Controls/.attachments/ListItem-Disclosure.png b/ios/docs/Controls/.attachments/ListItem-Disclosure.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8a45adf3cd7a6373406caaa2e0dbd1b00c752f GIT binary patch literal 19208 zcmeHvXIN89_b(u^1h7&>q^L&_kRnw&7F5uH5D2{pMhKA5TOibfC{+bP2u(_;3DQCb zv4Dcq5Fm5}>AknW-JJKR=dbVmazEVX|KY&%gvs7Bd(W&{^|#jW^uGFSCh!?B4Gj&G z>YbZfG&J;BpgnW=An-{_%5Vez&|6-ET%)1Mk6_q&00O@ASlrQq(9ocHX=r@^q@mdY zF8NN-(71@w&`g=p(8#``p<%O+FV~a@Zrq3KsXl^0Xas=vVH!HxlQai_7A^2g6NI3l z|Eop||xTG%0lA3U@( zhYPzS?e{y-$h*q|O(fj;0gpS<7Ud-Cu5kXZ934+c{c_T#=EH5fK#= z5fc*vdI&jrpqwAL3!$7Y{O2LxpK}xLWZ{UgcShKuc=n(Bz}(KoS>gQo{TKcC`OiGz z?uegnLOK1tEMS2m`*%dH2#bpRw_(nRNB@^$`*;2`?5}nG=XLV?50kx*aEIIK-$Wqc zC?{ZQiei$IQu2Sj=eJuwXZnw!dOwF=xgss|&!PXg_3O|ZcD8noQ2PfKaK$Ts5BbNX zfArp;xvYjG0uB&$pLF}(f4lZ~e|eF8y8eUC|JlU9t^&KL2$mQ5!4Zn!hHp`$G&IUI zsyDA`yVK70ABjH;kF8&{oclalE%Hg_4#1|U6URRq(y!lt7zlD!u@5x9Nw2AG7Rchl za?LsBhOj>CG5UEOBh;wk=)LR0j@*%7o|ole_EfC3jG+o7g{;Y}xSfHPj7h@WRLS5L ztm&Eem`74cW}{^4IbRyO!#uxy91l=-V8pb7e!l~BOr)vh6{e>@u1rJwKR^7s=?_bN zyrp{kx90()=&_{-e;-0iZ+?oWo0;Px=YN~WaoewFetQe>(kBpKGpKEp^Pm4^>dJ4P z+Wb1P{dw|8(fUL3HQP`8w>8!B5`J0BUtj-S&_4D5-JyS3?mtrauM7bi>|dquuTuEi z?)|^nA;0!+bWecX)XY@TTC;i%0{LcY3~e)ORYGiDyZMxvh0V|b@sx#yjcKYhI3yU~ z(O(w@qiigl7#KNO0=e<4ZS#A5PWcW0*?sc#a`+&Q+HaeD0Y=TRZiBh~%6KaBu_-v=5NpDd@6^AS)LE(}YDJMl*CG0jHVxf`_ zqCp=lFZ|+G_$r42et`K~Bb^$`oZ)7g5MJMogQLU{i@kL_gw@JP-;C3^iTJSopv{z( zBxLGBH#72M;jhj_nkHcU87=Y6@GC-jy;dAX$ysGpYb zCw_Bl{E7}Aw^eJ5HIM)8<-W>bz_Cgn`s2#Y|LJi3<<|%SByD%Zo#y*>p@(^%(E+pO zzpBc3;&<=nP6$ATqImwgr@t%!_?o5+kQl6f^2W_yxs8^-{XD>K|6iAvj$pU)siX9? zp@e4fMC)F(p;hVpSGcEm#OQLD1tRe){M{e@lp1orQSnD|B zThN`Sw-0!$R~Ws?Dy-`7In&Rqz~(IAN}3EcBl%V=)BeUZtxA69IBl)1kOe|ak^~eq zB!rYE+FrCAkG9Z#n?#p*i@F)5aQ~lS&G%FP(Hw707i@W8h+0 zHIyfNN|~AXFXlR4C$BZy%N9mROaCay1sDaU1ATK z(kN4zYS&wkPkR5*^tYaOk^sR-7|$)u{G=AFX6yb@ltW+hTQFihH=v`FGH0zUsR!*f z1l1ddYvx&2rWExFs5Rzh=e9T8?GteH!&S!_U?DE)2C_X%B4z~NNK}#b;mgM59Ruzo zOok<>1iW!YXN8@OP2uNAzTPy|NZXzwglnHeJ!NH*1a**SJn83m+{)UzAc)($+r)EL zvbWqN2T3XTI5j>!p?whwg^H0J51L|u=YF|U*2nx9hRs|ZkSl|^3zJd&is}R84%u6b#4UyAMSRm`V`K5fm-oq+do8Pj- zau9pln{trkH6|j_wXnEs*XqXI#ChG? zdB-5~3Z=BW7%@9-x>sJc-9O(vK06bloJ}uU9V}e>1%M;vY$%yoXhv2 zcKH;OG?e<))X=+rJbCIA_J7P=o<8d3Uh9ox`VdGMKfJY(#?T=ptHIs1 z5`0REdC3-snw|IJN4D8uLBgl2X*qe-J!8!Y*u}FPpIP+^9zIP#Pi4Uj4SVPPq$DJ| zb##s45lXwI)P*3WqJn}ilMU3lSJMAbYOO)OCmExK498~EeR>6!O)hd<*&R7<+v9Q3 z+1bV5_U(*Dscd45)a4Qcs>e{rBar`ws!G8m>HbarJ8<3xu^4@VbtoAC)nv31FB;?}kNi8iN z;|Z2Z8@0!Bi=y`Mftc=FKg`|}Q{_Dz6H#er_}Bn1ZAOXqhOWoLlzoJbk}7FrOuf4? z9BFFHa`79?XbJWP@v6}_P6>e{OOSgb`YOfd3>t4u8v5y%6|mQaM}1sZ-yQ!k-au{{Asjh`brut(|Qw z&wDjTq57WE(x(fqb7kW_5#B2oaA1|G#fLrg%}RSaTwP`1!$luwZq}`Q_ilh>Q!4zt$4IAM{U?QR=@Vgm zZQ^!=M9=*i@<4ZaU8B8L7;jCM)yAua=TexJKYHEX4G_B~J`Y$s?N0AfL-QkNGh+|+ zm{{=Y>pNt{u&4Wf#ZHw_v~-Pj0$t`rR_3Zp;xxQX`!a3}?QYLUFiKSIQRhnzak;;3 z{Q8O2s{Moj_Qq-~us~Ca=50>$NHV!T!EJyt;*qG#gQNpzSMMw}vcHEZui>z$rKzaZ zHK!EmrX;1o9CBK+mV?9C-aF=J{Rs#U_5kw({}50Udc~#Z5#4_tIfb5i?MsT(P^64( zD$G9p;*&LxxXtZQ$%!&By6c%!rCHUtA^ZJXmfoVg{jmTi<)Id z2{3xk#0MCQT5GM}ZJHG#n)k|jKA>vN0}V9Esc4143f%QA#&lprSzUhdX5Jll#ntGQ zMl}k1!$YvhtoLkj*Ddwp>BU-kKV^Rqs&x2qXd8bkx))hOaj55vS@g2w$Zm25B)4~v z+CK=Nf$8d6x(#C7>YQx=r+XiCtVF!|YJe}4)yN-m?lc+R9_(O4v@76))jZ6r z&>7Jdt<0ar^V@-GLR}?eS!%fv$#Ls!tXhTvWGb&8 zub46E6epXJixZL~8rpbb*JWNuSc(VI2^_9=7^w?=&W%}VTT7Vt$}lAjMB!hv5ETIp zYPpgX8a7R+5FU|{I({e87d#PE7^i*5VGy%E+x6g51^?M7vUT`BjWGC}sQHJ(bn5!a zS(GTyBjhZv?%RqwQ1~N?H%dnaE{KqnEq?w|hiJcaws*q+zQyCPl{vWzgQ|Nt3rmr; zDcLZ>*kZ8@#aF9#cIE zsUvW9Ae@EW;oB<&w1zF9vct~6N9w`~CrKIgb0a>m*DXE^=r#xIr`=|9 zL%s+6u^tKomPweIeNwGEeXY4-BtPJz_<3DONNAuX9roH5iIf!LCvTeWEzZFrncy#%@PxMxq;nI-vSga*lT$_mMk6U!`bY$Z5hp@-IBQSxU z8p!oj_CPeMHw$#4b-F*Cu&Ck;4pHlKEz3H-aSb{iSA8$%O{uk{P@-ZBF1&9w!VVM% zE1z@%OW++qAE%9yRb$lwvMubJE>BO-x>~QVr;ih&aA}gE7@RYG*M{i2JzHW)zmft=+>Y_tWDAKS zWLj`5pq+_?iX?8UjJacu$BO*ZVeB2V!$I70C%oFKb#!!0W`*I@Po*{2g06GvE}Sk@ zIC@Z>igA_h_E;tBj!RT&D@iw;W+W!&U)v-cBTalwYr|g z0}7W*#4LAj5QO!fJF2u}KhLcW7tv2TJ&ZD|}pIJD3Q2oWvg*R|;GK_hK_|dmWtlS*2ue zD{pUUAhP9TcA%oLPamfLHp_jluTS|Zod&x+3#$m1dHT1k!DD~sT>v>PAq|PPpC@j| zqN|E+l`gCgc;*>9e!f_>>m_hF$E?{Vud0)J0=%`t*PZ4dD6UnjUc>(?0nh(rXMS&Y z-sFw!>HA0LMY?WtV>&9DV#Vt{Th0ZYJvo5)G^|gfu@Id|H*@##hm<$3$`Q&ux*7<4 z@%Go(Ef;^-`%7swv>Er1*8kZgy&`;mGYpnj(j}EwbP=m-Xngm^x}rr;Sb++3z1XeP zd}uylPfBD#f?ypL14>`FE-n+2v!40LWY}cFHY59M8|k$D!bOp`8ZzIa6c0d#1H4DVq$_J)T)O}4uHcHpH!)tHBp|q0 z|J1(KXuA8N%Vlc)<=D0obyCB%O@-~7bKmg!iKVHQU{7%9p#zYHXy`2qZRnnWYgQ<3 zfDSUeK4rPLLeePNqYmyd)kNjvdC+gNnxhH5URc;9q22xOrx4p1h|2CONjW^cPj z8h+(ZERF%O)el5R@bvU_qU)@ING9`9Fv5`i*j9?ikl&%l6_YN8O5)j)Xx{GokcA|8ZW7YMNd!i<5cW-M+@ zz))nPFn4jz0C8vc;U|L{7ZVNaksd47lNvIp!Qx{FV=nb z)_q(7=jYKq8_na8yN!c@Q{%ysz1vw*{f*^7m*u7R%B!z%_hL`(+?ijzD^fKIcfDl8 z*DbNCaV^6v>^$6+zEDoPk#{Fu8%jDVJCSUrTcrr_y+5dy-w-T($?2vfp`o$SGgPN# z(6txIe(eZ|ojGcAv&Dx?rvH8d^HwREQ9g)|nUU!rc7>JPsg-FUKW zExuqSA&RR5T zf}}}?>xB&JNH=|m2vQFfk?S=e)nR!{e0xXP^-iGjRWk>)-hmz#F3}$GjH;77Wq-ut(u>Q@Bf>7X(__Ehc7{fUZ<$!tP|!?q@@?=!PP` zC>j}T@j62AD#44ZX5XLB+=7<7x(Epf-XeW*ojDzsqulatV7lEY-5RjsH>yc%lo8p9;ZR&rs((O?sdrfnhK2E@ zjXL#QZuekF1*e15`2f!R4Jai~NWp{(fcQ5NgchvifnKkW1 z7h*3FC%ZlU7{2yy>msbTD906A8Ulpm1a*=a)XaK0eAZ+Zx1ea7VajvXww*2C2&TyK zD6&!ol$r;+Xk3ct88{)#OEY6wqm;ur(p}NWUXrwKTx4(fB03? zsShiu@gZg^Glf=3fNtBVNdJ1Rb z2A5GECsV?O1+51?Y^DpoMjv&Xo>_)<^r1K*LY;HFC*#u$Ee-EUZK~E4xLxf|6A8e8 z^vpMho~TQx)U^mKnJVt>EJJ8BjIdK27{Kdj?p7ESDF**xC19-0s&lJePFg#JU!IC2 zXX|KI)GhUyT@7U5o@QA55-aW`%jIF6E(~E?vg4*s-1e+=6AjO)=UH;UzWTl>+rTa- zntx$sXSu~Q=MMm>DI18o3?H#V!>;CBjELY`F)ludr3)x;DdrdDFo6r5wf)=~<1O-M zMr&YU@QMip$+S1azmcZwOn}rlIimpa&bQ};UOmO%b$;XCYXAywwg>b9kTYf!( zbCdPY=Qj>ZeLDvm1^d|a#9K=vz{W(FJ`5$mY%)A0^N|wV7fewO#Kb z2G@us`ogi=wd+j@a?+)fEGJsr&)0=5mh&_xN%-Inw$#F+=8clo>W4^2l;DgZE#yLwJL0-QkS<_%327x*;J zmb0=B#g|xw%hU~inKbd^Cntf4wza&orxbBU8SM%iLjmm2iKsZP#Dizg9*Fpf0E0yU zxbBb>x%rYCsP=Y+&cvh8gs=VDjD2-%_p-!Y=161wYZ?k{RHgxy&^; zUtzdD=M>!M_V~*eoN+Cm(qR@CJ0ao1tk^HO{-tA8GNp8pCTDVUc`<9$^})P~IUGxk z|0=ZH^wY2(t`>xydQWeYN^i=b)aB@kcj_^n}qL>=G? z9hq7;J7A}Mu#aMygamVCZj|}+l$n&2^A?+@_;Z+2r*!dUWiqW!j@*v}a>~M;+fr26 zC5NM2PAkr9Vge65*VKogll--6amjiAu(0mAkZrLFp2V6-d@I{gv`fut z_v4DZLf+4&T~19r4*DLrDPN;6(sJu)aNe?i$$C0F%nW+evh$^Nadv?kR?IP;Qyx>z zDUYm_C*gIHw|d`E7`L=I62Z~<`32@U+ig%%lB|ohJ;}h(P@Fi@bNVtLd?9lU z@&-}+6hubC7|R#$rO$j-aq8J!5_SWXiUFnIt?ai| z)&~J}TB^_GD>2m?Kvh54IbOkMRvFuB3=1y<;~AqgFG7^xh=b z_oBC{C%80Bp_9xHwe7{a-?3}ecDaXs&$uw+lPZ(2;M&R zSlNdq{hRAhN15x&jEa=o&VUrU`|y0`8DpjlWSC25YtJazKJLC`4_pFLBo+gbOi5`N z(}+jdVLg%=ZWeoN^IuB8e5t4P_+bsI<~bxw857~W&XWsa0`a-#?NsFOP{dZ7CB69Z zg4O;cx+)6nVdEM*72_?M5ar?2EHm!j6{O@%jkw+TaT=$y9e(xeVY!`!_f=SM@i>~3 zY0P1>{^WQS?iD{&MOqTCmZ7r|^&lgqyD>&2Vy86yZVbB4Kt?D@_QvxBrlH8P#IDS9 zmqeYKB)eWE>1=jeMCcnECm>|4v>7yBlO$Q2|LEA(_EE2?@P`CaoIb~ct8YiJ>@b$t zV=9KGcdu+F&1jUcQmxp`rGSTTWa_zN%mkX6~dSFmHf!>Fd|Xk9pG?>r&ZT0;dS zu|=f~SgEUZ)mYH{gJ}7{Ii<5kM-G|pELwpRaDQw;C?;y;aO>fZM^n})3FF$#H6^TyI9uqXvq|yE z*Mr&_lNY!*pVWL-_>R*)J4{Olu}e58hDDd1eVHIZBAduM=TR$DhAs%^7_H)rb6Rzz zJ9@-{u(L}#Zwc4NpOckeOu_5vnzPK|&VM~+>}L+@!S&4p33K5lyBuPe2?%$GJJ_BM`HYq%l_FJ|T|;4-$Nq8CSEMuG#rR zu7$lFQPa&(b%|L^lCK|7T;{Pu$8%d*+tcpnW{9@aXL?Ihdx+9q6<>!qiMU6Rjn3$% z9I}MvjcvaRZy%b%Muu{%1F|^qgb?FsLWtRHgH!2{1Acw}>cQLPi_~q=%Sf)s- zhfADqLgZB1+qQRs46~u)&2RQiDR#@51d;a8=XfB6zdYu1Zr$|ml*8r-$HaDK&Cylj zmcG6GaGXYMSAhb|m{^M%?zub66Y6~k1TaQ7aq2wWMpJ1}v-oX6l~VZlwk$98s5Wo% zU{u&@;(BHM;3(Jk20&Z+9R-t3FY z?r!9W_9Tt%j7yi>W@L0#n&%Mh>|^f&zOA+NCO*5eos5jLIi!IdCp#`BjVt!k4U5Pb zTvUU4ezg{Gt;xb_+>oF zXTbm3`vqp%^w-lp89$180)&*4`L`HXcDmeFygk1Zrpws~0hu@vIdtdwJQ&nNHMXSO z$Wk{$vSQL6>t?%52f1tfC=yq{30Zw*(zEc`5QC~hx=F?v80Fj7=)BZH=a4xikfzwH z=D7@JFDn$?$UaN!BZ|g!211vwrmLoQ3Frg(`O|O8-dm(3Ad{5Dj+*xxmlID!k3PSR zz6?*yzahf0rNw3&#D&gOVPQHp7a3iTaFV62kg9Yh{i^{Zdklq+AlVzSu&}rS;I60O z5<*9@e;-g@y&CP6bpN3G)fpgrgV*uB>Io~!FREzV~IfwOsP-{N8t1aupIBWs7yuP{Z5b@nnVb=0hhPonw#0vJv z`+78}imi+>EdbZ#0;+ZsI+tev#NbAAEFe?e5{g6u;XNpM2X_zmh|SDkRt%enUe58|zXd6njRJ%jaLqi^=5<&C1HkH*-yy5(ZGxjF#v8&`aG>I%N+(zZilZ*u8pIc`1TlK2SYG z{H*uJ@Bu|G#qUtx@d*e(COg?j^jO!eOO2TTSb+;mGz%&tkF%=BjzC`T=Qwj}I)>>~ zU7DEIrf@7k>wzauHZ> zftBU#Byyoeaoe`8F;0pV6$lvc@$qs_0!NW8Ma-@^+-Q({K*KKyfSjd95RfAbhbD>w z5|3F*Q-NIS{BxFUV}A?!0~Rv&4O!rUtNnI|74AQZ4E3J{ zU|7dy#ocZ1jrZK>YbqdC7rEVy5zig2<#nb(!AnG|wv@RHfMFYmE4qWE5OC3?+bO0W z%IuyW0HL&`Oc~7~a+=|ChXBeqSY`KRHVD{#D|MU6C6A`Ml=*5}7#1QC-Ke`Il?c01 zoe9^{T%0Wg^iHP&0h#5s6EGItMieoK?#CdFsJMB&ea57Vic0)r+h~Nl2?b)h*`SMN z)Nw%o$@dqPHMv>55z)wFU4=4JnWv1kEnkvX0VGjgW}_onDI84Pnbh!UKo|wO_5h$C#7{Kg?jA1dVOjhs&SwML8zT{x zXM6oY3}VD$&54nzE52uwuFe*b(DYu+%vFG@bewt6g=$#PT5#zvcd1Bpj&N>zJbi3a z?#~Pkfx<}uuEp;;=B@A7azH4LRjq54wQOv1r~vXe*KFT@RcCMd!zqm~h)>x*E3qwJ zycVW#*=&@ayQY6=0v!h!jM>{Bl%~FHsX>5~>Ym#$a7EG$`T#p47OqPDv#{K87EAqp zP{HpiC+gfz@)unoM1`q}pde)9~TcfC|{@$9k0Dq*aG}+Xk3X>{Cscc}7z~}XU z#VeMCTv={gtCKY}sp^cjGqw@T?(&pO+^Oy{dff5q!3E=k<*m#sh;0TqbKlp(69~d1aQImx@6B)QErHUC0Fdt)_#vQ0 zX{GfBu3Tw2%b^ydePE(6iJBWYeIx7AMojfe`Vir%d+ryU{WWL2R=Tf>sGwl48N+0n z2nBrh;C@s)mk^m*<4?a%Vq1>@Kydc1umYK8+3DONRDT46hfzOw-1q_Vt}Ni%h!3PE zg$NQ#-zjc>*67(!Su7fKJYLgPUiF=e%v4f#YK?g1<%KGm$Y4)97wBMzHvLW>M>K_D zI=V+qcc-GdxJ?2tY-lrYyAI3pq>$aTcuAE{#VdzitaarI_>}jDUV+-$+`u=!%3j0` z!lxs~N$2eQUAjD=gHguEZ4Ii_u5m!tWq`cEy_zV%XB~#Z#^n#84Z)(yKd(_NxkXN=BcvPRj%ZW}7Liogj7Q<|9i5%7$8^VU z3O4iWC3}L_oD)~OPC$g9w^Z$8-S)y7dMI`^)Saf#?d#mSbwT6#4pUhfXm;nC-PJr` zhbIHe`2|%;Snodv!fF)%$Q{=$&Xku6%o|4e=7DaC62=l6aE$bsS2)yIv#1_d52bqy}HRR4$yqNM(K4jJcJ+@7xky8@45 zd0EB6%rM8{-KVc_J8RL1FFdcWugz97&A8pZX!&Olwg(9}o(P%N@Lr143%@4$NCGqN zd*JA&G9}C+^zrqL5K98*rHR*BqV-&!wn=tvrT(UBEPbEX8VT6~2lIUEWez3HKNB(}j&8&3e5i~7r0(8hPDtQ4 z<4$DFT^I08f9q9En+pj24<$-V|Mk?TJ=52V7}peZ&s0H3QBR*BfyP}$)uXOE>S@{x zZfuQ}joG@pVDxx%qtZSY*< z;}?;N8L<$91fiG~!8Fo-X@Fb5ON{ROoD%*p%@LR@Wn6Jx#t!|85K?V$E+Qu{|DmU` z65rrvv)jy*3*m3}!F%eijOJd$iWbb!J-xy5>Uov8i1P zf3HSu!NPotR|aTpjs0iw0FUS!y4VxX{HVD%*9kmY1iv(+qczDsE)d(S0kVs(@D8$I`7`lutc=0`nSXcEdDRhhD~zH;C@^*2#>o zO+c31*&5~{JDC<)$#1n^2O$0J78LIf^@y5HF|@-!Qx{+*kXy9B?95fnuhIF{E7sR*^@?bytw3C zf89+95N@t&-9+Sq>Uwq~GdYSSBN=aP`E8qBlgjkL=}b()z&nc0ruu7!2nemQabAo3 za;WYx2&t!l1+0s|4AN#{)}e85!}>o2NAF`U?8dWmSK!Wd2fqU(zHfcOqG2dykCEAU zg!3YrwLlv40LpZltZGoLObWKkzL6$kePA&ic8v)`pc9Mp$BBexSETd; z<+oMnYk@1LGh5mvB;h#|jd}Nq-@z0CD#-5bM|;vbs_bXu!ZQ((Gl9E&0R$8|grp+Wl5kw8zS6b|SLTUVk~YyX30D#A zX^ID;9YW7BVJ74!+@5&*Osv21*2vn8&((Iy&3lWguFt$zu%Gtmx9d$n`1L0&{P4b& zlg)rKX7H`5ZSI?I5bI2nwEJ!%&n8{=XPo(hH!0X1sCLTw2X5r6{0_7wO!H#lfSLQ> zR#McNKGAz?GE_M-eCAZr#)noJ<#77%-e&g!ptidScY@`;ZTpjaVru&5Gre&nPgxzB z>_Sp*fB#mQyP2kE%*&1vLkH-*q%Am1yRT1kB4Tv;FQ4h;WqY6);Zf)uP+?PX5!2=$ zN?YjnJ;LHK0}A9NvK>ny+zOvNyHNSOB`=J0l@3S-cqf!PxD~q^=wcb9Tm+V)e3tzo zay`pFBQ!Osr4-KZ&M;rH`QkD81?9&d^(_-#<~RM^eB~t&P?C-q9tC`vLsh*%J%6sk z>X_g_gFT)T`B_PD_b`jDBjuhk1ld`Pr<7-7b8`ak@gxO#?qjTeE8twc{C9@e3h?+Q zLGT_BalGRKDq=zp$O3NqED&6Lb`NLzj>gjXjWRG!nvp7xc=ncNYr+QGtqk2d^pK55 zZEVAQWR0Otg=Fa&d+~nrqx5BFP~E!~F60t}F5JQCYzGTn*GPlshMiRW?H#tiNbc8h zqz^rfckMEEgL9U^xOaNGs-st3On#mZxkK2mjMs_M>Hc##br!Qc@Q8u8NenJoT+eyj zaeVFRcv8OS?uJbcJ}+eTo+oKn*671$(5vz@#{U)66C_vHDumX%*Mt@iV$av- zgz~aI6c83E{3_$sEE*G{W{i8zuoJ~7(o%5yo`zs|T1)oj67zNakKg82%J^OWu0Cw% z74_NmB8B~^h2Rlg**~RhuO1TgQhzh;In3mY&*Ea}a9Qb#n9pf(ko1cL)G0q4Be&Gg zm;T){YX$9(1T$~&69fuhMAJ6g20zGk{>k4z4*W2t`5HEd{(R?;8vvo?0RjH%kjD0d zpT3J8u;qNf>E*_s!v3@MzvSd)@bH;S!U6^DU$q2|Y2p3fg|1$d_{Lwuc@M>?~1ML6n6N&LCdGSupcoxW0G)p(UQ3@oVo0 zm8dzDLDqzT;H+!DF(RG6masrh-T>3n97P-vU z+qTVZof;Hz*0KH*?XN_6!^gnvQby!E@WEk*6V+gJ+cF3Vco|KS26(Q{hjhc*03&3m-4 z)VpII543+Hw6C%Nu&VT>qAOOvQBIjBcK^JLhskM{|ME;V;9OajJd*LuKX~`=N8G^y z$7dcUvfcXiU>q=`G%a8|1T;7TejxTgm-2!i$SlW>2WtLGGC+2+m;s@0Ak`)ROhkVl z==Tr|91i+-c|TRfU#)+4?_cKphtc_0_Wo5Zzi0@We>La-61%ssr`m4LZgLw9{0k`> O8dVkbn}q9T{{IL2xumoJ literal 0 HcmV?d00001 diff --git a/ios/docs/Controls/.attachments/ListItem-List.png b/ios/docs/Controls/.attachments/ListItem-List.png new file mode 100644 index 0000000000000000000000000000000000000000..34d52d8a5976450ce0c330e15a45ba887e05128a GIT binary patch literal 31183 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

-D4bcT9)VdE8=lo=gpDH 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 HR)PNmu_+Wm literal 0 HcmV?d00001 diff --git a/ios/docs/Controls/.attachments/ListItem-None.png b/ios/docs/Controls/.attachments/ListItem-None.png new file mode 100644 index 0000000000000000000000000000000000000000..dd74a1929fc64115e6fb19c513ddc513c2f2f3c6 GIT binary patch literal 18940 zcmeHvcT`i$_b;Nc1hIlxXxBKuldEqRZ_d&pSUduZ=P$njy%S=p< zo-i@31GgTHF)_IdGciqAFfqxzXJX=Tjw5Ny0S~kghIg%?P$quh`XCeYo)b)afvY{h zKc-+?rhR{0Gcf@z0Y7___WXF7#QfLOeVC-Ze_b<8?H0@#n7GBn#4Kj3Ylt$0s>@h9 zISAf===1;~=;h$NTYyQpFRz^ILn|4bTPlB62foRlw?UztWrT!0Jv{|IMFpK)t%a^j zOG^t0iwKE`Tmwp6bMtmY-S@iY=yu^hjr`TlErgq;tF1H2*2$4~x83^>oZM0J=g;rH z=QJg#NY&1#rV~ z0TaH!;qpZZ8ccSps}d2!tiR0~Se&L^Xm zUYgiDlY#T!z&lY6uSAUc^#(b1ynM#Qe319iKR%T9F+V-Nbc5s9CqO|j=6#sr`{G$uIUzKuSpnrYKF(qD+ zJwebn+HJ@Go31leU7q=+V?aLxzwA3Gaa-lC>VG#TU_b}{F_u5R{yQK*l>cf7u=9US z?%z4|=d$weqVVsc@E=e1e|%B+d~B*j$-pz(9p!H10RO00BxVS=4kmcIPkGlJU(wPs zw0ZjZw!W6(vHLkCo_dB_HlJs%6N{@aM}{q!ag;cm{ly<1J_>ls<0f^)Yz=#)QyvE~ zho~x9j+8Z?DE|c8XR6wMTl?;dsPHqkw^NnT^^M?r$cNfEE`8~)-s}DeuOQs_*&Q*z zMhG>^7B&}-*3`5TB|E5@;^(Gt_{QmR2LWVSqhp4>eF%lh9vy9b+aPt^n-6YuKkpUa zRlUdIAI%=RcWrC7)`1JT4j1AH&yIzEH`0ArejOa0hHx-jNe z?D1_FMIx2rN#);YB-!%OexK|(j(-X)Aau76#S;$Mr@fTn1%zUCE@mh-kUtYg$n1%g zffu0ns{Rt)D4pL8Eu3RaK7>W%KfdHL_F(pZcG8OK?ZWoY_U|6IXj)4#fz-bEHQc$V z1oWL*@PzWMUt^xP=aq6H5Q7kx^Z%3@6Z4^Cyq%GcLVrJY{FnGDFa?Oa)Ec55#QjrH zypNQafnHzgJAeJwKf^e{+d%*^ymd`IedV76ILP~&2{5Tc#di)L|253I6T(!5{l7Xq zwkwFFy=SaLxZ=eSR~MdxuY z+lKNn#vk4^!h}GkrdEQ_DZQOj2~8m?k?`b3=MTRa8WXb%+v#@g&}a#KVQIpSdDnP8 z#tv?x0$X~a`q&>@YMP77{8&T7bhF8Gp!iYb@s}3lq|(JbzbIc=IPg9f(hg})oPI^f zc7$byk}nFk6>h}(SQ>o7ReY226eGo;p6YAO*hxjP$3$5f)Zx5t#o%Z#7w@%CGm$rZ z3^r2QZ%o8E{$g_$eEXic=i)xIAILFKfwf^+A|ZX>sjbNP$;qtJf<|y1X&hzQkmX#+ z!p**7E>`CC`@x)E*!**%p)IQL7&3$cx-b0C{!S(Ds$)7Cy4gGPwt&rM!qHKZu~W_q ztGW}N7kN7u;(w*)`7iOig%lVt{_lG3d$5Ah!{2GPJ=3PWx-t&rUrI6s76bDnq%rCX zf-^&L_!REmgQ`UnjR?zMM#t+7Obie6f@;8s`1$hRATA(LMo$H>J*7u<&<4Sodnh(d z(@v*2J*8Fr%;xh4bOZzh^FrRb3S4u|`~r$yw{x_=PKmOcMz)kcDq+^}X+7~Nh9hU5IeXOD&YD_yo} z@mB2Y>_+9mkB{9UeLATrci*$eJz9Qyb+DaA+xf5uEEkVzyX&#NHj3Vpo|33IsQP2= zvnW1v3<);*RvmN`BjuVkt>_;1isw2_rQ~p$MVD@6jfYsfaXh@=v6ST$qy_?mnTysz z3ock)Exb)$As7v&c?Wyg>Xl?`pxwKSy9U+;TyNk}M!GTUhyam&{%eiqG|$QnQ=!L@ z=;M{E1EJWuaQ~$X8w~~(4`zKjN?pBW>(0OC3&g{VXcPl;hniqND1`tuWj+>Otc>kIR~ z@bjWS^#)kddwk=2Oxvl{;rv$_4&x(w5tB;KNPU|TxW_ugxaL+=W~3!?mSU%)h07IQR=f}X zGE-kz7I`Bt@aLFm@2NXm<`a8otX9kN$k0&xX`6zMOvz45`*&UfpVzF@*hkbtLmaBV zsL5JPDD?8XHF$s}+4n1YG*=0p7B3l9y~c$n`i!ceUC7|sJfG3aWCh~|kl54727#O@ z_w#9St|0~&<)VG=oxGy4lrI`t&t^v3TA$3(l%-^M902-$nxz{>hC)8Vl9t0{XL1L_ zWCalc=I1h+P~)l5G{x;fMJ%Vjxw#Xg7wy!bAn~)$;oSk8$jybjln5l1H-0J9$OTIJXx2uzs}T@CYfl^<*g*k0^qle>0wwurvH zQsl8V9L-n{n%*hPv1S)G&_a^2(CpLxX;6$r6FM@Q(cCdc|QQu!>@ql^6(7!1i_t%CSVf$En}jhBdICcgJmCCSVFozaJXZu zH^?Kg73!I}#dhM?vSY2uDwWHM73?;~gV+{GYhf=tTaIVoWrWPPXThHmcQ&mj$HwkR z$AtS1UBC)ep=l~%oPb~TFjkWwhjGc4Re#x-E;85enOsfWUP@aDHQ%gm&oQ6v$?TWZ zNRXpy$S><|j0S95J4KbvwQSJZb#M4duXK$nFr;PYe?M6cMLYnO55)rXOi5kgfLZSN zy+ZvVGKU?zen)h>`gF7Gtoos`RJivHeP@e)tp{~G9*saCu-WL9qeNKCff5emDxJ*3 z6Z3$jt$-`WIzvLhIUdpZ{tx9^lav)&1iZpx%ns~L+rExIJ5{zqvoDA>%Lp21IDMGN zv$I-<_0cXVoXjp2OjYPg4(7J&FmZ#{3a+nneS7a%IxVr$5S#~teZHjBw zOSLla3MjLBG-cZPvh|$ky3f|IPyjW-e|7F#b zY>x=$dyAKwP~;IScrr$iVKt3CA?eV34Wa0l&}cGIc!WbYR@yOxYb;3fq-xl*4~30H z)G*koXFnHkf6$(o2aLlN^u@MDwQtwSHq?)quPUz9YhtImB3=co1_$Jp&X5FBLq`(> zde>PbAm|~*okhjz=*mq*j)kF`wWBiiGJmu0B)*7t=t^9lpNqZ+RKfu;bBOudsQ8aq z_8LG%azcC0n<_SBwV{_=`5zdYstdeHZG4@M!{t#j4bmpD)`=CLu=f2*7OU@lrPmTS z+U^Na*$qs-+4INjxa}D25ic2=ui@ElMYp_B<+YOqm$@MwUmH-Tg*ID!HwT(e-XacQ!#gwqpHqtRoUCuFd zC&LB0mQmHAzk|nE-iu&@9Qv!DN?WV#qx1Ne1FLseL5l)rK}!ppgT=Wv=;-Kc2UNYY zP;4;Na#p?_&3^T)4VlBo&*du{6PS_tsX@=c6v1Kc>$0l)m=y1Hk!#*9hIO^+x#&0Wd3-d zO79LMV24rSQ8WJ|ta;3<1c)qseF49&2Ied;Ll7_$lHVu}`~}yum5N1#Yl{c^7O%7v zy0CwApuIoTTPQ=ZayQd|j-`MqS2M`wJL?@Q$w&RZ^a7qB&G%U^`n$I3@>C`s z53OHnJu23${ZVC^bFi{C12Jw~5g+-=qyH(#3RrN=nA4;4zC^&b?<^@D8-?^=&NNRo zQ3kQHzg$e?#>!rqZe(~P&Z=U!NIbf7=HvrgSoWccg{YiPAk3ehJ=@+wdKbIS5f_Ht zN#K*ccjjpW8(2e9_Y}FKa@#$pIo2YQJ^j-ge*;(BSmGIE9XA?D`&2A)h@FkqI&i$a zVZb=oB9M_aiN%#Pw6kmr+HaCN2ue4x7W%7k59dqiTg@yP`|CRClXKGJPOtn`ZGI?6 zSqQ**LhV~=->mMLdg$0{ztGdua1Bg-p|7Jm1&UG&y@w3KNEn!zSY0sTRm*I{xsyoh zu`-O-5NqUgbCZ!TIQSw|$-J-{YToxO-)}zDT>X%a%~f!FI`-QEg}FUKU)VSkD~7hl zH3RY|b1D@O#-Twr#>U%#O1|Kv-rT|KBl)p5QNb0Nb;&)Aq| zpG6C(i4Xz8n7bs%7Q!(L*_~tit z^xJo_020ow)NkNqVlJa>R31{L19IAgq@KL2E)2?BMo&nBj9d>%;AY;6Tzq^Dw!hV& za-Cupco}~x9hc2t%Wbx*R5gxqB-L*NPA@GDy=AIR{J>l{j@1BkkC=HHkb{;{U%Uw$ ztBy(Se~A-wvit!8DkbcDuM!PHVGM@Q5x{@DQvXS)|Al~D)|5dMetX$`hXSVvuPWdR-`R#(RTh8za{O+uuz%1jRdzaYHtCkHL zuZE2kzKt{gqUbfvw$FF2>cHdDvPzcNx0ybU{Ynu>be-pb*mx;FC+Nll=x5lRFpMP; z22>M!s@Jd%P@_{MqxjFCz^_zO=IV-Bd?hAaw6L}@{sxp=U$2$w1;Bx`?@;wEX$`(BaSb1 z06V3A_76u6G)Cqn+1i(g;qRp8rEEMnJEa=<4&@#z0)hq2a*a(UJF9sr#N?}0kETYk zM&+fB-`lpN<|F!R%5ZuvCEMluIcUj`e)p_cFGti z7t>4YY=1y`MZm^FON}u-cJ5p;N17Ze;Vz`4f-bO(ha#;MpGzRilh*y%3Q>mEZkg`I z0f)lKA2a38W4bS1kd^_&7G1T?eD#g5bF7Bg?b;Upg#h1gw>e^%HK-C4$@OZEir21Q z+2(facUpBx01^V>n(fuPhMij~BG`9eWyRk5DfhDp`eq6JE^6KUb;5TD7ex{?{Sx3i z_n2pDxi?uV$L#T!`@s{zwt9pL{cEs3+xoYcdih^)m^cSYUb;t>icMf|wyW>|7`&;4 z{~h}&DWSjt{PmfE5z7I%$Z~2WOFsnFpLM?600ytAM1vI|$KoBxbWYPQi$>k6CZlZ4 zw;G5C6<}jQ)nzJwp+LKc6(o34rw<%pPm8mYv;~`D_04qb_}R=xCZumu!QB902);@v zTjQfq?td1ap83{3`_Uqe#b-L5FfvWa^C>K)DcyDG?+XjrIHJcAFt2;vk$tU+fRlI` zqIUpZJloe&okL$C78yyz=vFbB;$`9ASDglrsVWk}rzJvDA%>EHioKck zDW1+Yrp_@0Q!&cLwRc^w<2>0-nY9ODbp!Z2ML-yo`f6N$yc*-nh42*hWSD9CoLFDq zX|Gp*Z+Bk@0Fb-U`%DiNoWMb|as6b>b;k^b)^+Df_YzwVu54Z}>!Q&8B@(2;pS-AG5Zv`>g&jK3gh7j{}Pj|GIsRh6SCDJ}lM z&VA`Sxp2TB*I%vWXuemnt#cK2UAT(ISC#nGe3ax9-^(L-5KrmcpUL_(LjMb}m)0;Z zu!4Fq9u)--l4a zK0D$C(?Xj!ptKVHNnzg}@-q98Ti8aswhgvOumtGy{x-4rYn^83X>k_oz;#7~CL*=K zdIRXbUw@K8%hA0;Kn(x+Xnwg9bI;s~zkz#;V<2E&1x~6FjBnp9fpW?B9?6b%I-r?2 zix6CMnx2|L<;6)%cFLP-Jgv5Vg|XVjI7T$O8@ajy%2_If5+W`fGeg*pHpeTAc;Q`% zz{WAMrJY}EuR}j_zaNfO6V&+K(+dp64hC%iyU$bIg#Zi{Ih`)?tl{n%xeULP$k^-@ zp)GK3`lHo^!ep5o`7>^-<*_;*BQe%Kpn^pIb=w?l#Dq8iMdi?Wvx6%5opWMuoRdHv z^yDg?MiDadxgHj`8%T|vm{ARgNbnwsN$6P*j&SB#PZmk6KJx(V$eMD^FgK~AYkhs= zIJag1Y@F?(uCqvI^%xD64O^b&vw|BNrQJiB9wZ}zbFB`pR3_7c)e}C~xQ(;k)Tr21Ut$dIzQs)#K069KM z+fIK?4C&r)@TQ?I1}hMk^`H$9OJDf+IZD)Dz#Tt+1qTpn+T{n2HJ3>)szS?80M;sP^=HsZd;e6 z9wXoXHBB8h*0$yE)Lr~->G_A$N&2iopi6v2&2^(4lCl?4(N9STdO<`xBf{8 zHbCst5nLMbNRvnO+mZLAaLkdSBD8!xMq{+{_6_W)WSLbs-fVzd$Y)Qgm1KN2nc}3g z<;;GFj-JwGY)hN*#G0v|Q(*45h-gL%PqHH3X5w(;%OBNaj+7r!FSr0iw4|0hi|vN9 zYMw{dP&!IVRVgq{c>;Z11k7toAZq$ez*d?)E66iti_Hnhcft!=i3VPBkIV6gOB)4C zzs^+d_}`O6+{|JW-M^Rq6uXL{)Oc5OH%WY8&c6N65E&}cBMltC0=c^YDcuin)c9?Tzbz!wM1%)>} zm+tcRpdwXy{JtNN8A~clP$4~ffwf^ROhr49T29;SC@)u_MqkgE6mXf77}$-M76IVM z&5nSrXj7l@)Ri>Ft$MVLkq?x;@q6TQ%B3;!OB2t|Ip#XI8E&c(QQzp34a85TF}54E z>d3!g5iI7-v3@<% zs82#hBM(Gnw|bMVW+OL38(mynb>58aBIRfs{`dM*J~JhwWe=KTH6jI1-ZJ7R6-5rS znRp9mj7H7c<82YUcsLr0Vc{rkW)$yVT--c-2~mN=sl2rlc$(JsR5YPl@o3of9{H50 z?FDwJob+^Iynh-}oS+UHca=`-Tl;B21)y5>kBt^H)|alu$#jLi&uhiLJWF>=0SD!D z&Of_GuV^ODX5^XTp=M2&K>*q}i0INPYTDGvAg01Zps?uSA)-?v;@^XvsVBG zyc;J>c7beMq;++UL9lX|N0nW)DBf!$+l#Alx}#4=R#Dl6UE=t_va!0a)+lHm2B zvR?FW3{2_kuGWir3u-kBEJrz!1+~zk{DBiWtwjMgrj3H|e3z1IU1bdziP2g5Kz@9J z=?;LDQl~_sjqx=U#|8Lp+mg&Kv5q4N3N4w#L$jmOROWsmS>sD;F!Tqzd(naffb9_; zP9FGDg`LW9)?P?U@ZsOZVryn86Gk!m&l+%pzbQyTG%j7b=rE9 zQaBu{3RyhICPNWd^W5J4#4gpr|ELN}*;=5o9cIaXQu46=1j~Nb8rYcFvIaxp2XV@q zz+Ar5;VD-aQ>4v4n@uQec~U+#W)xax3{Aa#sdvKF6yU}Nur&@{1Tu>l-Z=&u%RMSd zu{0*FxfiW>U(R$9k2N;UbFS2jj6`QrxWxR-F=BRcEEZ8D1$xHL5Ko<3{=PzELua)J zl^nf%0KDa?f3dlgrZ`OrR}k$EQ`}ySG~L}z=A?dw9T~G!HlGNZZdE=?K;5o+Tz7HU zy)CX80D_$KNJ+DR0}aCTPF{>NFfxiU1u&T25MSdc&G6kRQQmy1gR9}wA#1*A0M{xf z-8GQpJNMMaJboP}}Ij_4~OHi>MZ?g<)=I zkz!OckMe3eAP9IqyZ{H-QJSA(Bo5hn>`VHt&j>?s3`HYiHb@D9GQV z01#lfk$!urUH~fq6|e_kuyD}MGJS^%&`k) z0o7^fb*4iUU)HM#XMW82?P<%ULmI)Hu6G(Bsj?jx(qag=Y z^5$0u!x`(gBn$GBLnnQ>qV4K07V|q$%C)Pltum+%S zSkjv3v8}HlJmVDe2~=Rp`a2agV$u#^rPR9GwFW`&BBzHW%N=K@=D>l9gLaY*8C~~j zX#vT4wYoq&CkV5P<;w5yHSqE!;%3h?a!Q6I*MjPOx4TCbtoupQ{GFL!Sxq+r#V980 zyY|Gs!&)yJ4!*{`=}eq)#WaB+vCdZM!rLy0aZpJ`Gz(gV6eioyR)!7ZevCV?m*$uxBJ~^o|w(R*;QDQSIsq@3_ zP#=#C*m$JFcuqwc4}UAR68eL(3S0$}KWKgqVtS71-cO5MyJbB(>=uOJMJ%Vq2}PYN zyNL{2tmq#6&7wwxIKqzqST+qhIZ5<^jR#RRqXa*poGHH1Jz{itzXo{{3@$z#b2TE@ zoC-DH9N<8+>Je-OOQ-VVDzk8x!{0d^?I@6*NdKsVZQiG-C2rTOxU<j$Jzz?vPZf!*KvdwafU(NRLfNsx{CbO@iy(WbbUXWFi%V2Gh z2g!hBU9%j#xwo3k8bw_Kasq01ToPLp*T03UQ=hrmRVnGf;h3%Y@PMg$=Qb(5oyka; zM!nsajDV#Vn!e|U4G}UKj)q>^L6MJ{&w;^yj8ZzGwzf7Q7&~XnNhS74L*}*s2vcx4 z?z^T`ra)JP^pU@VXx;$kThbnIfiY3{rF{U8{16=;KS0sdxg5crQCXO66?%h{A;%j+}ehZvL@k(Ao7)6*j9mrJ6?FVmzL##CtGLl)n@ zy*zUvGQll3$$et-w_Ey2BK?+8O(f8T869aHk!|I;PXszYKmU~Z_OSV8Q&z%qk=W@t9SLeqz}92}gCAqxo@FH8RrVt< z@Ohe&i(GKjj`piF*V}*{a98cS@D*lt{+aR`s2>b=e6G^b%vQ+J zM<>m9NCwLMhCtq!wyuGid7Id6L{9n2LP)H@g&_c)UsjOaybbrm&FFgBnVBahwj|oh zyc6LLg6;{0JC=L~M9(91I@MOPA@-1FX=4%jQnbkcBJMkdvV7Q}+2x>4I5rkL5?^ zfGzh~V?IoMVs+}(_4H zIWWUTu`e%B$DN+*SHt?;mM18^%dMzyeRR%c9Pj(>%T^5{EdGvjgfN5GS7Ct*79+4Z zzaN;{vFFjdDLWm?gm-6+G05fSSM4;aW0jg3Snir9c~oC7hXHJfIxCE$L-`0Lminbr zSVu;{xyd5*=c>oEID0Ar-jm_c#Dy1J70V?lRBe07FEOtN`3%02^f5OH01`_WXJ1zc zE3WoEE?;2~l*O&Y{6-(`Ju)_#n~=DhZQ~D2G%wghwYeO7Un{^DCIw@wInh&jTU;^^ z6%DS%ICF8Zs?_?dLO;{U1Ya4P@G?MqDGSM7KJBdYdT@JVmccz8_MTs)fEeD35)r zd>}-itmSUk+OcU}rTU{1pkQJD&DBEcyDH1Ja{W(G*rTZ7!d(henJtB7|AdbJ=}s-H zx7(+l85FZ{wvFD4hmkBIm<{{Ys}y7hf`8&^E(2L~l3PcjO;ac%W*(qVjUj32Hl^5idkjuBe&#Um&a8z7Y)$X728HFJf}}5zZ(iTS$a-c=&LH)38dB-$;gk?x zeyePuopF8Z#*xK^aTEaF(c~H3gOs@mdo@dvi$LiVEO9+jQeK^LJK$R4D1~k)vSm_v zg}&ZiH1+&KSnjOvsO;WtdF`EsB^`aZS8AzxBK}eLF0ct5C4Z+NX`5?{P}uisP+@`h ztOd`L|5CD6@w&Iw9{1V%z%Z(@<`)1IX77_B)ep!@Vv=U%- z%atsg%lcg=*6l+gXD<28H>U!I=6c3p&alTbEzzG8jdLYKC8&+2!k8=y`t{HEYyq;MLixEMixnZJT||Ltx#_|%S7>lX~5$=%|V@ZO!K8q*Z7+p zzBy(BNtqkVfb&?KNQRL4V9Cyu1|2268`_{_j6%pAtOYgRvp1%Vl8^vXvqt`uN|K=z zm`M>qjyn5oX?k`Nj?%BEKU$kALt7WPm+LtA=nHTg+(*Fb3~$`sF)t)Fu;49CaPCpd ziD%xlxRI9Pt-D4wrDPL%q%S6>3L!K0e3ZEhK#p?>?3>yuLEOgkQ1|Ccw;hBlzVoLi zx9BOUkSCW?wcQPt(las^CP1u*)PLv6fEYIDe~UJcv3rU)F;<92ZS4|*P(7Xf!FEG7 zw3L|x6xO!rt#o6B7JJRwEFZmaxrOJpQNyHE=s4@{A@Ie5!!k!& z-(7>3p;ZIJjIx;s`6sVvCUiS}5(&9}G5M(Jfi2c=^rKr`WIBYB7!hR`w#?Dlw9FZG zcjYn9X40qwxL5(0?0cKrC&r)ubTZNVIKVP-jMykVv4Dw%Ed}kO=Et1&;0JII=KRSa zUeV_MCI59_3mS+TIpKEoS@53#`(uH*se%^lzSt#Op0zKk`x(mPTtDI(oxuC11-81> zgBUrxxM@2FB6j87o&E({%w-u5_Zau$IwouRQz#T%TRE6rf?-;7IcIcOAuBgkl+IH> z`iJ%ZZrBGTm}s2o>7s9Ygl>EQLH1hh{rd%t9>l)M=kON=T&@E*})S&tT zbt5R3_JJqe1V6iaHxK%30K%Ph`Hh*a6U{s=RH}pt<{8oWWx-y8oumXy&YU(I;uajc zrThoUWFd7(S6`ooFY2`elB{dS3#B;zVlexhRCeD5(##DhOhOep2=19u0|v6_jF0329o>O21#`}Oiq zJfH{&&^jb0Iwf3tBM`fALV(-U@hN+%VBQNG7|(;vgS*zji)FTsb9r{ntgQ1~4-oM| z!$U$s-iN)r|6@rV+C3J+fj?Y#img=r0>>)ktWj+L^XDD{ohdE+LWG+Pqo=7e3ndWu zKQ~5iFAD>S5#+}|j`Rp`0w~XIXDEwmq~Z9`H+^GHzxnyd{*vOi(e){@(9gHC9Zv>g z*?4|3u0K;5ExrJ#`EBPzY^#tgzPu0ZH=2tG<$`m@*X%93ITQ6R~_DS^E~3R9ACbB*%rn>(5H0r`X?_8o2tdn`_nP;FhDoBU8#*v%Fv z>q~z;wYoQ~aIaMpkN=hWGyfdRoa9x&?1Dmbrs5tmjBH+AYtrxNv>?1%?wveH;`T6o z=?Y`53(p3~By*(dY(TnR7^nPH^P7`5|Dnr1C!?gKEZ5nppT85%P=H39HF1R|bD z!>FV=7&`?HRG$}s2vXXyO;X-FX8;XEWBU?oWPgH+N57jY%m3S zfpgEA%H^Z|Z5WU-Zm-OcNk^=TUN)04ApW^xeM&P$u{i z{NtT}UEN6mqWfEB68nGf!+)O%`yB@0aR0vy_21$BZEF9qoqx6W|IR%8*Es(*&cD{} j|L2^<|L?}Rb2LZuC;Kr~$-66GX7kr6^4h2#AP)q1Qy3NDG7>kQSO)P(Z0dXwn0O9(oa7 zf`asf9*T4V0coM<3v2ED?f+S8ottxUu6B5yWX}2PZH#w}@lM|8>1Z$mxqvh@G|ZZh z9vINjoI+8rm(MUzzX5FzVAP*e4ys^P8k+JL#zPwb^`6i6kpY;7#$SMjCgcST%|7)} z$RZ65LXuj}nubQxD45ksGUZ0_%qrFH&Prah0{?WX0qB-^F zH4P25ChCVillFg7GwJ?2^%N?T{=ctjmQOPBW%16^(9lUc8JT&TfgdZ_y1~V5p1D1> z6MqhOKgmF&_*{W{3AgjM;d>5uarIJou5|s+917IylgAR*`Toq}?W}a&46Mhe=H_X~ zCo3)~E_q!U$j8U0==scE!QjEe|0+(sQ@ZZx?d`50A>r%mEAA^L?&j$raa&$qUPAJY z#GN~0)Er`7ey-j&&&6E5Zv0irf7kQC&db)*$=%z@&6V$@UYnQsUo=c{|zvzZ5%3`K#EUEczcwe=n-$=HljQ=x$?cr+oXr ziu}i;|HysPa|K;bCp+q-o=n|I_J2J4ul$M z(9MrQ&tTk)>nD&CMR|gc9^R*+J#}8?Z(n?X&{5XvR)K#coa8$LI3w$EjW2|T?#$o5 zas*V$gk`j3U;HzPPo?aQ^WR$e^OjGBHVll`uekQlUeHiep3wijk&`yjXV1H6Ma42- z` zT;dy!=i=x7x0&S|{zK+p`pow}g{CzRCp2>YA9G3_ZmU4azx0_V6nE;3Z0^G!FaNC* z)Fop6+v@yz`@c(cvN!&BiT?K#{g;gR-&1rVa{gD)ok-aKkGcq#U!5!VT#cYa7#tzM zoySmcW1_$F+HzGisk`tZ8jZn@?kg0bF_(J-@q;)>&^jj+G%g?=&15wMSkwH6YLUEq zBG=uojx{tC*Jb0cTK%q2D%-jY9jO;*Qp_z|!pZ6n^;)ZG#FW*yg(}Ud!MI%>SY)p% z*>eX_cI#y8ksp~^CgT2~6s+CPFuBayxO0w1CJF?&b`f{hp%TLxi4s+KRbpP=PLwgi zds~eg{+!G?u&I)F4ZAH{T-~<}TmGUlFn+<%Wo$Z*;g0qS_disT0V`GC(arzb?p*CQ zJ$}YGB#xDnD=Cl8}jGvJ$)J}{VEjS=d!9~F}-Q6WD?Ez_X@=Hsp=i*(4@r4 z6c`ln7Rw-pI3vwZZ(NjDO*%I=j8Aj{B>qDqhdw@Y(yTOq8S!OM0amW2C2$_={^eFO zhxXs0#d|i|`P80{P&R}|2aIBAd@=~9p$kG1q`N=z+P$zE0q(gNsN}Io*W?uL%@)q%ieWo zNM--%m>m0)k}c5SM?B6949DPQWX-@qLF=-+@BRg78lgXDo|DBQsz(Z=z&?{%8mqpH zyybIU&c$duwdMRQnKRb#MaObddOEJg!qAk1A%#mLredFO@tOa5cP&CP^FQWIMS(6{ zVR&mC`gS#@^qBwoA)dV?uxk+O$^? z0BJ&DteiOgxA}?9j&h(KQ7BK9D`bqT%2BIjTE8V@Af0a*M;LM9;SLw~SM5d1F6ua( zLhTdMc>aOoRQyhQgd3lDDw;CHFe8fvc%(2rOp#3+kX!@a#W+`&By_3j);q4t&k*v*pX|E!#g>0GmpSV~2Dm`XC8 zjs+1~?5r8L?Tvu04rksYEM7CYCvxU0o}E{^5jkAu-k85{vud2%H=< zdpa#>XJoMV{9~Yu%2FcKwLHnv-)VD#JZ#Hy?{NLAT+0H0PLpcvz+($B=<@m$1@7C= zK1OlfQRIBwK)(Bkhmh9Fsn<2w|9dB7MwL4|tXplF8~!LLoY{>N7KNy@;v6;64k&VZ zg03!!?msPQ`dO33K;RU+_!CZ~Q_Jr*?wx&NDJuP*f`Us&ys)g_#xs<1P<_x8J#X1% zDf?%?o`1hdcXX|{zyB$V;(CY@dEBeob509d{xkw()iTi*#qAI$00vS@8;KTc71ZPb zSlF7&#lNHsy;$$~xC^yNjM6sFaAzLn_A(|fPXKk-BMY3SAaiSm$Ne+y&IGwRDPTw? zqgZ6TB@Dcf=4+|b-Mo=d%H&w4*(zZ%pszrxojD_`&Z(GmQ>D!5Qc{@e4X#(Cq=ALe z27A)eZEWjfH%kb%{0DpEVNO%+h79%S-s0plSch$V_mK4(H$urdC3bNt2|GAuC%IvztQ;ROIpee$D6C8^M>f1;xCeJ&lu1_dWfy zTkrw2VWpz;ONFJgvvVK)M_G6ZkH;SudU$5W@a;ZZj6q}H+-Mus zF|5J<{`zp_duBu&DzOCWB#Ih>7)pL6MDm&CuRV^-A{Z=|ABC%B3Z4ukR^H#k6`%9+F{rRiRc?tN(M~9m|J@Pq>5{tI&k>R@thLI$^F5a73z{#bV{@Ys-RMn0+@T>3ANjLZo;3L8NE3@3N&b`%Hr1YZYC6`fetp@*k zOi|H2M|f37x@GnEywikFy=GzZBKQ5C<=RlKH$?HzI z_ZMV^9j{>tFD}da_W#Tbn2_Y=dN-MqW1?Ra9+DXLSQLdSmOrETf#Fq1o3+8f;=Q#- zshtpM(oa&unro$fS4FavLkf@s_UZSibLq$tdD6{!sALtJ4heJ_F1yBLsn6+$(zqJD z*JGFSfp1R61JTewCZs(SR`*UOmz_-<`&-Eb#cF^;>qaJ5d379?V<8 zZMyrEZ0_26DLw5K;`-GS>Bh%Q%lz@Ml?5p&+nW;*Lps^~+Pl5aQ+q&^#-r`hV5~#B zUz^dJ#eA#7UmQDqF-V+i%aM-1NvUdA*swFFI(;HMK$l168k1Jnm3#Py zEIb#O6pwfIM~w|T83KMqajcZOiC09m(oE;H-dHcC?3b1kLZzF3o)t{B*0}1I!^|yv zYbQjeISwgF8EZL$mhuiTvfnB*)RF&IQu_;75B#?L+h*`o^H#3Jc6~R3DPtd(zw%D1 z`}+aqL1%$FE~({kuIzj%S>J%U9QHaIbiBKGBmFOU^9ZamcbA!llpm+7Jkq?Gw#ItJ z*-$J?`DjV^Rru=$BIR%aRHH3k_lGo}^jYdWa=Os1Jy2yB`;g$L2y?1(InoMnnu{%q zh--6yBmNM?-#JHPrs9m z7N7S7Obie+vCP2`oF(ILTDr^U_4JHonp_Q3c2b;6&bAASZc!c(f1>0hR(vuu4d8H+ z*kjs}X75g~%|D#~f}YoDvG@H~%GGM`P>`#yjmfN6q}Ork_mx# zoVE>*3F4`CI+(P>oY28 zzv=f$j+vR+XFl0s6hzqsE!@fz=l~u6j`32SVg5_M1+nRM^2;qv!X!&O-8~ic z)$ix+_Sxbr8`hHM{pHl2=iyWt!o)xo@)PE`+Q%ukU4Nw1tW29`R4;^^&q!PEwnf)8 zGz!y53UJ0bE$|Ij&BTw$3M>lbv+JhlyKa2{UA^#*=L;XMDpNGA4c5P-5I(Yi3(~Pz zz!f@udnq$GF>-;_KBnX*C6r0qdSs73SgpwjA~#Hm6^)@_jnZES+o@f?!i*i>on{IC zNR@o&zsH6!^pc@6Cu*zuXlE=5!3iVGp0<-g-8k8QDm0;0r@YrTpfW+TH+aj_d?)IP zEeb?ygV+3br(boBvWuSBB=}pOKZ53ao2GxS{uMZ=72uiCq+IeKS6zIy3)6d=y(@_sXMZ3If1UQWj(YX>YXJnk-yZ29> z?|pY2NtVU?IIZxvBzvPZ4)LW(nU%2orRnUP`O$?`FP+l+T3h7%JzSrksFvqyCozOi z`;JsO4SZ?u{nP|qU>nsz2OD04;|qXc9j!W(B;+i#vo&I> zf6ug!y}K-BKz_4hytKJyDWTAvm^iL^LHZ-C&Z%Lwn$ZDZAU7bi7v8RsVY=xBg+g~J z2K3*nYidvem)^f^)-Dtl&PdsS#^`5IxS69no>IM~VEzEU)(&cgp)bkYKkX9L_9Q-}g+e zKG?}1rfFwX^tUqh_}90$;7hNleHFOHtCM^u*NP-s-(Gm7_{~EjSv*queM7z44)!N0 zLm;8jD)ZIzw{iy8ZM;(26Z@r&Cvz=Uj)o^)oi3*qdUMxQxR;koyA}FXiY7 zPmXf9SE*>r=HL%O_Zm%?ImBd%W;!Bq+^-zT>Hzonb6Z$ z7uf>)D!2|*ZGF-Bn0KAb3Pu~X&>NyS8qN|QZZr_~g6>Yzqc5a0eeo zEv!c6u~lE=3`v!KehRsXnw-7z&h@omnzuo>Ly+I5E@eyCXR}Lg!R0=Krj!e~1A~-`&IxS#nRj+xlvbagNO~we;g((5Qgn;-zheTMj#0UI3zN zR}0!Sh|8bM|1dh!|M-~)AX3J8a8``(!I(*_fcRdhN^r84y!wIh^a}Un?!(fOXMK~| z4glP2R(lL`E89KIw~1)cm+@BFbiX#z-f@5q2AC0K`|eHZ1Q*r~WSbdCYRJ5E-CztO zO>Q)qL=`lo-3P$nHzp|`PR=8?vRk2OilPg!Vf(2shKOg~5*8fJ2`sY90p{r&NZzwD zIKKxvo&kNa#&YZJBqbFAQT{Geu{f;|K&s1c8J;IA2(T58XC{SB&z(YfrxEYzU}N+R zoM}(&zV~?{VHc1FZy{axOr6p;pX0)~J=i=(6FXFa--#L+ z5l+_Uero}f+%+i6jJdJWj@*o+6^8(Tp+EfdfeM+?ShDcvl4)7(+vQrL=0V$6JU(YS z^EEfGz%|4$My)vk@bVm*@U}Rd8f|i?c*8B1Z6g;Y@|v#V?-x8lTYZ2|UtqED-TZ)w z1rTMg%tg*;Wvt~g0nQ(U*(`MKUHi3E+G6wdr90hq@cpe-x8QqBAy=q2>G9Jy6Ge|p zoHgeL0yT%mEqn=V%F_C={vie5pu*_bp~ww9?}4FR+A#~87OamWDe?&U2AU56+5XI< zb9mUAh36g`5iLp__3E@L=SXaU5l2(xN^iRkJB|g7?(7^}ORk46G~HuTjN(;RZ~^2Z zWX8rLnVnbBb`m2QNs7)zvL%E@afu3vOkQi)$gF@&oN*k!s(%pb1}{wT;QfaDSoEe0 zB8*PVj+YR{e_x#clv4WCDmo%s7xc&W*V|S!->pmmH}M;($o-|`jQ#DP+_Yy!5UJpw zSx-;z^=nH+VAX)EH#HNKOK$o_ChCV0O7#zBcqwN62rjs2XHUz~s@p0R-9GXjKjvH9 zh(tQZKh3<~!0p)Yr}wt4HfJ?>UMk}(RGJMay+>T8Gy}&9RmJ03ANa<#jr1d+u>Ke& z^68I*reY!|fZ~y%N&@h>Nt?XoDRQg-XHs*%acF`>@9diM^p^-9svW&h)xDi0ykptQ zy;_5_9dZd6t%3NnQtLi2Wwh=ZET#eXZ|%;+j8S1L=|QMKFsfz}888enr7g(OYyq$~ zYC@Xh2)Rj?Fv>a$<^8}tzNO=;R5}gno;rwRNI8TTW-WyC9$K4yn5AHb0|;*TU&VTv zKPF#x&>xT*+%)GBwJb$D+;Yha+{`=VDi;y=m)kSY8Bt;Pt)D1~(}Z~es&9+AypL); zz(Q{;a9#^t#Njenb9@8APq7+O6(<#*wmBA6Mg(MI@v|5A3AWrb|CzqaN+D7!o_ zD=$kV6}?v-X1`oia;6#izOe1b(R5Le;|d)W(}Id^b79SLcbe}3g90U%4Ei- zv)%2dBpAewZR--z@3}ZQO)!`sgk)BsKC)4~5xYJyK6JU78><+#k$sKcC|!@y z5b@iv2ohzpSd*$(XKc|%YTWFOweKH5vfk`-KYM(nEmq|X(wF=qVF**guJE(T#e=kRI6Cces2diE6wr5Q(ua#aB@ zfD=}@HnkQk7KYrI^Wnr=L@F11wprmUHmh-K;n-Ul7j#>zUf@X6Wh+?L^;YRIm#t`r zHh+e5n8Z6@t;U3LFTl?BYJgi6<61*`PXL#}r1e;IhD`t*o6S?#ej2_uRrg89qn?Yn zyaa?w%G6+o%lOW-F*B8vry!fwV|E%MVop_#9^oy`E=)cyiT{Zxb;fp^4x0H6j9D-& z=e?`ihqpn&wibO|xYKg!HgN(U(~E?IJZe}*IDAFj4nKq{pNmq@`F(#pXTCf)(4&Ev z_ZwoHvDmgC0C1Mh>wBfV^~sW6cDbcxf0r_K8uWc>Fl$>z?IZ9;gliR-*AL7m1F4Zk zfkJi$m^cRYJ|mqfpvvrCK~`&>x>MzCdViFvdMEXP2Pyi6ToQyQad}$z(0Wr7)~rwT zx-x-q4>?vgE!W1|yT==07Zo1j>%Sr7aOG4L80+8AiH=AF`NSTVgcZ~y*|}Oe2|DOf zHdg)3=W=L1^J4DQhDJ*&$QqHC2@@GcL+>}wQh575kLvpxMy>AD^#q9*+j)oQiaaA; z(O59IFxaL@YgN>f>WNu3>KVo#4c_;NH9D`LYsDS*K}B4Ka!U;=78b@{#2E4?y1e?U zhvZ;NO@r25lN98~IikQX-Z>m_%1mVKa3{!A zO$s^v^0?2t?gFn+$|8%;X!u$X6C88{+HXgD^ECPC!cv=SOk;$yT(x|mUX;ZHEE zHgi+*qv5Kxa&1*KM(NCzrV4+jyWh#3MH6T2(aylrEJMR!X6&|&cD_@#;7h52C6J4= zLxAMLxPO5E$aUy?$E9kQqcJN1r@2?FMz2)7wtA=lTfg+@Jm9ixre=F_SPgV{vmq^EG@*O#etw9l^!pa)Vs-~4t^OqA{yF{C zR7$uCQRHsHeJrrf^}Shy0bAZCKjov=s#dL!`g2x9{k3B4Q`WPGU4p+o~)t(YMWYL+}wfd>Hj)#lW}@z`TXjJ&OK_ZyFHzlWXCBLimvZ1bC|u9xP& z+wet;j{2f|MD7;q<(Qv8%9-iyvTD66BWB{O1GsH;#=C)SpJ=z*ge+U6*!Qn70{qAA z@Ec&-x||;@QzD#KOb?b$zcM;MxXZN%GbJ1mPe(zBb()xA)~aajBAp~=R0$rkwb4+P8y5tH;CLjBvCv~L}vrpFn#s@gX?GOV-||M zy^|1DMg4ucKo@>Z!Sv@(hbx3O`ZlRSf|O@?_siG`!#U$-_D<4E+~!xYnngE-wFm>M z`8Jo`e<13;629kl3Ux7^P?E{;DK{HG!9=IoIf!9`O3XpAbxn8^nNpdkk*aHpmigic zbWY}1Td-*i-rLpRd&>+CHC@Hjlv>GZ6i{u_();ysow5c{$tYMDUCs zU+Q6KjPYl!(Q(Ukk>bM7my`}mtUWKko>}hP>m5EP;>{{@vuM3!#6nv8mvDaSMfM3i zmxfF^vM8~6Hn*P$6OaYi&g9j1C2_DlJQ8<9mhn&4?_2h6PYbjde>lz?1yd;LVYrWvQ(C|U-0C-8Xg{H(0}LD4 zXj%)BSgFTM#fM#mVT-2pr1NqcbmU88&bHOQb>>fXgNg(cjHRGhAL*yZ3J_SN(;fN` z!ssp|Bfch>T8UYj8QV-Ns|T1cJv%lZQj~`hrfHb0rItHxW|HrL(-+{HcMuh-|G<7kTtol`E$G zjdM^PfQk&pbk(ij`Qgw@hBL;r4a_tbzoH!{OiGBZOOeeMnr~XrSFATgaGB1!IsH?p9 zjGX{xU_o+%zBD?O{`xu{rqsOU<+%obfn&1$FF?J zMaz8MuzP*Pnl?|etw-jG90Gy0w)~$W&-^kkGPND8T zEoR09JB&D{RiuX>;ZC(&_JqndT?&j0)AQ&VWUq38<=PpVll)8!qF$jG3XS77G6lL^ z`>j92*bH?H*}^>Tx5)s^-aJXl41fDc70&TG|=Bucg$toCJnnwf)~4 zfM#5e3;@1ekMj8*^%G5oa$si0?)YI7(iGZh7SmEaecCjRq!IqUp76vtfRsV5h3|!a z4-^YwjrWWTdpdU$;oud=ptB7PeHc9S5x#72A(y&1hqnE*r!`Aaj#i2{sQPjaSioN! zb_&K^$QKJy;6FOoPt&)YUK}ZeaMpq}du|qHz77DnQ%n}I$R5Wj2RU?vPIJjqlBYk$ zLq%H?srRV0&@&cPi556?cYupIpgf3wVDEMhUDTLSp=!ob?bVC<+s68ktx6=;*zQJd3RiX2njEHFlMpxFhoHBPe?|Lg@4d4&43pwv!o$9DzZ}Ks z&%k3YZ@R=RZGK7A?ki0BP$I_3+URBITSs-BkF0nMxE#EJj-|eV0y^h2madI5^o(3u zKe*Knu7teFHn`SG*$~J5(O{N-ILNfGk17@TGMP9T(MAav4*)Y0^8)33e3LybS>od$ z>$_di#wz$2B*08Mmn&AFcw_${m!xDV^qWP5rv zKX;5QoDS+wS+8x}w+-4;we-3a2MJ&Uc5JIF)UG97rbdzw6a(;AtHMzxg~0`X);A4gJt%}(jHmX=^M3?K3f;R zi3UPyVjqr~nyPm>=KU7OFV}$#gcp=YTP7oQGKlr-hPkB)T5CO^39;3nwIy`5bm*z} zdpXU0K54S;J7e~~C@C9fZYh^%wS#TeO!-v5jk#BV_T85Qe@xqkv4i7^uQ>u_Jioi2 zPzag=21``=3U55oQ5D99U1vT=+d_^e-KQ|rqRLT!g(NK-{!YdV(*OJBQ#o7@uYgji$B3Twe5|(kS%+)= zliTzfQoLxtfF~Oby-Qr1(2G=SSkbc-9F!M25?7VlU*Q^AbggHoLX)W8&bkU()>??^ zyRfQeD^n*%i&Nk$A*xj=Qk}{nD*UH#_th&?mOkaI*(2QcPh#BN22}n=&o_IuIOG-N z?({U1?Xinvx#%h0?sTPllNpi7t3#s?LgQ*bhqRPGrIq&egG=pO#weTC__Z9EZ`IuI z@kn^DN&jrLgu%&lN?TP4fHtxmQnTnCUkIFI1i4XhV{nYu_E0Ce8Mo=Tl$-Q&=pC`> z8W%O}8oB-nsKfmBQ#x?@X^B>5bG%agnn7DgRJ4@q_1Hx>lGk5Lt28L~Tc$PdltYl& z%=xik)ZWf?+9a<}%v%%lp-~r!Tfuk}xC<~046pt=JEBU=KdTC=skeTd4;i!Ra4BN6 z7lJnWCyPD#4LR?}PUI1q;6 zK!A+21-j5v+%5SLh9PvH}nF5_Ln&mFa zG8(I0)fm&We$t*}ofQl0;R0!ePqtA_gTq99590b|DrV4gqBW*lyjs#;)4VNa81Wi% z$7$cM1@WrQ!>C3v7`7kiC!WvdSB0rX%!CQ{ZOkdR1Hy4(gKp}m`5gjWxWKzhX6QxS zha4rHyh)VGL6jF_({K@iCSIk+Onr{FhsHDo)8Y;HF0QJzm)yR+t!Ka(fXKl4`xkIK z%H(QUiBbbcGUhA~EEgY|s#t`F=(4m~j@m8zsQT7o!iVC%ki7dufOnL3_BX4i<^;pq z<7`yW{EIq6Z0{yni@AKTWBw~R>m&GActHS<)B2g+RskOK;ApvcUDvJ@nWp3T(p8mC&cQ_k==nj%Q)%!Be59N5OK0sydmsF^awI za|`(`lSL5(bB8pxLDqJ}NdGMv*UqHlZr$9PwbQ1DQ`+&oh);$|e+Z$mL)Ttix!Ba@ zw@hD|o#w=uS>Qv9U>ssXqyR)qpu@~^qyi9Zok>RY*}{u>{^gVCTxqiPubsatU~Fo^HrQVmp)+Si`^LZljP^e6BxKM%oZM}blcfm#82Zx=4#mk7={_+a z-UbQZmGPQ?OqqGGhL8P$L5rEZkB$}wUYsXt<*yAnUbcIHA&ej0?6|^sVgu6)W&U0# zH6OSRR6@;jG8>hLo=1F(tzS$){R*SZ{d^B`p?J(O5W+hy4?j6DF#o=4$zwWQlvpm9 z>VAKCIbZMCyJsLslQwJ7yp*jV5<<@g0dXYzI0dlt=KR>^X`n}GJ@G<#piAR^Xn=7)v>~)_C#oiu#AKUeVXal zt^(Z5dQz!?AoInb*$)~oS=d~qZIfX4WIk5bU;4%d!D*=vB|_xu#Ig&QY6CZqk)^J7 zT=ZYoWRpy!j*h#7<;P+mLh4dz$9FlkCEm!l`GFRz@vmx~9|4AIN6DTWPh5DS46|qr zvW06m5xJssA0t=eT27D^J%8r!4>+u4WqJJ%UcIp+)Iq)8&@DRL)v~1g1z%>Yc z2(hJ4cXI8C&@$^#;q{!`U&n!Ujx8yUGdFnm9+@G9q>a?70)wfsuM?ZW;g>zDk)+7J>eV_^qKEn(am@h`bi_Ku zJ8AWB%~(iO<{R6n7U7{)61m-SBV2O-oM%HX+B(Uql(*G#{y z#;;YFJZLoVr=R>S-RUdtDy1$(c+J>&@48y}x2SI%9ExwCHSs;akiFzw7l_Lw91i#C zQ|FkwmB)Uo@VjB%5;dq(+m!(Vxn&AFe7o-UtMS*9w=VXZ83&%qa&FHC7!!m~lzZ8B z>`OMiWJ`+y8J~|CMyg0^fb)RY^f2g81zY+n)3{nK4D6@#edYJSO3)a|rm`Jeb8VY> zT4k~?3yk4jc_U|8)*=pN^+CN=4wiCU-CE%98K!b9!xFXOgO}eCSaYYN)WSVb^TSsM z7GB!Qt7mMc!f7e((fcYz&bkoIpe|nmVkq?$gN9EW#B?v{8!vL##`i<4daAFZi)N;JtAFyB z{oQvcbwTm6W!HP8Z7PXkM!96s0a#WirBf)HHpX@0h4YB|6%FdBqFX@L&@kIWf8_UCC1ULuU6h9o9q~@_L0@ zTzf4u(8k)q@xO6))M_!wRQ8BrWm-AG@K)<-eXa>f=~Rqs&C=Ld&WD*W z8WY>HF5kA`$ix|WC|#lOdhp`%+W;yH1byYZE^;Hza_mh}+Pd?1T;O2ZMeNW+U|=RM z!j;MxY`W#z>+YLe+}NEm(5J!6)2+3z-v;hNMa&pngM|CQ9yTv}Q0bp_uS^D=v7diK zg}#BOS2+B!l{sRWS?`u8IF-kA=T|}gCN#r5M)#JrIF1NzOGX8Z7FE&qAn!OjlZ3~> zmv!Mm8Wu}gio5NzH7}@Ly!=>^NAJO#4 zWgAxMj91pv7M9ka4&e>KMTtYMMbY>DHe&c0b&!}RHe?N@3U;F_JWh=OKMakKOS6p>jX^jp?R?34)RUrFUh9*ZH*;GMk#UA0l~d#m>bhM8Qf1ku2rS7`=8$BaqHhcnq%GV zV{LXdV8-xf4oq&>P1Y~%jJd7hMLGzH2N2cr6V~;Sqly(#|d&Wn5kI`*k2D7x$XVLb$`VH1lfXKIlBetlV4Y_nf_4%!FFg} z*3gWr-2G})ySHQI+y-S1n98HFN<Ksk-17=T>vKBm|xFQUNORMBM z@dWcwL+$xN`*wOki6*+7@FK{i);zGoLyI{oYxipR74k9IRz_VABY1`rzT${w>vDFP zjvQLawPvqpRxQd4)TDpmypqQcc8joB8XwfP4Wk*jDm4$lpynf_#?b*5VCMX58FuW- zro_C;9_0p86Jxb3?wHAM`9on7r(yQRsE?rZu7HWn^wbh55^Omxh|1ir=N;+K)&4rt z8G9;qOKm^ZtNS)so+JQn<(502)$ll%dcvT;U}t7FjGgjVYbGaH&kWSPySl8EIGZX& zfsm=J@ecWTD#i5LLeqrNeyzV9-}LDdim*Syg^g9rAw&ziZm^D*c)Xml-EQ!@V!>C= zs8ay1C#bnB`-ztmA3v@V3!F$n2*8+g0t@*9hizW*cT}{2_Qw~LlPZfL3b1j>mLiSr z``z4t2x);A$Vcidi0Mtn*=~_0%lh`5&t&R*7ja&XA+2tByz`AfDmXinBjmpELy%l( zq)2u3uU2%5i~32xG_!z0!GpM&7*O-jQF(9Mc3P?HQ%!~>lW)1CmO>h@0euY~yGn;1 zACT63hFSm(4cGd~{{q;?ib&!Bec%&z_E+*Fl9px zaM@*BfssMm{1>(&X#TjXT)|6t8Mjf!PL5ZhdAVTGFCz;Z7EI2vC6($$mNn|4Ry9ec zV$AK&BdhTjs@`+mb1~`-gBeIl5gu@JG@1|v45|Utz%@%mxWa+PCs+5#bYh)ZucpkE zlxiaYCuKfc;u|$A+A|s09l&NJ{jnB>V|g-jylXKtZf7Lr)2}I*3{s9~cz3vL+OjMT zVJkJRoMU-i5_*}f%pGbs*XhEawsivfF%MM1n$-M^eI zFEZY!eJb^SN-gRL(IK2adkanBSjY%&=Ap`jy!(#jIdg39jjusxOlmb}?(Rm{Gi%aq%I;_#x(f&?r7r; z%ad2XP^XMSJxFy6^UsAOJ(kh=FEK4g<>FrK<693qiI&-(DOPWCtb?BvW!J7QRu&Z1 z*8hRF+oZCGlgU@}T%GqVkABAlr&h`*Rpmr6CX2xP@gCQ;N z#)OFsWW%nS!Z>2c!lqZj>aui)b0U>w5iVMqq011xKSrK#Ct*Nr;yj zlB#ZFvPuwcF~qHRN>_iv^5G5iQ45{!Jj@+-ZIV7= z2jxrp>R%a|S`&ZLgKVvo7NsI8(vw@39_E&~!7R=vNeAGlv`#oIS;}kvr(|IXuM;dZ zC+rpSXPq3*k$XQBxs5kPF)WKG8V!6x_ISvFj~*E^w^7-?Z0BGl?AN$B^$vDg7^EMD z?x0aNpQ@;|xsQ3Ms8|TPR_sz%52I4i`zp(X87?;9*4-(QrnW?2po=>4t*ERRKHq1}$dYj5(WprT9xD-hbe z9>$E-1^CM76?8{Hq|~wTBJW}ISLGy&!j89xtk&FIHxHzbV_YW8eljxeE>+uma_D1R z$6wHq?i@Swl$J=5DTu0fNXf-}4=6oGkAkSg=&zffD5b}~(IswOAMLT0>5-YkYhbAp@EbpCRk4N4v`@kqL6QdW5EOH{QN9==FQk ze?jBQ1(RxFzD0qquti^0+@vvWp7YNPd0p9#S8eM?b((hQ0;cT9#@ahcBCj{PGBK;Q zb1ufS!jH_f475vyB)Ks8z}vx(A{O2JOK{kWtCjr+hWr&JmqAPWLlhf}3R>omo!B?Iv(<)$^tzcConPvT1tY$n`i^2H0KAGpp z8l1BARTuC&XNGfc%(z$0!X^@sQf0{n%IQ2SyEJSx{5p*0`1XS}8NCXtx95*Au{woK zhRkWa?vWd@v*v_P;`NJJmX*BwM3ar$!yv&Rt6Nj?-uL=Efq{;C$l#D4i)*AxI#1y1 zHbC+C+~E+{4b7p#<6u+6vZdpLwHWwnUaP*0YtC~ zAm8b2)!ucaUe$J-|{GJe7|9%(#89|!BId~EOU)gVC>b5@J1R5=eT<0-UJ+a z2b=af_vdKJ7qK(SI@wTFsic4vV__<@f*Y;_+{&?if8C+Glf$KdxxS|8@#5*!R4_-- z-Va@5zia(cUZY({C{R{-CZX2kNhXzlV{zGc)G1#wb9TNp7?TK#6V%-Sbw37way5IMaysdmeS;^>*Cp~zy1#O?*D1$yrP=Q);O+60AoRy)Mx|; z3nE3NC?H4?SV$2=lh7vv7(xVv2q@hFR0uKwQ37Hil4e2;B|rejiy+k`a4AY1T|xv@ z2mu1jJ;8$GeZ3F&ftUSqR`%NY_W#>w@9*sYZvYl$u5l12jt5WH9M!xU>6A zaAP9K-<`sU({&BN9rG{mJY(WE3cqxlh!Z;5YB3ClaBA&<4Vc;AZ)lV#XUm(U@u`yx zM##I9Ts*S7=^*N22&3bn&=W^s-JF0BKjmlBd~(W+(Q(KfH(>Ep1BDAGeIjc23;l8? zWE|UXFMdST{y~T-!R%lBe9kGTyZC)d0R;oTQUt2G9cv(00 ztbK7=hRM>1^Z>Bh$fqBd#l&2mq4gUX1DACS#|^s{98;y2?`g_aIqD!WhhRsfu`dWS zS-QZ!2KTPTM-xm63XNbae$IspTWh8<-Y$-AcPU0wRVvYwD|Njn8a45e#B)vOFoNr) z#W>R6x4|$M1k6wS;*QYnsksA(A5wWPpa_gWU8V{)6Jt+&I=zQ65gyobg{4X4o+Fr4w+tJ9W2g^~P$DL~ z!&z{7+w=VC!6%a_DM<|4_RrIeYM9(5z{DJ=6VTS2>*6v>+CqT)AkU{>&SWmP!u*vP z=Il%IXDFxHr%fThm|7_QRpSaq7vSQk&l#h8&mIsE6BfGLU369`&$!Yj4lXQ@zN_o^ z;b7_gof(;@n6C^J6t9uZlUT!g4!Fgmz?&%2c|(^4P2G9Jx$wGEK@i>iTXR&__(Wo1 zAqx^=Dg8!9$Tlb89g>)2@;Esb*sdqtguxEn4`0y>B{J2JA2hLV9}YjJOM*I=%nsQa zY>(?Zv-fWOG;9zRy-`-(#g}v5?dpX#iE7o41u1Yva#HFLw=QeBs+H1L$J|Rn*3+S~ zc7c*(Mx=o}v2*_t%bu!`m_gl_j7fPfv>5VP%xBMsm9p<4kVfR(l-LYQ8%F2bD_hbk z8g)b$T$IEhJO`cJpgl%!taa(>0S=sHPr=SR)?EKHX5leD*?8QQKu(?a81(Qd`~@q4 z_MJnso+Ne&cZtBLO_S5|-ZMBOE5%uM)A-9v`ck@={X)?$2HR-Sac( z@#58JH3Y9prkSnxsFVc1&wJ(b7JX-5!I*P3Yz$#puO-u^`oz4b=*5r{Pn2RaUchw; z#QX&O)pY5vvh0iA)Mem{V$dlIhZQM(1BKdEz=cA&7$nmk#8*XHo$P*z6BPzE?3Izl zNZYWH$epGS7eP2dD`^F>FXb!D0I+tq=Z#6=!%slkveu{q8PEhak=)Wz($~E2&tSl! zKJsvIw-HcTlHYV)&EGRC?@pA+Zuo`Na8y|YJJ7xQUMg2Rpi~15_tUtKHp?rl zHEoa2Q;Z;*v99&k(1BTm6cW7Q~uvN~G5SWY4azMnKbH3Y89)ypGX!I58qF z&?s6Xb{tbaO1f@ubhfXjsAF@XN!`cTTwS z+`E4@Mwg4f?AW}YxH`TCaotdgMET_V_fnEKfa6CT!~ry=8P{bd*$2FEr(?f4Nkw7a zDz$aOm-8C91u;KTfQ}ik@~HNs=`qm7*vat-B5JeMlFv}>zW3wVmz7ne^!eo&c<163 zUKF+OYL7&e8}Hx~yf0i(>GMhJOK5U-RgEO?{s6cs+H*tNO(I2ynq{N7H5duWJHZSZ z3}FMdw{!)BQl9YQfZyj}Cu(6w`6lzm>X`YP){}wt)vfrRB3r&)%9|Bt;teMN4$-Gj z-h8Vmn6gdGp3&Glg=tigGW-hQP_Pq2G^LdQMOFPgvB;xP`4@@bCMx*wDwN{9TgcV6 z2inJ@Xa8+8>0UY*TRj?B5n#z|EbLvPSUT9DTug+aB8I1NqoNIC3`$g%-&-6 z(^#$}6*_n?Y^H_%D8p^FM-7i*QbBqtfImo)0uC42#>vu3EdPSgSzyxQ4;5eK2Tku9 z6tPMAL=cx}Q53Q?90E#sz}$&F987CCC=<+PCF{e{#YO#1!?Pg3rT;~ZzuEf^)vw(6)8JVT2PM1HK#PZMx4_mOu-soI~{u5l8yn#UBn-B3`gZ?#b`N!wC z<5YgeCHZcV6G^Ydjh6@1CHwFm9#6?pbu_fMJj=n4bN%8jmFx86F>7o|L}zY@aI*X^ zR#7{s3#uZywgi6}T0^$FBWD*uLs1!vmJsl?~N)$J`!0jA!t z?xy+wQTE^VV6Gd!-s1Crg!sD@kfOvLFxMZAkho*KsZ)l6B8BoqR{8}Tbvq5Gf%c_m z_s~ok2^x;Sl#jLb6BKE(*BUU24%$Lx+?TqQ6SmWGx*T&`p9`xrD|8axY(6jac^gvJ z`|)kruJS9i*9kGeI?@m3#0vq^ulIyE; zLKTZ(8{qF5Z%s<{dQVrG4c_1GG&gx9sMKF!h0-bUbv!gK0!4_Fd&q( zP8g4XATVDeFR;4#(&m`JuKr&WLSo^Lb_dC#iC7&-Y44;kAekuArx6tuZEFj_CFMHz zdiOn*Jl)I9b1B~-+O~cvg#9`6g33IV=Y0w=+SaN_B+XuYu|cy0{V5@MucgM#qIS3G zoWQgABxl5OS+&?@UI*lK3f}LCMSSo(d8D4hI}0p1-@;tiJZ}UNM_H@(Ut{BYK>V~u zs8kJFgXqrZ&fqmw65jlh5a4>ay6r3o?vlLPS8r1lnj^DqzKqxlGY6X}qA-0mxcsTL zT_x!~Yu8PS_{v^pvE&2{oxl2$LXMZ_C3LF4<5dL@Zfs8on!|c9UW0rzf<(y zfAg=X@^RLStc{N)j)r9{e<~+%PRUf1qjFt1q&qxM6tL2)TbOfMh~;Em^7emVGgDP) zJ7T0%?8oxQB(hKg<}mh6Lvb+|E%?bnN17I2$GNh>uTlOh_tv-XgnDA4G6HZZ{Pok1 z>OUJ%>!=T5RKfR`GM&7l|7-(NU!S(dCzbuytRt~k>sgT#;J&S?ax_07LecdP$>(uS z%cb3*6mtA$YNt;Hn5w)xL+)ng<*`1}F3X;_ElT(^P7d=27}U73EAd2Zw}D;HecR~? zTh9qgdZA}5i+uV6h9r($O(s^inMl!}J=~Vh)z8Vlrz-zzwtb%w!C*hxKHwvxG}OiK z)29CFAXUf6HEsA2uZzYQM|fDxS1gjryKPG&Xsw7DHbLNEBu|@b`{gya@UQi(*sg)f z4f=0Nhh?O0j>x%s%p8zIKabJ5GmUiItGd53Cb^NZEzSnKlYQ_><2G{6#en)SLP5kW zE=hiWubmKA0p$8Rk)M0csJHz9kwWhqnC-L-O<>IxptqhM~mL zbC1(#It_W=%9Z6vNyw(7ZR}rGFafNvk7Jx40w0FKer@Ch1c7wYn}Xj7edO&HE6 z?ve4)UrFzhd|+e-zY!bK#e~elLl0J-FMH6Q}pqB%4L7=jsIXyf2S?KlJSoVZDja zsG_!~#{3qsVpIN2&8?qDA+Ig1Bqdf&)NcKUQh{dSodT_5HSv>B3a-!2HJg84no{{V z!ornu-^3hN`(YRR-9gn2KL%vD^y}8r-F4rm7^lWt^5IZ@WH?;(BP1|==r)tUp&Q@C z<80w)@JGX2Fc<+|*qN%QgGIob+N{~NEd~Ab{qL;1LGCI#7i<$QTi=Oyny;@MiFQX6 zxKes79{n*6q^UQWNr7T~$Zl}<=JcexSs#g)mZrZUQMt-poTB)|S@>eF9X*^1Gowhi zniD6jmer>J(W?^r6|67u**)Yke>@4iP@gu>SBdgXq;?DH;>RyuHC-U~dYB?7R2G}g zodbHf6GTe)NT=AYM{|@lFskRA-D{R3^r1@O>8J1dyUPAmQ|?k6wpoW`Np9{awVCfT zGrCSw3kw-yZ-yk3e)0?|cukom1n5E=1)`iM;0$9q36S^@_X#?eS-YtLn?q0Get8l! zG8tpQhMcs_Jf|XTnMEf5F@%Xd7%Wxp)sF}G41_au1ZVSU4EElx1?_t7o*MyM4v}o- zMFyCUUoZT3DkmWuUwHc;`R$`Ij=t86bFM&e>sDAi6F%Q64}1xB0}+TH4QHP1Af5+O zyu>fq+hP8rFrSHrmm&YCFlnl%2y!(1d|8Y)MQ0V06hFCdiy5K&A{tExciE4opwVX#B)>Ky)M`iK_gi22Ru-sK^H|ffH3l93LOFkHk zsQ0>`wRAhlX_Kqfkb<)E8rc$p&iN^P=32MWR zoC6Dmd`I2&l2di=W>fS9*!+?nX(85n0s2xE^oj z&_4VMR{GbS0PIDC6fwV5Ux54Op1av!+X7S&`U2xHV*ILBcS_RuTjQ%q#P-(ArWOYM z2R`)RFTwP_&NpxKYHGgbTkIf>kwW!%@Ak)lX5P~1>333_0ymQqF9l3*#PAf~>ana2 z@T2lao99KTyZqm20fOiN%Xa=PN#vI1B>G^~u^J|I=k)mb`5ARf8GJ8ua9^jphwazf zY^JTCc;zIJhd+^&EuLR4rm~w%CMuTf5MgG=qyJ~%rz|&q^|#g4rfo#mOG5vlSx;BE z<6-i!B=>MOU%-osp+qq;M`tI2i+f}BEJ5Z&dX)2SJ(fn!Lyn#9?KmkP{%8&*2=FoX zgu~&*o9PW=9ve*s?c19m99@?ki_hJ(txb(W`@ureHO0H%NibtTeh>7;5rtS80FS``o9;vq?WLH5ZWmI$!+jx_!{~A#GGH)Cl4K^;;{mzy~&zRSn_wmv?Zw*-}2d6Y9^;@u$bs zC24OQ&Asm?kpXe+T7es5c|jr$tNx~a@c}Y~;uX_IMO-4jO-)UEx2mnR7z4V$tCNKD1IXvescO7ujkqzNt-$ z-(8b{ENLfDo^n{)e)4H^r8kx)87tjR;hvpr@@kTKI#p54Qb=Gf)OcG4aCX}2er{~t zDbF3iJ4A}Zs+okW7w&=d>KTvj&;L@Y8X9kGOKmg@@XYO}oNjPCtSd3=8|!@}=ww#Z zdR|=a9;|y|51eI!hCFv15Hkx`&Wo8ZdxQaNJw5adwHI&d0(x; zHgXaI@o5BKJVHog(UQ#{7r6u&oW&XB*UZI{SWuwxD@mTV5(XA~9T)goHOC-YPFt`f zi01brTwY9XiQ*`J2*25lue3GXS%Q{VX^H1u53JA^#JqTnkK$Q(aOoO<^&#?QgORLu z2d-kPE$!`7%4+!CbdIm<-g!1Tb;lvFkaLtE9VFb#<+?~_(ct>npuHP7VT-y4z|Oa; zgBH%x7I2{MGc#>;R|vXX$fr82yB0wLRuleQ9td2^h;_NsN`v!Cv>!!q?bhYf`sVZc zm;bo;?~|&7qeIeCpiLqdKMbx++Z#>x!JPMpRnQU)yj-VG^{R_b#@mlX8xPZV@qpRjR~FjbIO(T$M(8J{lk&j6*i8iOcmFGaO{W=!^uc)f$!~p|40m3pFgM zp5vBA)7koSMq@0hILI$v%pThlee7<-2I;{k4)Nkb{b~)zm%S}x0=+2Tu_h%zAWyd+ z*bdyKF1zYx)o10B=jD6N*XPYL^tozj)R5!PS^+uA34uVEA)uSi8~i(vuqJu!O8vM! zBI9z)93AA=an+y17ZkzqE1}YAGEm*~r-r5AgN(LDx9~aV8Jm0x&zUNH@mF)bhT92E zM>&X3SrJO@CRMg`$q>ToS$pN0t6!UA{!M2C&_LiE%j$7;m_c~HQx84vm}B&POMJSa z?wvf3tSKr@UzwvTcAwj9yE*L#c3V%C-ESnkT49yMxzUDE&zeDK>0 zuMCVkj}4E1enaeD?d*=u-t)fLzk_^u{1H}+mOK3hGJN!Xte{QKMUOVUe(#jqY(;;#e5*S5{nv>lIi>PM#j|x`cq;nsMldiyBvl7xN|yE z{LWg4IQF7Qwge00rmF=3EIw5?$m7-RY-R)Bx6hmpoqVF zR>7rR#_Vy{XFw2~rgRcl>~Y^_oEH=f$;IWYp}&}EzSPap*9ZI_Y>qvzy!?>_VStuZ?zT!tk@lkx4Y6!bSVWOO(`Lq)e zB}4GUoXHrI8oaB=zHD=Z$6?R}7T*Q}g(+9LuQ6zj6;0x`6%uXCKT>|dku(|RZEhb( z5yC1`kf7xA-J7y1Zfpyq;u|fgn<_UKYE+Z|n(?&7f;G)?w8U)4ZNLgbS_8ca!)+LP zfp_y#?Uht=S4klK)197H8J;Kkwa~`!aa01bEg)*}r8gdy0fdT}Re(dZxDW!G#p6a@ zlfZX~%OID_u&KDM zWAodxQA+7rXJ+Wj#wFjBHXJN29IWj|Z(-|ZnYQ;kPZ0kofW`FOhManR#_k$H%C2Tj z3@8bbT%{7nzme{ZFEsu{!1mK7{cXft#M$IwUvV1Q+a7jVqAda2^g0*=i?44uF3iH{ zGrvD*3~e=h7-wlMDbp8AZz4ED5;^P8PBXt3_<285^4CaYTgF9iMs^S}^w&9Hp?(LA z4K9`_&>_6JZdCWaQgsqM1#jy1PDuVdRz zWP-QD@l}l0f!Fajt-Sp*yNQrSk-R=hKtVhb-^u z_3Q(2x2yHY(fmuruyoX1?*h|t(q(X>5ytti$>t{A<$rv?)~?$;_L1{z1>Wadu&cAR zAi%bs-IaSG$kh*NtMPRU3=&EYau}tz%wb?$FO~T&I}vvvQ;eIjWi5NO&cmH5PoObC z-pZz4@eeL}N3lS{xWJ^=QH8nt!y8rvR5u+LZtUM|z;uWM>_gDu&3+vVgs7y-??bOo zpg{}23Ku?$LOwlr>-e?|uKoGB0L^cQ=O?3NmB0Hx=blTX8Q-@-DpwijvulA1=Zy=v z{)!V0(?le$hyaRQWZ_+Q&Fr=1CikNeg*<%6$Kio|9FLH5-lsv{*w=@W*L*9&A5o=6 zFF+PV_>-q;yn{c>`Z$&IK8H7JQOm3ZxZ@$C-H>B&iFDJI?PRN>Co&(faZJC?#Hve( zq&*2wD*vgS1$Rgv$?Yt^+c!v{u*_d%K699kY^Xq{?vl=t?U*#6d7ZX|BYG|gRRhF? zVm8Dz+BZTY)WvtkVo?jsLC%j8Q?cE)c3$?i#}UqxO;|$=>{gR_%yPzq_=rMN(7M9k z(d{dS1(7lE?Pu!uT6HYG%vEkLc;37B{Hm|{LRqvAm+&rz`uyH30|ECz-`0KXnHtWW zg_#+eorc4~Bcom)4G_vmP3;=eoQ6@N9yFvrPyH+~k!9(h)~|ko(D(SnEkS4gR0^;b zRIC*jOr>XhwbY7YUrAN!-=uZBjWw3VM^?=9M4ZlCzygCA# zYp)JqT6=`8z>5BqcsGv|E-zK#z?UZEa6SBOger0E@|S`wu4KctyxcikqJvCm;ABpE z_5Ga`{UwHcGx*EB>~1XF`LyK-F-}kTNM(o%8Bg1QKMl7rO{Dexeb7*Ad!!{>Eh36s ze;RJ&%7%yz0X-Q-AX@!MvaI3y++YoU;gU<_g5+LHNW6FL3#LAw#msJc38`M8HThtM zX<|3HD-oYZo&vgWQnmc*gAC^rDCXKoTErS{bSJ+t99Ng4q|7yJ!IE;RP!^9UqP0>Q z8(q&t=qeO)^l`jic^S3zvFG?hTu_6BHX*(KezEuEW)Qf?zZ*8dcmZ$WGfctaBvc0- zr3T4cPC!oEC1g+!giU+e`*s&tpa3ZH9^7BDAzA8UCF(0Zs* zb1&(vrH)g%N{5X_weU#q5>K)>s=6+Fz&^D4AhsB6%#ce{Y9>h#z0s_MIHzxTxwF?M zige8`)I0qs{uXOOgTnt5X*Ka-27xvCe!g807-Al6iSCS9e!?o4x>49}DK`Y2r|wK~ z?2aKHs&76GZB{H-D5e~XGxj&(4X~^z^+)OC|5~>7y~b|FkR6xLr0czAx>uw_@oa@) z>RGP~W_)|)eFyTuNjhZPUQw(;LO(_Q^>ejR(IJQ&BiMAyB}nrBNCI8Ht8Cd7{%nU)J%;h&=Og!kf{{10E(vu-@ksTW+3X^{!yrUGkH zmZq0_Y=jtG1U+pb4cTv5WO&v~t&KUl=Ihw{4@Gufn_r*a!5KFy$OE48ku{-cWs8QI zCM}PjPvFXgn#YVdq$@n#O?>l9xic=!yO~W6SD%j7VeqT6@LZ+t(Zu$dNMiD+WB#>b z+=eU_s}QUr9j5oN65;I!h&#b&N`X-#%VB)acgaAC9q`+;vMhy1k*ct4(>n zRR7%3KRcs{H$7~7Md~jnu>1&(JqKq|;K{Wkr^+2dsK^A176MxasZo4_)rKG}r$;j)2Qo z7|$x460Ci(YhFR#bFb*3Lxhf4$ikYJgru`5gK*ypT3It)ghC#N&41eR^mF1jJZqHA z3~ztC;M|lKFE9KSENUc7?x$LniBI=6qEzw+y|;E&>*FDYa2vdCMZvI`h7O^;u4O}| z-NzHBv>HwD-8Kh0nSio$fwwLy#m_8xdQpypS{Ws*mR&>2W-Ib5NvZg~9rd0m3h~ep ze(`*ymxg`dJ_(KqIY}?tfk_?2zc5}%Do>MdaoK6&+>2qcal|N_dp-5NeWAoPY4jtpJ}d$ySvYjOEieyncRbo*8%P=_}~ zr9uEGuTT4x@OsLek~ap;il9C)N&S#iBjcg?e1`)&s3iA)JXyNgM^ zm;k@>O{VvLjgs;`9R7(z;0!>e8=IySv-uF>9XD!BYb4OosZ~F3rz1O}mgP5}(O|(! zOIB8A$PNd({VkZod5Xv`>m^QGw`uO~hnG)z0HK`|w>K{E;|+hn9(d@QXXKq35Gf+2;B22$4wn zAu4p=0xFFQPTi_UbNw|0UNa*WhD&gSOt6*!lPqhlG`b{LO!ILe6rWa!DP=zFjr_W{ zbJ+8o%d%sQ0_i6@Jl7X2R#f*sQz3V)i>XYa%YZXR_Eb+rnd_0e6A+mDX)RxoQ;@~3 zqKujA%zRxY?;)lkt)>R);D0Xj#l>caa4zNiF;b(^Xq0q@-ODZgJGG!>9iz3|N@=dA zU@@E#?}~8(n*GC~;|d)1@#W!k$2ODx=zS^S(=pIs1HK=RXzdyJJajn z%mIn)Ad)vr6m?(Oe?0J3`brWY9G>@RXsfBC!dOK&5x+MCq*C>bdZE=h4CZ4oqCt1f z!u2eeR9;HvV@zik8sw`^TmERNiN1pR9sGzl_^GA21{?6fP7&R2p)!p`qKa7=^Y@F^ zlpywQrt8sdDf*VfW>wbXbFf^wa1(ps_~DW_@{wANo8mMqiTKq8@n(2=hVCb##Z}%p z$J&t+%j6&JGWrG$<2lS{S)2XcIr;`M1AFo^`9{wz1w9)M{T(OD&JNcIZOj<`zX-&* zFpYg(9ohYcKB96xeKCD7Ak4cqfoKYuuAwWR_vib-`+~~XyOwV=T>uQnaKbtXp*hLwT9c`Q#ztHdxmWH z?mSB!1H0?S;eK%3=m5db5T35MlY+`3DpSLfM}(M(u@ZCj9ZF3r_qm?be|4?tiV9P5 zwUSSNn3gv!>SjvG-52yru7(>I!|t=AuEGSial=SQ0tp=$q}i8}C@E>2wD$-P>I}it zC=%}Sf%vmU?fo>(le$E4 z8vfCeXuRASYSe(qPD|<@{?NvR78xQ;AJ<%4Wo+`knO*xtr|8Gt;*|@vGn-{lq-W?%MP-M=W`J zfDQd)>glUG6O#)`LUZGnXM2X->_cC0gDX7nJopaysRi%J=n0i8?Pa32wWqXp2M-Ik z5J2xguFw?jwHT6&U*3xvRSX%kT|x{%vZjXLTi=031C;bmOD7H*&Sgh-8!^Ru;#41%h{yScJ%Q&aF$cjgJj`EV60X4Ay=^M}Bp z;h+8|ZH9w-7hm>1GO1B3Z3HUV5>`u|Nxc$whX^w!EjQNlx%T!lD7Rm#i<9r@Un&B3 zAR(Eam%L!Kj(7zoukvT*Utj0#QTGmTvwzJ(3a&yM5(XZkgJ@Po%yf7`Z{eTz$c-Ei zyIg0J?89pMw{$5};_~E6a-Ow$T=su&2_p+O`WY4EA)(exyhdY14X-l_XN}X=Nd$4} zkoDoQ^t)kZ1qtjV00w6BKpC9CA7x4T`X5(k$%D6h0B5y}-TQITSZLnFi8oO#AfERv z&xAQ>D#e2LIQ^`#<#R5(+-X0?Y~0!4FnJ^UGh)-vD*yStW7w|W)Mb}FVZWQ7kqmli zI!_VGMDWi?Q1B07nnc7ytNu4Kk=T#cIeutxbg<~gZ+S|jKyr4qL2*@wc*}q*w6G?D ztaWU$a(rwjnImyZ^t0Pj=v=J${k+BGZ{tF38@W0j5+q>Yq?A8o|Fn-s^fvHW2%#Ph!XZV(Am za2`dUb8LhFmo_1L>F3!BlN#y5ilhv%PSrEw$?&zZDO38~3_^(RV+NucxL(p5{1N3( zC=3r8wz-=qbEjP2U>MXDC1oWCu?5o8hQfvfHL0VU6EVf9OY&S$?C#O6PjM$v;?hO- z9w>xq7=&}5Mp1OoxxQ;lL-n#FCunmIBz-dyd=Z5SnjC4;%YWudPkSH*DSKQNy%8zE z;nm*H-|m=B*}S0CmiFLokjd2L=SB}3;f>ca-HPUq{En#jm7&z~yIA4`{KGiD{h_c` zSTPxAEC+76CxhDNJNus?!e6j3cV;>_Y3wwFYZvsL9oj{aV(2h+S17mgi>$)v2Ec>K z>eF6567AEgF^lIQ5EZxT%|}ojMkuNWSTyqzZzJz>nd($KnZPaPmV5c5CIh#{Tn6~d zk9_11rV44)@q_yBJDMgz72o?Cs!gV6*O$`o|-|j+7sIDjX=$t_pyh!l(OP?CPmRy9|u}>dw=Z znf>FZBeFlwDQD8t^jX|$ddoy`aqQBs1?P_X#qQ=H+J75$rG#CgcF8 zjU*D3LcqqeE?@d|-hQ}i+QQeVa(BeI-}}P7;lLl3l(hi_|w%ll*z z5#0TQX3^qBR121}-7r71Y{^mnUR>8VxeSkS?lK<*2%l_SewueJ$Det_@E{D;h}&Ge z?`pn#iE346V1C8~58imVR!#brWO)h^b1iO;%!|O*&40ZTw47y{)ai6)>P4P=ae}xQ zSoB_9jhy%dDNBUt35E!50K80WuK9A@5PGgMp3~+@CLn2Ya0Juir9V#18Nxp_8^lR_ z(t`&&*`#X{xUlZjH)`ivwOVK}(XDYmKG=&@*u~zgwow|YSUB=*qY6rk3Y_G&cu6CH z+M%6Fn82yBdQKZbjHFzM>Aq^{V4`VHN!yKofM(^Y=K85~k}p>Cicoy>h#;@}l*4MX!UR7UN9EI(<#2om>P1D$fh{ z+v)49A?rCIkY2W*R%v2#Zi-P=~bK2mo{A%0La#F=Ed0R$YCB}?~dcV)IHun=aE zy7EV1&GxpIWTt9%U+}fL8;cwu$KG^@nRzn7yAK6< z3%3r7o;CXOWSHta1g=L@#CxU2&dvu_WzRSA;R|BK`(jwmjXoP6#fk|EVy0f7(zI_j z8J(|=Z(ad6Wuwje<8*@OQG3ZI>2%~Un# z!ElS*?1U8ajcNF{9kpTy5A<}IAwkGC8%Py&53*hAsL~1{9-srbzu(4Pawm(XX`1~5 zjW(tm(caSjs;rs$X-e~1N{F0P56L9x9~%fZKd<^-z9{Xpn_?Mno{~*;x>KovAj$nt zcq-vWRG+t&4|zd_YqdBgwJ9W>>}J zFQ9)AS7h}wlAD$KO-Vg)`)D;75raR#pywCJC=YLa)rGxsD4E)v733s*9x*Ag9Gz#a zPSLD^`FbLmC1D@SpGH0p13}-AnxBjaADp);KaZX`>)m1UqE+0Y7c zAO+S*okd`BD-DlV+-+xRZ!}AdpriKCY`jue$X_hogIlluVq!R@qt@KU{Qyb0+srfP z-TDQ6>;Ypv3BySYle&`l5w=^zWT3)gA=J}K^aE?t5h|)5R!k5U=(#^9&mMfmbpvBA zd|$q&{mzhyvlPC$9E_Wmer^bEw6_QwV;=Y6#%Oa4PGByQkhr%WLhtyoga)#s&_v(N8O7a*HCzRtU7XCg?22j#WP<3~mOh3~eL**GO|2B{FN_k|^=v{pPW=9+>#>MlO_62C!N){l0Tw=M zA}!p!^-6zYuHbwjNV;lP-V_q<}|Ae3d{XW&W)r@+h*YII=7qzHE1&}(5z~b2Nyp&1TIhSKqxFpym1j| z5w+*OruXa)d4*J|EmmvSNLF>7BSYD>yet+7W+F3 z%seCSdvOF{k!-SiqEJvZdBk?NAou6o0kwv4RxR4s>| z$C`j|Yk~6WBNZXOto{qxp4jv@apf;3F1A%*HljkiJp#gLHpb7io;UYyLQCH}GZrGH zfgUEzVt=Z(jn7%>g%rsb3)dD8(kit#(g0V0m*b?BxkFd3d@JHwyqc3r+ zz^W=~nl``qWqAmPw^D?df`FKLuC~otCZQ+W@xSkW1;|8 zoZ$PJjAboIUI&5v%n?c6US^0f>+P!97=+xXcYUozB!}tajH|gE34rk8J@u6@T!@8H$*GJ4S zFNwIY1#(lfix+%_!0pEsbrShdDxC1G*z)LU1Muq6thq+3$>iPtO0#NzR>#^t3B5F` zS#-}Jpu5-!*jOue3Hn#bP2?|s5l!CDKgz2>-8B*qi529DSwTzN4a06 z3})|m#x*{%4=^Hz8+D;aB!1f?qb^TY$pG$drtx=v<{4(8 zC$9oa4sqH)AaFg#J|w!V}iB8+{E50xFXc#;e#3+ z^LQlL?#Zv79H^O~n*pdFMQYm@5BPI6-K zd!GsMtI}!O82FIsKf?B5&A0(SdZJ(2BkKVnBZnBbJHKVvDrJ$~V-CuSu>7yj~ z7k!+xY}pbvfgQ_S5q8dH#5b$ZWjsziMlvRq$;uIU5q5u|^xh2i{QgC_N+^{NrL_vJ zy(&d301%rWwFVLkPw(!C&^Mo!_p~+IN9ePo;_%0!h~MQ2d%Ksi|I?`_e&e8zt612A zyM74nt>D8`^)c;BJPev=pQwcshUKe?i!|mp=<++l9vn&QuZ~C%BzSYLH8Xt93B!|t z_LAwlD_O0|7d^9^D07%l2_K~i8R>9|$efMLU{jyvU|BM2AVu!=Tfpxd1-c9Z# zB?pk&7oq3EE56+JI=L$^)^$>7_j~e;XoNS*V-J`DZ{ceaI)fpiZ{h{c<1;oYGpyUO z*^*BsxlBagVF74@0A{IRQU`6)2x%3l^P7IjQ$I-y?R4Vafpj6y>;R3L$oGloKr<$W z53r$;X{*tSy&a7q{EUVx8bsHMsgka{E>T~F13g~R3^^ufF0o}0 zjeMgL6-^P^t1yH7&QhgU@R5FtCvS=wtVvxSOg0dbnCBKo`IH7rf!q|uun}CZk475j z(FYmBy3=m%vP_ehG>^8bl0WIqrkU>C*#)B5SE3(1$kF_K5~KDi~;=TUox@ z|GdAOFVTDoQ=bvZ7dz@t2i4{7N+j&SB3&eJGDc1A`zXX$kC6}bP>gAl%hkkE9Aw|% ziY>?i*~a#q^e2OIX{)ZkYpA=SjB-=Sn05`0k^x!fqr`?q_Vd*(DMq@MM~|Z@Zr}k@ zd;lOPMNWu#nihYrMu^=#7tm3~4|o{x`lSZf!_kD2$};c@!+CDE=4z({AlV=H4KpCF zn-eiNGbR#Yz_ZNR8|P9}z!o>D!pW)tZrHjlm+N=tuj+kn*Mk*q@2iUz`ssba!QR^5 z-_W}cQ-I(GSge2j&MqEyM8m_=2hyO1D*{y|jqK5KpRS~)>fYp|a)W?|%hFR0zwyyh zV>tKR)-w@6Rw%BxxVWk$#oD4?s>bhz5R7}NqL6Iy$luw;{An#fR@2zoY66!5NDw+d z`~HvzJMNHeI_2%8?0tG)YG7D_#W2&cqX!!8{TqC3fgFWtAFUsm26sEVIOTEW9Bdax z2P*@N=)oWw*T_@DCzQN^y=ruGk|`H8A51MVY(;A~p;r3V0k9PTI8F4Fv520qW8q@&@c` z+!+$se>e!Q((6mD|y1lysSK|lAffe$SN*QuN8if1P#Du=+)$$%U73)^p%F3k! zn8=nsHR{5|N;BCcCv$*^BMea>pKs#1)?OHuh7yh|{eB5@XA3{2$_5AB51pan{lPl% z;jf+EcaxsK-dkq&X}Ly%vK0Vh!oeyvv^HI7)ehvsjtUi$pf{UzM;ytl68-WBHtKGd z06=d5I(KV0x}jC)Mo1{Wswq{~Wd3c9Ij7>c5l8hz7L_m;(H`g8=lywq)5BZ*Sw6rr zhQC1(w=&MB1Ec_WK#E$`DChD20K-sA{RbYWA(u!6cj9;n{NRC)>8pcUeS|u?Z27SQfTcg!}bV>KRnZD%wFNvkT_5Ni$-`n z(GYM8co5ZsjZ>jlbI2n0KhQUFEKe~8rh$=G?(jlyC)Kmv`HiNifP_4!x(#3XkcbiT zK^vETHdI?=Rp~ZG(Ne@8>vcJ2u`t8zA}RaL6zaPowE{hbaK z=fw@CcF6srTi+G15b^zJ@$E6Tiw=+6x|hY-OQYK#EVv_w60Y-p zJqoDzIXXV3_#D$8_E-2m7{j0B?6@f&*El=@piKse6JZITZddPB{1^LE@j3(}m+kIr zi9b30fGA}E_zxLW4C4;dY%drNP?Q9 zq~&vl@>duttI~g^_Q4ke1|q$D23#xi;1-0S2Er9OkVlRIMMZ5+1pIrvJP-b|)mM`^ zxV)Q;BUgMVtE5fbjLfG+wgLF=NWkD=L``qbZ63(00?K<>ktGz$@2*mbb{A3;yH6>K z{sO#v12!wmk|8!IG}ix*G5#&@5?0iYqOd#2WBlwsXQHiAG8=|j6EjpX?vjF+{ubTm zgREW(-3mO{eWu{#`{!oYCx4)%fHkToQRIgkZ+Kf0J71=KIqRf|_mGo0@JxuGJ#M7! zo7HR+$AxQIy(8CfE?l^^W0{|-p+%fNGH=v*cx#a{0Ln1o%VUm+zw40_0p3M@+Qsp= z)cwP2z*OHacpA#|7fS++cL!-dQIHb@7?uCxpV+8?cVF+r@ufeT0Tt){4Q3?u_)Y%5 zjer-Fl00zFUUsKa_?G(r0C3k_|4ZKga_@h2@BiD@IQ527 Date: Thu, 16 May 2024 11:33:30 -0700 Subject: [PATCH 22/90] Initial Implementation of FluentListSectionHeader and FluentListSectionFooter (#2020) * setup basic header / footer * update comments * Add comment --- ios/FluentUI.xcodeproj/project.pbxproj | 8 +++ .../List/FluentListSectionFooter.swift | 30 ++++++++++ .../List/FluentListSectionHeader.swift | 59 +++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 ios/FluentUI/List/FluentListSectionFooter.swift create mode 100644 ios/FluentUI/List/FluentListSectionHeader.swift diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index 4a5bd3281b..c4d82551cd 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -234,6 +234,8 @@ ECA9218A27A33A2D00B66117 /* AvatarGroupModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9218927A33A2D00B66117 /* AvatarGroupModifiers.swift */; }; ECF3C9882A67495A00CA35FC /* BottomCommandingTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3C9872A67495A00CA35FC /* BottomCommandingTokenSet.swift */; }; F32E6E8B2A7997F3003F9AE7 /* ListActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */; }; + F3A87D5E2BF5606E000D6A64 /* FluentListSectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */; }; + F3A87D602BF57421000D6A64 /* FluentListSectionFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */; }; F3DFD3612A7B210100014C6E /* ListActionItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */; }; F3F113892A705AD500DA852A /* ListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F113882A705AD500DA852A /* ListItem.swift */; }; F3F1138D2A705B6900DA852A /* ListItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */; }; @@ -451,6 +453,8 @@ ECEBA8FB25EDF3380048EE24 /* SegmentedControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControl.swift; sourceTree = ""; }; ECF3C9872A67495A00CA35FC /* BottomCommandingTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomCommandingTokenSet.swift; sourceTree = ""; }; F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListActionItem.swift; sourceTree = ""; }; + F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListSectionHeader.swift; sourceTree = ""; }; + F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListSectionFooter.swift; sourceTree = ""; }; F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListActionItemModifiers.swift; sourceTree = ""; }; F3F113882A705AD500DA852A /* ListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItem.swift; sourceTree = ""; }; F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItemModifiers.swift; sourceTree = ""; }; @@ -1186,6 +1190,8 @@ F3F113872A705AC300DA852A /* List */ = { isa = PBXGroup; children = ( + F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */, + F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */, F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */, F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */, F3F113882A705AD500DA852A /* ListItem.swift */, @@ -1612,6 +1618,7 @@ 5314E0B325F010400099271A /* EasyTapButton.swift in Sources */, F32E6E8B2A7997F3003F9AE7 /* ListActionItem.swift in Sources */, 5314E19625F019650099271A /* TabBarView.swift in Sources */, + F3A87D5E2BF5606E000D6A64 /* FluentListSectionHeader.swift in Sources */, C708B05F260A8778007190FA /* SegmentPillButton.swift in Sources */, 5314E13525F016370099271A /* PopupMenuItemCell.swift in Sources */, 5314E2A025F024860099271A /* NSLayoutConstraint+Extensions.swift in Sources */, @@ -1646,6 +1653,7 @@ 530D9C5127EE388200BDCBBF /* SwiftUI+ViewPresentation.swift in Sources */, 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */, 6F050B6D29D3D1A90070D3D5 /* TabBarTokenSet.swift in Sources */, + F3A87D602BF57421000D6A64 /* FluentListSectionFooter.swift in Sources */, 5314E0E725F012C00099271A /* UINavigationItem+Navigation.swift in Sources */, 920945492703DDA000B38E1A /* CardNudgeTokenSet.swift in Sources */, 92D49054278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift in Sources */, diff --git a/ios/FluentUI/List/FluentListSectionFooter.swift b/ios/FluentUI/List/FluentListSectionFooter.swift new file mode 100644 index 0000000000..00a446390b --- /dev/null +++ b/ios/FluentUI/List/FluentListSectionFooter.swift @@ -0,0 +1,30 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// This component is a work in progress. Expect changes to be made to it on a somewhat regular basis. +/// +/// It is intended to be used in conjunction with `FluentUI.FluentListSection` and `FluentUI.ListItem` +public struct FluentListSectionFooter: View { + + // MARK: Initializer + + /// Creates a `FluentListSectionFooter` + /// - Parameters: + /// - description: description of the section to be shown in the footer. + public init(description: Description) { + self.description = description + } + + public var body: some View { + Text(description) + .textCase(nil) + } + + // MARK: Private variables + + private let description: Description +} diff --git a/ios/FluentUI/List/FluentListSectionHeader.swift b/ios/FluentUI/List/FluentListSectionHeader.swift new file mode 100644 index 0000000000..6d82a718e1 --- /dev/null +++ b/ios/FluentUI/List/FluentListSectionHeader.swift @@ -0,0 +1,59 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// This component is a work in progress. Expect changes to be made to it on a somewhat regular basis. +/// +/// It is intended to be used in conjunction with `FluentUI.FluentListSection` and `FluentUI.ListItem` +public struct FluentListSectionHeader: View { + + // MARK: Initializer + + /// Creates a `FluentListSectionHeader` + /// - Parameters: + /// - title: title of the section to be shown in the header. + /// - trailingContent: content that appears on the trailing edge of the view. + public init(title: Title, + @ViewBuilder trailingContent: @escaping () -> TrailingContent) { + self.title = title + self.trailingContent = trailingContent + } + + public var body: some View { + @ViewBuilder var titleView: some View { + Text(title) + // By default uppercasing is applied, setting nil to not enforce casing + .textCase(nil) + } + + @ViewBuilder var contentView: some View { + if let trailingContent { + HStack { + titleView + Spacer(minLength: 0) + trailingContent() + } + } else { + titleView + } + } + + return contentView + } + + // MARK: Private variables + + private var trailingContent: (() -> TrailingContent)? + private let title: Title +} + +// MARK: Additional Initializers + +public extension FluentListSectionHeader where TrailingContent == EmptyView { + init(title: Title) { + self.title = title + } +} From cfa37e60cd063296035973aa99469ddfab6dac5d Mon Sep 17 00:00:00 2001 From: Des Marks Date: Thu, 16 May 2024 13:42:55 -0700 Subject: [PATCH 23/90] Initial Implementation of FluentList and FluentListSection (#2019) * FluentList and FluentListSection. Update ListItem demo controllers to use implementations. --- ...ListActionItemDemoController_SwiftUI.swift | 102 ++++++++++-------- .../ListItemDemoController_SwiftUI.swift | 12 ++- ios/FluentUI.xcodeproj/project.pbxproj | 12 +++ ios/FluentUI/List/FluentList.swift | 61 +++++++++++ ios/FluentUI/List/FluentListModifiers.swift | 17 +++ ios/FluentUI/List/FluentListSection.swift | 78 ++++++++++++++ 6 files changed, 235 insertions(+), 47 deletions(-) create mode 100644 ios/FluentUI/List/FluentList.swift create mode 100644 ios/FluentUI/List/FluentListModifiers.swift create mode 100644 ios/FluentUI/List/FluentListSection.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift index 5ad5758bba..83ea6aba99 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift @@ -31,9 +31,9 @@ struct ListActionItemDemoView: View { @State var topSeparatorType: ListActionItemSeparatorType = .none @State var bottomSeparatorType: ListActionItemSeparatorType = .inset @State var backgroundStyleType: ListItemBackgroundStyleType = .grouped + @State var listStyle: FluentListStyle = .plain public var body: some View { - @ViewBuilder var textFields: some View { TextField("Primary Action Title", text: $primaryActionTitle) @@ -80,58 +80,72 @@ struct ListActionItemDemoView: View { Picker("Bottom Separator Type", selection: $bottomSeparatorType) { separatorTypePickerOptions } + + let listStylePickerOptions = Group { + Text(".plain").tag(FluentListStyle.plain) + Text(".insetGrouped").tag(FluentListStyle.insetGrouped) + Text(".inset").tag(FluentListStyle.inset) + } + + Picker("List Style Type", selection: $listStyle) { + listStylePickerOptions + } } @ViewBuilder var content: some View { - List { - Section { - if showSecondaryAction { - ListActionItem(primaryActionTitle: primaryActionTitle, - onPrimaryActionTapped: { - showingAlert.toggle() - }, - primaryActionType: primaryActionType, - secondaryActionTitle: secondaryActionTitle, - onSecondaryActionTapped: { - showingAlert.toggle() - }, - secondaryActionType: secondaryActionType) - .topSeparatorType(topSeparatorType) - .bottomSeparatorType(bottomSeparatorType) - .backgroundStyleType(backgroundStyleType) - } else { - ListActionItem(title: primaryActionTitle, - onTapped: { - showingAlert.toggle() - }, - actionType: primaryActionType) - .topSeparatorType(topSeparatorType) - .bottomSeparatorType(bottomSeparatorType) - .backgroundStyleType(backgroundStyleType) - } - - } header: { - Text("ListActionItem") - } - .alert("Action tapped", isPresented: $showingAlert) { - Button("OK", role: .cancel) { } - .accessibilityIdentifier("DismissAlertButton") + FluentListSection { + if showSecondaryAction { + ListActionItem(primaryActionTitle: primaryActionTitle, + onPrimaryActionTapped: { + showingAlert.toggle() + }, + primaryActionType: primaryActionType, + secondaryActionTitle: secondaryActionTitle, + onSecondaryActionTapped: { + showingAlert.toggle() + }, + secondaryActionType: secondaryActionType) + .topSeparatorType(topSeparatorType) + .bottomSeparatorType(bottomSeparatorType) + .backgroundStyleType(backgroundStyleType) + } else { + ListActionItem(title: primaryActionTitle, + onTapped: { + showingAlert.toggle() + }, + actionType: primaryActionType) + .topSeparatorType(topSeparatorType) + .bottomSeparatorType(bottomSeparatorType) + .backgroundStyleType(backgroundStyleType) } + } header: { + Text("ListActionItem") + } + .alert("Action tapped", isPresented: $showingAlert) { + Button("OK", role: .cancel) { } + .accessibilityIdentifier("DismissAlertButton") + } - Section { - FluentUIDemoToggle(titleKey: "Show secondary action", isOn: $showSecondaryAction) - .accessibilityIdentifier("showSecondaryActionSwitch") - textFields - pickers - } header: { - Text("Settings") - } + FluentListSection { + FluentUIDemoToggle(titleKey: "Show secondary action", isOn: $showSecondaryAction) + .accessibilityIdentifier("showSecondaryActionSwitch") + textFields + pickers + } header: { + Text("Settings") + } + } + + @ViewBuilder + var list: some View { + FluentList { + content } + .fluentListStyle(listStyle) .fluentTheme(fluentTheme) - .listStyle(.insetGrouped) } - return content + return list } } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift index 4ce21b8226..702a041a9d 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift @@ -44,6 +44,7 @@ struct ListItemDemoView: View { @State var trailingContentFocusableElementCount: Int = 0 @State var trailingContentToggleEnabled: Bool = true @State var renderStandalone: Bool = false + @State var listStyle: FluentListStyle = .plain public var body: some View { @@ -103,6 +104,11 @@ struct ListItemDemoView: View { Text(".clear").tag(ListItemBackgroundStyleType.clear) Text(".custom").tag(ListItemBackgroundStyleType.custom) } + Picker("List Style Type", selection: $listStyle) { + Text(".plain").tag(FluentListStyle.plain) + Text(".insetGrouped").tag(FluentListStyle.insetGrouped) + Text(".inset").tag(FluentListStyle.inset) + } } @ViewBuilder @@ -202,9 +208,9 @@ struct ListItemDemoView: View { if renderStandalone { listItem } - List { + FluentList { if !renderStandalone { - Section { + FluentListSection { listItem } header: { Text("ListItem") @@ -212,9 +218,9 @@ struct ListItemDemoView: View { } controls } + .fluentListStyle(listStyle) .background(ListItem.listBackgroundColor(for: .grouped)) .fluentTheme(fluentTheme) - .listStyle(.insetGrouped) } } diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index c4d82551cd..01d8e315ed 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -212,6 +212,9 @@ 92ECB2DF2BE06BCB00404D79 /* FluentTheme+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */; }; 92EE82AE27025A94009D52B5 /* TokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92EE82AC27025A94009D52B5 /* TokenSet.swift */; }; 92F8054E272B2DF3000EAFDB /* CardNudgeModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92079C8E26B66E5100D688DA /* CardNudgeModifiers.swift */; }; + 94679F2C2BF55059004A1560 /* FluentListSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2A2BF55059004A1560 /* FluentListSection.swift */; }; + 94679F2D2BF55059004A1560 /* FluentList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2B2BF55059004A1560 /* FluentList.swift */; }; + 94679F2F2BF57F86004A1560 /* FluentListModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */; }; 94A7EC1A2836DCB200BFFBAE /* CommandBarCommandGroupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */; }; A257F82C251D98F3002CAA6E /* FluentUI-ios.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */; }; A542A9D7226FC01100204A52 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A559BB81212B6FA40055E107 /* Localizable.strings */; }; @@ -383,6 +386,9 @@ 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+DynamicColor.swift"; sourceTree = ""; }; 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+UIKit.swift"; sourceTree = ""; }; 92EE82AC27025A94009D52B5 /* TokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenSet.swift; sourceTree = ""; }; + 94679F2A2BF55059004A1560 /* FluentListSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentListSection.swift; sourceTree = ""; }; + 94679F2B2BF55059004A1560 /* FluentList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentList.swift; sourceTree = ""; }; + 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListModifiers.swift; sourceTree = ""; }; 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarCommandGroupsView.swift; sourceTree = ""; }; A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "FluentUI-ios.xcassets"; path = "FluentUI/Resources/FluentUI-ios.xcassets"; sourceTree = ""; }; A5237ACA21DED7030040BF27 /* ResizingHandleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResizingHandleView.swift; sourceTree = ""; }; @@ -1190,6 +1196,9 @@ F3F113872A705AC300DA852A /* List */ = { isa = PBXGroup; children = ( + 94679F2B2BF55059004A1560 /* FluentList.swift */, + 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */, + 94679F2A2BF55059004A1560 /* FluentListSection.swift */, F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */, F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */, F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */, @@ -1607,9 +1616,11 @@ 5314E14325F016860099271A /* CardTransitionAnimator.swift in Sources */, 5314E0F825F012CB0099271A /* AvatarTitleView.swift in Sources */, 8035CAB62633A4DB007B3FD1 /* BottomCommandingController.swift in Sources */, + 94679F2F2BF57F86004A1560 /* FluentListModifiers.swift in Sources */, 5314E13725F016370099271A /* PopupMenuProtocols.swift in Sources */, 5314E19725F019650099271A /* TabBarItem.swift in Sources */, EC98E2B4298D989100B9DF91 /* FluentTextInputError.swift in Sources */, + 94679F2C2BF55059004A1560 /* FluentListSection.swift in Sources */, 6F2F218F2A12BFD900C50EAB /* BadgeLabelTokenSet.swift in Sources */, 6FC3705E29E7707F0096B239 /* BadgeViewTokenSet.swift in Sources */, 92B7E6A326864AE900EFC15E /* MSFPersonaButton.swift in Sources */, @@ -1758,6 +1769,7 @@ 5314E03B25F00E3D0099271A /* BadgeStringExtractor.swift in Sources */, EC1C31732923022E00CF052C /* SegmentedControlTokenSet.swift in Sources */, 5314E19825F019650099271A /* SideTabBar.swift in Sources */, + 94679F2D2BF55059004A1560 /* FluentList.swift in Sources */, 5314E10A25F014600099271A /* Obscurable.swift in Sources */, F3F1138D2A705B6900DA852A /* ListItemModifiers.swift in Sources */, 5314E07D25F00F1A0099271A /* DateTimePickerViewComponentTableView.swift in Sources */, diff --git a/ios/FluentUI/List/FluentList.swift b/ios/FluentUI/List/FluentList.swift new file mode 100644 index 0000000000..1973af42c6 --- /dev/null +++ b/ios/FluentUI/List/FluentList.swift @@ -0,0 +1,61 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// Fluent specific list style enum +public enum FluentListStyle { + case plain + case insetGrouped + case inset +} + +/// This a wrapper around `SwiftUI.List` that has fluent style applied. It is intended to be used in conjunction with `FluentUI.FluentListSection` and `FluentUI.ListItem` +/// to provide a completely fluentized list, however, it can be used on it's own if desired. +/// +/// This component is a work in progress. Expect changes to be made to it on a somewhat regular basis. +public struct FluentList: View { + + // MARK: Initializer + + /// Creates a `FluentList` + /// - Parameters: + /// - content: content to show inside of the list. + public init(@ViewBuilder content: @escaping () -> ListContent) { + self.content = content + } + + public var body: some View { + @ViewBuilder + var list: some View { + List { + content() + } + } + + @ViewBuilder + var styledList: some View { + switch listStyle { + case .inset: + list.listStyle(.inset) + case .insetGrouped: + list.listStyle(.insetGrouped) + case .plain: + list.listStyle(.plain) + } + } + + return styledList + } + + /// Style to be used by the list + var listStyle: FluentListStyle = .plain + + // MARK: Private variables + + /// Content to render inside the list + private var content: () -> ListContent + +} diff --git a/ios/FluentUI/List/FluentListModifiers.swift b/ios/FluentUI/List/FluentListModifiers.swift new file mode 100644 index 0000000000..bad696318b --- /dev/null +++ b/ios/FluentUI/List/FluentListModifiers.swift @@ -0,0 +1,17 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +public extension FluentList { + /// The list style type for the `FluentList`. + /// - Parameter listStyle: Type of style to display the list with. + /// - Returns: The modified `FluentList` with the style property set. + func fluentListStyle(_ listStyle: FluentListStyle) -> FluentList { + var list = self + list.listStyle = listStyle + return list + } +} diff --git a/ios/FluentUI/List/FluentListSection.swift b/ios/FluentUI/List/FluentListSection.swift new file mode 100644 index 0000000000..027fcc015f --- /dev/null +++ b/ios/FluentUI/List/FluentListSection.swift @@ -0,0 +1,78 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// This a wrapper around `SwiftUI.Section` that has fluent style applied. It is intended to be used in conjunction with `FluentUI.FluentList` and `FluentUI.ListItem` +/// to provide a completely fluentized list, however, it can be used on it's own if desired. +/// +/// This component is a work in progress. Expect changes to be made to it on a somewhat regular basis. +public struct FluentListSection: View { + + // MARK: Initializer + + /// Creates a `FluentListSection` + /// - Parameters: + /// - content: content to show inside of the section. + /// - header: content to show inside of the header. + /// - footer: content to show inside of the footer. + public init(@ViewBuilder content: @escaping () -> SectionContent, + @ViewBuilder header: @escaping () -> SectionHeaderContent, + @ViewBuilder footer: @escaping () -> SectionFooterContent) { + self.content = content + self.header = header + self.footer = footer + } + + public var body: some View { + @ViewBuilder + var sectionView: some View { + Section { + content() + } header: { + if let header = header { + header() + } + } footer: { + if let footer = footer { + footer() + } + } + } + return sectionView + } + + // MARK: Private variables + + /// Content to display in the body of the section + private var content: () -> SectionContent + + /// Content to display in the footer of the section + private var footer: (() -> SectionFooterContent)? + + /// Content to display in the header of the section + private var header: (() -> SectionHeaderContent)? + +} + +public extension FluentListSection where SectionHeaderContent == EmptyView, SectionFooterContent == EmptyView { + init(@ViewBuilder content: @escaping () -> SectionContent) { + self.content = content + } +} + +public extension FluentListSection where SectionFooterContent == EmptyView { + init(@ViewBuilder content: @escaping () -> SectionContent, @ViewBuilder header: @escaping () -> SectionHeaderContent) { + self.content = content + self.header = header + } +} + +public extension FluentListSection where SectionHeaderContent == EmptyView { + init(@ViewBuilder content: @escaping () -> SectionContent, @ViewBuilder footer: @escaping () -> SectionFooterContent) { + self.content = content + self.footer = footer + } +} From da978e37df0ee4b19a8084b594ba11811f2e3df3 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Thu, 16 May 2024 21:12:37 -0700 Subject: [PATCH 24/90] Avatar custom default image (#2021) * Add new property `customDefaultImage` to `Avatar` * Update demo controllers * Update comments for Avatar modifier * `customDefaultImage` -> `defaultImage` * Move default image name to constants struct --- .../Demos/AvatarDemoController.swift | 35 +++++++++++++++---- .../Demos/AvatarDemoController_SwiftUI.swift | 11 ++++++ ios/FluentUI/Avatar/Avatar.swift | 15 +++++--- ios/FluentUI/Avatar/AvatarModifiers.swift | 10 +++++- ios/FluentUI/Avatar/AvatarTokenSet.swift | 6 ++++ 5 files changed, 66 insertions(+), 11 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift index 1a762631b2..f3993bb0cc 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift @@ -54,7 +54,8 @@ class AvatarDemoController: DemoTableViewController { .presence, .activity, .ringInnerGap, - .transparency: + .transparency, + .defaultImage: guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { return UITableViewCell() } @@ -286,6 +287,16 @@ class AvatarDemoController: DemoTableViewController { } } + private var useCustomDefaultImage: Bool = false { + didSet { + if oldValue != useCustomDefaultImage { + allDemoAvatarsCombined.forEach { avatar in + avatar.state.defaultImage = useCustomDefaultImage ? UIImage(named: "flag-48x48") : nil + } + } + } + } + private lazy var presenceIterator = MSFAvatarPresence.allCases.makeIterator() static var colorfulCustomImage: UIImage? { @@ -397,6 +408,8 @@ class AvatarDemoController: DemoTableViewController { return self.isShowingRingInnerGap case .transparency: return self.isTransparent + case .defaultImage: + return self.useCustomDefaultImage } } @@ -433,6 +446,8 @@ class AvatarDemoController: DemoTableViewController { self.isShowingRingInnerGap = isOn case .transparency: self.isTransparent = isOn + case .defaultImage: + self.useCustomDefaultImage = isOn } } @@ -509,7 +524,8 @@ class AvatarDemoController: DemoTableViewController { .outOfOffice, .ring, .ringInnerGap, - .imageBasedRingColor] + .imageBasedRingColor, + .defaultImage] case .size72, .size56, .size40, @@ -551,6 +567,7 @@ class AvatarDemoController: DemoTableViewController { case ringInnerGap case swiftUIDemo case transparency + case defaultImage var isDemoRow: Bool { switch self { @@ -574,7 +591,8 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency: + .transparency, + .defaultImage: return false } } @@ -602,7 +620,8 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency: + .transparency, + .defaultImage: return nil } } @@ -632,7 +651,8 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency: + .transparency, + .defaultImage: return nil } } @@ -664,7 +684,8 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency: + .transparency, + .defaultImage: preconditionFailure("Row does not have an associated avatar style") } } @@ -711,6 +732,8 @@ class AvatarDemoController: DemoTableViewController { return "SwiftUI Demo" case .transparency: return "Use transparency" + case .defaultImage: + return "Use custom default image" } } } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift index 4b1946d3fd..48732a2acd 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift @@ -46,10 +46,19 @@ struct AvatarDemoView: View { @State var showActivityImage: Bool = false @State var showImage: Bool = false @State var showImageBasedRingColor: Bool = false + @State var useCustomDefaultImage: Bool = false @State var size: MSFAvatarSize = .size72 @State var style: MSFAvatarStyle = .default @ObservedObject var fluentTheme: FluentTheme = .shared + var defaultImage: UIImage? { + if useCustomDefaultImage { + return UIImage(named: "flag-48x48") + } else { + return nil + } + } + public var body: some View { VStack { Avatar(style: style, @@ -60,6 +69,7 @@ struct AvatarDemoView: View { .isRingVisible(showImageBasedRingColor || isRingVisible) .hasRingInnerGap(hasRingInnerGap) .imageBasedRingColor(showImageBasedRingColor ? AvatarDemoController.colorfulCustomImage : nil) + .defaultImage(defaultImage) .isTransparent(isTransparent) .presence(presence) .activity(activityStyle, showActivityImage ? (activityStyle == .circle ? UIImage(named: "thumbs_up_3d_default") : UIImage(named: "excelIcon")) : nil) @@ -94,6 +104,7 @@ struct AvatarDemoView: View { FluentUIDemoToggle(titleKey: "Transparency", isOn: $isTransparent) FluentUIDemoToggle(titleKey: "iPad Pointer interaction", isOn: $hasPointerInteraction) FluentUIDemoToggle(titleKey: "Animate transitions", isOn: $isAnimated) + FluentUIDemoToggle(titleKey: "Use custom default image", isOn: $useCustomDefaultImage) } Group { diff --git a/ios/FluentUI/Avatar/Avatar.swift b/ios/FluentUI/Avatar/Avatar.swift index e130e43b02..2ce8f4a0f0 100644 --- a/ios/FluentUI/Avatar/Avatar.swift +++ b/ios/FluentUI/Avatar/Avatar.swift @@ -34,6 +34,9 @@ import SwiftUI /// The image used to fill the ring as a custom color. var imageBasedRingColor: UIImage? { get set } + /// An override for the template icon to use when there is no set image or name. + var defaultImage: UIImage? { get set } + /// Defines whether the avatar state transitions are animated or not. Animations are enabled by default. var isAnimated: Bool { get set } @@ -161,11 +164,14 @@ public struct Avatar: View, TokenizedControlView { let avatarImageInfo: (image: UIImage?, renderingMode: Image.TemplateRenderingMode) = { if shouldUseDefaultImage { - let isOutlinedStyle = style == .outlined || style == .outlinedPrimary - return (UIImage.staticImageNamed(isOutlinedStyle ? "person_48_regular" : "person_48_filled"), .template) + var defaultImage = state.defaultImage + if defaultImage == nil { + defaultImage = UIImage.staticImageNamed(AvatarTokenSet.defaultImageName(style)) + } + return (defaultImage, .template) + } else { + return (state.image, .original) } - - return (state.image, .original) }() let avatarImageSizeRatio: CGFloat = (shouldUseDefaultImage) ? 0.7 : 1 @@ -553,6 +559,7 @@ class MSFAvatarStateImpl: ControlState, MSFAvatarState { @Published var hasRingInnerGap: Bool = true @Published var image: UIImage? @Published var imageBasedRingColor: UIImage? + @Published var defaultImage: UIImage? @Published var isAnimated: Bool = true @Published var isOutOfOffice: Bool = false @Published var isRingVisible: Bool = false diff --git a/ios/FluentUI/Avatar/AvatarModifiers.swift b/ios/FluentUI/Avatar/AvatarModifiers.swift index 1a40fba6ed..d4f5368aa9 100644 --- a/ios/FluentUI/Avatar/AvatarModifiers.swift +++ b/ios/FluentUI/Avatar/AvatarModifiers.swift @@ -50,8 +50,16 @@ public extension Avatar { return self } + /// An override for the template icon to use when there is no set image or name. + /// - Parameter defaultImage: Image to be used as the Avatar's default image. + /// - Returns: The modified Avatar with the property set. + func defaultImage(_ defaultImage: UIImage?) -> Avatar { + state.defaultImage = defaultImage + return self + } + /// The image used to fill the ring as a custom color. - /// - Parameter imageBasedRingColor: Image to be used as a the ring fill pattern. + /// - Parameter imageBasedRingColor: Image to be used as the ring fill pattern. /// - Returns: The modified Avatar with the property set. func imageBasedRingColor(_ imageBasedRingColor: UIImage?) -> Avatar { state.imageBasedRingColor = imageBasedRingColor diff --git a/ios/FluentUI/Avatar/AvatarTokenSet.swift b/ios/FluentUI/Avatar/AvatarTokenSet.swift index e58564aee4..d6598536fa 100644 --- a/ios/FluentUI/Avatar/AvatarTokenSet.swift +++ b/ios/FluentUI/Avatar/AvatarTokenSet.swift @@ -273,6 +273,12 @@ extension AvatarTokenSet { return GlobalTokens.icon(.size280) } } + + /// The name of the icon to use for the default image. + static func defaultImageName(_ style: MSFAvatarStyle) -> String { + let isOutlinedStyle = style == .outlined || style == .outlinedPrimary + return isOutlinedStyle ? "person_48_regular" : "person_48_filled" + } } /// Pre-defined styles of the avatar. From 490d7df95b08e67268b8b6955f1c4e318d2b19bc Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Fri, 17 May 2024 12:31:46 -0700 Subject: [PATCH 25/90] [FluentList] Set environment variable for styling so child views can utilize it (#2023) * style inset group fluent list --- .../ListItemDemoController_SwiftUI.swift | 1 - ios/FluentUI/List/FluentList.swift | 50 ++++++++++++++++++- ios/FluentUI/List/ListItem.swift | 22 +++++++- ios/FluentUI/List/ListItemModifiers.swift | 4 +- 4 files changed, 70 insertions(+), 7 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift index 702a041a9d..77118f8024 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift @@ -219,7 +219,6 @@ struct ListItemDemoView: View { controls } .fluentListStyle(listStyle) - .background(ListItem.listBackgroundColor(for: .grouped)) .fluentTheme(fluentTheme) } } diff --git a/ios/FluentUI/List/FluentList.swift b/ios/FluentUI/List/FluentList.swift index 1973af42c6..03061f052f 100644 --- a/ios/FluentUI/List/FluentList.swift +++ b/ios/FluentUI/List/FluentList.swift @@ -32,6 +32,7 @@ public struct FluentList: View { var list: some View { List { content() + .environment(\.listStyle, listStyle) } } @@ -41,9 +42,16 @@ public struct FluentList: View { case .inset: list.listStyle(.inset) case .insetGrouped: - list.listStyle(.insetGrouped) + list + .listStyle(.insetGrouped) + // TODO: Directly use `FluentList` token set instead of `ListItem` + .background(ListItem.listBackgroundColor(for: .grouped)) + .listStyling_iOS17() case .plain: - list.listStyle(.plain) + list + .listStyle(.plain) + // TODO: Directly use `FluentList` token set instead of `ListItem` + .background(ListItem.listBackgroundColor(for: .plain)) } } @@ -59,3 +67,41 @@ public struct FluentList: View { private var content: () -> ListContent } + +// MARK: - Environment + +extension EnvironmentValues { + var listStyle: FluentListStyle { + get { + self[FluentListStyleKey.self] + } + set { + self[FluentListStyleKey.self] = newValue + } + } +} + +struct FluentListStyleKey: EnvironmentKey { + static var defaultValue: FluentListStyle { .plain } +} + +// MARK: - View + +extension View { + /// Abstracts away differences in pre-iOS 17 for list styling + /// + /// This function should be removed once we move to iOS 17 as a minimum target. + /// - Parameters: + /// - spacing: The amount of spacing between sections. + /// - minHeaderHeight: The minimum header height for sections in the list + /// - Returns: A view that has list section spacing applied if iOS 17 is available. + func listStyling_iOS17() -> some View { + if #available(iOS 17, *) { + return self + .listSectionSpacing(16) + .environment(\.defaultMinListHeaderHeight, 32) + } else { + return self + } + } +} diff --git a/ios/FluentUI/List/ListItem.swift b/ios/FluentUI/List/ListItem.swift index e4f4038aed..1f71a45f44 100644 --- a/ios/FluentUI/List/ListItem.swift +++ b/ios/FluentUI/List/ListItem.swift @@ -249,8 +249,8 @@ public struct ListItem Void)? @@ -281,8 +281,26 @@ public struct ListItem LeadingContent)? private var trailingContent: (() -> TrailingContent)? diff --git a/ios/FluentUI/List/ListItemModifiers.swift b/ios/FluentUI/List/ListItemModifiers.swift index 08abd95520..343ae5f42e 100644 --- a/ios/FluentUI/List/ListItemModifiers.swift +++ b/ios/FluentUI/List/ListItemModifiers.swift @@ -50,12 +50,12 @@ public extension ListItem { return listItem } - /// The background styling of the `ListItem` to match the type of `List` it is displayed in. + /// The background styling of the `ListItem` which overrides the inherited value from `FluentList`. /// - Parameter backgroundStyleType: The style of the background. /// - Returns: The modified `ListItem` with the property set. func backgroundStyleType(_ backgroundStyleType: ListItemBackgroundStyleType) -> ListItem { var listItem = self - listItem.backgroundStyleType = backgroundStyleType + listItem.customBackgroundStyleType = backgroundStyleType return listItem } From 559f4a4c0bef5516379996f71876ce115189659d Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 17 May 2024 15:18:24 -0700 Subject: [PATCH 26/90] Rename SwiftUI Color token APIs (#2025) --- ...iasColorTokensDemoController_SwiftUI.swift | 4 +- .../Button/FluentButtonToggleStyle.swift | 2 +- .../Core/Theme/FluentTheme+Tokens.swift | 384 +++++++++--------- .../Core/Theme/Tokens/ControlTokenSet.swift | 4 +- .../Theme/Tokens/GlobalTokens+UIKit.swift | 6 +- .../Core/Theme/Tokens/GlobalTokens.swift | 6 +- .../Notification/NotificationTokenSet.swift | 34 +- 7 files changed, 220 insertions(+), 220 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift index d3a9645486..595a5c9941 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift @@ -47,7 +47,7 @@ struct AliasColorTokensDemoView: View { } } } - .background(fluentTheme.color(.backgroundCanvas)) + .background(fluentTheme.swiftUIColor(.backgroundCanvas)) } @ViewBuilder @@ -56,7 +56,7 @@ struct AliasColorTokensDemoView: View { ForEach(demoSection.rows, id: \.self) { colorRow in Text(colorRow.text) .frame(maxWidth: .infinity, alignment: .center) - .listRowBackground(fluentTheme.color(colorRow)) + .listRowBackground(fluentTheme.swiftUIColor(colorRow)) .foregroundStyle(Color(colorRow.textColor(fluentTheme))) } } diff --git a/ios/FluentUI/Button/FluentButtonToggleStyle.swift b/ios/FluentUI/Button/FluentButtonToggleStyle.swift index 281a840d89..e95b5b508d 100644 --- a/ios/FluentUI/Button/FluentButtonToggleStyle.swift +++ b/ios/FluentUI/Button/FluentButtonToggleStyle.swift @@ -45,7 +45,7 @@ public struct FluentButtonToggleStyle: ToggleStyle { } private var buttonOnTokens: [ButtonToken: ControlTokenValue] { - let backgroundColor: Color = fluentTheme.color(.brandBackgroundTint) + let backgroundColor = fluentTheme.swiftUIColor(.brandBackgroundTint) var tokens: [ButtonToken: ControlTokenValue] = buttonTokens.merging([ .backgroundColor: .color { backgroundColor }, .backgroundPressedColor: .color { backgroundColor }, diff --git a/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift b/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift index eb254c8e18..1efa587f69 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift @@ -149,7 +149,7 @@ public extension FluentTheme { /// /// - Parameter token: The `ColorsTokens` value to be retrieved. /// - Returns: A `Color` for the given token. - func color(_ token: ColorToken) -> Color { + func swiftUIColor(_ token: ColorToken) -> Color { return Color(dynamicColor: colorTokenSet[token]) } @@ -201,281 +201,281 @@ extension FluentTheme { static func defaultColor(_ token: FluentTheme.ColorToken) -> DynamicColor { switch token { case .foreground1: - return DynamicColor(light: GlobalTokens.neutralColor(.grey14), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .foreground2: - return DynamicColor(light: GlobalTokens.neutralColor(.grey38), - dark: GlobalTokens.neutralColor(.grey84)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey84)) case .foreground3: - return DynamicColor(light: GlobalTokens.neutralColor(.grey50), - dark: GlobalTokens.neutralColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey50), + dark: GlobalTokens.neutralSwiftUIColor(.grey68)) case .foregroundDisabled1: - return DynamicColor(light: GlobalTokens.neutralColor(.grey74), - dark: GlobalTokens.neutralColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey74), + dark: GlobalTokens.neutralSwiftUIColor(.grey36)) case .foregroundDisabled2: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey18)) case .foregroundOnColor: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .brandForegroundTint: - return DynamicColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm130)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm130)) case .brandForeground1: - return DynamicColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandForeground1Pressed: - return DynamicColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandForeground1Selected: - return DynamicColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandForegroundDisabled1: - return DynamicColor(light: GlobalTokens.brandColor(.comm90)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm90)) case .brandForegroundDisabled2: - return DynamicColor(light: GlobalTokens.brandColor(.comm140), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandGradient1: - return DynamicColor(light: GlobalTokens.brandColor(.gradientPrimaryLight), - dark: GlobalTokens.brandColor(.gradientPrimaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientPrimaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientPrimaryDark)) case .brandGradient2: - return DynamicColor(light: GlobalTokens.brandColor(.gradientSecondaryLight), - dark: GlobalTokens.brandColor(.gradientSecondaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientSecondaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientSecondaryDark)) case .brandGradient3: - return DynamicColor(light: GlobalTokens.brandColor(.gradientTertiaryLight), - dark: GlobalTokens.brandColor(.gradientTertiaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientTertiaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientTertiaryDark)) case .foregroundDarkStatic: - return DynamicColor(light: GlobalTokens.neutralColor(.black), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .foregroundLightStatic: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .background1: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black), - darkElevated: GlobalTokens.neutralColor(.grey4)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey4)) case .background1Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey18), - darkElevated: GlobalTokens.neutralColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey18), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey18)) case .background1Selected: - return DynamicColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey14), - darkElevated: GlobalTokens.neutralColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey14), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .background2: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey12), - darkElevated: GlobalTokens.neutralColor(.grey16)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey12), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey16)) case .background2Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background2Selected: - return DynamicColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey26), - darkElevated: GlobalTokens.neutralColor(.grey26)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey26)) case .background3: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey16), - darkElevated: GlobalTokens.neutralColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey16), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey20)) case .background3Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey34), - darkElevated: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background3Selected: - return DynamicColor(light: GlobalTokens.neutralColor(.grey92), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background4: - return DynamicColor(light: GlobalTokens.neutralColor(.grey98), - dark: GlobalTokens.neutralColor(.grey20), - darkElevated: GlobalTokens.neutralColor(.grey24)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey24)) case .background4Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey86), - dark: GlobalTokens.neutralColor(.grey38), - darkElevated: GlobalTokens.neutralColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background4Selected: - return DynamicColor(light: GlobalTokens.neutralColor(.grey90), - dark: GlobalTokens.neutralColor(.grey34), - darkElevated: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background5: - return DynamicColor(light: GlobalTokens.neutralColor(.grey94), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey28)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey94), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey28)) case .background5Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey42), - darkElevated: GlobalTokens.neutralColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey42), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .background5Selected: - return DynamicColor(light: GlobalTokens.neutralColor(.grey86), - dark: GlobalTokens.neutralColor(.grey38), - darkElevated: GlobalTokens.neutralColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background6: - return DynamicColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey36), - darkElevated: GlobalTokens.neutralColor(.grey40)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey36), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey40)) case .backgroundDisabled: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey32), - darkElevated: GlobalTokens.neutralColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey32), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandBackgroundTint: - return DynamicColor(light: GlobalTokens.brandColor(.comm150), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm150), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground1: - return DynamicColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandBackground1Pressed: - return DynamicColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandBackground1Selected: - return DynamicColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackground2: - return DynamicColor(light: GlobalTokens.brandColor(.comm70)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm70)) case .brandBackground2Pressed: - return DynamicColor(light: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground2Selected: - return DynamicColor(light: GlobalTokens.brandColor(.comm80)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80)) case .brandBackground3: - return DynamicColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackgroundDisabled: - return DynamicColor(light: GlobalTokens.brandColor(.comm140), - dark: GlobalTokens.brandColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .stencil1: - return DynamicColor(light: GlobalTokens.neutralColor(.grey90), - dark: GlobalTokens.neutralColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34)) case .stencil2: - return DynamicColor(light: GlobalTokens.neutralColor(.grey98), - dark: GlobalTokens.neutralColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20)) case .backgroundCanvas: - return DynamicColor(light: GlobalTokens.neutralColor(.grey96), - dark: GlobalTokens.neutralColor(.grey8), - darkElevated: GlobalTokens.neutralColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey96), + dark: GlobalTokens.neutralSwiftUIColor(.grey8), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .backgroundDarkStatic: - return DynamicColor(light: GlobalTokens.neutralColor(.grey14), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .backgroundInverted: - return DynamicColor(light: GlobalTokens.neutralColor(.grey46), - dark: GlobalTokens.neutralColor(.grey72), - darkElevated: GlobalTokens.neutralColor(.grey78)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey46), + dark: GlobalTokens.neutralSwiftUIColor(.grey72), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey78)) case .backgroundLightStatic: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.white), - darkElevated: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white), + darkElevated: GlobalTokens.neutralSwiftUIColor(.white)) case .backgroundLightStaticDisabled: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.grey68), - darkElevated: GlobalTokens.neutralColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey68), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .stroke1: - return DynamicColor(light: GlobalTokens.neutralColor(.grey82), - dark: GlobalTokens.neutralColor(.grey30), - darkElevated: GlobalTokens.neutralColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey36)) case .stroke1Pressed: - return DynamicColor(light: GlobalTokens.neutralColor(.grey70), - dark: GlobalTokens.neutralColor(.grey48)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey70), + dark: GlobalTokens.neutralSwiftUIColor(.grey48)) case .stroke2: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey24), - darkElevated: GlobalTokens.neutralColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .strokeAccessible: - return DynamicColor(light: GlobalTokens.neutralColor(.grey38), - dark: GlobalTokens.neutralColor(.grey62), - darkElevated: GlobalTokens.neutralColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey62), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey68)) case .strokeFocus1: - return DynamicColor(light: GlobalTokens.neutralColor(.white), - dark: GlobalTokens.neutralColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .strokeFocus2: - return DynamicColor(light: GlobalTokens.neutralColor(.black), - dark: GlobalTokens.neutralColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .strokeDisabled: - return DynamicColor(light: GlobalTokens.neutralColor(.grey88), - dark: GlobalTokens.neutralColor(.grey26), - darkElevated: GlobalTokens.neutralColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandStroke1: - return DynamicColor(light: GlobalTokens.brandColor(.comm80), - dark: GlobalTokens.brandColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandStroke1Pressed: - return DynamicColor(light: GlobalTokens.brandColor(.comm50), - dark: GlobalTokens.brandColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandStroke1Selected: - return DynamicColor(light: GlobalTokens.brandColor(.comm60), - dark: GlobalTokens.brandColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .dangerBackground1: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .tint60), - dark: GlobalTokens.sharedColor(.red, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade40)) case .dangerBackground2: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade10)) case .dangerForeground1: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .shade10), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerForeground2: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerStroke1: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .tint20), - dark: GlobalTokens.sharedColor(.red, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint20)) case .dangerStroke2: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .successBackground1: - return DynamicColor(light: GlobalTokens.sharedColor(.green, .tint60), - dark: GlobalTokens.sharedColor(.green, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade40)) case .successBackground2: - return DynamicColor(light: GlobalTokens.sharedColor(.green, .primary), - dark: GlobalTokens.sharedColor(.green, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade10)) case .successForeground1: - return DynamicColor(light: GlobalTokens.sharedColor(.green, .shade10), - dark: GlobalTokens.sharedColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successForeground2: - return DynamicColor(light: GlobalTokens.sharedColor(.green, .primary), - dark: GlobalTokens.sharedColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successStroke1: - return DynamicColor(light: GlobalTokens.sharedColor(.green, .tint20), - dark: GlobalTokens.sharedColor(.green, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint20)) case .severeBackground1: - return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .tint60), - dark: GlobalTokens.sharedColor(.darkOrange, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade40)) case .severeBackground2: - return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .primary), - dark: GlobalTokens.sharedColor(.darkOrange, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10)) case .severeForeground1: - return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .shade10), - dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeForeground2: - return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .shade20), - dark: GlobalTokens.sharedColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade20), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeStroke1: - return DynamicColor(light: GlobalTokens.sharedColor(.darkOrange, .tint10), - dark: GlobalTokens.sharedColor(.darkOrange, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint20)) case .warningBackground1: - return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .tint60), - dark: GlobalTokens.sharedColor(.yellow, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade40)) case .warningBackground2: - return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .primary), - dark: GlobalTokens.sharedColor(.yellow, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade10)) case .warningForeground1: - return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningForeground2: - return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningStroke1: - return DynamicColor(light: GlobalTokens.sharedColor(.yellow, .shade30), - dark: GlobalTokens.sharedColor(.yellow, .shade20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade20)) case .presenceAway: - return DynamicColor(light: GlobalTokens.sharedColor(.marigold, .primary)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.marigold, .primary)) case .presenceDnd: - return DynamicColor(light: GlobalTokens.sharedColor(.red, .primary), - dark: GlobalTokens.sharedColor(.red, .tint10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint10)) case .presenceAvailable: - return DynamicColor(light: GlobalTokens.sharedColor(.lightGreen, .primary), - dark: GlobalTokens.sharedColor(.lightGreen, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.lightGreen, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.lightGreen, .tint20)) case .presenceOof: - return DynamicColor(light: GlobalTokens.sharedColor(.berry, .primary), - dark: GlobalTokens.sharedColor(.berry, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.berry, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.berry, .tint20)) } } diff --git a/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift b/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift index c69156895c..00e8225970 100644 --- a/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift +++ b/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift @@ -309,9 +309,9 @@ public enum ControlTokenValue { private var fallbackColor: Color { #if DEBUG // Use our global "Hot Pink" in debug builds, to help identify unintentional conversions. - return GlobalTokens.sharedColor(.hotPink, .primary) + return GlobalTokens.sharedSwiftUIColor(.hotPink, .primary) #else - return GlobalTokens.neutralColor(.black) + return GlobalTokens.neutralSwiftUIColor(.black) #endif } } diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift index b20e67ca3c..7e33f72521 100644 --- a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift +++ b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift @@ -11,20 +11,20 @@ public extension GlobalTokens { @objc(colorForBrandColorToken:) static func brandColor(_ token: BrandColorToken) -> UIColor { - return UIColor(GlobalTokens.brandColor(token)) + return UIColor(GlobalTokens.brandSwiftUIColor(token)) } // MARK: - NeutralColor @objc(colorForNeutralColorToken:) static func neutralColor(_ token: NeutralColorToken) -> UIColor { - return UIColor(GlobalTokens.neutralColor(token)) + return UIColor(GlobalTokens.neutralSwiftUIColor(token)) } // MARK: - SharedColor @objc(colorForSharedColorSet:token:) static func sharedColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> UIColor { - return UIColor(GlobalTokens.sharedColor(sharedColor, token)) + return UIColor(GlobalTokens.sharedSwiftUIColor(sharedColor, token)) } } diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift index e8b80a33e1..d4207a7132 100644 --- a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift +++ b/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift @@ -42,7 +42,7 @@ public class GlobalTokens: NSObject { case gradientTertiaryDark } - public static func brandColor(_ token: BrandColorToken) -> Color { + public static func brandSwiftUIColor(_ token: BrandColorToken) -> Color { switch token { case .comm10: return Color(hexValue: 0x061724) @@ -147,7 +147,7 @@ public class GlobalTokens: NSObject { case grey98 case white } - public static func neutralColor(_ token: NeutralColorToken) -> Color { + public static func neutralSwiftUIColor(_ token: NeutralColorToken) -> Color { switch token { case .black: return Color(hexValue: 0x000000) @@ -325,7 +325,7 @@ public class GlobalTokens: NSObject { case tint60 } - public static func sharedColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> Color { + public static func sharedSwiftUIColor(_ sharedColor: SharedColorSet, _ token: SharedColorToken) -> Color { switch sharedColor { case .anchor: switch token { diff --git a/ios/FluentUI/Notification/NotificationTokenSet.swift b/ios/FluentUI/Notification/NotificationTokenSet.swift index e7e963e9bc..2d7fc035a6 100644 --- a/ios/FluentUI/Notification/NotificationTokenSet.swift +++ b/ios/FluentUI/Notification/NotificationTokenSet.swift @@ -112,17 +112,17 @@ public class NotificationTokenSet: ControlTokenSet switch style() { case .primaryToast, .primaryBar: - return theme.color(.brandBackgroundTint) + return theme.swiftUIColor(.brandBackgroundTint) case .neutralToast: - return theme.color(.background4) + return theme.swiftUIColor(.background4) case .primaryOutlineBar: - return theme.color(.background1) + return theme.swiftUIColor(.background1) case .neutralBar: - return theme.color(.background5) + return theme.swiftUIColor(.background5) case .dangerToast: - return theme.color(.dangerBackground1) + return theme.swiftUIColor(.dangerBackground1) case .warningToast: - return theme.color(.warningBackground1) + return theme.swiftUIColor(.warningBackground1) } } @@ -131,16 +131,16 @@ public class NotificationTokenSet: ControlTokenSet switch style() { case .primaryToast, .primaryBar: - return theme.color(.brandForegroundTint) + return theme.swiftUIColor(.brandForegroundTint) case .neutralToast, .neutralBar: - return theme.color(.foreground2) + return theme.swiftUIColor(.foreground2) case .primaryOutlineBar: - return theme.color(.brandForeground1) + return theme.swiftUIColor(.brandForeground1) case .dangerToast: - return theme.color(.dangerForeground1) + return theme.swiftUIColor(.dangerForeground1) case .warningToast: - return theme.color(.warningForeground1) + return theme.swiftUIColor(.warningForeground1) } } @@ -149,16 +149,16 @@ public class NotificationTokenSet: ControlTokenSet switch style() { case .primaryToast, .primaryBar: - return theme.color(.brandForegroundTint) + return theme.swiftUIColor(.brandForegroundTint) case .neutralToast, .neutralBar: - return theme.color(.foreground2) + return theme.swiftUIColor(.foreground2) case .primaryOutlineBar: - return theme.color(.brandForeground1) + return theme.swiftUIColor(.brandForeground1) case .dangerToast: - return theme.color(.dangerForeground1) + return theme.swiftUIColor(.dangerForeground1) case .warningToast: - return theme.color(.warningForeground1) + return theme.swiftUIColor(.warningForeground1) } } @@ -197,7 +197,7 @@ public class NotificationTokenSet: ControlTokenSet case .primaryToast, .neutralToast, .primaryBar, .neutralBar, .dangerToast, .warningToast: return .clear case .primaryOutlineBar: - return theme.color(.stroke2) + return theme.swiftUIColor(.stroke2) } } From 39c1e329cc08c641095aeef26092f061e06bb91b Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 17 May 2024 16:30:04 -0700 Subject: [PATCH 27/90] Adding a convenience init for `FluentListSection` (#2024) * Adding a convenience init for `FluentListSection` * Use FluentListSectionHeader for convenience init --- .../Demos/ListActionItemDemoController_SwiftUI.swift | 8 ++------ .../Demos/ListItemDemoController_SwiftUI.swift | 4 +--- ios/FluentUI/List/FluentListSection.swift | 7 +++++++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift index 83ea6aba99..6bb5a0ce5f 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift @@ -94,7 +94,7 @@ struct ListActionItemDemoView: View { @ViewBuilder var content: some View { - FluentListSection { + FluentListSection("ListActionItem") { if showSecondaryAction { ListActionItem(primaryActionTitle: primaryActionTitle, onPrimaryActionTapped: { @@ -119,21 +119,17 @@ struct ListActionItemDemoView: View { .bottomSeparatorType(bottomSeparatorType) .backgroundStyleType(backgroundStyleType) } - } header: { - Text("ListActionItem") } .alert("Action tapped", isPresented: $showingAlert) { Button("OK", role: .cancel) { } .accessibilityIdentifier("DismissAlertButton") } - FluentListSection { + FluentListSection("Settings") { FluentUIDemoToggle(titleKey: "Show secondary action", isOn: $showSecondaryAction) .accessibilityIdentifier("showSecondaryActionSwitch") textFields pickers - } header: { - Text("Settings") } } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift index 77118f8024..e6e6a5a5af 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift @@ -210,10 +210,8 @@ struct ListItemDemoView: View { } FluentList { if !renderStandalone { - FluentListSection { + FluentListSection("ListItem") { listItem - } header: { - Text("ListItem") } } controls diff --git a/ios/FluentUI/List/FluentListSection.swift b/ios/FluentUI/List/FluentListSection.swift index 027fcc015f..047f85252a 100644 --- a/ios/FluentUI/List/FluentListSection.swift +++ b/ios/FluentUI/List/FluentListSection.swift @@ -76,3 +76,10 @@ public extension FluentListSection where SectionHeaderContent == EmptyView { self.footer = footer } } + +public extension FluentListSection where SectionHeaderContent == FluentListSectionHeader, SectionFooterContent == EmptyView { + init(_ title: String, @ViewBuilder content: @escaping () -> SectionContent) { + self.content = content + self.header = { FluentListSectionHeader(title: title) } + } +} From c0f2db734ee7b86e95223a60a065918edcee8823 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Sat, 18 May 2024 17:10:31 -0700 Subject: [PATCH 28/90] [SwiftUI] `AvatarGroup` SwiftUI API (#2022) * Create a public SwiftUI API for AvatarGroup using a ViewBuilder * Fix indentation * Fixes responding to feedback * Switch to `FluentListSection` --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 4 + .../Demos/AvatarGroupDemoController.swift | 50 +++++-- .../AvatarGroupDemoController_SwiftUI.swift | 134 ++++++++++++++++++ ios/FluentUI/Avatar/Avatar.swift | 6 +- ios/FluentUI/AvatarGroup/AvatarGroup.swift | 118 ++++++++------- 5 files changed, 251 insertions(+), 61 deletions(-) create mode 100644 ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index 4d9f755b11..e5d68c124e 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -94,6 +94,7 @@ 928C00B12B8920E60023ECE7 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 928C00B02B8920E60023ECE7 /* View+Extensions.swift */; }; 92B45E4E279A1A0B00E72517 /* DemoAppearanceControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */; }; 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */; }; + 92C55CB72BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C55CB62BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift */; }; 92D5598426A1523400328FD3 /* CardNudgeDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */; }; 92D5FDFD28AC57650087894B /* TypographyTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */; }; 92DD1E8D279F496300FDEE0F /* DemoAppearanceMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD1E8C279F496300FDEE0F /* DemoAppearanceMenu.swift */; }; @@ -233,6 +234,7 @@ 928C00B02B8920E60023ECE7 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = ""; }; 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceControlView.swift; sourceTree = ""; }; 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasColorTokensDemoController_SwiftUI.swift; sourceTree = ""; }; + 92C55CB62BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGroupDemoController_SwiftUI.swift; sourceTree = ""; }; 92D5598326A1523400328FD3 /* CardNudgeDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudgeDemoController.swift; sourceTree = ""; }; 92D5FDFC28AC57650087894B /* TypographyTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypographyTokensDemoController.swift; sourceTree = ""; }; 92DD1E8C279F496300FDEE0F /* DemoAppearanceMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceMenu.swift; sourceTree = ""; }; @@ -525,6 +527,7 @@ 5373D55E2694C3070032A3B4 /* AvatarDemoController.swift */, 5303259226B3198A00611D05 /* AvatarDemoController_SwiftUI.swift */, 5306075826A1E73F002D49CF /* AvatarGroupDemoController.swift */, + 92C55CB62BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift */, B45EB79121A4D047008646A2 /* BadgeFieldDemoController.swift */, B444D6B72183BA4B0002B4D4 /* BadgeViewDemoController.swift */, 80AECC0B2630F1BB005AF2F3 /* BottomCommandingDemoController.swift */, @@ -875,6 +878,7 @@ FDCF7C8321BF35680058E9E6 /* SegmentedControlDemoController.swift in Sources */, 92DD1E8D279F496300FDEE0F /* DemoAppearanceMenu.swift in Sources */, 53097D4027028AE500A6E4DC /* PersonaButtonCarouselDemoController.swift in Sources */, + 92C55CB72BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift in Sources */, C0938E4A235F733100256251 /* ShimmerLinesViewDemoController.swift in Sources */, EC1C31752923032000CF052C /* ColoredPillBackgroundView.swift in Sources */, 80AECC0C2630F1BB005AF2F3 /* BottomCommandingDemoController.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift index 280e513828..4f5d845d51 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift @@ -51,6 +51,15 @@ class AvatarGroupDemoController: DemoTableViewController { let row = section.rows[indexPath.row] switch row { + case .swiftUIDemo: + guard let cell = tableView.dequeueReusableCell(withIdentifier: ActionsCell.identifier) as? ActionsCell else { + return UITableViewCell() + } + cell.setup(action1Title: "Show SwiftUI Demo") + cell.action1Button.addTarget(self, action: #selector(showSwiftUIDemo(_:)), for: .touchUpInside) + + return cell + case .avatarCount: guard let cell = tableView.dequeueReusableCell(withIdentifier: ActionsCell.identifier) as? ActionsCell else { return UITableViewCell() @@ -168,6 +177,7 @@ class AvatarGroupDemoController: DemoTableViewController { // MARK: - Helpers private enum AvatarGroupDemoSection: CaseIterable { + case swiftUIDemo case settings case avatarStackNoActivityRing case avatarStackWithActivityRing @@ -186,8 +196,9 @@ class AvatarGroupDemoController: DemoTableViewController { .avatarPileWithActivityRing, .avatarPileWithMixedActivityRing: return .pile - case .settings: - preconditionFailure("Settings rows should not display an Avatar Group") + case .settings, + .swiftUIDemo: + preconditionFailure("Settings and SwiftUI rows should not display an Avatar Group") } } @@ -201,8 +212,9 @@ class AvatarGroupDemoController: DemoTableViewController { .avatarPileWithActivityRing, .avatarPileWithMixedActivityRing: return true - case .settings: - preconditionFailure("Settings rows should not display an Avatar Group") + case .settings, + .swiftUIDemo: + preconditionFailure("Settings and SwiftUI rows should not display an Avatar Group") } } @@ -216,17 +228,25 @@ class AvatarGroupDemoController: DemoTableViewController { .avatarPileWithActivityRing, .avatarPileNoActivityRing: return false - case .settings: - preconditionFailure("Settings rows should not display an Avatar Group") + case .settings, + .swiftUIDemo: + preconditionFailure("Settings and SwiftUI rows should not display an Avatar Group") } } var isDemoSection: Bool { - return self != .settings + switch self { + case .settings, .swiftUIDemo: + return false + default: + return true + } } var title: String { switch self { + case .swiftUIDemo: + return "SwiftUI Demo" case .settings: return "Settings" case .avatarStackNoActivityRing: @@ -246,6 +266,8 @@ class AvatarGroupDemoController: DemoTableViewController { var rows: [AvatarGroupDemoRow] { switch self { + case .swiftUIDemo: + return [.swiftUIDemo] case .settings: return [.avatarCount, .alternateBackground, @@ -277,6 +299,7 @@ class AvatarGroupDemoController: DemoTableViewController { } private enum AvatarGroupDemoRow: CaseIterable { + case swiftUIDemo case avatarCount case alternateBackground case customRingColor @@ -318,7 +341,8 @@ class AvatarGroupDemoController: DemoTableViewController { .alternateBackground, .customRingColor, .maxDisplayedAvatars, - .overflow: + .overflow, + .swiftUIDemo: return false } } @@ -350,13 +374,16 @@ class AvatarGroupDemoController: DemoTableViewController { .alternateBackground, .customRingColor, .maxDisplayedAvatars, - .overflow: + .overflow, + .swiftUIDemo: preconditionFailure("Row should not display an Avatar Group") } } var title: String { switch self { + case .swiftUIDemo: + return "SwiftUI Demo" case .avatarCount: return "Avatar count" case .alternateBackground: @@ -517,6 +544,11 @@ class AvatarGroupDemoController: DemoTableViewController { } } + @objc private func showSwiftUIDemo(_ cell: ActionsCell) { + navigationController?.pushViewController(AvatarGroupDemoControllerSwiftUI(), + animated: true) + } + @objc private func addAvatarCount(_ cell: ActionsCell) { guard avatarCount < samplePersonas.count else { return diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift new file mode 100644 index 0000000000..066c7417f3 --- /dev/null +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift @@ -0,0 +1,134 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import FluentUI +import UIKit +import SwiftUI + +class AvatarGroupDemoControllerSwiftUI: DemoHostingController { + required init(rootView: AnyView) { + preconditionFailure("init(coder:) has not been implemented") + } + + required dynamic init?(coder aDecoder: NSCoder) { + preconditionFailure("init(coder:) has not been implemented") + } + + init() { + super.init(rootView: AnyView(AvatarGroupDemoView())) + self.title = "AvatarGroup (SwiftUI)" + } +} + +struct AvatarGroupDemoView: View { + static let defaultSize: MSFAvatarSize = .size72 + static let startingAvatarCount: Int = 5 + static let startingMaxDisplayedAvatars: Int = 3 + + @Environment(\.fluentTheme) var fluentTheme: FluentTheme + + @State var useAlternateBackground: Bool = false + + // Avatar settings + @State var isRingVisible: Bool = false + @State var showImage: Bool = true + @State var showImageBasedRingColor: Bool = false + + // AvatarGroup settings + @State var maxDisplayedAvatars: Int = startingMaxDisplayedAvatars + @State var overflowCount: Int = 0 + @State var isUnread: Bool = false + @State var size: MSFAvatarSize = AvatarGroupDemoView.defaultSize + @State var style: MSFAvatarGroupStyle = .stack + @State var avatarCount: Int = startingAvatarCount + + @ViewBuilder + func avatarFromSamplePersona(_ index: Int) -> Avatar { + let samplePersona = samplePersonas[index % samplePersonas.count] + Avatar(style: .default, + size: size, + image: showImage ? samplePersona.image : nil, + primaryText: samplePersona.name, + secondaryText: samplePersona.email) + .isRingVisible(isRingVisible) + .imageBasedRingColor(showImageBasedRingColor ? AvatarDemoController.colorfulCustomImage : nil) + } + + var body: some View { + VStack(spacing: 0) { + ZStack { + fluentTheme.swiftUIColor(useAlternateBackground ? .backgroundCanvas : .background1) + AvatarGroup(style: style, + size: size, + avatarCount: avatarCount, + maxDisplayedAvatars: maxDisplayedAvatars, + overflowCount: overflowCount, + isUnread: isUnread) { index in + avatarFromSamplePersona(index) + }.fixedSize() + } + .frame(height: 120, alignment: .center) + + FluentList { + FluentListSection("Content") { + Stepper("Avatar Count: \(avatarCount)", value: $avatarCount, in: (0...Int.max)) + Stepper("Max Displayed Avatars: \(maxDisplayedAvatars)", value: $maxDisplayedAvatars) + Stepper("Overflow Count: \(overflowCount)", value: $overflowCount) + Toggle("Show Avatar Images", isOn: $showImage) + Toggle("Unread Dot", isOn: $isUnread) + Toggle("Alternate Background", isOn: $useAlternateBackground) + } + + FluentListSection("Ring") { + Toggle("Ring Visible", isOn: $isRingVisible) + Toggle("Image Based Ring Color", isOn: $showImageBasedRingColor) + } + + FluentListSection("Style") { + Picker(selection: $style, label: EmptyView()) { + Text(".stack").tag(MSFAvatarGroupStyle.stack) + Text(".pile").tag(MSFAvatarGroupStyle.pile) + } + .labelsHidden() + .frame(maxWidth: .infinity, alignment: .leading) + } + + FluentListSection("Size") { + Picker("Avatar Size", selection: $size) { + ForEach(MSFAvatarSize.allCases.reversed(), id: \.self) { avatarSize in + Text("\(avatarSize.description)").tag(avatarSize) + } + } + .labelsHidden() + .frame(maxWidth: .infinity, alignment: .leading) + } + } + .fluentListStyle(.insetGrouped) + } + .fluentTheme(fluentTheme) + .tint(Color(fluentTheme.color(.brandForeground1))) + } +} + +extension MSFAvatarSize { + var description: String { + switch self { + case .size16: + return ".size16" + case .size20: + return ".size20" + case .size24: + return ".size24" + case .size32: + return ".size32" + case .size40: + return ".size40" + case .size56: + return ".size56" + case .size72: + return ".size72" + } + } +} diff --git a/ios/FluentUI/Avatar/Avatar.swift b/ios/FluentUI/Avatar/Avatar.swift index 2ce8f4a0f0..30dfc071e0 100644 --- a/ios/FluentUI/Avatar/Avatar.swift +++ b/ios/FluentUI/Avatar/Avatar.swift @@ -85,7 +85,11 @@ import SwiftUI } /// View that represents the avatar. -public struct Avatar: View, TokenizedControlView { +public struct Avatar: View, TokenizedControlView, Equatable { + public static func == (lhs: Avatar, rhs: Avatar) -> Bool { + lhs.state == rhs.state + } + public typealias TokenSetKeyType = AvatarTokenSet.Tokens @ObservedObject public var tokenSet: AvatarTokenSet diff --git a/ios/FluentUI/AvatarGroup/AvatarGroup.swift b/ios/FluentUI/AvatarGroup/AvatarGroup.swift index 4e874abf0f..9077fd6ef4 100644 --- a/ios/FluentUI/AvatarGroup/AvatarGroup.swift +++ b/ios/FluentUI/AvatarGroup/AvatarGroup.swift @@ -95,14 +95,39 @@ public struct AvatarGroup: View, TokenizedControlView { public typealias TokenSetKeyType = AvatarGroupTokenSet.Tokens @ObservedObject public var tokenSet: AvatarGroupTokenSet - /// Creates and initializes a SwiftUI AvatarGroup. + /// Creates and initializes a SwiftUI `AvatarGroup`. /// - Parameters: /// - style: The style of the avatar group. /// - size: The size of the avatars displayed in the avatar group. + /// - avatarCount: The number of Avatars in this group. + /// - maxDisplayedAvatars: Caps the number of displayed avatars and shows the remaining not displayed in the overflow avatar. + /// - overflowCount: Adds to the overflow count in case the calling code did not provide all the avatars, but still wants to convey more + /// items than just the remainder of the avatars that could not be displayed due to the maxDisplayedAvatars property. + /// - isUnread: Show a top-trailing aligned unread dot when set to true. + /// - avatarBuilder: A ViewBuilder that creates an `Avatar` for a given index. public init(style: MSFAvatarGroupStyle, - size: MSFAvatarSize) { + size: MSFAvatarSize, + avatarCount: Int = 0, + maxDisplayedAvatars: Int = Int.max, + overflowCount: Int = 0, + isUnread: Bool = false, + @ViewBuilder avatarBuilder: @escaping (_ index: Int) -> Avatar) { + // Configure the avatars + let avatars = (0.. some View { + func avatarView(at index: Int, for avatar: Avatar) -> some View { let nextIndex = index + 1 let isLastDisplayed = nextIndex == avatarsToDisplay - // If the avatar is part of Stack style and is not the last avatar in the sequence, create a cutout. - let avatarView = avatarViews[index] - let needsCutout = isStackStyle && (hasOverflow || !isLastDisplayed) - let avatarSize: CGFloat = avatarView.totalSize - let nextAvatarSize: CGFloat = isLastDisplayed ? overflowAvatar.totalSize : avatarViews[nextIndex].totalSize // Calculating the size delta of the current and next avatar based off of ring visibility, which helps determine // starting coordinates for the cutout. - let currentAvatarHasRing = avatar.isRingVisible - let nextAvatarHasRing = !isLastDisplayed ? avatars[nextIndex].isRingVisible : false + let currentAvatarHasRing = avatar.state.isRingVisible + let nextAvatarHasRing = !isLastDisplayed ? avatars[nextIndex].state.isRingVisible : false // Calculating the different interspace scenarios considering rings. - let ringOuterGap = avatarView.tokenSet[.ringOuterGap].float - let ringOffset = avatarView.tokenSet[.ringInnerGap].float + avatarView.tokenSet[.ringThickness].float + ringOuterGap + let ringOuterGap = avatar.tokenSet[.ringOuterGap].float + let ringOffset = avatar.tokenSet[.ringInnerGap].float + avatar.tokenSet[.ringThickness].float + ringOuterGap let stackPadding = interspace - (currentAvatarHasRing ? ringOffset : 0) - (nextAvatarHasRing ? ringOuterGap : 0) - // Finalized calculations for x and y coordinates of the Avatar if it needs a cutout, including RTL. - let ringGapOffset = 2 * ringOuterGap - let xOrigin: CGFloat = { - if layoutDirection == .rightToLeft { - return -nextAvatarSize - interspace + ringOuterGap + (currentAvatarHasRing ? ringOffset : 0) + avatar + .transition(.identity) + .onChange_iOS17(of: state.size) { size in + avatar.state.size = size } - return avatarSize + interspace - ringGapOffset - ringOuterGap - (currentAvatarHasRing ? ringOuterGap : 0) - }() - - let sizeDiff = avatarSize - nextAvatarSize - (currentAvatarHasRing ? 0 : ringGapOffset) - let yOrigin = sizeDiff / 2 - - // Hand the rendering of the avatar to a helper function to appease Swift's - // strict type-checking timeout. - VStack { - avatarView - .transition(.identity) - .modifyIf(needsCutout, { view in - view.clipShape(ShapeCutout(xOrigin: xOrigin, - yOrigin: yOrigin, - cornerRadius: .infinity, - cutoutSize: nextAvatarSize), - style: FillStyle(eoFill: true)) - }) - } .padding(.trailing, (isLastDisplayed && !hasOverflow) ? 0 : isStackStyle ? stackPadding : interspace) } @ViewBuilder var avatarGroup: some View { HStack(spacing: 0) { - ForEach(enumeratedAvatars.prefix(avatarsToDisplay), id: \.1) { index, avatar in + ForEach(0.. 0 { @@ -295,6 +296,22 @@ public struct AvatarGroup: View, TokenizedControlView { return str } + /// Creates and initializes a SwiftUI `AvatarGroup`. + /// + /// This internal initializer is used exclusively for our UIKit wrapper, and should not be made public. + /// + /// - Parameters: + /// - style: The style of the avatar group. + /// - size: The size of the avatars displayed in the avatar group. + init(style: MSFAvatarGroupStyle, + size: MSFAvatarSize) { + self.init(style: style, + size: size, + avatarCount: 0) { _ in + Avatar(style: .default, size: .size32) + } + } + @Environment(\.fluentTheme) var fluentTheme: FluentTheme @Environment(\.layoutDirection) var layoutDirection: LayoutDirection @ObservedObject var state: MSFAvatarGroupStateImpl @@ -319,16 +336,17 @@ class MSFAvatarGroupStateImpl: ControlState, MSFAvatarGroupState { guard index <= avatars.count && index >= 0 else { preconditionFailure("Index is out of bounds") } - let avatar = MSFAvatarGroupAvatarStateImpl(size: size) + let avatar = Avatar(style: .default, size: size) + avatar.state.isTransparent = false avatars.insert(avatar, at: index) - return avatar + return avatar.state } func getAvatarState(at index: Int) -> MSFAvatarGroupAvatarState { guard avatars.indices.contains(index) else { preconditionFailure("Index is out of bounds") } - return avatars[index] + return avatars[index].state } func removeAvatar(at index: Int) { @@ -338,7 +356,7 @@ class MSFAvatarGroupStateImpl: ControlState, MSFAvatarGroupState { avatars.remove(at: index) } - @Published var avatars: [MSFAvatarGroupAvatarStateImpl] = [] + @Published var avatars: [Avatar] = [] @Published var maxDisplayedAvatars: Int = Int.max @Published var overflowCount: Int = 0 @Published var isUnread: Bool = false @@ -355,8 +373,6 @@ class MSFAvatarGroupStateImpl: ControlState, MSFAvatarGroupState { } } -class MSFAvatarGroupAvatarStateImpl: MSFAvatarStateImpl, MSFAvatarGroupAvatarState { - init(size: MSFAvatarSize) { - super.init(style: .default, size: size) - } +/// Simple extension to `MSFAvatarStateImpl` to prove conformance to `MSFAvatarGroupAvatarState`. +extension MSFAvatarStateImpl: MSFAvatarGroupAvatarState { } From 4c1304eaa16ba9b8320372334aa4ac5c59b5411d Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Mon, 20 May 2024 11:28:24 -0700 Subject: [PATCH 29/90] Update demo app package file (#2026) --- .../xcshareddata/swiftpm/Package.resolved | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved index 8626e44a20..6a8198ff69 100644 --- a/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,12 +1,13 @@ { + "originHash" : "9368007d7da5b3af9332e1d38cf6cc8e8eaa8ccb8923fbd5137a6b91bf39293b", "pins" : [ { "identity" : "appcenter-sdk-apple", "kind" : "remoteSourceControl", "location" : "https://github.com/microsoft/appcenter-sdk-apple.git", "state" : { - "revision" : "5756ddb0f09041e91bdb3b73c17296ac005ad11a", - "version" : "5.0.3" + "revision" : "ab54f758243f282d290b33027e8aac910d3d859a", + "version" : "5.0.5" } }, { @@ -14,10 +15,10 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/microsoft/PLCrashReporter.git", "state" : { - "revision" : "1aed8f7dc79ce8e674c61e430ef51ca3db18cea9", - "version" : "1.11.1" + "revision" : "6752f71de206f6a53fa6a758c3660fd9a7fe7527", + "version" : "1.11.2" } } ], - "version" : 2 + "version" : 3 } From 0144828a1c45edbee9d052e4ff90099d65ca9195 Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Tue, 21 May 2024 14:51:55 -0700 Subject: [PATCH 30/90] Fix color type mismatch on visionOS (#2028) * Fix color type mismatch on visionOS * Use system .white color instead of a token --------- Co-authored-by: Lukas Capkovic --- ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift index 27dd488083..a853049e2a 100644 --- a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift +++ b/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift @@ -14,7 +14,7 @@ extension FluentTheme { // need to provide multiple values (e.g. light + dark, elevated, etc). switch token { case .foreground1: - visionColorDark = GlobalTokens.neutralColor(.white) + visionColorDark = .white case .foreground2: visionColorDark = .white case .foreground3: @@ -46,7 +46,7 @@ extension FluentTheme { case .stroke2: visionColorDark = .white.opacity(0.5) case .dangerForeground2: - visionColorDark = GlobalTokens.sharedColor(.red, .primary) + visionColorDark = GlobalTokens.sharedSwiftUIColor(.red, .primary) default: // Return the standard iOS color by default. From 6c1d81d5237a8b08a2dbd77259126573710cfdc4 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Tue, 21 May 2024 19:45:18 -0700 Subject: [PATCH 31/90] Fix crash with #available and .environment on visionOS (#2030) --- ios/FluentUI/List/FluentList.swift | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI/List/FluentList.swift b/ios/FluentUI/List/FluentList.swift index 03061f052f..0b4d8fbe1b 100644 --- a/ios/FluentUI/List/FluentList.swift +++ b/ios/FluentUI/List/FluentList.swift @@ -96,12 +96,20 @@ extension View { /// - minHeaderHeight: The minimum header height for sections in the list /// - Returns: A view that has list section spacing applied if iOS 17 is available. func listStyling_iOS17() -> some View { +#if os(visionOS) + // On visionOS, using #available and .environment crashes. + // As a workaround, move this to a separate ifdef + return self + .listSectionSpacing(GlobalTokens.spacing(.size160)) + .environment(\.defaultMinListHeaderHeight, GlobalTokens.spacing(.size320)) +#else if #available(iOS 17, *) { return self - .listSectionSpacing(16) - .environment(\.defaultMinListHeaderHeight, 32) + .listSectionSpacing(GlobalTokens.spacing(.size160)) + .environment(\.defaultMinListHeaderHeight, GlobalTokens.spacing(.size320)) } else { return self } +#endif // os(visionOS) } } From b67b275c39c0dc5fcd710e534f60138f9d72b224 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 22 May 2024 06:37:39 -0700 Subject: [PATCH 32/90] Update to Xcode 15.3 (#2029) --- README.md | 2 +- scripts/xcode_select_current_version.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4177efc16c..205572ad65 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Fluent UI Apple contains native UIKit and AppKit controls aligned with [Microsof #### Requirements - iOS 15+ or macOS 12+ -- Xcode 15.2+ +- Xcode 15.3+ - Swift 5.9+ #### Using Swift Package Manager diff --git a/scripts/xcode_select_current_version.sh b/scripts/xcode_select_current_version.sh index 99ecee7307..141bff271d 100755 --- a/scripts/xcode_select_current_version.sh +++ b/scripts/xcode_select_current_version.sh @@ -3,7 +3,7 @@ if [ -n "$XCODE_PATH_OVERRIDE" ]; then # If someone calls this with the XCODE_PATH_OVERRIDE variable set to a path to a developer dir, use it instead XCODE_PATH="$XCODE_PATH_OVERRIDE" else - XCODE_PATH='/Applications/Xcode_15.2.app/Contents/Developer' + XCODE_PATH='/Applications/Xcode_15.3.app/Contents/Developer' fi echo "Running command: sudo xcode-select --switch $XCODE_PATH" From db897b86977ac4320dd24f3e52d9497b57a46eba Mon Sep 17 00:00:00 2001 From: Daniel Morales Date: Wed, 22 May 2024 12:20:06 -0700 Subject: [PATCH 33/90] Not show button for avatarOverrideStyle (#2027) --- ios/FluentUI/Navigation/Views/AvatarTitleView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/FluentUI/Navigation/Views/AvatarTitleView.swift b/ios/FluentUI/Navigation/Views/AvatarTitleView.swift index 835bb5744c..25de74b2ec 100644 --- a/ios/FluentUI/Navigation/Views/AvatarTitleView.swift +++ b/ios/FluentUI/Navigation/Views/AvatarTitleView.swift @@ -315,7 +315,7 @@ class AvatarTitleView: UIView, TokenizedControlInternal, TwoLineTitleViewDelegat // MARK: - Content Update Methods private func updateProfileButtonVisibility() { - showsProfileButton = titleStyle.usesLeadingAlignment && !hasLeftBarButtonItems && (personaData != nil || avatarOverrideStyle != nil) + showsProfileButton = titleStyle.usesLeadingAlignment && !hasLeftBarButtonItems && personaData != nil } private func updateTitleContainerView() { From 0a4e94beb9b054479e8d4c0f4ae7c129c3646823 Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Wed, 22 May 2024 15:17:54 -0700 Subject: [PATCH 34/90] fix height calculation based on font size (#2031) --- ios/FluentUI/Table View/TableViewCell.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/ios/FluentUI/Table View/TableViewCell.swift index a17f6f4a27..9bd2ff97f9 100644 --- a/ios/FluentUI/Table View/TableViewCell.swift +++ b/ios/FluentUI/Table View/TableViewCell.swift @@ -351,7 +351,7 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { subtitleHeight: labelSize(text: subtitle, attributedText: attributedSubtitle, isAttributedTextSet: isAttributedSubtitleSet, - font: subtitleFont ?? (layoutType == .twoLines ? tokenSet[.subtitleTwoLinesFont].uiFont : tokenSet[.subtitleThreeLinesFont].uiFont), + font: subtitleFont ?? (layoutType == .threeLines ? tokenSet[.subtitleThreeLinesFont].uiFont : tokenSet[.subtitleTwoLinesFont].uiFont), numberOfLines: subtitleNumberOfLines, textAreaWidth: textAreaWidth, leadingAccessoryView: subtitleLeadingAccessoryView, @@ -1232,7 +1232,7 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { titleLabel.font = tokenSet[.titleFont].uiFont } if !isAttributedSubtitleSet { - subtitleLabel.font = (layoutType == .twoLines ? tokenSet[.subtitleTwoLinesFont].uiFont : tokenSet[.subtitleThreeLinesFont].uiFont) + subtitleLabel.font = (layoutType == .threeLines ? tokenSet[.subtitleThreeLinesFont].uiFont : tokenSet[.subtitleTwoLinesFont].uiFont) } if !isAttributedFooterSet { footerLabel.font = tokenSet[.footerFont].uiFont From d2087b462ed49c74cd63c403026e5446176c5133 Mon Sep 17 00:00:00 2001 From: cbowdoin <81586105+cbowdoin@users.noreply.github.com> Date: Thu, 23 May 2024 15:14:21 -0700 Subject: [PATCH 35/90] Expose Tab Bar Token Pad Height to Consumers (#2032) * Expose the Tab Bar Height to objective c users * Reorderd the tabBarPadHeight to be with the other public members ' --- ios/FluentUI/Tab Bar/TabBarView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ios/FluentUI/Tab Bar/TabBarView.swift b/ios/FluentUI/Tab Bar/TabBarView.swift index 8025444b7f..bbe7ed4679 100644 --- a/ios/FluentUI/Tab Bar/TabBarView.swift +++ b/ios/FluentUI/Tab Bar/TabBarView.swift @@ -146,6 +146,8 @@ open class TabBarView: UIView, TokenizedControlInternal { return nil } + @objc public static let tabBarPadHeight: CGFloat = TabBarTokenSet.padHeight + private struct Constants { static let maxTabCount: Int = 5 } From 2d1a4c05eb97b9def6131733ace86c5ea92cd929 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 24 May 2024 13:23:38 -0700 Subject: [PATCH 36/90] Fix sizing of FluentNotification (#2036) --- ios/FluentUI/Notification/FluentNotification.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/ios/FluentUI/Notification/FluentNotification.swift index 56f38c2daa..9b73060e77 100644 --- a/ios/FluentUI/Notification/FluentNotification.swift +++ b/ios/FluentUI/Notification/FluentNotification.swift @@ -147,7 +147,7 @@ public struct FluentNotification: View, TokenizedControlView { if state.style.isToast && hasSecondTextRow { if let attributedTitle = state.attributedTitle { Text(AttributedString(attributedTitle)) - .frame(idealWidth: attributedTitleSize.width) + .fixedSize(horizontal: false, vertical: true) } else if let title = state.title { Text(title) .font(.init(tokenSet[.boldTextFont].uiFont)) @@ -159,7 +159,7 @@ public struct FluentNotification: View, TokenizedControlView { var messageLabel: some View { if let attributedMessage = state.attributedMessage { Text(AttributedString(attributedMessage)) - .frame(idealWidth: attributedMessageSize.width) + .fixedSize(horizontal: false, vertical: true) } else if let message = state.message { Text(message) .font(.init(tokenSet[.regularTextFont].uiFont)) From d9dcf8f944bbf5b5635602b69f7240f8ed76c8b2 Mon Sep 17 00:00:00 2001 From: Harrie Shin Date: Thu, 30 May 2024 12:52:00 -0700 Subject: [PATCH 37/90] remove forcing the app nav bar to be all translucent (#2039) --- ios/FluentUI/Core/FluentUIFramework.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/ios/FluentUI/Core/FluentUIFramework.swift b/ios/FluentUI/Core/FluentUIFramework.swift index 371abb643b..31fa4619c3 100644 --- a/ios/FluentUI/Core/FluentUIFramework.swift +++ b/ios/FluentUI/Core/FluentUIFramework.swift @@ -85,8 +85,6 @@ public class FluentUIFramework: NSObject { } static func initializeUINavigationBarAppearance(_ navigationBar: UINavigationBar, traits: UITraitCollection? = nil, navigationBarStyle: NavigationBarStyle = .normal, fluentTheme: FluentTheme? = nil) { - navigationBar.isTranslucent = false - let standardAppearance = navigationBar.standardAppearance let fluentTheme = fluentTheme ?? FluentTheme.shared From 8bdcb817c5e14f760366beb6f7562e5245fac241 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Thu, 30 May 2024 14:27:54 -0700 Subject: [PATCH 38/90] Bump to 0.28.0 (#2035) --- MicrosoftFluentUI.podspec | 2 +- ios/FluentUI.Demo/FluentUI.Demo/Info.plist | 4 ++-- ios/FluentUI.Resources/Info.plist | 4 ++-- macos/FluentUI/FluentUI-Info.plist | 4 ++-- macos/FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 7ccfe489d9..36a8a3c137 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.27.0' + s.version = '0.28.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist index b5fa117d83..3c1e9eecfc 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist +++ b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.27.0 + 1.28.0 CFBundleURLTypes @@ -26,7 +26,7 @@ CFBundleVersion - 137.27.0 + 137.28.0 LSRequiresIPhoneOS UIApplicationSceneManifest diff --git a/ios/FluentUI.Resources/Info.plist b/ios/FluentUI.Resources/Info.plist index 1f0b5d901b..8f1a360a83 100644 --- a/ios/FluentUI.Resources/Info.plist +++ b/ios/FluentUI.Resources/Info.plist @@ -13,8 +13,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 0.27.0 + 0.28.0 CFBundleVersion - 0.27.0 + 0.28.0 diff --git a/macos/FluentUI/FluentUI-Info.plist b/macos/FluentUI/FluentUI-Info.plist index eafed2164d..a65912983e 100644 --- a/macos/FluentUI/FluentUI-Info.plist +++ b/macos/FluentUI/FluentUI-Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.27.0 + 0.28.0 CFBundleVersion - 0.27.0 + 0.28.0 diff --git a/macos/FluentUITestApp/FluentUITestApp-Info.plist b/macos/FluentUITestApp/FluentUITestApp-Info.plist index 04d1b9545b..79055f489c 100644 --- a/macos/FluentUITestApp/FluentUITestApp-Info.plist +++ b/macos/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.27.0 + 0.28.0 CFBundleVersion - 62.27.0 + 62.28.0 LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion From 66d6e188e95462c7b7d7229840307a3059db9824 Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Fri, 31 May 2024 10:35:33 -0700 Subject: [PATCH 39/90] Make our onChange backcompat extension public (#2037) Co-authored-by: Lukas Capkovic --- .../FluentUI.Demo.xcodeproj/project.pbxproj | 4 --- .../SwiftUI/View+Extensions.swift | 33 ------------------- ios/FluentUI/Core/SwiftUI+ViewModifiers.swift | 2 +- 3 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/View+Extensions.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index e5d68c124e..38f23ca314 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -91,7 +91,6 @@ 923DF2DF27115B4700637646 /* FluentUIResources-ios.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */; }; 9245E1F927BECDBB007616F3 /* GlobalColorTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */; }; 92561E732718AD090072ED00 /* DemoTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92561E722718AD090072ED00 /* DemoTableViewController.swift */; }; - 928C00B12B8920E60023ECE7 /* View+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 928C00B02B8920E60023ECE7 /* View+Extensions.swift */; }; 92B45E4E279A1A0B00E72517 /* DemoAppearanceControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */; }; 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */; }; 92C55CB72BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C55CB62BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift */; }; @@ -231,7 +230,6 @@ 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = "FluentUIResources-ios.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalColorTokensDemoController.swift; sourceTree = ""; }; 92561E722718AD090072ED00 /* DemoTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoTableViewController.swift; sourceTree = ""; }; - 928C00B02B8920E60023ECE7 /* View+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extensions.swift"; sourceTree = ""; }; 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceControlView.swift; sourceTree = ""; }; 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasColorTokensDemoController_SwiftUI.swift; sourceTree = ""; }; 92C55CB62BEAA94500E0AB8D /* AvatarGroupDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGroupDemoController_SwiftUI.swift; sourceTree = ""; }; @@ -417,7 +415,6 @@ isa = PBXGroup; children = ( 5303259726B31A6300611D05 /* FluentUIDemoToggle.swift */, - 928C00B02B8920E60023ECE7 /* View+Extensions.swift */, ); path = SwiftUI; sourceTree = ""; @@ -865,7 +862,6 @@ 2F0A96FC25CA047100EF9736 /* SearchBarDemoController.swift in Sources */, F362C8082A780EA500BB32BB /* ListItemDemoController_SwiftUI.swift in Sources */, CCC18C2F2501C75F00BE830E /* CardViewDemoController.swift in Sources */, - 928C00B12B8920E60023ECE7 /* View+Extensions.swift in Sources */, F30B74362A7DB168000F63A0 /* ListActionItemDemoController.swift in Sources */, B4575C5122FB8B6900EBD0EB /* PeoplePickerDemoController.swift in Sources */, 92D5FDFD28AC57650087894B /* TypographyTokensDemoController.swift in Sources */, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/View+Extensions.swift b/ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/View+Extensions.swift deleted file mode 100644 index c4dc519adb..0000000000 --- a/ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/View+Extensions.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -import SwiftUI - -extension View { - /// Abstracts away differences in pre-iOS 17 `onChange(of:perform:)` versus post-iOS 17 `onChange(of:_:)`. - /// - /// This function will be removed once FluentUI moves to iOS 17 as a minimum target. - /// - Parameters: - /// - value: The value to check against when determining whether to run the closure. - /// - action: A closure to run when the value changes. - /// - Returns: A view that fires an action when the specified value changes. - func onChange_iOS17(of value: V, _ action: @escaping (V) -> Void) -> some View where V: Equatable { -#if os(visionOS) - // Known bug when using #available and self.onChange together in visionOS: it'll crash! - // So for this OS, just use the new .onChange unconditionally. - return self.onChange(of: value) { _, newValue in - return action(newValue) - } -#else - if #available(iOS 17, *) { - return self.onChange(of: value) { _, newValue in - return action(newValue) - } - } else { - return self.onChange(of: value, perform: action) - } -#endif - } -} diff --git a/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift b/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift index 3570bcbfb0..793d813138 100644 --- a/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift +++ b/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift @@ -66,7 +66,7 @@ extension View { /// - value: The value to check against when determining whether to run the closure. /// - action: A closure to run when the value changes. /// - Returns: A view that fires an action when the specified value changes. - func onChange_iOS17(of value: V, _ action: @escaping (V) -> Void) -> some View where V: Equatable { + public func onChange_iOS17(of value: V, _ action: @escaping (V) -> Void) -> some View where V: Equatable { #if os(visionOS) // Known bug when using #available and self.onChange together in visionOS: it'll crash! // So for this OS, just use the new .onChange unconditionally. From 32d5cf1139dc2f4db547e53962389ce3164a029b Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Fri, 31 May 2024 12:16:55 -0700 Subject: [PATCH 40/90] Fix nav bar system title not hiding for some transparent backgrounds (#2038) --- ios/FluentUI/Navigation/NavigationBar.swift | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ios/FluentUI/Navigation/NavigationBar.swift b/ios/FluentUI/Navigation/NavigationBar.swift index 8f412c9d6c..046a027c64 100644 --- a/ios/FluentUI/Navigation/NavigationBar.swift +++ b/ios/FluentUI/Navigation/NavigationBar.swift @@ -629,8 +629,9 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl // MARK: UINavigationItem & UIBarButtonItem handling func updateColors(for navigationItem: UINavigationItem?) { - let color = navigationItem?.navigationBarColor(fluentTheme: tokenSet.fluentTheme) - let shouldHideRegularTitle: Bool = (style == .gradient || color?.resolvedColor(with: traitCollection) == .clear) && usesLeadingTitle + let backgroundColor = navigationItem?.navigationBarColor(fluentTheme: tokenSet.fluentTheme) + let shouldHideSystemTitle: Bool = (style == .gradient || (backgroundColor?.resolvedColor(with: traitCollection).cgColor.alpha ?? 1.0) < 1.0) && usesLeadingTitle + let systemTitleColor = shouldHideSystemTitle ? UIColor.clear : tokenSet[.titleColor].uiColor switch style { case .primary, .default, .custom: @@ -639,11 +640,11 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl titleView.style = .system } - backgroundView.backgroundColor = style == .gradient ? .clear : color - standardAppearance.backgroundColor = color + backgroundView.backgroundColor = style == .gradient ? .clear : backgroundColor + standardAppearance.backgroundColor = backgroundColor tintColor = tokenSet[.buttonTintColor].uiColor - standardAppearance.titleTextAttributes[NSAttributedString.Key.foregroundColor] = shouldHideRegularTitle ? UIColor.clear : tokenSet[.titleColor].uiColor - standardAppearance.largeTitleTextAttributes[NSAttributedString.Key.foregroundColor] = tokenSet[.titleColor].uiColor + standardAppearance.titleTextAttributes[NSAttributedString.Key.foregroundColor] = systemTitleColor + standardAppearance.largeTitleTextAttributes[NSAttributedString.Key.foregroundColor] = systemTitleColor // Update the scroll edge appearance to match the new standard appearance scrollEdgeAppearance = standardAppearance From d298dacb9dc28cb71fc5ebee1fde5902837a6312 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:52:43 -0700 Subject: [PATCH 41/90] Calculate Bottom Commanding header height instead of using constant (#2041) * calculate header height instead of using constant * remove headerHeight var * update comment --- .../Demos/BottomCommandingDemoController.swift | 3 ++- .../BottomCommandingController.swift | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift index 7bdb66bb0c..3c7e0a59be 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift @@ -46,7 +46,8 @@ class BottomCommandingDemoController: DemoController { private lazy var heroItems: [CommandingItem] = { return Array(1...25).map { - let item = CommandingItem(title: "Item " + String($0), image: homeImage, action: commandAction) + let title = ($0 == 4) ? "Two line item" : "Item" + let item = CommandingItem(title: title + String($0), image: homeImage, action: commandAction) item.selectedImage = homeSelectedImage item.isOn = ($0 % 3 == 1) item.isEnabled = ($0 % 2 == 1) diff --git a/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift b/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift index 8c56d62cae..b66d3c4639 100644 --- a/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift +++ b/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift @@ -402,7 +402,6 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna headerView.addSubview(heroCommandStack) let sheetController = BottomSheetController(headerContentView: headerView, expandedContentView: makeSheetExpandedContent(with: tableView)) - sheetController.headerContentHeight = Constants.BottomSheet.headerHeight sheetController.hostedScrollView = tableView sheetController.isHidden = isHidden sheetController.shouldAlwaysFillWidth = sheetShouldAlwaysFillWidth @@ -534,6 +533,7 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna } else { tableView.tableHeaderView = nil } + calculateHeaderHeight() } private func reloadHeroCommandOverflowStack() { @@ -563,6 +563,13 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna } } + @discardableResult + private func calculateHeaderHeight() -> CGFloat { + let headerHeight = heroCommandStack.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height + BottomSheetController.resizingHandleHeight + bottomSheetController?.headerContentHeight = headerHeight + return headerHeight + } + private func updateAppearance() { guard isViewLoaded else { return @@ -923,7 +930,7 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna let headerHeightWithoutBottomWhitespace = BottomCommandingTokenSet.handleHeaderHeight + maxHeroItemHeight // How much more whitespace is required at the bottom of the sheet header - let requiredBottomWhitespace = max(0, Constants.BottomSheet.headerHeight - headerHeightWithoutBottomWhitespace) + let requiredBottomWhitespace = max(0, calculateHeaderHeight() - headerHeightWithoutBottomWhitespace) // The safe area inset can fulfill some or all of our bottom whitespace requirement. // This is how much more we need, taking the inset into account. @@ -1118,10 +1125,6 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna static let moreButtonIcon: UIImage? = UIImage.staticImageNamed("more-24x24") static let moreButtonTitle: String = "CommandingBottomBar.More".localized } - - struct BottomSheet { - static let headerHeight: CGFloat = 66 - } } } From 10f944b961a6da610819acd8b966bdb4172225b5 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Fri, 7 Jun 2024 15:19:40 -0700 Subject: [PATCH 42/90] Remove iOS 15 support (#2042) * Remove iOS 15 support * Specify list style * Update `Package.swift` --- MicrosoftFluentUI.podspec | 2 +- Package.swift | 2 +- .../FluentUI.Demo.xcodeproj/project.pbxproj | 6 +- ...iasColorTokensDemoController_SwiftUI.swift | 18 +---- ios/FluentUI/Core/ControlHostingView.swift | 2 +- .../Core/FluentThemedHostingController.swift | 72 +------------------ ios/FluentUI/List/FluentList.swift | 3 + ios/FluentUI/Pill Button Bar/PillButton.swift | 1 - ios/xcode/FluentUI_common.xcconfig | 2 +- 9 files changed, 13 insertions(+), 95 deletions(-) diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 36a8a3c137..61e4f87d8f 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| # iOS - s.ios.deployment_target = "15.0" + s.ios.deployment_target = "16.0" s.subspec 'Avatar_ios' do |avatar_ios| avatar_ios.platform = :ios diff --git a/Package.swift b/Package.swift index e4c3057494..3d38139c84 100644 --- a/Package.swift +++ b/Package.swift @@ -6,7 +6,7 @@ let package = Package( name: "FluentUI", defaultLocalization: "en", platforms: [ - .iOS(.v15), + .iOS(.v16), .macOS(.v12), .visionOS(.v1), ], diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index 38f23ca314..b5a4c35988 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -1087,7 +1087,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DOGFOOD; @@ -1187,7 +1187,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1247,7 +1247,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift index 595a5c9941..5473c36df9 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift @@ -25,21 +25,7 @@ struct AliasColorTokensDemoView: View { @Environment(\.fluentTheme) var fluentTheme: FluentTheme var body: some View { - if #available(iOS 16.0, *) { - formContent.scrollContentBackground(.hidden) - } else { - formContent.onAppear { - UITableView.appearance().backgroundColor = .clear - } - .onDisappear { - UITableView.appearance().backgroundColor = .systemGroupedBackground - } - } - } - - @ViewBuilder - var formContent: some View { - Form { + FluentList { ForEach(AliasColorTokensDemoSection.allCases, id: \.self) { demoSection in // No need for SwiftUI section in SwiftUI demo! if demoSection != .swiftUI { @@ -47,7 +33,7 @@ struct AliasColorTokensDemoView: View { } } } - .background(fluentTheme.swiftUIColor(.backgroundCanvas)) + .fluentListStyle(.insetGrouped) } @ViewBuilder diff --git a/ios/FluentUI/Core/ControlHostingView.swift b/ios/FluentUI/Core/ControlHostingView.swift index 294bbe4e4c..13e7ee6af8 100644 --- a/ios/FluentUI/Core/ControlHostingView.swift +++ b/ios/FluentUI/Core/ControlHostingView.swift @@ -37,7 +37,7 @@ open class ControlHostingView: UIView { /// - Parameter controlView: An `AnyView`-wrapped component to host. public init(_ controlView: AnyView) { hostingController = FluentThemedHostingController.init(rootView: controlView) - hostingController.disableSafeAreaInsets() + hostingController.sizingOptions = [.intrinsicContentSize] super.init(frame: .zero) self.configureHostedView() diff --git a/ios/FluentUI/Core/FluentThemedHostingController.swift b/ios/FluentUI/Core/FluentThemedHostingController.swift index a1571461ac..230be7cffe 100644 --- a/ios/FluentUI/Core/FluentThemedHostingController.swift +++ b/ios/FluentUI/Core/FluentThemedHostingController.swift @@ -6,41 +6,8 @@ import UIKit import SwiftUI -extension UIView { - - /// Associated keys created for the added UIView stored properties. - struct AssociatedKeys { - static var shouldUseZeroEdgeInsets: UInt8 = 0 - } - - /// Adds a stored property to the UIView that defines whether the UIView should return UIEdgeInsets.zero from its safeAreaInsets property. - /// This property is intended to be used by the UIHostingView class, which is a private subclass of UIView in the SwiftUI Framework. - var shouldUseZeroEdgeInsets: Bool { - get { - return objc_getAssociatedObject(self, &AssociatedKeys.shouldUseZeroEdgeInsets) as? Bool ?? false - } - set { - objc_setAssociatedObject(self, &AssociatedKeys.shouldUseZeroEdgeInsets, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - } - } - - /// Computed property that will be swizzled with UIView.safeAreaInsets by exchange of implementations. - /// This swizzling is meant to be used in UIHostingView instances which are private in the SwiftUI framework. - /// Do not call this property getter directly. - @objc var customSafeAreaInsets: UIEdgeInsets { - if shouldUseZeroEdgeInsets { - return .zero - } - - // Because this property will be swizzled with UIView.safeAreaInsets by exchanging - // implementations, this call makes sure to call it by this property's name which - // will contain the original implementation of UIView.safeAreaInsets. - return self.customSafeAreaInsets - } -} - /// FluentUI specific implementation of the UIHostingController. This is primarily useful for adding `FluentTheme` observation -/// to any wrapped Fluent controls. Additionally, this class adds a workaround for disabling safeAreaInsets for its view on iOS 15. +/// to any wrapped Fluent controls. open class FluentThemedHostingController: UIHostingController { @MainActor required dynamic public override init(rootView: AnyView) { @@ -68,13 +35,6 @@ open class FluentThemedHostingController: UIHostingController { } } - /// iOS 15.0 fix for UIHostingController that does not automatically resize to hug subviews - open override func viewDidLayoutSubviews() { - super.viewDidLayoutSubviews() - - view.setNeedsUpdateConstraints() - } - // MARK: - Theme management @objc private func themeDidChange(_ notification: Notification) { @@ -101,33 +61,3 @@ open class FluentThemedHostingController: UIHostingController { private var controlView: AnyView } - -// MARK: - Safe Area Inset swizzling - -extension FluentThemedHostingController { - /// Static constant that will be guaranteed to have its initialization executed only once during the lifetime of the application. - private static let swizzleSafeAreaInsetsOnce: Void = { - // A FluentUIHostingController instance needs to be created so that the class type for the private UIHostingViewwe can be retrived. - let hostingControllerViewClass: AnyClass = FluentThemedHostingController(rootView: AnyView(EmptyView())).view.classForCoder - - guard let originalMethod = class_getInstanceMethod(hostingControllerViewClass, #selector(getter: UIView.safeAreaInsets)), - let swizzledMethod = class_getInstanceMethod(hostingControllerViewClass, #selector(getter: UIView.customSafeAreaInsets)) else { - preconditionFailure("UIHostingController zeroSafeAreaInsets swizzling failed.") - } - - method_exchangeImplementations(originalMethod, swizzledMethod) - }() - - /// Disables the UIHostingController's view safe area insets by swizzling the UIView.safeAreaInsets property and returning UIEdgeInsets.zero if the UIView.shouldUseZeroEdgeInsets is true. - /// This is a known issue and it's currently tracked by Radar bug FB8176223 - https://openradar.appspot.com/FB8176223 - func disableSafeAreaInsets() { - // We no longer need the workarounds from `FluentUIHostingController` in - // iOS 16, but we still need it for 14 and 15. - if #unavailable(iOS 16) { - view.shouldUseZeroEdgeInsets = true - _ = FluentThemedHostingController.swizzleSafeAreaInsetsOnce - } else { - sizingOptions = [.intrinsicContentSize] - } - } -} diff --git a/ios/FluentUI/List/FluentList.swift b/ios/FluentUI/List/FluentList.swift index 0b4d8fbe1b..05fa9c2ebd 100644 --- a/ios/FluentUI/List/FluentList.swift +++ b/ios/FluentUI/List/FluentList.swift @@ -44,12 +44,14 @@ public struct FluentList: View { case .insetGrouped: list .listStyle(.insetGrouped) + .scrollContentBackground(.hidden) // TODO: Directly use `FluentList` token set instead of `ListItem` .background(ListItem.listBackgroundColor(for: .grouped)) .listStyling_iOS17() case .plain: list .listStyle(.plain) + .scrollContentBackground(.hidden) // TODO: Directly use `FluentList` token set instead of `ListItem` .background(ListItem.listBackgroundColor(for: .plain)) } @@ -66,6 +68,7 @@ public struct FluentList: View { /// Content to render inside the list private var content: () -> ListContent + @Environment(\.fluentTheme) private var fluentTheme: FluentTheme } // MARK: - Environment diff --git a/ios/FluentUI/Pill Button Bar/PillButton.swift b/ios/FluentUI/Pill Button Bar/PillButton.swift index 58bb113506..afbd8dc672 100644 --- a/ios/FluentUI/Pill Button Bar/PillButton.swift +++ b/ios/FluentUI/Pill Button Bar/PillButton.swift @@ -176,7 +176,6 @@ open class PillButton: UIButton, TokenizedControlInternal { updateAttributedTitle() } - @available(iOS 15, *) private func updateAttributedTitle() { let itemTitle = pillBarItem.title var attributedTitle = AttributedString(itemTitle) diff --git a/ios/xcode/FluentUI_common.xcconfig b/ios/xcode/FluentUI_common.xcconfig index 9ab0929fd3..ce5b744bc5 100644 --- a/ios/xcode/FluentUI_common.xcconfig +++ b/ios/xcode/FluentUI_common.xcconfig @@ -46,7 +46,7 @@ GCC_WARN_UNDECLARED_SELECTOR = YES GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE GCC_WARN_UNUSED_FUNCTION = YES GCC_WARN_UNUSED_VARIABLE = YES -IPHONEOS_DEPLOYMENT_TARGET = 15.0 +IPHONEOS_DEPLOYMENT_TARGET = 16.0 SDKROOT = iphoneos SUPPORTED_PLATFORMS = iphoneos iphonesimulator xros xrsimulator SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO From 96fa7eecfc36099e2682bfc6d6e1c589c016c18c Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Mon, 10 Jun 2024 15:13:16 -0700 Subject: [PATCH 43/90] Remove space after @objc (#2043) --- ios/FluentUI/Label/LabelTokenSet.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/FluentUI/Label/LabelTokenSet.swift b/ios/FluentUI/Label/LabelTokenSet.swift index f07b434786..99466c609e 100644 --- a/ios/FluentUI/Label/LabelTokenSet.swift +++ b/ios/FluentUI/Label/LabelTokenSet.swift @@ -7,7 +7,7 @@ import UIKit // MARK: TextColorStyle -@objc (MSFTextColorStyle) +@objc(MSFTextColorStyle) public enum TextColorStyle: Int, CaseIterable { case regular case secondary From fe0730c4276417287ee8e29909b1c21419f5d000 Mon Sep 17 00:00:00 2001 From: Alexander Boswell Date: Mon, 17 Jun 2024 15:36:29 -0700 Subject: [PATCH 44/90] [List Item] Add animation when adding or removing subtitle/footer (#2046) * fix animation for list item * clean up code * update per comments --- ios/FluentUI/List/ListItem.swift | 86 ++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/ios/FluentUI/List/ListItem.swift b/ios/FluentUI/List/ListItem.swift index 1f71a45f44..cd561bf830 100644 --- a/ios/FluentUI/List/ListItem.swift +++ b/ios/FluentUI/List/ListItem.swift @@ -47,42 +47,63 @@ public struct ListItem Date: Tue, 18 Jun 2024 22:07:45 -0700 Subject: [PATCH 45/90] Adding `verticalOffset` property to FluentNotification (#2045) --- ...tificationViewDemoController_SwiftUI.swift | 185 +++++++++--------- .../Notification/FluentNotification.swift | 17 +- 2 files changed, 108 insertions(+), 94 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift index f61d63934d..0f191de209 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift @@ -49,6 +49,7 @@ struct NotificationDemoView: View { @State var showFromBottom: Bool = true @State var showBackgroundGradient: Bool = false @State var useCustomTheme: Bool = false + @State var verticalOffset: CGFloat = 0.0 @ObservedObject var fluentTheme: FluentTheme = .shared let customTheme: FluentTheme = { let foregroundColor = UIColor(light: GlobalTokens.sharedColor(.lavender, .shade30), @@ -175,7 +176,7 @@ struct NotificationDemoView: View { Alert(title: Text("Button tapped")) }) - Button("Show") { + Button("Show Notification") { if isPresented == false { isPresented = true DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) { @@ -183,99 +184,30 @@ struct NotificationDemoView: View { } } } - .fixedSize() - .padding() - - ScrollView { - Group { - Group { - VStack(spacing: 0) { - Text("Content") - .frame(maxWidth: .infinity, alignment: .leading) - .font(.title) - Divider() - } - - TextField("Title", text: $title) - .autocapitalization(.none) - .disableAutocorrection(true) - .textFieldStyle(RoundedBorderTextFieldStyle()) - - TextField("Message", text: $message) - .autocapitalization(.none) - .disableAutocorrection(true) - .textFieldStyle(RoundedBorderTextFieldStyle()) - - TextField("Action Button Title", text: $actionButtonTitle) - .autocapitalization(.none) - .disableAutocorrection(true) - .textFieldStyle(RoundedBorderTextFieldStyle()) - - FluentUIDemoToggle(titleKey: "Has Attributed Text: Strikethrough", isOn: $hasBlueStrikethroughAttribute) - FluentUIDemoToggle(titleKey: "Has Attributed Text: Large Red Papyrus Font", isOn: $hasLargeRedPapyrusFontAttribute) - FluentUIDemoToggle(titleKey: "Set image", isOn: $showImage) - FluentUIDemoToggle(titleKey: "Set trailing image", isOn: $showTrailingImage) - } - - Group { - VStack(spacing: 0) { - Text("Action") - .frame(maxWidth: .infinity, alignment: .leading) - .font(.title) - Divider() - } - FluentUIDemoToggle(titleKey: "Has Action Button Action", isOn: $hasActionButtonAction) - FluentUIDemoToggle(titleKey: "Show Default Dismiss Button", isOn: $showDefaultDismissActionButton) - FluentUIDemoToggle(titleKey: "Has Message Action", isOn: $hasMessageAction) - } + .buttonStyle(FluentButtonStyle(style: .accent)) + .fixedSize() + .padding() - Group { - VStack(spacing: 0) { - Text("Style") - .frame(maxWidth: .infinity, alignment: .leading) - .font(.title) - Divider() - } - - Picker(selection: $style, label: EmptyView()) { - Text(".primaryToast").tag(MSFNotificationStyle.primaryToast) - Text(".neutralToast").tag(MSFNotificationStyle.neutralToast) - Text(".primaryBar").tag(MSFNotificationStyle.primaryBar) - Text(".primaryOutlineBar").tag(MSFNotificationStyle.primaryOutlineBar) - Text(".neutralBar").tag(MSFNotificationStyle.neutralBar) - Text(".dangerToast").tag(MSFNotificationStyle.dangerToast) - Text(".warningToast").tag(MSFNotificationStyle.warningToast) - } - .labelsHidden() - .frame(maxWidth: .infinity, alignment: .leading) - - FluentUIDemoToggle(titleKey: "Override Tokens (Image Color and Horizontal Spacing)", isOn: $overrideTokens) - FluentUIDemoToggle(titleKey: "Flexible Width Toast", isOn: $isFlexibleWidthToast) - FluentUIDemoToggle(titleKey: "Present From Bottom", isOn: $showFromBottom) - FluentUIDemoToggle(titleKey: "Background Gradient", isOn: $showBackgroundGradient) - FluentUIDemoToggle(titleKey: "Custom theme", isOn: $useCustomTheme) - } - } - .padding() - } + notificationSettings } .presentNotification(isPresented: $isPresented, isBlocking: false) { FluentNotification(style: style, - isFlexibleWidthToast: $isFlexibleWidthToast.wrappedValue, - message: hasMessage ? message : nil, - attributedMessage: hasAttribute && hasMessage ? attributedMessage : nil, - isPresented: $isPresented, - title: hasTitle ? title : nil, - attributedTitle: hasAttribute && hasTitle ? attributedTitle : nil, - image: image, - trailingImage: trailingImage, - trailingImageAccessibilityLabel: trailingImageLabel, - actionButtonTitle: actionButtonTitle, - actionButtonAction: actionButtonAction, - showDefaultDismissActionButton: showDefaultDismissActionButton, - messageButtonAction: messageButtonAction, - showFromBottom: showFromBottom) + isFlexibleWidthToast: $isFlexibleWidthToast.wrappedValue, + message: hasMessage ? message : nil, + attributedMessage: hasAttribute && hasMessage ? attributedMessage : nil, + isPresented: $isPresented, + title: hasTitle ? title : nil, + attributedTitle: hasAttribute && hasTitle ? attributedTitle : nil, + image: image, + trailingImage: trailingImage, + trailingImageAccessibilityLabel: trailingImageLabel, + actionButtonTitle: actionButtonTitle, + actionButtonAction: actionButtonAction, + showDefaultDismissActionButton: showDefaultDismissActionButton, + messageButtonAction: messageButtonAction, + showFromBottom: showFromBottom, + verticalOffset: verticalOffset) .backgroundGradient(showBackgroundGradient ? backgroundGradient : nil) .overrideTokens($overrideTokens.wrappedValue ? notificationOverrideTokens : nil) } @@ -283,6 +215,81 @@ struct NotificationDemoView: View { .tint(Color(theme.color(.brandForeground1))) } + @ViewBuilder + var notificationSettings: some View { + FluentList { + FluentListSection("Content") { + LabeledContent { + TextField("Title", text: $title) + .autocapitalization(.none) + .disableAutocorrection(true) + .multilineTextAlignment(.trailing) + } label: { + Text("Title") + } + + LabeledContent { + TextField("Message", text: $message) + .autocapitalization(.none) + .disableAutocorrection(true) + .multilineTextAlignment(.trailing) + } label: { + Text("Message") + } + + LabeledContent { + TextField("Action Button Title", text: $actionButtonTitle) + .autocapitalization(.none) + .disableAutocorrection(true) + .multilineTextAlignment(.trailing) + } label: { + Text("Action Button Title") + } + + LabeledContent { + TextField("Offset", value: $verticalOffset, format: FloatingPointFormatStyle()) + .keyboardType(.numberPad) + .multilineTextAlignment(.trailing) + } label: { + Text("Vertical Offset") + } + + Toggle("Has Attributed Text: Strikethrough", isOn: $hasBlueStrikethroughAttribute) + Toggle("Has Attributed Text: Large Red Papyrus Font", isOn: $hasLargeRedPapyrusFontAttribute) + Toggle("Set image", isOn: $showImage) + Toggle("Set trailing image", isOn: $showTrailingImage) + } + + FluentListSection("Action") { + Toggle("Has Action Button Action", isOn: $hasActionButtonAction) + Toggle("Show Default Dismiss Button", isOn: $showDefaultDismissActionButton) + Toggle("Has Message Action", isOn: $hasMessageAction) + } + + FluentListSection("Style") { + + Picker(selection: $style, label: EmptyView()) { + Text(".primaryToast").tag(MSFNotificationStyle.primaryToast) + Text(".neutralToast").tag(MSFNotificationStyle.neutralToast) + Text(".primaryBar").tag(MSFNotificationStyle.primaryBar) + Text(".primaryOutlineBar").tag(MSFNotificationStyle.primaryOutlineBar) + Text(".neutralBar").tag(MSFNotificationStyle.neutralBar) + Text(".dangerToast").tag(MSFNotificationStyle.dangerToast) + Text(".warningToast").tag(MSFNotificationStyle.warningToast) + } + .labelsHidden() + .frame(maxWidth: .infinity, alignment: .leading) + + Toggle("Override Tokens (Image Color and Horizontal Spacing)", isOn: $overrideTokens) + Toggle("Flexible Width Toast", isOn: $isFlexibleWidthToast) + Toggle("Present From Bottom", isOn: $showFromBottom) + Toggle("Background Gradient", isOn: $showBackgroundGradient) + Toggle("Custom theme", isOn: $useCustomTheme) + } + } + .fluentListStyle(.insetGrouped) + } + private var backgroundGradient: LinearGradientInfo { // It's a lovely blue-to-pink gradient let colors: [UIColor] = [UIColor(light: GlobalTokens.sharedColor(.pink, .tint50), diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/ios/FluentUI/Notification/FluentNotification.swift index 9b73060e77..5b3420e0be 100644 --- a/ios/FluentUI/Notification/FluentNotification.swift +++ b/ios/FluentUI/Notification/FluentNotification.swift @@ -80,6 +80,7 @@ public struct FluentNotification: View, TokenizedControlView { /// - showDefaultDismissActionButton: Bool to control if the Notification has a dismiss action by default. /// - messageButtonAction: Action to be dispatched by tapping on the toast/bar notification. /// - showFromBottom: Defines whether the notification shows from the bottom of the presenting view or the top. + /// - verticalOffset: How much to vertically offset the notification from its default position. public init(style: MSFNotificationStyle, shouldSelfPresent: Bool = true, isFlexibleWidthToast: Bool = false, @@ -95,7 +96,8 @@ public struct FluentNotification: View, TokenizedControlView { actionButtonAction: (() -> Void)? = nil, showDefaultDismissActionButton: Bool? = nil, messageButtonAction: (() -> Void)? = nil, - showFromBottom: Bool = true) { + showFromBottom: Bool = true, + verticalOffset: CGFloat = 0.0) { let state = MSFNotificationStateImpl(style: style, message: message, attributedMessage: attributedMessage, @@ -108,7 +110,8 @@ public struct FluentNotification: View, TokenizedControlView { actionButtonAction: actionButtonAction, showDefaultDismissActionButton: showDefaultDismissActionButton, messageButtonAction: messageButtonAction, - showFromBottom: showFromBottom) + showFromBottom: showFromBottom, + verticalOffset: verticalOffset) self.state = state self.shouldSelfPresent = shouldSelfPresent self.isFlexibleWidthToast = isFlexibleWidthToast && style.isToast @@ -355,7 +358,7 @@ public struct FluentNotification: View, TokenizedControlView { withAnimation(.spring(response: state.style.animationDurationForShow / 2.0, dampingFraction: state.style.animationDampingRatio, blendDuration: 0)) { - bottomOffset = 0 + bottomOffset = -state.verticalOffset opacity = 1 } } @@ -400,6 +403,7 @@ class MSFNotificationStateImpl: ControlState, MSFNotificationState { @Published var showDefaultDismissActionButton: Bool @Published var showFromBottom: Bool @Published var backgroundGradient: LinearGradientInfo? + @Published var verticalOffset: CGFloat /// Title to display in the action button on the trailing edge of the control. /// @@ -430,7 +434,8 @@ class MSFNotificationStateImpl: ControlState, MSFNotificationState { actionButtonAction: nil, showDefaultDismissActionButton: nil, messageButtonAction: nil, - showFromBottom: true) + showFromBottom: true, + verticalOffset: 0.0) } init(style: MSFNotificationStyle, @@ -445,7 +450,8 @@ class MSFNotificationStateImpl: ControlState, MSFNotificationState { actionButtonAction: (() -> Void)? = nil, showDefaultDismissActionButton: Bool? = nil, messageButtonAction: (() -> Void)? = nil, - showFromBottom: Bool = true) { + showFromBottom: Bool = true, + verticalOffset: CGFloat) { self.style = style self.message = message self.attributedMessage = attributedMessage @@ -459,6 +465,7 @@ class MSFNotificationStateImpl: ControlState, MSFNotificationState { self.messageButtonAction = messageButtonAction self.showFromBottom = showFromBottom self.showDefaultDismissActionButton = showDefaultDismissActionButton ?? style.isToast + self.verticalOffset = verticalOffset super.init() } From 744a205cd09e4dbd90efe659569cb24e058d2f05 Mon Sep 17 00:00:00 2001 From: Des Marks Date: Fri, 21 Jun 2024 08:47:45 -0700 Subject: [PATCH 46/90] Reapply #1929 and fix issue where header title uses incorrect font (#2040) * TableViewHeaderFooterView should not override any font or color provided as part of the AttributedString (#1929) * Update CommandBarButton.swift * Update CommandBarButton.swift * Command handled event should pass the event source in the handler * Fix spacing * Fix lint errors and make updates for some review comments * Do not override font or color provided in the attributed string * Fix spacing * Fix update of titleView font * Updates for PR feedback * Only use attributed color and font when non-nil, otherwise use tokenset value * Cleanup setup methods. Move all setup to setupBase(...) to ensure views are correctly recycled when reused. * More cleanup * fixups * PR Updates --------- Co-authored-by: owenconnolly <52223389+owenconnolly@users.noreply.github.com> --- ...leViewHeaderFooterViewDemoController.swift | 2 +- .../TableViewHeaderFooterView.swift | 73 +++++++++++++------ 2 files changed, 52 insertions(+), 23 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift index 79bd0dfce8..049294dfd5 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift @@ -126,7 +126,7 @@ extension TableViewHeaderFooterViewDemoController { if section.footerLinkText.isEmpty { footer?.setup(style: .footer, title: section.footerText) } else { - let title = NSMutableAttributedString(string: section.footerText) + let title = NSMutableAttributedString(string: section.footerText, attributes: [NSAttributedString.Key.foregroundColor: footer?.tokenSet[.textColor].uiColor ?? .white]) let range = (title.string as NSString).range(of: section.footerLinkText) if range.location != -1 { title.addAttribute(.link, value: "https://github.com/microsoft/fluentui-apple", range: range) diff --git a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift index 9a6fe02c77..6b1b4a0e6e 100644 --- a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift +++ b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift @@ -244,7 +244,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// - title: The title string. /// - accessoryButtonTitle: Optional accessory button title string. @objc open func setup(style: Style, title: String, accessoryButtonTitle: String = "") { - setup(style: style, title: title, accessoryButtonTitle: accessoryButtonTitle, leadingView: nil) + setupBase(style: style, title: title, accessoryButtonTitle: accessoryButtonTitle) } /// - Parameters: @@ -253,11 +253,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// - accessoryButtonTitle: Optional accessory button title string. /// - leadingView: An optional custom view that appears near the leading edge of the view. @objc open func setup(style: Style, title: String, accessoryButtonTitle: String = "", leadingView: UIView? = nil) { - titleView.attributedText = NSAttributedString(string: " ") // to clear attributes - titleView.text = title - titleView.isSelectable = false - - setup(style: style, accessoryButtonTitle: accessoryButtonTitle, leadingView: leadingView) + setupBase(style: style, title: title, accessoryButtonTitle: accessoryButtonTitle, leadingView: leadingView) } /// - Parameters: @@ -265,7 +261,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// - attributedTitle: Title as an NSAttributedString for additional attributes. /// - accessoryButtonTitle: Optional accessory button title string. @objc open func setup(style: Style, attributedTitle: NSAttributedString, accessoryButtonTitle: String = "") { - setup(style: style, attributedTitle: attributedTitle, accessoryButtonTitle: accessoryButtonTitle, leadingView: nil) + setupBase(style: style, attributedTitle: attributedTitle, accessoryButtonTitle: accessoryButtonTitle) } /// - Parameters: @@ -274,10 +270,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// - accessoryButtonTitle: Optional accessory button title string. /// - leadingView: An optional custom view that appears near the leading edge of the view. @objc open func setup(style: Style, attributedTitle: NSAttributedString, accessoryButtonTitle: String = "", leadingView: UIView? = nil) { - titleView.attributedText = attributedTitle - titleView.isSelectable = true - - setup(style: style, accessoryButtonTitle: accessoryButtonTitle, leadingView: leadingView) + setupBase(style: style, attributedTitle: attributedTitle, accessoryButtonTitle: accessoryButtonTitle, leadingView: leadingView) } /// - Parameters: @@ -285,7 +278,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// - title: The title string. /// - accessoryView: The optional custom accessory view in the trailing edge of this view. @objc open func setup(style: Style, title: String, accessoryView: UIView) { - setup(style: style, title: title, accessoryView: accessoryView, leadingView: nil) + setupBase(style: style, title: title, accessoryView: accessoryView) } /// - Parameters: @@ -296,30 +289,48 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont /// If `accessoryView` is set, the accessory button (if any) will be replaced by this custom view. Clients are responsible /// for the appearance and behavior of both the `accessoryView` and `leadingView`, including event handling and accessibility. @objc open func setup(style: Style, title: String, accessoryView: UIView, leadingView: UIView? = nil) { - setup(style: style, title: title, accessoryButtonTitle: "") - self.accessoryView = accessoryView - self.leadingView = leadingView + setupBase(style: style, title: title, accessoryView: accessoryView, leadingView: leadingView) } /// - Parameters: /// - style: The `TableViewHeaderFooterView.Style` used to set up the view. /// - accessoryButtonTitle: Optional accessory button title string. @objc open func setup(style: Style, accessoryButtonTitle: String) { - setup(style: style, accessoryButtonTitle: accessoryButtonTitle, leadingView: nil) + setupBase(style: style, accessoryButtonTitle: accessoryButtonTitle) } /// - Parameters: /// - style: The `TableViewHeaderFooterView.Style` used to set up the view. /// - title: The title string. @objc open func setup(style: Style, title: String) { - setup(style: style, title: title, accessoryButtonTitle: "") + setupBase(style: style, title: title) } + /// This is the base setup method. All other setup methods call this method with their parameters. /// - Parameters: /// - style: The `TableViewHeaderFooterView.Style` used to set up the view. + /// - title: The title string + /// - attributedTitle: Title as an NSAttributedString for additional attributes. /// - accessoryButtonTitle: Optional accessory button title string. + /// - accessoryView: The optional custom accessory view in the trailing edge of this view. /// - leadingView: An optional custom view that appears near the leading edge of the view. - private func setup(style: Style, accessoryButtonTitle: String, leadingView: UIView? = nil) { + private func setupBase(style: Style, + title: String? = nil, + attributedTitle: NSAttributedString? = nil, + accessoryButtonTitle: String = "", + accessoryView: UIView? = nil, + leadingView: UIView? = nil) { + if let attributedTitle { + self.attributedTitle = attributedTitle + titleView.attributedText = attributedTitle + titleView.isSelectable = true + } else { + self.attributedTitle = nil + titleView.attributedText = NSAttributedString(string: " ") // to clear attributes + titleView.text = title + titleView.isSelectable = false + } + updateTitleViewFont() switch style { case .header, .headerPrimary: @@ -329,6 +340,12 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont } accessoryButton = !accessoryButtonTitle.isEmpty ? createAccessoryButton(withTitle: accessoryButtonTitle) : nil + + /// `accessoryButton` and `accessoryView` occupy the same space at the trailing end of the view. If both are provided, the `accessoryView` will be given priority + if accessoryView != nil { + self.accessoryView = accessoryView + } + self.leadingView = leadingView self.style = style @@ -437,7 +454,10 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont private func updateTitleViewFont() { if let window = window { let titleFont = tokenSet[.textFont].uiFont - titleView.font = titleFont + if !isUsingAttributedTitle { + titleView.font = titleFont + } + // offset text container to center its content #if os(iOS) let scale = window.rootViewController?.view.contentScaleFactor ?? window.screen.scale @@ -451,8 +471,6 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont } private func updateTitleAndBackgroundColors() { - titleView.textColor = tokenSet[.textColor].uiColor - if tableViewCellStyle == .grouped { backgroundView?.backgroundColor = tokenSet[.backgroundColorGrouped].uiColor } else if tableViewCellStyle == .plain { @@ -461,7 +479,10 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont backgroundView?.backgroundColor = .clear } - titleView.font = tokenSet[.textFont].uiFont + if !isUsingAttributedTitle { + titleView.textColor = tokenSet[.textColor].uiColor + titleView.font = tokenSet[.textFont].uiFont + } titleView.linkColor = tokenSet[.linkTextColor].uiColor } @@ -500,6 +521,14 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont @objc private func handleHeaderViewTapped() { onHeaderViewTapped?() } + + private var attributedTitle: NSAttributedString? { + didSet { + isUsingAttributedTitle = attributedTitle != nil + } + } + + private var isUsingAttributedTitle: Bool = false } // MARK: - TableViewHeaderFooterView: UITextViewDelegate From 2d1071a4a37467b28516c80b5b3d2dde03d60185 Mon Sep 17 00:00:00 2001 From: Lynn Zhang <78454019+lyzhan7@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:10:22 -0700 Subject: [PATCH 47/90] Add ListItem to podspec (#2048) * Add ListItem to podspec, move table view/list item shared resources into a separate folder/subspec * Update dependency * Alphabetize folders --- MicrosoftFluentUI.podspec | 16 ++++ Package.swift | 1 + ios/FluentUI.xcodeproj/project.pbxproj | 16 +++- .../Table View/TableView.resources.xcfilelist | 5 -- ios/FluentUI/Table View/TableViewCell.swift | 79 ------------------- .../TableViewCellTokenSet.swift | 79 +++++++++++++++++++ .../TableViewListShared.resources.xcfilelist | 5 ++ 7 files changed, 113 insertions(+), 88 deletions(-) rename ios/FluentUI/{Table View => TableViewListShared}/TableViewCellTokenSet.swift (79%) create mode 100644 ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 61e4f87d8f..9c5905960f 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -183,6 +183,14 @@ fi', :execution_position => :before_compile } label_ios.source_files = ["ios/FluentUI/Label/**/*.{swift,h}"] end + s.subspec 'ListItem_ios' do |listitem_ios| + listitem_ios.platform = :ios + listitem_ios.dependency 'MicrosoftFluentUI/OtherCells_ios' + listitem_ios.dependency 'MicrosoftFluentUI/Separator_ios' + listitem_ios.dependency 'MicrosoftFluentUI/TableViewListShared_ios' + listitem_ios.source_files = ["ios/FluentUI/List/**/*.swift"] + end + s.subspec 'MultilineCommandBar_ios' do |multilinecommandbar_ios| multilinecommandbar_ios.platform = :ios multilinecommandbar_ios.dependency 'MicrosoftFluentUI/BottomSheet_ios' @@ -302,10 +310,18 @@ fi', :execution_position => :before_compile } tableview_ios.platform = :ios tableview_ios.dependency 'MicrosoftFluentUI/Label_ios' tableview_ios.dependency 'MicrosoftFluentUI/Separator_ios' + tableview_ios.dependency 'MicrosoftFluentUI/TableViewListShared_ios' tableview_ios.preserve_paths = ["ios/FluentUI/Table View/TableView.resources.xcfilelist"] tableview_ios.source_files = ["ios/FluentUI/Table View/**/*.{swift,h}"] end + s.subspec 'TableViewListShared_ios' do |tableviewlistshared_ios| + tableviewlistshared_ios.platform = :ios + tableviewlistshared_ios.dependency 'MicrosoftFluentUI/Core_ios' + tableviewlistshared_ios.preserve_paths = ["ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist"] + tableviewlistshared_ios.source_files = ["ios/FluentUI/TableViewListShared/**/*.{swift,h}"] + end + s.subspec 'TextField_ios' do |textfield_ios| textfield_ios.platform = :ios textfield_ios.dependency 'MicrosoftFluentUI/Button_ios' diff --git a/Package.swift b/Package.swift index 3d38139c84..b3b3969204 100644 --- a/Package.swift +++ b/Package.swift @@ -42,6 +42,7 @@ let package = Package( "Other Cells/OtherCells.resources.xcfilelist", "Resources/Localization/CultureMapping.json", "Table View/TableView.resources.xcfilelist", + "TableViewListShared/TableViewListShared.resources.xcfilelist", "TextField/TextField.resources.xcfilelist", "Tooltip/Tooltip.resources.xcfilelist", "TwoLineTitleView/TwoLineTitleView.resources.xcfilelist", diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj index 01d8e315ed..1ca8afb3d6 100644 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ b/ios/FluentUI.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ 0A84A6F029EDC489005DBC3D /* SeparatorTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A84A6EF29EDC489005DBC3D /* SeparatorTokenSet.swift */; }; 0A8E61FB291DC11F009E412D /* CommandBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8E61FA291DC11F009E412D /* CommandBarTokenSet.swift */; }; 0AE3041D29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AE3041C29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift */; }; - 2A9745DE281733D700E1A1FD /* TableViewCellTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A9745DD281733D700E1A1FD /* TableViewCellTokenSet.swift */; }; 3A9FC0F52A6AFAD40060A6BE /* BadgeFieldTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9FC0F42A6AFAD40060A6BE /* BadgeFieldTokenSet.swift */; }; 3A9FC0F72A705C090060A6BE /* PeoplePickerTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9FC0F62A705C090060A6BE /* PeoplePickerTokenSet.swift */; }; 3AFB0FD629C1365600FEC1A9 /* MultilineCommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AFB0FD529C1365600FEC1A9 /* MultilineCommandBar.swift */; }; @@ -242,6 +241,7 @@ F3DFD3612A7B210100014C6E /* ListActionItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */; }; F3F113892A705AD500DA852A /* ListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F113882A705AD500DA852A /* ListItem.swift */; }; F3F1138D2A705B6900DA852A /* ListItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */; }; + F5854ED12C220AC100938291 /* TableViewCellTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */; }; FD053A352224CA33009B6378 /* DatePickerControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD053A342224CA33009B6378 /* DatePickerControllerTests.swift */; }; /* End PBXBuildFile section */ @@ -277,7 +277,6 @@ 1168630222E131CF0088B302 /* TabBarItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarItemView.swift; sourceTree = ""; }; 1168630322E131CF0088B302 /* TabBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarView.swift; sourceTree = ""; }; 118D9847230BBA2300BC0B72 /* TabBarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarItem.swift; sourceTree = ""; }; - 2A9745DD281733D700E1A1FD /* TableViewCellTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewCellTokenSet.swift; sourceTree = ""; }; 3A9FC0F42A6AFAD40060A6BE /* BadgeFieldTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeFieldTokenSet.swift; sourceTree = ""; }; 3A9FC0F62A705C090060A6BE /* PeoplePickerTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeoplePickerTokenSet.swift; sourceTree = ""; }; 3AFB0FD529C1365600FEC1A9 /* MultilineCommandBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultilineCommandBar.swift; sourceTree = ""; }; @@ -465,6 +464,7 @@ F3F113882A705AD500DA852A /* ListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItem.swift; sourceTree = ""; }; F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItemModifiers.swift; sourceTree = ""; }; F5784DB9285D031800DBEAD6 /* docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = docs; sourceTree = ""; }; + F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewCellTokenSet.swift; sourceTree = ""; }; FC414E1E258876FB00069E73 /* CommandBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBar.swift; sourceTree = ""; }; FC414E242588798000069E73 /* CommandBarButtonGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarButtonGroupView.swift; sourceTree = ""; }; FC414E2A25887A4B00069E73 /* CommandBarButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarButton.swift; sourceTree = ""; }; @@ -996,6 +996,7 @@ C0A0D75D233AEA9900F432FD /* Shimmer */, 1168630122E131A20088B302 /* Tab Bar */, B444D6B421825B510002B4D4 /* Table View */, + F5854ED02C220AC100938291 /* TableViewListShared */, EC98E2AB2980C0C000B9DF91 /* TextField */, FD7DF05A21FA7F3200857267 /* Tooltip */, 5314DFF325F006060099271A /* TouchForwardingView */, @@ -1088,7 +1089,6 @@ isa = PBXGroup; children = ( B498141321E424920077B48D /* TableViewCell.swift */, - 2A9745DD281733D700E1A1FD /* TableViewCellTokenSet.swift */, B4EF66502294A664007FEAB0 /* TableViewHeaderFooterView.swift */, 0AE3041C29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift */, ); @@ -1209,6 +1209,14 @@ path = List; sourceTree = ""; }; + F5854ED02C220AC100938291 /* TableViewListShared */ = { + isa = PBXGroup; + children = ( + F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */, + ); + path = TableViewListShared; + sourceTree = ""; + }; FC414E1D258876D400069E73 /* Command Bar */ = { isa = PBXGroup; children = ( @@ -1571,6 +1579,7 @@ 3A9FC0F52A6AFAD40060A6BE /* BadgeFieldTokenSet.swift in Sources */, 5314E30325F0260E0099271A /* AccessibleViewDelegate.swift in Sources */, 6EB4B25F270ED6B30005B808 /* BadgeLabel.swift in Sources */, + F5854ED12C220AC100938291 /* TableViewCellTokenSet.swift in Sources */, EC98E2B2298D97EC00B9DF91 /* TextFieldTokenSet.swift in Sources */, 9231491528BF026A001B033E /* HUD.swift in Sources */, 5314E1A725F01A7C0099271A /* ActionsCell.swift in Sources */, @@ -1660,7 +1669,6 @@ EC5982D827BF348700FD048D /* MSFAvatar.swift in Sources */, 5314E0AA25F010070099271A /* DrawerShadowView.swift in Sources */, 4BDBE18928EC9E6F00314696 /* ShimmerTokenSet.swift in Sources */, - 2A9745DE281733D700E1A1FD /* TableViewCellTokenSet.swift in Sources */, 530D9C5127EE388200BDCBBF /* SwiftUI+ViewPresentation.swift in Sources */, 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */, 6F050B6D29D3D1A90070D3D5 /* TabBarTokenSet.swift in Sources */, diff --git a/ios/FluentUI/Table View/TableView.resources.xcfilelist b/ios/FluentUI/Table View/TableView.resources.xcfilelist index b15012e23c..0725233e4c 100644 --- a/ios/FluentUI/Table View/TableView.resources.xcfilelist +++ b/ios/FluentUI/Table View/TableView.resources.xcfilelist @@ -1,6 +1 @@ -checkmark-24x24.imageset chevron-right-20x20.imageset -iOS-chevron-right-20x20.imageset -more-24x24.imageset -selection-off.imageset -selection-on.imageset diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/ios/FluentUI/Table View/TableViewCell.swift index 9bd2ff97f9..134294d746 100644 --- a/ios/FluentUI/Table View/TableViewCell.swift +++ b/ios/FluentUI/Table View/TableViewCell.swift @@ -5,85 +5,6 @@ import UIKit -// MARK: TableViewCellAccessoryType - -@objc(MSFTableViewCellAccessoryType) -public enum TableViewCellAccessoryType: Int { - case none - case disclosureIndicator - case detailButton - case checkmark - - private struct Constants { - static let horizontalSpacing: CGFloat = 16 - static let height: CGFloat = 44 - } - - var icon: UIImage? { - let icon: UIImage? - switch self { - case .none: - icon = nil - case .disclosureIndicator: - icon = UIImage.staticImageNamed("iOS-chevron-right-20x20") - case .detailButton: - icon = UIImage.staticImageNamed("more-24x24") - case .checkmark: - icon = UIImage.staticImageNamed("checkmark-24x24") - } - return icon - } - - func iconColor(tokenSet: TableViewCellTokenSet, fluentTheme: FluentTheme) -> UIColor? { - switch self { - case .none: - return nil - case .disclosureIndicator: - return tokenSet[.accessoryDisclosureIndicatorColor].uiColor - case .detailButton: - return tokenSet[.accessoryDetailButtonColor].uiColor - case .checkmark: - return tokenSet[.accessoryCheckmarkColor].uiColor - } - } - - var size: CGSize { - if self == .none { - return .zero - } - // Horizontal spacing includes 16pt spacing from content to icon and 16pt spacing from icon to trailing edge of cell - let horizontalSpacing: CGFloat = Constants.horizontalSpacing * 2 - let iconWidth: CGFloat = icon?.size.width ?? 0 - return CGSize(width: horizontalSpacing + iconWidth, height: Constants.height) - } -} - -// Different background color is used for `TableViewCell` by getting the appropriate tokens and integrate with the cell's `UIBackgroundConfiguration` -@objc(MSFTableViewCellBackgroundStyleType) -public enum TableViewCellBackgroundStyleType: Int { - // use for flat list of cells - case plain - // use for grouped list of cells - case grouped - // clear background so that TableView's background can be shown - case clear - // in case clients want to override the background on their own without using token system - case custom - - func defaultColor(tokenSet: TableViewCellTokenSet) -> UIColor? { - switch self { - case .plain: - return tokenSet[.cellBackgroundColor].uiColor - case .grouped: - return tokenSet[.cellBackgroundGroupedColor].uiColor - case .clear: - return .clear - case .custom: - return nil - } - } -} - // Supported vertical alignment for accessory views in `TableViewCell` @objc(MSFTableViewCellAccessoryViewVerticalAlignment) public enum TableViewCellAccessoryViewVerticalAlignment: Int { diff --git a/ios/FluentUI/Table View/TableViewCellTokenSet.swift b/ios/FluentUI/TableViewListShared/TableViewCellTokenSet.swift similarity index 79% rename from ios/FluentUI/Table View/TableViewCellTokenSet.swift rename to ios/FluentUI/TableViewListShared/TableViewCellTokenSet.swift index 321dad9f9b..87e4bc5b41 100644 --- a/ios/FluentUI/Table View/TableViewCellTokenSet.swift +++ b/ios/FluentUI/TableViewListShared/TableViewCellTokenSet.swift @@ -284,3 +284,82 @@ extension TableViewCellTokenSet { case small case medium } + +// MARK: TableViewCellAccessoryType + +@objc(MSFTableViewCellAccessoryType) +public enum TableViewCellAccessoryType: Int { + case none + case disclosureIndicator + case detailButton + case checkmark + + private struct Constants { + static let horizontalSpacing: CGFloat = 16 + static let height: CGFloat = 44 + } + + var icon: UIImage? { + let icon: UIImage? + switch self { + case .none: + icon = nil + case .disclosureIndicator: + icon = UIImage.staticImageNamed("iOS-chevron-right-20x20") + case .detailButton: + icon = UIImage.staticImageNamed("more-24x24") + case .checkmark: + icon = UIImage.staticImageNamed("checkmark-24x24") + } + return icon + } + + func iconColor(tokenSet: TableViewCellTokenSet, fluentTheme: FluentTheme) -> UIColor? { + switch self { + case .none: + return nil + case .disclosureIndicator: + return tokenSet[.accessoryDisclosureIndicatorColor].uiColor + case .detailButton: + return tokenSet[.accessoryDetailButtonColor].uiColor + case .checkmark: + return tokenSet[.accessoryCheckmarkColor].uiColor + } + } + + var size: CGSize { + if self == .none { + return .zero + } + // Horizontal spacing includes 16pt spacing from content to icon and 16pt spacing from icon to trailing edge of cell + let horizontalSpacing: CGFloat = Constants.horizontalSpacing * 2 + let iconWidth: CGFloat = icon?.size.width ?? 0 + return CGSize(width: horizontalSpacing + iconWidth, height: Constants.height) + } +} + +// Different background color is used for `TableViewCell` by getting the appropriate tokens and integrate with the cell's `UIBackgroundConfiguration` +@objc(MSFTableViewCellBackgroundStyleType) +public enum TableViewCellBackgroundStyleType: Int { + // use for flat list of cells + case plain + // use for grouped list of cells + case grouped + // clear background so that TableView's background can be shown + case clear + // in case clients want to override the background on their own without using token system + case custom + + func defaultColor(tokenSet: TableViewCellTokenSet) -> UIColor? { + switch self { + case .plain: + return tokenSet[.cellBackgroundColor].uiColor + case .grouped: + return tokenSet[.cellBackgroundGroupedColor].uiColor + case .clear: + return .clear + case .custom: + return nil + } + } +} diff --git a/ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist b/ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist new file mode 100644 index 0000000000..ff870ded85 --- /dev/null +++ b/ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist @@ -0,0 +1,5 @@ +checkmark-24x24.imageset +iOS-chevron-right-20x20.imageset +more-24x24.imageset +selection-off.imageset +selection-on.imageset From d5a0dd29ee46ebabf7bb0d6a57c967e26b97661f Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Mon, 24 Jun 2024 13:52:25 -0700 Subject: [PATCH 48/90] Updating version to 0.29.0 (#2051) --- MicrosoftFluentUI.podspec | 2 +- ios/FluentUI.Demo/FluentUI.Demo/Info.plist | 4 ++-- ios/FluentUI.Resources/Info.plist | 4 ++-- macos/FluentUI/FluentUI-Info.plist | 4 ++-- macos/FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 9c5905960f..5692d5d831 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.28.0' + s.version = '0.29.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist index 3c1e9eecfc..5127245bf9 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist +++ b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.28.0 + 1.29.0 CFBundleURLTypes @@ -26,7 +26,7 @@ CFBundleVersion - 137.28.0 + 137.29.0 LSRequiresIPhoneOS UIApplicationSceneManifest diff --git a/ios/FluentUI.Resources/Info.plist b/ios/FluentUI.Resources/Info.plist index 8f1a360a83..51bb078176 100644 --- a/ios/FluentUI.Resources/Info.plist +++ b/ios/FluentUI.Resources/Info.plist @@ -13,8 +13,8 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 0.28.0 + 0.29.0 CFBundleVersion - 0.28.0 + 0.29.0 diff --git a/macos/FluentUI/FluentUI-Info.plist b/macos/FluentUI/FluentUI-Info.plist index a65912983e..4a1e7df621 100644 --- a/macos/FluentUI/FluentUI-Info.plist +++ b/macos/FluentUI/FluentUI-Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.28.0 + 0.29.0 CFBundleVersion - 0.28.0 + 0.29.0 diff --git a/macos/FluentUITestApp/FluentUITestApp-Info.plist b/macos/FluentUITestApp/FluentUITestApp-Info.plist index 79055f489c..127c275e80 100644 --- a/macos/FluentUITestApp/FluentUITestApp-Info.plist +++ b/macos/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.28.0 + 0.29.0 CFBundleVersion - 62.28.0 + 62.29.0 LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion From e728a4ad4da808b1ea641d2ae831a1d801eb3414 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Mon, 24 Jun 2024 17:48:55 -0700 Subject: [PATCH 49/90] Fix ListItem padding bug on visionOS (#2049) --- ios/FluentUI/List/ListItem.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/FluentUI/List/ListItem.swift b/ios/FluentUI/List/ListItem.swift index cd561bf830..e4de99d777 100644 --- a/ios/FluentUI/List/ListItem.swift +++ b/ios/FluentUI/List/ListItem.swift @@ -127,7 +127,7 @@ public struct ListItem Date: Wed, 26 Jun 2024 15:56:54 -0700 Subject: [PATCH 50/90] Extend ListItem to support overrideTokens (#2047) * tokenize listitem * add state so tokens update when size changes * untokenize + add overrideTokens instead * reverts * allow chaining * cleanup code --- .../Demos/ListItemDemoController.swift | 50 ------- .../ListItemDemoController_SwiftUI.swift | 127 ++++++++++-------- ios/FluentUI/List/ListItem.swift | 25 ++-- ios/FluentUI/List/ListItemModifiers.swift | 2 +- 4 files changed, 89 insertions(+), 115 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift index 0b9a3a9a49..193363bbb1 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift @@ -36,53 +36,3 @@ class ListItemDemoController: DemoController { var hostingController: ListItemDemoControllerSwiftUI? } - -extension ListItemDemoController: DemoAppearanceDelegate { - func themeWideOverrideDidChange(isOverrideEnabled: Bool) { - guard let fluentTheme = self.view.window?.fluentTheme else { - return - } - - fluentTheme.register(tokenSetType: ListItemTokenSet.self, - tokenSet: isOverrideEnabled ? themeWideOverrideListItemTokens : nil) - } - - func perControlOverrideDidChange(isOverrideEnabled: Bool) { - guard let fluentTheme = self.view.window?.fluentTheme else { - return - } - - fluentTheme.register(tokenSetType: ListItemTokenSet.self, - tokenSet: isOverrideEnabled ? perControlOverrideListItemTokens : nil) - } - - func isThemeWideOverrideApplied() -> Bool { - return self.view.window?.fluentTheme.tokens(for: ListItemTokenSet.self) != nil - } - - // MARK: - Custom tokens - private var themeWideOverrideListItemTokens: [ListItemTokenSet.Tokens: ControlTokenValue] { - return [ - .cellBackgroundGroupedColor: .uiColor { - // "Berry" - return UIColor(light: GlobalTokens.sharedColor(.berry, .tint50), - dark: GlobalTokens.sharedColor(.berry, .shade40)) - } - ] - } - - private var perControlOverrideListItemTokens: [ListItemTokenSet.Tokens: ControlTokenValue] { - return [ - .cellBackgroundGroupedColor: .uiColor { - // "Brass" - return UIColor(light: GlobalTokens.sharedColor(.brass, .tint50), - dark: GlobalTokens.sharedColor(.brass, .shade40)) - }, - .accessoryDisclosureIndicatorColor: .uiColor { - // "Forest" - return UIColor(light: GlobalTokens.sharedColor(.forest, .tint10), - dark: GlobalTokens.sharedColor(.forest, .shade40)) - } - ] - } -} diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift index e6e6a5a5af..8379d36dc4 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift @@ -35,16 +35,17 @@ struct ListItemDemoView: View { @State var showTrailingContent: Bool = true @State var isTappable: Bool = true @State var isDisabled: Bool = false + @State var renderStandalone: Bool = false + @State var overrideTokens: Bool = false @State var accessoryType: ListItemAccessoryType = .none @State var leadingContentSize: ListItemLeadingContentSize = .default @State var backgroundStyle: ListItemBackgroundStyleType = .grouped + @State var listStyle: FluentListStyle = .plain @State var titleLineLimit: Int = 1 @State var subtitleLineLimit: Int = 1 @State var footerLineLimit: Int = 1 @State var trailingContentFocusableElementCount: Int = 0 @State var trailingContentToggleEnabled: Bool = true - @State var renderStandalone: Bool = false - @State var listStyle: FluentListStyle = .plain public var body: some View { @@ -80,6 +81,7 @@ struct ListItemDemoView: View { FluentUIDemoToggle(titleKey: "Tappable", isOn: $isTappable) FluentUIDemoToggle(titleKey: "Disabled", isOn: $isDisabled) FluentUIDemoToggle(titleKey: "Render standalone", isOn: $renderStandalone) + FluentUIDemoToggle(titleKey: "Override tokens", isOn: $overrideTokens) } @ViewBuilder @@ -148,58 +150,59 @@ struct ListItemDemoView: View { @ViewBuilder var listItem: some View { - ListItem(title: title, - subtitle: showSubtitle ? subtitle : "", - footer: showFooter ? footer : "", - leadingContent: { - if showLeadingContent { - leadingContent - } - }, - trailingContent: { - if showTrailingContent { - switch trailingContentFocusableElementCount { - case 0: - Text("Spreadsheet") - case 1: - Toggle("", isOn: $trailingContentToggleEnabled) - default: - HStack { - Button { - showingSecondaryAlert = true - } label: { - Text("Button 1") - } - Button { - showingSecondaryAlert = true - } label: { - Text("Button 2") - } - } - } - } - }, - action: !isTappable ? nil : { - showingPrimaryAlert = true - } - ) - .backgroundStyleType(backgroundStyle) - .accessoryType(accessoryType) - .leadingContentSize(leadingContentSize) - .titleLineLimit(titleLineLimit) - .subtitleLineLimit(subtitleLineLimit) - .footerLineLimit(footerLineLimit) - .combineTrailingContentAccessibilityElement(trailingContentFocusableElementCount < 2) - .onAccessoryTapped { - showingSecondaryAlert = true - } - .disabled(isDisabled) - .alert("List Item tapped", isPresented: $showingPrimaryAlert) { - Button("OK", role: .cancel) { } - } - .alert("Detail button tapped", isPresented: $showingSecondaryAlert) { - Button("OK", role: .cancel) { } - } + var listItem = ListItem(title: title, + subtitle: showSubtitle ? subtitle : "", + footer: showFooter ? footer : "", + leadingContent: { + if showLeadingContent { + leadingContent + } + }, + trailingContent: { + if showTrailingContent { + switch trailingContentFocusableElementCount { + case 0: + Text("Spreadsheet") + case 1: + Toggle("", isOn: $trailingContentToggleEnabled) + default: + HStack { + Button { + showingSecondaryAlert = true + } label: { + Text("Button 1") + } + Button { + showingSecondaryAlert = true + } label: { + Text("Button 2") + } + } + } + } + }, + action: !isTappable ? nil : { + showingPrimaryAlert = true + }) + .backgroundStyleType(backgroundStyle) + .accessoryType(accessoryType) + .leadingContentSize(leadingContentSize) + .titleLineLimit(titleLineLimit) + .subtitleLineLimit(subtitleLineLimit) + .footerLineLimit(footerLineLimit) + .combineTrailingContentAccessibilityElement(trailingContentFocusableElementCount < 2) + .onAccessoryTapped { + showingSecondaryAlert = true + } + listItem + .overrideTokens($overrideTokens.wrappedValue ? listItemTokenOverrides : [:]) + .disabled(isDisabled) + .alert("List Item tapped", isPresented: $showingPrimaryAlert) { + Button("OK", role: .cancel) { } + } + .alert("Detail button tapped", isPresented: $showingSecondaryAlert) { + Button("OK", role: .cancel) { } + } } @ViewBuilder @@ -223,6 +226,22 @@ struct ListItemDemoView: View { return content } + + private var listItemTokenOverrides: [ListItemToken: ControlTokenValue] { + return [ + .titleColor: .uiColor { + GlobalTokens.sharedColor(.red, .primary) + }, + .cellBackgroundGroupedColor: .uiColor { + UIColor(light: GlobalTokens.sharedColor(.brass, .tint50), + dark: GlobalTokens.sharedColor(.brass, .shade40)) + }, + .accessoryDisclosureIndicatorColor: .uiColor { + UIColor(light: GlobalTokens.sharedColor(.forest, .tint10), + dark: GlobalTokens.sharedColor(.forest, .shade40)) + } + ] + } } struct UIViewWrapper: UIViewRepresentable { diff --git a/ios/FluentUI/List/ListItem.swift b/ios/FluentUI/List/ListItem.swift index e4de99d777..bc9e37752b 100644 --- a/ios/FluentUI/List/ListItem.swift +++ b/ios/FluentUI/List/ListItem.swift @@ -9,6 +9,7 @@ public typealias ListItemAccessoryType = TableViewCellAccessoryType public typealias ListItemBackgroundStyleType = TableViewCellBackgroundStyleType public typealias ListItemLeadingContentSize = MSFTableViewCellCustomViewSize public typealias ListItemTokenSet = TableViewCellTokenSet +public typealias ListItemToken = TableViewCellToken /// View that represents an item in a List. public struct ListItem Self { + tokenOverrides = overrides + return self + } +} diff --git a/ios/FluentUI/List/ListItemModifiers.swift b/ios/FluentUI/List/ListItemModifiers.swift index 343ae5f42e..de1e858ad7 100644 --- a/ios/FluentUI/List/ListItemModifiers.swift +++ b/ios/FluentUI/List/ListItemModifiers.swift @@ -64,7 +64,7 @@ public extension ListItem { /// - Returns: The modified `ListItem` with the property set. func leadingContentSize(_ size: ListItemLeadingContentSize) -> ListItem { var listItem = self - listItem.tokenSet = ListItemTokenSet(customViewSize: { size }) + listItem.leadingContentSize = size return listItem } From cb39b2a0e8dca8ef872d67d21be55ed28c7b5438 Mon Sep 17 00:00:00 2001 From: cbowdoin <81586105+cbowdoin@users.noreply.github.com> Date: Mon, 1 Jul 2024 13:52:52 -0700 Subject: [PATCH 51/90] Add a willMove method to bottom sheet delegate (#2052) * Add a will move method to bottom sheet delegate * Fixed comments * Addressed PR feedback * Trigger Build --- .../Bottom Sheet/BottomSheetController.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift index 30adcd708b..912ec3bb29 100644 --- a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift +++ b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift @@ -19,6 +19,17 @@ public protocol BottomSheetControllerDelegate: AnyObject { didMoveTo expansionState: BottomSheetExpansionState, interaction: BottomSheetInteraction) + /// Called before a transition to a new expansion state starts. + /// + /// External changes to `isExpanded` or `isHidden` will not trigger this callback. + /// - Parameters: + /// - bottomSheetController: The caller object. + /// - expansionState: The expansion state that the sheet will move to. + /// - interaction: The user interaction that caused the state change. + @objc optional func bottomSheetController(_ bottomSheetController: BottomSheetController, + willMoveTo expansionState: BottomSheetExpansionState, + interaction: BottomSheetInteraction) + /// Called when `collapsedHeightInSafeArea` changes. @objc optional func bottomSheetControllerCollapsedHeightInSafeAreaDidChange(_ bottomSheetController: BottomSheetController) } @@ -906,6 +917,8 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr completeAnimationsIfNeeded() if currentSheetVerticalOffset != offset(for: targetExpansionState) { + delegate?.bottomSheetController?(self, willMoveTo: targetExpansionState, interaction: interaction) + let animator = stateChangeAnimator(to: targetExpansionState, velocity: velocity, interaction: interaction, From 0b1431c6dbf9a9ac2b2b200a8221b0a073c63087 Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:30:16 -0700 Subject: [PATCH 52/90] Fix Xcode crash by not creating infinitely large views (#2056) --- ios/FluentUI/Other Cells/ActionsCell.swift | 10 ++++++++-- ios/FluentUI/Table View/TableViewCell.swift | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ios/FluentUI/Other Cells/ActionsCell.swift b/ios/FluentUI/Other Cells/ActionsCell.swift index 8b1f96982a..2d3a784540 100644 --- a/ios/FluentUI/Other Cells/ActionsCell.swift +++ b/ios/FluentUI/Other Cells/ActionsCell.swift @@ -125,8 +125,6 @@ open class ActionsCell: UITableViewCell, TokenizedControlInternal { addSubview(topSeparator) addSubview(bottomSeparator) - // hide system separator so we can draw our own. We prefer the container UITableView to set separatorStyle = .none - separatorInset = UIEdgeInsets(top: 0, left: CGFloat.greatestFiniteMagnitude, bottom: 0, right: 0) updateHorizontalSeparator(topSeparator, with: topSeparatorType) updateHorizontalSeparator(bottomSeparator, with: bottomSeparatorType) setupBackgroundColors() @@ -186,6 +184,14 @@ open class ActionsCell: UITableViewCell, TokenizedControlInternal { verticalSeparator.frame = CGRect(x: left, y: 0, width: verticalSeparator.frame.width, height: frame.height) } + // A hacky way to hide the system separator by squeezing it just enough to have zero width. + // This is the only known way to hide the separator without making the UITableView do it for us. + let boundsWidth = bounds.width + if separatorInset.left != boundsWidth || separatorInset.right != 0 { + separatorInset.left = boundsWidth + separatorInset.right = 0 + } + layoutHorizontalSeparator(topSeparator, with: topSeparatorType, at: 0) layoutHorizontalSeparator(bottomSeparator, with: bottomSeparatorType, at: frame.height - bottomSeparator.frame.height) } diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/ios/FluentUI/Table View/TableViewCell.swift index 134294d746..e664d96066 100644 --- a/ios/FluentUI/Table View/TableViewCell.swift +++ b/ios/FluentUI/Table View/TableViewCell.swift @@ -1228,8 +1228,6 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { setupBackgroundColors() - // hide system separator so we can draw our own. We prefer the container UITableView to set separatorStyle = .none - separatorInset = UIEdgeInsets(top: 0, left: CGFloat.greatestFiniteMagnitude, bottom: 0, right: 0) updateSeparator(topSeparator, with: topSeparatorType) updateSeparator(bottomSeparator, with: bottomSeparatorType) @@ -1437,6 +1435,14 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { layoutContentSubviews() contentView.flipSubviewsForRTL() + // A hacky way to hide the system separator by squeezing it just enough to have zero width. + // This is the only known way to hide the separator without making the UITableView do it for us. + let boundsWidth = bounds.width + if separatorInset.left != boundsWidth || separatorInset.right != 0 { + separatorInset.left = boundsWidth + separatorInset.right = 0 + } + layoutSeparator(topSeparator, with: topSeparatorType, at: 0) layoutSeparator(bottomSeparator, with: bottomSeparatorType, at: frame.height - bottomSeparator.frame.height) } From 42744b238352b0dc74d4488c463699621577970b Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 3 Jul 2024 16:47:23 -0700 Subject: [PATCH 53/90] Switch to using Toggle in ActivityIndicatorDemoController (#2055) --- .../ActivityIndicatorDemoController.swift | 25 ++++++++----------- .../ActivityIndicatorTest.swift | 6 ++--- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift index d7e625c36d..8f59c7b5e8 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift @@ -47,15 +47,16 @@ class ActivityIndicatorDemoController: DemoTableViewController { self?.shouldHideWhenStopped = cell?.isOn ?? true } return cell - case .startStopActivity: - guard let cell = tableView.dequeueReusableCell(withIdentifier: ActionsCell.identifier) as? ActionsCell else { + case .isAnimating: + guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { return UITableViewCell() } - cell.setup(action1Title: row.title) - cell.action1Button.addTarget(self, - action: #selector(startStopActivity), - for: .touchUpInside) + cell.setup(title: row.title, isOn: self.isAnimating) + cell.titleNumberOfLines = 0 + cell.onValueChanged = { [weak self, weak cell] in + self?.isAnimating = cell?.isOn ?? true + } cell.bottomSeparatorType = .full return cell case .swiftUIDemo: @@ -181,7 +182,7 @@ class ActivityIndicatorDemoController: DemoTableViewController { private enum ActivityIndicatorDemoRow: CaseIterable { case swiftUIDemo case hidesWhenStopped - case startStopActivity + case isAnimating case demoOfSize var title: String { @@ -190,8 +191,8 @@ class ActivityIndicatorDemoController: DemoTableViewController { return "SwiftUI Demo" case .hidesWhenStopped: return "Hides when stopped" - case .startStopActivity: - return "Start / Stop activity" + case .isAnimating: + return "Animating" case .demoOfSize: return "" } @@ -222,7 +223,7 @@ class ActivityIndicatorDemoController: DemoTableViewController { case .swiftUI: return [.swiftUIDemo] case .settings: - return [.hidesWhenStopped, .startStopActivity] + return [.hidesWhenStopped, .isAnimating] case .defaultColor, .customColor: return [ActivityIndicatorDemoRow](repeating: .demoOfSize, count: MSFActivityIndicatorSize.allCases.count) @@ -232,10 +233,6 @@ class ActivityIndicatorDemoController: DemoTableViewController { } private let xLargeSize: CGFloat = 36 - - @objc private func startStopActivity() { - isAnimating.toggle() - } } extension MSFActivityIndicatorSize { diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift b/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift index 088bd72b25..0604c455b3 100644 --- a/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift +++ b/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift @@ -22,17 +22,17 @@ class ActivityIndicatorTest: BaseTest { // tests start/stop functionality as well as hiding (activity indicator should disappear when stopped) func testStartStopHide() throws { - let startStopButton: XCUIElement = app.buttons["Start / Stop activity"] + let activityButton: XCUIElement = app.cells.containing(.staticText, identifier: "Animating").firstMatch let hidesWhenStoppedButton: XCUIElement = app.cells.containing(.staticText, identifier: "Hides when stopped").firstMatch XCTAssert(activityIndicatorExists(status: inProgress)) - startStopButton.tap() + activityButton.tap() XCTAssert(!activityIndicatorExists(status: inProgress)) hidesWhenStoppedButton.tap() XCTAssert(activityIndicatorExists(status: progressHalted)) - startStopButton.tap() + activityButton.tap() XCTAssert(activityIndicatorExists(status: inProgress)) } From 69da0ecb72fd327b84dfd8e0f895e35c748fdd97 Mon Sep 17 00:00:00 2001 From: Harrie Shin Date: Mon, 8 Jul 2024 19:06:40 -0700 Subject: [PATCH 54/90] use ios 17 api (#2057) iOS 17 added new accessibility trait which custom control that now notify to users it is a toggle. BooleanCell is a custom UITableViewCell which we had our own accessibility strings to mimic OS behavior. We can eventually remove this custom string if all of our cells with uiswitch contains .toggleButton trait. --- ios/FluentUI/Other Cells/BooleanCell.swift | 3 +++ ios/FluentUI/Table View/TableViewCell.swift | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ios/FluentUI/Other Cells/BooleanCell.swift b/ios/FluentUI/Other Cells/BooleanCell.swift index b084799f53..1d2b2df64e 100644 --- a/ios/FluentUI/Other Cells/BooleanCell.swift +++ b/ios/FluentUI/Other Cells/BooleanCell.swift @@ -81,6 +81,9 @@ open class BooleanCell: TableViewCell { setup(title: title, customView: customView, customAccessoryView: `switch`) self.isOn = isOn self.isSwitchEnabled = isSwitchEnabled + if #available(iOS 17, *) { + self.accessibilityTraits.insert(.toggleButton) + } } @objc private func handleOnSwitchValueChanged() { diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/ios/FluentUI/Table View/TableViewCell.swift index e664d96066..b8220538f2 100644 --- a/ios/FluentUI/Table View/TableViewCell.swift +++ b/ios/FluentUI/Table View/TableViewCell.swift @@ -1037,7 +1037,13 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { } if let customSwitch = customAccessoryView as? UISwitch { if isEnabled && customSwitch.isEnabled { - return "Accessibility.TableViewCell.Switch.Hint".localized + var allowOSHint = false + if #available(iOS 17, *) { + if accessibilityTraits.contains(.toggleButton) { + allowOSHint = true + } + } + return allowOSHint ? super.accessibilityHint : "Accessibility.TableViewCell.Switch.Hint".localized } else { return nil } From f4d271bf7ac66a28489fe1019e7e9d91c477ba41 Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Tue, 9 Jul 2024 11:38:59 -0700 Subject: [PATCH 55/90] Various a11y fixes for SearchBar and BadgeView (#2054) --- .../Demos/SearchBarDemoController.swift | 3 +- ios/FluentUI/Badge Field/BadgeView.swift | 4 +- .../Navigation/SearchBar/SearchBar.swift | 44 ++++++++++++++----- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift index eb98bdffd1..bfc49d7837 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift @@ -10,7 +10,6 @@ class SearchBarDemoController: DemoController, SearchBarDelegate { private struct Constants { static let badgeViewCornerRadius: CGFloat = 10 static let badgeViewSideLength: CGFloat = 20 - static let badgeViewMaxFontSize: CGFloat = 40 static let searchBarStackviewMargin: CGFloat = 16 } @@ -110,7 +109,7 @@ class SearchBarDemoController: DemoController, SearchBarDelegate { badge.tokenSet[.backgroundDisabledColor] = .uiColor { .init(light: GlobalTokens.sharedColor(.purple, .primary)) } badge.tokenSet[.foregroundDisabledColor] = .uiColor { .init(light: GlobalTokens.neutralColor(.white)) } badge.isActive = false - badge.maxFontSize = Constants.badgeViewMaxFontSize + badge.showsLargeContentViewer = true return badge } diff --git a/ios/FluentUI/Badge Field/BadgeView.swift b/ios/FluentUI/Badge Field/BadgeView.swift index a7fb7d71ac..a4058e29d0 100644 --- a/ios/FluentUI/Badge Field/BadgeView.swift +++ b/ios/FluentUI/Badge Field/BadgeView.swift @@ -254,7 +254,9 @@ open class BadgeView: UIView, TokenizedControlInternal { } func reload() { - label.text = dataSource?.text + let text = dataSource?.text + label.text = text + largeContentTitle = text style = dataSource?.style ?? .default sizeCategory = dataSource?.sizeCategory ?? .medium diff --git a/ios/FluentUI/Navigation/SearchBar/SearchBar.swift b/ios/FluentUI/Navigation/SearchBar/SearchBar.swift index 1be86564f1..a2a72a6b7c 100644 --- a/ios/FluentUI/Navigation/SearchBar/SearchBar.swift +++ b/ios/FluentUI/Navigation/SearchBar/SearchBar.swift @@ -94,6 +94,8 @@ open class SearchBar: UIView, TokenizedControlInternal { textField.accessibilityTraits = .searchField textField.addTarget(self, action: #selector(searchTextFieldValueDidChange(_:)), for: .editingChanged) textField.showsLargeContentViewer = true + textField.adjustsFontForContentSizeCategory = true + if #available(iOS 17, *) { textField.hoverStyle = nil } @@ -124,6 +126,11 @@ open class SearchBar: UIView, TokenizedControlInternal { clearButton.addTarget(self, action: #selector(SearchBar.clearButtonTapped(sender:)), for: .touchUpInside) clearButton.setImage(UIImage.staticImageNamed("search-clear"), for: .normal) clearButton.isHidden = true + clearButton.showsLargeContentViewer = true + + let clearLabel = "Accessibility.TextField.ClearText".localized + clearButton.accessibilityLabel = clearLabel + clearButton.largeContentTitle = clearLabel clearButton.isPointerInteractionEnabled = true clearButton.pointerStyleProvider = { button, _, _ in @@ -144,6 +151,7 @@ open class SearchBar: UIView, TokenizedControlInternal { button.addTarget(self, action: #selector(SearchBar.cancelButtonTapped(sender:)), for: .touchUpInside) button.alpha = 0.0 button.showsLargeContentViewer = true + button.titleLabel?.adjustsFontForContentSizeCategory = true button.isPointerInteractionEnabled = true if #available(iOS 17, *) { button.hoverStyle = UIHoverStyle(shape: .capsule) @@ -280,6 +288,10 @@ open class SearchBar: UIView, TokenizedControlInternal { private func setupLayout() { addInteraction(UILargeContentViewerInteraction()) + // Search bar has fixed height, so this is the largest size category we can handle while still being usable. + // The larger edge cases are covered by large content viewer. + maximumContentSizeCategory = .accessibilityMedium + // Autolayout is more efficent if all constraints are activated simultaneously var constraints = [NSLayoutConstraint]() @@ -317,10 +329,24 @@ open class SearchBar: UIView, TokenizedControlInternal { searchTextFieldBackgroundView.addSubview(searchTextField) searchTextField.translatesAutoresizingMaskIntoConstraints = false - constraints.append(searchTextField.centerYAnchor.constraint(equalTo: searchTextFieldBackgroundView.centerYAnchor)) - constraints.append(searchTextField.heightAnchor.constraint(equalTo: searchTextFieldBackgroundView.heightAnchor, constant: -2 * SearchBarTokenSet.searchTextFieldVerticalInset)) - constraints.append(searchTextField.leadingAnchor.constraint(equalTo: searchIconImageViewContainerView.trailingAnchor, constant: SearchBarTokenSet.searchTextFieldLeadingInset)) - textFieldLeadingConstraint = constraints.last + // This lets leadingView squeeze the searchTextField when needed. + searchTextField.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) + + // This imposes a limit on how much the leadingView can squeeze the input field + let searchTextFieldMinWidthConstraint = searchTextField.widthAnchor.constraint(greaterThanOrEqualToConstant: SearchBarTokenSet.searchTextFieldInteractionMinWidth) + + // The min width is important, but we don't want to override other constraints the parent may impose on us. + searchTextFieldMinWidthConstraint.priority = .defaultHigh + + let searchTextFieldLeadingConstraint = searchTextField.leadingAnchor.constraint(equalTo: searchIconImageViewContainerView.trailingAnchor, constant: SearchBarTokenSet.searchTextFieldLeadingInset) + textFieldLeadingConstraint = searchTextFieldLeadingConstraint + + constraints.append(contentsOf: [ + searchTextField.centerYAnchor.constraint(equalTo: searchTextFieldBackgroundView.centerYAnchor), + searchTextField.heightAnchor.constraint(equalTo: searchTextFieldBackgroundView.heightAnchor, constant: -2 * SearchBarTokenSet.searchTextFieldVerticalInset), + searchTextFieldLeadingConstraint, + searchTextFieldMinWidthConstraint + ]) // progressSpinner let progressSpinnerView = progressSpinner @@ -363,18 +389,14 @@ open class SearchBar: UIView, TokenizedControlInternal { } searchTextFieldBackgroundView.addSubview(leadingView) - - let leadingViewRenderWidth = searchTextFieldBackgroundView.frame.size.width - SearchBarTokenSet.searchIconInsettedWidth - SearchBarTokenSet.searchTextFieldLeadingInset - SearchBarTokenSet.searchTextFieldInteractionMinWidth - SearchBarTokenSet.clearButtonInsettedWidth - let leadingViewRenderSize = CGSize(width: leadingViewRenderWidth, height: searchTextFieldBackgroundView.frame.size.height) - let leadingViewSize = leadingView.sizeThatFits(leadingViewRenderSize) + leadingView.setContentHuggingPriority(.required, for: .horizontal) leadingView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ + leadingView.heightAnchor.constraint(lessThanOrEqualToConstant: SearchBarTokenSet.searchTextFieldBackgroundHeight), leadingView.leadingAnchor.constraint(equalTo: searchIconImageViewContainerView.trailingAnchor, constant: SearchBarTokenSet.searchIconInset), leadingView.trailingAnchor.constraint(equalTo: searchTextField.leadingAnchor, constant: -SearchBarTokenSet.searchTextFieldLeadingInset), - leadingView.centerYAnchor.constraint(equalTo: searchTextFieldBackgroundView.centerYAnchor), - leadingView.widthAnchor.constraint(equalToConstant: leadingViewSize.width), - leadingView.heightAnchor.constraint(equalToConstant: leadingViewSize.height) + leadingView.centerYAnchor.constraint(equalTo: searchTextFieldBackgroundView.centerYAnchor) ]) } From 7d00d6a760f8db20e143956f8b3bb9f55d471763 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Wed, 10 Jul 2024 10:48:13 -0700 Subject: [PATCH 56/90] Add accessibility for MultilineCommandBarDemo (#2058) --- .../Demos/MultilineCommandBarDemoController.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift index 854045684e..616503239c 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift @@ -37,7 +37,8 @@ class MultilineCommandBarDemoController: DemoController { return CommandBarItem(iconImage: nil, title: command.title, titleFont: command.titleFont) default: return CommandBarItem( - iconImage: command.iconImage + iconImage: command.iconImage, + accessibilityLabel: command.rawValue ) } } @@ -66,7 +67,7 @@ class MultilineCommandBarDemoController: DemoController { return MultilineCommandBar(compactRows: compactRows, regularRows: regularRows) }() - enum Command: CaseIterable { + enum Command: String, CaseIterable { case heading1 case heading2 case heading3 From 30b8885f5d563b3a0b32f0c42a203900c2065340 Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Wed, 17 Jul 2024 11:31:48 -0700 Subject: [PATCH 57/90] New method for separator hiding (#2068) --- ios/FluentUI/Other Cells/ActionsCell.swift | 6 +++--- ios/FluentUI/Table View/TableViewCell.swift | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ios/FluentUI/Other Cells/ActionsCell.swift b/ios/FluentUI/Other Cells/ActionsCell.swift index 2d3a784540..8d18aed6ca 100644 --- a/ios/FluentUI/Other Cells/ActionsCell.swift +++ b/ios/FluentUI/Other Cells/ActionsCell.swift @@ -187,9 +187,9 @@ open class ActionsCell: UITableViewCell, TokenizedControlInternal { // A hacky way to hide the system separator by squeezing it just enough to have zero width. // This is the only known way to hide the separator without making the UITableView do it for us. let boundsWidth = bounds.width - if separatorInset.left != boundsWidth || separatorInset.right != 0 { - separatorInset.left = boundsWidth - separatorInset.right = 0 + let targetSystemSeparatorInset = UIEdgeInsets(top: 0, left: boundsWidth, bottom: 0, right: 0) + if separatorInset.left < boundsWidth { + separatorInset = targetSystemSeparatorInset } layoutHorizontalSeparator(topSeparator, with: topSeparatorType, at: 0) diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/ios/FluentUI/Table View/TableViewCell.swift index b8220538f2..cd34e90ef7 100644 --- a/ios/FluentUI/Table View/TableViewCell.swift +++ b/ios/FluentUI/Table View/TableViewCell.swift @@ -1444,9 +1444,9 @@ open class TableViewCell: UITableViewCell, TokenizedControlInternal { // A hacky way to hide the system separator by squeezing it just enough to have zero width. // This is the only known way to hide the separator without making the UITableView do it for us. let boundsWidth = bounds.width - if separatorInset.left != boundsWidth || separatorInset.right != 0 { - separatorInset.left = boundsWidth - separatorInset.right = 0 + let targetSystemSeparatorInset = UIEdgeInsets(top: 0, left: boundsWidth, bottom: 0, right: 0) + if separatorInset.left < boundsWidth { + separatorInset = targetSystemSeparatorInset } layoutSeparator(topSeparator, with: topSeparatorType, at: 0) From 584aeed1ddedb559276c603565fccf8cc1d87896 Mon Sep 17 00:00:00 2001 From: Des Marks Date: Thu, 25 Jul 2024 09:53:16 -0700 Subject: [PATCH 58/90] Ensure TableViewHeaderFooterView has a themed default text color and font style (#2076) * Ensure that TableViewHeaderFooterView has a themed default text color for attributedStrings * Updates to apply default fluent style * Remove unneeded cast --- .../TableViewHeaderFooterView.swift | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift index 6b1b4a0e6e..6ccae6b21e 100644 --- a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift +++ b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift @@ -456,6 +456,8 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont let titleFont = tokenSet[.textFont].uiFont if !isUsingAttributedTitle { titleView.font = titleFont + } else { + updateAttributedTitleWithDefaultFluentThemeAttributes() } // offset text container to center its content @@ -482,10 +484,27 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont if !isUsingAttributedTitle { titleView.textColor = tokenSet[.textColor].uiColor titleView.font = tokenSet[.textFont].uiFont + } else { + updateAttributedTitleWithDefaultFluentThemeAttributes() } titleView.linkColor = tokenSet[.linkTextColor].uiColor } + private func updateAttributedTitleWithDefaultFluentThemeAttributes() { + if let attributedTitle = self.attributedTitle { + /// Create an attributed string with the default fluent text color and font for the given style + let attributedTitleWithFluentTheme = NSMutableAttributedString(string: attributedTitle.string, attributes: [NSAttributedString.Key.foregroundColor: tokenSet[.textColor].uiColor, NSAttributedString.Key.font: tokenSet[.textFont].uiFont]) + + /// Iterate over the attributes set by the consumer and apply them to our attributed string + attributedTitle.enumerateAttributes(in: NSRange(location: 0, length: attributedTitle.length)) { attributes, range, _ in + attributedTitleWithFluentTheme.addAttributes(attributes, range: range) + } + + /// Update the `titleView` attributed string + titleView.attributedText = attributedTitleWithFluentTheme + } + } + private func updateLeadingViewColor() { leadingView?.tintColor = tokenSet[.leadingViewColor].uiColor } From 1d6be3a8eb320256dafded08b3b1baf6287f4782 Mon Sep 17 00:00:00 2001 From: Mike Schreiber Date: Thu, 25 Jul 2024 15:57:27 -0700 Subject: [PATCH 59/90] Create a SwiftUI demo app, and consume Fluent via Swift Package (#2075) --- Demo/FluentUIDemo.xcodeproj/project.pbxproj | 395 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/ Icon-128.png | Bin 0 -> 13122 bytes .../AppIcon.appiconset/ Icon-128_2x-1.png | Bin 0 -> 46929 bytes .../AppIcon.appiconset/ Icon-128_2x.png | Bin 0 -> 46929 bytes .../AppIcon.appiconset/ Icon-16.png | Bin 0 -> 708 bytes .../AppIcon.appiconset/ Icon-16_2x.png | Bin 0 -> 1759 bytes .../AppIcon.appiconset/ Icon-256_2x.png | Bin 0 -> 173077 bytes .../AppIcon.appiconset/ Icon-32.png | Bin 0 -> 1861 bytes .../AppIcon.appiconset/ Icon-32_2x.png | Bin 0 -> 4795 bytes .../AppIcon.appiconset/ Icon-512.png | Bin 0 -> 173077 bytes .../AppIcon.appiconset/ Icon-512_2x.png | Bin 0 -> 671839 bytes .../AppIcon.appiconset/Contents.json | 74 ++++ .../AppIcon.appiconset/FluentUIDemo_iOS.png | Bin 0 -> 780005 bytes .../Assets.xcassets/Contents.json | 6 + Demo/FluentUIDemo/ContentView.swift | 42 ++ Demo/FluentUIDemo/FluentUIDemo.entitlements | 10 + Demo/FluentUIDemo/FluentUIDemoApp.swift | 15 + .../Preview Assets.xcassets/Contents.json | 6 + .../contents.xcworkspacedata | 10 - .../xcschemes/Build All Debug.xcscheme | 109 ----- .../xcschemes/Build All Mac Debug.xcscheme | 81 ---- .../xcschemes/Build All Mac Ship.xcscheme | 81 ---- .../xcschemes/Build All Ship.xcscheme | 109 ----- .../xcschemes/Build All iOS Debug.xcscheme | 81 ---- .../xcschemes/Build All iOS Ship.xcscheme | 81 ---- 28 files changed, 566 insertions(+), 552 deletions(-) create mode 100644 Demo/FluentUIDemo.xcodeproj/project.pbxproj create mode 100644 Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename {apple/FluentUI-All.xcworkspace => Demo/FluentUIDemo.xcodeproj/project.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png create mode 100644 Demo/FluentUIDemo/Assets.xcassets/Contents.json create mode 100644 Demo/FluentUIDemo/ContentView.swift create mode 100644 Demo/FluentUIDemo/FluentUIDemo.entitlements create mode 100644 Demo/FluentUIDemo/FluentUIDemoApp.swift create mode 100644 Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json delete mode 100644 apple/FluentUI-All.xcworkspace/contents.xcworkspacedata delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Debug.xcscheme delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Debug.xcscheme delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Ship.xcscheme delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Ship.xcscheme delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Debug.xcscheme delete mode 100644 apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Ship.xcscheme diff --git a/Demo/FluentUIDemo.xcodeproj/project.pbxproj b/Demo/FluentUIDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..cbbe78272b --- /dev/null +++ b/Demo/FluentUIDemo.xcodeproj/project.pbxproj @@ -0,0 +1,395 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 92660C302C486AA500A209ED /* FluentUIDemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92660C2F2C486AA500A209ED /* FluentUIDemoApp.swift */; }; + 92660C322C486AA500A209ED /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92660C312C486AA500A209ED /* ContentView.swift */; }; + 92660C342C486AA800A209ED /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92660C332C486AA800A209ED /* Assets.xcassets */; }; + 92660C382C486AA800A209ED /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92660C372C486AA800A209ED /* Preview Assets.xcassets */; }; + 92660C4A2C48787F00A209ED /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 92660C492C48787F00A209ED /* FluentUI */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 92660C2C2C486AA500A209ED /* FluentUIDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FluentUIDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 92660C2F2C486AA500A209ED /* FluentUIDemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentUIDemoApp.swift; sourceTree = ""; }; + 92660C312C486AA500A209ED /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 92660C332C486AA800A209ED /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 92660C352C486AA800A209ED /* FluentUIDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FluentUIDemo.entitlements; sourceTree = ""; }; + 92660C372C486AA800A209ED /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 92660C472C48786600A209ED /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ..; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 92660C292C486AA500A209ED /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 92660C4A2C48787F00A209ED /* FluentUI in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 92660C232C486AA500A209ED = { + isa = PBXGroup; + children = ( + 92660C422C48780500A209ED /* Packages */, + 92660C2E2C486AA500A209ED /* FluentUIDemo */, + 92660C2D2C486AA500A209ED /* Products */, + 92660C482C48787F00A209ED /* Frameworks */, + ); + sourceTree = ""; + usesTabs = 0; + }; + 92660C2D2C486AA500A209ED /* Products */ = { + isa = PBXGroup; + children = ( + 92660C2C2C486AA500A209ED /* FluentUIDemo.app */, + ); + name = Products; + sourceTree = ""; + }; + 92660C2E2C486AA500A209ED /* FluentUIDemo */ = { + isa = PBXGroup; + children = ( + 92660C2F2C486AA500A209ED /* FluentUIDemoApp.swift */, + 92660C312C486AA500A209ED /* ContentView.swift */, + 92660C332C486AA800A209ED /* Assets.xcassets */, + 92660C352C486AA800A209ED /* FluentUIDemo.entitlements */, + 92660C362C486AA800A209ED /* Preview Content */, + ); + path = FluentUIDemo; + sourceTree = ""; + }; + 92660C362C486AA800A209ED /* Preview Content */ = { + isa = PBXGroup; + children = ( + 92660C372C486AA800A209ED /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 92660C422C48780500A209ED /* Packages */ = { + isa = PBXGroup; + children = ( + 92660C472C48786600A209ED /* fluentui-apple */, + ); + name = Packages; + sourceTree = ""; + }; + 92660C482C48787F00A209ED /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 92660C2B2C486AA500A209ED /* FluentUIDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 92660C3B2C486AA800A209ED /* Build configuration list for PBXNativeTarget "FluentUIDemo" */; + buildPhases = ( + 92660C282C486AA500A209ED /* Sources */, + 92660C292C486AA500A209ED /* Frameworks */, + 92660C2A2C486AA500A209ED /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FluentUIDemo; + packageProductDependencies = ( + 92660C492C48787F00A209ED /* FluentUI */, + ); + productName = FluentUIDemo; + productReference = 92660C2C2C486AA500A209ED /* FluentUIDemo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 92660C242C486AA500A209ED /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1530; + LastUpgradeCheck = 1530; + TargetAttributes = { + 92660C2B2C486AA500A209ED = { + CreatedOnToolsVersion = 15.3; + }; + }; + }; + buildConfigurationList = 92660C272C486AA500A209ED /* Build configuration list for PBXProject "FluentUIDemo" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 92660C232C486AA500A209ED; + packageReferences = ( + ); + productRefGroup = 92660C2D2C486AA500A209ED /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 92660C2B2C486AA500A209ED /* FluentUIDemo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 92660C2A2C486AA500A209ED /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 92660C382C486AA800A209ED /* Preview Assets.xcassets in Resources */, + 92660C342C486AA800A209ED /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 92660C282C486AA500A209ED /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 92660C322C486AA500A209ED /* ContentView.swift in Sources */, + 92660C302C486AA500A209ED /* FluentUIDemoApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 92660C392C486AA800A209ED /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 92660C3A2C486AA800A209ED /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SWIFT_COMPILATION_MODE = wholemodule; + }; + name = Release; + }; + 92660C3C2C486AA800A209ED /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = FluentUIDemo/FluentUIDemo.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"FluentUIDemo/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.4; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 14.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.FluentUIDemo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = auto; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 92660C3D2C486AA800A209ED /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = FluentUIDemo/FluentUIDemo.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"FluentUIDemo/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.4; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 14.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.FluentUIDemo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = auto; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 92660C272C486AA500A209ED /* Build configuration list for PBXProject "FluentUIDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 92660C392C486AA800A209ED /* Debug */, + 92660C3A2C486AA800A209ED /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 92660C3B2C486AA800A209ED /* Build configuration list for PBXNativeTarget "FluentUIDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 92660C3C2C486AA800A209ED /* Debug */, + 92660C3D2C486AA800A209ED /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCSwiftPackageProductDependency section */ + 92660C492C48787F00A209ED /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 92660C242C486AA500A209ED /* Project object */; +} diff --git a/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..919434a625 --- /dev/null +++ b/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from apple/FluentUI-All.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json b/Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png b/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..220736d3fb41948a9411c6636d8e31b39c7e8637 GIT binary patch literal 13122 zcmZ{rRa6{I6Q+k@fWZg%;1=8+2AAL=Xo3@5g1Zdv?k+)sYZBa@1lQm&xV!K7@Ad9Q zb)D*)y68Uj)_J-sQe9OZ6O9xN003YrD#&R5=L7#|VC4VSK5>(={~W55f}RTifR6V+ zLjYvu5dXJ{;G!un1*rK$e(+xavXoSj1OV#e(VtC_008aZg;QO7G!G?bvH~UgOH&eOfEqS}n1>*zYvu zVpfRu@-p)dP7iB-)c&aSfdh_9SDUikXB?JQ+N=dm{$If(Pafno1s5l@&PcNB)-&qPcDkXrq8R$$W!%3~)}y%+0ePqYgd(5r@)?u; zG%0m{w(p#Jp{9%oxETt1^)xw-2C?f*6&=Zb;mGh-dlvKi8+!Q8rQ^rhpIi~En%sq( zY#)`^XhtJC#kLWi>kF^BFl(KeZ(AYNjqmTaqIZ`XEibMQX2OtXD@Y0NQOokn0h1(} zd#X8o=v~z)xBTTD5?w_3qR$t8$tMR7nM;21fVsRhn+XK`teO}|qYzyNOGUp8D?!O@ z@@oP2`lG&^k((Oo`;R+u(uU}E6s7M!GO*OoK4faPT2=huPE}5+5t7oB)8zBH_86d~ z*VlOz_d}?w8q~0WrfK_)-yIyuW*TWEd?LVlT&*lP(CuvYycv7j-u=)xWErhp`H7v4 zji5%RB2?;*B7mm%d=d$2E1VajUCy;Aozo91vZ`s8q=JX%ukJh1c`QNsqT$ALMH95}fko2GH_m9v z>ii=!=aJ+%(|$~3nkgm8>*Ay+%3G9RN7gk%?+1amm##0f>CrBGe+ZD7DN8v;@ew$c z1r$A~eD283TKr$PyRLNxSGEI;;vX5^f?WtbPXPDaI6}G<8s+LS0{_m_eOg>`O=?Yc~+2#^y#a`|htR$IlLUD=C=m7k7pgOvUU=tMeu zaBs^$Ip1WCeV4x>aN_zL&N91Q?v$R^Jk?Rg$Wp_k zYv9zva3WvuHo2mWbyGG$eh((CBsUYINtqL{73_vo6Ycj(negSbw>?_Ei+{#ytH z6B{*xLcY!Bi*mdk-5d${Z_hb)Jm1#liLWjwsP|%(Q4j$7o{91T3f&srT#kA2??v7U zRu7*)s$5suF~Hmq5PTJ$ISQ*_E~Z~Wn-$!-UutDW`a15vN;)k^YC;2Pkmp0YQ<1{S zD;QWz+?5H7ekLdqC)7@Dp%W)$0I3U~9liJ-v-v1?`p6Bo3Rc>D2 z%f6akIi~{j$E9aYpqdiu^l@KK>&cMe^=|BBDo;BSs8XvPL@^cDUc189u`W z);&+J4|-G|kVuZ9)BH;Ie%~q^&-~)W-JT~=I!iO(s2SdE2dIlgAtUv$2uk%nJH

t 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 SpZ*(p0Vv9<%G5|1!~PGW-U0Cd literal 0 HcmV?d00001 diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png b/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7abd13c045c79fb388891845fff89969e38a4596 GIT binary patch literal 46929 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

@pz_a&#(f`R#UM<+Pm80l>QldL+hG+22^ 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

@pz_a&#(f`R#UM<+Pm80l>QldL+hG+22^ zbT|YAih7}nhC|JHBM5suY|EWG* zA&AeHMDbMMjlJX5_TCN-(t(A;_%48b6(AmH7|&`&9!DB7&V!XElGEzTKqf?4+AY7W zFfa%kQ6c=pfb)KBqA3F{!RC`tubPm)G#U@y!pTV`|Diw&?H>ex3n6_#7Crh*5GeE^ z3cvuIG+pwj!&iKqP@=F~dHo>UsY^-tyD~udbs5%!MOytS0i@K>6%CbvlWXbvrQ~7) zUMTzoWEMb*M~kBYX4E`Fxh)8y2=ofT1`Y&{!Iaj%A;5k~uzS{j7$i;s7L&Q0I~SGf z!M_fC-~jN%r{h^b-Kr&R&)T}K`iZs;iZUVVxtJX0dY7=&Q__2kJwopcMIJm_37n2S=}=$b&{%Zi$o*fPf*XsAIHK z;su{z=?*n_l@8yiKoT8jkj2~4U|sqoELNrz-B6*VA(snNc(R<+Afc>Yzf&~yi3>45SbS5o)mXXVcOkZYo7wr1M(7>)cNzk1(*JHBuS*1sS_lJh!{NHKbLYRAi zP%x-+8Wd~>fzv}Y^csILFHRqzF2*#D7Mef+D6o-Ge#t8_uAASpFAvF_1m2D)Hy;5F zrT|^ebO?BF0mKux5B_DK!+9N8y#N8ds?mhC793FbuNe`T+o{Sy?hai#7W0n5M z8{IEByCl^~1&|LYm~kSFX#ys55GG;g;w9lyFpZ&-(8#bJyAYIq6jbqGBl$apZu(;m zz=A2Aq$78Wk1E?Fkd9?YqiGF7Pg%e7?0^_zoBa|#?EhWT(L4B^QOmdTJZl6WPlJVK@L<)XWv5&6@^QWg*3VEgP1AK2lA zHzWiwL#V_Qy@~ulwgp!>pCrJK(Cs z4Fh2Zp>|^^Mn#zOkl%bH4iI{P!2u=^awZxf$G{QjOb;UG$TBdYTtAMH8#9J?2%zHl zq3!ckb>-@N;6RW&ckXm3H9a{MnnzFOBs*fDv)PfHh1R6cp?3lc>P1Ij{Pb1NtZY)o zs$T@OAqQUB*95?4Y2fmH0?LA~8&fQgCzmNNJHccDd@=L|EPGbb9{a2hsrY2Zwu+w38-6x7k!fX>Vm7b zZQm0Ig2X1?Jig6$=BWbvFi<8czCO2u>~n74LS|3OQhbCo~LNR;f&6u(KAeA1a?&abuCW zpQx;i!7FHsoy5fHm&j{N^uDK{XE|!&=+CVXX(*=~n|EW=ZR{lreXJW#=dlAeppU4j zF}||~00^a|PoXK0P|RMd+cITJYiADtIN5RGAQTZW>ON0fw>+U*R%o53JHZcd@Sg=Z zcncu5ap(S~#7~3G!u4{o%o>mqofrk6A1yu7i^!d_Z*+Hi28fLDP#L3q=kZFQB6*N~ zIWQoO!6Y*`kqJLRU0S}AKhz#5tx}|r5iS$#2vI(oT8xQvG2o%M`q(wk7~e567m+e( zpZ+?98vi0=#!p~%n!C!IerzsH$?PAttAE^Ua5pVT(*d_f!2ZZP9#L>LKWcjIKb{t( z8odI7u=sJ;`jkPFWx|dZ(m0f)G#&%msh}JE6Ju#x7@k|Rp#HQusA_sMXgkgUsDIOz z4mcc&6Y%l9x}D#>!>cRtZenO|;{gCFz}Pm2v?O{omkeIY$vX*EK9ZKjxgi2RL#22D zW-$+(a74&-j6eh$nJ}64Pn_w;WDWK8C=rklMID||v^*g|c=neX~X&h$48uX&<#FF6Eln&2FOP-hZo^)E0Az6mS=K#&Q&ElVN@aRL@D2*A*v z0a1ZIMh2ZmDOfP%!AoQ`cwpnj9w-`dylnN_{6AfHhk`b|8J5)IGT>pn4S3)H5Z?v3 zM)&IY22=C_EOadc2-ph=5I#%1y?o&s>NJt(Cz z;UQg}`9!b*2*99`VHtTjs+*w44};8?!J*#mtvmQRz#&Wlu29^z7(+9e@apPH-^GNK zW@)83bqJZPDQ#1Fchawpp$zx=b5(f#HNU&3EP336LvKm=xwM6UBEx)M1sY6rR^isK<8r#E zEbu*WNZ$F!k_Ds^ukrP-6ZR@=cejx&)d!8vUDUC`I*7)$4)<1?X$=I@TVGPlaZTU}gv4wBkY!jRlNPKA8ew;v=ZOcIWYUhxN0vJS8YeJ9 z4+v5qI)Q+TFPzFURqG&xsh~4CrYfwF5uCA{;;aD~W^x)X34gq;vY?wHH4naI)UXXf zWJ`u_(@rI(rQ_0@uJ5bB_Vex*b`pwxg}5(A$aznZLEPpY8UbY~o=FCDEJL3m0mrrp zl*1=L13lT;4*Dpy1Mq|mrvQKCP&X4^OlGp2P<1{nu^(hO_)~#D9sZtA*VVk5=%>L{ z7?KdGQtg}_NdUzOT=J%~(kLTpR?Z$V{P`6yi24w{t*Xr^wW}TEq(NzDx0feF3betL z2DE``Bza3uF`l5~Fztm8zfJfTVMZs&Jj^2G8xSB;!r8)BOfz4gh zue~lTpqwcG#t^h8Pbcjr9iymJw?A~Dp#u(w;RI~A-#jMW?xnB{&{l2w08dG+L|SGi z3o56o>nsZn4x%oO8^bTW6yi7v61yYFxL|gbAkGoxUX(H*ABlq4_B?l@?1xo^T6s+D zp?u7S1r8jT@FpUH(^#QN+hW})viT(7R>JAkrH_zWN*1p$VaR!HJS=Z`?fgf^6X>86P80cF!483|t$iq~Nc zJ$@NzduywI{>;J4>wy<|@#;n1nmyn3YIPd70=K*`Q!6ME`GbK+gxyWklyShkwnwPd z$}}|l5%mc{enNz6$$_>C-~4A&2KkF zoiu`6?s>tl#DsJHEZpf)67s6fz5+k@uWXFjwh3!RY{hq`fq?>3-f2h%KCTTygxiMu zaiTm0G3yZlgS{`oHYov9jBPK*0dix{j(&y>QfLaKqtaFTU|$MK>Ge9K?Un&&GdgqX zbhi~aSl93Vt-zNrU6zL*?%xGiwmaO0PRNL`Ih2l}(70xOB8}0cE{}9dX{FG#;sg`~ z963HEVuuj9r9IE{Kz91MV4*cr4&|NZ-i(@;?q*~gRO{R80`Q$BG2r93A=ErxsQBwq zp0=^b=0i5afnMNcj{?pp#0f0eEz@O9Z@cffI3%Qk#<;b9%8eZ?38qH7cDJeiwEMCe z>zfS0z&$INRMKjJ^C_@bMqKbNf|k~2{GKlK5D>EvgxYz_ld6{4n|FA7^`1oKN(USc zehTm;Nxj!}XPHl`4Pen?!wk%IOdgTu$%Iv=>#o79M*{0n-Bt#JNv3l#ar)VZq)BpP zGg34949a{YZp_92B8J5)cWCy7m#KMu%Z?bgWx59mK3=23w|+eo@H;CvT}V0P|6`a|JH z0d=bp3O+mpn9hL>C)Q|tY<*t}%mTsJHY$+?`V~WR95&np8JgH2UVi%Wfm;9v?gV`5 zsi&AuZ}V)iMkgrx0Q%RO?2t}Uflt~PI1_1;0Yf*}ihY~UndnG#9WRYy0GIBu*z%%j zK26xRj%oVw7S}f9337HEHk=79lJ0q&1I5hx~qv^4>pI`DMqE(wIKkbp+UtEm)%ns0LCo=Tdmr(J2ox@ zZnxVUh4k^W^8*+D7!Jh;aGoyE>fT(!^d%t7)aHa{Dv~Ezhs^~qs=3x{OUiHn{7ne- ziAfj$)iDky;y~n)#+UIV4pS)o8b0fd=&osA?d#}J< zvTqJ*^e#`E%QI(TVuG3q`onMOaO6~0GUt1L0q0eZGA-{X;6m>0#UcqR6#eO%k+09?Ctt?TW|+6r%MOr(u3H>-q$qzh_l^(J=@ z$ewG+8+OWPU<9+?OO^@s(k3+T$g1tYvXuGK2-%y2#hZV&Vv)=cn-h!SM#`7Dk1OQF z{JVVVO`8A4E7ZPzKX(-9gYr872+4fogvg$=D~rprF&9HUt|6GF2gr)^yuI(cp6k$S z!_Eg#=kz_01CpSStI1w&g)oea45q2zGc(G zQswqqX1}?G%I7If{F8apePCn$YcG<_mcU#z9vl#`k8{r?_isZCwqW)`sZ$u#vV!HOu`2T-fJAFTcj}eLh#@0XMZH8GSV+_4KKFit zG~8&(5af6Dk)yq(sS^#g9Q6IbvLA=l06Q2Y{+Bkktxi_jd00~4zH@g!uK1?HVeA8- zh*q=ZoR>W5HZClh#cSAlq)!HL$);smBUSC3dDv@jwC3@*JXFGltpJMtd7oC_{dW(M zF^T;ApT&J}giv!x?%aOXBRUsl)^yW?<(F?#ySL0`j0v{2wJ;If?lsBugLjKYOc2EK5d>p$rmra2UY>%GT@Ey zd;Hk3u(GjTx1Gm`vLG|?wV(;F!XvOe20}vQd~BTZcPW!LF>F8wV-kjV*>;Y;d>{p; z?W+N82zmRm^1yok0;l7#a$C(=R?JDuEyqswLTG}2U~%nLYHr*m(?(`W3bYZlh{FLV z)tN^VQ{^-W7E~;CL!UdDVGtm4{tWAf3S~#zDhsR)0u8I*w=9_f%Msr72lI#7!KzZ1b+xxckV8}+8NaSEXHVOR`|ad9rx(IImnqlujc8omCez#YI3nKBhdCI!jD z5dGwHF<8B9C}VKW&#*N$A(*)5DgD4a6tE0Zb~Hc7OyU?9rUJ_sZii_>@DIGPO=vg?0hnBdDttiB7;c1&EK;zjlz}zyaXN zC!dsiVHt2W9tg5G3w^_b-ox^%cQ(fJ3K&)*Ebf+cjAu=DxX$+FllkN5yc zFe&cPNc3`6LikN<`Mm`IZMOFUps(OGr21-UNuUGf~^^v^f6K zFkqRbC8BMFDUMl{Ot4*n$IHWVMH~-WTw&$u{k&OL@eA8AX7khujGRg#6k!Z+gmZ?5n@bbqsS8?+YF6kVS_`JZh1{wG5e+sDIpFcl$niV` zEd>E*9T1saxF2vyK{eI(PNV?@B$A?%x}Ea;%{iZV^OywV+7HnIgoA$@@TvZ1K3$bn z+N0e9mI-(6D9u7Lvxo87tjVR!eRxB(@1wTwGy_dhe`d zxKbPnAX+E-+AhQHBN%e3$RFlu8&I%qSZ3lU!LF1VkI8*lM)^ZLonvU*W-Go(SI09o zZvRS+u<8eE^bC97{VK%KiF8r2|%tFxLqAXBuq3*U{ zbJe{8MtDG7(A+xTXDT!YXGyT>gJdHby~eDJp%DbX6}fwyGGwO-5t`%OwBW0^yZr;* zvSBG0*njA|MGThus7&N!!MY>>6%29ly3X?JH8VYJN)k3bL7*aS%Y6oJUE@(e&h z0fdT95LgI_k$ra)g23{H zTb|_U;qpzq#0}jhJ66}lw|@T;(|CuurK1K%AMvXPZ$*z_objx z@Wqd@GKozi1RQwKzJXJaGuWo_^!+J$feNN0C>P>dfozgrlyZGe_nhb>nmWw*7K`{s zJ#B^m9zS`Zy>jJB#XO4Q-*7k-3xMb)x_|#ZO?b1R<&vz?Fy=k zJngM*T0Hj}HLu@umIATQ-Z9ib#<)l$#b18NG>kS{X$t3q(Se1*hPpl7#S5mC{N4Jz z&SA*@S@)cMJIn%6&`EXTX~eiu$MU8Qk7{YCzoHR~BrWbE_}EKS$cxaI)~9E#WtCTD zxmb25Y;SM=hFrdO`9OugYZe`Fi2DHU-8m^M(`hjMw>Yi>%oel$bHT=#h6lxXOTSdc zpx}YH0@@2My*AfRGJzoF&wODccvy(&a|DF~2n=M%M$_I?sB->(sVJqj%`%jkU#}G~ zoM{N{Mx=wLS#uUm_g=x`>J4gdZ#$=Q8B}Q52%IQVrX9^+Xgi!1p!U^!vY08U8*7BHMR zV@%@7rd@8u)AZKXLh;MCeStnmhY=3m0(i0?w)tW$tOCT(1FtqJUvBI>P!^jinu)JO zNT98r(lM}CBy~y*e^UmLT%QhrlqP;zxZP%^G%ara0rCj1nQWd3eP#s#&XH+)U{PS2 zvZYskVu&j?8Fd6-((=VS)V_GTn<9Am6%%;tQ`u(+9HSCPLz4@xr6`Yy1{Mz$X|!Iu z03q$@4gw=1LZoHYB}k~?GdUBpiz|Q(mk-fLF?bh2JkXf`0NRC9532wy3F}AdtCfqG z(*M`A?N&|8CRzY{i#eZp?Utx)9b`Co00>JJXO5qdHlWs|+Uy$KN^@ToZXTyRiXc;@ z>CpPk8WHM|L|Q!zR0hRn`a4HLdL%_VnEW5XKm)S(f||+!#}GpUv*PCb3`V&>U=xHM zguCL9utM{B49;Q2(*;}@#VH)OpA0b_ak6G71YZqh?OTau#$|Apkd}mq1-=x{7863 zAM6=rWD0;AitJ1}V6-Lx!1Bwlk=)tt?uT=JD(22mp3%gIE7E0cDYvm3EvT^~_+LF*e3 z5M_;-g1b_UhQw8(nu5`Ju9nBHx5|r-=NJYj@7MX5Ns-#r6NWxp;HF}K+*V8 z115%aAKfs}AqN<2We_aGr&po57xyk^-unld;3%ZvE65#Jy7hy=#SSz`K)C~Y%VgTl z2Glx8z{y29dMxg<0eqJyj zqcy;k&csV;ZMmy&JOjU#S|=Z@(la4L-#N8I+holO!oPg(Rcf!_3D-+ z@~uF^`=kR9b)YkXE&a6s_!jM|ih8IJWL#QPS`Y}ZR_4ZZM4RItfkB-D^$-XxkMK(Y zn%Y0tKFU^!mT%?u_jh;izeaVKNpIG&w!JqpSO*gh9026A!awwVXXVu5b~{<0HzCOV zz3m%RFlDLVxnw9JV{R$t0i`0#*Wy5iQhv*n&^y1?l^$VxU_ODTx-mXiq#tN_@;6M5 zNz^X@RoL{R7k0J}ZrD9BxkEUy4r4Ma+{uU2s*#R&_o#W{RzEGUbU>dn4B|5I^max; z+b&7vQN9!;U41a0g1Dl62a2j)GZ55^IE^rir6{X>NeHq$(9GB84kXYDU~*fL3F5o! z1aO087bds!Fx<}P^ZWI(krVTY%+3X6dT#r@aU@vuRNlFMUiMa2`(6e&z>T}FcRK-X z*@=+8>`iqP^dvCdGgJbskK#nt{k5mMX8@U)lZnq+Gb11M8a=%opiGPVx=XDG0%Knxu7q&9 zkj*qNwD}k*0<9~4-d+egB@l4OWjhm-VRax21*6cD2LopSFl=GQexguD57Vo6!{3`7 zD4=$BiZs4}v@^?0N`4&3&B+Ub(ny}cJ!RTxXr%x+9xsDwSfAb^a5&y zR(hD6X2ATY-An7i0E3~4?45+DBml^+zVYQ7!3qdB8^qUdhC#SW2fYgryKdQ(|`aWALHSr zMB?Z8yk9%X%s3*Cleu-aITPzDd>*El-QF(`+~kt7``pnwmy}0#7@LhF1D#$Vg^Viys#R zS1k~iRdEHt2{s6_)6(pnyGmbtj#dGU0ET8M`N+n*Z%aH4C~lyOOMuJST#j8>lk=xf zANYF!F&zBcfH8bJ^m*%CyBQd&Ue0CNaJ#dZJ%6m)co?-(w{TWy{hpa5@kK`DWWA^R zK7wtzhxcW!E}xJMid}Yv=E29ZZOgE=Os}{=YU_vzu@j+g*+&~+k-g+2lwLxU?hV7P z+y*)j)3mvL%tB~EWjTYkr8Wq*0)?^=Qb)_^9|(Q{+1evs3oJ1SwrJB3?=5m3$xO~j zG*n9B%XG49ew-0NZ~{$Pm?ZOpX=*H=iuy6=Kx0~r@9GgH8uT%f%hD=;>GUt1Eagl{ zDf-c+BiCJfhKGr^QdAcGwDAZ%4&JjxGd&T%tud$5ckaA5d;rl*xq9_#n8dsmnYwLe zRos@=#_hmLGwm+U!_Cx>zxbtJFc}r_JJzpYe|upPa&C*KKbIHcEm*>TIB9fz&l?$^ z2~BYY2TkS<1W~W?U~QkRjjVgqQ<+>>_Sr41qx&f=glt`;d|cFF?JM3_F94wnLFg%d z%kbVF(e5JG>uAd`9*LO;b94s5r%bbw?g%b;-z9-|F;2F%B4i}HD3XA*kNFX78b<(H z5J#S`>_Q!VFje!G1JVo#!Q}G@4X2dhZ)dUhe0+;`LRG^{X?O14?>-IA`S` z9sE`WfY=gUK`XZv7a1O|QAozZs32mTc(BoNbJiZzr_WmGr?bw;m)+&Vu_(aGXe9-m zkv1dX&sc6z-oWW6+3G+=l<0nY>+bKgVG1y7ddJB2+NK=FM?r`V&jM)YE9V>9ls4`L zths8w@cfsa3qHZ^{$w4MRh^@!z9}HER|3w8QbCVlUy@|Na9dcFAJ7a@Gq#oSGK|@5 z>rh^rV-U(QD-{H-)4=6M6U_&kgOm~aPij|IhTC9N`CmM1ke&9=K!R;TJW!fvLFAMb z1s$#v(+a}|D?(a|M<4Y1yK600hR-Zio}S(TLR5mP_8C_I1k)G;dVb%Kl|DD$UXoJi>BR~Z-+&u zIvxwu1V6x64Zoq&rqxliP*y;0XB`zxj*Lv0Mlbv`V{G&SCvDHDkx<|@505lcPXqGD z6k9f@jJWq*bWh!eAF@O!%v~97{{T5bM{6m+I-GtgEQg_d@=Wgh4AhrJo;FVFS~?s& z-){>}o0o$^G}vcBMY;BwEE(p@%RVp`gv>+(XJk=5@|2%y5;>tH(AZkeU}qrogNr&G zNR;3K{R@{n%h_)>&0-l>&sNqaO}*K)aSOm^e4kg^Ua6>MhJljqt@s;3Z6BacV z_jm69dVJPT)6#L@hypfPYIb)WC;jBN0kyzszf@=trKi&ZWLAdg>%~}KDp;VnoH6}& zTXj>rN`@i@mh^|)N{I%*KozXhr|X=(*ZNMNbxAADD|NS^GFP@lQWYgLr}i*1G-VoF zJ@6DdMyQ>P9%<~17Okgu9!D7|6tt}a4FrUu4H(yz4ZI?d-w7Y`7FJVQ2eMDwiact* zyS$LkmInz0zW_k&gXPctySa7ib5+fY4O(k=12Fi1NXI)4!9Y_M)3AUIJ>#M=6%w*a(_1CP4B!wfp3!O${Y(oMW zC7=Gw&d;B)BKHr?X1Cmk75IU1KS&y*y^O?bAI9>a6ybDkzr0ikcnJ_(jl@CP!MMxN zZ&Is*5HD5gGbsH6tjz)-3AA|e_G@1ZbLPd$q*^Su-e^ueve8^P{+t}fCLn9xL5Ij# z@goK+b81&Ms>RN1(Nyi~;urqq=fAjUmams1)|0I#l4(NsG+n9IhV*&Q`w4wn4iC!Adkm=HOZLv6+RxLw=Ab12g6V{|Yg1G*c1txC;a4E;$SqnTYtSu1;tN;{H zq^nR74|H@OAZdjmF$+4k3c4@a=JkL6($(J~ZkP8KJIhn2*OoV)`&vt%{`8^D|GTcx zA%!Qye=mHH+O>PzVfkWZ-pX=O3omZnzx{Jv0vH1`BZb}OpRv|)vJg62+R@L(xmg(% zby%6MFpWoZnEZ7o$dm`!>EY&gWJrtj`6NY~O}`H%aRg35$d02A12 zdi`T`1XfvA7zoBCxFniYKpQtb!LIcWTsq?Yft87z;JYQe@>i3M@V2!d%9rvU;!x`= z!OIm1t*aGaCi0kWG$V5Fa%jN$z3z{|zT+#xs=$l^QbU=F@gb|@*I)k9KW>AsEUcX` zxL#ZGY}x+E=^qi1LzDkQT?LSvS8ocPeyH7?tS?vBHs?#0`K>o!d-LAz{eRY{NX$){ zemRE7w&kK_CV=LUZVdbt_$_aGZVCkrD+X7tGc8LklQoC&I|I|`bDUPNH^B#Q2@>8{ zP-a+wJzpgKPugig?tVAb9$#V--K{E*UGVW5DiX0W@tkQw|DOS{Fko3^omq8 zYr^7RwRd+pT|F7506%$n(ocs70Fim)3BhMp&opbx$%46=ugGMtt$6l3FMs8~Rl?-2 z*7WPjD(^bq&s&7Mf878I&ec>q<;MgWUA*A(kOn=g-la`kfJ{>*l&k2ONWF{R9r#*W48yvKc(5e6+xPJNNg9is(2oDvVvn-L(Y z5(LOICsA6U;~z@Q$AN2l0L&$h{CmkiHl<3+RZ80e4}JaU|!VashG00S(c()lrsH^ap`Tg_y8x z@$@LCd}W(~w+GV}DD$8G_OJadmMWh6wOi42KB49O=HB)8#&Z`AP4jCwTniwC%THf! zHcx+SxwZ%k8?xM6%=Y%874X7qFTeE4?N@)Qcg$$&42?qKHL~PizxSgjBI`8}KJ$g- zE#E4`I51j1GE@azS84;?otIi`MahUZL~|cBw~IF+gZK)!9~TVdRtB^&`Ol^bxWZrz z%$ddx4Y6#_LR@M`90U{yDT$ArONmSWKuN4ImKUF7kS!zqJ_)d_!Wyxp&|fs^ou2{n z>#qW+^q@L${NXQSy?s3|-MRTw&%gHKOTj>%wUx};MK!y(vRu;Ig=KsJ=&;uRH5@ts zgup+0=V#l;Hy>Kcbh+f|WN*UD-KLVAU;NUq{>-A8zrhs{T>sR%V)h8nWE$Ez2o14S z!pZp14X!eZjf3+MWs!b6Zx4-1`M+H5evHF0aeNaEcL+Ydr+Y@*&VX4GehzQeY7;^nf2Olv6t` ztF+KuGjyPMA5dW$`V9c-xZneZd?nD@6r%vzbaP7^rr@J;}LJbmeDd10H{)u!sK0H#Tp1}t}9zjx=>uYcw0UmF`KV|o~j zey1G@TbVC|2M?G=l4k6$ovlO(CL}BdB1Hb0tAy0VRS^7Ojng-tskv2 zSMFE<7S^)5gGrM{9&I1xwvDk+IelO*1irBHm^>|=p9ZXg0OHF!U2De(mn9fA9}J|BL@9 zECFp-b+xmgW^cN=vPTc!pP$|RzV7Y6!#4k8cqc4?7&vYXzW4IW4bf~K)c+n!yBC~4 zJE4c$&tCi7e;wvPZ}cgXX2-6hxvm8cs~Eo>Qv#|Spj>fP`&zFlg{^4)_^3%aQ+iu!+ zr*5mAWPGq^U2f>+&hkuqY>y|)ovLki8j+pX z?%samAAaH4|4Y*}JEW?J87;-vS1K$` zj~is16VM8#>}7}cVxxo#kP&x|{vhbCzgG6)1t?doGajMuenOu!Lzyx{OUkqke~mOd zfB%c0`#-;N=gpf-S_A-C?t~@r-FmsZcV??zT)cd_iJt&FtoQ%R@J?9(6xTDO6>$C| zpK4~+R6k0 z)G@}8H+w-L2Oh3TS~bkU`(!fWOVBzb0fNr^aR*`L+lazg6~JKY(@bt^(}70i`5c+I zD*G`)cdZ-SLWMP8=5>)z1>R{^hG$TjffYP=z*QDb1=z8Tfv>+vyH8QBFW6M{8M%!= z1$ZcUhxlKA;dlP}3pZYTF~n`x)yh^Y?e_A-`fk0pyL{x>tIN-P<}>ez>965%P6Zwb zu~TtgA3OL%k36z$x7TO8_jf1L%@bkSlP1drO@HZ2|NNKF9y|5;qwhQar@BnKo=;=~ zCX~PIBT1-4=WnH1P6TsTadCG3KmNJ|WgO)*1XTM=VK$V?OEe>y5TGUBi8eB(0tDt~ z1wqOn0&Nq!FB{8cL;9dJio%Z@S;~HDT6_RMxxGjOd~cLt0Wa7MZb9e?zyR5X~|IT=8HFP{Ow=-tuOp?@PTddvbx_c z=fU$o+gq2-#idi9T>jy+e^KOVqQl(yQ-*iU0*E1kz?Caknnzy!q2+G7u~<8Oe0R3p z?kt;jE6ftM=FRfn-}z_%=)ZpHjq5+1Go@egcAOrNBI*}NpQPeq&e+Rf;_7Y?6R04+ zGG>r{m8!6ihe`O=N6nZ9Sbs}I4 z0_O3c@!}h={`7zI%m3tWHO=yV+csNGz1*5s)z-%9vDxldUSDjz`p7am%jq2s?JZU;W2VzjQl+fCwl^lSy-%0adoBoc6?tHT=R6TX&sd{Ve`RN&cbZvV%KX#laCxXN4WJ}elsqnEs`pJLo zPk-Q{NB_7As2v5af|{7YoMi;&mt%MWhKG4=g@PJG>p{kSOHKykuG)c9>vFUJqpCm( zoLrmYD<&ReEa!Ag!lc`0CA~ha!k_vnXwHubt{;J%7Kp@LJd5qsS6&BG9uzF0f%&We zCB-u$8aNL@@w@i9emtmu2sk?aL<6e@=w{<H=pdKskS{JL?X)eEoQ_?iDE z2){^kuUX1nYOA}GdVY`UwQbpbeRq3rZ}H@%rp1o>&bqed?dS1HkD%UNM$G=wON!{i+Xa6}A_M z2n4+7i;#n)f`nVH(;cps>E!S*y&_Wuv5K$CXh9eJ5x_&L~BtI zS7V9V?OO~*C%%JJ!aC4617@tJ|82tZ_HTUkx&Pu9zWBvo7HYSG@ZYOf=*{IGZ*9{0eLA)}Bf2$P zoz2=G{p){y`A(bt7;5?!hp;NZPkiu?%a>=@X)};zdv(D9F{P?RrqgMsbYHyr%ImM+ zzx8V$dib&LsRIaf8G-0JeglRkm@~rwTaFJD~-&0kS+{{`E;RqUpZY7!w^I0H_?82}GtWFDKk@TFA@u7+&+oh<=bE+lK22n$ zJ54;ElGRPJzrXX;dy5j>x1B zlG{wFon3S>un)50Tj-nSb;6m5;Nlq!De(nk`Gc2*iZ%^?nO?d5`p^B{U;2f=di~DL z8zKIF=+j+kWs7BbcXwsJeSBSZcbE6)Pkiu$%Rl=!p8S>ze+=Jp0EpqUpZzR<@Y5d* zAn+``{^eV3H3^_e$K^iXlS;UiW!-%qU~jpz`0ZD|dhOWi`kSYZop`L~-Wo6fz~vgy zKIM`h4=e}Pq~n3b$|!llcr-E8*mG|_650C#DvYQ>NxYyM0D%T00u6^1j%h;#h9vB0 z`BVjf2oMIr0>5uw_Qy+(CyaYk02XFNfh%9ZrD2!cdcM-E0@_p{_{=nLD3+!h5%g!E z35rXwD!AABzk2OA|LV_u;aC6B_U`OXm;`JEhP}%?xySAN{(O6H=hX4lz2#)G`2I&8 zSw0(}>xX~%hri{*9|P07EAY>M_Otb~U;EmGUOT=rdxTauXDb`6OpXQdKUUYP$LfkV z0w^3ib>j5tAN=Si{_x`uUHD@*XN?1*UTYZ4U`1rCPhMK-oL_znys|~@qT6znU{5)%m>0YCiMHY;{i!V z+c($)z#edHd`d9n@zaK+08bZ+&f9bZgnZEOT;2<>zxsE7;fw#`zq`G4|5meXcEdW- zRwK<8E%xqL(^Fd$TJAK&LHk@702%wNW6Nu0 z@ngKNTGIp%;>WBJeddI9zp_!#*`x7bY68Mp(vYa28I&huG=RQi0b}E1>4JT~yYt-N z|CN9GSAOM7zxk`P`TWggBU=@<_d=d~!DPMHw!BS?#SYQxeEr7m{M-0PmhU#&2e{d9Hh%C&lPZEL!{*R0a<=^EW%Y)mKhhDduXcnRZ*z-B$+wVJ1^kDh(_ z{Xg*0PyCzbPM-c$r{Q6f2MV^yQMw<_)ioX()oF6H0LU1F(@vOfOK#jpfE>;bkWt6a zvX5}4wiqJ{Ig4OyYi((sYo|;LqQEmbFF5AMGKst}JurwD`u#LN6>Ws79_ZC~RgI)G z^Pk3n2Ab*GI(E3ph^XGafA`nF^y1h4@xOTP>Td;i|16CA&a$QLhT0uzWV@R3R#*hs zT{O+?d|mIIzH?!D?Gm+5KG}WVn~nhB>j?3c$n)3F*DLcI^{>DAwY5{n-?y@8WPMX; zeaW=BB9rxomz!MG>lO1_RrA{8@4N8u#~=Ub51v2u&>vV`Svg~;4tGIJlSg4SxhkxK z!90%&0I0g`{mVJsHdy5|oPuCJE)?yEc`1;0G!!N;VOv$eIct5(Gg4@0^$=)WflW$8 z&T<&MnOXd{kiN5eO8Q}?``s652PV5frO;2;C-Jl}P@@NMIh4!$J!hIPmbY%)zWKSI z|Ftjt+?zXZzF85^8lm0rc(+~7cN*fIY1M8osorT<+udrmF<;r7&%4*(FI`%`Q*ZWt zBjH^S02i-bh85 zx~`@ldGy;p_-*GN{piD|&VKjtwapJZen2LL`FtP5Yh22&=CXO7sjw8q3#M8Cr6xh3 zaf}B-ONB5nG`tjkLovuJg%%#u${GwGAPt5=-3+T0AV3BHCGCnZs@<_&*xy)Qn+MGL zD@DI)ydHE4?q^Yy03Gg|w%y&H?Y(^a-o58ux%K*&{>5)!`KRLg-L(7YQSSvkCRZ!8O7qFubgf>KrrD^f$!a6Zb(VU4I;p0?bFf-hGzok# ziHGuk&$nOv*dwP-Ken;5{=Q>tn~$!nOwX=PSI%f%4jAm3$UeVK#Zh9E({f4&Egx4b zB8Bp2OWXam4>D^(0ELETt}}l@NQ8<$rA&x5ZjL^tty8{H%?rXw88Fx3;#oU)h_@Zv~-$z#bF z?;8p4dH{$)U+{VAsi!KsN|Q5>+~U>Q*?MPAD|hd1t%LzsTTW$lMe3C*Ob=+nE5Q(0 z3x30uhO6mH#VbK*Cfvw0z)5@wzG{PSu@1jHVSeoNBkv2ogR?7>)y-3z$Ih%wCmYjx zx*n{E&6RqxUQg=vZr@%oF@g_beG=mQPC=oS03?1Bka&!!vUYVKV#4|$CMGJi6rs~i z$P2E;7XrYADLn=N*tQnxek+YW5b7em6m4_)_h~~}DD-Q#T;8@kl22Hj&E~h0vsQLz zvzSJf%jIqm^xdu9?Ki@7QQq9TfBWW}x8Hc_)mLu?ZU~vHHt<7qGzTYL6ntI;i!xaD z6n_^@Rn6-~Gox7TqS=$W-Q~q}-mK7UvEy}i6~;X-$oKfMQpKZf@N z0APp~K>z}dzJcvK|8lZ=?qq#)=grA{CaWxqmFfD*wBDgrnN};S%gIzG%avKM1Xj47 zO0)(@0+7ewzzJclP{o&LtEyWKVTqgUn=0Z$z$t#MG~J5dPf()9{o08e5? z{o-SCN2IcHKJL~&d&vk>q~Hl?y7Id;5&xoP6~9Q-bkqor>yV}HL_qXePm@$;h}ZO7 zPePJqZcj9EW835NwlkNi?zM{a#g{5P=v)J#Sv}SII%3%|rlKjeRnz-bx|mQ#q`X8b zFJ;1Y=cJH02Kp5l?R7Bmnvk`wyN`IH1p-^#_Z(Ua(;I{U((Lb^8CuD znt1Z{)4kSz*E#wg6yC7|K@KYD!6M;z83}&pXYT}7`Py=2xv@OC`Oxg{-u=mH@C@v< z)yjR@nNEV%ud3-Z0QaPoNthY%gc_c-6RIa2+tu|nEYvO|(+1%W9K>~Z9VD~q*d@Y5 z5RNE75;35YgeGa7R^V{4H0;f6*$Gp-TvGRf=cJN(yWof*;y|P6{&+Hxc}N?}Zo@yF zKH@4lCW0tP&+VZZOi9wZ6~@pY>B@{?)yKu=)lFm2-pO-NQ+4+|$UzX8*oY`ju^yaX zFJu3h^1%Rem8^Il1vFew0-nXK+S0eBYfb2EY(^7heIjl5tV!(*_16?;&K)AOeIJ@7 zbu^7&5PH3=n*L?UP(~2Ht}js}Kw-M-pBap_X~EZu0I{_9V_tLOUrh4-8VP=?6NpZUyZsvo=b zWBj$RJv+IxeU}%r>7+dt+=Ht;nQz^#C&$*N%iX}elPLVvWTl!{OPU0oAoVopsvt&n za2Zr>9mOuBYkC0a%I9bw1g7k4mdr>}U;Cc}+?Ire}Kl9Bx3aAUJJQu1yrGpw0R`ov4NS zLYZwSJ3Kf0ID(t>TR-|dUAb-NA))26kDJ7sD1Y-lZ+sqvHMA+vV42FV`sI)K+qE~9 z(YF1$&G9!ri{4~iP}8o3t$mMxQ&n6DC||;^)r?bh#*ZW zrtN4OKs1hE)pq@uN5BZGKgLy&-~pVL^F`ZTN5H7-sO>wmq+Q_!?ac!Gb2H(pnKdiR zDF-5~ESKBs>&r7?9ucOU%h~F!=Ju-)B-5BUOgQRLX0R>-(}qXgv-sPC%QV`qK{x_~HGnRVUm+46&{L zN0y8%oWP=srv1MejTGhRTx46avj7*67fx9Eu`F}*duPxFQzN=BizhO9EhR74T_A$vT%^RoT2>C zrMTer%5-=0mu7i<+>FK+pIQ^I>xE13--XAd&Hp5U|}!?Za(i);hVz0{y6b(WXw4s;bmFc}mO*6LKMUmo*+IE&<&V&-jZxl|?E zW4&u-YSrYpUD-N0Y2$QDUgHEV3z4dov>WVaXy5cUL~n0X+Lu-~%N9n}we_R!-@~as23f7C}w)ovT; z>14*wOpdJ}Yiuri6c626%6DD2`2I<4pK^@$rmKr5^R4~bWmuiahTi>ZW$aIM!-eaM z3v=i*{eO!w!G4=d?l;%velzpw{QMmAx(ZVv>Fn%GPUASurqb!@=_rrVJWADaxtveb z&s}{Ly&m$Dlan`XW0_sLci5V2v+uoq^-|~h;KQ~jl5M}MPs4g&o;X&8OYyPIudc5A zv6u6}{#lnhFXDesApat6=@6zQN@2gUk`3jsPJRqUbcJ=Hd{m#t@9)$7 z0e$b*?}>4zyo+g{u3Ti|y7&CMyu8e(`YzD#?GDGv$;8K1tMNt7i~Ubwj5+9z^!|r& z_<_RB4mNj>vpx3T<`&q2)nF?^LHgb+dqA%qY@2qAlp>O?KpcqA z_TBCBX4hD;HMe^^J8#~5yC>l9!NJjsJ7+rbL5KDZ5r_+rlHnuNb$pKu<}{)KPQP{X zcK_~;Xa32DpD!OBm7}f3vVvewPIaS$>$mV|;Uqvkqv(JFh>GDP$msW{!>Qk^_2G6C z5o16Ua5IZFq^_wra142rK={bLWO2Pv+;8NmFJl}kJ3yEq17T8>1+m5Eb`QnCBaDAR znl|k*2}~lg!G^k_7nUgl$RI){y=x^l_qO1Ap6kr*^bt>{=*AOZzRb-e3(f#SdS+ha z*ep=px=K85s+;5~Hvk=DDT#z_77JS9g)3%~b&`(g^?5Edt+q<$?dN0Y^e>chFi5R4 zh#G)3SkotD+aNC549I^s=dtbXU}LL-OwNF5msF)kNdP1XAs-;e)OXpf88~w7RR+bg z4IFDzDl2Ko9$4{zBNN23O#r47iw@z(31rstXp6*MYOypK$jZdDIs2fJ0c<^)cV08! zK>Lmoxn}A}5Hm)dNUS}{&hjR;-^YmO3lg&HO!7kqy~56Y=6f++Z{aCPlRUtRF44V0 zHw%Q>9PQU*6uSfHu!Qi|rBeE_wI?fvSSWX)aiuT$)qX__D*7%D+pg(fh+!w-@c>Qc)!k qlasF81%ockjrB)YzJ7D>=JS7)HVM@{^tAl|0000&7)JSkBS z6hZVNK_To%WOYAhKeC(M>8^Uduj;N@^_GS=HC&;*0`=c7(cL>)I zU;rvl@>*~tr2F%)Ub^&Insj3Phxx&%fP2qBE(SL?dN5NJaH{fv=xl|Jo`xcV>mayp z1mBAQ1%fXENz`X_FH(|tvp`<0ldg4I{(VJKyM=Cm>vykSS`hU&ewv?uW3wa1Q7x)* z`i}`FV_*O!8R^oh4gp{gY}7{sfdWX@7!c%l=v_2NSnu6K2VWlgh5Zh^SlsyW!FyL9 zmG8X0-fhXEMf{Q@LL^@UPr!{wcbX%cP#wB0C<7G->-dtw{nNx zIsfh}JB9g*GO}U0M^ixJOjIEm29-ianu|0dfe@kpk>=2z0fP%rGDu%TL2SJ>Rg(q0 zUXrE3=~~?85c6cixiFAYz_nf!q|mWqWT81S#D*Ok<#ho?53f%-ATgkk2X^mlS(C2v z5)lb=rz?()EjIHC#KORFG&+Hevtcq;lmHX6$DkfQ0$0~9dnQoFCWqBHgLRS@vlIq; zdZC1rYLY1l1Y>k90J&GAPG|?1JU3XHOoTH+ zRDWqHuU@+*;RP*7<(b#)F_quM;5f-N_>Kk)qOL1WPeVx(*0&-2wE+-D`n+*abv6}Y z(NzX~1_BguDnci*4KO)429wX7pc1n(twK{F2{kJ&PEAAc)Cq_iTM(94DGb5lY6YGu z%N$ey7~5t8ic$g5dtm0qh??Hj32IE^nG@yDj5J{$v0?q)2fd@I{H zLqnH7W8<}muZhkOMbJW)E0uilrhF72ENws>Zc(T7YQY(|&i=YK#AO~MX#1c7VEP%v zs3OYgoN%>J~^?Fa+duH}2Co9dexa2!Vx2|+TR zS_HlDc!)51FofRbu2hJt^a19!^BQ;dV#`2Fe_|prAVP*QL<5Cm&Ip|&Vs5q%^)r2N zyL;eQw*|1O@@>cv#zBmQz&ua!Z&^WzVDS$T+8$xnIrGVF*W*3HfuB7NK>fiF_W&0* zDSXKvS~zL_rfQvN0BEPwuICXO)R@Y%VIXzMmf)hp?>O0LJe8^Jg#8K9Nqfv;EhI`i z!5lb^oz#e=MJl+o3FQokSQWGvHry3nW9mE!ooeFJHsH#>8sfP+D;&&{v(xke+iXNH zHh_{LObmpWIj*75q@`an92U38Fy%l=o^xEFrC(UiTObcpc@Cgbkoo|EWqc}`I$GP! z+AIH(hjD2LadAjplFF~c#$8Hs^O_m75RVcYv|#3F5}NmrfzXXZLx8b;)*R7zYVSa6 zpJL&?HYLH1*f1d8N3?m%iBttSh%7?7ad?{x%0RPox)y|=;8J7Hy|iNq3@-~#6Ohga zwv+39OJp8`EDtjF((YB=Ux8wdIO`UgpoME1yX%r+LgFPGjb1dvwF2dyCTnX45dVt- zhk4Kxh}SIkC7qCW51{(>Arw^S<}iSFX7q9KsaF!^Zt@UG* zzxVWu2%Frv7?3 zQaa4l9?roNyy$y%nJ_F;G`}4T!$%*yetDJW{{f2)KpsQVKG*;N002ovPDHLkV1iBQ BCG7wJ literal 0 HcmV?d00001 diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png b/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22b323cbec49f3629f5eb1f0b21d5d21c466ce95 GIT binary patch literal 173077 zcmeEMh60q#NWXAsx~Tozfv9Eh3X{pBOzIHDUsK0ssI&tf8)K003bAJ7NOxasP#D-`R(M;hCGd zsRsZ+{qlbohK9j^7ylkHJPgzn0afFShyO0v_6phx06k@Pyun~TwAtjY)L3XswM-c&&w8|Qj(HVnYB z%F3{spz5=}e0OQAGgqGa9V%l?15h#O!Fd(3ynbh#E5)gsCxaMC-Pc#9&=#Hg|Ly-U z1_dvvpHq|16Rw^k9UX`5FQR}y7Bc;~TX_BdwE-{>DDI!L^59Y-C!arMsA!MZY+ z*fSIzHcn8J!994PCxg#O*r4kA?x!twCe3aJ7L zXMSd9DH-%~7ko6!T{6*qBVeAQEBD~|(6cLWp;XH9{3-AjVLvAMbdAszU%dfBv_UAu zo9l%=?!($c%@+4<0?23ZHXOPD%5$mqneg`Wx)WcvcQx;1TU9d2J3IF}Y?WbtKsAm+ z&S#3R42Mj9jW|E>L;3>7w++ldcO7jd?OU?Drq$rvnh7yo%fQ-sdnu6IQ>t?=sHW0z zPvzME3@It4!8uds*~tgLD$iTz`JvUaqJz7?R3DQxfGTvdM1&cgZPPGA&^ZBaoDrv^>X+lX#oXKD7CN4osjo3A`>_uJ<|dtgiJ{#pCsHvs|Iob+Mt&$~pI zs;{r=#)?M3&dy4$S7M2km$1&;*RA^phb7ykBOa&yV~z1Md(G{w?rIOm4AXNrX@`#jgRs7%{8TGyd2ZwI26mzUc+ub2;~S27#!52lI&5m&qa zkxH%Zf2)|kf`Q&14xAnC?d@r!5{uM!|I#dVdhBEeUKX2H>`yfmxg!TJjrM4)9zK9i z0|QRq2b=~e!@$Q)_e-$EK{Yv0sMSd~^v#Sk#wqwH|J}d|W8!?vLFbz9gX)~5YVOS1 z?PG-phtxi+V+9ObEDpb57e+{D^Vmf6O)5 zSuS>rWS%>XOmDUQ9Fe*dOcHpn zOj~W{QlL`ak00T?4Rfw3`Dk-z_^I9ee$!PImEUe0?AKfaQ{K7PMo{QcgvonUrn}z{ zXP{NO<=HZ$pRWnee&)1?^eOyT+bDoC6VkyN3JII!+Te`|ZXu4Znom&8T%y_ti?wouMJ%6lwSHWW5^5>e* zh&Tf+9+{-Qe;*#r&FRZEneA`(#ZZhje1W~<6;Fp{bkx>P-)w#^e$sJny`_gZW$)=c zYMlGx6|ZyZ-s+5=E_c|@Noh2h;T>JKd+c?t)GbTViN7B>m@Dd_xNN&_bGGXI>v`*B zA_lF#d37fHwc3-sMo2BhU773!Ud*h}fzv3ZkOWe+VT0`@PGFDN2>^=o$j`Xo^+^i? zKu1W=U9varJXEp=RzBs7-9D!D=f3Xjc&gZ~^J-!_{M`f?ZTk7%F~l#xnTPIa0Ek$4 zs`FQ%_Vx4db8OW22yzlLTXM*jG?_bb_&XO_e_K^?R5a@K7_=5aZx&vi=&eF--$=24 zdZ#*Wn%lQFRpkX5a~_)c$z{B)~0&{>WkCXrr2M^`cP`d6~7KR~|#N*rpp) z%b(f`ZWQ-SR#T(8!>O@fSp4f*KAibEDExFW&3wko)Mz|O_6LaI0{`YE0fnfAKOfAl ztDJ}@JZ|6NqqWJ`!GQ+NX#Ew7j+SJNNqGj@+li7}$9BfuHd6WhjMHIjGumM`ur_35 z*T!$}LU^E6NG7hLq96;d@m5VZ(`|p^QP(6 zrTt0(^aQgyopx$OdnM}ctN-TX8$179eK(ad?&zTOrgCO|1<%<3MwKO`8C00CCkqkC zJC|$aP8!#kR9ASjnx?d>Ev}Uk+N+(4<)&VS6-c|vc@zwcIA8YbV)#LFZ;^$1FP(kf z332Go8*j8(`0>RYiu|BCld$mGS$w$TVuE!Fsby1mpOL^lb*h>GopGdvc6A=IXH@~Bbf;+am<$E>JD3WH}JURg1xxAB8nLfuD zc>+|VNY}4rPcQmII931`H@rHqAyU%D^6za92AfhPt+2J7(!;~-23d4gSWh>%TW~Cl zJG4F>D}U*7=4qTHX+zdPKWV`W+mar`WOr^DD@gm4@s|u>@tgge2!C!^j;q~0u~aHk z5${JYvMI#o2`#}h37#XF3=%_bEHTqtV_dxc>u4>z)$JG^he;QHB)z-eI|bYD@oZnj z>D`Y-$9n_RQ!xUC{0FR?2iW!eON>VrYoepgm$iZ^(n zWY53*z^no{BfKlNqRqjF;XfNBp6E&KI)lY58UTN?EIqENZypcARR#A6k1|?MdI9>4*H(8NgPuTIIL>G{P4;Jur+Rv5Z-W;=3 z@N`1=7K6Mjg363TykDdz-Lg^;dt=%H&g+-xf>$G#KW}(`GEgg!x)v){vvR2cBNyjwguS6Bg_#%66VBGb-$i=E4g<^{k=gAR+|?q* z*g;qukp{?CNer$5pQ1QW9TLxX5tX$8;111^_<*k<17N3yl`@j2;$Bqdw z>cQKapw;sWsSK+Z!|Q|2iQBs$$DBGp)fJke>)PgZjz#^Z3K&J51*d)_{V(9EVqlgS ziUSCAwlcZI#n?x@=R8=BkJkS#$kWrleC=U4u07~uI{F$9=y%;6u#PVO8_{rH`Lh+8 zeR6P@pgbW~|EsiWgel|kNBw{-oDI}?=J4l4(gM?N z)0e9!n6!}S-8z5o8KOl3e@{^}SRe79V3)p+DcJ7Mt7^kT^gGJ#UH0xzrAOtXlFQza z&~Hg8$A?9Qg2S(w7r<;;42DHN!d~9nDqAv()Q3nK^80uY%_cM;cvXP zqV;-H&J!WC1w)zca+`d7CxETz#JLmYxIv_BYG)FwFXt$awMIusR}cbCK30B-r12`@ z<)M3vGrg80eq}BKK_A_Yqg<`PhsFCS#0>g6;t#(~P*CSrIL8mA$=ktkpzOna(dq}K zqa1)IE{EF2n3@(vhhv$D^6IPAS(~LP)Zcyhd}~H)r3UnY0XkfFgID2V=Pzz=wdz#i zqOe-Jb~jk#Q7VU|p~-yPS^5HHBwY$(QJpG2SS0}%y#thxRn2a!WvS@fMjSeO7SCYC z2CJwLZ*ae$wf}^JK_2h!W)uvOd7)$HPBQpuvhnlMprvVaza=y(q^PzeC7~jdeC=2f zRp6g)|0_|M7IEzHyP3mpEz5d`ONrTF?YUl0MR3tH<1_We*{#lJVeH@T72HN6?C3TJ z88IkAEOHgA80Uzz#x5~dtv#t{h1lq^#2G@ucyoxqmg<(88a?@zeF?!!H~ah7K_cqX z@W)3whPMUG9&R8fdZKxEqNNko5BH+gUDcbd(Rx14eckYP_PQ=!v@!o}JUnaUZXCqh zTUCeKIc8gR1o+%pS)i6+=s5xO5_&%(U=RLuW+@91U+w8NgC&lnP{91|X3PD=jguP* zt=boyHJoB=qlo3ESR}Pcx>!UOsXM4IAV1f>=)~Q-td!*ixRg#C-^aYQ%5h#jReU&Y zf3k%ap4qy2v- zNIE$A(hBSH1E~q`cvEv!CgNx(aYO&Q;NHKI%Yuu$`$Udt&n$&0oRL-Kp)vs7;Q~FN5jdgw@O9Gg9SH z50Y$gvEm{8l(9*J#Zs0%B!!DEVo%wW@VY_i4~lDVsS~imlUmvp6fKHj{y^aw66(&` z(L3~9rT}<5Ar3!V~DmHihZdcdc>(HlYK4S)bnhmZM#Q9Y35wh5WcwMXFCWhyV zn@5l@FnkOWk07Tcn3|w0){}SY&%=`L@6>X(Zhq~rANie%QcyPGr(IbjCOn$yc;pkF z3)2)kb>;*$ph73axUWmiBeT9Txeji_bB58p_yUmEq`@QFP~|>Q4(J|@ok)&=k^42s z2wHjJ*MnO4wFK>oc2i4X14jIUOk}|f94*fEqoU>lrGEJ<8_&aX9Dg%~lgtwHMp}+6 zeW1gh;a)IpHlp{&om1F)5wE*MqIWMyNoM-Y&tVp)E?lLqH)^@@3+VCeb`^aDy;nnT zuuLqMhn%g1xjb&l9v{PL;AHZ;Hh~#=+7JY5VI;=``^%CTlsf*z?!4jsl8&D2^7!ct zVP*yYDA@1v@6mO9#p%=TgS0Lb3}?5OyQMgFKo2axm7?!@{#)ay)P`N>Hw>*V!9a`CijjwBBjs5EvLHX95QjAVP(fUlzxg-cM|GgUsqg_!gw4~7GMxDEzxI*(Z{^&FN#xPI zk7YE+pBvzk0sW5zpBuSS95#53go6BkZWot)b<;gPnh_0RlIN!b1R3;)jQ1QI64sXv zeR@}-t+CVUe#jc>o=dY&vz+HN%deOF6#&ea>6*xzhu8haJ}!_W{GJ%v;6dwBv~`HX z%>4y0eTlkIP2o#>>1GIf96auEcGT)85E#a+IXOK?Z?UxB&p{s3C!R(G3|z~zMNZdU z8w|0W!{x66sHfB9fllfioEyu!S`S|ApJX&(Fe>u=T)9+9>@K1I}y%keOTfgTz z$P00lc_eo?r6w-t_RtIVakM!cz*=H=E3ldD^>C{vY!(|PRndcS0ebVU$pby(6_P;- z?$ge^MVVc|bXKL+q)h)e=FOg$G&>IBL#CF$xg^e}Qp>N%)hK*BioqyEDb z{gV?&IId@bNz#^T&Av?_`#N@+Cd4YYR&d*t$sF=WHub|I$F!haV z1&la;oaA0bD6lxo!wA#Y?G@$1D?I96&9sCKk-rV@82hvZC)inJ5}X*2Chu2Oj^cgM zZ_3i7h1fo)U+wD;llaJlI2?J4QnN(6u9mq%$OCmm5?8!Q|)PV<%~xg!2YVfTzemLRQp3{bG-J zTRyG%aJ0%&9%l>{$Bxhfnhp9e8NF(=&8M`a058Wy36Gj3T@Xi6g~ZpdPLkkNb7h2) zD6}gSRNYH2fC7}sb)J93BV*p87W+>^&Xk4Ee@o|i(#0M^qaBEgG_vHW?QLLZ6q#}c zWr?S@H=5_ONF31g0Lb;`cGTYB8P5z_2U}9h98^u7DXjN1#^$pNf1@KtFdJcBDKaVI zjd@}|P$V52wS2G1o0GffTJ%A8wRNJ^P;0x@9oI?db?BNJwo8*Cmh{BwiH{n&-1VeV zPATs6vO3&oBl=4BddxtZB4~sQ+9usG(k9(=el%fK*~;$EB6)@XH0_Es=R~d z4LPQ=TlPs{`_Y*O91g6Wo<&R*TMGAN7e)I8F(jC0Difvv zs3`Wkv8KX;&3*iLmJ$Q{4DT^NQlEQ3=t%j3kTK+mLa$_TJ=8BiR$m*7Yy&tvqk@Y^ z3ecVAqMqY;`>~k(i}OI+7;gGWOy6s4ISXC=lGk~k%XA%cc-9Mt{tgE~dIlGJ;Yyb@p% z@UUc8;;#~FAqjE3klFOHfUVbk-8rz5K)?VeV#mil3mU=VVt%Vdl7Ln*WUfvqQS=hw*aC} zmFVuG_QM~3#^0*GBmFbIC)?kDIs$@J;rP8T5`!J~clVB4fvmG?T@xFFR{W#hTnn?$ zF1Y`!L$73KX`TNhh6eN*f(rb*e#F!Iu8x<6ju#p5t48|aslA_Dx8NnE`S9$ROOn=< zwt@TtBbaeshNwgAmq5HUo7`17PEVj?G9FOG^Hn_~U6UdaGU}L}Anw&n0MS$G`~G}q z_Yc@mq62efPxJH;M;v76xu8W@P|-)&b;YDzzX*wYVWDIH6$6sUS+SZakHwsZ{wKJ_Ux3aR*&u7@$=g;IXwWK4l?)p#pb>%aJ z(VY!_qEq79_{ddz=?N>Ju65_*#}DE#@YP&)qr>f#57-m_L>hE`&Oi4CqRk=Uc&0g)F?uZSR)JwjlPT})3_#r+?>xEBX-&NM-ouCIWn`+GP zD-A$&BXcnITGMEjO;N}M)4{!rm!0rUwAoNeM zn`K>}pAoJh6U2M+Fz#-b;_H8odrNxI9_A&+_zSx+(jDY;eugZCUM^3dpRAt7tU7Mb z(y10fyXlg-z}zmVv`D_RT)xLY_kVMU{C=;zFs76Hs7nqDOn>9E0liKvKH6&&KYCj1 znCnUDpyQi95ePi#fykgIIrA)>y4RD%&WFx*BZ`7MA4+6z)>dgINmkh1q!tKTkWo=x8x7Zs_g>Vg z8t8eMnj%kb*rJu$oAEMi1}2P`2}t+6)jBUQbUKh>0_)iIYU)_HUX32qB@Yoy=WuWw@#_;S-mP{yEhrq5odnEj9q0T4fb>0Q_7GT?kv-?wmyJ@ak8Fy zY@fWOZ^uMa6xOf!Jy+s)JF>S-J(D13UP(hq;xtVchdyw)N=m;bw!t_ZKDmTQm09Q$ z`2xKQ_SA#;n(5+WS)Of{$@`K1AMzT67 zqxqq-q&z%t8rgcWY&Cozv`p2>1 z=Iv2T=hy7;yQu#dZ{*NOIC5dnc8Jo)b^loBVtEPulx=Swba!|TyzIt9^{ty$(13C@ zAI<1rVuzj?Z!9Xf+3L)PoI3k>=VGzmtpQh}EU-TRaH@LO1reAh`pH{Ikzam--91c7 zsreH&RKrPD=Sp5rvBpLJvON;Q#U5I(`8usYJX?a(Nk0_ncK&Ab8Y80aT9$wvOTO{? zlk9haXnxlW=<&=o3`3ZnCCSYMeb!X#ap@=mn1wnMOIj&UD zi{O*_k6M)MI1jbopXW@5L<`qG`jRCJVfjUo^Wz|X=!EfWOua2ocNYCUYCW4{XYBnu z#L{rb6f(2=>P4Sjr_F!W&X`ZCIS|V{A?J-$b^(st9U>DOf_#}Bd%f=|gBS_Ov>JO` z;!O;bDv&cls;chCKF2eM{j*!}0|Xg{KHArLJICBGgHgJ6nfPgcsR1#KCzrKyIRUz@ z^9b6UqmQE>j^8yyw7g0GbVG|L1wRYw*abEQaPu*pOe z9&8Z&h1E@6#>|6&S9g1WiP#L>4Z!@lPr{|EaxN&(KRil6okODRjfG}Q-c*-U{-KDw zw#MEm??fS^goW5I^AGbU=2Ou6q7S5Zj7#Z%w*QJzUduJwbBs(%^d$pc=6`Dw7oTIN zjoD>{k%S~aIKJ$RWP;9p&{uNk8!)2hDpwjlPA&mY^f_6V0-0xIWY9~9Tf1YTl0~&K z0>l2(RWJ6?v*0>l2O`WzXrS>A6Bp!Rfu*IiMl$BGJIRvyFG z6+GE;{He{hZE~I))Be07yx!y_4u3c7$&pCKSPX46fJ!x*u{na5cR0h(s;aBbm?ZbO zL2$V||9AUxX&9|7rIKH=gE;StVWqqPIyM4%8zMT60|BB&spo?N3Bk_|hN1u{n#7r| z*jfc}m7$JaB8od|Pg|8B-?H-Vb`g;C1ha zB84)VpzRXAu%47lRxFZb5`&V8>rtV9{6g{No;v-z1pfXsLj&9%_}xUqB|Ey0G322HErJAVff~A8(E>=N`iBp~v@8%*b(wMFoxA@|&hw1QNx$ zd@lHTYRX%%-QnwXHp-B9DpaT39&;napKX1*xlMz`7@u2yQ4N3RoH`jx^))fmZ#xNM zJzyq;&$&qQg%k`wkeHFS-N_X-!gAtQ68JgPZ#kvHNCvRAVV-Xo(LYKM(*C`t1xX|| z<+?drj(r_y&VTfK1E08Q+f=Bz3R^E+-(woT!}UKgz{U&K4Z?*7d&ZA=SD2g`U$b&% zm}!IXZ9eM>U&$hOr|UwT+I}<-Qq8287yl=z;|F;7{A1YK(FibhN{BprU6WDR6_ z$m~<8Ww&F{EhHDZ4Xj~do;^?g&7R~|;XJB;XAylBNx-cu#7iLLhwsfFXLK{}K*#cEFKr{pk=!SLQRJ_^a^A^WjH0q4jHf2mHRU-eBS2sJo#e8TBS!62B&Y_GXjk zSB*RUx}*kse{38~LJ~2m1w~0S!}CGPdw^@SV%x7&AqNpaRgN5$GqX3|K^pNO>&KW4 z-7{-iIx?)NV4)!9h{Dg(#2<>9&3bSCyHLlur@pys+)X*ovv5=PbF;k|4JMksp;Y~i zD`D|2=^LaLy;R>fX_GvK=PP4|eOoi2s$L&hAb=h}M|VS?1Wq=IeN!zr%d*uvF^_xIPq7A3U=_SHLl)hdFv>T)FQ@tN_u1 z%C2j#mr_ULgbR~st1%;us(asKGcM4vM2L_D6H2v(kp;R2JG)7_<%it9om3~>F{ZZ& zYTnW_l~wERQ-0nhb~3<0ApLTbf%ZB_23={$Z@uEATy3O67r_-J`C^Ctq|akKGj`YH z@;fdtQ!fmdBK~{-G;xVr(7rAKpsVYmHwN1OHXwb&$>Y(`G?Qok?I(q7LDD zP2UVOOD3Tf{BGDy_)PWh1m@cYzx0h0`N?L5uOuoDbf1wR3PzjKv_2fG+w*iHSD=U< zD0~97TOD|LfI^{`rl;GbMXVd4>oQGsGdaMZ)*spFgf#r4exk~+$*1daH(ulKr}O_C z_+q+;pe7GnvC!4)huzRtvoX-gBPvtwzRG6}t;GRQCHJnB6! z-eGEN>3zwcW2H#_4Pxeg$@q|!zL1gHOuf!b?i9Q>adYISDVp4{vE>W507@DiRpAf` z3rf{e+2+3JZ+g#S8^_sU-Il+8gv=iEqnfR`5faP8kd!S`RoldZfMmAbl+@Lx`dr>W zr+yntq}Z+k6tBKB57h?OJ85Ds)0Innp#S*!Br1M!mkZOEPc%?{e+j3qA@w<(=YKAm zyp)U#1!a2*tS84<+a%;EX4A0g91Flxt z;U0iPO|%Q}kOqXL`DD`RrjiIg@D1AOBS($xTji`mTgfM%QY88CF$Eg z0;6rwv~r?ZNi+ntnDqi))U=}z_SmYs8fVteQ|qc>`a2qUX)3NKAV*;m&2?Q9zlC@k zw}NMN88gQs3Z{+5sMwp(*d!v~x&4@m-yt7z6u7WOnSpv2j zUj#F9_+#6-LJ@f)R|>i{vrbn@H;%Xnp(U=m$N*6pFc)A zss$3{hsuAFo~HVv6hfH*NR22fss`u)N+$gN)5D!?x++tbo8UXDC#i~>C&ZTWZB-V5?){dm$^Y{5|KKkpk}^8e|p zSMU*G!Q1`eHNC5*v^q|*M4LWi80HATcH*|*Cp`+ZW4q3F#8rRD_7ft``AUC2p5fyn zM`!m6wY0SKFo8lDqQ}<1oL(?nw9V&8ef@yeBt&HjSY>!iS^IZf98Zek=;?`Hxhlvx zI|S?v*&mfcK&`E{0mZv+e-(y&iV_plK!LKOJPK7-oqg0ryuwn3{SWiY=IA>O@a z;LAoNMIxA#UMPPJQk48}CUB#R9k+`>KhmcAZEN1As3^W&9*nN* z!4HfISFC1(@=W~Nc_CD!g0-(-0(98gD2K=ih~Cq(Jw$qiXGBXKNOEPh+%LCx1Cy-U|xTI&9AzPSNkl!8y}GiWkEOU`(YF-~ri z+9yaSji+om;NHtp-X6DQ5n5%8tRA|%uW0~;4V`ZYJ1s|raHkkx;V`_1WY)8W%1v(S1VwO~w?e717Jcc*aFexJg zg4C{qeTdh;x&QNV94<=Mf^$c*_G;Bse>e-SkrvRuk!pRHTDq1zz~M2JlmuT}p?cC! zsIj>jSNJPl*#$oDRrk(DpZ7hLl+~~YOSak*tmn0rml3P(tD~|TmiV;dGOP9hg?Bqh z&DppEm2Zay>QmqrEp@=eUc8y}a8H;*PX*~?~ii&vkXiojP~;;l!@XN#)@a!vsJRJ!sGD%kVkg-q<*Qf`@|!K6s@ zumMY|#tL62Yg&MVF{QZ#o9GLkQu03vlk%W+HQ(_JV>_3M_rmI=&&zg!vf3EQ|p;u@esEEME%- zkrQ`mkS;#^I5A+sY1ivfZlsbe_<;TN*NY8{wI4)z^!p2iR%?VgAb$oz^zqXo^$dTQ zbFRuF)~jB_|GH|4SpG&*K07t8I5?<7(w|%io^G^S{s~-I$|wNd-eb(r=(E}4B!dGz zzuIi-%DA6l&7GrvfZ^!W2%OfNtC9NF)>m<`s-d-h+@~u6bgj(8K~Y+%YU_=K=+q8? z)=P7WdvFc{eV@A~W5LI4_Pfdjz2>wzINw8WQn!fujoKUlUE7;vzD3~G*)=V6X$F;fqG;!ws2$>w{@VDcVrR~xQR+9;fzcf*4Pr5emI$PS!sq?S!$Mi z+PhwZYjn(Or4BSjD|B!&Ku4ewDftULzDoYgB2SJFjH?Osz-OheUw~z;glCEW^Y}UI zyH$l*SY!KX=0l5q{wS`v$cLNlp3v#R=y$sD%6<+ZqAtgHR&VyPLaaV~5Ww@e<%?rq zjSN*X0KWH!ZQ(7lmbeYFW*%B$C56!Dg|!=bVyS)1ud~Hu;29};UpB3Bd0Te)^Ss4)16zul2pj^IW?i}Z4{@g zWg@cbBGa(h6}6A|>cjbr^`>-J4ePT`AMGJM_8bP6;<*QvS|@j@YM~q(7w@ygcolYc z*^{)@t#mIj8pu7_D;%1)?|WZJ=8D5`=Zn5uOyt4_IZcb1kk4p`cNav0^*jMC^3C7X zY8fR+9*ADi|2L;Elf<1|LP3WoBY9BhV$TC7B9=2C!|B?2Vbw3^y=F;a9d=h?I@ImB z3+RmO#FP-jgke80%p8ZJgCREdpI$NLz$yfGgx)1jfi0{oQOl606qYCHHvs`&Qb1o1 zj}U5_Ut?q1ot}pVtB?)N8UJ7{*8sdO%MSM26Fqu>)@7`Hi%hgts2eqsZzU#n3?{~Hvj?Lfw zieMKQYsCWj#@NeU$jUunG5lgctGq|5Qr_M3OnOo(8su~*{`Oh8m9RM}n%epRQYIfH zFguD!c^^ps?gG}D0VX{vuu8Fi>T9BU|1uia{(=3TfOwpb?3FJA)~glwzseC$-kqN0 z)cS#OHs7h=ap0^xl>}_!Pla4PM>CatCJ-#|irhkW&dXxCZ(#Tl5|0Qeej8~jry2?* z4;8fwo_54oe}=jEywi6mjkY4m>ftq>uVJv=t$PBbGo{&_63>q$KH;!nf%|(Nb&14D zV0dWehX>xsji}u(W0<;#g3ZHlgV6j7tX~q@5V$9NZ|q-nhjv9TgWEeh zJKJg-URP(AwA6KW-W}?KTU-2ZDm>3geA}Sn8_oI9344{a2vRx0!=5KVC|(^Hzc zKli!ry#Q>45E3{6y~$(eVL;bJtY9qsMn6}ONI%hC;dsw-E^9WlOX~Nbzn(HUTPQ_} zDtjV?os^z&@fh>sl@LV%Wc3D&113@%Xd=`HlmU2mCbo_PyaEdN=-Jf;gya}r#-jNV z=iO_>Ujz)r7O!;(|6-^M7IrX4s|PAjq(Ck73)`PJhr&}y5ZovEF&NoD8HuC?I^2+* zT~Md-_<7?SPX6o}Bmh}ye*5sDMNusK457ky1I@Mi(-kTE4g@KX;%DqycV{_JM^no_ zBM-T6wW4MF;UaO7&rH0ZT6}MLP5u>6%^Y76dSW)`&JiuJ9-MezmLWLm~%h!h?opi-H&5 zX!4HHVq#)>NGoKE+});2+{W$E=OFtpapEp(zac@li$^;{sWKfJZpt`o{MUUHy4T|q zB1X9Z*XCYPXGQ`*^w!B)&uWCr4!Yw!;JVx64txMHGVf@E{dJ1}ekyxHkcjFLu|P0+ z3FjCMEGmCl@1D66&R1Vs;+VwK+?EB5%gbPYj@|vKhJ!d-m$eQiHM z)~{wSj+OC8lH`?YyhLQTmOc$beg@%7tXgWwyHj(MxV(60T@gJ+j*It>=E1M-ogQFp zrH#Gfz_-t{*%@~X_(}fDB;WKSd_J?p4I2Cc%8v6sXCcS(!;(%ZSdo-D5+6_;YDwtr z^c?#U8+bu)L=cF#?dXOJ{#GFNlgN+gNdfmXnoz>nODQG3_8XU{6D40T2#!`Y3MN-F@r`s)1KrgabKb2w8P7nOx)ek zE5m^vrF6uHasRk{|7!v{?;3P@w%P`N%*ec}vg}-$Je)cFlYhn+YEk>IIU?#hpx(7C zj5+BSm^8DUCexK_H-U>HJND2q#lPL663rqpk|Mi^bE)GlJUIOjD1(7 zP96)>nmR=!m1p$w?EUz+qcuLBZ%jPvpN)rOs<=JB#@h=MD`_j)-(Rj1&RJ)%F2K~t z`7-zDuV~h%E&g8tNLk6L=5tMHl>N_m&)`c{)32kv60gJbTq8)WBiJY;j7sC@{i&XU z8RhQPolt8z{M%MCuYO9aXZ6Iy#=HNMrZP26%;ixx<=^m2MN3`&6vCyEs#tghJ6{e= zcSFGG0qft$Uu5KaU9OLXg-?B5!pdFm8~~`$yA(eoYIn||Aiz1rgYqlFz2+NBV--4E zPnAGa000%DP-xAH`(F#;{;7M~ewQKesqkBOIhg%t!`UNSQpx3w_;4v@@b`w^rNzI$ zWNbWAGK|aghq4-q8R&b;)K%^+ldD!fTpJ}Qr1i-;Gu+<%GcVymEWYSR)H#cc*HPZ? z?(V~@DJN&!u(lgOsV+ok==yb!>%eOaS7|)f1SI6d>Uf#yGGGt+J+`Xj9n<28)k&R^ z03R|z4h=(ZS8P2RkrTJa$e5E@hbGD>x%Qd-tVpOMTx`xD3HLv}ea^zyR#0f`MytX8 zjB2+p?y^-l>29tjcpup(9hA-)(CNTM7}dp_%2D2>!CEU=UppPA(ryj_F=XxjO~|I% zGKzkcPfRVi@$&GgK=wb6_-Nex;{F7+k0&}&zOoHWZ;BElCE;hs9DQpF`KrRS7E@O* zH9%-uQZc)3JErkca% zL^%j&__VN!Kv=1@1&i<4lRy#+#P0|;Y0mfO2WkSRsPcV@mt<@8kk9^RviO-9mRELv z9TLb4ZGXhjSO@w`q}?!-Rm0PnFs?kc?h9Fe#mh2ypL#>Tlip%@`fKNl*ngrbi->i^ zxjGD;I!vnhW*|k}>mT&%cb%6p1bxp5oXTC2T5j=g0JT)vmyYLEN^$1npwn#L5 zuQPjFnF`npczJR$n1a5lk_E(lk3{3Zqj8n+unOe7pnPFcm@ErEEy8Hl_`Gi+!L>X@GjX(C%4!6lv4UE1>IGtq z(lV0Zg7ZK76ooh;vE>w6wm~0OZ0v4_)j@xJvf)1%2@#QhA1RA4NMn zwF-QCq1?Yd|$*Z&bS z`w?`3^nvc5$ljqL%Tws*abAc*rCoBtcmk|RAv~wkYHre<$RS|2lO0uGimIl;u3!zb zh*kt~!rNE$P^3(Ti8n1~25(Zypg2GfN03yUm3^M9d0QLJ=gLy`r1+I`4ap`@rf(N1mBxTkDX83E%D{wmUZ4MGBKQ*U->_mhPE^>Riex&4fFhx0Oh}K?7|DG3!p1Kh8EKIJfz&br1^X(94cFSt(Z2j-i zft+;hp%Q~+0zx?s3=f1-^2&B8Y!oS2)!PRRm>XJG<-TQRJ6AOHjdBz}_b)$?{s+Q> z*}XHBO}}cWdrlvq1^`8V9|js_2*l(2^l|*nv9Ym51)L76SxUb*H%A@}4<89w1soQe zRGpr~mz+3Emhih;lE5;4LKdPM5M(M?(X~`5bnPv9F#o8>A+k7MY;_PC&@wTPIR(y;Z<1#8_|(cT5_g!?ocE0 zeI5w`Q4ytkY4`__!H@MGWeLqAhf_3qw4 z`5W9q^xVRFIkRji6dXk7=|%GZFoDrgn7?aA^4F|cp@Tx`*&_t(QxoOe^u+Vi=Wzs! z0A~hNEOq=-t3gHiAOjN?`jV zYSA>(ud6_@u(k_fGZOAwll;7$I!GbwT(|aK)`f7u5LVlCg9f?uufSyhH3SnU-3}HU zAV5N!I_PsHn+{MOQ86rP&>K)zuOlOLztf{wRZh@9r2oz6d`i@DlL1B)ScbCXGCh=` zvP`-GLbU2jd=9e1DW*`KltsHCh>I)5KzKMBmLj8aLtfE#3i=3afhQqf91Cab6G5vw zn0hxXb)>AUb7cB$4#<#~o^!DpGVvfE{KR^?MFGb~`aQ>^>q4Aq_>t?ZHYe`8q_G2w z@cF8$&VA3vKl;(y*|Z?C?yzP|AC?b~&?9^j#e9+K|$@7+_jOYAL9Z~00Z_&-V9 zf`5JG#wK6iS*ojrsyeZEVzxv}^}qY4{@R~dTV4NKlt=5KlYniaVuuRu2k(J|343t1 zLwQ8sI2%~KsChye3}IzlFgFxZ21_Cu^g~>Hh`_BKPn{ez z?u|PvTsj(X@?o|hDFnD(utJo8o;I$ z>eYN8b z{1C`6*f+uY`ZXJT<&Gl)`IOI9BXx$lhl7DMLc*n>^xFX|s~f{%FP9vEF&!Ob$hFLQ z{#x~hV~`NQ$HTuw7_zoGdLI5^d%H36JQdstR>AindqP{}AHD#eLA~`l?M-3qXj(B ztIQ)*)%a_??RiY$FrUC@1az%el9+FKF;EUG)Aa`C-86(dTKYqq*a0c$QxVizWRR5v zUO4C=f;UMKjmS@{Zir3Oz>bIfJ4A`f!+aQ~9@tZ-?>WL`?W}!8uc<7Vp$=Xzvun^n zVvFS|)BFT(kF==YC`nOD)EVQ|k_)~2-c$ei2hW{5&a>I=P&Y;pLue2{NCeylwPgxzS1A|v%SExAAR)S z`;XeN(7Vyl*@(_E3VHTl*#7A|2K4C^)nYfM3|>GOp%8^FafHTEB<~i;cRB@zg@8mO zijDlL(Sgy7rQ=~*DM2=0H-`g`%$3ZylnVv%aePS;;HDY)?jJmdK%W&F_ue`3LyYsQ zLmn`_%CV1txQu(l=K1J|7%eJV;g8v^ROrwU5h&4VLl2f6<>fbXE0K|bq z^A{-7^_U=S`YJemfdIfkHhrHEQ}({zxM&y4^QUdZPGpX|ruW})@J?=93vF9S-6IMH zOjPhdSufP#APy?7pef1==}rvI+aoi6#f6}Gh8-0}-Oa9ngHoOuppK<&Hzn5@b*^x( zpF=(z>Ph4}iX(f$#R{a;HN`ssUW=qihg$?Ie)so&;=BL$e$y=QojWr+aiThT_U!CV zd#jrY=#qDb1HILw0B`AC0IhOW=bk^u-5dVSoj*t2y#Ln1R<*mmTQBgj#ZSKHkq6Jb z$kPoaoI%~z$gH4}QWQV%}q`+@% zJOX1xaatuT00obSDXcr_94QWY<$F3(L??x!K`n{1BUEBt#UKRz5Q(~k;K~YEm|pJ{ z>9Bl?s%4{lE5ZfKTx5b}(E%BAAtts8lFdMKsjx*p1og+?CG&9K#AiGxI8k&Ypa@;z zulx>phR?w~yhUd?lq==q?0jN5tmT(Q@z?@C@4V{Na88>A5#p#tUaqE7Aqiwg@MdB=&(U-{}wU;p~{{&jg}ucD2s zSLNB?{aspJU9BE{^wBiLX{Q9@g{jaITVOyjATz9FxM6A2+^j@H;f5zCWXM|; z-3Jue3#a1f-GV3m#7JM+F$TSw{n_rTOrG-imrdyR;NqPiy)Y@uOrakUdgPtDDMK$ID`g#em6Xa zd1uEas;L;?eY8f~2sO_J@YXE7Iq=HT z((I!j{V1Plb9m;NXS&x1(_5L|k`4gpVatU}7v$7Kr}(97FY!(r`rqE!=A*Nt)!xcp z{bS$v!=K^qoPRtXme>pdIK-w<9{tM-ZjJ#DfV@wZ4V2nW7=;cNqv<1g<+>UK1gg>f z(D^g5S&W*4`m_Hryt{y~?;+osKY*Q$Ak$g*AR8{eyJaKB4p#zm8Fireo2keXs}4L{ zC_RZ=Ob#4CFB?=nVbP2PW=a{9bDAnYFTKH$Y-B1py4M&jjB^qPlL04+MSyQ~Of0LM zQ4%-iOTNG<9P3)Bg-shMh}iiN+4!nqMt$O7XUPv!Ayj)+uZIdXAdC5Py- zsvMi$z>N&-8GyG}%i$UbDZttCawQ>r#Ogu*tZx4lifz^ds_&?=^?c@BNNOu7%CPkz z?uqy9fy&igWuKr>r`S*BZi=p@W%%@lO&>6@&AJm=Y)nM%9{j`u$5xL0R7$KCm&uP@W$(ad*l-6xX_o|yusH?JPw7mE4AW^Cnj{p_8_B`| zq7K^}@<_6QZOr-G%t0ezO#v>x8)O504a243ltLn~Y6KOdV2~_b`D_4H$rDsrP(=iT z3Cj^ePs&#FYd&fec!bTOd~7SpVAb)Vi|1^FO&J_2iVaWEUa13x30B zn{dIL*MajlUC4;%AB>p;oVrl?OEye`IV*a8<&4o3MjT(Q8# zCw?Ey&2ukj6i9y%6ZSC~X4HN;di2;&edOG^6N`(BHQl;3yV^c_YH_i;a^(s?{q)n7 zzBTZzNN+g@08aelM;>{E?!0iPy1l)|v)$QjNtWun`#gL2{tx`MH2U|4B53CxA*9#X zUuA1yE%mtjL{h#zFWW910T?mCiD3R+4Uk5|@IL82b&~iJAtD=>ged!#+uCe(R0s-MkS}k z5vztcnXO(pXo`q{pqqb}=QaocfaLn*9VHA_KN>$URzfrwF&pT3nlN1iBWewyCi9v1 z(5LGfy`U&_FIUKcSr-*@klWzd60gH{#@r|JVMIa6veL0``;xLe@%(YcMtFP zAfLgPl+O(OBHoW78sPcFJVF;v5g2cy(9Ojo2wHJ)M}o6K;C!$>o2O31+Xm%FP;aKv zd6D24S%kszV$#Ks>Zrs8muRoC^rVv;AOEfo{}|uBJ4=mo^XBZ8W5?<Q-Mzlw$`)LVhXrX2FiSUAeVj+N)PJE33 z>0C9TgCQU@$TABg%;S>`+1D~q&XSdp0SHM~z@rFanHHkf1nC}|jF`bW;<)nM@)UTM zu?*A)2U-W3I6tpx`ZmqHaWUhg;F@$whHWJp28a6U-JmPbe+9zyBKE!x53)%AV`PDx zf^|?GkdLqMZ!*w(C>#U^*K$7aGODm13CcsAXhY$#Pg0hpeyRgay`H(dC03g;J+r9| z!u1S6X|0s-ehG4iy_aQI{~X?j$^>24ND9X_63TP`*ARwsRyU6P=zHJuo)g`AfZN;K zv+dQ@dbef!-cNl>@(Y6o)p{$?jNU@jd1&daPS3RZc9Qta`7`{LFMXx1_v_hGwY0E( zYkT(L`_BKZlsGr188!x6lL1tL1xM&^pu|U!R2Z;^0!UN7*KawaWEj<8SyxkVBPffU zhoYwNjf>a%I*(~_plChWK+pKmfe05_L;VM(Y8Dx^q$%p56wV2dFxoapK{IQ}L$8_< zcDK^mNWj-$H`zeM0!Q9dWNX(tkhN!WBiqT15dg6*Fppq+le}FDJ_kxegtIp3+s|1O zwB?Z`-c!>kxZ{9`!ht}bNG@J6ez^#VrpuX6jB-hl2O90bJAhCC5tUC^1lkKfEFQG< z0`;LnCRvvPPnbs(Ufe+;sQ%uS6Ti;SK>VsoxxcuaJTG!Av3{?k(s6n9l@ly4w6E_v zu(Fs(&Pq_>3g~4~1CdydE{$L&+|QYV&Z5Y5RPFMMF@WdUW#p#`k^d<3IJ)%YX2M$Z~V_>eZU6YDSkXbxHRxUc4y! z+Tgbmy=5W*9r$-I`sud)UA}dh&#axPe)IX?oUJyi^`7k2TYEJ7_y<4!z{=9{UkL_0 zE0|=Do%B*jLvFj(00=?nhEA@F<%j?PxY+M4cniv8DsT%d3WY(M-s%lv0W``EILc-) zIoe64VQ0lM{UtRn10AUvKRA~!!%RbmG?48_uw~>Ue3#;3HqW6rKY`3n=%`tr56%+< zdy@ZAfN0`#A)nkfYOhW^g6*|EJH7>NWHx!~yAO2dc~c^(LYVJly(V3cJ7aj4)Zp={mx()QEo zG4Fx`<$BFb70Gp`Yzw>=`jX{QtVxg+`lSv#1MpTE>2w_|EUTe{peMudJ-p%d4xr-&&;O$B%P&LSVNRpylH&wIJ{8(Bh&c~c<$$ALhkuDLXg%yKsR%vcAs^Ud^Y?`f3E)8#`xW&2et^JM zR+wwH-3?r5l%%!!+}IC`CQE*^MnAgrx@9rIK0lISqtZxbOt1AQ{oZOjQ!$KBa? zy~)pcGcmLoTV2r^G;C!Yedp*A!%@W9cG}JZD%u0WtQ^^eJVQmYm}S(7O4AJjyGe>X z(-T#hWB>cy2j2g;>cypnb>`}3b$fR8+O_KXZ~Yc`3j*maNNakyA8Nt9p8U|p^D9hpKHv(Yw2T?Y$Fg1i^`3;arLh;dJ z0Kg1-lz}xnh_TDS0AE2zlVtG0k)EEKr}>FJB3O;0j{ZA{lwD3$C9zHwfD%4$&lFY- zP~L8(!Z_+#o-1d>NQy?iZ?Cw}%<7w zo}wDYrr_d}U>@Hb?=o)!KxXfg`u<-Sg@O;~Zi!k{-&qA^yWxM(7fLam_RxDASJq@TdX zhzwj=`fu)Jg#65AsG<^~ZRUbs3cU883$xh=u3dfgAHMYR%RB3{wfXg?;S=lY&FRHO zx-*;6FaPo{%d^iu%g;RX480ZTEfE1o%JL*}xA5=M^OxxQts{JO;cB(gtkk=*TX&29 zKKQ_Q{8Rvy{1v14$phAN0kZPocM2m2$VT(2FrAb(*2=UFflO!~6agirY2e@>y@#Dk z%nlSC5W5a|+jyu1kXt8#t(bxIo{Z1C`xkXM z;^ILoU(LJn%h1lG3+B8ylM|#fDL3vcg^{oQ=Vh2una)DJ#nsg6CthyocZ7CD>|G%O z?ImzOv23I2q8-yU9BKP*0fGNirkXpWz7y1gVxxq1%K4fD#coX5?nj&H`EXD-fl8E% z5IsLj;&n*>`hq~!6a3wOb>0T+Q#5(9B~0J*$&dcn@@h5f76Vpy?o@Zy*VBT)F3si3 zm+QwLf4q}v$>gD=w}b-_+G35W+w+%eo^jR9{qw@=?9TR`dUlkpr;I(HK$)(~6D0^dY_Oza8BBa_km!czte4)Htlmm|YkDZ5YIU%lamRJcuHX z4Z%r#2qpwk19Dlyb;`EEM5~=Qr^Ram-&JnPn^cfqryIl{5`0&@WLe>FDl+E?HDVyw z-`BZw&I-^Qg;)ky+H&w~hDlfFyKLQXmu4O3pb2zF<)w%D*kY{E#;$YFj6Ow^d14eY zyl$5Zz(={Iq8LDrDEJ2fAQaf7DXu$k#xjHs0!~ySSf~x5?QHmSJ*vPP2hk9S$p7)_ zfsl?QII3Yzy{MC>N1jwQ%!WulvNjrp0CpT9^*|@h+a%Wy!sn6>@;2GpOmXzgJ z8l;jJiQgqANPqnl%t)E}g4(lwE1oArRS(mtkP$Y4^&J_W;Y9%Mw*JE$IIp2P`nX;| z^+rovUtj-`v-h6e?9K(?jg9K=-MjUbuYbL|^6S5zBIcj@%xAjA=G9xl2RQT&fUf+% zcm)rFZ{;41OYfRO<)Uacxw{VjXC@N)7R0|sJ{$$Sqk4xh)(V=$$+D4FcQq#qJ zVfDosb+i84?O)yg-J#j$`tcvpqhcw8A@o2pYogvcyPbAh%9hL*=tyd0lTX@rqs~ZeLgR9ts zJb=;Fkg7mM2R!RzRd3h?u&&SBEjtI49$He)74ZIBHXI{+c27rpxL7ms%@T!V7##Dp zuVvICBN}5lB)%;%H<)NTLgomfOC0&dQzWGbLn8v_`%w(2wIvDg32nt3Eq6I`4!p#9 z+?Zx0LIHi%oFhvUxfJWX5`Yf3t8u7}1eMhJd+WOf+8lu0WW*Fkrz$uvw=bjY>kNIV zBp&<;$c@6lWdMTWAjiQQjWR128oKk-KjW|W%{+|o+27`nZ*N=jc>>-oO9tYT;E2Sw zasBQ^7=_41mKHI?1<`}2dj1&h`1q>(-O&2l%J=PWH4Ce2YqO=jm6}e>X5BQv@oU$( zJ0iGe`S9-sIMfb6*8oplcq)Zuy7~Vu{J-^;ExuXbth(3zc60w9JO8o!Ypy;(4a~Qh zang(^8b)2boL|2ya13ymw@dl3<$*wm9TJUgn8(EUCXtPxRndFNHL^u|d;+g|^KLKaaRA|2&vaoXxkhwdv^Qr^HI4TyeOO}O?+{p~F zzP2|!3cRU-wo!Z2uV+Zt^dKTF4)@M;HUe4^UB=H8pCN5OGNWiR&BiuY-sCLYI5<0! zxbdxs3he6T4eb$0fPXN$*izZ@*w8*nglz$R#5j@!&ilG22_egtP~3@o(GQNJ(( z!W14xAnS|cAcA1q$@_@ck8Koh`c|Tf@?apx;6zHSu0T0fFbDRnU$TdoQ|iXcL0LKw zf&HLfmtw1r^cCZU!fz=fT||X*!Nc@K#Yv0qWcWItaQvmKPPQ)sol+NwO0L@=Ob)Wg z69mu(s(tA>7VBy_cdu%pFG34`4o0T(KMd=c(i*1p2euIPy8Uaz|KI&r{^Fng#QywF z-FXW)ZxX$-wN)>jIAIItyU6olp9VPe5rA&%-^oiSxjXgm=A8|0fxkMsdvwP8oaX+& zyP=f3adSZ2gGS!)^9(?geHK?1Z^!-1^RtFQI{HA}@HDLUfgug=W`=-YMkLJTGt7G@)EmLU=~J zL!>?+018bWiLuG7clsLeSF*X*m-7hbC!T-qD*|9^)yjFe!^<#LVa-kPhwE-XNNCJ) z5EVdf8wqftyyX6w8^;_~LI;st;dCuU%qaXe=h796aH@f+sE9N)Xn3o$4{FTOCK@;+ zz3B3L2J&c$8RymYeiIx6lLQz-9P2Z5YV5Dp_sH#s^)q$ev{$1YDmeG+M7UNW=~3BN za$S#~+-x0yg?g`@2B_=p+4k;k0{^@vP~Q%S~j&3q=F(n%aN2mBeTd-8l5T zlUwB6(T9KyUBnEW8%Hmj0C3n&_zOn4U|Y8*sgX7NP9Pg%w0lV&YPWp85uhW03wCBf zyNqmmXUu?r#>~NvoQwe%pGOR&*fxiNr{#FLxLTM@v_d$Q(eo_0z}b6^9?#2Ao-)Y< z>n`G)xyn5pW~8Grf@anoDJ3A3W+&QMG9yV$Zb?B7Mf!MlzsdqD1ov~KfU{f>UlLo% z_9M8sZV$@V1|$zR_bkS~(ihe1n$3Z$1L0Z3I+M^~x{V+`k#`2wQyKvd-HnnRHt%*! z7Ahy#N0I{okNiGMl$+fYIS@_4b%|enw@Y4-r>WIq~qm*_!+t%Q9YgEG_WHLcv)>Js}Qx#%smz;AOajuW65N9Q~o$Y@SX8T<5CV zS=p<*C;+|iLUroYDeP5;mJa(O>HP=Nj`a|*AFcT?gn%Vfo zJ@$BL52KgSc)Oz$W9f)&bQ});$$-mMQC}25$5CZTqcLShPEj2|4uV2-o=aU4G|--` zjEb0=Xw-y!Y7FPlnL~pEpD3#y$nA`NkeBvrT+g8Z#>NS-PcGxYF&FlMV1%FlaF+mM z-w*v9qbx)ib&1_TDA*3dvIpH|09Se-5#Ewm$>M>LYq4NbV;I3(<)DsiZwM6Rg&J@~ z{69gk?r)N=0SN;ph-6^9bGS-{!$D!%%N)k6_^qFF54^~s~} z_&zn9KF^yQU&uxpJ%+Ix6;IYv)*O3=D0t42ji%%d%z65t&o^hJF9A~HFKFQMzv_@Q z97i=-QO!h~F_GXg2Sb3POQO8DxX;UsH)DV0Qo!~pFrrE)@)3Z)NN_r=Z|i#va4VpK zXDU-cu9ub8)6AcSN+VZsgf9dm%7Bn;G>lKkaiY?I8a>En_ zP`?6Soe`n}>nN@Z$yuoWc_Nb&fxO82Db@kp+uVmshroD%X$d@OQ-D7z^2P?>sJNPl zhB7F!lE|k;Yfv5-1%o`|w2z-zU^UgKS-w)#Aha(!r$SM;Xkbx5eymo_os-SYqo1hn zGz$wy7kFo9m#?>0?Bwaw)#-LR;1_=3$7{&qP|~4}0CZ>nr^SC~iMH-;@lLZ-Z|-mM zoaXg>ao&1tOW$oFW?PIyu65mCe$(0@?1+7!`%&yBLFd5$6pS^40S?+o6h@Ugnjze4 zUO5leff1l}KE47+0Z;KGab;G3(Sv-O5^GM($s8PElR5`mk+_L7FYr5{0|Ni!o0`iK?{d2Ap( z-YOy)g8hU_aMQXugMHhBcW3>g=@(;a`C6!+V5p8*8JxJ2d9KfIhv!CnStYzb=^(3w!C7BZ)r5y^}0ha>Lz=AvL?ZiK8J_Z zDa9?SjBOzhe%DBnc>NM@q+{!R4S?9I8l4NPJJbU{MyTXG=UG*xkrw7*J;9x&U|h3p z@@X0(rtz@8JGJgWP~aun48jNyQQ)cj@5tKPzg5rH>TRlKZ3LjEn>VZ5TU((^F!RBp zc$3rNbpUb`bbJ3l|NQ59duN-wZGT$}TeEKN|GVG!-S;ij3-2F1r=xRS)efUo0>?n@ zaQeW}ktW3>LKy%p&#ebzOaM4ake333gq|gqM#w>^FB=SZ&fG%B8u4ggPAfPP1knYK z^`=;FtwXS3IyIrmm}qRFl`mRzIos%0qX+`lsUa}%nlIVmKeh`&8N~T#v|u1>k4oSI zCzN|e0b`!65}}7fTlzvL^4_CX)(k!fjtLfc<+KVgc@Ehf4=4|uh~$J&ljXwE7!!@` z79i6d1;hlznFk(8ZmZ^V+ffEh-*KWH1AzeN*c(rm%P6d**OPqotnK4{(jzPS2zy6} zAdHHMI$qRW&+(6qpR;HR&@qHz@2-}wgz{7otVygdFey%TBt-aSNUtjD(K}Cv<-5%Qqf59Q4`gA6 zfrw&j1)lpU1Lq0X1B7&3`Mr@Q#Yoq}!tDL0PTg~i?(WQ1wz%5a->MjoRQ8T9&g7TC6# z^XJiu6xGD?-RK5EKxjQwThwq%nC3#gawV1m6!d;W2e3K3Ug|82fSuPYZ|qJ3r$d4s z2%22tKT=gID?7Y)`!=7rb&D@ux|BsIbQtNddM@%LJxPzW{~bSaTu!~?RCD!}tM$Ul zLVaZ62-6-_$JUR27us7ivNjK=9nwPD?j6_)R4KJx^NHz`(!l6n5P)*pc<@GM4i{tz zd&kqcZO&E~hTYpAj%9Lf$dKj@dINACv{y8iKig!yM^BB^{;P z{nccn)xjc2p=e|wf}xRm3*U9W;lw~6If5}6#&>;9K$>EpLTD1(S}0bi0&ucn3V?04 z@WI|<5#k0}qZtf!)ygUunh=F;RPGDOxZhKch75E{*9fF6Efn2v*Rn>%GO;Y`N9O@7 z5b0=K*Q~y!=LG5O=#@rH#Ql^BL=Uh}^{L5s&Uhcv?V$=ePHCoYJ>z*64W=@({L%T4FwH@ppVhO6Z>TkC)hq2= z6!ifYBD*z-P5{F-)lY%{f-mAFhiJvIqes81p3mx))(P0#UuvfTxN54Z+SuG|6F*-O z5%B>|(3_oRbT}zVy9@u{q?^^z>qloBn;X^Ejjd`<^95Oyh2_QN??M3X0iZv|*A|K7 zg=hlC#y&f*yryWwfV$HF1$wHKsHytUx|PWT*_PXXTM%lApc@tmEH9GiA_B?*jqYwS#svn3nXX|%4wBvH&bTlBtPHf zTXl9>jDLnKO|%TxIp>n)ji+EjT%B~J>Y3y^G-RM>P@TX*Xb=r5+BXkp0r1#lLk3|E1$mZ0>D^uG^=8wpc`f5Qvh}m2Ra^0OWyw45BlO7a9B*>Iem8D z*j!Wq6ksOVhKARrFk!Eopl`?e7 z{8PM_^|wVRYE_H;$jqC9e- zFe&B&x!%M+9Gn(HR|)vFuM%#CP(2r)RQ8EnzbroiBco0OK5KT55n@NW763V3V`~I~ zG`_CEz_-jz#_}7cj5>!U$LEJBGy`Z;QpxywA*FV(fBNj1cO9M2=jl+O-RmoL3-{Hl zJ3IC9mwBf9k?hv_Tv7`jK_sy|G)bFRagQZ{M!h7T45h@ayZFcv^;dEo1nXR6FXVvEOhb=8@}d!u{0q`@)=@z< zcKOhwZ+1F-QvmJgpPr%W7cTz-zq6J7V*)iW`gxeq+8qc zdz!12IHf=YqgW^}%h(SCifOY*ENx$RZ&%;f?}gcjveIXv{ZkVH$P$IHCs$++pJY&w z>~)lfJfZP*@xV24!{R{dw<~42J65*R>~erx9W5}}jE-x5Peo{Vv~jG!&&4x26s^vt zxKePwrn;8eN{Y1xBw4@v6mHZD@NPdVo7x~9XohnS3iSweVYtTRXE#Uy#=+AAGM_H7 zoWYTa&_1Mp^OPPB7J5p_P%o>TL~`3Xm{Djm3H=+UH85GlW(FkN8m;Sq2LUa@K4N+5 zBGRJpp+^+z6l4d^upr20*-gnZrNt#~=h>^fe7Bm(tZp5GkEXOmr`5UrIM3yC za}F}SLKu*1pTQOU-L(ubN$nc#91``aDfB_0{E|n?_sVBDj|5X^@x09lLEim!@dzn+ zwq{TC!73YkT+l;YbP^&Qkqn#!&0OCXfB;*habqz8)afKJCLgFPz#zHdGNYk+HxdjH zGZpVU&)`v!FWM9G^#oX#WayMRkgyufIT7xluy*0XVCTh&`Y4HGE@yq>T&}+dB8Q;O zcDwBR7aaB1R5wjMHE&X&qZr?_duQIXaOMB0SSV63D6EoW^|NsuXK(O5%e)48aNQ)JNr+oGdi|7C3*k}B5c7n;pjco zi>)3G{#j;_bL>GvL&4;nxDb}wWw3>TC)9n4;$l!DU3|Q-Fgv}ow>RTvw!7F)1<1 zyzch@tF9#~3>eNoCtcCi+@Py!j_?csH%ie!$cXnykj8jPBjwmx2zitOj7&#!S>-$3 ziGo9qWqN;;LH%JJ+n_vQ%#6H#NO^i;Og`na#n)jvG~PV}xs4iPF!I(XbJ-~S;I!C~ zkB9X$1crL(y+Yo`XLfAtB)S~!=#5S`GInT^8u*;8jjmOu{USmZY(N01Qee4}7!f{y zSC-L$_q+pO+ou?)=}&A7Hsu%759MUcXAbgW4LmjcMpvVeM zgU(B~6V>bqh8J`DYP)#f77Ct^3(o5hIw86I#G_pU$G@yUacCnH@Gvq^)O(P(j1(iz zcJ9M0WqMqKScrZk$CL&mMqm?EAFzlJ4J5a*%S%g-^j2V}T0XH_?cTUsUEk(vZDWJ) zU0UMq#Xz~v2eb1gq{Fueu#Es*`N9?H_W#pWqPx3yd2xTSdj~)@pU?UJ&HFdnR7ccS zsTa#?tWh7aPwHj8k0%Eb*_^*F_$s3Ty3J4LqBOIlP?hIlp(!E?^U?}7dH$SpdRuv} z%xPpoBp7Eit_{vT@@T)4u|A34?W8)gll1zmU<3!@XU^af>LZS;h`n)T{73^R4zYu0 zAJNEVRUl`>AQ;(YUVNR0W-IZOKB0hVzA%YMw*X0QXAV}T=gD>%Hsm8bJ2uwm#WjSe zvSCA5p<+K6sew|UH<_wjLVXI#f@Tyr%0!4tWl)`Qp_3_x>oHund%4cqKR||BN|^iS z!c1$OMEM&!Ejkxn0x7BuIz>1;t>r=Ni)@Dh0(o{i80u~OsSXOc{3IF=n=6iDCEY>b zTM$7%i)CNJL`_?yL7xOmRmSsha5j>$$>o(94vFWM)dShkzanxBS#25Fe zofzSAggAUx_18SD4D5f-^k|M^_5&`6N7YO#Y_LEp>-PzjW2WBr-Pe1+i8;F&>`RGtN0BwV$#TMrtJy&hq+2E}Qw%TDoSF3BQ z)V=(ttxfgbcfa>xO>ef%Y?aW!Wi${WTUqX5Q1bWMXQj~5n=V}GZ@Od98@(cwSr|1{ zIKgwq(ZF|qHRX3!`!jtW3dpeShP?k;o$3^F=3d~CpUU!-_J7Cc2r}*S=i<<1!G>!>w=v$9O&*hky$;1!RpaX@yzpi zuX<`;KETCN<#O0~7v~v{H+JK~)>Z}*hQ);;&vWNCw~yc>ZiJ!YWbKB=kX%pwS&)x{ z7vUqh-kDu7AeK;?mWfdz$>~tN2Y8EhRaHaYRK@_{WmL-AvhiGlnu~-^!XPg@DUgsS z@{uU<@YrC>JYNaF!BHmP#>#%t+P`1R+W4EWRR$LAu^S)aLtDOU0eGx zo$e_5oI1+dVmnbm0^n-<*^$JWpNwoh3K27p3_*&_uJ5_PzgR!l< zsfU}@udeda-V)zzZr1ztzAWu?bs0zbt4qp-WC%g4>=D;!4c+1A+<&0sAs0*r=O8!bIyES zk+^L0-{!H6hwHjdR#SMpI&t=dEFU>ifBE`}`pT6n+#L%{hl~#26hKSI?>)}{`ni8y zr~Usks-ow8&%4jxS* z3(=#^r=lYVFh!8+e%qlm5Mno>_r{;mFzQ~(5zy%ML6ouny1hF=?@^wbQE((P@Qhpj z^cgVxij_(_4?PwHQO7N{r8;{08?sda2^F?aPh@0{Q$(P=T~3VtYZkYPbcW7V#xG(7hU%>(>|VkoYz~;H3{oI};|q?i;+vAb@TdNt5*hDa4_5 zADnV$pK-cRbw)6fLD0rf$APfevnl(54G`~=iFeb)=zCD>vH?%ZQeh<&+X8k7Zw+| zHGI{4XU@xuiw{L3-@3Rb@8r^PCD!2^Pd zGHp?tP~b6!@x;^W_8Pxz9oY|6;kYUuwtuBLZB*U7@J-4PZwb!50QzTj%Uxety+xQo zX;|EWki12*vhPG0Q*#GYS=uPA5h_n`B&$+kpi+HuNYi93{dx;QZY0#tbio`LU)FzcU(5PS_v}DeSH(UBzeX3)aeq$D-F@1BbtgaGFQU_RfP?v7jq?$FZ6(v#H@~m?ZDv>HL?(~$~Nf& z^--Cu^MniKr7XPYS0kcRed{q3R`3%=M@1;sGaoi2P`0^fp^w84GZKxb>HZq=v{~

TM0UwfA!gM#^cC@JkRuuks7!ehB2#dLOl|>%`kVcE z2w4W9M~f|}Bw&xBaC4$6C=^5_$eY$hzgHBDldlwq3c@pk1#G~9-^-_71W?R@DK z+P!+abqMzC;jp+aWi3JX8Lc`;Bdg%R4jtyy1jnUPy@TljHR?$|KB~0^gN3|9yOEES z2M(mN%T_@e01gRxK)UAxRkTmWn62}S`Z54BDo7~2tu%D5TqT`eLj^nt<1mWA-Zy%g zLDYl<><&B!^CV_Ype(U0M{KVdzHvUY#uKi=az%jhHG)PcjlSb@DIdE>HZ>#Go*Wpk zf!=`4{<)>4#fPe<^E7v8VWAy#R=aJg6*~EjchFUOfgU^eSaadRh31JTo}j}*hi(es z+4evB3encxEnZ$(X1YVP++N?G?WdMpsAmt6VPG~m820XOc-v=XMMGv`^U9Mc;QMNS z@{UC0dNd|cEC=S_Q*yWI#+w;P(`AVrs@M+LuLWT8k(V=NqsW|IB1=%711NS2F`MPH zVE}bNiod$6A^-~-DKu~(kFcnY#OjD^08%;yIEM8FzDml=FkBJB<66U3NDVuJT+7j) z0Aw?j*eM};YW3BvkSItJ3w?4N9s)SRWt1C|hVOCi9=s;U0W{9Je7!EnZZS^^pGhTK z;9q_4I34}ovn}`^CE0JN+1XE@>2GhIes{{S{J;r1^3iwGO8Z$Y&%ADc#j$fp_!qZz z1ryGCE$b#sBk8GI>sh@>OI1CarKeuyTh-NT z*V;kpCg+_1OoxaLmjm!5@i{tYJa-EK+c0i*cejPV_P;a7&m0XMNIRj0zS)7eyWRzB z8a49lhuLH>VL<8L#)|(1BkCQspTEo|PhtORaVA_)~oxO zM*`;D5iEAJEc3mJeH)+3qoS~)-bRS&QWJWFwO2kixwMW0lb!46tJ*!Cf0BnnMJRd~ z3P|F{31sB&RuDgsCh)5HabeWN`BCHAeyDLEYW4qIiTy4=Uqz&C!ZE!%OLdM~#jll3igMC?UQ zeLAa7SPudnSw`wS09~(RRz!CQm;!RBo*Tv!wn>>?(?@yA9SJ5wa!{9IO+!kDI%ka^ zs^Rq!&lenLlc_yK!7lZVMdMC{Iv~bwg`@q#)2+%92( zUP?#iG#P7Z#J~&EvZ+Bpmta`ZC64V0jAoI;w2j>s6O5IwppWHXc|vyngE!K}Qe1^(~x5q|)FOg<1cxg$WGBXB%90x2S}v|xr_bnzYlR?qJcV~Esw z?f0g$xRUf=)wpLSnxfCBQ*6MN6`*o`BDic3D+M*X*?*cE=+;e(us}vZ9%OA~d?}08 z)^LxYEG(O#Uo(?~ygQMu+=K!!x%-;~iLi5=_JJR^sGLfRQjh%2BlIqZurn zFAinlamCCQKGy|N=qv;S6bvZ2GopOz@uuwjg|T`eOM!fF7~lSC601Jl_^*hhBlVrXhI+KLt1k7ux26@km@DDQR!vLxfn4(687+T z2?|<;I65L#tgcIGRb9T*Rzv>3K$ba8z4TC z^bsaS`CvZ?`8i;VSSI97VPUTfbj91>D&_gR-UtP!g{?J;b_9i?eAa_50vME`tUI4U zCXlDrA~*?}$r!H^3&Xw*QUxleF36+?&taz!xD#_o|A~v4VLDC!a9u$=-~aw*-tc~M z0=g6D*6Hrf*ZB7DZ}XKaPdht@gbs}Zz)x_~ZL{dM0KSvnnXawhU9a}%{oMb&jR35! zuHMV=hP3`)u?257I>deDx$}n+KiHrWWNe*UBQR1S!c*|dEon&?!@Rv%W~N*Xc~~C} z92x>bz99e7!a>N@?5-J0%BSh6VRe3VnIp<37yz>;9766^&8Gjup^&bdpn?yrv)vV+ zEA|LYkGAD&g}GA0LDBGPl1jtjy6>6E-FP2uTR9C>v`dRGgo00VuGGV-0Hm~D>XhZF zpo+mzO8!ibYk8T!23AQUHJ;2CeP(-Y`J~V>MSm;jlRoN-mfzC?|DSw-mcLQpKZx+r zMk4~$Is(UO?IZX1jzAX?u(TY+*^5I=u9lq{Vf~5yS*RQ>qxvf#r_^o4N^p^9&O?Y@ zZ){;1=V(c9{KcX^`41MLG5NSw^Ad{FSjs;`JD6{&&SF)0Uy|4lQbM%_BA`1aObX6~ zHc9BO;-9!aC$XNClc|G2Mh!BL8HcY>f5A(bqa2AJUj?|r+0#=5kT@O|_aq9-tv z=m^+6Vm48%+XTrSoyNmrabGq2=(dSa22p94v**qN7!Sz?oX7=H zm3oj3R^@hq!;5@42A9yd8p!t-bfjrETjz@<8b6(Tt`^!k{`VfI%@+7q&Wz0Qf3sBR zdn(={0>@KCVCig*2=tB61FZP`b&p5TPcn$~>GKqZ0xCG3YM5mp$1>|`*#m%lgOS6zjn-w-TDPIaiv?nFld>|UNeRC&fJ4X}wMfp+50~m`?C@4cY{ylhFNISeUIRYr0Fcx4+M8YeYxs7`=M?HvcaD9zFi} z<73Nu-?Vh776EoU0M490Q{6eT&O6t3n2xMf-N=8Z+NoN*Q!P~sr>V4UYQU3ntD`DW z*G!+qmBa0|-t55@MtoI3d$O=Ft}zG>iI7Jlu(JeZl?ki~dK;3Yle zA#g0eiJ%>9hRRBRR{%)b$FgBGytQ=)uwZLUo?7?08~W7QEXq(sX$b1ix&Dm|oGXnE zhzQttH)6Jb+6+y0A_~W(ub=a&uXpX_YxT9$nJ8KpH9$IFEYOa6e6YBDdbx?|Ns@{3 zpYP|X@L*4SSvI}eW@pId;ettenSei!_|F{s){OYa$aGixi^`%aZ=ZB(V6}}1EVhmS zcM$;yv0Gn+{CYF5Bfxw%fI5L#wCHG@NVlq_J@BM`#&y;X(#ej3$+kgG@;8R($l-K! zcSZR{`xwDm6cZAx*HH#ilmeFCLw~aH1t1f-|yr?(;l@(N|is17!Vz8}m^>^x$Xi+drZYOy)8Zzf0>c418QCN5WP}EEjbwT?3;m6b&~5xIW*YJlM+gDP63u zgaKhyciZ$fY31x@%B%zaZ#n22$?zw0EH6c)<_QoM-@Qo-_ioVs*IuRl%db$gv+DzQ z{Y+{zcK}HFino0_GS>}uAKfCNVkZUV6pi8(fjo1bLFVLb5kOrV-@Zp%;?>Ris@DjB z32|2Yr}b0hr_aa6xgoTs$;A4wk@W+j@db3bJcwKd`^R1(I|qP~Rp=)KI*fel8$9(! z!*I?BD;H$Zk+KpQj5WV#5l~)GX=6bh5^x%=ZUQ#mc}Z`LEO+1Z#tHavLAi|;nsK$> z?E+|jRCM=lwY#v$i*l>A25TwpsZ*CbCx8wM9jXYxsfSMSjm-^SU0Y?^qH5Oc)yuR@ zi_42ue@1hr${S5X(zsBk!Z5mq6hSG&LLj7033Pt9f^@p79CSVzfttOKWJB)Q!$HT( zj%f?u0924KjcCNQY@WZJ=7;t`ybcCzM3%mMS4RT;nqprhiHif_kMr6A3z@U?hW5_F z=+HrXHpI(L@&#+7&o{bMEY#4fqe?8fv|TbB;Ji<0Pnyj(`!n?XL7r1QijwGz!!; zGTrq?#_MSF>P)ssMZ6Cgub{$x$(hH7LVwq+2J2G9+dA}F0@=c1JKGha9S)t2P#?(K zT&{}H1F|SVW`(nd!+JOf7!_X|!4%}Aj!2q1%x@EfJ~I?RpG(Ecm2(%(vY37lq;j4b zP(#%VaYso;7M_|spk7SIXP0haaq(35eW9IpzDphKuhQ=BUdrHOpE;5eKL7ml2LQ;M zj}Dasuz7lu(;+~2wvwPaC@A%?rA4aajUqal>QVM8dps zF0^z!tzT)#u`e(6jXE0+ooc{?T=E>e8n)5Bz{!?y$djNW44x?*2!=HYHj*^wKtdJD zL6Bv|B43Cc_g@Yi($gSm1v{*<>~W`?xx2D(J(u$eI+D4)UjLo)Ed za`tTDLNyZp9sr86vje5Xg@giRB0R@FL@|g$xjoQlfi-<-pX_`Giolf1D)(LUVhjB5 z+iZcqo#TH1fWH~ht#2tog$Esk2EZ0TWq+QI`(1eViFRt>3@tr)vYi^3S-bQ(dPFXj z6h^hM+7T`bfPa#ds1xA;7I_lDA9M}GooMw$gOWq_JFqe*BexOv?ak;(Dj$lQMFfuW z^L7tEGgkz~IzDy(^!%mKyZGF=5P2t;oQKZ;Vdu|GS$ZD!D+O!MTLNGGqfMw$EC->u z)J^C_S{A9T1CTD795}RZLWNYNoB{!@Ri}+9?$ptHkVoI=`sdq7|2pka)lLBj?d(=t z+uPOR;(}a%<(2AperHyF?sG&JE?l6)LWgDw;NoX4R&>5~0@gO=)ty&Ud#$$rbyEO! zQ*+bJ!f-wYSb<+xvx6~Cgd^*$d$!sWbrFsGh)uQ7dHTU&6~7uF`^-@T8$l0@BiVCk z*wUK|18`6@LL}DLtp6C_PzVFscO#s}J8{Kgecud=iAx4`#}l*gI9;1cfyZ_6n*y9J zZnWc$3EH8F#@|DiLh;yMiUMTkOY_#Ur7*P0cVSY!Jn_co>_~W9s{AMbNn!zPT_4!s zaJ_eWC{JJXWmXlt6KMcaHYUYY&Rw#F9O{1{hx$k7_d(|oKe-S`X;DYXb>+3M3%#Li z5}5Rh1sC3Zyqy|2N_#K8Li<;4rm2Cb?_xM&dOTKFD)o;;A0c$`1iDAoJx2blY;sVv zZK!S_daN|%qtU>jI(mif+D{Z=(azq9$m%z6BF!N}x10xSW-RaQxR{e+1+b$mI4ps= zR16n3hGQ8iD+nh_p(EiL@%zk>o@q>&*zLm0M;LjGx}*JA)UH_vCbx6S6T36iAdLoZNZT)~|0)TA!pi{y$YU*uG z1Q+4(RJN@ z3!$D%0Jhv720*aL%|N4|%#Q@GnF!@z;e5=CRo|%x7wC6*c$|TcuCO=NbJ_RBHrOFZ zJE!gZL9h-^kg{9IG9r6F)miJh3+ow#04{1%)J`SEZph}%EfRtX9p!JlNDzEjg)y~n3c+)LMK zr+xT&I(P0u+4JADbXcYU_}ug7Qj2Y@ZOHQCvMlW{@t*9}trM2c0625v%m%{|pStBt zUxABL0Jw+U6^eZHjsPKk-TsJZ;9YBoUti*rdoHu{qL1k*cRCG`=Gi+(elEV}y-=Ng zdV$>_48X^-dh90Omm9CU}kwp#Q+=d%5` zHJTLZRYy{B-Ue#hjinjW>O<`u|DS%a1^>LA?;8#Eml$OZ4IoTNjEZ(pCf@`VK-8@f zkQ@jMD(IghNNWI&i5OM4EUSEFtxXwJ0*<>v)E8N~&`jiEV_ z0Zf!ta!}RTByw!jfd-Dg5$H9IIy>ThIhddZ71!m!gt7siEwUsOofw)SY6tB;%#_SwNp*pHAan^2 zFn#Eu2h%!$ogJc;Rj#^GXEz1VUAuPeUT&uV#yZuTk`6@#AOpAjm;dYklE3uwm#W!( zRxQ`vD}cIX7>m>`06co+=sJPeeGwW_M9Cs73}7aeU^|n&jSkc0dm$a^krmouvlppF z`njXf8OV)IgTO%K$KQ%yvqOu9<*UMKwi-3>0X&zNev73I(-R2HMLlh?VNEeTk?$@T zBN6CGP^N7gA~(+3O?7mJ28&>XJuv1}tWhApj|L~?LH?P%F_o#nA!riw?np;e)+P|` zD5>NJcqnm2>*c#5oX2iEUpKeE^5AQQ`riPR`chsj8-6gVEsW>4k~I5{G$KGA5!mmh z2HHQlyB8x>2_Rv#-dzdrxi>|3UCV0GXOq_m;5rv_?DWLi=K9;)-?z+xw+6Z^WA#j* zO`nbFK_OezEgRA62vx&<46PzI^2Jf|pnUCI6@a4hOBC#aKn8I{&TdOoxT-%eK;fca z2%$^~g%Rtcecrl%nGp|lSR<_va&zs4ol=%>X42j((HKv@UZ>c}0P<+sVDsMIUNxIB zZ{M9)3tiy(*gmb@-e5ZMqFlUqv5QEz#qzhQ(|qgb@N5Hovj14WyT!Ee4(=BHb@Tk) z{69C$Cyt#sJ-WZYYy*Y_pu-rcLr{7Tz?nXkf?jH5&HsAHD-PyBeuQg?Kq>xgdAuzpFHQU&svmM{Xw&V zoXgC0nboxVo)-Au^Nnuj1EoM62<=(uvQjX#60`eufqzk)m)S2C?0A~Bj=(HU4RmV+ zT1TMUKA3x_0i?By13+IV%~PH82sZuW#eg99jj#tiL>hos-GYdEg|?*{d5*<@LiVx# zT!_cv%<>I3L}DE}=>(qg7Y4w__6OY(m##4v>>ow`I8;q-3qc>md%e;NmYHp6zlhLn zp$N*OV7TPR(iL2p=rhQZFAH`@K!5b*^k%2~-DIbnC~PNe|BkG$tuHJrQq#@^vmk~4*yW>BE;tak1xz-ABJvIG z6t_@z$!x@(>z3Ceq;{wrR1xaILsqg1^d`$8P*Fkn!k_fUgm7M<5-=g)$|g z7zqL)6S?D=`f%T&1d&F!(b@?L1D&-#7aB-Lffd7Y<V)TfD&mO}dqM^r3Ak{7pvlRQu~8vsboIiHdk+Mw%T(Qunj*u?{+Hq@V3s7}(_Fp@HKrhvntvjd@*hv%kxCclIkN?+jUUr^?@7bY0a3GFSN`mu=3hWKV74xMn9<2w_*eZ7sitio}vT(ij zON^xUx-K!BvJW$Wo648su7}_-FyVkJISjTS2cif~1LXiHt0BP!IDH3=MkG+m!}E4| zz&eBOT1}n?MrgJWkGyUnVxs(y01o;pX2>%vZka_#6O>bj}3G@;8F)H%LNM0kg z){(={KwR7?bo`H;0J{Vof&1JMXkN;T1Sj4rU?0}OTGqRv=`-eU%?RK7xB;Gix94CF!Z=U07UNWD3d01RKh#a7Mg+pTd)!A9IYyk+o{Jzo}Nzi6g?2Jy7gsB|2_mM z`VW1ji-+6%Ml$im_R zEz%M#udGyiue`!LJ3G9xzRt&wACY_-;GtLpa3~yrR*=mzm!9DlUwDDGj;!;>Y@_O? z0A}?}T5xD10F{Kja6}_}zIo>W z-DAizj4a7{(qo6!t7Y|GGoSE`E^M-F2SzTZ%la*uuR-*e%TMk660X}@=(_LSC|@HD zsXkWm&~JT3bu@0lh`}?0E97m#qL9ti5;_>{?UOUI#dpXAPS3y^E|qV10gy!bIiKQ& ztLW>t0zDfO#g^pHbtm_I;6w}j4}62bU*16_De0TAJqLmRYtgsK)S>z+CAnrtpj#ub z+&TiY2i}?9HQ)|q@8GAO3LumL7~2(ro7|D@(~>H-O+)L5QS5yVWMwdPnmE6#M*9UP%+_u#vY zA9J~bMR}PgT~VIy7cJb&M>_~v-NFnBk5ovNAyA-OkuRcm3DLh z+;VGPc`R_a>&8s;QHRM!h1sa|+b^?m#|2vX-2^HZbBJ=@tp7DaIO?|*(@9^T%*>DE zye%9#%On0j+l~1BwY-eLKmN7&g~~jX3DGxccjPs)11B;7&^K%9_;v1$@T87_t`S() zh(Nb}5I{eX+IKsMNwQPh1U*%Ujx}UXWNl64v(a2)4q+Z_PDdYf&U)7r(J5joo#4bz z*0X*KY6e3AeZ}v@G#JT;ErMiq@CXO__nZY8z-gt5XVFpN!l;C&#mCn8D z=-tl$M?i)9{oEb&J^*;VRFa0j?0#V!F~sK~E$5~0)ExK;o-q3}#zz(N(sa1?z#Io~ z6#6_|$w?y=P}iO(A{0}fUz5F_LI|3jp2OY&X$2jzLdOWVGx_r-p9&l)iZW$O+jl>F zUQY~E;h`TTk*X?pvAXr?H5vn}#nBLn+tRM=G~$1MJL3Pd z?TG)q$I=@DbxU8-{Gg+#TAHtfGDa1YUhDcdNka531^qJbH*!xv4AynUBLeTrjzAj` zs8*I7ps`!^frzj*{5`v3>>fjoI|Cc)70XdrK*U=(a*4NeO-gcR}wd!%LHhKYglNR&kxy*1yXh*k(rk@!_o zkI$!7#d(KZd!BF!xOPBxE?DhNpG#fyk$K&4wb~9qX{Xw2BLGL*5ovp)`f_{!^y$<6 zW78DCH&2}*?sfp2zHyqb-@4AL%c~~TwbeCQSnS?{=5P05Tf~=}e`ItO=F(MHdhH52 zP=dSZMd4F~yfb*%;w9boBMvP3A3Cd8U%iI!1sI#oprY(ROrX{PRvgpg3S1vG4?7hD zFqv%h;GQrtrnm(OovKC?2n;?X*ch`PYTrag>t@0WU<8I)odf?`)VFAIu+}# zxhNV%ll zB`D)>pGW7QtbV`$4tyPS2vpD~=$FAs0H-#|MdI)9{DFlOvXEG|IvmP(thx0UlX)-# zMNvh$3fh)gNW=#`hhGclgE-1Q&y6y}al=p#eP!^h4gW7KFVVunOlYIe>FCk56#l0} zLT`EpAdR#x5Pkamr<;w<4PIH_;#TOqcWaODY~A6z&75~+hZn1Q&BHhjSk~56%+nT@ z>GrbhHJgDbbi_PB@S+*?#SiMq=_CWVZck(y>K#!8Fyt8ke4yVu9Hfa++q~z%aakMF2R>0ApS4A{9|dadZYg^oy9mq+ql>g2Fzv zLGZl9e0nJl=ld;6qwS5mC?pzUbc&LA7Ajin=J>l%|9iVR{y8=I5Q70W zqbQ@+chKge;5(@6>(Dov{*C5I2qr=YgUZ1aK+%kFf8FNfP0us%bdCV^5rL)ee6XDw zcqj4lV%hXi2=pg(CXweLBk1SO5aFUc?v$@W;DzV$KrGL0$QO>bQ3M&JBFN{Pde0Xl zktuKB1?q<7+cVw*);W-37(3F=8>dX{a9 zRw6{ig1^AW)xSihI(z$WP$DUWY}5F|GJXe40mP0+JaG@ zI$c4OW#2Pq`<9vfuprAz!=Y$U#ixv|eto@@eeCw}w}9XMb|x5XigV zjh|njP6L;qZRL4>Dyujr9{Ej+>q<<>dDwJCv9=+Ydm%XZCDu_BnCvWn2Wp*G(0$D5 z1w>GmrN>cQa9qd?jEDQVKeG3I8Ti|a%>gI(m4IJLw6xCyJ52Nj9E8_OHC9S_p9;oG zqdx)y9)qWEo&%vfXAzz)( zgrnO2AQ^%wB=3t9cFgq86=&R#IklxuzXssBj5M$O_C1be1w$ghi#fr-OWAKx=%sAT zE^=Tg@Tre#dA+b`pv+_S6p6kGXF1c56~grj$`O=m5c~f^(QJ&c(xA6zW$&u1L`{`vl|vQWG|EFxlHCzcSZ(vv`k#AKqT|bLLuuKqd&nKh@I~F!V$k-nkc1uK_aS7Oi3|^09yfWqOH&Jt?RZU71C$(r#ScG_rUt5ZYQU5Zb)XzAh61#)IN+|eL!!zItgRtn>?=I1 zAl6FA`RWK)_hTO-O{c4QUB4aJIX(+j2x(~~9l@u~Z*XBmXhb|h0jLA7m{x|@a{W_L zCM$MbuApNCHD)M*3%<~fim_#f!eJ-Of0FCxy9SWgJ*sE>vbQ&r#lwp!bKmAAjTou$7;JA3^ufX)F}T3Ec-_Wql$2!(mBj)dZ9 zJ%dCn)bAzAPK0k0k@Rv7>mSfB!-x{~WuWttbzH3PGAOLhOAodNnr+D2&9XJ3%M@+ym{%|ETZdA6u9u#UB-N zIw-k-7%46u)$ik(7dkI!Bx8HL9xs0=0yYl(djkaKeZVf}&+wf}JUx&{$%_S<>g)*2 z&UEJp%>4PZXf?ODZdYjv4t22@IjF1it4?GRH?F?dL zK!;)*;Ny=!o}}M}Rkqi*yB9E2d+ij!Qnggo^_+DcLqSnHFvI*L>%uiXs8MwSC16H{ z<6^ib_5|(BpPi+_MfVc7^;zI<7!twPTi@o7~3WI)oIK z>_EKfPr4#KYae?+o(>>*<#Nv>V-g<;k;FRM>yUfH+1s|po)sM3G-TmZ}611!kMLuCeI*T11c-XIS|qvehT7E0m+o(=hr)zi`lI07eHN8mx4o$U`4>XkBU zp!Gck6}Cg3`mW#w^x@*Z^LT%7hrmbuupNjm$p*=z#t|w)L_7L& z`=Yy}i5tQQO3n2V+LvZNuViUysWZ?OuS>JFy~=c%=){S2dFrXB4#iG@L*W2i{LIDb z@*iB5Gmo5U=mycwY^QqzQ-^;^$W1y4um=F#CW?pTxMxljj_|d<%{Db)`@l2Vp6?8P zgLMD`&OnbG_MNjK@oO}61kxX*)jU*DZGKNdk3-pg(c<}qQ8y2|U~i^4AB&soR|79X zF=9y2mtlmR{%Le{4l8-Fo;XjKWox1M+*th}fuSw(C>=OPJJ_G!l7U;;+O?nlP}z}r z|5lZOVIy#c8e5s|EcbkL+xgbpQ2#xD?(7iwUyI~`@8cI#KyY8)&?8)Yep7_SmSDui zb)i2Tjmf1fmq)G@-Hyg@4YIcH2Z?qN5qPkV2y{~e@QklPMGFA>p7+v+nW{33-VpQ; zaB9Qa0P$zB&jrfhXf~uMCsbI|3x%lzbPB?=S|>CxF)QOgu*9(r1dfkg6DmjKA$lQh z_edQjp^>@~h0_8t>J^wILIY%G#N^ZSC{`aanVa*LlJ+T}YCfOy-rk(BahIFmtU-Q)^>QM+X6tVt^2ZH(cWHLih_E zfReo*02lv({tp(4<*kEM^cy24>(Cyer{G`&9`&n8c4EZ%>VXbc@aMm@C^6K6O=!@{g>{@^BLatX89iK27O8GRQovfp)f#!UG&qK%30>6G$|2H_=55Orw zr^2-Xja&!kXS68LXVh(cHWnd61AY)m@mXFAbt=;EYhHN$GRyA=Upnxb8U5FLKplaW z>UW)>`klvU{}R9lSMKMmmf3j!~?aPLk> zoB6^2iM{`8vMfpN12Ok=^JZpMR&`BRPfzy@fEfUq28bF!fC!3O%8Ulk3@==n9viQE zBhB={uh6KkK$`JGpdVM#YPCZVyWna?>GV|s=t`jH1 zJ$~*H=Vn&-fRnk_(VcbAi4)=B5#j&BH;EQ;F2)>;mV-+aVyG6cR{41uRKe)O2+bVE8dr8+~iR49a5&rViMnnr9F6=KHX+>W3f?iy?zO|7L0)d)mipY&54L(N1 zx`08WQv7MN-8fL2#s~{2S(`yxHi2L;8g;fy;S*8g z1!&rV9Q>S$i8%CxdKDZPZox(NiRqn3gMA$=k925-9PX?*F;v%J16`FeYWiS2ls1aq zWkhcf+u%LDlDN2YhE0<94V?BF#T{a+07eSqR zihu85?v0!BhsGjWy84IoxbqiqEhh^mLts6x5%>xX2m8ek4SYF!&0w1h!cknXv%JM# z)9vfbwSlJjjo2jJlF20wiGkbeB*Z$}KT zY`7Lv0RIjBH{)07tMj>gr)Q`9rR|sa<=M+&3Y4w_P9MyT&t!_+M$xJ#)y*A7hi+~> zC(PULMsY6hI%iEJJ;@gYA{T42xjB!>dkOSc3S3i+-kYG??JORy$)&){rudC_aw42g zs7e@dLj$4aufQO#B+85SYS|q3!Mk=TN`3{xT-%w*j5D$+LNT5fsYpqKPZ54)$Aq23 zf&zqUpV)~1n`Oi=3v>ML7&i#m1_aL?vS{+rCDX=)3+b2a6xW@dt|JOB&Bs36OU3^z zMWE45)2;3x{Vv&R_U zCs10}wBWg7{odnGRMOHzfT)=g(EP!ubQU@q2psCC1UbO3RU{k{53BNy^-aCHDjE?~yQ0>j`)HPAVm81;JH8eg9UyfU@HR4LEb>W=z6TG`c*lWG{0Dj9y* z7vpGC7pC;JzG)x-x9-wiUDdw{2l!wRs5|~q_{I3o6neluH&6o+$+h|Zvo3xK&gZO- zg`jMDpIU@EQA>F3sylcDhF^G-*1wfJ0$fncVM~w=tkUBm1@j8suC}_3y2R_E(jIoez_7ltJh!d0b%M-SQu=IzDKOi zKdVueZ4E=`^YcAfrz?R^Ud|BT(b|jjN%0DW>#zoZ-~Yq+=`lT)=Z81t@N6&B&vsH1 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�O`T2BgdAFYnP$vjL~nHYdQtzGB1n@-X08K2h($s!-#DI6?JvQs4)Z$DN=k zqQfAUC@TUojE(|cp(!CB=C|hr^bs|>H7cel@=(7|l{NugsNZA#vF#jv3?H2~p8dfz z$2o4M<>fAYA9=gk$m!YnK&PjaCP`B|zHx))D;~b2UuCWH{Hw3{*|TT-@Zm#w^5lu6 z!M`2?c%9xoT?YW(NBR-Tr=NT(_kM8CEavl9U-Ql1xS6H%_~=;9_dCuj0CsyxajtRL z$iB?}Z-z;xxl@dDG|U_<2Bk^l`1?$Lj4ljSU8vDAm>KRJF0RU9s|WpatGQd=YlY)?1OV?F9mV}3JrF%TiN>?repH%JP{p^l zEYuUL?c*Tc2AVD`FgP5f+5jwRDk}og)_`%O>095(fq?z@9+I4t>jUfL8<{gdu(xfj z+rxkb)+ADiF8a6XdLTI35fWHU0Np?$zeP$|APBPyEbX8Ca~s?eG=g*ny6l7f&PJo{ z;Z_$LTGFBy0_@A6jeJ1B>cM;z^gBae;R@SraSQo}(uh+BUzx4t;P3!ha`GWiKj6k)0riNYtWU5v6$2F5UT!cS+8G}S zx41A-<7-;m5OtgxvVe*%zm118+A>^VC{9$lKk;>H-b}AhKQO?aw@A8#AXt|d>=mKP zgv9&;vcJGg2LS4gXLPh=-H#~4O@97j{_pnupQcyixOAgE59f0j zY?uZfWZ+He7~0SDpqu=I+E368&bH@I23_h66wV|Iz{roFlUpz_7y&LFUqPD!j49|* zF`6KQD%2qqvOVBLdLW{+1yR{arByHrj!M!gE1+MOb{RoHEE+bF0muG7wiC+R)=W_F`w2yz)lR2pCB|zDxW6 zBApTNfaJJ%+UVFv_*I!v4G@%PI5Uifzo=o?{@JENezmd9Kt&k}vSH=8+HlS4Ryc|; zYit!SV+}6wjEE#oI3OQL^GU5={RCY8ZA-ufWE}u%z4#pKwLU`C&oHrIZ?wBz1b#Sn zXj=k)`W*M)=X^uW=LV0VGUb1fx5^{(G+_6_ya*1Lz@uDherq%Fc?1dd{l|FgbWNyN zaTJihCNLS^xxqR4#DGhq8<9qWwxHT3ID>A3X!iYrgt|U;)?)Q61E2D4C{~aCgIBfwSelcg@;q}Xx zlEzf?_@Dmi!-t0T90-`0`4Wt|PHX8p0C3gxnO#Rg-~X?_PbX);H>GIRhd1xY7xaZ? z+ilNfx8LP%ar-E(xjV~C{?lJN$9Im432&B>rJezhI*iS}PeBnbKe{uLc%7OaGL(M} zUI!7DW1_g19nD$B#m)yQZjg&0i+2*xMi-+S?{g;{JSz^H@^t`(Q}|GgiRT4lL>h6{ zy^M;#)|JaGkxoW~D_$us=MjKG6)*9IxH*yj#O`WGtBlpoqy10nD*)-f zNaq=~Xf(f@*`mu7{6A@mG|B~e-*-YkM?WRJ=YT`cH&GqY5wjL=2^9u7ME}7wZ}kt+ zaTIdK2K5&j3R~t6--!Z`r1Ojp)9>^aeCL&Zt~i3O<<{fxf5j%{4tNKGE4|sqh}T&- za6?#JfxEFG)|FQT>}h(nBbfsM>5PE=f04EZJS4esRP_e(GauYHIs0n%N`u(OA|Z4h z%>E5r$GL9XMx-771e6yJw9@B>LuSQ6Dh_JjZI5@rbCOUgk=-UxY(*7S@%GMEBM=PI zgxsK&RsWhJP|G4cO+Y)+!pnIEy5t`Pa8g4@)HHf3m(C^7s{p~C)fw2K(wqMDyaMMi z7FdWQsvfO3@>QUJ*JxS68|bs&0FML$L!piFV8pmpVwtt6^og``riR%%Gm$%MLh+8l z3-wuoZ{~azlMBee(C#J!09W~kD=%YE!JJC2G@v{))FnUzJ|_-%4IY2}Zs!>YHNiCV zDXyXM z{eJq#|NNg%|LXJ4hsTc}>zHe}-U4v7bR7V=Lel6{S^qI>W z@FYfbV-#AT0;fF6hbb7c2e!X|3gt39IEMfaEm4D`%kdj0QC!{i2As-6!F)hR1yN6! z?>U=zU87*N;-EBF(pKY(MnT`;jR|4~cCme6WVEihPZlkP6gSNc#r|sI#FL zghp2AQCM*geX3{D4H9Vl1n{H=uE~naMAq~!0L>J90r7PZdA^y^MLdHMCXo98qM^Yd z1Og+mPzN8nz>u|-hKIl-_s8_!Q>?1@u9vq5=g|8IgD;V{m#N8vlQ&n!Cx8u9>~i{7Q8 zFJ0lzPwwR4K&GtW0f!JaZCUhk9Yr{^7AGXFt^hv`9BoBFIwRoYIS}w){!R`A5Tpwm@vN?(83VYJkyC?{@UNaTV5N{<_q0R!9tf&{1Z0}Oqqbx-(! z&`d7pD=ALtZ^O{1rP>35g6U&|CEG%^ksKeiO`XA|)yR?2PP96pQr}~u_PrZ$a?NYR zl5aal6W|fIIZ&(*Y#dR|hrAM?FRB95kpO23I>O|TD^CcR6#H2$i!#&n9fnR7^h<1O z0vvF%Oh2*Bh`cN-4r_<$QNRI6=+dY%>GZAmw!=Yx)4oW96Na`9=lrnekK#_DuS8iZ zf5*eX`+53*x8KwGZn?sAb9-x*@6ycwoX$^A^XILbuk+{s{Ne@w%YXSVH&5@~lTSbW zH1GdUHv#k!zfPA;*8za{kWw@%9ZZpK07!q&Uwy@2f8!;8xm`kV=@x*L($bc62w=Je zU>s(_9(Kbxq>${6#&N7YIdpb6D+~SG_*_4 z1$h=}5O2U4j;C}HY5S-6I!rjb=e9)!dIh}mz3im{J`4r%t4 zY27(7q7S`ne@3IvNEiyf>l~L$m(D7lH)!NtA4Wb)#~}%5qdpSIhhmGrF&}lD4w4op ztk>m*`oxpk^oP*g^%H)Gc;HN)ZtB$2G=SXy0+ra{3HWyRgLl9B;%ZNTAdg3Y7wuK}$rp7_ZUL%Y zvNHnaKtSFa@cZARNv{ti>Ue=g<`ik+zNk!{+XkGCVQL2SYj~roiZiZQcbph0HrWlh z)gM8dafp95aLN|Y_Zd5o5Oiz$9s}Ge-Z4P$>?m|niG_)p6+=o_N_ZN3)Ssl!8T6uf z-DUits*CU-KjS|KeOus6ftH@&>i~B`9y0KeDlEi54nQ%WjumQ$<)DC_jBu;h&>qQw zXMr3~FLwGNJQvSzA!-Na)X~G-(kL+xb>M&|!MZr`u<;cF644(7|H`=%(RNbk<3jy< zB@&a*0FZh1e>&Qx$0{~Y@l1_^I(Ja-l4d74z@=u4aZ!cQ_KHB?HSy}-w z3;#UuKg)a{_Zy)c1UsUmqa#X7V{*UD15v3yBXmkYhib28cXe90z{*e)8AlVfD z*GvCzh}Z`IwIT9zy~@w6w9xM$D8RS;H5%z+X!CyfO?A+10F8$;5jcvI5NyIU2Y<<< zR~MG8Ef8D~fp#wagUX76*{sZu#G&RLIBIN`(kcMI(pBkhjW$u!;i$cFfpx%(<;9MO zyj;TB5s7ueJBQ$kQXq;buT@IeZUlX$n^#uqkb*x(0Hd?ul$OF{-%h3ksUxd^nCrXZ z5itiJ$~HU=@~Z+Pc|Eupl>q$c zW)=@N>aLtEoe{93>1DY!;6Vulah7~jWVqPA+Mn640#H1sAn&e^614~SQO)D7NMye!KfNEt{2+&S`omzszAWb- zp$_&ax&EB(IN(UAI}2=G8V@|L1N4H=1T-4%T=Az+M>>$*?p9WKpfg;c1Mj%kdKDD3 zm)2#o-9VoP3EUX~0XfIlAol`!R1RzqPAz@I0BzmtLn=oEI0d}49gydSkFljK=&|Iyadta zxypgZ^CWaz+6*`3jCaHF90VA5^H}IKtpM2Z?c2+FX&*8VH*VeHbOyk^=g;MLzV|)) z=94EGQkwmDKH+tGr*s_vcn|5b`M<|Md_4T*CqJS4ckY`+-n?C}0eo4W?e=@#Z?>|Z zww#vy+m#q|+Luo~aldIDrpE7G3V=%n_D-}=)S;!*+k1&{x%yoC8w|GVa#*$~3LHzt z=%;S;TtEe9Ks>FDb0l!}9fQILei%)FpZ_it39y+Y0iD`0CfplLN)K;d0xF;f)sTuA zS11oGsJc~r9m^=ZOw6#a&(TMv?WDE|(4@`jP7l^XaWA0RJ2=taDiDAv!2t^O62Uo0 zTpznUOjyJ69ppMXJQ|=7?I!RZ4G$6>+cmSaNDOzxji~Ks&QJrE7s&+mfL|hY4IFnW zIRt|a!*6)iDaW#c3jr>OQ@~Gp?^m7+bY|&wa#S$zdB_=%P;Z03!jURN_Kt~K?>&@{ zw5@c^25wAff*KsxBbK58suA2_hG;^i#rbQ|;luvm|SSF*twEfqhcpIctIE?b!BY*hK} z_IpdkJ@z>_2;|Cx#@2I-N3LstEdw0rf2EtXim4g6ig-LUpyB#=p}~&}L}W_W09vi{?^my0E#L3TbnE7_jr#e$d;IbJ`|{sCeVQwL^ytw-<@F(eS4!6b zfGZ>vz9*kNk%#}}Vcr6uX8?TpWzBnM{x59-NZfDaxwM(E%uaL|Z=VW3Fy())z~sPJ^N5d?d6XIyqq3=M{I*O6prm>^tXOb>pdPIQVA*#!OOl$EVO-80Zm*qV6M~>C>o8m9 zJ5?D(Bg=(GMnugJp<@y1TAO9i{@}&clCeg+X;{L{j*?JvO}0FA@(72-7XoR)>34Hb z^ci%PCa=JAH0II)PIL+4-ZHoE&#-tS;;0L70NB$RHn@|M7g*g@y5q5kF0O(Sdd(xTsTJnzjsrX#Prbcs^09(p)f?{C5Gm zI0$J^KJ#56dk8pMLu3MD$ix;5v2EbpYTBDQy9G{P^+kBl=N}NIiJ^Aa|b^ zAABJ+2h`~!qSKqFe0Fpu=lkb;v|Y9UY&Tn>lM@+#CeRD*#*sSelMx zGs}2NZ%k&zd|CTm450b{MWN(Fa7qx=?zx9f&N!$=1*vs{(Pph|5OX-}upv|&1GhLb z=y@Dm$NG>ygo(zCh#HTyC~6kzD=JjZs4q1zL*%aITbNQF7K5!P)MGHz4mxb=taS+@ zs>TDV$j?S8bzp&VgcZ=lsN~IvaLb?cw5R-~ELk^)rkp-K_#lSP)O){Zxi!Mi3?N?Q zX$D5cEgU%J&uEm}8T5t=3TWFG#%I!*Q4nwd0H;!~0FD-L0B@bc@=%WZGb<~I5LcmA zei3<_ZII9=o=;6365#a=bl|P=h9gdqf1U3Q0&kPvHviv2Y6cW^x%6I1xeBniDH|GG zWkvTwMOJ{Eo5})lSFw!#Cr9`_G_aBw^u&I!7PPx433=IPYURB=XY6xqT6NXTa`(r9 z#QranD=QgI$@YOSPZ@Mn2Mo||`EkM^wclAfEO1v>1pJr3P2=yD6#-FKq8@|6fkEuL zf zXXJ8|-s3E#z(XX&+YzPFt|TmVY9N3CZ(ZKr^99KBqqa?a9+L6{ zSB+!0RT#Pjg3t$G-wqS|dQE0Q=B7^FMu*a;cmND*Tk(iCHvkAVw-PjVSvp%>pgkS# zfQx3pK7jARZ*~Lj803jGG`@?3?JxMO)D>?NQyIa;aP0?o_)x?VC!;FPP_qd;rFhhRsQeh{M3f)0UzZDS&*AZQt2vn>M*iVYQ1RMw!Ao5OYp zkXswT6L}suM}VmASNGr?vCi2HAWtB(i<;#_8f zbv2x<5-%Ll>14FJJyEI;yY|3dy4sf4;8%C+>O5O?r8i>iaHBlfmDjr(2uLde{?TvK z^yuT+kva14i%r%bY({l$U}Ox3M#d|C1z@Q)F! zoR54R8UT>+iF{Ms^m;wPI%WAic!@Jy(AGlRc*0m6ipnE&x)lEj_(mnqSZ*iK?EqoI zz_nN7OCilnb}j&i_Y~TJAs@CA{t>dH@W%$JRE2x;Y_lJccB`+`Foam-6$5p6PJR3` z>^-H`&bu_*Ijfq@W|Yl-kj>F@6Toh_%caiG&hiQXy#?TBKm94uPk!Q{rGo(TIc(SI zozs@C)0I=&|DQgeeDZ|p^I2Hwr*!+xuQBak(~aX>i$L$6^X;3rWw#$G?RnW3?KTV> zNrV4kGk1z<&rzA%Onm-^K;;hEV^Xar+n&Ci$z==V`HD6f4l z@(1g5@1>Q03NYjEUfyo%3L*96@IT1J^tYd)UR!&opFvg*roRjPU6QxV(&@w!^1ijq zbyC#l@P*Z8h-x!#%Lcr7jjsoayFB_OzQpC#s>`I;sd)u>w$$}qqZ^41JLy8)bFw3h zSZCMHkf}ZQ9_c#Wr%4LplMTs(Z_qgZ@w2aJ_~|c+&vse&=j_TCw7skJDbl4((}%o0 z^0T7)oc*$Nim<5;CULOU;39P4&f%dDA_aEvgS_)YUQghGXhpq6!8hMU*8egVxwuAV(FiDr#kUI5X<0 z^c$+mulCD2h?e54lsZfw>5_J;^)I?n3c6x{W}r6ZQ%@4@9Xw}=t0F?Fl(Lju?F~8| zYe538Wl{0_YSGvcbx++-#e0!+DrD7>VFg!sov-C%yfGo*iQq8$jfP5q4rRFgNo^lI zmqE+mGXLznfI%>aYRRl^Tid_LKyE&Ewq7gH^KzWuDt%o%6nr=?ht$RrkUM0Ilv@U< z$kzPdpw5RGG~h>Z#w9KnY>Yisq}7lG!zkr!P6jlI0?k6?53*#3e$$>#280@?rN|C- zXBtA{kj0}&J9?JSBX-OImF^ zzMxPC(J0?)2zUi#kas-T-@{l*PDOC-PXUeYvo%<~GHZVhPc(!Gv(vC(WL8m&FB~k) zhuaT&?`f6p%Ig(9Mioy7&TNL{GXnDUf%}Q%;awX4QP~=h?(lL0YhLWjrhMX`8V=OK zy(lpbzDhB7f;%q5M;+O~7O-`yq|0|LKkA{jOwE!CL`}CDpznnT8;;QCN;0 zu+9PCV9+AvA3OSofDSucQEHIF>h$QUEE|jieWsBE>kH)JWBZ77)ur>pQk$4R7TT`i z`BZgYDmTD>UFR2QrQG61M5_aHl?kRG^D8_YRrmo1(}!F?^*g>tP^FG3-E>x_oj1cM zXS>~SLMJrt_Ojn@`OYnw(phOQU%Vjt)f|g_eIl=3zh+7+0Os`U;ls4rTGCa3Lz{vZw^kv#q zA>Qx30b%wIJ`Q@d@I zQsxd6A?ilwF$EHr@1R_ac4^^>;sSb|Ti8YzZoS}u1Ue-IMptM0p-Oakjo$;e%D&TX zUHXweC~NT{HE^~k5b7BY!0ttnU4TZ+cSAW?^t-?Wjnp!+J%ya(DO#@?2{c+#{3Ujb zT;2$h4t(U+L2-=%U+_>n*UmvE%Ol&i20ltKOG=#@U~gLPjP;S~hkQu@mhe8t3_-+YMzU6~VaGpO_xRd8Sn zmOoyXfy*Sdp9&vO8b1Jsqx~-r@!Zz>UUe+2AB?g(E!PK1x;0?892PkJzrRP*fBJyr zWLxcQ%8Up7Av~2GwNomL7(E`?iw*-p1o-L|a$`W4@jcc0v^uomr~ptQ2~`EAd+~b# zf|0@uy~>RMKadBd{1Ec#pAGW44sJ1sA_%ACTXSkA;57y)u;H5};^m#w!A0im`~V`0 z`r~1a6SSrATFdwJ3`03UAnL|3l#A#0Xc@c#!U|L6P18@9{2q5AFGECL0HIvu8C2Jl zWB5dHB7Un$EKZRgM1c?B!yq38NIbw#pL5*zU*5&7GOi!i;w{2J8`fnqRrBp=Pn&6! zbPm8ck9{^bHx9_l*KdY&2|!u_@YRbK!$H(p*Yhm^AAS7sJkDBf0Z2iBaus0H z!q@5Y={f*#g_IqDA1%`T?BTQV$$$HV(=~wiZhxJheeugLa=s7d|7aHKTYA97`Pndc zwrM*@!^SxZHjNuek+E%B0ic7pTmfZe;S4$&S=0g0LCxNo(&uVyr;hQVqT6wZld_GA zvSOWu&l$x!y4qZVL6RD*G;=P|5Jz<4BeaQaF7A&Yu>GimV|d4K4q;C^&5y*eiI$+Q%${V)k?sdJMX9i z_h1E1;nqj^nZJY1vYeq)BSV-D)APQPTp~lS%W^sVH2tTu@&xCaz^6+++aVqJ_T9sG zg%5dZPIrfLOpRV&o@?9qyzUd>r?x!Z&3+670`eIFb0FZxHVo*HOm1b^*snZKLSl`?Z%p1Bo-;kWt;BCUcqqf36} z0opYJI%KNw9BiugUwNT)vd%ISHNh6AHyDJSYZFt1TY%A>_cpFI5-YBc=@fe^TDV_Vjokiz_r|B$TgTCGGB;<`rmsJ|&G(0!^!&whK7MsfIRfzdWbOb*yr09H+i{#fPbS{%=xA6>-#%7=*LKD= zl&HvKr<|x6NYz5^SLY;h)e|{Owqsm$ZK*E>3v5~3P`a%li-2ipx?&tm|6ywp88Hr8su(1z-p zga;o_fc8KX@7-l&q8eoVE@XHri3>X*gYAh^{H7Vi5E_RXKYgj6Eiix}3G;Hb9rk{j zfb$5>RREJ^FMpaFBE%Yqm>1|uMjvS3#eDQ~5IY955kK!Y27 zGL(}b@1-Gu*Par=oXaQhJ9Zs%Wh-t=k=jV&DwN6=sw``QKr8a=d>je&2U)_G*eVp^ zllMiKJe;*Mw1P{MB{bI>jCBCzi=CFwmoMLg;~YqG{kSrc*ZIjS&m*i}nS;n(mKm{+ z!F%SqB`gYBuMA{6SnWalL*h$32bf&?rLV>dw+qfWhd#jX;)*&$LG&8w0-OnStduYK zo@>u<@G7dOEkjO+FSx~bGjCELAfFMi&07P~Up^z?&%apSm6Wful>!7;Nu_7F44uj8 zLN}-;Y6r+n{Rr2^eOzf5&@U0Ykw?fB$>@tKsZrh&Rcnwes1&{ zrIN`xY2~}ttxMxzSp$v*86+el7ubFc?hKL`;FG+>7$B)Z~F%nBcB3pm%>d0n74PysW@`b7V-sO?b5shgAbj!m$ z6UuW~fR6InXd|T+0K7jHzMFF2Pq~L@PoENf^2zl5`SaN)pEzl_PVb(sR{*?+l=lCB z`X`^tgTJ?21Ni*aSNxrEGu?UlMsB>hk%jbpdnCJY$1l!b$bPe&bh*7XYxH6-xA{K` z$_W%F&V-YIG61Iv?MY9OH!~8x|KK>K9P>tXMFQj%fa#o!s!SO7W)ak@D;RWt85&NE zJc#%~F_Cw+a4_j++LwVpmjSz#*MoroL=Ga@Y65Qf=a#omK(ZQK$38geKc%tI*r+O5 zl=l#LiOv^M-HWN^QqW~U*Ao=@2an|;+o9sz_*8H}#z|g?D$&oY6WHQChC+XN4Y+EbN z!Lew|p(sdrE+G?#cb!&PfiB=Th z8sMcMh8FAb(|wVuh@*hS)YJ8Sk$-?lU$&%nOCQ+VQ+`*Q~;7d!@hn)d{}BnVVct5ceN`|SDBYhNW;mwv`JQlFH#RqFU$ z<$&OmxD`LI5-P6{Z(Ict=|h?&&`D6XDGx#t?RKxOn9yl6VJ+nu>e3 z@5;}9`E+=B`nm|{3%WD^yPF68AKbYk+wmyxecA8lUUrmk!=vX+W|G z&H_f=K#w(t}^AqX;F+^@T9vWrj{f5gSky269g9!&+Zo1GQwybTU#!0|B z$g|Vhs5nZM3ur9JCt3b!2AQSp#Lkdd>K4s}GGqq|B90YCMKs7$dNd5sW&-(Y8w-&O zayux6AI$K^L|znyFa4)DWFC+Z1TetE%BUbz#*B>!j*1pKET6W=^0x56bAaD#cOHdZ3N3=PK>Ih}pf8FHNf zKw1=*`U$va-P)Uckez|SDJ5S^g9!03yv<-f*;0S8Cpx*2o^1d(0vy$DO~}adPGHHW z4kD+JNAc4u{)FneKk;zCu{_@>j%>Eqcs&5mTzAzzJrQo*GhP^8L$&{Vp=M@y1Xz=o zGo#D-LtNV*Q#{xgx56T?Y(Oq`xx15HC)iZw0R%AakyrX)(yN}nEfog>nPjT6&E(ro z^W)Zwh?dq1@><^)fGQ`vMibPP(lq&JSQc?X-HfXkl%5gx4HNQ?S{TTqnTKib|1b@5 zl(sw1qyLkmqv?#!=I}J5J|j+hQ64{f%s=@5{~-5_v;rXC0&sh|1>pR~N$F*`Xm`Go zlN&^5`+0aj|CbH{9C$et!vL27wjDrLI%(9cfJpr=UVqvvJCKg3iEOH2&I9oBcp$F` z)VU}Mfj7a}IDDv4pkhXYVRe9nLRuGl0@(Wiy)t>0dV;&?2`kL7|cb+#H=HHEUeLIYt-8RTo5DnP?cJPhZABLSZDykwum z0t$@yksbyajCqg)+9*i&^n+Kcj#)&{!P0?x>=P0SODM>?=bb8FnaD@ViQK9QEsCP) z?4<91mWCF0rhZnJ2jrzepDsvNUu)uaj5$_mX-|9?`RBf?bZg-K%~Iy`9_8 zt2GKibbtbKy>}GfMMgs%mrd`(C92)9MXx7Iv26b6@vQSG)`2g1r5wNOAJ;%L!s*t< zuG)hwz#Ujfh7?^#EiCBa`=8&~L#3d-PQp>U87>9H#hA`9>{1SPm1;MCdFz(q}j^ z`K=&CwvEI2S5$F`x=>g0Mn4rDZdt*vo0z(Eq^}zEu`Lv+n7Gm^R44T?C}8~1Su>~; zd1GzD)U05zHq^TJDG0#BG|492gti$a-2#xtMD*rOZp|03cu0o;o}HY^t=F&fEdbBI z`YHo>`0$~8^PAt~Pe1*1N{6r0b-GfzJ_Fzishk0jrTv>vzR7>~^v|+D-uvXP{PN}P z;q{llkb5`p@!9#=biUthQk3iH_=sQaSZ*J0r*R(mr$YcUgx%aVQfnj#8}?3^UeT8l zbXvyQZnyLcaHQ~Dm8`;K^0U+2FSanmJ5J54vZ+xJx-X}Fc ze7|*x`*6GOV+B`CZwpE;_#K~d=lP1bJLk9ban~2S06Prjl{&an>|mRyp@L`J$#zlV zcX|!zj(o$9e_G7wNonFoOPyz>pQ#fjHP4EQR(+X(;+UT^~s2V?HB*eq%W! zfS!Ft{J(v%93<#$PpK>0G9h=s9?p^y)_* z>rASEVPVj(c&2TKzK%6C)4>37 zdcRSg65&}fPKML734o|iV&|g--fJE!B7TK~zK{-nto?<^`K8e>R(KngA8vy=t9lX} z8WfH3fkQt0DrIGe(v6*vtFNfPnJQlDdssU&b!Xz;Sq*`o`W<=QoP9x_o*4Krd_um7 z+BOuFE%9yQ{3ZWvp8e^$>k!#u|d<%oxIKhOOiZ)7?ec(>c}$!0Uu7`JqL}jgq69Z3kAnf;M5Bbs_M)54-*6q&D$c5GdLx;OqN>DI zvE!KmX^1s><73O%GwomirIf*CSW1iXQt#~@pe!1w4Hz6_PC_>6}gX<2hbN_)E18dRMRYy-C(5)?hk3okwiBOV2LQ5aKMo?mdQO(;I_ zlH_wl`B``<1oVPIl`{CQv+Udq&||>4)t~mPdAN@Em@YzX1zo{*EU7oJ*XMZqhJ;LP07C^1 zNcfDEs-uJYB+8F;@+cw>sYdCBB%R+v@7lJPN^;3OjUMxf8~#yiS9*!VUw$UONKXew zUC>P{f`@&lgEz0?MSYap{2X3_ybu=9cin1yWrlvs8w6Kb-jgM$GyOt6m2pOUE)J+& zO{fix`}=_a+ZyoVY@XSe@`?cYgK|c|?PHIm+I$_XQTeVX>GO*06nj($XuuowY}pAE zx!Gm)Ei};Y>_70t4n3pL$W#a4IQwaXH}*5z*=H%vUG`~;A4I`MAbt8XedZ7Fm^)q@L~42*=kbFFJ#O3b;-YO(V)-<+UMfHRbSc_ zi@aXm&X5ZFSHa+U2ovxgagWAC05_B4!MC@zX_J`jql;6FHjp+bz#Q0GZ>yU%#fK+b2XXDPMb$bl7Gbgtj}{<&Ja|282bi!ojBE1|Ey-i$#Vd&mJ!U*wP{0 z@;C9y&t{Gx4;uD~eOdD|$U3*EvF*ZwPgD-zQ#eOXjat?nWdO+piiAwjGf``F-OK`1 z?36myyl6DcITLaNc_u%=*5_7isz%u*@q8YvLd3|^plz6D zyVH39#b2n~7Qld(DG@OQD=rH@QgOBY{!2Zgt2Lq%w+V(O7%DD<>Wa61AE-NUX13(UE%`ZOBW1@1zUP;*$N_Oae5*4IScAX$^7neW0ZQR{bNDj{ zK5@)&fJW{pHFWfuItXH0Fu7SYsxsN4(7^}GH8={bJCly7bdc6}NwMGHGpCk1GOHcf zByP#$)~{Yu%3h4TNPOPuXO z;d>Md?$n`Gad_5)%Ym0lewy_^TW$@=fq>um2Jv70is;Y3AbN9N2iUQH0NjR`iabLm z)a7UwLGNTtT zfhs(2xYnt^CBSp#)j<*84$-Gm{I!uYj|OtLd?;Nh&mQ>9p?$D3N#K)EYg41Garh85 zTLI8dMxR>wsFNp6C4jS=T?1KDSVKn%VQ@vCHGPZgK6*VPLg`kYNoBz8+XpmJei`3` zK$t9nJP~{vh*H1xLy%$n${q>3)d}iwK3k~2l$)km`HUltJjm>m^4V@T(E0heKRV*& zG_==rd~`#8`NbD}_u;Ma^_!=>p$~J}bPeExvon7D_%WAp7gNx#*Xixj^$LJ1Bwc=@ z%TdxT0Qc|Qm%Iev=Rc>LCpYEBak>TIgPi|XS_1H9DLW3EMR3z0fcvCJ2T6Z*=3D#$ zDn#|x7+WF)k>65|2P`9|7#YhEk=xIPd$htKYI%lV6=lh9hsx=|Uk}T{S$isFG^ydk zKTHXxF1J&Ctp^{L`gLY_(6YLk0h3#j2G3PhD4vQxhj#?LaaRCISrQnGHUwz2Ei_1K zDbegC?09*nqb+(zv9eCr69vCMV(4ZnewVdhUXru}b3nX^pWA<-=qG-$& z4*~qlVF<>^WQ56I`?H+ipbimR6++PwH=lH1XQvQXj*;==d?~uRn#4I^(Ma}EV6UZ~ zqk=G@e1q2|l8IaN_R!!v2O5PLfUF`-jqlJPYctzY<;VR7o@0PYdihj;0es{A(x;YO zQbfD96DuyH*LW>LV6x4=Gh11tf!Onm0B5BOzl(&n63;Y**?4;epD3qB6ZFIUILIz3 zP2A#w)w(u;dJH$IFy2e5JkBV_*BtX=_Rx{IhPJXUAZq@o^US>$17)B2orJQ|D=Q7E z1_RV9`tU`4eE|UK#N^t>q7)94XE}hoyksq zh@Ckg!$WDsvyAYNMARK)N0;eL zIj%Uc*W&z3pHNP?+IB??+b;bx3~h0s#L7=^P{#@lTk%oy6^a%tTX>Xli`zSxs2M<5 z^d50jTezIY?Ii{aw@J?zVB`-Iy#PkdhJEbhuc*NLe*DBa)U;bCzCM@S?%2xR+cSh=$Fiwi!|VB!3O5btwt>N2i23zq^Cu*f~4joeXfOPdaU~QvacB+7GNQY{Sr= zz(0SYrg$6Bl_BhmhraV+e5FODpFhYA$F^WX)3t^ws0m*cx4)rs_iU|8b@4{A=+Ve6 zuI%z_pI{FJZ8EaG6y{EwNUsc3z1ji~PY4yFrA!_Y{`YY-Bz_cRZ z#Gy0S{`p_>#@o2|A& z2eSL(&*X^8;C(TzM54Xm>ObKYzeXohHI`bxP?)*q>ep|Y#& zqhMvwAfwuM(=7i+S3f9@rTlg?e=oB`hBukHF#idk#iTf>0+qL#(z76|!w(kQuT@7HXf1-KBzeAj{O;gfyA{g_6yrI9Y z@EqR>WHI=y99HibepAaU_337e@}cLFPXAx-;@-|C>mv^}zrArRxB|dq}fD4v#*6#B;DJr~moI|H9uKzstWk zBR-W={&4#ty?piaS=Mh)$n)|?Rx1;U$h!+Q3jh*;Tt9nB_ ztaZAe{56%qj&rm$i$=I@@3eTBc)&+v`OzqpC&`Eop$-zStO*RbQ|JK?CU2ls!BhF1 zsLlXS46vlori#8C66nSwX52sqR3>`HmD!!spnLmO zmTcL1`pzgxDyt}G(j6N$r}(3_wG}UVW&rRU47FX?r~N=z)NpMcK?ADn7~paM@}FO}86DLMUL`6CrJEdky}s&!(--B!Tl2YSJtWP3(|U(nwa2gO_aA}&{#sjfQI z8GglC@zLiPR8V}J?biCHio4>ZFKd)~$&0H&HJGiz8H&6FdDJS$GGN42t<=fKkw+f9 zqo)xh@_k3)BHhIX!+yis|0Fn&7Gz>-0s+$L;62gDAcQWfSDcK$sCTLOAkqTMxae6J zP(IpigFzG=6Y>H1Apb)N-Y6XdtY(>@9@~}|@e}{u+OwlK%J&`Z)1ec?X52^`|EIzK zc?lpL9qr_3dy{|l%U{y&qYd4-H8PDS^x?gG{HL#8jo+X1+*_^yq$f|Fbd=6@dYg0| z0JuVO2T*)U^z897esJ%B{N~9Q^7*e`%FW;SrqJKay`bor+qa0mo`YWL#*1_W#;~3E zd^hEF?i(q+LuW6U>R=F^KkZ;s{mx)G#5%bueYWd5ZN_yd-?{8##z;ChM3O-)if4{o zRK1xD=B8LWoE65d$pNk^sYc&{0?9M)Lz#)K<;>ouDs{`iVAIM=IUN8FLGix)4ZyDf z>Q!9T@ap!7%}_uH7-4E1G!b(9w211JsOdE>y>|f+0s@M0Opj*eCw4czR!U3TMV+fg z82O5PRJ&zHkLiqt<+6UzFDsnRJ`1~;$%!9GqGANOdSs0*(P zC(4iEc%V%0xzOKAVvm+M9T2)VO1l%`llJ8V3A0E1H&j2S$xjRN4Nzo(`D!)B2E zuFk6D<^SnQfE&j-|EpK8==kVJ?$QUezxhheUe1I5yLaXLzx%uN_ntkIU(99FHUOfx zGxyi2P1k1tTp^`10Mh>dyanL#^6c63XZ&*epDcX+hMKY(K_CJyDSDx^-?Y5TMpRGDZ=$uDWGNU2uxeyw+4Il(QebbdjhDIRHv?Ui ztm;S{bb*dA9++X^itDgkW0&)k16p`s;C=YOtqjF(WII@v``5|Kf*0FKvg92nu7qTm@1EnRpVn!Z+_D@Uq+n)nj#+~9xc1%QK`S&0G#+Ha zK}D}|*V-@&jI2D@`i7OV2V{hMSr3(izHElg@)sT9ifgB5;0sajb_5qB7iuRH9ZuXJ z#S$2#Hid}dY$HddSnsQK$;Q+N^j5Vi%ZdPbna&89mFl;@LHvi`BmM^u=Yhcyxq-F~ zhU?a{Y!`tZvVj-XK}+1ewW+dfc6yrXfDHW@jaKi=Z(B81@wfVLpfr||=dhvLjs$~4 zV3gSs#kJT!g{`FNWP$oW>O<%)KRV#o0pCz~Wrq_1?$cEHq4pNgpcp7mDfu{iu$c^Y zTF*!_zef9U@>@23$-nD7h0YNS>NuILU3iJ_!8dYeLUDV}0qQ{02NTtE8@zm1XRiDq zkJSG_M*}CbP~M~ef;_Z=`2_7v&BRibuc^`=C!_S{hd@fDso*;GRy#ny*FH8)eK^|r z@ocOKoD&iMyc2NFOaJ%f$I;O&5;sexlR4NoKiVB-;OQKIujs4!+j5|KIs@SBPyclI zSD$}wnp)3ZyH4+(u2%qDA(a&XlD7bS`iLGqel$LzC!2rw@BSzH@ZKl#t8dJ2|7OX1 ze0C=1bMB+Z<>9OoUoW=+48!pp5Xd9xWdLP;hrI%#($|@*J{Q;*TsoZyfs&xm zp@l3ujYcuss#0E~wcvPU@Ju!ES7xY1aZ@{GiiIKiU$vl>Q6uW=(SeuLVyb7e4HIgv zDpAFiQdYV`)mdWubovf~YyDH8)t15$EG@^TDf{ZDiELZK2y_;Mq^lULP1HbkW+U2x z?xK)Im9H5aFlK5%hQ$e(Bdp5+k{K2+l%NKetpI93k&PBi(R`#x*BAx^UkGtkIV}ML zT`E6`*$u(7BhvoNq3r1n#@aiMzz1`HfKRgE!zHUWD`R8f?3b=+DMsA3iYPxP4_}mL z!N@mT3;=(`&6>6JQ6b;VoiAQCATzhMxq4i^z4t_p*RhI&@UM_o;da1F#0Q#(xXp(E zFn-i`U}y!vN`B1~35a?50Nl4tYh|wr*VSRls8b2mezzvyZnW8hPwyl%&^~Zw>er$-n(#**2gKNZGPh(H62Ta!&7a%?mc3 zG#G3HX<25iRS+`_wYgG#i;29TZehl~vFnHjFi3|nx`$u44(Jv`v;C#44j9cDA|D)6 zA2F{MklN13i)`b{YDqU~!gbJR%l<w)ipPttVE!%0G3)b%p8aFDJZZh=Q>1;9K8qG=o@U4cH1Z+N>olJn^e?e_!kkB<%g zld~I4ufCYSoY1}J&*l91czSy89z80M=ZRO+gV?XryQS+D09Q|00P}v7Ps@{Ue>;D? z`KvcsmOq&PdwKeLNY?TNDcVwqXj8Dh!G%uYKsLozvk=}F zYrGh9`9lBAHPcR91Ld6;d#>JYrGc zVVPl9rz^MhRDbU=@*UbpdB0(gD`XN_MUku5Xtx<9IN*(e&m=VfuV0F@=y(Ik9SjL= zfykiQGVp!7CGWFgB(}759HLlMQZzn{i*%Y=Mvr#b^j_{$RpLZnoN~v6<={UAuJmhtEWgpFs#4(PFi|yi92sC+-k`#v60*1efE*4|v2M*zJp#}NS-#ld->Y9|C$vo) zxkGr#ex$+v%hR+*cn$=7gZLl+HVyya0r9PEnPr3yiL;w(=cnbI89j%^4gQJTIMQaA z8IaB8rpn;-TMyCGwy*)Qwhh;nkO~8rcNhC=Gv)dY@3q&{dffnz$qpaXt&a+eAy2+r zx~vA!S$Z9~>1?smgKb{yqPq=%hdPVR)mK<}JdwLj*l=ObQ{}PY47^i*LK*xqX&gPqQYgl1xis@A)+yWOvz)Nb| z)AXD znzsPVX`3cTk9HYA+5&KPaw@NH-Qrt!?(p+;2EbqbPxp(_R`RJpX>3DnOO#OD)3vZ96boJ#%mQz*cK~vV|woF+E5mOx~ zE!VMe(Lsy$)04%i&!xd)9CoY01 zRdJdf^WgEardB2qBDn8czq!NYwSHyvO>mGu&mv>U#&x)$N*!p+W)Oxi2}L5%7m|AmBfn0|7TTo=@r{SltEo6mL!m>n?0yN#%3$bm(tgYHhRXR0r~Q z74o#4zHhiNEQc0qj0>qisJ)fC4BG~|;#U~h1Wj=S#LKM>+7wR|Jgr0dhH_x?sO>V5 zo5{`3xaQFTsPid-v+3(l@IhNC}Ps$^$UqUu)JFUkKJ*584S4;tC?At&) z0}cov${Y!~!y@6aA*{4xV20sY!wY>!P*%cwM7uLnKfyKu9Mr2k=t={dq@k7<*6y%X z1cMIIW}5F@`LP+tVKWVq<~_&hlsB8aWR^BZca}`Am%)G90+4qAP+q1!-M)L5@BjYq zBgGTZTU*EL6w-A7;EJi70U(baJ>nny)(@sH|N6fCjDAYb@80IuXUhtJbOykg3jmzv zf5+1|JZ>i5ZD>l-FqWYN#!J?)lr8sFT~e*aDt18abOTv1R1aclBK{c$RRwGYAP_lW zxRqde6W~zrwn67Kwfo?OsJZq&qFk#XWHVH%Pyv`JX~ezS2@86tQ-o~-aP_PQMrDqEK?&|G_`n`O z0P0poI7MFQ(v>8}%Sxj<#!K}aaHQH^)6|HS8I{@!q&F7`HkH!FOP+dlA614q)^M#` z#I~&n;zZK19s&+qrKj3makPmOVo$G@WL(Y(XcIhgd#OdJ!zk*SI&sMLeWu78x;S<7 z0GX=^^TbcgQ~1Q7Mzk3#%0iwk;_+g3K39W$@7Wrjs0$kW+2P#4A%eaD&rpxkf%@0p z(*^HkB|l#P=Q8bRfRraIjcGa>`vCA!K#|6Nf(Z56XBGMI&ICq+vKId?wuP)PvCxCt zimW2kkyt8;C`J3s*v_E!Wv)=huL2E5C7O7V*~lG)Q4| zknfh@v$)x73_xH%$B7l=88Q{*aKcKd23mw_J;-Aw@7Koq(a+28LGCh-LEyEHsmegb zTY0N^2nA=P=3yeQ&mfP)ydVo4=)*cOIAiU>wHyOqRgWS4jt4-W{uz$ghos^V%NgJB z90-*E!OIHLV{N2mIKZyo$Bj&B>Hn@kczrsh!!c;wEi?ag>sJ1_^T7vnj2Q`V4@prMwTN97Z8e|NQCZ_x{oE@s}@tO7!#@ou1qjI$wIx z$^L|Q$EUo1vzMdcm}$GEaXazxJo?XjVWvHAx0~9B%0N!{m1`f$x?lHcjc|WDLf&SgM`^mE;tv>9y=Mu+#sdC&o>REW_1lpgeS|z8Nv`inACt zhWl;(xdcQw0M(ge+qYf}f;-@hsS;www74b%RpSSIveKmi+$w>x9L)yFIl^2G7hZ?w z0udApg*pgYkPA-Hz@w9=_)WT60E}2!-kGjt6f{r-MIBG7{Sj62U?YrQMPAfkXpn-j zO{cQWpvb9R!{mZ4OgNU#kEc3of`{}8w37uH?1bgz;qn}2pmN^;5=)tUvVY)CAD>ah1web*_pd2}wmgNktC=I9 zh!>W{&+r^Y!ueDt7wr5L_YVCRTEVMV?;0__b5^AAKsz#FKv@B%S+E}ZOw+dP2h0rL-9(Cbx+dv#EA4loe^4l6{3!V_ z4+a*7D9k0LZ3i3iIzk7#YUA~ALiKxef@z9%0j@X+p?IP1$bdI)MS$&^`Pl$vBnY#2 zddU1s24<>laD(jNFFU;le6Rt2ksC9BTsUM_jDZqxLV56omK$QXT+cV)@S_XUw`!DIM%hdyW^Kk%cmN7Cb%_kF$}s_-yPs43_{=u&FB1ItZe$ zgu2pbK@H0)l5M_C)VAi&U z;Dz3CzZ`bR#(y_!YxY%~b0r|h_PgMaIil??t^HHHs*MqoQ*Fz|#+J|*7<@Y<5j`bs z2UZlsY@=0ZWV3gumH)Bd1t+SG55)1uSun7n6v1g`=$C}}=|gE@H2zNS`C5W@Xr58$ zGp6u7j(LbZ3o$^{_{Y{Zyb8a;&zL5FfWGQ6hJ7(wp;15~$pI!v_)(Q7^l!Q(|1dxI z^Yz**76-NB=%fn-LRKC!0C)Stf$w%8Sa}}UePO*3SLu}HD46B94j81TOt8HB2srqa zD5lcky~$QrU$ym++B%}c*9dljz;i$Z)p!F6?G5NV>gDU{8D2q8J1Y=i7EwYTfAB&@ zi95E*@)X$VQ3^D_PWvZE;u~`yARiX^Ax-J}!2k8jUEj z%9u^ul>K-kd0nFL>@Yq8F$8(kJ`l?)AM~I&)e%Be?|Ls~2GBjWj2q;gLVkk@bt+1> zwQ#ERyTm{byi^|PKs@nd130J+OhxeEyGd##(fP{D{maT#^&{!Sy%FFd+<~M#uH)^Dio{ zSYBnOr!$q-rr!cC;JBn)0FI_freWaCelKU!91$2t-p=%TK2%^hgP+=67M)j-azy z95N~I>XLD?Jhm@C{eu#d6~$COWV!kb0vBvb1M0)w1QwC4hqCFwD5pu_JcNpm_v2x8 zfoD|xZL~^tb}-sZ?9V_bhYu1Ar0mcn+|Oq`kg`fcs*>KYal1Ok^*zG@fsC^O<OHN8?#n zQ!H7e(n3^a(gH46r>_^=n-M2inp*=z1Uw>gdj_>$5vpfPRR4ofmY`k5Eo;;ShXgh> z)x1qHqP}eo?6-o5J9wM8uE1sESOFaz3pIFP-j%Z`E|r9w-z~t8B8|@P$xnowzj_dO z!!T?+qONo6l#FHV9KWy0R2P3bj9L#CBBKM7{1f{v z*PoqwIey{ZOQ=-!Uo32oxB=x37YtQ7wHoj++lxB*ZIi-Z6Ktk~B7#9z?K?z)Z&=>M zh}*Hip)yR!MuXvOjt$b_9GeEPe!_u(QMcDDwY_vU)&eZcr@Yyh>jUQj#&3RuHviRc z(dIw;2_RcjR8q`?vB!{(c6cGQhvIC@{v$lJ8{}m%Ci8274;=WWwBleo2A2>&D_`0P59_w2`6v^B8`dGv zPgFM{KbU+wB5o33QQ#laB-F}_@r|g}hn#N#mBeFd95?>(A%_AC$7% z3_GJEJ=WQGGd9}k4gE@t4!Cj87(r(TvT>Pr9Tc-ud;&&6Pi$^|SWrk-FBmu?3qV*t zB2(77TpS0JK7wDdUiQi(ztkX1_1uB-8@C(a{qgA#yR-_!>^Zg*Mz%+(GXO%>$x)}p z6n#OIYuo!h_f}C|1wk+ig#jXkU6ysR-VDK1m(>gKi^vZQ(cmG@nn`aBz~7+cm;L$6 zX^~vyw$22K$zWR9#RVrOKp?+UIbw6J&4xH5R6dv}4mw1yxa4{TV-8SgKhg<~NgV}c z=3;EQ7+YP2uG>oLp!Yf*dM{#R=@-3xasdcF z@SMYUz65G0KdZQguQtNheo$yZ{YOO(^H10_E>#sWUG&Fx&}uDHPRu8AGu^I5SDMvm zIK&@xkmUelLRrJFCp$gAE%2xy~hXqb~ML-S&{DY5|>jaCO;mr}cms)SwVN{6LmY}y07k4T< z`P%^o7_1qd3HJ>-M{elw&>E6qR-CKt)$9d#+j`jWy1=pkfsni3T?fJ$5B4x|azt^N zpiIWg+kU4H>_A1TeAF8ZY@iE$C4G#Vms;IogZ6^Y06f;K2#qhQiwlrU|3L0020X)o zqu^s3<8RbkkOx;_Io}j;ReJ3m)|-CAFbvx`IUYJGqjajjia{O4Pk=|--uQ?9DTiPS zQ{8fa?Sqpx`so4*fH<}r1{3UeZPc_9Af0=*pO%Twx!2Nuo*YfzcjxChV>$!i7hirk zq%8p7nSX!u@yGn+$&;L?tN=hMxlZqpt^)v9NNN8`jzoR7@bUZK|2`c*e3lQj_|~_+ zMQ_R>faj;@UQqKAfV2E{+Kzl<*vMv%hRq$I`VTR3I@G=9IM}e6Qyts{+tnavYv3y z#bE1!dd#rOKuh2WY!fx(B6ov;$&mo>AUn#3HeumKU3Sl|{X{C>RTRVq>`HFMi>v%X z!hlXD(eYTSjOz1Z`>LT8Z=4G}R=HDqH`I2vp-J~NDZ|VfQ6#=$%;i^0qgjiey{ZJu zEN#!|D97?b-6Xww|CUpAUG%^DMnW!=c}wDduQkJ4Cl!{p*S+_GN`lsrI>gw^62O;# zb(!|;v2;!DB58byx_SdV9r3zru>i30QTw~vmMSph6bBA?sOfBN-5hA(4qY)1rY=8= z(i$Re9njTm9ImHdOU(+7y7V%*c4On4ov$G)yb2=TG@+}5t&D4et~`i`shI`pRG5NV zKq{?FuDv||UI(5=1z&a#qcKyT(fk`)5tja-Qi zR=I2+V8922LhX=lx6{F!4bHg^ibr6k4c4{1@{RpU0p+I+`~gSwI|T@glN*VaA-s?J zA@hmriUaVq9Pd;XrvL|Wv)`I;qQ)OI2N-y$K?0NMqIU%A#CHXG>>oDhCPF`=H5H+= zuLU%4aILV1!M`W=D+@RXdsnYg$VY9N9E=I=iz`{QZsnc!IjqdlB`tjf?+9dihBwSJ z|C@2J+}mOKzB!u5K{sq|^gL!dbr64ce4H8dk11cd-sz;*>0Q!w0N@HK9X^pFQJ>8b zfG3|k$pZVc&uL1x0KED7mE1geE%Xhd;~U3(zCY&IuS>zx3S-!BB&`709&KsEgP0|i zs+iPJ+Mo$EB$K|AFdnQkmhAL}fR!dfWA0`#T?A0F*HQ;g;&t7iP6eA1(ktC;@b8op z)w=a_z)!BmSqGw;5shzAGK^USPT!|WXWdIr)N|mZ@LVv`N#d94+ibDaRSBxZiRwPi zq4LEU4b86xMsE+GXo!?rsr;6D1(X^vMm|YhVS!hq)h4WRv$PjECsYbNeW-`ixkC?4 z7N|ZmKp<;Wakg0=5N3f0)xvH8-jH9FkA}wJk~jFJymb#`BN$)|XdAN4fUe?LZKs|w zK|XP9JDGYGkQ+HfAn^@~x%&?9xnuM#z(ec;?hX#%zh*r<-QvorR~L7_ck32^PC{F< zN5y4Q5DNF5$T>lpU7r^{fgoI-=qR~&6bh}N)lKh8>wzRI-(#L0oe@{);thZX29uvT zixqZ$TYq5CiBK;EU2A%YgWX{-bccjqF6a{+{*<=(nyDQp^vZ_1V_{bMoekw;Zv%X+ z$bE?CS*){zW;a2fKvw(uiQKh~K$5Q|lo4DlC{@prr=2BY3jH~);yc|F<*fnp?Ee34 z4g~!Few#M`@ZmfGbL3@4L5x8`LU5xR*ODRqj{EV|p6FmPe0eoC?42Rs${LI|NzaK$H18gXf>! zxWW~Vboi$zPS9Ac{(+pV*nl6}2<0CG0ZP9uzo)<(s=RPKCEu0;_`7n@&L&Hc*M3XQ z!=Y_3xPkaYUQxhNLI;;Zr`Czr`=Rbsc}E%)5A7FzkP-S%tvBucm!lL1m?J~G-8|Ai zr_FZD<8E)6(lvnTGu;As>-B3%ld0c1KhLfGuRi~L$YZY0J~JxlI=yqcJ_PUzNu*l) zN1s39C-j8Bc=-kYCv=a$9$zvYeUs={Z|KGJV(t&GX_j+28ctGgk^RJcvOSto-$=9n z(>Tc}%W{~dKh^#Hbs4|vZ_d_FY(N+e#3~2ep^YF~U@o`Li7CQ-GCD>{&FC(5EHFyN zup)s=#4?8&@X$Xh%j`F(XaNa#c&t<J(X+#b)5e zd;vS`ab}PnzE=o;Xxmb62VBe#DkAXQKdj@X@o9bTBSSAHrUQVo*k(SsBd zN##CXrh25z3#u-hfW)N8L zYiX!F^d^cO2qmv(S!fhwEu?6}Ig~?RsGqd8{R!dkKS}wQZQvpBrdKx}$f&nq=y?p> z^j~sv8b%c>wJ`Zk9B&ajqhcpf|YtM zD;U!GZD5f9@ZIu&{w8P_H}I0SKT**EHefJ?*Wp(uO@U9n+a9zUsQM85xYwSv_DJ== zkUMWDgX@*o>`|m4HL>U&dNq z>COWyf`L5t2L|0kVU`(Wgi!|x44{Fbqvi|!$Z#+4^b8>Zq7|iq{gfci6l=RhdDVBi z@+G5KmJ}Lq%I}237WiX4F0^PFT@i}BGNVae|12gQwpoZ<}u&PE1V zL|TzPD@#GgU}s)9aFUk)?{++Hw?jHcb4w?5dU{H?=fVGeyUphS+&!8Db@%Vn&wu`N z+T5GRRCn)A56;fg;J>MjuG2fE>j1#jlRSF#XqX58>2rMkciz->1ETW;xA5wK-iC)V<jT;cHf30SRW7(Ion*ryho?F`r9I6E z<*(roxk<1Hs65f!c2qc8-1Tq3wo0E?r~`IKfXTBs-Y~UHl9gY|bTLG3ame&Y&C8wYOrdr@rBh$5s+W&fUPyS?dw1<^fdQd+{;PH9POCDcjSC3CnzpAN2EMZ#f8%Pi6F{7Kj z?U6`QxjNPILk14;0;xtmS1saS8Utu8Rhq@~sUtQG`}6k>et?&+#DC}b&b=sbr_g*@ zc_EEmfUvwyX9T>O0|7@H;+tC<{{F8K-#wx6Cr_7w{a65G7KKyrZ9rP;u*3HV`h$4+ z(k1FT=)=?cH7|jnai9g6l^>~bhWap2kq5fG3<@{w#WD{#xz>;UP>@ifdV_%e2HsA3 z2$6sclfMSB2_#OQKU1lfp?to92-=JxUt^yr3PAfF{W|RT>X4~VgM(nSdqjObF%b1^ zwY3G}5eMG(In}{=(@(gT?cK$TdIZ}s%8c`CDYS=BYooAZimwCT+sy=^hmgMrqgQ9) zQM&egGr!;5xFOr!ZaN>wc|63kn<&%ye$RWDSbg*QwcNRLhtIzHisA(JyKN)}c z!yodW{K=mz>p!lq0K8JV4gg#sCE@#{Kl-EGE9SvJ(_^B0pFHDNKm95F;+x;yq^16+ zWGc?V2z%jn07c zLzW*FIEQ|Xy+u%A>P#u-F?~{J;OyRVQ}lvasp}yyT)E~HV{mS)LMm7Ll{%&xd0@*+ z-atTP)1XddchNh-)tI9poFv!)J)Jn{U59sVm`q(d9B`aGUX}$6i^4D-a;ua92aU5h ze2X(DuyjpVF<3o0piyDjU=!p@oP$}aW&>b+ta-KGLR+C#9b$0~FYw#(jh6gFS>=&u zdGWv}f%-wP5id0=ToBP20|Do`@Yk|cwotIjgdYDwLg|MTu5mO1f`L3}hQzlE$~o13 z?SCyp0fgZUzKV^b1>QHQ$6I(Sh!(V=Ikx(V#-F_mNARUgWSjcEQ6CsfRo56|;%Tsq zC9|6?BXTnrjf2vHvuC~F!fLw)9!8d;`0DSbZonBUl!$u|Sj-pUwApLD0z6qGFv>~k z_f}10DzzfE3SOFG49{h?(U?|~4fG+8a72H}+5;7yx!41@{iSBo^5Xlp0*%3Wg$E?M zW-$Hb3bZ=a;Q^nG7?gHPT$N5=QSit+M{&e6 z7DPgu!%9fSJ<8#3B-zh?*3Bd0k3XQzAAE<#|M4%0&PKwClbmoCbqf5z+XE!<%*2Ah zcOh~U5NK3%qF^AOcPdLDqv&ZM-(V@I!VlacIe7j!7`?%+!xtJS_AM+!P}UvTT09o;jt9_8iHffE0QOgwh(etE~A8~*!$WMLT;Th6u>M`_jBF|R> zI(qg2R~MknI{#Xz(dF3Zu&idnz5%|Gn}CV%4Iircaiu~}2U^`o7{HRCD=6LEIm&LH z?BqERU<1&!|6gP{9>@K#-O9=Q{^aP0zk2nGAAIwh)2;dKU;OKT&42vQ{@Lc!Pd}Z? zEdV;n)j{k!T_#t6t13Y?3^O%@{Yz9Nx2O;4t*Z!#8M10fqVTkh;>^Y)Q`~pE)T|)RrTq?F(aafsm+&5|UrW-% zQ|SghVF6eu=Yn7esE+_+ABnQ#bQ_cJ1OR|S^9woElzVfj#B@-QJG&XjbOZgrA;|u*HtZcM)x`OuN=!4^Vcu2&l7`ZCv^eGyAwK5^qYnU{^K&R^M)9z=T?yiJh>C86!P$^W5cBk(#sWZ`yIYBGW~YE(;X`Btd2yvaq|SAKe1hFp!zk~;>&wy zj69J+eK&edzcZ~=<|~x&FQ#rAasU%$fLF?>&PTn60>&|K=XZRU(r^HVdx-dm?;lvm z*+TMxLV({xrNKkLcZH?EDFb@$+#c4eGs=M*3pWD-@*TM7S_|}NVHFQEAYr;TDuT$? zEOX+O86Ye=0kT>b`zF9V+(8U~CK^t6c}2kRn|EpWt&iI5D5vrJD74Ir~Srge`1QV8BnP!bsmo0Y9nH004k0t}1|vqYmtF5Ghbj0DpI2AJsn> zh@ci%3@D)N8xB|(L;HiUtu%*Ac2kjf`du3V{Y_s0KB2!Tt}$vM?xW#ojQxZ{JE1%_ zgKB&i@=0im;NN<@J7w{il7;ULZ}xQIACc25GO`TwglD=2@H`y?sA&!YxUod_5yF{OSLf@Z%KYsi;YrZt@!gJWJ)7z)(EdWAl!sSj%dhqlC z&jA2BKBwu;*RO_~w{P*6FHU)uYo<3uuU^mN{q0ufIe*UA#Gg)_wgB+7nN|8Ie7spk z3Alty4S-Xc6!z73_GR@v3SBO4C%M+W$QD5_OQg6sUwKJ8)+Gzwb%JR@HFSL5$ z`xM@dz;Ej0(XxzuS{@8&U*P^;960K}`8pUEPj6|bWg7%6DOY=W=` zo5h-kmn#LOK6BUC5Y-h43ILm`qxvrQ{S+$iDP%i?3^KS(5 zpm?{Dl>@d1X%jr8GnA1-g+n&a!XC5+H4n-2x3|rZde1JC)|zf5nLj~oxr?}r`M6V# zJGgakoTK$;STC>SwYnj*wv)2z5Y|6c$9Gbo)T|=cblUp)jjV)ix{6)zP86Zx08p%x$}}w0*t_ zCIFp8L5`r^>~KQyFrbOhrq}X-5W|(tuK)SIZ0|Mi6l4c|7N;MmtU4iB2_UrA&zg3P zD*{m8;GvJ1N1;zD5(?7Ye8epdS_k5piVc%&ra8PfPkN5ynD#zr<+k7M`6!>*xTL$^ z_y)Z>K9+CJL4mXaAO!)QJ$xw7o;*ntuSC8juhToE>lFZ3NGbZ1t^j=e!^cDVd-m{| zJo==*|MJT(@@HBBaK7L1@$sH_=Q|m9>BN&0+6;R+-X2ZEX4wuvd(>~@y|wbFAK4C0 zfhoqNqvJdcn_`s4S+QJZ*u;Tf^e+P-s8p3xuR9iH$_&O+h#GH1=^LQ#nAB*fG2lA> z_xG8Sqt6t&;TqhUXhcw{ax?+~H_`I~fcPmG6^3)yZEy~ajQZj zW9~T`eQck~SBbL_Ow_Curj8h|h+@syfs1`d`oP*(vYLkvbcZfpy-ac-4_0=C^fpz| z1G18x5E2g|AhYrGCJS~RUvA9V{{sSgK!DxkV0({KVykz}hI3DC^yQOhlj*Q;kxRJwG`#BImr}cjHJ0E zW){x#-8s(#ec8=Hfc^2vS=e(ro`ZSmd%75N*#b}pU(WJ}rC23nGzwvvw!&~m5)_#A z`vN+T&!@Vt9)q83@VHeBs(>UYTEwO3e>}9#IgvJS6~dEZ?OHihz=OVnYw?f|_5+dy zAGpv9if}0V;sqOky-~wRv>MilEV`~u))<%cOjqowp@u0lL}MYXEVnH6bJ#NA>5*z! zxMv`VYReVFSnlmb*5}_M{aG0WFNNQRI#-*<)Tx-sN1EY{Is*k?MuVln5n4;)jT=V; zXO%3Ud7B}dlT^h+*6S#8=lTx3tC^_brSkz8Uj+O-MHL?4D43tg`9!N|1;C43iqY?Z z|LrCAXuMO3>Mg!N_F^WH!>}wngWdyJL2Z$4o5DO+U8oEFEL3s*e6ot0Qzb&qz3Vn1 zr~{#XCZ*ZMLf1s1r_1a`ACZU;2fb{3E58N6#e~5C1cPIOra#1n!)Ht_O%%)O`6vs5 z%tSp0IO{&~a%W>VsIyy@3XUU+;HH&&W{2rmWTer>4kk8FcYHuVexpa&vw@`A`Z15^IBTQuCgLCz^kX$pmybx|PM zO-&A86mWtD00A)t0;p@}u+B-KM40OKK~OSN05qW@(C>kn(U-*E6mX6MV}v7Xok=R4 zdR3j)g#jh#Yla8n-^g3Zj{Estpa9sT=QQ+W!%aYe(8b`$C~e)?(ZqvZ@?hiu-bYz5 z*R9rG8-|mIj&L;@>90d!zHyI zay05$39NjFyC$t=t$MMx$9>(%uEq$7HOx|*YYuU8APP*go3UbY&WccwJE)?3XE3bM zA8_&sVygHA$?Y0o6LUiTFtvS!icAL>Ox`i-B*$0m|H_gG)A+*yL+;Z1zSG-+#%7Bw z=J1<3d9d3@QHZc4RIKcBJPz3P>UHf-gom2f?G-}q*bnKHDum_=5QKEAKqyPS&2FXm(T-`W$s= zK-1+F1Q1X^-4owAB7Sg(4b(p zbQ2ROtn8KUz+M^RvVX@bq#eKsK7eN!A;UIC(RYD|u>FEUeR>-JOW#;bP>-8c^xyZP z5lvt^z(+by5%c6@aEHl3fHak>RS)0?K$F&e7HK|$LghBjzNZA|2k9>+h=0q0~ToX06BULj}b-E21dC?_aZ=N1ih zFkS&sV{jOag@hXy;&uoCC17Y5`@FQ9gf@3JBA`H2&Ic$s^d_4$py6&7umLW%H?_{Q z(xCE^Un$?Hrl`VY?M3HtPrk72VltVK{&OoXs~$7BmZAQ~GX+6Ecv)yjh1#(hm6Pigj;Mx$XI2CL3HciX@cELPS1|4at&VJ_ zgX>@Io8pSl8vKs>w<@Twil{3?+V)`U3(Y+;@CR-Yi5U@(rgRfAVB@Rl9;FlxR}_H6 zRR1xK1)b{i!JEL`3%bOD5<_7ytq38A;cWkxYXJG%cbD}1!pty3y;}*Ufj_mEIC~ttyoQ6CBveW}OD!=Va2B-(?Q<}AIlu=>o z2O-LPn6zqz4tj%q<;ojeA%Zsx#C9U?@Gr;={&Xu>q!oI-(ZO&NkDopxs_lvG;^dP7 zUnVzc33SW@oqP!3QTlOoL??1Ijr+Z%>Cn6aprrHDQ#qLf0qOhK^UVLfyLaWIk3Z%I zPoJ{h06^F2%IP`)aJ3}#+0t7-{p3@jPl=xX`BTXURy?Sgj!%!}Hr-i%+?@Z;mam)r zAj2F882Ch{^Qrn2+F>MKF#}GKDeBS#QE|tF7GB?L6u462VN)%Gdan8)Tosl?&xXA6 z?Iu(d!BC+=lyV&&8s0e2QGDZIx#Z(+{S~IG6KRb48@49oG>}))q$?K6bAj_0IMh*? z>aOJrtkF6JdFhPO3Ul?^9OuXp#S_>CU}$c2zI9o?`9H$;Ou}q~BhAhnC?_8Dmc)^s znLx%Lw1J8*wb%kZSS!e1SN^pKm+n+(R-*0CHBhYw9RltF??{+yuad9laESDqaYZzn zIwCGupTp%~XS@XLOXlzO8zSq=O@Urse1yIeP8auclMhfqiZg$)K5Is4;j%?o1bdBpC}OqJshSR}w>6k=pOmIjgLBqv7S|;pz-GELzhh@2 zgzGasZ$(^3YEd!D4Q9!UeV*3(b=2FcuNBwjWyPSLRp4*{nPMwJZJzi?9eiLw(WoPp z!0{rb60sle2D!wR)v7JDFx!)OAYTFd+Kp^PLcVz+Vh!WmQ+;#*vp+vr(7*HTu zuZP2rwR&6uA!i?h-A@yp=`&vdF#j{&+(^0xFb)3q`#q;E0O=Nh;~O^?;9q=UWxu?C z-vFiA|8fxEb-F^j4gg#&G5v_-NAo|AKYz?mo;=})zx9w`eDDwD>kspOm3$2#eL(bz zUec{wx9Dg*;~l zg;s;=MQ#PmCJN9e&_|dhhs*u~0@Pn%fFdxP0a`#88|ayWx<><~)KH5=Rn{LdD@zPz zCdo+ti5KtBy~pObA2aix+3|DVi+EXsUOXpX+;fh*o12@Po4K32n`5~yj^%edFwg^`w$lmll4<;s!>uS9GM4@|v5RhVph(`(z9+y-S;$xtq+upJG= zoxx<{y>utX<_-hU6>v5Q9p0EpB4Hk7VO07R4}A-M4@aVH10CUau+I`cO#@u zdsB6hC&0H4L-|l)L~IGlvNJEl4{D?ZTRH!j4-8qbh>b(c$BeZ#JF-mnpD7qK<@*H_>Hc*Jyf+=^q>7U&^3oO0><}nb@tI0NINM8Ki zZ;;C_X_LYFtg}kf&6{D~I?qt>URqzrK4>plCSYK0tMt9N@IEx9TI*(I=p+xhc^+3>1^6ZE{V>Fnr%cU_)g_3CAH zmeeD{3IS2Pnh`2sS>pX@&5v zWf_w&7ZBdUVRGEA^Pxrn6Iwcm@$|l3tcP^V;#;YLQfs){9rwO9T-*?R z$TC1$J1+-q!zhvgZ(Chp z$sku~gkk;_n z|8pHNa1vX&D%i(3@|BO*GEQ$8W_=(o&je*lZsbK-eZu?HJG2+|dFL>8L~+(di}8Bu zzgBizfe%u%@9Zu_QWCsSCZYoJoI7YO@-3JglH8^ZIYD5PlWm7mn{P;q2c#`M`y^l6 zKD9OL#38b?XxTGhJI>*8+{_S0LL`*!(6$`bGVUjbfmmYtD(SVo&hUv-HTa($hj7{LOUn??{^- zeiYi~8!5X0u8)rRXfgoQBLJtT{Kc1F7DsjCPu_i( zp1*ie0ju9NiiEijZxZee0Cxzs@?03QUIX~zIhQ}8cj+hl&G_m+y{ZY0e^9Oge8FFT z`wj25JK63hhA%zBgR&OOUPe>1 zif7^2k)Kux#`kbRN&DVXiVN9UezwX>a@dGvxLyuQg=6__WYX1^ffjA+Hw!p;3F8wd z2_#~40_1gW>)b|eRyyZx+Ja~9YVn!h)aQY~IbWs@lSDXP?KFl8zgh3&N)ZEp^d{_K zkQdSDDmbs8P9T#t7&;9KhSF-8!71%0@bO} z=;zKzGQX-5MbJTW(x$^uj(X8dvD-?2%fCs?s@`5EB=42Hf^zTtS!$28E$?i|p7Lwe*#K{%OCiC&WM?HMKZJ)9w(8%Qusrz5!^ zfP|;z34NL4sz36BZV!`piuoKaQ&;vxBqRP^ zCyDwnl{e@SfX#4RA#e86#DBA?&%5huIV;J}&c?C};OnoyrU$QH@i(*ge=4^CJb(IB ziVpy~55JReZvePMm=p+`HL6?#SXTcn?l+g;Y#y96Cx8zhKBVux^|m~qQ`#Jr75_^* z-X4wR2mlS&!({y$c{9xV)bEg2U^w|D>*sNFf|D|o5%t@K(>8m}w~27Q^HyOBQqY9? zUTAUdER>l9GAb3zhC&*YSN&uPRVV*#00AQs6s~$rOFJ5%il@M_m2qk`oR2#IUaoYL zGA2rCAOg;c%{LN&ATE!vGr_IJW83rQgWZK-pMRN$h%;dwC~aw1B*&;5nr|H4c`(j{ zBtMH;w({Fbh8_X&DrRL%a?!z*z*bmk`3Okb9{^B00wGXY#^=Om_BsN> zm{&rnP#OI;8m`u^0&IpfX6lBr| zgP2D!I%#2t8t3d_Rj=73|%_HCZP*(MP@62HjTL*q?C zAoF2toK>@zLriE8 z?b0yes;+MVyhM2Qhht%&E9yAF#zR4LFepl6QjX&R><^)B1$4>~%MIx{9(P2~_MRUA zFILE@z3a8W^?45ovcW-sDJ)H0Wf$0~K(NC=+R+I~w3EzWLSZF2@CCQ;xCoVvB?3ah z#suNU1p-<@{V?7Q6bwcVYKc(jcwCbCjxV$U!Vzk13mbv)mSRKotkEpat+{qv**jpavvJe>4OJ@T>|*% zt+(nC0D9*gdRx8!zoWm;o;{;t1c03Y_u&o0y#e43pZ|VB-O3Ebw-%eJnm)FJObwc$Bz_{UZ{{Qmwl4U~3fSEv`5GoS=mi+<}LFc zq?Wd>@ayGPL&IHCThA!7q1@{1e2|sM+@9Xl0s}Q|b31q0Gs44L#2w4+1*MfZAPIV` z@mmXwFmrwEIXf%D_SCYLteJQz^M!xwRY;bP-7Wd)8&jV)(n~JgM~AZpqZfZuKR5{N zb;4Rcz9D`7y{Uq?fqjc&Z(B4b2`Khg-l~fR)A53`q@wv>f}%A%G~S53qeV zuO$i-BTIvFwUaOOId}%ul21}Z(IkE9NvHqj0d3C6^g2z^39PI9x=Js!egiK&*yMd|a#yD;6W_zO1mN`3$gtyCp5H zzjDLR8#$wt7~1-T=}9XK$6auQH0-3og(Qi*5XwU121E6-&bP%J--XC+9FUC&Rw+LM z!I8#(RDj$24%#=6P(apM`)b={`WvG%FZFCi5%@zAKlntNTUrbuua!ly4Rif_0xI(w z;)(tWgcfqc(;$8V<>bjewlx}L6x8uB&31;7$Nex({x`fEM?N{3{i0t$$=^+Lri*D# zbpHA0bq7H80r2>-JbChjKlIdN73ELPX4Wo806zYIek||3PxPyA z|1F=LzvS=!X5PATd{mAAsAG%MQ#ze~H`C<5TmyJT*HnD}9UUD_31<&zobLkN%lyrp z_Mw8nPU#(e?rmbn3<$>!2I>z^ zxq+0aB6edy!wWTC3d~)Z~hrpeDl*-9%aHtH5-=*_yH4osD2? zcK9x|m~8lr{6PMj0{8#gqNNb80YcnzkWNyjCCgdl00hxQ;*n4lATipGVq~MjD~z zYBlT1G@RWqB)k3Eh%9l{9LH4vqWx+Fj(e=Z?EJp<)#N{_!GZ5UuNnp{kXl^~KcDzY zET`A!OW0G~QQ%F;4KJUp1A)-Tf*)xh^7_{u2Nd)8iaOwqxH-Lu7ONJxtAHSl8wG%X zVKOf1SpXiz&=?N#(0cGr1GL7DY6d7bAavRww|g*DB^nSdg-KpKS)_$@8F{R)fDoA4 zcDE~=3P!o+-B5M_Y{)p+KnE=WTfXkB;Ih+2<4uGFb-=05x%Jj3J(Wjq& zD!TfAh>G{&7UA9iaJR77hVtU`C-UOuW8UtH==zfA`_spXnID~=jYr4Ve57|>7K>N8 z3-fe1mDA&m6!)0hX$Hh-6`YHx|JurKI0wEkky8|wl6pwkelN>!4wG>dNZmo86{Ba( z;}vtDC~Yu;7E(=H&b^DlDBwmAqH3I|aKo;6Q$nm|la3Y?FK~z_hRb5G$^cWMvz$x{ zBAArVA9$BSw}Y0j{f zcSi9Y0c?W?va9~Y(Q(9Fb~gi$%l?Abp1@gUtdIL3P?8ALDOlw#y)_f^e%OryX>sra zW1om1mIq~+G6Fig(MD2P@gWX6QsCYj;=87+LUS+Mzx_%d1`FM8U?EGoIFbP085QFQ z-swPLoZwO?jdb8*y44DF($YFUypmSvhP-kE3QX$>I&hq)*XTt(b~@1HOp9v?7b&C< zNGB|wQ}7s!NuUJV5c(&J4@`la)@{BWQTD98nS-V_3_VYP(p^lMtEt*$f9FS(hkGyD?cSC|I*JNimk5_ZdQ)o1x_E%eIO=rv8Hy_7dFL zA5kPqVg_TRuo@3(Y;_q4j-o~gb~Sc5%Wx}s?Z~H-K>A(DCf8oJ;$&OrZPFj|b3FDi zQopbHZA)4SlM(Hjp=H+_Q+=&oSZ&-@*)u-u0r(#3E=rrQtApEEz~Y@=(rB~mRM6s# z?v}sCG3+{}xEnPC8IsHlosnoE=DT-bTDx)TP+A|n`D#G_7L<-@(2|!q;a7i03UX{= zSklBoQ7}*O!!XD&4tz5G?x%_WC0|#B_Pg(@6ToR9)NA&=?|+}p&(7)&fQP^T`)s!W zl$HPTcYg%n?&015aK})#{@XEtr*A!#*$E(o-7&`Pi1Z5<7BY zmd;XeY##rUSX?N>pHsc1hg732mgTyOsNX$$0iZp7jtzp70Tht%fKA>39J7zmNqKdBx;=hgQ6u6`Fi=0eTx?sot#tz0cS2 z%s4Mv*rZt}hoaB(oC$pKFvmXF6Ip`17-{IM0yt^jC}9c?J6ZBe=#SXoRbe$^J7Kka ztD{XG^CVG>R@|-v#MNe$Ta@X}w76LzG(3DanPTI&uq%OKcSONK>yJk?8FUrG!|VMB zzA?3H8(k)I`y+TZgHfhA?nJOF3kB*nW@e;#q$A_(@kmE$Mx3$nc;iiK?J7`SkUz$^ zW48|m+;Texy$OFD~H>k)uo{faNn zXFqB$zWJs?D^39a=#T!$TI4?5G29yfeiz|``5M6T_=CUyCI24%gNaj#9y~m&OnY*D zGW~u>XJ@(|{FUfdH(QlPD`1+W z%!TN0Z$JuG!Z3NM6V9rqENGMX-VnRH9qhEu!-TMs5NveR!d7$_<64 zd<5-ngO0T!LRZcNU`z63{P4F&(oh$QviJ}zNiYMzPC57u@^i{Uop-D{XB<+tB^jmj z+)o*kN%|$PFRBh#FWeBt=hnt1aP+zA&Q2S0=NJ1BB4P5CB-}1mCC^z#EPJ(Y zTRLe5(jJ|eV*{_~w=hp}rbq|^9cor3V{As4TnEbsdp<9s$G6rdEGX$cUa&o(U?&Oa zS%%ePNyUUtAPv6=miv9%>T@)Zd~rSv%=T?Tq<5_>GNi2_Zw4p0Xf{E=HZ}&p?fw;> zBA__euXO@%R|(SGD88x>>BB0&7Lt7*S)8xx13k*OjTyRiOk~#?~7+bVLS==l^p=r)9T7*oCia@?UpYuFKIh1hVFJdE|a8}(|;wD zBLF{85YsGad|ZwIeDcZg{`>FOBLLIl>+0T$`*6E(Zvglm1iJ?C5C5A#q?5~kJpL{H zl6L=qhOfS&at3^$w_^J3e$U%sCnv{c@?X3F(0m@C>;Q00T;5I4s{n9;qpzd=Nn6du zp1C&I#w}c~m^7{RZJ)HjM-%F9>0B0RFxI};?R+NWanxY-#!Pl=0RvpDLwA%1vM>mt zmISx7FS0Y@LZLkb5;M{PZ~RfEE!hBL6K6AyXnxT`1g)_k>v0lplU2Ox4|R4;0t(KJ z@Y;q9D>AnIkqPO7x&nm0IF^pfyow?2xtWy?UI9}ap#Yi<5QeCb4h(15o?FWlQ-Iu> z0ri+E$nbr@av@V{?p9y)4Ke34W18cH?U?y#VJ&A`+;wSXj~NIAoXGe3FsE!-C+UM+ z54TJ#34V_bH{~T-;wPPNPS2GzYk3Zp+rvHMpW~R;+nQF&J0uHp;FOmR!0o|1L|5pt z-8`}aDzR&iPOrsYJv{R_d*?oBQ5@%I_t;PA&&S1$cq*P+_vQr0pC!PW!6YV;m5Q2? z&WZyPgH#@2jCW>07jVaL^JsPd6@j(Y0WuYU)4Gor8 z#OMP%2HX%2v?FS;ddyRIR8R~~HlVHTqBMAxW)Ji(uy$jV=|;0K>8A!4jUe{T^#n(u z;&tJOTO+jM545w-zr{gUhByoYBX^i1z>UO2Wn_2 zI{?ZJ0Q>THF>*NuP_sUGP!T-7x~c$;j4-e#YbGk3L09bhN;FO9Nz}>6D z_*YYh*zhpUonW&c1r7XVi?wgBw)5Ma^W(LT!IrexCFTxkP6S;>*C=Uczw()}5?qNy zedb}{s85FZm;mL`fGY=y@>dlOGpFt95(Xx*DoX)sdOv#IH#{V~`X4B74%@tv(8pl( z-9kC0!1iNPCM69jHZ#yDu?%0fx>kG|Zf((8C|?m{S9$r$J;ORt-MIk2ihxgW4K9?0 z7HTwFEDRV}mp$S`t^`=P8COstRRhU{=RO*2og09M#Lt&09@K6fXnflsXcNw07-(s5 z-DxJrdSJn5&BrJ+vx_SuvnYX{hyqw_OHrz_@0U=*E7;b4yb1*HwWAXVr zt$dS}borer(ob&4-^+{XZfb*!BOi#rDah|AO)q_xxj>`(82T9nR`foUVPl`Wk(K!7 zsHD3N@<)z)O;%pL{bY{Ji8}z6y0&gD#&-q;UC)ur1t)aYKVi}jWrmeuYA|zIFv*zF zlqUafEgOhz0L|H=68M}WEl5IC*GK_)Xmum)xseEd+RIwx;<+PJCF2Bgo_esRhtp~C zT9NOd?54@q2Qp;<%_hVljcKcu^1#;5B-Q&G&?=G(a*NU6X2SC9fYF= zfNR~spmD_UIAv%%t+VYau!*|e3gC+sL!(_Bl*E4FMiZf6K*11(IugcNk*3sexA$B1 zUx48Pz87cZL!F&Z0DlGp4H^ur{-`7fo`WLk@Omv{T*`^M>Ul*cax`wX+v)(Y_yD-t z?fCd|J}P~xP5|F}_)zGx&*+_h@=t`GJ(EA2u+v)rL^=k+`*8bkZvePk5c+^BBbFlo z<^2DrpOnw<)*}F~{?jY%C2!Hu$#H$&?zX(U-pI+r<8gEPV6uemV|M|;AUj>%oGh1R zYjm9(?QCoEoM!Haa0Gy$Pr5SV1{Wv#wkmA~1fu5kzr@?Ndp{PW-%U8w$)Lh3#{_nx z8!8q9BfBPV)Pb2ryHA(a&x zkq-!L=YSWnQH7%0_J^sw0TfmBn{YH}9`jB-3rb(nFvX>KjQe?#ZL9gE?Ke|7!yxkt zdTmc_*LrOrHQzcWZ>X;Ab4Lu*!qj(H5~N!?5)UWd;=RT87758JdNKGOy2#)6pfd?GJ2DC zdX4w+ED2wMJ}s07@>ROyM3EaDw!a#!az{F4uhCiZgETeCIZFC4BOupB92%b~8Y`Q= zn&q#w1@>7{P_VGnHfZH@ro|fn1X}R2PK&g>&T`x#9!G#dULSAf`Qcx`AUeMy_g7?e z@EwxyyHPp~Iw&chHycA>X(XtB-1NOBbDdDnw2$OR0Y}`wPxE^nBdE?R>9)45AJPO% zp0%YwTfuib%7~M_;G=>-R!GZR{;tQictjL=ZKtd4bqoEtY#Y>#fv(i>!J~Tx#x<?2Q@;Mi?_u^ErURGdME^=FYnsaEE{`NEqxP z@j4TQ-K|zvN;EXQoxh}YHmeJcd%Vt2H?K3&6zDayV=bP>+OMY+?9q4&%Yix+CxFv< zmWvO7at&blw%>1gG63+=(GknQWw1MxYXIq;cj#BY`W4Z;?-G6T3H?vgs{e1^dr$5i z0RC>my#e5E!MVR20eJHGN#*jNOn(pltA~90@D*QNUDWvN?XjGnpVKS4pod4(ivNy> ztMlt&Gj)JbroXGHBOKAJj7{!v6EK1TlH21v>FEdz?~F7HM@fRc#&Iw>%-MM<(@?lm zN56Vn8|Gj>cERHM11*I^N6nJ3L(+|#v8jYQx%};@2!&Wayi|rpQ)BzQ0 z45oFed^`KO2zt$f&>~3Z*$FD^S$R!warcoVz27NF_&J#DrZnA5e|O2>IM44Y94edX z_P8Bt{@b>*EFSvN)aD(FvOIE$0*c!%&`#bahvh&fii5!(`U~U%Is1mVF?9qPWnp}{ zKAgU}{-O2YgWv|AF%!=^pcResh-0}KkKQxKM>ZsSc=C!YfoR5w`vA{j;E>8ROKwe{ zb(;##4Tn6j{rbGo#swAy_3E_+L*09fnfa^yqLEqS#p-^tB{{#I4FC&b!!zpa5y~N> z-#lse<0P!N47hGC`df|cLhi>0kDoM!sxT#0#0~qD=mB-b38zKkHhBRn`G|G!N<*Iz zSh+VGsNra3qLA6ZcY-?jM01SoTl2tV)5^5AwC|j(e{P&1S}^*k<<#df;%mDB3@;lW zkE8G8m^~bG>#x4pkoY4IK84D6sh-HoW(=}Af*-E#V9DDh@i*nPN;d)e8U3-Jac7m^ z>BP%8$?z%itMd-Dm(>ekj>9PB7(m$t!0L=@^Ke^y0Lc0De0_B#SC^M^d3D9-uU>Jv z2Jjc3eOB}SzbF&rKHMeT8vyPQY!X?lQP2MPnLPjbbNTYSFYCu@wVFaP09+nj%F)+X ze0Fw5yX&3ouQ$`5-Yqh9fXUz`d)`kAr|!qowmX41MFSGy)`6_h5fz3Ywjjm{_H{$v_HYJG4w1O6u*MO@v;$SOC?4%5Iv35}u z+inga$%7^zyr{zVBLmXf#@eAV1q?8toGkb?t;>1mt5jz*An=SUBW?x`Mu@;wGc5&R za#Tp@xQu%WF$C$r$PWwyf{H<_0}gb;>J0&}B5fdz(%#<}gJ4j{D5Ou~O zwhuU&&PX^A#Fg(wm!2KXYVhCv=XsUc^sRfDCkodXTe-FxY-1hUZf|Gup?++W)G#qO zT1cZiwt?YcW1|7i4U}|ysKZ{<*>282yMoIA#||Xwmf-II+8BKccttw+*MM6wIT~C1 zI0VA6Vt96}XX6{3n2W^mV3?p%E6bRAljQ-oI@s3#*Z~w*0$zf4#(2jWa0rV-S{KJ9 z(avx;e+gO8+Bg>bML-iez?uvT3mx3@r}13OqlOsUnZRr5B=$i!#z6W7TG}_VEZ$Px z{(pH{&i{|R*~|^Mf4Sr01n}tk+991BAIsVKx$GwF-hTX;pFDnC&Q=Z*^lm;fg&pS zFtJDj7jE?^EmsXT#M;lOwgoHiw7$i2SwKG|jP{Hr?@$_;ti?G@pdsM782scjhQw*m zkl?H;AiPd`PWZdP=qC@W5STta<2e~#sfU*faRO}ueCT+3yE((A zHiJCwh>g}^htXEXV+|){8iaOJyR^WFv)nS1tN_7|63DD|OILgN-SE}$ZBmN>-Mwgk0YA@WMomS^3aMUHCoq zOB%mC*D)0`gtTq-b#g5fCPSXgzHeZ)nOZvyI4}ZQvs%Tmn;TzjG>?_HpT}Ea1$`LW zSR2H^~ZWxo7DQGwlP`=?6xp^ z*}_u^yTYD>@USoA+i7Ysaxway9G{Hmg>Nq}iKe;I@$N{z_tsmqd-<|VQpd9wFXZ97 z@AA(+|GX@?(tY^dg!>%;zoYQs^xxwbkH>Nh;Kj?Yx$FRV_3}aG`m56uzP_BjTOMua ztuEzxGi>DO=-6RQ9fIvVHS)b+vwI&m5L7CWUJAad%w}LNYS8*@@u+xE0TZ>IX(0F76@_!1 zokR>;$X56bXBYC+6q{Dmj2w2Zo}^90jl8q5W^Pw2)O``y07VThth+sYU{UL8*8y7N zki)OI)vFpw&+yOjY?D_TT@P^N0|vvk(?I+P;Vk6ssDvLY(4zguAZs!|0>M#{!{m78 zMZkT4n-mZqua`dfF^I-E&B?wr_(HT893roUEubyVjU=YKlwSo`tPr@tO{+X1AkQ7b z2@?oWcaWQdx1U5Q^pg7Alw>>U*t4UW zcKowx^8e>w%vo$z-}*96U~M%X#gfu~770zSc{+avMh`H?xcY7J6&YzTDAm_I^BWGt zk!XH4UZ36H64BDJA4MKwOs9W7*_SxUt>coht$6zuc1@3yNpl3}idX+(#nF5Q7%h6Z{T5!KrOS zTk{fMf97R9Mp@$P!Tfr`%0e&8;UZMQrrOWsgiR3qUZn1F@W9vC2w_JRBiw$ zzh8g-bxr^L*S{WqaeO?y`22JEXHTEXC!c)6dJ90O5$?n5g!>%;cMa3ZKYcK>{l|a( z@$mE?KINZ0d?8=#e@H+4A<-|tG|qoC{himR-Nk;heRwLbF0Y3Tmu)b|Qn#O#*07y5 zgDNDM6}qUCxjGn9;or`qH^+O{N5e$Vgt+E0;fs1{POHCSutZ_2k_(n#&0rmWB+zjU z(7c`?O%TI`Z??FD@OH%r-^}V;9OS4~+?@vc#8f~*%w^ZXq_386lbgax(QpvJbrm?Q z*lATv@d2&OVcxtmft&^?Rs~3812?;1&IY%m?Z5!t!Tt_7)^=xaZ!sZkN`9~J8!Hg; zk*2(CAf#4$^|MFav6)(^B@7tmilKwNT9pk^aM);ybr8a{aI-VSx&3_0XRtW8vRb*) z*bPyY{Nji=JcMFf<~mwlX}J4wk5=K$^=QK&;hX@d@I2gCt*o|ZF#h-Y|T3C<6|mspO~g%Ga} z>|WdEa)RuI#0xqByfxfW2{7FvLj%1Q_;oY%(lT^LUMmDUKT}&)4vFZdy38r0r4@J% z->Jh(NdJUW7<9+dV&}4cZNgQ*EB|rI#%mz3>2NY&ZLB(HCaosSq!GX+_ZcTK6wcH^ zh!)Mz4AQv|P|UaJn-Ed;1Fy>?UZF=0LWgCj(uI#V)#+ae;|~t;rwGv zF|>EgV-E6=&bGs#Iz(2ub*wQ`m@xVobZ)r#ZU(5c(`IP#xKlt3XQMUnpVh+h#dHg0K0dp?~e{o`iC7sJ4BUmgjc z3V%1nKiu!>;n|t|@X@337Zc#;6O=#x<3H}U)_r*WaK8iKuHl3FuY52)JpHFn<-PaI z>$~*!gGchk7hjf1*?4?$DP>zr3D>*b#Ox>IZrtu7>$bP)24gjTG1E>P4c+?-J zPBv_pf=hJ5HLnya9@;m}lR4v20Fod8Tya;0k%Ujhq(xCy(_ur}@ z_FWYF&JG9L@{e2ObfDRGTg0&#`gbS^S*-4DH-NRh71kE0MQ;U|^VVAe%5H$Y_%Q{; zBYN?t*}$ZD)Ssb^ZR*v12G99T@iHZ(I~q6-Ol?Fuwqp{l?xtuYEL68u0#>$_sH=3~ zFef)}+Mt+`PC~8TmKW8?p4p&$YI4h;^*s|wFqyREJYUf_FN)#hpJV^Qevs?vI|qbNA>++&jXvzM zjC%FwR7I>`FQhs*H!{j&d8~o?Y$eeC2ytV=74aYfhC~D7`!V4r6ls|8R{Z#Q(tVGP z=E?up7qtI>|IIx4H(Zcrd%(MvDdZmQH|n9ji~-7`#5mv3RKMfGMIC>D{x$hsSDc5A z%#=3SC&=bwq@j&lYzF}D9>5iEGX~hoJUYRvdDUC6K=~GLebRK>9%xzN;|eiFJ>g?Y zoiuwHl+M3%yYb09{+I7|d%zBNMp#)Ab;SU%9Dbr9CA#7jhTEYTBzR~}2+d)UX!}{2 zR+Ky3k|@s>6J~DDV@kJIUa~$g66GV4&2Is;llL)zjWV7AH{)3xa1Jn+FnoqeuMW>#w=o0`U3gpYul_eRMx>{T+q-9RPO^<^2Ef(I+4AAHM&G^uK-i|KPXi z+v)SW^ur&%Lx1tNFZi+?`+xZzUGtuI*P~4H|6xBKO&^bmF0boRfN>nT908~kH)7X! zK4~^3VV?U<5SnZ;nY0IC@1boAuW855z$#2;IKVbET+!2fj$2$HwgFFf9D&>1ncBVd zm>$bhf#>N2kibKNZY3u&!%4Y|zD|hKfNT`?NuZ+z8RoPEdfNvfuysksTo0-~5r&P@ zPud{UoFPh}rTfsIJ@Dh8$eb`#)J4e-SKwJrndv+FYEKjDp_w-W96cy_jPnZnhIISC zz+_!~fW%&ufWB3F5-V$n?^wVA=)9T_0j)LgE1{vuj~GDVKog3CL2rXbSHXCR<+my- zpW7hGc9Y;L1xw^FvU<}}!8&5F^8>B>nfZ-1TYw(v0bGZ41_v-CG)OITX3;S^Ij59!?XEtvaKlTp>y4CRsx4uOQ zhQN31FX5frH}uzl<1BkezChgV-FLp?`G3F(>+gD9z{n+0=4rT`<~yZp?zU59udd3z z|B;FXfX~Z<%y6~ajW4gRHm8@D`?6W!H!ohulb`-n==pOgP5{jhzy}|EK=573cZptp`HJa#L~p%(i>~Oanx{Ge9FNBRezF^H zu7~~Q)B%piY3`^^p<|nH=A3lPcu~Q&%3QvN73H~u2~L*gi22PrFB&?fBM64HHQyCW zQ#!uuKqqW$8Vm)2<#naQpsbT(g1nWcg9QC!bO{2PnDUu1Tivd2qi*FN)u1vc4M2Fh zECqDTuwfHlGF)Kw-ThY$NwJBRQU1?o&K0&TyHsa*S}D94fCFyY>Z%-UM_iqtnvODh zx-npW7HiW1+69j>*aTdU09d>DqiBU zt$cN;@fq@KRv?ls<`&CH6KYBxm8S7_^}*Df5fVY1mpPK%Fd@J+LO@eT4>aRIk;e#> zI`W+N59$Yu?->u)0^cHyrR%|T(Ex}tFTWx2kp_mZB)F0akq*vbLcwW(gE9-spwz}V zGr;%7S+352+=mFVuv&9zqWQD)Sd8-qy`F# z?U47C>SnAN&KG5bl5{=sTl%&*{->jDac;qK@!bWTK6*go zZjiEQTNeIn|AHd`q{fB%JBm*py^oJgZXqsp@?Jk6qBQqyPzbIw%5R#WNzW>%AL{EK zIyIg(Lt%l!Xc(eEwC}3$7K(`}3T?Bj%pseJElCPsEeY0_L6cxZj z+kwD-g&xvh+BQW|5AyqDMYeLr(G4_nA>%@4;}wr>=V==duubx-ZwRB8Za?IvEETYB0IX=X&s3)`| z4v=mDvmT`Xi4P?K-jGh>1>c0uLyI7p1HN*JKs*SZv< zEggY}lMyGFL|C~?cDh_Fh|?GC^9;1&l!xp{pMea0ffX?3<_Kw(Z*Dhr~M;1|WppY6QCiW^xX#-gReR$uhPHZ#I(R&NfLn zsPUn#W^4JrH66w+0yu7lxLusE9#(f-{18pAlSkVnVUzCt*xnboDi4^kz$cs(eK8D! z7u|44X}3c>reO8UM>6e3C!#1jgUe&*9{l)Xj+_>89h_ z3%5r{TzmkWP0H$(_R(@CMz)jeAH`ST=l(c%e!H5?^_?kv8!(OY<#ycxC|kc(#aW)i zol^-ex3Y+n&J5Cp<1C~;aEHi_bd)%BB5Jg21fFg)rvEmv2U zMHPczwMQsBq3$)?95Fj9WZkk&F5Kp0VYBN}fdNE2LZBY_8Ln`w1_5bC9BxAvEzyx` zV=+mzAXhq-EU-c`(|!Or)V%(y$6dBN1NWlkyLKlWIC+~X?Zpe%BuODP@`>XT^_&Dl zgJ0pO@C#n%Yr)zHm?J1;oc6P(XKg!wHvE0?l@yYu4~iOmQ26A(JAnh-IKj-YY3>6= zHu*P#QK%j*M#eV<7;FR>2>3RzBo1a$l!FvR5gI)Rpuh;UEFb!DC`>xIr#v-FK*Bzz zd>AMF`g*txy-mYlloTI`B?F7NK^|)!+bs6YzAeNaL9` zT6jNM=4GSFD7@K%+w-HCrE?olQ_dq z!n^AxZsZE}F}&ydb{kyW3cuHkVU;||R|epM^nh-5!|uJh+n7Ng`q$q-O;f(Q7aF|n(dlLfM;b3zChUq%YZ9?kHg5ro@uig z`FfmBL6@rm%L3{7Zp%k}PRB>5QVal>7Z>sadZ&W=MfvBGPl(=sU-Sk5$r#*+*AMpw zfV+jt>1Fa?!jsRR@N;@jFJF8kFaGiy{=vJGyemFue)a8eJgxp;kGn1HhDlc)2@U01 zz}Xw^eli9O^?5hQ%6)*??4Th@i$-qI?vbK43*d)%7!IQd7)8 zax@4WITtfl3LH5$1@<;fTo}Gm_1E58FSU#ZfdU{Fa zb>QTI>LMJXz1%J;(4A8`*gm`hOIqAw0DVJ1Qs0;e0gGo7#FblON|Yy>fhpm=0L&2{#$!8sdqG~GwDtM|E#WF|kpj{bMaExs)ja7$ z_?+s`VPV$u4i2Q@8QKc)mS{}9Jwwux-4G8%8}Wd0Ti*Pv6aHLnOIF4zy@~(denShn z7vz%S(W99^KzkP*QO0CASv1%K$mT&WsdSw?*2RQoK(7i%ai^w>tnqLso$Gg|=5ST0 zjTdGeD!Qw45LmcC`Q!S{%1QFc^m`aj5a1}}w1cr!4O=MBb*{ohCw@4dDWR^u50s4@ zj@QDGoY7N2$J@j;?Jo6!Be!D;RxdPw7_H5*BTj?`;FaHtSk5OLLMPn$TbEWDdB=?99OOPPDwVc zY?jN)0pMCIw%`o_b4?f`g zT>x($2D%S-3gs@!5A-U4IebDdUcSxWeE&Os_~3zj{oCo&TW`_P$uVDFT~|ik98D&$ z%JdsKqT{+1W}GZyo57XC003<1 zykg&kLfzeOgtrg0vC-P{jY-FKCU4ljXdhUH&c{3e?hWXiIK4cy#0~LtzM*9>g5%`h z+E+7ltI-?%bB>er+==H-(vXHb`48a22jX5gK>M!7<8LiLwVgc+MZS5Hz&9bX{#|(*DXeVD?)*|STp@MRnWs9b!Yt)-WKyyC_S08l{B!@u_}h%X^H(F#f; z!EJ&j%j7T@zNAud?b3rRz#zzt9}a$wECg+q8qaZ| zL@Q@YO<(lU$(H!xah?3jSFdRNUw=ir|M9Qq$$uS-j7^66`DXY-nhW5C#^f~iVdMA3 zs&vDzuK0u3eHNjGK3Y@^LTaDTM~oOK!&-vctnH`0!|k;c7TRwVTfihBi+44XM3F`XbTd7NI8) zD0kfmTOeQ1En2;4(m#&FG#{E?roa8}rR?^5-tCG-sq6qanjuV9u2&Dv>+_4pkNNq> zAM^94PvxVJKB|>7M}YU?&BMI`;Eutz|Cenk&wu`0o;?1kJbw6%*foHs$EVKuN5@CC zSM0AhvKe+#R{qCfFPHm`lp_H9abTYS>6S7-|4%f3H$hyx04PKiXf+y@P3?QLfO5TO zGQw8PdA^!&o*??h4F|MPN?QQ|B+?@DYBZlommH?3TAA^2l4yk-N!)r&pg|MES5Mb z2&A&Qi@=QnJmW7`F17l)yww7%Tvt${J1kfhve}F?rtD`hOg0*Gu&GIB=X|X7lOW^G zXki~22OkV=%&{4~Y7m&)M?Vfw^DvC#+EI(vrl{}`ISTxQw-~q|4FfzZ+b2wH5M~Z; zsW3+Fq@jje*wJBik=D);03!=5VIyvccUQqUr(*A$>TN;1)b;PUu)rp@p zIT~o7jD(94U|>LguH>`Hp{>paJz#L>G&WxIu@LfATBvCGCH0e`=>V;Jo3vsdZSBM; zYf#UHN#EF%xfx1)wSIu(4Y(?xzdpgYy!OnEehlqa@rL6F*w)rb(5PUvFORsp)p@|i zrcBF;Is<$qYONP9WvgWV)%1n+N zkgu+<`S|pdFD@_n!K*WVd4A51zxO@){PE+Or`!Tie#;F2_pASR3-?C=?ig(Q|Fch@ z$%p^VhfJTBx6h`(ckB0ys|zk3E?;b~?JMNel@{j<{D~ z`w`CBg8(udtD>EM>%?eJ6t18niLeI_3dSb3KKX=gn@vaB>iJBk`5e6Hng4dTeZEf6 z#b(uOvkw9>EA7~v1-d_m5gU`-P%|qi^7d&oP&`NnmezJ=7}CLjXgYQrHIKE;pxY;l zV%bYOA74SW$_O~LX-7_MU?I*6Z21gTbE>EHLwzg)ZKBFUO$Cj=6bH!)%IPiCj7o~v zh|S)NG2%RdN{y%ud=6dSl4_H3ndE2sAa0&5wX_o#$SiLmF9@aj30jz4$i{vQmiSu~y#|rs2-B!ixRb(tym(agK`wxrBfW z#elA4lw`dQrc0R8sU$$S&d7sTGRH0WCSmwn^e_0BK~WQZ?Zsemo7hUX6Jr|j?=_{{P|ZTU%YG+Mw8K_(NQ9uurDAD?0PfPyGS=*+@RR6 z%cEayC%P5hct}C#GxE6FjTH>=3F@M02CM`%7BXige49} zRH&b~t2F$W`~D%24!yn{{4Nkh8P6c}TITU`zUy#183g!*<@~#A-v9QxtddTqfFq%; z(8**3_-gkhJv=*;7hiwPKYjX?Kb?T!%D(cMP(r>=xkNq0N9Rzd2p6I{oCZ7ttzde%~q1?h+coK z1-W<4Tod@_sLu^I=4nvoc4lffK+M^M+^|8wDV_#)X9)RDJyTo^&V^?~dfck+P3seM zi7Ohe$68sTJp}#?jvyTkFLt8@J5O37ea>W~cGV#o1JLm#j-^^VBz_~$n0T3E{#ZCg zWebnV0M*r)h*R!A0!}L_2Z@i|k6MO~^1elKC1ogTF%RQ@K4_4G@E0^7iUno_i2BW# z%f;_E!O7+2_>7C!gWGQ|Uvi;Uuwdq!>%ZU)c*eBUDf>`ctF(JeijB}b1u*)a&}jZ=J$JNIi&++9Di2~ z>+~@F)-$m5CVc_bm59u9nU8M>K%y4vivOm#4zB>^i&r%M`4`jg`8@f9WDV(iuD(>)_dc@5D;9a1LJ2*$;pNI`S;@!TLTnI-_jEiL0Tu$L;aB zIslnXp=bXAjx#seh{l?HvjyVexDYMJxcWUEJN0-U|4N(a=YGggRxMXQSO=*%$+9gC zS;Tn+C$(W5L#dwvZFp#7U(_ka=fOtVp+8})uF0(8IqC4F4i8VFB%9&z9{lSw& zMP|tA1k)#rBivNb5yWg~`-dpA{Xxj#&F9IRAQPKZhfybiAeJETgWSw*L8?H+R=u0! zzL_jD3|2=tKFJP)GH|8!SN(Lsx~4Gffs>Ckwn@?dYk zD+J@s#Mepb)#oAg2T8xw=`Jb0@nb|K1ny;Wp=LQ$x3zlq(&v2AOSJstT-$3i;Da06bTu5R z5ZpJfJNG>VYN@sX@w&hWH_3vVwz9IKtrg z&mQC5d7kSdD4>4oba<1i(r^j}>rgd0+?>52oxffci*A0PXZ*Li)&F1ra{Bw5dGcTL zsD1=T#j#%22lX9}>A5_%{3F(p$qew7ytcZX&(Skc@Puy*23|KP*POi>YIg44c^#Ou z{4>IHF4xL4MOdo?%lKyX*LIx8JHs+B=C2cE@Lgcv7UQ|VKot6n)z5DoU~1zTC<|%k zyCaRB1acF;W7&DN!ewm2Z=`r^!pnm)OThF01nr0Z4~&=WtiSm_@ZDSz>nGaAh&LJ= zoY~9!(8x&~k0GElV@~{R&qklnF0FY8$3MvTAq};*tl!3E`x{P%cMv8N{U=x+^vgsI zmr+J8e$V#%kv9)Ea(Z+;ZnpFB=%edvrkB%X|E;&^n{U3Mv-5NLG5wexzjz`4-#`6R z`5Dby|BLUn3R)Hy#NLP32=_Yx?hq>TeK=nO_|YdHaWw+GAl~l&=_D<%VT^EIGpo8h+! zK?(44V-ewMc5tLv{#Cex$5WGWC}V5_3xgttszjkIji#F!F+A%Xtn+3KH#jPE+Ytnq ztdB~EL6r|%-G+I$fiH#(@DZP$gFXS3eV8kyfct$Mnsb&{)r}^}|~Mj2=R5 zCrhoz*xJtE!cm0fE)!F_z#la=NBGVkMA49=D-wAyLf{j@i`lHG$Ex z60MUH-}Ccr$So-&%0Ud=0o3gWiBN>!W|`Xt)Y<#KopF`~6W}p40I#DGG9RRav^rz8 zO)qD;h!gH!hxTIv_)L8kKp9i+a6i(m{w37xP4|1e~}#JYMc94DAPf zmQ!EHzMGjh^HeaJa9jxulRIvCoUTg00oqUiC#(xo!lx?OC12uX-`;DqjjJrZ9v9F) z)z~RjP&DhBP;l9o+TQEO4M$tu9&%qw%#e3(VAmNEjYLutaoe3L;>SkAWIVJ-qenPC zQ2X4_(gc{&+Qs6L7e;BjQE+@=hCe&zu;G{o$In(KCEAwndxhh51KJT$fAs^}504eC z$xnfLdA#9D6g%laVQghI2?%uBQrhPeK9-$aSLf%$`A#l|ap3LoxZQ5${M8h{J(8=7 zSMt5L-Wtp5|F5S1emJH5^1JW&>GWHi0Ddsv1aKej818of+%<483rSwvR+&``HCwF3o9@cI(*YonYW1tTzj=bpAP+&Nhg%L(HSCH$?@?}no^f=Af^>p+L1!?Q z-|HhzKD$m(!hnn_4~R%q?%Zh3?nXku5*`Kl%vQ;xKF!~3C8MTUy9I%vUaDLxT{S+i zO&*9*q76~-Y>T>y$Vg{++ZlRPS{&)@3_}zK5d=3ZXj#G1%`x9v`^Ui8rDB~R2@s6B zzPx$mxm)I1X6{Ez|C^H)#yjijmpt@Z0o#2p?UtD`Qn$?qxVDaRi#*VfVYS6N7t?B4 zUL?ZG>GV(1dlZ=I0Efxl_)ZcnCA>)w;vTK14 zy+a%4ZexS*;3b{bNsGx)1jDmWZm_!9Az=@$EA!R><_wj4I0rsQecLH(t)XO%5fU8i z%lXK{BEJL}T+Yy+P1At~M|JXFR{8h;i>~;W$-lKrraQ8@VE@E;ecubLu0q{Id&7$v zvaRfZvUV1nxT9`o$U8#0gy|ApGyh_{7z3e!#;=7O$#-#Ld^ReKnr`~*iYt^sSXX-h zoj$|mNXrpvrL@^=*;Y5dZ9wq};|6Iy0_@sF0vd!xDj+h}S3vk=9tjIR+*b2(mwg2i>P~3W+U!HlT z-g)#$=>7LAr`ZmGjOl%Ny>M>;_+11w0zCQr2|s!Kq(1-n$3Lc5FCWzBlnP*`hs^-o~<~jvm0A2()sGN#1at1{}Go6CM&-hc5V?=2ZYmwB1CJJ|H z12hxFZEPTpbE_u`OpV3SU74H<;H2BseD}d?nTL~Y{_!JBbL~X(# zdQ<~fK@50RVgwU@IC|0J39YLD-!v|6Nf>Asc7e&_A@HdgIgppgz8PIO6@=fpJ$G3e zkPP!1q(3U~CF081{zjLPB# zH-9#=M32)m$>LqO)9&8q61*Pl+*T}0SO`9mlrt!(+nfM8mf|FcL^g;Zu(dKU0)tSh z69e%nK8MOsA71{}Wk>EO4vf^=qOADy*)#)qa9nR8nkW8$Tethyt^Q~oCc3r7Ic{xQ4HhXKwr4Od;Ff=V7y$-BJ=}-Fu*4%90nku{eZDLAK^B;x z5bDz$!7!)3o@ABvCvWGJzI?9Job9yeS?=OG8g}EB-#R{_lM|xT2M?w!uPTAcEdbx6 z@6*}I1BdY5`|sCZy9Hp0#C>?(aDN2gj-gnh$`yd+`DZ`-89n`nPx)>7nt$){+v5*^ zI1a!3HPN?I+@q6Y{`$Lbi1!;gJsWsGjdu3e^9-h32RLjtB0E^>HAThTWW4Df^`Pp` z&s>OVJ_|Nkk){Y{{W*7ffk~)u#Uh2lsHYgVYg1Hg)r#863%d#k1T;E6K?Q+V$XH)i zIl{Kh&b;e;c@6g(r@j&b85D0%BTMbaCNN3j7Jj2^jW)$AuG_3$E<(*|%!Yiog3lq0 z#sh4f0#e%fE_d62EMRoogRnLS$KKZJ^8k;H%uG^g>vj`!E~tW9M!TAjp$VE2Hb+&W z<#_W5MOs3ATvwT%+f%^F2KYIt!dbmza3Kv`mB)#zA+4wq$zH0H(J=1 zNx_WL5S+Ua4ya^V2P@AVK&9_FEnr1J4Z@6l{CF5P6WMaRhKAMeKlv)bgco+0CQQ+LKR-L8^&&uFio z>sJ4ht)7FYI@urp;>&r`Z|Q9ZU1)y5FP~*z2s4U$B^Y0533mjYP;@=6{Ms)%lCwUB zy9&mH*MRt?u+X9TonQ;Q2HaKXRW<%sZ}EPOp2W_WjZbx#<~-4LV;ppYAgWQ$+cDLW zccTd2`}IKcRdapYEmYj4+xx zddc}F>UbV$A+IU+(_tK@8ttfDdoFxE?)S{+bR~RrB>Qi#d3Q7!11Dp^ci(|I@3={clZw*OymvbUZt{*k4a8|2qz}FUMfGTnCsYi6Pk5W(Hvt2ISHolpw&` z_Zi?>Tu2NsI8OMaeRo`JpjIc7yi{f+Nim>c5y~U1HnsyHkHSVGe)!AO^4Mzsf|M0? zKMdhxlU7bAy_K)J&mw|TK1@Rf6JAgzq5vMH`IE8La+LY5KmgaI)PsQrR^ppJ1zNL} z!2z|#0iyI-L^OnOKv8qFHm~R%f5s0}in*u}}fNXv)#X0)SY0ln6ufc~mN* z{L_w_NS7bbH;3oT?*!H8p(nkJypk?Qclu(0NlP9Us1L?3>JP~?%wEU9KG~HYojf7E ztmK6@SbXag5optEyG}(#R`BgKIxVv=z%J4pfbn-3dVG>2q3*W-XpI_XTx-;~e}l9L z<3#VKL~Zgvio1A^FWqz!~~_ug<7*5eaw9hDZZWV`5M%Z!bxf!Y(x{&p_#_tSxQ|9`jo` zJp(k#UoZ|}T1~*+$}Z*nNbx8r15I!dz;!&7WzOwT1~A-wG;l1}{}4ZFE8*_=kXvUr z!wBMRd59Y=>}U;xTtZqI?ud5}x5a62X=!krnweO~DUQGAAwpRbaK|0_h>j@xUX(I38gFLkPg*B`S-)ZM4rjTqxm(-w=oDM3R7?F|_s_hjE(g zZ_CMN+V3X|((xn;#w~A)Z?sdQqwTdET_5xDWDqz#IT1So@ZRtLK3|@k3{Rgv^##}a zaQAR;0JvkAtWiTT0{rOx9~H)wPd}Nzzx{uDBoE5=mG8H-*H_oFJ=*fca5)smfX5T_ zmlFW>C_oL{C}e}cO;V-G+jgGcdp?dFJdXOhzNe_LToWEHXrtnY!Ucpl0@nc!CgZHk zRf*Z)%d*c~*ae`QU>C=$!cx502T)Cj`7H%FNP#*S4MlNh`%eG|>8vpOvqXBD4iTs@ z>Mh?9062=Y_6<&53|DUH8!=_42 zft`@%IA83){IVvJ1U0qZ@93mlGJ$OkUrbTyXmE~A= znp8?7;Iglw@^76u4s3eqSITMwLFxy& zG8j0b+-t|1g3vlSZpzm|XVKgTK2yz{`?!`yEN5ea?!q9+<;|LN50m~GqSwsfE1WWupx7W3^9Y%utA&xF8Nu1b{3WRq}#Wb;>MJml!ej}g$i%%<4 z|Dyc!InfV)I7ePxpSYMk+HR$=`F1#ytE;Q2PjC48y7GF0rMAUDo5l1^Hc^|AXp>r8VC9we| zW2?rSHO&cl=_rsF6C{pVMbqkeHUZ_;bkMAf8IC+yg?uMKNdn&a8+=_!Q>8B1Qg6nN zWK9)3zQ8~-%8I2`t9~1x-eEFs=!lLj7(W7sNz)IeS459Wpy21kLU=8cXgSPKS7Z=b zwwcpaF-aEfiXlffT?8v@F-bPvC~e@821j)ZvhhmVsfauG`hz#*QAAK8pbX>IVMXUz zU4{Pcg52ht#QGirWF*IS>a`rbv=~Z#a38tLh6$(qA(G*2~gm1h_CXTn=V2}!A37FySB?-XtCNEwtE|XG@sqx z6D_^Y6XAqYfKdL7tGpxB%O~-sgiyCw+enKOiv6XI4TToh*;!rvYCtA52Jm7`0Sy}X z&tQP}{E`+O`1#mFfAQ7?tY>g+t##Q8MI%K|vBJ9mJ-rNpRcW9D(%Q!+*bY#~5eTbC zZ<}S2V|#=n3=DKPxO&y10KFL6!Rw*#d%!nL{3+I%ILg2LE%XVfoAq%$3K?Niqm!ox zxLCH!3d_eak2Jas<0!k`PFA2rt&0^g4^v?FgSxEP|v#J)>I1mCK#y;E@=JERl@Wg;mm1LZ!{DjTQF9GGQ_I{ zjV7~v9thj$BEjlvd-x0$HTpNgX#2JN^<*zo9IF~X3;Jh}_G5p> zk6K|Mp)Wv4jA7cp@u<5^Hz)gD zhBfixO(U_h$r=!eG|4=L{lXi$11F?gfuGpQ2ho!0F2HNF#Eq#RPyOm0j0^FNuNU$7 z&M|4on#)_m-{@%(;hMdfo-Pjq+=RdyA9TVSu_Bh8e|u@tH#80|Xoi@f{F4KCaQc?O zbidcQ$b(HZV82(niXQvDOzcaNbTHz$(jcLab=q!4EICaM<-H-)GycaLzaFig@vqnU zy#ly7vUr{*WmZgp?VkpzTV>&!@?&-A>@Nxx&!I~@-Jx?wpt?B`TwUD`;4y3p==h3|EYkobRTEq9UtfxR)qK>?^IQtG; zalGF_qt!{Wz!3r=$_opKV;DG5<26BCv~J_LOl$n-Mu~(x@|*9z;Krj~M+r9>Eye=a z#tT_Z@Lg793^jam0zukBxrTFwWA(AQ026f$j_v~@mzf(O1x-2*6M+4`9sxMsoXU2` za#ij`pBi^}bj?STCGGn1R9@0IbaJ`j;jOpi$&Y?S`!Bv2fAR7qKYjoG@t^&(e^#OC zE`S>fz7L1O{SJUT1X1_nwjJdU{@@Sj^5nA8^ugN?r?_|M^wp^xA00b`mK^|7C#q?N z?Us*@j;Btsk+LO5WD~VUm3xyZj^PQO0M_oioUj=O-N@u0<6VDIZX+pf?`M` zVNB`g8AqbL@)Q-U;&15{&(QuhrjeGX@FS~n$c{&ZfeAxhE4?|u%Nqbt2Zj{@X>8}ggs>4#x9ogbKGgEx-0Y*X(pWj?dy@nJ+vKbXK_VRJ;dXde z#P$IPka>`jC;eXTED*w2hoO8`!m|yUt9N}|9JIj!Yu()c3^mw>Pt$!W$aKQa6lGnY zg|wnG~u&bRFk=^DJE@8D_}YX+BxBK}@~?Y0ArXH>#~(_&DYWN_mF#ZxQm zbscGG)OM>s!6I(U*61&*h7yl0)Tt4(j&> z?#l&}t1Fejonp228B4E}AT^#j{UX@i>H3NE%sg#%etzxryqrSs!{Iw;eF(8BR3iSnoDKAj%Gr>#utK_uaM7mKef>TN=&KSfXfn z9hv(5%<#fRC7V?HjR=}~KQ_J~YC9_^!A02kKGJ$$5A`EDAYA6%woVsr^0SvO@3b(y z!WaX=PivpU$eXFLucv|JBr(R#W-|?wr)8pPHne@TmGjGq8LqFZ6Tm{F2d~cf;nZvv*9ymWi6lG`srSB@wyi)#)P^6*~1n?ih~e1G8ZTTbYm3W*yd;qNIEeLf^ZNi z*~4~X8Lgiqlx4a8TJu+)th*@^n+2M{c~&CATO?#`&We^}CT@Ss0R@8_cLPLR+f4-0 z(S_|w!!UMm*tD=;MFd~~fNe^heg!lTTutIG;AL2gl3V2MW|BBC_V0kNS4R%O0eHQM z2PVsD`+|y=0te%J&%O6v{?`q?#>cqcGewk;wn$H*oAW#GLfz!9b>dEOD46U$cLt8Q z^g4#|Q~c2CoBIa}HK72ndEHmJB|-EM2RskZ-%zLARe;yK0pumIN2dG+5n27Vo^Z760S;jQ`(GEB^oEU(x>GJtsN8 zYJ3pR?I)1UvJ4YQimURrQ^4BN&Y9yDYn*6#era`bCu&-zuH<)jHW1Lv^p3&HI}o@- znzaeG88NO6FK*}G@rHo0V|{j75yiF!y4L!S^Ix6l!tfrCYvNUgv@FWY;`WT)sJ>X6 z!Xk$bpjvtMDr4hOTip(;>=ehSxRbya%`;7ndAa4uBEqvkBjJumk7IH}it`FJzYfT| z*ak);Z^L0ZUO>MS)*sBs;b=+Y$(qIl3dK4Se(E$Hwi^WkG#Z8lyp@1{6!6#e2{L_$ z*NGzkK>lGE#GC-`_r=<9MRf;&$awVawQP6C6;N>kSbPAK=N-&bUwr)W@S`97sHQ19 zubEfPu=n8>;obo7I||R?HIOmf%RGMYBxc$AEQu9tFN4`+b9$**kqD9>cFZ_lk6a$Z~(@EKDOHL1_QfW)dv7` z{!)e?OEBebVOY|z&EK0qcXHSOMsaSd|E<1`G8&H2sIl-iYv~2bB|xSF8;+YW4w^ZV zjy3I!KR4Ju2$|CfDh@{C5R}tsP!C7AlCpN7rLo4qS-TB!5U@}QvFSqoruW5ne7Hg; zcr@4uH&5Xp+_f->pge!hgC{~0og6;hI9(;gMT-K%u{@;gzy>5>7>EI`5LU?|H1_v zIZt#*!SLr}dZ;twe-f|C^F=;^-!ER1JjDm#b(=f@A>-?MRM58iPtW7D;=lWNn)v_QY2yDtPcvR;7y?N|fn4lI$Th;vBC zkOtsLS=65<|1#eIu-WWoe_@^cl3wxUaCSC5>W!cmmzPuAm-YE4@4j1qpFe#nzxmB? zL>&O$hdYLQ1Hc`ETA!R5pFe#rPaZ!J`fQGW@bHYk_kE(b-g>K80O}8d=pe~_GdyLl?Rq(ogM|KP!#?kZGBvk&zalv zm~bl}_c9OOIO5|g`X;D@P&Yj1?e=~ado$;+XX^3nl_3rj@;1hRT>)0U>uep|;6xr* zuGI*^oa$6S*>*+!*LNrQYV?eA8-FxKQRQ@4B{n>W!udL-fe%R0Z-bz~X1_v9Oz}vo zry^APX>Aj2D+$U~9ETc@3PSvnz8LV6DOu%9C(Q`A zlI!Y>SY{z`stF*SSI8#~v6e!4%xG2c0Tv<`h(m$Jq9rP2kX)=Rfgl1oeFiBxoh%dQ z?GG7Nry06Ie#hxn6W$uYYX&6d>sIDS>fs~ zH^HQ|bzHxrwaXaVb|hp2f|ZE|6gZjK$##aL@fM6ZL$5k^B zXhLrnz%%r5{m`tJP#9eL_Ro0r2AG*G$ie$_{{EU0(3F-+oKimsgc(%MO6urtAVZAsMcf{@0T=Y{R_Y zi+7mb3Li>du=H}UvJqHKxd|luoe`&SHJ>k`5Ny$+AmqgajGj}HfD^Smc_d_ti(@tX zNCR5(VS-BlD%@p1Gzre3_;y@EbaEy?7^tgbJ@dw*0+3pvkiQwvqG!Bbn5LAp3 z>uQ99iGmz#RBHL{A=6}0e@H7m7>D4~vW@Zp%fHkAK7-uw{-yx`F6tX#9%}rILthSd zUT%kj+#=2IGDzwYDK7l3)zMbp7$V^~Sj#LeJyy0i0mTv|>W+ZM8cT@Dg;o;Epe}3j z4ESbJOlh@(@#e@Kmrj;@~h!(H@^*X;Y@t^d>{^wuP?tl18+W&9ACV91^=okTh zhg5F2P{k8>4BDi{a6pH{u6q?QPGY=4n1ar)lY5T57AB-tj?9Y`^}D29jS}%NixKi! zIEPIQ{zlU+7I1|8o_bi_ofi-QUj~DLO(1QBxt^aN8hq3rhzCxPE3D)k(W23SfpxPx zaB=qo2A}jn8MvxU)C59aIPhO?uyM?X^;t~36|mQzvExy&;!!Hk5W;i(W{~is4HEgy zfT51w08V))%HG;pB3*IE0BL(jEF$OwpP=VBTJl_l4IR;FihPVgQpY#iAWcdLJPCy} zC1e(ZjP|Nt=dQ0OxpA!Drr+Iu&&3Jg_4Sb)fB#6ny8Kcuudev3ufC-1-qNQtVbsZ$|lsc4VU_9X!r>758FDv z{>$JT(fQhNib1l{L;i7HDQVz9&X-J()<|W%>7Jpb-E0YP1qUS5;JQ)CipO%XUwER( zBlFD@0-w?VA?r%&eD4M6JR?2U;0WCuZjZV#Jin|1KJQR!^Hm0&M5#F3qzVG!9$9nGg z(DD)mLkQM6G&(~apuPlj^m=NZusg6~*}&HPL#uZkUrNK#e#_+DSNrvkm==x;U52vm zTHqFk3uFR3V|3pE|KZhAW;oan9_WhW%8I{k$2XoHIF5IBLebcvdC-xh(avxS zMuV~8ugM)Zr+GSFV!KaJFlE^Q?X@t3813f)QsY6QSQj@`0NpcuLLLLTiMZ*vVQj~q zOW2KLaiu=)cN^JW@8s3_IbHqsnjg_ybaH$wKllOBH{X57kH7c5n(yh;r)9@Az4zXG zxwiM=4Z^(v;I83A;%CpE)$a7q|J#2){NV3@$uAy1=2zdmlm{p31K`_l>9{xmyqdkg zY;EiRZYNh)#rfa-PUaO5o$J+vsMIK~n%g&2Xvw(SIw}f$iX9pUJtla-=~_4|g$mE` z2m@PjFfI?VT!k60LK9cmLa}ZPN`lRij_W9a$_S*PFi;2sG!TaM#~i=`ZgV=U6U7}4 zsL*LH$9w{azK3U4yz<~?Y_tP);p4^-r$&<^_{Ei;gtkyBwFx#3dWPmOvBeXGRS=rv zylAE%B^VgUX-4p?@aD7ixqXRZCWuBDid$<6P%zTTnZC`t{d5%ob72hzvH>DS&EfI|hn zt%2ZOvg8IyeXiH0MSPWs|0A9FPr7FR=U>qE|L_;IpC`YLj;iw(Z_!zqEmbKt6O@h7&`qC(3-}rvVb_q(^KEzU#D3-Ebwjz_E#4$&0%g zj1ERGytYltbRS6dRcNVC8l9J8EvAJ&F`C!{1^QdS)%6era7v$yHePNc2K)7X<8qu@ z9qHluL8Ze6b`$tSR+604GR;vV!LOgIhgI`BMx-`5xAFye!+mG9YBh(8-0wqUK#Ibm znIr)@BwlofgVu&htIg2x3$&H??nJX^#oY`Mh6|u($pVjr;}sBWEb9X#s6P)8sK-gG z_t@b>q#*-M>)*^*#RouH=q%0vht28Sv-xxqI6Q2Rw*2<@j=0Q~rujb=CxGYEB5H;A z*=JOb08F7w{`D9@uf^`eYlM3Pz}bO>)@L(d zUD(xu2)W{HE8!Ao0Np?$zrd7aY})$m)X0{6AF%7|-UK#PKLqn!+>|x>B-?!t7^2eT zX$aEtuy0vZc$)?*eAnX%anL|v;xBMk&c`1{NAsaTtaw^dY{QxM1GcNd!?x#$!|bRL z6&vCWd?DzFt0@(My&u{_A1w0!Pq4qhu18cWtDAOh*6lO1_%y>!TMAgt8s zR(aRpt-+D>Z2X6lko=cn*o%4YM1J+oY%sB0iS2>uP$mg=WSzA9;l6E&oxd?Wyu&Z` z@a@!FC83Jb95M@i53I2QQpccH#HBfC8XqM!lH;8bP@*R`6^=rcsoM^9KrnAzgqC{&$==48|CFF5i2P?d{+6 z7Z-7+QYNR>GEB``y z`d;Gq6ob=(m;D`|aaRGxAuY2^3Hl8fCM64@Ct|VBdmq`A>#=KR8uu5nE%TqAmXa`xyE)4T7|pZ=SFQ%fn6f87CaAMP0L4FGow&V=v3|9)lM z;so#~^e#Pk`ym$x78egL`0DzqG3zMf=`e5j-d&XIFy@)v#Qbz(M*wi^z6upKYc4~7 zMWIZfT*Bbj3KrN34K=_sOH7d?>h|>!(j*1n>4Ftcb{LO5z?tV07s7-@zRycvmy1TN>z0|X-C#XyN- zzX^lLxiL6_^2P$VhqY@;lInJwtOrAHZ~)_#G*WE8KG08pl3+O8B*2^u2s_d)_J@pv z!GwWKm}o$LtcIt9ic9J&p$yE7fkQDNp#1XW9Qi=<14m$sc&K0KL#ezlpyPxa!s1AO zOc&@VKs##XGeukwpOtRXe_08=G=el*%I4OYG45~&k=(SBeyub~i84*Pz*m|a^mNcO z3tr<@&~1{^Arz7*2;hs>@6SWDP33@a%*ksgJr3b*Lj%`K?Tip>g8>56(Wmv^F#@&sr?!yq;rA{0X2JS+P z!ddxA2S9^FV+z(6dDX^3M2&_<jP}dx3mZg(-YKPpl)c~TIfB^YvU~A=h8mAvGMM1Y~|a4ZI5-LxDZFw@?u}k zf(0E}TEDM6rZNKSijxTIGj0Td_QkZEri*C62|f)dlBdF$Uxwpj+3+CqHGmV-tMAa_ z18{dVcf_lcYrZesJ=j0-cf#|M(yLgUUr^^8f7Fv+8{P{u;o$g?j_Q-Gko( z@WCH{uzUQpTm$$MDn|g``!9bq79Rk|7nf4EwUjVT{x8OpaX)Uk?D*eLRn z77rOV(HMFY2ZHTCR6E=(kAxNj&2&bN!4k;X2v7wr(ZWfMJ4X?nG!u2lzz)j>GxH>w zefxdel5Q*EzUr@;=P``%!*q$9e>mkcMWVoM>Q+cVF+jMc^4r>69ODGh|t3tHXZVT2)ZC1t?$J=?u zzfAo1F!7&$<$6zTMV6=;8?0RF)E~=a3JV43yM>4ry9G!;Y`o(<19fnGbYSGi z7c>zX2f7AHN#!X#G=dnv2-J7XaGVI~om!h=A28m`M;rFIg;ydB#K-%Uo%?56igDJ7 zJ$_6$nmih8%6s(v*fztMRvo`t)COk8>kx5XT5O3$K?Ael7P2et5cZ8<`)6bfZ8MdAw z*DY_N<ATfEl0)EQT! z@jSWU?8?tJOEb_IvO_E1NrTFv*A`h{DgCO#!@FnEhs0p#_4{B-{a9D@jUD~Dwh_5e z$J>Y-OUz^x3ggcnGo#`UItS94vP0`QD&G38l@rrN39k_gl?K9j0DwClNEJ0nFuAcS zv;#%_9d363M7Io(H+Jp?ZoZ8M5hW?fOny1`x+x=2SM;FT!&`DjvdN1IupL zn&v{g{Sj}Ew>4q8G3{!+W-bl__n-6Tumug0s}h+9H3pC1 zY&p+I4QdwFBBbedrI+Y-J675;PRPXSqxIB0bCo%cTdkdI8FN~bsf{)jgV-L_1g_}z zGe4dHs}F*0F0Fn}PMPaBKg*I`V1nt!4d5TU;lXpYjO2t>8W~2$#|w3$D+{guOkwb6 zyvmKI3>UGsvHB7yZtmb`Mjjn(Q*Tv;DDothflOuP*#Lzx8p^~*?FCu;$jiLmP!gj! z!3ww#DE$Q9^CSj1sB_l}m44dA=hQ9?c{#($LXPRR!y9C|by!0wf5+zh|4ZNl-ww6y zZQwP*>GCYIK#xUw^mvov8GwMCZMb1tZr^Yf-38`l_f-^0086bdITCdb3*auQV|^k)O}_7_=`@rRzEi=TA&+p}0&ekm^|1{jY~jO2jKJ7H+T^ZI&NPuP z+URecn8{M^8&0HYtWa|jsACq{aN{wnlC_EIIHwy+L8l zpS6pNTUNec!lQyd)^R;O#&$LOV>=MQm0UkaV+rd*(%8OlhBk>U@nwQtkC)JFXefr2 z%@FCcHtELt!{Ub1kvQhTiSh_^@gphJ3=bvjB+?M|wE&H=kJwcsOdWk8&46V1S-reH z12dEJs8BnG69%Ca#`XT-eFJy``)4SMBaWo=|IIKBU#D5m{+hS+pvLW{=cB3diVuL@ z?vjsBj^y&_NFIE1Jf1x|V{-!d>6G{}%~t>t-AQTP2f8-^+%-tq0q`Mx$i)co-_d_p zeE_`pq)P7k7M19?>mKn9I{g@{C3QVnqc0&r0$?7Dm(b0&l z=KIPwyh9$LhA%33aiOhO+NocJDl7L2w!Vv7(sjyh#f5qY8k9I4P}nx{*<*fF0#%=x zrB$u(g4TbVT$&|S1*`ZrXrVA6wG|aL^t84SpM(b?ySD*HY)3z<$j!??Diwj18doAV z=99Mjz_06LX#))-0Z~h%N+6tF#oY|HeRALG%7NI_h>im|S3aUqMjvYVPyr#VTJsSG zIEtUrB9NV|>BV(s^dB(LViKJP35!0)F&@V}(u0$KI{~ARL98vqcgmGJtR9&T7QKu+ zlwmDS=;nefzonOTe0Z(QMdX`>9+)=)9r(Eu_=fk}z<#4(vP=#De@$EhQi3I=G>7tc z-Ve5S`s{g9e70O7nAN_)34x4A=b2a1`>RBmRpWSxlj^DU<~6tia!!_XvjEE_ei0`-}T?FxWyZksEWU?KW^j0o2jTLZ1t6 zc;N;I$1m8Q%}`U|Zh;S&C^#te^fq{=xVk5Ra2?-LGUC94?LK9q&``m6GQ4fUOmU8z0y2!+#I>%t>j3Wwln!lN6_3F9Z z&h$(I6&;!>W(xuCQOO5@pSkwQD}!SkCU;V!=dHxgi_wgSfUcwY{5iWaCs6b>$5niz zaB?|DGib%qE|aT;%k)__~Ph~j47 z2h$NS7^rYy@G!LN0G;l8@jq`DQJw*7zU@3P{}0BWj00a(Hbzg25>PU;l?&b}4g@^S z3@11##B^|!fo&{=_4D=uMQTueFqjl&LwNr6flNzK=}@<0(lRXSL4Ej`o@1T5c~akZ zd63J!DTI!hpVxr#8laVs5zUWHe)zj|Dw~ZfvQpGq@F7JHhqWMmI3Ze=?bGF9I*gyt zo8g0T-k!)1z28FxAp^$m;g*-z37zJTbXnnZS%I?#Ti`b*7I^S-Zo#*X8vu9RBC#wa zEgJN?Ou&osuuBNSMA$03>!km|5%KY+8m!CN{@tJa1?~Uh%eF<^CRRq14XnnSyvlxT zZ1uISa!Q*3k?vSCp$an8Gdr$23Bu!lD40WePa$do_*OuW@~h;2yZJk{z>jjmR&z4C<7w2bpub*IDEbasZbuFzX$ zwO*UV_h!@>CE{fc_3&1z5^sJ13}0LQFMoC}-)J;S5(A2#K$}^AhHgyLw=hM8pc)GkGI)8P}``t!{&4xEJEw@ib04`f&hIS`xErW1VAe`U# z{paMusX5)FFi`N0t$D=+0JZ#r%lIy2=e&L`sBin%@(n}F>V}0`a4=fixz)i}*(sfh?>g+@(pE%?00~e5H z)vrRk9anGx4DDh!6UgXG@$>JX*CC=}3bY~@?u}krz8VC0ur`%ufEWl1S6$3encE}D zl7~=#nNmJXZ~ZXmH@)Y=&f;!S7g;>C zqM^HlbWF*AAGTe;LMT3wRa-Zlz8>p!e#d&9-=BR!S05MWeqXA)A#DHLUj!yI`VL)h zvDJTZ2E%HK(0j4Xo7r%6HcU+>O(KaCntcnr5^#V#hd(J$Zu)i8S?vzDDt|& zm9~mo<3_UMi6XfU5_P#xB=y;iFR2~i3PLuAe0cSooo_b}^SDqlLLI_FgfSquG>g0H z6CMLh$j1)j*{;OUx1jFjWdm@nZnpS?eWSMX2s;n}PwbygH?32c+?o!Nwt8+mCTz9c z5Dn}Pg2leWf<|l0F&g>N5#ykZnMEk_5G({Ob_VPd4;u|^_k#Buq2SA+mR-^U6C1zS zLQURXVYIcjCrg|80n!_toL@nXVBesWU$C6g{DTw+=*M(acR}yQJ=5hhH`>nE01o3> zZMbp`;K|t;pPzjv^zOU#fBDD%c=+j0e_G?z@jBCexKp?{0NgQ@vnb{7!^r~h)Bo#F z$N%#`c}E`Yw&U9m9?64;ulW0qzCUST8XujWjpxMzFoo@8?K(L+9%XkulxqO@JYWAe zS&^ko2uD17Q~Eqw(L`5{QQ(&!wT{m#FmqZrCRpdRF5?r-*5QNfN3L+et7$Y}U46E) zP|*^|hM*Yce6E*mK)_Ztj)Fps0*(WuFCXm6JjQ{EP!tI|(Gx2lSGB3(HBY3e85MNE z66R_s%yhQ^n{s1ns|y^J+G3SP4JvL(5Q-CKqO|3GZnSx~0K=F=Lfbo^j8TF6Huw!K zhLdI>@X4)Oeg{*2R=ncpe8r$-h=TJcm&%JlGw>`b2V)N=;KY-f$PFMw-JuC< z-dvwvkQF>K5A^CMn08ID*f&XZv5dULjZayk2@R*(cU$SY@Js6%f!EU_ZRc(|M6eZ?&n`j6aTU4f?U6< zzd-Kcq|tZ-jP)ghn65M!fe)pLL(`2u;mGs^o<#i+wjR&4nRiDH;Q3wQ*aSJZLD)SA z<#~}xUpK;2<0CvWfPKr#Li{b>j=pLA%^4hui+KZ?#Qy1%$}!N;Lzs*)g|penUwFl_ zZFRRJ6JvtuM;~Zej!iIYJ#`nQV zSS0iOfrq%Ywe2J^{$rpIwu``X14_Pi}^3GZ&tY2rc`Oh1~R92ZNsX7@b+|Si5FF*VnWdeHslj;+yNo3 zaP3Be(TyA~HdR2f!L_nov9!O^UKOSpO-z~T)-us8WWFFX46RL_Tr+K&@c^6zlKA$x zS@&^EtNb$?Nu&w>4S_Ng3fm&VZ-i)DhT9VqFS{9HZj!OJl^IybZg?1gzZ#ugx!FpN z=9T$8hWc&baHq2wdiTNuPU~`!Sv_#Z<#i7$N?t^LNSYsx9LVMVE7-Zpu+}ng=eR?+> z5cTmgJhH>I1>(HqAEF2_(`Bvv%rA?&_uzv7>G5$dNC#eSb4t9Ryu!H;^y-jN3%sTg z(qjZDE0x=D1bB;f%jHn3W4CJ=oif3pU2|P}A@_lmZ%rE!^h<(wT9*}t9o@MfS6Ms$ z^$Xhn$FJ0@KV&i)y@9a>Rp7i4l0Mq>yD4e0)DCBf2Fw98dB#>4Y0-nKzF#I*STz>7w18chh z=;}Ke#6a@22nP*`Z7wmvdS+l3S4fYQ=-{M3E{eaK*;+_eQSY%@!5Wf4WbEpwQwL5_}j z8q8i#2Fs&q0?KkVUI>rV^KQ!z-#(FxZ(wdwJpS$H)6)OtfAL??#~*(@{L6p&FZX5V zwK@X44|fRnI{@w&o;`b3x%Hz@KH@+4gFm4E{NriUX^>oHG#koBBAuF#SWwAy59-ts+n(h;qo1N^DL znI}Hd6t^i$wEBw#hx%yoYjVHA=ByZlT$DEPG*~DsRM4AIz{`X!`nLVr>WFgyA7q3b z6RLbosbSGB$0QglysAobpCCf{m3~mSI%%H-yzHB@5;HcypoG;r%s4q6WBK)cFVV8B zI%ghlw`&jC%0>mCL}U}Dalx)F$|b>);F; z<|@_C0gUs!93g6VEHl}e!DifBZ7$@QcIzbcC;!(W4Ee`8J*7_fblHK4ux z2R`!(PNcn4069s>`gv|3Y(C>1gx)H_m+g-OQ_OBW>|l8bGJ%e`Bs!A8;C}Q?WX|!H zr;?`~nPPo!iTc1@yy%L5xzbNw?P&M!KBuey{?BRmXTP2&|Dim)WoMwcf(_5Ok`B5w z&?eBG8$Kja{#btL)WG1@@xmDUs7*vI9i~#<0wvnw@|)tL{2Nwd z3v4~4)<#~IP2|lOg!S~R?WoBifj0ECu;t#5W3;xN*^v7SNxs_6F&`Qzm?G`#_+^B0 znWAq5qZ2jyI-gOaBWZfW+vsDsnBNN@OAS75i4Fu6hT$NY#zOIkr_qVYeGZU-A%}>1 zx*mTy@r8XGHLv$g;I|Rl+uM#KAA8#~g)t5+;%H$JHu5j9?RHzb=w>r5hYn>209{>C z4mMZ%`#=7%(2Lmzz%M@gjQ;*R@5s{^FBn(;nO8m9-iKR+djr57g6P5dVu||n{ZHi| zJ^e>gn6!L*>+GR?_0^p2Elq!Pe8jKlf*zi2CIj$BUQHAK%{cP)Zda}VtoL3vukt$a z)&5u}_dZx4m_U4ziemS(bFlE5$?OkGj=H80678q zG*1Kxgax~-p0~=g!w?@(z%_b4$U~t=ezlmg>PSa96_K(mKVUiey&HH1vczXe&qg1heJHnA%wnP` zt8>q}xElzt$P{@Yz)DZ+fmaBNzxIrOH>KtDxz{kVijwh*+>kUx@y%&t!keO`ACFb$ z6%f+Up{9t^BZ7A4Kss9^J#y5zk!AAPpm>6ka!Ao4_w)!LQ zk4i_sVF9L7p~%+QW`h?3WT5NJ(5G-c!d z3sSe8&*6_`w;;HKJRPvq?|V@^lLR!{Xi;Ly6_pZ^8z|b&1XHHcXh%)>`b1dfT@z+N zsoN1NcrABmeiwWoqeSv;_&yi|Wv1ndwTBIud~z+8gX-78oF&fZIqTN?k(xE#l&Wn( z9JTxbi`H}R3g2~vG@RT)BMe6Hs==DwE!@zQVDza*4V{LPQ=DdKB;4R*zmvNb$4#clCBp=ErokTr& z8Eun|H-=uvlO-%mipJ^p7!n6>8kB+XH9?suR zE-&l1m*?k9@4ibaxSOmr#0?)dsKhRIhWIu(~0A!Y1?=-9&KrSFj@1*%~M<=1lgy6iEa)P72$M$e z+OIMSx8wV^e9|;C?dKyBYE754Gr@nW;GQe)$0l4pN!Sr#XU=WgzmJV%j`Nje*pg=L zFjsSKt9JFBZo#j`fntzGBm2OCG)=fR`7FLd?saE12#B93RU9&{ zxG|v15a56nlG?Sb3~1IzL@m?DSJqT^m7=E=e||8p_}7X5|N4BM`2Wq<5#>PhB%?>= zsbG8s+LYf-0%ljQxjq8?aIo(e>Y4ExY?5EXphT=X z1t#4-aZNO_2FSrz=n3kf>6qHeu6@|>Qr-(pmLaei@)0H}Oj}*X@q{r0Q)7z#xTF*6 zwJpFd@a*im)!8R`+-NgEM_>@Bp$vQGxHG_3nX;AA@W)kq?27_z=XD@2pFMv%GGMT6 zi@&vt8P$D7UtyWSB+y%+8*}45zj~1=p1p@UcwMNqGvbyzHBN?cQO0}@42c&=XyN$L zY0VUja{<2+hV*X4X?i9&O~kR!kYr=%V?ZkbdK0!M#Sr9S{!3x901Ps4xdyPlU(H9L z_uGk?ADotcGnxV5^6HAe`sz!1cy=cA*=O|l`E&k*>HG7iPxr<5+Px2eyN7!Nz#T$S z?#26mu|$<40Pp?iy~>bR$27e9=A}HiJmYc=;K}I;AMLLBXfguqwmaFKPYi#(lg)Pe z9XEV=c`aDVvcaCtd*d+8+d?c z3SMlLTY@s0@2Jm(P)i5K0~4}r!iFhcCkNZ&r8mhNDV9%$H!oJQ{YpT$dKx{Y(a%sC z$eqZA^JgvxVXy$guI?7F_8P5Bbhu)mn!pv8vCUsVMT^au5Y%blaBbc^c}O%GG|vVV z8Laq|EGM*Dr&+%<;TSq9J`L3{4zw{{B|uZ6hOZm4Mi?YO8S^37#&CwG(a8rm5(i%+ zfs&_%-f4A|#)GQ71^Wgu`SRSbY-_x&!TlaUnmFib-&=1JYGZ~r&1dLV@!z?Bt)6ll zk>}uJL-SidVu!`>uF0X@oQ*IIBW?QhU4BKT%<)Wb8Zy*Ae2NG& zJWD6Jto&JlxzY>~Ai10tNJSD^K%} z9s0Xq(R40wq~!_Q&}lipsq$VC41!7`&OK%|ooV@Ta)|gdQMh_;3w1R3W(@H0g_1?U zn9mdqsR+BmA{bkg_@N079@2y!ficvFnywdsZ4*Z~B0wIZ*vC+4c^$27xHW=}Ve$mO z(sFEZA`#E-iZ_&pljot+a4ra;&)eX|b{XK=dl**)BS`kafcWmwm>~T!twG(0MUl41 z=%JsLzp=H?HI$XIwLW09r^e$WLD_07p-x+PnG)O2zTpl}H`-9_3wUJ2a13xL_HpZQ zVJrpsYxME)$RiJOUG4!qnyorz6ToJ(6MA()SG!|=I9UK5z4aEI93RUMe(=s*=DY7Y zYW2wVr=N=M0LVS~KDOjOYk+W2XKU4-Y_ie%*qpK+4-i<@^@&QI@DB5~ zcQYP%-_%K&dIc>Lb_o+CTm7|CC{8%ac6{6#*b1NVvylv(E3^Sfo2U{IUYl2fdxX_h zZ51Ba)92j>dTt)imxCOf=ZCWef2JD;gQ^Y3gAg}aDQdkR=6cw%1gnT$pI2#Ey|}Wr ziRcXqbKZg4U}Sd6C%*m7$qdBvmG(*kmx% zgHCoeG9Vw38%%r^$>`-s4T`%oWnuhkg9G1fF&_tdQ;Fj5MZQxd*Kzprf9`8dfg#a$iLZa=-6d*M_gwZAH zU7Y&_D?I~mfcWU)=;&a4>W235rXzNXatzmn)q)|qaT*60^LI-#^DQkF<~$u!go%7A zSfR*cmLFP3rGb`7Yr*&-<|50rXiwiK|)7&}U*>;QB5=<)z9X`rC;{+)ogtdwUm zT4fNQOvAG6re=^Y&g(UP;}_Yw{~vpQvt-$kqzPiG=U#V@AN*7RnVku+TL3m? zij=@`HYvhw6-9D8%P0}P07rx`z$F?l!9~9SMG_+1^tPtEOJt@fT;y=3rx7!q)l&^j zR{@!o00Kb#y8FFH=b9b;`BaZx_Xq@f=LUG(d(SabQ&Uq@HB~cH1D-)6M=EUc_6EN~ znmNns^iD#rn4UA>R>tdS`6SB``(iS7lFY8Ehe-8v(1qg&K}TH`)XI55;pFc1^Sbd9 z)Wr<^CF>PqDSxKB?A>0UnGuN&moBpvPO6il9^0pmN5ZVIZ!@RJJ1b9bsI*@)A5J4) z<}ik-w4VxoM6o)J>lP?#Cd$#Ja8|Rj8Qb`jh^Ocva*t6TKNtS#AU{|QQ(RW zE6d*J3lw90hL;w9!3}>KM;ymk{FwlaDbvxA?cnC9H}%2nU2gNEu`TPy(&pz*u z8>hJJbTnM7UpaV!0N)vQPFNkdlf`Ig-855?Rmz)_GAHg55Fen}==h4`O5yGfYn+?y zEW6Fjr}H9E_S2@{jKtPSyK2bm!T-eE0o>J@vy62P5l|GgPy^m;QPp)K~ux-l+Edx4-=@z4Oa&_|env`HNd$E+^kM-%Wr2`@f$qc9+hnw+{bp=H<-G zvhu$q*)QK2SDIz{-3>w&mTqWPFCv@lwXNf^ipAiyWt()8sDPXUmU@2|WW!irC37G^ z-6@%Xvf}fCuQo8E%cBR~1f9VgZT};RE!7;j^homr#|{XU87eeMThpE1fU_C@hG%LP z;DnA0cb3e$%05ewV1|6Gy@M8w8UADjyEtBclmKHH_(X6~B4PpbcsWz-yCXa-f;bth zXED%WqL9SA%n3Xp71`$>Y<&ZLo#-XeKcwwuyWWXV-?1wyCbUL zy+V>Jp23)krUQSuOjW{F!RGA;`6~m|YcrV2Sd!e=AXCJ2r#rSelT|Vp7lJL@Sv%u@ z+RsGG!Qj9AZ@!?5|Mm--|M(R03c!?ge>lzzW0JERMI$5`XiTfK)h4*ySl05k`iOm_ zyW72O_R@G7SG!S1TV6BPfG@=jQ#*IeFi$9h!^+!tG>q)KpCQuUI0Lqw0cLE~-4F!N z)RFIcFV$y8=F)ifod-aZ)OV6~n>8PIEEs&l6Njq>yR+5f-WO#%y+A*7v?R*&Ku$2U z9UL+N6IYzHj5z|(=^)U5GxQ(Me*lID*R?t=(mn$o)(-Diz=t{GjC3_x`Cy>vFLWMZ zeOM2SC8|P+@eyY{gfcDh&m1P+M-2VT5eHy~e)Kvh_W|ayaa!vmj(HA_IpZN$WY&fm z#?4GCSy;tS?N|T4)V19%qu}gd>+JUj4_6a+ZS`LxW#74TF#iwY?)35&zy0>xz4)8| z`@8b+-~1bS@4ffry?giMFaF{$I>css-2?%Ay>zn!;5AZ<0pJt3Plz7;=E44xzxaed z_=x1<%foQl-InLiN!~qSxsc1l>i-EpzdV^buha@ng5H1c4*>%k>H!#i#{*>? zL`okSGE5N*!kiqA=LE*K@v+hk?_I}9yR{1pd4eoX(A3d@8cyn~T5yF(&ga&?1P3NV zZn({POF5#OcpjM!$B!R@sQ6GQQz%M>-lNAM6c}C@QZg*Ff>9?i(AffyB|#wU5K5CI z&AgOF9x^!;Xs4~mj!q#^3?MJ#LsCkg9WzkvnU7rxLKqIp6PdY}af)=vFacdd(fJN= z;T$W42Ivv3pL3OGP?l4@$RL$wlDak-90{hB@=+w(L7B$PG;-Rk8ggtbUQ=w95+if& z!}MODKe2)%NbvyvvHJPg3;bzgkB^SMMCSJ8VEFTPndr}b#s7~qfAcH~m_n!E{}}g@ z>rRFNA8$hHLuBAVvij^yv-2|Y7pJk4_|7W#Rda@wQOdHi>;AfOO__MO>#)dKPkt;7 zajuLekr!ccfj`4bG`=TX5#>Tt&F_7O)knuksq@PODyk2ap$P8Gkm&+Z`fP@Ds`e zJU-F#ZWwkMKtAUyE_L#HoK5*W1&h^ne(_5sKf9jUgJpM07>+c7z?&r z*74PPjD~*v0A+%L=0Y#8i}F|@crTb|DL-EvR{9U?oGs?rX0z!TH~TH0?=Sh}0KDA- zaQY`Fa`F7R-1+|GV4=QCkN?Bd4*9FEzT!W7|NZ&iuYXO4MOV5>ub*xl06#%$o~U*U zz@z`_QHX%Ah@QXooL{{4g6ZOxv^y_%+e_J=YYuqQ4jfiz6)+5KPG^(uV-G6TXY1cdF7H1?~ylg zV(|&0a-78bIa!I-QoEVJquis`F+7>vxsU`h2ptr9E^D#TJ|T{q5Rjf8>i~ptI7vjY zkBL4TjWEvy-#PaOu0`5b<^IjL!h=pGNefiJ|#c7b|5`929arAG@?P7{9wT|NaU{r=k zPH!L7>F)wYQi%4Y@Br%b)db6bLPjp|28EoxfyHxTT0i1k7$7YU7A^ z8G-U@yrlMVX&0Bia-!9D*Ce^-{c4g4$W)dY@$@=V09<)-=oJ%=N8DmB9(WY(J%8K8 zQ@hS@yQ~1TE&gq*e_QznfMI;NEQ3EEAEy66{)lA!lG5PyWBW9Hf#>mcK9FP<75Iin zC3AA*Q~R8!XF^UjjF#Fw*8Sp!@Lx8p~>@F?KFz+}a18 zxkvd~+k?8BsPu~%k{JhV+rB#dsR$7m<0L_+>JbiPKY|*WGy#+7Xsv~asZE1 zFw&*{&A}?>I876!GLUTE;jt?uc-Xejql04t8dk=~BZf$CDY%*u?PE=u$lD>50`IkB zBOB~n$m_V;M3&+`)@kV4oNWSFN%v84&;f0+?z9UB$pJJ=dVnbD2Tw4r8T!O%h+~G9 zzG}AsOw-KsZj#djVb16CX?y7GTc>C9`C&ExVDcYKrAt06i1I(&c_HuYpVIapy*t14 z*;D@Ev(M;v_wF%$`6bi)@9*g*y>_}e0`MBCZ9i$o|Ht%kTm6@I1mL}U@5vXRe@^tP zCC{zrx8(G4xz6HQb8nGuc{!wAzXtG>wg;}CPM2!{dr|?&;LQ^^_yq*88Kn%5B;+K@ z2a^l7qe_jTq(=l+I$gm9TogwBn{kvc0-@@|lmqn*6Bv*-7m%dq2+N8j!_;3uJFSi0 zU;vK&1AH#7An+T5)kBk;_q^zUCSRJLwv5gIPDsifFRSvpn1?$*n0x2u}6TItE9c+w~ z25Y+%+VL88#pkNJMF#i*0i14w*AytwsGp9Z^|I+Yy2+96^a|x(1|E?9%JMIhR&C+| z?IgwFOc{=~6ZxW!x6*w-Dph&_`{n)zo$%5G6B;T@kZsul?d+fL>FB|6 zZ*LEOeedhC)&H+Qr;ES-g5-}+i#}xveM2bpDH%JHkSp_0V3dNdnM~(0VC;Pg3U-7> zhzrr0mqxNSy)*o&tQu2>Pto3RY!j`FNyNqVwZUb|%p$aM8W0s(0{Yu*%(*TubQFN+I6{3hys!OG z^WPIW^Sd_4o3l8UM`- zu-VLfNtbjcCo`YOyxZ@1yWRFor{^c~2E9r2_;Dw|SO4%2(+_v=$~(XOCI8=l{pT=Tzjg}R>&aA=eP#rGd?2I}HI{Vs= z7O2qnv-+0TD#3HksN7lH@N)--O)Rvi7aBVVCs~J)6&%*fk&%j;>*bc65lUB|P%Pi^ z+`Y^t<^w5RNRkc_pz+eYsNZ!M11-!^0;?))XFBzP(?kl5v@dYmy*)=qPUuwQ1%4{R+ov9hfTuuz`|e>%$z;IaeuplE5V&M1FPRxm4C_C@)CJQW#kp>E{1u?-It(dzNvWgoE;@Myl^c`zr*xx@ zZygN(TPMr$sBhHp|Nnl`xBauJ2N|>xoR5Cid?j>*(nOp=2WlBkye+Ojy}X@$cgJ6$ zFT-!DG>evz|?()pHZ%?6k z?2I(_OV=q=z%m2WzWX!Qodk*#w!eMsDYk_hu1QgA8Ek)d0?fH@oHnITy?y!}V==f6 zSKRv1$2st}dd(5y*9buy?5w`wmBtDcIUoTCjcvyp@)77?k1fD~8%_?ecwNn(pGUvKc%i&o0*Wr*Ipgf(xX=Lk z$l%v;;Z7pxH{rF+v)BQtjZkk);4*%YcbX^J92PtG)8TV7Nm~Tn?f1Mn{OxwTRG{4g z&_3HWfFFGLVSo0|A3d7x-@o7UwIF~uF#ujK-8cYVBZM{{pwf0qOTr()qnru z7r&sN{cO3y;>|bTB;Lz>ad9CBm)E@8Y~+m2`VN3;w_ie^AO1EiAfUwgdK*x&#Tpb} z(f$3aD;^F#C%l>;Ey|Qs=fO?@A4;;EX)on+usi}BiShu%Ks&$WN7AG~3^~U6#-dnk z1)EcKAbdIM5NjV1WjiDk09*c=4@p-hCqAEH%7_pKDYJLtI>ZC?vC?^lb`xb<5y*d( znffw`F>g2GkHVEe`BK^)XzhtM=mb=X{?G~pH76>Rz}R!4XMnMR*yhTYsGw5@gG|mp ztk^m@P#|fiE`DNVjF6#8sZW?vfG*38`meu|)Jg~D{Z`&N9Ka*I76D5JV;G8;FYBND z6X?6dR|va&`j1zslV2fA8pN+w4VJsEp6lRB`N4cu20CikT!Bh0e(W!08dOof{$y$0 z%QCJ=UZr-Iz`>XK6jMws=L_OK7O9_t{?jcf}erQJj!T6Vh zaWsDuEB^hQKfv~#`W5+1Umy)v&8)IEO%wp8!4+r&)W=0XRQV?G@T&e^322yj zm~1se#6&s|WN?B(FrT2ctW3I|$9#nNxp54giFLXmY%qWyrrIuw&uWAs605;CARy{e zE6{%Lq3>3F&B3P_C=;D30`0NB5X6Clj%EPvk?;)l41`v%k8^&30mGHvNeS!!oVpOf zI}9^St$#d^M9c{)x*2)ZSM`aKW8dH-%@c~ev=3ttU?1b}#5Y#20MBzcfo5L!xzswT z)KO?t18gHd5asrx!z#f5{z9h}1_WJCoFiWlYH99tuzBV~hg>dCx4UIG^j_lu5QR*< zb#^98nQ8js%P*(DX+M7Z+y1T@|D#%N(yOH#2f%A2R8BvC_;dd1{jWMRwp#$&=hNrU z`NhSH{=MA-aC&;mC;JoLo*Y*F&(Ept0N6|$IiVAp_p|KUps+D!F+I#HPXw#m)P-8V zhR+5y2rY(4{(MyfK-Z?n=6Dp{g6u*h{;Kk2;wRS?<@EqSd@H~D&(YYW<1BQHrlaoXYu>M3 z!p|Y=72)s5$Wc6f$V|(MKi%H;RZ%$@`z#WHKTqbOaMicux5l_La*%N$i&OTJTET6jA7h zG^ueO2=ElBmpQ#&^)1q=zc2J#>28HNLz$G2cPUoc)7X%JWw$(Fd2@m}&b7@g&!B^G zwI9c3(#NH}weJY}Gxe`fVZ?*&zoU)ces+5JJEQGpE8EM1GvHwVUz{yBrhTvZ|K!e{ z{d@1fPw)Qz_j2#ozxGzQ0yDrY;vqaFmXfrK_9cleqLAtR?t8piXEDnie6nlHvul5Tg_K

(EF&VTOh+Ry>0@5wMxaOBfYdF~Zd4MbYupInn!#tF=gK4;d6G;=*-Etf zAs}BsS0v*YaTEMKQN0q^!COA>7oikgKcQpw&l#3w+pEyGoeI+wG_o6++QQJL@QynK zj8=e8#gz!US7Hmh>0k^FY3~hy2eboyiN?NX9n_!bK&AalJ#4xtITnc0WGWfY6XDgq zJue37voXg?OWQ?&d5`f>D{EW%=YlVm$N7@sC6vEgS?4Q>cHk9wZH^b?79y<`ODq(oaYVgkK?ZG{%ne?_4?|l)I1ZhnUNRmT0(|G%vD)K>>TfK+^%y^7Iv*njtSWVm?s{5F7ywOZ^zx9`Y}Ozf{dt zq48R|0nIuYVM`}Ny^Q&*C%QbcTN5NT$X^n#8fDoS+EgO$a?ZPSrFh+T^FRQDw!%3| zzdAD2k&ATr$iV)BGo6{T0!|Hu{X88^CYw=$&X~zpv)Weq2ni%D_!w3Q8FNG zeDVq?rRz439^O7c+F<}K8F4!TC-FS3%Uh-adP#_nn8#?=zh42vhnZYa3E(nhwn5RC zNtF)%T`0xKsB{{kaqQVubsd9$-FQ5b`W3Y;s{dwjRyV_c_wW8;+2#-Y&J(QmEAORl z6hMSA^1FUc1LXL~?>e?vX^Yo?Av|}&*24N}f{q6jny#Wj-N%yG12P3~98g-MYDfL# zy4UDNL_>X8a7r=)WS-Flog{n1lgZ`L3CR2H;?RuYDx8BwdYNS4zTKa>@=@;?LJ z98W58muWR;p~3t1hr1)HTyi|9@C^X$bc8iVmy3XJe?C#-E3OPoK@&r9#A{elnvWED zV*P4(a2fRNXOH<%^4UA1O?8ODP+7@*<8|vJuN!HzZbm*@Kw)g-tp|=b6Qu<>3iuf0 z(BYQxER^}r`BDM~&h@C!q#}Pz2J8-^Qj45zPv-sM!G5!oEuG56?%)L2o(NxV`TLVS z{ga;&wZ+t*z5TX)@!4lW@4ic)e)?&11at?$O%TA>OE)_JUN1Ro|HWs2!4E%r$p7Ov z|DVGw;IHWUzk4bc1K|9{d1BJt<-z!$cCwpWB+Lui^CZ(|;#~qQR3os5Am^gQh*lFR z)a%4~kQTua;#P7+ex7O>^js9g@-+kq1}$8i`Z0MiIcu^p&P0QpfPjPc)aL=!vue#` z&IXv`$b|73ybW2INmU|7C$C@pm}pUVsXaj4G;v{~%%k2}plJM$oI!lj zM;yU$(c7Q;obuK_DW5B(g9b8ETtvG4RJ+B3B+Y^6G6@+~z?l~n-L-F2N^KmEi&L!eJrJXVX>=IWMU2ON9~;dW?HuT|MeG#761RxgZrh) zwYDr>)kRBxBfC|@EIDy8xR)7dN%zBpzWp5KD%=-KWC z?-wqA03UHcT2d+F_)~t?`KUykbHiE*1Hqs}_hy`jd~b1uNLFohc!`g!gQ;xcr@)_( z21WR!ex*zYs0wknAk}f@uml|By)@P&j&khhT)*RiWhwI+(%YSgQgTOBokLP>2SJ;mf6OtF_?{^1E}==c{`U|7 z7YEyjFLgwnX(iA4aq0H0?Eq-UsQcs3Kc{b=JmEj1l=vnH;OnIu2f$B|+A)CNeDoW+ z|Ji*xJO9rQ!{|ez_lW-E-#-uLy!}QWUeDk?V<20KIObd}MF$g4OD{b#-T02^D;WpGpj?T82`Cd*e2{S1AUXl{7UbKqC>Z2Mw- zL{wMzq0wUP$YrV2*H$V7aXyx$e)o}ZbzZ&-mN6dFaKeq5Qy&PWiB!c)YCRMa2B85y z0+|LdYul@#cC5ZsF+9WmC|Oo;M)*3}O|XpcmrQ4z1p6bPt-e!f2X$qh^1{q?HRF^# zf^w+ldaU z%3~<(+!4_7O_6WnQZLqlbupogcD-iZg)#_bk>P{^2yKC({W(9+lnggaqbWSVvD~qsnHaV!|msco0Vz1QOx;a z&rl9jd4P2Ft=$D5p9ga8TP)KbPw`w7uF-c-`FMvP;V^xrHxX3j%&5;67GdOH%#*sB zY31~oO1)fQ*l(kg7i4I!jSr%1h*KH&5@Q7o-^bJi5f8n;-PTr`8Pzh4lr)iQ<&N7~Zb@@SyJpaDbs zVoPS#8G>^S?GJ$&#nMht8d%;?n8nY#TfjrF2o)^oi>hDENyA8Q&>K~$NB=K0ivWwD zNLQ=Z_Aa+2zmq)Ya+*`pok^z|2)20v6LxpZ9gBiay0!%I!?qLjmq2~h=(HvSpV-^} z7{}SrU>)h2H7=tztU$eVlItIdjO$MCq`Z_;u6*ag+8&0ngKSM0zl`J-FZ5a-HA&zkWxT|N4KS zi@*N7NBCa}Z#9hYYFMwQ;)@1a!po%;2_jmJj#P&7%5s&vRu&CO6W*pDtiS5Yesp85 z59^omVijmE`Yr*QApZn;Iocpzjw3HYKKqVi(u^m^k+VMWwjq;KX7;+v%+F&}T4@!X za|jNQv=XcJRO4yFXwOg)#zv}KY^%w(TR|$FIkzntp@0kKK^$z*+4X*P<=KsLqXQK> z73M?(I5|tOt$-sY?{WzkFt$4VCeC!RzA>EA>bn5_OZy#nc!y;O+JH9?2q0?C3Z~K) z=!ba@{xJNU4!u#Sm;-bE!9Le=d%!dGr_pULI7>LWjL!s+UI}!*N+_>+0MKdI0Jbv# zo6W=*7t2)u+o|0EaNfUP9#;P^&oAWk@)ip(o{(Q0{(JAk4=4KQBl;Ef8`lc(oAhJT zjRWBIQewnEe)h-y`-i)aI9EjfL0E~kI;jVE61nf}$_U|a{?Mr;XJj{)++EOWSnJY|% zp`W~xfCD89cpH3y-2*AVZR0XsvQn=2WgsiGOMWk8q}hzFz>_QH4aN;s{#lDa6O}iKL?)J*o0Yw1cVY zf`UN&xLP3)dVs{@RD!;ARSw%tSEuXVzjV^RSs`c>9fIFf^3?A<{5q^sMn9y~PuBp! zPb#<`6Ua4N5yJig{)V`Y5?_xtSu778gG+3=jJKMl&iz={tM-Ae3}lTYs)*KSs>z0F zvImlrfSqfWI3q~yh4vy5FgF`VfLoA+(nMS3M!%uuOoRI!jEwz%{EjaE@^^Ik|NncM zzkiWoRs)QKvwMQA>M`U6WFb*Rw;unj`6+OIHDz(xTlflxAR4V<6dx2gvNQz-Lt+SS8AJ33+@bB5Px zE`z!_Xgh)I#y&wl;7TORTbWg&jKhS#x$xC2YhD9T1M$$W0c^p}_WN1d!e_i(ZUVTY zzxobF)CK zKmPsSF`c~2ba}xSU;km+$)5KI;duLv+lK+LJ7}>pnN&(l`$=Zri7S&fwp6fo@iB3% zWD}8}w^w1{u8)H))e+v@6Wt*W4BU}9v@|Q6X~KGz0DYcRDQP!ozW{##UGvTX zj+Gj1w;&_pB&YH8PV>%j#bf-#pupJM=WVk3EdLSl&z=nwU3(;DLcm0EU8M4XgJxRw z^+1`W&pJ_YSb&)GjnH^fRtMjx4`@9`Ym$OXuwt1E>)C`Yp6m?;xM93wFpuCF^WU!+W3UOmr4Os@kaPOLrtbnGSBct_NZR9L*8ohCZ!idTs+{+*8}24eh%g3tMo}w%c*O zjpfmLHxx#%8FX8wWH`1jGt@^MI16P15c|UDGfD7>Z&%keE4?sC8yex36$8KFUAO3@ zL49O{i;2>8bv2fN(a3N%I`8LvY_r*VxRWHwIKUPA5`PQPTGny2c?!7w(SG?YsVx(w zi25{T_yjbxIUFf{3yTL$U|gg*DGp>n9JknG-x;10j8%)%!O-W%w>IDRn;^7KTsXiT zJ-#~x$BM+!6`3jRQ1F-siWtTKF**s-iekJOeGC?J<_%i#?>hi^=6>P8ela3;^PV^R zQ@+?gW8Se$ryFWJ0M1XJ%|Cp*qxb%^cjeK3&;R)Cx93M+e!0N<B*_I$d>K9FW zjHz7(xS84R#$1g1Ij^p`VB|c=G!2b+&%%`M3}t{t6p9Pw7U~HTQdV{XxhLhEHD!6f z$d?5%WQSsiFl) zI445ed3F`<7JI;tJo;}4AO~CI5=)o@0or){25qOy_8C|11Ay&jut0`!_Fv1VALJEs zdRBGyQh!`6DWFV(K9)6U`@{?jOyh)(05l$rp0-*s7vYk0 zW138W0IK~4@wD3e*|xt=eq%>4Gw`gRVFj4J^MM_lw?j(XaWM(|veE>%%Uc;cu42J0 zjTVOET8OXdV0c@SSbQac@hZ z+HWp}+SX{@0`P<$)7yvtZlB$jAD%qndvCujzyIbN{_Wx2r=Na09gKgi;3mCJx^V#f zMCtx#_d7Fw`}=Q&KKy_h)7ra>%L_i)o$|@)3141Z%5vuAEo!#_v><>s4EFQ13~xKv z1ct5DiB(nFHG)1^?>xc4r7ZLCc^4THAbjP4IGhsg6>eiP{OVaI2cpW4TVLlkC%E~tTU(f33{O|(`s86@Zl_3@H^d=m?WT-r104BrQ&y|NBZJgD@#bgaxkHmoWiAugr-F_=7l_p)dYGhbKum4F{9 zzor-0JUFhXd}l0M8MeRxI0E_OT2+E?M`Hx{+jbc~|Lr$)@n8RrF8=$!CwXz%>&QXOK|ev;?ayMcc>ED4 z=2;nbE+m<1&!SIoGEK)E-_Vc!GX?e1XGmxUm_kL?=>xfan^b;SQ^p;hYQB>VOq;j?C&XcTtYuO)!-QIpqW!C*Z!7Xx&<%}LgzJu#DLX_+;n@6X z9`GO)SVSw?wFs=alo#DyNXuLbof0@!oc9I#7V_8Y6Y;o!r9IKmW0`oLVLnUi@ruqP z=S8C@2Yx6QtX#dG&=9EO+UiD!l#L6dwK>|D3f&Z!m1B%)H8-rZO|bRrJhk}L^VxJJ zhn3N812ubSvp?bOb}QxqI6XO$@9BGz?RV2#Z@eMx7JwFD{ryLexWxeY@7 zUMJl+0A4qJLfm!%JoxB=eD%Ap7Eb^C3;N)T_vdfFJ^`6-T$f!5hqZ&kU43@@wUwn9BqP9}7EJOJGlp+bkPed;kqS(${fImzKn z)=FxqVs{$Oi^C&=2XR(%_Gia5P^l9LSEG>&a1I5FMGUYIF&O;loJdJXSCkCzc|mh8 z?M4X)+*kgg7H?n2Sy%L|txW06BZG`j2C~GliBS0D9&Gmdf?!;|%dUJuS$Pp8v`+91 zhk64>G;R2u0TuS^stPe#cS0bFI-pjxH$6GBQmUdRBFVFMWe*`56|ba8OvPh#*fe)Ip`3HG(NO2+G$Ji#tNDo=10yVv3N5f#HEQOin zF@GFpp&Hz8+hyVY-~Ev;+lv2Zzo+@xF3R$te*X<)wts3}6Hr`b$EtUnV5J}M zBcd|+p$^SwIO8h+40JT-nfDRU+;?0M5t<{|p@R6+nr8&?O!A4LUCWvC{oI0|pYvg5 zl-f;b%Z}(5?TWOXPR=g59Rav?c5o8VJ=*;PO^=@5D)XnBH(;a=Q9 zAVwD=b;5988LD&Re8rr?HAf9eCMaxiTUM<=k-1{zl}=1L&U7O!vY3m02!n!Qa-nEU zfUn`F1~nIDW@mmAKWV?)&bYk2)ezABo;dXlkZ3*sE^~s&h;6g&v68BE9YYnS@)7J+ zwl)eJMPQ;l#u8x8^haDF^Q!(8EQ$p$UKL-@0S0q|;diGOAEnz%Cwax^zVaaJe3f7} z))Q~qWQE}UpmHhYk4-vo9HJvaN@4G2nU7 zc91s?1K-gR#6xK25P!V-%K3kq>yNl2MlgITMm}dCj zK1@qbH$9%q{%@M$|2MR2=lpjDFJj3I@$(8nhQfH4*<_gbd0*6J0T%@m6`27)X31j; zR~Fr{Gx?2MpsC0^kR2A~-7;VxHyQM`v(5lEQ(+%2G*KBa1MX;Gw(omrpPltiXN<9L zh0?0JeQwz2HY;{^e2bvQv5%dM0pc7dgQq_njK&;7yHX$Prn z2f%)_k#-H>$-z!~s<)_qfB3s|c3Ym^c_J;a`nT`CD}UBre7d~K8dhK4wtN>XJQmWPyHedf1oQtpy zOx#pqh}9Drm(|}*+7yB8`lqcRn*f{xZ{CCwjB5*taPo&g zMaqv2ObB$6#eH z7?i1Hxjav8C@@EGuIh_p?^k7Ig*zVu24iW2Gb0@10W{FK2os@oTL<00JgIKm-|wc z%6b@bu~^8N&VprNsA!)h$G4$KI3DIK|16(J`j%Dsl&mtazl31C;@p4%rq3Nnw>A?X zsO3FqZIM5~ABiSbmMPcMbtH6H`?{Ipd;d*&Cm?QD?(?Ck&mD07;s_vL%!NR8S0j)4 zJj!ccG=xkS+itR%3$jR`rHoH~aBieoy-ilm=3#c_Vc(gz=*kFt{^plU!&HBYU zN-9xF`D9)KXxm)c7iX*7mIV&7y#1=otQ$a zL3zE@8Svpp52f7#fG^&<{f0b$`mDcy+@CyIUOYb-`X}ueKnntR+C5?OewKC%0B>ft z6=zepDZm{HoZ{8S)tf~|u?tDhX6LTFjKQ_7&LAvOYqWA3@4hwu@c({Rfd*N-uHnV| z&8jOQa7q}DPziI|J%H63jzkdQ6)V%(4p)2`+ae*e6bF}Eq&F<|A|QNq;Cd6Up-910D_flx9YwI3+y5y@MnjZU`k(m!dvgAjUov?BoR766*h=FNfG zFP>b`X1n2&lO+^jKLVhGjLrLutN*4LOhHwH5f$?W?wU6w;%ImToHOO8!pYWG1q7k2 zCUTsWtqT$I$pWK*Lcyd0xXSmg?)KuVq^rB;wFD<2%~XTICN!=69Vk00Zoulcf2T#- zilzXkHBh?>u{%Fpk*bPEhmC%5CkduWgELONwlz80Ck%aPxTvRDR5(v%JEE_|aQC#P z`3`oWDO%gXKmrphqd`4oRmCmv)XH&T0c{xZ70N3wkl*-mNDFvBFHQ!(Cevs&%gUMI zbpw5ZPlJcW+Jc6aO_+|T7|b?I0%Pr1UZIy$VFHR7Cr(T+pGF3~_XU^tP!E;IL)_>; zeL7Z$T=V;?3@A5$@&q#?E|2Q>(QkVuqf8t!YDAc8ne(c&n!OFG;3MBhzpqIyZ)r@Y zl%T@|f77ZU!`W&+%q{tBvl#xnxf}eK|MFn?|IdHyjsPfh6#EF2XjMrVM<&`NnU z6E_pc*$vUkC?RMC#EJ4HTRN9SA#X5Pwr*<@;!vdNJg^u0WmNU-nmO>|^AyaI_KRT|B zZwpZk-)88$p-OR%Unf(`@j6=a;rVpK!LE11)#ctX}J9bFi%9K2fy8#ura%UXE)ZZaZbVIo?cpR|+z?*69)WqGUo8q65M|yK=quZifc<9e^XiRe zS}7hCKsiwtJdkJ7ViDjc(62To4)m}i08nwg1l9vWWV{ z=bs<`Js4N?Tl(}bKCRTcNk1~(H~?NFwL2*F{J$KW0P|nbU(xTsd57=aeWXL=UC-OD z0lY(Z=yJE?cGhJ-ZRGTgQ<`@BgMGN?>FiAQIyib^+>*}hhB2EWwLvQ|0_>6K5dzLT z2>co%Q>Gk-ksD5Bt3NqH6z9Ju{exMX8PSVV9hHWJ5zdPmTS|f?Dc<1zOUuiY+t%yd zaI%B?>zR`AXMq9zJ?wno%|g>2Q$dB3Z*Np#+k@))`7UxiJs2bCneMoli&7_)=@^D8 zjuRMN7C8zrtR?Vwnc6b#m;7CoA^lZJSv2W+hCo0{%l0lE^#hr1aRAb80i)TG9U&!K1GGCFx0Km|)k51{Jv0ZU=^%SKxid{pfGzb$Nraf>VWnHguIFeXR5I zk#ava$xA$!0UpQR$&Y+Ds$a(C_(=O-hAe#S0rY<|vMNq|qzm|p3SS1XQG2oMOTsxe z4t^xdEVYJS>1X`UbjAN5Kbzry@n8Q#N|X@)a3d3ELWXaK>zMmt2ptpy!JVwE6JmE(;DKDDf&H<#MeIA@IvtD)Hf&gxG2f$`~7(Aykzj*P& z$q_*S!-gXIjM@$Wda(RzHvure(jC7ysiYeRz-uJCg5uzj+B9bT@?U((?Ha%qvGVp? zclq}D^Zx$q))}`Q08z3r`gwx2+wCUVFN0$-0723CLy9;b_?M8<&pwXfsyutAXZ+nj zHfMnr;?X3e!bhW+h|&t6>0gaw(Ed13a$6?V*S|`j(byG>L? z@k3qaf|-z%lIUb|Pt-6cGb#m>%ds&iFn2NMgulEBJX1_!C6sFQcwL3h zvEP#M8*~HIJAic^EohWK#@WlDe=WG9K&}#4qXx@0`4J{ec!uyQ-15x$A(fH=3Kgcn z`>SXVG`=#+OTv=@V-%SZ?--uRntZedwXXWQF)>Jd@*Rt*JU2) zk95YJL6_QlYpdytjm1JS1j$)F8AIyO^q3A4bR^CN%(<{Jn&@-in$ByPZZNHF#Az48 z;+QXVx4O2vDs0A!>dFNMM;odGxH?kN$aDopX%WWX5hm(V;ls9z`NZA+!_agT;2h zT`Wc`>rdnh9W!YRy2D%oKQ}Vrx8JTXXP&afDl}UAZU9F%8jH>rDdPvTds~2Kro!6- zZMFNB(O9oe4&);=)-k_TY%6g_FKh$hc-OJxw~( zXt;Y5X>n-7bXervs1sm69|pq31?_jc#^lp>vy~PE@Z{{2pU~sJ1K`>Dmq65(eoJk) zwFO?kNw1e~900GG`u6`81K_j!{HtI6ir%~Tp4_|pwmkpgsXW*1EA;qr-vQ9CxV(MP zTli#!2RC)GAvn<;+WBp2xp~A0y__+yvxAib^vJOCeE?PN-TRJ+d*N9!Oy63tj+te z00KpUZ85{LWji<|#GOv{uN>cAED#V(sxN?f0c0c z$-c;u%uKJC1~TJS%3k%He@t0S{BmXaW$QpjJC2+T-(A(1Dp<<^Kz_o0w(lmB0)hBU ze5S;{PvycW?lFy=?UdBh7Tv3UqRS z={WGc{XUQb2pCpDW^w)EwDOl+3=4_l1x8kPGBC)C=wnH`oRJ9d9X?I&%^+7qVu;Vs zIbFX_Ssv|GUs##|I7d6O5e#`JXot};?S=-LfUFREAb_J8`p5%i$6tD8GTY`1Hc2YG z`;yKTKmz;EA49us)z)Bb$~)wxniv!&I*IF8K?jcjEW^|J0P3@&DMpK)pJ5f7V*HNA zJhmBk7vQ3Y$7!&>(~j|-8k!H|8%P~fK#O!Vp$H3`r(pix-YIx&rYwW%F3$dYS@~uh z3rXKqK4kJ32!32edC0fL5~X7ehOgi!^w|#hax+CAU=U7p45VWcvi|D43392oX^!Ir ziDxL$PhTK;)pC^or@m0r0x%6Jm=-dGFWv=C2-o z#gFcN&p$kW!p~a(iw#ZZC#TZ9T9?hcb-5L~wFCk@n@?ss421n=e;5$$3V@voZiU?i zg1B;YPRHOuD6~z6?WqV7l_T>&0d4erWc%J$Ec*7MEaP1WZM1Ips*(#6hJ1|jLRX({ zB?DKTeYL)>sK7+WlgSWW_0Bg4C=SW+m1Si`SLGR2LY8}aIVK0@pdh@*cM)jjFtz6{ zVC(ibOTH69+c@VP7LKRVFzB}Yp%`UsyiG!U`y?%KA^=BM6hMad&#cOR-ix2Z?-)%I z#{6CtBZ$<+*#XBJjGp`WO_cLz4yN!FRpF$SaoeJo% zFy~6z*)jPJA;$sV+pdnftF|tjm@ue2B%H5}m!>R}1@idu8-=rn;{w|$;Lmn^LHXE% ze$Og!{8~fFf7mbR04g$XnkQ}xo-GLA_VD>^`f=w?CA5 z_e`F@d1t0?X>)mgAqOL0PEJp0ce#1#oisPj)-9yXzNSF8R!172Yb4 zP@WFwi&X)szU#+@7z}XBhFg$azbwK)s-QC6!*(^^@=#1c#vM2@Ie<3wuO^gaF-Yy+ zWIv~8s7xAok8^ATa(xF6+Es58C_P&6G1+g$xJ-^b&VoB(IG&}|qi6_wzM0r5Kx&wV z!0q^x-nTs~447Bo7jxJwjt6WThcchow+MRsfxZhZt4AREz{%^A%2GDfNnU5(_Nnj9 z5o8nJ1Zz@Q)=?C6aT;nH`qhn7@P&g9{th+DtPXJw7HdZgEV8|`U2e(g{N&Z_&ye=j7xE@2snfMD2SBF3YKAt z?>;|-K0xQtOwm5=M^EUSu1+DLw7YPnM>g7atJnH^13Zd!HJa>?@C330>PTyAdIkV+ zTu(Yy@c3b>3}`5n2J5m*6x!)DR2t!24tJ{9f|OSW0|~EUv||Xk17Z&}!s8@97vbEW z>4+!tCGe}!$#E&quy3qC+A|9_X|W^rAjojeY4b_L8OJfsv8+F^e>Bb0+zyTMW_K7E zhq~@ex8>>OVR5wYd%B?JZ9I&F>Fq!H6T0}}v_t&h;$r^d@Ol5i{e3$EaPS4pbdz2? z-RuB(y#%A3=+R$3ntu82yYc~jNc5FH{4N)G{=A+4e?b@LOAG+J3S*uuq&vevmRP~= zwQ*iKrpUTXN4!se*z`cfm+*n zE%1HPM!sU?yB)w=E`~!&;?hU}meDy_i3?vvU#!^5e$0|56jVN2Q)*$OjW_5>k|Pgr z5|IFN`dAm0@=oZbQd;flJqi6R!0>}XDWht5_?6_yC*~E(FjsgGe9{sAmdyV?nTGEx z+5!%kYCuE$jXZJGDZ(uqfCU_TDZdOrMe1^*I_^T^Sn-by$buH<@9m8L65Ma%?% zIoNQC9c>?%vkMwlrc*VtKpW%cO0|*ujM7p<~U``GSUq;$4TjJE0c;t zB95P%ra)Tf1z}tpVTg{(l+mhkYKQ)?xH;A6wZ5~J5uAJ2*25lG0orD(q8;Cf(sjeW zH60NVN?Xb?NLn}CDDy=7vIiZ5J4GfSyvYKdGOe-QzM`yU(6M3!ouO@gcYwB0fJXLR zcVVWk6R6WajkeH7z8is~@7%CgU^qT(t2xSrEvy(DY&>4#&ute5tYGWTMW=`J7q7>o zC0nVszBR)=!II!7if3%|T7mvc^P?%#iixt*65!*Uqy6on4d__09RtYg_8M2#@z^Cn z+c&ynftZp>j6776_0de3&u17%HnH?w0~3v7SQ#Ov7=P9_lg2ySY&QM# z?&hxS_AQd;oqk;U>Gwa(Ee62tyU%&MiM1j}2ex8&mTf}cUj41kjprn9pp20%Xx za~K5eCcwjdrWxWKmLYKu95ZP^z2)5!sE)`~`yzuRtv33W_4fZpqt}a0OGLk`BJ6U< zqRMWTRdx%&XF{%@d6xxlk9Z4b01Y2jC9vq8WmU$`j9c{c-m(n@|5F8%Ru)X~rU{%G zrxT%J!Kx$|I%%8KpiVa?D2*0)tYs++$Sx44Oc#5vO24;ft1H^tK64b9pwAJ0;asTo z8T41D^`WhEyk2nSprO;r`-7JAYuZOWe!$^#veg5vY}zd4+vhZaf{>u=QYPr$|AXyZ zX)%wKuatf{SdBQIOVB-g74TTM)-i!%Qo1D@)f6r`Di&S`y5b5^L4yh6J~$t7R?s*Z z--DtxeWpz2UvVN@lTd1ZPsoRZT@mTi>%@11iUcMni8f1q2AT?1zz7atU>(*_Nl2{m zKHC0V42Lqz)(9AB4bLVmL@@zb(F-cWac1@SC&MS!q24oQ^oi8+lKS6dC~psj z|LJyF`9J8S{qMext^T`xj6*uYU)><0@Kbd82mIu6035r9v+2`9Cim5_^=900<4%G$ z-?i)8w!m{ri{3j;wYiZgN$z^W7%`&xC*T*RZ1hvKDz`j+Yp|}G&UHmS5|b3R z(#p_a!Y%i9RFI%9hCVQw>(+Mhs}v>vCg5%2ETaWhSM{~?%{)_fG)jhx_#55qIHR@0 z<{;LFEv({C@Y`uif!`MB-Rs&f6)@nmo81s&!@U~&%-Q(%BNGbCR=d0Lru=I4HoETh zjKUrOx0>6Bg%`qJ%6WL^hwK^GesY{bIP6@Z}m6| z!PrzrAHz={wQB(TZD+i2&VK)#&ku|K=NISG?X%?!Pz#uTdU7Hy2Ee!968-Sj6aGS> z{@F(#^*o;({<}%9pKcrguaWu{6dxbh`V-<$Kl_y5`|>^h_V@3~qo?2VAO7$MdgIn} z`R>Vg)0=O;Nv8*B{7owQL?Jm9iL$OFF4 z*_q*K26;V8Znw>rBtD#OP6L}eh|6SSGKok3o&1NFo0pgPnJs!a+V(r2cVv`BYYfgr?6JWU(5`jx76paS$ zL93EZi%8aplh@0X=V17NqRpN6jP6)BC|aXcC@g}>Amxd-&kckyAXJ^4Q!QgFF}S*6 z^;v%iw!b9w%G`k1J6%;TVtt<5iOjIUR@ixMnoI7a7#09W!E=75-Nd7oHCX z#IaNa(1?7)#$CZj!)jz)x2)g!&}tLWw(8%EtLK+=`9J-h&i~c#X!q~+j6c^>3!Qz4 zP>{@GrzBilMsR#qLs(^GB?lMzB@??y>2j}qvDLP|YD<)2`VfrTE|Zo?cYmhNa+!EA zrmCzZ*Ylp&6`{#gke9Zq?JK23xRssFenNQ3m=IsF<=Pm5y6rntc2*FjMTY(*=|YJP zoH*+XUy)RLnIU6W^BHZDK?QVL6d5I>AL{^TyW?Y9wu!?)Qh?&dI<&=-t`6|Fl@=p9+3bbu784+VjlXQW4=VB1|zryoI z2bY~3bBhVb7_IvRodGbnci4N%Nq}Ys4_EUE;MV}tJw5@9Cv!F-UpfyUT{zLx+GaZd z4$tQ0Hh|OqKb^jqFL(QnP!E`{>DJxz{_L%%Py6Rz{p-VG>w^bUd*vqmxO5W(;5Cw6 z1K6AZ5C5+Zr~7n&rh7DLIBiG&pKbP+ zd%oml2f%*b%XV|{DCoIu?yI+==fG+CH1FI}x6A%CiRD=NUsi|pxn6_D$q69#u_%0V z5>QqKe)hhDU$*(M8S?F!1vfEovMOHlY{yQdgFfR#S~jqEPxtZw>U=&`7#24+kzQ<9JAEl9YJBmFC)N2d8@q) z0Puj%3Nx>GLjS?lw^X(ME-O2$x{tLlm6iPLsB=IvU$pVdh+~1_2ymA{o2&^` zU^CJdGBOpq4|tc3H_40DZWvYfvhZG^9NS8!8NtsEhX3FEk@jEyK&WTZId-K9!=$`d zXS=!#j|tnvWBgD)kj4@Ld5u}K7l1~f~LJJso^?CJlQJ_dc@ z31O|Ci^^GjHtUT9ZuA>&Q#ibhk0+wlk+4qN(YlgkdE+z$oU9&PDQ{^z#fr0CN7h%w z=P-(qW>`o4-v0c$GaHW-ywtwnDyo%lb#0Z2_P`egV_qU4MLZ>FgT*aD!`0|$wA-+E zA*>`wMvFdBQH3MBbOd=29CP*u!84#_n7EgM+i3rkQ!y8vXc!wx@UHyxCKSMba}` z?z=wd(CNj~v)#|PZ}9m){>Svr?i)V4ciyf5T!6LR*B@W0$#2p%>Ba%@8ma97kbkD9 z_5PgZM_)eLv|9i^xJz{V$zA^L=^v$S{6D+A;FBHmojZ5v`FAg9znM2@XD56Z2GXKm z?pq+hJ}@baDH}*C=-5}D8Ju~#eNi~iwdV-z$0|U4-iharmfWuVMDu#g8m5>?K^gX! zi*gXyW@Jjtp^Mi-HL7}DZBE{L7ec61X)(x|)7-6XhZkM3N7D5+;np-WfnhAg~mgQKiF? zq&Ns=GFp|ZRG(oVj{r#lig{OnD-d8F{9W6QeVvep!7>_HUN!Pf%_m37lvg7|f8cEC zBgO^JfG;Y1=vS`1RNI6CG~ve%WBDxYMEXd9S@F3lt!OgHgH?~Zt-?!iN(IS)EyNbbJ-|I@{5q7NYU>%R{6j!>&DJp2kpi8`kvpLXJZmA$o zK?nN_0>&rG7lAgS&cJQLO*BtHM>O($NNfG(e8GAXp8!Dw+n{;X z_nXS3t=YV8cQaOI3SPkphSO0ppS4GQKB4e7lvgde;LHjTal>b3WcKat3~iT~Lt(w` zi#b%#vuxuZWxE@GFn-OsV|e!+Y{lS09DQ{b3_RxprKcIKF4GlPccwvkTscSHa?EA3R)k0Wcqn%6pSuCfytXc#YI|0319}ZTo)`!u{oV(b8v}ucZ`pD6*(&OLROc<>Ns(l;5>BF&ygpcX>t$F z0N0@maOLMGEm__lH3F=YVNG|_sfAG4i{p|Cg zyOTbWFo+CZk=u!1)zCA&zrfP1<<*&MW$@1X5h+yHxpCz@C5fEtAp-(lo(Y$Un z%St9kK8fw=$O9;gDqmQxzKmN@Sr2omv^w1XG%p?}Gy|;TXvQ~DI_gjy z4vDuq9HSXU@;;a;J5GSEFgI|$J=Jq}ly?JQzv8$`P9EqR`;Pb;ZIBMQ6LXfl+rZnT zxDaPqfc#-A-V;2>PRF?b6+D@UK*zA*X0WZ8Ie74$k8g@Gi2UYGHO;s88kXl60CPVB z&7r+E24~4KyZ?rx2i8Z35A5!7TG$ntu;8`C7687rv4b~Dq5kXdIMZk~uBcxFc-dAv zFE9J<|INJR&0&Rf+kyZ-dq$_{%MpO{(-(5*?3vK}ME4#&Iz0P~{_=1Ca(ejxddNKn zz{hQPjjW%W^s?#30q}aMGwOriJecV|b>sj1?B5<}`Z@jZ{0YBt>rPUMyWK7`>&5c1 zKMaUA9(Mg|8Pb)3DXulM?fdOm02pwjhO=SPf%}i?K=)K`!3Y>|F?ECDlEeG8J# zJxsZ^Y?2LjrvP)ZC6@e><~T_n=nIrTE_8I8;j)UZ_1M<=IgSe0jyln;Ppp59RvkxJ zb#TXnR_MkfPQ1*(wgOhihIN-@M95zZ#X0aX99i>oi*SMh5{a|m(F5Xb^o3a9#0V-# zCdcs@hc?K9{rTi#TFSZ&p~ptdb35y#cy{Lpb;p1J-kpY%)^F`wh_O(G*=f+9y3*GC z6fp=mDS2RdCxxV|CK)E(UM@Lg00!`Gx&n!TzeU!P%}@dT?-Lyx2NM;%DEFT?Cng4j zd5EA76bAGY?qpdd#e+lmVTS9}*pNh~RrZImn;0sej71&*}1i_-GB{~>eM4ctq;a?KT@L7&We^u*!=v_V)<8pf*o=QtIbbr{aK`U-+!^d-_)lS= zVG$A7U6OIKn_2v!=`>Ovo>Q3B<(bR@UgcwVWVK_8{ZD1SkojigQ)QmdK?r{@=ibf7 zKsG<=XW6G{gYF1$9A;3Cs{0e|kk>HMK2sRpXbidmHRt&NvV!%=G*NPvGRJ#!68NnM zOldnh0c=s+wj9A4wQHB_@)jCIus2iWpbOlPlL)G3XZ)GcoF-yEXxXhjm(V5cb2n%B zwyoR7HO|p=p62qWeHtESNQwll@osrLEVZw+MxQ8u$9t$l zD2&a&kax%lpfn z>@T;n+w7$6lD;^*>=mD%ok4Gy27ouj$JlzTWh(|A%z%?R)aa@4lwpf!X=a#9KM*&)b<8 z+V5yOJC(!WkiG)Xwnen%kmQ+NIA6%l5V8s$3%KW75>;qpz&7^XPlxZ#>u6Eg^_k_1 zgaepE_^QD0fP`ig3!J%!;^ixOP`Pfj1stcSIvExND$c;00VOzDL!4}zpRIcPv5BBX zmTTdJu_@=bA4Nhz9RHtj94MDsJiM&QHbEvrPm~yNM zN38Q8cL#(8Z<4}S5uug{&&0(>JO;d|*phMVWu@@@YkfYKJ;5A2T=`wrr<>54qwM>2R$lqV*G zJgaKt zGVI7k+;ZQ!=1_ZpL+tVtdZB%2nGpZEaiX$xdC#fsOP7NjQ=nd_%5yg$kVkB{oo^G@ z@~%TbQDR?Dlw}(%5;|hYt9CVt6uezW@p4QJjb`s}0$I8cP#iAs$6WbWa$685gFjI` zv+dO+;V8E&*Y;{eVLy`9DZy)EZ6%N!l6lcqR}+qN^s8W5%ddHxG2e8&#X~S0ETwss zeKA^5p%3RW_M+;c!^#bni7aV>4aRdAlmSSE@a zBY@|jc|KBw02iMoNHdK&tr4Y75z~MH2$V;an1*(*<2os{1z+X^bYOLpYW}db`+ZE`yVd( z?9Pc?Y@W;8{c5yB`okgH*GlbA4-5YfK4yBj!u}@xh;*|9;C0g{#19@knA;J6`~Q#o z($1;S=U?F0etiD{qp?0GwSw4ZvkkL|4;Qy%=R!UF56g{`|JW17DCAooCWW) zWp?%t6+-b)qtWiwITn12yBp^ML7m(zBuqT%$~LU-_SJ9oaHkswjD(=jx^d4znk06VZUQ?L zx|~yC&R`^q3vcmNmzCZVPO^2C|*j z=iC5;k^YPr&|Z#qEY(Ty3jsbbUi~{hvo;`IQYD4h_?l>-8jFBfRak#RyTr9V(G_5a z??#}BXgyKG=SN`6kWo__EiM*OMaiuM`zh~|vPK!)DzEXoEZ^|h&a%yREf}4cqAbap zo>Iomh=#rG6Buh{tlD?ud)r;nk{g@W4@Pe&=VPJ%={svP?%HDjfb!1kp!jVx^h}kI!PO~AH|e#~jRW8{6W&Mp z=r132dVWElQ@aN6XFq$F&Msc?#jP`LO#RmB+x+6i3p%@X$h1937Ci#6X@-AucC|6V zI$6N&&9Xe}_qn6M(gD{;3JT6TdGbjJ$PKZm`HO(_Yvr&gPAZ6C8+<%xn}}#Vxbhte zC@UwI<#Sw@hYG}%xFJn(#bDq5zL`{R>UTXq=LT&1rTOD*JcY5J0t>1^KIJ0`j$d~& z0KE;Dy5gY@mBmQT&J5B1>wP=HssYGpQb)zKiSzzF%~`&;x@SXWmNGbn#@~-s zAcJQ|e^bz{J{LMJGwLS|@{RIHL4~h?#{~{!KFQB%P@c+r8Q^&&r5=zq9L6@vF`%VU zhgsoj zSBBjyqFeOM@D(@odzHBQjfR=)W6^fOc3oZZwk`Up59%tc8I*8rY)wby9XBE*^Nbm$ zW&`zS)orjb8LwG;CXj~$ zGLGQ*1@=FFS6*SJwSnK|ruLW3Z)c!$rxiRyem2KNduB&6aH5F8`|P*PWvH~r`;LJ& zI-xWknW5d*j`p{QvF5yjbl1QAoMk^cLx{6OSz+~E&#mZT@pHSInF{|`TU=-01PmOMA<71NCa;5F07AAjr&*n$AI&kqiN zZ{2=FzW(|fY9|;^Uz|(3+j6(Plv}rMQDgS~ymv<5^CWEtz;Z7ptyW>}(+oWUB{$r9 zsvhn|I8pzSqNW#FWuG2Ajg~xkBM;*>FQ&ZQLn&USefP-u>izBT;(T#KGbQpfg5vHJ#xIf=~VocZKV_7OcWq zVrPUv`|X)~h!-5}2t?{w|1H5=Mh~0tAfF*lh6h<32EzGv#>FR6lof8t%BW7T3?}au zNu`%2fO15@;4n*kg8Y$S(*OwK@MCoz4sKqn&ScyPrAd)b1_pg51^g(DWX|gMpw5DJ zdLV<});ErCtw+{b{3_0sXOJowEqFH3TA2#_;w;4E9EA)RFaKjh|^F=<@4l!2B8 zdZ`opzy}c&mr_jfLkoQwM9fm(@@ z(PbaiA%S#Ko_9%R-$5YR`T9ji11V78`B`agFXCGjhXVqhXpd&N7PreSrgi**Im0DD zET{r~#ra&k!8g86I}21Mb!V>Ra(L$44I83#X58?#eqS9eq{OCvGoQ|pa0f>2BP%b_ zRL68@V2rzev#)4H-9AApiOc^$}?!2R+VUK&+Pm?0W8jK z@OUsdr|{b>D2QQK4-nKTOfJB)_Ad>F(k42|cDC4*z}o?Q&}1 zgNuu~1p%Z#C%S+C{!+omiF#Yc`)#!teLF$0ZtqOv#-tQ@w5$c{5snQL{0;VrHcQUV#fd>6mYuN?)L z7$zYUH0Zj2oJP^Wn3z??Yw(Ro_T1+I zl6Yb1cTRd8NR;@Ha3Y#mL5NC3WYk|dK|2g@ru;0JPI=hiFs-8SVya5GzC(OFG#MPl zdC4TJFED=bkJfmiLYD&TW$<79t__bdoo6ZJGB1r+I#U0LA-w+us*)^IQ+oOGbuqWvTKE4+u_nXZIAtgn2>F@qVR!r?19N zwAwx{c$7eLdvJx=^3U^F*3Cx@Pom;HD0D!4()f~ik9n-Wy{~QD0A8t{f~&ntTjD8r zn3X0|sT)_|6TiSVcyGg$arKpWY#Ow+I7#dpWS>ajjs)4phd&YPXnjy|`~ ztuA_QPI_d@z5}2+0owPs-+Xhvb@!Zi|IlozmOi2{|HYU63cyeQ;?o=3^(RO-MEr@8 zolE)RGn((;dy8+sb(fz%eI_jiK)VL;^88fVHGnM$;O_EL`Za*NgW=yiU~M;m9f`3Z zGA-$VWD{7b$o%}XZ8ax~b8iY`$vTnU?VctN`o)afo>~UoS!O~bZ>1Ix6!E=pk?$+v z;VI4Y^hFTl-32h&(TMc%w zJY&u=5V3j5nIQhiek0jaF`@x3Q9-7l4D$@XSKO8cP@2T|<{7OAgJ5MWFaWkc#2d<2 z7Q<&w+k$r*n+5c!Pt$gM&V1)9lLB&=*E9j+-Px@hUsJ%XESAdSAFt()1Od~qNC|jW zc?Lt1~R%=m;AP^9*@hQG0f0D+g>l;h+r|B zXSidG!XYB?9Jk@yu@2{f3AVngQv>^p3qGS2YKHM3&>m}R!gVGB*_>tKOi2$K{m?;! z6N$PNUtuidmplf1PJ_J0d5ld^FBoX|l<9ikeG|DlrirG;NwTbgw&?Y-czM0UFG`ZDMCVfK0Lj#O;o}*N;T^=s%A*Z(0L7SrB0OfT%ZHQvdC{Swv7M(m|`~XH{7Znt= zm#fE_#Q8ewMag_-Pr(^&?O>#fwaZgfj4I?co~i01^x<`0 zBt0K3l)r}zwlTS`0$F?cX}_YTqokB^y+`v}RPz4YXaX$*(gzAx(H#Z76@0a{Y9aFW zs5vs~cTQuk|KT0lqoWHrE@|njgnc(mGI%&$@eE9&zJ z%WEYY%D7k3qaJdE^i!Y>XoS|?0oH|h9KpA;6ZB1KyWxr}$awx-3LiWF!SCvHOFIE1 z>k7Q0&)(_c1@>t;rmD^>xTFZ5bMCh^-X%4fk*65)rA0QZTmR~DA;*y;-vlqaqXPQJ z6^qJzOWh& zG%;*NKMO;wHUhx^V#fM5!@l zJD<|LRNG(f=I1{=?J)padQ2x7jlCvt|1Hgz$y@Zn>&H*2HoJRvuV-+LfL+bUDcm*G8$KpMAdtJ9jA-son>n`mE)D^X$)wR) z1^42x5uZ$$LjiTyY|n|)5j3}lfF4M5I|^XV9-li|e;DD!{Djo*0FK5{9c4vGJHd$uShifR4-9!JQx!{fo(sf8aZqQ>A=3Ni$_= zkKL&eL&VU>mnnvWmnbnB58k0d_kl&wb}1+oB$5oU2O~r)5r~dA zXw+#~25?&uCS*c>#_9F2O8>61L7)3raJT||fO3cP{6~xjA)uRRj1M3+$r=qw?R6w5 z?GU>z@u07;dk`MOcl*7 z)Qx>CdaRO^Z@isEIp7(zKN-5JqXh7s%Q(RHf?P>Fp3aaL+T!kzP3Dc{p*Hw?eO4VX z)hS|pFma(3FZJ2(0t-y&%G&EO49nQ?dGsZJgfkWTGYkfEtnLPmDg2sl=cb8q-?e;s~?VlXpJ);&c?exX66X5pQ z?f&_};qU!_`aa+P?0)}^vDa?Wk55~=Nw1ea(Gl?RfzAJdrf=z8`QR>17yW$yyNAE$ z2M@r(1@ObSbmz_;x_q(kS6-Z*Ze-s=;P00h0GF4SwB0TPc8PMY%4X8NRm@=QkWVBR zS*WYKFnO0`jFWF4@?d}@VH9_L$}Uj5al7G=Z@SVhVt8=aPBX#HbvhxLSSP!6jN)q8 zA{cxte3|YV-mF{P4R>Ks;;PsUA2H!dFtGxCLd0&A6J_})D!2?E+&0e`Mb(1jG^MHM z`q+^z&GmXDKeKBHVRG)*B73_4zW}wY^v@FVe@2-NN@8lq0VeWD!M#qRG|@^uA|bS4 z5{LW}=t}UF{hlfFCDhRkDNuZZ6BohyML*_fNB*LH2}%cyG$Ta+Jr~|%$g_I4K=k07 z6XLb5KhaB{RR_(21D5dy)5|9q7p{~Ul3pcK4hXO znuw8KAYy}ev~KH_Nsd2f&iy78KD}I>_;~b*+vc(D!e!E_gzyHEnp%=mOIbHl<-jb6qS0uvEc{3v9pVEo)AxbB#tE0PyTH@>Y`L5;(ds z9j|)w==u`Rr^(xt^aIvom3eDJ zf(!IO^7`ttVXO)YSJd0*UI%XK8qPfGV?*KCII{|R5XWiRoq+fvUvz$^ps&XX(sz5H z1NM!}P9mIRq+1MnOn@n13q_m-p~x!)$4y}D7@d-HK(bsnJgJNYrWkvD4yKQM?r3zU z7@K>bDRW+ZXXyV4B2`w|Z+vXmLkiH&-aC#G52T?6>(r=L#uAKc&H|LA_d2C$`{X`YL3m$NHv2f)d8+nKhl z`k&1wGaU^7mQMOTfJDm*L7zqt*I5hbiq&IRAmrsEa|lvfnNP13h?g;eiGLKY`nWDZ z-B702Iu;|Hz#B?k$#WnZh@)T!++6mu8S#eKavfYuhM|1_e-ToCj-LWwTO~HQ?${s! zXA7+ASDXr*lqAlUa((9|0f^T@WTcy1@n#x3K2`jA=kRhg0NF=zUq$#g6nx^tsVUx< zs7yc!MEm2N9|K5CL8YI`GCPWE5+NeNKi1VtzYfZp^TKdRbP{ZIc}|ooSof*%oc|Sr z=Xip8<=8t}KTnS;|CMrbWP*YdMDIsb;4*+|-*ev{=_##;*UwUZ&2tr7Y6oRUv|p9w0kDPEk;TTM(K+bFPR>EQ!LhlL)ih{JUD>bwA~M92hNFu| z6~sG1n3xA}MAG=M18s+LXhoVUn8)5DZB|WC`U>e{AP26g9;TK2MB}hDEmgxDJ^~)_ zyOc3zc~KcBz_P9n#I@IhO5OjUP)m6HKxidny-uRiFj125y3r{A@m;ApJ-|s!+R_c} zby-|tFdg0DVdZN75oKA8?QlFO)6KqH`;~Tr_(Q+3&KumQGJ`LzepB$}#A}+k;aF)x zlx`_N{7~+>)2HyzF}Udqrw{+`Wd>u~l2OQvPLa^mlfJ8UN)LB zWm=KsRcaVIOIgV=0}QEEAQ-HO2ETdrky(~$bz8-toYTSo*8k{ejFJ`$C8nRkKp2Y zBu}cG$t7S63%^3*41R?ZP9})PIP(b5Ag$obag@urS;4V96@ZUVIt~>0bp3fGdCE z68Ti&n7-TSiZIg9_|AhR68TbfiXabtH&Zw@3}3u{5OvK4cOL?;S@WieQXsvK!$4Lb zPo?M3r^XX~=Yj>Y0(dyq?61d%fGr0OUnpIBN1SoDyq3_BRpo?G@OXzS%S}w$=T2D* z0Ez8#*i#%G@HW)(BzO_FxxgMEieXnwz%-AzidW_Pr z-~(?^4n~^+rV2~JAb*tSO-KWrA0chm_PJzwdRbHq!5XN~Oc0yVFDYs-QJUlV-4%8`78X&f071vez}526@@X(mrbLwVD+ZQQgB{<8RT~vxk&D_O;B{&D>Y-_6h%(pLZhIWm3$Nz^Y+yV40MKnSnfWk1^Q6kT7- zOgW2}9qAmzb>$$DXp;pyV&&DI}uI~$N zDqPcrqj66^h zhJl9@&ICM6Fb;vv-scQ;16*&PP;v?yjeG}#WPJRl55Vt`E-!b71yEyz3)*jEyTKc` zem37Z*hNnsKR!4j_Vcsz=Y0Fc8~pU`9}cB|)dQ`!D*(IQb+ZHDwbP9Q;PsN&Ig|&# zc_4rK{-4VIkCqpYp8mk?48Yrm?`J1x^2V(@vt0wY-|u-lZG^Xn(S5PxUt$1IA5>=G zVvsevT1`N~#kWwN?wnm7r^SFSFLc$~WWu8RB*A0Nm*g;58 zGGVyo&G9WHLKv|4LLVtmv?D{NBeIeN*0K4PIj~VU0yzpONeHFm8NGjISKxswCE+U- z2MLi`~*GxWffCm*tIY|P}!?(lVczns;mgXD<^Dm&6%LEtjiunu)GJy8n28+ z;IqU`A?JrE={Sv}Ur=r&FiZ|4Il&1PES84cjO7UWQUJE(y3BZ*05Gm9njF+hlGMcU z(u48TKyE_m3P5YKNUjU}3WXTQPQPSyb5cxESK7MoLJ;5%WGQ~dAybbkBsoz&&4|JV z%)qy1Jj3grEQ);z0O|DhGy4+1?Gp_^Tfrs7VX4>WO}uCbu8ynreKQz<*hlso4QZoy zOr{hb_9IhKNXvIOE=ROsl|ys<#(pvQv%vz~Fi52Zh?^zxZ|W21`_z07=tzaG*cMsy zMB64WW`^ztsP#x)P{naemuW1nbE1E?#} zd@m)=009j+WS6hv7h0iyx9>9$$momcAKtf3&IjXPE)U;MPEKe)-IhC>+p?MWe6np< z0Y0T?j~B1UTbp|a?s`Pi<+4@et4Ck)d;hoh_~AznyWOS7ua9)pO?sJha|GZuQa8#D zUZ{2*#lb7ZkM2F*7MzSti;Vw(-`bPJXZTa(vmg6y(e;_N%6%tU1du-vq4S@R$^ z77WA$l7UXa&1jim?QyFc;J|R|zCT`!&qWy$nb#fV7DKaf{zU3wPv@UDlM2#uos$CX zTkrrV>fZnx2rS3GmN$LX!){5?b}U=niEQgzo2bfQ;=ag0DaQ3u#=9yojkfDVK`1hb zI~MfHK%KPA>K(Q+?mV`lLZuRhEtTZLTXajkBZ7UbN;BQ4rCwj(c@keDQ)ewDc!RY8 z*lCM2b_69-p%ND$8pl_lWdz>J<7PS6VXHL+Wih$4-6sr^Xp|;x6-UKt05&0NeJX=@ ztG44O0yt*q)V>}gvo648Qc@E`e&(xT`5@EpQaiTNPx7S4^2h)__C=C<O?pwOy3! zK7vZhhT|ZAd5MID>mZb?%T)eawUGw6mHfi5hOWaznN3%sxdKr54aaBVpJT|oJgPvB z;=`9eQ2xEkWX1qgEjk>w{1+v#yod^`}yJOmH@bh95#ePXgK(`ic_BCpG%sf^*_TZZ5oNW1v0T z$2d;;Y!|~u^Vl&5M-_wM7QApAnw-#T(^xlp`tcT^flk^OoJ)f6J*A4pFf*+a(CLDT?pMKx_9U8`5%5bncup7M=SV@zWR!!pZ}-6_-aHRG3rfviFC6A z;PnzWFVv@>ecFfOy+`-Di2L{SpV1%w@CSPO{CR(V{^DHd?i+M+dcx12zaZNI&{zK_ znwk@!1;^-jWF`TH+ap1knQ(Kq=T-bIQTa$^;u~@yZ>49un|G>0EQF2g1hMM|L1>tg zTv3Q%qEN2Y(v@gCn{ROsQ1=L)>t8LuK%=H06Dq@zjOzJtg#lr~Ge3Gk)@CJ#XP`Jk z2XcrJUn+3x52Lv?ul=*h?XdIx246BFt{XaJoW#_64L(J=P-3B!(msOPr=YZ!RT@;l zbDC7709#5UMzXA~LK8}!e8jP=iu$#Iq;RaiF`$l3Cah~lYQpGRc^H)HfU64ttw7+> z1TbjOo-!_vt1#>f%8LEEB68Kss>BOksmLggtU;#Eq&x`%IWmNOHIZpdC^_Sc4Lt7;b<$hmFwHl>)7NtM^5FH>P2UfDfDaLDbfC}4;c(Vz|p>sWQg4!09%h; z&X0x&Q(hUbx(l6@Gi8IRJCi0DmT^t3JDQS=^iEi4QABb?Wf$^Eh|Sb(E4<%$q1Wws zM0uFlFwm+x*QU}pbD^Q(TxA0Wpxet}l~?jg`UDd*v^J2pu)O7EkQ>SpDcGQ|U{fj2 z@Ez;mz;A-M1Qz1~@t7-|0?)>yaI{Z%WjfLA2nJWdBc**24Is^%Bs)_?e-t!dVpwf+>_y6z*zJ2##L%qMefA8L}`}=m~dOHGe_@kTjdg;ai@S3S@MS1X>2Yu)O zvOrD0_aK0W^ycILu75s%`b^HB-;y`mkEc((%-xe6@8&&E+b!>RFQnZFu)NvDxDr*+ z;8l(&=v9MBo_J9VH*{3`ch^DetH;TUNcN0WAfXVD?7en)oF@~CfGa^146N4{XK?Ey6_l&phOG{!yuDq7Rt7VU zQ#8CMC`)vlPC~h_tbfdi<=S?nknEcow&c|($4c0 z!ShsU0<#wWZ1w15geb0a^VkBLA~_6K1t;*`=Qt|tL?{!68RVmcY%bf}9W8;zx%_6# z7Ui%ib&QD9iikmhih5x!?m#-!U=_C>}}wH({3WLK2z^^kBd<1SlUNr;%1dm;;$8=QYI=`ww}M`0@wN*l@ls5 zn@gidpN~9KLP_DZ zbgdx|CU$gn9Ru1Xu~K0iqaT3a+b8e?GOBU3nndDc69L1R_gB8{Rx=0_Iz_X*5sePM zJnu)q((s3RlX293Y8;;SH;ovDC>vK)42MEj7+x!WNNoohL`Wm}jSGp>x@b577Jli) z>p6F8Z!)GphFDuR1bxnw1)>x_b_DXOYbDa zS}gIEf91@VTv3rYb0MSeQbJc$}7cyIbrcp1YI9&J@dGRMFVgO=mLO76)}7JAS*RY+VX zCbomhA`&ZV-H`WdVzkW$qdnV$0P4rQRk(uU>INx;fH&|)zbUtGIg${#=jKV8KUfR^ zQ2?e3VlD-W4ObvI3rTSVC>$hAS&#SrP#PB9WKIBo(CA`{4bRv4)p zGI%%2%UAp!^l>`kow7(O&-hzP9Y>L>aI`SjamM90m3A;CCs80ZPFKn>; zJH+!y=3fA6<9pd1$3;eKo%Ou<2tR9{=66S{876$3UJIGCP6?P$;WY3NCL^1&TuJg% z@xk-i6E?OYrTqso&6{+@z%#X$oT8{hEA1HaT9Vp+XixhmtvP@!GQ-GLlG7G{4!YPp z1OxI>t@DaOoL2bZ`CN+F4}_1~{_VHv0xUy-t9?&MV*M&4I_|JtUfbJ0db}O2$KqCa ze$K|L;o)bnK}N6okMnkJ)PK0u-}uvaLCnCjpbMQI419+D#NY_ve3Sx@E?Aw$6Smsp zM^R{vTT6DH-P-NOC&JXaO{QSn38Vp0@C5D@Nj!6mw)OzVwn%o$*mFE;VK8y=q36+w zvXPpgOzL;!H|R^DaHdRfAE-#qhe0#oi_nhy3a7XC$bb9BP-|(0J;!AG!Ry%rqn3K1A*eh4x zq*q8c4uIE7o%tRyyKKx*b0dV&@pYAMZ>QVf>p^a9}+qQ#=RA0`>NZ!1(Z93BD6c~1%*-16ZgwI z?6NAe=nwY%Dxxx(iXM(RD${CW$mFZ|ICt=QEC^|IjEE^xsEdoyhB_ckQf7Euj8w)d z85CI(zVN=)wE!E^okjwepo;#&1w3+0Fe~9$sNfq=y^Sf@ec|1Nyv!Tmu??0 znp5e2C@T3=RiSY{alEZUJQ5#o6WL@M^xq+m62)9tB#w5QnWs} z3J0tk`pn0ylsu`NGX#Y)mo=_@MV-UvMw0>{ZK*ke&yPu0mE)Jla~(V>eVk?-bOkL2 zFJ7h}ulkPFw^Z8)!=iQ@5B^peuEL3q;W45^?Ry%-_pvEgU|K-Zb$w}Le!$EATM0DL zU@S^xQ51OcgX9FlD8nOw>CGrwO2@d1uF;ludl#r=xrlP&SYCtO^8sEMJgX)d$to`0 z!MR;*^_nBJAfu#m{ay`H#G9avmgcJj7*R4nYqrXpTnL8t;D#tgZ1-#cu<2V{p-k*4 z1A0Pd*jJwkbI!*^DG*?)b})W~;+#I_F}@(qZAE?H`h{X10lG1bINdp!R>Ez;#B}Xc zaI=2375NoCY1RDf(N>r#Dm+m#X4``Xe?Mo~u-Fs8DezsfL z0&sRqPH&y^x4TQebLS4VAb{JGJ)hDUo!T~lw)ejsl5Y0^y3kiarGruSao)?E19t5m zDhVH;rVC8(U_PR#qm6M52$TZu5hX_?F$8d{DV^O5VYh6FTPhoF)#*)wNdO8!TJY-a z)UrKD;6}?Zw2y4tzm`*FiD&6iUoCY|qKCk$kLxsTo87jsIKM*~vH@mxoWzi__H0N6 z_Ch>?_F3^oA3)@25$_&{2|?vVCu}obZBth&Oknq|U)m1yyl=`?g+AdEub<-0@`!W? z0g)^F?0e-zY|-E|*6y@RK^cirL75`16U^b(P@(li#oosYk7-a>X{6#y>y#!MOv4EW zjJu?#ktcluQk1!rx{_0bXkAHpKOBe%ul%jDSAlTNtE=iGTA}HvZ8VMUi%UA$gzU@jz_@kz0eBZRTq^! z_+!MwDI4_ZF#|9c&<`#XM*Ter$cOg-kug#g6t2FRY_L^KJi|>CvUh}cS|!!@Z8sfm z`}cALh(bFM4@P+c<*n_-!EPX2KbkVCU0g|0-{Uc`_NhmqACY)Ugf*-=F*3WzbHFYaK1JJ{m|iH0pV;OVLJ=4ZviK= zc@0L3uR9i3a@@Xi<`Lw9IyW!_-gyT4djsYS(qIE)vCX4*l6lBvv2DX|FgFvxzy?!{ z4Ri>h9>YM59p5&&oM;ta1M|pW{2)Aw_kibeen6^8=aZ76+|8+g`RS0AJ8EY5@R=E>2#^*~K|OJ3sI5 zPcJ^7AAa_k!?5euZ_?|f8wbE^rWTE|MWsA2t6{Vla^Ds8(;d)I;he*fL!%j3tL zse8J87-N^0azQ`%F@Vk48MnX~-4Vcgzq$$q4+Pi}$|8_Q9yJy|$Yq`yU;aAa$-EXi zY(}{m-Kbzp#?0b!WBE<+P7zh%Ab@u-Q_q1>M!^hR6FN(INpmk0Hr)&A9%+QnwreU2 zQ-O(1`4bSBV#;1L5_c8&1UPWfCn^Oy*cPP5yf8K?n4&C6DTg}|oG$En*yXAc!eH1r zNu11C0+Gg3Qqa)g6?@9n#P5gNc=f@c$C!>ZlR+?xM}}uInOtZlV5t;~$*}=&Z3rxJY`>hs2XCe>}Jy0ga{bcKrf081)MecxU~9LO25W{#ynz7Rsa@ zPJ=3{aVeuZIXiQl?aNqq;}5=jKk<4M*WkH<1F`~XI+wN~9kCzmZz{hnpBX|7aCt-) zUehOyfkIF;`h@bkZg}ZCbU4gZ^xm{|r8y2Tx;@GxCj3G%d9!iA!5ai^NPWgdFA1e% zJC^#54G;st%T^MU_Z@!NYBmK@a z7C|ZEKJp~MXP5*!Z5Vi=(8iM#T5`X&OQy$%#nXRuCT$16(>I@a zMUU?N<&Dky6Q&ztzGiBksCFLZpZ{0?eEX|k{ff@c|MU6&-T#yP@caqizI$gSzHavb z0PXLLWXJsq!2NzNo6Ux0A6H`ditQAF+7*qZBut5X3$_ksmp#zSi{8_%-vx@n0Y&{v@a z$;DmSjchJ!qsui>nwS%YIj!6iv~M(@Z*{XxESO+5n#M{4Cmj{%iJT5b&#w3_Zh{Py zQ+w8TAE4sadIXfC(cKze*=ru4>1_~7lS_jE+Yeo@fdk2S#(C9Y3zgbIVbZFJF-fe* zQB-cD26zw~bCegnZ{Y_I>i3`VBNmr(6iF8&oIkhL26ck%#N;K3$(#_2RqoJjTIL2J*Pi8QWKj!C1pFW}mi#TMJgcs18UU z>q-hW>Q`6Xb)5)u19{lsxB(@x+G~A>m7+{HoQ|=$>d{mWw((#%GA<4%os!;g2YyI* z#)e=!Jl+HFer_mbB2cES8R^z;bKEoo8DkMl0Iips@<2@i?O;Gm03Xq@r2Xf0bfcQ` zZj4sOb~^|N2rMf=7u%hHGQk`#7{kX9sw7MLfha}R#j()7)F9FV3f5m=5CKVbVLozyWZbPx=d^k$PsEYC`$lMt~A#+W>VL;E+ zrv!Zg?U4X&JiOFTg@)8)pIz$rXYCfWlhgU6?*cfii*8Tk^wzD8%-!3!gM5`SKX1r%Hwftf;`jZD)8zAHj=|=m0j$H{>r=Qn?c9K4abM`!? zYRPszcxWh9+%ZQ}C2op#AWHhN2z*ci53zn<^qkTXR}9dbO?pjV?^cffgnBzXJhouF zF?2GNXrnacLT{&yApMxq9koeWhSEYM(W}KXayEY`de!)XZMQ`G*h>Vp^?*S(r|}M0 zQu4G@=?Bg@rpFwwV3%4dd(`k0pb5Z4gAbDaqT2YfLiXQORZVde2RLA^%9W3(!=X52U`?@IZUe}sI= z%jG@e=YNVc;2o#Ub%_UM2d|NAFO@j-#<7BEXxDBb{H;3B^XmAf4= z5TMfto+~;^bZ4U(h7r&{UY<#)2Z7rmx{(GR6O>m*FE@}mj|DgGjE=xe$g_A8NR?Zihi$RWZGb8BWrwA-*}>TLeqmY#GX=ivLuOB9ZmMlPv}2yb&e=>0 zbM}qUmpomb?7c`k0zmX9^z`|2e)^)_0`U3a>1XuS@7@n0eQX52Nk2B-H~?NFH74(# zsEw>`(Y?;;99_*zP7dIbE(mYC$pD z-k4RScNciHoSBD}RG%E67f!vkU1@C?7U5LUnKzfnukJI$EWt)Ev%&2@WBi$J8?VSn zJ_SB`qtwq< z^Ju$fTB#`tk{}o%$9%_;hKYpu*}!GBK%`jS>1-U)YC??)FSU)b;;+sH&6MU?L=ZUV zio^wGcdXHRtDEsDPAHTfQqa%kMh|Jt6r7rp+breX>S28^>-RFMhzDP_EaO92PomO9 ztkh9aTNwsefY*6(Qbk8#9!mrHbbUs|1No4yDa)CzAw)808a%%$r7q&ZLwG0nPOgS& zW25RF#I>@=b!an;S&;#M!WFknnP0-v3d1W+P#wgePLyFBGC38rU0s^da0K0G6XoG9 zo(bxi%DY|_QzGm<7!wu81+68otpeIuH~Im7J)uEcXqckLo3Z4&9A&QN!}H!F=OxYu zMAo|m7|U@iF3=!ZJ7J|gDYHGo=b#<(s^c<;UNE&{JJ9qhjs4f=Rm>3oOfIjl=)AL}gX+!ol_!i(wh-XQtDFJ zGjt5jtvjD{{O-p9;HZ(;hx94D?`Ql8>IeAPZs++q_zbV=00yXgf^0lWwBq5M`wkthn@JC^N;yE$E1oXp-~U_5fa2|EKN3 zG~4O0@_!=pZolKUNP2O$908#3zN2U7%P#7-p5Ehco;+dtbD{^odEm=Sb`|?g`f+JX zH|a+wG0X6fKKa+5Oz;1f2k+Ephhg&Jfnk69hMd1e{QTq~f*wCUtovW~d@Tsz$(+Naq_uf?tF0*)l zgwd?J#8(L<=EYO!v#uMgA~6 zt)dF$E$iNJEssN`b|W974d-zUv|)4tBJ65}x)V|nWLoznjOXO=L_R?t_2Md=((bNS z*BtoPge&b+!C@E`++-J*Rr>#py?^PoEjiKzF|)PzIp;p&!C)kljOa{|DrHqk5!D)q zLN_2l$QcO$n$9J<0(akdO?hRMp){Fgt=wGI+_j z?{oHE*4usAXa1S3wa>le zV;rW4$vI`!z`@3Fbp3#E2UvN#1)9JB@`kT*FW3f z^)TxD&ti1oH&-3T942{(la>jeR$1EWl?5Darne+YL1HkR|Nh+XF*{F)tp5 z?u^GOQxxD*2xg16hJ$rPO~A-D_c#w-NC#slg~v)8%Rc=9SB#CBRDF1`Fe4pY0|&sH za=4fkf#xtLCZER0sQVoGFb?fk~AS!()Tu3z% zbs#KIt>ryOwJFtwZzQ{@ld>{;jGz1W)#})oV5`R{GjBZx-H;=xRGHJ_BsPEITaY2=y4vt#e_;q5~G{ zhYHorypP8|MH1Mk1nn_{MjO1vj_YE&NvrN&ACF&%Ez3$a?-o zev{0z=zIe3WAqLUSsU%?hrA_h^RK2wzh0OB43cp0#TL{dE7s$susqANAhFRj0ys z4dA=?9`x_m&n}MN_G&(O_}G5-?Ag$yK3{Q#yYvU7I|snqrG5~_$s094`st%ikiYo) zf6#{?yr(a|d1ep3ci-OsmdLyBzT2Hz?Ha(A_7@kYyzfypH!@vKwmUfkmep7p6P$S% zd3%)=C7$rMH4H*msK76Iu_KH{g&f4; zN?=T$)fWB-p)_RZQa^4eFnE^dY#>>L87>7A$6!VU#tFgi!b`!hT~jcGY%%U9f(aii zUyoJ1&^Aet7kRBxInXselOtfG zTq%<3t3}FOzsW9epCDZD)mCp_A zt!iDyS4TPLDZ||ZX1IJehP||HfdiUkXUAC1j12%&`l*BNj46|gWPTvZ^O=bnFXhdW z-SUk4$8$Lxg&QLfwC#`>9ePTYrIMw~>$(UR(e9av0vslT(lV@!FNO`F-bmztPKE*G z&BQoInWe4GEe1^c(FNk6-2ZAwgpqB7Pt5>QY3Ql%SP2waPaeiY7%HQ`dCx7E=^fuz z?wzKU;f4|q9u3&AQkcflBq{jwz!`@H$Eu=d(@D4c*KoEMGQvF{4k*(x@6!Qh+%{nE zGH1~CYL54|O|qj)MqiJG1{3|-7^_fHmd|ji?+9L|+c+WL>ogx94djp{&|##Z45HBx zs?Ekf#w?6Nm9=ajsj`F}F0kTE2EfRUC*Ehyjtw{xIKqv$24L)j$_Bht58h*IKy{vQ zD1Oj|WwDg-BW3m4)^qh}YgxcXf8VM($(Z*t3|`>1)7m7P0xsseNYYP29)LFxtT@9f z=tc)0t2ilgP^9oL(*c{6KGr$MW83!qW3C&GdpLV+;1G2xfn>5V*EGgwnkUn}%+20u zZ?5Kx`FJ?k;rT)L`@P*<-sqE;&!=_>;QOcd&#zx;yHfpUr|%zq@PYlifB&WSYu7)6 z=)YV2f17l-1>h}Hy8+;nN1xz`9{J5LJ~a8>|1!UNakZaMEBudNPI~Vh(RQ-s^XJdy zz3F{@d7A0_eT#RwYInKoQD>dzd1uqKOsnQW>dxHfwcd&0^4W2=C9=u#Nzu5@>R{a}-b6bK_vWE^lJB79$oknClrM0-7p zhm2bYl^&8#PKVwO-D7MXTHmiRR99kU*{*;*QPvd@j(+HTHyjA&&dx zhXU#N1Y-~UaX)|pgE0<<@8d$uHT0_B`#xUnTRIEC2EGF>N=JW&5Z6fsw9w#004h2Hjuq=q$S1OYX z1MiL<7R5!wX+aWeW{K%z%i(fmu7qMs^fbne;VNOjD{Y@^T{YySLUXgjN^R8YYz?o< zb~08BDZgW2`HXAk77EA48%52$okn?RDW6$dkiayv3JVIrAeF(7P^&~1E4myYMjND= zY+gf0KwGY#fEwSK?liZY6r)h0b!&)o(rs`mUB5PMm5c6MhBN4c@TUW>+ZEH#$Vh}2 z(@15zBF)wCa3~XNTFsQtyk-#}2!Nv&P}-a+YJBRxQ=f>4H}KT<+{wVBlQDH0dP56j>Lid9n5#M0i5v4 zHe~oDgC=i~yIY(MG#wBUK% z9rbv#*L~X)eVR5m*B7S(uX@E$bH^xYx=o*bUq z{lk4Zyg2H`y%T{S+jf`xr}=R_p60}EnOh@-Jq%q}g!y1PF!Autc{!};#yoX~!v@JP zN-cP5K4p2xt;F*rCY{fBz_c{7{HvZ%Lb(hX#f*%3+T?5Aai6wgJSdd#s#jZo}~zR~o`Gk=T=kUI#d09K}dqT-rAR6EZ6s zs3MslDgyD(fJe|CJl^4DmM*BqqNWN$IlD=vCbDuC3H|obcX`*Vm?VCf9oL0y$j*)r zHd;aRQV382c>=sII2&UyvQ^@DEOSUJz9feSI)Sm(TyLQrF&Y9Qhonc@c)&)gmTutz zW|T3GWEj&X8F!`lfJ?SXgXU|f;e^al2@Kyt_hqgUPUCD2f3B8h&OrAWIF~x` zz!HvfUvxDzqemv|-ecaCQ;XAA0<0>=%v||*8hkL=QjhAYxz%9ZHgIPX%^~h~8tg&q zx+c1fq^bJcoMnPEz;G*&r5+7<(mT}0bdGA1@h5~+n#%zOjmyk^=S)mF-eBx!71^Hj z4r3{cbMAVa>yn(9ukb9zo?{;Z?!f2K2FNcWf+Dg+l-Hm$o|}h z0UG_<$j^=dx&dd^0K%!G{mLV}avb#6%ZQ|d=VpY}yMth=bU0p?#sKG1ykywh>E-Dxp&J|0i&S+nkU%Pj!YVQ)uW_Ca4r7PkBCba2)BtSJ7k_E#ECqjF4l)*rO6k&Ap{Vp9eE#+-=eoPfyZ&Jf8Y5ZMcQcy-nMUt6_nL^c+`2etTNoW@47QH@y-Vx=U(QfS9$ z%xq)47Cd+aiH*t`{-y0PzTC$FkZp{j1)#OZ7Ws&7R^!bbqpXP`)h=loQ{Z9nd#i|` z!8KXawUqq2hO2(sI@`GWd?RnIYcuIOPY^vlU(H)9?^m;7@Yrc%(nmWRWr?wDs)}5qKr{|fdZSGDoVo5jXoOeQX%5BvpiyqCFvAP#BSO#_hbkE+-^#c=pGUs}9>R$dR$$~& zH&*@WGL~e?fR~<+0bHK(){)vSLh8eL zA(GA)@Pa|9$eTVngTn}8UuEEhBT4pTTA*B=JJ@Pa4b;>Rq4}p2-5{e6h$4W&ACUrH z7LG2~Yf_|#NR3`w9e`JX!W4jB*I}OqZcH+~Gw?`688k-o-wIqQ8pASQFnYI4xyj^IqxQ&r<37x`fRrV*g>b`bTFI7iB#|2 zv-$dFIWz6g|EoW^BO(T?FDaFdNi#@J<}= zw_C=$u4ijZqNbymn z=jp5Y_%6UI;1I6f`u3Tqq6=%M#kS`XO6W?E`5zQC5Eg{^Ak@&M`Xe7#_)M@6gn5^Q zWY43L4wDQSt;0Yy8W34%W9zIgPFprrGy>eMYaR2w@RKFK`Sc-p0RSq(d?I`%--=TG zw(+dMiD(^zLzA3f*{LJ++cpV|>aqd%C{(hTtoF;s>J_!o=dEU?yH~Hd z53bNE6F26!*R_bDIoHem=Z<#+&&F9O0Vs`yjTsbkAfeTAw|7(rJA$pD<7OsK#j+{zg-RaKw?12zhSN1|H>SQLo9$7&GsK(*Aqkt7_6r$2|`z z6XuE?@^pvP$(A7pD2W@9gPvr zAlQ)+5BhE6b3^^bc*P0-Ugzxn*ilqM^x5m)Pub{)u^NNxblU1^d1HIzoE>0@CV?T` z;YSn#@b1sm+YSCJ8L#d81@cTo-$KYfM^w_nRX9ju9Bt6Xk+xy&j|)4Oqk(SgXp02sJ=rfz zct73P{$j7~u=Jwg9|E@~~EW^ytwfUo3?9?eBf9KYQ{-9{%!Afops1O?Mi|shBt&EwgQM~o?q%ph**;4vZ0K3 zn}QUt*sqRq^TyobN6v>7@FXQlN%k$7(1XY|>8gzmdmJv~R}A)_7J{)k4%8VXwgW&B z7~2mlEvNwYs;}a}D}{pMa4mboIgjIG8to|}B)pDs*ccu1B!uq;Fo_M$YU!|KwntrU~imf;6bSMN0EALKv!Ew{Hfa7O*E zyhtp~q47Kq)2MN~ulib8=-Fmw29SVB`Rz;tTJoR+r9&&GA+kmaSDTR)IaP;GAsBxF zMJ3sT;3tM^-O-FX!fw(tco>8tD<-KTt5sv+b_?&LaQT&70giO=_28|T?>vEG?`~~Z zB^g&6^gXgyKCB}&7-g%&g+sR)MI4m?qGx)ZOIyxc6WYP_yq-h`b#HJDNhYwzyr%I? zZEKziO8hy-%KO2g(%c~P;A04MNqeei9b<|p3g9*BW}IzJQce9bc2bCh?vRRxkz3>i z78ZJ2^Dxp_Ml1DuuCNj8LiHkiItEh)zPZoQ56i-BH?8ZRN^Z_SrFrYy4m&+rVq|z4wP`#bh{g!r4GuNSH<#w<@cxCjkfJAKP|^~o78 z)9UH&+ak|@`_!I2d}#l}-~F9__|7}_SD$@0|CRXS>t~-a)OYFkOm`6gZ;@K~Nh89x z1)xO%eD(ONJ`KJvKalT!_q+1zUoZKtZ?60E%galBAur|OZfEl9Rev|nr3CE#2N7-iruE7v+c zLSESjw}Z(t*9m0w-cUW^galpSBEz`cULnb5i7KSbJ>dsRxllj-w$jkKYF?L8Go{U> z1c#g{sw!tC=(;j~?66*Yn;d}}I`CP-qV{g$xO3w?w6B-YqP7Aza z**y{6klb2+PsDfp865ik`@DTU8}Nd*CS9+zo1gV0UQc>I51eq_abtn^9Z>@?c)848 zB_FtFnU0m{k`LO8TM1@K2NLosI86oaavZd`BRDZ;yvF z@a{V*Utdnm`2R$HbZlDyS~-sZxJz%5?i>JrgwzPJT?6>h2OrthtA8~=e)hXgp!XlX z=%1J0{?Hyid`H?X0Qs>A7uCGr6a9k$A&CShewRcuMO~hr6nulJ`g4J)FGOv@y zYGIsyuVc@<(P^I5f!J5Q5c1#hAe>TU+*6NoCs6w-9kNus7^spIyanE6k{dIa_A#6A z$^EgCJq@9`@E4r&KZK|83VRPGlI9928U)19rQOmNE z^*$X9QMC!0B;byc$vEV{nm>0(ve6n3*FTNFTV`ZDzHBU; zWVr11W;iLsN3^zrN6*y7^Z(rYgqt#G?6s{pt7DYv&O*N~|1pkOge_4ZKwU0cHtQ2hT*f>_NocUaP1eQ2UHqa3Q-1+q2eLWl=imp)m zynRF0D8vJtOA#jTxT*Ft)f}^ku4aERu{Pz?_Ub${$8K`kSjuu)qkZq2cZMe#(Z7!yeZJ z^9nM`;Wvlj!)QgAJNK)P>71Vd<|J1|l5sW>{Jws6Wm_ z=DB{g?ffc2WN{U_m>$jUniFk`@1t zz5g=$mz*u;+hU~58KR{=-jZo?PQW;9)95z~shAHwXAs(tn;6iaKBiN?iJ`x9`s3g1 zOboqUh#%0i*fJ!2tF!L+-snYi=hbOpbpPI7Zw@yq52fD%@QZ)?rM5NH{XypMe|UW= z^J(O73$M5d;4b~)>23?aTc)=1fAUC8Kl=1X_BUVtjr{%3|9<-4y|b4W-#oMD(hdQ9 zc_QW~^7!Vtwp##R9A4Q)BmAo?xjY$3ZQuVzpBPtmlxx45Ph)Z!3DbUMAB-40@2{-L zNS+rugcEqdBzZNul}%TwSQwPJlFO1(A+*@wM%qMz-Lldcz=ftr>nMZCLcq{a2TXBS?hr1a#D=gNg2u>5K-7k^#yd^JIRQcC z-wmrhtN@vf!>hGj|H6mO@$CtoAJG#~1RSR(i;z_}uE$<~A4jt!>#~6ef#p~IRb$BU z-VFrQ)rRpXV`a$uGx}~q9SNix(L(Q^mrt@d##+Wa37S|QTCwJ1pZ1Dgjkmcjb>&u8 z^;*xMhC5$$Vb#K=Nhn?we02mPWyJg;-hsT)Sk zMz`o)OqH0Y-Y*zDv9j#%YCnfpjGLtnFg@}!S+>tbUIwnoCMHhY@<5@=Bf;+;*(c z>zV~H(ePFS)on(F{s!DMmv#graMNY08?{Hm-Aq90!g7>vEC4HGxRR&K%ZD@C+dEP? z0#@47Sa636tbD3H68blnxm(~LbsOz-mo?8sgha2`VFgX{)&gGy%KSuz4#<3iuV3zZ zgD()^3cR%P-U|@iUhzyYDCea)$aEEsIg_zXmA33LKCIB^(Z(MC2(uTOr%HSCE!S7+ z7teVfBs!MSH!1w4-bjISKiKJrvEjW;(SPttSJ*;l(_9b6RUFQA`mfiM=vYH{7G^$} zM*)(KegMw)i7^MQf?j}v>L9~*h@C9g0P4x^ypZF?p>=I%?K*UM)ylk-4=x`ZpT9D@ zX`28puk70oALuu~eX4)5`$4bn@drPi{_V&AujRs@f7k07V+q)O<=wUvd9I87zK5v}Ly_z8rh~!Bvbv8n6$34j4F>J)0zTCN;1a=ryK$wQWgz)Pe?~6J zy1r^22cSset5A4(3&-H6qfb6udD{Vx$BqOYGIK~HJ7MN|;3Gl;ZFth9C>%1r+rZwk zdNOa|rLbOAs?%ZDnH*Ezk51PZ7rvX=iz_PA1*Z}^j3sABuO~S-=u1RHIAV0%fDy`u zNEYfS4%$o34#@}V#pi<4xXmJD;gVUaGQo7i^`}g!fk7WFhY=u}i`1rQD54Lt_1j9@ zgK^M1Teo5&+eUKfBN&8me=9JO={n)UUsfY3!C5-13$Ap_*%NJzW+LK8QJ<{g&_PQT zzS!c@$A?ymHpYh-o2>gOqc36TFvDON2-ZNajXp#_)#;MX!4O2a;K0X13UavvEU;1+TX2Nc5SmU3>}XrfI7x;-(MpV&QXhd-;3{oL&^$q5xF@5~+txBZCgTEC&*raWh;ioj7sB2e8Tzi3_4n68Ql1D{9opicB-00=aa)a8#`}gg= z|NT3s+WtYle)@OXZvi;jTHWsYd`p1drQavrIRM@=wFrQAB}M!G<-h;36J$HF@|zb= z^|+Ji<*Q$+Jb%)O`sQ%Z7cXAQtCwwF9rfa#PTeDRat16n033Rq>LFK2L1}Z$_Y}d{ z27``OP#xO?*b3*p_n6%MJDj6l9w*`>tUnpP?CBGU(0&EH*y|1Bhr;UdEJEBN17;fz z%cGI91NrHFMPCs11cS)oij(xg(*R?u```zx?Fcs^*eK+`t#FHPy9kGgN;%%C1KY=j zoSfLF59J{_HBb-^9jtDfj88*b;&_r^pyT_}_P9q^B<+o4g`mBhXpa}}W?cqLuuplp z4M2sE8Ssu_Uj}5;A%%8l8HXW?;~*3riTkDzbrLN>AkmmDRYRbVpcUN^ej1O=uvXzL|=~2obD`7U~giHgNgv;P6sXj~X(Zi?@d2E0nL@k!F%-AMwG9GLVS4&s> ztxX@e|30QTLji{~V!pvS6XyV6+@`??SM z`0}*!|Lg<(=YR1R^3lKeat!!qEqHCE_1vZ3Bi%Uw-ZoJf%E#}1Z0!~R`LjQZ*RNjO zI}!7{3sHO8?M?>&iRkCkB)GV2(Jx0`Z2x^Q7=${r0S{&vx*>h%E9}6SyKX~qF{BLOYAm zk9M(&NrJHVql9Xa;T_|_URj)!#j7Vkt&TARl9l>ol16@@*h<^NG&S(vpJS_rjQqyJ zp|`i>vA~_sm}_)P1Mnia8K|U`Erpa7;UqFN=s#VHsQLYvgH)L70X<`mLNJ<0HmbM* zE5EfUU!$E(swrfj&WT%1-ObLI$~fP-td>7x9F+3Y*lf+qIuBNc9lhgzY=Mz7ZoJg3 z{tzxI?W{5rjix$@?yZyqe~I^{dLHqBH<3{(qq!}X9TrBtPkb3C_Ydc- z5D{4d&Bn`!GL0K7x5$7C*Fmgf8tt1fUzVbCIs*`2=h4=$IMv#1QNLcP+ ztXJ=p+NF8LG>GyXY0-yn(&Kz`1?*=%P6yi^52pKGNU(;zRr3@%#4P{dYRC zUfsXacA`ZmYESp1IVyLyJM8RuI9l5TaMYvePG(8utioPNTz!Y|=b@lDf1c^kz?R%1 zz)C_Sny+Xk2^sN&^xSec4<{SWyrsTL)z2jug2lz^@}I7Gmxj~AB<^1qi^$nt14kw} z<7Pd5SuN4L0*?CCqZ@Rr1j4X~b0eH0W=SXN*{2aHFm5&|E8s3v;TXW)MAb>+FvH`B zc;InMLIgvsGL*pC0!QZFR81=lC?tciclxLiBmSIM4XRLg0kYr)2fgtAJw}XlCyCMH zp?fUCjIU~3+8$XKp*s!vfj&TRhliQQ$puRqzd(V?&=<7`<^U{UOM;4D_w4h)hwwY2 zJaouoz(B&-m5S&q;nyn|bBh6B!e(WeK+p`z01Y^%JiL8*RpyOSDP&ufXodm#v=nD! zf$7D#Y-JK&vE`rVK&Wu*s-8p`+ZF1%o;=?yXG+SN$;!zP@7F~WJ#4nEYjCTQ#dNi* zLnID%Rj1oZ&nAMIG(NWyjSG*ZZWK_WQ_TMm0E6~Z--BsOIA(|3$gALa)pO8{27W3` zI^btRf6KXqdLfI#fwwj3N;zsK4FuzWVT5w-?P)bwrV6*i4x`ZxVbzjHG%MUIno#0P z)Eyq92)|YuM+-iU?RZLfN<7fV$#&x~)TJGohwWoW#KKAfP~KPNQBEL09CjL$6d7T| z$k759r$h&uX`>g>5zPm~rG3Y$Hw?-h!393N45*}Q4oQEDxyvE<6ZM-{nS;B!Wiz*l>+rbVnfZX@t%jqcY=lV? zUbvq)|DhV}m@ncuC=6yJp(QwVp!WO0xa zR<%(StN!Lp(ZsUQb0GRQ02(b_F;h!&ZiNqLs&NfHp&bs6(49+k#|RaaJf`f;H6eHi zE-Bv`E|c|-T2Ji*1Yyk+V@0dyGM=TjivcyR@B+;*;}GM-j$IGE~_;0 zXvG#f(Xn+;M3m==FpQjZ7}IE<9X(UQH{%xblILp}Z#JA9$~cnDyS$xnn(jQhkwehg zS%QLWcttb_O*p1ArM>|tCV6~PeVUDbq2EC-MyKWLpeaNc@Ign3J|uT$oYGqiV<|K) zV@!J6gcQJo)8kv#$+xYreKr@FVMN2cf)C!qJQw)`hf?H_KbUP8?!XN@)F#3w#)Rh` z#+#jB!PKP8>1ot~Jg8r}pEAZ=e2jRTPMpF&=eBs&ocnW#qdi0uJ{Ld znsYuQW608&8#TAl<|Yu7Fqx###-=leo})eGj+?BMqKF~43=T_J76>u1y3Ua*4^Dr8&juWm#Y43#l&cx=ew z9@8N?D5&#unZq*RULI@0h42bvGDxUHvGOeIuxhV6=tH<}M?qw_Jf3mIm-jVAxiRl0 z8ZzqhOd(9{P!4(}K8AXD>{0)Yc^~1kI%6WTz+v;~x~2DpUMoEYFETo_sMT#5cLS;8 zLnZe=&_fdvzY|VG@>w}3yD`ozucnPLj=Cwo7TROS7CQxuIugb);kKoj=uj4XD)O`f z$(betXDqYOXDu-E_C~Zd6P?BCxe^T;?Tr^1hYs7Qe=g3FI*2oeF;YH08(_Tsg=fIa#4s80`&rUH|CQ6IZmR%HmYtbtj_bmZp!=gv;2u@seT<0`?EV+$ zG!!~Hr9)f&yjU)uo93M!u3vWd-=S>*m|jf}yqTwNGkxb^^MiNa@z#HOdLUCf0I;3C z)_b%m>+jN=raK3~TcjR>^0_Du0sQLmSNiJe@23wQf75>-e|N&~w?wY)U3CJ!xxTUe z#mVsB-B{cAvTxxqav>MHi#|Q~OQm6GE^~7UA@8f;=D&SKJPGYS2Wg*ruS>#c>N!0` zd7RikCU?(+NsJIC5t`V`%EQ8scvZq-2#=#A#)jLF`j!F;yv>rg_&&DQ=Z{uVAN$w6IM!nXA+M) z&AYRp1IIB&w#qczh$_T%Mqb@`X7r~6I5tYP&c)Th-2(S*515~>9A=bHCBu6zVQ#Mu zN~0fXj_^F#1`*Hr_LBUL@hhwOj`31%CJTUcd&+pPxsHkW6U(B)`&JG@RH)^hRzPIT ziD{z_@JoId&I-z?Hcs?sXI{u0Cp43>ng=b+rLPuwt%R+sq%Cv|V|%vOL0jN2 zyc!F-YU9{f!2Q*HW*$!kW_Ci&)GlZkxSKSOuMkdB9;(;;U^t#{FwmKo;L0U-x+LAw z*7FHtWb}t^hRBGp`xaGUmZJIskIc((_@fDpiDVXJ1YbC@bUfn;!FfT?D&svn6nH*y zv?UN4c+~M6^nfZk+5qzdQKF#_I8KgayfYr6ZpUYgo6upEt^R2t>LYNk#R)`{33F}o za@;06KhRyk7)}xNRVAXYSnsMlfgL=-`Ujop6%>l)27qI~25_Y3B5_{Y)%|<=^H(qQ z-3Jf-X0=b-|1*sLfv~&uho(CRz}u$J7837HfD>`HGXUBafcEUg)pPsZZ*%s;{$%*? z_9m}hNsj<%`(auXz&tzqRY^)`{JHw-%q(Q-m}N2V`Oq@;I+rS;?7`38?-l?7)fkL5J`q}B=fBTmIX@uBsr@rfFUPUBp)`EWmJ@PIFqeu1soPS z#KYroLK}EM#W08wkG-5{t(bCbU6>kfcfDx+SU;K zx<*7VhDt2xstaye=qApbkU)r3rObFBbc~sX@vDgj7SJ@o&pPU=KRWQB+*Xm-qpS=% zha$uD&w?*~VPU#_TEd-;HbMcB{A?<6Ny~33O~|0E@rwySBr9(tYjnRVE=)+4e{OyT zOt(yyG>3_nK@$rg16JZ0xuZP6Wpr00cfF?iyi{EpA@DPH*Olw}dBg>IoT+_155e|> zvvA*%R!#sr-`W-_Z~ft=l|mKPni8LsH$Z@$fy?sr3;fgX;wW0k2lHQL72?khj+TvA zC=>6J0!(Ryc`POm9o+);{{e%#oIBmiW6c>x$0yJy@3aT_*x%J=CNKb zZM~!XfQ@N$LixhbX@wXdSe;OHe(`vwRaPEX8U3hmGO=Mx1K`nuJK!?5jbL7hB*!+< zV!*=&ujo3TdA;7QwndQYjN`;xO9L02*EZ&)NtRbqc!rK~;Q1p2XUJ8i2_syJBx9Im zUFa3)vu&40A4rD{1HL)}d)}!yUKntK^XOl!_wZ94GXVfNA@c(i zibi1AqOX?f+_jMXn}f{Pi@kHTznJZy)9&Iz_cwdHptI6Gc=!GJ+o#W8p8or9-hJ14 z1i*g~Y1^%F{rX*cyL9IO_#>rHe)@@i^yNqT(FY%y{NwWM{=*0Q{AM!%WRYXx>&Wn9Q)1+eKxos`2$6}3uTgTvz#ucwkfg$j>`lzEnD z2AgDOa+WbqV0>)hWo5+5n9Ez=`FFriu+i5fAQPPa$azz;-?++v-*TUYGAMnn-buzO zcxU_M2#VhKDf4ZeGLFC(VB|zIMm*VQK52$2&3EDhVkNqO@B}_BQVei{rOHIerRXd5 zVJl32qV|M7CmkW=sjW(S*Eem9ixJ^e z<5UT!=^O!WgWmOOX}@Y1x3eVW)2P#iCJP&85wi~Sb#6|aYuFWfsSchR5G8E+&|Dx;8ez32COr| z#LkGB#!{$Vrm5r@qlG)>=j{AoAgK*(b8g|z?H07%{;1b2=e#t2(auUcTYUE`#F&eL= z)X(;Phlmx3*oP)0@Tgzns5241YH;Zrt+W{D*IW;NhddnHHr7VT0?*Rc5S+}vqcJnm zvvid!9;1yE#zq}nJQIWiDjPsEPBGvNQeozS82@27u^Y-n?#(a&31>CA0j`8g@o_PN z0sHjT`#fZm=02fyTQwwc;hCa76!o^DGyol})QFH5-QhDSxT=3536P+N{CG&bI0F@sdFR?2iz@)+lnQSa7sezbz^4HAPHcz^;^R#4xhqI{Cw z=p*QE)!+bseA;%l`kg;3ka`ZpN<81A^?YTyq9W@K5Ic&x>HFm6c)?65 znvUfR;}VAIv^BR1tN?)fFB^1=`BCo!kC0^0Jm4Y^Eel{;;Z7;WzYs}vvIdST-Rmgd zL+eel<3S`D>477!lOy^>^VmT)@_}(^vyQ6~{vxtu8b-MiK9Q&W!3j|LyW@QUL$kv{ zsZSj~uGqJ{MLSBYc3G@Xv>Of zJslep-1pCRAmG6xpW7J#`}g*`Tm$%9ZD#{`J2OBDp&Q z;O)|#1K^LCe)5x_Nb^!X{NR1P|K3CW_P0guUEQ;G2;e)XH;uU4830$(=J(Nwc)0~& zw`;*Mv&Qvy#(YjQBeg>Kl^0@8);-FRG?kOWA90RdI(!ME7#kl>UjysJbE1;@t7`VGzhSchj z18cHP+bWxBmEF$#r2%ArExh%|YY$Y#7Sv_Cp)({u^Pd+!1ZCGxj zS+0xmg{d^*s}8WV)C(YR>New^`4<4ivxzFRjkzsE1`#SNIp5a2MAPX&FCT{l*G8L4 zjp|0d$Zs3@Ln%jpHN(eKIRPqxvhivuk1>gE_cII7u{pzrax*=|xS)cq)qKb$^d%WM zvYw+cekRG_wv92LOBoT5u0vj3&ozdb@xguN$b-1Ljp~STkg+#(HdZwCzvs7w95}g!oC!CzGlljrJWTBRrx{sY6Sh)2^QGx^Q(4u=3<_*Hi&JegFRj zDru(x5`$zJ7m1k*WdMJ(C@8`wwlkj?RSZUFmflF#sm2akc5Fs%#86-;!~9byEB)UL z!04Mw)&;@jWYits2On0#MYA19}--cW!KTAY3ZfTgQO>9aJWc^uRu*$`$gI2>2vD!Wyg0@^TEMc7aY8I$@}I-!#KmJY6E+_22+ z?~M4H#Rj)*bK@BucOH&Uuia*JVa3C5Sm7-Jvjxc(7! za}+@EhC2B*KT5Q1L|e10*%i%&iD-?ZL}cCEYJ53Qd%kg1@#4Rz37EY%;59F?`+wn1Mi1%F%gM02%v1*`k1LatY2<*boXr%>Odz-&~RNp^tLC|$tO z_Wd6>=Cn}1qFR-tOCf(f^s+iFk*9rj+kY=}a|B#m^li`wUkp7wJ*Yf*AlIjb(r=zW z>$d4{e)F}oE7iZ>zW?Gw`|JPyWMlpGlb-+c&p+3G5c^&FgVSE_(%YraMcaWCpM3I( zJ^u3XBwv1Hm-3Yy_9wIL+aj-?-#d~0%gBCnIOx5rd#6cvy-bhOB$!TQ%=5ETGz@7M ziWWxhn4xVyeC(^Id5IeY(j@fCyP%&2f9}RVg$d!{J0)hboX$_e&daC^yHK3k{_J1f{z(YG5h3Pd zjeYQ{(f8Q$yVLcdJS=3qPDjGf-4fn(&`Sv6)BhMZ$G-(Jj;H`0=!GU1ye_C4L=sUV zL+cpr2MiJd%;qsB<4QqC)LaB1suhkt03K=l@+9MelC(Z6f|6f#@N7&>_SPGJie#nR zTdmDiuwuOGi>=?1c?Y5PeBI@J>k&{8-4_2xk7I zdTBlfZ!~JSUuRXuN~!MlxubCEek+MHO{;i!-faVQ6|OMM@Urp*7;3GZSm7ji@r-=nFAF;Hn{Xzj^YsYt^PJ(Yb0Oi&WaXVjW|RkBAmcq# zJmE|L@B<@yZl4G5=aG0J)7(5~zEE)yEBcNr&lM#aF-im0i6j)5|A| z*!bO(Z}k29@7v+9x2qG$_q}b>LSIfZVSjnjNhV{xAm$GQT|9TCWTMPIXUBZqI9*wa zaZijRg}4)6la*&;`L4|DT~JtIN`vKT7J>~9I0^U_W#xLY628EM{d2N9{Fk|V$S!91 z=#$X70p8hOZ|y(&DWh*X@tFhc{BWg1>A)W)CaQd>qfn0_`3OiP_LS3!{xKG_toIp? zo<>JpjSzFe6b7{nL4omrBLI#Or7<6A{XN|hP*+97a=$Sqj59(7j~5gq4H$s03JN`# zxvY$9pgf;WB+#|evE;dj7i^ph;Xk!a-$M|u2WNA*3Z3Q-Y9^Oj)YiJBzEPuZkyzod zH^^6k*&J(G1HRdr-{XDCcuUfatQB^%*O#wlUkf`JSwTqDM}x`;S85~}i_mj!qs~{F zr&{tD=L0CrlndW7$uL(G@v}nG>3~6V>9oZM^|cQqI|^(y4sdqI`xT(*Ph=J-?%gpr zuTeXG=oq?QwdFj4<1vo|9)@$LYaFilyKMnN;7|pu@T=r6Y4{cz)YOKq>o%&hI!rka z^JG5Lh7E&N-ooHi&a_XzF?VL-?dRxiYq%qi4jJ3usl=g(5f&~ZPv~PrTzu99o+viPuk+{C@<%ix|^@` z;zT#?41jwlgQ#tjesS|^(u)P^wgupqzx<^7;NS8AJM1Cg!AZ-i4{Z|jPUjw+4sfD#XxPQM#0Lb*JR_ge7e2XzHJ-O;_V1_ z>vK6B^@jiOG+u&0R12w8VZaD~0nWK-&5&9mCj`|Li zr`rHF`0avkTE*7UPmY=&eJz_0lcK=5AmNZ3ldY97bp(acP4plGHOp!|nhT``w7~^N zTM?EYUiala_f3=Jk~Mz0U&7rVNRQW52%{0<=PY@0eozuCijulk`iN&S&oJd+hlg;U?ikDC%BidxGeBdSbqArJDYl`UV+Ss}LEu z;E;Xh+sO#E^|WExvf|H1t}-O>X+AvtcO%rD8bBQo0LeAJJ0)=SW?=17;BVV33a%es{T2Do}5 zEd!8XR!Q^yC<9iEeN8+!mD}WQ0iS@K_)`?r^?YwB`#qXzd_$lzRE{ zrRaQrzT98f_05g`u08yX$a}wir{`%0tpA&jKaTv(?vlIoR_V?G@D{1>Kl!W$0emK3 z{6D|YkN>-m?dzvs>-XgceG7me0U(zbudIc&wD0W@P$l*?vY_j)XOhbE$RG7W7$t{;WgfEtIVLiJWr5ektdfiX(9V-=!g%dzj(#-}Unq)7^TlF2Pq&}!CnC5^3_F&jXj4zm^*MB5o zMxp%R%F2zd1Sr?d@LA4-f#KOZ>AIW@g~Jfm7tguW!@Q-WYE0bPhb9gK8F=tgNv zzfzt2NpnBdVdu$a-K?E^v7PO8&$iy#EzN8U*$VGl@V^G!-#dZCH)%wYj_j}Bw91iI zbnC=v{{0*+#&d2R6SfqnfV~dCZ`hFv`esTpNds@eE_5q9^_eYYD;aspoa+<9cEQJO zG`cwlpa5$Xa+>ywt5Tzt{P^NffF z(6OZ=;bx|GgytdBNu^oP2Eo&Q9F3wempZ0)^O?+p!_%Du;O&z=`s9(yUoE8m;X5DN z<7dCq=TDy6wCne;LdrtroWrr4?O~ zbZ$#eW&UI0p0g`4VPj77A-~RW_>i?+R=o-xE9?>8#8>-`C<8^g&SxxmBSV|Mtdv3v znL32<^4&HLB1sOBkcoM1+MLNT-&%^R*Gu@2oM-jjSdn0OAOxhZGARq&hO1ThtrP)3 z0YgVlA}EJLr&#!H)Di!dF-?M%%P@dv z#z|zW6Ot-pnt~Dmg5&&9pw|`2a7qN0M%~MVDtT$Bv072<+yHf}kE@cp0hh>Gbge1^ zud!06mgiQU-v)bamubjk4U=yC-h#EZA!nX#(!^`>zOGD3feO_(Xn+Qkl{uz$qNm(| zN%CB*HArgKUXQ1e5}#TL4qf-p=~p-C6IJL+L8VNqu~gYqJj>T5FX4gb2s_NiRe_1&3NH}g)C^PY|K@xVTGf_Z9~)yd%yD{r5S*5A;=T}VQ1?e!8^$c6 zLts>LeSGC!)I;sg1W(=8!3W53;)RO78thr>N%$<+g}#FhQh#+kTis0K_+;lo!mYy@ z*Th+FgB4BeCFeyGK93=InvSvo!}yx{U;!B+TO7X5G%;<=jev__NPp<_G;lau-i{f6 zCP^PFvVS;3=r_-;G-t{!z_KI1jRvjIQjlG|X|shT{$?F`?;7ynek0fD!aF`|Er z|19%$ivXBycU+LNJ1jQYx3?Kgjn!{Lp^Ep=-g7uc${zn3FIG z`8N??j}!jI4*}F1j_HLBSCT>*;IA{b2dL*A>!)G+^su`jsLbD`!wzYQX~;MYh7{Wn zX5xK-DOPwqoE>|`ivf@REe8ntdsiry1BT|o3tcHmXDPsm5c1Ko6a0sAPA}~fT+N{8jK8CXDr(^RK(kn%4A%<|oMBfG! zOG9-K?$8RJ@)yr-tg-Ri(r1snD8XaCOc=y`RXrWL8Jy7QlIy{j7{=q84@dfF~>LPQ3vl&4q=qV>b+QArKi<&EG%_nci zd@x$!we{HH!G_FLt|!W9tR#0n0|T=CMl>K6?_gx7F|oWlO1ybBMod58|59*`yshs? z)I)V8eCV3KM98?;F)omGIM|UR649qE90NWM0|)%GGYcF>x1W4VfFlv%+2C8u)7bf4 zX)X1KCI`vPzyb6ij3c58JN-?T^oHrq0q_>7Zvpsx@kX_iDZl)mzqID1l7Ia3eg?q9`}ghT z^-GoG$?Zou;_YT($O)cvaUD8A z6pLq?6du%zQ_=^&p}q9P2sMG}D+>`GL{==Kc+IXl^@T81)3Mdp;XVrV<>zlkkiPA=!q~aLyyo43^vGP&LcN#;2{} zor{nRqA2YN=P7Bvh3}@YFUeyKz|!?Hk|eqXoRY^j_G%LGS)uvr*=8D69|sw2t>z0W zi(~K-=%WwinU>E2YEl$aA;7eO=bESuUQiHO51p>cc;od1%}P6ZTP0M06@u-SGr(Mq z_||s0lJC|;P86DRXL(_1&d%2O2IG+nZG6{)C)w!N2A$oS-XNo$;U%xD_SSCet#znw z)M4fK7B84=@V2cvP~Yj`drChe)V}j#Ob#knR>L!&l=HL?-pt#pH=gt;ZYCSr9aR~8HW3Dc64NHxoCvvCK6hGWTcA9aJswcw(XHw>+$ zP>rv^%`k>_z{N&5a15a^m;MJHtk9##YMWYhIK})cFb541j=~{B^v>-G(G}B8ABWP8 zNSQZU#zZzRGf86y=g>^J;lFNZI|A5g!)4R3(%54jpnqYsQ(s$|9XV_GQ0*h(7oY4@ z62f;K13X98m2xlZ`Dmp~hllC{{;`Fl|M_hJIu&^MkK5t;Ezh^k>gR6w_j3StJKbMS zN8Q`p4guUB_R+h`4=!vu1K{hvnEHKbX8=6bAO2AKO#n!D*8sjAGB$b*2mf+sYqh2=L<~ zl+`%Q-qQ75psBI=OV{&NCCvt?0^i|6yVD)w!m6}uAv?{5!5~Y0j2%^_p8?wPx2Kkk)=AQ#PqjKYw2~Vgf z%Q&El%fa|(&|`(km#Un1Cq?u&T&Hrk4T)_7s-@rH*=Nax8cKrdmZV$<%NNs-t0BX%Ex#v|w1`s$0C?#@Q2H3UhUY(4`Vb+7a@)Y4CMv6BblaFy%Fz-= zP9saWNV*Tx9kR7P?|lyRdE`;7F#e;P^PoG-VRjC!4F57N07&!iw$=G$_n%h&m;A?< zN3|=RcE^kPaCL2m7Z)eCesfwBz0p6_ceULOfLj1Q`Sery;?&T;{rE>l;s09=-=#N9 zcM$+@mloptT=c7tzv`@~MFBi}{Ef*krEdXf5dfDLm-e*9w6yd>+i~ljJt@Bv|>C#jyV^JFl^2B z8p@2{i(vLU+-F}|mqln9@>H*~446XJn+>>ChkSD9h#g4)iLA~72!nXyD}r>TGcA1( zNs11=3xUMS8U_Nh$eF)}7ku=`(!MHw=XjqAL#+VvAy+7eh!Ha{OAdNc^wg zmF;6_Lx?WQyu-62MBp&SUfg25x=|k^$~O3P(5pCZSpiC!7#}9L8rDe|2?EC+K+|=-LiKW4#(~xPGkozVlj?fhLvbkY3!Mz6k>TTmw=-G)9y0SR zj7ohjdG$;sc3b7Pm0@LnEF`V5{Zknkx>4F>C{yQBMot?3{E(Wl{DKz>%PYaQtPJAP zs7YS8>|{moymq7t>{4OB&EX;Iaz$U0&3gOi80?G>%G=UZKDnVj`x^f z7#HBE_(1#?m@L|67Ym-?-+Y-Ffv&4!z=Fu!+_yfKOS*G7; zLm4h=+6cG=7o{+cMbheIl(oTkfn%k%CJ=*;{6I=tX$7qQ`$+d0Pa6}=S6;P7i18tL zQYIT2o67wY8RJ!Di~1MiPjNknU<2Mkt6MTiCFx$-ka9dlc)yhua)QP6x%7NB2W_-B z(ZO;obNFlkEpQ>?qovwjhYb~?|3p|U+srni0ExCSUMy32i$jF$6I?-y8??l5ay_wq zV_B%`4kU!FGa^?Gm3gez_wG^|9v|Ln+50e!_OY!2_^;b~z(0V4aQfK554PSMd9LW1 z=I42XCWs*?XD^Kn@Wthf`nW4A`!$*r&Pbl0OamwfT`BmD=6bzPGi`Hj>99Zjes${p z$tG&H(Z#zL*3JNE?|ygs@A<~pOpFZk!w8(4yedOC+TBSP& zz}qEltN+a#)z1JprK>-^njU`ep5p3?magwz={wSH0JyMr2EaYJC$FAePg5iQo8=6E z>Es01H;XO|V=y>b<`##LbzViQ_QBAJe-=KP^sJEGFwVU!@1v4YwkzD7Z_&Pg7>mSQ z)W(5==K740qEcZS>*|u3n|Eya>g~7??q?4)mFu{47I5|YDUu=as5l>CK|oruo+Rlo z^~xyqRe{zXU*T$15g?{)p^N|+2_b=V7nB7tVDvsErGP7EAs<@}G91PN*T*-M9EJX5 z!V6wQh)GTx#%r9`A8_dKMo$?=z9}ZoBw(dIQ^2}?_5Ou&AVY{IIMF{HN(2OUtb&kS z3b|Q?CVS_7ywWxVUXd68j^Al+m447FgRXlZse%BD;E_ap!UL9v&PMGj=?&Wcy;6+5 zmA>VA6KztF6@Wxbl#?rp-->s-Dlp3NJB(Rs7@x#bH>zQMJfT_A^c_$XvJKKp6@!mC z?;>V5My^bCTi%)!RITu98$ih#sMjTsifzz_6-wpRAETaFsgD6Kq?_gnzFh7H0@>)r zma1Y5E@MRFjI!Y*r3N6Y2(Tr)4PKkDJ^E_ZsE08?t6>VJ2tKt6r}nC6x`xa=|4bS_ zd!HF!YxvplE5$dqhIX+oG};b@sJ0k$yEMz>R4ou|^g(gF_*8m2#XHtYyDR`{7R zP0wRUFoq_@X~0Rd%@@3?@MgSM8L-Bd2g(=w+ojMV$r!Yg_Ty6}nAp8O86o9T;NbCL zBeXibD~zB?7^A!re=N8_+VR|yEi_8d49~;Boemk!ixz@BK5jc-JrWtTi~aVAHe?%L zB834;dFWq(r{l=i^-z?-0!7EuluxD)eU~~2I#1gHM3Un#KsHJIZQg*|Vg=h?WV=+cn{$`)2D6pXe1a14cw=)3x zS!ajSqvO$96m-84?Rc>O>f5B>k$3y&cMjj4jdwNRs7b?7q8K>y%#2Hhml;0SFUpH;YbAxQyD?tT;k{k`lZdDq4fxp)hmvhZ z?(JI!Zs3Hx+Mom3q8*ck4L<@R{byA*sO zdN8eSixh&V_GGmpnb<}$OfhKYZCNfr1vT(Q#1@lU2Tto`cG;Qsvugn^jB(jWHpZ3r z;zJ&C-+&ulbp>8925>Ajqm&O|6Ool88hRZ+0Qf)$zh|Rys_!J{U-4j~Gj@L0bDy{% zJ4AXP@wzzz+!v(*v-v}uJ50au6uhh-IIAbO^=ta+JjbE3j(kf!qoQN8{Zdvnq|u# z_hrAdCI!%3W(B7Z31!q4K_Uw;9)MdoY9qA!IQHg)Ng;f{dF{tyiN$LCBKs^W7qqf# zE{vm{Fjl<2Bkjv~7(xJd#wz3VQV7@%kB;*Z(Ed&qBWTV-9_I@Le=;35B_ak~Axga6 zg7KD38MHRLU1^~EoiY`zi30yD3xPnm|Y(%FJ19w3Etn0!`VOn$8r_H+V*y zJ&H+9XZ@6OY-?iEjX^#+xA!(8TYS~VtlhwijLY|AqO0{ib}%s6Zh=JQ@MeoR(- z#nE&(UP34=^47P0X~;M#&tcQ-{FsQiOfo)a8V`g-hqHekI1rL8Kp*if@w14`sDHYA zH^3WXAcdwh)240krz#5ocOO3?BOfppITQWj_Gk{84r53(k3V!B&|iCwGk$`WfcrCJ zB7}344+jU~#dvO%IR}_IKj0&|J#?~(@MOc_X2*ThL31-?u@0DVt^v;_d@(C9c)i%B z*yh)S_Qt_=+P=3v@11T4M|`NAQMe0eOK6_(O%=v;PVIejM_P@iQ4?6%+~-3AXHsnNE}8aC3;mw6^MKOzdp1QR<+O0L&M*F5t~nJ%`rG(ig>v$begye8CH67`StK-yM{5WALTE z6_7%BS@2;p@Dwr~jNRMx&MmcJblCt7<_`SY;>4K?E^PxA_Mo%Jn3%Rjd$Pv6GiIwE z?Di4+M|B8Wr3ekQYlt2oc*C(%8cf4VibUX$B;7o+ERHC&FPn+G5K2q5RlMxt5ieMA zR|e2B-2=z*DeJM2jdvAKqwxfXY*e-Ry@0rxw&tH~OgbwKXsO%QS<~Zl?bnRl4rs`T z7Rd<)IbjkYp2eR^DB5sD*KFXiKvr9+;uUKcLa|2} zc=AK#LSerXHnXJxp!3p{Z)lSAG&0ieE#X>e@?|{GWb!KM> zZMBM3dC73}a|+ZyWpSV{RgChu7I$pr!#tmcyya1em2RGk-WRbVL#Us?3-&cnb*#-v z!C`h-VFNEHxADGTfjeh;8_o&Kf0f=@59-kj^qpy&xksX#X9$we6;EU%zN6he<0Y|{2 zG=FO6Wo&7He#CSiin9&J4A09nb~YSPDd}+1#WYfidO#aGG%!Oq8d z*3%-tU0r!oFBco>$;;={_05gG|E+Jyub%v-Q}NH_ALQ$&f2V&bO9VjQdfmHlw*}yB z(wzg~?NTR1+)Mezr(fuAe(_-^%=hjuX8`ECGGE_ZD-O13TLAXQqaNnt$tG$C0s0nz z(`0Ce0WLp?L8$o3yp26Nkb*R^j8?e~0$em!x-G)6G|6r#i!he^qiLL+k9vAt&a7aMGzXTIEOi(Q z-~w~>lRN8pz+r`vNlQ5wNGW1MhRhiC2@Rxwu2!40C{5a7kLwbJ+NKKC`#Lt#>#H;yV^Ccle2vuJi*~&80@xs8K&~R|B-S5#OX%e zTlB40QJDIzM6)vJ(RnR}fdSyrpwZ{f_ieWyC&xege{?s+e(%Na z;Z6bc*$NW^4Op26f@iiEI}y0YHs&?Fl_HrE6^^(N!!|2A@$+xB0L^xd?K&I8O{vA?t=q^yFJ5}kh#zr&&9OZ zqBJfCwu46>>iu}aPOsD zTrYp4#_M-#>ikzqNJ-KuIQd=?_kK4uH2yegFR#UwmOL{QsjbKhkf1 z@9R$K_uqS{FP=R&`K?I11>oZ9N>9emeEdS_&^d?EY#hEAz?1S32dxMR84_HY@h*-R;7?|{)j@r%y?rA`Md)V` zdJqyUC;`4Js5TcN5`EQBHv86+KE6ZvTLRYBPLU8M5`ra(560($#8G}HS(yo9ASGco z(peoY;01U_zxiZSiEuN38Drc3=G~k*mMSWWf<16O z7Y{e<9N3c3itcxL-Xc_auOqsG-ba*xSddQJejL=mtbz?L&>kEm7!%)qxID8Q`LLTt zUjf5h@QcBkr05DZXqL}YFsCm@FT(CI4$-EJIS&Vs$RLiLp8=XuC;RFhB`Z3kUa$N2EXcvf)1IB$P@9d$t7BO)lBny+Jw2ppZMP0(N~-?j|w zJeNu~?Dx~4k>C}WeA8HwXPmUpSVgyi(@x)W*J;x>0&IuqE9w63Fy{y%I1r5c036YH zv3I&hCpbNE`Su*qBy*v+);{Ph`eWpbqWQq(6vU|m2_Z)g&G?a5$5SQOr(Z9QdUTuU za(`{thnrsM%j;MACsE-K_We(BkX^7I@rGf7Xpz9e9llPznKua){>0$9RmoCqe`p zBDfP4+ah9YNGOr~gJ8DUg9pU>{>b3LG#G3+I}Qv8)HJ|Du$Uw|!Zm;k4yW1xsg}5@wQhQvP@#;$llN1$9q^eX9eQYW!xrvjs zJIW^P{JYXAYfmQYI$xKp{Aqc9ww&JnJ^;xBvqT{2?XcXIY^#7J9W!TWG=50-P%u7}b)yr)0HGX{?IOpgr!BN_%ieT`U(rDxz z2JK>qqb`-fFKI5ZG17mNLF9d3sw!~|) zQ2#m;b;qR!PsgG-A0seW4?XNM%X&71#BbS>TvR)^2r7+8TOg# z9|}j7r-)2r2hnQ2SoWha{(!F}N6=v#Fu}nRb$g!?QV)4F(>sxDq;h0Uhabczd9Ekj z!X)h}$2chADEh86cO};wIAwZ}oR4vh@j2KCw+DRuU8yfZuu~m+q^7!qK;2l^WlqA0 z*TnWwhF*rT+Hz2$kKuHqz90oIG}CE~PJm+&Z8Dz?hn|S=fz`x5PabhI{ zrcN3+AvjAvS-%WAm4N>c0PN-7G}->%bXptQ_Z<8E{$%_whow)4dA@gfWj}xQB5qXs z>ha_L?nhtz$mA~lQPQ0Q;4M;DFg`z#^~nkF=#xkK)yH22VYV#*_g_8G-#wA()y1V< zx>u`h0ca5bmvVJ-eqHyy{}-pp(9Qyw`>A*qtKqCTY8a}RTef)foLN{BFfziQ_}K!q z)IFyLuOLr$8$z+CDZ|6YRv78dNTNC7Rf{ksCIuygl(fEYo;{XP4XxpHnFgUsLM4RS z=;n&)0w#5(CL$0t3ygw4W$6uOwi}N+JhS5p@J#d@%rF!y0t~o}d^&I?G#>1spDn*@ zpGTwB2PL7a8BXMdH`%i!9fR5Hlm?M#z($|&a{}&t#2Q`dL}lxM@NdhCU3%|ZGg#2s z5>>JqV$hNS4jHiGw^A3;`Q*XYm9S;f(2UkW!wF{p&Pro*u)Metwlh%w*<}2Q!IDff z6|bwhV+O9@Z#VRY?`lJDD3_U!{NBl4)87rm0tc*=gtJH2b!?XB-&W?UtVsE6rDyxx ziQ22QZQccCE6o)vb<#M5L9#sC@Oi~t+DuGmQp@^_sPi>_J=gETck?u|{J!EPq6-G| zin+Nf;lk?SzdPFO)+4^k0bo{WUD-jrLH|4t#Wv~@iSXj6!`u*;++4JsumbL6% zMir2~lSn#+9F7D6F_ixqhocQKk@z~V21BM(1cdNn0GFGnG3H5t!wOE22PfV8_@p`z z_K&O40>9KhmWwC{W0(!zia(~|?zo@RoM!NqX>Xoo?DeKUHiks<*rVS#`IuLeU8ge8 zXx-`u+Ny^^veApgTRU1A)D=d)(_q4xP`y%|QWU~7dEo@$!Qyl=yB zbZ?BG0dROZ>t*Z0@u>2`%RM_4-A~i+o;{iV{OZ2RMgu6ok z-!9!b0Nx@sVfgv!zn&f~AMF-^4<5d6-@JILFRq^3`$w7EZWf#Y@b1MsC*r*)&*$el zojhN={mJm3cGf0_waMXOwYZiKf(^!MHf*z$N_w0N$>o^}8{0f5qn=cz>>H#BOu2{Q z)4h=6WyryKaQp~$4~GSRqKtnJq2*`?~l(kI;{02~`%|3`JJBn50lA6Rx! z2=HOPA|%DxW0JhYAfBKrf{z>%{Z#XQLhwvm1qv?s53tdA8Er*S2w)kwfE|~;?o_{x zGFrn_(T50Sa~g;apdP0u9-8!>oK`yU8MrALc<-Q7mL@zUg9C_>hW1~LVnXxjOxK?2! zB4o$XIm6yzJdX~Q%?ZPEGZDXxF&wHA^>NIrY+P-RW$s^jVdXg+et|>T=nrM7MmO>V zbC$%*q6!YF543w3)T_&9>{ZJvnTZ=9c(L{dDdL zWR19d3TJ_290@-IZ<*JtkX%p;-&X1;qZ+)iEyV3L(Y*4OGsnsBe(Jy}!@$v2Q^AYU zbDMp&)u>O@-w0`@Kc%skQ8eZ4^{b5S8@h&-af;LFdwGY6WL~H_RmLFVk;XUCDhw`u z9;9x0McyRC3!}_rY{kHDa>%48lVh3x%6MQr3AHB!ey$5JNFM+Gg;)EzJuz81eUx|= zLfehT8GkI7R%66-$m;L$9a^Sn3$+8%oQx$a8xA@3^aNc+Xft7I3cvcs)R!wV-MU4k0)qj@(3LsPm|Tw zqu_%Y{hs{L^X36)w*a(508eY7a@_4=FfQL;Y^C=f{`vgu)eDucME>m0{#+h^`KA5p zr=Qr5{`N=n=bwK*we#2R4gq|-baxHlTcpJRHS4zk{7UpM{^5$>`tj?;o$PpIsdFsMEzsBbiSbCXE&Om=SJZ zDDU-R1}Bmn#NB|8aCwW<^SjXp2I2}QczT-b^AN~(EN*EQ9G-0n#h;c(We<_jKTvi6 zqd5+jQ~U?xQT*n9dzok#djnfo{?0?+9iS+?%Q#?G5zYzX^}JU;&M**-EA|!!2!=>_ z@zBnWt7!;Mlco(5ceVlQp$NaGSs+n9&Zagl1rM1B5ze*9c^fBH~vO)+t_Jfj9wW#tgi zb=zaA4ky5Jon@iVGKQ<~w?ABG(OcfhE$>TuV+kMgqdw$MS^o~kNzW4wXlxlOo)cE- zqjXYN6{NgM)voF195P9vlL8|*k2-k%vVy%Dj}6$*p>Kr~ey#*M)2(dJ5oKl3M*jlG zH7~)^mFFq*1vm&A&)rQK#|z_;nAb2)3P__J9p#jG2&xgrr)9j$sDJSrTZc73XuSI% z!N(Sb8msjiJU|Jrpgq8t&au&vf1bn8RpxO#en+Aa=G%hq7Ce!WoQR2JdBO!NDaU!p zDvUW!A!p+Ru%ON^YbEy!-_!Kt`B3Ui1X#wB@yUi+`+8b6Wk+&4yM}pl&H?hD zyrK@B0b%%ER?^&4l1mZcKxKP<{(d(N2gdBQ3cV!FP0X(`M-ua3{vf4I;9IC~7}x3m zm_*X)`n<9oizHU&Hb2vxx1}S`S%MFz&+lXyqePZHwUzG!>2APRndi_27gjWny4yc6 zevNP?gpc+W2KRB!&W_%Mk-qJpJ0*u6+95|8=pS<}9CO5%BCiY`tM!!~&u|j7wssV; zaqxb@35J_LjBtdp5r$vKe5no<)}K84;l$@I_WKifN7HF{g6!3Fe0n_WuO_{|nDycG z&<=7fPoF*!xjG^JHzE)J-@$dfq zztfLC_{ik)a%x_y=dbSRpI%;d0&Nih?GV8B{bjrF;*<`rUhJmnc+yRFHqG;imXBt> zM^Bru32*vfMg~R%{)12)VRoW^72P5nhv#~!N1aK8p4Iut6!Ks(q$C(yH&sgrSg)H_ zx|Rrqxvy}9q5y-weMP9B1B%n*`}KXtJ=7@q2 z$Kce^Fu>(PB(5JMffg&&q|`0vFz7;FsB;FrETL@?hRXGYa^vkyOZ|}#MAa1z5{huh zKuK?7uDr6od@&PQ3pEK^ijX`(zR3lekJBv4CSECqsL$~b3byk378;~CCI#0+xR}bb znKTZXU##F9|LI9luC|h%`OV74MkS?9oI}~^K&T%qm}_~Jw@7awk7*vfuAH8$kI=l? zhc`)^aNLr2vvSS#C}*KDtF%Dn69}YNh4HeQ@YHTih1ODAiS8K$9c?N7QTV8qX|Rnp z5FNunw94(v28`eX0gGh3;<@we8Zymx@G#6!pN-XBUgcEctGmJ9M`*D#6z~dOiNopN z;8obOO;NP$goyp-es_AX9`ka?dBDgkx4cr@`$YTPCW4>Z?OCbs{r5cQ{pP59$L(-i zwm2sy9I|V4N4N~!8GXldHiTio;QC%(RaK&!i)oa@W07q9FfME!TL^kSFEdT~DrAw2 z&wx#evs(tthzwyI!LV*%Hd@)A{w{o5N&D;f&&wc2;346a#tMDHYAwpg+#_5JH878v z5u)P#G{(=Imf|o#CQcdiK|DY6Djw7JdrveL20lFlj(9%w=hJ}MhykMSjC+o15QiUq z=wmW1Mm+EVJQ?8_3qqVYNw=M&REZ%;+rDj6rh zLm1tfY4JD@{)0ha8eyZK1#vL!lgH=6e#(cVMxQ)y z$TXFc?SEpM^9ijd0B&x2)~l=2O6ld*yuaDoX~lmTt#?G;KYiT)=za&VZ2=JZR6hC_ zU-lMo^}228KzHel)13q0Es}?y#GRBay}J7QNv^Nw!=KCa;OeFQ)AcKrCr_lEY)ct@F#PS0}GP`~O0w`Pdf#4$VDAlN#FqV9aU~&a$#cLUy`v>4v=5HIyDN8%C_< z>*In^%W!N~rDo@Kv)sWyor^&S!_9 zGir(fGlEe^TWN*ZQUr!jKb0IdV5&>47Ar^5zeInEszb@@P63g%;)4TrTmTthC0vHH zpz`&!+NAki80-VDL;v#Vm!fP$C~LH5lA>Tl+=*kOudLLOOioJn6vQ-!*<~sO_596C zu~!FKC7v`&Z3#Wc_cxMz#^m6STv_7hL_YC*`^Wiq(|i^g%H%m%YojXLNzXhwgBQGi z6a3g4f+Ud^f_M{uev&0pE-N2KKr-^tJ`Zbk2 zGtqnSKH5q~q45!+*JS{~40uCclTlp%!cY=HIC@0c@m}aKIvtQ5)3iwn<5lVl@<7p_ zHt-KRi|J4Nk)6S~#w{Eo)V2~VG@h$fU@pT6&lz?&4Pg9s9GWC~Sn&cQa+=0UI~!%O zstkECXT7Su#R3HSo^%6;^GHam1`Hdle&}-wujcx&hkcg3&s=Hj%zyX!g@=TN^bLo%O1dolm04Nj~#)&&8^V>iydBa`Mnu~P?aVLqT9 zI8Z1rwuEjoM3a>$!~7(EGhordBVeRUDG%6yTOMD~96K#o=bSC$3Y7weqvt_XNs8LF z@!MpLKREINKbp{xoRVgFvF220*5wR<$wO({;%B=O{ct=aB;XoAd!o~K<-76xCqG#* zLpE0(jJx!Eq&o+|+ov9q()Oi%{Lentb_>9J&;C!k|M^1t?F@i+4Pg7;PPx1|{mFcF zdUw^Y0lb#Q3)ap6*qtUv$T}CwSd|VXptmT(+W?ZzMsg?4OPi@27)olx!_}b#v>d8b z|2z}{H>9x#AN9h>=_WQ-!@)FRKhDbvZ*po*c<-<@Gj2!WM!xn;*-k^gH#MbnI0-P_1n#Wm29T~{n31ViUMA!ZqmEC%` zg70mT<$*&V*a=8;HPaN=qbsMN7W(0=1CLTN4Za+3uoHs6Z1&#@j%xkm=h=%CM7Cj0 zq^hg=QR|QAJRhy#n^&+Z4AiWq{2~zwPf<@RW{p) z?WO238T>LiInWP&7B~a(NH*wHTxQ!?mtDa>#$3Gf{_>xySU(mK=}d zz*OoV@|uiotkOu*3->$FFWXIkJsmC%da=7m6#nw*bNi+IvY!F)_0zx8kKg@xVI-d~ zc9-0xw@P;ofImWN-Y7o@z-PkG<(qFk4dT4Mccs_+3u`<4+wa5ineHx@t1sqx+3a<5 z`tM};o~Fk9w9j)75sE{B+Am)rS7wZ?eCiMsJ+FBR!M~5VaUzrz)UoV{!ip|igB=^;Dxdzk`yr=)z@b!V#oUm znmqpMX^#X*sR~V@dBbgOrPMa&21UqNh0{{8v}(kka{@?&m0tV?15m1m=MgI*CK*?Z zOHw-HKsW0C$WL{$l4F|NJy$+;@Rpoj?8gv&UBlHuCKWCl`50CJ ziaA}|Q`wkY1sW*1wfRu)L=xkjO5Fg4+cK(Sb7JcZjjgxm~z z(OgfA)jW(&p5J`3emA71aZMQLnCKafP=xs>S)(o+04A?GqD@|1Px8@n*geZM%sDtU zh4DnVw0V?^6=f^V5s^)Yk)DAQ#uU#Hv~SL6&GI`W7&gey&gTxB_xDKkgmJIKz~O!I zz+Kl*9JaZJPkVXX74M<^=|HvMdxR4hh`egt2D68dV;;&t1dkV@GJO1(gC%W5m{i&Z zO+^HP(Vli0IK=^MN_aqDdGB}~n^-NUNytu+-k#?1Zhw1C(=6zi^8h~xp>Jtl!pWf< z@p&CFt~%yvViNQ{=6lm~jtg#Zs(mYeF-dYjpfCF=&*_9G$qufNAN))*OY%t6Fx>Y} zm$;b=A^sd)gHLP~I?m)UuyHd1PUw#-6pMkKoGXQHF&`Pvwcp%#B!-V2Vsvvzw8u^n z$Xz%Hc+MqxvCPN$W=??2hl5>R*nBu1wQT{A2g~zz2Egx5Yb4+P_VWALCOT0M@aopiW5bC`Q%Ie_V>Qlb_+ne2CyAqf%MMl@8)d1f}X4Q6kd5q3YT6s=(a3LxDWpY9yZ~I$W>gVkY73SW(B< zgfW;x7ZH`Ln2SgbE7idXkOoGFni3fu&ji?$3}Zaw-!*B;1GvWkWnCsn$(601!M}5R%8e3?$Y&YH zHR}r2fzb2q&%8>!PadB+&}Zy3^yW7Rw+Ft9p&BFUKN%299VJk#h8 zh6*dUaV~*LHhKsz;f#>=%5VJ9c&D~Cw=FbQb)GX$cK#dTf*1#KxWt)7P6CNm18y1P zz1KVjvt|04-WCG$@`;zkTLi};1pXBI$h3#_FBT} z{HRA69}W{7m>s7ymRML*f&;KC;SghhKC2MfS~l!a5#|tn$GHSn#z+PYhJI<1967uN z$sIcfvtLL*1E4Q-ss}%d-RN{B_m&^erEiyR2Ge^VF5Z;~FW=Fh{e#HWt5<0xx+CB& zy;Zt%0K8p_neph8NBVF6yMJ@~{m+*NUx_@tx*zW^t}gX~ySEO<3*Fs+V7kAUAp;iue1!b*zWs46ouu&dxGqp-{k}a8<;{yI$z%%Uf^vq6HNp@@Rt5qK zC>9PO-)%T7sF+n{jhSPFh7sOccJ+hqd@DR68Ipj5GCZ+RpHth*cU__s90}29a;{{f z*M>1FLsl>Ku^?rJj(%7gYl&=@6a{rWq`KpU2s^HfU$bzB!$?Qp;(;*9n+!*Rj(K8v zoLPQ_62~h%z_s^%Yy}~>lYt{y0P}VLMkmpDQl=c&?Hquc|MX9?N=9v%+@6f#$j{E% zaz=SH{m^y2uWk7EO_&Jfnb~&MNHmF{M213{X)qPmb<=C&+yc`!x@h@%@QibHX=&yR zez%H)2GXDwBE#c}6hy1_mo|egD{YFTJyl%CYf!a`E9Qq>N9_(C7N=Fv^GtQY2^jNJ zB?|zNakZQ*?{-SfQvRUzxzredusp9fBmk#y1JUa`1A{X^wUR``0vsmnC=_^ZF{|I3H^Yx%mrx_tSn6Z`Y#-a4iI#fi`lCn{e(?M@XI{AKb7!b;Xm4Ae?;YvIRwBC*;S-wJ%(VlJY1SOj@zf4L3 z3w`egnA!}(xQC>VkgnJ!5N$0?EBLtzMIKmYbj;*;%dG=O%BQhcmG*$O@b>QT;E=q@ zaj9c`S4y@Pd z#q~Hxj<6WQYl$}1P`G=Q0iRMo;)qHTrY=}!f@7d06gt!iWjBmiQdCs=8Q~)JjRYW+ zgjl(tF~oZr^Gpc5Q73h$u0kcHczkc$0B-)LuVrN$R-r4ho?AZkR?i(@Xo|2qbjLIe zRaQn}yiBFf0J4$nTvlD@*?vn8xs!V4xvV?7g2Ubf@(j&wP7%!AiSow_(BisBwpHI2 zV2N&TflDOwMpklT{41VxT_2O^3JzJnWcnA&G&>l+41RQ`9>@}&v)}=I9?GQDR;i3v zoKXKz&h7KSp>jZbRUgquTKP5_s~9fL ztJD}Dq4t?xs?!YzFh(SSEN#xEJSsr{l5>J&0O+TmJ>a-T7(4Q@(FK?~ey2g}>Ev{8 zcjxeK&Wnw)wy|X(CNIN$;R288E9r{p>IWt>}vn`I^Og_Xe>jujj4V~&GLtAe)z*5%2&Vm z%HEUx?#Xwa_2=LEmdNj(U#q-OySTj23)$Pt7uRxcdS<)*d;JW6wk2TR?H1m}UVBwH zyeGlxEsW^S7OF?NdM0I25-^#U+$2n4rV;a5_=N@!U{(Z>|5bpq=Gf+!Pi3}Vt?u2v+>O=TIbX=K;>-J)A zydsZ}AInA^Z5ZK-l^sLFWXP-6W31?jZ-?OfokfHV&^W80I}Y%k=|{3K_rCR2_L=k0 zU{wPLawj4jx!U|N`T@JMj_qahJmV<6@V_Zse0^HXK(_38}C?|WWcE}Ru!9| z&5=EnKv5#qL6`B_$5r!WDn{M$pPtJ6^p#xxAO2MI^7Skkx@Evo;Tt&#t_+qiSRlYq zrm61K;mt<2Q=#(;)AqZKN|;6iM#3YF)$$Ykp*HE~AymFqyQZb!*6MyBA9+><2fT@B z=<#Nqqsp;*D@Eb5QD+)=(7xZ2a<&0ogJgwPYZ3l!8{g5XMAwBV^&B2WlJQb;TOBaU z)T}v5sw?coWJ3l}gA0SA3Po1?tG&(T+`3@|rXJ|PcT$d#nzLc{_aTpH++tOhcwq`~ zHA#o;PP$_2QP)fl!MD&h=R?SRa@>l`k$K<-#w-}dR0dm#Nn;Ln_#K#@T{8)gT#0d- znKo?DJ?J^|&7)l{NC;*)4S1p<6=HIdbPDCZ$$$lQPd3T{e>8<+JbCU^=RkVyKe|yk z=eb5vlF_I3n&q7?Gn*8TQAd}b({PHwvCsM-U|fV!YbNkwP3% z_l*sFaaeqfY!qsHbaD+(7~w+jNWqy5Tn7%#&+QONvI70Fvwg(L=8L?&jgEk2O zz9vrxk?0Qm<+K>J*Y;Bvsd-ug& z{rc_DEgHYKN9)s|NoVJ{d744;N1rg?N8)G`R#98 z1i+=WEdcEdfL3UKZ+F~XJk;Z~vuQfo;pWB<13X9y*=Y%@_0G?FqegcKtF9CRB`+YK zX3upjAw1%|!rOrIWH#n{`HR~EgkXd)pl7K~d<`Zs1a+JTAPzS?*Ji1(v8Oi)t9i5! z#UmP{Pk4aM_nx~#2ZxH}=EfNbo;Ui{{sEk`M_53pdH<{kbkhPie!AkM$>`Og^DDvU zIEmGCX14u<8WbyG@cy1X%0^@6{Z&>N$f3dBYB(j7nLYrXarmUjN^xg!`CY7%X@C{Q z_(xKXJ-cFy4AD8y9kF7Q=unt4f@P)9k(I4nJ_F#bpnE2(6hgcb7=1QeKf9LepZ=md z12z?$s19xh3q8<^Q^O>abA=M7L|l^z`sePMoCo5qQehNl(jW<^dm-9kj~SeQT2{@t zp8komQY`*@(V1vYE1W)IO>zc112K0k8N?Z}l@wN~@QK0iZW-jkH3sfn2V22ef2xww zDd%CU-OdH8OuhDFw-%wtLaiTmJ3y+)|GETFe$TvDfWE{Z+ zJOti!J zKgO#^LloML{xM$3F=0g8aTbCtpUDoOd2K=rS0y>n{pRDg1)!}xw}a1*hofE3FMG`| zu3t?z$D3ZDZ2_=nzw5w!^Wv$#``st{pXI;ES08^IRLj?|-=#k+-8lf>E_GtXbrc`{ zi;wjG_TPTkiSosNdS=faF5xRrEruHwjRP z@&=w|QDPUKy1=eJ9#%u=hj!{WDrh`*NF6_e8RE(&oV%dOzy{c~-xUlSV}Wsr!(!;P zVQ)vhpVa8`>_{|2!ZGAwS1P8!0~<}S72{ewKBNi#LWD#JeUYrdxwHuyu@I`t#ysvp zW@nCB(g~n2#@Q1LFTS(z?C?y{R(conjg$r>XP6Xu14S2eQI+-pMkZlrg3w3g1I@iU z%FX}uYdQR&Be7hwcMb*0p2E%9t=OMSoQazAzsC5UbLd zb8&aGjP{f4qc)PGi}A>FmH3Tt|0Io5D5JjJCTw}oe&R1g_uXL_#FJ^P!c+Me=o9pJ zBxfDU@2GEe?m&J`goEmY=-^FxOl_cJC8KDr&qv?;e>fFt;s2K>cCg#oJG;H@Pk#@O zHup0CZtnF8UOai;^S46)KYZsM`{>J$^oviws7&uJ{ekJu0q{pmKl#Z|i&T z0Jd8IzSVxcC-U%Nn<)Ldi^J|@tNF_X|R$LlOv;6t$Mz@;Uj zkG82VI4vHi>v;A&Fk&6Qp}b5(@(g{adc>zJkkI{b94HAFjGxh1Ra{3#id0zYhGV6_ zo=YgOi6o&O^UbrdV3Pr>B!fW)Tr4n2F;gk|%*VmoJpSf|T>s=B-46=nf;l3c zwl@f)Vj1`a9N(gnw5Iw=KP&07qLU1rjl9ve18V%tKb6X_OC^*o!vQ)Uw~83y(*hPF zhY5#Ek9nfb`|KR-_PV~wn%C0o71xo=V0rDZx+`?{Fl_n19UknJ{$J5sy}eD|M+F4KDY3faZmFx&aT%HT0$OU2?K?N5FAj&l5z(h|nr8@eepgRzR2}MvQSo zzp&37kqUu-$@CwQkwOMFXr}a+ogpEwZQFsuPKb)js81!`PJsSei4?*Z@_84`wAk^) zycf^X7@I_>zR@_LI-Vn59F&(sLheHh2(T=*CciL_NxOsL6ifd;8v@HPN+?=$VE1lXc z0N?+?X@T{Fzdlv;6Zzz)pY*)G@Vc7Ocj?X3ode)4lDc-;LQx()dL)1S-~aXe_doyp zj??#k`;JMw!}7Q7fQu`8_Uu_F>~~LItR4YyxYzT|^Q*=QrWOUTzt}Hzx*=}7Hzy`M zm`Y+Fk^0uVi6-U5*A)$;I|>_BV!kRa@K!461Yj_}B5&q<;k^PFkj@lh|2#Pn7G7iC zl#%YI;h4b5$=FBEw*nXpo(WM5vN$Yc>?=?FaUNwC=fENyn8){i2nlnqGmvAn;tXUt z17wFpx>2Dp*A&Vwi_xq`tJcJzmpT{8H+%pjBtl^+LS4yW6AF>V7(^FCc?l^Ss32Cl!DNh{dmV5RK(S~3E=0SShb~)zvLr=$Xi9%#@1=WT8(O3y%Lv!ou(~5=mCU zaV``vhw&S$#yoc3pB>>A?Tci7!!%>`Sq&vZ)$)DLFilixk48I=wmM#>K?f@%n8twL z2RfAAS;3#K;q35;q(}~-_H^NcihckuWkDvTpk2*yruUQ(v7z*?!h!EhcWnHlp45&M z82C9Vr1$J}0-UpDhZy%aw$?cP@U~4D%d-rle)jDw993a508_#baNX;Y0-qE(XZl?5 zv8>xD%`+J^Jki8Z>a$h+aOjI>oV7fB_@`Nps+@c-+f0!?BCG8&%JXv0%>}Ktav0-T zl1{)Y7yG^zs=KS5_4@!%f3Gfwq`!Q5(M!I6T0DJl`Mlo(@c7vW+KhjZA0k`ddc8W+ z=PvzT>COT07Rg#H?dOBl{P_Rz*RW|ULZZgr=1ExTi6|}`dQHF)OP9x)A5KQbvUj4xx1iB-nW|Luu>f)>v6aA* zF=poF{kO5)z&j~KLSq`boXBtlLAk@2v!g=Npe>JFpeYLxrn@5+Uh7aD{m zA)Krtnw8%wGdKFq*|H6=1v_O(gDx4JgpO6`S{0bX*9STLmtV{E|M-tGKfjiswR34> z*j8=XM&3fBfhW;zI;;JWQva4wY#VS@_yCzeX1@rYL_S{FR*h|;!wpx0!MH))F11p4 zHxX^?yp@K|CfnYVuNCq2Cl8pc+pTqaBdM(l7r`8$CtNRoy?QwN#19iKTV2<~ta)^p zU$NoCjk2>$m)ecKC%A&~*yw{%f6=!T9xDmx^;R7&OUN>MMq8Cqektv?znx@0=P+wE z2H5ZlP;I zQ|<%W=eD^FCL;epj8{Zx~iX1VK}Zt^7bMTVj41d zqe_mF;rgf?^IPV>BDC@^lD46weiVEfjj?Uu$SXYF%zClg&&PQ=9OZJ->1vYcVs~TL zmzR2dywP?BKzsN6`qfhSAOBH4c>J+`@c4rc#A)^a&UXDHq&p|sS)vXN}WY?rUxFupM})WIuRh`3ZzV&-6aiavu$ zSIV5nsmR6#GS#n1!54`=!Upx9c6bin>v^0B3t%7T0pJ2%4MZP zh9D5MIqC{Qo*1u$uo_Mflc8tW8KERX2T3gTd*5RuRkHCFhSXA7(wUU-jKTnZB80S8 zzIwy*K)p<&6HBF5Wde;Mzy@9dZbDN$UnLq3ZVpv%7os|ibhKKJmiaexcVyKl&tof% zwc@W1a{d4L>f{Xg6>ST6!(_6J2%|rxwyRQ^oOuqU%9{Vk1`f_8?x&USQI`I=?aY4i zcdZXN54ZsSrM$$G#B5#177n=Xs`zduJ@ae>mUyi)wo};ovOI2^XFO~)C%Fq^Qs#}v z`&b%e5nDHvgOn`W7JwtdYzuFc4Schl(AC2NxP+0I?ms}=?bEkcRr`G$R%fFvV}2$Z z<4SUdSKxI6K7YSl?RRjSJ3${7{3v`XxHWLFurTycEHZwm=%S!!V2HabkWZk{xMWOlmz+jAA7k zSa&(IJ(FZWGM>-!2wne%@?r%RIMHUR(}+&f*yx%Er>1oMeG5eHCtneX@kGMAnRRf< zbB62Nq<@-#fdiiFn&IOp;oi2a5B3Wk#zx)jd;vZ3A*52~3P(M)&;4F@7ngQ3wGp`% zJKRjqZ%&J$FHe@x@m+nVodK}Bu&PfWvt4Y zq^pMv!b6rujE(|;&_{&A!UskuBMke+%c(1d8hwgTPesYW424#5dmB1do>3hPG8~8} zWbmT~<4|dmb4L5%CrMkF>wWiD4>@vy8uhvmZetfaz0~{e@qM$6q~@>;LiRa{T#k<+X{1di{c6jWOfTLT{-rwuyGB8cNM0x!GG2JaR@b z@_1{3X{!x>7p$wmm;f@7>OorJNK5`&7aCh5KQHvFoCUnng%mJFw(&>&S+}YN9i72{ z?F#14xY5m{0K99al6ZUW6#-y{jyWfcE6Ad)zGjGqq6xlJ`-nqh-MAk&zNnu|LMNJI z9;>D%L|9gVx2og=1gT%ifmsF#D{wjnG-Q)%Y1>Ad2wC0{|4L!!)C}?ZP|g7h&wVgn8hv@6YUbASmc_?B@ggtL_aSa6B*JJ5o|g8lX(puOxwk&$eG0B2ZHjlOH* ztI=oX#|Z~A+Ug(Fw}_mxAxEfN!w6!U;X3fAgAOX*d1@e%p^g)rFnl0k%QN%VjnM@h z{1;~^8S$Yq6$cEO`5oQ^e!!OCrm^DrP@P6>D5kzU+`Q$B$5xbRT!^l%g#KF|haRFo z`E`I+>Q-WUGtpe#KVSNa^Ft6i&vPL1V(!o5AU>SSV7Bg?Q8^{PN~l{!WQ0!PTNe5= z8(SJsANa@gzp?i(&6XX>c_8Y(_CAk9W}*rJ!7AjXjMY*%uNlxi5zX!$wTUvTsfM7L z{(xl0KhQ%E!~O#_<6jWWdeT!4NV_8rN>WP%u2d9DsAg3r9)-jsALpF?2=5iK!redj zSUXXu#P9@ga__xXJls7z{1vZ`bE9SP_X72!{IGK*R>rwd>UZsU=pQ(%q60_uDuCI? z=d(?P@SL{imq&kpO?CEvce(gUb@H_CqOMy29)EnZd7Iv$M?ZfcAAI-$w;KT7Usa&D z={uy`0KoT<>Y)_x&)isV0nlgP{O~RxH#B|S?DQvee)GDVP21yPj&@zrTePLg^7S+9x3_%9nKR&5JM6N&) zj^HsTxoL()Z`=NhddOoLU5MoUTwz(9B0`o&2G}ShhG)$2Jx)q77-~e(4)Xdz85zzT zzo(#z(3k`SzO{jh5uj)N)V{&D(@?P)2+hzGi7;w{NuORlR4^vaZPaH7FZNLmT3|!W z(de*p;(8ey6#w29cxUE;z8CCVMnD}5?s*w`hEE}z#)_3&DdT{I{D^}j-orNHGG@OL zGG9l3_|@0Twt#wVV6H5Ye1wnIGk^{c&wlH=bD?j|_}f);>Yc1){!UHHiTWfOeEHo; zyF-n+6NEg`=i^w9uZJe|bCBT+pp5kn4hFxtnY95<>{tsYtd_AT`~vs~=bBeC;X9@w zP{S*Aq636MzMkKP89LA#j!g@c!IX{diK0@2)v#8X8Sor%4*d~?8|b&Dv!Ox;Ueb5% z(aHeKfeJ-lc@AZq;uUy@6TZN!M(5OL$l?Z4qAi{iFeQ93g&-%#EdjO?Lf|)f{@_ee zbTAPlN$sy~qz!XINVL2;qRf{geN`^ho!=EJfBZi>QP<`fhZYiqR+9;B6f=a zX9pK)5$wJGPRA0$6IKU+FhIJ&M2^D@?S%eABJoHE>>Fa|nY`Uc#~bp>Ch->o(l{=0 z42TeAp7is82m{a|oj(QrnK>eYg5QqLfuQb4I zGg@~6`j~8iK0Dbj6t|li9NTsc;PIv~?RRulu9z+^Xm*L{Y_pNw`GM)#at&a;L;dRF zj(qy*r?U&SD__3$P^yomw*c^;bCFZJ^EUlf={5lH5=jpMeD~kITjq#Vd-mwdNBqs* zAI#7HQ~Q0fyXN!jbJ-mp^S&H5ckaxbUe~+K>2O_me|SF4o`0D(g^#89=m`plT%bn) z$c2fH{bgWt7HnPcEV4zqZqS)k_Uge{42KZnfCtcmkgp$IF}dtztJYSg)`J9vL9mJ4 zUJ%YX=y0&Lztl&Tw|_zqHjt>mjDK0vvx`zNQUh)ajN-NrFZmY%EFEgQT|Bm}2NGHk z2J$GziYw0IV-^FXAG+8LP)7K=GC=xRN$fXP`oL^IMX*?b=zrl}1dfE`45u1Jz1|$l z@V%2XCPt;^g&I$oPDBP51cida3_yypEYdA@1t?u?%l^cbyR5+tbf$IO5K@iU^I9Ho zTu4GG&zSMQKD28C_y6_NWm`ZVo0>f|C@YPh1pHf)ocPV@cP5~ucXaxDu4-tLMguJv zZv;Gbx{BD?iN~Tp)(CCPOL6nPaw$i+GX6SF*5nDL>H;|1U3ZeoAy~!vS`c@WpX~S;9D!8E_=Pi(>!h0Ica*&=&$_FsXyV z!0TpT2-(3lIU0oR8jeKcL17YuAXCbZ!GQW8%=A*Evwp|1qIt9}6g#VZer#98V+`@H+Ae>(1$ZP9g?bln1Qd3G-K3bikOLv(Kr0?<#YZ}lbro4@=w$A3ZpqDz8$ z24Ljn+w|SiZ2;hVN+0~`2aOZoeg~g^K{w~ugXpX7|E6qtdpXH;od2rhzpty5COmSU z++d-2Enj;;v@9W{pkVF5KNSu=*%C0#j{>I}$J<3vEmeVFB&ZusTJ;myDGK_fwO&2@ z9zxC6g=V|P2&lkK@*gnKX2m*XqE(gnELY)RSc?7cvMzy%q(PQ~R(Nl3OVO$M^* zf#tRVt-}SRR9ub=y{x^dA3`=Qc}+)K@Id^a8UorOy!K4|y1E|RY3^|sf!zDKb=d@+ zx&efX1Vh7?-w!Y>@0Y-a08M2n41~s&f*Szl@1Cm;N0-B<2p!%g%1)U=&;L6L>L*PPa*wdG1 zxwRjZzs>2E=zKV#DbCEonAAG#kY1n{uB;HIaGQ*gr~l4@7ki(m@hrRjoJix_G#s z*W_a&UCX3fQ&7&?%}m{C-C*C7^Ni95g9{jtvcQ+}B>)h3768QnS&%~WjifUKuJlTU{dX{uwiZ4(d*vI>JkS|@C2S^BDgOkm3P`VcIl z4zu=y-o`M2oDzVS5XSxkd6x)QG_doza13x!EK`n0slLu}d*sb_!#6iK?fL$AWP0V5 z_WhgBo=w;L8-AnyxO~tU>-DEU=J)^Q`_tdh-}F}JP_eA8J-bc6Wx5Rjd=E(v0j%lE zhi}QN&*~w7KccH=cjWT?q79+CQ1{jC4`hEha9sninKnYZ#py58Jo?XO8L(TTWAUmp z0_WZLQ(Iz+&ry-sgLD#lAFRDG&<~!6V{r<1k?Jc(7>L4tMldj#yy-ZLpjlyM0?JVh zrrI7#a=0b7O`*yx6C}tk#${SaPq;eHoL8t)9sICA3uG(lo_BPxnP@n*n394ZpbZLr z0N<|U5~oGDoxtcSAan@`6g$fw35`*1%&&A1I_cD+QQ6^ReLffuP(B+$*2(${;Luk= zF>)l5(g7=#)MkPwj3?8hOxb~4M}kK9(a6pH*q<}L=e4{i3bqefMXjdeXHRMOcaPfV zuu?cMGDVt%JTe-7;WIE->N`r6y?_WO%fNesL;Q273ILULxNHHXB%%zU$qQgz0Z~r9 zSSk10H1*pge!*`^Ujj%x=I7IJNos@F%4d|7e@I4t2AOJkQIIDQwd9dlroYTv;Y>I7 z-_aN+cTB8ZjlFBnbVU2o4lHD#BjBrgh7k7^US9(@@E$`S=oq3zk5oR>RpC(Bk+D!-*k1coUi((t z%X&+zw;&V6v8?S-;t#_9UE!NLxl|{nbV~=8G4in6p@GMNRtO^j{qS#scNj3SU;^OI zNnTj6Xa0INPk3%Nyg$x0?j6kP6P@k$a=zQOit8$XAH6yIPQN$*xPDmZW1`3RK9RTo z>}}E2*46pfRoJ)bcT2YcfbS{QeJMZt+0W?a;_nuk{)p)6$t!ZPyTebu`G)Sz|6P@5 zW!VC7NyjoryXq-`%+pjhJRL8jUW!R;?2H4p{p8WvwGU23*c_T=1px^6{%(<7+BCaS zVwKQ};9YV{j~3>@D}f~$0+6boK==qp!O4^~dsYTPGXXddbg+jINI`*W2OpZDq3tEQ zcG@T`VYX`mM_L7AIwVE(nmy4V42OPUbb^OJj_5(KlR?l+P&z_GjR{J zSalK+3jC#Ytvo|TYSlZ=d9S~X+Qf>;2BGN=uLfpp+vWAKZ40>h_y0)Jt_`I1!eOS3 zXjSe|8h2~2v!SzAe)ZY6R=V=e7%5i6(4WDv5EuukALRr{vI5TRivPMQ;D*ytDnO1`+v{JYAYnNZN4({;tBn=@K8rj-!IK#~B_fFmflF!-I8HYVBe#FaakKf{3hM8GGw>SLmHA!qUc z>a%tv$Vl(wR2JzQ_?u{uQ4`QA;OwLW&C*8o2L9tIYhq9a1%jZwaXp=5$w94r6tlCdP4q(#f?wHeJz~O9yuHw{_`GH<&Fi1C+mMa2@!pyxkg$5fc z0Tkx5L124XyAdGZ6bCdXvc5O`$^sjAXdGv_V>`ouG&CMdidF?brR@Nqtfhcb$0dIC zpJP;sE71_h26X?EfRi}hg3pLn z4K90*y$rwwy5qQ)Q~`T`QtFqK4MAG%2J!laJ`R;3?D#qi{L@`MJeTqP2{?HrJE^gp z3!kFy9U zK6Kpmo&ITCn?&n1=LKieZM6eO9;%<)9xMn;*8xXsS7JHLWAzJ)@1?G^Rl!(w0-n~% zju!ACA8UDQqr#V0Mrxl0y9{_oNf^cld3^+J3Z=2%zi0k#V*}it3GwLp@&TU(V8+Jt zSsu1!secbPQ~$G5^&Nz8_?|AQuMduW{1=#E)7u}ACvYW5r}=V*6)mx@a9Pjov|K8@P?hUrj_pVUJDr)iS2GGlsvR^cmk3&7#*tolE^JIsNA z?M;W|Yr6B~j=XwtM}FC>dz;=pe)Q2t?dtXBcipC!O1A-k?l+1vr+vGyZ9)xQ@l7^aQT> zX;%ccd}$C{W}=gkS#-2j2lv6;>V)fy7Wu>Aj1w&mF1s@55q;_H%V6kuSq8$S% zWt%UOEAo*Dt=dioSZ{|{UWMPi?&#CSeh~)T0beX{u<7#wHd%*5;l#e+Tt_C#DI#%V zg{7jlEudZ-_^U5tad|;iNCO-sm>+2&0JGpBhag|D@k}2XP>Da*;LLn%&)KSo=hbHh zzk#BG2`cXh;S%2%ct%_;IXvNO)W z*Y`GA0Ocp3leS|M4cbSt&OW!oHVcQPe;2JCSAhn z5)AmQ$u%L^(=Idwij>z-J`NQC4oLs@T@UIjzK1`{a2w+^+NjDO%Gbd@SgEWz|5G-FZ%RGzd}iF;o@A>2&_<5? zz0@1h&bM3H_3P3v&wjsE_~>$uc7425{pD+4PW9Hc>in;6iM~zWDcuGDUOqJ@t#?y? z^cNp-T>)_a$s7FYoqx87?0Zt~)2pOReKs@r_IPODH}fDkn?I*=BWEl+XTxDINYxyF5D3}*;nh5bkSDQ<+=A$({cbN~k3&}Yk4V6;8zCF<@WF%3>0 z+dmFhun9%_Z3JGxZYSt)OK~A&wj&DY&{)J-GdN8p%!tLXEo@7#1}uLPG{k< z&9ROSK*5%Q;-Oqp$drwVfiR%=8=#TbtPET)XhV$0c2Ds33ze}|k!YDg9q5x7m<=kg zkCZ#}Rg>Bm_1eI%X!jrHK)~luBd@GAL$OKyGMu-=iPZ2~hB4@TvCzBov_w!NOhE5o zxN*!Z`mD>xp{^4^VzC$X8NzAbd1O;Wahf$ z@`vJqw?}B;A+M&>dN2SW2_Bd^rjvRBaMP;wrk$+!knS0d@SVqgC8AYvGp%GW9C|yt z;w9_ROUWTTME)IP-$g5KuBX0`*o<=1I=#=WM29I|T4zD>gk=uK}!|cj;be z_U`2??fF};z1Fr_*X`DL?%Hko-P3IV;3ZSPheF={cki}4D(fu(znsHW&+dNRnD)A! z0YJ+NfThGW9X4C3%U+K2Ahous>9|bn zIwj0lPz6n=F{$(Fj_A+M>_n&=d}O%rzE?hm(PX?5d|d0QD{Gf zoW~(cHW=csl^6Vi_aPW2G%O8A5II%K2wY&$6K&Cp4XeAieT?Hx z2HFOPo7eMvYsxYpfRx9VcspzPm_{Q(j(6P!H-0l^fVs=&;#7dZKj)PRM4< z8$I=UxDw@^;@xCD=#68EIGVhYk=B^c@agS`V1&e3Ppw1w3747cXFFuDo2xj6_ z4@x(?_dUsv?5q$uEy+Rh;JY}F+RYIZ`@;H|ygocp-SDTxGb=C(e9^-dEkHodL#Qjl zVZ*%wo9&0?+sJgO3*#9QIPQBUodK5q{n#DKA|9mIn<11glwd~t$&?92T5h2ITn}zB z(Q&A>FdG2+!L}aAxV#_8?0E7(CU2V~&Cs?szOV2VA1hkc4u#e+#C?gs!aSwmoOqv0 zFaM&xQ+lecrrTZ6u284EZ!vCtM;>$?#<~SICUIZFfNam zyf24Y&lcWp7b)JHSv)AGrA6p2`}524nUzb=*5K0bP5+ATV{9)$XywDe`oInL3PC$n z=oS}(YJ&_@K>3eby8U6oK_(SC`oUiy~9(5gQ4lO{=)8f z3n*dxUY0y$I;=acfM&keUIy!UMf)&CptTM?NCll#)tNnz6AS^=WVkofXaW7gpol7z z1(3j`!>8z?6w|O?aeNHR#i=yF?vOX&1q zUhR)ePYiysj6BmEA*2zsq4gTSK~W~388-gxzty=4bl_O8){$A5pj}zXSBS!rx3z7J z4CQTKxh#&eWW2=lnk)fYa)M3y|0opnZH5E4rgr-2P!|o_m;(xWCAW!uA}5{~Xw&GK zWH7Fr!G6%X3dNNf=%6c&HcZ3S$P=Fyt%?`g(HcLS;9(73wP4!h+XT$cl^B>rJb|{x z*XqP$|KheH<*>l3`&azdH$*p|-j~PsenNlszyH-#&j4t7ndSBnz?Vz6 zD*#?TH8!7_lKUp zlyg=P7{r!+G7Zk?O7;QHP=s4uKD?7mQayq+MR~3>z*>Il*JkO;seVc}AH`RzvEp3D zzS4uPDA9wU-ArzsnVljWrt@qifcSW`;CTUD*yTB6eH{B3_j}t+E+u|u?;q3;B(xT6 zTII2pN_?K-k@OC?J_zL3S!c~(d1y05y8!zhS46Dc6TjxDBCUxcJ?pyyvc!ji+oan7z{{t`&@)rEEdcuP>DT`tckaH@e&2ufRl3=K!StKw zbmz_;s ztbZk%XVTyIC28sibK0X64sZq`Z_9{!#^8ttuwc-(m1$zKw=L~gi8AToCG1tGEV2lE zudPTgOEefT;2_%}efn-%@U?hI#}ijbS^-;T2K601nk$?5j;0kwtM9Fz6~)Ra@3i!b z8mT5%`^meE%G=;&ueUGvveRrU-74J2LeWS8O}n`V$_Y2%4Q=hzyQG8p_viCF>&l``;<{4+nERq zeM&>ql)w!24hElpsapZ+wShalHV}Dm$a@MowETi_DXPN zKuvbd8%O=3&cxJtxV2wK=QfY^RyU={$ciAOa{aN2t3nM@uw4GFprPbEdYrwc)%c2f%0H#AxWQFG zS`@EX)L`Rg8s#F6*`q}Kr#xN(FN8Y;S=gT)#kO{so+4g+hq91{kF*3$tB_KgQrp2m z2Ep@YXD`|Pien^)#YKs^MoJ-@tLF3)}>SNkjLshfZNyXoyedt2HH zfcIyv%VXj;edlz$1>ofq_X8<}9+15KfcTRy4&}ig{2pC>{d}S=^X}?eE-o*aUhNY3 zdj31Rp-TRG3&1=u_;{#W0D5;|G#VATCIK670v!UMUK|ckGo@1}L&15dcYPokpiGh5OP z6ebYD)&{#`!zEoEf8APQZAfg6yRtAETb~GdzjvEW4`=F2?v^F=nHIdlU(%cOc9fSE zR#`G4*+LT3@Zt(i+cTc#0Edw7od>H0nVrQ+$IuLG8ONigk{-AorElGX2;(8r3qFnR zSdR}VaG#z=J5N@J%FgfA)TPMhzujM?I&+_vK1Z!SSvMo|M@LG5=JfMhthKJW_acai0 zzG7T?q4ZzLnCrCf46D-NERf!3zQs%^Y@^7|nx?c8OL@lqaCkpBSK>U#4D7}cZj@iR zj6ZM5)3M6%z-IjtA5VBj3bbMOX)}d=xJYAsZbFs4?{thR%;tb3VIx43YA+nh`dHDr z*RC}SwBa5wp~O2J`3l&t_4SdUe+b5Q8p9K`qj2GhF9!N#KGt@yZKWXw?@`yPy<-lz zL^%_J9z;P_XWA&8v+O7MeMr2ib%g%zc}t>Yw(A7=f@Bl}feu}t3|mAA_*vF*tf{uE z&S}SmLpJtya5X>yID;O*_XPacGv%#1);>ADM*GC~r|2INv@`MWxCNE+1b}`9-iQ9G z6EM{&mg0>Ufh!OtK36&%k)QfMxS}D0t#}=v?g2=m;jD_hIsj!!tGk}-&!JGWc@L0Z z>C#srRI6gz6fWg#21TS^1K6^jU6lR&eA*SNX8^Dq_?!LpbV=Let6zO1n>SzMzkm8) zzEXa4_WJKcTujOz-3ub%RB z{`;59D4BS=qAS|o-AZ-;H{0Xv*Ih{60#Ku1^K7yNC3FO7q5~ZV96JADW`un^8WZUf z#CW1U2m7G5)pQZ8{IcMnMU=VA>%}p%YXRX@RXz1y;%a2 zqrr0X041eNga)I+!YY6i<|Hy~0fvB|snOVAB37N?@nIDSXQX4*`B9 zN-2c=YqOZ@qz%%By&p_bhgVQPQ7{NgKJboOP|FNG+lNO1hDdKR14%S;?Fgj$J3eTz zDIXWK8rb3FURW8g#B7c{AdP$Zh-g&mD>PDIf^(FM`S^`YDB+{t60rN(uju&eue=;u zNWe2@L=6l{@podGF=@U8bf67n)q$(<<*r+$LE`IhjZ|)cXkc~hFIs~sl>sshV?Kbz zk(ZRD2n!a@!%t4Vpvb3c(1-WXhejWyi^M*_CS(PMjHgA+DB>Gv!Pjo}9P4F7+{o0|N>$ z^oN$KKkRP%71Tn&rPqP03)EgfIc*NK!bi?u%0HChPjU~&>e3#Llf;;z4uI8`*^~ES zrlZoG5bxeTZbwiXOlQQkech5{XB5ylrcD=;w?8Gg>&lEXpyj52*ZygACv)_SZ#93X zL$#+`6KNvH zjN~vX%}m^OyvotPYk7sO)ls6{Qh5?+Boq$st~`KSpAc3J9@M~|^30*H2GyY8Dcb|> z2Z4HFOxTr!EvvL`s?5vEtZ8ne#Rm3E5TJgo=b+Wk>+5Se+ih*o?AjK9uj$TPciOYp z?*2e-KKm!-XFsFc^gX8A0KiKmJAtxCqh9;zYfa32Gc)TqS66)X?795#-Ve)ezvG+j zne28unf-q{91pzNY~)b3-1fp8_ES3qkZM4>JhKKiNg;HB%0UT=`y1WSSDCQDNXs@k zy!xcT^8dcVD4+Ikv)mK+gM2}0>mbL&lDg1fH24rsZ6ho2nhJrkfI4ImAfxd|W(+MW z5L}1pjB{(k_R5nhWrpS6K^f|MB6JM!P(i`SYhMD&Y8=^i1omZ6g@V0a~GSVmopQJ_*%~Knz(=zmOBJ@Xwx!qwzw}QemtkG?0ZB zjl8thKWP50pbO82BAovmto1UZihgJDFn}m0v!sC?5}&L5fqw=r_oRc-A^}>xwQHr~X?V(YzAE@Fe>) zGITr5LDhE1>8@kNh9O5G5dvGi{Y~Zvtq1V7aW}<4qqQS$&xLvjc$LC13TMxWLA#lbN?H`H(DGM+Z8uV1-o5}kHS6k#Dai$U21*Mdy z)yFB58`6ie1OhJSzvr8q>3Pk2u^88vXTRU_J-U1_{qp0F>5u=I=)u2wAoa?1iY?xz z-!a_=0A3>TvWA@M7Jzr(c~{>2=*`BAf7ssssOS2U&aba!|J9f6-Qjp_pY`ns1p-IKqk?7PVZ8fq$luGOKGgwjd-J=X@T>8} z$2=VW9fAaAz0qJ)G;lXOD0C?aw!VbCrLLUyTmtFBPTe>b3IffRCb0{_MZQWT3T1gE zZg85=O%ieH^-nABCy<|pigf*5cYkwg)I{m57eZY<;Ew{=j%by`1uad zo`A#-kzF49DDUqo)OQmI7+JkYb>z#6kzraN;G&eeL1e)K<#U31I=|Ul!9@{5NFq_tiTFa_^8jNR3eaT~;8Z5}~&GF#~e@)xo zcHYyC!3!Hp0HgII5E+8pCRY|Eu)J62Lt#-xQ}eXt$kTd%n?4tCR5}vImW9Ghx|M}b ztVi=xZ(HHk<@Jio5!$TqZ71jtpo8*Tp4Dw_Cnic=o5nc5_!kUq`uJi7+}y0wr?KV z5Tp%JJmY|(6CQMlkgePZK?rvKD1dXrm!hmVO5`zxzF1}9qY`2kD=Fi<>Zvb39y5hT+Pg^ZF7Z=mR|MMZg`Ocf2 zT{w@T+w>jNZ2;hVNcCRI_vwB5oB6+*en}tGt9S0n)y)-O@9yxEZ)WD+F85k)H+$J0 z&)O{j^>^I@Fu$#DXgZ(lhH^8uH%TcqIof&NBJtvf;r0lu=!`3YuEv4f+X+|LY0$u; z?S0vE+6!c}-0dL2{w&xNVzBZC9U1A(!)*g$sby_j`oVhAaF;&I-yA*RbTw?xBjgIE z=yG-eS}c2&xC<>mRUV!N}Lq*YWRtv57?YrK_PEO zh%V`?v(M9#NBY(SrE9~*`D1bF$@-g$+A~Sf^xw8M1Ny^fXuRLrV%%D~&DN!`w8jimIU+HA}7?#U5I8AB$^ZG^lSYd0Ye=pb<+PQ`TF)DqM zKtDIS0^0tm?I*fKgPJ1FIJmGM1oKifw%SKuVn@_%+}@641-t?)LA|G5DoBr?w?hK= z|LyY@6d3aGT4_lSIT{*RUI0H?fsa?}6B$qmw8Gz~lJ)BfQ2BZL$t!h2V;svbvU8>S zRP4olLN35p_{7eySmVdll!&A>Pt|AOUf9MO4wzv4pzI3ui1?D|FngG0*O6Zu&4q?N z--Z*w&k3HIa796uO9(eEjb^>H7ziEJ z9flYTCZvl1U2J*W2RvNtnc(tU3Acy z5?wo;CZGeS&j1IsSF+CI)PLd!1?r5s>LKnh*wSg~K@$Pe%SiVID^WlQX`yhSBWnlW zK|MOVzCm6i3M&_CKWy3gOZiWOQ#b)(!3**HA~YPLi}hG!uEUPDsXBz4Ua?IM^yTKZ znuJD~(SMtK$PT7D+&HUkGh~ehrvK8N#s}L z<@&S6{PY08+2z^Q#m`jQ2A9Lem;av~FZgD2EthA{<<8l%1>p7n<-R=r{moA3&Lz>g zlnc6`&0#b9rZ=sEx&@%@3fn<=stdwWKoCOu*@a_!qs|=)v@X0+&gW%m>S!)|^d+sV zUW7*oqJ!{YHN@5F>Tnpef^xz%x&6$0{C%1I;`}oj0;&Wo2OI2*bGZZx3^f$=fV1Gt zKnF=q7z~Wh8NRDythzyQM#VwYS5dGzpeiKuDfFF)6e7IZ-N&N|(f}bRm^#dK!i%z? z1J2YaT|L#bc}}#z`~-t8>2FTMf3*^0p+txPX2Kue5s&bscFX5a zY5&oq_8If$-T~Oe^Ms7S!Il-c#0{vi0l?|R^U*q4$)gOOUjpv=`{@P;J`s3z5*(zl z#OLlu@p`j;;K*8VX{`-8@s3}V&oc}oG4t9f9F?cnGDcBH!O;`fg<*__vb-`I*Yo#a zVtWymtpW_J?Ik>r?}kISV7zJpG{l1g<2rg+LauPwGG206F)&(FTY?Kq?lr<}&LQ*+ z${7o4r13q$#_Hze5DHAEAJWr1o`Rz&P!CK>Xx6|q_FI$^|#s{(+c0?jCkw&EV9@e4Hn1jlMlENtlRecBSAIpcJ=d1ej#RnJMx@ z(0%OiX?{T(N&t1~FUY5SspDDkR{qeLb(A^!Jp>7fg6=4Zcl9-QIpzmwK|exyqb(2v zSJ2>%BiP5dQlP#+2=EcZ7^6fliO);oOQHd`I>}i-H^-x#pVeWo+=e!{F`eC8f&lx? zjohdE^S9U9t4}}ulpg=*C;Y|Jr~L5ALmwgW1j5_&JEYqHz)PlXe6@f6#r)sR#oq;* z-ke{_H`^!Eg)VEks>}Zme5C#HSn45weLze_>Lmbn`g?uY2a?M%b#Os=Y3hS|u?@rr zrAScL%fH?LqcF1NWfR#_c696*PJvg)Z<;*7KwX}rL=A#a;bO>ZgmmFT{hnrsB(~s$ z_#uWZ8!W-M>k;h?0L52=v8C7Pq5UR6!bLIkMhn@N1BJl~OgaND<^;Eu3!qs1K$Ha@ zl*`^{L}9zaTEf%S^@>K(Hub!QmEvgzf>9ZDoWe|1S7f&I-}-|>-{^1agWk8bob;uJ zf-nsD^ymFE216(sf}CJb{;@3V{l*FIuq4i#1Oi2v0Ib1i%f(WV#-7QEeE3W#0}^nw z63|ADr_c%A$69WUeu@`5KcOHJX}x~BnI+dRenY$e@GFw59VG!pqeYdO-hlMy*-$nd zKyFx_lKi`R^Xr*5E+APwmx2(Wd?XIsg~uYOw4Qk=iTa`YGBB;J++puE$ZlnL0e z%hEj4jXa9<2`iY^{ z;w)e&N3?nvUwUMDl~HvjQ}NWk%=qKh1jQZ4uHrs%Y$sc{SQf;O1&WlPaK)nqk%$I| zsHQ`qptHK|WCtD!5FiKOl@`j^I%^&1*2^9HK;dbmPfjS~3-TFJI9sCIZWcVt@L@kT z`c94$Ub&0`_9J}9@zw%h=(!W{6UCs4&SXAUOYn)0q{a<&As)U#VvRyz|aG3n9`_xlP|a-39<&GId9lKlsxR_~#FQ&W}HN zLtejszp>`klc#e1*)qfbbpG$|-Me&Wp8cou%W^(lPD}LbjLt+#-3m}@FaQRS$#Eff ztm~Ldd!*GdUE~=I{IGQ(Dhk$!=0tW*qCPjem?i$-wvAltvF0L535jP}*i=z=ydb1)zfP>IG=dL0@!g$ZRR9$vpV zfsug5$l7n4JyDs#(7q6z2uL-)zd6wUKRu+wFFvoE_M#DZN;6}7x$i^ez)VI@=OKei zAKSG~nhkNH*p8&%nAeyL;mLIf#l0_(f#YCjKG8PPBRosvaLvZivoLr$HJ=jNdb+kG z6u&hw6hH?y(}xk(2)gmVjRXG~onI(pWtn2&3dVr$YgV4XzyJZ6&!8oOI^jG{o0mePyQa0=C^GMy=`^8 z1?%kX4Dv|QcoYhO2yu{?-^FbSZFhpd%-3Ova2&HJ=Z_L>JnNsMgnjpIJL!ge(n@hE zLSa>7@iH#g;S&$UMu3?J&$P1slO$IJ{<@3_V_CNiNN%_HiO#Ys>}rFmOtPi?6oVRQ zx7jTV9S|KCneN(#(%5dbqR8LK2Ns}WIKM&h1HuWE-vHmP!N5LYKW#RA*0wzpou8l6 zakG)j%S+;;lzIr@{)-#Ac>PSidj7O=%e{-f4dCe)O9g-3CCCZ;RTfjj&xZz+YYXFsA<{!+P@??j2W#SEu`|R&7a4PZpD_(;S@_*a+0cKvw z!~RZW{OoX-&z{omvuCvZgCEf54}KUcVfbP+VG4U@vEe+vXdI`Q-3MuELssYkLo2is zz_0;NaU4ndJtmcxg0Kwzl-g&?UueL2fYl|FX$7$$L9Q&#%P@^rc?&9vUI%|aq03PqVv048itf4idh@|zWY*!D4x z+eK_e0z+FXN&5<&K)W)Lz=`j$7U1v3Z+H#?v@hwI>Sl!*16w#|>^H~$6{r&fuE=W> zrC>mZujJ|R#6xCm5rsnn)tNtbn)Ld)(^|Bj!iof_OX)x5XVA9NC_BQs{f~iOXhXGU zL_^@x`l){gev_ED`oRaN6WgBv2JH`(i8-P1qwsDht|XXjX3C#6=N=|y@);bZxa`F7 z%N*s0(M1v+$Y@vX#i=ZZp7XRR=T+PsjU+=ExU;y)eGk4_OIWVxlWI8*RFUoJ| z$Cp2l$9KQvFFyTL{?`xxSD`ma{go9$+@|l6ZdU-jd}4Z^ruW}}pZ@YM|MJ+*0J!_{ z^wwJs+RM5EV0U&c`@RL>&Ye57)dMefJKFE}w7Hn%P?y8Zp2(cBR_Pj^HB?biFZY;jEZ3h^t zAjAV|q|an`p@}-6)eFj$5y$q)KugyOE%<{`eKoYTPvG1EQz#P;_LXi`FnK-!Pc+of zh#<1Psj37-bw2xh_H!r#qWYmg;1V*1Llw2dxNrYxk0$S9g+UcqqOJNJ3X!nw`d{;7wV#}X_oC+c0TzZbF$ zLWf^{O}qc_>lP4**?^ZR$q9YL=^2jul!;HmLF;wn^R>QND=bi0$5wkTkS_yn$MJnT z$-?)XJN*vJjK*Z_NMwGoh){+UzYRbQw8uV^b=Xgl0(pInhgONx3)wR2m9}wPTYyOj zgQPZNYN&L1$uN_O%ln(`g4tYbPaTI$dTbBnLV@=HLzr<>{B5uG1ntP6Lu`id2zYAJ zCBQkMGsZ4g4LNl#(MZQ-(iWhYKyGxHC-T`xWj-rMBb{^>QTt&^Ca2DF;@HxDmX*4c zrfPdwzy<4+$R~PsfI7Sr=n>SN7(l^3w6+NP4`8Y3kov|P`3?spm5d2Z6QtLvQq0dR;GsP{; zF2ggkAM&`6V9SQO^bdKwq<6RtL-_=0gv-Yb;JbLsqdh^ZSZy9d(JHB_AN940vPwc*t?QTEM{!^XspXySW zW7%+B7DLxnkCdnC{I>CR%m>je1Gdd77aZFlC8`6{oc7|f)>hg{U%tMw$G$6!=49$g z{PlO=>!Y*Tas=f?eMN%GioQf#59srHjao|r&TF&f2Qfj?@Zw&+mu<7(L?DJU2T)GVad=F`!{pYveew*L^v$y5-AJ=^81F zEq2>o2OTmFXaxX_9hXz2te6ZM#0FexO=zNQH`hXL4I>8H|2--Xbj+lm|m( zwmNU>7zf9ni1d0r72;OEh|j3NDg#kr(66qOZk#X(1M@YQEC^wEsGL>7)PgH30IAPVnc!;4hB!cQ(?lxcbFm2!LE}Dlpj>39(=z$ruj>}>@4hULgaZqy-N9f$JO7481xuiN&B>004yb z;nos#(ursc3@OZuJZ3Ay6t64miev%>7O2|mM<*u8R;J-#EV$_=)C02EU|1^`ZX^_CN@FV89cDBm}5qAhbCvLLJb;miRH2;pAo!MTJshoEbc zpBd%`4|{+@`^#3IaO4$*+3Z887v(9^K@Sa7e%MUOfhOk%N%#oDDR92x*i7=PBn6gX7z1ce+hLl$5%w|Oifks{pY?7zPI8=% za=3cV$IWsWV4WmAJ6tfGZ>Gz$3%R;~#q?x5J^5djbJc$KGpbjvwQJW~%RC5-+w>jM zZ2;gUQ(cDg9=$h5rQQ|#fav1pf9_i15nbI}@#XVtp>LKa=NIR^-)yDc0^l|5>Fkv{ zZYHkLv6-c%I&&=uFfCEdHm=KZ=W|W!OiPdWHfqfui$hAR#+WB!8(cE+3T|ctj^}tZwcUjQhzr{T#u*%S{k-z zXcQ4e!K<+8ouuRjzPgm<^jBayGMVQl^@!!g40)3 zXos-dGpvrjby4rr4re%*Lf`2F2yDeAk4h)N-Hb)?{>Q{nGgDmp-N$Q^uMPZ!%I8nKf*=sqL5)CXIG`*=5JJ9FDF`#Pnkc|-b*%vz__eRq60zVN>sS*S z$b{u1UJ1r**zie2+8A?`04H7vBJ+v%*WMv5@{Cg=TPtqHaHc1XV?aFGz(gZ{YB(aR znbW~RCU(U^VOeY*<2I%k#yj^FXJR77Qob3Wba;6MR>d3PBN$KhCmu9t0S1>>=FHdU z=+vOYL4dE_)7^o=yShy#=?t9Gb6RFy(V0P+qxA;IkUhT|_qco+XJT-b`rMLQ#QQWZux>P+xzEtYYbr7 zMtHry;d+(&)AJ`%uK}!+t3UnUe%eOdd+)th=r+A{x;+H&C6g{g`QT4KFtv97$s2tC zjW^0KpM6$dzxxI~diMFI-fFqK*$JPuWn_h>i%tD9yZt0wC6om#MMBFanr2HHb3eFtN z{@Iq9-Up2i8iY|KghN#X0W`xoDeinYB(|;NixE@-a9N)N4m`yfK2G>a&x5o@GBnyc z7)xLDz38EXBOd;^*E_*gpVlrS%1(enk?uYSV%@!8>k5GVFTNoD)z@_P|9+GBl?yLQ zNF$DTu~!C{jK+2`Uv`+kHA$jnBCM>{DF9xVW%hfKI}Gv`GOs6&b-u7|IaLRPTv%Yp zd@H#rUVAGeZ*iiBjx*ygL_|*hG#Ih0@oUP*6nO*rsiy2$DNkx4bMSdFZn3`hzShAe z6IkmOz|)*Vrf}ezzDFF5W+2C~9UDUZJId++7gOj5#Y2}-qi|WHubrw6G@U?pw7=qd zXBq~Z-_TP3^l(0ObWjFq9oY%geCWiP;XpK8m9|EE0eYHjmjJ4l0~k=QX&$6+!%N~g zz`VExK_HXDMbK|JRunJfJ%J_C7G#0)Hcn+6+e|bJ0#1yqj+cHn9u?<#93xs+?!(M8 z=!7bg0SBNZufQWfzq|@jgEA91 z;RvveXO00d0e*4^Wckc4dG;gbg7px96*A7>|_^ZE~KKOvjNAG-u)Vxi-+8wkP*KkSAo`fT zeD*c#836R^t8{a@!!-Jsx)L!_vPm=QB)%+ce0is|NwXOxVQ1Kx$v7$;G)7JSuLmG3;xn zjeSl8u>(JJN7T6JzgcMtij<*=V7S9?>CC3950s~Z4HAGQH!uQn-e7}SdYv1n#ts$q zA{KquI)Nr`K(XOvcG!e8WTTG;O~RpiT^Z{Nlt2ect5rl&e+jfB&fC*4&|$o4UXJoW z()aAt%pB~ZS7r*J}0}%8d)2i_$YkZ*f^7`}NCJ6;O zN}H?(IkcFhQO(Cn-Np5n|OC0JFK zD@^EcWCm^TX&HywwzeUZ#`z-m10CD@0;h44%T;9DpsSJo;(rDUQ8+{nWz6z$`LO-< z)5;hITD0z(qWtJGF0hKEHcNs@X@L4m+rt%6HVfX%>CCb5q4EbgO|l(w1b$LEtPUvy z%((iFc;y{A4*DE*wB|wmk8OqIdS&bvarv+CPO0CD#6O%NN19{)pkIgvC!8rdh{!ue zI|Whux5WCjUR;rbWecp*$N?E6J&$sOfu5QNS0N%y7+C7774aM;&m(a>ivaD(>4nd8 z;G_QB0B`7Ze<~x*>F#agmc&L6a>Pw%0}mD?5D*H-1hcQS(E4y?WP@Xh^u?eJ%92Kt z;^%;o#4Q_&FLj)bFdmc#(dI3^zFF9{GXQpl<-k+j0W`1)2pG!Tt z^7GF>qvv<8_|=2NNL5|!aznJ+@21)Pr*b^XG}Rjb4)pZu>N7RwjJt#2UIrE(yr;TX zPi1e@eDrBX{7bJJE!zBLeLt87yM7j7rFrvMy<7FhIBqQQPZkM)zcB zvM$e4-NA|t2vK4W$S}}~*jG{Ee#S=EX<6w|m$xxTpHP>H_27fu{9yDVQl~Ae6AFep z$E(=8a*?TH&h9AF^pqc)!&lq_U4BTn&werw8x+98q) z4T|%<5sTpvM6z*ZF_DtmLpZu(W`qNscI7Fdm>BVx0=|A|5w-)yhXoCE3`w*D@~8bl zqed^yC)SKR>`DMwS{xi=A)m2;@oGUJBEL4t@e4t{%DSIFrQLt{6&-*5rQ@Y2Y8inx z(Yes~_=#MUgBQ6U)}G~+Aod*|g#K$1(b_|DH9W)HK0TWlr#!-0oj-RvUR2 z>r)<5*xT3w`6?jv0vx~}w(MR}m#DuKK!i20slwJ}Xfx8;`%WWAA@IilpXSx=2#JWC zXrOW>IJG^6l?4oAwJ)Pr`8ok?o7`yvPA9-C0FWe@FlfyQ_FkpYwm#bcUIa8G8lBPL z+yZ^VssredR&Ua==v;SrHt3OLiD!_2 z3gd7mJI8G$lz4sO_|1^QiR9Or^xlALb*KyF_w&IVbuMYoU4a6CI)eKKvP zHqlwnKBKc89j~wWxIaie1K{fFs+|F#>GiwEa_{05dG_Vky|H(Q{+fU#I1Rwt^j*_! z0N^E4Wx{qK#k)igpFHGt4PZ}q?%(6<-3@=UeKPH?&*ki9C(mad-<-`-{GyJDjpeOp z0Gw^N^B4rCW;n3UAGUv`M8l(r1kfMmAghd22eu1kosH)p$a@og_F{2LmxKN6U^iU; z#l7Ap58@$uP4`>Xj)ORAOUgnwdVq2tP4kHR}GmX#Bu-Es9WdpmZp19B8alaDNvZC` zz6G#XjYLL`syr=WE4=h)?!gc!rw$`V=oJn$P|1L$&{3eT9Z!z%A&3D7;BAKT7@$Jq z*78iDe$kl~q}k+6a8TIkE5Imfr&_-g1qWM=Kg2a898W+i>syX=CWoP28~7i8)z1fj zwwbIRUTuq_@u9|P4h#&zfb`p{gnISo8k){-#6H5uygi4p4hj-&=mZ&q6Uu89C)~n# zDXA{}K`-b#@vhUl7oi6t1Z62D_>%k@B*gG?WVaU!vK!hnb6qsTAn z^lmtiCXfW3CNuhh?pUvuLF9GJXI-Ov)YZ_=Gmh;8_CynTpK1pMn!64d=qeQXJ>c4b zH)m^d`LbE*H|Z<>rc4L@4P(6|rw5mSBdkhS>$BqZ1ux+8Z@*$5kH>{l&13wV(4O3XXs=)$0_*5Gc=tIO6$D8&$_cGSEQw-=3 z&;?g@G}y=w-qe1_fX#$_F5Zu31US*u15e|?|1z8**pN>Bzo=c4|?Gb>8(F{*bZD@$aA{_;APWo0N{H_bveqr@4nkc zaoqy&_{n2__42Mvk&va)Vb92P2t^nBd>;En;=g%GtC~~x^ zdv!YXFhCxnsW9qPV08gwOUw!6b(hb!x}Xmq2Eo^^;M@3taJp|=v=J4cI>X)JVRaN4 z4gu`5^R}{JVwVf*WP+fut6c2*piTpZ-~uYIE~ISFyar6bHX4+qEfYk=q9m05v)5U4 zhL&8Q7FVdaVnVkwv;>E{EaX~(C%OVa(1EcsLeYp8ipFrKH&214NXx|^>M)bTrGbgC zl7yAcsyNtmiv?07(p~L@aK(-)m*{!)uWnfA=?A($-L6~|2z+2P-S9?IC4SGZOgH*! z7x%>2VJ>N(KSssTa3-iDI4B$sUSr6^@GO&rHJFlkZ&HN`eV*ZgdhK=#zZBM0MWX`+A5?g z(|Yh?g&49{Mam~BUjRu=4la2l)+f1utk(1GNqH{g*_k36pu849PHhgn;7zf?OHmfJ z_v>S^rBmYxonFQRV42)7=Ok+hWET-SEUG^koo0PUFwPWy>1`EcZzkIdJWV4q#%~=a z49uxhVYA>pe=xN3I1ma>h#d?Fx~cxN>CbJ|%>;5rY1mg?We1lM%&1G4V_)Oy35xV} zmiD-!SAsdTCz-2bm$zDRGt+Y05-FXWQ&BxuU?fl&(SUX`9fV zZQ~H9FFKdnccDKxt~kLf=2{l$*P8G~9YtgUxXhs}an`oLAT^#Le=k56oZ(j*<2ao< zzabq+C|vWlri*hQ64791q5KH2K!4fuR1Q~8P|Dx(s533z&n1oL=JXbds}LsgtBE=C z5uopFBF+T7qcBpG3EF2H=r1jt?S@USPwPRshVsnl%rMIiFLhkm>KBluT3NpE zT?s(!fjHYfpzq0_W4|jcFo?pCw;dQNeBh;qjVuk+tlz;!RPD~qbETL4PAVLHqmQhc`04uvZcuA*~8n$6fTXRj|U)I;}d zY54@R#8S+`UF@x;zBb!W686QjEmd&$G zxZ>JR9JRoNW-adY`*L|uINkQq#H`EPU6|sj|BK#OXu}YMY4lWw+1iRqLclq}{p?H7 zWx;dOfPfhm91V&UrR@Qg#n|!l33_{_`1uOFIHt?Z2(XxD3?x5_|l^F-7a>Yn#YX=5$I&)3zeTvVQV276LV?pbm zCO4W9W^_Qz=vO*WOxeiS1gz*wU&+R-^`mB7n}M^Ll9DRaHlW_zCeUk8m3kE=)?pP0 zg&<6OJb8bZ`~hPk(7Sh9aCAdwlJWkW%Hu2A{a?SP!+-yL4hkH@yO7qF>j#nm%x0+d zP7y39P?!^OB+|k1I1lt=7D=Upj^8zqS05%BWzQI!2Kw3{p^*jj&{e~m5*;X_gfL7e z>g-h*==D7sqt=AWE3;2+DJZs;KD+D=nS!H${6rBx-A^i!M_J$TBA0?grYCBPbTR{d zI{ZdsJuF9b%yl?}oM51v*X>GwBc(^!y2AvDUHe!3K3Sn3MCUu%t0(f#>3Ms9)M0@RR8=tzwx;hP(rNX5*&E8BBclle12x&9Ze8O=Ny@M4)G5y>9(HgY z`xp*a;ZY3gWJgS7bolFgbpnl+5L_`BkmtzzSLsPee~HgfM_Qi%U5J2&6vueW+sB_d z)qrP7xM2U`$_;E6b(nb2pxIZ=?k%yL;Y4HLMfpqN4}B)<0YU9Ev*W~9JlNJ7s6(I+ zO}?>@5BzKSId7xVda?nWI!eGP%by&cPXwbJ-7so)z{IZ>MMzzVpM%SAg zx?5L8&*^NQD7`mF0C?}qBL47=2j%bSztQ7+pU6iae6*q4^u49q0KoT?Hp^Lmd`I1=U)dynZ51n+nb3lkF zZss6LIP}gB8BD=|f%*hW4TL|YW;?+$ex;MdrS~Sp&_I)A6@p=f%B<4`1+Sy!KrFVM zfI*`bFa_mc3eRWnT62A-XSoiN3^vAPU__t<7?x*ARJ@{nv+`VjtFc6$zttKHZ;Hw` z(46f<6wbsqVRlD9vttRt8i9YBjtnhv)cX^F)mM-NTcaQ>fRDk=F`BKlF@UV!(a_0! zSJQ;b657+0jU!%pht35yg-#wrdH7?`Ohd~3t`#9}_}yd$M;U@f9O7tjKs^L~3}ug> zKcoHs{}GknJQ=DDw4kxu^EqvLAb<`tGhJNJVSkYA`Pn=PD&;9XB{`d>AI!ef z)i+P2PN@D*^gp)jZ@>HYau>w=gNC_HzeBnW0K8=C`%t(pOZlt+{jWMb|0ik(SL~Lf zd@ru9<>t#T0>j>1%|q{I?tsmP%RCsS=|Z-&rK{cb(>h|r8*l-rnz{>WA>ZpR6y<^r zJe0R4e}W<3f0H}k%d4d}tFOa=`{5Tkvg9*om6A^C!o}N;dLRPG{j08C=w);kU6M{^ zh7~hp`=%{QYo4F$6{ecO;c|aTZC8*ex5}%<^^12qdgdiH@2$^9*!Im|y>t_Hn=yN}NF{;s++O zw`}ZYOZ^N;4;taU)~F;Wg3k1EsMFlQ7qb(@be({%^xGX4Iy0?0_c@_H4DcmJUh9X< zH;f9Lp!HVF5nol4(F!<2y~q!Ag4}_Z`Ozf%<)yp=oBj}ZX$}Ta zG{(vKaN-dj9EUi&g>sw{e-cG{=6X5j0bB(54OdPXEGnO&ejFdzXE=r?j%~H)z_-ZP z2%pV-Qsl*4cl~Ww3TF6;#%0{lmdQzuxFReja@gB2<-_A_sibxk9y|CCU^ARjeqGt9 z`UQCgfkFpX^{4U*(hd7NIL=e*2l!N47|7zz9}&!W_xwzeKAl{C=%B<3P0!~(CJOoo z^+g`f2=@eSSpWBSY#R;KfvX=*1);JdotMvtaU?XzE#x~+b>r_rrikMLEaS@58)1{B z087?e_8aOesZ48MSG-7EiGh;@#J*L8*aH`ebPf_3ojA$~0-UrDaCUyf@jyqI=rhD{ zY!7;hqFhtDOhh60BgTKS-E0b-)q?xE>3Je_I!e75xNZU9qm;HydiH=W&(7uRufA%l zsDJsz`E>v4No)M0zxasjd294uX4KpCyQJFy!1s`JFUr6ESN~cb{^H^M{qL#X0#Kh_ zKD&^*0N`SKF7+C~{bny`_0WquG#$4`t}6g8+W!AJEH)1enPUOV^7mTW1?JQ@@Gm04 zPii*@iuxGUXLwDVz$|xPhQ8=8UxKfD#r1Z8R;RAYD}{Vtxj$D)V9q%Tv|xC+^X__> z$7=^Qw+msca)42~ruZfD_84*MV4VH%&O-4DSy z)lWuVq46qUgm=KZXA-D8tgHZLgEr;*K)b)|*9Ptmk%mMAd;!n&dgz<+M+O-3FhwV} z^PVyp@R4u?N!Gv>s2>>^n+;{y1q1er8Mzag^anY}L%;X(*e3`VQ5bXWEzYmmw{0L3$J3|E`Mg-)}XH+I~TE{nLL zu%z)XIJG_LVQGz)iWK%K#c`~GRy&B7C~RA?uM9Y*CDRI{640CqNYG`2qeYNE90)8F z4l!$eH?8xT>Suy?${Tv_5Au3&m^*OjjO5jC)ain}WJoBi$e-jg934}1ASb}H^;vIj zOJplK6z`fUDRfCSfxOGx1_kNGUN0`cmISNOmVsBHKGn$^pf&b=?*Fxw1q8651FN&j zN{gX?VGQHV6L}R!z>CPX)|e9t_2N6ctpV#*Sa2-q2hx)$&Telx!b;G8XlwwE-0e9( zTSOcO{cU!u(BJ@T``Zq?F6UR+21Nxti%Fnugw$O*_@>Ub-r}Rv~QKYa`!Inwl{Klb|J6d{Yj~Z0M_)& z`R}dQeku?D=wX{|ec{jb=kAtcFV2>5SW9(a%=Hx8kYCr%)JUHw^Q?is)&d>nBm3%fkWsN-f5z66`vxlzZuGQx_Dt1 zj3&A!XwwO}pb3sjJh*K|_!u0Vwgq(MVfESQ3_Yu~9cko#nU&(Ko(%?1G|K#DL70UPpxt_s`g12{>>=kUiFG$c$Y$_bvt z7VLQFe+UQXAPJ2;H6*4JW6^h_^tU0psy&%K}U4 z(J;5X%1~*4fkv59)h*%P{@}1N`E~~=B&jpdxeGAiAi})4t_bRCFc9;W#0VyLdfixN z(`VT+7#sQy>*x6VWV8v!>LM5^I)m&o2icI;>XrCx*#4kxq_%k_j|E12|Mj>mzW-x- zMxd`ya48(PJU`cwU_fB3KXQU+)}NH%gFN9tMsnB`M}4KkBFJ`%WAzj$L52{~DWTSA zOtCM){xN#sGi=L(9XKxfZ*_PZyTTThFkA%QWf;i&6ZhI1ti3Gq6526qW6pRA@Y3@_ zlokd@p>UX>;u82I$t~0U>}-d56&BQANHYSQ3E;tPFjJzzCW6pj<}rtO<2fxs9)Ud5 zz)uLEL7N(IuroPU=#1o108xgbUOslBENu?Vz1c3yV-MwwpTqO7o+(b+bEw7Qx^_qldh>8n@;*v(mONR|TBapj5|*QK=ySed)j1kwMXlDTJlEl>_d2 zz+jsCA%sL8u&}@Wfy?U|aAs&rakn51`?4?r+&cI{e{km=iaOpChf}?6Wkk(0L6FHJ z%slK3489N{%{Vmb_;SdLIJI6tKqokm5}W`HJdrt}6qOv#@-4{FNe?L~U*I$R6sS8| zOi`&btt;EXaltPTrpiVgvZ#UNhaLs`^|7L(HWV5=h*k~A^eBvJLi}mW4C7Jhc6j)8 z+ZIrM^K_+BqEmLW(NA8GNAvNi%7DJCt8pX@w>5uqv{87y{vbQn@~^?m6qdmos6t~+ z9J3)mOUyIyzoaJMur`$U0WJbr6cr4h1i0DV*eV2Q#W=;fnZlk}bePpp*E%defpIG* z#eIY9yB>6Pf=3;r zd{RHka(#{~GA!@}v^N336zmw|9ReO(!8@;x)IIii@T2O|4XpIA8G3eH5Lbi&={c?B zYwrOk&<&%g;>7D5-|6SHHg;0O`bc@sCYmI+k2*qSfZfVLzEU&LwEy9jDIGu430Mux zDab{$hZt-!T=AneBRbLbna+-HU`%Gc+Mcnm7T}f6ku=UpXgKqU`g3Bp$24zn_{9TL zaPCs1A=7Y;ro!56EQ&INBkzB6bM>s$$ZKo z^=CIsUlUziUhvru&V;V&!z#14a!%)ToQ|^D&Li`~7|YO( z;$Sj&fps$F3c}h1X0H#TzG3-~3L*_qq~)Tjgc}}am}r#<7rXt?gu5;q1;w8%Qau>Z zu0q7UR7z6?1Px0DoO%;vut?uJ;4;4jU;6Jh!;bqqO;>QcB_YlpkEGs*GPS{Vt`>e;X5!CIpHN{Q9 z^GXMsybuZpep$O59Sj0k5Khc%4gy8R-!m#LjklDh-q|oi1hhe(VSvTPO~)O(mlN!W z24TCdq!}}F;-w6$4kt5|0WL{x;o!19^C-8lt-fzA_t$~hg0hOw^BPx}sFs*y`cwhT$U4s-CR z&v-(+CZ~}UaU880?FxQ5!h7+uwsK5d?(h_yn)*&12-}vF+hiJ-_yaAKUoePT5)n1HLS6!#Lp~J0huAK?M&`*+|apb$;cmogU7@Htp?VqD~J#~g(_qUsa+uNDM>0$I2 zhdJ33`yj*_P}6|N8Wm z`S0%b)#-Eh;pE>G@%A+P?AcjfcXKcjjJz|H=KZ?12o9dL1H9;5fSd@Ki^C;sR0dPk2s}ZUGa1fz&JV zHZ=#%l#43;Zd5bKGc{_>_olRcpyRGpxSn0wjsC4K@fXlxoa@B8A=y=mfk;HdUB^U& z-c$q@v^YK=npGowqOixz4Ca3RLpJ7dCa36;WJW^cp@lA-_<~)SivV~`Xuv9~S)KaS z3~OvU2Yg@5&EB2lF)kagDLFy#ZKUrI(2+wGr?*5mc&FH2hi|!93)y$+e-9N7>0a9 zB{6>p7KqWIeD!>}Ht^#w+F1bsEJ@%=`W#3B+?_!RbuD zqcSl7!fEh1ye>CoKvp;*V*oL&VTH1SR#_(Vbe9111oYx>7! z8je@^J|v+SL_=BvZ5i4nTCY#wnQaT8)Mro+2BE;_imQ2er0wc+>UJ2^k2B+ePLjqk z{;|_C=uW0AOM?tlKFr$*5M*O#8R64+=)~iYr3@QI`4fix*wItH@_bY8JDVdG%l3b| zI9`|QjV_D2OMEHitL>Aio&#{TziO4-{ga=RfAP+rmB0D$!|8*!KUn3U+w|SjZ2;gU zQ{DexQ)S9WfAxs#K9$E$-r(21{IU&$*YE$ZT%0Y-`|BA1bp^n69RvN|OXA(MZ(sIQ zR{*p-E>swCcl|dmRokmBjKei^T{wh5t{rI7VI_4Uz0|7W)rVbpwnOt;B(O^Xk#Jp~ zt{h-%h1y;80?J{LH}L=!ze#}n04-i{VTdr>%(gnD=mevpsr4O;p=NF4_KDsgo`(>Y z-;0(ZQv!i{J|r4NgH;GTjJhZP-#V2TfOBXg@ECr61yh3Iu5gptXLVFen3xnZY6IfSEot zFc`^XwvXv3f$`F3C6}?l-j23w?Qm3l2rJ_cz>nBFA}C5c`J8Co0min)I}6*F3<&W4NeqAnjL@hl=lDi(`8#g;-w++ z$!gZ=j4#2Fk+sTK9`!DFUKH)&E(61?Vk|dQ>5<*g0t+m{XAFFSY+OT1PB8)nnKkg; zU<~ru9?ptW`kr|n#~cK$tzP73m7RHsy|%CVi3etOory5mo?DK6kabJfD+Z(1$P*1S zg*f&URs#5}e(`#37L($3th_BtXMRA|sK zTtWY$V+#lRhWEI-0Q(pnT$^nt8XZUh=LLAc+NU+Z0pOlDuYRaWm-p*THU_Y<&y-Gq zb{uE<2l=A%7{+x_-u*8-xrR&nmC1I{VNcitpMD1_oFE!<7JL zr&6DZHst*)_O0reJT^5mo^zqI_=*!6Y$#-H6@tX^fqi7#FJg0^fX|eN2VUyW!nOek zIGE@v;+|I6`XG@VYr+|Hf-!FGG35!1zJ}0bi1mg+_D+S;v2qxnYT?uP_MCdRO9$&Hx2XeNlb_+w=@27#RM576Jg;KqbFQ zAGZMD^?D98{KOw1sI(6C4TpPGgMpYTGx-im60@7#;fNrf%Ry)*8V4X}8I?_=H_|iF z#FV!8Q`k0a#+K)^=8He$-mU~ADKeL2ecTNNA))o?a7tiboXlguq(??yj`h?J5w{(& zKk_Ns$+6&xhJHoZ1Pe>d5&}xvd1$=C7!H9J`vjVWcMR`44uMwU@8E^6o=AY6N~qXZ zGlJ34@n@*oXrJs5Cp&I~pk#>U!9*{BV=lT|wgv3|^RG#s?fXL-c}VC4-kkFCiSOyL zGu7B0Jhme2vM(RHDo|*Ug)iu*93RQ7z`24j_E*|^QR21VYqt$V7;^rBPWGP1XC@C6 zlNI8iqeD?Lb z^P&o9@@KTf`5#SdmgAd@+qItVUz$HDesjScp;VUbH0S626B04OZ z1?4qS;vXcuDub20?RyuDBCGOY>|aTA;gKKENyh+<(nLSC|8O9vyv}>IwS5!V9LGq| zj}n*PXOie4i6MBjqIb}t7oa0YkVCo5YGHOCgj)~=0+n=_lt*x-hT>44wLpu23?Q!? zZ6yRK@SD<_@ku;?2m=zRFfa&+{l}@HEH5*y2GC{ft0}#kpg#wm@2TYa1aRfZ(=C60 zKbQOP(La2;-OQ7pd@l9q^Gzvj74%InvE6K?t^lal0RH3ihtn(P&)X{MdIrGbt0(-% zy-(z)|MaKjgAYHrJqO@>O1A-k?<2iW(|hl|Cx7(dkEE^u_~O(1Qf~p6_H+37^_juX zeFea_9s+oIxs>aie|CP}u9cZK^9a;EG7ypTS#lrrLatcU$>u>WNw}6&4=Yib!)Ao^ z-^@|pv>A0Y9zf_PLF4=Bm-k`mJP2qs{845T%G;n&7Xf6e5KMlGmj#I>Ycg47=H!Rz zp>hqU?TZ(%S>t4E2srgFpE=O2ofMvQhaXIce-!#FIPS2#-}D(8F9iG9#bI7PVS9#> zs`n)m&`kTb3u*ri!o2r^@{rTQnZQUq_wC#t^1ofDc*QH2oyl zOzSg++M1%y0|vgr!bxE}ea%1|`a33G`4N0*1B~O?$-#neOTjtMZ8{Iy!#-YFVVLsZ zO(}Sl1oY)J1JD}+nWKEQY&ANKOCA>iH+=X)a&Q={a&w^Fe|bcQUw+Zg2l#E1y!f{t zei5@Ey`fuIp!B#CC-60>*6Ux`+yC`}o9h&-+r|X;h4efEf>k2y2>xm#-Zv_OYV;SPZv7^{dsjsvE|Q_wz991qxkI2K6Z zP4yrcSl(r8tHuCoJ@dBF}?B=08x%kpabVT=(x1ANxX zb1Jie4qmHMY0_=!D0@!aR1n4hybLrWSb@+VivWo_40;u0KBZp)W{I)~`poTEN_*CQjB$ImXmme=pxm)D>EnBRQoBc^w&%k@6prk78*0f6rzRc8F)Pd}Lc=CA*T z>I#52?!D25z$^Ff@$;K2zSv#DFnWcyyX7W;8vQz!qrIzJ0O}~IOWtuw{F0=Pqi!_9 zpwF9!W?vFSLAr2JZrgW>hF7I*aI&Rv9$gC!9anpYE!82P{(j` zfhWCAyKD<*;JXq=xs8H-(2D}(>+p%<3h#`L+}jJ2@Dhb}s+TA|7r=8^>h34TYJgZUACMFb_-rf*z%KA0)6$!XS2LNhCo;S$8Ev+*kD=$~_Ml zjtMI7^58@v++#sr$!3k~Gf9oC@{ayoA*wpWW9C?i!0%F$oXkK2Z>|N3N*b@(AyNL- z=deY~^p)0wMyu9u#yO0|FgV!jSHV-DO&n_k@St;vOLY;Ce3&eeZwF}k(;?>P4RD~e#|cvX_osW^erWLQ{s*{I%Jv85jLa=4n|7tYKAUH z9A0Qc(#i{L2iY&n&~Bdv`e6M;QHD!@AZe^157!j-^s~c{{f9R&AgvIG08j5TJyZ|% zH>Ua%^}Wtq8y|OgHj^(gH#~qI$P*Jspz>9q$TvFPu#>URr$j%a7e|LU;NIKp6FBj_ z5QP(-4=YU&PNHySc1@|>Ws*kX2h1~na zEAq|tGyd`HQ`Nt}`Rk>cI^jyU>7~nS191O7)hz(^+12&@Pq}ErrCtG8|B4iz$}&n0`@^Rb_a%u!er=zQXVs73j07E5 zWkPrE(AQA?VwH90)O|6l*lpn{?s*S0xV^0*sjf^>Nz+~COsP->=y88mk5Dgqn$7qK zb~-yv>}tZbSs47S(MzZ&+-)w9868!D9l&U?Adx44L(3<4g|VNwR|itu^26`iL_wH3 zk&{up1Yj1$Ge}4av>=}FIq_gi5oF;N=NA=`U*YIVeF&m7&?Zp)929%J;Q{y#+w62; zi>yl^v9>3UHbvvgb)xlO*smEFVN|YAFNX}!*V=!~>%k2)WJ1*j)afy%%(L2AlD_-z zkUR6(P&Vb&_ne=rK;qM2SbNytL}RB>tVh;h;0O!nW|n}_v0fWE2Lj3$Pfwz?3h+tC zm7LeZ$>V*+1J0Cox^w0ueZv&&Ze7T|XwJ2l?u zDsdbseNdl(I2dRdg5yBbl6c+rvIAYUPCMZr@X#@3;|tr*urLi`6?r7(oA=v2Oq`<*UQt@X0h) z$DgH?!Z*7czM4Oe^WSE6{`d1l=qq>T+5g!`+HG&-=ImOo_cu&$QriMh)0eM3l(*k} zJ4?yi^b+Yd0PvEj9s*cD-+udTe)FR@+xLIGsm}dR+WY4>^X&gO^Oq-2=xmN|oo&zL z?A}&3XLaU(M`!2r7@DpdQy(^SaI8ki&=O$%hqXP*LR};pAcC_geW0QoSKG(02Lw4^ zpW9OL?$lYkWO)}5lF%eJxq$L97(3yOO{Rsjw}Zk)Ck}-^5X2mLZ%c-Hu+e@hcvp~;XIXLqY->nxs2=BX_?$eTv!<}Z zGl}hmYT;R+sZcb~*xzLZYD70?^x#q;T>qYpA7$27&zf?^yb@Q`O!hct#3q9=2kl`L zUi0O`I%Wr>f#Y{8#=}>Gk)>rN+iHE1z5^`+d!<2){XFIIB1D<4E3$jwbxt^_ z%*NTq>=-NDR<^@3oj|<73(qE^RYQ7pyeC}h2VV0PVBnY!9UuZc@SwfS9Lm?o`(a#@ zUoA+`_No9$w8%jle6R3oQit9g{3(^`<$_ZV^-hU*h-jGISmRfem7zO@PKzVu6?S?k zFCp#>xJiligusJV3*~VSI_i;<`c8QZX{YsDAc-PhC>=|ob(;YJ?d|Cyg9uM9icWW+ zo%mIO$g?)4fR>r&wz5WOJj4;@O0UPtB_3d?6UQ>Po5v}Z!4)_dU?56kqSH3)XC`^R%o0xHErlE+?t0pzAe&`FM5hym~@%7oQUs|#r!lzJrVa^<1DUp zfhA?-*@Ptw(26=MIz#Kh4?X|F z&UjE}#eQgi68mx0QO}7Td_3$3>tO%6kX|SlE1Z<}l$UK#><=U(W|Q7x- zhJmnJrXz_4R+0~^?F^5EMxayMf&xg#qrR5FzOCd}SG51nzoNr`|Dv50U>RQ2m6?|4 zXlRr2B6>*bW9K6e48Y12?pIq<8oSu2B;1(+EDmLOrLS-tdjHaDHw=Bal80Z^zt}C{ zG>O5W`2=JXuka326n~&MaNOo4zumcG1V+o5PMub09ioHe0ZPP4052S`oPrnvj!lU) zDNt`7yv-Q^JP6tk2fz`$6QE_!o1Lkk=v7Zh#0zB)0bb!dM}E-$qf`gJ%e*r1pE$g- z(r$A^dcWuv0nLAGr`9@d0))=(PPm-XK@JWS<~MjHb`u^aur>~)_|^(6hqs{Azjj|e zxja!?3>8vbJ)u0HePR4YgmT{aU3n9c2K^e&o7iGISVW@Zx)!LZ?dO?q>r0{F*y{|u z4{ktN;o~R=3+N==rl@V=_?spgZUCtHbkzwu`6Z8Wg1(SAUa@-`yuh~w$EC#I1az_U z7XWAE>57K3YL<(5RzOWHc!zs()3{bRjsUpUi2($nksmBB$x+5=3I})so+<;nY^ovh z>iE|!0B74R?dSjM?Ei6pl*4`_hkh$s-2%|6tLLZDm-IP()~f&i{q5hfF8}}V!w(k@ zk$BPVZTjwMOSkEzQoRE3&;R_-`GY_GpdC&@59bKghab_`^ff=Y{0Dla{4?3UdLiFD z-!J=H&L*m7Ri7OXyrDBX-=3E`2+C$2ar295TjX%qe{y!d`OzXT-MQqYL84&X>Fg$( ziDfxduBs5=#St<`wMy(+)t1=S_L1;Aq1cc{OpNzyT-FPny zMvT{i0=UVRCc~Dz4OVRrNQ45`Z&mPTv?fBZj#ejVg;cNWS6*fT3q0(A+KTtyzR5|f zMBD9-|Db0$f4Xobh7}PepaqNs{i#A-3V{hAuW!x{UtXxMRsEvz01K>!(f#>OP@ zC{aA5Fpt|5$O}JK(UjG%1AG8V$cN8sS~C<42do>~O_yJ9C+>32-YIopWY%t}`W!LIOT9S9!+Km9b)^||8mDO87 z)<&)@ql%IDL^2T*e6hT@yOP*JX2c!q- ze46jk_#d3lB)bSc2Y%~#PMrF%|Hfc~(gIe^L>bHxw!n}~!C4NnsrR?`bDmt#zSv-y z{#oHWBK*8AFLIwEo>*Tdw_e|j<&l=?%rYgulEn@yfPc+w`~>u{J^P7=b#~j}1#s=R zz6W@e#_cM?;_z4=ZJ#1PYMt88#^;GJnb&OGbebKZO($eboM5&-lrbYJ@L~KB;K4NL zHH1yD9_&x{ychrt@~VRZzXP~hPZ-PW!4cc)Ly_)EgDJrnEe}3-ab9Z_0^I7%gu-K#vk01ho3!c zP`vXe?-Y7}uJyg4({9suOt&ilUOq`Z1K{0%_im|6Qyx8d)R^*r`0@WR51Sv+WBP(V zySj8n?VP@8S6-Y`IZRTcVN|wd8^STmh$}jqToVjd0cD1=gw!BZ`3yoz^93CbGFB`f z`@4yU+XeJWI1f64vPfGA8<=@UUX@qRkCFZ$=)|v?T5bU#4<=wV8>5gbI@knguPki0 zpE&tu9Q2!kT>O-Ii-hVyhAMoEQJL5bB40J3^%z_Ou>OVnjPG(ofg~Ei9(p6FK)aNb z6Ona1;j?u;8{pRWocKb^>VY{5gLrv03M9?U89nrLT~#zzDZwoU4zeGD$l*D343co! z|7(g*0|R0_u{_fTQHge*AB;jG+gmq`A9$dShb?=|ed4q*q?yAzhHruHYsPtiF}1h$ z*PCq3;*3k<8nikUJPA53=}N7`WKS<- z=K~-g0*!DMSRdl^EwrrxCrH(P zcK8+Nth25DJmx9#J^{|!zP(R;nd>&)mc|3FP?%Di0?(8#Lf+DL9)x~Dxw zr6img0|7xG@^U@_%y!GMbR3z2p{-?gHk$ek0QJX)?V3W(SZ`jioV=pY&D(TFo;$OAvyw{CDS26~_x`(=GMR6)^rVuAtZe=ABl zjK}6s5e6P}8Vku1+CzUo;%Koe8l2 z=o31AT(<=rDI^gZ2$gXVqQMx9Vl2HRfPKl_f?WO2LP>k7QWiae;eYCZMqcJgca z2-9yg@&N5(PV`_Op#xWpai-J;2#b)?9aQ+6~-^Y`@Gj3d5$5U!2)~{ z`kQ^+Du0@MqC`*ZJ7|x{x2CA=jy72CA9c8uwiEOZLtbmB>yAmA6CWe1UY+t%U{G&c z>8iY=upD%3QtyAJuzdk-DjfSpbLg+b?D)@foyWt}o^0w>fal9?==FN^=T}$sl&N#+Ezp zy@Ki__Ce~lhVE})921-L0HG9q`(qc@?cYAIVL7Bg^f;Wxua&?Ij9#@j3IZe=3R?gK z93wBF zJkx5)MH3oTeX?kE^r`@#pdxSKGfrKEe!==#lZzpFJ5z-@fKKwSauK*Ux<^kH}6{p)SEYKlDYdn+S zKR$j&`wt&3*9HouzJ`=#!WtcO-qlYqoQOO83(PSz#wXfA`cmXeYX=6foC5B|J2N&p zWsr!+8V}Hk_x5nDKU}6cUC8ASu0m?hfVa?T*1Qt=UNDf2veEEFI3$9K@5l(i2~4MN0bsJEcB= za@qNy*jxzONn%c$2%#9DMLpZ= z00#Y{6AGGe6@&#t^d0&Bb$en{kwta$2{3HrkXiKk`t9Hzyj!q14E6)KvkCU^Cra zh=MU)C>io@AW((tbAFYrTxiI@B3$f?XrN3w6W}1?p|7ps%lw zNLQ!h($yS|HN_LP2E1c^kBT=^+ZzIdijVyuL&TFbV1s46o+Wm~X?Ywro0Jny_XBOi z9&6*PzO^Fopn|J6Ou%#H837_PUhl?QYvgM*1khO%!iv4E;3)Us;WNVdt%;#5(hJ9B z!hfJ^a0D^iiq^+LX8k3xXfQ5mgcqx{XX!z3D0qbrwFn?Mw8caT{F>^uf&0IENac&? zv|e${AKP2`9r`-G346Df4{-f{9k0LM>l%r9ey7fhHpmZZ^Z+R;np}c~3GPlxO3Qe0)lVktir81CPB9 zH14&ZkgmEvniFn>_)w&s^)&^VxGFyow9M}YKgZc!H0-heltFLhf0@|b-GT#KYSDas?E^=0L?ts|_)QJ%t-w={tLG4T3Oj)NF8 z{f>0aV+R8i$fHJQaX18U*Y`MszdCS*g4{)#8?K#KHq!{-8m{`>f^r0MkwzJ%RoV>_ z$S?h+o`ax4o%;A#BA&X^f`FFVuh>^avHz_7{%LZFM}8v$zNQGD)g|#f4CN&qUn;Z0 zR#}R)#J=qP*}7V{>l{z;FVQF;blhN|RQWFiK!gH+G#Ch0++Y^XSC;@BXg~kew7tBX z0{}~8ayxD0u-(b|W-CvhKA{`90pQg)U*k8fo-q9}(L0~N!*751_5#uEA%HKPZUX?{ zM|y8L2cRxNdV=b=1lwD6+X2wOV>STv z3d`8_x7K+q6asas8_W3|?M3Gdl;uFLL@M35SWW36giR1X$06nOG&tqN7+ieU0KhoUJf9TKbz+K@8j7cxf&SiIf zGmnN>=f#aYE_ z23inBnw-i*k!C>ow2vN`foY^ch7J44lG z>I5o+RtK~#-|}7iPsbiE^JW0R`bb=ka2k9ns{+78(J|?-Hq#im*E%#m=Rc5L$`4_T z5k-fcXnlJdDhQ555#V{`$y_g|>P*J;v9d`t6axA|y;G`}`Z&?qXyXl#jTmUK@dW&? zRjTu9D0A#bT=}M%kneFRy3)Yl=)aF3+a{pHW{NgU{X?5czgJw3Fs5z$PXCU#bQq1& zGXR0$@nTE$3IxjNckN>f?1z&p!8TAxg^<9Z9g#78-s{hrMH4d6?r?g&dgl(I7A2OoYQAAR}J^!ktQ%gynE zpI$%bi`~Ss-SOEEUz0foCYQ6ayFP6B{9@OZYVY@Z+HUIIW3&H150Bm9_-t{?d;N8y zV2(~&fSJimbzj`9wnl$4L3tw6pUZ)MWY4IVF+o)Shr@Pswx7Fm-ah;3qRm-`s{y&_ z{(py4XMd&7yxE8ihR)J<2-XtYvL_aIYB|X->bMd*-iTaB#qW{tb*Afm)KOh%N-IW? zIIj4)S(dunN_2JJx!0!=UVz2&5iI#dW!?>7o)Af(%*;P+%R>zS^}xw;^-HH|pA{3p zcTq};b2135FPMfI10+P)4@hoXR$Qt#F$Lqz z0!(^TBK07ZIE|G~rW|Qe*e&{9yd@D|Nzm~Oj)2jT%-{;p@&b>j;iLNq8+={kikEf8 z+MiETY)_o{dJ~5;D^ZTR2ZJvtW=Nr*h;SC5p_^nwG`=N{k??)NSINt=lGo}78HEEv zL2i{4(z8Q!*4+Bh@`&?K2r^PIghqfpwWq!P^2Jkj%WI-)*xftLHcdIf1lH zc*GaL3lzI>tsdqT+p2ST5_u!8z$PM*9$N5}BaMaib47%VWhpvtg&fZgyQ07RPJEb` zWm6x2R)6mdHAvCXh2O2e)QQ-1C5p7sw$(vK2UGhm3LK))o0Kh=S5bb~-SjwJ(wDJUG1%g~u&zjX=>v^JE++CD`_Kt2on3H5+1 z)2mlWbsyHz+9U6m0;?vJmNnl&lG9Cr|Eo+)!)Yw@x;C7YJceLs?nl& z1tpcuK};K4X?)r~eua-fE=~?SLtkckmlb(~az=w;7@Qht$4+aJ)CV-mTB5}NNCR=b zqj{9RRtF~s7`A^-iB48VyzevsvF-eeht(k+3_o)C@|G6ld#yjq2*gbZf&xy=BCN4p(^^Zp$a9l@iU~ukGuK7F{jS`h{YDV&B^s?Tv(d z(1&xK`@`;8UHD&}{xa2#&PU;CVT zM^8SUCsiNHYxGm0cSzoT`|Th>Zqx6cZdU-jWa>tVeDL-M-0r4)cUb{Y&j5J#)i-kI z?kmjqqjO%uW-=^0?P70Kc@y=y(VyGxElk8dPaI ztZP@(E`m}TAdP-~yMy~o67nwBAkv_O+3M;v>&7MLrS=4Lp8Qd}2?4h;Oes6iNCmto z{jm?a(64+Ik2Xv7VC0&31TPzOCG6pT|(mQGxisUlpHpAN%6X+rL*ukK^Dmyb zW{O_10263t{GM7&G>Zs~konUt$NIK_}O{lqt6Fc%s2EGKWSYYHwBJC#XrK%A9!q!`6fp1i@PbiqN3DweAVp!@3b^+3>wd6hRuD%ZO^ zeE*eF?)B%}~;{+&j8J!@Zt0 zNQoGQzd&i!4-$oR%Qg)y`OmI%sOMu)TGFG6y8S87B%7enC}sO_g@!hdC}Le0Hz%_s zL8$F3EvA0@JqpTTtMqn2iVili8s4hZJ3MrRRSy&S9rsgGP~xx=%3`3;pq<*535eJb zw2S&jLDVID)NhVJVXsP21^MLtv#K!7uyDeg?ia|zp!k%;%#jD0l9?zt;Ddrr3PqI= zZrSL(Yh8o;GL?>!PSKaXdZZ-9q#dlhhs4!anFpLX$NnG+Je5l^;;G6Kx5L;wazdj~ zYz~2>iUAPd!;lAoVDG1xCv`CB@_6Qegz*;)Q#9-{Y#GNSZw4nTz?9o2vaK&R2qfa7 zKLh{>wCeOCy^fQXLpEuB3r*S0fq?(|DINduaXTv@4^>)Wp_A{)hm682y`TWvo*86M z$5+B$Tf{xW(PY6OKod;Jw@A)aeqLd4S@{iTp)B<#+GEG!N*B-pp~}n$TCS!%>y63y zq)-s*sCOoiJz;DT4NlY$NL|5;)1S#1f@{S94x%Iv*z1`T!lC0?(lDbZ&Gm7{#YF^llnR!e|KgBAr2 zKB|9he}18`bwJOYSku#5FbCT7+CQ`f8cc9TfQ=8JslpJ>CJ^s`y}r-vJ#80wspiqY zG{*dRgU(lY9W)YM%kbK7v27OD$Lo3qI@Jlz&E)$}wzK1ZSwYz?X8>Gm&)U0s2Egn8 zuiu~Eq6gO0m#_WRt-ty`r(1%459!oilzM;#{=TVa0K76Y`|-dR^h4Ur%un0%QZL6W z$D>SjPs|(x`1<(<0)&^pqu8EyY`@L&Ho?*hc0pz5#T;-e zf^_-sN}$2ow@55A)!L3M%Y1vA_K#Rcx8>Y|OX@aoenO?itaMmy517$21dDjP3JYYZ z+Xn1b1yk~%R0>L4b_FF)$_8@LAi(6aEPdO6^?h$2_s8m%6U7&STdsHnTT z?G5D^_w+Jcp;#mt8VfTs8VZv~Nm@T`Ir4{Yh0!{@0^~enL<{~5{WnC+geW*CeT<3C zn)xd?6#I{|HtgB!LE~atx`NS}z`mO}&Ah=UfpIWl{mXksJXS$sFE0|W31U6?kYgJe zeiJ&{KV?+@W?YlaXa|~TADdGo6b!pHxb2gDR*#@PIT2@xfXtnI}Gl&(AGQiu1x=}X-$B5`; zgH}I&fwtsC8A*Sk-2?~rAqn{ba2x{A!69h%fGjg7l_@wlyyS0vY1@;8hM8hJExSaR z%_-;yLYjj}4uc-t6~+`%xXWIDZ<&S_4tRxJ2>SK+K}Qn>$14mk%*SM>NJ=Vi^)Te^ zXCx?Iiep=vd<0s+c+KNBIR2^cl#T?!Y;(}Hy|h#jR~gt$GErQDLm-O*cjPHtpr7SGr)}T4|?r!T^yu+5&v3a+4OmG+2p(gR1Sf zJ}e#xLS7+?V^9y`3{E9E4{f_0VGbkkqR|Ivs1r=g>1>1a*V@4#o`5b?`T#FehgEff zfNaSJ-4!*C$sJ*}cVJbm@%$$7o!&fUW1GEiurJZxT;qSqZ7Iz=ZnZu;gF)M&MP_U! zA0Hc#KgdQp?zS9x&Q?W0Uj3|jv`^u0;T>I5?7<9>^Pf~TnDI!xN`0wxG@6cbEINpcjVD#QyC7wOjb-I_xi z>l58a+Vck=$nv=HVxbc6EVs8$MQ%HwtgzzJzUG^W*$Jx-oOqphHiGe#3h;q$aIIEv z0IPTBgO?fqrP3bc5Zj`%v@rz*0mKQ4zI}rO*~8WcrG@e?r7>XvBVB#qJQ^bDPZMl^t=klKhVPv|3=SxssI`dG|(dsQm8?ds=-1*%7~OiGDM2ZcsV^h z{CywiEUUfNUS{hv+uNzkq;qz6#PxH|-s@pz%iim;g-JQeQL%_P;cAR+_ml)ylB{E+ zoi1~d0}#8P%X9xiyao(sE7PwdAzJ}L5CB#-N}X-BhbWg!w^o&Sft!+PE!$DhR)M}Z zlwew36&jl_pFf=w0iU&mKo~>30{-xIy!k_QjNu}W-f7|uaa}8!x48A-7%puq!w{CW zNPsQFx_+SkHSo&@2@U3f3xW&<@J-+3z$^r*)aDj{abnEtC%&?k286!v`?p{szjNGp ztm%?6V9l2&%s@$6jn8?nE;Pzh=0n$Az)%-MCJP54<0ZZTmf; z1Wbn`I2s_?R2nA&jCFTVgc5^^eDTaI>twc9pf=r4Ay}-BvY~H`*1S57+cKPOR^R-s zzTz&7lPAPWoM>4(8h@JqxCqJehAvnoDx8mr?^tG#c+AEm`Hf)~n^yo@dxdD!ewR_U z-Z-(z293%7EO(N|YDWq8Ona6U9}hy%@K)kiURjXsi;%8h+U_N&xiHTB$-~I3>h(18 z-83Z_vs|UVfRPvoZ-l62sl28!Zv7(iv~;`-cjL{ByTgZZuMnJln{0cv^RZ9*O;NN1 zkpm1elVDfs7Jxdzd3iWY_1$OtIT27-0PN>Pz)RGL&r6jXOD5>|Zhc2yUcHp(moMbI z-}@dud-SNa*tS|@9K3#g{dU)N0^qm2Y8I+GW%U5S_uqTJomBbX|KPtb-^KUZ^Lhy2 z#pz2uyYZIP*8twWHQzkd(pLYY{(Fj({jDu9L-YXjk zwzKp-W>tac#i`*lf~;onfRzK6ms+*9u_P&M7Ny@?^eq`-qJeGmR8YP|WBaW=I5wsQ)2mO8Z`USTK$sf8?s zoRzNl?KzL5D{SqsVD#IXRs6<1aSR&=KK5M_&9#qD;{%B}x{V$Nz+c_g9qe(~KaGR* zF?It>28(Hi{Ck`?!MyBSDuN>ia+rA5MpjONG7KbB;gbzzH{@PRH{f>Tiy$-65T`zg z?VUMS4$WHT{YRh+qBF-=?_ZJ*32?*Yn8!x9+gcHV+GH46j%2$zcgz_FBUPY9#!F-Q zbp2E32m85%ov1@)l5V;@;`qx)IQ;yp>eV1P>6&0sko+Jf1~Z)o6k`}v;{k+{2bZDj z--$0*{L6J#G)ip~c$;T>=qrBb6*4;bTbSh;{jKq8GmN}MTo7i6dz)jXD>dNyPoo{< z;4UZHWMZTd^c6tzsAJX^NHBqPW52iSOM#3wN8MmyqVSPzfPh#2MEbJMLgGaoftvkx zocf<{!|3qr(z|b!+A_~yGK@(-FdYD_lBpc9TA;+2`5;Uq<{8)7{TU_Roj$Ff1h3WQ zghqYVPSM|u8BT7;Rv45d_PqsOh z?L5}t)nTjb@}=k)v&N2NzgNH88#j!nxOp3ouxe3;jhQsrD^2!<#@9}z-ckFOWGiJY zQ*~T@wx0a8d?tm}Vfip#Sn(AIo?hPg-jifTS42O|ed7M-t7)(K5+L?>SXGtpS-DWfB$Xy_~Vb;E7zBPuipaj z+g^g}>$kpY62Mmg%-6^Gc=z4gm@Xe;`ueRGbBgQURL&poFK=85E~h=NWPg~-367Wh zTc@{o(^WY+N;#REIi0h0r{B8stvCPg|L6bf|3}M`W%Jo}Th?v;a+cAA*;eQ3I3e1l zq?egOptyXve(keRVur4t460<`TiFW7k(bIZpEkp|6kimf>MIz{f}b(~SWf5fI4k-R z`>wN1aobYrt}NT@<~*<`CD!bCpXFwy$i#3(sR(aFFyjqGN5p85_H~G}un+ z_i-CTG_C;5NMQ7Fwy~Ic|Jn}-w3C0;mzdJ57LP+Wh^^mF8{gkdvjlAx)SWj@A7g2x z5U6GYdmZUzl$WW7Sqmq}Ab@3`fpK0!FVo-?qB~?PB^M`@^T05w#)nE{0ha}b$CmUN zgF64Q9O;-O4Vijwf6#frw!E!^`AQ8Zn>AV0OWR2}7zu3?KPt9`sq<{$qrmIbl-&zs zGvr4R$G|V+P3>dN_zey~uhn#r~CifACfqU)drASETJ( z#IK=4T>;=YN>BhBWplUrUIK56eak<5kpe*GnT~@G5Aitb99zyWqh4#p0)w4I85RQ8 z`MGz}#+GPZh;DomJ%CjbVQXw^o!vC_4JS{n{!T`q%e{QdpF~v#pA-_RSWVm#L z|4e4V^;xDj1eTXU=PM)uSpEr5r@gFgPQUH#``c59naExa9Yytgl^*M!#Q(s$O>ljQ z{Kj<3ykmVd+$Q>NbqQWzBv0zkBk`Z()p6zk()p3#Z*OcMf28|p4p*(So7UrG^x}yh z*ArbPYdaIu34`D4nI}jj_DTNOfL(}wyo|r(^+bBV_M*9Qa=$6aB|z>Kde&5EHj$O@Scb2`hiJ2Y^{?+i)gH{Wel2tD&Im@u zdhPn$J12MyC2{~fi8QR~;0s7POt7<;Z!ze>Etn5`d0s9DM5n`f(BNqlOS~Fk@p{T_ zpw9rLzPSTMkQZtq12H^utGg{4&6Aymue3j!3#Nhbs2!V3~0pNoePP= z#4vTIMNFRg8Dg~o>&9ilFyqB|dtXRnqucE8m-G z?|#r{z{gf?C}IL+$msHYSrwwDGklyP9_@U9pZ$8-77&O=hYJq&h(Bn^A9qK>~GqjBf~#o%$O_D zmD}Xi7aqL*Q~af)9G4ZuS$LK&ug`SFwjD4yZG2X%$*3<52-$ur;`kYiwlAE^GmIs{ z@G2e%t1u7~&(@xACFz|A&BO`|6$W0$n@7UM`r}E`R=r?lC#Ma%TA!|zNIqCMgZP_+ zf9dV!rRD)&(obfKIVnJsJpQK%$dw!suevYNzxT;3@MIB}v$p&&Kt)*oKPCFxSD%#A zs832JDB*AIvrfuePkdaIwgM1Nwvy3;ZXPRNwSsXjK(^=gGTz={(4^5EaYc>Nr_pye zA)MLb<7w5z4-)+9@fXkPTh1;ni_|j!j?+PJ_QL?{A%HLE|8CvBjnnfJee&c9Zk)W( zZ+&YyNA2FtyZYIqcj{}_(Nx_FF^#GGVY`++Q{chiuzwD-E>C15zj;Vhy^Yr^+PJAgV#SnBZ_iSd% zRSX-O_H)CSnhujiFufk)EBmz2fh5%S>U4Q-*YpL(@^T?t zQynft$*P(Uyo!y?--wh=y6?cv`X{EDSh;kRt=p2WKI>&|-)_ zh+!Ef8%A*$Tc7S6k}-4m27X?qk4HGQ)<9$fZO+Is(Y4WU+89UcZ!*vTyu#kJzB>SB zh}mg&yd^r%LU`6cPNtaisvAxZJ6=L#LC&KjG*_ToP~D#EN;bmbl%bu@i?VKCyj_+@ zYn$XLH=5;*dBhwhE>o|dmzLjlc4*W^gmR_>|CUkT&j#ql)5e8 zZ$E>+yc&J?e@R?36}rqt;0E8(0A;6FHyX>%WxWc~bn8-T(}-jGPE#5Cp8r}u7~_xa zdMgMd;iiZ@lsiezrhlKPJ=Yf#%_vThkDypNw%$#xQxJHO`?3m32(zs2x?TbCHOq%@ z51@9#GGUAWI|uDqA5Mf9|8ak{L0(DV&y98xZN6+UI*f+XsBf^^r=<2J;lz5+NCzak z_s@JzK_UL&FA9WZ?%?qS!og_5_(G9omI1rd5Np}C096w&0%M#e z>Yr^yPV9i-=V-yBwae6Efhf~?nPmUOg(9rM=7%ohf0o=|Jsv}EulJ)5oGvq?_te*bbt zZvepQnSZ@`^XB~TbDZ2bYaO0nUCQ76-LL0wpL&`9=l}3O?0)#~emF3^-U9GjUwd3% zuj7)wFGWB6vk#|_Kl&K=zH?XS8GX5R_RsXz^M`soxmnIm&nDbH;MP@T_DkHpxzmf| zhEbBYUTE=FDVpT(r8QR zi@2T}L5T(>xU{O{RV7uJ3nc-(?P<)^x9Y){P}XZ?a$3mbspS;nVlX%IO_xC zi~wPLK>?T;?%KBv1kjAR>AMn+tKh`?0l{i}IMj7gpks5ci3HM@i9=U- z^S5{K*pNfRv~j2=+pba;p1(Tc_>(W&wt(r|Z$M6VFs*89gW{h43>@=I7e>hfpy8|I zx&^BOIe8IjvGH4#aHLgdc2lw49;sXgADp-%_!d?agc&Xm^kkIfrQX>1EnaXecTU@T z{IIn4yVJ@KZq;r_%mFV0&@EYa8S0-+PNz}MiD&1*q!p_|xV8X=^u>e`_!+J1WkIOR z3GqabB_Ia27<6FxEJ1NBF(@z_W69CF3e9J_De)cx=MKXpiMa_TFg%C>Mkxbs3ozQ& ziCuklQcR{y)F&@7XC1{f<^T&4;kSM36WIh{P0tF$F0FX*rP4CScPBAGGMEfL;~~SR z{yrwTm}neqC8qI;EgNV42Eors0Qc=`J4y)`AsJ&>bv-UYHVBpm+qBTH!g%Py?6b+B zM1@9s$Gp!g@idLqWVD`wP8#&w8eeM1$A@TX_}hoo;gvZ|6H)`qIM1Jli{T_&c1*vaY&Tcps;ztDW3H>s@I~iva z1V5Ju(osDe56@eqd6emDzOirBcX~WO%0Z5T{i$BOe1=DPFOpW;3~$D5DdFQ5JC$IIwl2mi0-ns9yn)>malNsjqBnzse?B*HXS3JfP_aYDqD zaRGSNyE@O4Ef4c$_u|Ud4uEU$SzofW5k`o7iE(4V;YkifG)9(?=H?=q6NjZtRrED~2BtZn({MtvQ)V!h z1!q6|KsW4z1xGec?r`_cI`5#<-SCk-LoyMqysV5q>^CPbi00zu>^F@gw_(k4@XG;+ zJ=0gzBhoUw3{G&|4L5qeG-C`&x`>Uvq!j_NgV>l6VPr7}y+Zj!PoIs+v_V&IeQYf- zu)29=M;GW3R}NwGdzP~@!pf)@@fi30uuBeJ=BqqL}`c;*OtQYHcikH^6uYEk}kjt>t zmidRN$8cv{cN9bva(W&9{@q`fO88lO()+Y6SPU1x+RkXGL#H6ix#8jo2}*WpwCyef zY+qOo_&3i?T06YVekH@yUMr&`=~$l~yMf3{;q%3b8Kq^^Tm5PpCkx~~VT>^*mY~tD zybUf3xVKgX1UgtBRz{;9ova^?{KN@LYtMMY>T=SZ$H?IKF%pCT4j6VQOnOMvUp{-U zBY!KCJr>gN^J?&G~m^1$e*$VlM~U-XyG!0mD+Mzm`!z< zh$kmRd0ILca9eRJGbOp$I_M7s7xUAmJ(Ur33kVOv<`#kaVJGiTS*LVna-UTPez0~r zVy@$KwC}n`*D%(rB>iJ695U^V1`ZGX7N$3%ocOCEJ6(4YVO7GV<9R6M^TXj#6HsL* zlO7KX@W&em-S<_`bw%`xx^wPqCeoAn^WtuK`0&@Q$@?$AJva0oe)P$Yrg{cIoou~c z{{MQe>jc1Sx~gMTw*fqQ^U?J7n{VsK9|6Dr`+tDjPoFggf8*BO^0fMZxZTR{FXtpc zLD}tgdU|q-x+0(oNL~J4-vm%fdFFnO8&J4{iV26I?0ts5!?Zl=PFsUSNEgZoF!Pcg zLG;VJViO@H*X;aoq=ew}K(0?%K*#d%_Oly4-FAH!*eR$NQ?4!PO|UfOs;_WNBsw6I zguq_9!WEnGu{t7gB?5r3cdWPNl~|GUxb%Jp?Xg<vdp5T=cNw-2MK2i%J6 z>?+g4`=a03`FHY5sN;A|1V`e7c-eT{*lZNBWDt>Qe3I-toW!pw`4F8Af?*Rt9$)LK zkYho7`$~rt9#jrmBGRNcGv*Iu+)JR0fdN8L>L}=_k2H4NM*aEa6CD5UbLiJETx4Ab z30^s7N-(=q-TEvDz-UHd&?UYSm2{$al792JF`v>yWv9{lW=EEaj{~mhdPXHu2g;e=!k%B+u^6mWRc`16?a>Jioz z`7DfvTUq`llA|dv+rbz=4`OvJ88^FW{$JrSu`wuXe&m-+@M^-Ka|s7)i@#f<-hzGp z^CTFfqY*FWkwP-OON^dr&U$!9&q8utq6`2r%3_{1-r*#P;mGn;u;xFuX+mvV8^%+P zV{arUHH}ub*v|cp-hg5xgbHHP%6Yv5YzZbFFG~g*h+5A8Sc3i<@*Mj2lhYG9`NoM} z9IoVSf2ufp>QsC8t?!k4&mPJT{vSUWsnqKg0I%h`P5`{dt7fJ?d*?I#@sEFuci(## zAOG}kn>2lehq!og?hJd_pXkeT;Q5Q?@W1opQOhg{lkV!V@6&WT>DA%txhWXgZ7Fd& zwH_Gzzni=%hF_-G@*CRg1nC{4p^u&ww0SKHPJE>RI{*e#|E$5Z>9TgimlF!YQZiN$ z4FGgpWdx9<;EFr{3w*65OAJV#X|`-65a4TYA2b|LxahVqt3A#(ShiHyR)qnZ3}a^X z1c4_0J&Y4P$+Gw|<6Ym&nCaSB5E`4x-&S|DVlu`qIW=}(g!@p_plyR<>UG1cg^&U2 z2lYWcd##;r-k}*BnyHeya>Z7dbRKeJ*Mjr7dO`cMctBq7(`MDo$zdZI1{oNM03&@L z!yMpvCZCLOyFVek#=?zpaxnU^4GHN0NOD4qo*Y2&?1agM6;&?NiQ(HCXsMsob0>oP zV|vhdw%-$CkS>(8A{gBvCYqXKW@W>7?sVhg{tN~rcqNUc-OIr%fEWx& zYeym3Phk5GO>J2q5|VR>2Lp04a!0|rJGTA1!ND{yx^~W)Z$b91^*_ZK!C+5yIM(ij zE6H*iKMr~gGz*Y8foSA0I`B*%2feOuH0sR|*eb%IocR*OveOg;NhLVBTpK4UYdW~q zDWornE|Ve6W1i?Ki2XC%u16JP1qLU6(qys+U^}yFAGiHBU z5Z-xbH;qJ+@wgx+pTlaz5s3LXd0!;U!G?7k>;b-w)e&I@M!i?JNZ5gyLh#n>NN|Ag z1C3P+tR?DqP+NAG-PXlPI^($=mE}W3>*szN+X0Ne%;UnclVrii1Vfh0Pnqbx=#Ulm zXRT9PdT+8IgCwf}-)8bP=`bPqIFSG#9MI=uVK8=h*!LsQMqrO+8-cZ9`}{$?=&KS+ z#8sB^ms&orE1OSnQs44b<`10iZ#U-Im!s5|p0jLu3-FCBLFEfMF@a`GuHdpNP|YN{@iBbN3tU++ivhi@__5xy9(aF&jm zb05xTAZK)ew;;@f1Ui$EcH+2|jE+=Zae+~c9gE>>i1QCfcE+CHeuJG82v$K2^Fwed zsT#3m2;lgqcQG6hAvz)lG)VjnL^*BkNT>>8yH()k{SX{GGW;6*Y(pr3pl26#}g#urYM2!nOWjPzV87$Cm;nO2mm&Ck6^d4J4N*@c@k{0j)-kV?LmDsttpj#%lY-mOAJNUm z0KjTSmieDyvmmDRHH{#!1xZPdI6YZrWa!KmxRO8wScMW7z)DXBeoOpiu<+P1FPc4N ze5S+?87Hq#&$H|stqebhm&!7YIOwyajD5F2mu-84(U7NcV}0%jV9;IY`LqF(U7pY* z8e02>#%Us2SX-PQDpB7O8n1WXeOEsF z`_J^vcRrIp`a|H+M<2;yKWKdS=AEXMZk3zmaJAQ6{o5_6(YoyaFbhcCDpRkQ7Z;y% zAR6|xhgZNYg4kw)B{>Fw2YF*DA-Z0fMiAbW&oYy|D9U95CLP#k#zW7`wja~N#>Y=GWxZNs+&h>S#lDf2Sg_Y?esLy4fY@=5^fFPwuw z)$H_r>2wZP8-~#?<7G?SI8ovX)Dj_BzWZhf_l!qU1v?7v$%rrGJ+%PCX3>|n&0!%s zYQeuJd$4vsq|?v#VY(A0uHZc>Wwd9z+n0)s*U%X+4t(0ZU0N0zh>Zc8&$<(_*%*ao zk{bBijc2dZD7_<|W&DkH>`)l-CNiiYd6wWJI{PgKkDYt3qKM04tyxX8qN$HyWM$xK z4iY`%cixNfIy<_W=-+O0o9P)e^$UdeCT7^27COqZ{Dy)fwdMM05oeZt zl|YH(#$zk8Cd96nal2mPI9fl37W;lSD{SyhsVysG^a?s$hR!gYeR+8rA0B%?7Xb;U zFw+j=Axh+#KUIkTw}SfYUzn`!rgZ)kwrOoR7>yUEP#hr#JP*=`(%w{IUEu-~P6|^Uoi(?bZDZ09;?M=em9i!0Ws|Tt4dlf8f4; z_x63g{N*e{Z{4^Q^fyCY?e_Du_AF7;rA}9;<>aL7j&=WkZ)(n#J#)L`|JdPg zfCXBMPN(@L6FzhB%uujIHoc=!`H&J_+Dk!*J)3B+Hf4QVok?9^n8ML5MObfzKxlj} zTiFcu1y>KI#b8Htx@GjC6#PQ`*h2El6v;EkvcZ7v!B!&xP9#f4U`fE(_5&}YqwVE& zjeu`tSE8L68pjiE2N$xc+ZqA~zO1aR2oNtTYEbq53+TKAag<|Y{bC2l$)k}r$$?U) zJ3G6^b8PUr&zVp{NY%r#rTE*?6PPj#@|27)6U%t2kdvZhs9hEoA&{aYAUG1AxUt1J z!8r$C4IUX#3VKMVMAu$M85^okygF8!0D~tr5JI>Wm(jsb>lp**q6J_54bNn#h|n9! z(i(n@^9x|?o%q1YcZWpnx9<%kT%7iZd?+1G9bk>qpe6RDr2j%2%=_y4plg$%+XNA3 z<6~-nC>Kq7GJl~qB8ZW!EK~Ju0l#_#`SJ;N|Lj|k8`~y%8A9EB2G%u!Yl7gfD=|6! zGclj>j;wC>a<8B_wJCv|;-6x)&IuO|UOKO+@v{)08eHtib2~%WXpA(DF^`3A(3gYF z)!-UmSXsKQh`Q9AXzM@FU1_D1tYPv%EXx^nYC4R0os(^j3&W83mOrVvC3q`q1h-`0 zgB7|Lg2&W2)5(_k18bcX0)K){Hh7!ImgIhO>|D2}HnwPEbf{&S=O#foJEhISTNgd> z4O;`T)~^h^CNS;3Cy)#tkgk-GC}0^>L9iWxhDm0pUY_NUx0hvD>^|jim)|;cw)JZ( z6SBYIu<3d{S8$SiTV1Ei)DuUvT7(l@HZGE2s2{vCf^G1t_**yNn;1vXxL7AxvmoBKttlI$U0soit^Ev)G0*9-Ep6sDlZBPFW&+rtdCns&)$n(n=^4;4n^cO!zJ52q} zM{kz*|Kk0$kLCLMZLaGT0I%_?%TwNc>s_sf06u*7aFK?$fqVDvFH5-voO54IDfI|API`k-p#(e0uakRB|}e2iS?P!^aEoR zm6b6a(HpejydLo9OUz9fS%ABg=m`lrWKhY%Y45`g6_NrSa16a`a2G1C&Z({r3*j0J z7Sq9xKXij25Yqj;YJwCW*_h$X_4|Fce&9@ot7lr5<^H2RJ1EipNb08#Rr{etlW|{{ zagc7Ci!xT7fVPZZhM(1qoxy4}T2A5~K*+QKlhMQ+2KE33(_zywXnkXhkqE+`$ZkmZ zb#2Sg#Bl@h+Ze!Z)Qq2$jIGc!D;`!T$lzm_CmJV_gg3Bq4mAvncM}{g=XF7FS|_A_ za--BPIalFr6C&{K8lf$#&wQ7h8Kh^uy)eE^Pv=!?zc(@ZPjI&~BrHxJW-u;?ID^2B ze(E~c&2RN^dKjQdp4rLtw=Qr2MvBK_3LSX+1Ft*=f-qA*^_l<9N9;Qb!&eglKm7vb zKRyC3k6`)<;XQP0K#q8DgP*f}a@ALUXWq~i?@LyYtQXkfRntIYtAxqE9fBHGbTt_k za>}V+)(PBqz)2!5q-U1rX{I{_6cX!;tYwU6(|xv*X6rMnhjFl3$Z5!0{WDu;ZCg9R zHu2a3L%f++N#F2Td-bGOx5&u)mRCTi4CW17$@CF|9Yg~Hgmt2KPJQ^ePl>LHM;Q1# zh5$lvW;iqbtW4REVbF6=UKoEc@2=_2al{3~Gh&a6JSBTezWa794@Fy})rmq>sIYM0!O*Bsb`(ZGNV)HI(O5gXZ1~J zFYB2Ad#%g==L`VkRw*woU&`%2xTTMtzbW@_-koErH?^(+xL*GMdavsQz-zqf@)W$c zoDcd(fA~j!|K;-+dgJs)J?-Ds$IF*!uLC@moy_?#?8>q}xn{|rhw}L4qtEMao+V}> zZZpuP2iTFIz?k3sH-dQ+WpO7|H{utr|Wh81yaxOTfY|%r^AqMrj_#?(SZBQ`w;Sql7O>BJl#R= zaxi`}V@F={-wDuwp9X$Lc1nGW(wL|n4w&jF;#f0ZJ8Y7GXJRVxlGPc>OC?+kw58bv zMi)O*9bdo1;U{w<;K7r%O0%w40aTQC|DK=_@}>EJRy=@=^3b2<2xX#^3h7YKashgaQbdbUMoF37JVUO!;L0oDFi>-vnT}$e5u7}Y0VMYgL_KISY;c+1(N6j|g$8)?$o;Vnqn*`b zGsq3L5`PQPO^9B0<<&oYAhIPPYz$mCmzelrA0ha3{c}n%(8?r-Cn$1Fd_-dtUNvZX zLB{W(n+QgYXfKBXPBB<_zQ>3KrUbL&B8g8iXkwq1EV42a$%@0)$D0!%w(_IX>-o#` zXZ7u7({4ArN|WvmJ3T$EQ=exzPCGrhz1PcmQuNmTP8+<(kAd@N^Ze(WHn@HMjfT+0 zFVCj$zw?=XfDdq;1bBVdbpqfuUhlv6zTzVs>p1{leg2jHV!rp}jc4+$Z{7DYx2gPY zx7Xctbg`cLD>1GF)8l8)o(*4T1dHPD$<6e) zWrdtVVMB{$n}YNwi_SIU#yWD$qX&Ng2tld84ZvW|iqP;EiH2`juR%M(2-ZyD<-Uwa~>=SMTSn84+Gr{J4 znGs}%$!Wph#>PXkCXbOfoZ(5ACC>uiB03NJ+rbbLXPybq+-vpHxbhJ6u?r52rgoIR zWY}_hfsYb@1v%X8;Ge#xgiF}wKn|0`HsB3O5&llPE4)6<`7(kaD+g~h>7S}mwKxpS zJCRkHuKM8VoCx@QP6#}Yohw(!Hxr=Hcw1J8^gog<4la0DIH3?^BJ+8M!HOE5U*0UkiRLyfDVb>-^i}Ue2@eh; zybxj^MuZU5xxydxV7RRg*B4pe&Vi-tL97#w0>nVEAdCrgO*@8JQ-Ad7nbsxgP6jw!M571t&H*3E?)A$7BN@$2IlOU?N>4?qfgtS zWGh9C-JMn`=_Z*bsr^pBmsc;IO;<&hZi*cDM|p96F2~(L>lT2Qb6()E-|N>GkJ>7L z8z(RI=E+TceOS)`c!jWCU;nw+bpqfuUX?jNe(E z+Y)>Wfji;`k|G=oWo^M=GFwE-$P@^o0`>jvY$*EG5)T{Bfi2Zv(`vxT&ulfo(xxRp z7PyUu!T1@>Zh)4y2d?8D!#tMqclb&n__P`Ou-sqAQh#?MksOEm!4BM(vIiS)MRb7F z$IG@z_!}BPdcL8veDgyN{Z=2}?tp8DNi7R+OXjv52nhokoeDR`nqa5jR*vxxP60-? zydguGFK*Ldq6CyX{OoA>5ZG)!!Qq*3*=~>U3Nfo{=t>+95dH$J0?GcbFB>J^TREtb zNJhLA97D#5WG~4jh;99vQh$Qbw(}Mwj@hPgFSHB%uUr525#G$>WY>nhBl^3T>joZ(^0ue8(l$Uc zK2%2%|56zq`ykJBmBfE6hxOvsZKWWrc+I>JF5-ov@sZGHH~S zTmxUynBx^NW_jexCT7A4Nm=M%hbnGO#2m}eLtzz!k%b3)kZQ=I;y--;^UpEu%gJtE z>I#6G1-NzNhSn|6^)-NV+@mLR;J*a_b(QotfrsBZ0FyWjgBzWV%g{mYL&njXCS z?t;C%>M)$^>p%CpJ_PVJU6m=du6zF>q$UFHzr3$c?>?L-`S<0!ckjs4!wr309>^Ts z>$3J-%IQf zl^B_mqk=?R=g%RW!mx*Bpe4#ml%`0}@G0PJC!2L7-WtIg!!DuSRxZeCk`V?&HooVw zqM_P2(2g#(#242m9))h;L<%v~(LsA=NCsj9R^f8l2`ssyjxjYDx19gfrw}jsgJC*6PyqC`A1`*Z{{DZ&+Cz&0-i#&QK49rJpb90!_V z-L`*M1R^V9`!3t8M|2FilJ1bqxPYJb4#Ls#mPmxo$7@DU`ZFX2G}k3G0 z4+#2aO(&uU*>=~X20v&FnWsD;&`~e*j2Mi9kYwe+(#FQ%%m>G{fQMizG=2uN=~UtN zm<}|4iqW2==dMRsc5*wCR(#MiJD-489v(|9XE4?+&jnZq*hU`%L)LP{LAvQ2KF7tL zb5f@e!gkP`&+ZZ}TfH)Vd&m8=a38v+9m^@7alrn9YQ!PSs*S1n2rPm^MD%ydYaF-S zmKY5vQ)O~q<(Ln#Q^aJvU*QJ^FHu=Z&n2$<9Q{)HiF})|jfnW%=qHG)azM0WN8gs) zE6KO>pG3Y6yao#3H_Dm+<68oH5?~^J;)_)l%gh{4TpbTz)LH+sn?1oY|3A%@%PEeB zqwaS*y*P^AokX8Le~t@%skl7K+1-0{{QqnGAJ1;;?eC%7d-xqWySOOzkoEWf;{79j z!$Pv_>p$I}eBB^ZouLDjXR{xVg`w8f|$uCVnD*05pCs zr`ZGJ^m4e;bpL@nRNZvA{6IX3Msqo=P=nsK9}IKw?ZpDAuC#V&CqVPTchZ*Q7uSX2 z2C~1>Z{;W$V!dz8guzf`gf6%(Sy20R`T z#);bZgNR0VgC53n7`Ss85beCYtjpL47=5IVQHBXb!|bpqBEN+`Lgh$Te#}mhwbP6) zI}6;FhK>VAH>U*=Uxvf_a=K)AWN}_K-V>%l<~@Uv;gb!XWf-XgF<5e-?@cC0B{VJJ zBUZ#3zKvmtxW?zwlUd^BB-Zy~*npqarNba;ED?rb>ne|5LSJ5D`qo{@H*WR@W%QeY z_OG&e+u`QGi|;e6xvt}aIL4a#3G%^hB^nt&Wmvqt(KQ1~bY!|pY*uVrlEJ&Rhdj%2 z*h;rmHt`ZCfI(qaTCduSI6q>%F569x6mrURkgjH%#atv7DZ&+g;nfA{kVZ+)-e0rbtc zQ1}10=tyKk{;#k9?CW|9!0WrT9!~N8$M5ThbE@j>;$Jq^|KOLOmOD3Y={+px0DN`0 zl9TxjUVXWjboz0#K&qq|CX@=h5l6o=7>cBI>^v-6~^yB3?0zWBRPv zlKyeu-`iYt1mj3XsQEk8wkux-bpw9yM1$TKLcPXKtxnz}Nd{>li8@>kr+s0gqvO5d z!#@~S&uw@&TuwtZS|Gw<%c}@(WkZ^g;cZ{t@fCE~99Hq9?_`EZqJfIDq8dI1jEdlR zw)=g{Mo1pX+9)T7Zsa0@1w;%O28~ox+x}gKVMwCLRyujzsH|^= z@5Er58uNp)u)cWgHj_=%caROf!F)wRVOwQ5z+l`}V?PYG^S2J(WZqAzYXuw2NVqnM zkYMP5Sig#GS(o3?&K5tLynsHH@X802Iz6*JNVLp-Z3gfl8PD}F>e)RX8$}4#9d>5& z{}k95kW`k(l7n2b<#9}VVdKGYA888*^JZ^^54dDB0xf!ZA=%-67|+%m$sW^*Wg_dz zWCKFo;DeH0_UZ(a%UUlwC0c}K@e=7iURyQrL8ghWZ5FeoufkOLL3p`-gI^;}nKn#c z9v5b@N!H_($DL_u@Jbp^l;+yLfW_SbVfRJTW;y*SkyColA^m-ox_8;@Hr^{s04 zv%Y1m@BdHA=KA_Cy{;1gukotP`9u5=KX~&8(`S!9ldnF%uiw4@&SD&$X@j?wl~rZ8r%>JX&eem?73}8%OXolB}e=s;N|vX z*1aboK>ZdzlR$@^X-nv3?4{>rh61Ns``%AbUH1E<<3d*6j8L(}$T;Jm(Y({A(!7zP zEPMFJ9yB!iFSAccd3!dQG;N@f0%`Wh+ty@g>llYjuD02&g&v@#+R<6^S3PPUXP-qt zQt}!Mot<7ToR#j5uNYpo4{ow?UCL_dc-p~9OzV2^q|hGkj)&ts>BikT*2hkIc^`X|$qZNCA|TkH3yt5(L8S_k+RqM7&PFhgl8)NCbh91? z9lTJ&Z>Y1>jR3p_hY=TQGd)@ZlCD~>zBcgZzef4&>-t{V4Fs$oiE*;=H#XpBrpz#8 zz76$-WTRhGYTN=c=3#C#=tObYmnMi8G7KiSr3~F=xU@sCmgPxJe>P>=Gp*tMr=}n6 zrv+ac`I715@+T3O%)5+_^G^Tc16zga+B;t*-3QT=X+*Xv7P03W`;u9ID56YFG)6`j zJ50=GE14XU@MC`Be$nybS#ciIX&SV(%g+@seZ;&e@zZc(K2Re_h7IsT-fXNVI#s>t z^)#+Wrm+%j`|s6$a;uBPn-~c%8-O79ip?OMZIni|22b0V(XwqJQZes1OqtJnF`LjZ z{+aSv0qj$Rv67@Hgmi>p1pR{bDguVvuAF${y7m`%4OqR!fyWZmr}gV}VR+ErurMKP zO|&F}zkQ(-Ew9|MEeTE^4BDuy<;lhbNaLwkC5n`ofJMQ|h1CdsJb4yhY24b|Ev8Z5 z{8&FL2~p4SD*$0*fXGYpy%$$6e>V49=D4EN1MH<&ALHGB`>wXPto<-@^Y!)HUDpYK*LSJCp5o0Pyjg12>fU$m z$uCYnbsAs1yrF0PRe)EO;m^;j5X}N{ISa&`4cpHWbG4MM%Vu6)p11dBx_#q=do)Wy z4`8{7D-)XKO%>U<9)=1&<7NBU7h5jeT{Iw&p+hHl@Wi&Cdc`_OSbz8SY!6+lLQ05e z;-~4GflKZ4(})BHZaPYYEd-?B7r0D;lQZDk0@R!K*;>MB7&20nWDi2SV*dSCN35#qgptE`F*=Z_!v zAN)JZSKu-J?D8bcYa4Xp;3q!|-(_7NvT=K>3=6Pq6qVRs?woairt;WmZw1fbopvyz zVjG>UHoA}~2VH^TH^vgq&p?rdi4?>eTPAj?S^_@L(V5QVA2Y*QN;cZH^eO6pLT=^M4 z#|BOUguUe6j~QaDX`Au08#ab{xwH`MjJJPMTfFx-jE9Wzw6`dDK%s%wUMCnQhF>@6 zBnU~MP*>8H0VLT@I+OdG0wauPntmg}Yklk_+MDp#;pCZZ`{Xe*TkpYtaG;5C46Q<22zF<;egF8-gJGFehX4Wrg41ue(Exeg=RSVy&a7W z2lJMINj_t{3XMDS7sJhcgh@BW@pybT>DJ*EGb~=%7S%j=$!Qv?=|WV zmVOtl7I4^X&~W!(Lumog2iM+TS?XAv>+zhyY_CHM#yKfkYq;K?vZBU12n>hL4`r)t zfMvXDPwe+j$iR+18~i+>4s%-i;e&iCt_)skb;ZtZcr}lNy41IA5wSAE4^LY{R_zJM z8;3Eo3?@W4ksgxZz`#E^9(G@1Uz(f=jBW=#6>(-kXiudQDUt)juz0r`p7FBz;b6#` zhh+o4Fk9beAk2PatU?)Mo7HlBmG5_#zPxVgb>8SV|%S=|$? zX$o1_XWC91&ww?8xi9h^p?GyU!c#kq)#$ucJ~U+fCYy8;2FBrC{>rbP;rPj%2zdM= z)DSDrJilru-TNmmP349hhh@e>eJHk@ug@+IqrTH1$r|a0v5b{v7F$f(<%M8U>W70N z4Bh4xUqy;(BH71p;A?|fv3XD?Cx^1G3jrg5oGkI~h_H<|8?qCUeH!nxZdB@<atOA4DrYkWo@u<{yT` z!IEwH48IY_G~i}1=vXx%sU4a?@{7I>I0>Fo&#!&)#dI>qH2bl-(2x8FBT&h(8|;4bPJ0Q;Wps{3G$yJZW&ZfeKy*dSe8nCnyMyUZQ=Qg#3r0r2Vy5ZY1nH1NCHp=1e&HIS)+MJVr)_VzBfI zWDsn{S_$K*qp?7LGAN#T0Y@zjg$HtPk;}wy;(zHS6?x3!~ zH(7?nGX>gnjeXYF27dkoEnS;K~`xu|bZWgF1mE)7(xgCe2B-|18 z*(M8{?MY*p^(_ZF+@|X}g6T+vbv%+DpAs!W_}H>*U{k+F(5Zf*SJ+uOTV|e@a2uS= znu4`FSY2fLfD*k}Z;6>m;5jM50b(t41lT_avo|~AL7=Iwx1s?AS2yZlyPA_A! z(4UTec)z*%DaN~QM~PPySPPGR?|RD)tK(<8X|&0Q5eAvkwazCpueK`WL>BY!#5fSJ zHWn<$o`k@f_YEgLkdOJv8p-ksj5@XzfPDcadhslLm`qA^aNWBCU`+?d7ZKMc&%Gbp zUZ5IvyS@65`#ttDww=NFqL!~?yQ3h&^g!Q28)(tKPvF-LKDl`Id6^x;a$FQkJq5kS zIrD#Vwm&WP2!MLsKD$-wYXC1^oa>9rmvZOqmOlUWM|$tscjWIseOrF?$&XquAAkID zI|C5c*K4`169BLAYI{`BmZ~&nzxSPo^5%Qr(7U&8>#gtH)QgvAdgt!lx&QzV>#~=5 z_J27E^C@nf-Z&ojRRXV2R{&IjdHDF@=gZ#muKkow)7R|D^{XouC536Wi{lyTWjAvH z?yS&~RN=D&NP#r4*b(8*#P#7yS!?PvJ1y*hPf1_K9|+E&)4*U?tQ?hWVEI0O?`I9D zEmh+t3c)W+1*4nW0Zp&%gMmXvKroUi=G=Awh!oJ|+~}*|Zm{?iBSbR*6tfWAnuw8`Z?JGb)FwNI z{2j@u^Ul|8NAeB2L}w)aZ4E&d=ZtFXens_Hf@%2JsV2^n-io}sJxNd6@3CS7ad<|d z6@MZnz7S~=0Jrg=F|x1E=9!gG9?Z#ruRRfv`&q+7H&YkeW1p%ztb!PL@*g5zy{=wd z!Htq)4WAFNBv^Vu*9jPX^Xc35n&_Fx8cxPFi?}3QR?F-yt7@5g9a_vTTzeW`9Ivjc>rcm&>$KhMW5VLW0O? zk#xP#{lGWr3N$7@%3})MPS`mO5pghQE9=`lhP=8fl+*QZKL@8*=7fXNpa#D}u&sMo zeh7xt?doFQ;j$J$%SQRtqzjEHzbVP#kO+I`H!g29HeO{PkmbpKPh2O#>7T?8j3@g` z+1IpcQ-WEjklQ*89bshypEIIN7ewCF1PfPlc&I^!FZ6?vT*}D`P5txv0elZ@`@=f) z`Q_EK`dQa_RV`m%|970`2~Rod#l;17Qr|;)^eUuO8y@T;}2VgT}l! z-@I9F+^lC59i+Yq;Klj5><;xU0OR_}uYUHWJ1R}r$q>NyA@P7YL0@gygI^cQ@x6&o z4=^+x5+Xh;fc9KSX{bh}qXnZwXi)&Z1T=_H3G~wn(%#UKU8>CLz>z|)Km5Q%gZinQ*@wt%$lw$7|ZEd-zo7dcTM_{ z<;iBgg+S!(QkvQZQc{j^++tAX8*X#O&Q18caO>`XDS)nMtbu-lPd1cuyA)8LPl>;$G9w}9dAS-oSgSnuxzt232y zd!{SNcXPVhrvk#Vx`6W02}XklYwlX?PL9VC%fR;N%OJRSxEe;0y% zCo~?2=V+j}X@1(#4zMPD0IE~(?`7!FBRPp|pMs47{^}q9`X4N&sb>JxH=Whh&h_{0 zo3~U>wA?%?<@EeSYo_4Fi!(hxInx(6o;5(e^WWZYpLJ5zmj7R`0C;`ZbpqfuU6z%q z8LGNW<C!7lF1n4cH0%{<^s4 zgAL;)Zm57&Aj3=R7#2;36?VAoLrpn$-Lx6T`6E-TiD<2;In{BH7cMB915(Ar~f1ey1lzRAL?Q=Ijubb zg7YBJd1~}vI_WSjMt8RZG7Oxxr8IU5GQb_~#4^svJbTkiEI(5XlQSPuz;!AowAl;>z--LHo@pxh(Q6 zmf!p0>OyXw+|=j4d?EP#-^a%v0srP-zf%ubpK4r1Jzrn1;kr%$yvD000qP2XISGJ2 z`IA3s_wL<&*qHU@*$ch#duOV9ncA9|7td?6z}1b>B>> zTLhlBhHR#?3$e2B*&izea@T?ZoXEybh(2EH!kiQB`vFHEf)&E95R?t~e~Ng@igpo> z>`3Wvs;&)gwuj~utZ1WlOdS~lO${p>$KDnl-X}(X^k9BUN>@|6KD|%yEl5YB2Zmd) zc}gxfWIVu4uoB-zgQoV}nrKFlVBvN^_a}+7?a2TM)ni1&@g95sItW7NbgNBRi*Cnwy<~2Cj~= z34;X$N5x?Gb|e%JEE=2+4Cit600<6tLd}Z_mFrJsYjD}w=JK*Zy-kAV+a0dS^adTN zx`nIv4}VRfm<~uQ5*P4zU|9%9SxsH6oKQ<-1sIZiu?_G*x0m6f$0Lrve2DVJ<2m5w zqndTd^oHW@$Ao%mhn$Uz>r~R49X55ibHht{eY}`AmnEM~Dj4`_)SavoS;v|a9&}LI zp4lhc6&&l5gmm3e6kMmBed@r2gQJNO5m{H8^Iv)!HZ!*#4vauoH)N6U%V2X-(%Yc| zjBEYMua=z%Ze1CO(GQ>bB3Rod>(}i;e<;*XSf#Kr_Q4^L#QzDj6(Oju!=`KgG+xNT zq7sY={nd(+?3)4W@yUF|e>}dNjCUC~xcYaCtvI2hBoj<$_7ON~V8AoJpmMy|os&?W z!0K%^ze8i)?xT5qd%J=GYi)C4XX|_hv*|~ou+tjv)Hvt%{E3(6I9%AP08g}@mG<)LrQANfrB5C_()u>F zzyI`8`2Zi3zWg8mNpDxWzW$T0J+80UcJ)~h{o()RhdaClsb>Jx8&6(7lRJ0s=;aH@ zOFY2IzP=9QuDm#&%gITZg<_VL-7*wcS63+W)a`U~GW(_?FD}kMxpDjSpDQam)&+tP z@3fB)FJXsubt4as=1%Iu6>=F&xP*Pb@YU8L8k4jPPhb11D ztqaz_!LrO0Vr_)jsYEhrjv^*vqM8yfOSKyt_CkYM1cNH&q`<;MwwU0Ya%W<3|$&%_Z zY+KGeA{fDuv?q4jsAQy8wTFBf&V2?~O!pZ}Jb8)ZvvW-MZqEkl&XBi&zXn`FPoyZL zXli0xad1}S+1t@4=R+P2W$nCs*)-0^yGXjh>hsL4o-OsYpwsk7e^ZOE5O95%4p>{QqD$Wm{@f13Zl5G;D>@o3b;ZP-EDDLIYUg=& z+YSxe8eGX^NCIzmtRxx*`0Q_rxUeiYm^3BFxG(y2y-hkgD$O+hY8vAIx zm9q6dPKiclkF#8~Aaojh+UTJq&uN@&C4?QimidNP;TioHextYHXS4~d%ws@fi7qEL zNdy_RFxVNcidWG{bMLzZ9p%9%iB2nPNvUJhPlH~HwQm4~Bnaq!&=ni?OfK?xd7=@o zZr92+eUtP_>GWX#Il$3zI;OGWRTO?1?Gbr8%eleB+mZ~gqekAT-)(!0fwhy7lr$a1 zhjem3-4DDx9=;I0DrF96cGL2P^V2yGAZ>25h|FQealU{1_B=tlyU<#o9s#hs2YmJ9 ziGKGT;1`d6B>(EYe_KBM=tFrQ?{7)X_4Qj^*DC;C<5dH__Nt11`>x_Wl%M=`xnH*c zJb3(YdW^5z@2kU^T9)-q0*_j3T6J?=9-zP)W^KWSshZ-OjN$Yi!kx!7e0Jtg z9X|~|c0QeNHR4$i@C<#~Sn~`;03hP1`Ehtafxdqsp2@I6gH9Q3X1daS&1IO5#I=YZmNU%jc-R?OrZ_9?vu7QAp6T{i zfKeY=hk#)eY&!T>&-M}X^N9*6_d|93AvJ1pmy+R5H=p&#kX>uT0?<+r_R5D1l5xcQ$dj$^m*-kOdH~Fmp;{mQvdjty8+s1cCbZaNY1Hm?Mf`EOctYj4NrV{Of zT$PasF_~BTW0~7c5odRD?Kk1MTEWA(34*-@;!M3wS~1S6BsR%`O>pJJfx!)6wH4F# z4b_oEKR&yH>9b3GWn;uEE9~t*&?EgQTXFm70 zZfo5FaCLs!8o7LVuK4Dh40w7|-^M%m#m|9<&z{ZY|FShxV=G)=ul2f40Q?TF_urp0 zRUcvcmw)gt%U4gIHm1FI?>=sven&4)PW9gYMDhGN_PZ0^?+$u)c81GxT59mWJDYT> z+W_Va8Fu^f^78zP8tj@L=0o&^0u^PY2aw?RveVe3-uCq$)AC@`^W-SoY~=DGWZi5I3Z3!r!KW?uOjDU6esSZ}| zy2>Z-Ol*1|L#%o-HY96wv|8;?eM5oi$U<@+F5~yEFMHe0R}GIc>K9I~3c^8Kgj1M( zte3AmASUr)5Cr2I0z>Mn!8s8QN#;#og7}o^)yi3bqQENAwMsBWlm_o0!smEVpUjhd zx;K!5M(%@TnkEHSN!dd12b-I4WdsSjB`z2FvoOuQW8}oA4ArD_X{$#FK>Nx=QSTou0 z%lxcud9H5)I9wf;mToWA?%ez4^msN4cb?p8_wW7jUHzAT@PG4kS=|DF>+7{%*9m~v zc+o*f`mf&mSLOTfd|$td?*X3y7hgX+w%1!c0lqpsl9T;6=h^=&Il~R?rz!}SI3ACB zemvK@W~R(ZfO>l7=U;!>*Ad9jy}R-HK2b?R2n;`GXoJ<^d#1ztssf)~Hvt#)3G1Qs zLX6l~1ek&fhd>2GqF&c#Dwn&|u2t)X&tpdO=X`(L=%XbTbl|zHPM~`A)87?Lgqa3` z9A;XksU4U0%W)$(T-i#ezX7kymV`V@5e$;8nCL4OtnFlG8%&50J4E@{Z5g|EK4H^FSl8WuvH+? zGF1v0GNm>!oHs1nPb2`xASr@#$3x&eZ)IiRD^%BJ#cY;mb^127#|G7Dg7s`(hL}+$ zI9=A*fD3&Z9Nf3an02u>jVIVa&@_w5%eig3*qp*JTO~BklHigE2VastSB!66+d-zO zqEKC>E+!U0uG00A1-C92eLRg$4ZmsCwi7=%=@R>p1Q)|*KWt2Ssqj{ILpdp=2+k)Y z!uRX~s%T#yCTG2sEkn!Pn6NpGeLJ`ndCnz~EGoBAC4o39>E7lkDu#Fj?1ip1SoD%=K9rE$E z_Bc7*^d>PD>nNu=<3;Bea1hRk15i6oGu8uKP!Vh!v1Pk>R@mUE;2-*|N{ zVIyEle4>b}7N%FoU@gdR3Gh`!O0>ej&Eyh9BiAR1Pq+@ZGj(}Ute-iIQyg!G-Dbk= z-R-X$8`c++$^cQ`z`7dQIG&V~2N|IUk2RgpyliITxj+a;G&*pf)#WKffYOU>d`_|LWf`7W&3IKeK z7k}_fpWk?_b@KGHN1w@G{yQe|s@nDSTU^&?0KCSl1$BR}`0&p@oZfoxt#{pm>y!o;%lRhaYdbPWn_T`|Dzn&TTL~#4;rcTH6B{H0}Zsnfkrs#is@aY%$ z7jQvts{v}mEbv9J%Kq~n{OCp6%^vrNe{UsIK+z^8E+cG9z4xMrA&H282?X;4pw?h^*z}HcM?al6nz+QP{ znNllnMo|0iVBU(rgqNjZj)hkNd@tjUd?S>MKmdKueH9;9^|VTg`Bi8 zSasZs3Ri-CRG!&38uxK%vS2G7dZo5?!^YVACw{T6Y}Eo2gpDL+``Okh*K@j4J#MRB zyj-wo405M2mcv=>6%t8CcN<1l2nLOH7SucbE;rgiv|ZJVs5l?{{(KJVKxblP`cWTZ zV`W5;QO>vdV9+@5xMU{5aAca#qdp_Nrhms*$%*kxM^QB{@BK_%p78P65@uKl?P1Nn z@v^bDF=IS^9A$I(3?9W8o~6y+H#6s|F0j&DiXg9>zukE>o|KUU5CyUVG#SlFznrM7 zEk8MjzPM~>1IQaUuwq(a)*ZTN5$U1d9dzfbUTf9|`rz@L4L?MJ8IL)SBlH;w(HoXT zpyZUcyIEdcabYAN;=sjrLy}e3y28rZ>>8=FkRZtY=YZJw#rFJ8Q`9>QlWLT~j_;t? zgz-u=iL>9zFi<__LsttjmL_|$0kOXzdqh7XXBbQHcU|!GrT)^-h+(~Av`W0K3@9kM zk@S|sK|I236Da+uV`&;eb^7{LC}az4N`WFP&x`=bn>Vr5T!j7&~J`kn~KJm`4S zc!V<*I-N|Wj&@Hd;U}@5kXY*t&Hw-HFMsyQ5@IUqq2_Z6K(A&YpTnNHN|Ac@*>O7R z>CL-y68apMWljLxoQr=k&y$`#mxs^3DEIF?$GdO6uOGj+yaC|)0KnIKU9SLm-PZ?8 z=>4bo)AE=9?l19&_#-@j^hDo&6Xn+PoBEC8H_F+`sh(V1>fv~h8#mx90CuOl<5jsT zCuLvi$(hI5Px|!h2hWek!xzfN3Ge_+k8C9RrNefH*T5;F@^Txc2+NA$(t)$vQ{RTtnd`O^}d61z#uO82s=$O@C>Ug z90rLtjGO^Ge?Y@*IudPkjA3@v#a`2>F$-%-+TfQs4x0D0F|G3QF;IQ~E^d%yN`3HU z8b!$%bh7XQETFf}M84RLBX0Uck2qp|3Af5~DxgllxP+4}`WHhyU3p)3cVQ$?d zo(wZJX>4{hOAMB)Q70HX&0i#ZFw)^n0ES_j;{7bE*57WceZ=LtTt9$i{K@?w(FNFa z?5Lb(m>QqhZ*z!pBd=48{ZHt=+OM;)EIRBy~c$abf(eQf9^dBtZh9)^mQEq#s2 zhTdP6DQ?{K1=)gduF2IA`sHJkfBf|vs9&wgBBquV_F_Q$-oR*0Z^+HumVWkiofaB< zO$+tAvMn<3405jPGMyJ?=5JR?7T~)M5`+LzUO_(&c1_N+8fs3o9VUbIEHbE{j1x5W zN$l+XZtz%OjvRoS?F@KqG{KI5Wn4ETi9&#+G4V9C=)k@R1F?HN%?Q*YP~*id7v;h}kT(YCJig zFWLIu$CU#-^AlNim~ZWGhcSjz(y>#5drRr@Z56YZ-5*ghLR~uY*jtAvi|sAKL5%Y`YSwKzC2w%F6Hj= z>T;+1-EBP{cWtRmy?>z>QV#%>{@%=stIID|@nG%PUjzJKAipnj0z@>+C3ID{~@6}0-6L(=Zc=ojoruws_>j_-D( zuiBkJWg0vMQm9);favPWyOJek*v#E9x-77J z637EzqQUZzj52lI&)_O#-*4TQ!=G$nVEyyO7H`YSBolHhU1 z!0Ny#Z0H2`9z$6Korpf>vP$p~5z+y1!u)K1SF;QEtFKUg{j}*BJA|B7mmq#$SX#rl zw$)q@<~G_n1BU^RIiZ2~2`Hv_PnwP`U05X##OTdB;>g>NHa;g?Dy?x=f69CLHR(f% zV-SKp(le&-?C>z_v(W{SPQk_n0gL>b=_RZ`I^7DLE*=6n4A}BEGV0F1=WPOZ;F|Tz zv|&KgA*F*}X#fJvsUNp_NzS}&0-9GiIN$U!u=mwV!pq=c9tz00`R#m4PMJV`)AZ+Z+IEpCrk1(L`hF%i!?31*=1X9q#@`(*54V%7@wFO}7~`WXa@^ z;UCI&1dGO_X8UawpV7u?J0aM1lWzl}F0bG7xd0e++!1|51}#g{C#~;(qqc2ZP8b)q zTfEZ7SIiJSkNtd-y&$~7%XrrgNwo2^VEmv1H^YO+HXN!c5nrRNj~~e#od*T-*FZkF z_pd~+iRBu^H;DS`sGcY|KV1H7ZU|N5m%6oCORI5gXParMX8`P{+j{e)l&g!A1(=(6 z%lWexdg~i^!*#M?IXM%Lz`}qM0f*yW^zO?2*1aod2w~UxrcQ zK-nAsHN$Sg+g&>kkTHyqQdVEmYf4zsS`08Pic0blFb`fDbPEjKc-z~&J=k=^*8ir| zksIR5>-AgQkVm2ELpE0DlwUF5!l-a(|9VngRx5gl+d?qJ@QH2is-m_R_7$rag5!jeK8 zeRbYfhFiD}s^NnEbG4sq@P@>HX~G=-*(?{9u3-L_O{u z@*nX%(?b~n`Wj@k>y;@mE{22O8x};G=CVQnaWLlkghZPSkocsiW2Fg z8D6T#I502orU+YWmp*v~f+X7dAMd~1z|HIEGLy^+REA|rl^9p6!wC#a9P>F8xeka= zL*k+T!#a2?iR9quSQehoU62V;UOG&9H7dibnFfkYeQsmJbhJcI-g01N@|a~A;dXgx zyZavrjsTCY`9ZLbtfutco3l)~kx4m%YDEKe7{^7|jVk z>)#VJg8KS$m1RQnWYTidH=FO~NzPr_OMUBEJpdiJh11=V064q4kbC!*a&O+gt@rQT znPaF=TP*ed`|p<;TjBb8t=IJ#0I%_yogb}1>&HL*81KIOuKei#`y>3z|I?Y^>3zKM z^&P$V9>(nd{zOl^99`fXx297)*!fFkPK)hjKb4k@E6>l*zr243O-Zg2uw9Uqlv>j# zmW7>`cULz#p2%^kA1i01f9Zj~urtt<1iD@pKyriZ^ z7wj4Mmh|YK9E|QthM{S*_NLe@dEtsrVt=;pl9I}8WkXMH)Fg?WvTu8{jXp}V zK4H&%Hdg$j)|{adxKrthSOvq5i&Wrh$TeMW=_4#fD*L&^wR# z*+69P+aiHtTNI`l$D`xh%Ip?ggxh2XhUw%#B^pM4Ke`!hD-%|UbQbGlx=r^bv_1aSwzv(l=V3Xi0z}5J0wyOokbY*Jw%7UgFZFs^2BnN~;4#tAq0z(G| zW{S4OU@{&zp0azJZRZ=Lo9%Z2Rz3mK*Jxz#y%)v}^js1R5?-&8p9*_hamM4+VLNK9 z&xf`;PmwZY`)agzK3R9|i3JZ1Wx&L85oVUDejqQ&ZMVJSHE@V4B}TR`bc+PWYOJ|W z={WmX$>`hrli22pW=MXSL>({mJRD+4{jmPE-!z#Nl1EH0r!NLAl;~}Lz*^?BAM4{t zxRecitgj>SgTZMlky@SJ;Y5A$}JVE9+aLFWCCD4B-L`I%Od5_ep$H(YeBp9tp{ zSLa{ss&9L!hZ)Vbq8v(@ik_8SxjY=TE_gnf1?3e+>NK(Yx})AO5g|thhc0;PqYC34qss=?5QtVBgE5A3d5s{-@oWH~wq=hv%Pb z&3M)8^l&AoXR~mW3H#$-j@YT}rC^qmx<95I>q!|q)K>z2_2jFc{JsOaaL-_ z>4SJFHu!gAyn6GiIv`$1&Yt9YkoCB%7OhH|+i**Q|c&tu7aWw^2}n>L9$+VF%*PdXIJ9&BB;x7c8zUmv_M-mCTT&qa}tGl zUkO$ayw;yEj9ByY^a^?8ek8#U>QjhzR>rR0)#s0Y{fQn$+g9e;S-g_E6Jn>ARQ4P% zadL`sTi?L5XHVufZ{hy^Z{ekWU7mh%SKt1FQ~mT$=7K)}K6w9wh5KG*E3dErqU(AK zz-zvYL2Jfp4*olRzlUGkI8JwN+|qB%zb;PB^>hyV+oPkF-EKcmlpf`Hs1e~+TP8E7 zW?IIq?xXqJUw-mQvn#Z0aV$M2dz;$8O#xb$C0@!|WGn#g$L~DO1M3SXFe-lNeYo9e)hEZZaJT|-x&z!qm7+A!> z3~^j}yNe8-9YNbD>-hJ3Vu_pJ>|tE&j4-eAq(e#dZEQE>Wx(5|)EzC|=09F;$U&&j zoHwE)ILrQ>1zw^<#k4f1!W|KH+3@j}u2*>9CSL~IL@;EB0TOBHRRyUrjI;IW&*YJH zh_^2*Sa@4gc$T*q_20U}2N4g0AunAfS|~gEh61s2a3C3c@VJ3^80$-@L6aNRq%(%n z2*X_xKk_r?4R_LsuX#4op0zgnZ9hMNX4y&C2AB;uce3r-G|C9mwh8M1M=^90K=eht z?2HDb=i!~~Tv68T*ela~dlbo3rg^<=|2zj#ymZX;6qpXvkiD=PATg>;2!YzG0x1Sc zb*$h4h%XIJ+PlwosU)8ACW%Ic?gzcob(Z@NCSZz?{4{>#zMY>5KMv+4!QpR3p!?|e zg;sZf^kpKE_ir|vdE1^fok)7v&w?O)*bWSW6Fk;2={BPi+bU%mb{wn>6T*HrJ4;&} ztUsowzb0{tbTYX4R;{|5qFtCs_q$vYJ(*5chx;&ESs<*4G!qUtlHOR+hxjP0k`crN zmL*!OZwxwR-CE0?5YJ*`OjdNq;9*ZNboi|PPU1d#*?_;DDPV9bsf%gs{pWz*w*(RV z*@q@@hyKN&D;IQm)|ja9S0kdIp&$r}4o@`oM);M1G7bK%ecM?F^T$sg{_1B_sau%) z>;LMj0FRT_$xWOB^&KLz^SM5F@FjM4QSRamoZdK<%fnSGb8&u-!{IO| z1*$ym~Vst!(kS_eR=ro!SiD&&-s9*Who5$$;T`h(&bi`ZJ_}w)8Q^hziu>L$Q z_=ruB_h8I%w(M}ddho2r5`i%#$FsqF+N?D}GxFBtvb|txMs(tUpgpATGH4~sX?3vNMZlyZ#KDZ8VU4|<%bb8U?CH4#MPoyW z0jT<_*p?fzv9lZKyjkzD1IkVS(?~&MMRc+QscehGo*ZdvLu||fAL?+B!g9D?ttUnN z@TM+HO>P9_3{YP}V;bZ`J*IH9tX+P;HXCYou&hp43Qjx`Y@#8_yqBB;=Ov8bz#U@@ zHm>mQIf$bEOm4h88Gpe+Aew*@QUulrkO&P=#8_vD^5iqhI&h1G7(h$DD_G5lZGNZm z;ec+U6$)Xj3|9dX3o|$YAX~DY6I0f%D$VEt!2#_Fzom+h!=^*8v=hKVbvJNjdE>-^ zMxDO2N&H|1xlPkS)|SIALx)a%c^98M(_{+Z;BDDLgf-tG>F0J!JR$9{=Q7q&PS!cy zfUu0&$9qCt+Kv96b(3L`3=6{kUbc@=tYsAl2cb2(l^CEHeb_#F;4cFvt7Cy+N%!qC zeE49(Cc~tQEve7Ewo7_M6*1UWsw3D8TZ5tb+WeDPXKTAev(2)}xMjP%s)1395 zRSLl^2JbZR3RVfARS-xI>vlJ%U5BUI+bS2wko6%NS^%aafJfI0g2Y1-Wht*nFyANB zq-YHEowjAzA;X;~4LCVty?lqpmkPGv*j27+QagiY8fD)XryZoaFBnqOX4pR63_!2jjTm#7B-p4IKpyA!?r&HeG_$xYoo{YCl3bIfti zU&*64e>A=S7w;DlK7#i8dR^Cb0^l`Y?I6H<^{mx9|NI@fclT~%+?#jr$cxWkiX5~& zefF%){?D_$<;KZb*`H0vOI*%MpsxNu>S0a-ob6BNxW80is64-T@i#(Fu(;C=*t@$I zU9lX_=D}J6iU92Q-FN5?jL^z554cT9*=(lS2ATm5m)S*kB-xn4m5r|)FyNYjQh(ks zp;y{@U|Gl*cRT6I%ynHy)>k|B_mcaprNo)>FnCz27;{M5WJCYnos~w%x&31Fw5R3- zwxDPEu5Q%S$IX|aV>yUXwgQvoar&a<6rm?Z1ir$6XYn`?b;kt=vu+(9GqTEg5)A;1 zz5#4H+8hiD`~-WE(T?5oc}p{1g$CE^TRr0aF>?)s#E8Kq(>TQ{^WcqWk@6K}n?ZE)S;0_RmjM|~m=-wHnNAA`QZ(aFwN zaGZ4w`$RAjTt1xqqrob%ZI_kQpRbBYcrYCqS>|KYNt{H<^dM34=j7@h9Nsk>V3U=V@ zB_`9{`a=yho z7!_O|3BR!7Yf9}KZXiC_fur-VW|18AR`+!TJ0PCT(LUndD%g;Q(eK74a%~*FE zzPxRWbph#V&#;GWG(bqCOnI!RTu4sY`13gR%YsY`sQv1A+R5}mH?s_r-c#z2br%Qy z?puJ8gT0>3I&-4OUL9PBRt=p(e1#Ffdcq75Pv++a4%51~X_GdFn^HYaxJ^`^Wup)* z(?$qpGQhfrW!@8&9WhHJhh!jPJ>j;2=;!d*Ah3tGxB8?84aa_694>w~w>d*qj_oY~ zHDH*7{-Yk{Sd#%47j4qBUAJrbE4guUs$V_dO)t-$>6350DR}VnsU8CO<_~^QKK$^* z=`a4`FLoYVU0<*5x=sMR=F2iwA3ylGG3(oJzP*UkXF%NoP``fX_ioHtujL59tK*d% z%29U56RB?lKsjC1!z?iK=uGvM8TIGo#l;s&hIjo*GW-ClLVE>$Urw#5}igC78H1HCUvM#YWAsJJ8(7(X&3G<0!w#q!2& zHA7;w4J#U!ib9JlyfGh7M1x_5&kc}S>=@j zg4MX&Opnv3zTVN24IJpOx0wS>uZ-vvFpYdX^EgY=2WIqburp3NoX<=n=0U#LaT2DD z-+(`Sm7}7oF9^=4Z1l{!ie;a4ExON@DnuG<>eEz+nE2RQjtu<1~*K7p`; z#%M38Z>ARoipp?%I~eT*5hul{R3?m9zm+CEy$@jRh%#d+!NLKR-gTcosOOfq)21mZ@PRU@iWoGVeZdM>fGg# zV97kJynL6a!5OKJs}6lOXXYwd;C#LI^?w9J*aM zEfyU598o9P*s|R*e%4esw1xF$^f%vx^`X*pqpK(5fYm3^xMPcBgipK zjyWMF1h30K(^{9=?1}nStYwgA`|X*nOcByEgK(YBw(>)x&f6i<2f1CMrF~!NOo>rZ zE;|t~+PxhmBWz`hU?c{^R+%(5Hr_^SkpU~0F}`IzkonMHXh}?r1PAjjs16WytoK25 zjc2>=8|{cdRO0k^k(_~JKt|i z{QSm8i@4s^@{6zMFL!~{{fWMD_eA&8PLI2~|Nm@$aEZE4X3{xtb}a2xfMrf9JU)N& zN!Z8NJg;)_9?=oc(;~Jbf zY&d1pI3G$W6K+9?@k(8W=}VX;zW+NL-S8@?0pT!q!w$!7077_l9CozF&uP?=u)djx zykQy#gPG;0@EArgSC=3seE3S!B$;kL9meQ_^f#u z^ksd={MVe)1hWx}1IPMzuw)?(NI8!0&X4_f=lQVIDFkVn;8lc#-=c7PIfA*~KWe0T zORi39*|cS}M7eI0Kvs$I!V08{A=Zz zHpFwRV*)%K1>f4`$<^bSG2QVDFwrj)xlIm~_`djB+?F~UtgM4UO)|XN+hLk;;8$Pa zl#?L!2cLXzHrp;6i#&#QKiosqNlwS!ruEBm;Nz$fKX6$cav1)I7RJL$avpT3j`Mtu zlr++Ab1hJBV*=VjGewyzBtMLg_e1mn!3UDTwsf6wBRe4&<8dfMF6!sLXAjIK`-BLH z7Yd@S?>PE7SQy(1Tt8vx665od_{zrPkhYwddUBoH+t|x`yi6B+f>5Ks21I`I{zq~D z-nRTq!zZe+?|doiupjMHqK=&ZfAI9Hzs6zd^6d0f%RK9URnLsQyu?wCT3-Q(bKvCc zMCuZN%kv9;{P;2CLd&z$r~2lqe8wK$p?1 z1-dEg&a{2ivp}>{KG9)U@DKjG1Hps~c zZzSk6Ulg)*oR2nM~?`Qd9_z64S=6DqKS54M`+J82NeQZYHB@r)n9Noc@ zG3#K)eHAbg0!7C`m4RM_n+5!tw!Uu?!|`wj8$=fn-W#7Z+v0qrj5nNjg&k;;2XEiL zW58msRSdA9zo1T1c_dmf-4!H5GRD|Q=Z>fP^M+G4y)3WRe;r&X5L|W@f^Ax(km(@qB#{F)I@-Qi9yn-9!G%a768Bxm zDHUoLsr&8>YIwyK28|gG{uH7I>jTwsFE63@L*jY^LJb*@77ckA-v?_S?obnAJprsd zo=HZ+mMFR%oL;*(kzUGgC$O@Tgv($vrjrIDrg$9lY7#+A)G)1G)-l>rB9>4&lO;Y=$K_TL>;mJ&gfdu=VDY4z zM0(j+9C@os$DL)z)KN=n&{*`94G*3^{_;3y0P3Fq(w99hhyR_T{&z9o-rwHq%O}sv z)y48&fE#a}>CL;h+m@+|YaF{rBE)vD612e87TqeZ8jZIsx#Suf9)3 zD#O;LDr~9ipJ9ee@O#m0A%F9VP&SC%V zY|_IlL^=yleOKd8e);n+j?m}hFdjB$fUgGVLheCtm0j|xnqHgwd$ui}=t%(~hf95# zv&56|$!PYTB0Rf(C?Om7R!v-~3fJt4x+eF;%9*}31$ktn(eJyGCxhFQ07{e7A*0%Z zQ^Q5we)J{&o@}7RLpOF-PFT?vj71V+wzAhRx|XiiM_IZDj)0}y8_S^_*z};v~)Zaz{hQSOHI?R4R zl>mV@8l51Cv<>~)Ww1`@JgcM3%H3;d()YkG57VXTr>=P~2l9sdj_SLP8Zi2HFAk79 zp9Wnai5`87ltJ80!*Ms9B%!ey10Cg9zuI%=ah5^GF*x`b&N|ad690vjEd8GFstjGj zpXJE|NZsZ+PgWX#=xQi^1yv5X0IYPmjf+x$6_BElCk*cu!4VOt)r*p@V7d!pa!cvN z`;GF77;rM({nUL$41^>mNRay7vMsFt44v?*osP53{04dwuDQL;FJYN~;uEE=Cc&nT zHQaYZ4{9Q;yr@^Pe+Ukr5KMR-vIE{o%{OkzkOH#?4v)E5AZ>Kt6D<(`g$GL9@p3J{QC6GPuuC2 zZ@=?BoPYUJ&o0lUMfG>?;PUFFobFDWcG&Otvb(v{L)|5D#_6uqH)+oE$>rkm z;*(o9Z~n1mUF{v&7PLxGA{aBHBK`{dMR)akVd)^2WNn?fF1$3df7I9F6$*+aDG9!; zFH_>RO3_yn$aPnrk?(b4dirCL4K(zNQ&Z+c2n9(;_WpqU=53FtF*;aElz{YLRx#8NK+7XPw$Jz~3{l2r; zA6fuUM!;tU`Wpgl4c*VXb--@C4|DR@mJICM>0q@J75NwXzur$Gi*ku z*DF9+W)F~)jzO=<3@wJSrjza4HVZoh%jzC=ydS$>HF?EO%*2dL^kwITjkd-i8{c&} zH#S3h)UmpPc*Fa(1X6*^xeIY}dfQj$Zzbo(Ul&Jl*^Zda&e5T|AZ6E71P!p(Q7#a{1S)G+h#;88R+8==RffZ zrkf^MU=`Y=tDWYN`Dg25N3~v+)O*1?_|$>NPEW+|-hE#cV>6&2nal7M(wEk^=^ck##sm9mx^_p&7N)-@ z{B0lbPRDX|PMVnhHJSAlEfUAu^tQnogIUvaY0FU7|eFB7S zEX}4&o@5TP=0Uk8nc#k{EUi*we@Uoawli#xtS)acaN`by0MTUJ+VsgD3|jz#H3X!j zKaRFEyz?B33)^Cc!vzeiM>l0&2ziFhfA@ALq6v7+`*l^~II~<6`wY2DdZK;U_>$~d ze|Dgt(an7*3_3x^TM-~pE=`BTl(OapX%;;H59+XqaS@bz4zXG$2tDjKbJozfw;b2*LA%D;5A=$pNeIx zYUT=m3jE3ZUwsq6lb=141Ann3t_?Jp}Ob;u5>#QLoBn!AZSa zUj?|tQ!g%Ge4-Zkv*ESCRTl?nnYE=Cx#_Smu4wC%X}veU2AS^IF8Gl101uFZK~c>_ zKy>`$#s#rh|r;!q$@*iX@RZdZ$V4DCT}k+>&FI|$pQB55t6qAuyVGx zG3;b>BnMs=BoBN>JMJqgQN+IQWbL#W9bvC_lz_v6vbaMl{E8>9Z|~EVU?e;-v*`qx zkrmhZtsM-%%F1guZmmcm<8N(s`WP)>U z)I_$(#6(BuDe!mwDPF!#%yhw+s)U94`XPh)F5VDA7Yy)<5lD_8|QfgeFhkPM6U)oE)^u-$5Z z)1X_P`DFWO&-jowF3X7tx5Y{4F<(0zQ{)lrmr%&7xx$z!!Q(I~^6IYf+C3$_dN9NK zF&{L@D-v8*guXMH&M*kZ(Z1UZsec;JmyyJA8%}$$R~PX$_iw>Bw)j;>K*_jIl5DiD z$130BrUNaA2Us65t!&(Etf$;>LD&K%)LyWMz$*DaIx=s_LxU*XnEtt?Q-Mfg+4of(aP_?b13(|^BsBf(GOa^ z5C81LY4)S9W7Xfmb-e=McW~9^|1}9v53hI^@9K{}`H`Ic-WmR@JF`r@1v!8GV*1AK z-Pb!`JS~^|6FEIQE5~xF=jS`UF^@=nRYp1NWGeGDPi@Ma2$-%!zxev$U*Erb@4vI4 z&1a9BEK5@~!pf)0r|8fLNr$;!klxm`ybjQ2D3?AKW$1lc(`GD$l&LqYqfC2Bzk6SH z0=x$2X;CO@vlO%p*JpMnYfnA7Z3<}wxV5jTmth0cVHBd72NB*8d>KDt`)usl7BBTB zx(?)!Yam>wMTf=hUQgUuV4+7c-W_(|+wX(6(8X~p)SrxP2C!^!rBOY|5o64jW)!{* zjNe1umAcPH8^G?A5dK26k=`%w2d*m;w13ZmL!p@jr>731uii95P-R~o7&7DrPxm<% z(1)=WrGp90_ge;z5KH)mGO^h9iRX(UUHl{^M?wZ%hEIPc{jf)KfQhWVoEdO{(YF5B z2MaKogFYpr%?T&xw{cjZavv7lcfPh6bUuB(l@GI5ozK~kG5ugplj$x^_z+!u^-TTg zNf0W}pJ5CL0mars5P|6y)!}wUHtM1~SGFgJaYY!2@MMNVGxX z`0fyA)>-xp-;x-@XK-cAsA^XZUY}@|S0Zr`mHEzfDCtFBg~0&^2dK<%QxJ{;i_vuv zsL?0u7U{azlX=7^+$?|E(&?kdc3jt{KJpk?KRj!g`xC?V~q!B#ffgv!*FAHwg%aMwABndL>jps zB0j5a6mVl*d{Q4uavgL4M!zNl{#s9v4nSXN2ukco)Va`DUKrlQ|1Kv$NRj|!d>v;h z>xYQHg13;z)^s7!c2tV(bba>l#p8b%q?F_NRP^M4y3D^^^#+df%zyn)P7m_z*;Bl6 z>$Y6tIqp2Yr7!U{@KfO5e|b^<_+Niqw^FwetrM$td-e4}fUozu&Z_*5u671MJqU2V z{>{JsH~L3^xMa3oJbkA3a35cMc^;(jMma0rxN|l$`{`Wpw4CfvCY_T2GA96ZSL$IJ z|Na;M;cpf}r-R>oNmlg=rB1jrgWqQ?0g16P_zcO=$KvZeU4WkY76Ksq0si)TYZQtK{0p?hu&Vp zbvMe{|F6n!veO24CBy#F-)_aqkg;0BA$Hl&G1WE3Pn^9s_S4#XXRKcB5GL&lY zBiMOcN?pg*#^0YeL)^zoHT?FsIrKWk>4xQSL0vwBGh+^`IZB?`(PU_*u~$|Q$35VQ zNQ2G?OA(FE2ID``GCNBuv<&t%$~BtUIOuRni*C&Hus~t7Y4?040C9-@dGC`~NYHGW z*s6rgD-9-^xeFa&z|IbiA~`$@Eyc!GW$mn4U&iMORv_a!A9!X#r6UV!6C_tWfIx6s z4JRH4r_&fyVW*AhXtyQ7fJBom2OEOTAVD_%*x~f{Eh(gNEI7(wN7>*A4sS2N>0~14 zCGmc#e4c#@G9+HH$-X<>lo;ZqAH(bPSA?bCOuH5|QN}jFO?A4shr?5Ly*`f(2P5OK zmdJ;Jrx9d1oUSh&&z|HSFi(Rvwi?6(e_f*@{G0gIWWMR)67jCrPR5~QkVGCyx?_rR z!2H6rRAL4&-Kae4EO-7(OpqeMlI7LtIQ@q4&+=;Dt&<}y+qXa>1cZIyXhNf1ygfk@ zAz05^SN>{Ofc=Ij`ygJ@0V}Q0_Gd$^? zJDcN|G9C3;4*|RcZq1+dt!F3GUU9g&Sn}IiZk?X#g9l#%_b*G`|NqWEe{Q0uV4NAV)y*~g?xpFxbfm#>ze@d z#;t-E?HvHPxH!k@$wjH>1=MR-m(f(=xxAG6DvbwUfA#cuJbWqPKp8~{TI(IvU{|q( zZCGZQm!RJE3@2Ecd41c-WGDw{MnA0NgiTUQak?7ng*< zf`9}^qa&d#_q43Pp&g&GlRO+HTmBA;6V2F4FW!S;!_DZ>`a&?=VnK@=dna^vu7%no z2-!gk;89>|ZBG&%2{wq$8R(5nG;`jJn6*d0S*d5oos92tX23Fr&QtySc)cTrqXr$m zP%BEaC}!|%i$-@~BxkchM$epx;Jj%xT!vQ&1dNBU5Qb62z+o)?TWHdXnFi!#f$q2g z;e=c_q=?Q6I|TeaIEa0PiZMNXjN#}FG9C%8)9^}{Js|7($f09%F%>i8wssf*L zx33r*!5BjeQb`XE8`Rq{+h*gyK~$s5gb=I%N#tovo!>lzPKfXsOlB|0r}A;^)k3mi=!B5CQsPZ0Rx4cwVuQ}smp=oI2@nA0twpO@X&rpG zBO2GsXyva6RXXrjV~`Dk$NfQrm-G;iW0Ri}<&wbmgf$20OjFzIp8QR(vzriBBpPf6 zhZ4*tOIF7H03Grd^t?o#6Hwx*_bt)a_BJf30*!5O;)LNcz6iF;+Qi`3oeNr&L9^$( zxN76#>hhB>pFMh}{q+BN`ciju+;VbqI_Er&f?XAo`lhq!VcU4}#WH8c zv(wG%aUVYOAOl8|BW{P<@_urF=JJL3Y0iW@m)`JbPskZ!xb-(!;oy)lyclmt&@R_j z#%aIdj40#BjdGu?=f==FN*OOrba1%smJ)pxAuw|1ZmA;(jE4_Hvq2;j)eMxMA~ox8927?ylaW{GCJ@c?N(o-oLNxEGOmbn!*uZv ziTZ(gi0P(O&vcT_yap#+5dsY%oS8Q~2$@EkR)*nevb^zJ3D0)F4BqlR$RK%O{CN!f zAI}ELhC9arVvu`koAI@=VI8WZS6N?i(B^GR9BShq%t?(6uRW@8kXiN+jUWu?8a*{pPr4C1; zWsoV7x1uq?w6?ZvP%u)d&neMUs0|A;tv}W~%&W@%7;Oljpy!FVg!sT{>VYyPunZ1f z9b_MY4-&pSE=bSwN+Km$nP^N|1}B1N06;h@RyJFSuZ&l{9Sr<=rAqca+P!H6{5+mT zwa72=2V}n8&N9<-b)jWHPi7wH_@=G|*zfjwc{q6Imw0}Baq^rf z{89V&gFpSC-~*KFng8G2b)5kC9bI-1VBH4r_M30(xBr`a`dxglJv)E)Qg1!KsZX9f z25wdXxl){>?00u&Mn7v?0FJv|-Ssk0{O|Pg@>1Ht8q_3YtakA2>Y3~3k2A)9sx zppxQR1h}mf;$>t2>FplW`!f2ZV3n5e_uuf~Psz7b^2LIsfH~}ZE$~|qrekZ7!HTHF z$ANokdxEz!jL2BEpy@AP);2bbn~WLF>}2v!bKDxZ;;RlAMh}8o8G4_0DWvYFZg(Wu zGd4uZUKIy*R+xjr1{)aC1eaFqrIQaPEOutvi5hd@yFSd8oWB z5S+@eJWZ%M{!K<4eOY~8dg`caS{A6IuF;i^s`V?30AKc8){lAi+V>Ww>K!=gc#FZI zsR)1O`Zk*+qrK=ffEt#$9t-dE46ssWEngZ((n}uTr>232&yCe{JaKfq<8MI+1moKBOBs}c*${9zb zTPfHKK)Ef(+v;$6NpA7ELPEi6Yme>dmby+-wZ<{%~Fo$YkSh#n$pa5?_;+SScae(SlKip-6}y*h-ScAU-B4Ac+mSwGR`pDa{F)~AR^tB zaAO*fxCP#vY*v@(;)aQ2F3jL38L>Y3jF*Yv^nh0p0$xclO-as-Hk>Ro8ZmyXi-Jx7 z;YRIcect>MUGup;(^LnEN4e`P!&4+%kaMQ5(R-pXVBg4^4O=TRoiyo*B&)nq$;(lD ze$EAL(c!+Cgvb*L4EmcXZV=0POo`fB%{OFaPhaT3T#(ek}F0%NMs_%Gt@8;^|Z1c75^!hvPx& zn*dI0xq0sYc-ZLyS93mKe}L|b9994BSO4%gy0O(#v#`5z_nYupdX08>X=}{r@~oAY zapw!8VGH{0xv;UL@@`N;=c~}(?e;MgJWKlm5-FZ;e5ALxzSKYb(7|9ZOkpA#o!)`r zn*CyjQEXOEqFtgTJZIQf9I!_u>AQA9J|2v&m4e{CamF>}P>3n-pt__(C@v z`i9+Vyy0~7xH~(aOvAh+xZ@XXxvUMG-S>M*_pcmM8*f3_qsaRuGm*@A_OXt!io`^L z_mK@HuyVqgUg1RM^|Dm)v65JqY3cN#fO~UBS+FJ~J33TB2YMQIeF)!@ zEtvAN3_HSW0GC^1^-^eGHFLsflgK!(?CcPYnD6ZOgx=?%xyw@vJY0I{xvs(Co`P`O z4Wcb%4LA20=(w>O#9^`a(!J0(0zZX_YuZ!aJ_d+m zVg0y1)FjgwvB3*p!`?JFM2gXdg90ao<>}%)M7Mc{G z-TD=TGbTXra#BP!)-Rh#Vim+970Y9^qL&Qiq1>-f;I4xoGQWYwU4U&}%LXgX!K|K zW4T!x4-|k{I6d;RQx`0=f*9)b#_yA z|8&CLyRF<|f1-MvBej#Wa)~N1^(DQRb>WP2{~Z69pFjA;msjQL%Mqk2*1l~L=q~)e z9iS^YU$Q@q{ole$94z=4=LNWOVZ#i>lZ9!f(2@??VQYbI@g|0IFC$6734wmdo<$3F zRe-N#fcn0B*L}7sp`$J<zO)JS)OiA9pvnc1dzv zfFOr~PTVLtyu!ld4$*RuP&f+%#(Rb%!LlRgV@eK5b{IPTvU2(q!C9OToiI2E7|!$3 zhwFq)IBO?6KJ1vQwFRfYk9>!xZch=@57S5vEDjPeI6I6=e1ZW(NCYwsl2g8*sbK|A zgQ4L>dwQ+zKY1yFlNiV^MEfbozUwEE>}w%7#${v1yvY%=?bBhN3G6Hqd$F za@kCBUQ)XbudcqXf>B--Ac=(I;1T%>8+-<8-*6a}$McEgfS0f%$%Yc`l;~D;J;sa=^O4bt z>y@NeY5_C1Ec?#Cr00^~=vTI_U|J&T1ltqO_kH$yLOd@)sm)qOH+WdLZ5Y!UiB}tJ zQ=}2^={Loxh`f*!91LsIHMGsbc`=Pu<{cpFW#?^)c-CtNT1^7dHB*EOz{)0N}|S@0`wm7Y{F`?*DHG0M6Gh>LCDceKggT)9=3ZZaYWqdJDks?z&C@ z{4TE_Lh31&m5J*rfctmu>+R>?Sfp%b`kT{R$F>5XUgcJ~Th9Wx+Uah$YYe}uCui4NUM6u%<@JzU%w>_nS;5NtL^k&9bkDCNcc*eBt&l`L)^g_Nu*<2qRI4z%c?g#U@ z!>S2ZPc#U%BY|Yn`CI6@I$RpqGx&wI=p<=Kl-Nk)crt!L$4JKutTC~vi;PX_yWjV= z?1rXish!o8%7=iDDw@M*b<*SIw#N2Sf3j*njUV$qhB;teqBxf4= zKjX6{rx-H7(gzJjL>k2(YnWEHiTEe`C@wz)Z%*Lb=Oz!QeiiEiEK`!6tHwrkg9v;! zLA|E2MCP%*0pRLt zIR~Je%JFjkIP^CFT$N@2|Fik;?Eb0VJh`cO>-X@+joW(fi@W;iCvUdEza|0dpQ>(h z;`R00U)KqM-`%D709p?MZ07)c|Lw-arpL(D>dgQ1=Qw{kXUKMS z0nK?Shk9Vfv1QR_K`e*5pk}`6E}F;Bo_sQ1hv&U@H85uKm*c7w!4ZX$ol@HG4}=Bh zt`~-K)b0$34rO3l3f78tX*+~1zAv^=TuCb9>HT#o?y{j8-OPOK4SV6orUH}e&@?e!85jz-tCHy-3ZTu+gVvEI(Bl2{jP zB|8+6Px$Q^!3K}p$UK#k0J{VO+eK#)S@Q?O#A0SJb6*3P@s;VrdL*}n#2@~;KcY`| zCW9QLv8ew{i28R6{uKy`FEe~xhm&8Kp4qNxTiPswd@YPNS8{*R&U%ME~mV|JVQ76;5*i>@lESdAE>7hJdmXTXX;kwe2FURE*e9hduCD^2)%cR|yFU#zTSCNzeYXpR%vxO#(hjx>oZ4J9~fkY}s+$31VyI zKIh(BUjV8~APID9fN4!@JOzy(njIeZING8k7-2gcGhshKo+m%*LH+~g!QntN?0NK) z!|hS~$>DI=Ce-SOQMaUNHb2yAj>Hkv5=oTQq(}n%r~*)|Dgaft>fU?K&gGrCbFKWX zwfAM)5h8$zxEr{2&e=P6=2|P)cYalJm*W|2G^V{%io;N+;nb#XiYa1U2EZLQG*V`7 zz~DC^^yo(CToBMp=^g0M{SoLJ{XWcfWu;LxB1Q|MJ{=I~Xh8${??mJ_K$6DG(I^=T ztvx&TSmt*}>UC$pMgkm_nP#SEtTX=M212;h!3-{U2O^QLUtsCSVxyu2^+O%#KWJYY z?cg3a_?i216qrJ4%TX}+AtATklv*DV)2ef+c;l@#ldbp6zY2x0?u_N23E{TYhz9=9 z7BDD+N8D3s#^W|^6aj!T+8&+&!M+#nG#z9!}?{aa1QV*(O~uq6L~quzQF{aGJ^|* z#YDB=gJ&r%X^AqT^$IM?RrDxy0S|u|KdZ0Z$`- z)PajZDFaOnC+;+Lr^htd-IVCizSiM_eC#~&GJ!fugcka?o@Y+JJ*@}z9MYoJl^rk4 zz7cgjvZl8g_yA>6f-G1$4paB3!y5HrqzMN(w08n5asL|alQ`AgF7|Mt?Sa7pqZ@!~ z?<3ua*ZD%!GovY=yD3 z?+PREp9CEwAnaGSAJjup?&aLKSn2Jk!S#z zSYO0<0wXT?Bi4^~fum6_oZ9I6Um1XGo%vz|MspH+1GZTm^9oP&SLg4UaF#=NeCAK{ zhoU2De5HRvi+~bom7ww1*N#36YYBN-fLH2oG~{+##QYc>AXRMe8#fa)9%ZEa3Y;Xg z>bNq%h0Z9)nH02Oqt(kfy1Y_AmipPj9%O*xEp}bOF(HM@3H4@#3wX};UjUWBnRQ}g z{Q~t$_%nVBxJLd`xV1gKznZkry2QgB1II=A6}d9q7-)iWy4Ht54|Y6w39Gb*(B?+` z3E+tYi@FKL3i%aZMVhUM;Udvv?~uRH)FX5w7cYmqblv01fNY>Yp_}PBILIf}VlqnYT@11b z@K_^POxn7cW~J)vVI%T`9y#JfVP>23dfjqO_;d2tI&TR4hI;`y-@)VX&B4 zX7p1H{`W-N&88*;%KHDO`zLa=J;=O0%=@cnvKuzC+nmbjqp_qd=ay|NkU&c1_419$5qeP0zh(iQ6! zvcP7xvuyD8qtAN3)57s5S~zC$KHO%ssv&VxpW{fp(pNft76wpc#Q;J3IQ7gq=xX@E zFb1>0E^#8{vRoLP+J;RHfQ0osZ=(|kox_3pI}xb%2vK!RZ$W7&;~X}kg%gYp zHn-0;eX!`K6~0~s1mLg|)NPNN4CCk@udxKL(@6mC$cF;&MSKlU@%Qu`_q9NQ;638N zhfoK~g_E^Vjssp!uY*ljR)K1)byi z4RAyIgynOn3#TSK`isYHE#NUd3p}9wp!+Ad(egDs*?-TngxUI-0{?=n5q>Hhw0=d} zqD{jqLqD%3nV1%O-RT-x;hT1$?bP3lI8kV;{Zl>@ly`e4Dc=R%CqWUp`h#3KSli#2 zY2h0BLr&9(f8tSiv&l7T*=+N*%UAP$x1XMl zd})7_x2Ibi`$#!?!^^?ZFoVl*oBi?yy}jlzTbqIZn7jd2=29GWN*~s(%VHD;^3@~l z+5Q1I)d_KqGIwBX$3qFu1+`@Xutx?u8OAFd@PSWtq_n-pH_H(cq(9IRi`l*wE3X1N zy&B~iCOz7V3Fy`E;Q#_F5s_bUbj&pj_2GT&PbJ=Bdj8sXCp;dgcp`_%2KF=2sxB>f z=C~9>VQsQen#t064T*_Py6JG>0jsb#&aF;2wH#rqI)=L3R~%a(4?ury0|OosFPC^V zn%BG83`6JrHCPB>sP9pC`mITXu_4#&iSeM8i+l29@w_>}JY#GZ9rw5_MQJ%o-*9Uo z3%o9a%8&5{(+xxm9nA>0_~#g~tlopRD=xsZL_rU#9s>A`#}%9eW#YR8jj_`;GyJ*V zkAbh_0q%duTflN1_P|eirL>e~Oyp~w6kxqk)-SLgr+dWLu7|o=^CZV5^zr;1(VHi>FX*rVZ=nC+*6Oc>~lPqKa{S-HQ5tmvz_JIx>Gr8yK6p`% z&#v)HH_!6lzxp554FJo2XEPM%Id|MBT=JlxLfW`-&FAGY(+8f7-Xe)>!s z9>4yVfAY zK|i&3ooa5%3Z2@H)@*!rqca%22W2bH!6h?_xL?4cQdOj_E^c*8 zqX`qtOdwvVM#$~r4ED0a$K437t)bSX8>++=B&JRaY*_oo3~&3#IUTK_(uQCk1A@fG znqkl&qrxPPT#L1;YMkPcRB;0$tRLENI0$R1vsE^iY2wtH66edVIZ+Ny>!&rm zc?DjN*TOl{KG)acreQ=u{{R5en-wJ7>J|E(dmY`e#P>Pqxn52GjpfCcqk#YUfRWRs z46rGkJ2Oys=2GZ?>WSJ2<4ho0C@Eg~uE`d}J2i%J@1Tz0(B?VVa?lxz=jXt>2zI2G zL7v4xirCkQ7wR2Z;T!C0pxnf~BH4vRDUsK9a>3 zUkBn7D`Q@V4}V)Sio6ccCS6}hh>Ca}cC+ggWS?l^Yef0wmCkqdhI(k_eU-DgbRljC z>fV965-;0c$O6-v&s49La5&rV-}~2Z{hRNPyZscL@K}-n+xmFQ;+##noHPngu}m4z zeERf+t{i0B0I*y`8w`DTe7!dC;kaq>lyJoxazm&<((p8K(S)a`OpB(wAG6_>avc3Q68sz1Bo*6-#EnU0+m zuAW0LI6BVoU34?N1(gW*5?DxkGb|jHDL5XC4qdya&CfclPnp*;N(NbR5CoA_I;nCu z;vkIVpHmC-EwGRH5G{ASo)NR<002*PZbViLr8!X0&ca@*LFfU2w6YdJDq$2ygwaMd z*gIClOPa*XoCI1iZlPUvo!9YEh!>8MHb7RMZPUKiARK+W?tFybOcXQSeP4~hi*cPI z2fVRfb0W!j+hB@)KtQwV$OIsx^AnA_emXkg^TrFr-cg9O#tMzkdD)P2w0wi}XtV@b z4A*&%QEUsHIfT((m+;%y!^kty$tLphCZUa=b)gJc|1vq}8)=7pyh0F;&Y;$@MnC8$ zR{fKf07f=g)Z_RSczjJxWCl{%W_Cz<*^klr)O#}Xh0_UErq|JPf&qH8Tc{H;p=Ym! z_ARKTb@`xJPWeNYGEL{a>tt903Q!Lw2TTWuhdnyrXyk%zTLkv84r~kcl7p|@%YE8* zq(|&yq(90}>@Sp2t1JAb0KeKTlu@*Au5G5J&7c)M8}9wAa!6N2O=6$7 z{=f@^SAzF(WZze`eBbzD1y_tVW3Z^r5uaPVlPf1{-dZ_ft# z;AA7m$B*f3dm>LCAILp=kLcPyZyxXS!|Qj1K1XHhe{HF30C)~27uR3Yb&&x0IbS7< zRT#M>0qE5_b)RosyDxX|-kA&R#(a8kBv(rkpzH%M?1YYvs0huJK${}|LGsfRnUVr| zUtcJjYfRxy&hpm1pM0a<5^B>qsS3DBOzsBN*`M;+*8R*&2#9QySc3?+X`J->;5Zpk z#n2RMY*QEKHR%L)s7+~aN{?Ng^Zn(>+0CNe4gbHj(pGOBi@FYa8d7j7(@Jx)3r&`%Kn zI@YR7JEl> zb9aUk?3jZ)d+Ur6tw#--jg$~LvjTKw?|7I~gT@hXR05eFvoc*@f+f}aN<*csdnY&0 zgqF@7$Q4F~Sfp)?=Vnb{5N=Kc{)RgBU44%Uc#vGugVD)gg8KwCB+vBFt`O*($OGij z_5lpkmE)~ld4xQl zq2fil0As~JoS1<; zrR(~2YOKmXPG`1YfXD>~9y5Ol;8kG@{e%e+voi=Yc^)2Ms=Mt)0D4fcVW`L2gidqi zp$&Hd5pk5TTtk9a1xB3H!lo?sQ=mhwAHEYP2$e5^a;`e*u*IbWh%?Tb!}|(9!KaqN z6Ijq*@QTdZ)acy5a}a8QKZRkT+XQeT&%;PNoJoLmz$@yj1@1vl*gMGI;_VOCW&VuP zfV%8BnPtBe0LxMM?ve}Q;lKc0>ANO+)~8J`k%Z(3^-b(lPdoi6Gk-Ib$+7dO*H=#{ zAy0pWK}?X-6+zel{uQBjV!ye3*Z#Cl)tCDvX@yK_PbOz2i(f(a4LsS z4&>6O59P|yWqIc4iadDwi0?j}H~*`9rd?bg$#szc_&HxKi)AwaUby~(Ja}}oGWzq+ ze~ON-T%INJ+N1ihD+z#O$t7b(`820;j%FGqk7et>Drb4RL~@d^|K%Is+>hhDg{C@7 z1iI2?__*2Lu5jHh{w;tKTSH0xGb)*?BlH;>{@?`I+~LXTw&Me}TIn{*ly<9^I=rgD z^+-GmoCzxrH;$yzmd~xd1Vg9x5|>^c2>epiabD9l!+6xAJ1> z2aD}+UyKF<#&`?I$109^61gLmVnAlJ2YefjGx-1i+G)i@{5~4`Y&EFoMHLI@HL;I- zkZ-V$TZc1+Hlh=Xff~YNx(fJ>*fWy+4A?2W>+q*OlZ3UR@SG{MxzY~yQ*fr8OxpU^ zz~iWsSElPzSJZQH$7^^&h3;{H6?K~hh62uc;PVBH0{hNLpe^;avkQ8ljEe)y2VDU- zEGI#hF&K$gtWy6*AVRP=tCc9fYJr^BXPHsJ$@p44Ph0s`2KO>R`Yd<^+hku4+7?%Y zd(dHY0~j>mkGQymgM?>f_TA$eVWXveU6W5)ktGb8FtDyXBwi;8ytsOLnbx7a4sa$^ zSmNQXZDE3jmVKo#BD@Trn3#%kf^Ee*jVHzQf5#trHZT_2JbX{}8{)2XbL;cD!>{(p zCG@D*j|n3UmJ@qjPC`pvwIcr%_1+r)x4$ZXG#|qUudk|s(#}8~Hm!?884b>3G6<6z zN>3)QgVto!;RdvffW}(_FsVK<-;(Go@9%y6yZ`!I!@wh_A#clZf1Bc-q#Cab=~A5m zu-^^B+b4NdH@934EBgOi&g`<%CFGnOR)$HU_)X=Ou=DQ`wc zd^qMbW!d(7N}Gdm>bX2ja`yh?hyP;MR|3j_x{_?uh42`#<#AsyHNPn&X%1Mo0ifs! z+ac#%%>f81e3;a(c1)Fw={D&)8tN5u2wL4G3E<9GosAui_`7`sh^TMO7nQt6WzC^+ zD667YLlu=|xw3d)ycrheP*BNXoA-HoSQg$H&(jK;M>LFcfXGK4f9+ ziB^LYG{!{DUvHZ}DqYlB)cQr&j5m19AWMf86Ea5cVCb?e4XUlj4Y0Z(9%R7kmF|Rw zzVikaaIqjsK&GU_K)p#%NBF|wdE_SxUVtXpHbaHF_LIA8pre4t-z|LHn1FC_aez^N z#&c;t0XPRpW1|Q358^|rhiJ)rDH4l1(e$=C(d{*pAJ8@JZ!ud&-;X1Y2y@*0agm77 z-yzcz`!~MhcpZ4P>CLbRsMmqhK2?q?FXAj1@_d4U8~4%l9=K93M*${;9Y>EC8sb?8 zEY>$0PE1Q(LVlDG^`2`707&6|fO9dkiUDs;s?~nZ(C5k+;azJF%DdnNh^9My3&?H^ zFyqDRw|n3#o;MbHG67#h{}bSBZGo4M(3gIV2^~z}q}1P$R!;dKMVOg`1YlSj z7ywr9HiCM2X@$x&+dn~iyJ({<*+9Loaq2wcqOgHp>N+O8gUbtWW|HA2EBFK%V}K2v zX1zxg=nHKlZBnZbXKGZqAkl=fG#eEQ^Dxdi*gG2cxbJ$)Od7-iTVjOF-0Dw_b% zVO`S9<6%CyH1B1`mvesZ@-z7wT^h>_fa_Nt%C%2F;$Qj2|D{XiFuXiQsACf=(@0s&K}p-K$ws-Fy&V;9m96M*Lx#zD_Y_>aPd} zd3t5(vmQ`sidYhaoRf<*?BKf1_fXNQVR1na(Q4our;;JvoN)tZf*Ce&)c3#;;O^RL ztBWmOo0xwD;~gSt8}uR0XRr+9KB7AH?r#&t1leI^LA2?6(V%A0P)Mpm2zs3&3D{T+^;8v~D4+>o!>)nVvl zz)2rse`%X`@cwh0*_FbStA#{(Y6Hn2{ja}t0-W>62svPc6hpC#xmklUz3)X9$y zz45~eFM7rzrxO((l&vhZI9k+=hGPZrzJz1lv7u@BJ8KeptCfOi4zxCD#>P1ay5`eJBHBNKT(Ghat_8IhaG zDYX2w;J(#0B+qXMj~;u7v{U#od1QRUzU{PvpW2tGf0=-uLf?7!hhIrk9Fj^BU>g3X zvP}7`L>asCPTmlYygkXfhgrFHn^QU6olTWItiMYP^!8gsZy&#$%O>gNUR^GIaeXA$ zMFQX>xJqzZjsh&lS`;RKo?0J_eX5XRLk^A#MV+mb!*cE z)eeL;Qx*s5PW@)&WohiQ^dtosD1}L)VQvq_lpfGrKLzVk`xu;u)>ib77LJ??n8bg@ z(d|YfcWOd{{z2zM3)th}Jml;Rexnzs;8ZNM_^jv!kip}=Bx^Z%1-} z;10q9BkMVLBkyR+fXhnz3=Rc4lneOa2CijAN1mF2SLeF+i{iA_Hj$e`80gXag=y7U z(n^@TlfnTvr5Chmn_MP{x*R^Oa4Ty|v==m0e40$Mo?k!LZ!B(sBX`&c=&rcB(V7*x zxAxipHrh3SEa5?(u9X(#{Mq^`t6}Jq`CSem`anwjcMb4OeTaW2CIcOqS_j;V&ThP162R;BD*t*L`Oks`>cN1~ zoy`U@dcCMymG5()YtZ{{lSHSO0N)|pA0W$WBVMI43}R(T3a5W$se|HWPCt`#y7h_) zFQ?Br=sZ=(`keZ2v?FV~)9Zx^2JI*u@zWsM2_joRFX<8ZjsZ@ES;8OE75Pqa#XvXV&d?V60kK|dZ^iZI6+U;kpHl|y1}2Vi zjki-UaFd~KrL6^g>~Y7y+2kE)q<@%YamJ{N$;_BGIF0tomnyzOw$&cBIq7iKh5u zw(^W7jL@Ir0AC~X+3xJ#*Z=CzzctFdB)Kg6uQ5t4|4xnohd_A0;KBS_nf||@!jtXU zMxIbP>Fl7c|1a_XlMfzCje%Y+CEqM-|7(my7uQF2T_gZLs_WHxL%`ejZu4h9`&ptX z<5iXcym0+f`2pRhvL=QuNq&5EIbWK-mg4}&VJBy&Mc$9b68M+tHfcL$)uv}TpoR za~arizBz-qiJIG&K-(wseoi!83R4@6k>)(I0VWl`9F6ngX9YEkObBy<9UU1X2TY*u$b21Yc@P+akv)G6{JMuC9 z6Ynd2ZfYPLlUZI7*gP`^D#YLn0!=~goP&Xm0$$oxF{x1BL*AwJOC3v1T!>R`O-4gI zth$9gJ_^6dRI3nqC4Qnz0qtD1NFU=F1E?qMQfQl?>}rrsp&T2E&JiW37h!h%%N`eW z_E9!5&~SYf^dJW77U)8m1)aH}2frPn(q+*FR@509b-3zJOBgV@QF+{Wv&ufu*R2O{ z@~1ih1BM*?BN-l64*5=R;Mw3x9|2gg&SppLQk|qX$IzE(!&GPK`RRi25XdgH8Rc2^ z2g0c~3yO6bK;Jmso5*d{ib$5aZ4FePC<9gDY#nIM7RIg--z~ zr4=T<4it=wXBj0t4 zfSdYzI-3Xk3i&~4jB?3H6Ylg@m{SS~cz_#y9K!dR7Wx!*qV;3y?V^sF9aaAx;$+JK zxX%(u&>u(>^?{UZmV}cIzsiC70GrgGl~482>xX!|kOITuEDD7Kd5C=RMPFKb)OjfR zV*dU4`{R?7Zx3}KGRbbt!b6$=zsb2A`&ZKd#ak>>{!i&>dzhad9OoWC3t6-Oo6f->d>{iVO^E3?8PRHWT zy%5U1>m*f(0gku~vEc7UQpxi|0s!=xeE?&k;0xduag9mCc8{^msz*_|LtPAbWAMuq zlu?sWqQ$U4)hmq$8H(vFCmW5$K#+hAbrw!{uxlcuZ%E*AcDf67Ce|zKYyWLoM8g65 z37y&j*3xU@2R9Vc3LSm$Q=fCEJqMhvXR2RFhVUQsrm&D-Y0gQ5PxZtyZ7v9cb8?*zJC)N@XiX$%Ph%gw+uo0wH z5(>u|5UM+!eNY+U-oDeXObgrO;FZv~07C+LVq#KO;B$4fhHzv#aZivq_E^yi3t|Pm zqi~}xjnAmTq=_r+uM`vx($kis1)3nwp{#Itj&f0NF(kWNz+aai;$AJ%X+_wFwBBDh zXvU4s$Ue1w?n!~tmM(d8I=ua6FD<>%W%Og-`u1?VNI?2g4V21T@nd*JKIe zBo1X$_BhS67>EI8JW%^y-Y>c_18fY=OQIeu4`3*?jWKMVnswtu?teJqN^Q2oVv5^L zZ$`uDk+OEB88Ok!c4Bf%7tpCEZg7M1Q9g0>%G!}$PK|HHiJY%8PXT4$rwXUEV4=`K z*Xd~+L+VFg5&0u};(AHPgSQ6Vi`iWUxQd`WX2d=@UmZ z`U|~Xh0%@zV?QbpovqYyRJJ1WXcGloBfS_40K6(I=44BErVKA>OH@=g+0zT^a!Xhw z^a&L2eIwoJ5$+?J2)~Y0;l&i>5tdwFu#lTz0WPSA9FxSUq)`?bWGPW_zZkt7k|t0m2fah&VHNQST%4{;6uTARAhM&&M3#Iqgcmij zZ@QB@pGF;~&+s!x1HN_vKkMkJ*1^1dU3HEco)P*?LOF)|1d;`)LtIjgdp$OQz#eax znWdI25^n=EVOwXEt>}G}W9$dC!N@b(Z$zGNY#AN*XM`|n`LyIe)Rz+QNBR)JYxcIi zkO8+L(lXY!BEtmm#zd++@dp7Xa>-_+5$H_CDe5@oSM@;%>|QBa_dy`&OAk^v;Q%l8 z6^g93W&Sde+pDIug}h6E2hNhxI&q!9_BrYggb}|mw68E}f8@Y}5-Kx4C-Nxy2648- z^!H?c^6kHR=ZEhKjbn*F>b_)Ux@VjIf9Y`EU9cQw&Smt!Bmp*CIlQtNX}CO}W`1?d zra?D+kE z^WAzD=JU_q%pZ=FukL4IsmB54!#wWF=jkL`2YEXQT0LT861-7%lX=KxzKxVq0q;G! z|Bd;?djUUZRwOz#-aE*%(AOjM+PY$~09bnYaz1$(v24?)ap!JE18Ez}anm_AM%|l4 z-O}W{PR&=npWDWS<O$`SIX^0H3Z7T{+biFKQ+vi~jskb%x! zkBrhssVi(Sz251OM!#Y3ItuY}fio`?NJOEZK$dh6f}lO+!8p@}m&KeeKwK65g!)A~ zEVYi*WfAqO(gb-)#OpF9pA?GA5*T1y_&C&UXbpJT^EKgn$S>TJYR2o*2Z$6GP4+2| zjM$&z6aTt5L7}7eTOBNd@)Bet^+&xf@uv;g(oCY&gc0(G&eE(jg!*L0`-czS`O4%| zQ{Lnu4N~_0KN}_Qr|(1FGF`ev2Pa#3{P+U4ueJ=X|l>6gQ z`r>_}YuD)UBs?VvFe!>W3>zuCXy*N1O4v^u%4HS+?e=v;z_JS`O*w%-`inpP7t`}6 zri9v61M!y8>>`BY~NAeFeS_ZIU(xJ`Z4KvH5LM$$*Lak4vir4t6&F>o^&+YjmZJ6{jqXPC_aPItx2GVCqkqk*l~t;W=* zxKeLKgF55~rQgB;hZ5pN2D@&UU0u>Td{fxe2ILA0jfkfB~SO(Cjz>}j@`2+0*@o@F?h(- z;jpDN0yJ)4(n_)`;t?I|7&zFw?8~*P7IH%Ixxlj^D`;<02)tXjbo~=xNl_NyS-Fw1 z-S+aBJ=~hSN8DpVCGrlF*DtL;|c`9Qst&bzuTJ zF~ETM#w1i|#$a>(PSD@7)PpFau|CH)(#yL`%urAf3MtAlwxPA=nBX|Y_`$R;6 zqwvrGBSHhx#rifSpk!QUlO!v{!n9&X!O=YrZ}dr`+qmkkPf#_r&IyYI1>Npkzh}j_fN} zf}QO(iNJldn`0eD6Ea^HN1M34Z-vmXfc~9l8!!Z9N}Ki_v-YT{&6tqCpdFiPYtKXp zKrZ_X2E%3qV1Vqu^mZdoi;Jg^5D=WqJ0S-4!k!a!6xi)5;7HlQ~cQ?`) z_(f%_ekRXbxOpS;Kl%0vocjs6V$EKyCo3OiUCdtlO^7G$uN4kV4TP+ z0s&ZrVyxHutbNBR_&C+M6Lty5c|n!Jl9J~o0-dOT3P*(jzL!^qIE%pmr_}%qVIA|z zw08#lL;ni(;2&n;I69d?bMH^BA4j|;)KPI6$ZgMfGmLgt6hmU z#oz|{AjGZxRhgEaxY3z!R-JTOA-)2i=;t7Bp&f>=*7ulb(Yi;ly*m4cc$q-pKnK;~ zHoKAg3`($PMnAl81`yV(@0A|~mQ8}$lDte7r9hkM@BOEbzH#sPgU8cgBb8(S@|Y!! z^HG4~6p;*vN5Y$J9;X4z&33~)-F!Me&d1a1XEhP<99?_<#j))E|I*7Z)9va0okw^0 z`B$FjcKlzN{eLb8UR-~@*F^&0Bf9D`0D7&S1W;xGJp9tbbpP>v{?m8wOPK|bcC&|c zu$__u`w!k9Tm@#Gd3Fs}*2V}IclM#64iE{&t z2$Q2Xb%zk!L`N6vDwl46r8Ab)c&J0G`ah@W0>yeG5>lJs}APs!Pm9u$(d5!U}o1Hccnct(dH zAGA`J^J5fQq2SE)I&lP=5f9*RwFmB!P7h2BNWhV(_dmj>e+0DO>oPd<{HyklX=&$d zHU#7o^Dj=3{+P>~%G=W^mMI68UC#Mv`$X>Dd#_gi_FHe!jVT5yhoXJ%wa-=NdHvU3AL!!x$gYb7 zz(;w#HhfSVDV^V3ruqVEi-+b^MIF)@y+i$d} zS27Nm*Ycy&CIAyU%NCfT^@Xb$4c7j_tI>>OBSPI!mERc*B_@0&(_;OeIgS8M>jDQa zu5orw4*8Kcb-Y|a!O$0Z-EqWq{+K*Lm?}<0Zf&S#(lZ!r^>;cQjR)&{g+{QBTpbQ{ zGL!}i4@;kEK;mT?`p}O2Q%8>o1*hJtWm2CNqyDtXiwO9K9T2UXrOTG~JEODBooLD} zD1%1#t`s`5E@)1nPAv)}&T*Clhu?(n!52jfr%U531ErrEISex6bSZURV$WjR0F3Hz z3@i|Sd{_C4=2Jr0!QBwCgb@=4(T?VhE`S3=+l!zGXru38fD~oSUX{=$lXGTs=x>Lt z)}Oqb##tb!bCpjP$`#s1rg&yOZ&Q=yI3qyfyP(IEPBl=@44-a7vKDOkGYG?nioCcQGwyy$BRQzOp||P9UEp53}ocppVYtLE7l0 zegY24*kFnSu*;`FVgtI?$-2r#DKWiurNhFz*#lU+KP z2>0X(9ZVzt2BmHF^%{c7qd*i-H^tL$Cc|#jI z*dC0j{3R}10?KB}3;e~8zw<@brkb*tb%o!stLnbIoYpN1CEcdk52@)RAs5Uwi)b*9?@c#TyX4bfZKe8c_2l|2MJ^fliRy^jFz5%UT@is z@22^=-nDPu4yqlpL6APjMBb=ESl8RFuK&Xv^J>If^n2m6+10y=7UI~ zg#&2@f!DQ!@)q8}jQ}^`2gUKqJj4(|4=<-C+PM}rnL#Wr45%z^~ z$72CHAP(I3b*KTRmeJr|Hy|`VTj6JBOAffW0ri0x!ZVDz3%@zB>_;KZfhISiCdR|S z=k^<95cQqo&yIeV*?9AsU|%Y%oMoZkU3G197ihZ&PUynpwrTmpY7qx@%5 zW+6|x06N|0x(Q&J_CJ=r0Jd|+WPi4k{pL(|C-*BrW%R#%K6B}+(96@8=Z|Z-ax}UQ ziq2rI0ex}(JgyC0Tp!t0mI1Wju`>LvH*Zx=zj5uF93I@HyAR(Zx=wWMgy_-Lt8{kq zL=Ms+(eYuXl=HBihWXR32q2dk05s0SU;DhzX*1+<8o(d_#h-oazyH#$dsD{k`5sKq zMnf=Q(#r&YUe7IUcjEeedOv9p2LTYbk$2O@sqH{t?Oq#YMkf<&kbr`nZQKmN3}W3P za83d=#i{!iNQ)-wsrAxk5{zUc(0z7+;?(eH%0%0p*Mg5-@tNWl*gUV{B+~74#i1dh zS#W3k8H{wYfKO+PX&>m$=2jJomHfmh9U=sUHkfz3xWICbj!+USMiW(+~(0{j8! zYSV7n@bCRW2oO0>1E(mOg913U=XSWh7g&vk2pHI(DHqv zc9I2k{wjQ@G*05_n!&ljdKvIEzmo&{5HuS(@H^H8?M1k?zOoK71->$R03YHr4*X>I zd>N+RuQRS7q~+4S5+XM%NM_nG(%9DA67VmPOK9PR{g#k8)cL^$736fB!yOZF1JDLX z!7DyA_ca0BhA$9agH{cm)!txYKvw$KctD_!sMAt$k?d`QCIej(R6H-J?!llKVK5m_ z9zF!D@-@s_F;a<#18J>|3x$5AUN-e=EAD0!0$r-U%U$oOepOg;SqEjW!xYiQY$EvW z5<*C`R!(8<$|2}JfCKBaWmQ4f;fO!-A_hg=+DO1_NDobxX}>A{s2?zx!eie|KS5t( zQpl#K6Ggjk`rGkiE318zN5DZkytWZ0;E47Q?^|HsZZtFnm#lEQJx$2Vp$Iv@ z1W&Oj<98dFy+91dCAU7?=icuGy0OwafgO|%lLWeHKN{aPWfAu$Dqprd!$nbMiTqNa znMP;h?%wZx^Iv^A*AQmN6UccA_oujH9EUNL-TuqGfblG!kD7_ zLaM=k*$nU=`)dXa6|;Dw-+U!A!Yx4}%~3Gel|UkW?R`Z<18^Zfb*;Bk-)_eV>gchxt>Eg& zzZwYKOh%s%b5cMOHa%;fu-?WPnqsf_KL^9F4s7TQJg))ZkahC*ja8)joq{6ymMPG=ck|6Y4YcGh%?KaGS0M8e!m0&=ziz zsQN-_XnX+r5@lHJj_s=>)Q?1?PG=3OU2>benyIj-z~4Y52S3;n0bGNK5jro3)0llR zhbz2_{O0&4&|;|&db=)Y1X)r1hcGHnphMP1(y>ppU(62ivMs!A2}SZaxI{p{sotn2@$>)GkQ zOOGxIeR}%QrvLxyE5DH+e(6i;bFaNN;tYU`>!Z6a5&$35RT%!&S6>x+p3!tWzwza9+&|G#`o7+M7HHF*iTgR_I6b)pg1MdjuA2qbGUAk+jN`0NlV5jU1JNnt zS?cCi*sZxQS92n2m2E>kvva77(4bVOjrz{>==K3 zjqZva@xsB)hGf6drkAnqs#@J(a~X@;W& zTOf(XM>NCSj^mS-jL;;4?E%qvff;e^Q?^}zT%azq95VT1Atif*ha&^p7q$i;M!jq) z0DB(Lezr4&froM{G)fOPrG0J^jOvRWW$E}>H^9OX4K&6Tu0)IJbkRsNz@v1IjuS)M z=*UWcZBI18QnEQW{=f~5{Jj(#YQ zf7ElIt8FPR)UTg1{~@TDJXhcgSA23vDqYY2@|9#Di)>?7!eRgm#!qA$k4z? z8eMdh&}5W4Va&lsT9J3?h)k|nWn6hv^@zccI!`cr{fs!2-vj&h9qQ8ciOO}{JW(A; z43f~(L|MwvzS1NE?G@h!XD1Uls7m*mIH2Ap=oCh|7=XqVwDv%d&Zs|Bwo;&%_s9-qQ__*<%7-<;1$Z)y$ZK2Jk1E&NN0?whU5d67 zZIU(kjPDey4&0F>Yl1ACE>)KMLpX|Wt4v8OHhY8_8mefXK6FF~G>S0(VV z2F)4z!UiI!2i9g=$)B)+I>K}rEfW*E=^x^U{i=PWoAgQ(4nWHOt&&T7_!^cvN|GV)YUaJ*<=g$9&-*{vC@`dOqU0fg4 zbwT)#_`)MDUVr`dR89jZ-%k&}ovuB4#AgRDr_)2)9N#|~POt8Uvq$^kARTV69c=k* z_vCOtNv4dv*>3q@H|{oR`Z{vnPPw_w0n7AVCb8ab|5yLR|LK4BH*S3TRcM&dA+6uq z^gs(ZtA1dzDO>tpGYG{oHOIUu+d66tfw)b%CnEH(XI&+&c_z%@Drj!wIPTN`d$85t zncL=myc^Aqp)`1HBfo}kqkV%NEsI{D9D_$OtH-v?fdDaTj+i-&;^DLkc=-&!tAWs_ zJ3$~;=?2%9J?NB8bG*fz79JpxpjQGooMCQD384R+V~_A_z@4BRlB5K%Vx2}7RH$*X zcY%g>PdqL23a#*3xu?rh7S4}-4Sb{|YOpWr2C;GcVNM-&7~!#V{Dc;Guo?0eaO?BN zPr8w(dzWRM$5gD>*xJG0-ors6s7DeAqxB(~yj3aSP&d{QX(hdXCBlTV1nl4IlS-S) zld5+Td55)J=oBybVVzEk3;6(HK{(CXm-Tn`dn4Oo8I;uzv{=yxjFlzw&mF!^ZX3{* zPHVJuqufeYm47S@eH~?+R`d|cOYC=@-YVpEck&&;s54C+C~U1_m63K&@%6Ao9TOTs z-pS`ov)6mE&mujIR|NVV^(sMNL0xuChlcvJU4_HxbMo@e0Ki&32%o--`a|i8$rcT^ z6YyfxF`?h=9qfxp8|zEF&S{GPwiIY-u)zB^4J{BMwuf?!Jc{(eGFpcQ^~S%@p9Juf zd%9GLgP~dIGpIk3#M*5)u-{yNLw^{*Xu>6Xd8-L!>UClA)Y=tKB#v^AhJ_)i&t8_0 z2QYbp{iyYpR|e?M_}pNFdL8dKd@uo!P_~2?c2guI+^EwJe`|S^GfUEh=cYFzQ&HD{ zR!(U{WP>4AKapFe6ZIGNzdpxAoYt#|Xnp#UB?zeN$TEIkmlSZv$!1cuy13KpFMjg< zfB1Xf{G)#%Det%(J|^RCs&v0^poX45V<{abK-u$EA$(*04lT}BVhd%0U)9+LBuSn|gflkq)F=`5Ae!Mi&b+&*S z&l%6TKArZib=9i6BOqum+VtnzBxZm$AW*&8rk1)a1UrU`xP_2>ga#4xq)ZEPU10pOwLd#938W1_9J4_j^^pe&Q?#Y)<(_$)_29=A{FOaFpKzjBvQ)dqBRx@tvU(5$y}^`hbW$z^!i+Z1_kFw1Ib=evyu^CXt$u_rzVGg$v|C zU#N1ZR!RJe>CfWJ`AM4YUwZXS!H)`7&H zr!(*yb^H@AgMY-&Mq|@@pCKG;`UGb!Fu)^FQQ^xRmW$y`DAPmi19G}X=i<9RE z=Wk$}P=~A#(&=Olp9J<^mi(ghG+epExdDRd>>TqM+4Hy_FKM*orQCCDkDyHI`V{P? zzCn}ege{(nCV^30_)9?c3$ zZZ5(9ttt5b)mJFL_@BHeufFoCK=4l&*GGF@Bmh2!OBuZ~{^xqAQ#J!EQ)Gr`%f0vM zY%gF)1wd!8Lc?R@)i7Q8z1+}D!ZuKgNxHU(Xu zr@kM6tsxbnzQ!Gnvtxg1K)qnPN4FxPFF3rbruD2H<&T8qqx>j zm_}(wFR*t~U7$riIH;tAK6J?h_Vty7+XezObkGQBWlpSg#{e&MP9)r`-@Tl=dRw(7 zdscsN`YeM54u}3UddxV_GTu%NXhF8Ik^n9m__fU^>N{n{Vd??2(n?oCn2zDTxg}&V zJbfGu7@S0a1N$b@5&H}EQqyg2G{*&~>U3oOFY>E+bjCa)>BhE-ZF>LDufYqQFE4^$YVMEw5jGmOVk%} z$9=tr!5w+p8f>MStZ=eVJQ<@=$AJS4&~9p{>*lECrK*Q;>Rm@+rg7_hr8DY(#Ge6& za%Ip7Rln(ZMiYK zg_q+!20IJjV-idGAkOrQBi$%-+P2zMq;KT2dN0}?y-)oU?Wt?G6;i*1h!(aH6K@75 z@T<`ud78-i3>^?!1e^)_5|<;nK$Yfan?9Szt|%)B`b7Dj06zVS%bNfk(;GM-V|@lR z#AOKPPX@SprTw?lJ?(xxDo~gFDE&FeL%k0(C{%YMFPcvyT~2Ty1L0%#{E2ua;B^5X z%JB?&9%yiW@4cVAUiL08yZlQzX>4-z_rs>f8zuJ0(`bL0_Fql_nBtGRRC#{+3O%0w zJ1m2iG@o$xw_pCH`t0}$rLVo&<~_VdQU^nO4_;g!;dOBez{ha4WdN1&%VvOI`u>;b zSN`K);Rlc2;+JmT%=<}XZ(MsWAKyQjqQ7IID@VlpzDNByOc}TBQ8{{Zvm2)bK%QiC z@{G?09#hdgWuShf{0Fzc{!f4H@BOF$iy;k{iFDk3{!dJCQ4qWNhaQb*u^f(2aGPpB zBSQ=UkEn4ogQd!TZk^f`ZPT+=5$jim;EnoJcgS#CvO~04OE?{uy~9@PX4rfxk=xPTnv-svRbEnn2g?$`OyZ4lbxcx7%+PWqz-b6ZBIi`)7xg{?yb1N9bJ%(L!A+;- zpmP}u01U?8;_;TQgJ+%4-?5~u;aGcw+*y<&w3wo*KXG4z6#6R4lj<0hBc++*rPG(u z*%f0z3Y9gy;GSC-Po38K!Qr><2CuUO8cwD=QkP?j^%{U3oZMyC1^+nm7WGjE{>LN& zk+&<>UVAP<4`bkCw~=Pl+tZ|s3tkCyNWeqy5q_s0WGr|ZXsofE>K+FS1sw+bioA{V z!uFj#hj$42$?5%22lltYf%ITP|HlQCD)*{OFfc^i6}QC|`i8okciaT}wEcEAqrqPi z|4LsMD6Z6Rx&Xj1ofqJA@>||pp&#l>ZO8au!hRk2KEl+#tNt_{5qMPbElcY6AS=dy zMDB>@XwQ)k64Sy*h{;=%{lEtVa>hV!-4}q!kNl6&rnaN}re#OeIp7qctyNfEaz^Kg=Be!2{_NgA|Mu6vQUeSsvBhQ_r;#W=+vQ;>tBt3agU;yi=<@z- zf0Ai;kjJyL@xy~ddFJY7s_`mqPKEYYHu?14p&ZGpR zUl%g~K89;@-nuBhO7!Bj7v;e_59G$RzawwcTeSHR<)_C_r-BKk*wp)JHe>#%@b-yz@42F{WEClh6j+g^F7n5dWxfy1+Y=Qg87)R$) zN6s-xkr)C551-nO3RM;d8%vwfU``3@QaIi%C%FZ`u|7p%c`@^zU9~)YA1m60F!TF(; zpirDnaXcg7ln@-@*1oe&)m6}#`WFVg^gho?E$1Q9`KY4psAOw?WA7DUgcgF%HA43X@4g8P2G0*(L{K*mORn>sKbzF zu#a4j%YkN!x@G-CA0rK0eJHmv*tBOv-k%|;Px=pi=I|!+!IZY^DgnNhl|BwUVDd#B zHf$&MoB2Wvyh~2Z{A>>K{HzIiT~4C+63S`vycEzgT#`-CT=J9_v?M_zxGvR*dP#rc z3_}-~ljorn=%GHS$_2`Y(gA0Y#93KUA4HkMWr+??S(j^LMd>uvjk1;Z^f~$hDsKv- zCIyfekbSCbXL5XxgpK?X`_$0Y{$}6T8|Y)qF;Iv72k-s(^>XZA$qkHUM6oO{E=qi} zpSHJMp^qo83;p;En<>R*~y?y^qqN7c^@tIGhyC2-! z9`1Hb`$_5!u5PB7f8cG}9B$7xBI%$^x{=NPpd1>QIB$2Er-I`FPs9F9!}htW&p!K~ z{g3{W|I5I`WoH;$;GrY?F4$~(t|koXh9=XG+zl-ceN-8@t#V4vZJdL;wJ9WYG^xX5 z^$>ZZiNC3hd~Ogv1VgA#1!p9>zTRMLuu@x}ol%2V>V*A&q#NYi=~o}?RB|*LXn>!x;zG{xtT3hiJ|+Ux!6O1VIq-#aJTvtrBQY3_h7hyy$baQ3MsXD1Uv76| z>4}lfCcQj|hS5Qpg{=3f!l^s(Dt&~ke><$?9Eq76x&a({!ya*WJP$B2&{Uo8It_6k zJ7b#QnY595=H47maYXuSod#O~(BzNEImtAiVQ>AS@`OBK^3`G2HSqJyBJu429;7iMlLN=UoEYsJ_~y-UsLq<5X`Z zuMdzkST{j`STG_!*^z<%)%kDrX22yu0)h#6p4*x75M(Z3G60;OWYrZIoJd|lh~ybm_V?MI;RxRG6;k?Gx_mr|Q$q;x|a5})f%;BjV9#5MlF;6QKZ(1%!$ z>BTU6O~1tV@TfnD&9nb5;&luLGaQyYNPsQabt_Z(hddu4ogF_@*C#8yZ!#)D{LqFSEY+qfbuT=nG+B8e2hm7 zqE2z`Q-@dYiS%{&kq;%*XL^Bx{4p)`CMJn;|GIeY^s$zQ{y>|fyrc5$_<}mj#?R#Y z!_Bk=n3ONUcXoWbm#%M34iSDPXDg!~AO^ibAZz6V`vdR`6NhI0nxCES_doqFzw%rE z+iC3otjqu?oBuJVvw9eLn!eL;mZxB3x8LlivB$IV^laR0j&_%agZ;Q4c6=mx$4^Gy zjrqapKL65Z{+;pk@cwvsdOEfGS-Sr4dTm|T|5qq^O+YWMpXYV41mI)3bej5f$-Ou4 z30)_?{U*_k&)g8YUv9rw%RPH^b)V_+hK`;YWy`#KdOXmOZZ(iZF6hH+#nvruTK^I)oX=>q zu@4l^nq(1Lj2a*>*Qqqp>oWt6%m)Ce1E__0?gJOV8H^|d)SajL3~(_Jq~jog97+o% z2Djg_zwCYKZBnBJfz!Z^$Ee>DTM8f@$2DH&6`n#7M4cdQD!Q~pfIbic60`5q)M?6w z14UwxS2EN$O+@`=&zo-2WQX!EhdRNzXS)ylgSZ)v;`vkWo30{S1a-(CsMqjWZ9ext zw0;MW*;l)IU*BU-3)6E^ejINIErO?7yy-F3mlEH3&0kWIL_`gSk@8>*atW|>iR}J&0S_%^#j(;7)LR|{*(oM?G zKmREz%K&J~3><9_}i|v`@pgi;!DB4+<2g9cAJAK!t z+%vUVO0a`JakIl>HdS}_w_q2IigaZ@pGrX8V5xB-z%jA6kIde_G@77oaBXOSpzeQ$ zsdgL-{&q{PTH)5>lBHUgaH z+-tjtQ+uAmh*>no8uY94!sLyxmWj?0{+R<#*pa;=-4B7O2lRwA=zQHekz61X_@TqW zEr_7N&;UCk?xjVbH|)m7AxE~y)EtrvNO0`EtfV&&yh%Yf?|m1a%8 z9gZkC$g@q(oct~BQSZBkSC>cNPwUtAegc?~2Y_@0IxYIp4j#o>?>Bnar6d6!+qvJ^ zT6{ew^SRRlJI)X$=p*u71oSZ66CkEM5!Wpf$USkNg#%TgZdi7`tn<9dB9S9xb>oB< zQ|Vg;tbvEZ#i9R=PpHc#b|Rn0FG9@$M^??4d0E40%K^skP#tu9<96nRRZ4Wxm2rUitXSgw8$G6>>J%^IfDY}#!+SBo zWPKum*V-57A4$JQKyQ?HCkNtng40Vx3w=WHZW3RI_I(r-vnibfjxOpOZMe(3?}YyH z3M)IlM0vn6PB%+PxCGdyduKV{`@L`dH(x8Kis|Nm<1qc3D$-Pz8khC|PoIoa9Kv-I zzzq%K$u#U(HvPMLbR|EcM^oG~B>=A8%)_%|F0-0%JigBluip{+D$(n|_Bv0o&qe(C zF<%!Q@G)JO^}7AaZTZbV`OUE$30RT<<=*8dw7+_EdHVj4PM;piVOdkNIg_#!=jh-t z?}xn%!%%nOq!Rc~skubsIB>4(|I3t}sdw{mFyvu7QE$D zCrMqImkrZI*HxSHBlEGMBdK+ZI`8%vHW|bz&(u#qm=!&&9o4nE3Dz{vB=0z*BPzYl za(_M{Aj76#RQsovK;@0b3a6!_1z_qUZ^PW@qJu}wZ5fBwE8g*FI0{ZztF-HTKFnz> zChu^8VXi+jxgBtgw>%FRQ{Z#LddNGH5@@=Xb(i@Z`5tW0Jj%5Jqp#>HzauXzT@#FA zrr?z6F4Wqmy0f$;WKts$AZoK$q|-z?-CfcoCUaWf`Mh~B>gb?H=Y+}6ZXoK;o#LYR z8tECQ_P2hr;M@gZKo?x^Z-Jh8d=%c)VPU(Q~&H@3PeY_5^~dTUBYB#s%&-av#+jP$}2XT0BDH86pkEfpOSbUhV`s$&zW4{ zp)^qhjc>Is9IaHifsb3C7_~GBrtPZ?>0TO5$Jq2`vp32Q&^HXdfJfHF;1L4}(=*T} z_M+(ml{=6V9Gx{8re4m`4eC^$Hd~0#gciqdDSS3lM%!q0DSt}#_1g>}>2+&!XdCpI zz&+Hj1bvBXfh{P_eHqzKEr;_RaV z`kYqqGg!&s`u@8={H;81C`Dz&Kh+HY(>Rvt0J6#ZX*7Q~g&qf&x0yCmx$Qybt>kB? zB*5-uJ5~0GKK0y<@$x|#z0L1Km2@t?JKX1<@i6kxIXslVhO;< zbZPKdHo(w(w|?W6Jp9r_e*2j6OIIkB%>XaId?}4*Q}O(0inuPxSy_@ZJ~s*7`{{7c zBc*Lh>2yj49ON=ZXD?ii?Bu5C%F6xB`;q_K?|$>!xBi`f|1Yi{Uj7eoP~T1ipf-*r zK`VlC*JJ^%8MnaQl+4l&tMbv&Af0aS0&#}j`dfYTG=Hc_Z9F=02IKsjo1<(iq)jd8=wj3p?p}s!&+!v&cuO+ zh=2gx81$p^6Tk)K%ZfEb;*2BLlz1BEHocr+!&0jXh((@O^LJUH%i445vx~H--ZR<> z^rQa9evbW1fJb1uppRS-tc|Pu;ycLudXquU*Jx^e5M+{o-wdYM_bd1z?VLRg4O?A7 zPGWu5j|g7Gn>uf}@|A&oAdGsb(ov`VD2<^0ew+}wKyr-^LgY?j(Xys9B7Ko3gI>a; zCY_!Y(67KZXvdsBC-OW&o|f3>DG{7o++_ms6{JP%d!mKx$O_#NE_TdC3;n8t9VTZ) zO9l>f)LV&ZVN;dgc;%kfo3U>}ZcIONkTvPNXTPzJpdNg#%O{kc+IP`Ua=K1D;Krt5 zX#?u;D7zByM!40s6M`>J6iipBAC$=RCFjKidcFSU>-^dmUt9AAFRqX9x|jj*FEX9qpS(qPU$`^n z)F^+jyPwat2SS%5Ul}EDh7V+SHppo%)BaC0r_FwMx|>G&568{nurIR!@;GJgcuEk= z%Xnn^F1O$Q%ik(B>rU_UdhrU4Ie510&qinrVAD(UyZs$is8!b_Zl^U#FhE4Q0iccO z&n;R|HjkL6wlq?YID>7y1g6-lfei|ro3Rsc{+Px2fuwj#U#h?gSNk*{9<%@G*qLKI zL#Oq!+xU*$(Ou}kN@oP>g~6Dh;e_KAY(_+#v7z*z;j)?ND>TxX9R$#l8S)OB;O2oX z>AKc5znBg{%xT6iT4ZP7KpQ%S@O8>M>To*`MB{*j;z-{Gq zkM))H;x{9dZb6W%eAsKMDB_#n4 z#b0GN!+iqz6j{m^RNqG|m2L; z9~iJHZJ0ctQ20*bXE3;+0pTaC*uxX`0+v~mT_>lC19{l2K44BuK9HB6j6BAkM)*8} zPEZd5RQt9u5%RVMktxb6k+W&qCr$@6{fIM|)E*1qDF9cT>4CINp?!VFbf_9g26)8N zO@Mw%uN253fp_&~l%2&47$F;#Uz;J5L5>~$nHK(24tm0X4=_d*CAUJv`{c69$2)gOQ28Y20e1dVen}rCph|AHLgC0bXr0Yx+&4qq}G9x6| zRVTUGUj(|F`UrlUL1F!$FWFtK9d8c&6AwRG1bKYk}@4`^4aNb3jEU~v{N=fhWy`t z@6X=+rN8m-{=v;F*Z;??%BRF-U{CAS6bcI%ct+Ulo`7Mq^1V;2FB(AeKsq=W+zq;DFlO|&M&@o4po<%s(6R_NH=dAA zBf(-^k4Pkd-=^AY@S_eHqp{+iNylXq3@~7yLwgjRe0_$_)j+*|H{z#N%zRvCmPi8F z(7Ca|rFVvHyeD%%I3o-}l^dB!fCs`oFyO2_l=?gFOkQ;WUIpqoiO=;eM{m;|GCjo z5GL+@gn^y2IS3X9y26Drh9i|a1Bn23{d7BkH{Fo>%(BH24aG&Bc!eW}!8Hw<1nB~N zrJE0`oH2G9fnKD}PaI@b$d4={pk}wBPn3|l$(_4^$1!MD+Mtl8(9f!GvMj1J8d|^y z?_xbpo1J{&vkg=mqBK<9jZ5_w za1r1}1MP1x!3_7#p zgzW$>me|y4xbr;ninBL>KQk>ifh4jSlJ>52{u`kmEP&_cZ=|JOSH4atBjo$RWM1Yz zXuj|LNALf^_uu`=yOZV}r(j|l3z|MDO>U)3pEB-gKW?aQFkbcp7&rA8!0Eq(i81y} z+taP=c2CE%=MLr4k>pSBK21-5be!)!dc-gM@^$mZrom2APGv8&izL9ucU>d^KE|ss ze%%c4HOgf}j9YKs5_*&9F5Tt(kBR=yr=OLx1CqNB-^)d-AM%aybbB_?5$7kzC-ltG zf$ZsM9ELH;n8w}dE|r4;6A%0GY?rp%VV`$0Ofp=S@=O`M&G^s%_1FIIul~pX>EGRO zx;*O@X*wGe11dwcS5^*nxL9!!cn3TJiK6X{*-8@v&8zZOg<1U)_WoKe(KZA$g~w1S zJ42yIhV_{O))`>*82hN}UaN! zh-k|gM48OUNh&{5@Ooep?q+`|U0L;>f}m;m3N7mQzVyP*H@L$t7T-uIEti!nV`=JFOutwD2Vuo*```3lRJ7)}PtGk8OqG9cCz> zv7NwkOQ+219Csfd(mKx81S)?bFMkYh3fNSoGkH2_!Zyko)}{5)%01Uj?Da_O3xuP5 zYVyq`AQh!Re{CF4O-0fv^cr>QNBm<|CsiTc-Y!i=? z9H?I>p?>iA(c^a>zWckX#Aoq?jozGcoJY3xuLjW30nwk9AqV4#vYo@DFp}8U!xL;e zXAirAh3Qg^o9vKRCX5@XXdMLp7*n4T-M;rtton0{ffYXS^*JKM5d;`z=s|$MbjhBK z=#&G)#ZWi3Sq2p@B_hzUI_`aT1fS>FY9HArEdmttV=Mv^m%wJ2!Z^>kLqklSHw0+M z#&m_rL#6?n#}J&<3G!JLB1fOMPi8n0QVXC#pp!q zUFHI@z(2K2YJLsKmdS|H3Gj9>FfG=yqAw(X2M6F7HWF0*(8^hH#DPGM#7EY)INeIF z4t$Gf;iRrzE^#HkLF5~RuT{=C1(tz0Dl6JJ(h2EL2-vcXkjZ5SLVLVPcP)?JMX{uyFa}D?mN?f zij-ad>&Aa&WPT`#fD$`Q2%bp|{x=8HpyMvdei-CZewr`skMi;HF$&|*MzUFN` zvoq6JcJ17!&9<)NNyC)E<0%<1B?P{F`;UJ2Ynqig87O~V&dux@?5(bI4;TZ?+!bavaxo`jY`jgWJwT5us0 z%K_GIq?VQ!H`owY;_ibG&?Xu#!$H=c^_T6tfRXaYI|c(Oy_`DT!twb`CtY4=wh-4c zBTUv-fIn&b%?V88`C%>Ktlx8YP!~&e0S0qOu!uU8p?(XB*gH_sS!2HkMNJwgQU){p zp@Tx;AlMOKNRt)9ac|dO$XBv-e$<$2|4MkT^?}5?&0z%`)geN>85`2C<-IN|^9Rs{ z0uNySIdMiHS90)034Xs4GmSm44ixS?6)@e;3ry$`yDd@=MeW8T*gOCsUzX zp@n@}SEv+tg(>QK!xQB!;u-lJ`F4@?0tepdc@8=n+Qs$g+P3XILd$9Dsv{MKOn&_@ zufV0R7!R-TckIU)s94(sxQlNK<-^gPeR%=kEI-Ifr%ml91uN+Yx_jr!NQBO!U(WgH_)yB}Wygn?gdW|@ z_bP`EYY8+h@0O#@EKjCuif~!C@ZKWvSns4- z*9_hy%_W8_t9Rtl@duCo^!wlbFEtRh;NB@xa&~&%SoA^y3R921D@O;i{nszs_%G;e z_nRARwR%vv(#z<2f8DsyDMdqomWI!k7I4#vytESnMxwsQR=*p~C$$Mo%aIpuKifG}(ufQBHi*a=&@uyA6)Knu`I`vQUT%{1HUod{M3Wf34z&o0N!`4%vdcl6M6}#Yr@w0J>Xb*osbIyyeuQ@mALh2nVqSC=IVVkjM|sip zmsyt1MY-a-VEt-4OoO~d3yyTK8*s&700SJ>U+|74Io94sxu?$e5LmJkJBCm0uL0bw z{o!!vu=M&F`jZ!OW|gM^FD4kQVdw*U)_%a_P6POK4xjWk%Oe+%6D@SA;e~AyErmlC z-E8%N?zCfD3Fw9EKVi0!=`SsJo`a12YV9(70?v-V+2e#k51&^z1HMo<1-)Z1uFx{! zd+j9@(zMbS`rU2Xs`86{D0Kb>>#yFPNeYxBe#r z+5`QuUjWR`qv2V(=k^#_QOuENW5o3uwcl-Ka0jsv!v(E)&ZbM`?Vhql+?!nT;s z$HS3B*1x-e4BwORTzq2N={yS0Xk8x&)JH*X9ld1P|BG@&OMOJXPFDxe4EY^-&eg*n zSLAgpi+08ID!hY73v1hk3${mHrYY!(SSNyqZQ=vFw<3oL>T~kQzTXC@gL%nMhL3nX zO62LH_AmnvXq^rhc%MBU-+T8*|CmbTU;c(P4I6UVLcDAwUSo#c6id`y|EJ)ervb*Y z0btpH{L+wVan(W&vEgd6Qqdd6vsEfJ;+Wjju{R*luNa`alj&cTzUs z7>9EB-^q0UAdgd)?sPYfGzI@<769iV7eSsJ(|y?@un06u%5Qw{n{PfkdGsfCG+MiK z1kW~qYsyL5lsp^ZS7#m-Av)qsL6u$Q>(X^ps<0fOJ1ErS8~m(Je@ifEz~VOKp`}8O zf!LZ6R)>J$kvd9>TYRT&vNq%0ErW#m-85@d{ICR1oj#?Fo9h~OXof0FPQG{`ABD?gy#fhY-vYxfZg&KUK)HoHW5b?3?>er z)cd9K^vo;9Zxt-)hZHv!3Jk;nZ-cRa?KGy&M@GLsJEdw9nK!RwlJ!1z&XIW9T6;hT z9p!h97xs6+r#|BOy?7QiUK#3K^doh?*5`{2$ap5w_SKp93rLa{mMl{AhuD&$OOuXqlt9=t$L+=)#>D8 zgsadz%n(xkcJj$f*`;%yD=gUOO)pr`uDpRVj!8g5yu+Ubi@d~zDBOqd4lk%5^+60Q zM}Q}1S_EonBi#GE@*MQ-n!kdVHj5k2DLbn@i98*X<5-WDp$LCucJdg!=|19 zP!1YDC`o`J?|C~V1kQF+M*n&LD3{TH-i`U{-@GhWKDaC&UU?`t-o0joeC3r_q?~kC zk^pVwU+Cic*sqHOz$fG?Lh*$u15joFy!P5__4DxbSMu9$Qhs>-Iu9pfF0%kmj-Lqc zuVvcje6~50%SV^;=H$wFJW1c#)6-n`0@zMMI&9OJr)1vL!zDW~mL$MXW&-3~R`l%4 zGJ!w1{f+;}DB}|cNb}CQDIoOm`?UUGC{Q`7m8m*jyfFU$u-j7OEoQ@s{zu{}9lUAgm$>yYRG zRfhvdbA((%LK8}AxCh0Ly@N@?5yGjsF6fhaleyN0=w1=JCj_t`i+BW)2QdO#oD2cq zhaeD*&lV1W_7hHp#h28Pu;mp{FYYgZj#I%+U}i~h5Ef1?!p$q+^_>-GgQ0>-qSh}J zMVGj0FSI|mqGIM2s0xY@%UX%ovE{lar%?`$%8{7v^I|ID?|y>8bo$enoD z>d!WUtrK=^pHLMom;uCVed_{Z4)kL>H|b$zq{~|Qw~zWQg$mB4FN9@7%Z$fuy99q+FNpr}h0 z{E56p>oSaqlNj*CKnVkuMM8)=j{4mCxc#;h5EORt?{q|$^2q_Va^W%*8&Kwf7L z2ilUz3tCp~hxGycQIsk6_~3;)S;4>=JoQ=XZE8Pbf)42vld@?4oZbO^9e*&$3c#=B zM;yH&z_WegvP^@I{5uMRAQ2e8lW*6_E(cj;a(n1h7~sSSwg$UR))RM_JilrCOiR1t zWGu)ueg}W9_dU@yvy^nog%=SGVy;( z0_@7fo^qz=6y21wJ>Gin?RVe$>79R!%Gz!6*L+rV#-xoB=~{f}XG{NWIv@18GjvuZ z+jqunvQXH?x&-O4F^|(9Y=&-L($GGgf~J+r-*f?g+!%-ZQGW}E#yJ6v1{#D#7%4al z8f1b|;f0e#&dAR`hB##}<`=b&lh8j*WX3HxPcim&Ut-{DJ`QvOR)Efk8BOY&&ba<( zS~!=EUpju>d5LgRm=@09BeFNdu&JN50m%_q&TdI5#Z@q<3A|L_K}Q*3QsS@jAJJ-n ztw6+e!_jCux+5^^I8kUj^izG*_I3b*x)Z>hj4~~P34{gs+4?zbXyk%JqPBck`e3hf zUbqLB+9vYMnhp?fK%<^m=ne8Xny^UV6E^q>l^XIh1MIxQAO^rW*UUtOvTN@+XBKWl zttFv2qX+tqXBl7zADvHw#OwD7a9hY{2Z&Y2xT&k*1+^tH_;(Gi0Vpd!W#xV3zcoRn zP>=Q(^c(VGe7{_{simy+7ZMqht>)k(Jh5MqWt1ksl0<(6XzBm+VpViG{{)I>4zNz{4qLcJU1 zMQQ77R?uJgX}lYLqkP&u_RqC$w;V!clsqo+eMb}VI3S+*9wyctec-+e>ah*#WnKTu z3QV-*KUtxVgm;lHhy&5OO|knDWKBH%Q7#sz*~n7Xu|JV7Y+!=P&4O~UVZ9Uv(Her5 z9DzCj{~tbl=Xc+F@a}tA%G7?@mslZ9!T!j*{g`CW)2M&l0C1o@o=w?+vou~wm*w>2 zg!X4=(+j5~9ZjLdIK>&yJx6@`x%~KpM^dK$zx~!*^uqPe%fl~yDSheTmvR~0EHj+x z;`&5g16^F7h^rh2__@!0j>_NHzVGHVYy}X}JPbbMfyu!oCG;Ddw+wEA=mM76oGUe@P!|807svB66d1*706Fw%t zF!A(ndh706-}?`K@t1EMZnw`@>8uKzNCP~-Tfdm$;FO4>(}aP68k%!1UAx*HDfmO@ z2@NkbXI9TD*Rsv{D6GtQpC|@~-GEEi%b2|-?@!ECwYs%lH4YI+tbguUVl=FTxPsOX zffJ+QX7)6x&!8^qbuj{NK_I!hI|@oKpj&GfTI}`drPEr~h-cgwuitadojx1E0dQ;H z*^MN6dcqG3Zk2}?!D0E#{aI~~V1xj0VjVK|bYkbUcX}Fx00W|623+~YruTDCf)M+_ z7Wp(fhLP9R17d^B3i^3?wz$ww>aF30R`}tI#H}L)dEL- zw5+?ms7n(TkpzL0L)Z|&1IrqS1Kh~)@Evi{K&8Hp3XXtpX^A`HA7|V+T!?5bd4hGU z$OX5hQF@Aq(X-81u_lbKXnCou78+T?h-tA5LElBbMcaTV;n8vB_mFxWy38fo3zV@% ze*&z=i$sf{&+!ic75LrD0C$}cY0jZ-q=#!~<*M{a9u^ny$$G*?Ux+v&4RxD5KgZm4rown$pncx`#l^Ig zEoWdn4Z^FPS3oAzMx&e|T&^wUAp)8NebO5v7x+2dL*({LFqruqpF-QR9~~aXb^_jO zyw0Jo60h4E0zP+g3-6yNo6SbpmDl<=(Aw3@oqruZ1bU5^_&O(u{3pVW?I8QuY(koS z)S7gGwy`<&e~Ld;^rQMq4CS>Q3GeB1^d}f`r={+wdkiJ(lhfVqr~l7C_}%~Wbg!Ht zJ`D=yI$${2jgf~mjS$kfKh5JN<^7KL)9)bS|35c_QwBIMu205wF$3Tea+M_j z`d5CJj9J+^^Ru7*ES04IGa^K9P*8kt`Z$=cGEjgsq6(n<6$26 zqolH9XQnFDW&I9MS-iTtXW8Oo66Q&w>uCWzmHWz@|II&|l6cFd0L;t58T||yS0CiE zw=?)|eMfa#yNU5v968rfw^Ajpk5*-_u(VHRSi`PxdBmt^YaI$;(DgTy+gMGffD`)w zS9dp$c2w(GtiK{p98=yzOGl4-LMA#JT5r->11%uP9#^*;c%!9Iuj{-G8QlzwM9UEx zr6Wm)JC6RLQzQx#LB?8XDBVaRyoo$5kRN59`A}zuaKGn_pTdUg6AeM_Fl?k7cFy7( zjw3WWjhKiQ)6$VHW~4a;1qi3U1HaV)hwT2`g}mgGIO>(5Z}hTd4S^O5#{odXAPeO_ z1?R}&&>#8R;vKa5f14A4&Wd{vg_Oyr!#c;4$T{c;JJ!cYH-@D_fw>|rOwPz(5l#+u zXd!{;O2Zub8Y{#^1?mRCtD>6w%n3hhqX`kVw+3`{%Hw8Z3tF~vDbT0&qwxrn#~I~J zWsxP+%YiqrPmn*@w~xAIk%$rU$&A)^ak^0soeV-*Y=6;LH#pG}NqX;U%Xi2noAN$_wCa>2R=;qi6cm`pV0D!g;__y0e;0fHYQrDU<5-;#O z%L>hdj>gNLo%arVx?qwz`VnjFV8L$c{U^LE;{to8MPkzG2Y4`Prg{#SDF`j;g*pi9 zb$SAxBi#fGhjJ!^?3eMG4L1eg<}HX5&iz3{o((SWuIw3 zmQ}&BNkcBDh)ouyoF0}r@AARn(SBEE5$A0#yZ@Kt#>ZhJW!CWrr)M$+`*|8Tl>LXt z;|aYuzWeUGG>`rhJ-q&c{N{iDo4IWMSEm2h-Ty1N7d!udlCFycz$f%78MBAiAExUM zuUEJ1+M@^j=-PcbIGarF*_baMU#fz1c5*6@r|7+$2(UXz<2dZ52!A(a?vfOt9VG3_ zi2zjA|4+ibt7m-XvHnfjzDb7V$M=5x?hoJl$!|v|!p&kz@T~54Bh6+t1yrBQy0S`m z6y5v|qs_IcwNxERJ4Orb2}SXs8Cd}n%wJpR<-Vb?Z$84&~+5s(#n2sy`<<2x%bSYQx! z7d!N9Ulfk?Mq1_GC*(o(?ee0C5A+ajS>j`IjSWDBHYzV(Zz4iiUrb!M{z1Nl=B%o< zx>lYm&W``#lo2%(r_ey990Hr|o+qOWb3C zWFNBB3sK*!UJ__ew3Ki5I!b^B0=f@zSDFw*lAn4T*w#WJle2|(AKS$JAHW8CJ_8<) zeWK5$31pnPW;6`+K>O)rm;HNMmWkZ#rl7C7?GkdEx30E9!B(Bqxi0BP%l^dv!vPTN zPYUlKlSZGw)sHd?`o-x^q*eP8_tLYivIv7|E0N`P$)BU$e z_S5M8xH~@VaG>DlpxUp|i|H->95&)mDt1Jc3%`$%d#a}ODcJ#|H{<8e(yZ7b6 zqeuMk_yd07`ls^K!zcAbfSXeWZaWF$mGL-VI=GZKlY|})lVI~OQrhgtRAvJlP67Xv z8<>Q6NM+lO`AEQVU(WfMk^-ZQ|MXA(`9FKQfBF{-gYE)NK3}i59dQ{PtNCkRJFnBK zEqTytbTzZAC~GhV`hHyokQ-$wSeoY)TdGybCQjR05b?dS$^ zYPe*~hQ9@w!FPzkn?xrmDtn#2jm8L)4eG}k9V`HEWl_>?qy?M}RLx9F~gWCWar5ouiev?3j1952t6`WS7 zeg^WRCL}OufNsV9v0b7uE3bVx0usn$wG7bpJflt>W^(*5ewK{83JwjXeQu!ZX%ezb zilopl=-@EGhjO+W__g~B-kRDTQr{;}$WCs=qXcbf2Q=StW`ko+GRlk-ivy9}dQ$eX ziouTs0YXm5w4YV>32-UXIfs@lRi|91)@vOt!O0j5wt7^5nwTpnS@lMzhlA7li9Kx% zh9-Aak0e?oxg3GW>kOBq2=X;3?4Uz%Mh?!@z%|tjL{lD-#($%D*{2TbVi$b|{0QVX z!_;zt_Z22Q#?A%C)L~Pd<8+&NK6e{(g7S8w$Dw`1hpFp^W;a})VvyQsqe;1HA+Cckj$t=Su;OvwIz@c(wyZ)zT8N;8#h%h=hD>Iqv?*El6vV!!*^>JPo34l-7Wm&Q>5Z8?} zrt53de>bn*6gqx6Z$7iHYV_*S1=2>9^`{ug8nkk zXOg~LBz(&Al{El+DN6)WnIS-RDL~l`;>+Lq`n(jN8CHpok&9yIp906<^kSd@QP)F# z(u|*u>gzMnAkl(CYDt9b>J*$po1k6%bYQp9Lkv(@cXbCtqzcp-Ch-cmHO=0uAm_C= z1um{GMsT_xslgmRr2ijuW$p%`*W8bJa}FpN0fXhdge=<2;2a6|0glj`{;Zs zoVlMuLA(azIvkGHuu~$>8*2 z67V)$s3!p+DPaz)Ifwv1(tRxu*RQUBTJv>xe>Szzb0~H&>|9n83~LTDIb;Kkq|aK4 zJnRBQ)C(Nog=fSb1`cqTo*~a0da4L^x$z*_7v*V&KUrxDlNBh_W>eU=gR-ah3amQ0Kn>fl9j_OD5!lP!5#d2WdV#Si$p+S){M znzKu^B7KOwPH{2;?@6Q!`To-zvLZ+B0($2_hXpNUNnfNxXxazY?Exk!^fsQb5P1d( z!vL?n3$S1xpl*plF|{_&wUG?;5B-GC9j}U)q3EQ<@Hx|!REO9msDsC@L_e)}+oIv*UL{6W)BM<04J^$>DeE04h zqPM8-{D0@ay2CHrxl@5DgPGIcypzYp41iDEb&&x01YT88UYkX}Or5!P>z4fLE5DlW zeE*Jo_pgZRGJsNUFZt64NA+011A02{PT#L50+cm6dmhHKe42Ol1b}hOyK=P0ShIcQ zSiq7HC`o{k%8H*nWdeu&Tkrkoy}A?totkz@8_Gl%3osJ>N=+8qnhi zcELS4h&+s#y%mAjA{brg1Tf*6ZruxkbtDUm)}I=f%&!!BX`;sVYQSK|Il^RgcSpn3 zd-Hn|ok*omTn3^9#h}`<=tPUafQa02b%bR?d*~FnOMKf3cQmeR2_%^QEP5uqcxPd5 z7MWOJ`hIc_bLCIO&-|4YwTnS-oJxo@48m*!TC5!=a5#E3z0bKj%GzhTNn3{R9ohNa zEVSyxVF2RseN;nX4lF+NYwmSZc#gUU16byz%EA$?2-0~DcBKi7D5Fz5B#$q# zcQ_r*WnHl;4?-eMS|1DXf^3T$8hmN83rFu%A1V9{d>)ffQ74o5>8Dz*1;WO~DJ}b4 z@n@)ypg@&ry1?tZVyAd+0zb-OxG4IxvBP4_eaA;g!R? zT49AZ`O#6lFmSg~S3{OogWd`^0Uw1r1!Msk-#!&~_Wcy!$2w3im@Ngk4KAj|=q;92 z0tJv=nfiSWO02GgokL#t^9p^iTzYdO*G^c-ib>{kPa|_VsI_^C4L9pfHY@-P0PjPh`xe4a!6k1qECTzaJB|u zE`G|8$Sr$uEFs3XKf3?!Z@>NCkKZc;eq{+T(>{;;{X76TjS^02fcYeVaT*ycGlt8+ zVOaujl*Y|&Z)^XjF~)qfJ&+r1`v39!AIgoF56AnL-jx@wU$3p+eeuOn2QUj%It$?9 z`ea=f34l-NRh*)dJu8B9`}S?Qck5o=5U|Vyczb$&dhdfV?Q;HLcR!y_Nq~dxRvsT+ z&f6=SaXSV7Wfs7mhLKKAbKMYdkoj1^a=gcsV8~o|`mAezXglo7ZXZPv{O+H8`S*@b zp8Q1x0u*#P^L{?}9-J#Ro*D>8rvOLhExS%Vu`V4~XRKA3R%MyzDfRel;6)oc;%%dM zHbN)%To9*o911-~&?#m6LkFtitA%wcBRUsa&pE2EO;BD5@W=(D^I07XPKpqYI@CLD zro`-*Fu6dyP19whaU7*3@_m`bCvTh;C3D!&-}6)Xp*-%oU)m^+`WPIfA<#^xD{E3A zlXsx3pW`3*`l6wSLB#scAPWa%-jgZM)8euIjEC=W&Kty?9%(S{;l9nAhKe5Ukb$0Aig}FPv=-l9_3OcF=3tO|c z;g$4uR{1Z=3kJJHUN&peg}P%@>qs4cRW@-NC(V+>I9j8EWKD=;dFz|TKeh>BZec;W`OWr;yrk*xraR)C_S@{4vz`Gx^TZ5MHHG6wvEv_=^us4GP{81!9(2gq%8 zV_ifZU+4Qtuqyy8Q%`!9%grLxHnN8eagnQ>pj2`TlIZppS zK70BXzx9W||J#$}Kju_{t{Z_BpI^nE`}(y-f?&B8MeoBd`OE>B3%aaQvzx?8h^5V4@rEL6%5dVXJ@DDOwT%Wk> zA_4Hpy-YO}VS4q|S9945;Dzfi2pv#p~4gfJ-8dLp~(x^WJ~q&ZfMj-)xNfvV2PQ-{miZ;CUw zf^LeY_~eC~I@vzUwEsFXMRO26ip`#=+c0VXrpnzJ)wxb~8FaFGtveJoUC&M9@RoB-S!P}=%`?({{cLfU(KaL6|7lLeSWiI*-@Kxf4C00pNE+NBl#Acd(hp0??B zEvF7=tyg;TLi@#F%^>5!fnuQDq7R^8O$0){k=JFWk0|VRyk+tUN=GwsqfUbG@Vr;S zY63)qEdvpF69fO+?-_QIX7Ubp;H!KNe6D{2E~u}RFc_#JpX=OA2)pW0Pz@4OMvs6XRO467SxD9Fd+bq?}& z&K*|MBLFYj2u6J)-X>Ui@_GU5(Q=VqikH>}%OCsE$q~=UH=#X~pS+?k0G~ym9OP7S z$$_SNX+8QJ>4k|>lAtpsBwyL%Q9j-5m4F1Vd>0CO1nQ;0XBDjE+f<%Mn(_*4Sf9?Y zgQM`=amHp>#lvb9MqZ+>GhCbSTR=Y|OxTYmi`4Cg+7RUB4E>-w3H7+F=tr8rpY8WQ z{n9tT@sB27r4IU08un!>@Dvx+UH_?mANJGGzYJ5Ee2_*?d0%$@Ki%a$ZF4@D1{I%- zQ_z2MUv~UtJlZ~y=g)5DvO~bzQ!_WNU6Y$v|0B8g<}JDP{4II?&DV7=Gg+R*b#Z-C zu8Rb~C;X~HRF(sLfw;^9c;k&Xs4NG#d-hho`tl`t^60Ug96u2rpUq`^zsDau%G)&0 z0-yuRWfs8MAbU!e_XnFPL2!6!Uy=cn^R>@YI$)j-R2Bebkv0|RNB8f(`|Tfn_aDt? zNzaO?2eM7E;Plum-4auSU}rXxgTYI$}S{G60Zs;A*hYXvFGtO3)S>F*m)s!8wHC zOm%DqsAp^q>iag8zJuukM1fA9M*5}oy`P>w^Fq%yQ4cb7I(VCESzk}V$RUkTRu~)- zoduCs1VcZYQ^1xiqFz>U#L*O5sVc5rZZd67u#RNo=!VLMTb3Z+Vqo&l$wPUUy_2JL zxKWUWG9c$1a)UWRzw68g9jU~&Q*fG`;~xH;9JexBy!bFCa!vql~m6Rw*CrdCv2G^EH0B=V= zbhwndbX@`HCkCZ~znv~*=s$!TgK40@$ra$Lw!_MROzEG|oO_=~9>V83<0Ju}7#>=0 zo`Xq+dmq+DYkBPlt)JM}Gv=P)F`Oy%6M4SY`bSy9uQVB#|s{`99m zO_vTY$#9MG;V&G@;q{wRW&zN43i^)^GaWq5hm$aG4yUpIGU7jpe;xHN2LKFZe}G8= zOuu&Rzj7?#l9sQSEbo1CY?!O3ey^*=BEn8aNPjSD6lJTR~*HLX3-vq z86{c-;%+7dR-ulUI`yr1zc zZs$QpfLnX4IA-W;oxvdnw5JDT^81JaksDpW(E%I%!8#a%Z(atv#&6J8eFpd=0~6dc z$BM}Zbrh0d?B8XeDTO+;yp|QjjbPnlf_|W7Ip^fTCDi#9(ZS?aok0PQvv?Jj`cC}w zUJu;C*90UHe75f`S*bH?=HI!!6KOylmJEECKzEoP6wj+1^bf;#BuA|W5Cfgfrf=H~ zlP@MWDu*x_4*>BjY0w&zw&7oG5Bh)rwzUye0v=PxJeEP)>1hlKW3^8ScmhV$_1;M2 z0=@bkP7!B1Kk(!Lx55fA8*fs-r*OO39H;|B+YUYn?2YnFAiwPo<)-Qky_5&tJnP_42;;1t;In!Gl$_{tJGHdjL{<6SPmZRbZn{*h=4q}@`3)^ip zlNEj;pameHG>$$2>O$mKO)lgh&?w_hUk6&mpd8!9P3+;f{yO$q4(UsC?S{+?^hP_%qDr&+cK$G13Vg0nFfHHkim884kFhElqtCAAIQ^P`2fs(!SSe#l;COvp3X$ zxRD?>2iNuou>R$?ZoR|M2uZpmKty1jeCX%e2W`WoHv6F-v8YqWH<0}=0iEkxb%YvS zB)}o_3=K)m!Ozl{jpRNX#W@n%&MpJrdU!>HzB)xY8@`5Hf)113S$>npMo$Z(8{f3R zU52(^lv+DDO2bTUl%~R81!3k%ls$$r3Zr8d>P`j)I_jl(mi;|Oa6WZ}G-01g8~9K9VZg5IZgu8}B~}>df%OIl%m5=VhaB$XZ!M$kaq4`e zw8Q`nXEJcml`g;RhWkLp6@VTB$0((2D05B;KLuzwUUr4#ZfzK`@W8UW}9 z19_XTI3Z1ueoj|wIpt3wOV;MR>}%t9>4_$_oybc$z-}-@KL{=L9wU52i{x5GMG@C> z-2D$LLtS3$-bf(#1{c(?uu+s@xMw<3dYdUIqfvbQ+9#OQ-K5_38n5VuvP=Os)3X%h zlgTAI6ejFD9NBk?G3k7!x=q-_P@bb573v9%=nG7LXJ@;g{(rvq`~SOpPe1&y&iI`I z|AD44{^`3+qk(DQoydO2Y1r>irY}jRK!A3W-PrT6-H#``aeKf!9xvrRos37%Y|427 zd6;TAymE7YaQ0SybnTiPo}T7%?B5idNE!WC5|*XQ{0|s9{^I(iT}&6(C;lquXO_(X zi$K+#HNQHkp64mue|(?+&Zi&o+5MN({uigT-9YKVBT5JP-f$+DhOHb7JJ}C3o=ph= z-q4sfDdp`Tn?Y!QFe!;tw)fyk+EWQlIBlmeXgf?%<5X@l>6*>UzwnEn`JeyY|H=Ph zdUn|bcg9gxS+Esu^p(BB)ORhwYzn>m+3;?=YMU$;)R%vB6FhO#4Fg($@{Y0+>{ zI@mL3z{xvx+J}~;f@y>0aw7tBMQWcJX{X;UK%HT?W(~LYZ0t^(;E0AgQC80kBV$mm zS$+vJgq>+WC6uG!a5N_EWa~0g;Mgni5AYQlYQo9Y;Z#1Of^t*=J>%5|iB(xV84U<241@8f-f9hzL z?&%N%6lh}cn|Z0PV~~&XtmW{YPK(!_zBO5cD&v)Q?H$$sS(bdmd`|n& z9`aIPMMC;7l6MF*Bra9&2nb0c{~P&3zqotQmypO^B;4>Cz($EIb@xJ^g4{$NatWn| z7>)pAIoq{9;s^LM_XLXZGA;F^H4&KH@hx@01mKA>;CL+H6%x26)b>91_nIuNT;ON* z#CW1bf&*cRRbo;Fr|U2DWngx@4T;yEb#d}`9{T`g-f(7e_ETYqv_Tz$Wy{AH_`>|J zKqE{BL?0282PjW4$YFX%6A*zEQ;`4Uci#Ae|NUF<{`j5A8`+gvzUB0=N(JPELgm&-S#tmdn0lWfSrb zuRIhwKAx4ry;pKs`(F|OZS8*}!^I4MPx6)M;`+p2MTqLIn(b)7B51c>y*2*IFaApY z(|51Q@zI;I`4Q#Q_aBe6yPwOkfVBTGACHr8j#J7nO%i{)8);k4@Z9cqa+Y&G+|jVf zQ(!+1lOmY+0x0W)_WN-^<}4}KqXB<<=bg9j-T5co8KrL2;P-qq9d(XUrAuftL5YD; zlvat3q>7swMQyk3;84_R*lYwh18;i)Sm598!+V{u{WoLw-m>IkN}Jt?T{jA>Q@E87 z0$&>*9BfNRj0l6ydCI*kofn(tJ(suHwP=78Z*ZRCF^3D>ajKjp7NA_{hYog2t{}e5 zcG`do7SyrF_RzsmUc$C)dNw@AzEpa+Bn`l!pU7+FvLo)M!o$$;rZ&Rd>Q`f`Qwm{< zeVwXpQ&Yj1<97|ffOlHQbf>Hte8&5(W2p0T{hnJl2_%w&vl81Tpf@_T=J)~6Qs|$I z_^<~}%W41Ey#yN-Xpa>}Ox_}MA^gbC`W@}B z!l0j+K-Evxqn4bY-oJcKKdH7TdW`^i7~{yTTxExZ2L{k`f2fRoo&#_(wzclDS*uE+e9B*1}e^Je<}^lUeu z0B|h%%I097wnzI?;|UMr(ZQ#M&c()F&`C|J2 ze>bj+1i*h+t||DhvjC>-THR#h)mP>2!@K;q|Go0?Z_>eMXO&v^12{c6smB5ylyy7f zB3`hu>nmj%9QI>FMLep`n&GXUOI5CNV$q5Xgh#)Fk2$?Z0f3+*k+w0|()N)SrfVqZaq0IkSSRucS`9#PvsDaS zFi?h9{1O1*c_FU{GK}C`T>u-7)(X^VK^wsH|7GvrgDyLcJ3%b7&b{~hzJ39XMuY6O zC_oR+XuCDDq1D(T*Xt!_2OGO#4ITcc^@sm*tRr^9`qOrV9p2ag=$MGLy{nC|BSsN+ zj5M(mUP%kkJEACx8i@~JD3W@Cl1A)ailiujAiDu{HyY^f?{V)vr*f<6R95}6&iObm zO~e5F3i$fodrm#Fva+%=v$C=fp9l*Bjwf^tcqM9-79vAb?L3ZYm>biErnM=Zi)G#* z9qGJR8inRfFt(gu&zKk5qRRWVZtX6%gE%pYEtK^QZ$rbk=~Kf`bp4s|1%wOwpvD_B zhuE(FEq`ni1AIzPy4K9~&(J(oUO8usQ$z{ba`0+`i&+G4<=5ze;GqxbvLBOccn&uW z8bcMppjST=^iQP0DOnzZeJk_8!3IoTU*d43O$z89;;hgVfSTkaM>pTO`&+;E2VeMf zsKduUw+NeiJO=reVMtN`UGD}Ti~<~X{Hfdcs1t-ALk#%WZ#&sr?f3&ap#6sriSBv7 zdvGY+i@$jB33~iT&J6MDzu4rZ^Up}U`Y(DW$4$z3Oqu4X=Oq0bn3zt|yCTJ70Qxoj z@e41!;O>3qURt`MA>hgnoa^rG-{-gcgKlqqir-q2Tl3xJnIq@6veN}cDa`qU<&N8P z!^SU{3y#PBmo#h_fg^Mjj{+>Z^ce$!cEZ6R820AEr|Y5B z2B!j1zK34dg=X%L0rx88MHcs2+1FQE-pDffSU^@R$2b5!oog3Rs8|>KtZ0;-_b!)L zCagdpi)vk!iHc!BZzZS#)R>=>(N`?vC8`3bp6OF1typTQb~3?C&}fFACIdg_&%0)# z&wR5Gpb*h0;$?iOF7#zwq+PdpDlFxNrmlT?A#zzMHVQS>9o)fNrN_581N^8EYm^eP z*V-YxDv&qAAv?(LG7LJvS`OWR@x8*OebEM0c@Q?hDKYjgK7JU?~q!N2}6&E9{ zjPDtRbF%V^5LpEWg+k;K+Fd05pGWt z0lUmmfVEY2us<05$_T|7hbZh}1u|3baYuA#dBC)V`}m6>8gJ7(*CuG(Lqk;+20t z|Ed4({}|N$KFICqRW z4;$VL3qCyz+ilw0KitGCKMsd&x9p=UP&^8dJOP4*&_xe{m?VjP$zpi#;oA>C^C$o0 z|Fs?ZJENeIfFdr+X?9Hq<%qLTT9mS)G}J(H)v8Q0j5VjsR5bvez}a$Ei6z%3UVWV0;s~R&BIQBD33L}MY*oD%c;A5IU~5<7KKWv2B#}%;ff-~i7pI0JMbkBZWfk4 zYQIV|QsFFp%@1&aRY3&31cack0CV=P7`^1%g-)h|Su1Gc0*$m#ggk8s1tqFR6x?|# zS;g*375sv*p%tk&fQ}Vjdxi9XG+FSQU!)(83pH8cUZ3IayY_?f zn8J=W^OUA40dRv0162MluyZL@K++uuX~qG^2@NboAR(Fvs|J7LIF`uot#GOE={@e+ zF6NoQoXZu@0vac6Hqsd{1azHmaaBM-Jmh9wjAhJ^XUUnPNfydF%K#q21ht|n#X7$LW36rGL-j}g78@s z3*|wMjF%761&)17y8?eWM{s^9!Z1IMal4CO)-fn&a0W1z=hWboV7?I@yE|Kyaj|sP z_EYDS4uJmdob8x2@Cf#YEbr2MK4(N)ASjQ#m0&K$>JYCmv%kry%W zF{BAI=8$wJ*LX(|%y+W1f}RO&g#!J=aUrtfQeg6AUA@`P1?Q%)W)xJ<2)2By&=fT| z0XPc10}hET{@XsZ$4B%#6d@!zeqBB-2IO+ z`z1)rS>aEC0G&^_f35qt;UCZc_ruQaqTeh7F%IGRa2PECN&er)bN~I|*ZZSBaeDV* zQ2x8&ReFVX)<5p!x&LQ=_!%FA|Ecm%C+S_47Ic!{H7Oeb2_7ne?!i98=$}aq6;q{eo zC!QtaZhUd`&x}kX$usc#v9na~tru?*QJ7w?h9Qe#xMUa9^dXAN(!L6b#)z&k7$KfB zIJhuU6=t)I29HhGK!jq}9c_p+%yJy>R6(#~vqPgwVZ!U6{e(%a9=&t7CRYu@Aa?RRT6iU3>?!yCCgOfi9>;&X5YD7IH+BooY1% zD2)!8K0PeHPAZO3nLs19?qYKtH`6yl7yr^YO{F2C68uLEAR?81)m>WWQQ6%gBbdlk z$|ED_5;p=F*Y^c(u0t7>Jq*m)Wu?*Q9omknpp8m1CKZ_Vvmt@fSAsc(f?q43DGfwC z^h2)1+qO|aj&U3sKRWL^;<&`Dv9D!3^OQ@tq=LeU$Bni@m5vi{(J@7X0}8mMAGN)z7(*NjZJVKt zgI!alJ(w3*PeI9?B2jil+2EmCOu6zm23H3itAg@o&f@rMzmO*pd}=)m^Cf~ThZmWcv0kmQ@po4=eS!UP}x<(FY+bz5YaxMd$Z#i^5Y488UC)kv)~1AWacyg zUyQ~==GXz^Q{Ss`r8P3Nk>#7IY<5?R@nw>UjGMVM?_$!q);aJNV{0%VhM=)9E`?73 zGcN4_T@v(JzpH@&>1)n_R`BgCy`j=e?Oek)YL`YBU_1)^`ao*mwcp&(Qb~Ej>rM*d zS3PbD9<(kYW1uiR9Qsm@6OiRc1MJ*uoh3LdS(-9^q&iOM35P&4{^d4`Y$Rlib_D$@ zfqSXepT>{KT+2I#Ob{@;J`=6BzWD}Wni_ORp61N-sXZ;65Z zf)OB;OPhYtM6g;c{U)BH4Lf@WEW={4*Du{d4%Qptt@k^pR>Hey{ps+1fA79LzIlr7 zzVUnVk)OIHw=Rc`NV=BX|3UdTv*;xKo1Hp3N$;u@h3BWAemebK{rFY-*0;Y!+vPdB zeP^J@E)297PPsR}dsF)UFgvBSwP5j;d$a=fv?=UcjwOI=Pn$bKYi}6jZBE`4qI06%~Ff9i?K$- zdsrBw;2GWb*+XFzp!9(*ECVj4IWM~0vK2rW&iS#v&t=kASEJ|0o^!{IpdxnH4Hs@- zZz13jl{H@$49B~{#R_ft>v*SlgC7(WQL8{f4{*sUuz*6#tu?>w(z_}Xmz^kpnMS;i zaKYk9>ZVR)EZ7AeT-#|881IB=$m za-Vz_W)ZKYulNOUH8QYTe^J7z&O^l;7~0BM$IsF}mA;^%&72Ggg_*v&O4t`!dj zZmwnZJqpx_7t^lT@kX4Yl4$6k>s&|WrFfh$&7)_ zc<5Yv6rfd@6uy#|X`+lEO}2E`Ds@I7Crhii)|8_qj?C^Rraa&4E-AEC#-7Y@S;Gfa zT;upHoSj>Ue-C4={cb(c6!+RctpnFV<-euxxen#G>b~Cb)VSRCv%R4O@u~B~%M5)= zr42t*R+aZzBMV!)L8F7hkMtWq(FljK7>K zRNHU1xawSK|J6IMf8wPZU-`0Q7k2!8+_nn_fFMCj`V4!5Gz^QdskaH5e)RD5VV{q- zezDx$#$EoP0t}s}VYwr|KN8Q&zUR*S^=e1X@16B;zj;S4oxM!wK0w3%J3m01{w6(q z`7AyC51#ffz4Q{_{`uSP>b0xFJTtZ@>EGDo=p?<{Qkr2gAfQ^^&fhzq#EIyZb8GX8 zfAYd*fBKz2my2h^WM1qJ>*bM1JPNSBCkKQ0cobl8E-R2Cx)Iz4Vs+fTwZF4|sn!Xdr{8%o6sikvS%ahU z&rKVxfRx9!f+AL!naMjUj{?tX+eL`O=)c+>t<$)kwhO2VX*`-Qxx&smPS}sqKe56G z)~)%VPmHd!t>Fp#>T%~M)1Bj~P+j`$YJQ`z!1$?%(uVe{gYm-pl?R|h65^U0*p>ELML;v70N&CUx_PVXa}iM4-u=zW?-WRMN{#H^GJZ8lwO#c zd5m~QSb-m?x0b;1qDfzgN}LQdXqIt-dQ+RO@{m^WpW{F1BCKr^RUDYPAutyZZvt}{ z;L*9tz+-SO5#SSzONb+_Bemu0PAbwF;>9)Il1Ld7lQP_z5wB=0d>rTqja$DIb!f(6vVJ%9YCjbgf@dDe&PDJ?Cg_0~6hQ;%3-Q^)MGek{W@rZRjQNq4+T>*E37E_wwlD7yRh8-L`3qTesM8{(CJ{b4t7 z)D;eoQssMYHN>d@=XOs^)GhAayd;;--%Rh~ZDbgj{N(KayDyy>0N!P(yHyW?8#d}gFjdw@{U^$F_LFA0xW1f&~OkKLKiH7+hKjQj*7jHE<#;0 z21Ld{{c_p$v`p?of&KWX|3@dHz+A#-`1|;mKK)A%4j%ql6|@NiAgY2v`l{!asWQ;0 zlDe$y=LK9q22j`2s7!0Xy%I}+@MZyIq+D(T5V&_*75=ddnS~@h%L`~xzG7Zf#8n6^ z0uEKz{;?L*FSA&1h1n=*t_JlJ6l%-j1!c_+bY5e$Efk2n)Hn&0`%tXR0(j2-Z`~Nn zf=eycSq0NM;2f}Es^uDwV00e>$(L{+v;Yr`=nOBE>;A$u-LW&R?F5>Zx5%f%tN?)ZdXYtqy zciK0dldUqWc+z>D5N9(<9K<%S*a5Eh==1Yr5(03Soo$VduEvIco8)_YA}wi z;I4B8-a80RIB`z@1bBM+-Ae`6WqXh(X$*+CS3u}C%d4vNEB*T1`p-U8tdwMgSy13p z&VO(5O2CV>|BNtm(FE&8Au^zq8S zF%G~ezl#i8imv}L4uI?Wt>1*5|5Yf^4~w-Mj$*Te_fhdrmB!G3r_cJ+yciCH@*iFQ z7w_*q?eCYkV=?kST^nIgBLJPGcU?L;0`M+Ppa1;l(`UR5;P&m?bo<6_clN?rUOoD% zJKVg5sES+Hn8DBghF6mY#0R~ z6%3f|&Q)2Mw69!uuuwV4Wf-GhYx}7mxqd0Y5Tin31U#|}zpbz=Rw=7KmbZlP@q7?h@ovag_U*TpQ9N99F!{&QJ{i_zokFue?>3QX%Sp$DlFly z1?F|x?Oy;72~2PsMd2kKpYU}a;jw^%b0TwlK^gA`CV-9GAWfM*(ns|E8S+t@_*)HO zMX7NW50f27%ZrRaM+h6ytU&?MRq7-woayfp>AHD`aJXsTC-YnLqbq8j&qmNU@A1e` z?qk6dRihljTX;+%c;J}=H0&x8xaoic0bMID9!0sm65-!91`5}dV}OZZ9+2&?;f)ov zLZ=?;H#AMai@?L6)UCUC`6xpfd*GF*P!Pb=Owl?H&|kwAr798V1%SsN%6cYK8bKb> zDn11^?ITZ>WXE>tKzDkq7w4ovztEs$loYOcusvO?8unx75|qKQBH&#P+U|f($B4W0 z^R>W37CzuJCZC9fN$cZgoMo;dz%SAUG+h$nGu5r_ah;bftqZiv)ZkfceF_KiMm>tC zbXDj?XtK_jt})g4LRvQ*0YLoXSdr!D#c-+ZbUdZ)l-F4xN?+lzX|L(G7V-d}nd|wx zu3uWd?YO}WH8^j^UN=PWn2e62t~uyIiZCm^;TY)quKDet-tf8c!=2y!$`}9Zw+RPm_;F0e04FfA@{E$z5mlljLu|cGJ^aM5iz84oiM)I1{XV zr+4@Lsl{#|qkhJKfaH(-%AM{#4@2jixaDe~7&#!`4nQ%8NZ-4~a!8iNAy^g{T_2kE z_YUqq_|32UlmGj8GeBnWXbsX#ap1=p+yB)apc-_ z)uT~DpOrqqPA=!>IWM|tByw3n#ZaVrQIz$VE0TCDCj$7?MXKcGIxu;>W_P4e=x_U9 z>J+H6NvPoJM|oRl7*Zw!OpejhUI70fx-5t#1YTHKmFJlV%n5{tO z$hv!?BE^7D9V?<4atE9hIsh06VW(=;()JCFNNvE(N9dpFYZ(lS8=Pkb2Abk8x6jzF z15X{~5d!rfZ*ndD!T^*x0eBE;XrHZ;UU(isKBD4X!c_4jIer1+j)2Fcx#}CZb<H zu)hRVlqwl`B11m_H^?7!EVO-7xzI!*LHLkXWLgwaI|Z0(9W7qXc(+A?c}-}CYkO$m zM1@TIV}O$ihv_RkR~jmHkj-CUBMZMEVt87vRq}BCC}ntljcIXdcrs7nQ`oUDSYM%a zs{F^XZLgr;SG?ie(e+3bP~5$y79RXAGjt93L_CSN^G@+B;9Z0L6vQjrIaR#Cc!~pR zXi;Hlafx(>M2qEILvx0{ag3>sf8n3b@*5(uGN>Fs7nSy10}~qT%C(e}CHw@A5UwR)e{)@Z)QD*O!L9Sm$@7^Hmi-g_(o$VqR0S>mk ztd2HA)C0EbjqIFV3}?;~y>In|96Z=hEk)P=_0HYlgFpJC6kY$XT)Q^Jo&Ohp<^_&B z|Ia=5TuU7%>0OkVPSU$N$ru$Zc>>({`5PPz0d(o+C0_5W-Ps3k@vC=lx{DvU>~6nv z*FAFaf;)WccDLExgEsOtvaEM5Fuc1!ZZV&Rqx z_I??xi(PmWOo{Q>Q1}eLul&G|{Ls@^KlFd@y6)5n)Ce1%RWCvH(u+}46!6S4iUUJ= zRZJmZO4?B`fl(pSG%h-ZV{+Mrw^9AaY@Dyc8;uo242n#u#WAewm8r*_$@JBWok^+` zlm>`U7@U=-QJ8UL7v_mDLS;vGyqj3E{5qDA+=p@fA9rozF^8zojp)o*d?~oNhN)o! zcaDvLrFMYLqD*!XjJ`!0nH$f^tIyGZ(TWMI;6zr?s(H9QD`|u|1{pv=(8>K-aCLtz zf>bLcWVkve6HU1Yp3q6$0UZ%XlPeg@PKb_W6c_~RqInZ+#`S2BXx^2&n%`v?v3aj} zA~AHD3`v7Dc+B+y?xb{x%kc;+-~ld0b2s(+V`K!a!{zyw>#wl^ppS*-DUFYm=<1b6 z6oC;VKYy>J%twJ~`G*Za5c2cFi?%b$<{^oc~R8h$NDBDa3(yz=-O056QZL{Kc>pS^ zb#bk9qc}8+kG3s#&WKnT(Qu-5;`w%M%hU^XD(ngi_Qf|m1&zg}tm2Nq0}1CD!Tik$ z`&=p_D&7%@FNE7eU8tlfoE^?dSL-PTRcG52vbe?F-FChp{C4*Nc;KA@gJN83A9DMel{=xtA z#w&mR7b&WLRP$-NpxG#Lsx#s|^^6%z@n;ftGi${)Qd3F0g+5La_rju&` z-^EGtHc_y~CC(Lta?o|6i&rnw*KdB^KRA2WJxQ1SCQkQY=!>^|?zxM!dGKKIaQ8vK zbGX|bc7t06#?i}?f~wDpz(x9gpru=IFemadFp*8r7JR%mG-$lx8$~yOu3HS^2Bx0* zYp;Fll}nF4@yl0!@Pq%mBIAKlp$dVrP?mZqKr+)S>t7MJh|oe{juH$~*8^9Xd5PX{ z(paIMjW5bQEHKh2mI4b|m06mY0L(THfRMR8zz8LiaU-)R8yNr}Xg-sllM>BYh$>lg zTj|O_FQxf0R?H}nNJg4SBV2h6+Sm$Fu<+ncJ3-WXZhEHpF|MT!c5?|9XtKf{5wu5D zz(nCtm1+;|iGBy+&5K?1OaE{&2OMkk{0`bCHreX=6}G~bDxCVR>`G@sP(?}aeRkOp zK-xzTLR3&H!e?V4Ka0Mms6CU!@6#@xn=gWhz{{6I`d6 z&dV`)rpy=y%+Ub`ArW`_wcWvwSqh!hagTwIQ7@R_Y(|DF6=T3oRD4v(MkTnwi9#H} zC{%an2WYCDGi82r#it{nnVb)=A=7bD93ovKTdU+*n_t_MDJTR+q5==KblK3cCfxZ%beK=zTd54frE3v4xRM4)uJ0J&O;rG` z6rSbs9L%tx5}zEVZ6+7DUMKs)$IZK3r)O21|014(2O@`PcyvkBP(a3`DCTk`&a}3)7 z9F())8d#4k-rJ;naZ-2FXY}4P<;e1qQb#sEqH?bun{8cY{v*ITzksO=j1kdvEEEp~ zMlC89U$|zXoLAOFg7ubd|BB*|FyLI}iof)gVLX^7F*FpW7M9Y7+*7UTQKlb;A)fo+3`Ya^ zD;fM|yJQ(w+ztJ1jQ;EWPI!KLweW8R<^S|M4`hF5kKTXbf&>FV(k-t1>=n6o)4 z;~%4Da-XDkV>&qk@GeeyudDY5dE*zQ{A*tb{Kz4=F^VYSc|1(EXVCk zdtBr-ld_;GYOqiSJz>;T@{R5Dw2ca_`I^TO?#s?XroLf4K2gv3tE^aH%Ab-KbjiX^ z3IbRH&gnu+fRl9N-J?9d6@Q4UW(>9O1pSz}3O6um8`_xm zvAn1sHXaGvI?-^XG=~BITBQ&b^5PjqV8D_p{1^U%3PTydqhch1arF&PLpYIN)W(5s z0H(s6@DJ$T&?&Tozcs==)}?c6vZD?22!#xRv1}Dzq(g*-j>(5dG-?B6=vHA-IwKq} zu{dZA2d(VGKwAuR*fibXn2Ah)U;`pg+i4YP?W@*Z<}lCm3^d*dJTK?}aj}3*$X@`3 zb#4>zwie&{6Z@oD(3=o>1s4I5jPYthi$t%!dFvBj`XB!3%M!2p3u^pg;l^|RVWZ9^ zgMc5xCVrC5!>@i5g!65TXdM1FM{7UyeaO5W_JXWWJL2D2Z)AJ4mKgPaceNvLZ3cgO z_mt54-bZv{<8NHQUV3-!+BN^el@}6#9}EADV4m#$znjyE0pQ)A5+_Mlaoo5e*REbm zmb#mtyeaWoz?fmR8DjxNx1Niq9_?u>esy#tTME1Q3*RrgrR*+u{Cazs0)&JeWWOCY zy$^Q7$T(a#Y`b7Zq;BD*j}ZcWFe+|_(fx?Li`R+-E#)^}e(|@yefPVc7@-og!&en| zshcpMm;;Z4#g2-wQSThr-P|z`mwIY@YBa$5OU24mff*+S%e4X#2q9(h2ZkSEYTec| z;}_hqF7KKJj_ZP53G(wAq#UJoI z5sok@n2;6Dv>XaB@%JFMjQ&(%xVh0_bk(Is7$QPN(0tc=QAjsRJJ3m4prQZjCF030 z{_*($UJt0G7onBNb`JVYQWea0fmZ{PHl{G+m4O+*Y=j@4!9VoX(5f`>LHV)^D-{PQ zP~x~#gY(u6SDWpi-V7@{I|td&6ixeO=m^~3nXIsj3M0O2T&$(wm8iJ6aZSBCj_usWwHXanxSs0TrSG^Y+Zq9oN8x+dw%g#-0UUTs3es;W-?XLAl?S$g zaCxSDqDQKAD}5SI#FnTVIyY-E+dOEv)qW@~mU+w7(~JOTrF(G1ZEma)7s$s7yvaJh^AHyhoD3P#7|fqC zceO4sd=?`S)Sr#W-@g6&CqD7JFa2tezSG(M81+A1&lPXzis$}^9OYk@QS~1NzjQ;q z@-J@QvGeg(udvy-4BL6)`%`W>eBk|=^Lst*dH=}ivwri|YPfX%34dD`=83;^%)l!NP~f394=!pS}7h5G*0ee$QD zy5gU_aM@ovdcxnn{U$wj`cc2RzZ{4jgiZdX^lmfs+zk?q00a4hO;G&%MY=+yqn#mg z7Lu*^{d(vl!|8bI2!a9z>thT;5|s1)*MI-B|LEIyZvI-J9xq~|Y z_D~-ojL;A&ZpIU$!A;pssr4`l3q^1NoMEG`yf8GVZkA@VUSV+=Ux*U{0S9Td0$uAU zPxM+#grD=7P!y_!ikk_BfgQTFKFv(nhxA`>>&R>T4=B-dxUYrA{7+@aLK2PB)3X8rU-(hT*N}o(dSg(L*Tmy{U zz>Mt@^cQi!0Ao?0sOba1ijqy|EIptxv=s8TF6C=z=pg79&i~SXuI(dCiVuvh;DDxR zt}oK`OYHn$tWW6=p5eH+xJHGg<&6aITkj8P<`u%(Dr8856Q!Ffk3k+$j3z*fINu7b z0Sp2^3`|sUV%7%8H=%KOPHf@EHVqCNyv|I|(idaMqDs@o;Dh`LUFMj~dRp3R_yp2O zDJu=#<>xp)&6J(xtJtQNMZR3tL2jOt5t*0S+><&rs4|T@ietxHmvi#By>+P`EE`ohvRQ|(Gzkm4P0qwcv(4BqM zAMQMqTeoh84Z~ObV`tCGWAA@|fZ%Eh_!nV_8;mjVUo-;HNqSGD69d3|AgLQpJPHu4 za~H2(qJ^(}g#2S4c+}I*<$lG7!!j5FHiw&G8H@l6 z4oo6g47;5^-6I;00EFGou+zT?N`7D@e%t$KYz$V%XjvSij)or+52(f?N#uY14?pv( zuity~xApGwk*5Mv_>tf0ZaCFK;!Pc_f_N$>6U7IW-V)PGZypd3 z9J+P|gnIPKJrAA(%EZ0UoB}6d!+<23o4~IhqFrU%A1?*PRZyAf zFVs_LN#PNKn;-;SZOIBB$$g!yFj9nYA}a_>9UG-lB-*4H!y~TvVhw0#a0uT8@!)~J z^6&D4YM)S;1{e)a3m7_HF8!5THgITA@i86-bo?%nX`h-g$@~S63urs2L^R4tffu}0 zsv?;y$6d8qoFcxPJgW2n_yyklo^hA7%qyznk4g)A??~;z*oM{t_(Ga4F7jf9XH<-E z$GAMtZ2`Zlf;a)rsMb@MCtI%$X^A~Q8-%{6QiyoveqSQjaG=CX$rl~T(7Ed_O zkWMin@6vh=pFjdrT$l=gH}Fhf80wUUj+^`}}j}VMYg9C;#%rH-AidQX;M?VDW z!*QVoZ-x)d&=q=hwD=JrbBhVmvd_3ON<6|ghcBsKOXWx&^Z~t_+Hoi7gNI#+(k|6! zhVeBt!|0&}ECgzP^z2sNXo41eW{-g50-{1F-?40V~32nUf`kOum z{d@Al#y<$ke+>Nh)}LM&V&wn0`>z52PNM$5x6+9L;60ME5rCtW?&)Wr9_VTEF=A)D z5g>X2JUDw-Vnok)Jz(?#i0QFyU=00PzjfkNa)P=){pR z6zKJVX@_p?8xdSxEl^_Jn9s>Gwm3Pcwq&DgBdWB#&lTYgs=NXQ6L zq;2Qt5RWFcCsMwfMMfIIN$Rs=JOCNMT<1ry?m+;#bgMyLxCDdv>0(rnLv}$fy1FlG zxkz1vOAIgt2wi!(wvX_cwv9_B{-!Fh5LM--2>u8w8(2$Uw7d#Ms{ATG+Z_;1#mk(@ zocoqWm?*G0gE!XxcpxA(_=rHz<20Bw6_}*<7kAw-xyGx)j3WWfkj(?MWcvg3hXQNs zZmW69jv&{uHf;&utQGR85tOLVSUIj@f+!(zYaKd{zP5qFoZ^lf{Gf81`(Lm&5!9*B zZYrihA)C#(3EmYyg-;QT8`pMR1KY&Y016s@$7F=_m^|={S}1=sV}}d^$A!q!1-4z8 za{5cf%26GGxlZ*rLAxzq!FB}Zr}ib4lbO16zuLKi%2q4P0k2;;78>Ta8sS=%4v5t-LS z8Ty4U{NrC5Qk4Io`t#^-=%B1gF&F9U=&z{UH(mU{@;*ahi8j)?VqP@*u`^0 zjQ-Edp+6YJ?}SaionQ!feg8oA-01ory@X#4&7XbnAORHv|J}NLIRPDa{-Y5fU&k$U zlHL>P!~pQ#O7bi{n{EY&lQqTzxb^j0a)qu8F&@A-zDaa$|2)(A-bagH^aNP1j)Wc% zo!Jw=|6t#5X)|p7W;=MdP4NKwW$&U9Ai5ky4*(t&eYbGwnvoQVbdj9^;(dX^8X4~l zh(&(+%b)y(yYJlnViamC$6&)>4a?071?M*@sy;(GUB`*5JN_J>CAg1VjR7PepXJ{o zMVVF)1vNsL;Bu{?B2w2-To6m}K`jbGQYt0@vsk8Y7CSP}#6VA3nTL1?rZsIt%Z{ZP zWOjqMvT#f7yJj*%65!6kf?Aum!VxzGTT8hBKD9hGxG9DOuIJyeOvjC&1MRv-7;Vg$jWA;p2pEpRXcC{nnLiYq+A%?e)+n}O5$WulGJP)fNd!t@eH`)KjShbbZ?!JuPXYW4_;_;))N0bO}uHR6}E7dh5!ddlgOWl zT4uO<5_Y}wXEG`3oGHzXM+wFNd808hJrgmqu5v_X2AQ5gK8NR!zwjG7^-JHZ@okk67#=f_;rdNYt79B2oTT?wI=Ke$J(Sckm&|k@qcI*pU@JH1h6_djzHsk?oIg!+e)EWIjwqN6$;HT@ zZ*O=wH|+9i@z4dfGHizqb$}Q#R_$+-#4|S~wt>X$0 z2{g~;_1HWc-LwQ=)OIF_Tg!|Ma?LM|;59VQOTIZEV8Jc@2Rguj zh8WRbF`;;CgKQPIb}{8ek4p&EKDV9<6Cs6;N$su=W3LJlQ#hAkCmqv26mn+`4VJzb zX$ch;oMQ!kG1Zj1MH+rUqk>FiZW0{xdqU5nGRgJn+0`i{h$U-B_HB{_a5%?scwW{k=5Cp>}&^X<+%?*!%lH-9lK7k!kk z$#p(D*KU23=msBl{`;Wzrz`%tB`1&Eu)jaV;{oE_u;9h8;iI&HH|%wC&TssK#X?r$ z`F3yXkNVC(7Iy#Xkv%$i@K7G_&iE(ksjw6Hl-zvtCf&GtBS8}s|M3#rpil5~Cqe(- zYw5%T;Juedb}}mebp85uzH%j4@vhKt>HH;$#{r_HFUA9iC;E@>Js2Jh*2DGTk;Hfa zv@8Bpx7+tQ9>97y@iK|2*5Bbqc=b(*KhiM5w9TW+z_LXQao?O(F-72 zD!p`${4f8`ul?ff`)_?|gf1^cD*Z|g09d2=(mi5m0k99{@#JxZT`^RIOZCq zKMQ(X&fja^T+G9*0ScoLB*_Xs2{t{G<|}NHy$VV-0zx90#ZIyymOueHu$(>DPok;N zm4#2i-3YaOcRX%ZM(>HJe7Ni>fQuz({1gG9Mrki7K<|sv5BRMJEIS%f7d61SIeS~q z9|L~153LeV%0u4;+Rl;ri$^o!M+Nu+cSNYBqR8eljv9f34NmI0!-~Hu%)`}|MKJ=a zJ^_9J#8IaJ`gS0Aph>JRp*1S#SQKHBtBa`O9NWj^A4o6M^i|uKqice?CVk>s1{Glp zd|14PfUtyYT}aOeZ+Zv$9ZgVb41?GYh1n=8<2yC9)_E_<;KI4zMdmN#O=M$g0Pe7U zRGR1TZ)k(bxVX#!4KDdX_WRMGiK#61ui0U zBnj6-#38PwIIcKvkyf-k-r~Sy=>XwS{Hd&<^Gf?g-2AR+n)aV6kHt6_scLV_4!ONT z@80Ieb_>qLDts;dPiS1>hq5L!lQBr(%^8t#cwg(sK$xX?L&F6w0$5?rq(5hQy_w5E zubQyG1L8(3ZYH!3pb7pJ;;JuAyA7OLhJm&TctAoGjGNMz&=j7gYlg3AzZgHE0Me!5 zr_e?&65ame&VP`uhdu@K3;S#0`t-@NaXG+WN6UdbiRb(KF2?o`0(*27h_3#J+k;`Z zTlQ;zJ1%uo*<>n5X@?KyZ$O>y^M-32!@1P3PVH}TE=;fxI{x;FD^Gl{F3=J)ox;=J3;Il(P zau(2rxB!3N8{v*|(J$A(jY10>feZRiWR)lV-Qs}SemDIm=zkHYn)B* zljlGKtsut$Z>!uf!mU>a&eaJ5Td7MR8+056X~Zi7E*)6~#RKdN{gy@$ZOGcBS(kmX z{io))elP7&rBVD{Gm||RPj(F3d6k|i?U7{!z&|YiX=uAmIN!NxRAJTr$qcO^-60G` zNg$iK7!|n|#{QPMo$*o5{WfD~U~K5M;3|J_T1A8RIh>;_HACI4 z@yN{CW-hhsqPB%fmB5@d^8@Q4G6p7ub7EuwT2=Pb}X2Kq!2 z4C&5;x4-x+pa1kP_%7`DFM{m7j;{a9UTB-H{fqtp@k;Kn8g2)-?a6h0Jf7PJxjRPu zAF^?Pwu^qh?246q;N6(z|7cW26$7{hKzkFx7fBIeu`gi{FWxjOt zCeyV5$P01P|6>WJ6Zil3ZaOglyayBB3J_xg#7{K>#M=RG-Mhsx9zYEGaf@Ciw;i`n z&I~)-Ge>*9DgOi~xag`51r1Er(&5ZU&Hk=@)(1MayGgJWPEG zP!jBp(($n3RX+^l%>aF{VZQLiPya$>a0SpA>Pvy^(ib8t9M^>sqp6pC@M!$B(e6v| zy=HAJ#s+GI9Inqw8&G&6=m=C6 z5hS>)Eef*~d{luMa59&0$B&pMMuRz=~1)YjX*uRF`I)( z)v6hGy2R8iT=SZK=m)l0z-C*I`4l^j(z??(e=>u+lFv!98EQ~zMNO-hZwv})HS}PF{Rycj&P2-P^uEd64^Y@-fxj}n&O0we`>``6FOM-o_+e+ z&iG{?)c0-~ILl(#^*jD(DSp!*^&Rad3*)%U z?}q4d6oUa$JcAUp{Vn++x+n#k!Vrv?gLAwMRMtC+?5rQ2|D9j^#n@tM>Xu#|DV z8<}O<-5+w)dDjRJL^A>j0Ylfb{y7|pkrkk3WS8;)UG(*_9s$4woX9Tf+NLzZfeMu6Q-@q?p5)Tq1nXm|a#^Y}OW}Cc zmp(=%76o~Ype}O)546=PQ;Y-;v{%kXi*1ttw~FW@95GF<`oc4`##m8tWN;_YUmfd$ zW0*??&K!rLLDeLRI?_ZD$^b^n0U?v1#fByrue*Xt$J{arCWBicnke`<7C9+u*pYFABS9+fgVf#hJH{;)#DhRfHz5Xg_ed_;ylCWMG>mJ#u`BgaMC8zS*nwx z$y3lE4H6m{i*OBBBbecufx+y6BZFh}G3g5$Koob>(f~Dclx@E-AAXuTpe+G>6t{oq zN1->OIisyPW`TX>reCdcZg?ThqS2JcI;DYSjt&YR!h-m|FqQ_d4WH5enSg5AKwEX@ zVMwnA<|Z#xW8)h@A16krX8xmLMC&cG30ByC2Rbmf0eBi1@wz{bfy3k9iywQji<^g8kD!zE-b@{xr1y0C{O3QP0(j8VL?8e7 z$LZ&<|2+RE|K5K>n|>2i`-S}AxyQQYCGj_3dDESF?6e#l+@;~+K#NlcbP#m?#d^Up z^yp%{5L))^+&0)AcW6Bva=Zf|Zt1xou(@Dlj614PXLnsEEJOP2;?}8?@i?^`w>`gh z^IO-Sc;s>S=&7@RRTqGf#pFAR^Ec;i{Cvg<2!zyZl~`Tk)u_OS%r_witK4 zg&Oy<{IHz0rKzk*WZGrZAXL*ZRxZLKky*hJPReWR%+5R`%v^ED2$McnAd0c1!4FSi zR$MSm+ctU2AFSxd861pJVWvGIyK!1OQ~JsL&uG60&P0>*vYJ)0(FArHCjD#$$4rmh z;M@=tk?p$*2|1ociQS;_Ezn4T0-u`^R@yd8pQX?dQ>9bJy4thlIL9<|dp5GA*&_JB z`_`lkWQ^rXH3$deOQCYE9{ZZch{k|{norT&x_NS~lNI*`5gA{zH$5sJwB4@umDgL2g>tA%e^#bS>mT`^y_M30~+JFB$pZj=>@<%b!zfjLHw6^fT zamPO>`BAA4n`vRAt&7Tk-}Ny*Kv4FVG;EH%U%1_#$@ei|a{UiGbG+k+Rd>oC?HmYo zXNKj`M(!UR$`3#JLo)2I0cFaP++O=%MpOG z>)8rr+A^i{-FkLE1qAGJ+gah$HO?~jk%5m!h71ok3oMQDK~kDgh{=nf!0soP=lQxY zUDWfR=x(>8s;Fv9l3^_!ivNpUaEiO(hzlVu?@chlc2P#Kaq*AeeS=WFI!@DoLQXDQ za42?1st7bR6}yL}!m7&qhI4|Qrj%2)E0Ecx2L zGL}^5orh1IPqCTqcpMtD`(An}QgrWSV3X4P9qS}s8fP{FCeuXTY zg?CErgO01>Q1js&K$w-Dy2i59@{aNh_>}+*VRbQZ8AF2BMHWtDG@}Mq;5UZGq|%?E z7b3fZ2xA}LEf6N0ThJGMg}86~5R(V^%kO6Xp`ts;v@Ql1$3>-K9Z1XVbHHP2!#8bH z?boalOPR*8A3}zo>vvtNOJG(a!$+9w4r%-Z9&d~y#1<~|9q?@emO}Z$cK{DKw+-LG zvGBl4weMWZ5|ja+Qwr!hB}gQYkX8&YfVoiO#&BIrhSp0B`Y2Ft!iU82Eu7cLkBa<6 zbvz2%pf5spOoV81e56e%o0YkilhR*VpIW@M^-6P$0Olr%9g9M5Qs?08kq2m#$r?YA zmlQPc{9G%v#T8F^?SJ+4Tc7;ZFMj3|!tomIpxnoJT0;tP9fN3x-+c!jkf^M zuw6#kx?A`zJYR3!u(P}92i^`tQ2f_I{?uaCuTFPC>OSSSd^qep?1tU_137!~@(_3a z5AW|wJoo?l-MjqNFRguy4VK*g!_I#?@Bgu5N9-iM$I^)b;QJ&!oBxZG`{%F!ygc*F zGd|u55dSpKqTHGyQlo-a5F6THYq4zPm$Slvf4Sdp>Eyp z@=jn>ZtJ?pqqaWeiI&QKh_?d-3uX)q7=9!pKnx7%UG#Gz{~IrV_7lMf@N0!X7h!{@ z*SBVdtHQp303$8KEle3#BY2lS7}f}xG?kvTcTl%3l%8P09qTbS=m<6I76>6lKwv9q z7aB84O!5~%GQ6Wk3C1S^aGFC_zY=tVsWjofR zrO)nYx3o1;AOU9#_z|{kAgmcr^*zi30z7GZt>WQoSv6*i*ZgIELK$xk&chgEOODcQ zlrHQL)$wR?Th9G+>Z6h?D_=sFa)!>J>njSgh$F-SD!Vd+<09z7Z>13=*}^k`Cr#!Q zlQAk(;3wmPub>k9tSB&K3}FT@r9Fbaal=!YCUahYnt+hd4^tlMz;Q+;5|v4Yjw0U5 z7%1`LJFfjiqX4z@gzfxsGjvZ(lif`si+6;xg<0CnOh#dy^(4so^|k@uMA_GJZPkSb zIty#T7Yu|MLNQaB5I-faw#T-8rHMi_`8OWDDd)q9W;Y!gRx(M&unhPk=v$FN^0W3f z0gwIW={wvE!FrKTw)0GJspE@A0WCilM6}>b0LN4-=Q*4=e`a12+4WIBkp_5LNFO=q z0}j4=Zy^sgWDNN604p9lGUE*Oqw!90#kToxeCONGfAY(p|3~Ref7t$aLE-P>?!Swh zY!c*T>0R7Bi&t;^ZQm`HN%`-GXch3AcpKM3wlO+j@(@@D#ouj*-YtC}&;4(Y?#k|R zC445>56(X7;|AZQOPA@^<`w_g*|RC|-{p^9t`w0Y{l9SK1x|92$Q-4fr1wx-&`J9K zNN|nE)sJ1JYuB#H-}!(19T$TF-h8n3mw)(zoR8wi`QESp?4g|f(KEa`2<&Q2{aW7Y zw%x+5mQVCV2eepjXnpt&Erv78pyCflJ4dctbkWm4FsnsW_E|dFb}{^)u@LhDCT2J?;BXedV*C`0xjR;yZu+sVo26&UL2>lg;jtk`OesN`q}Kz zjI~Ja?kJ4lnRZ>P*@9mdD9#IHc|H;Th$ccYRa}kvd>sQU8^?0UipW3}$4xaBFe2-M zo?oVgn#n|CS4CC(qk>Xe{ILzTWr&Qd$04(r_NWnd0C^LIhN_U!merJC0wJnZ0Mp<& zvWkhm1EsPx9BBK7jsR|bhVc*_*P($G^&i$V;xfz}nDJfnx@)xj8QlTsmImYBnZA|89nM z4UIMZGkC*%Kwp#mEqrX>3(Lj*Z$)9&%FHmzZ0*@4r_bZK=VE- z|Gp0c7^LbTNe?Vp`QJzk{Yb39EsoA={AQk7QklfX|Wpi7DIm+o*&-Z z2rc?yXSo|A2nfrgJ_h=Z*ZtkLvW#bI%PUN}9QG zlHPOaWQ4zuQncvlB#-IJ^(*Q7XTJ3rcln1er|*xw|1Q7v%DOxK=sEUF=MLZ6bgOgQ zj=FPh^RVxhJ4-(3j~2Y#EOs_~j+VUWWa#={mff=J#Ptie?K&U62ZeMQ7QRJLtGd7s z7cOY{EH32n;hFDz{4Ts$vU5NBfggVIBmdS<{p^AlkLxDcsFX`xS5hbPnxW?>^Mb6* zN)_^vpNnDC$*Rc=H-yy%VJxl-N{&OILV~x8FFRc;#0r;1s3X#IrwNWC$OugW?Bs=_ z49a97hEEJA2(H1L75?!$zzkLioHrUDlG4yQTNc)8&dPx(OwKX@sSCU!z$lsx>&AA|Z$IYA zbS#J}+(Im7Y11( z=+6w@7@^zbk%G6X!wBK7)p)!{n!b9Y^Ie zsIV&^b@1L>erfSXGxW=K&a{eJDVx^?H439q35_o?DGb^s;$HFCD$uRsMlGB(FcrKI zlyCAFShzOV$Om*B+3GqudEbmP)@xvs8T!sJqq1Mdq2c$afR}vm+wrttE#44b?X#|_ zsOYyaD2$rQoRGSv;GAg3X`-OFa6$ik(^s4$3^Xa)QL1oY9SD=sn*d#7xl&aFcfyah z8}`$-o4fzykH7NwZoK-fZ;#RZ{UBREL{HgxgH{UsM?3@@(6*Nd#gMN2i;G~8mA73C z_!oElg|@T|x!1g12kQYZd>`cKU;*fc?P4uEXTtNtouKRwe*N~&u>babiMM_|ID0qk z{3qD1UiH_nUzc=MIF;-EPJ;e@AEgryfbYXp?)CiG=xIlxX6Ec_fNZTeDf|{ zc;Cj;&7dy6FRXT_gMra4X*JxZb=dvi4CfpVE-z{`lIa;?Jjo% z7u&Gg_@L`A2XR>|>^SWBCpYN8_S_J!23T|)D&irAIQ{x--+J}n=FoZ%ER}f&67yDG?5*7Aa!2lKIvDHyERUtN&ufhp4bO_f|voN;8-k4#c{Fi>f zGhJA<-zeNE%-SDy(Kqc>yp&;Tcl143g;eXB73?IxV=6m{nyniF=j1}=fR^}$4_#Qq@+Tote)=yKBxTf>6O$cyEDGbSy{R8XZ6Cj|~q zQ&Of@(agVs0;**s?i_)Wn%SNf!;UT$I0 zJPo38?%{lk$?S?l`GRYxyLe6U=!rNvl0jsQFUBa-z>eM)t+L&KST_e~-uPHxg8JjL ziNRFrM;T|Bm&6tx?T-tpbUzTa>k<)J?*q29O=Rh*RsPHPIjDzV?g7}U{P)|tzxlgg z_%C0%{l=RTw)$hhKN_#|OELcg4$`%MVXwar7Jy!cG19+tL9rL=yBrH3D*qcvSNrw7 zcS-p_yUD+Nz>>oLEk?yZVx?#`nzkO5a!lo$y9|?;8?JHL#p8J3H>azmg z!F+Pv-}hHKxdq_+D23hs@m2szGhO&;=8G3E@{JoesV)2&UhN32S46ALHt@)f_qv5_WE-@2M{cB*pPBOqGD~2Hx4_ zAaDc%MP*~-C+?1=RS{10LHs5R-A07dvLuz+C16 z0lhK^)m-x-9O>t%Omo);$KZL~7(8GS+Xrr7*D^ZxhHj7+5Cn^7}CJMz~_ zzsS;5tI(jLHPtc9DN*|B)sI=(rryA=|c@YYopg3O2x3KDE;g zU77J9JN^jA40%}?5qHgRYRaPlVnR2~c({fx9NYQA&>le-OOobyt|#!E2M->8{r~^@ z&;D1hzkTOz85wgQ1>qnw4xA*rpy)?miXjH~r=jn;4>Io1Nje1UnfrblECSB2dbe7H z)o0uH8#gTXg7ILz>9^e?dI$u`dg~XDI=O#;7|x$M=MTR5=W_Xd;=APb|KtAQ(H_5g zgXH$<+j9Gf+jRTNZH^uQaa{@eK@0s!dXFbZC+Yht<$FElx#ym9(Gwsl|N2e?0)FG0 zL|=L1uIzVrhIl)`#YZl9J|q6jBNw;vW`OmXZdjgP41K&vkWP<50oU7jhsm(@OFz&M z7#DA&HNeRb?U}*K87~dwZ43~YqMDK)`ptMd07Y?no8tBl-@g0ZH~+!sp8vnyy7$Is z(-Yv&HOe`S(fT#Yysqz@j{;-?0t5Y}&7oYD^`2?mNlev@UI#VOe6BD4R^dJ~^z?@d zZOoG+L<>d}j&(9jv$6xrumFN^A$I*tn^L&Lm=#Ew*>x{o4_&Sx8y?azGb5;iV1fdW z2f?5a4A})0aW)7XMW80taTwjX;gy!dGw5Y!U#eiy@$tfqjs*%U4ulOw4wKy##=gcw zDw(FLoTUWgEN+U>QqQLdD*fd-0xD#7JQO}x$8j|3_`I|1t1&^(b2<>(OhCgKA+F$^ z>MoVTt^>}?Jc$+(3h)5Q7}}uXohFS8;HjF?nZ5}Oz~lKDgfrP8l>R^#EvbhH z-vq;M?vu^~oM}GtHqK*E_?(W1V>?G$VHd}&w52%l5WzjSt7EO>i$cDcr|`Y(mS$w> zyz)S6g+}sU8NxD2$z1t`iWt(PYj{HkxI(fJpnrBVus7|XpkLsmCJ%hqxm&yl09R#~ zooEu!Pv^UD_^jft1S1nNyd0HFTsMm0s)A_n;NiyrZFsVHRo8u3U#*dq$tasR2XP(~ z;MW1)a+$u$cf=$75wuf|0nymU)(~0RBKuwO)_UKy?&_$_#?(1@mw%fhW6*cSpT}q3 zu7l_aN42>!2B?7Q8iDjh4cvIV0~5x9L0QDmFd4bRtnEm%owM{<=m-dg0T+X>Hv<`7 z!403*aTS_)9TE1qp|gY&A>(z{D*s52y2k5zVs7CfGHYWihv<8xBZ9dNbo<>m-}vl5 z_^nU;mv0^3e-QWWL%BXmuVEJ}%EZwF){nOUgdKn9`WX7Zi$?;2G9M&^fjbGxzxdU# z=sjz=H#?^MTccSHavVzxw5W{3}2GKYixl$;U5$R6Vz&;5=E^ zrCAipfX7>25sNW=d_i=%wG;2#^<^v3lPKNx2|n z1!GxKWuAHJ8V*Vpdw5RSc#GxbiB=w@&C0 zja)zHY6O+UQZE<%v;<%*b4#eb1%t&;ap228bq<#K2YFf#g^Y(f&!KMgiki%~+_+J6 znap)_1z}Kx8~V`ig&xT&t3??A9;q}-P@hqhsPfzikAmYpYA|U$&I$Obg@LP)qdm`G zXqalA=%S4HEW|@odgS9^A{?NeEYU@jsaaJ(?JN~z}Y z-qP6I))dl((wf550nRWE2_uhUSUUh$$fE`7L_F%cQg|VeIcB2xD6qggweLu-YeXv%9*PSEE%Uy7_iWaJG&IEn09CDSP#|1rT32^4M2%Z88F@``h|ebBjx znb~%^)Qjr@_8;@k$vFBBkDOq?w5|fC*f!OG(5@c>eWLpOo8Niuzx$2f|Kew&q8~TD zhA0Tf(0q#+`QJ;7^dD${yhfX7>jyt1SO1{=_nWTomTura7z={(&z%o>#qX}p_QPg7 ztm(k7!ux~afe*%Fzw>Ck`tO`S+CPw^%>xRXcmDk8N96wgcl^$3l_0wJnS1UUU27R| zyrKKV{r~$gF`cCE=fuxnd)~z;pz((W1-x4M5nn|>jIW0CI{ zt_#0qSV+7-!1E&71cEuB3l`8AC@^a4p%(7`>g6AK>fisj{>J})(Jde6vdcCu#6=uX zri=ndS-iO{%;-X_yX9;IKPy0`S7q_n=h;hO$O^VD_`2AYbq%j7lyNssl`~Z`^FmwL z?!?8rS=`!1jzA95H8CFx7?pfV(ah7*;-Fn26I8xZ12wp#mRv?P1aVSeBfA5FtD`>a zxb8s2V<7_yCC!=oj;fsJ8bJbty3$-8lZk?+$v1sc87dk8(ovNW1}Sj~AV3v0c*zwq zo*P6V&7o_*ug_wgovR8X2p5ckv+mxMI-uQBCest{&KF@^iEzX=0%}r zr5P2ByjTGU1@u`ViK=kfiWR!c>H#;3LmfAPy1A*_i#0yAcrrL4G76RQk5ycrqkXpB?zTsbaJj74&YUtf4z&Rhz0fehf?Of%i9;_GL!OQdfqbL)( z9~heh4VLJIW9CsUTIoXSL*#h~8&zIf=8V~ag)z=NaiT0Rz}T!Uc>oC4kAjO<*~0c( z1rygJ2lGeAr^{!QJD4|ce8=Ee*91e;01HtwryIJ*V=G9Q$~)93feJ0>aX}v61`i~% zh9Ir9%v->Tv}3@Qzqbl;!CU@;#um5&sFl!#q(sFa~*? zuT=XZO0~?X0(L$fz43{y0DvS!x;0e8v49#Krf={3k#iO=K494D;HenvOcBKjb zaMr-1eMUafjujD2yfTbDMAi6O=7ZF_)YG72J5O8K9UQ?acxv(*yh&q#&j~#Z!q@e7 zd-o5&apNC+<P13%XkJ4AXF1rtVT|?aNkJtXih*(`x{M`_*`b)pVhJU;RaJA|- z+qg%z*=~8U^qb+ZU+`WuAN0H!`qg3~{o!KR@?kI%c)xyPN9gw8PhZ*@=nbOi!Atx5 z{?hqpc{kptBG5+7x=mjh(aP*1d|9zVrouu#E6ledn=dUGoAh`ntLqIYH z1m!;-2l(+1{CK)A^vMgGbcG0Q!r%6;@6M8c;`D_r_4mE(p7ONZ?GIK5ehB<)-5mxi z<&p1JyXgv(qwP_!UdCPjVF;@IcA0_%EP5Zj!iSEk~D6fj;{04TK64It-)DnEj&K| zPAwOOn#fq9xmKYwYkVDD&3!5t6>}-pcocSoj0-ES_(fopst`l*37nE|Jcz~OQ3>7P zDK6+uy?EA5-|J#Vj2)@S$?cfM6&G<_991~#rCQ!0GH%@g%H=vJN41Z}h1ne=SPH=H zGa&JI2ZCM_hARqUT}o5M^_AOBAWop((qGtuMR)0TM;jFr6;{g_z z$ndQ6n=DR>%PG~iRq)dOxpudVs9KYFG!|%m1B`cZYt2GAH#CVzE92~_+=hVe+a3gNm@fn37n(M(h}{Ltpw)a_g=if2GM_W9bZqn;?&RtC2-SEUGJ^}6d5-TC zFCE|&y$q7zoPQUdk?WXTU&yu}khSFD2|yMOYUr)dD&SNaoD?@@tW4}qDUMm8*`}TX zqtb>{Iu@9xt^2jQ`{Pj!INDX`AmWQ)EMcCOIm={@DQGIk3#5)aHDww4ACoE(iX#EM zd8vFz=P{1QM417cA+GhE7fU}1ywYkp<{?v_Bl#ax($&Qt^OZF<bjzl3nNkd1vi*De~ zZ7W`}Khoq^c+@C?f|2r5G+rsNSeF27N}EPupQC>UoHDgbX65717WU7`74Xa$y`YZ5 z3y3DSL!co6=W9E?yrVRr!VyT_wT3UyAhmA=g$X-UZyK_ZMc2?N|5)T_s>87yoT166XpN= zJDnH+zK>H>5;@=b5w8a+b>{-JikaQ849b3r3>dAJ;WIq+9mSXceZP(oPNQqo5NrqGzZCT} zlo3v9@(?4W^u8ZnyL0P}|Ics#%K!D|om-!aN;GSvW|2m))guCu*DesACYJu3%}Z6t zQ909h%G{e>KXcAsMqDZksW=K{ILpdH+{oRyu$2XjVdpG=V4yJvtB!t~+wn{2NOtH7 zXS)+aWEVAV>d{?a&~uHDOJo;9yr&r#XBALXC?sqzudsR^QU!Jo0+XI29J0$a!c!Dz z6!_p11bvozz2FEU7x+in-_^dE1>Q&{WbYEDMlho33qA9ma3r~9CZlK-0RzVc%K%)| z^tJg*AUL2c?PpPV@mcO@5%9^tS;tZTvO-VP&~Ia(?L2k$c#-v# z0h}7#VOx;7C@E5fU&RG7JLQFHpwPMmKGjW{$SMvMFxxKjEpA|)@JMc87uz2uFckR; z6Bts{166==ewC>$&DhAy`~rL!0|;5e0vbJZ>@;8RZ6Ayw8TvE%6uV}%{2Fm1P$!N7 z^541L>0)#t+YatPm;5}V^ow0*9Lzsez)|^D7&{mj-E~#m6rG!E9~kN_z&D>ra>ps} z>OqCxV(HI8z6@*OjReLIs!4IC{N7A82Ezrw7Zb)eDRYpUddbqP)=6Z?jEL-d)xc)f zHU^q&#+;Ruc!0m{GXZ`u zzn|eTOcsyf!FTT5{@lmE@Y(5E){n70|p81dG{V5v(;<^8w zbS)rn7qr~^z8^Z-*+v;UM*H7gEc+#Q1Fv>`?}Fk#obtSP-*1kNgttLd4y_zMcsK$X z3dlGK5HzsBGM6DkJQfgi zy?BOz+<*8JANdb|_-YB(H&o!1$0yZb6M~rFan#; z^_4}V3XR->GN21cxf_>2XsdYV#+{V&F14ULS!s$%cm0yvdUjhak?7UEJh!Ji+UXzy zC|jxTg2xVW`$S?Qrg^%#15F-D=&q%d@600(G>;41+g-ftvnn+wHEY8B55Q z<{TW8YVlEc9Kcc55FD2VHk{)vtrb256AzDM;QT0jSn3!$pl9aB&;ztaQp=%XMc?DK zu8O0?r@8Xzf=jMD{>8uma8LucgR?plBO$^_m1hgg+qrq!)}b(AU4T+EZxzmBT$Tzy z!}w_>2!mOVWuC5Z4Jcy-l_OkDb*1U@ex}b&8oWRF)_1@A>z{u4OTRs8*73qCAGqR> z&iuP{=0C0yL8^_+vhPyhzpw$ejT>WOYb;&y*9GN&?T*4`o9`D<`R^8euoMiu42FWf zy8XwU|7~|LtPgkO;;Bdb81V1h-Wj>IdBr~&;MuG`Jj9*B;W@NjmWWI7tMIAbn~qfRwJ&@YVI&$KwEtuz&yLh0A{b?fbH`rhf0S)v#U#X0>y+ zKeHQe2Y6)IfAG-L!uJ$3ed<>IuntUZ>C%k=+x5oB+X4D`J3trA0*?B4JHRHG2qZAO z&gZD8Jtd3gf`hd*srQ_`1L8S?-~OYQe*06u|JlF09s0XT5XXgGAc}uXX199$&bYfO zS1`vPn_8=5`6n&I#4= zQ|mnL`lG^70y0q}tmSIG6d6JVb#ATw1n^{HVeEfVcDN}+Rq#b2%Yo3A9;FtEPDM-U|E<&+xOQL+rES7=>$i#$}GvNH4hi>2Qph>{(Z? z2;k;fG*mKwMO2?vt4kM!lBzCxQa zQ%)>xt6Mg+#g$Pi0d^gy0&8uu5Dvm)3?&3Rw+Jg?B~*?%6xswl={&~yt_lr$&^Q2| zVXm3>hz$QmUI81`X1oQ)U*`=0y+t}objO7B)UJKC9jR?e1Frz?+rKi#K-bzweUA7; z!$?`{khifNlXl)qL#s@79h|^N6(`y*1I&g7aNa}xh-XbY_Gmyy*p>E}EDdVE{S2%O zbXN@6L`Esr_6Bd)0)$ubZxKh-PU98_?YJVo@cYCAgn>S&j)l?{%0fi8Jv727{t0mo zuu4N)IDZ_>`O+t7#Cfs%68gK@nl?X=XUs1St|hn z0i8tw%XJS~2~!~>e(xLz6Pk~zA|1zSq32#RJk%aT0KBX6C(V2IaIGTj*fZh~3hHlF zY;~YAo)WFL0Sr+Qz-!+a$BU-0dvA95iie1Hj2mkU20BAQZP4+8@@c#Y+Rl9xqzNix zXRdZcl(=SBA8`z@7g&`hicskd{t7%sVQuh26$N!%0GA4f3X+XSjZr2A%;HbE~>(b{Y7II^K>p?)i^gv49JFdi{b{m z+=b==Oyz+?<3WUTxk1;2zUCAf95d}lyon&)@k4dY3XN%=?B#)TMZX}8>0D_IH-&Z@ zc*`-DOo#^lb{rw0QMnD0r|)&_TbSm)w|t@SDxga=qB)-S)4?1{coCZyVKn2Q`Kg%? z9`ZIkGqvYt>Sb7Ga$$4(1I%yrEHM2L^I`cazJTnmdEc&G?4aElc#v0?xr}WzbKQQa z^rL*!tbzIugWLpoKw~@sZ&!mDCd~slym{x&=RWt9KlrtK`|muI=ppCLtztYZiBYn*v|Rhc&31@q{!g7<_5Efm zarb|_UJ8eew#~zXVfTDDoZ7i8-9Y|!f73sC`LciYl~*VR{fkh>v;XJsJ>#!ky(UqX zH{Cc<{!da)Oeg6iLDDM%<2j*t3?SYU8a)E;oxhjF`LDkARTpmtc#@u?&0TW+2Szdf z_B(gosynkJx=$O~>*y$O{Z%jm&|VN6HjBRfT3Fk&KQ=n zE*=?J#A5;JctA7?4AO<1>4t#t-oOL%Ll&I^nHd=NNo20iE z2rhuA1Vu$&-5*hq!rdomr<|)tL9NtV{u%4d3WlJIrkWeH&Wx|pR{{Yk{^50Y#`U`q zQU&WoLBZbKQ2Q}9z^FtC8JWTe1t@4TjEf5ETCQsZDx?90DdU&h9j1xk)by1Il#KdL z4M`(RS?M;BoEt%<)ScUG-JwAttF|Z*T4t3YIz~_h#1`C&9s3!&HHwhtD^&qrRM49! zTSWEF@?5aE+hzsNlZC4!f%bU@=TrqbESq-KWJ+sF0|dWKe=zegc+}lj-T6Zs%pC4W zXrg$|eQ%73rF{bY;`es$={w~WIB!dTQ-^7KRUFSNunjtl5d#fB1|B!Xi3;M{XXBNF z_!creL&sZbNR1V^lPvjJ2XoBLC|KB5Mnj=5B3oa{Pg6R<$n=yy%~hW=-Ud(%TJaHmt z%<#YgaMj2grrwz5yfDJM=<@$Z-}oQ?;g_%f)33x_AzO0k4;v0X1+ zK3xMC<6uP(*YJB8x53uZuXels;Aq`YwoYr{9sk_}bU}2Y>WO>8%SF26~a``o-&V?bDF_4-XH{-j&sbV10b;W@0dV zfg$a=ov=l4E=GIzv@3qeXNOJL;13MfQ!sT7>+P`iYws6s+r_I(5`z@)({X_40u|3q zNj&?si3~El>s`0l_Q6_8@ut(rRO69=@LyO+Ir5nHZrBDCyi$C|^aR2Ld5hPgS zs^B-?0sx%_!CbO%o|MY2D!_FChlRc*+g@o7-AmgU))AHK42we0NJm)+O8<$NXJa|5 zL>4$iclp^0NxFDB%u~CN2Ob1o8jlLZU+PXCjUC1PKL4o_rq29XXY_K&40wdCn(gX_7#jQHGsgcbY=(Y$zRO@8Gk@i*HniVgEVsInL7ZSJO|abZKZS*XMvn%8?whxX)cM zMw)&}jnkoEjg*vKk}Xylkvh6#RWlsTg6s+n-`iGV4I;R z9aEg+e8F`Cud%~%o50d|&=|gi@FE{mybu+o9Ong5g$dhh*EfBx$LVlmK@9_lbLH*E zNYlasFkm}|cDd#kv3$wQQGzv=Y`raR+VxFuu%V`I#VzvZoF44&fBlnRdhzdm>BgVF z99{c;3ij8hV1Mz;_$=Ob)g|};c+Fot0viMT$uJBn_M2`&+f6+G-vt{$KMXs2i#{s< zOLoIL8Ucn?zq1>U%XY)*AofP(pJJGRp!~n}y7;L4pFVX;R+q{DSl{~}|G)?Q&U)=X z65zXX@ruN2{-XR&geW*s{!fxkCkB9%G)eh(fb=~c35Zt26d3UO6^X|Hq9Nd|*DuJc z^a@?NbeR^fk#}3~SEu56{%ECK1}1ly0+-ORAC&){{%E@s44>Pfk7xZka5BHM-42_c zX|V~W)5IWSOn|_n`lF=m$9qu&%agTVEL}P)O*euctGQjUF&{tt^)yWoOiU3ce&jL?=BxEgg|t7rrw zYJ>;eIY8x#$Otc$2i;s5e~G+sei`UPz`s7Mv!{5PUNihw96SfEga_u9ut zeg@`iiJMM80dv_l{`BYs=BrRkT?xWu|qpe%|2 zSH%n!1??*}?ac|9#I_tNyG8iLJZ#_1_JIJ;P2bR1kv?;~t+7jCG0%bbG^Al*P+Agh z+9SXX_L=fLbykrpbAxOBjw^i?B~+}!>w!*+5TDDJYbmMi?6{-u*c$DWXHbK;qQJqp z3CuUKC@cL&gQbphYk*_L2Uk3xVyWfvddY$p0>c3`gvT$E@enroJQ&{!OxQQ7bHcGT zUJ+H^qT}ZqIxEUA**R74!*zbOUK>qZo2sn3iYHWZTjK-bOYww;01aAa*0qW@GcOB| zYu^Jt3d-Ad@(T|%$qjy6n9&eo#*^yrb`2zeS-n~&@&MAYt31GT96np)QcH)(kEx+= z?1zW(#kz&6aSCx(jB*)281DmRDBt|e%_m(~7;vDtLHO`@qKUehVGJ+|dogxkzcZdf znSuD=n>Sy3{uh7qlRx+EH(tLTWzV#`A9wY6boXDRGymi5R?#TH>DueC`6cPkQ@Zvq z9u^3c7nJ{Px9ArVi~-*FKJ5Ch2N~V|X+6Yf|J%c(VY^rgof>>}`#;)0kW=q}dx$&# zkDoa+oDMzsW&rOqzjH5P=B4mEUFA)NxK5P+lQf%{PSQ#G9!Z`P7nOfaF+RWx*I!6< zbAxVlcOTy6A3C#er;i@tTf1*MT8%!57lW&ULv-_$Dje~|C_p7&dNqJxFn~bAIe$6d zn~{$$-qG7*5pP8B+4F4P-MsOT66`8nMp2y;f zFSfKGP-hX)3Fwq3vUyP?xYSOD@CW!!T*nykNn`~kq1rFS&!iIsZ7~_Qao7ANhBMMx zAX8Uc&TV%Nj6vMA1#<)OiLnS!@t%l8DEL7glQ9rrEgfTbI zsm^2LY1X_`7!Y>FEdktZi~^0#Ky2r5QR-mc65|RxHKb_eLUyhLo{YjvWQ-C*mJi0%v29oRaG_ye+f&@3cZ$asRNEG+_*I_L z8Y1F*c<{iV**l%0{qu0nN9F(GBNzOlC%@Xfl7N0SpZUM}t@9G2 z{TKQC8qv@E%+Gk0xlRlKCuuG*ourfWJyMDZkgo=eDaHl3cH^47NH4mVUVMoj`)haO z;YB+8-~qpScjYdA;IfPH0BG5{quXoVJ$EV?0XDpIdbiv3OI}Ie_3mJ~v)K!r@F48d zobKGpciVv%!NlqoUB3wIZ4s{x9Co|TZG9J%%6KEnLgNC2A6>jzCB_5{9IorQiEMC3kmHiz(#TV7$^hPKZTTjB3YZm+3Cdx3AMZe&u5x}JiO=+A0m2oL^a~5 zK!rk}qiO(X`%BtCSA{NpuefJ{82 z%uy96)!2aJEFh%nPALle4NL}CbM&qKFGYc!g zgT|kNM-{yD^8w&3?G_7U1D8Qut#?9O87PHY0A4*h<7eo#JQw)RwT`y#f-3+?8d^=| zsWA`%yqX*s1O@uV06*?rmIUKqjyVV@+}^frinHZQP-Xfu3C;=ghVhFuW#{^t^KnC) zN>gR5G%wXFTw7Yw-^Ck(>Rd6`6;g$v%)w^<+b=|@^p)wtRw-=pZm!>J`v>qLJ+@vs zW~>n;7$d=aWN~5o%63d!9)$ro%^WWO(3J1MGl9P2+NXVDZk{)W32NvN#|GQfhGva2 zT+8bCn7JdhU&WwB*5K0ec!D}xqeK2a`2H|n@An&j_~p-V)b}|aTpiv1k;B%LIi9G#?- z^gU8!Ap9Kr=bn2mttg4fJWKxe_1p67)6e>y^^g1UIKWf%Y+{g;cpQNGqyBKy4>3jnb%8AgtEi`=A;tyZ^|lXY(y;d* zm?pVRyiZla_ZSnvrON{1^#JimKs2&aAC%!iIK~Gc|EZTh`)i;4gU|eDn|^y&=9F1= zb=RFn%m5boalL_sf?#cw%v;gbRlnzU#3+eScUki!uhk&r;9`&NYE0k;M^hOY%S!er zKxNHK13Ov4#5cm9F$fTq#Tj=1G%vbI=eCU7UV)#i@S}MZ?m0zQ&-fYZKjv-VK_OO^ ze)En-uZYxjDHSH=A8?hv=iTN)1LiC=SGdrX9Py&{6`&g!i;;tkKwOV%WTC6LE>c57 zG75Vrcr(LT&w$((-qfz2;sfC- z^MNdUid%*OM?N#@S5A7xV%gD^ItHl@fL)K|6y+h)k8g0PaAxo(ZO+j-&dY)yfq4nI za?odeM!J*fD~=Lh0(>IQ+OOzlPr%C*e@H_Jy7FA#)(dT#ImMRt5{`kUagBkYY}c#_ z4El$(jrbsJml_zPfg3)HK}~8Kj_h33J~TsW)@SrMQhI9S3S;OYZsrTw{Q2hu2ddmE zPjqbg0UCuAwze+qFZM(6)Xqu4V=9g&28!}L!-dK>t_jA|2k?Yzpa5JBU|_b!Mdb-X zmiHn(Ij%<32~PpIwEr3J4-WRf{)sQX^ml*b_r92vf0DGv--n8Zbj4p(>fIRRuMb9n zE-3d)=Qhq~MZXIgemvS5&-}+c&TqD|NxT2?ynm2zgX~IMUM%~)#SrqH84l9j0jE;9 ztD{G|VI5;=g%p+l#S_(UCMy2%%>SkH&%_|zMfo>ZcoQ`Qf09m;O-v{0B>i)yd_zEr z3lKjev$=8m24DIsm(uTBn=f})&i{43w|}4SA3kIsxZz>oeUH$ibm(t)K>%}dSoltOnIiwkU4GX|7aakDZPd9g zmjpdI+`?7dBNgq62x<%`2p?HtAdU%-@etDE zsPFl7w?u}|*BuOWca@5qS^Vj)MEvX;wwi>Tp#q~jUBpu(PH~mY{c)&}g0PYVBC3H7 z85)xYcgE8K8Z++TR0U4&D_yJ7gUP{j6lzgnT4oq@fw~daQqRnetmelZezU7Y7H2qL6x?!?LC#x11;WIgD;21f-!y2iILmX$ zM6)KEtmdua$usq6f6+rHCJp#yltZW&>n`|G_hdhoFIQx$2Svs+dR-L0>d5R0BSVC_ zYZN7gLyr(4k0cmhJ!YiefyWfM=9F}OSNKaa?rH2{$J)bq6nJ1>=n;qk`<}gpdRRY{ z<|cvufX)f(CYs_*VVr1?Gw;%_wg3%)$BV9Yc)8y{$zr#BhAL-&*rCa-V7pd?vdirmZ z5#ZrbyzwunxodXIy;ZQ2t{0=?zwB1QEU<~O0D=*~MYU|%1rFP#xBz`T3J{d~Wx6hK zSd2#ie7B4y0UzVl2SY(aZRaArRsl!6EOAlyQqdM7NBQrRf)kGTnBT+NJNx&}(z2;0RSfj#O$OiJ6 zae}rnZ;QhgpT-rqDWh?f!_k}QTZ=)B@J8zeIwwfS|!_O`Wta<;3o^K zZ{D>EdYM1e3~j?t6z1ZdO?GS@Oy)Va{&pO-eEe$-Lqzjrrfp%qNq?l`%_#LW#kbCj z)E17}4DL{g!!^q{I5Hi;egOSb(;s|(oPx-0^=!YlR}_MRSaILXInC=Dd}`T7?jXd4 z(l7GbiPD<;%|II(XGRS)Xti<0CBLHFBDF~rayZ6$^^ZwCOH3b3eB%S&9eIJC?c!qUnyP*xmt*!Ne@0WXF3(E(K zfa~JzSN?3+`S0D)a6i<#yE>4g#kl)V2M7I=Pd!CZ`G5a~3v%N{@>hQLibUoA+Vj_j z7k=i2bPP9qAANI9&ikLFf6l~ol1|dUVA8k%(Et#C2L|Nsoxhj3{8wN5s{41|cY)&# z0jF;c-Kih_5q@}dz=!KYj)4Jpwrjq>*mtYlonRzA>ki&IT+q@jmeIf(L;nR!0mZZa z{d!5fN=kj;jzQsHEs_x+==EW{e-W&xE(Qq0L4=R zZV^vzrFuVd^+O;2;QOEY+sozhf-W39C$N>B1W*ofu_$K&8|1VKRV%3H1(nSrE>#ha z<_qJ>3D$8CdeZTQ_#_LD<$S-k6YJr8Up)w)MqV+CD_KE>DtIdR6s5ZrYBi;uZK26I zT32Bz!l`crrJ~F#exMBk+-d*uT^Sb!81gIJNdW;#gYT(g~$zAMhg(&rW5EwIc zhgK!K6+%&xW;Yp2GY_Z{7?sYY*>%)*CcDB6&tNW+khvW}@q@dRC>*v4ccU;r0nYnO zS7sNNYP2ec&6cWz)*pm8TzU#T&Rp#H*Z z$@1?O54cWDh!vj`RbxS}L-DRf%r19B(8&8lET7TmlV-)z7?Gu4ZfL39ttPHsB|=uI zbu;ZqGhSM+p>wi)z(IL5n4yP*jt9nf(fka3(KXTZk!WHF)cmcX=eXo%>NRUR=XDR( zoXHwSGh+n(ZJ*=#U|sqf4X{Y_L=~T|8T*jd+wI*y{MuLl;a9%?wLgp7_|Y9TD*3}0 zz)zx778QQVJOAE0;S}A!kItukj0_Mg1bvWSgW|vGgQg!O(}iCK{eGQy`v>l$2S7UW zzuY^Wl>b#w{!_I7^;%L)!PDNa?+3;IkqiFegFlxudwW8gjeqRy*>v;P&2Qb5XMXsZ zkt5In!q7mSOKNy``gLofg=Twt>yj~kB!1fxLo1c)yG!7LDCw|DUfK~(w!<96NX zQn}!G&^uK9zx;`heDnhs-uEAb3isG3LeNoE0C4ds?%@R?^?QmMPc^7tHXxMS1VGU* z!kG$|x_~z_juBE|L1Ps_RN+JEDl<*Ie;9uPaOfhfulyWNr3&BL1`J2V30vg^X%Xvg zmCuPs3tOfzhckh`cG>Mo4WuT@w-}Z>F;=jp<&?Zw#fLJCN*f6dID1^(o$8n)tj0)# z@0$5#ZkrIADsXUwrZuWiQ(xgDH0AAP*A)0xtx;M(_PA93-X7V&^%q<|lu-Sg_+M92D{tI9I%4gqt_;5eS zX;Fe475%OY>U$rQ{j{BwcJ*VRKXvs_=lc7QFGcvUfPGp#ZD6Ks+IAu+z%zIb<}9w2F`sWTg=lAs^Lv5@X-t40F5t zf`+fjZj9J>sC-fbpEQJkJ6?unxQ?^7U4&wxiD5wicZeU{MMi@cwyocl-toC6+$o|) zC`RSK9b3hrrs6KF!YaJeug59kc>H5dLBX;(*L*V$kiEcb6h*T04*T4?wHLS%R}Gz^ z!LsaN=I6-(AjkKm9TV-3%;2^#My&$o4EC!{tzsk4C*W4GSDX)6mUFiSt+J@Qi5QHfDucs%rRP9Zn61$BGCTTAO^%Et1*J9SJ!b}9J~X8le` zPcp3^@!FQvIi!3T=aiPs^z`Q2Z~g9X{=t`Dc;~_W2kBkh^^XDkxDS$IH^i9!(aAr0 z0z{)g-1?7(fQ7g|#sG*$faobz|X2}0T?|;Al#y7u77tWlKOXtr^ zJoA6;+BMNzx#M+zQT9IB{Xa?nvWe*=ouq$-Wa0um`>aHRz{RTZUEE`mZn{&WnnN-5YruoybF+)F&QJ>r>g@e=WvfnAjI-qI|V2jf$ne@ zDGS>wOsIuEe&}7(Y81%jRTi2A00g-J@nV$yf*%6GK&sHFf=|2#Fusn42E7I_dTw~B zS2$)tAvIY9SYKq|V>u@Z(+V(y5}@Or;V5N@$hvOk@+jCfo*Sktj3Iwdfl;VfsT3&P zO~!J#b1h)JXcapYuIJ7&YrCqnYd^IOBg8>HuIcxjm&Kf-W1az=sCZ0_7f=r8XPNE- zyJy;VGxr4gJZD(Z`HwqSW(vwwK``{sMtC(w7E~HEZ^50nJGKQ5c!qEwuG-@q2n*)d zex`ADWE2xDQDKkb-p1I>a0o!!sn7*l^+U7&L zaxg9!G`1*gY{xhArCC>Ok$GUun$+ZP@!Vbyr}d$tsPnJO%A^UrN7fiOR$l3wW3g>uU8%#p}u{M#}K=Eh43`I_c8 z_{rb98RNI+M?;skhj(fzRVPy72mDgI&CKL*>Tr^!Ei~glKvGF#sr84fcPvL0lt3o>l_0Ejz)kB{3N|Xuijlb+FiKl32^wUg_$JE!*2(E!@Ai|75jMlJuhHQ=g+zJ<5<%z<**?f#e94wYn+h-LxV$vPITqr60 zU4ba)AAe6|56I#mzMCDLTpuWgjDiXZQK_$45m%u- zR-(c9W(8lWLJEz+6T@;mE}U7QRd{k_h1|W|fg%LTboZa252cN!T|8Hw1y44@PR@fz z26ShP$O^!P4w>p05sU|nlM%R}eFB^k2(p-T=Zj>%9&UaZ!M4GH);)3K26x_qXQ?i= zBvygbIK()PBc$Z9;GS`?c6gSL~PrWnF(QFrzt;7MV#Sbg>Mk>g7)SJW~&?{9tisk<7a3H z7y-hg_%VH8plfJH@uClKeiD3dsx!EuCQqw;x4fgYjcrh+C%k>Z07`ZaK+}`&L{m=+ zY5I)DGF-nMw1dV3>?=VZjTb~yzYxtL4-JC)o1naU6@ITQ20U>)O?8@p^8d<7eGTI!XV`)X_;gN&ku|GN$J~|6Kek zAHVT&zVgHs_cT52Uw-hiJG*x_u-btxow?)>PCdcP$M^ZM?gH()rR+VjE1L&z@^I<{ za%!<*cNlmt_vE)b@h-oxZy#){eJ^fU(Xd|A^4w_|`XdQSSTNM4C;`Dl+tZT627gov zqqBefFN#8=k9UmR5^ogD9`U2Z8xMG8{Xc1%F0>Uj;8*W_=R1G+7uR1rv)a4+=$Ugr z5bOr0N+;X%(oi40tu~heW9vuTT2^nG5$V#}#l3g>o6{?x5 z3|?fa{G2g3Ayr{0$*pYRm!{)PQ{hUa)UAvEcq0H=fs%NFUp9-kt)I&enhFC(5JiBg z2-AS-F^A)dC${on+0j&-m4Ihl|F~^WDt=16AOJGAkWo<%&@H$KiDZQ@10)&zl=uWp zR;Ew7w2zG^H5T}KR0AhK5n&(O*&&ml`6 z+|qph0?)z*`@uJFzV?Yj!3og11hP=Lyf&7AG*;BqBFovuSZ4BKa8V&kkeQ-_{sV{o z(62XJPtk&~+W1X>W>~t7@X=y8|Hz}{?;rY|$5-^eix-D)UcWAnENq1Xi^sk;4bdpZeUqVWX-E)#y`t2*X<;5E> zy7SMRPxqA4d2)Z{@?VjcuD>LYy}$RjHm~rx{e2#GpOhn743F&`x#7Vho|i}RV28uz z{+2iWMjqMSp~H0-cIXG8N6!uq-oC#&btY`$FP6Lw@3;NREjpnM9d$0=A239xfFa$= z8X2>TcMtNGHnNtE7H(8MyXXQS@$!{uE}-ZIz&_p?C@El`qX7Hwed(pI{lS+%a^-*a z;SXMV>Zez$W>$q?C^QT(m5%|Hai$g&V30 zjSA50$}?7Y2;ju^Ia}j(*IT^=gs2fd%jl93G*#$n-44@pF~Z4sBtnYNFt!28Vgk?C zy4&_qR-?JaUi&0fh{ae5Mqz_GBc8g7GqbA~e`>HgBTPvnJFa9j?3IKCuP}b9xS5I;L-}pqbn< z0e=WjQC@Ss#Tdg@I8@i!wml%vf**tP8R6C7P2s>DHfaQ5$ggyVeJjd~pVGF@8H|a5 zFtj_k2(y0IVjvgstWiMW98ld&McA61-;4O_gLhI5`arcJ3E+7__}RD$O%T@_N#Ut-^Tpc|b( zdizGp+Xd@6u3zw8^S4A>Xpb{ZgXi7c5sg9{l3n!kLo}orV+}R)n*e7GJ_zb4brGza zc|Bm{lUObnOmxkSR|@pKoij>FmCe)1)kFx|4__F_x>TC z*Nj*5b@9kQ^k>ejN+~&M&yz`b`ikIT#V*omQLe zu-f6l^?u;huF(2{r#c4*T zWxo8;%jtN+t;?6kE4TAe+mmblPSRgiVme7D=`SgzqX0SSEdepbU?uT0UKJRR1f++j zUvW>;Q*`I?hux`zGwG^8c@VbZm+Yc*6fLr5yA50Y-JzpRFthFsU4OLf&h72G&EaOT zT=a`=A8fWk%}?9>u6GN+itYfN#NWZbqAoI!I4n`Ov?cjs`e58X&mv=0&Hq%$GHP%p+Qkh;%2sUE3!@i3*6| zj?a1@dK*xyjzhWQUKIkA&8h&;a{x?#Gc_9$Y~8h0pw;V!TEP*8Ajjs|L|NF4u*%uh zUhxXJP>_vVIFS(!+Oy?aRaThT@Le9UC3^|t(HvMb$;UF)@hv^bZF(#mkfBlH8~C?E~BW2Usu2shbzUkod3>8luE zn)nNe4-912dA8$O>dEbiOnH{JjdNCxp#d{?F#gF%#na;<=t-x=G}eP}=%DrZBC>dz zV@@p%8ab%Rhhu_$#5xMy0d2Ky89YFlQU|86jW2TW+UvJo{KB99(dXVe*xwI(`SE~0 z#ZNB@V^P_UB0zHW4>o{7ulS4m{^@s6)6?00;%z+Z-$g%yF}JvbcB>;-LNeZQyW zZcnQnFWXfg?*cej_d`%Rd%xJ((yH6|cst7=Jq?TAOTS$Nro80vJh13s>fOeRS%+=k zhef%McHCgH9fH0euXpKP4BW!B>BVoyXG70E#eNMUe>yGTU%LMLU;h7o=2!mn8{hfn zKiqD&cPGLa!D1gD!(uwFXL_f6UGznjpS<7|12<<^e9CU=)GXRu^AWKXGIB+%6=q=| zg(EaUuwc*x{^~&H_BpT3ZCidSP^mE>moI-AW>$efAkU;f@ZL3o5H-R8VZX(erDKF; zz>U$X8!(s^2iP|qJD~~EN}xl8TXBZ@$O@q8yK4l}rVMmxUVx(J846o7FeVxlTQ4^a z&HXL`{5XUVGh-_>F=7=OWII;mVOJSwRD45^kObO78Z3&aSl~2of!)ClwN#^MYxtTNu&{k; z=A}%>%;2t}BQ(~L*fx+p+oK?+{|$_oXD+WC13SJi{2B*cXv)86N^_bg%^Ba&XYLd# z@<>1Jd{N$`yp;&nO`eux?07@N<&{`o-1b9LF=UDDKjO^61S~WtnUCj&O&!oV#JAF& z_Omr|Y9AfY7_lYuwhxB4HF&*}q z|JB~kCIe5RB`0I=6pxhWE}M@ZRZD+#kHNxPK5Nv|w7@^jlszzuX4)8qKeZVZl4g z&0+|js|7E{D*~ez0J-hDU+k@xZtI71EugH%1OIN2B`p@w@hk52M#tmyeG#t^OxL`2 zF4zaU_~{lr1_unu#hYPWyggvN2<9VKKJ?)a{!f1BrifNBi502re39kb{?=MdbmRIhmj@QJ$)>Y<>&bG}*>gwPaJFk>j^)oTH(XSqG#&pu)~t9mF8BmAl-qGleFXi|hGDo0z6IdH@kRMqpB0+T9Vh5BH*L0E zKW_I2l~aK>TVWE5I<~@nAtM1{8Vf)L1$WMleS*W0=~F4&RHgkS=#xl*L_)8%#!k%cMY zo~kDVk)8Vla|wf68orh5L^!aom}c<_oodOh#krZlQrp8ofXEkHhHeu@P63w=X6~ka}MGs>H0oNSNtu!bbZ)jav@jT?C)F(02m~I zAwnDANSFV)<>&?AV?ALLDDEt!Ab_&*VKZr1EtfvNi@W~3T=o6KXgAmlr^EN{A}IZv zjqJF?VY6JyW`8;Cxz%vEKIGGGXE^sGXXMr^ucSeJ?Ce>If&Sw6TVKB{G17nh9u$gCRifeI_3XIQ_~fq2FD( zOP4Owt$S~}u(R)WgAqU;-gj#my7le_-gy|5^V6s4V0(9QDjo@-Xq;UJe(t+di$x3{ z*hM42E_L0}+H+vyL78W_@XN)THsSlytrkJq4~Bt0o(u3XxNG}1j zN%5CK(lvt7Uo3i!Id=K9UoZxUbRW6;p`ZG|x?pNQ%J*Ck8UQF8 zB2=KpI&geq(l`aJBG=LyvyqJ|Ug&!yrg|0>gvcV~;~~wQ&nUChxJqYa5y9{_K;byy zs~M6o3W#8%1VZI;iUPoEgnzAg4o@@v#L4Io9uQ>JwY<w(Nwu zYH&mPiFx$wI*ubMLK7av7FhgAGI?#r8p|AKTtJ#YIx~F+Izz>KqF@s6E8sWgc>}+; z!ED{R4QxCe(}J&teu$d64Eai1L=z>dRf06H&tujaP}{L8{Zkw&zNqpHYWj|F7MFgq z?clucz*1Xyj@Ci-sKuPJHisX?XFCs2nG@*f27 zfv~VoINql2hV}|RWJ=eF7fndlgP-yVq@#9DD&OFSFBQXr%yoV~&CY+KRvsy|*wP)+ zQZa1tv_E(yE{-MQrCB>39PEGNPrmt$PkrT^U;BFKUfAh(QQ?;q%_)4w?VadXlrDRY z?*HLE_tI0m=C6}@#y_3=j~)W){Qp+`B1nhZr1<+W>i;J0^mlzIJNU4JMA7BnuVaBB zy7kkr>Q|>W!{H&(YLB+tpz!nk&}_Qq??@gwd)BWHcI510F9@CFSC`4Z`pPRw@qhn? z3v%N{klKRsuUBaY898-27yxD_?nydHe>sWiB%P#xO{t9u5I^G;CUh-)d4VVz0xsRW z#2OdivG+g5{o*g&{crAbG6d}3UF>d7@y_WzKJ>RcI&^NcyA#j*J30!AJ@rZXkGuXf zgr7k}Uxn{s!`{VEEb+M$-wkoMKNtaG#LIYPV7wlXQcQpt3^v~Vl9m6(BJP=o-%;bw z&$5~r?7>~PT%=nwydPr(1lvNq-KG1$W0x*`_{vZG^o7&s{_S8%*qbQxx^Ol@Z&V>K z>s=Pw%Pw>-p91!wpqAEhh5&>>d%xX$nx5@ep(iyVcH>m$qRtOL)3+Zdz`AjhB z0-wv^z18}>gR(`SZJKR_C&x~^GJ)|f zbO9X|Xi5=jp4F@dB;8dv$jP4?G)fEV&RBsz=S3kMjWn(JWE8rltx_Gs*y3aqn(Sm5 z1AtZo!ghNO8euSSHT^km9E}0bO@(q4@Llts0Je6=7V)b;vysf6$ChL8Nlia;Qhs9$ zF-=|A@0Q*WW&&IyJr#PDd1a5AKAWiIfatb9GX?}nXjT!^woE_ee{AnxdM!z^Gf~XU z+X5^gs%VF{?o9WzW0ervdLnxYJHg} z_TK)m$1*eb^|n+WXvlHf(>Zr&KJdB-W}n6*FPCfX=Qh$@@`w9Xlp}ud2;)MFf>O{_ zDtN<0`^mK2^DLNrkwSi%uVK9Ir1Gk)HLjOwV9lODFX!I$+;m<@nn~r1T<1l};>{j7 z|IT#HjmkPyuNnF}T`PM^CNp`joAeKdu1vR+G{%f_k4WW|R3^&j8P`{)q&UWxa8kc8 zX%j=P1F0k`-e|HuIc{QsU8nphWe3yu{rbzZvw#1yFMj^#fA-U#{3Q0jkBch)16NP% z_0%JClTQ}^KwJ9xWJB+v28g@}k^uJ912Bj2c(MZpPqF?D3HDtZ+NdC?$s@qqu3wsY z>s_?+J4b>)lKh!4_ayvZ#!D6p>>l8;4*-OJdmR7z8yGT7!1*T6t#-Zwt-%8p(C)$*_ShlDi>#Xm6c_@$(P@4rtEHz)x}!}-TqEPCCz zd$;d}&v*Yzg~WhotC#lp_Du^RweMTJsJj`t0^%NywDheaON^+-1r^o-hcOLw=@4R{cU&rs?EibWL zM!w8P$4%yy;A$@zZx*JxeyIS+^f5x{vr-_kX3{4!vE+@*9QGzQW6L$WP8NlM%_Ndc zN-9&zAP3lszVHbAX*Mkr95kqXo1hbRt{DcXnWB&T` z%D7rFHzo}1=w2Snu+MzU^E`Hw{*CHnhLYRIil;*sHpxiJ?FOgJ?;!yWU{~#tQb91) zBc+cW++Ir=f{}Kj&%qoPLW~)gIsHAd?wc{=ER|X#I?Fj@CeHx7KW`=Rq_WZMpWYi2 zBf<|xZD;zM{q-Y-19`z{?96_jM>I2H9PL0{Qvu(|Ki`DuP(1(@$VCJ)|0T`b(DXKGKnAsAKdz)ZO6gwKbmi% zv`!ZPcp%`ODjx4b7Zm^vS^Gm5kInkN+XcEGih*qu{GkBA-@K~3b=QY^U3Xgu`XMFx zL!5t8@4{kzvwz+^gNDMJX!XAnKR^3)72f&wKMULW%l`Jwn*p)@cTfIRAYK?&zw?ds2I$-PySJ{H zrQa?Z^Sk)y?rT>?rEXP=T>&avyABCpvzGwx7=WmN-}%<-|HpsvzyBX@E>7N?&1QGx`%fwatQ7DLy?D!uHLKj|Wtk(^={mv82}?l; zgUf%~(dYmZY0QM_l*}Zz!IZGzJ+MF}6a}R%W>SweV`iWa!#%mp%uL$R^@0J*g89JA zi$09nWybw0Ou8xCeRJCaS>Us4Kh!~)5iDL9LJ43cjby#<(D*SU76db9hvtQRE{N-$ z8}}(pn6XlZ9r`aAH0#8-R_UWls3bOfsP}E zgJ4McJh#u7!&b&%_JsgB$IbNoqz!V-@feM0V}`LXcA$+lW7~jWjDigj#@L`5^qYI18tPg2s0^b#Ka$X4vYjF?(3v(E9wvV zz*ON_uAPjhq=lQfwHq_0nY3uj@v;Z{b?Cb>W)veo?T^gIAwyZL8GCWCKqSi###}GJ z$@yT+DEa7~z-ET)`!MbsD?-W~4`!?+G5g24&(Z_RzM_6JG<#@|5%bYZXfEhwMIWW& zQ_@>5q=QNlGgM#?v`5m(95^;rjLJ_rreQKJqxRxDKd$IdTdvKMU=No+U878=(HP71 zb>O+cum0yB|IH_V{-6KmZ~msj zE{oBe@3EH?M0|tI4WrH7kdd7PcUbZv@mJB#Lty}vk3VPmj~0KLwK>iof`4S&LW6{V zv`#a!`=V{UOOc44+UaUtSC+k1;T!nwduL#yC6u&~SH-J1= z;+~#JE-v((RUyeY3I*yDyX!f!vIlYAH|}V-6+@l({oXTg;gGo^)xCmhw`jPY^=GNLZiD zy{WKdCgripDGuvF?&Mbv|ZCSmN_Eo2KX5}4HJ{XK6}tq z(tCsN5%WnlNscSuFct2Y7JJrUQNPR;BFA)O*`7Rerej6@nkXZU8P9vZUe>c$j=0f@ zXP?afF}hZ?+lYFn?KNgx?_PU?__Ra)9BMIr_J+y5qPnC^&TCha?$Df;C|wWNUo*Wv zm~k8AyP)s^f;cp%rt3e^mR$V5e)jKw_T^`P{^vja@s9&-%V!6nAO4m-vN6LC6W0Gg zLVkREleIs2{s(gP_mm9KQxZRi%>ESjk9d9>Q0xiVLFk9IzuUFGn$0N5p9zhh_rBZ3 zbA40>%$vq^W{uKVZDW63v@#^arM&!_S8 z!MpGJvnNlY)&D+O{U1Dj5VE^};O(+MeDEO*VLop&9E?KoD}Xf$#jgkn*ic`%UEA8myjH#FUf7wL zSIw-6Z<1ZjxdEysKK-#Xcxp&@~uGWtc~Kai@}lGyGe_t4NrF;OYtY!^%o4*+9r zvh-(<0E7r2Cjb=6$RA*v2CpbxL64#Iy94?s!*C<=-);QsIY>zm8LGawO$|B;Ng zF(V5jzwkr0?iaU3an9sp%;;riHa#!CIguc%EV~KjNPUA zMbF34l-dpg0k=$A9|aGw&rq2$Z#80u`Fj|LI|u=>Btb-|pk(IabmHv(bQ{OR@;H!E zLNJCQ?7K|kqY{jzJXiV`a{mN#C*8%Z=)*_=vSt)ZZp?(iO+PHtxX{&_ksv6AHZK`6 z!O%)Z({P{i@qU`9DVRZEIPfZwc?P7-EStji&MRvTW`L=Le8|+?%`B z?1i07g@QxYU}}>XGa0*FVx&cx(|j0q+IAz_&h3$F!wkZ_755d78xfZ?wd$Ac?Ti`a zC>SlET+X3*VZOEq&!TNCR8OBvBc^_6S}9NFZJ5r(J>gZ7N3OL4WgHSbm=26GUBnKsGs)i}u@I;`-h2 zyy5ajeGg`&NRju`vXtY!x5z|$tf0#@czi+^=>arS@Zz>?~%@J|k zbZl8M!UbOE2_SQF$h!B!!K@i6ha?WIhdp6kjFYTe(u6-syGn-8q3@$I&3Mkq`Q_}s zVr=w~Gl!q)oYb;BE6n)0Isq*G6xaXxFaG?`e)928kjxKqd=mN{gm_BipR4z{gVOqu zTV@o}kqD~FasOn=H_7_%s?L!DA*vNRY>3p8CxAm{C@2p)*~uxA0-`y--EPCK*^fL1Je;EIH{GgZpe)R7i`7{h_@mKugpf(D{uMn)^%v+n3sP*^%-TU5rVC;vFKct7^ zkAC(e3JLfRUpxTWgmu!|g?s$u~aK zb5pIiv(D_c&Q#uSTkH{@7=ro+P^%Zodgar4C#v*F$|K?H-a(9!Z-v>AHuN3V1E0K z*sc+OJ7MPe5dF?CaLLe(+GfUrfj1+jYcTE!L8AQ5Uq_6U83YHmuHlE|8~MCsLX2SS zd&wMHArubGZlOwUD}5hja*u7#35&~lJ~wS^>4zEfw$pg?J(`;_4GXhn&DbSd5I&d* z!zJqSM$nb(6>});S6c*1RtyP`i9zU-jHT#HQ5fXLu;rcwy&}Midsv%PlKzQ#F=gf@ zt@yfWKc)<^2?yqeIWVs$wAfQ5aofyLo{YQa{>gIeq&*`+cEX$+alCBj$@NQ%yC210tCz4=cOdmg)o8^`X9p#+iIUwtk_m=yOsBbcH zqywMW?xxg$8*t6Xe2QmdwGm6=QU7?K9A7V@M zxz2UT>aCnxc06ZCb84~{xb1YzjcLXGlkYyMC@#+7fav!);F`LKDaXG zx`ve19}g`*_|siNgQapCkg1@c%dp{|^na{r~>=Kepe0 z|9!e=>IJJ%{9`~Tq2eD6(_I4K3iUz!51;t|ga6Y9?%sQ8mw>1Qu-`G?HGlcVU(;(C zNdnK;mv(;ZqR#C2iKyN7|2e9cl5(<(s+g3K3zAe<*fwvfpjiIhM z=nYPfZZ03Z{m;)JlYRCaml1vK|uC6xgfWO&DEi z5n)D5@G0em4^_s9p$lVyLngao>pz2&=_O)Jm=G(h9bqJVmineKpoaMpYxWZNF<6-8 zW>f>+=-$o~O{B1t;{E+Vl8Qqn5}iY~T3Kcmi!jTT+A*WH$H1DxG+92+Z7)Kzq)EP) zy$~crRhW7^l$#YTgOF)W^&Ka7&EenF=IN7{V&!zJ9u*#(RO3TmbxMYi~d{L zCNs7OOUtY5W0{+FOlvtWtQpr=##gp~LZ4~>rvd=aKhe$c`EX#z3pp>sm<}A9&-YI2 z;{H#CY6-zlkF2k9FL3Up43pSXs7&Z(#%p%mm&x;Cq#&4#pAqzwUPwHTr2uZsf$yTD zc0%hgp~FZyW5&-mW5)EDj)PQAl<=Ghjr^hW)B23rSLO)%lE9kR4R7aJzUT6a!p%(R zAf6GT_&r6JympGIfI0FuGW+zEb3@XAkCk%Gpk&=cFnhu=EAFQBvsPIACw&@?quHmc zlwPNvPNKMj?dLgf#XOt#Rnl|XZdrGjTtB6uY(uzaT{CUuI%5IcPlai5uJj|HlFzwA zil&hwM)qs6M&vd8USlQt$m8HZJ@Prg-hmN2-#`2M?Cd{1KY#JrpZ(R3|I>@r%c~F) zb7Ww??>chz2ZI#X46OV}+n0j-5!;{k_M^mpxUTL(*MiwXUI3e8{K05-v|n>n6+~vP zL56=Hl>jNRUsJ_e+E`$;^!v`HZT+^9xtm8}-!6Ix|2CfKswyfzQ8UxHa(hi)C2 z#pSu*ZJK}#|J!vG|4*YusK4ux;UDe1adsTekIzEN@_#oa`}^_d!F)eb?~jdp@cM(m z+xxNSYa+FJ04V-(pdJ8CueuP6fEH{rn_Ja8X8{2)XCW+0uHu4OKvx00jLu8tJR}qG+7=?bb)VK~w@DS8QAPDA(5&c@6aO1yP0C z(1x?vMF4M`CKeK3IDKW41|YttT#H=q4!hF?>=a<&Jus{AV)IBj5Y^OC{Y>vnytQmp zW}ILCFaPB~{+atp^=CdR8@~10y}RGJ|IT;cxb@n1kDJBYN6q3}dqM~c&3N&$A^;yz zU?kUmli%@~U$BLl3WZ@xa%z76NWO|03>Nwd&tnCXCYhdmu*7WUB1VjvoiI{ibnU)H zW!feqn44S(F{5S>IM|ZiP2A6OoG&Rvk_II)=Qs{O4dGr-(=nu&{4qZij8q(q-0e*m zGij1plL9uME`*qw^MGZ$8_OmAQxB28HO_WoiGhU;P3J| zvgava%;@EiTmK~}E;RBH`tlECjQO5P?P{4#5tLhqhPzh*B`!apFVgRXqSM~`+<@K z9)IGnUErtBp16DW?i+XlaBhH`&0V+IZK7=dyqa}6LEz0(@&>rtt=)}TV>kV-uAAC+ zTPS~Rw*J>uZ?=_bj*M@8Ra2@~&gWaW=&D+2G z-Mc5ZzkTcE=6fg0<+rM;UXHAz%p8bg$dF^%x-5l}%t%pU!7>P=0m;{nd0QjD`!Hri zh+(njU^1y``BiQY$5FF&0mXR1q*9s27-75`3%j`-wkG414Xb}2_S!^(zY8KEVpfu5 zVTRHVGQ-3SRd$25Oq0UcijK1&VeOa^EBO{oX`^Mjk!J!kXMW7s7Yn-?Gj~(#tniSq z)3GUSG-C$R28suEpA@uY14neo_5Av#R1kxDliX2Z0W&uurE zpW#3`a_*Q(8ziRVSH@^E_STM{KcnB1^*N%kc|GS@QWL`^fZ>ZDqPhI`Q+~2pW#^woLnO zg|`6y@_gQl;TOc^`hpohKbfvl3BcpxC-i}MZo~TO>guzL_4>14Jp1~m|M}Cu{>jU$ z7b}ES_M|PUD0@Hb{gB?nApCmb`(UwfV5=Ot+fiaa7W6~D7G3}@bY0)0Yn0$GGF2XG z14kMC9mV>aE?$RZe^u2X%OA?CX7hf%TKT4KJgokGwEjmMPT#w>M?C+0HuGEL0&u&& z+f|f7z%G`)TW?a#eopdd`y1XyeZl%73jXi>PN@21`NtN2pFVy}-=F;KcKE^n_yhmp zhaVd3Ze>0kV*Q!7RpDRp>jG;OieD4#g#;uwsSqEg)yE%y9H0>3odTX+KC}PBcfM=> z!^MBJ*d^fnlS^yfjBk|2x%GB!p$G`oOZW7=tM1mbutg|9bxcBa8!oDLJ*#ZBb*u=e zXHB&C_aw8&_evD_XVKzsAj=m;fFY~BuWX$X2SNv3xxS{|V@$=n29Pov*#jWV`&a@c z1`Om6j}SLR1=#rJaW7+pIWjKUyU>7Fi`R>?>(V?}ih z^->lDzD6=Pg&`7^79N=yF=M1KW@RStX`2r*x-v1F%^?7pnF_ftHpdK8F_B@SV&bvD z`4p(i16u%2h5bW)6!p!fPOZ77 z9y6Xp)45&h4*SnZBg&*DJeB-pE(!YZy;k(6v?mOG6T>kU_OIz2(?zb`Qm6PX zy?{p2wArTvE24rpE*mzb^&z2oI^=S_%V(CHJJuX-mwXNYQb{$Ug&0R8*Ybqkj1mT7 z4@^(FPGr4)zdx)j4iin1ozjcjCw@yMM3B$0Am%<_C(cPF$jE!bn(=!q|HJ*~XB5++ z7j3r4(%-IMTwMHg+jU<*dwKSYpMLg>pZwzam(N1-(MM7|VsfY#>C}M z*mew()}kz0Mi^!A`*+v$9Q81oV{L&rt>^ zLmB?B5aVwhg$UGc5q4qg>-f9hwLRSZ`>qSiy6Ma!kf7hKtG=1fZM%)#S}eMoH*cD5 zwdkXT$UlAhmAUuu4ZnK%GC=UZc=n9k{SoUAKml<7-`uBu6Td25{(0C{0igIbfi()n zuNhbo5Cwk+!N0^yAxYqa5AE4UX{Ug{`1xPB?|#Ra(~GYgp~0 z5Kl&W=$_-vQLP+5XVp9k{64-9+W1PEL4#f6Qe11}v8c(myoF%Y5?G3~!8Havvx~w% zJOwH^yOFYhUYd2~QooU^z?578Ob^l;(3>MG0kE54NXiAK8w$IzJU#m7Z`}XZ-CK9Q zeY!ZhbG$fu8{PuWRLdd+6EDJyg%QlY5ki+S%;fCxnNtRF#5@Vc5|Dxy{-x}RVJwsg zlx+LNXa>RPo56ZsEM#WPc#kX-q8wufzFN96POL47@6Mh8MQBLZryT^OU?=Y7-;z!x zDIe3(kT7B^I~J@Z!&nIp*b4^J2_lPeVdl_s{nN1=DFAXAGG3qPDj3ir{IHNMTwO=P ztL#G-9=I-1)mV@+`@&1HSP2UopO?bzv^?&U+`4SU$cnL*0`^F_7xQD}t}d8l`RRu- zEd3UFE7GlD5WK@=jg0yg%qR($nb2k=3>eXVBj*0ZLxUA>UNG>qhNSC^Y=@|~jC~j@ zA_l2Us`#gHKiQ}Wb=Xt^kflD*_U*hxK8 zMX0QML`yriB+GlIvF$;8mjbSAQ|XdyyDXHjd+n8d zHD>&N6yL3A!?ew^ozpoqn$u!@_tu`7Y?(M*TH37r*%A%U}Hb?EJ+VuKYISOh`hQg_R$&dgPrbJ3e{)!{U+m<|E@ie@CulFg3|H z0J3^dn<>LvfGqzx-XCX?jtQBXJvj$-V5j;vz%1YUl&aY`K6Dh*AL=N<_r0xaiu=bg zC;{4Sh#G{hhwlI^{?^a^s=EwO1T?VS%=)g~H36!GSu+c}%_f|8Xa3g7i9edp!+Nz0 z&CRw$KX0F%g+KY^6Z7utulqZ1y=CXy-;3@3k@>&g|G)RhVKv1MfA~Y}cxB_CHwwkC z5v)-tehrbfpUYd+ePA3V2ZSOZDgplJ$sbjp-~T*BrK@{#`$@Qu{Z%90IX3Q7^NE2+ zKv&1_pIzBIbL%$8TWem#3!3<5uUD=)eywU>w)QHD=Qn0iF|f04z1zBGaax&n>#7E6 zWY_Wa-&7=NceFiV)DlFNq^T?4ZmW4z0`xgqAiM(Lt5!oa?+t|vAOry3Z;m88w^2GiS6XtQsAZ6yrN^2pGWdSKnEa|-K5X%cz z#^_20S@wSfhNoOWdNTsX*2xcq*h&JxI+Kcn$I5U0R7mnvH z7RP+f3k5*Aj=cnOA0#t*D3KbUlT5um-2O67Jm%cz;`+;sa4@4R_)ajwEJ#UfofL4S z3w#k0CbY4`=}|IEX2$)2y13k_AZN_DPHrzNaomAdZ&_#JCTV31W?%R&g0m6IAv3g7 z3haD+Frv?P7~@w753Tr`sDGo4G*wJDXEG?#@^mX8}VejXN@ z1o7;$M&_E>_1&{*(AZqASD&rco9Ceea=&+F zL3+-{kK}!L(NnWRNHP2_J;|T|z(#*`A>}|q(qs=NC@T+q+APT=JwS(WeH+@eBS23I zfCl;elbe4uy7>6Jw{1%7m$nN`p##Y9kCcDDi-LaL(AG`0C3gUF^~W`RWVGij(1I6e+_*Li92zjylw;r7{W z4{!euvazaouV$Bj9t~@+d&nsi|2WVYsra=9djsI%2`wrftVpI};sY1)RlwQpGl!i5 z5EcNBfaez%mX!c-*?Rr;H%$N1xaZA_`1-qLZd5Pb#&=cNBxz<96#;f@u?wJUqVl*~ z^wqp~QO`V&lKIZXw@KA3=0TP zCwK!OWk6`-OBG%Ka4>LW7Dl+6i|dup3ibT#9#oGR~1o6UI5a+z{`nU;Ri&N9X(3%D{oA^#rL5ynCt z_iHNjkgy}@B?UD}GdZWkrDiI)Psdr(iD4(lM@p;%WlB2mvC+8MF-_&#*i%^LYh<{@ zD4)UPxnhiHH$cLW%CiloIMb;|{`E_y)sH2tN)-4J2-Oi8#09O7U!haO_ zE4v_pzppw{43LEeR{r?8?R~dgE{yAZ_c99pv0vUS)63}Q(NVX(nuoKqGjr$kmR~Q9 z!acO-e&i8fz6{^Kd9(jG$^De%??*o}26?HF-5u4@~} z#nh!!&^#a&0VoMci>%W`U5hv4Uw-zpzoD0YRuH(@Ola)kNl=k0qcZpIzIOL?v0N@^ zi{X+G{5qYajN7A6btS2u94N84DvuFp9DYY0)qAAKkovpJYV$7)sfqh+v?mP zgi1z#L|eh_ThWlI@d z14@bl(OwoFr5A}@^F=_D>q;UBT8L|;=hA4-FulxBK3&fW8e>K~0T@w^6ZGP8_vkuZ zBxe6wrpL(QoCQ5jdMS5QDRdR(1yRrFxx#HcaL*wnWqF1e@%$CtnC9o;x~Ix9DrYo_ zhVxT}Co3C*xNh`*5Z_DKRBjl10vS>FNN~17AQ#W+G9+O_7dz0B$E32uGiOh+WQ4Md z=O%kAiFr}BpcQjAh;f>ZyD|IE)ZEU<3#>bD*4y3odDpd9ZM57+WBJu;yLsO3Hdj}> zc71m7^4V&=T~kaxUic1%EF&q>s=sG9lPXOn?^Gp^=(gP z29)7Dnw%H{@AI>r7>FpY=Wzajt&%#Qt@^kW>5c-F>M8CYN``2KPj7Ko`9#Uc+Q78Y zQ$Ro;weT>P^ssD1150R;w6ChLJ5y+8v#1P+R($9hZ2WF^$mws|XrGyT)Aep1S-Cbq zi9opoW;2gi|GtfvMq$6J(dUid_$HjpmVH}Y_4CECJwJ=e0W%Mq)m8Xsuiy9e8^$+L z=>PocEIcsp`fbU?)o^Nhj^dJU{nA=`HZiq7dZjoAwatbkh{O5C^||M7**#T#Sg$cz`*0p z;RR@HN+9Tx@SlL>g30tx3In{9ZD>dx?`mvU2v-7<+8uk_CXecrT#$Aa;N*9iu8D_F zVR>0IPxVk@yr?}7d4~cEr@P2J4DpeUycn>zPL)jxoV(!W(dqJJd31F5#?3n@c0OAi zMMc4KR#!(&(=2h(auEq1yD@JTcfs*Mo3WVB?l9vsYvy;@5_RxlHL_CgO`4);K;tPL zAtfgCnLoB!n_?&gfIJbc843SZDjtGhoY^`$6$WKnm>JBm>Q-)D#f)BYtrbEWz#bKH zw}g@4XEP5S21YfAI{BEqUeYL-p%E;Ij$+x(z?`%4rtD*HvQ?LV`>~KBCGOHTDF_)e zN=PMz0KR=M)_p=F*;gJ9S(X#^aA<=OeV24IqV2L=X;qW1+ta)aGE;vLt|}}%$bK_Z zKUEG)$18}&GM#;1$(%fr+w8@pl3pW)7UKF*U!|}V#^XJmCt-506q;qWaUP4_k1g3n zxgq8!m+xd^~mkL`^xPq($e!1Q znanvej1z}#$mfW>&)EIvO*lXco|jXCjoM>|XLdEAT_uze)uhh+72Dx4eYWk6zPD|+ zhE*Of+f}sCfgI9rYzw2`%z~t6X#a861A42Oxm1F#|{W97C&M3C5>kw-hf5Rgn#r9(Z zrk?7kNCD8pOCi|Wq=bN>@wIJXa0zyeSbrD0wl!uxC+q*rxxU@CVI9>L$BUz=N7#m4 zvkkLN6LzlY@0|9&>hIFPUR_*<)$%-;-Oj)B?z`qc{^_3*o$sEU1SI(T-uI9L;0JUq zTl_ih|NZyhFC(vs{uKWdV2wiYPYmqh&aqa!Wgt8Q@QHK0TL2URr+4pK^NBILnQ_=M z5a+R5!1DOWUVX8)o8x6v61;ThH537Ji_n0!o0S{^$Pa)#0rq%FpYv+#`o6YR)5rH& zUG1V?8D%b zj(7{&O#lLXWylr4M$MKeZm~!Dlkq>u;kd+HXX#(qiJl=*bE&l$|FqLats$OT&^p0xVf2EM=j9_l6~9LDYSCyO<$of*C(O z3-8F*7Gg{(l?4kqoWyWGYtsG9NJ|E_C>H!6tP}wy|B%*Q$S@`RKm=tUVt{3PWehQU zY81;?7_94i!cSHPxQXkjWV~e`M#76RBPE9w^{0U!E@T&X7A{N3$wVNrW-O!$8En*S zGid`0m@Mp>Yx-Q2KKWR&+S{R@SVYtMD4(YohmpIo5L!m=@}h0iwinNgxOlpLpb7YQ zN}`zCfr#CZd3w6vnLWXq1=6W-DaTNHBfLrhP}-f3kK)SB*pe%i4Ts#T%e)ZR6gua2 zFuAxN!Au0k$>7VmU&h`D1%TZ@$8?Zx-BTr;5j66$JwXVfd~UL4g=W z6IzbC8ph=u>OW(e%R-(b1(z(3ix=e|QesTo79_3AcrMB36Vc5fN_^dQ{hIq?S+$v! zKv1bebWG-GQ=ZxUyu~+^(fjTyJ-A7dwWHh*7Q#0y>9L;Cx=in{sN}zjmfp2&J6aKi z^k*zgS%8GAk3tvR{`Bw^rDLI~_?0Dr^7Qo43 zjxPALeGq-mZu*qxzDWuB=$@{(p5yUph$wu}=T~dsxkYV*G!8z5+ypCn-+>IlvbHe3 z{G+wJYiZX$dO@Ith~^L3QUDl5$jqMVO?n7X8ipx}XMu(uUm7i}w1;BRrfP9s)zwyzLPnPdBXQ~-2c2(+u4=x z+BzV)-^^7#T>YCmCHR9Ez~b&KoS&Wf#q3S8_(w&BkG!HeJ~|4oot*Tae)5TV@b0_* zi)YX5|Mu?P9v1(|Tf*Cv`axEI0Zvk_Lcijl8mv(${s|%sZ+XL7*pV^-3V`n$$0EV`E4eaB-LB{HL=g&iuG`i}y~e*KghNKmYOP)y-SC%x1T-+wi=?jsfP}$0(GdFh~@&R-({zEj!JGx7W0i)%gwi4_+ z2R%8qsiDnm;~Rd4#DMWWN4j;AsH-IKC(hT?p+25&un(byZonr!dd?331wrPLeabD+ zVJlpdm;f9GgTWpEczq*|fpY*PC4ntAQb_HTjW;R`5{YSVM0zi?0)kiy-tGtS3(3bJ zH9?l$XGMXhz4VATAmcK-B?jsH?Trnh+>puorsq&K`3Bb+Nx4Dn})Du%{mZ zOR_O(>qBsONm)Y{9nKv=K`ZGvxs-ari7i=aeTR&mGZjsynxxkJER(`dQ`VpOeqDHDL~S;r3TU z`7R4PlvFggD?W_CY$peJZ%Z%|71C##p$%zEZ<7TIoA&7TR8Pu7GR&#G28aIpH0H$L zPx}+n+OTYR%*#~HXh{bWFYsAq9cP#34lDGyp5#1YhZ8~ci^{QiZ2WcfrkE*g&>Gig zC6uAXrJAgw^qk4hjM8pr>@eU#j&)Hw=80zc`Q`FD3S}F$q2Z{jr}hu)N<4Fi#GQ#~ z)((ATGcG@)y-f1y{ir`Y9@&e_7oypsOdjSZ35 z!=I3aW%^=dq_3<^Dmy$gB!^L|GPKu+E1T7ahKb*ee=yX&7H=%uTfTQ z-DbD7^WDORs|&YVrtJgG#<|^mW@p_j3OH+5&lwIC>67u3 zLMAek2L%W*Z7H@f(Sj@>Q1)kLC!`$`k}D+rKL{9AnmgF5(PzPx>!Lgeu&pH4bPz7G zuvarD!&ljdSpAUVKpt-DK-9pHxO&XOnmoUj(p_k9sv5hQbok%6lQx)+ZWQ?*E z%S?P9w?VX*>yhV0o8|F=UIPt!GZ>JWCgmIpVB`jivCRGUqAZu_%lGm4joOmw5BiYO z&5{zZv|(6Vj`CQc4wqK2g&^U&VQk{$vcovJzyd@O&M{x3sKUa9qyfzhT-0Fet)XAZ z%{bEB30k6_2B}i=9E$5gitr_|dq0dZ>OkEzrnz0Lw5+)OA@wb-^}#AS%%N+J=kGZj ziUbtdr$nnHw8{B^^+><67{>HS6At6wQ{Ut{Kbg;|z4^NxghHCfSy1vWtwT!*(bD>_ z@^Ny3&ixv-v3AhQ#sYfBeJ@XZQGQ>dMbgunwuPx}@$@2k#Mg?4+|^TnFe< zo_T{qTlu7nImzaM?mJZ;>yQ;Yr0B9$dCq6mLty1=&l9#!*K$4` zFRbS*+57wgqWPYcD#QHGO56O-@UZk(Nt+OmktbT^ZPyL&*e0qN=v~>_;;$d)W`)(( z7l*wvM!rspyg&+ZdWBHFeM7XN7$=(FP+j0#80gg}odWHom&OWi{#8J=isP9MK-}0yaynpU(cgwFYE~8@LBACecA-n&7 zKcDyi;o`#HIXw-O;s2@e5B~5$c=YHI5>At6DT-miKYN~1+19EErTC`{oxO_R7z7a- zfY0|Iyle-EGfLc{%m&_Ag-`F}T1rQ#9%rs;?uPaMC z2;iL$VV!=%~e%4l_XR0Ed@3nfBYR zMHv;j2LpALB7*U9XKO%YF>F=}uq7g}5+Ni3IEk4Qm=KK-BqJM^h-pW|v=xvI!WxJ6 z6a@kavB}e*az$J!pNTQHL{T{@OHs%h90=hddq!l5 zEoxtabm#P7rZNMV7)dGyW*7F!jiiSllej5XaIi_d%srcaOG8}NA|#e-Y9lz%zrEvR zpz{EpKw-ZnRN~OJu!7aOFD#gnkRp^We2#AElQJibh|jU2wg_B(?sK+IWyOzdm(S#M z%-dKn=y=}h{pvaniZhS_DSB91w(i^}xbI+-ho-z#`;=5or|*=#YFHKIS6E30yY zdRg9tlv#1)i_l4yYX}^jmGQKxzHEi`sV_L$lbcWONA^Ns%j}>}$}|&$n=N=QSuAtk zN;{<&z))YvUPD}oE5FU8O~btvekZq>+|Hs33f#tCj!~8S@4Moelj`ZLnAO8Qxn9lz z(vQxY@jQrSyX>Ysu3NTO!cU$anFf}vv6-%UlJ~tgGB=4_NYr=aMeVtr>Du%R%w8eY zU^K0y;zGuL=el^z`8Xa2Ui{{=OBwxSeO1nswp3ha?nCZV+InrE1@}evTUzd!R^_%_ ze(6`0+KtK1_0t~fK8KSrU6|G(41KD^TFx2axlFpR&wUy_Ecjt$hCY?+^7;>HOdQis z)M13SjplLbgINE$pG-jM{$A!-?q?yNpivgo^E-i^@mUEqJZlQ=og9vwAE(dC-+p{L zzdQ$zmws58?CQeA$qHV|#y^_9!on{+I!Gzfu^=Ajb?CBZ5-XRf&Rk!plG}WhlpLhw zr|tE~#UNzoH5U9$%D&%IhVW=yU<-blD^SirDPi&!eIObI|3PokCHIVYrzLeoN1gyw zb{in1d&Kuw9rpTjNg>cBqQK%0B}5w;DKI6ox(C~DfMkJnRVC@vR#cIRc(vyl~hDHfq`3O>@hv{nKi;SVSxT%!bVsm4l>#>=j^k&ecsF z1?QgJ|Dgat0zu<;B*6EZDB;(2cK44=tZhjDebh9D@(94l5jEd+K3>m~2LKWa_7!s8 z)XDX~a>+{ouVa^NJd`H@$^p*q11|%F3;RAP4qWmmh{^}*D~Ax^yKNfFi344-K9d!M z^8uus0&G!9hLdDx?!dHVn{;AJOxotBScy6Q&}OT(Ph3Q@K8_gcBn{;qhY6`X9$PRQ zRTh=1>}p%l28?W>Wsa_R-gjvSgJ8!(KbOreo@{;Lretq-@+2T<4x9FLWY+;|kF~bX zE~m~89w^CnkNd%_)WxfS<3LC5zXBZQfcrUL!szgU{X)bWb-39A32B4 zF`3+Fuy(+N!&*mWbjh0{GPZ-Ki%%9d3devYt*S<1s!fgyA%%w|%U>w&^#kPCPIX8& z3k4(?#=5z!!=1j+thn^%^B@MiYH3W39}6>+x>#T~`8g3dvB+dj@%^+clP5|^WX3ch z1>WTP5~D2p#ZqTg6<2#B#&ddX3fT{SE={i)G$g5ACbyB?v&B8Bk9`h*kaIE3%~0+a zN*_B82^qIFT_@*uI6zB2pH)C+KYSsL!`}KAflg7geCGikeV_D%&J_yNEfn(@JHFgMHNY9R> z;Dq~L3L)_I;4Os{RVFYi`CJJH$TVQ30R($j_NAqIT@wZCZqPV^XQ*jgzNA2)d+XHZ z4*q~uR2)F&M>)}=PdDW<$r&y_He-<<*OEoQ%!Rr`On-9s-yvu*%xdhRya?@f8$bK7 z3$XUPID|)i-(JS@=TQOBhC2RPAJqZz*@n3OwZHVR_Mi4g{(19^>XdqWx(fWpIdYMiG%wW=LcX#z?HpK9i6W2a=r}9 z?UB7YUfXaPIfd*IfP{g@oS5C^%lHO8Hs;j2s~2n6%%VW;wyyDw?VRcJ%GyeWam}$80^1 zO7+exNQ#2(GVMZOXOWp}cd@S8B=_i0u}dY%EvBnr9Y{Wsi8&OW)U>I1SW3*VW~}4l;kLwg>rB$UH+cE2^wrsly^d4lMLk$ z@c!V-7Z)b0k}olpF!|ArjM-&33CPY$o_XN4SgGL)9hlL~%yW)4r7}XwqmaHQmwhfN zU0-D{iR6u*8S9BqVY86ti$IweO6pH$+QLLonF?Yqk>3nL!B92{N?f;P!7$}>z<$fg z?br@&LtXU&=B6J!HUcrvUGW+q*H$EptjEH37FRYt3SvOi034noO3mOy@o_9s87@VzA0V0XFoX+erBh+`!NmCVH9$ zJPR}~^~9C@4RPK3>=MgDmQ++Q-BTNcWsqHTIb0z3FQj!jDI>cJ=ec9E4Uq+#BA8;W zW_gVE6E!Wlh|qaNsz@ty<Z{1h^L1@19ztOrWXesB*?o;+<<3J9xoZadGfA{1rC z1a=b<{?vi%V7hUea4hw!cfkvRDqCrZCgi%~16ys$*E=MdvHNx^KlRO)`O0ggn1S=W z8;+MGZqmCTKl{j4Kej970kNW-I@`Cq;Wu2ksV~^|g^a1`8PP#A+nBWe#oQ|S7eW}^ zdx~4jXdb5Z-{IB)EIA!|ljn4WynB0V!)Et!)3&2EmF6g~n>wxktmKt~G}DvT za~3{11S=7%%AqISu>R?JoaPel>_R9?q#(4%Jl_0lK>O(#G+O`Oj8YclI=BliTd!$u zm4hLZ1P z1xJe2XBzd9S*WWd^mjP`g0%jwiiUyK*O8ytZFeCWBuEJWOa5*f>xp&|JX*lJRIt=z z9_9NH2GG(}b(GD2gZO?V@N1f=!{|uhkIIKIGqY$6+4$q-G7A26*dkn@Lae{{ZQsWp zx!x{33H>Pd^5wa|dmG8)7jGZV`Q&p-G6OY^0<|JrN*HZ1<{zDt7t zTX*k<6z7i^{|7xK`Fos_{5^X3D7pG0uT=am=a*8ezv4FzI-?c8kzlU!hd=yb;bhn& zfVI2#p4_Y6yZ?Fk@soQNiU8yWxO;LpKp|kvyXKvE&DZ^9wc1>zbux=O>fMpuv|EdW zfuVXyTL_x^hKu6A*>!EULL9p*7Zm|L+{+#99AFj*59lm%(^65`HZa;es`|*rmuXar z_h3S5a_NP@-3tTSly_iQu_($SZYn4lcNYJBoBObGz3vqAa>C&4_q%2PI{%tdlPsov}lUff7C z!vluQu~5O@1DP3=?WNmbvCRTCyGu&pjfDrBnM+O_2i~8=RZ$OnL4>UIup*weSg^7H z+9hLX5t0&}lfyL zPXkm+WG^e6%wVZwPY8%_-NX{eb1mzF#zKC+-}Ef>m$JcY2a{uau_t#_-Bm?^5ciXE zr5lt8JWXg(1X`eJR}eF}8yDGW*v%`AYl`wuF}u0XZ1FcqBycP&=00UX(w5vDTn~+T zR^tr9EWBwje^Tp;hew{5XAo;eLqK7D^Q%sAYq5p7Yj9`@V?6DA5!w zu%&e{crXl#p)@O3mcoJ=uK zI5Wnu{*9osJ?v>vtmSpcIVr??DfQq%i#)Y>)OnuU!}`y{EH{bY1!eu`<($-EsZzQA zX-xXm#`K~gcbC*YA#6|ACMk{ceJ;l^xcodU_4^?NA_?6-t67p4L0V&>D6f(Ndw4Gl zesOZ|*u`iphHMqIx~48HHTTPU~T(h;_Z_3x|D zJ1_-{zV5m}iTpz2!S^7`f8AAK8wG!C-M8JqWk2|%x%cZe4RADt?4m6rd12kLH~UNT zh1qSIFuzrm7w~cYW)H#t`4`CQ{{|BKo9+B%|MSm2GdGWq1B^UB`RPy1-IIS6Na#nR zXyE%vNg+K)`IE-ps>NUNn+a6_D1M_sO!^0Lp1)5&v2UwGazKjh%83H;BKZC9|GxS0 zlOGpFz<0l6%=3#2S|2x7x5*=b69%sQHn9awWOrUfyZ+I_ZbKW7U6_;8Q**gqQLX@Z z1+>d(W#6tHX|LfK5S0Ps6=1+Hbd)E6LIeP}aCjj?F#sh%Gn<*VYh4pf`E69KXN|o< zh9;=l9VH4RtDYs7ehLfN#rN*g(AI-CrIk-%14${6k~7H!f=IZF9SEcK0x1G|+IP>n zhAaWJIU!kQ5WP^Sij)UkMWF@RB^^?87D@+er5iI+mIGxSvT?89lhRctr8x_B>U%%5C5;V|b#al1Rz|_u zLPIp(IxNLU6svZTRfqF748JQ=mAO>TWtV4a3gU`;3IHC)jNMI`PR5KvOUhW<;x$vo zr-TY*8VxZmnSLmS0;6)GQX#oY*L7}xI@TNM!Ge1zgk|Igt7{PU7y03 zhB@bb;IwsP|Mg)k#^)=cI2pW%_^vWW!fPgUQ3Gq6lzSvpdw%k%i!SNr{5Xurxja@j zWt1nc16DxL`kf79oek!m+myp9QW+_YA3qvd;Ub@V9QtBex(#XEXb$9OOcJKEw@?_? zuFZQ>%Cw$+uDh&5sR1>lG0a7g0Pco4mR;oKRLbwS$ROmo6xtNH#O5azNf$jw4h70CfHfO^E;}K z%IL|fE#KRd^9U06*_`no?)*64=j45G?VnNHz6*7HFp;stRRIqP#PToV*)D#@HUwUWD*!13ZJlw1MFN7k$^+>IMI=qi7;a+laW zz?_gj9Fhh$bsMhQO>Lmnj&IAhYQyR5)JBCth1>xpXMiC~x@0v{d`d9bkVk>H^b(G|K?9d~xaRq-h1USN3Fdn;gJbdX_q(V7Xc8TwlETfS zr62hQvNvf`9^l2#o&$ZKKI<$DLJ84j-X^;sRCVphqF`kxYDYJ5mS|QcuysCV=MFrWIk{dE2v|wM?F4pU++ufOOrMqWsSzQYMP1q*!TAwG zo3~=j3J0P|%0BKmfnk+}oss_40-N1vDwLExp*t1 z&v9KOA)qsq9faNSan4NpBI@8VwmCl8mFs#VU4bP%xc?RzzDNk@DUp{G+3-h}>135m z{mpgqcOLs;e*xNc!sR&Roa-W3R?rk$&7u(6=8&Cw@X{bh1GC@XqR_zHtZhmskmq~K z-{x5WG{YF?@S8lZljjaA8!IErKs$(jc}>Cr>9gRR$QL^yIaMvJU1w*<1hVIY#nnNbBv| z^)Ic^W&Lyfcss0rE4Pfqv%&>lkEt)2&fGsPr+7-`-4OB`Cxv8Ds3fo=fhl4A;8{}= z8KyNmQ6i8+*Rmq3C>jv!Uh|wt{m=R6Oj1+jol^4mI_K8$LODzdr5fS$yV%@j96~g} zQ@l+gNO4nvXC1<@NU-hN;-N;tWMVEtm?xL~_^eJ_1Lyn;S*TBM)$I94mi^SG#wU0E zj?(ZOiq(grpI!aQnorjIoSi>g@hKS}0q*;CcK^ro%436-9()I`g_XaBi@%`|BPfXj zw&ja2H9u=+@m&l8N2VoO^2x(7DgqWw6#8NPZ>s>|zwV;4E%HFidGHr6<7`|SbMvI? zudc3469xa2#s9?E<+*qLu|GHGW*!Cp?R*~0)7~RA^W>i$g{NPA6|Mbmn7_XGt8jnw zn!o+g}Dq- z8PG!surO6T-p`}HeAR{d5_!Xta)81Gx+Gke9R|n)z*8=Pjo;WsJdPLpb~_{!BxaH& z?;Z{VeVA8s+K~W^j5JoHGvv64ng$9=? zV}fP&auUE~fB0Ue3t!Li*0bWJPz}43 zc+r+DRF}GVomnwwd2VHwf0v&JJZ@Z8lhYfZOwfO~8|+f^b&0rS|5grn$~zYRr(W->^cY8WeHjc}q0#Lx>h9sPjJW zLPK8e@g0Wi+O(TNU1yhhe*b`e>A4$tjdI?aVLj%sK7MhcSnKwl0i*3hvx2((j>3Cg z58e#rrYKl*p7If8VLuYnBOhuX`HK|GANcHoK13LR|M8P2 z_V(EiJd!{^di2PbU80}>_`uj4;~%VW9We^UZvj*Rp!lst@d(H-0bmmUWk2|X59;54 zX#D^4|NX??|K0l~Pry5rC%~9b>Lk{?CJzCF0J!RiyaKkHjUg|AoZz{l z`~kJ?`Lj=<1I{NUfvlQH5=xMTU-l~KLE9P($q+bD7%$G?4u%+(tL)ZD7K(N!gzK6t z^l7`pDBSyKd6>;2Ew)rHB{>AM9WDO|SwI`;dqr8I5(CBiQJcZC=0vzci6d@Pdnslz zGAV{OLQ2lOP+*icQcOhfE?fRdF(F-Y>tqT?A9ucuO>BtKMY2XHN^H)%P{D)3r9GUz zZ*5^PYtBzlWts(RiZ&%Nr0iXg7}1V)cQl=t*i7<#8++u-xnDdadUgq~qfpRV-X(&v zJL8(%?%oWxrYcv!$IzE({V|+ulCHsbOes+Zd5z?Dj~M3M9^w|e+#i%5x#OmZ7BcdB zNY@~i6(S6ccP^vPeFts1tkk|#KPgb!&QpjBn*ej0xUSNcSXO9Qv6Mn%D#Xx6+B8Vh zk;7y-T!#BZ-{J8>E*j%=h3J@X+a#>x8lDHK52@esJJ-XExOn<(f1?%Fa zLSYw4LZ(E3^^gdZ1U1ju+dCr?c9QgJcv0l3TfB49o^#~FKmuTPxo$FjYF8x%3Cb*q z8izL0Gll0K_kD=fAz?JFCr@Rv5^+i%JVo#fYO^qHofqCsiSDdu;k8$C`ibx=_KK2i zC~dCBif;zZh0cqRki7m!TcYNE`d_mC^LJK0(J`SQ;$tpnbaB~3fMU?IN14mvS)^>O za`}CBXV0Ehtmq(%J?SIknvBl}&RoyWd6(nc>6lMSnZ6@0bzAC8uJ=QNTUN$#R{Pwh zl$6#Fd0Z(<%4e^E?J3tL#m}H9a6{rfe3G)gWaNkYeVg7#gSi`OLOwZu?K&2BU<~nvrRxkKdRr&QfNRF`q|QdvRsB6$H#OY!vC``zYK`& zH|DWHR{tOU$e8>8=02?a5ctawa2}{f|L#!<;!=TM@!N{pC=|b?kcqrl0~|jGM(u-? zA@=*`QTUV74_s6Pgg<$F*HHqQl`(hTdS>s$%RayO#J{|`vNx}e!@b)xcfLLfW-&L< zH(!xE?47snnyc;FUPh&Wncp`T>!;PcKBsz)7fp(tj_=}baojfDjs(kkH}mb%*{<*W zCJMz-khhdV2?=o;?D-p&0!SFvw((f&@DfJ;s(BUd`fx05IbmLn?Ewwta+}w77I~hi zT(?2ml$gG}7%fnyUxOxETOU2n6My9I}1dhlgYDuDvR`kMAr#68eU zK#rpuYwRiCQYeFKDhe+3U2J+&5o6_$%P4+z5 zfy-bcqS#)G7)O__Udh_yN!bFX4Ah4B?C~2cadtl@#^28Il4VEdUrZ>8L}>%oI zfg)uS`Qbnz1!o-O2*eiI){YcAM1!^{icFpR4aET*4|-2?1`3O+Pup1eI0@l$R5x9+ z&UUoxKs=B2lr{sfl=eH(mRyYCT;3(Y1A8J`>|PS*E(CW-D2Cm0NH**_riK(4Jtg1+ zZQ<9C#HFe2C>t)wl)F5njQH>rBE?sY81@QlHPB|L$U{f%&LKFMiZ<^dzQfu}I|+Dl zxR6|MiYpE}2DBkO*J=YMuv z@9DVB`<57LzGc__wEnpbSpRV$cOG5=*~$~DLi@7*&I^!S=&ea%C)rA!ByjB70jlBQiTf!Lpd&AXDhuGr8jWtE9C!%S zK4%f6J#8TLcAPyTn51tbOTWcDf?#XvELdYr)pl z$u&PDSNSlD@13s3yDrpODS?mO4s8o~lu#}Z@2ShY6qqllHn1t zk|0mvDZ3VKZa5GX(MS+XVMumf=MbJa%i#J#R`)hVO`*{{Dl?>UZ;_0KPMuu1!h%pyXLbx@}S} zhdM+>d7Qx8E{<+|-*2}&5261QFS_NzbUVD)5RNmL0e;yXIH-fzt%=T%#@8-@!;0LabE`vGm!c+6aoW!+r2VnrL6+JFh8v4r$n)Ee$2^=3q zrYTAb*-Ib_o{`DuNiu*YKH81wdwfBg`Fxi03)FS;3WzUu-Zq-H;OTabgp{tO90KuO zYugTd6c~Vpy#ApOXl6~c5`YVf3XC>+3bgq%B^`7WYg@jX!3qXuj$92R)4z^oEt}+c z2#*A+C+7}ei-;T}E^CL}1;mrFbsnW==A5tP-4fESuw-{eCTgN{Y)wKq1A7q!k`Y`AXGlzPaRn!9Q&J|d_W}eWn{*sh zPM6CCeb~B_%1`$u3s|liF0w|ngv+W@0Cr$65jhS#k7{uz+A;KfXeVEX7~3W?sQ8s=(^1<>|2hih zHN%|pG#;Mj#c(a3!zcBrv1DbeWlyq2lC%#HUh=(l?jNr`m&@k~?8^(eyn3$ufO^G(n%@Q5C%)B;I8&Z2{UU%Kd;l-8YWPE+LICJ^2etgDfCWSwA zWu6RkFC{Wd9v~Av3zP`dCzsbi>Qh=Hq75lLDbFX+p~ADLOXYAG9EUCYUg(#{L(Wf^ z^S#(Cv`C9Jti+`3oUVU2S^vEaBU2A`fSy&w^Xiwbe=pX5wqBP6vRo|DnyH`43^}%( zFQfIJGe=g4*{Tvfq0BL6c-ETyjLaKKIpH3<<0z?KL)QI@lJDi;Z1#sI1Kvfkd}P~i5Py%kn!WVs9nQIdAlz5E zZDh62+4v1PI)&K``f#`dLFd>*@8c5(5w%panXi$sFY*r9ns06vW_INIHY&@zwhhZ= zq|PoWXQf;JRpeKin@uoZ#TM7wFoS!4vkkEF!?3Y)O+R05kzK$aMWMdx@6tSnC*|=w z(U9`xm!`^F_+8Le%@>xE`XQ!2;>pi$hx@1ZLyqgWQP}tF(m%EIXP!>C^HV4?bR{Sh z2LNS&+!6-IIA#oa0-_SYeEjjp_Q8Yr;`#XF@cZWX-T(jD|ErpBf6s4!{uk~!B@KMn zurlEFx9_{BPf^NOMHz7CPVx-cz%#(yGB@MdwSQXe){!}>S8hf-2}CArF}J+UAVLOi z&KtX%b#yM4?#mn#C3d0Z|KIYLoNaA0|%wRYSUNsQ4~Kfw+?&nQb(88 zb!)i2E<<&U1cSBRZMSeQP7EZ670kdhMg~V5=ghv?sUQjd8>F!hejBYSkr7GQMMk@# z`^_#N%BP@!;KYQaRKOO8Fac4xLbiAS(R|SJcS@p`7_F^vBbS0_Ve08z+7%%xG*X?p zKG>tGkdzipWT-fy5w!W_q#k+HMuh*O-`Ll( zP_G->O24t|L~KtZcy6W%&yPOmji|_CSRH(SF+I^fv=il`j=)NnEW~ji=pOEOyjC8s z4#fNJ)#oADHD=rHsz&sW>j%A1cM?Jc-6n3~+*Y)l!*FE%@_H#8GsDl<;yTbd^j%S; z*-5<|W6axx(s3TIKFux6!8Y#%;wWoejtLfRVPTF#e@g!$vvfn*gO_sthHgICE>!?oc?m0}!C5LR@Ev3qW7OKWtB^xf6%koq%pOUC$H)@pA zMq1$aHs?s0&WT>s&t=hi%410G;exh3uOZZtucu>}gL3_6MM=nWqRE0F(`LN>x0crl z3#I%Fr5r7j=M(yL?fR#3SQvF-o|T?VYbZ+4b~&HQ_y~V=>VKV{e|;JgYm1wCelF$^ zBe-_Ej@YvyGwm6UN?BM?H^L1TTPD7xEXB7lynqOI% z&aa28OdQ6S1$0twu^`QK&2-6%DJXlgf;oH4Wn~^+AHPG$_F3STbDZW-PNau2`CSBB zR+L@83jMav?~bJ5zPJUvtW}fE@(_ z83yp##(NfqlndCBk9I7o+R#Mm#WyMCFm9uOZ?4wnc(L$T<|>*eqJbjE@uS!oXYG$b zJij?gd%bSf>yR?{8;a?N(Et3oF|XfDg8$XUWw^0C37#S zoCLV}<9cNEhwzW@yt5OBbN=v$KcwS1o4;E66^aQ|0iaM^1K|+>C4iI400D>0vcSFf zo>;`5eeZkm#dLONIe8$^eNj7XC3xdI$D#kaa!4Hb`s;6yrkg%rK1+E6-ntLly?gn| z3))@~_d-K{ezi(gdUyq#oS24{16`X1%P6MKZ`mVw3q-9u6a-KXq}rEB8L(VOA-$2cISu#Aj~QE0KWBz_uHDHDA-1(V$PDip-j&X9tAyL zpA!|93nBxv$jnsccM>rxwm{*&L2CfTLPd<=F4jFTew1{mc4=n>Fju&ImY6yg_L;wj zpyD@~k;;m}v!_L(Ap}W$r*<5q60C-ymLja zkNck5x1|JCP!OfxS-F$%qdNRB2Tbk*n!x9A41yh!VS?dJW1p@~_qK(OTt_OGoJ!r8UL(AWS4aw6Z`op68OrH13%O!(70) zB}-;cbFnG+C1sdg4=8IMc>T8`KDsC%c!K7-7JQv3L$;3vVQwRCzlt{;VZU>qL!ffm zOoL&3@;r-5MBi_Nq$RgI^;bR{lc3Mm+0pvP9H_?6E3!JzU9o_3_o%&JZ8e$xB#3*l{$+o7F4XC{NS-!% z-t;~xHxemY!|NZ%c4AI9W>5qYjq`os)KEN3Z^ z-^t=Az_ow%>6JCNJ8CE5`VrHQ?{|cyp9Ox7?SJq%W%8G_p5$*TP~l&pI1E()C=}lS zS&MAL55p)lfI|gJh(N^a4?m8dziw}4@6CRd$o!(d>!C1aEh>k?bdbi8nZztZ)cB>>kxU16noi3ttcT&k}|Ze_!=$dy2LjVjpN{ zgQ)#avixio8JTF|&lZc|S|`VatRuwS!BW)QfvJx5*mNy1hh4IU&Z2T4wu7v2GqTRa zdzQ7`?XsmxFyfW#0_sOYaGX6JD&gW;E#~PSFmWiGG9+V5B*bk-hO|p=m_JFs~E%s=p%@IJi&Dgrcb-6kU7G1VL)fEXjXd}h|$59`-oUZ$FpU-vmdF#s3 z-d$>6`E7>pRhKMR3weJ%X_HUq5PH%QtrH!o?Sr$4sTLJ6#ncuSQu1%QzUs-!i8@PP z>6%@3TA5KFOJ9WNN?cp6Id1Z{SYq6=;;D?~GP~b0)1SvP)s@F^lg7|6VaO_1(fEU= zZ99y0liNgVD9?4KG4*4{0!A(;m*2$lW!vPsX=v~$DIv9=U59BM)M=jceCJO}K#}{7 zIUlWjeiyBti+L5K;IpH-?gICN>lz71OfQ$mYnj#qZFkB^Ml)&Td`Y23f@b*`mtFQ7 zH-aY3Slz&5!?eTwo9%}BGa56tp62I*Y=@*Ic`>v*NnWzFF7kMrxYms0XHmLW(vnKa z^xs<>Zb5=C_q(j0czwUl>)(xqPMR~B_Vhf>=c%8({$pQ5c154|i|b;#@-vpL@8n67 z>CNrt`{X!Kne)MVUFyj5j=z&78%>?Z=OxdPiKOjv7zC6tZC0XEJ)FQcUt7)Dm7e>W zgl)VF3hknhZFXtASb@EZznAe@OXG~~?65W|$z2L%p}HV+W6s(|pAz9gDV;u1?u^F0 zr+aJE$?q_el|1#*?&ukw)*0R{RPQqP-=vGnBM0xNSSJK~66EJesK+U6skgeivh&%@ zv*jM~_ehZ2;T^lBa0*gtLa`4|z^-3mJ456%7!(>(*!N4{)h`09`LODz^XXc$>_gap z9tHpSo}Sg)uxpx94hj97u^)J0;M7P&TSNtm?QZ#XwC=;L|3>6HK7aCrE_>(xegEkv zpO_oBZ&UXEpZwGqY`J`IHtR{)KfNE!>yO=oM~`}VT7t)V^zc#m@bQPXY~`1EFu3-E zPXjL&t^b4Tze1rn2vq&Rpv z*MR76Jxg8#*t#cukIY1OX{-1hyAznj!a!jFp}%+(L`wv=ErhZFzx#L&js&Z=BSr;z z3COij2quY9%1n3hG^j}#Acb?XbmR~Qge>4Y2_z79EPco2un=k(9K;cXIJXxd0c1=p{uh)_)Wg9 z+reKs~=Li#q1nn$LaWesVeZjqwBxqh$}w_aML< zC|u%tjb%{XBTID>+}4pM=rhl+p&ssQ@X|7mcH%zF4^k#{V?`dLCV_WX=90_n-xJN! zi~`M%;=DoIWWSjn-dzQzobyN2o?+gn`Ne&cW7^R?g4fd8qWqrb!Y~FrKJq^9ZCUWG1oUjGwecW?d2IIA z<&z73NB58`{yZrU`T7NU<1NgpyQKFhJoaF@M=Arvb#Mzd^1!2jD z%YIabN4}sAc<-;Xhrm^|62Q6-*L|~sBL2kKW$>5S!nlomL^L>%fNzrVfwJ`PkXX0( z=GHB9r@!T|wlG>mgT*SYzneWJ@S|A%XzAznzgB(S|EFmD_?OYr|7raFj!8Qyfe*s@ z=U?0n_ijI-@7THz#+0Yg+K*WN5wG=r3MGMOCJXz_m#M{Hq4;J{1%N{FcK~m#B(_+h z{PIA_8Ia@A9zT9;ADKspQM32*p0sDTKO#mHp#tXk*ggC5G~A`U0dU`c*UfgH`2Uo> z1dvRS>xDu9+YFjr@9)gsh-Ex8SI0+`M_>_Oyqn{rLtEp`;RVQ$+Mw!bjajx*r z$nB7QOLVG-Hu8BSn#|>J86}TIR<^L`gtWRzVF6`I_f=URx0}OJh_Ua`&h%N@5&KL` zInyemU&A9M$G+ltn*>rS7mmtoHO~ElQVGf=)D4CnLYt)T!L|unQM(`nYz2*Y%g)I- zQXNIXl!O;3Lxwq87XgCHo@WmZl*RX_aZBgAqCgw}E`o~5f=c#OLEWNzfzu({?A3PV*>ip*>9!5anEC+KfIS zBxYf8x}Ju)oRpO$T%wH&jBg+2O{5d%YZf|3>wiA9RgP0x|6G10*1x1ho7ew=ws3uW z>%Sk*VLCsH>pv$dl=Ye1A1;?^$;XQT-KTLN<#3!kJRay5DVANg_sp!bfIJ2DKc6e# zalA=%Dc4ZO{78?GlH}Ipxs{ccPwx3yK|ga<58>V}mcBiIY0c3QO=Lh&BReT_!fcDsv=!_1b?^VS}{c4XjDa1D}B!jhUz3fP+lU43+v&v)ceKnjIero2D(BlTh7 z=N>Ml_@2t#8lrhF$COS-wl*^Mo7R#NCv8y~8R;e}UE(JU?8Xf{UvT~O9gMY$*OYOH zeJ4xsytIRULlEo9rJk&4T~yjc+q8o_EapHG5@bKN6s}Uqwm0ngkoylSTrPj`o)|1~ z7+-R|#eEQ5(7vmy*#9K3q`k0F=T)Y~+?4(o32sjF2W`b69EIYH`s2tPw#S%MsoeL7C#$ch2Xr#w%)a8+?V zBs{k1e037**$(xjdJSa-ho{dG{}$jnA>e^RJm+ZKJEp^+{3F_Iva%`9F!BPTb(H$X zeNVI-o(&iaE^n%^8IAolpWH^K6^|eFpU0t2iB!=ZUaQ0U!(5n`b%C*tG8kFb(JqV; z?qzz-g>*~L3YW`_bFI$8`3mDM=#bWYT>qCzK%X0?Nfm~6n==1UP7+w<`XAaepR606 zKZ{1J|2CcD`vyf3=0g0PX*3A*P`b|j#%)RQRQGjxUTpJ9p)#Pvjn|a5i067cJc}2L z1+7C4SHm2EGa8<+Au4}2`T0ggFW}V>$D&TxQ$K2YR;T;pcX}Qkr{CfcSw;cxs7=0^ z%8g$)ac!J(HvHTMdbjxX$OWBVV@td-HnedMmnQ{y29DjlaUZnkLxg%O%_Z~$iU`aHaR`O+-r z@$&_j_`-0)zRfDd?Nc|7*LM42-XEQw*r(kSf4sh7SIhHo@BV!Q*Zy~QJO63C?wxnv zH4yxtefecT;=TtDA7&mW#q_^-|9<$BKaPA+%HU7#{Veo<_~C~RF8|YbeufJC3dMgt zQ~{t+`~zULrJxzM5k&kNX|r?40PQFcRo?9C1}_1G3#8lu1Mu=(ePSGT6`-(zx^|Q- z=h=*eryGlCS^sua3aoBYx##OkyV{&s>^i_n2Jr%ae(}P6Yj!_e#h3Vew=9Z*m*%B; zbM|I9$G>PMF@~ULh|Fj_pf-@y7Of|&YGDsXJ+j)d+*SfYWbn^ zm-te@-ic2Dh-n`K{TF4FHv==yN)7Y#Se%Zbgg!KVWuc$hpL7h07h6u^b#p+MFJ85} z?=GKr{O)%5^_qp}sGRhJ({QDUHK-`Z4^n4}?tF_SOZw(@^u9k=?0{`6+OS4|S4RPee<18-Ob=?m4wv}7tRuL0h zA3cNPky!<5y?2>Ym2fs1w55%#CZ(<|R13 zP?`Ew@8@O5o&$Rl{epCn_VBc&pDC-i85i85d}h*>iEDU7(w)50Yt?XXBwMMmPc~aS z)f*m`rj>*v8GUZ7YWuod-ua}!X!L1LpQQ5{gRU$Cnj>Hgm0T5+#peUmDJ-#TeAoP` z%z-6-FJ8ux#o!eRzPbOIRP4z5#5opWG^Vt7N7p3fNe=zvr#{!^^x2W^e+y6~f8Lv~WU=~dcdL}ryu{$f9pw@VF-X^DqkAv{jX-Kl zI{7L&j0d|cL=`oytmq}y)3lLtj%x))_KiCG|JrP+N2*B|q=|Jg<#~3Cl{4Xq!GfFf zk*Kf(Lq(lv&e;s#Qg{>K;{2+}b?!YC*yeoh;4MRinP;U^v%~jD)x|~wt?!MIZ3e>I zH@mS2ldLPVTjUd>%+4_pk0s1|tPPoNxG7tFT-G}D9X2-Z(TsfY7>n(!Vj;w*X+2LW zBk^xw4abt=Yyhau9M_=vU!6O1*vC)?WxE|7lOP8)zDvYOS#p&ydEPE;aW&?jdk?$e ze)~jAM}=DH?~ug;t}AuTxhWjmM4CAevh=r&vEl`6VBs(gKqzDB-4SCQ-T6V}**s%* z3KVq+VVr&|@XPHy6U5y4(0CO!9y*uPL_NYEDKzN5uyvx4vN$uN7^cxOZKumrQ`z)5 zE3V{$Wx%Q5q^^3^FI-lTW&GoFF;C!QGQF>-X|8ah)^@|Up`vL|aZclr@7$9c2i$kD zHpydb(B2`b^A56|lDP@1o!HjDDY0>T+E! zNa_KsM-T6ux4U5E0y`QnDf=X%;PB}FdpDae+$#N-)qh9xZGd2OO^;fIl>>Tc}%tRG{s#@PPZb9<}T>F z$p!NFek_}O>v0(~#n-3usx~0MNcGZ_$!viO!^+NCl$#~D3E%qe+g{e6g&z(nML-;# z6f92ioV~hoNAu?Z+RE{loZ8!Y<7JdKjbu$Uw zA#*-26K*&7*)1i|8w>)*7Vma&udL!bfXwRr%dt`l3;VH|GW=+}ub!aT{2UE~s zRPsIUT!T4DaOt`Mhk?&cma57Jg?kIQ2o~9)yGx_-w=i(Q8d_J8o=7P1jl)F;v+o_N z!v>#TH5{^8(?@J2K8gknq4$-;vpy}o?f9Lu~_xY475cAH-=je0Orc~Bf0z995 zQ>#2Mh?~e1IIjoXTg@Syo)daJCy?*K3TmmPxYr76WoGLao)d2u>`y@R0^=qv z_}SJSESEpvvc{cWIWBxLh*ulog3-=L?;1mvbRY9q22*F7%&Gp%uz5k3aB9Df#TnRg zsTbfhC%NuAGHp+PTVhFsCORJaT)H&bLAD|?P)0ZVL>@@45T zQ)VocV^SY&e9*)T~n^<6*qV8YrLq$TB+*@NcyL#UibU^lv#L`lv=rwO$$)@jZ) ze1ID=8o$$~L+WD6eLAv}DgKIGq;YwW_>b+S4##K+F1ri2jI)JG*W z@8T&Z&P{rqQ6AP65X5s`_jKqF5Y|ZcsGq@!0_ds#s^*^2gSlBxAp`=d%=27Su41I3{=6_GF<0PCp&hQrq#jCA8t?a;`{5o zodCz|A=c_nx5-~(3(;D_^^lt17-Wz-jcF*RJ2gp`wyb8J{L9(OuSshjo%!i)XmF;Q zWb-B5WItkR*vlpk9;6cpLFIOZ_rG;z%Mt!N`wlfYs(*%9y(|R<1-LYOLW|dun$u>s zFi&CP09?V0=}noorXE#V{7-@@8_=JYHIvi{;@;hM+FW@OhJ$VV3^^JVRhw4Cz=W~{ z&KRL_;|#S$eOABD_9?FsI%X}3wLv2r~CHXZqiwo44N3DFGFa?QMD^_;X+0e zKR`0ZVWfEz7Hxa+@71Tfc87F<**ah}qg6TB7$K^5C&qWi-t`zU6S*aFf~V71CO=Yt z?x(rT$!wi3@-0cvcncY9OeAvyI93M>m}-Y?4r8J?I&V0%XS;uN8K_Ad*qW_Vz?@K! zOi0nCVFWlS#Wf#16Doi{6ZtPGeF;E6Y zy%#v4I=Uyb2xp|Z7~AenT~Q*MKYf)47moLCletobQYP%0D=69zoK{7?Y_O=gVL0tv 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%0ATz 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

w)-Skj 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%0D*MWFisBT#&%rs_<Un{%FpPR>8|gPV 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 literal 0 HcmV?d00001 diff --git a/Demo/FluentUIDemo/Assets.xcassets/Contents.json b/Demo/FluentUIDemo/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/Demo/FluentUIDemo/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Demo/FluentUIDemo/ContentView.swift b/Demo/FluentUIDemo/ContentView.swift new file mode 100644 index 0000000000..2e4aa4cbae --- /dev/null +++ b/Demo/FluentUIDemo/ContentView.swift @@ -0,0 +1,42 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI +import FluentUI + +struct ContentView: View { +#if os(macOS) + // Until we have a SwiftUI button on macOS, this will have to do. + private struct ButtonRepresentable: NSViewRepresentable { + func makeNSView(context: Context) -> some NSView { + return FluentUI.Button(title: "Hello, world!", + image: .init(systemSymbolName: "globe", accessibilityDescription: nil)) + } + + func updateNSView(_ nsView: NSViewType, context: Context) { + } + } +#endif + + var body: some View { + VStack { +#if os(macOS) + ButtonRepresentable() + .fixedSize() +#else + Button(action: {}, label: { + HStack { + Image(systemName: "globe") + .imageScale(.large) + Text("Hello, world!") + } + }) + .buttonStyle(FluentButtonStyle(style: .accent)) + .controlSize(.extraLarge) +#endif + } + .padding() + } +} diff --git a/Demo/FluentUIDemo/FluentUIDemo.entitlements b/Demo/FluentUIDemo/FluentUIDemo.entitlements new file mode 100644 index 0000000000..f2ef3ae026 --- /dev/null +++ b/Demo/FluentUIDemo/FluentUIDemo.entitlements @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.app-sandbox</key> + <true/> + <key>com.apple.security.files.user-selected.read-only</key> + <true/> +</dict> +</plist> diff --git a/Demo/FluentUIDemo/FluentUIDemoApp.swift b/Demo/FluentUIDemo/FluentUIDemoApp.swift new file mode 100644 index 0000000000..a0317954dd --- /dev/null +++ b/Demo/FluentUIDemo/FluentUIDemoApp.swift @@ -0,0 +1,15 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +@main +struct FluentUIDemoApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json b/Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/apple/FluentUI-All.xcworkspace/contents.xcworkspacedata b/apple/FluentUI-All.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index bbcfa63f5b..0000000000 --- a/apple/FluentUI-All.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "group:../ios/FluentUI.xcodeproj"> - </FileRef> - <FileRef - location = "group:../macos/xcode/FluentUI.xcodeproj"> - </FileRef> -</Workspace> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Debug.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Debug.xcscheme deleted file mode 100644 index 78112a7509..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Debug.xcscheme +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96BA2295E8D60006561F" - BuildableName = "FluentUIUnitTests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Debug" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Debug" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Debug.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Debug.xcscheme deleted file mode 100644 index 676fe5825a..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Debug.xcscheme +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96BA2295E8D60006561F" - BuildableName = "FluentUIUnitTests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Debug" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Debug" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Ship.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Ship.xcscheme deleted file mode 100644 index 460223a39b..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Mac Ship.xcscheme +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96BA2295E8D60006561F" - BuildableName = "FluentUIUnitTests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Release"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Ship.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Ship.xcscheme deleted file mode 100644 index ccdf8a91ad..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All Ship.xcscheme +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96BA2295E8D60006561F" - BuildableName = "FluentUIUnitTests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../macos/xcode/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Release"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Debug.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Debug.xcscheme deleted file mode 100644 index 59cabe0b2a..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Debug.xcscheme +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Debug" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Debug" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Ship.xcscheme b/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Ship.xcscheme deleted file mode 100644 index 56e44e4965..0000000000 --- a/apple/FluentUI-All.xcworkspace/xcshareddata/xcschemes/Build All iOS Ship.xcscheme +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1310" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../ios/FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Release"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> From 411c8c5ec0995a08efb72dc7b7620e009803bf13 Mon Sep 17 00:00:00 2001 From: cbowdoin <81586105+cbowdoin@users.noreply.github.com> Date: Fri, 26 Jul 2024 14:56:52 -0700 Subject: [PATCH 60/90] Added delegate method to allow consumers to preform an action when the user starts panning the sheet (#2077) --- ios/FluentUI/Bottom Sheet/BottomSheetController.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift index 912ec3bb29..1e22a107e1 100644 --- a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift +++ b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift @@ -32,6 +32,13 @@ public protocol BottomSheetControllerDelegate: AnyObject { /// Called when `collapsedHeightInSafeArea` changes. @objc optional func bottomSheetControllerCollapsedHeightInSafeAreaDidChange(_ bottomSheetController: BottomSheetController) + + /// Called when the user initiates the pan gesture + /// + /// - Parameters: + /// - bottomSheetController: The caller object. + /// - expansionState: The expansion state that the sheet moved from + @objc optional func bottomSheetStartedPan(_ bottomSheetController: BottomSheetController, from expansionState: BottomSheetExpansionState) } /// Interactions that can trigger a state change. @@ -765,6 +772,7 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr switch sender.state { case .began: completeAnimationsIfNeeded() + delegate?.bottomSheetStartedPan?(self, from: currentExpansionState) currentExpansionState = .transitioning fallthrough case .changed: From 2d3a03baeedf1ebaefa0a3699f0d3909d4090ba8 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Sat, 27 Jul 2024 10:50:48 -0700 Subject: [PATCH 61/90] Fix bottom commanding bug where dimming view is still accessible when collapsed (#2072) * Revert "Calculate Bottom Commanding header height instead of using constant (#2041)" This reverts commit d298dacb9dc28cb71fc5ebee1fde5902837a6312. * change headerTopMargin * set alpha explicitly if not transitioning --- .../BottomCommandingDemoController.swift | 3 +-- .../BottomCommandingController.swift | 19 ++++++++----------- .../BottomCommandingTokenSet.swift | 2 +- .../Bottom Sheet/BottomSheetController.swift | 12 ++++++++++++ 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift index 3c7e0a59be..7bdb66bb0c 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift @@ -46,8 +46,7 @@ class BottomCommandingDemoController: DemoController { private lazy var heroItems: [CommandingItem] = { return Array(1...25).map { - let title = ($0 == 4) ? "Two line item" : "Item" - let item = CommandingItem(title: title + String($0), image: homeImage, action: commandAction) + let item = CommandingItem(title: "Item " + String($0), image: homeImage, action: commandAction) item.selectedImage = homeSelectedImage item.isOn = ($0 % 3 == 1) item.isEnabled = ($0 % 2 == 1) diff --git a/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift b/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift index b66d3c4639..e30935751e 100644 --- a/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift +++ b/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift @@ -402,6 +402,7 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna headerView.addSubview(heroCommandStack) let sheetController = BottomSheetController(headerContentView: headerView, expandedContentView: makeSheetExpandedContent(with: tableView)) + sheetController.headerContentHeight = Constants.BottomSheet.headerHeight sheetController.hostedScrollView = tableView sheetController.isHidden = isHidden sheetController.shouldAlwaysFillWidth = sheetShouldAlwaysFillWidth @@ -533,7 +534,6 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna } else { tableView.tableHeaderView = nil } - calculateHeaderHeight() } private func reloadHeroCommandOverflowStack() { @@ -563,13 +563,6 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna } } - @discardableResult - private func calculateHeaderHeight() -> CGFloat { - let headerHeight = heroCommandStack.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height + BottomSheetController.resizingHandleHeight - bottomSheetController?.headerContentHeight = headerHeight - return headerHeight - } - private func updateAppearance() { guard isViewLoaded else { return @@ -927,10 +920,10 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna bottomSheetController.isExpandable = isExpandable let maxHeroItemHeight = heroCommandStack.arrangedSubviews.map { $0.intrinsicContentSize.height }.max() ?? Constants.defaultHeroButtonHeight - let headerHeightWithoutBottomWhitespace = BottomCommandingTokenSet.handleHeaderHeight + maxHeroItemHeight + let headerHeightWithoutBottomWhitespace = BottomCommandingTokenSet.headerTopMargin + maxHeroItemHeight // How much more whitespace is required at the bottom of the sheet header - let requiredBottomWhitespace = max(0, calculateHeaderHeight() - headerHeightWithoutBottomWhitespace) + let requiredBottomWhitespace = max(0, Constants.BottomSheet.headerHeight - headerHeightWithoutBottomWhitespace) // The safe area inset can fulfill some or all of our bottom whitespace requirement. // This is how much more we need, taking the inset into account. @@ -940,7 +933,7 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna let addedHeaderTopMargin = !isExpandable ? BottomSheetController.resizingHandleHeight : 0 - bottomSheetHeroStackTopConstraint?.constant = BottomCommandingTokenSet.handleHeaderHeight + addedHeaderTopMargin + bottomSheetHeroStackTopConstraint?.constant = BottomCommandingTokenSet.headerTopMargin + addedHeaderTopMargin let oldCollapsedContentHeight = bottomSheetController.collapsedContentHeight let newCollapsedContentHeight = headerHeightWithoutBottomWhitespace + reducedBottomWhitespace + addedHeaderTopMargin @@ -1125,6 +1118,10 @@ open class BottomCommandingController: UIViewController, TokenizedControlInterna static let moreButtonIcon: UIImage? = UIImage.staticImageNamed("more-24x24") static let moreButtonTitle: String = "CommandingBottomBar.More".localized } + + struct BottomSheet { + static let headerHeight: CGFloat = 66 + } } } diff --git a/ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift b/ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift index 8c0ee59c85..239bd52ecc 100644 --- a/ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift +++ b/ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift @@ -97,5 +97,5 @@ extension BottomCommandingTokenSet { static let tabVerticalPadding: CGFloat = GlobalTokens.spacing(.size80) static let tabHorizontalPadding: CGFloat = GlobalTokens.spacing(.size160) static let strokeWidth: CGFloat = GlobalTokens.stroke(.width05) - static let handleHeaderHeight: CGFloat = GlobalTokens.spacing(.size120) + static let headerTopMargin: CGFloat = GlobalTokens.spacing(.size60) } diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift index 1e22a107e1..4a44a353cb 100644 --- a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift +++ b/ios/FluentUI/Bottom Sheet/BottomSheetController.swift @@ -740,6 +740,15 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr targetAlpha = abs(currentOffset - lowestUndimmedOffset) / (lowestUndimmedOffset - highestDimmedOffset) } } + + if currentExpansionState != .transitioning { + // In the case that there has been a floating point precision error and + // targetAlpha is a value very close to 0 or 1, set it explicitly + if targetAlpha != 0 || targetAlpha != 1 { + targetAlpha = currentExpansionState == .expanded ? 1 : 0 + } + } + dimmingView.alpha = targetAlpha } @@ -1051,6 +1060,9 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr bottomSheetView.isHidden = targetExpansionState == .hidden + updateDimmingViewAlpha() + updateDimmingViewAccessibility() + // UIKit doesn't properly handle interrupted constraint animations, so we need to // detect and fix a possible desync here updateSheetLayoutGuideTopConstraint() From 6360f50260ca5b2e388007e473a44c0d8371c0ae Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Mon, 29 Jul 2024 12:36:08 -0700 Subject: [PATCH 62/90] Fix anchor and index path of ObjC popup demo (#2078) --- .../FluentUI.Demo/Demos/PopupMenuObjCDemoController.m | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m index 14f3cb6b12..575d5eed2e 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m @@ -12,7 +12,7 @@ - (instancetype)init { self = [super init]; if (self != nil) { - _selectedCityIndex = [[NSIndexPath alloc] initWithIndex:0]; + _selectedCityIndex = [NSIndexPath indexPathForItem:2 inSection:1]; } return self; } @@ -21,7 +21,7 @@ - (void)loadView { [super loadView]; MSFButton *demoButton = [[MSFButton alloc] initWithStyle:MSFButtonStyleOutlineAccent]; [demoButton setTitle:@"Show PopupMenu" forState:UIControlStateNormal]; - [demoButton addTarget:self action:@selector(showPopupMenu) forControlEvents:UIControlEventTouchUpInside]; + [demoButton addTarget:self action:@selector(showPopupMenu:) forControlEvents:UIControlEventTouchUpInside]; UIStackView *stack = [[UIStackView alloc] initWithArrangedSubviews:@[demoButton]]; [stack setAlignment:UIStackViewAlignmentTop]; @@ -41,7 +41,7 @@ - (void)loadView { ]]; } -- (void)showPopupMenu { +- (void)showPopupMenu:(id)sender { MSFPopupMenuItem *montreal = [[MSFPopupMenuItem alloc] initWithImageName:@"Montreal" generateSelectedImage:NO title:@"Montréal" @@ -112,9 +112,8 @@ - (void)showPopupMenu { items:@[montreal, toronto, vancouver]]; MSFPopupMenuSection *unitedStates = [[MSFPopupMenuSection alloc] initWithTitle:@"United States" items:@[lasVegas, phoenix, sanFrancisco, seattle]]; - UIView *source = [self view]; - MSFPopupMenuController *popupMenu = [[MSFPopupMenuController alloc] initWithSourceView:source - sourceRect:[source bounds] + MSFPopupMenuController *popupMenu = [[MSFPopupMenuController alloc] initWithSourceView:sender + sourceRect:[sender bounds] presentationOrigin:-1 presentationDirection:MSFDrawerPresentationDirectionDown preferredMaximumHeight:-1]; From 224dab9f3be4a5a8f4f3dd26b280d1ed5f0e9692 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:14:31 -0700 Subject: [PATCH 63/90] Add disabled trait to tab bar item view (#2079) * add tab bar item disabled trait * check if isEnabled changed --- ios/FluentUI/Tab Bar/TabBarItemView.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ios/FluentUI/Tab Bar/TabBarItemView.swift b/ios/FluentUI/Tab Bar/TabBarItemView.swift index f095c1dcbe..b66e1ddb9a 100644 --- a/ios/FluentUI/Tab Bar/TabBarItemView.swift +++ b/ios/FluentUI/Tab Bar/TabBarItemView.swift @@ -19,8 +19,15 @@ class TabBarItemView: UIControl, TokenizedControlInternal { override var isEnabled: Bool { didSet { - isUserInteractionEnabled = isEnabled - updateColors() + if isEnabled != oldValue { + isUserInteractionEnabled = isEnabled + if isEnabled { + accessibilityTraits.remove(.notEnabled) + } else { + accessibilityTraits.insert(.notEnabled) + } + updateColors() + } } } From 2421cf4920855b736ca51dfa6d045ee7a2571867 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Fri, 2 Aug 2024 18:21:30 -0700 Subject: [PATCH 64/90] New Avatar API: `hasBackgroundOutline` (#2081) * New Avatar API: `hasBackgroundOutline` * Use outer ring instead of inner --- .../Demos/AvatarDemoController.swift | 32 ++++----- .../Demos/AvatarDemoController_SwiftUI.swift | 8 +-- .../Demos/AvatarGroupDemoController.swift | 69 ++++++++++++++----- .../AvatarGroupDemoController_SwiftUI.swift | 8 ++- ios/FluentUI/Avatar/Avatar.swift | 23 +++++-- ios/FluentUI/Avatar/AvatarModifiers.swift | 8 +++ ios/FluentUI/AvatarGroup/AvatarGroup.swift | 14 +++- 7 files changed, 116 insertions(+), 46 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift index f3993bb0cc..a749d8a58d 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift @@ -54,7 +54,7 @@ class AvatarDemoController: DemoTableViewController { .presence, .activity, .ringInnerGap, - .transparency, + .backgroundOutline, .defaultImage: guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { return UITableViewCell() @@ -277,11 +277,11 @@ class AvatarDemoController: DemoTableViewController { } } - private var isTransparent: Bool = true { + private var hasBackgroundOutline: Bool = false { didSet { - if oldValue != isTransparent { + if oldValue != hasBackgroundOutline { allDemoAvatarsCombined.forEach { avatar in - avatar.state.isTransparent = isTransparent + avatar.state.hasBackgroundOutline = hasBackgroundOutline } } } @@ -406,8 +406,8 @@ class AvatarDemoController: DemoTableViewController { return self.isShowingRings case .ringInnerGap: return self.isShowingRingInnerGap - case .transparency: - return self.isTransparent + case .backgroundOutline: + return self.hasBackgroundOutline case .defaultImage: return self.useCustomDefaultImage } @@ -444,8 +444,8 @@ class AvatarDemoController: DemoTableViewController { self.isShowingRings = isOn case .ringInnerGap: self.isShowingRingInnerGap = isOn - case .transparency: - self.isTransparent = isOn + case .backgroundOutline: + self.hasBackgroundOutline = isOn case .defaultImage: self.useCustomDefaultImage = isOn } @@ -518,7 +518,7 @@ class AvatarDemoController: DemoTableViewController { return [.animating, .alternateBackground, .pointerInteraction, - .transparency, + .backgroundOutline, .presence, .activity, .outOfOffice, @@ -566,7 +566,7 @@ class AvatarDemoController: DemoTableViewController { case ring case ringInnerGap case swiftUIDemo - case transparency + case backgroundOutline case defaultImage var isDemoRow: Bool { @@ -591,7 +591,7 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency, + .backgroundOutline, .defaultImage: return false } @@ -620,7 +620,7 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency, + .backgroundOutline, .defaultImage: return nil } @@ -651,7 +651,7 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency, + .backgroundOutline, .defaultImage: return nil } @@ -684,7 +684,7 @@ class AvatarDemoController: DemoTableViewController { .ring, .ringInnerGap, .swiftUIDemo, - .transparency, + .backgroundOutline, .defaultImage: preconditionFailure("Row does not have an associated avatar style") } @@ -730,8 +730,8 @@ class AvatarDemoController: DemoTableViewController { return "Set ring inner gap" case .swiftUIDemo: return "SwiftUI Demo" - case .transparency: - return "Use transparency" + case .backgroundOutline: + return "Use background outline" case .defaultImage: return "Use custom default image" } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift index 48732a2acd..18b97f2a7d 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift @@ -36,7 +36,7 @@ struct AvatarDemoView: View { @State var isAnimated: Bool = true @State var isOutOfOffice: Bool = false @State var isRingVisible: Bool = true - @State var isTransparent: Bool = true + @State var hasBackgroundOutline: Bool = false @State var hasPointerInteraction: Bool = false @State var hasRingInnerGap: Bool = true @State var primaryText: String = "Kat Larsson" @@ -66,11 +66,11 @@ struct AvatarDemoView: View { image: showImage ? UIImage(named: "avatar_kat_larsson") : nil, primaryText: primaryText, secondaryText: secondaryText) - .isRingVisible(showImageBasedRingColor || isRingVisible) + .isRingVisible(isRingVisible) .hasRingInnerGap(hasRingInnerGap) .imageBasedRingColor(showImageBasedRingColor ? AvatarDemoController.colorfulCustomImage : nil) .defaultImage(defaultImage) - .isTransparent(isTransparent) + .hasBackgroundOutline(hasBackgroundOutline) .presence(presence) .activity(activityStyle, showActivityImage ? (activityStyle == .circle ? UIImage(named: "thumbs_up_3d_default") : UIImage(named: "excelIcon")) : nil) .isOutOfOffice(isOutOfOffice) @@ -101,7 +101,7 @@ struct AvatarDemoView: View { FluentUIDemoToggle(titleKey: "Set image", isOn: $showImage) FluentUIDemoToggle(titleKey: "Set alternate background", isOn: $useAlternateBackground) - FluentUIDemoToggle(titleKey: "Transparency", isOn: $isTransparent) + FluentUIDemoToggle(titleKey: "Has background border", isOn: $hasBackgroundOutline) FluentUIDemoToggle(titleKey: "iPad Pointer interaction", isOn: $hasPointerInteraction) FluentUIDemoToggle(titleKey: "Animate transitions", isOn: $isAnimated) FluentUIDemoToggle(titleKey: "Use custom default image", isOn: $useCustomDefaultImage) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift index 4f5d845d51..d68d5f71ea 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift @@ -71,28 +71,15 @@ class AvatarGroupDemoController: DemoTableViewController { return cell - case .alternateBackground: + case .alternateBackground, .customRingColor, .hasBackgroundOutline: guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { return UITableViewCell() } - cell.setup(title: row.title, isOn: self.isUsingAlternateBackgroundColor) + cell.setup(title: row.title, isOn: row.booleanValue(self)) cell.titleNumberOfLines = 0 cell.onValueChanged = { [weak self, weak cell] in - self?.isUsingAlternateBackgroundColor = cell?.isOn ?? true - } - - return cell - - case .customRingColor: - guard let cell = tableView.dequeueReusableCell(withIdentifier: BooleanCell.identifier) as? BooleanCell else { - return UITableViewCell() - } - - cell.setup(title: row.title, isOn: self.isUsingImageBasedCustomColor) - cell.titleNumberOfLines = 0 - cell.onValueChanged = { [weak self, weak cell] in - self?.isUsingImageBasedCustomColor = cell?.isOn ?? true + row.setBooleanValue(self, cell?.isOn ?? true) } return cell @@ -168,7 +155,7 @@ class AvatarGroupDemoController: DemoTableViewController { cell.contentView.trailingAnchor.constraint(equalTo: avatarGroupView.trailingAnchor, constant: 20) ]) - cell.backgroundConfiguration?.backgroundColor = self.isUsingAlternateBackgroundColor ? TableViewCell.tableCellBackgroundSelectedColor : TableViewCell.tableCellBackgroundColor + cell.backgroundColor = self.isUsingAlternateBackgroundColor ? TableViewCell.tableCellBackgroundSelectedColor : TableViewCell.tableCellBackgroundColor return cell } @@ -272,6 +259,7 @@ class AvatarGroupDemoController: DemoTableViewController { return [.avatarCount, .alternateBackground, .customRingColor, + .hasBackgroundOutline, .maxDisplayedAvatars, .overflow] case .avatarStackNoActivityRing, @@ -303,6 +291,7 @@ class AvatarGroupDemoController: DemoTableViewController { case avatarCount case alternateBackground case customRingColor + case hasBackgroundOutline case maxDisplayedAvatars case overflow case titleSize72 @@ -340,6 +329,7 @@ class AvatarGroupDemoController: DemoTableViewController { .avatarCount, .alternateBackground, .customRingColor, + .hasBackgroundOutline, .maxDisplayedAvatars, .overflow, .swiftUIDemo: @@ -373,6 +363,7 @@ class AvatarGroupDemoController: DemoTableViewController { .avatarCount, .alternateBackground, .customRingColor, + .hasBackgroundOutline, .maxDisplayedAvatars, .overflow, .swiftUIDemo: @@ -390,7 +381,9 @@ class AvatarGroupDemoController: DemoTableViewController { return "Use alternate background color" case .customRingColor: return "Use image based custom ring color" - case.maxDisplayedAvatars: + case .hasBackgroundOutline: + return "Has background outline" + case .maxDisplayedAvatars: return "Max displayed avatars" case .overflow: return "Overflow count" @@ -418,6 +411,38 @@ class AvatarGroupDemoController: DemoTableViewController { preconditionFailure("Row should not have title") } } + + func booleanValue(_ controller: AvatarGroupDemoController?) -> Bool { + guard let controller else { + return false + } + switch self { + case .alternateBackground: + return controller.isUsingAlternateBackgroundColor + case .customRingColor: + return controller.isUsingImageBasedCustomColor + case .hasBackgroundOutline: + return controller.isUsingBackgroundOutline + default: + assertionFailure("Cannot get boolean value for non-boolean row") + return false + } + } + + func setBooleanValue(_ controller: AvatarGroupDemoController?, _ value: Bool) { + switch self { + case .alternateBackground: + controller?.isUsingAlternateBackgroundColor = value + case .customRingColor: + controller?.isUsingImageBasedCustomColor = value + case .hasBackgroundOutline: + controller?.isUsingBackgroundOutline = value + default: + assertionFailure("Cannot set boolean value for non-boolean row") + return + } + } + } private var maxDisplayedAvatars: Int = 3 { @@ -581,6 +606,14 @@ class AvatarGroupDemoController: DemoTableViewController { } } + private var isUsingBackgroundOutline: Bool = false { + didSet { + for group in allDemoAvatarGroupsCombined { + group.state.hasBackgroundOutline = isUsingBackgroundOutline + } + } + } + private func updateAvatarsCustomRingColor(for range: Range<Int>) { for group in allDemoAvatarGroupsCombined { for index in range { diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift index 066c7417f3..e8d5478efb 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift @@ -29,16 +29,18 @@ struct AvatarGroupDemoView: View { @Environment(\.fluentTheme) var fluentTheme: FluentTheme - @State var useAlternateBackground: Bool = false + @State var useAlternateBackground: Bool = true // Avatar settings @State var isRingVisible: Bool = false @State var showImage: Bool = true @State var showImageBasedRingColor: Bool = false + @State var hasRingInnerGap: Bool = true // AvatarGroup settings @State var maxDisplayedAvatars: Int = startingMaxDisplayedAvatars @State var overflowCount: Int = 0 + @State var hasBackgroundOutline: Bool = false @State var isUnread: Bool = false @State var size: MSFAvatarSize = AvatarGroupDemoView.defaultSize @State var style: MSFAvatarGroupStyle = .stack @@ -53,6 +55,7 @@ struct AvatarGroupDemoView: View { primaryText: samplePersona.name, secondaryText: samplePersona.email) .isRingVisible(isRingVisible) + .hasRingInnerGap(hasRingInnerGap) .imageBasedRingColor(showImageBasedRingColor ? AvatarDemoController.colorfulCustomImage : nil) } @@ -65,6 +68,7 @@ struct AvatarGroupDemoView: View { avatarCount: avatarCount, maxDisplayedAvatars: maxDisplayedAvatars, overflowCount: overflowCount, + hasBackgroundOutline: hasBackgroundOutline, isUnread: isUnread) { index in avatarFromSamplePersona(index) }.fixedSize() @@ -76,6 +80,7 @@ struct AvatarGroupDemoView: View { Stepper("Avatar Count: \(avatarCount)", value: $avatarCount, in: (0...Int.max)) Stepper("Max Displayed Avatars: \(maxDisplayedAvatars)", value: $maxDisplayedAvatars) Stepper("Overflow Count: \(overflowCount)", value: $overflowCount) + Toggle("Has Background Outline", isOn: $hasBackgroundOutline) Toggle("Show Avatar Images", isOn: $showImage) Toggle("Unread Dot", isOn: $isUnread) Toggle("Alternate Background", isOn: $useAlternateBackground) @@ -84,6 +89,7 @@ struct AvatarGroupDemoView: View { FluentListSection("Ring") { Toggle("Ring Visible", isOn: $isRingVisible) Toggle("Image Based Ring Color", isOn: $showImageBasedRingColor) + Toggle("Has Ring Inner Gap", isOn: $hasRingInnerGap) } FluentListSection("Style") { diff --git a/ios/FluentUI/Avatar/Avatar.swift b/ios/FluentUI/Avatar/Avatar.swift index 30dfc071e0..f6dd371680 100644 --- a/ios/FluentUI/Avatar/Avatar.swift +++ b/ios/FluentUI/Avatar/Avatar.swift @@ -49,8 +49,13 @@ import SwiftUI /// Sets the transparency of the avatar elements (inner and outer ring gaps, presence, and activity icon outline). /// Uses the solid default background color if set to false. + @available(iOS, deprecated, message: "Transparency is deprecated, and will default to `false`. This property will be removed in a future version of Fluent.") var isTransparent: Bool { get set } + /// Whether a background-colored outline should be drawn behind the avatar. + /// Uses the solid default background color if set to true. + var hasBackgroundOutline: Bool { get set } + /// Defines the presence displayed by the Avatar. /// Image displayed depends on the value of the isOutOfOffice property. /// Presence is not displayed in `.size16`. @@ -134,6 +139,7 @@ public struct Avatar: View, TokenizedControlView, Equatable { let cornerRadius = shouldDisplayActivity ? (activityStyle == .square ? AvatarTokenSet.activityIconRadius(size) : .infinity) : .infinity let isRingVisible = state.isRingVisible let hasRingInnerGap = state.hasRingInnerGap + let hasBackgroundOutline = state.hasBackgroundOutline let ringThicknessToken: CGFloat = tokenSet[.ringThickness].float let accessoryBorderThicknessToken: CGFloat = tokenSet[.borderThickness].float let accessoryBorderColorToken: UIColor = tokenSet[.borderColor].uiColor @@ -145,7 +151,7 @@ public struct Avatar: View, TokenizedControlView, Equatable { let ringInnerGapOffset = 0.5 let ringInnerGap: CGFloat = isRingVisible ? (hasRingInnerGap ? tokenSet[.ringInnerGap].float : -ringInnerGapOffset) : 0 let ringThickness: CGFloat = isRingVisible ? (hasRingInnerGap ? ringThicknessToken : ringThicknessToken + ringInnerGapOffset) : 0 - let ringOuterGap: CGFloat = isRingVisible ? tokenSet[.ringOuterGap].float : 0 + let ringOuterGap: CGFloat = (isRingVisible || hasBackgroundOutline) ? tokenSet[.ringOuterGap].float : 0 let totalRingGap: CGFloat = ringInnerGap + ringThickness + ringOuterGap let avatarImageSize: CGFloat = contentSize let ringInnerGapSize: CGFloat = avatarImageSize + (ringInnerGap * 2) @@ -161,10 +167,14 @@ public struct Avatar: View, TokenizedControlView, Equatable { !shouldUseCalculatedColors ? tokenSet[.backgroundDefaultColor].uiColor : CalculatedColors.backgroundColor(hashCode: colorHashCode)) let ringGapColor = Color(tokenSet[.ringGapColor].uiColor).opacity(isTransparent ? 0 : 1) - let ringColor = !isRingVisible ? Color.clear : - Color(state.ringColor ?? ( !shouldUseCalculatedColors ? - tokenSet[.ringDefaultColor].uiColor : - CalculatedColors.ringColor(hashCode: colorHashCode))) + let ringColor = ( !isRingVisible ? + Color.clear : + Color(state.ringColor ?? ( !shouldUseCalculatedColors ? + tokenSet[.ringDefaultColor].uiColor : + CalculatedColors.ringColor(hashCode: colorHashCode) + ) + ) + ) let avatarImageInfo: (image: UIImage?, renderingMode: Image.TemplateRenderingMode) = { if shouldUseDefaultImage { @@ -567,7 +577,8 @@ class MSFAvatarStateImpl: ControlState, MSFAvatarState { @Published var isAnimated: Bool = true @Published var isOutOfOffice: Bool = false @Published var isRingVisible: Bool = false - @Published var isTransparent: Bool = true + @Published var isTransparent: Bool = false + @Published var hasBackgroundOutline: Bool = false @Published var presence: MSFAvatarPresence = .none @Published var activityStyle: MSFAvatarActivityStyle = .none @Published var activityImage: UIImage? diff --git a/ios/FluentUI/Avatar/AvatarModifiers.swift b/ios/FluentUI/Avatar/AvatarModifiers.swift index d4f5368aa9..65aa586a2d 100644 --- a/ios/FluentUI/Avatar/AvatarModifiers.swift +++ b/ios/FluentUI/Avatar/AvatarModifiers.swift @@ -50,6 +50,14 @@ public extension Avatar { return self } + /// Whether the avatar should draw an outline using a background color. + /// - Parameter hasBackgroundOutline: Boolean value to set the property. + /// - Returns: The modified Avatar with the property set. + func hasBackgroundOutline(_ hasBackgroundOutline: Bool) -> Avatar { + state.hasBackgroundOutline = hasBackgroundOutline + return self + } + /// An override for the template icon to use when there is no set image or name. /// - Parameter defaultImage: Image to be used as the Avatar's default image. /// - Returns: The modified Avatar with the property set. diff --git a/ios/FluentUI/AvatarGroup/AvatarGroup.swift b/ios/FluentUI/AvatarGroup/AvatarGroup.swift index 9077fd6ef4..3a54343625 100644 --- a/ios/FluentUI/AvatarGroup/AvatarGroup.swift +++ b/ios/FluentUI/AvatarGroup/AvatarGroup.swift @@ -16,6 +16,9 @@ import SwiftUI /// items than just the remainder of the avatars that could not be displayed due to the maxDisplayedAvatars property. var overflowCount: Int { get set } + /// Whether a background-colored outline should be drawn behind all Avatars, including the overflow. + var hasBackgroundOutline: Bool { get set } + /// Show a top-trailing aligned unread dot when set to true. var isUnread: Bool { get set } @@ -103,6 +106,7 @@ public struct AvatarGroup: View, TokenizedControlView { /// - maxDisplayedAvatars: Caps the number of displayed avatars and shows the remaining not displayed in the overflow avatar. /// - overflowCount: Adds to the overflow count in case the calling code did not provide all the avatars, but still wants to convey more /// items than just the remainder of the avatars that could not be displayed due to the maxDisplayedAvatars property. + /// - hasBackgroundOutline: Whether a background-colored outline should be drawn behind all Avatars, including the overflow. /// - isUnread: Show a top-trailing aligned unread dot when set to true. /// - avatarBuilder: A ViewBuilder that creates an `Avatar` for a given index. public init(style: MSFAvatarGroupStyle, @@ -110,6 +114,7 @@ public struct AvatarGroup: View, TokenizedControlView { avatarCount: Int = 0, maxDisplayedAvatars: Int = Int.max, overflowCount: Int = 0, + hasBackgroundOutline: Bool = false, isUnread: Bool = false, @ViewBuilder avatarBuilder: @escaping (_ index: Int) -> Avatar) { // Configure the avatars @@ -117,7 +122,7 @@ public struct AvatarGroup: View, TokenizedControlView { let avatar = avatarBuilder(index) avatar.state.size = size avatar.state.style = .default - avatar.state.isTransparent = false + avatar.state.hasBackgroundOutline = hasBackgroundOutline return avatar } @@ -126,6 +131,7 @@ public struct AvatarGroup: View, TokenizedControlView { state.avatars = avatars state.maxDisplayedAvatars = maxDisplayedAvatars state.overflowCount = overflowCount + state.hasBackgroundOutline = hasBackgroundOutline state.isUnread = isUnread self.state = state @@ -323,6 +329,7 @@ public struct AvatarGroup: View, TokenizedControlView { let state = MSFAvatarStateImpl(style: .overflow, size: state.size) state.primaryText = "\(count)" state.image = nil + state.hasBackgroundOutline = self.state.hasBackgroundOutline return Avatar(state) } } @@ -359,6 +366,11 @@ class MSFAvatarGroupStateImpl: ControlState, MSFAvatarGroupState { @Published var avatars: [Avatar] = [] @Published var maxDisplayedAvatars: Int = Int.max @Published var overflowCount: Int = 0 + @Published var hasBackgroundOutline: Bool = false { + didSet { + avatars.forEach { $0.state.hasBackgroundOutline = hasBackgroundOutline } + } + } @Published var isUnread: Bool = false @Published var style: MSFAvatarGroupStyle From d22f6c209a07ddb604d4c125fd831e0827290083 Mon Sep 17 00:00:00 2001 From: huanluu <141570826+huanluu@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:20:08 -0700 Subject: [PATCH 65/90] Add wide accessory view to ShyHeaderView (#2080) * Add wide accessory view to ShyHeaderView * change some text * minor change * PR feedback * Rename wideAccessoryView to secondaryAccessoryView * Rename wideContentStackView to secondaryContentStackView --------- Co-authored-by: Huan Lu <huanlu@microsoft.com> --- .../NavigationControllerDemoController.swift | 32 ++++++++ .../Shy Header/ShyHeaderController.swift | 11 ++- .../Navigation/Shy Header/ShyHeaderView.swift | 74 ++++++++++++++++++- .../UINavigationItem+Navigation.swift | 13 ++++ 4 files changed, 126 insertions(+), 4 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift index 8a79d2fae9..e670a9263e 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift @@ -15,6 +15,7 @@ class NavigationControllerDemoController: DemoController { addTitle(text: "Large Title with Primary style") container.addArrangedSubview(createButton(title: "Show without accessory", action: #selector(showLargeTitle))) container.addArrangedSubview(createButton(title: "Show with collapsible search bar", action: #selector(showLargeTitleWithShyAccessory))) + container.addArrangedSubview(createButton(title: "Show with collapsible search bar and pill segmented control", action: #selector(showLargeTitleWithShyAccessoryAndSecondaryAccessory))) container.addArrangedSubview(createButton(title: "Show with fixed search bar", action: #selector(showLargeTitleWithFixedAccessory))) container.addArrangedSubview(createButton(title: "Show without an avatar", action: #selector(showLargeTitleWithoutAvatar))) container.addArrangedSubview(createButton(title: "Show with a custom leading button", action: #selector(showLargeTitleWithCustomLeadingButton))) @@ -56,6 +57,9 @@ class NavigationControllerDemoController: DemoController { addTitle(text: "Top Accessory View") container.addArrangedSubview(createButton(title: "Show with top search bar for large screen width", action: #selector(showWithTopSearchBar))) + addTitle(text: "Top Accessory View with shy wide accessory view") + container.addArrangedSubview(createButton(title: "Show with top search bar for large screen width with a shy pill segment control", action: #selector(showWithTopSearchBarWithShySecondaryAccessoryView))) + addTitle(text: "Change Style Periodically") container.addArrangedSubview(createButton(title: "Change the style every second", action: #selector(showSearchChangingStyleEverySecond))) } @@ -87,6 +91,10 @@ class NavigationControllerDemoController: DemoController { presentController(withTitleStyle: .largeLeading, accessoryView: createAccessoryView(), contractNavigationBarOnScroll: true) } + @objc func showLargeTitleWithShyAccessoryAndSecondaryAccessory() { + presentController(withTitleStyle: .largeLeading, accessoryView: createAccessoryView(), secondaryAccessoryView: createSecondaryAccessoryView(), contractNavigationBarOnScroll: true) + } + @objc func showLargeTitleWithFixedAccessory() { presentController(withTitleStyle: .largeLeading, accessoryView: createAccessoryView(), contractNavigationBarOnScroll: false) } @@ -189,6 +197,10 @@ class NavigationControllerDemoController: DemoController { presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), showsTopAccessory: true, contractNavigationBarOnScroll: false) } + @objc func showWithTopSearchBarWithShySecondaryAccessoryView() { + presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), secondaryAccessoryView: createSecondaryAccessoryView(), showsTopAccessory: true, contractNavigationBarOnScroll: true) + } + @objc func showSearchChangingStyleEverySecond() { presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), showsTopAccessory: true, contractNavigationBarOnScroll: false, updateStylePeriodically: true) } @@ -207,6 +219,7 @@ class NavigationControllerDemoController: DemoController { subtitle: String? = nil, style: NavigationBar.Style = .primary, accessoryView: UIView? = nil, + secondaryAccessoryView: UIView? = nil, showsTopAccessory: Bool = false, contractNavigationBarOnScroll: Bool = true, showShadow: Bool = true, @@ -219,6 +232,7 @@ class NavigationControllerDemoController: DemoController { content.navigationItem.navigationBarStyle = style content.navigationItem.navigationBarShadow = showShadow ? .automatic : .alwaysHidden content.navigationItem.accessoryView = accessoryView + content.navigationItem.secondaryAccessoryView = secondaryAccessoryView content.navigationItem.topAccessoryViewAttributes = NavigationBarTopSearchBarAttributes() content.navigationItem.contentScrollView = contractNavigationBarOnScroll ? content.tableView : nil content.showsTopAccessoryView = showsTopAccessory @@ -295,6 +309,16 @@ class NavigationControllerDemoController: DemoController { return searchBar } + private func createSecondaryAccessoryView() -> UIView { + let segmentControl = createSegmentedControl(compatibleWith: .system) + let stackView = UIStackView() + stackView.addArrangedSubview(segmentControl) + stackView.layoutMargins = UIEdgeInsets(top: 10, left: 16, bottom: 10, right: 16) + stackView.isLayoutMarginsRelativeArrangement = true + stackView.backgroundColor = view.fluentTheme.color(.background1) + return stackView + } + private func createSegmentedControl(compatibleWith style: NavigationBar.Style) -> UIView { let segmentItems: [SegmentItem] = [ SegmentItem(title: "First"), @@ -481,6 +505,7 @@ class RootViewController: UIViewController, UITableViewDataSource, UITableViewDe } var showsTopAccessoryView: Bool = false + var secondaryAccessoryView: UIView? var personaData: PersonaData = { let personaData = PersonaData(name: "Kat Larsson", image: UIImage(named: "avatar_kat_larsson")) @@ -835,6 +860,10 @@ class RootViewController: UIViewController, UITableViewDataSource, UITableViewDe extension RootViewController: SearchBarDelegate { func searchBarDidBeginEditing(_ searchBar: SearchBar) { searchBar.progressSpinner.state.isAnimating = false + if navigationItem.secondaryAccessoryView != nil && !showsTopAccessoryView { + secondaryAccessoryView = navigationItem.secondaryAccessoryView + navigationItem.secondaryAccessoryView = nil + } } func searchBar(_ searchBar: SearchBar, didUpdateSearchText newSearchText: String?) { @@ -842,6 +871,9 @@ extension RootViewController: SearchBarDelegate { func searchBarDidCancel(_ searchBar: SearchBar) { searchBar.progressSpinner.state.isAnimating = false + if secondaryAccessoryView != nil && !showsTopAccessoryView { + navigationItem.secondaryAccessoryView = secondaryAccessoryView + } } func searchBarDidRequestSearch(_ searchBar: SearchBar) { diff --git a/ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift b/ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift index b64b8b892a..36f75ddc27 100644 --- a/ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift +++ b/ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift @@ -45,6 +45,7 @@ class ShyHeaderController: UIViewController { } private var accessoryViewObservation: NSKeyValueObservation? + private var secondaryAccessoryViewObservation: NSKeyValueObservation? private var navigationBarCenterObservation: NSKeyValueObservation? private var navigationBarStyleObservation: NSKeyValueObservation? @@ -101,6 +102,10 @@ class ShyHeaderController: UIViewController { accessoryViewObservation = contentViewController.navigationItem.observe(\UINavigationItem.accessoryView) { [weak self] item, _ in self?.shyHeaderView.accessoryView = item.accessoryView } + + secondaryAccessoryViewObservation = contentViewController.navigationItem.observe(\UINavigationItem.secondaryAccessoryView) { [weak self] item, _ in + self?.shyHeaderView.secondaryAccessoryView = item.secondaryAccessoryView + } } required init?(coder aDecoder: NSCoder) { @@ -211,8 +216,10 @@ class ShyHeaderController: UIViewController { } private func setupShyHeaderView() { - shyHeaderView.accessoryView = contentViewController.navigationItem.accessoryView - shyHeaderView.navigationBarShadow = contentViewController.navigationItem.navigationBarShadow + let navigationItem = contentViewController.navigationItem + shyHeaderView.accessoryView = navigationItem.accessoryView + shyHeaderView.secondaryAccessoryView = navigationItem.secondaryAccessoryView + shyHeaderView.navigationBarShadow = navigationItem.navigationBarShadow shyHeaderView.paddingView = paddingView shyHeaderView.parentController = self shyHeaderView.maxHeightChanged = { [weak self] in diff --git a/ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift b/ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift index 5b953b5160..55e9fcebe4 100644 --- a/ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift +++ b/ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift @@ -72,6 +72,7 @@ class ShyHeaderView: UIView, TokenizedControlInternal { tokenSet.registerOnUpdate(for: self) { [weak self] in self?.updateColors() } + self.initSecondaryContentStackView() } override func willMove(toWindow newWindow: UIWindow?) { @@ -125,6 +126,13 @@ class ShyHeaderView: UIView, TokenizedControlInternal { willSet { accessoryView?.removeFromSuperview() contentStackView.removeFromSuperview() + // When there is no accessoryView, the top anchor of the secondaryContentStackView should be equal to + // the top anchor of the parent view. + if let secondaryContentStackViewTopAnchorConstraint { + NSLayoutConstraint.activate([ + secondaryContentStackViewTopAnchorConstraint + ]) + } } didSet { if let newContentView = accessoryView { @@ -135,13 +143,39 @@ class ShyHeaderView: UIView, TokenizedControlInternal { } } - var maxHeight: CGFloat { + var secondaryAccessoryView: UIView? { + willSet { + secondaryAccessoryView?.removeFromSuperview() + } + didSet { + if let newContentView = secondaryAccessoryView { + secondaryContentStackView.addArrangedSubview(newContentView) + } + maxHeightChanged?() + } + } + + var accessoryViewHeight: CGFloat { if accessoryView == nil { return maxHeightNoAccessory } else { return contentTopInset + Constants.accessoryHeight + contentBottomInset } } + + var secondaryAccessoryViewHeight: CGFloat { + guard let secondaryAccessoryView else { + return 0.0 + } + + let secondaryAccessoryViewSize = secondaryAccessoryView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize) + return secondaryAccessoryViewSize.height + } + + var maxHeight: CGFloat { + return accessoryViewHeight + secondaryAccessoryViewHeight + } + private var maxHeightNoAccessory: CGFloat { if traitCollection.verticalSizeClass == .compact { return traitCollection.horizontalSizeClass == .compact ? Constants.maxHeightNoAccessoryCompact : Constants.maxHeightNoAccessoryCompactForLargePhone @@ -186,6 +220,9 @@ class ShyHeaderView: UIView, TokenizedControlInternal { } private let contentStackView = UIStackView() + private var contentStackViewHeightConstraint: NSLayoutConstraint? + private let secondaryContentStackView = UIStackView() + private var secondaryContentStackViewTopAnchorConstraint: NSLayoutConstraint? private let shadow = Separator() private var needsShadow: Bool { @@ -222,12 +259,45 @@ class ShyHeaderView: UIView, TokenizedControlInternal { private func initContentStackView() { contentStackView.isLayoutMarginsRelativeArrangement = true + contentStackView.translatesAutoresizingMaskIntoConstraints = false addSubview(contentStackView) - contentStackView.fitIntoSuperview(usingConstraints: true) + + // When there is a accessoryView, the top anchor of the secondaryContentStackView should be equal to + // the bottom anchor of contentStackView. + if let secondaryContentStackViewTopAnchorConstraint { + NSLayoutConstraint.deactivate([ + secondaryContentStackViewTopAnchorConstraint + ]) + } + + let heightConstraint = contentStackView.heightAnchor.constraint(equalToConstant: accessoryViewHeight) + contentStackViewHeightConstraint = heightConstraint + NSLayoutConstraint.activate([ + contentStackView.leadingAnchor.constraint(equalTo: leadingAnchor), + contentStackView.trailingAnchor.constraint(equalTo: trailingAnchor), + contentStackView.topAnchor.constraint(equalTo: topAnchor), + contentStackView.bottomAnchor.constraint(equalTo: secondaryContentStackView.topAnchor), + heightConstraint + ]) updateContentInsets() contentStackView.addInteraction(UILargeContentViewerInteraction()) } + private func initSecondaryContentStackView() { + secondaryContentStackView.translatesAutoresizingMaskIntoConstraints = false + addSubview(secondaryContentStackView) + let topAnchorConstraint = secondaryContentStackView.topAnchor.constraint(equalTo: topAnchor) + secondaryContentStackViewTopAnchorConstraint = topAnchorConstraint + NSLayoutConstraint.activate([ + secondaryContentStackView.leadingAnchor.constraint(equalTo: leadingAnchor), + secondaryContentStackView.trailingAnchor.constraint(equalTo: trailingAnchor), + topAnchorConstraint, + secondaryContentStackView.bottomAnchor.constraint(equalTo: bottomAnchor) + ]) + + secondaryContentStackView.addInteraction(UILargeContentViewerInteraction()) + } + private func initShadow() { let shadowView = shadow shadowView.translatesAutoresizingMaskIntoConstraints = false diff --git a/ios/FluentUI/Navigation/UINavigationItem+Navigation.swift b/ios/FluentUI/Navigation/UINavigationItem+Navigation.swift index f84fb3cde7..ba346097a1 100644 --- a/ios/FluentUI/Navigation/UINavigationItem+Navigation.swift +++ b/ios/FluentUI/Navigation/UINavigationItem+Navigation.swift @@ -8,6 +8,7 @@ import UIKit @objc public extension UINavigationItem { private struct AssociatedKeys { static var accessoryView: UInt8 = 0 + static var secondaryAccessoryView: UInt8 = 0 static var titleAccessory: UInt8 = 0 static var titleImage: UInt8 = 0 static var topAccessoryView: UInt8 = 0 @@ -31,6 +32,18 @@ import UIKit } } + /// An wide accessory view that can be shown as a subview of ShyHeaderView but doesn't have leading, trailing + /// and bottom insets. So it can appear as being part of the content view but still contract and expand as part of + /// the shy header. + var secondaryAccessoryView: UIView? { + get { + return objc_getAssociatedObject(self, &AssociatedKeys.secondaryAccessoryView) as? UIView + } + set { + objc_setAssociatedObject(self, &AssociatedKeys.secondaryAccessoryView, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } + /// Defines an accessory shown after the title or subtitle in a navigation bar. When defined, this gives the indication that the title can be tapped to show additional information. var titleAccessory: NavigationBarTitleAccessory? { get { From 1c237e3257a6f4fa49816e47000938e34b1fc733 Mon Sep 17 00:00:00 2001 From: Harrie Shin <hyshin@microsoft.com> Date: Mon, 12 Aug 2024 14:48:21 -0700 Subject: [PATCH 66/90] add objc initialization support for dynamic color (#2083) --- macos/FluentUI/DynamicColor/DynamicColor.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macos/FluentUI/DynamicColor/DynamicColor.swift b/macos/FluentUI/DynamicColor/DynamicColor.swift index 8ab4e0bc87..5ddc3fe27b 100644 --- a/macos/FluentUI/DynamicColor/DynamicColor.swift +++ b/macos/FluentUI/DynamicColor/DynamicColor.swift @@ -22,7 +22,7 @@ public class DynamicColor: NSObject { @objc public let light: NSColor @objc public let dark: NSColor - public init(light: NSColor, dark: NSColor) { + @objc public init(light: NSColor, dark: NSColor) { self.light = light self.dark = dark } From 9aac0a6c361128d39ea9a872de177b9d4acc550c Mon Sep 17 00:00:00 2001 From: Harrie Shin <hyshin@microsoft.com> Date: Fri, 16 Aug 2024 14:55:22 -0700 Subject: [PATCH 67/90] update to 0.30.0 fluent version (#2085) --- MicrosoftFluentUI.podspec | 2 +- ios/FluentUI.Demo/FluentUI.Demo/Info.plist | 4 ++-- ios/FluentUI.Resources/Info.plist | 4 ++-- macos/FluentUI/FluentUI-Info.plist | 4 ++-- macos/FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 5692d5d831..85c8235bb4 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.29.0' + s.version = '0.30.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist index 5127245bf9..6891e302eb 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist +++ b/ios/FluentUI.Demo/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.29.0</string> + <string>1.30.0</string> <key>CFBundleURLTypes</key> <array> <dict> @@ -26,7 +26,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>137.29.0</string> + <string>137.30.0</string> <key>LSRequiresIPhoneOS</key> <true/> <key>UIApplicationSceneManifest</key> diff --git a/ios/FluentUI.Resources/Info.plist b/ios/FluentUI.Resources/Info.plist index 51bb078176..ee978d11f8 100644 --- a/ios/FluentUI.Resources/Info.plist +++ b/ios/FluentUI.Resources/Info.plist @@ -13,8 +13,8 @@ <key>CFBundlePackageType</key> <string>BNDL</string> <key>CFBundleShortVersionString</key> - <string>0.29.0</string> + <string>0.30.0</string> <key>CFBundleVersion</key> - <string>0.29.0</string> + <string>0.30.0</string> </dict> </plist> diff --git a/macos/FluentUI/FluentUI-Info.plist b/macos/FluentUI/FluentUI-Info.plist index 4a1e7df621..72ffeddfc8 100644 --- a/macos/FluentUI/FluentUI-Info.plist +++ b/macos/FluentUI/FluentUI-Info.plist @@ -15,8 +15,8 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>0.29.0</string> + <string>0.30.0</string> <key>CFBundleVersion</key> - <string>0.29.0</string> + <string>0.30.0</string> </dict> </plist> diff --git a/macos/FluentUITestApp/FluentUITestApp-Info.plist b/macos/FluentUITestApp/FluentUITestApp-Info.plist index 127c275e80..0b24bfd9c2 100644 --- a/macos/FluentUITestApp/FluentUITestApp-Info.plist +++ b/macos/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.29.0</string> + <string>0.30.0</string> <key>CFBundleVersion</key> - <string>62.29.0</string> + <string>62.30.0</string> <key>LSApplicationCategoryType</key> <string>public.app-category.developer-tools</string> <key>LSMinimumSystemVersion</key> From 35c81c1fef92275c4bf1e90ae7eebe193430d847 Mon Sep 17 00:00:00 2001 From: Harry <foreverqh1175@gmail.com> Date: Thu, 22 Aug 2024 21:13:46 +0800 Subject: [PATCH 68/90] [iOS] Add `sourceItem` as the anchor option to Drawer for the popover presenting style (#2084) * update * Refine --------- Co-authored-by: Harry Qian <heqia@microsoft.com> --- ios/FluentUI/Drawer/DrawerController.swift | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/ios/FluentUI/Drawer/DrawerController.swift b/ios/FluentUI/Drawer/DrawerController.swift index fbc93401aa..3d789a2b45 100644 --- a/ios/FluentUI/Drawer/DrawerController.swift +++ b/ios/FluentUI/Drawer/DrawerController.swift @@ -391,6 +391,7 @@ open class DrawerController: UIViewController, TokenizedControlInternal { private let sourceView: UIView? private let sourceRect: CGRect? private let barButtonItem: UIBarButtonItem? + private let sourceItem: (any UIPopoverPresentationControllerSourceItem)? private var isPreferredContentSizeBeingChangedInternally: Bool = false private var normalDrawerHeight: CGFloat = 0 @@ -426,6 +427,7 @@ open class DrawerController: UIViewController, TokenizedControlInternal { self.sourceView = sourceView self.sourceRect = sourceRect self.barButtonItem = nil + self.sourceItem = nil self.presentationOrigin = presentationOrigin == -1 ? nil : presentationOrigin self.presentationDirection = presentationDirection self.preferredMaximumExpansionHeight = preferredMaximumHeight @@ -446,6 +448,28 @@ open class DrawerController: UIViewController, TokenizedControlInternal { self.sourceView = nil self.sourceRect = nil self.barButtonItem = barButtonItem + self.sourceItem = nil + self.presentationOrigin = presentationOrigin == -1 ? nil : presentationOrigin + self.presentationDirection = presentationDirection + self.preferredMaximumExpansionHeight = preferredMaximumHeight + + super.init(nibName: nil, bundle: nil) + + initialize() + } + + /** + Initializes `DrawerController` to be presented as a popover from `sourceItem` on iPad and as a slideover on iPhone/iPad. + + - Parameter sourceItem: The item(conforming to `UIPopoverPresentationControllerSourceItem`) on which to anchor the popover. + - Parameter presentationOrigin: The offset (in screen coordinates) from which to show a slideover. If not provided it will be calculated automatically: bottom of navigation bar for `.down` presentation and edge of the screen for other presentations. + - Parameter presentationDirection: The direction of slideover presentation. + */ + @objc public init(sourceItem: any UIPopoverPresentationControllerSourceItem, presentationOrigin: CGFloat = -1, presentationDirection: DrawerPresentationDirection, preferredMaximumHeight: CGFloat = -1) { + self.sourceView = nil + self.sourceRect = nil + self.barButtonItem = nil + self.sourceItem = sourceItem self.presentationOrigin = presentationOrigin == -1 ? nil : presentationOrigin self.presentationDirection = presentationDirection self.preferredMaximumExpansionHeight = preferredMaximumHeight @@ -1016,6 +1040,8 @@ extension DrawerController: UIViewControllerTransitioningDelegate { if let sourceRect = sourceRect { presentationController.sourceRect = sourceRect } + } else if let sourceItem = sourceItem { + presentationController.sourceItem = sourceItem } else if let barButtonItem = barButtonItem { presentationController.barButtonItem = barButtonItem } else { From f7b1b2eb5be06198a18d80953400fdbc1c60b063 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Sat, 31 Aug 2024 22:11:21 -0700 Subject: [PATCH 69/90] Properly deprecate `UITextItemInteraction` for iOS 17 (#2086) * Properly deprecate `UITextItemInteraction` * Include legacy implementation for iOS 16 --- ...leViewHeaderFooterViewDemoController.swift | 14 ++++-- .../TableViewHeaderFooterView.swift | 43 +++++++++++++++---- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift index 049294dfd5..06c7db58bb 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift @@ -133,11 +133,9 @@ extension TableViewHeaderFooterViewDemoController { } footer?.setup(style: .footer, attributedTitle: title) -#if os(iOS) if section.hasCustomLinkHandler { footer?.delegate = self } -#endif } footer?.titleNumberOfLines = section.numberOfLines footer?.tokenSet.replaceAllOverrides(with: overrideTokens) @@ -165,16 +163,24 @@ extension TableViewHeaderFooterViewDemoController { // MARK: - TableViewHeaderFooterViewDemoController: TableViewHeaderFooterViewDelegate -#if os(iOS) extension TableViewHeaderFooterViewDemoController: TableViewHeaderFooterViewDelegate { + @available (visionOS, deprecated: 1.0) func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { let alertController = UIAlertController(title: "Link tapped", message: nil, preferredStyle: .alert) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) present(alertController, animated: true, completion: nil) return false } + + @available(iOS, introduced: 17) + func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, primaryActionFor textItem: UITextItem, defaultAction: UIAction) -> UIAction? { + return UIAction { [weak self] _ in + let alertController = UIAlertController(title: "Link tapped", message: nil, preferredStyle: .alert) + alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) + self?.present(alertController, animated: true, completion: nil) + } + } } -#endif extension TableViewHeaderFooterViewDemoController: DemoAppearanceDelegate { func themeWideOverrideDidChange(isOverrideEnabled: Bool) { diff --git a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift index 6ccae6b21e..be240c7cf3 100644 --- a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift +++ b/ios/FluentUI/Table View/TableViewHeaderFooterView.swift @@ -7,13 +7,34 @@ import UIKit // MARK: TableViewHeaderFooterViewDelegate -#if os(iOS) @objc(MSFTableViewHeaderFooterViewDelegate) public protocol TableViewHeaderFooterViewDelegate: AnyObject { /// Returns: true if the interaction with the header view should be allowed; false if the interaction should not be allowed. + @available(iOS, deprecated: 17, message: "Replaced by primaryActionForTextItem: and menuConfigurationForTextItem: for additional customization options.") + @available(visionOS, deprecated: 1, message: "Replaced by primaryActionForTextItem: and menuConfigurationForTextItem: for additional customization options.") @objc optional func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool + + /// Asks the delegate for the action to be performed when interacting with a text item. If a nil action is provided, the text view + /// will request a menu to be presented on primary action if possible. + /// + /// @param headerFooterView The `TableViewHeaderFooterView` requesting the primary action. + /// @param textItem The text item for performing said action. + /// @param defaultAction The default action for the text item. Return this to perform the default action. + /// + /// @return Return a UIAction to be performed when the text item is interacted with. Return @c nil to prevent the action from being performed. + @available(iOS, introduced: 17) + @objc optional func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, primaryActionFor textItem: UITextItem, defaultAction: UIAction) -> UIAction? + + /// Asks the delegate for the menu configuration to be performed when interacting with a text item. + /// + /// @param headerFooterView The `TableViewHeaderFooterView` requesting the menu. + /// @param textItem The text item for performing said action. + /// @param defaultMenu The default menu for the specified text item. + /// + /// @return Return a menu configuration to be presented when the text item is interacted with. Return @c nil to prevent the menu from being presented. + @available(iOS, introduced: 17) + @objc optional func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, menuConfigurationFor textItem: UITextItem, defaultMenu: UIMenu) -> UITextItem.MenuConfiguration? } -#endif // os(iOS) // MARK: - TableViewHeaderFooterView @@ -125,9 +146,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont } } -#if os(iOS) @objc public weak var delegate: TableViewHeaderFooterViewDelegate? -#endif // os(iOS) open override var intrinsicContentSize: CGSize { return CGSize( @@ -407,9 +426,7 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont open override func prepareForReuse() { super.prepareForReuse() -#if os(iOS) delegate = nil -#endif // os(iOS) accessoryButtonStyle = .regular titleNumberOfLines = 1 @@ -553,12 +570,22 @@ open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedCont // MARK: - TableViewHeaderFooterView: UITextViewDelegate extension TableViewHeaderFooterView: UITextViewDelegate { -#if os(iOS) + @available(iOS, deprecated: 17, message: "Replaced by primaryActionForTextItem: and menuConfigurationForTextItem: for additional customization options.") + @available(visionOS, deprecated: 1, message: "Replaced by primaryActionForTextItem: and menuConfigurationForTextItem: for additional customization options.") public func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { // If the delegate function is not set, return `true` to let the default interaction handle this return delegate?.headerFooterView?(self, shouldInteractWith: URL, in: characterRange, interaction: interaction) ?? true } -#endif // os(iOS) + + @available(iOS, introduced: 17) + public func textView(_ textView: UITextView, primaryActionFor textItem: UITextItem, defaultAction: UIAction) -> UIAction? { + return delegate?.headerFooterView?(self, primaryActionFor: textItem, defaultAction: defaultAction) ?? defaultAction + } + + @available(iOS, introduced: 17) + public func textView(_ textView: UITextView, menuConfigurationFor textItem: UITextItem, defaultMenu: UIMenu) -> UITextItem.MenuConfiguration? { + return delegate?.headerFooterView?(self, menuConfigurationFor: textItem, defaultMenu: defaultMenu) ?? .init(menu: defaultMenu) + } } // MARK: - TableViewHeaderFooterTitleView From 0fadbee237bd1c30366e8024ff9096adb378969e Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Tue, 10 Sep 2024 17:30:11 -0700 Subject: [PATCH 70/90] Handle deprecated API in DatePickerController (#2089) --- .../FluentUI/DatePicker/DatePickerController.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/macos/FluentUI/DatePicker/DatePickerController.swift b/macos/FluentUI/DatePicker/DatePickerController.swift index d2a6ff98fd..1164f2dff4 100644 --- a/macos/FluentUI/DatePicker/DatePickerController.swift +++ b/macos/FluentUI/DatePicker/DatePickerController.swift @@ -262,10 +262,17 @@ open class DatePickerController: NSViewController { // In this case, we want to use Chinese numerals instead of western // Setting dateStyle to .long before setting the dateFormat will achieve this - if calendar.identifier == .chinese && calendar.locale?.languageCode == "zh" { - formatter.dateStyle = .long + if calendar.identifier == .chinese { + let languageCode: String? + if #available(macOS 13.0, *) { + languageCode = calendar.locale?.language.languageCode?.identifier + } else { + languageCode = calendar.locale?.languageCode + } + if languageCode == "zh" { + formatter.dateStyle = .long + } } - formatter.dateFormat = "d" return formatter From 2db2f49132e7074dab8d401af977373699e2bdd0 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Tue, 17 Sep 2024 20:02:37 -0700 Subject: [PATCH 71/90] [iOS][macOS] Remove iOS Xcode Project (#2082) * Delete project/workspace for iOS, and update macOS * Update package for version and tests on iOS * Fix demo imports * Update build script and docs * Invoke xcodebuild as projects * Update macOS targets to build properly * Delete unused files * Update version numbering script --- Package.swift | 17 + ios/CONTRIBUTING.md | 2 +- .../FluentUI.Demo.xcodeproj/project.pbxproj | 13 +- .../xcshareddata/swiftpm/Package.resolved | 43 +- .../xcschemes/Demo.Development.xcscheme | 30 +- .../xcschemes/Demo.Dogfood.xcscheme | 14 - .../xcschemes/Demo.Release.xcscheme | 24 - .../DemoListViewController.swift | 4 +- .../Demos/ObjectiveCDemoColorProviding.h | 2 +- .../Demos/ObjectiveCDemoColorProviding.m | 1 - .../Demos/ObjectiveCDemoController.m | 1 - .../Demos/PopupMenuObjCDemoController.m | 2 +- .../Demos/TextFieldObjCDemoController.m | 2 +- ios/FluentUI.Tests/AvatarTests.swift | 2 +- ios/FluentUI.Tests/ColorTests.swift | 2 +- .../DatePickerControllerTests.swift | 2 +- ios/FluentUI.Tests/FluentUITests.swift | 2 +- ios/FluentUI.Tests/FontTests.swift | 2 +- ios/FluentUI.xcodeproj/project.pbxproj | 2045 ----------------- .../contents.xcworkspacedata | 7 - .../xcschemes/FluentUI-iOS.xcscheme | 88 - .../xcschemes/FluentUIResources-ios.xcscheme | 67 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 24 - ios/FluentUI/Core/FluentUIFramework.swift | 13 + .../Resources/Version.plist} | 4 +- ios/README.md | 2 +- macos/FluentUIUnitTest/AvatarViewTests.swift | 2 +- .../DatePickerControllerTests.swift | 2 +- macos/FluentUIUnitTest/SimpleObjCTest.h | 14 - macos/FluentUIUnitTest/SimpleObjCTest.m | 10 - .../xcode/FluentUI.xcodeproj/project.pbxproj | 505 +--- .../xcschemes/FluentUI-macOS.xcscheme | 24 +- scripts/BumpVersion.swift | 2 +- scripts/xcodebuild_wrapper.sh | 6 +- 36 files changed, 135 insertions(+), 2863 deletions(-) delete mode 100644 ios/FluentUI.xcodeproj/project.pbxproj delete mode 100644 ios/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-iOS.xcscheme delete mode 100644 ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUIResources-ios.xcscheme delete mode 100644 ios/FluentUI.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/FluentUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved rename ios/{FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist => FluentUI/Resources/Version.plist} (78%) delete mode 100644 macos/FluentUIUnitTest/SimpleObjCTest.h delete mode 100644 macos/FluentUIUnitTest/SimpleObjCTest.m diff --git a/Package.swift b/Package.swift index b3b3969204..c5024b99a7 100644 --- a/Package.swift +++ b/Package.swift @@ -46,14 +46,31 @@ let package = Package( "TextField/TextField.resources.xcfilelist", "Tooltip/Tooltip.resources.xcfilelist", "TwoLineTitleView/TwoLineTitleView.resources.xcfilelist", + ], + resources: [ + .copy("Resources/Version.plist") ] ), + .testTarget( + name: "FluentUI_iOS_Tests", + dependencies: [ + .target(name: "FluentUI_ios", condition: .when(platforms: [.iOS, .visionOS, .macCatalyst])), + ], + path: "ios/FluentUI.Tests" + ), .target( name: "FluentUI_macos", path: "macos/FluentUI", exclude: [ "FluentUI-Info.plist" ] + ), + .testTarget( + name: "FluentUI_macOS_Tests", + dependencies: [ + .target(name: "FluentUI_macos", condition: .when(platforms: [.macOS])) + ], + path: "macos/FluentUIUnitTest" ) ] ) diff --git a/ios/CONTRIBUTING.md b/ios/CONTRIBUTING.md index 7d71795e97..c70e3875be 100644 --- a/ios/CONTRIBUTING.md +++ b/ios/CONTRIBUTING.md @@ -6,7 +6,7 @@ Included in this repository is a demo that showcases all the currently available To build and run the demo app follow these steps: - Clone the [FluentUI](https://github.com/microsoft/fluentui-apple) repository. -- Open `ios/FluentUI.xcworkspace` in Xcode. +- Open `ios/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose an iOS Simulator(or Device if you have your own device provisioning profile) to deploy to. - Make sure Swift Package Manager has download 2 dependencies(appcenter-sdk-apple and PLCrashReporter) for demo app. - Build and Run the demo app diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj index b5a4c35988..76ba3b56cc 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj @@ -87,9 +87,8 @@ 8F0B8116267021A700463726 /* AppCenterCrashes in Frameworks */ = {isa = PBXBuildFile; platformFilter = ios; productRef = 8F0B8115267021A700463726 /* AppCenterCrashes */; }; 9211BC612BD97B7900B95200 /* DemoHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9211BC602BD97B7900B95200 /* DemoHostingController.swift */; }; 92279B352B97F5DA00994D88 /* ButtonDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92279B342B97F5D900994D88 /* ButtonDemoController_SwiftUI.swift */; }; - 923DF2DB271158C900637646 /* libFluentUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 923DF2DA271158C900637646 /* libFluentUI.a */; }; - 923DF2DF27115B4700637646 /* FluentUIResources-ios.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */; }; 9245E1F927BECDBB007616F3 /* GlobalColorTokensDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */; }; + 9246B7072C628CF6004A4440 /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 9246B7062C628CF6004A4440 /* FluentUI */; }; 92561E732718AD090072ED00 /* DemoTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92561E722718AD090072ED00 /* DemoTableViewController.swift */; }; 92B45E4E279A1A0B00E72517 /* DemoAppearanceControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */; }; 92BF13322BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */; }; @@ -229,6 +228,7 @@ 923DF2DA271158C900637646 /* libFluentUI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libFluentUI.a; sourceTree = BUILT_PRODUCTS_DIR; }; 923DF2DC271158CD00637646 /* FluentUIResources-ios.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = "FluentUIResources-ios.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; 9245E1F827BECDBB007616F3 /* GlobalColorTokensDemoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalColorTokensDemoController.swift; sourceTree = "<group>"; }; + 9246B7052C628CAE004A4440 /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ../..; sourceTree = "<group>"; }; 92561E722718AD090072ED00 /* DemoTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoTableViewController.swift; sourceTree = "<group>"; }; 92B45E4D279A1A0B00E72517 /* DemoAppearanceControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppearanceControlView.swift; sourceTree = "<group>"; }; 92BF13312BE405710068422C /* AliasColorTokensDemoController_SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasColorTokensDemoController_SwiftUI.swift; sourceTree = "<group>"; }; @@ -345,10 +345,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9246B7072C628CF6004A4440 /* FluentUI in Frameworks */, 8F0B81122670200300463726 /* AppCenterDistribute in Frameworks */, 8F0B8114267021A700463726 /* AppCenterAnalytics in Frameworks */, 8F0B8116267021A700463726 /* AppCenterCrashes in Frameworks */, - 923DF2DB271158C900637646 /* libFluentUI.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -473,6 +473,7 @@ A5CEC20320E436F10016922A = { isa = PBXGroup; children = ( + 9246B7052C628CAE004A4440 /* fluentui-apple */, A5CEC20E20E436F10016922A /* FluentUI.Demo */, 3A83F7C0295110FF00EF6629 /* FluentUIDemoTests */, A5CEC20D20E436F10016922A /* Products */, @@ -645,6 +646,7 @@ 8F0B81112670200300463726 /* AppCenterDistribute */, 8F0B8113267021A700463726 /* AppCenterAnalytics */, 8F0B8115267021A700463726 /* AppCenterCrashes */, + 9246B7062C628CF6004A4440 /* FluentUI */, ); productName = OfficeUIFabric.Demo; productReference = A5CEC20C20E436F10016922A /* FluentUI.Demo.app */; @@ -745,7 +747,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 923DF2DF27115B4700637646 /* FluentUIResources-ios.bundle in Resources */, A5CEC21C20E436F20016922A /* LaunchScreen.storyboard in Resources */, A5CEC21920E436F20016922A /* Assets.xcassets in Resources */, ); @@ -1382,6 +1383,10 @@ package = 8F0B81102670200300463726 /* XCRemoteSwiftPackageReference "appcenter-sdk-apple" */; productName = AppCenterCrashes; }; + 9246B7062C628CF6004A4440 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; /* End XCSwiftPackageProductDependency section */ }; rootObject = A5CEC20420E436F10016922A /* Project object */; diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3566a597ee..6a8198ff69 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,25 +1,24 @@ { - "object": { - "pins": [ - { - "package": "AppCenter", - "repositoryURL": "https://github.com/microsoft/appcenter-sdk-apple.git", - "state": { - "branch": null, - "revision": "25f64229373de97ff3920941cd52203193e5d8be", - "version": "4.3.0" - } - }, - { - "package": "PLCrashReporter", - "repositoryURL": "https://github.com/microsoft/PLCrashReporter.git", - "state": { - "branch": null, - "revision": "59513acde6194d93617afcf7b2c81c88638a6af2", - "version": "1.10.0" - } + "originHash" : "9368007d7da5b3af9332e1d38cf6cc8e8eaa8ccb8923fbd5137a6b91bf39293b", + "pins" : [ + { + "identity" : "appcenter-sdk-apple", + "kind" : "remoteSourceControl", + "location" : "https://github.com/microsoft/appcenter-sdk-apple.git", + "state" : { + "revision" : "ab54f758243f282d290b33027e8aac910d3d859a", + "version" : "5.0.5" } - ] - }, - "version": 1 + }, + { + "identity" : "plcrashreporter", + "kind" : "remoteSourceControl", + "location" : "https://github.com/microsoft/PLCrashReporter.git", + "state" : { + "revision" : "6752f71de206f6a53fa6a758c3660fd9a7fe7527", + "version" : "1.11.2" + } + } + ], + "version" : 3 } diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme index f96b3e43db..ac392815b9 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme @@ -20,20 +20,6 @@ ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> </BuildableReference> </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction @@ -68,20 +54,20 @@ skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../FluentUI.xcodeproj"> + BlueprintIdentifier = "3A83F7BE295110FF00EF6629" + BuildableName = "FluentUIDemoTests.xctest" + BlueprintName = "FluentUIDemoTests" + ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> </BuildableReference> </TestableReference> <TestableReference skipped = "NO"> <BuildableReference BuildableIdentifier = "primary" - BlueprintIdentifier = "3A83F7BE295110FF00EF6629" - BuildableName = "FluentUIDemoTests.xctest" - BlueprintName = "FluentUIDemoTests" - ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> + BlueprintIdentifier = "FluentUI_iOS_Tests" + BuildableName = "FluentUI_iOS_Tests" + BlueprintName = "FluentUI_iOS_Tests" + ReferencedContainer = "container:../.."> </BuildableReference> </TestableReference> </Testables> diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme index dd169699ec..b9ca00cf75 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme @@ -20,20 +20,6 @@ ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> </BuildableReference> </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme index 6b2c1a0913..0ae766aae9 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme +++ b/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme @@ -20,20 +20,6 @@ ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> </BuildableReference> </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:../FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction @@ -64,16 +50,6 @@ </BuildableReference> </CodeCoverageTargets> <Testables> - <TestableReference - skipped = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:../FluentUI.xcodeproj"> - </BuildableReference> - </TestableReference> <TestableReference skipped = "YES" parallelizable = "YES"> diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift b/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift index a27d9397dd..dd07ec89b5 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift +++ b/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift @@ -48,9 +48,7 @@ class DemoListViewController: DemoTableViewController { guard let appName = bundle.object(forInfoDictionaryKey: "CFBundleName") as? String else { preconditionFailure("CFBundleName is nil") } - guard let libraryVersion = FluentUIFramework.resourceBundle.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String else { - preconditionFailure("CFBundleShortVersionString is nil") - } + let libraryVersion = FluentUIFramework.fluentVersion navigationItem.title = appName navigationItem.largeTitleDisplayMode = .always navigationItem.backButtonDisplayMode = .minimal diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h index 51139f4a8c..e53d647303 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h @@ -4,7 +4,7 @@ // #import <UIKit/UIKit.h> -#import <FluentUI/FluentUI-Swift.h> +#import <FluentUI_Demo-Swift.h> NS_ASSUME_NONNULL_BEGIN diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m index f9f8af0e0c..fabd56832e 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m @@ -4,7 +4,6 @@ // #import "ObjectiveCDemoColorProviding.h" -#import <FluentUI/FluentUI-Swift.h> #import <FluentUI_Demo-Swift.h> @interface ObjectiveCDemoColorProviding () <MSFColorProviding> diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m index 38467f8069..b11390cd82 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m @@ -5,7 +5,6 @@ #import "ObjectiveCDemoController.h" #import "ObjectiveCDemoColorProviding.h" -#import <FluentUI/FluentUI-Swift.h> #import <FluentUI_Demo-Swift.h> @interface ObjectiveCDemoController () <MSFTwoLineTitleViewDelegate, diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m index 575d5eed2e..e0bd1a9b5c 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m @@ -4,7 +4,7 @@ // #import "PopupMenuObjCDemoController.h" -#import <FluentUI/FluentUI-Swift.h> +#import <FluentUI_Demo-Swift.h> @implementation PopupMenuObjCDemoController diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m index ecb475c429..a47783188b 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m +++ b/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m @@ -4,7 +4,7 @@ // #import "TextFieldObjCDemoController.h" -#import <FluentUI/FluentUI-Swift.h> +#import <FluentUI_Demo-Swift.h> @implementation TextFieldObjCDemoController diff --git a/ios/FluentUI.Tests/AvatarTests.swift b/ios/FluentUI.Tests/AvatarTests.swift index 7a3058a585..20bcda0b00 100644 --- a/ios/FluentUI.Tests/AvatarTests.swift +++ b/ios/FluentUI.Tests/AvatarTests.swift @@ -4,7 +4,7 @@ // import XCTest -@testable import FluentUI +@testable import FluentUI_ios class AvatarTests: XCTestCase { diff --git a/ios/FluentUI.Tests/ColorTests.swift b/ios/FluentUI.Tests/ColorTests.swift index 306a2a5e7f..6425a4f830 100644 --- a/ios/FluentUI.Tests/ColorTests.swift +++ b/ios/FluentUI.Tests/ColorTests.swift @@ -5,7 +5,7 @@ import XCTest import SwiftUI -@testable import FluentUI +@testable import FluentUI_ios class ColorTests: XCTestCase { diff --git a/ios/FluentUI.Tests/DatePickerControllerTests.swift b/ios/FluentUI.Tests/DatePickerControllerTests.swift index 26fe92c5c2..8a02304d15 100644 --- a/ios/FluentUI.Tests/DatePickerControllerTests.swift +++ b/ios/FluentUI.Tests/DatePickerControllerTests.swift @@ -4,7 +4,7 @@ // import XCTest -@testable import FluentUI +@testable import FluentUI_ios class DatePickerControllerTests: XCTestCase { let startDate: Date = NSDate.now diff --git a/ios/FluentUI.Tests/FluentUITests.swift b/ios/FluentUI.Tests/FluentUITests.swift index 1668d33bbb..ac50a549bf 100644 --- a/ios/FluentUI.Tests/FluentUITests.swift +++ b/ios/FluentUI.Tests/FluentUITests.swift @@ -4,7 +4,7 @@ // import XCTest -@testable import FluentUI +@testable import FluentUI_ios class FluentUITests: XCTestCase { override func setUp() { diff --git a/ios/FluentUI.Tests/FontTests.swift b/ios/FluentUI.Tests/FontTests.swift index 547044d4ca..68837fc759 100644 --- a/ios/FluentUI.Tests/FontTests.swift +++ b/ios/FluentUI.Tests/FontTests.swift @@ -5,7 +5,7 @@ import XCTest import SwiftUI -@testable import FluentUI +@testable import FluentUI_ios class FontTests: XCTestCase { diff --git a/ios/FluentUI.xcodeproj/project.pbxproj b/ios/FluentUI.xcodeproj/project.pbxproj deleted file mode 100644 index 1ca8afb3d6..0000000000 --- a/ios/FluentUI.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2045 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 0A84A6F029EDC489005DBC3D /* SeparatorTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A84A6EF29EDC489005DBC3D /* SeparatorTokenSet.swift */; }; - 0A8E61FB291DC11F009E412D /* CommandBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8E61FA291DC11F009E412D /* CommandBarTokenSet.swift */; }; - 0AE3041D29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AE3041C29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift */; }; - 3A9FC0F52A6AFAD40060A6BE /* BadgeFieldTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9FC0F42A6AFAD40060A6BE /* BadgeFieldTokenSet.swift */; }; - 3A9FC0F72A705C090060A6BE /* PeoplePickerTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9FC0F62A705C090060A6BE /* PeoplePickerTokenSet.swift */; }; - 3AFB0FD629C1365600FEC1A9 /* MultilineCommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AFB0FD529C1365600FEC1A9 /* MultilineCommandBar.swift */; }; - 43488C46270FAD1300124C71 /* FluentNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43488C44270FAD0200124C71 /* FluentNotification.swift */; }; - 4B2E373D2991CB53008929B4 /* BottomSheetTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B2E373C2991CB53008929B4 /* BottomSheetTokenSet.swift */; }; - 4B4A2F2129A7E83100570CD4 /* LabelTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B4A2F2029A7E83100570CD4 /* LabelTokenSet.swift */; }; - 4B53505F27F63E3F0033B47F /* NotificationModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B53505E27F63E3F0033B47F /* NotificationModifiers.swift */; }; - 4B8245D8293FC7A200CF0C77 /* TooltipTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B8245D7293FC7A200CF0C77 /* TooltipTokenSet.swift */; }; - 4BBD651F2755FD9500A8B09E /* MSFNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BBD651E2755FD9500A8B09E /* MSFNotification.swift */; }; - 4BDBE18928EC9E6F00314696 /* ShimmerTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BDBE18828EC9E6F00314696 /* ShimmerTokenSet.swift */; }; - 4BF01D9A27B37CF8005B32F2 /* NotificationTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BF01D9927B37CF8005B32F2 /* NotificationTokenSet.swift */; }; - 4BF01DA027B3A862005B32F2 /* UIApplication+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BF01D9F27B3A861005B32F2 /* UIApplication+Extensions.swift */; }; - 5303259B26B31B6B00611D05 /* AvatarModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5303259926B31B6B00611D05 /* AvatarModifiers.swift */; }; - 5306075326A1E6A4002D49CF /* AvatarGroupTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5306074F26A1E6A4002D49CF /* AvatarGroupTokenSet.swift */; }; - 5306075726A1E6A4002D49CF /* AvatarGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5306075126A1E6A4002D49CF /* AvatarGroup.swift */; }; - 5306076126A201C8002D49CF /* Persona.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4EF53C2215AF1AB00573E8F /* Persona.swift */; }; - 530D9C5127EE388200BDCBBF /* SwiftUI+ViewPresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 530D9C5027EE388200BDCBBF /* SwiftUI+ViewPresentation.swift */; }; - 530D9C5327EE7B2C00BDCBBF /* SwiftUI+ViewAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 530D9C5227EE7B2C00BDCBBF /* SwiftUI+ViewAnimation.swift */; }; - 5314E01625F00CF70099271A /* BarButtonItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52648DB2316F4F9003342A0 /* BarButtonItems.swift */; }; - 5314E02825F00DA80099271A /* BlurringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDA1AF8B21484625001AE720 /* BlurringView.swift */; }; - 5314E03125F00DDD0099271A /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC18C2B2501B22F00BE830E /* CardView.swift */; }; - 5314E03A25F00E3D0099271A /* BadgeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B444D6B52183A9740002B4D4 /* BadgeView.swift */; }; - 5314E03B25F00E3D0099271A /* BadgeStringExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4A8BBCC21BF6D6900D5E3ED /* BadgeStringExtractor.swift */; }; - 5314E03C25F00E3D0099271A /* BadgeField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B45EB78F219E310F008646A2 /* BadgeField.swift */; }; - 5314E05925F00EF50099271A /* CalendarViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD599D0B2134AB1E008845EE /* CalendarViewDataSource.swift */; }; - 5314E05A25F00EF50099271A /* CalendarViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD599D092134AB15008845EE /* CalendarViewLayout.swift */; }; - 5314E05B25F00EF50099271A /* CalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD599D0121348439008845EE /* CalendarView.swift */; }; - 5314E06025F00EFD0099271A /* CalendarViewWeekdayHeadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD599D072134AB0E008845EE /* CalendarViewWeekdayHeadingView.swift */; }; - 5314E06125F00EFD0099271A /* CalendarViewDayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFB8AEE21361C9D0046850A /* CalendarViewDayCell.swift */; }; - 5314E06225F00EFD0099271A /* CalendarViewDayTodayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFB8AEC21361C9D0046850A /* CalendarViewDayTodayCell.swift */; }; - 5314E06325F00EFD0099271A /* CalendarViewDayMonthYearCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFB8AEF21361C9D0046850A /* CalendarViewDayMonthYearCell.swift */; }; - 5314E06425F00EFD0099271A /* CalendarViewMonthBannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFB8AEA21361C950046850A /* CalendarViewMonthBannerView.swift */; }; - 5314E06525F00EFD0099271A /* CalendarViewDayMonthCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFB8AED21361C9D0046850A /* CalendarViewDayMonthCell.swift */; }; - 5314E06A25F00F100099271A /* GenericDateTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD1FAE1A2272464B00A5DBA4 /* GenericDateTimePicker.swift */; }; - 5314E06B25F00F100099271A /* DateTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD77752F21A490BA00033D58 /* DateTimePicker.swift */; }; - 5314E07025F00F140099271A /* DatePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD4F2A1F214AE20400C437D6 /* DatePickerController.swift */; }; - 5314E07125F00F140099271A /* DatePickerSelectionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD256C5A2183B90B00EC9588 /* DatePickerSelectionManager.swift */; }; - 5314E07625F00F160099271A /* DateTimePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD5ADBF32190CDC80005A9AF /* DateTimePickerController.swift */; }; - 5314E07B25F00F1A0099271A /* DateTimePickerViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9758072191118E00B67319 /* DateTimePickerViewDataSource.swift */; }; - 5314E07C25F00F1A0099271A /* DateTimePickerViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD77752C219E62E100033D58 /* DateTimePickerViewLayout.swift */; }; - 5314E07D25F00F1A0099271A /* DateTimePickerViewComponentTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9758082191118E00B67319 /* DateTimePickerViewComponentTableView.swift */; }; - 5314E07E25F00F1A0099271A /* DateTimePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9758062191118D00B67319 /* DateTimePickerView.swift */; }; - 5314E07F25F00F1A0099271A /* DateTimePickerViewComponentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD97580A2191118E00B67319 /* DateTimePickerViewComponentCell.swift */; }; - 5314E08025F00F1A0099271A /* DateTimePickerViewComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9758092191118E00B67319 /* DateTimePickerViewComponent.swift */; }; - 5314E08925F00F2D0099271A /* CommandBarButtonGroupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC414E242588798000069E73 /* CommandBarButtonGroupView.swift */; }; - 5314E08A25F00F2D0099271A /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC414E1E258876FB00069E73 /* CommandBar.swift */; }; - 5314E08B25F00F2D0099271A /* CommandBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC414E4E2588B65C00069E73 /* CommandBarItem.swift */; }; - 5314E08C25F00F2D0099271A /* CommandBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC414E2A25887A4B00069E73 /* CommandBarButton.swift */; }; - 5314E09525F00FA30099271A /* DimmingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B87B03211E22B70038C37C /* DimmingView.swift */; }; - 5314E09E25F00FE20099271A /* DotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDD454ED21405B390006E84E /* DotView.swift */; }; - 5314E0A725F010070099271A /* DrawerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B87AF3211E16360038C37C /* DrawerController.swift */; }; - 5314E0A825F010070099271A /* DrawerPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B87AF5211E16360038C37C /* DrawerPresentationController.swift */; }; - 5314E0A925F010070099271A /* DrawerTransitionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B87AF4211E16360038C37C /* DrawerTransitionAnimator.swift */; }; - 5314E0AA25F010070099271A /* DrawerShadowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5237ACC21ED6CA70040BF27 /* DrawerShadowView.swift */; }; - 5314E0B325F010400099271A /* EasyTapButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD5BBE42214C73CE008964B4 /* EasyTapButton.swift */; }; - 5314E0CF25F011F10099271A /* Label.swift in Sources */ = {isa = PBXBuildFile; fileRef = A589F853211BA03200471C23 /* Label.swift */; }; - 5314E0E425F012C00099271A /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87F22DD13230086F899 /* NavigationController.swift */; }; - 5314E0E525F012C00099271A /* NavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87B22DD13230086F899 /* NavigationBar.swift */; }; - 5314E0E625F012C00099271A /* UIViewController+Navigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9DA7B4232C33A80013E41B /* UIViewController+Navigation.swift */; }; - 5314E0E725F012C00099271A /* UINavigationItem+Navigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C8BD22DD47120086F899 /* UINavigationItem+Navigation.swift */; }; - 5314E0EC25F012C40099271A /* NavigationAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C88022DD13230086F899 /* NavigationAnimator.swift */; }; - 5314E0ED25F012C40099271A /* ContentScrollViewTraits.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C86E22DD13230086F899 /* ContentScrollViewTraits.swift */; }; - 5314E0F225F012C80099271A /* ShyHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87122DD13230086F899 /* ShyHeaderView.swift */; }; - 5314E0F325F012C80099271A /* ShyHeaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87022DD13230086F899 /* ShyHeaderController.swift */; }; - 5314E0F825F012CB0099271A /* AvatarTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87A22DD13230086F899 /* AvatarTitleView.swift */; }; - 5314E10A25F014600099271A /* Obscurable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0CD253A4E8C00620960 /* Obscurable.swift */; }; - 5314E11625F015EA0099271A /* PersonaBadgeViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4BA27872319DC0D0001563C /* PersonaBadgeViewDataSource.swift */; }; - 5314E11725F015EA0099271A /* PersonaCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B46D3F922151D95F0029772C /* PersonaCell.swift */; }; - 5314E11825F015EA0099271A /* PeoplePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B47B58B722F8E5840078DE38 /* PeoplePicker.swift */; }; - 5314E11B25F015EA0099271A /* PersonaListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B46D3F9C215985AC0029772C /* PersonaListView.swift */; }; - 5314E12A25F016230099271A /* PillButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 497DC2D824185885008D86F8 /* PillButton.swift */; }; - 5314E12B25F016230099271A /* PillButtonBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 497DC2D724185885008D86F8 /* PillButtonBar.swift */; }; - 5314E13425F016370099271A /* PopupMenuItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961F9E218A256B00E2A506 /* PopupMenuItem.swift */; }; - 5314E13525F016370099271A /* PopupMenuItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961FA2218A25D100E2A506 /* PopupMenuItemCell.swift */; }; - 5314E13625F016370099271A /* PopupMenuSectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961FA4218A260500E2A506 /* PopupMenuSectionHeaderView.swift */; }; - 5314E13725F016370099271A /* PopupMenuProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BCEFADD2485FEC00088CEE5 /* PopupMenuProtocols.swift */; }; - 5314E13825F016370099271A /* PopupMenuSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961FA0218A25C400E2A506 /* PopupMenuSection.swift */; }; - 5314E13925F016370099271A /* PopupMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961F9C218A254D00E2A506 /* PopupMenuController.swift */; }; - 5314E14225F016860099271A /* CardPresenterNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD0D29D52151A3D700E8655E /* CardPresenterNavigationController.swift */; }; - 5314E14325F016860099271A /* CardTransitionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDA1AF90214871B5001AE720 /* CardTransitionAnimator.swift */; }; - 5314E14425F016860099271A /* PageCardPresenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD4F2A1A2148937100C437D6 /* PageCardPresenterController.swift */; }; - 5314E14525F016860099271A /* CardPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDA1AF9221487225001AE720 /* CardPresentationController.swift */; }; - 5314E14E25F016CD0099271A /* ResizingHandleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5237ACA21DED7030040BF27 /* ResizingHandleView.swift */; }; - 5314E16925F017940099271A /* SegmentedControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECEBA8FB25EDF3380048EE24 /* SegmentedControl.swift */; }; - 5314E17225F0191C0099271A /* Separator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5DCA76321224026005F4CB7 /* Separator.swift */; }; - 5314E18D25F0195C0099271A /* ShimmerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EAAEAC2347E1DF00C7244E /* ShimmerView.swift */; }; - 5314E18E25F0195C0099271A /* ShimmerLinesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A0D76B233AEF6C00F432FD /* ShimmerLinesView.swift */; }; - 5314E19525F019650099271A /* TabBarItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1168630222E131CF0088B302 /* TabBarItemView.swift */; }; - 5314E19625F019650099271A /* TabBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1168630322E131CF0088B302 /* TabBarView.swift */; }; - 5314E19725F019650099271A /* TabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 118D9847230BBA2300BC0B72 /* TabBarItem.swift */; }; - 5314E19825F019650099271A /* SideTabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D0931C224AAAC8C0072458A /* SideTabBar.swift */; }; - 5314E1A225F01A7C0099271A /* ActivityIndicatorCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E782C221793AB200A7DFCE /* ActivityIndicatorCell.swift */; }; - 5314E1A325F01A7C0099271A /* TableViewHeaderFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4EF66502294A664007FEAB0 /* TableViewHeaderFooterView.swift */; }; - 5314E1A425F01A7C0099271A /* CenteredLabelCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E782C62179509A00A7DFCE /* CenteredLabelCell.swift */; }; - 5314E1A525F01A7C0099271A /* TableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B498141321E424920077B48D /* TableViewCell.swift */; }; - 5314E1A625F01A7C0099271A /* BooleanCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B441478C228CDA130040E88E /* BooleanCell.swift */; }; - 5314E1A725F01A7C0099271A /* ActionsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4E782C02176AD5E00A7DFCE /* ActionsCell.swift */; }; - 5314E1B025F01A980099271A /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7DF05B21FA7F5000857267 /* Tooltip.swift */; }; - 5314E1B125F01A980099271A /* TooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7DF05D21FA7FC100857267 /* TooltipView.swift */; }; - 5314E1B225F01A980099271A /* TooltipViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7DF05F21FA83C900857267 /* TooltipViewController.swift */; }; - 5314E1BB25F01B070099271A /* TouchForwardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B483323621DEB5A00022B4CC /* TouchForwardingView.swift */; }; - 5314E1C425F01B4E0099271A /* TwoLineTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD5BBE40214C6AF3008964B4 /* TwoLineTitleView.swift */; }; - 5314E1CD25F01B730099271A /* AnimationSynchronizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0938E43235E8ED500256251 /* AnimationSynchronizer.swift */; }; - 5314E1D625F01E4A0099271A /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C87E22DD13230086F899 /* SearchBar.swift */; }; - 5314E21E25F022120099271A /* UIView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B87B05211E23650038C37C /* UIView+Extensions.swift */; }; - 5314E23025F022C80099271A /* UIScrollView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C8B122DD3BB70086F899 /* UIScrollView+Extensions.swift */; }; - 5314E25425F023650099271A /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5961FA6218A2E4500E2A506 /* UIImage+Extensions.swift */; }; - 5314E26625F023B20099271A /* UIColor+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56CE7B522E68A7800AA77EE /* UIColor+Extensions.swift */; }; - 5314E28125F0240D0099271A /* DateComponents+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9A5C862179464F00D224D9 /* DateComponents+Extensions.swift */; }; - 5314E28E25F024590099271A /* Date+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD5BBE3A214B2F44008964B4 /* Date+Extensions.swift */; }; - 5314E29725F024760099271A /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A559BB7D212B6D100055E107 /* String+Extension.swift */; }; - 5314E2A025F024860099271A /* NSLayoutConstraint+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD41C8B422DD3EA20086F899 /* NSLayoutConstraint+Extensions.swift */; }; - 5314E2B225F024B60099271A /* Calendar+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7254E82147059D002F4069 /* Calendar+Extensions.swift */; }; - 5314E2BB25F024C60099271A /* CALayer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54D97D9217A5FC10072681A /* CALayer+Extensions.swift */; }; - 5314E2E325F025500099271A /* FluentUIFramework.swift in Sources */ = {isa = PBXBuildFile; fileRef = A559BB82212B7D870055E107 /* FluentUIFramework.swift */; }; - 5314E2EC25F025710099271A /* DayOfMonth.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD777528219E3F6C00033D58 /* DayOfMonth.swift */; }; - 5314E2F525F025C60099271A /* CalendarConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF41ED82141A02200EC527C /* CalendarConfiguration.swift */; }; - 5314E30225F0260E0099271A /* AccessibilityContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD77752A219E455A00033D58 /* AccessibilityContainerView.swift */; }; - 5314E30325F0260E0099271A /* AccessibleViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD599D052134A682008845EE /* AccessibleViewDelegate.swift */; }; - 5328D97126FBA3D700F3723B /* IndeterminateProgressBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5328D96C26FBA3D600F3723B /* IndeterminateProgressBarTokenSet.swift */; }; - 5328D97326FBA3D700F3723B /* IndeterminateProgressBarModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5328D96D26FBA3D600F3723B /* IndeterminateProgressBarModifiers.swift */; }; - 5328D97726FBA3D700F3723B /* IndeterminateProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5328D96F26FBA3D700F3723B /* IndeterminateProgressBar.swift */; }; - 532FE3D426EA6D74007539C0 /* ActivityIndicatorTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532FE3CE26EA6D73007539C0 /* ActivityIndicatorTokenSet.swift */; }; - 532FE3D626EA6D74007539C0 /* ActivityIndicatorModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532FE3CF26EA6D73007539C0 /* ActivityIndicatorModifiers.swift */; }; - 532FE3D826EA6D74007539C0 /* ActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532FE3D026EA6D74007539C0 /* ActivityIndicator.swift */; }; - 535559E42711411E0094A871 /* FluentThemedHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 535559E22711411E0094A871 /* FluentThemedHostingController.swift */; }; - 5373D5652694D65C0032A3B4 /* AvatarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5373D5602694D65C0032A3B4 /* AvatarTokenSet.swift */; }; - 5373D5672694D65C0032A3B4 /* Avatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5373D5612694D65C0032A3B4 /* Avatar.swift */; }; - 5373D56B2694D65C0032A3B4 /* MSFAvatarPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5373D5632694D65C0032A3B4 /* MSFAvatarPresence.swift */; }; - 5373D5732694D66F0032A3B4 /* UIKit+SwiftUI_interoperability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5373D56D2694D66F0032A3B4 /* UIKit+SwiftUI_interoperability.swift */; }; - 5373D5772694D66F0032A3B4 /* SwiftUI+ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5373D56F2694D66F0032A3B4 /* SwiftUI+ViewModifiers.swift */; }; - 53E2EE0527860D010086D30D /* MSFActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53E2EE0427860D010086D30D /* MSFActivityIndicator.swift */; }; - 53E2EE07278799B30086D30D /* MSFIndeterminateProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53E2EE06278799B30086D30D /* MSFIndeterminateProgressBar.swift */; }; - 566C664A28CB99830032314C /* module.modulemap in Copy module.modulemap */ = {isa = PBXBuildFile; fileRef = 566C664828CB97210032314C /* module.modulemap */; }; - 66512A3829D3B30D003CF303 /* AvatarTitleViewTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66512A3729D3B30D003CF303 /* AvatarTitleViewTokenSet.swift */; }; - 667E54022A12B6F800728F93 /* TwoLineTitleView+Navigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 667E54012A12B6F800728F93 /* TwoLineTitleView+Navigation.swift */; }; - 66963D0A29CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66963D0929CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift */; }; - 66963D1029CE244D006F5FA9 /* NavigationBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66963D0F29CE244D006F5FA9 /* NavigationBarTokenSet.swift */; }; - 6EB4B25F270ED6B30005B808 /* BadgeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB4B25D270ED6450005B808 /* BadgeLabel.swift */; }; - 6ED5E55126D3D39400D8BE81 /* BadgeLabelButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED4C11C2696AE4000C30BD6 /* BadgeLabelButton.swift */; }; - 6ED5E55226D3D39400D8BE81 /* UIBarButtonItem+BadgeValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED4C11A2695A6E800C30BD6 /* UIBarButtonItem+BadgeValue.swift */; }; - 6F050B6929D3D16D0070D3D5 /* SideTabBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B6829D3D16D0070D3D5 /* SideTabBarTokenSet.swift */; }; - 6F050B6B29D3D1900070D3D5 /* TabBarItemTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B6A29D3D1900070D3D5 /* TabBarItemTokenSet.swift */; }; - 6F050B6D29D3D1A90070D3D5 /* TabBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B6C29D3D1A90070D3D5 /* TabBarTokenSet.swift */; }; - 6F050B6F29D3EA820070D3D5 /* PillButtonTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B6E29D3EA820070D3D5 /* PillButtonTokenSet.swift */; }; - 6F050B7129D6213E0070D3D5 /* PopupMenuItemTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B7029D6213E0070D3D5 /* PopupMenuItemTokenSet.swift */; }; - 6F050B7529D6219D0070D3D5 /* PopupMenuTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F050B7429D6219D0070D3D5 /* PopupMenuTokenSet.swift */; }; - 6F2F218F2A12BFD900C50EAB /* BadgeLabelTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F2F218E2A12BFD900C50EAB /* BadgeLabelTokenSet.swift */; }; - 6F3CB7F029D3A2B700284353 /* DrawerTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F3CB7EF29D3A2B700284353 /* DrawerTokenSet.swift */; }; - 6F3CB7F229D3A5DE00284353 /* ResizingHandleTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F3CB7F129D3A5DE00284353 /* ResizingHandleTokenSet.swift */; }; - 6FBFD62629CBB5F1002F3C81 /* SearchBarTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FBFD62529CBB5F1002F3C81 /* SearchBarTokenSet.swift */; }; - 6FC3705E29E7707F0096B239 /* BadgeViewTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FC3705D29E7707F0096B239 /* BadgeViewTokenSet.swift */; }; - 8035CAB62633A4DB007B3FD1 /* BottomCommandingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8035CAAA2633A442007B3FD1 /* BottomCommandingController.swift */; }; - 8035CAD026377C17007B3FD1 /* CommandingItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8035CACA26377C14007B3FD1 /* CommandingItem.swift */; }; - 8035CADE2638E435007B3FD1 /* CommandingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8035CADC2638E435007B3FD1 /* CommandingSection.swift */; }; - 804EDE1528C00CA400371C6B /* ContentHeightResolutionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804EDE1428C00CA400371C6B /* ContentHeightResolutionContext.swift */; }; - 80AECC21263339E3005AF2F3 /* BottomSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AECBD82629F18E005AF2F3 /* BottomSheetController.swift */; }; - 80AECC22263339E5005AF2F3 /* BottomSheetPassthroughView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AECBF1262FC34E005AF2F3 /* BottomSheetPassthroughView.swift */; }; - 8FA3CB5B246B19EA0049E431 /* ColorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FA3CB5A246B19EA0049E431 /* ColorTests.swift */; }; - 92016FF8299DF34A00660DB7 /* EmptyTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92016FF7299DF34A00660DB7 /* EmptyTokenSet.swift */; }; - 92088EF92666DB2C003F571A /* PersonaButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92088EF72666DB2C003F571A /* PersonaButton.swift */; }; - 920945492703DDA000B38E1A /* CardNudgeTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 920945472703DDA000B38E1A /* CardNudgeTokenSet.swift */; }; - 92279B332B97C7DC00994D88 /* FluentButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92279B322B97C7DC00994D88 /* FluentButtonStyle.swift */; }; - 922A34DF27BB87990062721F /* TokenizedControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 922A34DE27BB87990062721F /* TokenizedControlView.swift */; }; - 9231491128BF026A001B033E /* HeadsUpDisplayTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5336B17F27FB6D9B00B01E0D /* HeadsUpDisplayTokenSet.swift */; }; - 9231491228BF026A001B033E /* HUDModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5336B17027F77EB700B01E0D /* HUDModifiers.swift */; }; - 9231491328BF026A001B033E /* HeadsUpDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5336B17327F77EB700B01E0D /* HeadsUpDisplay.swift */; }; - 9231491428BF026A001B033E /* MSFHeadsUpDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532299FF27FE108400C016A2 /* MSFHeadsUpDisplay.swift */; }; - 9231491528BF026A001B033E /* HUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5336B17227F77EB700B01E0D /* HUD.swift */; }; - 9231491628BF02B9001B033E /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEC23020E451D00016922A /* Button.swift */; }; - 9231F10329BB99090079CD94 /* FluentTheme+Tokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9231F10229BB99090079CD94 /* FluentTheme+Tokens.swift */; }; - 923DB9D4274CB65700D8E58A /* TokenizedControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923DB9D2274CB65700D8E58A /* TokenizedControl.swift */; }; - 923DB9D5274CB65700D8E58A /* FluentTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923DB9D3274CB65700D8E58A /* FluentTheme.swift */; }; - 923DB9D7274CB66D00D8E58A /* ControlHostingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923DB9D6274CB66D00D8E58A /* ControlHostingView.swift */; }; - 923DF2E72712B6AB00637646 /* libFluentUI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FD01166228A820600D25925 /* libFluentUI.a */; }; - 923DF2E82712B6C400637646 /* FluentUIResources-ios.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A5DA88FC226FAA01000A8EA8 /* FluentUIResources-ios.bundle */; }; - 924268A2277AD9F700C5A452 /* FontTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 924268A1277AD9F700C5A452 /* FontTests.swift */; }; - 925728F7276D6AF800EE1019 /* ShadowInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925728F6276D6AF800EE1019 /* ShadowInfo.swift */; }; - 925728F9276D6B5800EE1019 /* FontInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925728F8276D6B5800EE1019 /* FontInfo.swift */; }; - 925D461D26FD133600179583 /* GlobalTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 925D461B26FD133600179583 /* GlobalTokens.swift */; }; - 926B4C9A2B8E94F6001EBA16 /* FluentTheme+visionOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */; }; - 926FEEAA2B45A8B4002C61D0 /* Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 926FEEA92B45A8B4002C61D0 /* Compatibility.swift */; }; - 9275105626815A7100F12730 /* MSFPersonaButtonCarousel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9275105426815A7100F12730 /* MSFPersonaButtonCarousel.swift */; }; - 927EB2BD278627440069753D /* PersonaButtonModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 927EB2BC278627440069753D /* PersonaButtonModifiers.swift */; }; - 929215B92B6C75E500D4EA9F /* AvatarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929215B82B6C75E500D4EA9F /* AvatarTests.swift */; }; - 9298798B2669A875002B1EB4 /* PersonaButtonTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 927E34C62668350800998031 /* PersonaButtonTokenSet.swift */; }; - 929DD257266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929DD255266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift */; }; - 929DD25A266ED3B600E8175E /* PersonaButtonCarousel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */; }; - 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */; }; - 92A1E4F526A791590007ED60 /* MSFCardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */; }; - 92B2E2352BD71F27005D42C4 /* TooltipModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */; }; - 92B7E6A326864AE900EFC15E /* MSFPersonaButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */; }; - 92D49054278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */; }; - 92D5598226A0FD2800328FD3 /* CardNudge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5598026A0FD2800328FD3 /* CardNudge.swift */; }; - 92D5FDFB28A713990087894B /* LinearGradientInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */; }; - 92DEE2252723D34400E31ED0 /* ControlTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */; }; - 92ECB2DB2BE0697F00404D79 /* GlobalTokens+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */; }; - 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */; }; - 92ECB2DF2BE06BCB00404D79 /* FluentTheme+UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */; }; - 92EE82AE27025A94009D52B5 /* TokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92EE82AC27025A94009D52B5 /* TokenSet.swift */; }; - 92F8054E272B2DF3000EAFDB /* CardNudgeModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92079C8E26B66E5100D688DA /* CardNudgeModifiers.swift */; }; - 94679F2C2BF55059004A1560 /* FluentListSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2A2BF55059004A1560 /* FluentListSection.swift */; }; - 94679F2D2BF55059004A1560 /* FluentList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2B2BF55059004A1560 /* FluentList.swift */; }; - 94679F2F2BF57F86004A1560 /* FluentListModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */; }; - 94A7EC1A2836DCB200BFFBAE /* CommandBarCommandGroupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */; }; - A257F82C251D98F3002CAA6E /* FluentUI-ios.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */; }; - A542A9D7226FC01100204A52 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A559BB81212B6FA40055E107 /* Localizable.strings */; }; - A542A9D8226FC01700204A52 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = A5DF1EAD2213B26900CC741A /* Localizable.stringsdict */; }; - A5CEC16020D980B30016922A /* FluentUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEC15F20D980B30016922A /* FluentUITests.swift */; }; - C708B05F260A8778007190FA /* SegmentPillButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C708B055260A86FA007190FA /* SegmentPillButton.swift */; }; - C708B064260A87F7007190FA /* SegmentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C708B04B260A8696007190FA /* SegmentItem.swift */; }; - C77A04B825F03DD1001B3EB6 /* String+Date.swift in Sources */ = {isa = PBXBuildFile; fileRef = C77A04B625F03DD1001B3EB6 /* String+Date.swift */; }; - D6296DAE295B7CA0002E8EB6 /* ColorProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6296DAD295B7C9F002E8EB6 /* ColorProviding.swift */; }; - EC04E65829C27359005F8BA0 /* FocusRingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC04E65729C27359005F8BA0 /* FocusRingView.swift */; }; - EC1C31732923022E00CF052C /* SegmentedControlTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1C31722923022E00CF052C /* SegmentedControlTokenSet.swift */; }; - EC5982D827BF348700FD048D /* MSFAvatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5982D727BF348700FD048D /* MSFAvatar.swift */; }; - EC5982DA27C703EE00FD048D /* ShapeCutout.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5982D927C703ED00FD048D /* ShapeCutout.swift */; }; - EC65F790292EDCEF002A1A23 /* ButtonTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC65F78F292EDCEF002A1A23 /* ButtonTokenSet.swift */; }; - EC98E2AD2980C15C00B9DF91 /* FluentTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC98E2AC2980C15C00B9DF91 /* FluentTextField.swift */; }; - EC98E2B0298D978C00B9DF91 /* FluentTextFieldInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC98E2AF298D978C00B9DF91 /* FluentTextFieldInternal.swift */; }; - EC98E2B2298D97EC00B9DF91 /* TextFieldTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC98E2B1298D97EC00B9DF91 /* TextFieldTokenSet.swift */; }; - EC98E2B4298D989100B9DF91 /* FluentTextInputError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC98E2B3298D989100B9DF91 /* FluentTextInputError.swift */; }; - ECA9218627A3301C00B66117 /* MSFAvatarGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9218527A3301C00B66117 /* MSFAvatarGroup.swift */; }; - ECA9218A27A33A2D00B66117 /* AvatarGroupModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA9218927A33A2D00B66117 /* AvatarGroupModifiers.swift */; }; - ECF3C9882A67495A00CA35FC /* BottomCommandingTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF3C9872A67495A00CA35FC /* BottomCommandingTokenSet.swift */; }; - F32E6E8B2A7997F3003F9AE7 /* ListActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */; }; - F3A87D5E2BF5606E000D6A64 /* FluentListSectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */; }; - F3A87D602BF57421000D6A64 /* FluentListSectionFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */; }; - F3DFD3612A7B210100014C6E /* ListActionItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */; }; - F3F113892A705AD500DA852A /* ListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F113882A705AD500DA852A /* ListItem.swift */; }; - F3F1138D2A705B6900DA852A /* ListItemModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */; }; - F5854ED12C220AC100938291 /* TableViewCellTokenSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */; }; - FD053A352224CA33009B6378 /* DatePickerControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD053A342224CA33009B6378 /* DatePickerControllerTests.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 8FD011C7228A831700D25925 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A5CEC14820D980B20016922A /* Project object */; - proxyType = 1; - remoteGlobalIDString = A5DA88FB226FAA01000A8EA8; - remoteInfo = OfficeUIFabricResources; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 566C664928CB994F0032314C /* Copy module.modulemap */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = include/FluentUI; - dstSubfolderSpec = 16; - files = ( - 566C664A28CB99830032314C /* module.modulemap in Copy module.modulemap */, - ); - name = "Copy module.modulemap"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0A84A6EF29EDC489005DBC3D /* SeparatorTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeparatorTokenSet.swift; sourceTree = "<group>"; }; - 0A8E61FA291DC11F009E412D /* CommandBarTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandBarTokenSet.swift; sourceTree = "<group>"; }; - 0AE3041C29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewHeaderFooterViewTokenSet.swift; sourceTree = "<group>"; }; - 0BCEFADD2485FEC00088CEE5 /* PopupMenuProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuProtocols.swift; sourceTree = "<group>"; }; - 1168630222E131CF0088B302 /* TabBarItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarItemView.swift; sourceTree = "<group>"; }; - 1168630322E131CF0088B302 /* TabBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarView.swift; sourceTree = "<group>"; }; - 118D9847230BBA2300BC0B72 /* TabBarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarItem.swift; sourceTree = "<group>"; }; - 3A9FC0F42A6AFAD40060A6BE /* BadgeFieldTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeFieldTokenSet.swift; sourceTree = "<group>"; }; - 3A9FC0F62A705C090060A6BE /* PeoplePickerTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeoplePickerTokenSet.swift; sourceTree = "<group>"; }; - 3AFB0FD529C1365600FEC1A9 /* MultilineCommandBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultilineCommandBar.swift; sourceTree = "<group>"; }; - 43488C44270FAD0200124C71 /* FluentNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentNotification.swift; sourceTree = "<group>"; }; - 497DC2D724185885008D86F8 /* PillButtonBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillButtonBar.swift; sourceTree = "<group>"; }; - 497DC2D824185885008D86F8 /* PillButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillButton.swift; sourceTree = "<group>"; }; - 4B2E373C2991CB53008929B4 /* BottomSheetTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetTokenSet.swift; sourceTree = "<group>"; }; - 4B4A2F2029A7E83100570CD4 /* LabelTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelTokenSet.swift; sourceTree = "<group>"; }; - 4B53505E27F63E3F0033B47F /* NotificationModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationModifiers.swift; sourceTree = "<group>"; }; - 4B8245D7293FC7A200CF0C77 /* TooltipTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipTokenSet.swift; sourceTree = "<group>"; }; - 4BBD651E2755FD9500A8B09E /* MSFNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFNotification.swift; sourceTree = "<group>"; }; - 4BDBE18828EC9E6F00314696 /* ShimmerTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmerTokenSet.swift; sourceTree = "<group>"; }; - 4BF01D9927B37CF8005B32F2 /* NotificationTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationTokenSet.swift; sourceTree = "<group>"; }; - 4BF01D9F27B3A861005B32F2 /* UIApplication+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Extensions.swift"; sourceTree = "<group>"; }; - 5303259926B31B6B00611D05 /* AvatarModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarModifiers.swift; sourceTree = "<group>"; }; - 5306074F26A1E6A4002D49CF /* AvatarGroupTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGroupTokenSet.swift; sourceTree = "<group>"; }; - 5306075126A1E6A4002D49CF /* AvatarGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarGroup.swift; sourceTree = "<group>"; }; - 530D9C5027EE388200BDCBBF /* SwiftUI+ViewPresentation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftUI+ViewPresentation.swift"; sourceTree = "<group>"; }; - 530D9C5227EE7B2C00BDCBBF /* SwiftUI+ViewAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftUI+ViewAnimation.swift"; sourceTree = "<group>"; }; - 532299FF27FE108400C016A2 /* MSFHeadsUpDisplay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MSFHeadsUpDisplay.swift; sourceTree = "<group>"; }; - 5328D96C26FBA3D600F3723B /* IndeterminateProgressBarTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IndeterminateProgressBarTokenSet.swift; sourceTree = "<group>"; }; - 5328D96D26FBA3D600F3723B /* IndeterminateProgressBarModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IndeterminateProgressBarModifiers.swift; sourceTree = "<group>"; }; - 5328D96F26FBA3D700F3723B /* IndeterminateProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IndeterminateProgressBar.swift; sourceTree = "<group>"; }; - 532FE3CE26EA6D73007539C0 /* ActivityIndicatorTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorTokenSet.swift; sourceTree = "<group>"; }; - 532FE3CF26EA6D73007539C0 /* ActivityIndicatorModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorModifiers.swift; sourceTree = "<group>"; }; - 532FE3D026EA6D74007539C0 /* ActivityIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicator.swift; sourceTree = "<group>"; }; - 5336B17027F77EB700B01E0D /* HUDModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HUDModifiers.swift; sourceTree = "<group>"; }; - 5336B17227F77EB700B01E0D /* HUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HUD.swift; sourceTree = "<group>"; }; - 5336B17327F77EB700B01E0D /* HeadsUpDisplay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadsUpDisplay.swift; sourceTree = "<group>"; }; - 5336B17427F77EB700B01E0D /* HUD.resources.xcfilelist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcfilelist; path = HUD.resources.xcfilelist; sourceTree = "<group>"; }; - 5336B17F27FB6D9B00B01E0D /* HeadsUpDisplayTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeadsUpDisplayTokenSet.swift; sourceTree = "<group>"; }; - 535559E22711411E0094A871 /* FluentThemedHostingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentThemedHostingController.swift; sourceTree = "<group>"; }; - 5373D5602694D65C0032A3B4 /* AvatarTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarTokenSet.swift; sourceTree = "<group>"; }; - 5373D5612694D65C0032A3B4 /* Avatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Avatar.swift; sourceTree = "<group>"; }; - 5373D5632694D65C0032A3B4 /* MSFAvatarPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MSFAvatarPresence.swift; sourceTree = "<group>"; }; - 5373D56D2694D66F0032A3B4 /* UIKit+SwiftUI_interoperability.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIKit+SwiftUI_interoperability.swift"; sourceTree = "<group>"; }; - 5373D56F2694D66F0032A3B4 /* SwiftUI+ViewModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftUI+ViewModifiers.swift"; sourceTree = "<group>"; }; - 53BCB0CD253A4E8C00620960 /* Obscurable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Obscurable.swift; sourceTree = "<group>"; }; - 53E2EE0427860D010086D30D /* MSFActivityIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MSFActivityIndicator.swift; sourceTree = "<group>"; }; - 53E2EE06278799B30086D30D /* MSFIndeterminateProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MSFIndeterminateProgressBar.swift; sourceTree = "<group>"; }; - 53FC90C02567300A008A06FD /* FluentUI_common.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_common.xcconfig; sourceTree = "<group>"; }; - 53FC90F525673626008A06FD /* FluentUI_release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_release.xcconfig; sourceTree = "<group>"; }; - 53FC90F625673626008A06FD /* FluentUI_debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_debug.xcconfig; sourceTree = "<group>"; }; - 53FC90F725673626008A06FD /* FluentUITests.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUITests.xcconfig; sourceTree = "<group>"; }; - 53FC90F925673627008A06FD /* FluentUILib_common.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUILib_common.xcconfig; sourceTree = "<group>"; }; - 53FC90FA25673627008A06FD /* FluentUIResources.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUIResources.xcconfig; sourceTree = "<group>"; }; - 566C664828CB97210032314C /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; }; - 66512A3729D3B30D003CF303 /* AvatarTitleViewTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarTitleViewTokenSet.swift; sourceTree = "<group>"; }; - 667E54012A12B6F800728F93 /* TwoLineTitleView+Navigation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TwoLineTitleView+Navigation.swift"; sourceTree = "<group>"; }; - 66963D0929CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwoLineTitleViewTokenSet.swift; sourceTree = "<group>"; }; - 66963D0F29CE244D006F5FA9 /* NavigationBarTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarTokenSet.swift; sourceTree = "<group>"; }; - 6EB4B25D270ED6450005B808 /* BadgeLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeLabel.swift; sourceTree = "<group>"; }; - 6ED4C11A2695A6E800C30BD6 /* UIBarButtonItem+BadgeValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem+BadgeValue.swift"; sourceTree = "<group>"; }; - 6ED4C11C2696AE4000C30BD6 /* BadgeLabelButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeLabelButton.swift; sourceTree = "<group>"; }; - 6F050B6829D3D16D0070D3D5 /* SideTabBarTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideTabBarTokenSet.swift; sourceTree = "<group>"; }; - 6F050B6A29D3D1900070D3D5 /* TabBarItemTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarItemTokenSet.swift; sourceTree = "<group>"; }; - 6F050B6C29D3D1A90070D3D5 /* TabBarTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarTokenSet.swift; sourceTree = "<group>"; }; - 6F050B6E29D3EA820070D3D5 /* PillButtonTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillButtonTokenSet.swift; sourceTree = "<group>"; }; - 6F050B7029D6213E0070D3D5 /* PopupMenuItemTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuItemTokenSet.swift; sourceTree = "<group>"; }; - 6F050B7429D6219D0070D3D5 /* PopupMenuTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuTokenSet.swift; sourceTree = "<group>"; }; - 6F2F218E2A12BFD900C50EAB /* BadgeLabelTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeLabelTokenSet.swift; sourceTree = "<group>"; }; - 6F3CB7EF29D3A2B700284353 /* DrawerTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawerTokenSet.swift; sourceTree = "<group>"; }; - 6F3CB7F129D3A5DE00284353 /* ResizingHandleTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResizingHandleTokenSet.swift; sourceTree = "<group>"; }; - 6FBFD62529CBB5F1002F3C81 /* SearchBarTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarTokenSet.swift; sourceTree = "<group>"; }; - 6FC3705D29E7707F0096B239 /* BadgeViewTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeViewTokenSet.swift; sourceTree = "<group>"; }; - 7D0931C224AAAC8C0072458A /* SideTabBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideTabBar.swift; sourceTree = "<group>"; }; - 8035CAAA2633A442007B3FD1 /* BottomCommandingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomCommandingController.swift; sourceTree = "<group>"; }; - 8035CACA26377C14007B3FD1 /* CommandingItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandingItem.swift; sourceTree = "<group>"; }; - 8035CADC2638E435007B3FD1 /* CommandingSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandingSection.swift; sourceTree = "<group>"; }; - 804EDE1428C00CA400371C6B /* ContentHeightResolutionContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentHeightResolutionContext.swift; sourceTree = "<group>"; }; - 80AECBD82629F18E005AF2F3 /* BottomSheetController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomSheetController.swift; sourceTree = "<group>"; }; - 80AECBF1262FC34E005AF2F3 /* BottomSheetPassthroughView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetPassthroughView.swift; sourceTree = "<group>"; }; - 8FA3CB5A246B19EA0049E431 /* ColorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorTests.swift; sourceTree = "<group>"; }; - 8FD01166228A820600D25925 /* libFluentUI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFluentUI.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 92016FF7299DF34A00660DB7 /* EmptyTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyTokenSet.swift; sourceTree = "<group>"; }; - 92079C8E26B66E5100D688DA /* CardNudgeModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudgeModifiers.swift; sourceTree = "<group>"; }; - 92088EF72666DB2C003F571A /* PersonaButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButton.swift; sourceTree = "<group>"; }; - 920945472703DDA000B38E1A /* CardNudgeTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudgeTokenSet.swift; sourceTree = "<group>"; }; - 92279B322B97C7DC00994D88 /* FluentButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentButtonStyle.swift; sourceTree = "<group>"; }; - 922A34DE27BB87990062721F /* TokenizedControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenizedControlView.swift; sourceTree = "<group>"; }; - 9231F10229BB99090079CD94 /* FluentTheme+Tokens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+Tokens.swift"; sourceTree = "<group>"; }; - 923DB9D2274CB65700D8E58A /* TokenizedControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenizedControl.swift; sourceTree = "<group>"; }; - 923DB9D3274CB65700D8E58A /* FluentTheme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentTheme.swift; sourceTree = "<group>"; }; - 923DB9D6274CB66D00D8E58A /* ControlHostingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlHostingView.swift; sourceTree = "<group>"; }; - 924268A1277AD9F700C5A452 /* FontTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontTests.swift; sourceTree = "<group>"; }; - 925728F6276D6AF800EE1019 /* ShadowInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowInfo.swift; sourceTree = "<group>"; }; - 925728F8276D6B5800EE1019 /* FontInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontInfo.swift; sourceTree = "<group>"; }; - 925D461B26FD133600179583 /* GlobalTokens.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalTokens.swift; sourceTree = "<group>"; }; - 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+visionOS.swift"; sourceTree = "<group>"; }; - 926FEEA92B45A8B4002C61D0 /* Compatibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Compatibility.swift; sourceTree = "<group>"; }; - 9275105426815A7100F12730 /* MSFPersonaButtonCarousel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFPersonaButtonCarousel.swift; sourceTree = "<group>"; }; - 927E34C62668350800998031 /* PersonaButtonTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonTokenSet.swift; sourceTree = "<group>"; }; - 927EB2BC278627440069753D /* PersonaButtonModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonModifiers.swift; sourceTree = "<group>"; }; - 929215B82B6C75E500D4EA9F /* AvatarTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarTests.swift; sourceTree = "<group>"; }; - 929DD255266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselTokenSet.swift; sourceTree = "<group>"; }; - 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarousel.swift; sourceTree = "<group>"; }; - 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentButtonToggleStyle.swift; sourceTree = "<group>"; }; - 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFCardNudge.swift; sourceTree = "<group>"; }; - 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipModifiers.swift; sourceTree = "<group>"; }; - 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFPersonaButton.swift; sourceTree = "<group>"; }; - 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaButtonCarouselModifiers.swift; sourceTree = "<group>"; }; - 92D5598026A0FD2800328FD3 /* CardNudge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardNudge.swift; sourceTree = "<group>"; }; - 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinearGradientInfo.swift; sourceTree = "<group>"; }; - 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ControlTokenSet.swift; sourceTree = "<group>"; }; - 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GlobalTokens+UIKit.swift"; sourceTree = "<group>"; }; - 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+DynamicColor.swift"; sourceTree = "<group>"; }; - 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FluentTheme+UIKit.swift"; sourceTree = "<group>"; }; - 92EE82AC27025A94009D52B5 /* TokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenSet.swift; sourceTree = "<group>"; }; - 94679F2A2BF55059004A1560 /* FluentListSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentListSection.swift; sourceTree = "<group>"; }; - 94679F2B2BF55059004A1560 /* FluentList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentList.swift; sourceTree = "<group>"; }; - 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListModifiers.swift; sourceTree = "<group>"; }; - 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarCommandGroupsView.swift; sourceTree = "<group>"; }; - A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "FluentUI-ios.xcassets"; path = "FluentUI/Resources/FluentUI-ios.xcassets"; sourceTree = "<group>"; }; - A5237ACA21DED7030040BF27 /* ResizingHandleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResizingHandleView.swift; sourceTree = "<group>"; }; - A5237ACC21ED6CA70040BF27 /* DrawerShadowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawerShadowView.swift; sourceTree = "<group>"; }; - A52648DB2316F4F9003342A0 /* BarButtonItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarButtonItems.swift; sourceTree = "<group>"; }; - A54D97D9217A5FC10072681A /* CALayer+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CALayer+Extensions.swift"; sourceTree = "<group>"; }; - A559BB7D212B6D100055E107 /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = "<group>"; }; - A559BB80212B6FA40055E107 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; }; - A559BB82212B7D870055E107 /* FluentUIFramework.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentUIFramework.swift; sourceTree = "<group>"; }; - A56CE7B522E68A7800AA77EE /* UIColor+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Extensions.swift"; sourceTree = "<group>"; }; - A589F853211BA03200471C23 /* Label.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Label.swift; sourceTree = "<group>"; }; - A5961F9C218A254D00E2A506 /* PopupMenuController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuController.swift; sourceTree = "<group>"; }; - A5961F9E218A256B00E2A506 /* PopupMenuItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuItem.swift; sourceTree = "<group>"; }; - A5961FA0218A25C400E2A506 /* PopupMenuSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuSection.swift; sourceTree = "<group>"; }; - A5961FA2218A25D100E2A506 /* PopupMenuItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuItemCell.swift; sourceTree = "<group>"; }; - A5961FA4218A260500E2A506 /* PopupMenuSectionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupMenuSectionHeaderView.swift; sourceTree = "<group>"; }; - A5961FA6218A2E4500E2A506 /* UIImage+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extensions.swift"; sourceTree = "<group>"; }; - A5B87AF3211E16360038C37C /* DrawerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DrawerController.swift; sourceTree = "<group>"; }; - A5B87AF4211E16360038C37C /* DrawerTransitionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DrawerTransitionAnimator.swift; sourceTree = "<group>"; }; - A5B87AF5211E16360038C37C /* DrawerPresentationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DrawerPresentationController.swift; sourceTree = "<group>"; }; - A5B87B03211E22B70038C37C /* DimmingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DimmingView.swift; sourceTree = "<group>"; }; - A5B87B05211E23650038C37C /* UIView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Extensions.swift"; sourceTree = "<group>"; }; - A5CEC15420D980B20016922A /* FluentUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FluentUI.h; sourceTree = "<group>"; }; - A5CEC15A20D980B30016922A /* FluentUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FluentUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - A5CEC15F20D980B30016922A /* FluentUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentUITests.swift; sourceTree = "<group>"; }; - A5CEC16120D980B30016922A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - A5CEC23020E451D00016922A /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = "<group>"; }; - A5DA88FC226FAA01000A8EA8 /* FluentUIResources-ios.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "FluentUIResources-ios.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - A5DA88FE226FAA01000A8EA8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - A5DCA76321224026005F4CB7 /* Separator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Separator.swift; sourceTree = "<group>"; }; - A5DF1EAC2213B26900CC741A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - B441478C228CDA130040E88E /* BooleanCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BooleanCell.swift; sourceTree = "<group>"; }; - B444D6B52183A9740002B4D4 /* BadgeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeView.swift; sourceTree = "<group>"; }; - B45EB78F219E310F008646A2 /* BadgeField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeField.swift; sourceTree = "<group>"; }; - B46D3F922151D95F0029772C /* PersonaCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaCell.swift; sourceTree = "<group>"; }; - B46D3F9C215985AC0029772C /* PersonaListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaListView.swift; sourceTree = "<group>"; }; - B47B58B722F8E5840078DE38 /* PeoplePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeoplePicker.swift; sourceTree = "<group>"; }; - B483323621DEB5A00022B4CC /* TouchForwardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TouchForwardingView.swift; sourceTree = "<group>"; }; - B498141321E424920077B48D /* TableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewCell.swift; sourceTree = "<group>"; }; - B4A8BBCC21BF6D6900D5E3ED /* BadgeStringExtractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeStringExtractor.swift; sourceTree = "<group>"; }; - B4BA27872319DC0D0001563C /* PersonaBadgeViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonaBadgeViewDataSource.swift; sourceTree = "<group>"; }; - B4E782C02176AD5E00A7DFCE /* ActionsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionsCell.swift; sourceTree = "<group>"; }; - B4E782C221793AB200A7DFCE /* ActivityIndicatorCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorCell.swift; sourceTree = "<group>"; }; - B4E782C62179509A00A7DFCE /* CenteredLabelCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CenteredLabelCell.swift; sourceTree = "<group>"; }; - B4EF53C2215AF1AB00573E8F /* Persona.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persona.swift; sourceTree = "<group>"; }; - B4EF66502294A664007FEAB0 /* TableViewHeaderFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableViewHeaderFooterView.swift; sourceTree = "<group>"; }; - C0938E43235E8ED500256251 /* AnimationSynchronizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationSynchronizer.swift; sourceTree = "<group>"; }; - C0A0D76B233AEF6C00F432FD /* ShimmerLinesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShimmerLinesView.swift; sourceTree = "<group>"; }; - C0EAAEAC2347E1DF00C7244E /* ShimmerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmerView.swift; sourceTree = "<group>"; }; - C708B04B260A8696007190FA /* SegmentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentItem.swift; sourceTree = "<group>"; }; - C708B055260A86FA007190FA /* SegmentPillButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentPillButton.swift; sourceTree = "<group>"; }; - C7752C7B2790C1F40012F860 /* FluentUILib_release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUILib_release.xcconfig; sourceTree = "<group>"; }; - C7752C7C2790C1F40012F860 /* FluentUILib_debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUILib_debug.xcconfig; sourceTree = "<group>"; }; - C77A04B625F03DD1001B3EB6 /* String+Date.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Date.swift"; sourceTree = "<group>"; }; - CCC18C2B2501B22F00BE830E /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = "<group>"; }; - D6296DAD295B7C9F002E8EB6 /* ColorProviding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorProviding.swift; sourceTree = "<group>"; }; - EC04E65729C27359005F8BA0 /* FocusRingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FocusRingView.swift; sourceTree = "<group>"; }; - EC1C31722923022E00CF052C /* SegmentedControlTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentedControlTokenSet.swift; sourceTree = "<group>"; }; - EC5982D727BF348700FD048D /* MSFAvatar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFAvatar.swift; sourceTree = "<group>"; }; - EC5982D927C703ED00FD048D /* ShapeCutout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapeCutout.swift; sourceTree = "<group>"; }; - EC65F78F292EDCEF002A1A23 /* ButtonTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonTokenSet.swift; sourceTree = "<group>"; }; - EC98E2AC2980C15C00B9DF91 /* FluentTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentTextField.swift; sourceTree = "<group>"; }; - EC98E2AF298D978C00B9DF91 /* FluentTextFieldInternal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentTextFieldInternal.swift; sourceTree = "<group>"; }; - EC98E2B1298D97EC00B9DF91 /* TextFieldTokenSet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldTokenSet.swift; sourceTree = "<group>"; }; - EC98E2B3298D989100B9DF91 /* FluentTextInputError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentTextInputError.swift; sourceTree = "<group>"; }; - ECA9218527A3301C00B66117 /* MSFAvatarGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSFAvatarGroup.swift; sourceTree = "<group>"; }; - ECA9218927A33A2D00B66117 /* AvatarGroupModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarGroupModifiers.swift; sourceTree = "<group>"; }; - ECEBA8FB25EDF3380048EE24 /* SegmentedControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControl.swift; sourceTree = "<group>"; }; - ECF3C9872A67495A00CA35FC /* BottomCommandingTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BottomCommandingTokenSet.swift; sourceTree = "<group>"; }; - F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListActionItem.swift; sourceTree = "<group>"; }; - F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListSectionHeader.swift; sourceTree = "<group>"; }; - F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FluentListSectionFooter.swift; sourceTree = "<group>"; }; - F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListActionItemModifiers.swift; sourceTree = "<group>"; }; - F3F113882A705AD500DA852A /* ListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItem.swift; sourceTree = "<group>"; }; - F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItemModifiers.swift; sourceTree = "<group>"; }; - F5784DB9285D031800DBEAD6 /* docs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = docs; sourceTree = "<group>"; }; - F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewCellTokenSet.swift; sourceTree = "<group>"; }; - FC414E1E258876FB00069E73 /* CommandBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBar.swift; sourceTree = "<group>"; }; - FC414E242588798000069E73 /* CommandBarButtonGroupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarButtonGroupView.swift; sourceTree = "<group>"; }; - FC414E2A25887A4B00069E73 /* CommandBarButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarButton.swift; sourceTree = "<group>"; }; - FC414E4E2588B65C00069E73 /* CommandBarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandBarItem.swift; sourceTree = "<group>"; }; - FD053A342224CA33009B6378 /* DatePickerControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerControllerTests.swift; sourceTree = "<group>"; }; - FD0D29D52151A3D700E8655E /* CardPresenterNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresenterNavigationController.swift; sourceTree = "<group>"; }; - FD1FAE1A2272464B00A5DBA4 /* GenericDateTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericDateTimePicker.swift; sourceTree = "<group>"; }; - FD256C5A2183B90B00EC9588 /* DatePickerSelectionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerSelectionManager.swift; sourceTree = "<group>"; }; - FD41C86E22DD13230086F899 /* ContentScrollViewTraits.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentScrollViewTraits.swift; sourceTree = "<group>"; }; - FD41C87022DD13230086F899 /* ShyHeaderController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShyHeaderController.swift; sourceTree = "<group>"; }; - FD41C87122DD13230086F899 /* ShyHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShyHeaderView.swift; sourceTree = "<group>"; }; - FD41C87A22DD13230086F899 /* AvatarTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarTitleView.swift; sourceTree = "<group>"; }; - FD41C87B22DD13230086F899 /* NavigationBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationBar.swift; sourceTree = "<group>"; }; - FD41C87E22DD13230086F899 /* SearchBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; }; - FD41C87F22DD13230086F899 /* NavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationController.swift; sourceTree = "<group>"; }; - FD41C88022DD13230086F899 /* NavigationAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationAnimator.swift; sourceTree = "<group>"; }; - FD41C8B122DD3BB70086F899 /* UIScrollView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIScrollView+Extensions.swift"; sourceTree = "<group>"; }; - FD41C8B422DD3EA20086F899 /* NSLayoutConstraint+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSLayoutConstraint+Extensions.swift"; sourceTree = "<group>"; }; - FD41C8BD22DD47120086F899 /* UINavigationItem+Navigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationItem+Navigation.swift"; sourceTree = "<group>"; }; - FD4F2A1A2148937100C437D6 /* PageCardPresenterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageCardPresenterController.swift; sourceTree = "<group>"; }; - FD4F2A1F214AE20400C437D6 /* DatePickerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatePickerController.swift; sourceTree = "<group>"; }; - FD599D0121348439008845EE /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = "<group>"; }; - FD599D052134A682008845EE /* AccessibleViewDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessibleViewDelegate.swift; sourceTree = "<group>"; }; - FD599D072134AB0E008845EE /* CalendarViewWeekdayHeadingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewWeekdayHeadingView.swift; sourceTree = "<group>"; }; - FD599D092134AB15008845EE /* CalendarViewLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewLayout.swift; sourceTree = "<group>"; }; - FD599D0B2134AB1E008845EE /* CalendarViewDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewDataSource.swift; sourceTree = "<group>"; }; - FD5ADBF32190CDC80005A9AF /* DateTimePickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateTimePickerController.swift; sourceTree = "<group>"; }; - FD5BBE3A214B2F44008964B4 /* Date+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+Extensions.swift"; sourceTree = "<group>"; }; - FD5BBE40214C6AF3008964B4 /* TwoLineTitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwoLineTitleView.swift; sourceTree = "<group>"; }; - FD5BBE42214C73CE008964B4 /* EasyTapButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EasyTapButton.swift; sourceTree = "<group>"; }; - FD7254E82147059D002F4069 /* Calendar+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Calendar+Extensions.swift"; sourceTree = "<group>"; }; - FD777528219E3F6C00033D58 /* DayOfMonth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayOfMonth.swift; sourceTree = "<group>"; }; - FD77752A219E455A00033D58 /* AccessibilityContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessibilityContainerView.swift; sourceTree = "<group>"; }; - FD77752C219E62E100033D58 /* DateTimePickerViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateTimePickerViewLayout.swift; sourceTree = "<group>"; }; - FD77752F21A490BA00033D58 /* DateTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateTimePicker.swift; sourceTree = "<group>"; }; - FD7DF05B21FA7F5000857267 /* Tooltip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tooltip.swift; sourceTree = "<group>"; }; - FD7DF05D21FA7FC100857267 /* TooltipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipView.swift; sourceTree = "<group>"; }; - FD7DF05F21FA83C900857267 /* TooltipViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipViewController.swift; sourceTree = "<group>"; }; - FD8D26422253FF330078E1D3 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26432253FF330078E1D3 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ar; path = ar.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26442253FF3E0078E1D3 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26452253FF3F0078E1D3 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ca; path = ca.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26462253FF470078E1D3 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26472253FF470078E1D3 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = cs; path = cs.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26482253FF4F0078E1D3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26492253FF500078E1D3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = da; path = da.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D264A2254013E0078E1D3 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D264B2254013E0078E1D3 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D264C225401660078E1D3 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D264D225401660078E1D3 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = el; path = el.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D264E225401880078E1D3 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D264F225401880078E1D3 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "en-GB"; path = "en-GB.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D2650225401A10078E1D3 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D2651225401A10078E1D3 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "es-MX"; path = "es-MX.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D2652225401AA0078E1D3 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2653225401AA0078E1D3 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = es; path = es.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2654225401B90078E1D3 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2655225401B90078E1D3 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fi; path = fi.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2656225401C10078E1D3 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2657225401C20078E1D3 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fr; path = fr.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2658225401CD0078E1D3 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2659225401CD0078E1D3 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = he; path = he.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D265A225401D90078E1D3 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D265B225401D90078E1D3 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = hi; path = hi.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D265C225401E50078E1D3 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D265D225401E50078E1D3 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = hr; path = hr.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D265E225401F20078E1D3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D265F225401F30078E1D3 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = hu; path = hu.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2660225401FA0078E1D3 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2661225401FB0078E1D3 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = id; path = id.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2662225402020078E1D3 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2663225402030078E1D3 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = it; path = it.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26642254020E0078E1D3 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26652254020E0078E1D3 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ja; path = ja.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2666225402160078E1D3 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2667225402160078E1D3 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ko; path = ko.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26682254021D0078E1D3 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26692254021E0078E1D3 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ms; path = ms.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D266A2254022E0078E1D3 /* nb-NO */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "nb-NO"; path = "nb-NO.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D266B2254022E0078E1D3 /* nb-NO */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "nb-NO"; path = "nb-NO.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D266C225402DC0078E1D3 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D266D225402DC0078E1D3 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D266E225402E60078E1D3 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D266F225402E60078E1D3 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = pl; path = pl.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2670225402F00078E1D3 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D2671225402F10078E1D3 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D2672225402F60078E1D3 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D2673225402F60078E1D3 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-PT"; path = "pt-PT.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D2674225403000078E1D3 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2675225403000078E1D3 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ro; path = ro.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2676225403070078E1D3 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2677225403070078E1D3 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D26782254030E0078E1D3 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26792254030E0078E1D3 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = sk; path = sk.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D267A225403160078E1D3 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D267B225403160078E1D3 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = sv; path = sv.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D267C2254031B0078E1D3 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D267D2254031B0078E1D3 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = th; path = th.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D267E225403210078E1D3 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D267F225403220078E1D3 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = tr; path = tr.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2680225403290078E1D3 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D26812254032A0078E1D3 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = uk; path = uk.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2682225403300078E1D3 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = "<group>"; }; - FD8D2683225403300078E1D3 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = vi; path = vi.lproj/Localizable.stringsdict; sourceTree = "<group>"; }; - FD8D2684225403360078E1D3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D2685225403360078E1D3 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD8D26862254033B0078E1D3 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = "<group>"; }; - FD8D26872254033B0078E1D3 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.stringsdict"; sourceTree = "<group>"; }; - FD9758062191118D00B67319 /* DateTimePickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimePickerView.swift; sourceTree = "<group>"; }; - FD9758072191118E00B67319 /* DateTimePickerViewDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimePickerViewDataSource.swift; sourceTree = "<group>"; }; - FD9758082191118E00B67319 /* DateTimePickerViewComponentTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimePickerViewComponentTableView.swift; sourceTree = "<group>"; }; - FD9758092191118E00B67319 /* DateTimePickerViewComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimePickerViewComponent.swift; sourceTree = "<group>"; }; - FD97580A2191118E00B67319 /* DateTimePickerViewComponentCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateTimePickerViewComponentCell.swift; sourceTree = "<group>"; }; - FD9A5C862179464F00D224D9 /* DateComponents+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DateComponents+Extensions.swift"; sourceTree = "<group>"; }; - FD9DA7B4232C33A80013E41B /* UIViewController+Navigation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+Navigation.swift"; sourceTree = "<group>"; }; - FDA1AF8B21484625001AE720 /* BlurringView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlurringView.swift; sourceTree = "<group>"; }; - FDA1AF90214871B5001AE720 /* CardTransitionAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardTransitionAnimator.swift; sourceTree = "<group>"; }; - FDA1AF9221487225001AE720 /* CardPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentationController.swift; sourceTree = "<group>"; }; - FDD454ED21405B390006E84E /* DotView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DotView.swift; sourceTree = "<group>"; }; - FDF41ED82141A02200EC527C /* CalendarConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarConfiguration.swift; sourceTree = "<group>"; }; - FDFB8AEA21361C950046850A /* CalendarViewMonthBannerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewMonthBannerView.swift; sourceTree = "<group>"; }; - FDFB8AEC21361C9D0046850A /* CalendarViewDayTodayCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewDayTodayCell.swift; sourceTree = "<group>"; }; - FDFB8AED21361C9D0046850A /* CalendarViewDayMonthCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewDayMonthCell.swift; sourceTree = "<group>"; }; - FDFB8AEE21361C9D0046850A /* CalendarViewDayCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewDayCell.swift; sourceTree = "<group>"; }; - FDFB8AEF21361C9D0046850A /* CalendarViewDayMonthYearCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarViewDayMonthYearCell.swift; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - A5CEC15720D980B30016922A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 923DF2E72712B6AB00637646 /* libFluentUI.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1168630122E131A20088B302 /* Tab Bar */ = { - isa = PBXGroup; - children = ( - 7D0931C224AAAC8C0072458A /* SideTabBar.swift */, - 6F050B6829D3D16D0070D3D5 /* SideTabBarTokenSet.swift */, - 118D9847230BBA2300BC0B72 /* TabBarItem.swift */, - 6F050B6A29D3D1900070D3D5 /* TabBarItemTokenSet.swift */, - 1168630222E131CF0088B302 /* TabBarItemView.swift */, - 6F050B6C29D3D1A90070D3D5 /* TabBarTokenSet.swift */, - 1168630322E131CF0088B302 /* TabBarView.swift */, - ); - path = "Tab Bar"; - sourceTree = "<group>"; - }; - 3AABE97B29DF4CAC00406C6E /* MultilineCommandBar */ = { - isa = PBXGroup; - children = ( - 3AFB0FD529C1365600FEC1A9 /* MultilineCommandBar.swift */, - ); - path = MultilineCommandBar; - sourceTree = "<group>"; - }; - 497DC2D62418585D008D86F8 /* Pill Button Bar */ = { - isa = PBXGroup; - children = ( - 497DC2D824185885008D86F8 /* PillButton.swift */, - 497DC2D724185885008D86F8 /* PillButtonBar.swift */, - 6F050B6E29D3EA820070D3D5 /* PillButtonTokenSet.swift */, - ); - path = "Pill Button Bar"; - sourceTree = "<group>"; - }; - 4BA9B8B5279F2940007536F5 /* Notification */ = { - isa = PBXGroup; - children = ( - 43488C44270FAD0200124C71 /* FluentNotification.swift */, - 4BBD651E2755FD9500A8B09E /* MSFNotification.swift */, - 4B53505E27F63E3F0033B47F /* NotificationModifiers.swift */, - 4BF01D9927B37CF8005B32F2 /* NotificationTokenSet.swift */, - ); - path = Notification; - sourceTree = "<group>"; - }; - 5306074E26A1E6A4002D49CF /* AvatarGroup */ = { - isa = PBXGroup; - children = ( - 5306075126A1E6A4002D49CF /* AvatarGroup.swift */, - ECA9218927A33A2D00B66117 /* AvatarGroupModifiers.swift */, - ECA9218527A3301C00B66117 /* MSFAvatarGroup.swift */, - 5306074F26A1E6A4002D49CF /* AvatarGroupTokenSet.swift */, - ); - path = AvatarGroup; - sourceTree = "<group>"; - }; - 5314DFE625F000740099271A /* Separator */ = { - isa = PBXGroup; - children = ( - A5DCA76321224026005F4CB7 /* Separator.swift */, - 0A84A6EF29EDC489005DBC3D /* SeparatorTokenSet.swift */, - ); - path = Separator; - sourceTree = "<group>"; - }; - 5314DFEB25F002240099271A /* ActivityIndicator */ = { - isa = PBXGroup; - children = ( - 532FE3D026EA6D74007539C0 /* ActivityIndicator.swift */, - 532FE3CF26EA6D73007539C0 /* ActivityIndicatorModifiers.swift */, - 532FE3CE26EA6D73007539C0 /* ActivityIndicatorTokenSet.swift */, - 53E2EE0427860D010086D30D /* MSFActivityIndicator.swift */, - ); - path = ActivityIndicator; - sourceTree = "<group>"; - }; - 5314DFEC25F0029C0099271A /* Button */ = { - isa = PBXGroup; - children = ( - A5CEC23020E451D00016922A /* Button.swift */, - EC65F78F292EDCEF002A1A23 /* ButtonTokenSet.swift */, - 92279B322B97C7DC00994D88 /* FluentButtonStyle.swift */, - 929F2ACE2BB77ED100683EA8 /* FluentButtonToggleStyle.swift */, - ); - path = Button; - sourceTree = "<group>"; - }; - 5314DFEF25F003C60099271A /* DotView */ = { - isa = PBXGroup; - children = ( - FDD454ED21405B390006E84E /* DotView.swift */, - ); - path = DotView; - sourceTree = "<group>"; - }; - 5314DFF025F0042E0099271A /* Label */ = { - isa = PBXGroup; - children = ( - A589F853211BA03200471C23 /* Label.swift */, - 6EB4B25D270ED6450005B808 /* BadgeLabel.swift */, - 4B4A2F2029A7E83100570CD4 /* LabelTokenSet.swift */, - 6F2F218E2A12BFD900C50EAB /* BadgeLabelTokenSet.swift */, - ); - path = Label; - sourceTree = "<group>"; - }; - 5314DFF325F006060099271A /* TouchForwardingView */ = { - isa = PBXGroup; - children = ( - B483323621DEB5A00022B4CC /* TouchForwardingView.swift */, - ); - path = TouchForwardingView; - sourceTree = "<group>"; - }; - 5314DFF425F0069C0099271A /* IndeterminateProgressBar */ = { - isa = PBXGroup; - children = ( - 5328D96F26FBA3D700F3723B /* IndeterminateProgressBar.swift */, - 5328D96D26FBA3D600F3723B /* IndeterminateProgressBarModifiers.swift */, - 5328D96C26FBA3D600F3723B /* IndeterminateProgressBarTokenSet.swift */, - 53E2EE06278799B30086D30D /* MSFIndeterminateProgressBar.swift */, - ); - path = IndeterminateProgressBar; - sourceTree = "<group>"; - }; - 5314DFF525F007020099271A /* EasyTapButton */ = { - isa = PBXGroup; - children = ( - FD5BBE42214C73CE008964B4 /* EasyTapButton.swift */, - ); - path = EasyTapButton; - sourceTree = "<group>"; - }; - 5314DFF625F0079B0099271A /* BarButtonItems */ = { - isa = PBXGroup; - children = ( - A52648DB2316F4F9003342A0 /* BarButtonItems.swift */, - ); - path = BarButtonItems; - sourceTree = "<group>"; - }; - 5314DFF725F007FF0099271A /* ResizingHandleView */ = { - isa = PBXGroup; - children = ( - A5237ACA21DED7030040BF27 /* ResizingHandleView.swift */, - 6F3CB7F129D3A5DE00284353 /* ResizingHandleTokenSet.swift */, - ); - path = ResizingHandleView; - sourceTree = "<group>"; - }; - 5314DFF825F008870099271A /* TwoLineTitleView */ = { - isa = PBXGroup; - children = ( - FD5BBE40214C6AF3008964B4 /* TwoLineTitleView.swift */, - 66963D0929CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift */, - ); - path = TwoLineTitleView; - sourceTree = "<group>"; - }; - 5314DFF925F008F10099271A /* Obscurable */ = { - isa = PBXGroup; - children = ( - FDA1AF8B21484625001AE720 /* BlurringView.swift */, - A5B87B03211E22B70038C37C /* DimmingView.swift */, - 53BCB0CD253A4E8C00620960 /* Obscurable.swift */, - ); - path = Obscurable; - sourceTree = "<group>"; - }; - 53FC90BE25672F97008A06FD /* xcode */ = { - isa = PBXGroup; - children = ( - 53FC90C02567300A008A06FD /* FluentUI_common.xcconfig */, - 53FC90F625673626008A06FD /* FluentUI_debug.xcconfig */, - 53FC90F525673626008A06FD /* FluentUI_release.xcconfig */, - 53FC90F925673627008A06FD /* FluentUILib_common.xcconfig */, - C7752C7C2790C1F40012F860 /* FluentUILib_debug.xcconfig */, - C7752C7B2790C1F40012F860 /* FluentUILib_release.xcconfig */, - 53FC90FA25673627008A06FD /* FluentUIResources.xcconfig */, - 53FC90F725673626008A06FD /* FluentUITests.xcconfig */, - ); - path = xcode; - sourceTree = "<group>"; - }; - 6FBFD62429CBB5B9002F3C81 /* SearchBar */ = { - isa = PBXGroup; - children = ( - FD41C87E22DD13230086F899 /* SearchBar.swift */, - 6FBFD62529CBB5F1002F3C81 /* SearchBarTokenSet.swift */, - ); - path = SearchBar; - sourceTree = "<group>"; - }; - 80B1F6F52628CDEB004DFEE5 /* Bottom Sheet */ = { - isa = PBXGroup; - children = ( - 80AECBD82629F18E005AF2F3 /* BottomSheetController.swift */, - 80AECBF1262FC34E005AF2F3 /* BottomSheetPassthroughView.swift */, - 4B2E373C2991CB53008929B4 /* BottomSheetTokenSet.swift */, - 804EDE1428C00CA400371C6B /* ContentHeightResolutionContext.swift */, - ); - path = "Bottom Sheet"; - sourceTree = "<group>"; - }; - 80B52538264CA5BC00E3FD32 /* Bottom Commanding */ = { - isa = PBXGroup; - children = ( - 8035CAAA2633A442007B3FD1 /* BottomCommandingController.swift */, - ECF3C9872A67495A00CA35FC /* BottomCommandingTokenSet.swift */, - 8035CACA26377C14007B3FD1 /* CommandingItem.swift */, - 8035CADC2638E435007B3FD1 /* CommandingSection.swift */, - ); - path = "Bottom Commanding"; - sourceTree = "<group>"; - }; - 922AF01926615B03005DB168 /* PersonaButton */ = { - isa = PBXGroup; - children = ( - 92B7E6A12684262900EFC15E /* MSFPersonaButton.swift */, - 92088EF72666DB2C003F571A /* PersonaButton.swift */, - 927EB2BC278627440069753D /* PersonaButtonModifiers.swift */, - 927E34C62668350800998031 /* PersonaButtonTokenSet.swift */, - ); - path = PersonaButton; - sourceTree = "<group>"; - }; - 923DF2E62712B6AB00637646 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 925D461926FD124B00179583 /* Theme */ = { - isa = PBXGroup; - children = ( - 925D461A26FD126800179583 /* Tokens */, - 923DB9D3274CB65700D8E58A /* FluentTheme.swift */, - 9231F10229BB99090079CD94 /* FluentTheme+Tokens.swift */, - 92ECB2DE2BE06BCB00404D79 /* FluentTheme+UIKit.swift */, - 926B4C992B8E94F6001EBA16 /* FluentTheme+visionOS.swift */, - ); - path = Theme; - sourceTree = "<group>"; - }; - 925D461A26FD126800179583 /* Tokens */ = { - isa = PBXGroup; - children = ( - 92DEE2232723D34400E31ED0 /* ControlTokenSet.swift */, - 92016FF7299DF34A00660DB7 /* EmptyTokenSet.swift */, - 925728F8276D6B5800EE1019 /* FontInfo.swift */, - 925D461B26FD133600179583 /* GlobalTokens.swift */, - 92ECB2DA2BE0697F00404D79 /* GlobalTokens+UIKit.swift */, - 92D5FDFA28A713990087894B /* LinearGradientInfo.swift */, - 925728F6276D6AF800EE1019 /* ShadowInfo.swift */, - 923DB9D2274CB65700D8E58A /* TokenizedControl.swift */, - 922A34DE27BB87990062721F /* TokenizedControlView.swift */, - 92EE82AC27025A94009D52B5 /* TokenSet.swift */, - ); - path = Tokens; - sourceTree = "<group>"; - }; - 92D5597C26A0FC9700328FD3 /* Card Nudge */ = { - isa = PBXGroup; - children = ( - 92D5598026A0FD2800328FD3 /* CardNudge.swift */, - 92079C8E26B66E5100D688DA /* CardNudgeModifiers.swift */, - 920945472703DDA000B38E1A /* CardNudgeTokenSet.swift */, - 92A1E4F326A791590007ED60 /* MSFCardNudge.swift */, - ); - path = "Card Nudge"; - sourceTree = "<group>"; - }; - 92F2C5FD267287CF0087C65B /* PersonaButtonCarousel */ = { - isa = PBXGroup; - children = ( - 9275105426815A7100F12730 /* MSFPersonaButtonCarousel.swift */, - 929DD258266ED3B600E8175E /* PersonaButtonCarousel.swift */, - 92D49053278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift */, - 929DD255266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift */, - ); - path = PersonaButtonCarousel; - sourceTree = "<group>"; - }; - A5961F9B218A251E00E2A506 /* Popup Menu */ = { - isa = PBXGroup; - children = ( - A5961F9C218A254D00E2A506 /* PopupMenuController.swift */, - A5961F9E218A256B00E2A506 /* PopupMenuItem.swift */, - A5961FA0218A25C400E2A506 /* PopupMenuSection.swift */, - A5961FA2218A25D100E2A506 /* PopupMenuItemCell.swift */, - A5961FA4218A260500E2A506 /* PopupMenuSectionHeaderView.swift */, - 0BCEFADD2485FEC00088CEE5 /* PopupMenuProtocols.swift */, - 6F050B7029D6213E0070D3D5 /* PopupMenuItemTokenSet.swift */, - 6F050B7429D6219D0070D3D5 /* PopupMenuTokenSet.swift */, - ); - path = "Popup Menu"; - sourceTree = "<group>"; - }; - A5B87AED211BCA4A0038C37C /* Extensions */ = { - isa = PBXGroup; - children = ( - 92ECB2DC2BE069D100404D79 /* Color+DynamicColor.swift */, - FD41C8B422DD3EA20086F899 /* NSLayoutConstraint+Extensions.swift */, - A559BB7D212B6D100055E107 /* String+Extension.swift */, - A56CE7B522E68A7800AA77EE /* UIColor+Extensions.swift */, - A5961FA6218A2E4500E2A506 /* UIImage+Extensions.swift */, - FD41C8B122DD3BB70086F899 /* UIScrollView+Extensions.swift */, - A5B87B05211E23650038C37C /* UIView+Extensions.swift */, - 4BF01D9F27B3A861005B32F2 /* UIApplication+Extensions.swift */, - ); - path = Extensions; - sourceTree = "<group>"; - }; - A5B87AF2211E13D00038C37C /* Drawer */ = { - isa = PBXGroup; - children = ( - A54D97D9217A5FC10072681A /* CALayer+Extensions.swift */, - A5B87AF3211E16360038C37C /* DrawerController.swift */, - A5B87AF5211E16360038C37C /* DrawerPresentationController.swift */, - A5237ACC21ED6CA70040BF27 /* DrawerShadowView.swift */, - A5B87AF4211E16360038C37C /* DrawerTransitionAnimator.swift */, - 6F3CB7EF29D3A2B700284353 /* DrawerTokenSet.swift */, - ); - path = Drawer; - sourceTree = "<group>"; - }; - A5CEC14720D980B20016922A = { - isa = PBXGroup; - children = ( - F5784DB9285D031800DBEAD6 /* docs */, - A257F82B251D98F3002CAA6E /* FluentUI-ios.xcassets */, - A5CEC15320D980B20016922A /* FluentUI */, - A5DA88FD226FAA01000A8EA8 /* FluentUI.Resources */, - A5CEC15E20D980B30016922A /* FluentUI.Tests */, - 53FC90BE25672F97008A06FD /* xcode */, - A5CEC15220D980B20016922A /* Products */, - 923DF2E62712B6AB00637646 /* Frameworks */, - ); - sourceTree = "<group>"; - usesTabs = 0; - }; - A5CEC15220D980B20016922A /* Products */ = { - isa = PBXGroup; - children = ( - A5CEC15A20D980B30016922A /* FluentUITests.xctest */, - A5DA88FC226FAA01000A8EA8 /* FluentUIResources-ios.bundle */, - 8FD01166228A820600D25925 /* libFluentUI.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - A5CEC15320D980B20016922A /* FluentUI */ = { - isa = PBXGroup; - children = ( - 5314DFEB25F002240099271A /* ActivityIndicator */, - C77A04F325F04CFB001B3EB6 /* Avatar */, - 5306074E26A1E6A4002D49CF /* AvatarGroup */, - B4F118EA21C8270F00855942 /* Badge Field */, - 5314DFF625F0079B0099271A /* BarButtonItems */, - 80B52538264CA5BC00E3FD32 /* Bottom Commanding */, - 80B1F6F52628CDEB004DFEE5 /* Bottom Sheet */, - 5314DFEC25F0029C0099271A /* Button */, - FDFB8AE921361C860046850A /* Calendar */, - CCC18C2A2501B1A900BE830E /* Card */, - 92D5597C26A0FC9700328FD3 /* Card Nudge */, - FC414E1D258876D400069E73 /* Command Bar */, - A5CEC16B20D98EBF0016922A /* Core */, - FD599D0021347FA0008845EE /* Date Time Pickers */, - 5314DFEF25F003C60099271A /* DotView */, - A5B87AF2211E13D00038C37C /* Drawer */, - 5314DFF525F007020099271A /* EasyTapButton */, - A5B87AED211BCA4A0038C37C /* Extensions */, - B483323121CC71700022B4CC /* HUD */, - 5314DFF425F0069C0099271A /* IndeterminateProgressBar */, - 5314DFF025F0042E0099271A /* Label */, - F3F113872A705AC300DA852A /* List */, - 3AABE97B29DF4CAC00406C6E /* MultilineCommandBar */, - FD41C86D22DD12A20086F899 /* Navigation */, - 4BA9B8B5279F2940007536F5 /* Notification */, - 5314DFF925F008F10099271A /* Obscurable */, - C77A04EB25F0469C001B3EB6 /* Other Cells */, - B426613C214731AC00E25423 /* People Picker */, - 922AF01926615B03005DB168 /* PersonaButton */, - 92F2C5FD267287CF0087C65B /* PersonaButtonCarousel */, - 497DC2D62418585D008D86F8 /* Pill Button Bar */, - A5961F9B218A251E00E2A506 /* Popup Menu */, - FD7254EE2147382D002F4069 /* Presenters */, - 5314DFF725F007FF0099271A /* ResizingHandleView */, - ECEBA8F625EDEFF70048EE24 /* SegmentedControl */, - 5314DFE625F000740099271A /* Separator */, - C0A0D75D233AEA9900F432FD /* Shimmer */, - 1168630122E131A20088B302 /* Tab Bar */, - B444D6B421825B510002B4D4 /* Table View */, - F5854ED02C220AC100938291 /* TableViewListShared */, - EC98E2AB2980C0C000B9DF91 /* TextField */, - FD7DF05A21FA7F3200857267 /* Tooltip */, - 5314DFF325F006060099271A /* TouchForwardingView */, - 5314DFF825F008870099271A /* TwoLineTitleView */, - C0938E42235E8EAF00256251 /* Utilities */, - A5CEC17020D996120016922A /* Resources */, - A5CEC25720E6A64E0016922A /* Configuration */, - ); - path = FluentUI; - sourceTree = "<group>"; - }; - A5CEC15E20D980B30016922A /* FluentUI.Tests */ = { - isa = PBXGroup; - children = ( - 929215B82B6C75E500D4EA9F /* AvatarTests.swift */, - 8FA3CB5A246B19EA0049E431 /* ColorTests.swift */, - FD053A342224CA33009B6378 /* DatePickerControllerTests.swift */, - A5CEC15F20D980B30016922A /* FluentUITests.swift */, - 924268A1277AD9F700C5A452 /* FontTests.swift */, - A5CEC16120D980B30016922A /* Info.plist */, - ); - path = FluentUI.Tests; - sourceTree = "<group>"; - }; - A5CEC16B20D98EBF0016922A /* Core */ = { - isa = PBXGroup; - children = ( - 925D461926FD124B00179583 /* Theme */, - D6296DAD295B7C9F002E8EB6 /* ColorProviding.swift */, - 926FEEA92B45A8B4002C61D0 /* Compatibility.swift */, - 923DB9D6274CB66D00D8E58A /* ControlHostingView.swift */, - 535559E22711411E0094A871 /* FluentThemedHostingController.swift */, - A559BB82212B7D870055E107 /* FluentUIFramework.swift */, - EC04E65729C27359005F8BA0 /* FocusRingView.swift */, - 530D9C5227EE7B2C00BDCBBF /* SwiftUI+ViewAnimation.swift */, - 5373D56F2694D66F0032A3B4 /* SwiftUI+ViewModifiers.swift */, - 530D9C5027EE388200BDCBBF /* SwiftUI+ViewPresentation.swift */, - 5373D56D2694D66F0032A3B4 /* UIKit+SwiftUI_interoperability.swift */, - 566C664828CB97210032314C /* module.modulemap */, - ); - path = Core; - sourceTree = "<group>"; - }; - A5CEC17020D996120016922A /* Resources */ = { - isa = PBXGroup; - children = ( - A5CEC17320D997CF0016922A /* Localization */, - ); - path = Resources; - sourceTree = "<group>"; - }; - A5CEC17320D997CF0016922A /* Localization */ = { - isa = PBXGroup; - children = ( - A559BB81212B6FA40055E107 /* Localizable.strings */, - A5DF1EAD2213B26900CC741A /* Localizable.stringsdict */, - ); - path = Localization; - sourceTree = "<group>"; - }; - A5CEC25720E6A64E0016922A /* Configuration */ = { - isa = PBXGroup; - children = ( - A5CEC15420D980B20016922A /* FluentUI.h */, - ); - name = Configuration; - sourceTree = "<group>"; - }; - A5DA88FD226FAA01000A8EA8 /* FluentUI.Resources */ = { - isa = PBXGroup; - children = ( - A5DA88FE226FAA01000A8EA8 /* Info.plist */, - ); - path = FluentUI.Resources; - sourceTree = "<group>"; - }; - B426613C214731AC00E25423 /* People Picker */ = { - isa = PBXGroup; - children = ( - B47B58B722F8E5840078DE38 /* PeoplePicker.swift */, - 3A9FC0F62A705C090060A6BE /* PeoplePickerTokenSet.swift */, - B4BA27872319DC0D0001563C /* PersonaBadgeViewDataSource.swift */, - B46D3F922151D95F0029772C /* PersonaCell.swift */, - B46D3F9C215985AC0029772C /* PersonaListView.swift */, - ); - path = "People Picker"; - sourceTree = "<group>"; - }; - B444D6B421825B510002B4D4 /* Table View */ = { - isa = PBXGroup; - children = ( - B498141321E424920077B48D /* TableViewCell.swift */, - B4EF66502294A664007FEAB0 /* TableViewHeaderFooterView.swift */, - 0AE3041C29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift */, - ); - path = "Table View"; - sourceTree = "<group>"; - }; - B483323121CC71700022B4CC /* HUD */ = { - isa = PBXGroup; - children = ( - 5336B17327F77EB700B01E0D /* HeadsUpDisplay.swift */, - 5336B17F27FB6D9B00B01E0D /* HeadsUpDisplayTokenSet.swift */, - 5336B17227F77EB700B01E0D /* HUD.swift */, - 5336B17027F77EB700B01E0D /* HUDModifiers.swift */, - 532299FF27FE108400C016A2 /* MSFHeadsUpDisplay.swift */, - 5336B17427F77EB700B01E0D /* HUD.resources.xcfilelist */, - ); - path = HUD; - sourceTree = "<group>"; - }; - B4F118EA21C8270F00855942 /* Badge Field */ = { - isa = PBXGroup; - children = ( - B45EB78F219E310F008646A2 /* BadgeField.swift */, - 3A9FC0F42A6AFAD40060A6BE /* BadgeFieldTokenSet.swift */, - B4A8BBCC21BF6D6900D5E3ED /* BadgeStringExtractor.swift */, - B444D6B52183A9740002B4D4 /* BadgeView.swift */, - 6FC3705D29E7707F0096B239 /* BadgeViewTokenSet.swift */, - ); - path = "Badge Field"; - sourceTree = "<group>"; - }; - C0938E42235E8EAF00256251 /* Utilities */ = { - isa = PBXGroup; - children = ( - C0938E43235E8ED500256251 /* AnimationSynchronizer.swift */, - ); - path = Utilities; - sourceTree = "<group>"; - }; - C0A0D75D233AEA9900F432FD /* Shimmer */ = { - isa = PBXGroup; - children = ( - C0EAAEAC2347E1DF00C7244E /* ShimmerView.swift */, - C0A0D76B233AEF6C00F432FD /* ShimmerLinesView.swift */, - 4BDBE18828EC9E6F00314696 /* ShimmerTokenSet.swift */, - ); - path = Shimmer; - sourceTree = "<group>"; - }; - C77A04EB25F0469C001B3EB6 /* Other Cells */ = { - isa = PBXGroup; - children = ( - B4E782C02176AD5E00A7DFCE /* ActionsCell.swift */, - B4E782C221793AB200A7DFCE /* ActivityIndicatorCell.swift */, - B441478C228CDA130040E88E /* BooleanCell.swift */, - B4E782C62179509A00A7DFCE /* CenteredLabelCell.swift */, - ); - path = "Other Cells"; - sourceTree = "<group>"; - }; - C77A04F325F04CFB001B3EB6 /* Avatar */ = { - isa = PBXGroup; - children = ( - 5373D5612694D65C0032A3B4 /* Avatar.swift */, - 5303259926B31B6B00611D05 /* AvatarModifiers.swift */, - 5373D5602694D65C0032A3B4 /* AvatarTokenSet.swift */, - EC5982D727BF348700FD048D /* MSFAvatar.swift */, - EC5982D927C703ED00FD048D /* ShapeCutout.swift */, - 5373D5632694D65C0032A3B4 /* MSFAvatarPresence.swift */, - B4EF53C2215AF1AB00573E8F /* Persona.swift */, - ); - path = Avatar; - sourceTree = "<group>"; - }; - CCC18C2A2501B1A900BE830E /* Card */ = { - isa = PBXGroup; - children = ( - CCC18C2B2501B22F00BE830E /* CardView.swift */, - ); - path = Card; - sourceTree = "<group>"; - }; - EC98E2AB2980C0C000B9DF91 /* TextField */ = { - isa = PBXGroup; - children = ( - EC98E2AC2980C15C00B9DF91 /* FluentTextField.swift */, - EC98E2AF298D978C00B9DF91 /* FluentTextFieldInternal.swift */, - EC98E2B3298D989100B9DF91 /* FluentTextInputError.swift */, - EC98E2B1298D97EC00B9DF91 /* TextFieldTokenSet.swift */, - ); - path = TextField; - sourceTree = "<group>"; - }; - ECEBA8F625EDEFF70048EE24 /* SegmentedControl */ = { - isa = PBXGroup; - children = ( - ECEBA8FB25EDF3380048EE24 /* SegmentedControl.swift */, - C708B04B260A8696007190FA /* SegmentItem.swift */, - C708B055260A86FA007190FA /* SegmentPillButton.swift */, - EC1C31722923022E00CF052C /* SegmentedControlTokenSet.swift */, - ); - path = SegmentedControl; - sourceTree = "<group>"; - }; - F3F113872A705AC300DA852A /* List */ = { - isa = PBXGroup; - children = ( - 94679F2B2BF55059004A1560 /* FluentList.swift */, - 94679F2E2BF57F86004A1560 /* FluentListModifiers.swift */, - 94679F2A2BF55059004A1560 /* FluentListSection.swift */, - F3A87D5F2BF57421000D6A64 /* FluentListSectionFooter.swift */, - F3A87D5D2BF5606E000D6A64 /* FluentListSectionHeader.swift */, - F32E6E8A2A7997F3003F9AE7 /* ListActionItem.swift */, - F3DFD3602A7B210100014C6E /* ListActionItemModifiers.swift */, - F3F113882A705AD500DA852A /* ListItem.swift */, - F3F1138C2A705B6900DA852A /* ListItemModifiers.swift */, - ); - path = List; - sourceTree = "<group>"; - }; - F5854ED02C220AC100938291 /* TableViewListShared */ = { - isa = PBXGroup; - children = ( - F5854ECF2C220AC100938291 /* TableViewCellTokenSet.swift */, - ); - path = TableViewListShared; - sourceTree = "<group>"; - }; - FC414E1D258876D400069E73 /* Command Bar */ = { - isa = PBXGroup; - children = ( - FC414E1E258876FB00069E73 /* CommandBar.swift */, - FC414E4E2588B65C00069E73 /* CommandBarItem.swift */, - FC414E2A25887A4B00069E73 /* CommandBarButton.swift */, - FC414E242588798000069E73 /* CommandBarButtonGroupView.swift */, - 94A7EC192836DCB100BFFBAE /* CommandBarCommandGroupsView.swift */, - 0A8E61FA291DC11F009E412D /* CommandBarTokenSet.swift */, - ); - path = "Command Bar"; - sourceTree = "<group>"; - }; - FD256C5C2183D77900EC9588 /* Views */ = { - isa = PBXGroup; - children = ( - FDFB8AEE21361C9D0046850A /* CalendarViewDayCell.swift */, - FDFB8AED21361C9D0046850A /* CalendarViewDayMonthCell.swift */, - FDFB8AEF21361C9D0046850A /* CalendarViewDayMonthYearCell.swift */, - FDFB8AEC21361C9D0046850A /* CalendarViewDayTodayCell.swift */, - FDFB8AEA21361C950046850A /* CalendarViewMonthBannerView.swift */, - FD599D072134AB0E008845EE /* CalendarViewWeekdayHeadingView.swift */, - ); - path = Views; - sourceTree = "<group>"; - }; - FD41C86D22DD12A20086F899 /* Navigation */ = { - isa = PBXGroup; - children = ( - FD41C87F22DD13230086F899 /* NavigationController.swift */, - FD41C87B22DD13230086F899 /* NavigationBar.swift */, - 66963D0F29CE244D006F5FA9 /* NavigationBarTokenSet.swift */, - 6ED4C11C2696AE4000C30BD6 /* BadgeLabelButton.swift */, - 667E54012A12B6F800728F93 /* TwoLineTitleView+Navigation.swift */, - FD41C8BD22DD47120086F899 /* UINavigationItem+Navigation.swift */, - FD9DA7B4232C33A80013E41B /* UIViewController+Navigation.swift */, - 6ED4C11A2695A6E800C30BD6 /* UIBarButtonItem+BadgeValue.swift */, - 6FBFD62429CBB5B9002F3C81 /* SearchBar */, - FD41C87222DD13230086F899 /* Helpers */, - FD41C86F22DD13230086F899 /* Shy Header */, - FD41C87922DD13230086F899 /* Views */, - ); - path = Navigation; - sourceTree = "<group>"; - }; - FD41C86F22DD13230086F899 /* Shy Header */ = { - isa = PBXGroup; - children = ( - FD41C87022DD13230086F899 /* ShyHeaderController.swift */, - FD41C87122DD13230086F899 /* ShyHeaderView.swift */, - ); - path = "Shy Header"; - sourceTree = "<group>"; - }; - FD41C87222DD13230086F899 /* Helpers */ = { - isa = PBXGroup; - children = ( - FD41C86E22DD13230086F899 /* ContentScrollViewTraits.swift */, - FD41C88022DD13230086F899 /* NavigationAnimator.swift */, - ); - path = Helpers; - sourceTree = "<group>"; - }; - FD41C87922DD13230086F899 /* Views */ = { - isa = PBXGroup; - children = ( - FD41C87A22DD13230086F899 /* AvatarTitleView.swift */, - 66512A3729D3B30D003CF303 /* AvatarTitleViewTokenSet.swift */, - ); - path = Views; - sourceTree = "<group>"; - }; - FD4F2A1C214ADBBF00C437D6 /* Date Picker */ = { - isa = PBXGroup; - children = ( - FD4F2A1F214AE20400C437D6 /* DatePickerController.swift */, - FD256C5A2183B90B00EC9588 /* DatePickerSelectionManager.swift */, - ); - path = "Date Picker"; - sourceTree = "<group>"; - }; - FD599D0021347FA0008845EE /* Date Time Pickers */ = { - isa = PBXGroup; - children = ( - FD5BBE3A214B2F44008964B4 /* Date+Extensions.swift */, - FD9A5C862179464F00D224D9 /* DateComponents+Extensions.swift */, - FD77752F21A490BA00033D58 /* DateTimePicker.swift */, - FD777528219E3F6C00033D58 /* DayOfMonth.swift */, - FD1FAE1A2272464B00A5DBA4 /* GenericDateTimePicker.swift */, - C77A04B625F03DD1001B3EB6 /* String+Date.swift */, - FD4F2A1C214ADBBF00C437D6 /* Date Picker */, - FD5C8C2A2190C3470063562C /* Date Time Picker */, - ); - path = "Date Time Pickers"; - sourceTree = "<group>"; - }; - FD5C8C2A2190C3470063562C /* Date Time Picker */ = { - isa = PBXGroup; - children = ( - FD5ADBF32190CDC80005A9AF /* DateTimePickerController.swift */, - FD97580521910FE800B67319 /* Views */, - ); - path = "Date Time Picker"; - sourceTree = "<group>"; - }; - FD7254EE2147382D002F4069 /* Presenters */ = { - isa = PBXGroup; - children = ( - FDA1AF9221487225001AE720 /* CardPresentationController.swift */, - FD0D29D52151A3D700E8655E /* CardPresenterNavigationController.swift */, - FDA1AF90214871B5001AE720 /* CardTransitionAnimator.swift */, - FD4F2A1A2148937100C437D6 /* PageCardPresenterController.swift */, - ); - path = Presenters; - sourceTree = "<group>"; - }; - FD7DF05A21FA7F3200857267 /* Tooltip */ = { - isa = PBXGroup; - children = ( - FD7DF05B21FA7F5000857267 /* Tooltip.swift */, - 92B2E2342BD71F27005D42C4 /* TooltipModifiers.swift */, - 4B8245D7293FC7A200CF0C77 /* TooltipTokenSet.swift */, - FD7DF05D21FA7FC100857267 /* TooltipView.swift */, - FD7DF05F21FA83C900857267 /* TooltipViewController.swift */, - ); - path = Tooltip; - sourceTree = "<group>"; - }; - FD97580521910FE800B67319 /* Views */ = { - isa = PBXGroup; - children = ( - FD9758062191118D00B67319 /* DateTimePickerView.swift */, - FD9758092191118E00B67319 /* DateTimePickerViewComponent.swift */, - FD97580A2191118E00B67319 /* DateTimePickerViewComponentCell.swift */, - FD9758082191118E00B67319 /* DateTimePickerViewComponentTableView.swift */, - FD9758072191118E00B67319 /* DateTimePickerViewDataSource.swift */, - FD77752C219E62E100033D58 /* DateTimePickerViewLayout.swift */, - ); - path = Views; - sourceTree = "<group>"; - }; - FDFB8AE921361C860046850A /* Calendar */ = { - isa = PBXGroup; - children = ( - FD77752A219E455A00033D58 /* AccessibilityContainerView.swift */, - FD599D052134A682008845EE /* AccessibleViewDelegate.swift */, - FD7254E82147059D002F4069 /* Calendar+Extensions.swift */, - FDF41ED82141A02200EC527C /* CalendarConfiguration.swift */, - FD599D0121348439008845EE /* CalendarView.swift */, - FD599D0B2134AB1E008845EE /* CalendarViewDataSource.swift */, - FD599D092134AB15008845EE /* CalendarViewLayout.swift */, - FD256C5C2183D77900EC9588 /* Views */, - ); - path = Calendar; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8FD01165228A820600D25925 /* FluentUILib */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8FD0116A228A820600D25925 /* Build configuration list for PBXNativeTarget "FluentUILib" */; - buildPhases = ( - 566C664928CB994F0032314C /* Copy module.modulemap */, - 8FD01162228A820600D25925 /* Sources */, - FD256C59218392B800EC9588 /* Run swiftlint */, - 923DF2E4271166DB00637646 /* Copy FluentUI-Swift.h */, - ); - buildRules = ( - ); - dependencies = ( - 8FD011C8228A831700D25925 /* PBXTargetDependency */, - ); - name = FluentUILib; - productName = OfficeUIFabricStaticLib; - productReference = 8FD01166228A820600D25925 /* libFluentUI.a */; - productType = "com.apple.product-type.library.static"; - }; - A5CEC15920D980B30016922A /* FluentUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = A5CEC16820D980B30016922A /* Build configuration list for PBXNativeTarget "FluentUITests" */; - buildPhases = ( - A5CEC15620D980B30016922A /* Sources */, - A5CEC15720D980B30016922A /* Frameworks */, - A5CEC15820D980B30016922A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FluentUITests; - productName = OfficeUIFabricTests; - productReference = A5CEC15A20D980B30016922A /* FluentUITests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - A5DA88FB226FAA01000A8EA8 /* FluentUIResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = A5DA88FF226FAA01000A8EA8 /* Build configuration list for PBXNativeTarget "FluentUIResources" */; - buildPhases = ( - A5DA88FA226FAA01000A8EA8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FluentUIResources; - productName = OfficeUIFabricResources; - productReference = A5DA88FC226FAA01000A8EA8 /* FluentUIResources-ios.bundle */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A5CEC14820D980B20016922A /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1020; - LastUpgradeCheck = 1240; - ORGANIZATIONNAME = "Microsoft Corporation"; - TargetAttributes = { - 8FD01165228A820600D25925 = { - CreatedOnToolsVersion = 10.2.1; - LastSwiftMigration = 1020; - }; - A5CEC15920D980B30016922A = { - CreatedOnToolsVersion = 9.4.1; - LastSwiftMigration = 1020; - }; - A5DA88FB226FAA01000A8EA8 = { - CreatedOnToolsVersion = 10.2.1; - }; - }; - }; - buildConfigurationList = A5CEC14B20D980B20016922A /* Build configuration list for PBXProject "FluentUI" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ar, - ca, - cs, - da, - de, - el, - "en-GB", - "es-MX", - es, - fi, - fr, - he, - hi, - hr, - hu, - id, - it, - ja, - ko, - ms, - "nb-NO", - nl, - pl, - "pt-BR", - "pt-PT", - ro, - ru, - sk, - sv, - th, - tr, - uk, - vi, - "zh-Hans", - "zh-Hant", - ); - mainGroup = A5CEC14720D980B20016922A; - productRefGroup = A5CEC15220D980B20016922A /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A5DA88FB226FAA01000A8EA8 /* FluentUIResources */, - 8FD01165228A820600D25925 /* FluentUILib */, - A5CEC15920D980B30016922A /* FluentUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - A5CEC15820D980B30016922A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 923DF2E82712B6C400637646 /* FluentUIResources-ios.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A5DA88FA226FAA01000A8EA8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A542A9D7226FC01100204A52 /* Localizable.strings in Resources */, - A542A9D8226FC01700204A52 /* Localizable.stringsdict in Resources */, - A257F82C251D98F3002CAA6E /* FluentUI-ios.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 923DF2E4271166DB00637646 /* Copy FluentUI-Swift.h */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "$(FLUENT_HSP_INPUT)/FluentUI-Swift.h", - ); - name = "Copy FluentUI-Swift.h"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(FLUENT_HSP_OUTPUT)/FluentUI-Swift.h", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"Copying FluentUI-Swift.h from $FLUENT_HSP_INPUT to $FLUENT_HSP_OUTPUT\"\n\n# Ensure the target include path exists\nmkdir -p $FLUENT_HSP_OUTPUT\n\n# Copy any file that looks like a Swift generated header to the include path\ncp $FLUENT_HSP_INPUT/FluentUI-Swift.h $FLUENT_HSP_OUTPUT\n"; - }; - FD256C59218392B800EC9588 /* Run swiftlint */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run swiftlint"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Adds support for Apple Silicon brew directory\nexport PATH=\"$PATH:/opt/homebrew/bin\"\n\nif which swiftlint >/dev/null; then\n export LINTPATH=\"${LOCROOT}/./\"\n swiftlint --config ../.swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8FD01162228A820600D25925 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - EC04E65829C27359005F8BA0 /* FocusRingView.swift in Sources */, - 6ED5E55126D3D39400D8BE81 /* BadgeLabelButton.swift in Sources */, - 6ED5E55226D3D39400D8BE81 /* UIBarButtonItem+BadgeValue.swift in Sources */, - 5314E0ED25F012C40099271A /* ContentScrollViewTraits.swift in Sources */, - EC5982DA27C703EE00FD048D /* ShapeCutout.swift in Sources */, - 5314E03A25F00E3D0099271A /* BadgeView.swift in Sources */, - 5314E1A325F01A7C0099271A /* TableViewHeaderFooterView.swift in Sources */, - 3A9FC0F52A6AFAD40060A6BE /* BadgeFieldTokenSet.swift in Sources */, - 5314E30325F0260E0099271A /* AccessibleViewDelegate.swift in Sources */, - 6EB4B25F270ED6B30005B808 /* BadgeLabel.swift in Sources */, - F5854ED12C220AC100938291 /* TableViewCellTokenSet.swift in Sources */, - EC98E2B2298D97EC00B9DF91 /* TextFieldTokenSet.swift in Sources */, - 9231491528BF026A001B033E /* HUD.swift in Sources */, - 5314E1A725F01A7C0099271A /* ActionsCell.swift in Sources */, - 5314E07B25F00F1A0099271A /* DateTimePickerViewDataSource.swift in Sources */, - 532FE3D426EA6D74007539C0 /* ActivityIndicatorTokenSet.swift in Sources */, - 92D5FDFB28A713990087894B /* LinearGradientInfo.swift in Sources */, - 53E2EE07278799B30086D30D /* MSFIndeterminateProgressBar.swift in Sources */, - 532FE3D626EA6D74007539C0 /* ActivityIndicatorModifiers.swift in Sources */, - 5314E2F525F025C60099271A /* CalendarConfiguration.swift in Sources */, - 3AFB0FD629C1365600FEC1A9 /* MultilineCommandBar.swift in Sources */, - 923DB9D4274CB65700D8E58A /* TokenizedControl.swift in Sources */, - 5314E06B25F00F100099271A /* DateTimePicker.swift in Sources */, - 5314E2BB25F024C60099271A /* CALayer+Extensions.swift in Sources */, - 66512A3829D3B30D003CF303 /* AvatarTitleViewTokenSet.swift in Sources */, - 5314E12B25F016230099271A /* PillButtonBar.swift in Sources */, - 5314E07E25F00F1A0099271A /* DateTimePickerView.swift in Sources */, - 5328D97726FBA3D700F3723B /* IndeterminateProgressBar.swift in Sources */, - 92279B332B97C7DC00994D88 /* FluentButtonStyle.swift in Sources */, - 5314E07625F00F160099271A /* DateTimePickerController.swift in Sources */, - 922A34DF27BB87990062721F /* TokenizedControlView.swift in Sources */, - 92016FF8299DF34A00660DB7 /* EmptyTokenSet.swift in Sources */, - 5314E14525F016860099271A /* CardPresentationController.swift in Sources */, - EC98E2AD2980C15C00B9DF91 /* FluentTextField.swift in Sources */, - 5314E0A925F010070099271A /* DrawerTransitionAnimator.swift in Sources */, - 5314E06525F00EFD0099271A /* CalendarViewDayMonthCell.swift in Sources */, - 6FBFD62629CBB5F1002F3C81 /* SearchBarTokenSet.swift in Sources */, - 5314E08B25F00F2D0099271A /* CommandBarItem.swift in Sources */, - 5314E06225F00EFD0099271A /* CalendarViewDayTodayCell.swift in Sources */, - EC98E2B0298D978C00B9DF91 /* FluentTextFieldInternal.swift in Sources */, - 5314E08025F00F1A0099271A /* DateTimePickerViewComponent.swift in Sources */, - 5314E06325F00EFD0099271A /* CalendarViewDayMonthYearCell.swift in Sources */, - 5314E1A225F01A7C0099271A /* ActivityIndicatorCell.swift in Sources */, - 5373D5652694D65C0032A3B4 /* AvatarTokenSet.swift in Sources */, - 5314E06125F00EFD0099271A /* CalendarViewDayCell.swift in Sources */, - 929DD25A266ED3B600E8175E /* PersonaButtonCarousel.swift in Sources */, - 6F050B6929D3D16D0070D3D5 /* SideTabBarTokenSet.swift in Sources */, - 9231491328BF026A001B033E /* HeadsUpDisplay.swift in Sources */, - 5314E12A25F016230099271A /* PillButton.swift in Sources */, - 4BF01D9A27B37CF8005B32F2 /* NotificationTokenSet.swift in Sources */, - 5314E0E525F012C00099271A /* NavigationBar.swift in Sources */, - C708B064260A87F7007190FA /* SegmentItem.swift in Sources */, - 5328D97126FBA3D700F3723B /* IndeterminateProgressBarTokenSet.swift in Sources */, - 5314E14325F016860099271A /* CardTransitionAnimator.swift in Sources */, - 5314E0F825F012CB0099271A /* AvatarTitleView.swift in Sources */, - 8035CAB62633A4DB007B3FD1 /* BottomCommandingController.swift in Sources */, - 94679F2F2BF57F86004A1560 /* FluentListModifiers.swift in Sources */, - 5314E13725F016370099271A /* PopupMenuProtocols.swift in Sources */, - 5314E19725F019650099271A /* TabBarItem.swift in Sources */, - EC98E2B4298D989100B9DF91 /* FluentTextInputError.swift in Sources */, - 94679F2C2BF55059004A1560 /* FluentListSection.swift in Sources */, - 6F2F218F2A12BFD900C50EAB /* BadgeLabelTokenSet.swift in Sources */, - 6FC3705E29E7707F0096B239 /* BadgeViewTokenSet.swift in Sources */, - 92B7E6A326864AE900EFC15E /* MSFPersonaButton.swift in Sources */, - 5314E1BB25F01B070099271A /* TouchForwardingView.swift in Sources */, - 5314E2EC25F025710099271A /* DayOfMonth.swift in Sources */, - 5314E0B325F010400099271A /* EasyTapButton.swift in Sources */, - F32E6E8B2A7997F3003F9AE7 /* ListActionItem.swift in Sources */, - 5314E19625F019650099271A /* TabBarView.swift in Sources */, - F3A87D5E2BF5606E000D6A64 /* FluentListSectionHeader.swift in Sources */, - C708B05F260A8778007190FA /* SegmentPillButton.swift in Sources */, - 5314E13525F016370099271A /* PopupMenuItemCell.swift in Sources */, - 5314E2A025F024860099271A /* NSLayoutConstraint+Extensions.swift in Sources */, - 923DB9D5274CB65700D8E58A /* FluentTheme.swift in Sources */, - 929DD257266ED3AC00E8175E /* PersonaButtonCarouselTokenSet.swift in Sources */, - EC65F790292EDCEF002A1A23 /* ButtonTokenSet.swift in Sources */, - 5314E26625F023B20099271A /* UIColor+Extensions.swift in Sources */, - 5314E30225F0260E0099271A /* AccessibilityContainerView.swift in Sources */, - 92ECB2DB2BE0697F00404D79 /* GlobalTokens+UIKit.swift in Sources */, - 8035CAD026377C17007B3FD1 /* CommandingItem.swift in Sources */, - 5314E0F325F012C80099271A /* ShyHeaderController.swift in Sources */, - 535559E42711411E0094A871 /* FluentThemedHostingController.swift in Sources */, - 3A9FC0F72A705C090060A6BE /* PeoplePickerTokenSet.swift in Sources */, - 9231491628BF02B9001B033E /* Button.swift in Sources */, - 5314E1B125F01A980099271A /* TooltipView.swift in Sources */, - 5314E19525F019650099271A /* TabBarItemView.swift in Sources */, - 5314E03C25F00E3D0099271A /* BadgeField.swift in Sources */, - D6296DAE295B7CA0002E8EB6 /* ColorProviding.swift in Sources */, - 5314E05B25F00EF50099271A /* CalendarView.swift in Sources */, - 92EE82AE27025A94009D52B5 /* TokenSet.swift in Sources */, - 6F3CB7F229D3A5DE00284353 /* ResizingHandleTokenSet.swift in Sources */, - 5314E28125F0240D0099271A /* DateComponents+Extensions.swift in Sources */, - 667E54022A12B6F800728F93 /* TwoLineTitleView+Navigation.swift in Sources */, - 6F3CB7F029D3A2B700284353 /* DrawerTokenSet.swift in Sources */, - 0A8E61FB291DC11F009E412D /* CommandBarTokenSet.swift in Sources */, - 5314E07025F00F140099271A /* DatePickerController.swift in Sources */, - 5373D56B2694D65C0032A3B4 /* MSFAvatarPresence.swift in Sources */, - EC5982D827BF348700FD048D /* MSFAvatar.swift in Sources */, - 5314E0AA25F010070099271A /* DrawerShadowView.swift in Sources */, - 4BDBE18928EC9E6F00314696 /* ShimmerTokenSet.swift in Sources */, - 530D9C5127EE388200BDCBBF /* SwiftUI+ViewPresentation.swift in Sources */, - 92ECB2DD2BE069D100404D79 /* Color+DynamicColor.swift in Sources */, - 6F050B6D29D3D1A90070D3D5 /* TabBarTokenSet.swift in Sources */, - F3A87D602BF57421000D6A64 /* FluentListSectionFooter.swift in Sources */, - 5314E0E725F012C00099271A /* UINavigationItem+Navigation.swift in Sources */, - 920945492703DDA000B38E1A /* CardNudgeTokenSet.swift in Sources */, - 92D49054278FF4E50085C018 /* PersonaButtonCarouselModifiers.swift in Sources */, - C77A04B825F03DD1001B3EB6 /* String+Date.swift in Sources */, - 4B53505F27F63E3F0033B47F /* NotificationModifiers.swift in Sources */, - 5314E14425F016860099271A /* PageCardPresenterController.swift in Sources */, - 5314E11B25F015EA0099271A /* PersonaListView.swift in Sources */, - 5314E28E25F024590099271A /* Date+Extensions.swift in Sources */, - 5306076126A201C8002D49CF /* Persona.swift in Sources */, - 5314E14E25F016CD0099271A /* ResizingHandleView.swift in Sources */, - 804EDE1528C00CA400371C6B /* ContentHeightResolutionContext.swift in Sources */, - 4B8245D8293FC7A200CF0C77 /* TooltipTokenSet.swift in Sources */, - 5314E1A625F01A7C0099271A /* BooleanCell.swift in Sources */, - 92F8054E272B2DF3000EAFDB /* CardNudgeModifiers.swift in Sources */, - 925D461D26FD133600179583 /* GlobalTokens.swift in Sources */, - 9275105626815A7100F12730 /* MSFPersonaButtonCarousel.swift in Sources */, - 927EB2BD278627440069753D /* PersonaButtonModifiers.swift in Sources */, - 5314E0F225F012C80099271A /* ShyHeaderView.swift in Sources */, - 5314E02825F00DA80099271A /* BlurringView.swift in Sources */, - 5314E13625F016370099271A /* PopupMenuSectionHeaderView.swift in Sources */, - 5314E05925F00EF50099271A /* CalendarViewDataSource.swift in Sources */, - 5314E01625F00CF70099271A /* BarButtonItems.swift in Sources */, - 5314E25425F023650099271A /* UIImage+Extensions.swift in Sources */, - F3F113892A705AD500DA852A /* ListItem.swift in Sources */, - 92D5598226A0FD2800328FD3 /* CardNudge.swift in Sources */, - ECF3C9882A67495A00CA35FC /* BottomCommandingTokenSet.swift in Sources */, - 532FE3D826EA6D74007539C0 /* ActivityIndicator.swift in Sources */, - 5314E0E625F012C00099271A /* UIViewController+Navigation.swift in Sources */, - 5314E29725F024760099271A /* String+Extension.swift in Sources */, - 9231491228BF026A001B033E /* HUDModifiers.swift in Sources */, - 530D9C5327EE7B2C00BDCBBF /* SwiftUI+ViewAnimation.swift in Sources */, - 6F050B7529D6219D0070D3D5 /* PopupMenuTokenSet.swift in Sources */, - 4B4A2F2129A7E83100570CD4 /* LabelTokenSet.swift in Sources */, - 5306075726A1E6A4002D49CF /* AvatarGroup.swift in Sources */, - 92A1E4F526A791590007ED60 /* MSFCardNudge.swift in Sources */, - 5314E1C425F01B4E0099271A /* TwoLineTitleView.swift in Sources */, - 5314E0CF25F011F10099271A /* Label.swift in Sources */, - 5314E13925F016370099271A /* PopupMenuController.swift in Sources */, - 9298798B2669A875002B1EB4 /* PersonaButtonTokenSet.swift in Sources */, - 53E2EE0527860D010086D30D /* MSFActivityIndicator.swift in Sources */, - 5314E0A725F010070099271A /* DrawerController.swift in Sources */, - 5314E07125F00F140099271A /* DatePickerSelectionManager.swift in Sources */, - 5373D5672694D65C0032A3B4 /* Avatar.swift in Sources */, - 9231F10329BB99090079CD94 /* FluentTheme+Tokens.swift in Sources */, - 5314E1A425F01A7C0099271A /* CenteredLabelCell.swift in Sources */, - 5314E1D625F01E4A0099271A /* SearchBar.swift in Sources */, - 5314E0A825F010070099271A /* DrawerPresentationController.swift in Sources */, - 43488C46270FAD1300124C71 /* FluentNotification.swift in Sources */, - 5314E06425F00EFD0099271A /* CalendarViewMonthBannerView.swift in Sources */, - 5314E18E25F0195C0099271A /* ShimmerLinesView.swift in Sources */, - 80AECC21263339E3005AF2F3 /* BottomSheetController.swift in Sources */, - 5314E2E325F025500099271A /* FluentUIFramework.swift in Sources */, - ECA9218627A3301C00B66117 /* MSFAvatarGroup.swift in Sources */, - 5314E0EC25F012C40099271A /* NavigationAnimator.swift in Sources */, - 5314E17225F0191C0099271A /* Separator.swift in Sources */, - 5314E14225F016860099271A /* CardPresenterNavigationController.swift in Sources */, - 5314E11725F015EA0099271A /* PersonaCell.swift in Sources */, - 5314E23025F022C80099271A /* UIScrollView+Extensions.swift in Sources */, - 5314E16925F017940099271A /* SegmentedControl.swift in Sources */, - 4BF01DA027B3A862005B32F2 /* UIApplication+Extensions.swift in Sources */, - 5373D5732694D66F0032A3B4 /* UIKit+SwiftUI_interoperability.swift in Sources */, - 5314E09E25F00FE20099271A /* DotView.swift in Sources */, - 5314E1A525F01A7C0099271A /* TableViewCell.swift in Sources */, - F3DFD3612A7B210100014C6E /* ListActionItemModifiers.swift in Sources */, - 4BBD651F2755FD9500A8B09E /* MSFNotification.swift in Sources */, - 5314E09525F00FA30099271A /* DimmingView.swift in Sources */, - 5306075326A1E6A4002D49CF /* AvatarGroupTokenSet.swift in Sources */, - 5314E11825F015EA0099271A /* PeoplePicker.swift in Sources */, - 5303259B26B31B6B00611D05 /* AvatarModifiers.swift in Sources */, - 4B2E373D2991CB53008929B4 /* BottomSheetTokenSet.swift in Sources */, - 6F050B6F29D3EA820070D3D5 /* PillButtonTokenSet.swift in Sources */, - 5314E2B225F024B60099271A /* Calendar+Extensions.swift in Sources */, - 5314E1B225F01A980099271A /* TooltipViewController.swift in Sources */, - 5314E08A25F00F2D0099271A /* CommandBar.swift in Sources */, - 9231491128BF026A001B033E /* HeadsUpDisplayTokenSet.swift in Sources */, - 5314E18D25F0195C0099271A /* ShimmerView.swift in Sources */, - 66963D1029CE244D006F5FA9 /* NavigationBarTokenSet.swift in Sources */, - 80AECC22263339E5005AF2F3 /* BottomSheetPassthroughView.swift in Sources */, - 925728F9276D6B5800EE1019 /* FontInfo.swift in Sources */, - 5314E1CD25F01B730099271A /* AnimationSynchronizer.swift in Sources */, - 92B2E2352BD71F27005D42C4 /* TooltipModifiers.swift in Sources */, - 92088EF92666DB2C003F571A /* PersonaButton.swift in Sources */, - 9231491428BF026A001B033E /* MSFHeadsUpDisplay.swift in Sources */, - 5314E13425F016370099271A /* PopupMenuItem.swift in Sources */, - ECA9218A27A33A2D00B66117 /* AvatarGroupModifiers.swift in Sources */, - 6F050B6B29D3D1900070D3D5 /* TabBarItemTokenSet.swift in Sources */, - 5314E13825F016370099271A /* PopupMenuSection.swift in Sources */, - 5314E07C25F00F1A0099271A /* DateTimePickerViewLayout.swift in Sources */, - 6F050B7129D6213E0070D3D5 /* PopupMenuItemTokenSet.swift in Sources */, - 5314E11625F015EA0099271A /* PersonaBadgeViewDataSource.swift in Sources */, - 5373D5772694D66F0032A3B4 /* SwiftUI+ViewModifiers.swift in Sources */, - 5314E07F25F00F1A0099271A /* DateTimePickerViewComponentCell.swift in Sources */, - 8035CADE2638E435007B3FD1 /* CommandingSection.swift in Sources */, - 92DEE2252723D34400E31ED0 /* ControlTokenSet.swift in Sources */, - 5314E0E425F012C00099271A /* NavigationController.swift in Sources */, - 925728F7276D6AF800EE1019 /* ShadowInfo.swift in Sources */, - 66963D0A29CA7F89006F5FA9 /* TwoLineTitleViewTokenSet.swift in Sources */, - 5328D97326FBA3D700F3723B /* IndeterminateProgressBarModifiers.swift in Sources */, - 92ECB2DF2BE06BCB00404D79 /* FluentTheme+UIKit.swift in Sources */, - 929F2ACF2BB77ED100683EA8 /* FluentButtonToggleStyle.swift in Sources */, - 923DB9D7274CB66D00D8E58A /* ControlHostingView.swift in Sources */, - 5314E03B25F00E3D0099271A /* BadgeStringExtractor.swift in Sources */, - EC1C31732923022E00CF052C /* SegmentedControlTokenSet.swift in Sources */, - 5314E19825F019650099271A /* SideTabBar.swift in Sources */, - 94679F2D2BF55059004A1560 /* FluentList.swift in Sources */, - 5314E10A25F014600099271A /* Obscurable.swift in Sources */, - F3F1138D2A705B6900DA852A /* ListItemModifiers.swift in Sources */, - 5314E07D25F00F1A0099271A /* DateTimePickerViewComponentTableView.swift in Sources */, - 0AE3041D29F721B2003CDDD9 /* TableViewHeaderFooterViewTokenSet.swift in Sources */, - 926FEEAA2B45A8B4002C61D0 /* Compatibility.swift in Sources */, - 926B4C9A2B8E94F6001EBA16 /* FluentTheme+visionOS.swift in Sources */, - 5314E03125F00DDD0099271A /* CardView.swift in Sources */, - 5314E08925F00F2D0099271A /* CommandBarButtonGroupView.swift in Sources */, - 5314E08C25F00F2D0099271A /* CommandBarButton.swift in Sources */, - 94A7EC1A2836DCB200BFFBAE /* CommandBarCommandGroupsView.swift in Sources */, - 5314E21E25F022120099271A /* UIView+Extensions.swift in Sources */, - 5314E06A25F00F100099271A /* GenericDateTimePicker.swift in Sources */, - 0A84A6F029EDC489005DBC3D /* SeparatorTokenSet.swift in Sources */, - 5314E06025F00EFD0099271A /* CalendarViewWeekdayHeadingView.swift in Sources */, - 5314E05A25F00EF50099271A /* CalendarViewLayout.swift in Sources */, - 5314E1B025F01A980099271A /* Tooltip.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A5CEC15620D980B30016922A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 924268A2277AD9F700C5A452 /* FontTests.swift in Sources */, - A5CEC16020D980B30016922A /* FluentUITests.swift in Sources */, - 929215B92B6C75E500D4EA9F /* AvatarTests.swift in Sources */, - 8FA3CB5B246B19EA0049E431 /* ColorTests.swift in Sources */, - FD053A352224CA33009B6378 /* DatePickerControllerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 8FD011C8228A831700D25925 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A5DA88FB226FAA01000A8EA8 /* FluentUIResources */; - targetProxy = 8FD011C7228A831700D25925 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - A559BB81212B6FA40055E107 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - A559BB80212B6FA40055E107 /* en */, - FD8D26422253FF330078E1D3 /* ar */, - FD8D26442253FF3E0078E1D3 /* ca */, - FD8D26462253FF470078E1D3 /* cs */, - FD8D26482253FF4F0078E1D3 /* da */, - FD8D264A2254013E0078E1D3 /* de */, - FD8D264C225401660078E1D3 /* el */, - FD8D264E225401880078E1D3 /* en-GB */, - FD8D2650225401A10078E1D3 /* es-MX */, - FD8D2652225401AA0078E1D3 /* es */, - FD8D2654225401B90078E1D3 /* fi */, - FD8D2656225401C10078E1D3 /* fr */, - FD8D2658225401CD0078E1D3 /* he */, - FD8D265A225401D90078E1D3 /* hi */, - FD8D265C225401E50078E1D3 /* hr */, - FD8D265E225401F20078E1D3 /* hu */, - FD8D2660225401FA0078E1D3 /* id */, - FD8D2662225402020078E1D3 /* it */, - FD8D26642254020E0078E1D3 /* ja */, - FD8D2666225402160078E1D3 /* ko */, - FD8D26682254021D0078E1D3 /* ms */, - FD8D266A2254022E0078E1D3 /* nb-NO */, - FD8D266C225402DC0078E1D3 /* nl */, - FD8D266E225402E60078E1D3 /* pl */, - FD8D2670225402F00078E1D3 /* pt-BR */, - FD8D2672225402F60078E1D3 /* pt-PT */, - FD8D2674225403000078E1D3 /* ro */, - FD8D2676225403070078E1D3 /* ru */, - FD8D26782254030E0078E1D3 /* sk */, - FD8D267A225403160078E1D3 /* sv */, - FD8D267C2254031B0078E1D3 /* th */, - FD8D267E225403210078E1D3 /* tr */, - FD8D2680225403290078E1D3 /* uk */, - FD8D2682225403300078E1D3 /* vi */, - FD8D2684225403360078E1D3 /* zh-Hans */, - FD8D26862254033B0078E1D3 /* zh-Hant */, - ); - name = Localizable.strings; - sourceTree = "<group>"; - }; - A5DF1EAD2213B26900CC741A /* Localizable.stringsdict */ = { - isa = PBXVariantGroup; - children = ( - A5DF1EAC2213B26900CC741A /* en */, - FD8D26432253FF330078E1D3 /* ar */, - FD8D26452253FF3F0078E1D3 /* ca */, - FD8D26472253FF470078E1D3 /* cs */, - FD8D26492253FF500078E1D3 /* da */, - FD8D264B2254013E0078E1D3 /* de */, - FD8D264D225401660078E1D3 /* el */, - FD8D264F225401880078E1D3 /* en-GB */, - FD8D2651225401A10078E1D3 /* es-MX */, - FD8D2653225401AA0078E1D3 /* es */, - FD8D2655225401B90078E1D3 /* fi */, - FD8D2657225401C20078E1D3 /* fr */, - FD8D2659225401CD0078E1D3 /* he */, - FD8D265B225401D90078E1D3 /* hi */, - FD8D265D225401E50078E1D3 /* hr */, - FD8D265F225401F30078E1D3 /* hu */, - FD8D2661225401FB0078E1D3 /* id */, - FD8D2663225402030078E1D3 /* it */, - FD8D26652254020E0078E1D3 /* ja */, - FD8D2667225402160078E1D3 /* ko */, - FD8D26692254021E0078E1D3 /* ms */, - FD8D266B2254022E0078E1D3 /* nb-NO */, - FD8D266D225402DC0078E1D3 /* nl */, - FD8D266F225402E60078E1D3 /* pl */, - FD8D2671225402F10078E1D3 /* pt-BR */, - FD8D2673225402F60078E1D3 /* pt-PT */, - FD8D2675225403000078E1D3 /* ro */, - FD8D2677225403070078E1D3 /* ru */, - FD8D26792254030E0078E1D3 /* sk */, - FD8D267B225403160078E1D3 /* sv */, - FD8D267D2254031B0078E1D3 /* th */, - FD8D267F225403220078E1D3 /* tr */, - FD8D26812254032A0078E1D3 /* uk */, - FD8D2683225403300078E1D3 /* vi */, - FD8D2685225403360078E1D3 /* zh-Hans */, - FD8D26872254033B0078E1D3 /* zh-Hant */, - ); - name = Localizable.stringsdict; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8FD0116B228A820600D25925 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C7752C7C2790C1F40012F860 /* FluentUILib_debug.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - 8FD0116C228A820600D25925 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C7752C7B2790C1F40012F860 /* FluentUILib_release.xcconfig */; - buildSettings = { - }; - name = Release; - }; - 8FD0116D228A820600D25925 /* Dogfood */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C7752C7B2790C1F40012F860 /* FluentUILib_release.xcconfig */; - buildSettings = { - }; - name = Dogfood; - }; - A52B637B2138745C009F7ADF /* Dogfood */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F525673626008A06FD /* FluentUI_release.xcconfig */; - buildSettings = { - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - }; - name = Dogfood; - }; - A52B637D2138745C009F7ADF /* Dogfood */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F725673626008A06FD /* FluentUITests.xcconfig */; - buildSettings = { - }; - name = Dogfood; - }; - A5CEC16320D980B30016922A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F625673626008A06FD /* FluentUI_debug.xcconfig */; - buildSettings = { - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - }; - name = Debug; - }; - A5CEC16420D980B30016922A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F525673626008A06FD /* FluentUI_release.xcconfig */; - buildSettings = { - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - }; - name = Release; - }; - A5CEC16920D980B30016922A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F725673626008A06FD /* FluentUITests.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - A5CEC16A20D980B30016922A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90F725673626008A06FD /* FluentUITests.xcconfig */; - buildSettings = { - }; - name = Release; - }; - A5DA8900226FAA01000A8EA8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90FA25673627008A06FD /* FluentUIResources.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - A5DA8901226FAA01000A8EA8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90FA25673627008A06FD /* FluentUIResources.xcconfig */; - buildSettings = { - }; - name = Release; - }; - A5DA8902226FAA01000A8EA8 /* Dogfood */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 53FC90FA25673627008A06FD /* FluentUIResources.xcconfig */; - buildSettings = { - }; - name = Dogfood; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8FD0116A228A820600D25925 /* Build configuration list for PBXNativeTarget "FluentUILib" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8FD0116B228A820600D25925 /* Debug */, - 8FD0116C228A820600D25925 /* Release */, - 8FD0116D228A820600D25925 /* Dogfood */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A5CEC14B20D980B20016922A /* Build configuration list for PBXProject "FluentUI" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A5CEC16320D980B30016922A /* Debug */, - A5CEC16420D980B30016922A /* Release */, - A52B637B2138745C009F7ADF /* Dogfood */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A5CEC16820D980B30016922A /* Build configuration list for PBXNativeTarget "FluentUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A5CEC16920D980B30016922A /* Debug */, - A5CEC16A20D980B30016922A /* Release */, - A52B637D2138745C009F7ADF /* Dogfood */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A5DA88FF226FAA01000A8EA8 /* Build configuration list for PBXNativeTarget "FluentUIResources" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A5DA8900226FAA01000A8EA8 /* Debug */, - A5DA8901226FAA01000A8EA8 /* Release */, - A5DA8902226FAA01000A8EA8 /* Dogfood */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A5CEC14820D980B20016922A /* Project object */; -} diff --git a/ios/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e51b5eb371..0000000000 --- a/ios/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "self:FluentUI.xcodeproj"> - </FileRef> -</Workspace> diff --git a/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-iOS.xcscheme b/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-iOS.xcscheme deleted file mode 100644 index f8b8b59b0f..0000000000 --- a/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-iOS.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1250" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - enableAddressSanitizer = "YES" - enableASanStackUseAfterReturn = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5CEC15920D980B30016922A" - BuildableName = "FluentUITests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "8FD01165228A820600D25925" - BuildableName = "libFluentUI.a" - BlueprintName = "FluentUILib" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUIResources-ios.xcscheme b/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUIResources-ios.xcscheme deleted file mode 100644 index 18699ff079..0000000000 --- a/ios/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUIResources-ios.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1250" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5DA88FB226FAA01000A8EA8" - BuildableName = "FluentUIResources-ios.bundle" - BlueprintName = "FluentUIResources" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A5DA88FB226FAA01000A8EA8" - BuildableName = "FluentUIResources-ios.bundle" - BlueprintName = "FluentUIResources" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/ios/FluentUI.xcworkspace/contents.xcworkspacedata b/ios/FluentUI.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1bbf147a7d..0000000000 --- a/ios/FluentUI.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "group:FluentUI.xcodeproj"> - </FileRef> - <FileRef - location = "group:FluentUI.Demo/FluentUI.Demo.xcodeproj"> - </FileRef> -</Workspace> diff --git a/ios/FluentUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/FluentUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/ios/FluentUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>IDEDidComputeMac32BitWarning</key> - <true/> -</dict> -</plist> diff --git a/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 6a8198ff69..0000000000 --- a/ios/FluentUI.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,24 +0,0 @@ -{ - "originHash" : "9368007d7da5b3af9332e1d38cf6cc8e8eaa8ccb8923fbd5137a6b91bf39293b", - "pins" : [ - { - "identity" : "appcenter-sdk-apple", - "kind" : "remoteSourceControl", - "location" : "https://github.com/microsoft/appcenter-sdk-apple.git", - "state" : { - "revision" : "ab54f758243f282d290b33027e8aac910d3d859a", - "version" : "5.0.5" - } - }, - { - "identity" : "plcrashreporter", - "kind" : "remoteSourceControl", - "location" : "https://github.com/microsoft/PLCrashReporter.git", - "state" : { - "revision" : "6752f71de206f6a53fa6a758c3660fd9a7fe7527", - "version" : "1.11.2" - } - } - ], - "version" : 3 -} diff --git a/ios/FluentUI/Core/FluentUIFramework.swift b/ios/FluentUI/Core/FluentUIFramework.swift index 31fa4619c3..2836979826 100644 --- a/ios/FluentUI/Core/FluentUIFramework.swift +++ b/ios/FluentUI/Core/FluentUIFramework.swift @@ -23,6 +23,19 @@ public class FluentUIFramework: NSObject { return resourceBundle }() + @objc public static var fluentVersion: String? = { + struct VersionConfig: Decodable { + let FluentVersion: String + } + + guard let url = resourceBundle.url(forResource: "Version", withExtension: "plist"), + let data = try? Data(contentsOf: url), + let versionConfig = try? PropertyListDecoder().decode(VersionConfig.self, from: data) else { + return nil + } + return versionConfig.FluentVersion + }() + @available(*, deprecated, message: "Non-fluent icons no longer supported. Setting this var no longer has any effect and it will be removed in a future update.") @objc public static var usesFluentIcons: Bool = true diff --git a/ios/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/FluentUI/Resources/Version.plist similarity index 78% rename from ios/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to ios/FluentUI/Resources/Version.plist index 18d981003d..e0a61d1d45 100644 --- a/ios/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ b/ios/FluentUI/Resources/Version.plist @@ -2,7 +2,7 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IDEDidComputeMac32BitWarning</key> - <true/> + <key>FluentVersion</key> + <string>0.30.0</string> </dict> </plist> diff --git a/ios/README.md b/ios/README.md index 59b64180cd..69fa610639 100644 --- a/ios/README.md +++ b/ios/README.md @@ -62,7 +62,7 @@ Included in this repository is a demo of currently implemented controls. A full To build and deploy the demo follow these steps: - Download or clone the [FluentUI for iOS](https://github.com/microsoft/fluentui-apple) repository. -- Open `ios/FluentUI.xcworkspace` in Xcode. +- Open `ios/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose a device to deploy to. - Once deployed you can choose a control to demo from the list of controls on the selected device. diff --git a/macos/FluentUIUnitTest/AvatarViewTests.swift b/macos/FluentUIUnitTest/AvatarViewTests.swift index f2f2cb0946..5a9d567e43 100644 --- a/macos/FluentUIUnitTest/AvatarViewTests.swift +++ b/macos/FluentUIUnitTest/AvatarViewTests.swift @@ -4,7 +4,7 @@ // import XCTest -@testable import FluentUI +@testable import FluentUI_macos class AvatarViewTests: XCTestCase { func testValidInitialsCharacter () { diff --git a/macos/FluentUIUnitTest/DatePickerControllerTests.swift b/macos/FluentUIUnitTest/DatePickerControllerTests.swift index 64aa36af17..aad56d596a 100644 --- a/macos/FluentUIUnitTest/DatePickerControllerTests.swift +++ b/macos/FluentUIUnitTest/DatePickerControllerTests.swift @@ -4,7 +4,7 @@ // import XCTest -@testable import FluentUI +@testable import FluentUI_macos class DatePickerControllerTests: XCTestCase { diff --git a/macos/FluentUIUnitTest/SimpleObjCTest.h b/macos/FluentUIUnitTest/SimpleObjCTest.h deleted file mode 100644 index a4be6dd578..0000000000 --- a/macos/FluentUIUnitTest/SimpleObjCTest.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -@import XCTest; - -NS_ASSUME_NONNULL_BEGIN - -/// Ensures that importing FluentUI into ObjC has no issues. -@interface SimpleObjCTest : XCTestCase -@end - -NS_ASSUME_NONNULL_END diff --git a/macos/FluentUIUnitTest/SimpleObjCTest.m b/macos/FluentUIUnitTest/SimpleObjCTest.m deleted file mode 100644 index 3ecf9c1279..0000000000 --- a/macos/FluentUIUnitTest/SimpleObjCTest.m +++ /dev/null @@ -1,10 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -@import FluentUI; -#import "SimpleObjCTest.h" - -@implementation SimpleObjCTest -@end diff --git a/macos/xcode/FluentUI.xcodeproj/project.pbxproj b/macos/xcode/FluentUI.xcodeproj/project.pbxproj index cbfedb76d7..f8e3ccbcdf 100644 --- a/macos/xcode/FluentUI.xcodeproj/project.pbxproj +++ b/macos/xcode/FluentUI.xcodeproj/project.pbxproj @@ -3,11 +3,10 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ - 2F6759B8251E4C2600210B3C /* SimpleObjCTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F6759B7251E4C2600210B3C /* SimpleObjCTest.m */; }; 3A42751229677C3700F36FBE /* BaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A42751129677C3700F36FBE /* BaseTest.swift */; }; 3A42751429677C3700F36FBE /* AvatarViewTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A42751329677C3700F36FBE /* AvatarViewTest.swift */; }; 3A42751B29677CA100F36FBE /* BadgeViewTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A42751A29677CA100F36FBE /* BadgeViewTest.swift */; }; @@ -18,38 +17,16 @@ 3A42752529677D0800F36FBE /* SeparatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A42752429677D0800F36FBE /* SeparatorTest.swift */; }; 3A42752729677D3700F36FBE /* ColorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A42752629677D3700F36FBE /* ColorTest.swift */; }; 3A80A049299EE88900A4A3D2 /* NotificationBarViewTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A80A048299EE88900A4A3D2 /* NotificationBarViewTest.swift */; }; - 3A8CB0E02996CB8800B68FCF /* NotificationBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A8CB0DF2996CB8800B68FCF /* NotificationBarView.swift */; }; 3A8CB0E32996CDA200B68FCF /* TestNotificationBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A8CB0E12996CD6400B68FCF /* TestNotificationBarViewController.swift */; }; - 3F2506DB25F2C7A90049ED54 /* DynamicColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2506D825F2C7A90049ED54 /* DynamicColor.swift */; }; - 3F2506DC25F2C7A90049ED54 /* Apperance+Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2506DA25F2C7A90049ED54 /* Apperance+Theme.swift */; }; - 53BCB0DB253A72AD00620960 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0DA253A72AD00620960 /* Colors.swift */; }; - 53BCB0E2253A72E000620960 /* FluentUIResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0E1253A72E000620960 /* FluentUIResources.swift */; }; - 53BCB0ED253A75BB00620960 /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0EC253A75BB00620960 /* AvatarView.swift */; }; - 53BCB0F4253A75CF00620960 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0F3253A75CF00620960 /* Button.swift */; }; - 53BCB0FB253A75E400620960 /* Link.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB0FA253A75E400620960 /* Link.swift */; }; - 53BCB102253A75EF00620960 /* Separator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53BCB101253A75EF00620960 /* Separator.swift */; }; - 8005007722FB361200CA6343 /* DatePickerControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8005007622FB361200CA6343 /* DatePickerControllerTests.swift */; }; - 80117A7F22DCDF6F00813D59 /* CalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80117A7E22DCDF6F00813D59 /* CalendarView.swift */; }; - 80117A8322E0E63E00813D59 /* CalendarHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80117A8222E0E63E00813D59 /* CalendarHeaderView.swift */; }; - 804626C622D7908100AFA48C /* CalendarDayButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 804626C522D7908100AFA48C /* CalendarDayButton.swift */; }; - 8061BF7E22EF936800F2D245 /* DatePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8061BF7C22EF936700F2D245 /* DatePickerView.swift */; }; - 8061BF7F22EF936800F2D245 /* DatePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8061BF7D22EF936700F2D245 /* DatePickerController.swift */; }; - 8F41CC7A2447B8DB0040B851 /* FluentUIResources-macos.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8F41CC6D2447B60F0040B851 /* FluentUIResources-macos.bundle */; }; 8F5368052295F4BF0098AC8F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F5368042295F4BF0098AC8F /* AppDelegate.swift */; }; 8F5368072295F4C10098AC8F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8F5368062295F4C10098AC8F /* Assets.xcassets */; }; 8F53680A2295F4C10098AC8F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8F5368082295F4C10098AC8F /* MainMenu.xib */; }; - 921AF7D7269CD3C900255791 /* FluentUI.strings in Resources */ = {isa = PBXBuildFile; fileRef = 921AF7B1269CD39C00255791 /* FluentUI.strings */; }; - 9B4AEBA42703CADB00B68020 /* FilledTemplateImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B4AEBA22703CADB00B68020 /* FilledTemplateImageView.swift */; }; + 9252C6222C62A8B3009C9272 /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 9252C6212C62A8B3009C9272 /* FluentUI */; }; + 9252C6282C62A9F1009C9272 /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 9252C6272C62A9F1009C9272 /* FluentUI */; }; 9B4AEBAB2705206300B68020 /* TestFilledTemplateImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B4AEBAA2705206300B68020 /* TestFilledTemplateImageViewController.swift */; }; 9B8661772A4F5DAE00FA4F78 /* TestColorProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8661752A4F5C4800FA4F78 /* TestColorProvider.swift */; }; - 9BE619162A1576BD0046463A /* ColorProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BE619152A1576BD0046463A /* ColorProviding.swift */; }; A257F81E2512DE45002CAA6E /* TestColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A257F81C2512DDF7002CAA6E /* TestColorViewController.swift */; }; A257F826251D987E002CAA6E /* FluentUI-macos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */; }; - AC7235D82492E0D000D0DCA8 /* FluentUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E61C96B22295E8D60006561F /* FluentUI.framework */; }; - AC7235D92492E0D000D0DCA8 /* FluentUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E61C96B22295E8D60006561F /* FluentUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - E61C96BC2295E8D60006561F /* FluentUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E61C96B22295E8D60006561F /* FluentUI.framework */; }; - E61C96C12295E8D60006561F /* AvatarViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61C96C02295E8D60006561F /* AvatarViewTests.swift */; }; - E61C96CC2295EAC50006561F /* FluentUI.h in Headers */ = {isa = PBXBuildFile; fileRef = E61C96B52295E8D60006561F /* FluentUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; E61C96D322962BC20006561F /* TestControlsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61C96D222962BC20006561F /* TestControlsViewController.swift */; }; E660317224BEB46F00A132DB /* TestViewControllerWrappingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E660317124BEB46F00A132DB /* TestViewControllerWrappingView.swift */; }; E6A92D2D24BEA8AC00562BCA /* TestSeparatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC97EFE8247FAB1D00DADC99 /* TestSeparatorViewController.swift */; }; @@ -61,7 +38,6 @@ E6A92D3B24BEA91F00562BCA /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A92D3A24BEA91F00562BCA /* ContentView.swift */; }; E6A92D4024BEA92000562BCA /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E6A92D3F24BEA92000562BCA /* Preview Assets.xcassets */; }; E6A92D4F24BEAEEA00562BCA /* TestViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6A92D4E24BEAEEA00562BCA /* TestViewControllers.swift */; }; - EC3AF6A426BDC892009118F4 /* BadgeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3AF6A326BDC892009118F4 /* BadgeView.swift */; }; EC3AF6A726BDDD30009118F4 /* TestBadgeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3AF6A526BDDD2A009118F4 /* TestBadgeViewController.swift */; }; /* End PBXBuildFile section */ @@ -73,34 +49,6 @@ remoteGlobalIDString = 8F5368012295F4BF0098AC8F; remoteInfo = FluentUITestApp; }; - 8F41CC7B2447B8F40040B851 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E61C96A92295E8D60006561F /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F41CC6C2447B60F0040B851; - remoteInfo = "FluentUIResources-macos"; - }; - 8F69C7B3229604A8009F69C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E61C96A92295E8D60006561F /* Project object */; - proxyType = 1; - remoteGlobalIDString = E61C96B12295E8D60006561F; - remoteInfo = FluentUI; - }; - E61C96BD2295E8D60006561F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E61C96A92295E8D60006561F /* Project object */; - proxyType = 1; - remoteGlobalIDString = E61C96B12295E8D60006561F; - remoteInfo = FluentUI; - }; - E660317324BEBF8F00A132DB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E61C96A92295E8D60006561F /* Project object */; - proxyType = 1; - remoteGlobalIDString = E61C96B12295E8D60006561F; - remoteInfo = FluentUI; - }; E6A92D4624BEA9A600562BCA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = E61C96A92295E8D60006561F /* Project object */; @@ -115,13 +63,6 @@ remoteGlobalIDString = E6A92D2324BEA85900562BCA; remoteInfo = FluentUITestViewControllers; }; - E6A92D4A24BEA9B400562BCA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E61C96A92295E8D60006561F /* Project object */; - proxyType = 1; - remoteGlobalIDString = E61C96B12295E8D60006561F; - remoteInfo = FluentUI; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -131,7 +72,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - AC7235D92492E0D000D0DCA8 /* FluentUI.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -139,8 +79,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 2F6759B6251E4C2600210B3C /* SimpleObjCTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleObjCTest.h; sourceTree = "<group>"; }; - 2F6759B7251E4C2600210B3C /* SimpleObjCTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SimpleObjCTest.m; sourceTree = "<group>"; }; 3A42750F29677C3700F36FBE /* FluentUIDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FluentUIDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3A42751129677C3700F36FBE /* BaseTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTest.swift; sourceTree = "<group>"; }; 3A42751329677C3700F36FBE /* AvatarViewTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarViewTest.swift; sourceTree = "<group>"; }; @@ -152,22 +90,7 @@ 3A42752429677D0800F36FBE /* SeparatorTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeparatorTest.swift; sourceTree = "<group>"; }; 3A42752629677D3700F36FBE /* ColorTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorTest.swift; sourceTree = "<group>"; }; 3A80A048299EE88900A4A3D2 /* NotificationBarViewTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationBarViewTest.swift; sourceTree = "<group>"; }; - 3A8CB0DF2996CB8800B68FCF /* NotificationBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationBarView.swift; sourceTree = "<group>"; }; 3A8CB0E12996CD6400B68FCF /* TestNotificationBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestNotificationBarViewController.swift; sourceTree = "<group>"; }; - 3F2506D825F2C7A90049ED54 /* DynamicColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicColor.swift; sourceTree = "<group>"; }; - 3F2506DA25F2C7A90049ED54 /* Apperance+Theme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Apperance+Theme.swift"; sourceTree = "<group>"; }; - 53BCB0DA253A72AD00620960 /* Colors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; }; - 53BCB0E1253A72E000620960 /* FluentUIResources.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FluentUIResources.swift; sourceTree = "<group>"; }; - 53BCB0EC253A75BB00620960 /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = "<group>"; }; - 53BCB0F3253A75CF00620960 /* Button.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = "<group>"; }; - 53BCB0FA253A75E400620960 /* Link.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Link.swift; sourceTree = "<group>"; }; - 53BCB101253A75EF00620960 /* Separator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Separator.swift; sourceTree = "<group>"; }; - 8005007622FB361200CA6343 /* DatePickerControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatePickerControllerTests.swift; sourceTree = "<group>"; }; - 80117A7E22DCDF6F00813D59 /* CalendarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = "<group>"; }; - 80117A8222E0E63E00813D59 /* CalendarHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarHeaderView.swift; sourceTree = "<group>"; }; - 804626C522D7908100AFA48C /* CalendarDayButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarDayButton.swift; sourceTree = "<group>"; }; - 8061BF7C22EF936700F2D245 /* DatePickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatePickerView.swift; sourceTree = "<group>"; }; - 8061BF7D22EF936700F2D245 /* DatePickerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatePickerController.swift; sourceTree = "<group>"; }; 8061BF8222EF957200F2D245 /* TestDatePickerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestDatePickerController.swift; sourceTree = "<group>"; }; 8F250B8C22B3062A00142B0E /* TestAvatarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestAvatarViewController.swift; sourceTree = "<group>"; }; 8F3572322361143B0076FBBE /* FluentUI.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = FluentUI.xctestplan; sourceTree = "<group>"; }; @@ -217,56 +140,14 @@ 8F79192724589B6D00C84086 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F79192924589B6E00C84086 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F931A6C22BD593300311764 /* FluentUI_unittest.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_unittest.xcconfig; sourceTree = "<group>"; }; - 921AF7B2269CD39C00255791 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B3269CD39C00255791 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B4269CD39C00255791 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B5269CD39C00255791 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B6269CD39C00255791 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7B7269CD39C00255791 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B8269CD39C00255791 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7B9269CD39C00255791 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7BA269CD39C00255791 /* nb-NO */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "nb-NO"; path = "nb-NO.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7BB269CD39C00255791 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7BC269CD39C00255791 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7BD269CD39C00255791 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7BE269CD39C00255791 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7BF269CD39C00255791 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C0269CD39C00255791 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C1269CD39C00255791 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C2269CD39C00255791 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C3269CD39C00255791 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C4269CD39C00255791 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7C5269CD39C00255791 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C6269CD39C00255791 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C7269CD39C00255791 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7C8269CD39C00255791 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7C9269CD39C00255791 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7CA269CD39C00255791 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7CB269CD39C00255791 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7CC269CD39C00255791 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7CD269CD39C00255791 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7CE269CD39C00255791 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7CF269CD39C00255791 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7D0269CD39C00255791 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7D1269CD39C00255791 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/FluentUI.strings"; sourceTree = "<group>"; }; - 921AF7D2269CD39C00255791 /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7D3269CD39C00255791 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7D4269CD39C00255791 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 921AF7D5269CD39C00255791 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/FluentUI.strings; sourceTree = "<group>"; }; - 9B4AEBA22703CADB00B68020 /* FilledTemplateImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilledTemplateImageView.swift; sourceTree = "<group>"; }; + 9252C61E2C62A881009C9272 /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ../..; sourceTree = "<group>"; }; 9B4AEBAA2705206300B68020 /* TestFilledTemplateImageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestFilledTemplateImageViewController.swift; sourceTree = "<group>"; }; 9B8661752A4F5C4800FA4F78 /* TestColorProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestColorProvider.swift; sourceTree = "<group>"; }; - 9BE619152A1576BD0046463A /* ColorProviding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorProviding.swift; sourceTree = "<group>"; }; A257F81C2512DDF7002CAA6E /* TestColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestColorViewController.swift; sourceTree = "<group>"; }; A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "FluentUI-macos.xcassets"; path = "../FluentUI/Resources/FluentUI-macos.xcassets"; sourceTree = "<group>"; }; AC97EFE3247541E100DADC99 /* TestButtonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestButtonViewController.swift; sourceTree = "<group>"; }; AC97EFE8247FAB1D00DADC99 /* TestSeparatorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSeparatorViewController.swift; sourceTree = "<group>"; }; - E61C96B22295E8D60006561F /* FluentUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FluentUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E61C96B52295E8D60006561F /* FluentUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FluentUI.h; sourceTree = "<group>"; }; - E61C96B62295E8D60006561F /* FluentUI-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FluentUI-Info.plist"; sourceTree = "<group>"; }; E61C96BB2295E8D60006561F /* FluentUIUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FluentUIUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - E61C96C02295E8D60006561F /* AvatarViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarViewTests.swift; sourceTree = "<group>"; }; - E61C96C22295E8D60006561F /* FluentUIUnitTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FluentUIUnitTest-Info.plist"; sourceTree = "<group>"; }; E61C96CE2295ED8A0006561F /* FluentUI_framework.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_framework.xcconfig; sourceTree = "<group>"; }; E61C96CF2295F6FE0006561F /* FluentUI_common.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_common.xcconfig; sourceTree = "<group>"; }; E61C96D02295FA360006561F /* FluentUI_debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_debug.xcconfig; sourceTree = "<group>"; }; @@ -284,7 +165,6 @@ E6A92D4C24BEAA0200562BCA /* FluentUI_swiftui_testapp.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_swiftui_testapp.xcconfig; sourceTree = "<group>"; }; E6A92D4D24BEAA0200562BCA /* FluentUI_testviewcontrollers.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_testviewcontrollers.xcconfig; sourceTree = "<group>"; }; E6A92D4E24BEAEEA00562BCA /* TestViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestViewControllers.swift; sourceTree = "<group>"; }; - EC3AF6A326BDC892009118F4 /* BadgeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeView.swift; sourceTree = "<group>"; }; EC3AF6A526BDDD2A009118F4 /* TestBadgeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestBadgeViewController.swift; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -307,14 +187,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AC7235D82492E0D000D0DCA8 /* FluentUI.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E61C96AF2295E8D60006561F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( + 9252C6222C62A8B3009C9272 /* FluentUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -322,7 +195,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E61C96BC2295E8D60006561F /* FluentUI.framework in Frameworks */, + 9252C6282C62A9F1009C9272 /* FluentUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -360,84 +233,6 @@ path = FluentUIDemoTests; sourceTree = "<group>"; }; - 3A8CB0DE2996CA1B00B68FCF /* Notification */ = { - isa = PBXGroup; - children = ( - 3A8CB0DF2996CB8800B68FCF /* NotificationBarView.swift */, - ); - path = Notification; - sourceTree = "<group>"; - }; - 3F2506D725F2C7A90049ED54 /* DynamicColor */ = { - isa = PBXGroup; - children = ( - 3F2506D825F2C7A90049ED54 /* DynamicColor.swift */, - ); - path = DynamicColor; - sourceTree = "<group>"; - }; - 3F2506D925F2C7A90049ED54 /* Appearance */ = { - isa = PBXGroup; - children = ( - 3F2506DA25F2C7A90049ED54 /* Apperance+Theme.swift */, - ); - path = Appearance; - sourceTree = "<group>"; - }; - 53BCB0D9253A724700620960 /* Core */ = { - isa = PBXGroup; - children = ( - 53BCB0E1253A72E000620960 /* FluentUIResources.swift */, - 9BE619152A1576BD0046463A /* ColorProviding.swift */, - 53BCB0DA253A72AD00620960 /* Colors.swift */, - ); - path = Core; - sourceTree = "<group>"; - }; - 53BCB0E8253A74DF00620960 /* AvatarView */ = { - isa = PBXGroup; - children = ( - 53BCB0EC253A75BB00620960 /* AvatarView.swift */, - ); - path = AvatarView; - sourceTree = "<group>"; - }; - 53BCB0E9253A74FE00620960 /* Button */ = { - isa = PBXGroup; - children = ( - 53BCB0F3253A75CF00620960 /* Button.swift */, - ); - path = Button; - sourceTree = "<group>"; - }; - 53BCB0EA253A752400620960 /* Link */ = { - isa = PBXGroup; - children = ( - 53BCB0FA253A75E400620960 /* Link.swift */, - ); - path = Link; - sourceTree = "<group>"; - }; - 53BCB0EB253A753400620960 /* Separator */ = { - isa = PBXGroup; - children = ( - 53BCB101253A75EF00620960 /* Separator.swift */, - ); - path = Separator; - sourceTree = "<group>"; - }; - 804626C722D7909200AFA48C /* DatePicker */ = { - isa = PBXGroup; - children = ( - 804626C522D7908100AFA48C /* CalendarDayButton.swift */, - 80117A8222E0E63E00813D59 /* CalendarHeaderView.swift */, - 80117A7E22DCDF6F00813D59 /* CalendarView.swift */, - 8061BF7C22EF936700F2D245 /* DatePickerView.swift */, - 8061BF7D22EF936700F2D245 /* DatePickerController.swift */, - ); - path = DatePicker; - sourceTree = "<group>"; - }; 8F41CC6E2447B60F0040B851 /* FluentUIResources-macos */ = { isa = PBXGroup; children = ( @@ -460,30 +255,6 @@ path = ../FluentUITestApp; sourceTree = "<group>"; }; - 921AF7AF269CD39C00255791 /* Resources */ = { - isa = PBXGroup; - children = ( - 921AF7B0269CD39C00255791 /* Strings */, - ); - path = Resources; - sourceTree = "<group>"; - }; - 921AF7B0269CD39C00255791 /* Strings */ = { - isa = PBXGroup; - children = ( - 921AF7B1269CD39C00255791 /* FluentUI.strings */, - ); - path = Strings; - sourceTree = "<group>"; - }; - 9B4AEBA12703CADB00B68020 /* FilledTemplateImageView */ = { - isa = PBXGroup; - children = ( - 9B4AEBA22703CADB00B68020 /* FilledTemplateImageView.swift */, - ); - path = FilledTemplateImageView; - sourceTree = "<group>"; - }; AC7235D72492E0D000D0DCA8 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -494,14 +265,13 @@ E61C96A82295E8D60006561F = { isa = PBXGroup; children = ( + 9252C61E2C62A881009C9272 /* fluentui-apple */, A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */, - E61C96B42295E8D60006561F /* FluentUI */, 3A42751029677C3700F36FBE /* FluentUIDemoTests */, 8F41CC6E2447B60F0040B851 /* FluentUIResources-macos */, E6A92D2524BEA85900562BCA /* FluentUITestViewControllers */, 8F5368032295F4BF0098AC8F /* FluentUITestApp */, E6A92D3724BEA91F00562BCA /* FluentUISwiftUITestApp */, - E61C96BF2295E8D60006561F /* FluentUIUnitTest */, E61C96CD2295ED530006561F /* xcode */, E61C96B32295E8D60006561F /* Products */, AC7235D72492E0D000D0DCA8 /* Frameworks */, @@ -514,7 +284,6 @@ E61C96B32295E8D60006561F /* Products */ = { isa = PBXGroup; children = ( - E61C96B22295E8D60006561F /* FluentUI.framework */, E61C96BB2295E8D60006561F /* FluentUIUnitTests.xctest */, 8F5368022295F4BF0098AC8F /* FluentUITestApp.app */, 8F41CC6D2447B60F0040B851 /* FluentUIResources-macos.bundle */, @@ -525,41 +294,6 @@ name = Products; sourceTree = "<group>"; }; - E61C96B42295E8D60006561F /* FluentUI */ = { - isa = PBXGroup; - children = ( - 3F2506D925F2C7A90049ED54 /* Appearance */, - 53BCB0E8253A74DF00620960 /* AvatarView */, - EC3AF6A226BDC67D009118F4 /* Badge */, - 53BCB0E9253A74FE00620960 /* Button */, - 53BCB0D9253A724700620960 /* Core */, - 804626C722D7909200AFA48C /* DatePicker */, - 3F2506D725F2C7A90049ED54 /* DynamicColor */, - 9B4AEBA12703CADB00B68020 /* FilledTemplateImageView */, - 53BCB0EA253A752400620960 /* Link */, - 3A8CB0DE2996CA1B00B68FCF /* Notification */, - 921AF7AF269CD39C00255791 /* Resources */, - 53BCB0EB253A753400620960 /* Separator */, - E61C96B62295E8D60006561F /* FluentUI-Info.plist */, - E61C96B52295E8D60006561F /* FluentUI.h */, - ); - name = FluentUI; - path = ../FluentUI; - sourceTree = "<group>"; - }; - E61C96BF2295E8D60006561F /* FluentUIUnitTest */ = { - isa = PBXGroup; - children = ( - E61C96C02295E8D60006561F /* AvatarViewTests.swift */, - 8005007622FB361200CA6343 /* DatePickerControllerTests.swift */, - E61C96C22295E8D60006561F /* FluentUIUnitTest-Info.plist */, - 2F6759B6251E4C2600210B3C /* SimpleObjCTest.h */, - 2F6759B7251E4C2600210B3C /* SimpleObjCTest.m */, - ); - name = FluentUIUnitTest; - path = ../FluentUIUnitTest; - sourceTree = "<group>"; - }; E61C96CD2295ED530006561F /* xcode */ = { isa = PBXGroup; children = ( @@ -618,25 +352,9 @@ path = "Preview Content"; sourceTree = "<group>"; }; - EC3AF6A226BDC67D009118F4 /* Badge */ = { - isa = PBXGroup; - children = ( - EC3AF6A326BDC892009118F4 /* BadgeView.swift */, - ); - path = Badge; - sourceTree = "<group>"; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - E61C96AD2295E8D60006561F /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - E61C96CC2295EAC50006561F /* FluentUI.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E6A92D2024BEA85900562BCA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -694,34 +412,17 @@ buildRules = ( ); dependencies = ( + 9252C6202C62A8AB009C9272 /* PBXTargetDependency */, E6A92D4724BEA9A600562BCA /* PBXTargetDependency */, - 8F69C7B4229604A8009F69C0 /* PBXTargetDependency */, ); name = FluentUITestApp; + packageProductDependencies = ( + 9252C6212C62A8B3009C9272 /* FluentUI */, + ); productName = FluentUITestApp; productReference = 8F5368022295F4BF0098AC8F /* FluentUITestApp.app */; productType = "com.apple.product-type.application"; }; - E61C96B12295E8D60006561F /* FluentUI */ = { - isa = PBXNativeTarget; - buildConfigurationList = E61C96C62295E8D60006561F /* Build configuration list for PBXNativeTarget "FluentUI" */; - buildPhases = ( - E61C96AD2295E8D60006561F /* Headers */, - E61C96AE2295E8D60006561F /* Sources */, - E61C96AF2295E8D60006561F /* Frameworks */, - E61C96B02295E8D60006561F /* Resources */, - 5328556A25ACC3B40042C3B9 /* Run swiftlint */, - ); - buildRules = ( - ); - dependencies = ( - 8F41CC7C2447B8F40040B851 /* PBXTargetDependency */, - ); - name = FluentUI; - productName = FluentUI; - productReference = E61C96B22295E8D60006561F /* FluentUI.framework */; - productType = "com.apple.product-type.framework"; - }; E61C96BA2295E8D60006561F /* FluentUITests */ = { isa = PBXNativeTarget; buildConfigurationList = E61C96C92295E8D60006561F /* Build configuration list for PBXNativeTarget "FluentUITests" */; @@ -733,9 +434,12 @@ buildRules = ( ); dependencies = ( - E61C96BE2295E8D60006561F /* PBXTargetDependency */, + 9252C6262C62A8F6009C9272 /* PBXTargetDependency */, ); name = FluentUITests; + packageProductDependencies = ( + 9252C6272C62A9F1009C9272 /* FluentUI */, + ); productName = FluentUITests; productReference = E61C96BB2295E8D60006561F /* FluentUIUnitTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -751,7 +455,7 @@ buildRules = ( ); dependencies = ( - E660317424BEBF8F00A132DB /* PBXTargetDependency */, + 9252C6242C62A8DC009C9272 /* PBXTargetDependency */, ); name = FluentUITestViewControllers; productName = FluentUITestViewControllers; @@ -769,7 +473,6 @@ buildRules = ( ); dependencies = ( - E6A92D4B24BEA9B400562BCA /* PBXTargetDependency */, E6A92D4924BEA9AF00562BCA /* PBXTargetDependency */, ); name = FluentUISwiftUITestApp; @@ -797,10 +500,6 @@ 8F5368012295F4BF0098AC8F = { CreatedOnToolsVersion = 10.2.1; }; - E61C96B12295E8D60006561F = { - CreatedOnToolsVersion = 10.2.1; - LastSwiftMigration = 1020; - }; E61C96BA2295E8D60006561F = { CreatedOnToolsVersion = 10.2.1; }; @@ -860,7 +559,6 @@ projectDirPath = ""; projectRoot = ""; targets = ( - E61C96B12295E8D60006561F /* FluentUI */, E61C96BA2295E8D60006561F /* FluentUITests */, 3A42750E29677C3700F36FBE /* FluentUIDemoTests */, 8F5368012295F4BF0098AC8F /* FluentUITestApp */, @@ -883,7 +581,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 921AF7D7269CD3C900255791 /* FluentUI.strings in Resources */, A257F826251D987E002CAA6E /* FluentUI-macos.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -897,14 +594,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E61C96B02295E8D60006561F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8F41CC7A2447B8DB0040B851 /* FluentUIResources-macos.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E61C96B92295E8D60006561F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -922,27 +611,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 5328556A25ACC3B40042C3B9 /* Run swiftlint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run swiftlint"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Adds support for Apple Silicon brew directory\nexport PATH=\"$PATH:/opt/homebrew/bin\"\n\nif which swiftlint >/dev/null; then\n export LINTPATH=\"${LOCROOT}/../\"\n swiftlint --config ../../.swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 3A42750B29677C3700F36FBE /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -977,37 +645,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E61C96AE2295E8D60006561F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 804626C622D7908100AFA48C /* CalendarDayButton.swift in Sources */, - 53BCB0DB253A72AD00620960 /* Colors.swift in Sources */, - 53BCB102253A75EF00620960 /* Separator.swift in Sources */, - 80117A8322E0E63E00813D59 /* CalendarHeaderView.swift in Sources */, - 3A8CB0E02996CB8800B68FCF /* NotificationBarView.swift in Sources */, - 53BCB0ED253A75BB00620960 /* AvatarView.swift in Sources */, - 3F2506DC25F2C7A90049ED54 /* Apperance+Theme.swift in Sources */, - 53BCB0FB253A75E400620960 /* Link.swift in Sources */, - EC3AF6A426BDC892009118F4 /* BadgeView.swift in Sources */, - 80117A7F22DCDF6F00813D59 /* CalendarView.swift in Sources */, - 53BCB0E2253A72E000620960 /* FluentUIResources.swift in Sources */, - 8061BF7E22EF936800F2D245 /* DatePickerView.swift in Sources */, - 3F2506DB25F2C7A90049ED54 /* DynamicColor.swift in Sources */, - 9B4AEBA42703CADB00B68020 /* FilledTemplateImageView.swift in Sources */, - 8061BF7F22EF936800F2D245 /* DatePickerController.swift in Sources */, - 9BE619162A1576BD0046463A /* ColorProviding.swift in Sources */, - 53BCB0F4253A75CF00620960 /* Button.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E61C96B72295E8D60006561F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E61C96C12295E8D60006561F /* AvatarViewTests.swift in Sources */, - 2F6759B8251E4C2600210B3C /* SimpleObjCTest.m in Sources */, - 8005007722FB361200CA6343 /* DatePickerControllerTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1047,25 +688,17 @@ target = 8F5368012295F4BF0098AC8F /* FluentUITestApp */; targetProxy = 3A42751529677C3700F36FBE /* PBXContainerItemProxy */; }; - 8F41CC7C2447B8F40040B851 /* PBXTargetDependency */ = { + 9252C6202C62A8AB009C9272 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 8F41CC6C2447B60F0040B851 /* FluentUIResources-macos */; - targetProxy = 8F41CC7B2447B8F40040B851 /* PBXContainerItemProxy */; + productRef = 9252C61F2C62A8AB009C9272 /* FluentUI */; }; - 8F69C7B4229604A8009F69C0 /* PBXTargetDependency */ = { + 9252C6242C62A8DC009C9272 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E61C96B12295E8D60006561F /* FluentUI */; - targetProxy = 8F69C7B3229604A8009F69C0 /* PBXContainerItemProxy */; + productRef = 9252C6232C62A8DC009C9272 /* FluentUI */; }; - E61C96BE2295E8D60006561F /* PBXTargetDependency */ = { + 9252C6262C62A8F6009C9272 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = E61C96B12295E8D60006561F /* FluentUI */; - targetProxy = E61C96BD2295E8D60006561F /* PBXContainerItemProxy */; - }; - E660317424BEBF8F00A132DB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E61C96B12295E8D60006561F /* FluentUI */; - targetProxy = E660317324BEBF8F00A132DB /* PBXContainerItemProxy */; + productRef = 9252C6252C62A8F6009C9272 /* FluentUI */; }; E6A92D4724BEA9A600562BCA /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1077,11 +710,6 @@ target = E6A92D2324BEA85900562BCA /* FluentUITestViewControllers */; targetProxy = E6A92D4824BEA9AF00562BCA /* PBXContainerItemProxy */; }; - E6A92D4B24BEA9B400562BCA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E61C96B12295E8D60006561F /* FluentUI */; - targetProxy = E6A92D4A24BEA9B400562BCA /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -1129,49 +757,6 @@ name = MainMenu.xib; sourceTree = "<group>"; }; - 921AF7B1269CD39C00255791 /* FluentUI.strings */ = { - isa = PBXVariantGroup; - children = ( - 921AF7B2269CD39C00255791 /* de */, - 921AF7B3269CD39C00255791 /* he */, - 921AF7B4269CD39C00255791 /* ar */, - 921AF7B5269CD39C00255791 /* el */, - 921AF7B6269CD39C00255791 /* zh-Hans */, - 921AF7B7269CD39C00255791 /* ja */, - 921AF7B8269CD39C00255791 /* en */, - 921AF7B9269CD39C00255791 /* uk */, - 921AF7BA269CD39C00255791 /* nb-NO */, - 921AF7BB269CD39C00255791 /* en-GB */, - 921AF7BC269CD39C00255791 /* es */, - 921AF7BD269CD39C00255791 /* da */, - 921AF7BE269CD39C00255791 /* it */, - 921AF7BF269CD39C00255791 /* sk */, - 921AF7C0269CD39C00255791 /* ms */, - 921AF7C1269CD39C00255791 /* sv */, - 921AF7C2269CD39C00255791 /* cs */, - 921AF7C3269CD39C00255791 /* ko */, - 921AF7C4269CD39C00255791 /* zh-Hant */, - 921AF7C5269CD39C00255791 /* hu */, - 921AF7C6269CD39C00255791 /* tr */, - 921AF7C7269CD39C00255791 /* pl */, - 921AF7C8269CD39C00255791 /* pt-BR */, - 921AF7C9269CD39C00255791 /* vi */, - 921AF7CA269CD39C00255791 /* es-MX */, - 921AF7CB269CD39C00255791 /* ru */, - 921AF7CC269CD39C00255791 /* fr */, - 921AF7CD269CD39C00255791 /* fi */, - 921AF7CE269CD39C00255791 /* id */, - 921AF7CF269CD39C00255791 /* nl */, - 921AF7D0269CD39C00255791 /* th */, - 921AF7D1269CD39C00255791 /* pt-PT */, - 921AF7D2269CD39C00255791 /* ro */, - 921AF7D3269CD39C00255791 /* hr */, - 921AF7D4269CD39C00255791 /* hi */, - 921AF7D5269CD39C00255791 /* ca */, - ); - name = FluentUI.strings; - sourceTree = "<group>"; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -1358,20 +943,6 @@ }; name = Release; }; - E61C96C72295E8D60006561F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E61C96CE2295ED8A0006561F /* FluentUI_framework.xcconfig */; - buildSettings = { - }; - name = Debug; - }; - E61C96C82295E8D60006561F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E61C96CE2295ED8A0006561F /* FluentUI_framework.xcconfig */; - buildSettings = { - }; - name = Release; - }; E61C96CA2295E8D60006561F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 8F931A6C22BD593300311764 /* FluentUI_unittest.xcconfig */; @@ -1455,15 +1026,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E61C96C62295E8D60006561F /* Build configuration list for PBXNativeTarget "FluentUI" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E61C96C72295E8D60006561F /* Debug */, - E61C96C82295E8D60006561F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; E61C96C92295E8D60006561F /* Build configuration list for PBXNativeTarget "FluentUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1492,6 +1054,29 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCSwiftPackageProductDependency section */ + 9252C61F2C62A8AB009C9272 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; + 9252C6212C62A8B3009C9272 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; + 9252C6232C62A8DC009C9272 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; + 9252C6252C62A8F6009C9272 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; + 9252C6272C62A9F1009C9272 /* FluentUI */ = { + isa = XCSwiftPackageProductDependency; + productName = FluentUI; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = E61C96A92295E8D60006561F /* Project object */; } diff --git a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme b/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme index bf7c5472c0..4d40fb6e4d 100644 --- a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme +++ b/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> <BuildableReference BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" + BlueprintIdentifier = "FluentUI" + BuildableName = "FluentUI" BlueprintName = "FluentUI" - ReferencedContainer = "container:FluentUI.xcodeproj"> + ReferencedContainer = "container:../.."> </BuildableReference> </BuildActionEntry> </BuildActionEntries> @@ -52,15 +52,6 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> </LaunchAction> <ProfileAction buildConfiguration = "Release" @@ -68,15 +59,6 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96B12295E8D60006561F" - BuildableName = "FluentUI.framework" - BlueprintName = "FluentUI" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </MacroExpansion> </ProfileAction> <AnalyzeAction buildConfiguration = "Debug"> diff --git a/scripts/BumpVersion.swift b/scripts/BumpVersion.swift index cd02d17bf8..c59a12900b 100755 --- a/scripts/BumpVersion.swift +++ b/scripts/BumpVersion.swift @@ -157,7 +157,7 @@ let majorBump = Int(values[0])! updatePlist(path: "\(currentDirectory)/ios/FluentUI.Demo/FluentUI.Demo/Info.plist", values: ["\(1 + majorBump)\(croppedNewValue)", "\(137 + majorBump)\(croppedNewValue)"]) -updatePlist(path: "\(currentDirectory)/ios/FluentUI.Resources/Info.plist", +updatePlist(path: "\(currentDirectory)/ios/FluentUI.Resources/Version.plist", values: [newVersion, newVersion]) updatePlist(path: "\(currentDirectory)/macos/FluentUI/FluentUI-Info.plist", diff --git a/scripts/xcodebuild_wrapper.sh b/scripts/xcodebuild_wrapper.sh index 8b760a0a94..185d2409ad 100755 --- a/scripts/xcodebuild_wrapper.sh +++ b/scripts/xcodebuild_wrapper.sh @@ -30,7 +30,7 @@ function invoke_xcodebuild() # \param $3+ build commands function ios_simulator_build() { - invoke_xcodebuild workspace "ios/FluentUI.xcworkspace" "$1" "$2" iphonesimulator "${@:3}" + invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" iphonesimulator "${@:3}" return $? } @@ -41,7 +41,7 @@ function ios_simulator_build() # \param $3+ build commands function ios_device_build() { - invoke_xcodebuild workspace "ios/FluentUI.xcworkspace" "$1" "$2" iphoneos "${@:3}" + invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" iphoneos "${@:3}" return $? } @@ -63,7 +63,7 @@ function macos_build() # \param $3+ build commands function visionos_simulator_build() { - invoke_xcodebuild workspace "ios/FluentUI.xcworkspace" "$1" "$2" xrsimulator "${@:3}" + invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" xrsimulator "${@:3}" return $? } From 2e35533d99de1b0a96f9e3cc9b07a2235594365e Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Wed, 25 Sep 2024 16:50:54 -0700 Subject: [PATCH 72/90] [iOS][macOS] Rework top-level file management (#2090) * Reorganize all files to align with SPM standards * Update scripts for new locations * Restore podspec * Fix SwiftUI demo app * Updating docs, loc script, and readme * Correct demos path for iOS --- CONTRIBUTING.md | 2 +- .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/ Icon-128.png | Bin .../AppIcon.appiconset/ Icon-128_2x-1.png | Bin .../AppIcon.appiconset/ Icon-128_2x.png | Bin .../AppIcon.appiconset/ Icon-16.png | Bin .../AppIcon.appiconset/ Icon-16_2x.png | Bin .../AppIcon.appiconset/ Icon-256_2x.png | Bin .../AppIcon.appiconset/ Icon-32.png | Bin .../AppIcon.appiconset/ Icon-32_2x.png | Bin .../AppIcon.appiconset/ Icon-512.png | Bin .../AppIcon.appiconset/ Icon-512_2x.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/FluentUIDemo_iOS.png | Bin .../Assets.xcassets/Contents.json | 0 .../FluentUIDemo/ContentView.swift | 0 .../FluentUIDemo/FluentUIDemo.entitlements | 0 .../FluentUIDemo.xcodeproj/project.pbxproj | 12 +- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../FluentUIDemo/FluentUIDemoApp.swift | 0 .../Preview Assets.xcassets/Contents.json | 0 .../FluentUI.Demo.xcodeproj/project.pbxproj | 0 .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/swiftpm/Package.resolved | 0 .../xcschemes/Demo.Development.xcscheme | 16 +- .../xcschemes/Demo.Dogfood.xcscheme | 0 .../xcschemes/Demo.Release.xcscheme | 0 .../FluentUI.Demo/AppDelegate.swift | 0 .../FluentUI.Demo/BrandedSwitch.swift | 0 .../ColoredPillBackgroundView.swift | 0 .../DemoAppearanceControlView.swift | 0 .../FluentUI.Demo/DemoAppearanceMenu.swift | 0 .../FluentUI.Demo/DemoColorThemes.swift | 0 .../FluentUI.Demo/DemoController.swift | 0 .../FluentUI.Demo/DemoHostingController.swift | 0 .../DemoListViewController.swift | 0 .../DemoTableViewController.swift | 0 .../FluentUI.Demo/Demos.swift | 0 .../ActivityIndicatorDemoController.swift | 0 ...ivityIndicatorDemoController_SwiftUI.swift | 0 .../AliasColorTokensDemoController.swift | 0 ...iasColorTokensDemoController_SwiftUI.swift | 0 .../Demos/AvatarDemoController.swift | 0 .../Demos/AvatarDemoController_SwiftUI.swift | 0 .../Demos/AvatarGroupDemoController.swift | 0 .../AvatarGroupDemoController_SwiftUI.swift | 0 .../Demos/BadgeFieldDemoController.swift | 0 .../Demos/BadgeViewDemoController.swift | 0 .../BottomCommandingDemoController.swift | 0 .../Demos/BottomSheetDemoController.swift | 0 .../Demos/ButtonDemoController.swift | 0 .../Demos/ButtonDemoController_SwiftUI.swift | 0 .../Demos/CardNudgeDemoController.swift | 0 .../Demos/CardViewDemoController.swift | 0 .../Demos/CommandBarDemoController.swift | 0 .../Demos/DateTimePickerDemoController.swift | 0 .../Demos/DrawerDemoController.swift | 0 .../GlobalColorTokensDemoController.swift | 0 .../Demos/HUDDemoController.swift | 0 .../Demos/HUDDemoController_SwiftUI.swift | 0 ...determinateProgressBarDemoController.swift | 0 ...ateProgressBarDemoController_SwiftUI.swift | 0 .../Demos/LabelDemoController.swift | 0 .../Demos/ListActionItemDemoController.swift | 0 ...ListActionItemDemoController_SwiftUI.swift | 0 .../Demos/ListItemDemoController.swift | 0 .../ListItemDemoController_SwiftUI.swift | 0 .../MultilineCommandBarDemoController.swift | 0 .../NavigationControllerDemoController.swift | 0 .../NotificationViewDemoController.swift | 0 ...tificationViewDemoController_SwiftUI.swift | 0 .../Demos/ObjectiveCDemoColorProviding.h | 0 .../Demos/ObjectiveCDemoColorProviding.m | 0 .../Demos/ObjectiveCDemoController.h | 0 .../Demos/ObjectiveCDemoController.m | 0 .../Demos/OtherCellsDemoController.swift | 0 .../Demos/PeoplePickerDemoController.swift | 0 .../PersonaButtonCarouselDemoController.swift | 0 .../Demos/PersonaListViewDemoController.swift | 0 .../Demos/PillButtonBarDemoController.swift | 0 .../Demos/PillButtonDemoController.swift | 0 .../Demos/PopupMenuDemoController.swift | 0 .../Demos/PopupMenuObjCDemoController.h | 0 .../Demos/PopupMenuObjCDemoController.m | 0 .../Demos/SearchBarDemoController.swift | 0 .../SegmentedControlDemoController.swift | 0 .../Demos/ShadowTokensDemoController.swift | 0 .../ShimmerLinesViewDemoController.swift | 0 .../Demos/ShimmerViewDemoController.swift | 0 .../Demos/SideTabBarDemoController.swift | 0 .../Demos/TabBarViewDemoController.swift | 0 .../Demos/TableViewCellDemoController.swift | 0 .../TableViewCellShimmerDemoController.swift | 0 ...leViewHeaderFooterViewDemoController.swift | 0 .../Demos/TextFieldDemoController.swift | 0 .../Demos/TextFieldObjCDemoController.h | 0 .../Demos/TextFieldObjCDemoController.m | 0 .../Demos/TooltipDemoController.swift | 0 .../Demos/TooltipDemoController_SwiftUI.swift | 0 .../TwoLineTitleViewDemoController.swift | 0 .../TypographyTokensDemoController.swift | 0 .../FluentUI.Demo-Bridging-Header.h | 0 .../FluentUI.Demo/Info.plist | 0 .../FluentUI.Demo/OtherCellsSampleData.swift | 0 .../FluentUI.Demo/ReadmeViewController.swift | 0 .../AppIcon.appiconset/ 20.png | Bin .../AppIcon.appiconset/ 20_2x-1.png | Bin .../AppIcon.appiconset/ 20_2x.png | Bin .../AppIcon.appiconset/ 20_3x.png | Bin .../AppIcon.appiconset/ 29.png | Bin .../AppIcon.appiconset/ 29_2x-1.png | Bin .../AppIcon.appiconset/ 29_2x.png | Bin .../AppIcon.appiconset/ 29_3x.png | Bin .../AppIcon.appiconset/ 40.png | Bin .../AppIcon.appiconset/ 40_2x-1.png | Bin .../AppIcon.appiconset/ 40_2x.png | Bin .../AppIcon.appiconset/ 40_3x.png | Bin .../AppIcon.appiconset/ 60_2x.png | Bin .../AppIcon.appiconset/ 60_3x.png | Bin .../AppIcon.appiconset/ 76.png | Bin .../AppIcon.appiconset/ 76_2x.png | Bin .../AppIcon.appiconset/ 83.5_2x.png | Bin .../AppIcon.appiconset/ App Store.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../AppLogo.imageset/ App Store.png | Bin .../AppLogo.imageset/Contents.json | 0 .../Assets.xcassets/Avatar/Contents.json | 0 .../Contents.json | 0 .../avatar_allan_munger.png | Bin .../Contents.json | 0 .../avatar_amanda_brady.png | Bin .../Contents.json | 0 .../avatar_ashley_mccarthy.png | Bin .../avatar_cecil_folk.imageset/Contents.json | 0 .../avatar_cecil_folk.png | Bin .../Contents.json | 0 .../avatar_celeste_burton.png | Bin .../Contents.json | 0 .../avatar_colin_ballinger.png | Bin .../Contents.json | 0 .../avatar_daisy_phillips.png | Bin .../Contents.json | 0 .../avatar_elvia_atkins.png | Bin .../avatar_henry_brill.imageset/Contents.json | 0 .../avatar_henry_brill.png | Bin .../Contents.json | 0 .../avatar_isaac_fielder.png | Bin .../Contents.json | 0 .../avatar_johnie_mcconnell.png | Bin .../avatar_kat_larsson.imageset/Contents.json | 0 .../avatar_kat_larsson.png | Bin .../Contents.json | 0 .../avatar_katri_ahokas.png | Bin .../avatar_lydia_bauer.imageset/Contents.json | 0 .../avatar_lydia_bauer.png | Bin .../Contents.json | 0 .../avatar_mauricio_august.png | Bin .../Contents.json | 0 .../avatar_miguel_garcia.png | Bin .../Contents.json | 0 .../avatar_robert_tolbert.png | Bin .../Contents.json | 0 .../avatar_robin_counts.png | Bin .../avatar_tim_deboer.imageset/Contents.json | 0 .../avatar_tim_deboer.png | Bin .../Avatar/site.imageset/Contents.json | 0 .../Avatar/site.imageset/site.png | Bin .../Contents.json | 0 .../thumbs_up_3d_default.png | Bin .../Assets.xcassets/Button/Contents.json | 0 .../Placeholder_20.imageset/Contents.json | 0 .../ic_fluent_circle_20_regular.pdf | Bin .../Placeholder_24.imageset/Contents.json | 0 .../ic_fluent_circle_24_regular.pdf | Bin .../Assets.xcassets/Cities/Contents.json | 0 .../Cities/Las Vegas.imageset/Contents.json | 0 .../Las Vegas.imageset/Las Vegas_3x.png | Bin .../Cities/Montreal.imageset/Contents.json | 0 .../Cities/Montreal.imageset/Montreal_3x.png | Bin .../Cities/Phoenix.imageset/Contents.json | 0 .../Cities/Phoenix.imageset/Phoenix_3x.png | Bin .../San Francisco.imageset/Contents.json | 0 .../San Francisco_3x.png | Bin .../Cities/Seattle.imageset/Contents.json | 0 .../Cities/Seattle.imageset/Seattle_3x.png | Bin .../Cities/Toronto.imageset/Contents.json | 0 .../Cities/Toronto.imageset/Toronto_3x.jpg | Bin .../Cities/Vancouver.imageset/Contents.json | 0 .../Vancouver.imageset/Vancouver_3x.png | Bin .../Assets.xcassets/Colors/Contents.json | 0 .../DemoPrimaryColor.colorset/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Assets.xcassets/CommandBar/Contents.json | 0 .../add24Regular.imageset/Contents.json | 0 .../add24Regular.imageset/add24Regular.pdf | Bin .../arrowRedo24Filled.imageset/Contents.json | 0 .../arrowRedo24Filled.pdf | Bin .../arrowUndo24Regular.imageset/Contents.json | 0 .../arrowUndo24Regular.pdf | Bin .../calendar24Regular.imageset/Contents.json | 0 .../calendar24Regular.pdf | Bin .../copy24Regular.imageset/Contents.json | 0 .../copy24Regular.imageset/copy24Regular.pdf | Bin .../delete24Filled.imageset/Contents.json | 0 .../ic_fluent_delete_24_filled.pdf | Bin .../delete24Regular.imageset/Contents.json | 0 .../delete24Regular.pdf | Bin .../Contents.json | 0 .../keyboardDock24Regular.pdf | Bin .../link24Regular.imageset/Contents.json | 0 .../link24Regular.imageset/link24Regular.pdf | Bin .../mention24Regular.imageset/Contents.json | 0 .../mention24Regular.pdf | Bin .../text24Regular.imageset/Contents.json | 0 .../text24Regular.imageset/text24Regular.pdf | Bin .../textBold24Regular.imageset/Contents.json | 0 .../textBold24Regular.pdf | Bin .../Contents.json | 0 .../textBulletList24Regular.pdf | Bin .../Contents.json | 0 .../textChecklistListLtr24Regular.pdf | Bin .../Contents.json | 0 .../textItalic24Regular.pdf | Bin .../Contents.json | 0 .../textNumberListLtr24Regular.pdf | Bin .../Contents.json | 0 .../textStrikethrough24Regular.pdf | Bin .../Contents.json | 0 .../textUnderline24Regular.pdf | Bin .../Resources/Assets.xcassets/Contents.json | 0 .../Assets.xcassets/HUD/Contents.json | 0 .../HUD/flag-48x48.imageset/Contents.json | 0 .../ic_fluent_flag_48_regular.pdf | Bin .../MicrosoftLogo.imageset/Contents.json | 0 .../MicrosoftLogo.imageset/msLogo.pdf | Bin .../MicrosoftLogo.imageset/msLogoDarkMode.pdf | Bin .../Assets.xcassets/Navigation/Contents.json | 0 .../Contents.json | 0 .../ic_fluent_filter_28_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_settings_24_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_star_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_star_24_regular.pdf | Bin .../NotificationView/Contents.json | 0 .../Contents.json | 0 .../ic_fluent_play_circle_24_regular.pdf | Bin .../PlaceholderImage.imageset/Contents.json | 0 .../PlaceholderImage.pdf | Bin .../3-day-view-24x24.imageset/Contents.json | 0 .../ic_fluent_calendar_3_day_24_regular.pdf | Bin .../3-day-view-28x28.imageset/Contents.json | 0 .../ic_fluent_calendar_3_day_28_regular.pdf | Bin .../Assets.xcassets/PopupMenu/Contents.json | 0 .../agenda-24x24.imageset/Contents.json | 0 .../ic_fluent_calendar_agenda_24_regular.pdf | Bin .../attach-24x24.imageset/Contents.json | 0 .../ic_fluent_attach_24_regular.pdf | Bin .../day-view-24x24.imageset/Contents.json | 0 .../ic_fluent_calendar_day_24_regular.pdf | Bin .../flag-24x24.imageset/Contents.json | 0 .../ic_fluent_flag_24_regular.pdf | Bin .../PopupMenu/gleam.imageset/Contents.json | 0 .../PopupMenu/gleam.imageset/gleam_single.pdf | Bin .../mail-unread-24x24.imageset/Contents.json | 0 .../ic_fluent_mail_unread_24_regular.pdf | Bin .../month-view-24x24.imageset/Contents.json | 0 .../ic_fluent_calendar_month_24_regular.pdf | Bin .../Assets.xcassets/TabBarView/Contents.json | 0 .../TabBarView/Help_24.imageset/Contents.json | 0 .../ic_fluent_question_circle_24_regular.pdf | Bin .../TabBarView/Home_24.imageset/Contents.json | 0 .../ic_fluent_home_24_regular.pdf | Bin .../TabBarView/Home_28.imageset/Contents.json | 0 .../ic_fluent_home_28_regular.pdf | Bin .../Home_Selected_24.imageset/Contents.json | 0 .../ic_fluent_home_24_filled.pdf | Bin .../Home_Selected_28.imageset/Contents.json | 0 .../ic_fluent_home_28_filled.pdf | Bin .../TabBarView/New_24.imageset/Contents.json | 0 .../ic_fluent_add_circle_24_regular.pdf | Bin .../TabBarView/New_28.imageset/Contents.json | 0 .../ic_fluent_add_circle_28_regular.pdf | Bin .../New_Selected_24.imageset/Contents.json | 0 .../ic_fluent_add_circle_24_filled.pdf | Bin .../New_Selected_28.imageset/Contents.json | 0 .../ic_fluent_add_circle_28_filled.pdf | Bin .../TabBarView/Open_24.imageset/Contents.json | 0 .../ic_fluent_folder_24_regular.pdf | Bin .../TabBarView/Open_28.imageset/Contents.json | 0 .../ic_fluent_folder_28_regular.pdf | Bin .../Open_Selected_24.imageset/Contents.json | 0 .../ic_fluent_folder_24_filled.pdf | Bin .../Open_Selected_28.imageset/Contents.json | 0 .../ic_fluent_folder_28_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_premium_24_regular.pdf | Bin .../TableViewCell/Contents.json | 0 .../Dismiss_24.imageset/Contents.json | 0 .../ic_fluent_dismiss_24_regular.pdf | Bin .../Dismiss_28.imageset/Contents.json | 0 .../ic_fluent_dismiss_28_regular.pdf | Bin .../at-12x12.imageset/Contents.json | 0 .../TableViewCell/at-12x12.imageset/at.pdf | Bin .../excelIcon.imageset/Contents.json | 0 .../excelIcon.imageset/excelIcon.png | Bin .../Contents.json | 0 .../ic_fluent_lock_closed_20_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_share_20_regular.pdf | Bin .../TableViewHeaderFooterView/Contents.json | 0 .../chevron-down-20x20.imageset/Contents.json | 0 .../ic_fluent_chevron_down_20_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_chevron_right_20_regular.pdf | Bin .../image-24x24.imageset/Contents.json | 0 .../ic_fluent_image_24_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_add_20_regular.svg | 0 .../Contents.json | 0 .../ic_fluent_subtract_20_regular.svg | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../Resources/ar.lproj/LaunchScreen.strings | 0 .../Resources/ca.lproj/LaunchScreen.strings | 0 .../Resources/cs.lproj/LaunchScreen.strings | 0 .../Resources/da.lproj/LaunchScreen.strings | 0 .../Resources/de.lproj/LaunchScreen.strings | 0 .../Resources/el.lproj/LaunchScreen.strings | 0 .../en-GB.lproj/LaunchScreen.strings | 0 .../Resources/en.lproj/LaunchScreen.strings | 0 .../es-MX.lproj/LaunchScreen.strings | 0 .../Resources/es.lproj/LaunchScreen.strings | 0 .../Resources/fi.lproj/LaunchScreen.strings | 0 .../Resources/fr.lproj/LaunchScreen.strings | 0 .../Resources/he.lproj/LaunchScreen.strings | 0 .../Resources/hi.lproj/LaunchScreen.strings | 0 .../Resources/hr.lproj/LaunchScreen.strings | 0 .../Resources/hu.lproj/LaunchScreen.strings | 0 .../Resources/id.lproj/LaunchScreen.strings | 0 .../Resources/it.lproj/LaunchScreen.strings | 0 .../Resources/ja.lproj/LaunchScreen.strings | 0 .../Resources/ko.lproj/LaunchScreen.strings | 0 .../Resources/ms.lproj/LaunchScreen.strings | 0 .../nb-NO.lproj/LaunchScreen.strings | 0 .../Resources/nl.lproj/LaunchScreen.strings | 0 .../Resources/pl.lproj/LaunchScreen.strings | 0 .../pt-BR.lproj/LaunchScreen.strings | 0 .../pt-PT.lproj/LaunchScreen.strings | 0 .../Resources/ro.lproj/LaunchScreen.strings | 0 .../Resources/ru.lproj/LaunchScreen.strings | 0 .../Resources/sk.lproj/LaunchScreen.strings | 0 .../Resources/sv.lproj/LaunchScreen.strings | 0 .../Resources/th.lproj/LaunchScreen.strings | 0 .../Resources/tr.lproj/LaunchScreen.strings | 0 .../Resources/uk.lproj/LaunchScreen.strings | 0 .../Resources/vi.lproj/LaunchScreen.strings | 0 .../zh-Hans.lproj/LaunchScreen.strings | 0 .../zh-Hant.lproj/LaunchScreen.strings | 0 .../FluentUI.Demo/SceneDelegate.swift | 0 .../ScrollView/DemoControllerScrollView.swift | 0 .../ScrollView/UIResponder+Extensions.swift | 0 .../SwiftUI/FluentUIDemoToggle.swift | 0 .../TableViewCellSampleData.swift | 0 .../TableViewHeaderFooterSampleData.swift | 0 .../FluentUI.Demo/TableViewSampleData.swift | 0 .../ActivityIndicatorTest.swift | 0 .../ActivityIndicatorTest_SwiftUI.swift | 0 .../AliasColorTokensTest.swift | 0 .../FluentUIDemoTests/AvatarGroupTest.swift | 0 .../FluentUIDemoTests/AvatarTest.swift | 0 .../AvatarTest_SwiftUI.swift | 0 .../FluentUIDemoTests/BadgeFieldTest.swift | 0 .../FluentUIDemoTests/BadgeViewTest.swift | 0 .../FluentUIDemoTests/BaseTest.swift | 0 .../BottomCommandingControllerTest.swift | 0 .../BottomSheetControllerTest.swift | 0 .../FluentUIDemoTests/ButtonTest.swift | 0 .../FluentUIDemoTests/CardNudgeTest.swift | 0 .../FluentUIDemoTests/CardTest.swift | 0 .../FluentUIDemoTests/CommandBarTest.swift | 0 .../DateTimePickerTest.swift | 0 .../DrawerControllerTest.swift | 0 .../GlobalColorTokensTest.swift | 0 .../FluentUIDemoTests/HUDTest.swift | 0 .../FluentUIDemoTests/HUDTest_SwiftUI.swift | 0 .../IndeterminateProgressBarTest.swift | 0 ...IndeterminateProgressBarTest_SwiftUI.swift | 0 .../FluentUIDemoTests/LabelTest.swift | 0 .../ListActionItemTest.swift | 0 .../FluentUIDemoTests/ListItemTest.swift | 0 .../MultilineCommandBarTest.swift | 0 .../NavigationControllerTest.swift | 0 .../NotificationViewTest.swift | 0 .../NotificationViewTest_SwiftUI.swift | 0 .../FluentUIDemoTests/OtherCellsTest.swift | 0 .../FluentUIDemoTests/PeoplePickerTest.swift | 0 .../PersonaButtonCarouselTest.swift | 0 .../PersonaListViewTest.swift | 0 .../FluentUIDemoTests/PillButtonBarTest.swift | 0 .../FluentUIDemoTests/PillButtonTest.swift | 0 .../PopupMenuControllerTest.swift | 0 .../FluentUIDemoTests/SearchBarTest.swift | 0 .../SegmentedControlTest.swift | 0 .../FluentUIDemoTests/ShadowTokensTest.swift | 0 .../FluentUIDemoTests/ShimmerViewTest.swift | 0 .../FluentUIDemoTests/SideTabBarTest.swift | 0 .../FluentUIDemoTests/TabBarViewTest.swift | 0 .../TableViewCellShimmerTest.swift | 0 .../FluentUIDemoTests/TableViewCellTest.swift | 0 .../TableViewHeaderFooterViewTest.swift | 0 .../FluentUIDemoTests/TextFieldTest.swift | 0 .../FluentUIDemoTests/TooltipTest.swift | 0 .../TypographyTokensTest.swift | 0 .../Utilities/XCUIElement+Extensions.swift | 0 .../FluentUIDemo_iOS}/appcenter-pre-build.sh | 0 .../FluentUISwiftUITestApp/ContentView.swift | 0 .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../FluentUI-testapp.xcassets}/Contents.json | 0 .../FluentUISwiftUITestApp-Info.plist | 0 .../FluentUISwiftUITestApp.entitlements | 0 .../FluentUISwiftUITestAppApp.swift | 0 .../Preview Assets.xcassets}/Contents.json | 0 .../TestViewControllerWrappingView.swift | 0 .../FluentUITestApp/AppDelegate.swift | 0 .../AppIcon.appiconset/ Icon-128.png | Bin .../AppIcon.appiconset/ Icon-128_2x-1.png | Bin .../AppIcon.appiconset/ Icon-128_2x.png | Bin .../AppIcon.appiconset/ Icon-16.png | Bin .../AppIcon.appiconset/ Icon-16_2x.png | Bin .../AppIcon.appiconset/ Icon-256_2x.png | Bin .../AppIcon.appiconset/ Icon-32.png | Bin .../AppIcon.appiconset/ Icon-32_2x.png | Bin .../AppIcon.appiconset/ Icon-512.png | Bin .../AppIcon.appiconset/ Icon-512_2x.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/AvatarView/Contents.json | 0 .../persona-female.imageset/Contents.json | 0 .../persona-female.png | Bin .../persona-male.imageset/Contents.json | 0 .../persona-male.imageset/persona-male.png | Bin .../Assets.xcassets/Colors}/Contents.json | 0 .../DemoPrimaryColor.colorset/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Assets.xcassets}/Contents.json | 0 .../FilledTemplateImageView/Contents.json | 0 .../FluentBadge.imageset/Contents.json | 0 .../ic_fluent_tag_regular.pdf | Bin .../FluentBadgeLocked.imageset/Contents.json | 0 .../ic_fluent_tag_lock_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_tag_lock_filled.pdf | Bin .../FluentBadge_Mask.imageset/Contents.json | 0 .../ic_fluent_tag_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_chevron_down_12_regular.svg | 0 .../Contents.json | 0 .../icon_24x24.png | Bin .../FluentUITestApp/Base.lproj/MainMenu.xib | 0 .../FluentUITestApp-Info.plist | 0 .../TestControlsViewController.swift | 0 .../FluentUITestApp/ar.lproj/MainMenu.strings | 0 .../FluentUITestApp/ca.lproj/MainMenu.strings | 0 .../FluentUITestApp/cs.lproj/MainMenu.strings | 0 .../FluentUITestApp/da.lproj/MainMenu.strings | 0 .../FluentUITestApp/de.lproj/MainMenu.strings | 0 .../FluentUITestApp/el.lproj/MainMenu.strings | 0 .../en-GB.lproj/MainMenu.strings | 0 .../FluentUITestApp/en.lproj/MainMenu.strings | 0 .../es-MX.lproj/MainMenu.strings | 0 .../FluentUITestApp/es.lproj/MainMenu.strings | 0 .../FluentUITestApp/fi.lproj/MainMenu.strings | 0 .../FluentUITestApp/fr.lproj/MainMenu.strings | 0 .../FluentUITestApp/he.lproj/MainMenu.strings | 0 .../FluentUITestApp/hi.lproj/MainMenu.strings | 0 .../FluentUITestApp/hr.lproj/MainMenu.strings | 0 .../FluentUITestApp/hu.lproj/MainMenu.strings | 0 .../FluentUITestApp/id.lproj/MainMenu.strings | 0 .../FluentUITestApp/it.lproj/MainMenu.strings | 0 .../FluentUITestApp/ja.lproj/MainMenu.strings | 0 .../FluentUITestApp/ko.lproj/MainMenu.strings | 0 .../FluentUITestApp/ms.lproj/MainMenu.strings | 0 .../nb-NO.lproj/MainMenu.strings | 0 .../FluentUITestApp/nl.lproj/MainMenu.strings | 0 .../FluentUITestApp/pl.lproj/MainMenu.strings | 0 .../pt-BR.lproj/MainMenu.strings | 0 .../pt-PT.lproj/MainMenu.strings | 0 .../FluentUITestApp/ro.lproj/MainMenu.strings | 0 .../FluentUITestApp/ru.lproj/MainMenu.strings | 0 .../FluentUITestApp/sk.lproj/MainMenu.strings | 0 .../FluentUITestApp/sv.lproj/MainMenu.strings | 0 .../FluentUITestApp/th.lproj/MainMenu.strings | 0 .../FluentUITestApp/tr.lproj/MainMenu.strings | 0 .../FluentUITestApp/uk.lproj/MainMenu.strings | 0 .../FluentUITestApp/vi.lproj/MainMenu.strings | 0 .../zh-Hans.lproj/MainMenu.strings | 0 .../zh-Hant.lproj/MainMenu.strings | 0 .../TestAvatarViewController.swift | 0 .../TestBadgeViewController.swift | 0 .../TestButtonViewController.swift | 0 .../TestColorProvider.swift | 0 .../TestColorViewController.swift | 0 .../TestDatePickerController.swift | 0 ...estFilledTemplateImageViewController.swift | 0 .../TestLinkViewController.swift | 0 .../TestNotificationBarViewController.swift | 0 .../TestSeparatorViewController.swift | 0 .../TestViewControllers.swift | 0 .../FluentUIUnitTest-Info.plist | 0 {macos => Demos/FluentUIDemo_macOS}/README.md | 0 .../xcode/FluentUI.xcodeproj/project.pbxproj | 46 +-- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcschemes/FluentUISwiftUITestApp.xcscheme | 0 .../xcschemes/FluentUITestApp-macOS.xcscheme | 28 ++ .../FluentUITestViewControllers.xcscheme | 0 .../xcode/FluentUI.xctestplan | 10 +- .../FluentUIDemoTests/AvatarViewTest.swift | 0 .../FluentUIDemoTests/BadgeViewTest.swift | 0 .../xcode/FluentUIDemoTests/BaseTest.swift | 0 .../xcode/FluentUIDemoTests/ButtonTest.swift | 0 .../xcode/FluentUIDemoTests/ColorTest.swift | 0 .../FluentUIDemoTests/DatePickerTest.swift | 0 .../FilledTemplateImageTest.swift | 0 .../xcode/FluentUIDemoTests/LinkTest.swift | 0 .../NotificationBarViewTest.swift | 0 .../FluentUIDemoTests/SeparatorTest.swift | 0 .../xcode/FluentUI_common.xcconfig | 0 .../xcode/FluentUI_debug.xcconfig | 0 .../xcode/FluentUI_framework.xcconfig | 0 .../xcode/FluentUI_release.xcconfig | 0 .../xcode/FluentUI_resources.xcconfig | 0 .../xcode/FluentUI_swiftui_testapp.xcconfig | 0 .../xcode/FluentUI_testapp.xcconfig | 0 .../FluentUI_testviewcontrollers.xcconfig | 0 .../xcode/FluentUI_unittest.xcconfig | 0 .../.attachments/Avatar-AccentIcon.png | Bin .../Controls/.attachments/Avatar-Icon.png | Bin .../Controls/.attachments/Avatar-Image.png | Bin .../.attachments/Avatar-ImageSquare.png | Bin .../Controls/.attachments/Avatar-Initials.png | Bin .../.attachments/Avatar-InitialsSquare.png | Bin .../.attachments/Avatar-OutlinedIcon.png | Bin .../Avatar-OutlinedPrimaryIcon.png | Bin .../Controls/.attachments/Avatar-Overflow.png | Bin .../.attachments/BottomSheetController.png | Bin .../.attachments/Button-Borderless.png | Bin .../.attachments/Button-Danger-Filled.png | Bin .../.attachments/Button-Danger-Outline.png | Bin .../.attachments/Button-Primary-Filled.png | Bin .../.attachments/Button-Primary-Outline.png | Bin .../.attachments/Button-Secondary-Outline.png | Bin .../.attachments/Button-Tertiary-Outline.png | Bin .../Controls/.attachments/Date-Calendar.png | Bin .../Controls/.attachments/Date-Components.png | Bin .../.attachments/DateRange-Calendar-Paged.png | Bin .../DateRange-Calendar-Tabbed.png | Bin .../.attachments/DateRange-Components.png | Bin .../.attachments/DateTime-Calendar-1.png | Bin .../.attachments/DateTime-Calendar-2.png | Bin .../.attachments/DateTime-Components.png | Bin .../Controls/.attachments/DateTimeRange.png | Bin .../iOS}/Controls/.attachments/Label.png | Bin .../Controls/.attachments/ListItem-Button.png | Bin .../.attachments/ListItem-Checkmark.png | Bin .../Controls/.attachments/ListItem-Detail.png | Bin .../.attachments/ListItem-Disclosure.png | Bin .../Controls/.attachments/ListItem-List.png | Bin .../Controls/.attachments/ListItem-None.png | Bin .../.attachments/ListItem-Standalone.png | Bin .../Controls/.attachments/ListItem-View.png | Bin .../MultilineCommandBar-Compact.png | Bin .../MultilineCommandBar-Regular.png | Bin ...igation-Accessory-Image-TitleDownArrow.png | Bin ...avigation-Accessory-SubtitleDisclosure.png | Bin .../.attachments/Navigation-Style-Custom.png | Bin .../.attachments/Navigation-Style-Primary.png | Bin .../.attachments/Navigation-Style-System.png | Bin .../Navigation-TitleStyle-Leading1.png | Bin .../Navigation-TitleStyle-Leading2.png | Bin .../Navigation-TitleStyle-System1.png | Bin .../Navigation-TitleStyle-System2.png | Bin .../.attachments/PopupMenuController_iPad.png | Bin .../PopupMenuController_iPhone.png | Bin .../.attachments/SearchBar-On-Brand.png | Bin .../.attachments/SearchBar-On-Canvas.png | Bin .../.attachments/SearchBar-On-System.png | Bin .../Controls/.attachments/TextField-Error.png | Bin .../.attachments/TextField-Filled.png | Bin .../.attachments/TextField-Focused.png | Bin .../.attachments/TextField-Placeholder.png | Bin .../.attachments/TextField-Typing.png | Bin .../Controls/.attachments/Tooltip-Down.png | Bin .../Controls/.attachments/Tooltip-Left.png | Bin .../.attachments/Tooltip-MessageAndTitle.png | Bin .../.attachments/Tooltip-MessageOnly.png | Bin .../Controls/.attachments/Tooltip-Right.png | Bin .../iOS}/Controls/.attachments/Tooltip-Up.png | Bin {ios/docs => Docs/iOS}/Controls/Avatar.md | 8 +- .../docs => Docs/iOS}/Controls/BottomSheet.md | 10 +- {ios/docs => Docs/iOS}/Controls/Button.md | 6 +- .../iOS}/Controls/DateTimePicker.md | 4 +- {ios/docs => Docs/iOS}/Controls/Label.md | 4 +- {ios/docs => Docs/iOS}/Controls/ListItem.md | 4 +- .../iOS}/Controls/MultilineCommandBar.md | 4 +- {ios/docs => Docs/iOS}/Controls/Navigation.md | 6 +- .../iOS}/Controls/PopupMenuController.md | 16 +- {ios/docs => Docs/iOS}/Controls/SearchBar.md | 4 +- {ios/docs => Docs/iOS}/Controls/TextField.md | 12 +- {ios/docs => Docs/iOS}/Controls/Tooltip.md | 8 +- .../Controls/.attachments/AvatarViewImage.png | Bin .../.attachments/AvatarViewInitials.png | Bin .../Controls/.attachments/AvatarViews.png | Bin .../macOS}/Controls/.attachments/Badge.png | Bin .../.attachments/ButtonAccentColors.png | Bin .../.attachments/ButtonImagePositions.png | Bin .../.attachments/ButtonLinkedPrimary.gif | Bin .../Controls/.attachments/ButtonSizes.png | Bin .../Controls/.attachments/ButtonStyles.png | Bin .../Controls/.attachments/ButtonViews.png | Bin .../.attachments/DatePickerCustomDate.png | Bin .../DatePickerDefaultDateOnly.png | Bin .../DatePickerDefaultDateTime.png | Bin .../DatePickerIslamicCalendar.png | Bin .../.attachments/DatePickerNoTextField.png | Bin .../DatePickerSecondaryCalendar.png | Bin .../FilledTemplate-blueFill-blackBorder.png | Bin .../FilledTemplate-clearFill-whiteBorder.png | Bin .../FilledTemplate-redFill-whiteBorder.png | Bin .../macOS}/Controls/.attachments/Link.png | Bin .../Controls/.attachments/LinkWithHover.png | Bin .../Controls/.attachments/Separator.png | Bin .../macOS}/Controls/AvatarView.md | 4 +- .../docs => Docs/macOS}/Controls/BadgeView.md | 4 +- {macos/docs => Docs/macOS}/Controls/Button.md | 4 +- .../macOS}/Controls/DatePicker.md | 4 +- .../Controls/FilledTemplateImageView.md | 4 +- {macos/docs => Docs/macOS}/Controls/Link.md | 4 +- .../docs => Docs/macOS}/Controls/Separator.md | 4 +- .../docs => Docs/macOS}/Controls/Template.md | 0 FluentUI.nuspec | 16 - MicrosoftFluentUI.podspec | 341 +++++++++--------- Package.swift | 97 +++-- README.md | 14 +- {public => Sources/FluentUI}/FluentUI.swift | 0 {ios => Sources/FluentUI_iOS}/CONTRIBUTING.md | 4 +- .../ActivityIndicator/ActivityIndicator.swift | 0 .../ActivityIndicatorModifiers.swift | 0 .../ActivityIndicatorTokenSet.swift | 0 .../MSFActivityIndicator.swift | 0 .../Avatar/Avatar.resources.xcfilelist | 0 .../Components}/Avatar/Avatar.swift | 0 .../Components}/Avatar/AvatarModifiers.swift | 0 .../Components}/Avatar/AvatarTokenSet.swift | 0 .../Components}/Avatar/MSFAvatar.swift | 0 .../Avatar/MSFAvatarPresence.swift | 0 .../Components}/Avatar/Persona.swift | 0 .../Components}/Avatar/ShapeCutout.swift | 0 .../Components}/AvatarGroup/AvatarGroup.swift | 0 .../AvatarGroup/AvatarGroupModifiers.swift | 0 .../AvatarGroup/AvatarGroupTokenSet.swift | 0 .../AvatarGroup/MSFAvatarGroup.swift | 0 .../Components}/Badge Field/BadgeField.swift | 0 .../Badge Field/BadgeFieldTokenSet.swift | 0 .../Badge Field/BadgeStringExtractor.swift | 0 .../Components}/Badge Field/BadgeView.swift | 0 .../Badge Field/BadgeViewTokenSet.swift | 0 .../BarButtonItems.resources.xcfilelist | 0 .../BarButtonItems/BarButtonItems.swift | 0 .../BottomCommanding.resources.xcfilelist | 0 .../BottomCommandingController.swift | 0 .../BottomCommandingTokenSet.swift | 0 .../Bottom Commanding/CommandingItem.swift | 0 .../Bottom Commanding/CommandingSection.swift | 0 .../Bottom Sheet/BottomSheetController.swift | 0 .../BottomSheetPassthroughView.swift | 0 .../Bottom Sheet/BottomSheetTokenSet.swift | 0 .../ContentHeightResolutionContext.swift | 0 .../Components}/Button/Button.swift | 0 .../Components}/Button/ButtonTokenSet.swift | 0 .../Button/FluentButtonStyle.swift | 0 .../Button/FluentButtonToggleStyle.swift | 0 .../Calendar/AccessibilityContainerView.swift | 0 .../Calendar/AccessibleViewDelegate.swift | 0 .../Calendar/Calendar+Extensions.swift | 0 .../Calendar/CalendarConfiguration.swift | 0 .../Components}/Calendar/CalendarView.swift | 0 .../Calendar/CalendarViewDataSource.swift | 0 .../Calendar/CalendarViewLayout.swift | 0 .../Calendar/Views/CalendarViewDayCell.swift | 0 .../Views/CalendarViewDayMonthCell.swift | 0 .../Views/CalendarViewDayMonthYearCell.swift | 0 .../Views/CalendarViewDayTodayCell.swift | 0 .../Views/CalendarViewMonthBannerView.swift | 0 .../CalendarViewWeekdayHeadingView.swift | 0 .../Components}/Card Nudge/CardNudge.swift | 0 .../Card Nudge/CardNudgeModifiers.swift | 0 .../Card Nudge/CardNudgeTokenSet.swift | 0 .../Components}/Card Nudge/MSFCardNudge.swift | 0 .../Components}/Card/CardView.swift | 0 .../Components}/Command Bar/CommandBar.swift | 0 .../Command Bar/CommandBarButton.swift | 0 .../CommandBarButtonGroupView.swift | 0 .../CommandBarCommandGroupsView.swift | 0 .../Command Bar/CommandBarItem.swift | 0 .../Command Bar/CommandBarTokenSet.swift | 0 .../Date Picker/DatePickerController.swift | 0 .../DatePickerSelectionManager.swift | 0 .../DateTimePickerController.swift | 0 .../Views/DateTimePickerView.swift | 0 .../Views/DateTimePickerViewComponent.swift | 0 .../DateTimePickerViewComponentCell.swift | 0 ...DateTimePickerViewComponentTableView.swift | 0 .../Views/DateTimePickerViewDataSource.swift | 0 .../Views/DateTimePickerViewLayout.swift | 0 .../Date Time Pickers/Date+Extensions.swift | 0 .../DateComponents+Extensions.swift | 0 .../Date Time Pickers/DateTimePicker.swift | 0 .../Date Time Pickers/DayOfMonth.swift | 0 .../GenericDateTimePicker.swift | 0 .../Date Time Pickers/String+Date.swift | 0 .../Components}/DotView/DotView.swift | 0 .../Drawer/CALayer+Extensions.swift | 0 .../Components}/Drawer/DrawerController.swift | 0 .../Drawer/DrawerPresentationController.swift | 0 .../Components}/Drawer/DrawerShadowView.swift | 0 .../Components}/Drawer/DrawerTokenSet.swift | 0 .../Drawer/DrawerTransitionAnimator.swift | 0 .../EasyTapButton/EasyTapButton.swift | 0 .../Components}/HUD/HUD.resources.xcfilelist | 0 .../FluentUI_iOS/Components}/HUD/HUD.swift | 0 .../Components}/HUD/HUDModifiers.swift | 0 .../Components}/HUD/HeadsUpDisplay.swift | 0 .../HUD/HeadsUpDisplayTokenSet.swift | 0 .../Components}/HUD/MSFHeadsUpDisplay.swift | 0 .../IndeterminateProgressBar.swift | 0 .../IndeterminateProgressBarModifiers.swift | 0 .../IndeterminateProgressBarTokenSet.swift | 0 .../MSFIndeterminateProgressBar.swift | 0 .../Components}/Label/BadgeLabel.swift | 0 .../Label/BadgeLabelTokenSet.swift | 0 .../Components}/Label/Label.swift | 0 .../Components}/Label/LabelTokenSet.swift | 0 .../Components}/List/FluentList.swift | 0 .../List/FluentListModifiers.swift | 0 .../Components}/List/FluentListSection.swift | 0 .../List/FluentListSectionFooter.swift | 0 .../List/FluentListSectionHeader.swift | 0 .../Components}/List/ListActionItem.swift | 0 .../List/ListActionItemModifiers.swift | 0 .../Components}/List/ListItem.swift | 0 .../Components}/List/ListItemModifiers.swift | 0 .../MultilineCommandBar.swift | 0 .../Navigation/BadgeLabelButton.swift | 0 .../Helpers/ContentScrollViewTraits.swift | 0 .../Helpers/NavigationAnimator.swift | 0 .../Navigation.resources.xcfilelist | 0 .../Navigation/NavigationBar.swift | 0 .../Navigation/NavigationBarTokenSet.swift | 0 .../Navigation/NavigationController.swift | 0 .../Navigation/SearchBar/SearchBar.swift | 0 .../SearchBar/SearchBarTokenSet.swift | 0 .../Shy Header/ShyHeaderController.swift | 0 .../Navigation/Shy Header/ShyHeaderView.swift | 0 .../TwoLineTitleView+Navigation.swift | 0 .../UIBarButtonItem+BadgeValue.swift | 0 .../UINavigationItem+Navigation.swift | 0 .../UIViewController+Navigation.swift | 0 .../Navigation/Views/AvatarTitleView.swift | 0 .../Views/AvatarTitleViewTokenSet.swift | 0 .../Notification/FluentNotification.swift | 0 .../Notification/MSFNotification.swift | 0 .../Notification.resources.xcfilelist | 0 .../Notification/NotificationModifiers.swift | 0 .../Notification/NotificationTokenSet.swift | 0 .../Components}/Obscurable/BlurringView.swift | 0 .../Components}/Obscurable/DimmingView.swift | 0 .../Components}/Obscurable/Obscurable.swift | 0 .../Components}/Other Cells/ActionsCell.swift | 0 .../Other Cells/ActivityIndicatorCell.swift | 0 .../Components}/Other Cells/BooleanCell.swift | 0 .../Other Cells/CenteredLabelCell.swift | 0 .../OtherCells.resources.xcfilelist | 0 .../People Picker/PeoplePicker.swift | 0 .../People Picker/PeoplePickerTokenSet.swift | 0 .../PersonaBadgeViewDataSource.swift | 0 .../People Picker/PersonaCell.swift | 0 .../People Picker/PersonaListView.swift | 0 .../PersonaButton/MSFPersonaButton.swift | 0 .../PersonaButton/PersonaButton.swift | 0 .../PersonaButtonModifiers.swift | 0 .../PersonaButton/PersonaButtonTokenSet.swift | 0 .../MSFPersonaButtonCarousel.swift | 0 .../PersonaButtonCarousel.swift | 0 .../PersonaButtonCarouselModifiers.swift | 0 .../PersonaButtonCarouselTokenSet.swift | 0 .../Pill Button Bar/PillButton.swift | 0 .../Pill Button Bar/PillButtonBar.swift | 0 .../Pill Button Bar/PillButtonTokenSet.swift | 0 .../Popup Menu/PopupMenuController.swift | 0 .../Popup Menu/PopupMenuItem.swift | 0 .../Popup Menu/PopupMenuItemCell.swift | 0 .../Popup Menu/PopupMenuItemTokenSet.swift | 0 .../Popup Menu/PopupMenuProtocols.swift | 0 .../Popup Menu/PopupMenuSection.swift | 0 .../PopupMenuSectionHeaderView.swift | 0 .../Popup Menu/PopupMenuTokenSet.swift | 0 .../CardPresentationController.swift | 0 .../CardPresenterNavigationController.swift | 0 .../Presenters/CardTransitionAnimator.swift | 0 .../PageCardPresenterController.swift | 0 .../ResizingHandleTokenSet.swift | 0 .../ResizingHandleView.swift | 0 .../SegmentedControl/SegmentItem.swift | 0 .../SegmentedControl/SegmentPillButton.swift | 0 .../SegmentedControl/SegmentedControl.swift | 0 .../SegmentedControlTokenSet.swift | 0 .../Components}/Separator/Separator.swift | 0 .../Separator/SeparatorTokenSet.swift | 0 .../Shimmer/ShimmerLinesView.swift | 0 .../Components}/Shimmer/ShimmerTokenSet.swift | 0 .../Components}/Shimmer/ShimmerView.swift | 0 .../Components}/Tab Bar/SideTabBar.swift | 0 .../Tab Bar/SideTabBarTokenSet.swift | 0 .../Components}/Tab Bar/TabBarItem.swift | 0 .../Tab Bar/TabBarItemTokenSet.swift | 0 .../Components}/Tab Bar/TabBarItemView.swift | 0 .../Components}/Tab Bar/TabBarTokenSet.swift | 0 .../Components}/Tab Bar/TabBarView.swift | 0 .../Table View/TableView.resources.xcfilelist | 0 .../Table View/TableViewCell.swift | 0 .../TableViewHeaderFooterView.swift | 0 .../TableViewHeaderFooterViewTokenSet.swift | 0 .../TableViewCellTokenSet.swift | 0 .../TableViewListShared.resources.xcfilelist | 0 .../TextField/FluentTextField.swift | 0 .../TextField/FluentTextFieldInternal.swift | 0 .../TextField/FluentTextInputError.swift | 0 .../TextField/TextField.resources.xcfilelist | 0 .../TextField/TextFieldTokenSet.swift | 0 .../Tooltip/Tooltip.resources.xcfilelist | 0 .../Components}/Tooltip/Tooltip.swift | 0 .../Tooltip/TooltipModifiers.swift | 0 .../Components}/Tooltip/TooltipTokenSet.swift | 0 .../Components}/Tooltip/TooltipView.swift | 0 .../Tooltip/TooltipViewController.swift | 0 .../TouchForwardingView.swift | 0 .../TwoLineTitleView.resources.xcfilelist | 0 .../TwoLineTitleView/TwoLineTitleView.swift | 0 .../TwoLineTitleViewTokenSet.swift | 0 .../FluentUI_iOS}/Core/ColorProviding.swift | 0 .../FluentUI_iOS}/Core/Compatibility.swift | 0 .../Core/ControlHostingView.swift | 0 .../Core/Core.resources.xcfilelist | 0 .../Core}/Extensions/Color+DynamicColor.swift | 0 .../NSLayoutConstraint+Extensions.swift | 0 .../Core}/Extensions/String+Extension.swift | 0 .../Extensions/UIApplication+Extensions.swift | 0 .../Core}/Extensions/UIColor+Extensions.swift | 0 .../Core}/Extensions/UIImage+Extensions.swift | 0 .../Extensions/UIScrollView+Extensions.swift | 0 .../Core}/Extensions/UIView+Extensions.swift | 0 .../Core}/FluentTheme+Tokens.swift | 0 .../FluentUI_iOS/Core}/FluentTheme.swift | 0 .../Core/FluentThemedHostingController.swift | 0 .../Core/FluentUIFramework.swift | 0 .../FluentUI_iOS}/Core/FocusRingView.swift | 0 .../Core/SwiftUI+ViewAnimation.swift | 0 .../Core/SwiftUI+ViewModifiers.swift | 0 .../Core/SwiftUI+ViewPresentation.swift | 0 .../Core/Theme/FluentTheme+UIKit.swift | 0 .../Core/Theme/FluentTheme+visionOS.swift | 0 .../Core/Theme/Tokens/ControlTokenSet.swift | 0 .../Core/Theme/Tokens/EmptyTokenSet.swift | 0 .../Core/Theme/Tokens/FontInfo.swift | 0 .../Theme/Tokens/GlobalTokens+UIKit.swift | 0 .../Core/Theme/Tokens/GlobalTokens.swift | 0 .../Theme/Tokens/LinearGradientInfo.swift | 0 .../Core/Theme/Tokens/ShadowInfo.swift | 0 .../Core/Theme/Tokens/TokenSet.swift | 0 .../Core/Theme/Tokens/TokenizedControl.swift | 0 .../Theme/Tokens/TokenizedControlView.swift | 0 .../Core/UIKit+SwiftUI_interoperability.swift | 0 .../Utilities/AnimationSynchronizer.swift | 0 .../FluentUI_iOS}/Core/module.modulemap | 0 .../FluentUI_iOS}/FluentUI.h | 0 {ios => Sources/FluentUI_iOS}/README.md | 2 +- .../FluentUI-ios.xcassets}/Contents.json | 0 .../Contents.json | 0 ...ic_fluent_presence_available_10_filled.pdf | Bin .../Contents.json | 0 ...ic_fluent_presence_available_12_filled.pdf | Bin .../Contents.json | 0 ...ic_fluent_presence_available_16_filled.pdf | Bin .../Contents.json | 0 ...c_fluent_presence_available_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_away_10_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_away_12_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_away_16_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_blocked_10_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_blocked_12_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_blocked_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_busy_10_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_busy_12_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_busy_16_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_dnd_10_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_dnd_12_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_dnd_16_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_dnd_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_offline_10_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_offline_12_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_offline_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_oof_10_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_oof_12_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_oof_16_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_unknown_10_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_unknown_12_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_presence_unknown_16_regular.pdf | Bin .../presenceBorder.colorset/Contents.json | 0 .../back-24x24.imageset/Contents.json | 0 .../ic_ios_arrow_left_24_outlined.pdf | Bin .../checkmark-24x24.imageset/Contents.json | 0 .../ic_checkmark_24_outlined.pdf | Bin .../checkmark-36x36.imageset/Contents.json | 0 .../checkmark_36_regular.pdf | Bin .../Contents.json | 0 .../ic_checkmark_20_outlined.pdf | Bin .../chevron-down-12x12.imageset/Contents.json | 0 .../ic_fluent_chevron_down_12_filled.pdf | Bin .../chevron-down-16x16.imageset/Contents.json | 0 .../ic_fluent_chevron_down_16_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_chevron_right_12_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_chevron_right_16_filled.pdf | Bin .../dismiss-20x20.imageset/Contents.json | 0 .../ic_fluent_dismiss_20_filled.pdf | Bin .../dismiss-36x36.imageset/Contents.json | 0 .../dismiss_36_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_ios_chevron_right_20_filled.pdf | Bin .../Contents.json | 0 .../ic_fluent_dismiss_circle_24_regular.svg | 0 .../Contents.json | 0 .../ic_fluent_people_24_regular.pdf | Bin .../Contents.json | 0 .../ic_fluent_person_24_regular.pdf | Bin .../more-24x24.imageset/Contents.json | 0 .../ic_more_24_outlined.pdf | Bin .../person_12_filled.imageset/Contents.json | 0 .../ic_fluent_person_12_filled.pdf | Bin .../person_12_regular.imageset/Contents.json | 0 .../ic_fluent_person_12_regular.pdf | Bin .../person_16_filled.imageset/Contents.json | 0 .../ic_fluent_person_16_filled.pdf | Bin .../person_16_regular.imageset/Contents.json | 0 .../ic_fluent_person_16_regular.pdf | Bin .../person_20_filled.imageset/Contents.json | 0 .../ic_fluent_person_20_filled.pdf | Bin .../person_20_regular.imageset/Contents.json | 0 .../ic_fluent_person_20_regular.pdf | Bin .../person_24_filled.imageset/Contents.json | 0 .../ic_fluent_person_24_filled.pdf | Bin .../person_24_regular.imageset/Contents.json | 0 .../ic_fluent_person_24_regular.pdf | Bin .../person_28_filled.imageset/Contents.json | 0 .../ic_fluent_person_28_filled.pdf | Bin .../person_28_regular.imageset/Contents.json | 0 .../ic_fluent_person_28_regular.pdf | Bin .../person_48_filled.imageset/Contents.json | 0 .../ic_fluent_person_48_filled.pdf | Bin .../person_48_regular.imageset/Contents.json | 0 .../ic_fluent_person_48_regular.pdf | Bin .../search-20x20.imageset/Contents.json | 0 .../ic_search_20_outlined.pdf | Bin .../search-clear.imageset/Contents.json | 0 .../search-bar-clear.pdf | Bin .../selection-off.imageset/Contents.json | 0 .../selection-off.imageset/unselected.pdf | Bin .../selection-on.imageset/Contents.json | 0 .../selection-on.imageset/selected.pdf | Bin .../tooltip-arrow.imageset/Contents.json | 0 .../tooltip-arrow.imageset/tooltip-arrow.pdf | Bin .../Localization/CultureMapping.json | 0 .../Localization/ar.lproj/Localizable.strings | 0 .../ar.lproj/Localizable.stringsdict | 0 .../Localization/ca.lproj/Localizable.strings | 0 .../ca.lproj/Localizable.stringsdict | 0 .../Localization/cs.lproj/Localizable.strings | 0 .../cs.lproj/Localizable.stringsdict | 0 .../Localization/da.lproj/Localizable.strings | 0 .../da.lproj/Localizable.stringsdict | 0 .../Localization/de.lproj/Localizable.strings | 0 .../de.lproj/Localizable.stringsdict | 0 .../Localization/el.lproj/Localizable.strings | 0 .../el.lproj/Localizable.stringsdict | 0 .../en-GB.lproj/Localizable.strings | 0 .../en-GB.lproj/Localizable.stringsdict | 0 .../Localization/en.lproj/Localizable.strings | 0 .../en.lproj/Localizable.stringsdict | 0 .../es-MX.lproj/Localizable.strings | 0 .../es-MX.lproj/Localizable.stringsdict | 0 .../Localization/es.lproj/Localizable.strings | 0 .../es.lproj/Localizable.stringsdict | 0 .../Localization/fi.lproj/Localizable.strings | 0 .../fi.lproj/Localizable.stringsdict | 0 .../Localization/fr.lproj/Localizable.strings | 0 .../fr.lproj/Localizable.stringsdict | 0 .../Localization/he.lproj/Localizable.strings | 0 .../he.lproj/Localizable.stringsdict | 0 .../Localization/hi.lproj/Localizable.strings | 0 .../hi.lproj/Localizable.stringsdict | 0 .../Localization/hr.lproj/Localizable.strings | 0 .../hr.lproj/Localizable.stringsdict | 0 .../Localization/hu.lproj/Localizable.strings | 0 .../hu.lproj/Localizable.stringsdict | 0 .../Localization/id.lproj/Localizable.strings | 0 .../id.lproj/Localizable.stringsdict | 0 .../Localization/it.lproj/Localizable.strings | 0 .../it.lproj/Localizable.stringsdict | 0 .../Localization/ja.lproj/Localizable.strings | 0 .../ja.lproj/Localizable.stringsdict | 0 .../Localization/ko.lproj/Localizable.strings | 0 .../ko.lproj/Localizable.stringsdict | 0 .../Localization/ms.lproj/Localizable.strings | 0 .../ms.lproj/Localizable.stringsdict | 0 .../nb-NO.lproj/Localizable.strings | 0 .../nb-NO.lproj/Localizable.stringsdict | 0 .../Localization/nl.lproj/Localizable.strings | 0 .../nl.lproj/Localizable.stringsdict | 0 .../Localization/pl.lproj/Localizable.strings | 0 .../pl.lproj/Localizable.stringsdict | 0 .../pt-BR.lproj/Localizable.strings | 0 .../pt-BR.lproj/Localizable.stringsdict | 0 .../pt-PT.lproj/Localizable.strings | 0 .../pt-PT.lproj/Localizable.stringsdict | 0 .../Localization/ro.lproj/Localizable.strings | 0 .../ro.lproj/Localizable.stringsdict | 0 .../Localization/ru.lproj/Localizable.strings | 0 .../ru.lproj/Localizable.stringsdict | 0 .../Localization/sk.lproj/Localizable.strings | 0 .../sk.lproj/Localizable.stringsdict | 0 .../Localization/sv.lproj/Localizable.strings | 0 .../sv.lproj/Localizable.stringsdict | 0 .../Localization/th.lproj/Localizable.strings | 0 .../th.lproj/Localizable.stringsdict | 0 .../Localization/tr.lproj/Localizable.strings | 0 .../tr.lproj/Localizable.stringsdict | 0 .../Localization/uk.lproj/Localizable.strings | 0 .../uk.lproj/Localizable.stringsdict | 0 .../Localization/vi.lproj/Localizable.strings | 0 .../vi.lproj/Localizable.stringsdict | 0 .../zh-Hans.lproj/Localizable.strings | 0 .../zh-Hans.lproj/Localizable.stringsdict | 0 .../zh-Hant.lproj/Localizable.strings | 0 .../zh-Hant.lproj/Localizable.stringsdict | 0 .../FluentUI_iOS}/Resources/Version.plist | 0 .../FluentUI_macOS}/CONTRIBUTING.md | 4 +- .../Appearance/Apperance+Theme.swift | 0 .../Components}/AvatarView/AvatarView.swift | 0 .../Components}/Badge/BadgeView.swift | 0 .../Components}/Button/Button.swift | 0 .../DatePicker/CalendarDayButton.swift | 0 .../DatePicker/CalendarHeaderView.swift | 0 .../Components}/DatePicker/CalendarView.swift | 0 .../DatePicker/DatePickerController.swift | 0 .../DatePicker/DatePickerView.swift | 0 .../DynamicColor/DynamicColor.swift | 0 .../FilledTemplateImageView.swift | 0 .../Components}/Link/Link.swift | 0 .../Notification/NotificationBarView.swift | 0 .../Components}/Separator/Separator.swift | 0 .../FluentUI_macOS}/Core/ColorProviding.swift | 0 .../FluentUI_macOS}/Core/Colors.swift | 0 .../Core/FluentUIResources.swift | 0 .../FluentUI_macOS}/FluentUI-Info.plist | 0 .../FluentUI_macOS}/FluentUI.h | 0 .../AvatarView}/Contents.json | 0 .../borderColor.colorset/Contents.json | 0 .../ButtonColors}/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../innerShadow.colorset/Contents.json | 0 .../neutralBackground2.colorset/Contents.json | 0 .../neutralBackground3.colorset/Contents.json | 0 .../neutralForeground2.colorset/Contents.json | 0 .../neutralForeground3.colorset/Contents.json | 0 .../neutralInverted.colorset/Contents.json | 0 .../neutralStroke2.colorset/Contents.json | 0 .../Contents.json | 0 .../FluentUI-macos.xcassets}/Contents.json | 0 .../FluentColors}/Contents.json | 0 .../anchorShade30.colorset/Contents.json | 0 .../anchorTint40.colorset/Contents.json | 0 .../beigeShade30.colorset/Contents.json | 0 .../beigeTint40.colorset/Contents.json | 0 .../FluentColors/black.colorset/Contents.json | 0 .../blue10.colorset/Contents.json | 0 .../blueMagenta20.colorset/Contents.json | 0 .../blueMagenta30.colorset/Contents.json | 0 .../blueShade30.colorset/Contents.json | 0 .../blueTint40.colorset/Contents.json | 0 .../brassShade30.colorset/Contents.json | 0 .../brassTint40.colorset/Contents.json | 0 .../brownShade30.colorset/Contents.json | 0 .../brownTint40.colorset/Contents.json | 0 .../FluentColors/clear.colorset/Contents.json | 0 .../communicationBlue.colorset/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../cornFlowerShade30.colorset/Contents.json | 0 .../cornFlowerTint40.colorset/Contents.json | 0 .../cranberryShade30.colorset/Contents.json | 0 .../cranberryTint40.colorset/Contents.json | 0 .../cyan20.colorset/Contents.json | 0 .../cyan30.colorset/Contents.json | 0 .../cyanBlue10.colorset/Contents.json | 0 .../cyanBlue20.colorset/Contents.json | 0 .../dangerPrimary.colorset/Contents.json | 0 .../dangerShade10.colorset/Contents.json | 0 .../dangerShade20.colorset/Contents.json | 0 .../dangerShade30.colorset/Contents.json | 0 .../dangerTint10.colorset/Contents.json | 0 .../dangerTint20.colorset/Contents.json | 0 .../dangerTint30.colorset/Contents.json | 0 .../dangerTint40.colorset/Contents.json | 0 .../darkGreenShade30.colorset/Contents.json | 0 .../darkGreenTint40.colorset/Contents.json | 0 .../darkRedShade30.colorset/Contents.json | 0 .../darkRedTint40.colorset/Contents.json | 0 .../forestShade30.colorset/Contents.json | 0 .../forestTint40.colorset/Contents.json | 0 .../goldShade30.colorset/Contents.json | 0 .../goldTint40.colorset/Contents.json | 0 .../grapeShade30.colorset/Contents.json | 0 .../grapeTint40.colorset/Contents.json | 0 .../gray100.colorset/Contents.json | 0 .../gray20.colorset/Contents.json | 0 .../gray200.colorset/Contents.json | 0 .../gray25.colorset/Contents.json | 0 .../gray30.colorset/Contents.json | 0 .../gray300.colorset/Contents.json | 0 .../gray40.colorset/Contents.json | 0 .../gray400.colorset/Contents.json | 0 .../gray50.colorset/Contents.json | 0 .../gray500.colorset/Contents.json | 0 .../gray600.colorset/Contents.json | 0 .../gray700.colorset/Contents.json | 0 .../gray800.colorset/Contents.json | 0 .../gray900.colorset/Contents.json | 0 .../gray950.colorset/Contents.json | 0 .../green10.colorset/Contents.json | 0 .../green20.colorset/Contents.json | 0 .../lavenderShade30.colorset/Contents.json | 0 .../lavenderTint40.colorset/Contents.json | 0 .../lightTealShade30.colorset/Contents.json | 0 .../lightTealTint40.colorset/Contents.json | 0 .../lilacShade30.colorset/Contents.json | 0 .../lilacTint40.colorset/Contents.json | 0 .../magenta10.colorset/Contents.json | 0 .../magenta20.colorset/Contents.json | 0 .../magentaPink10.colorset/Contents.json | 0 .../magentaShade30.colorset/Contents.json | 0 .../magentaTint40.colorset/Contents.json | 0 .../marigoldShade30.colorset/Contents.json | 0 .../marigoldTint40.colorset/Contents.json | 0 .../minkShade30.colorset/Contents.json | 0 .../minkTint40.colorset/Contents.json | 0 .../navyShade30.colorset/Contents.json | 0 .../navyTint40.colorset/Contents.json | 0 .../orange20.colorset/Contents.json | 0 .../orange30.colorset/Contents.json | 0 .../orangeYellow20.colorset/Contents.json | 0 .../peachShade30.colorset/Contents.json | 0 .../peachTint40.colorset/Contents.json | 0 .../pinkRed10.colorset/Contents.json | 0 .../pinkShade30.colorset/Contents.json | 0 .../pinkTint40.colorset/Contents.json | 0 .../platinumShade30.colorset/Contents.json | 0 .../platinumTint40.colorset/Contents.json | 0 .../plumShade30.colorset/Contents.json | 0 .../plumTint40.colorset/Contents.json | 0 .../presenceAvailable.colorset/Contents.json | 0 .../presenceAway.colorset/Contents.json | 0 .../presenceBlocked.colorset/Contents.json | 0 .../presenceBusy.colorset/Contents.json | 0 .../presenceDnd.colorset/Contents.json | 0 .../presenceOffline.colorset/Contents.json | 0 .../presenceOof.colorset/Contents.json | 0 .../presenceUnknown.colorset/Contents.json | 0 .../pumpkinShade30.colorset/Contents.json | 0 .../pumpkinTint40.colorset/Contents.json | 0 .../purpleShade30.colorset/Contents.json | 0 .../purpleTint40.colorset/Contents.json | 0 .../FluentColors/red10.colorset/Contents.json | 0 .../FluentColors/red20.colorset/Contents.json | 0 .../redShade30.colorset/Contents.json | 0 .../redTint40.colorset/Contents.json | 0 .../royalBlueShade30.colorset/Contents.json | 0 .../royalBlueTint40.colorset/Contents.json | 0 .../seafoamShade30.colorset/Contents.json | 0 .../seafoamTint40.colorset/Contents.json | 0 .../steelShade30.colorset/Contents.json | 0 .../steelTint40.colorset/Contents.json | 0 .../successPrimary.colorset/Contents.json | 0 .../successShade10.colorset/Contents.json | 0 .../successShade20.colorset/Contents.json | 0 .../successShade30.colorset/Contents.json | 0 .../successTint10.colorset/Contents.json | 0 .../successTint20.colorset/Contents.json | 0 .../successTint30.colorset/Contents.json | 0 .../successTint40.colorset/Contents.json | 0 .../tealShade30.colorset/Contents.json | 0 .../tealTint40.colorset/Contents.json | 0 .../warningPrimary.colorset/Contents.json | 0 .../warningShade10.colorset/Contents.json | 0 .../warningShade20.colorset/Contents.json | 0 .../warningShade30.colorset/Contents.json | 0 .../warningTint10.colorset/Contents.json | 0 .../warningTint20.colorset/Contents.json | 0 .../warningTint30.colorset/Contents.json | 0 .../warningTint40.colorset/Contents.json | 0 .../FluentColors/white.colorset/Contents.json | 0 .../Strings/ar.lproj/FluentUI.strings | 0 .../Strings/ca.lproj/FluentUI.strings | 0 .../Strings/cs.lproj/FluentUI.strings | 0 .../Strings/da.lproj/FluentUI.strings | 0 .../Strings/de.lproj/FluentUI.strings | 0 .../Strings/el.lproj/FluentUI.strings | 0 .../Strings/en-GB.lproj/FluentUI.strings | 0 .../Strings/en.lproj/FluentUI.strings | 0 .../Strings/es-MX.lproj/FluentUI.strings | 0 .../Strings/es.lproj/FluentUI.strings | 0 .../Strings/fi.lproj/FluentUI.strings | 0 .../Strings/fr.lproj/FluentUI.strings | 0 .../Strings/he.lproj/FluentUI.strings | 0 .../Strings/hi.lproj/FluentUI.strings | 0 .../Strings/hr.lproj/FluentUI.strings | 0 .../Strings/hu.lproj/FluentUI.strings | 0 .../Strings/id.lproj/FluentUI.strings | 0 .../Strings/it.lproj/FluentUI.strings | 0 .../Strings/ja.lproj/FluentUI.strings | 0 .../Strings/ko.lproj/FluentUI.strings | 0 .../Strings/ms.lproj/FluentUI.strings | 0 .../Strings/nb-NO.lproj/FluentUI.strings | 0 .../Strings/nl.lproj/FluentUI.strings | 0 .../Strings/pl.lproj/FluentUI.strings | 0 .../Strings/pt-BR.lproj/FluentUI.strings | 0 .../Strings/pt-PT.lproj/FluentUI.strings | 0 .../Strings/ro.lproj/FluentUI.strings | 0 .../Strings/ru.lproj/FluentUI.strings | 0 .../Strings/sk.lproj/FluentUI.strings | 0 .../Strings/sv.lproj/FluentUI.strings | 0 .../Strings/th.lproj/FluentUI.strings | 0 .../Strings/tr.lproj/FluentUI.strings | 0 .../Strings/uk.lproj/FluentUI.strings | 0 .../Strings/vi.lproj/FluentUI.strings | 0 .../Strings/zh-Hans.lproj/FluentUI.strings | 0 .../Strings/zh-Hant.lproj/FluentUI.strings | 0 .../FluentUI_iOS_Tests}/AvatarTests.swift | 0 .../FluentUI_iOS_Tests}/ColorTests.swift | 0 .../DatePickerControllerTests.swift | 0 .../FluentUI_iOS_Tests}/FluentUITests.swift | 0 .../FluentUI_iOS_Tests}/FontTests.swift | 0 .../FluentUI_iOS_Tests}/Info.plist | 0 .../AvatarViewTests.swift | 0 .../DatePickerControllerTests.swift | 0 ios/FluentUI.Resources/Info.plist | 20 - ios/xcode/FluentUILib_common.xcconfig | 15 - ios/xcode/FluentUILib_debug.xcconfig | 7 - ios/xcode/FluentUILib_release.xcconfig | 6 - ios/xcode/FluentUIResources.xcconfig | 12 - ios/xcode/FluentUITests.xcconfig | 17 - ios/xcode/FluentUI_common.xcconfig | 56 --- ios/xcode/FluentUI_debug.xcconfig | 17 - ios/xcode/FluentUI_release.xcconfig | 13 - .../FluentUIResources-Info.plist | 22 -- .../xcschemes/FluentUI-macOS.xcscheme | 70 ---- scripts/BumpVersion.swift | 14 +- scripts/generate_build_number.sh | 24 -- scripts/localize.sh | 4 +- scripts/nuget_publish.sh | 66 ---- scripts/prepare_for_nuget_pack.sh | 92 ----- scripts/xcodebuild_wrapper.sh | 8 +- 1327 files changed, 342 insertions(+), 827 deletions(-) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png (100%) rename {Demo => Demos}/FluentUIDemo/Assets.xcassets/Contents.json (100%) rename {Demo => Demos}/FluentUIDemo/ContentView.swift (100%) rename {Demo => Demos}/FluentUIDemo/FluentUIDemo.entitlements (100%) rename {Demo => Demos/FluentUIDemo}/FluentUIDemo.xcodeproj/project.pbxproj (97%) rename {Demo => Demos/FluentUIDemo}/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {Demo => Demos/FluentUIDemo}/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {Demo => Demos}/FluentUIDemo/FluentUIDemoApp.swift (100%) rename {Demo => Demos}/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/project.pbxproj (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme (88%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/AppDelegate.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/BrandedSwitch.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/ColoredPillBackgroundView.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoAppearanceControlView.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoAppearanceMenu.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoColorThemes.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoHostingController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoListViewController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/DemoTableViewController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ActivityIndicatorDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AvatarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AvatarGroupDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/BadgeFieldDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/BadgeViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/BottomCommandingDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/BottomSheetDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ButtonDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/CardNudgeDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/CardViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/CommandBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/DateTimePickerDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/DrawerDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/GlobalColorTokensDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/HUDDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/HUDDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/LabelDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ListActionItemDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ListItemDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/NavigationControllerDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/NotificationViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ObjectiveCDemoController.h (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ObjectiveCDemoController.m (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/OtherCellsDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PeoplePickerDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PersonaButtonCarouselDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PersonaListViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PillButtonBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PillButtonDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PopupMenuDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PopupMenuObjCDemoController.h (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/SearchBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/SegmentedControlDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ShadowTokensDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ShimmerLinesViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/ShimmerViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/SideTabBarDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TabBarViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TableViewCellDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TableViewCellShimmerDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TextFieldDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TextFieldObjCDemoController.h (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TextFieldObjCDemoController.m (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TooltipDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TwoLineTitleViewDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Demos/TypographyTokensDemoController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/FluentUI.Demo-Bridging-Header.h (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Info.plist (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/OtherCellsSampleData.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/ReadmeViewController.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x-1.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x-1.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x-1.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 83.5_2x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ App Store.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/ App Store.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/avatar_allan_munger.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/avatar_amanda_brady.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/avatar_ashley_mccarthy.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/avatar_cecil_folk.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/avatar_celeste_burton.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/avatar_colin_ballinger.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/avatar_daisy_phillips.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/avatar_elvia_atkins.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/avatar_henry_brill.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/avatar_isaac_fielder.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/avatar_johnie_mcconnell.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/avatar_kat_larsson.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/avatar_katri_ahokas.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/avatar_lydia_bauer.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/avatar_mauricio_august.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/avatar_miguel_garcia.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/avatar_robert_tolbert.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/avatar_robin_counts.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/avatar_tim_deboer.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/site.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/thumbs_up_3d_default.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Button/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/ic_fluent_circle_20_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/ic_fluent_circle_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Las Vegas_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Montreal_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Phoenix_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/San Francisco_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Seattle_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Toronto_3x.jpg (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Vancouver_3x.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/add24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/arrowRedo24Filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/arrowUndo24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/calendar24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/copy24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/ic_fluent_delete_24_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/delete24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/keyboardDock24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/link24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/mention24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/text24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/textBold24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/textBulletList24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/textChecklistListLtr24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/textItalic24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/textNumberListLtr24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/textStrikethrough24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/textUnderline24Regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/HUD/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/ic_fluent_flag_48_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogo.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogoDarkMode.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/ic_fluent_filter_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/ic_fluent_settings_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/ic_fluent_star_16_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/ic_fluent_star_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/ic_fluent_play_circle_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/PlaceholderImage.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/ic_fluent_calendar_3_day_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/ic_fluent_calendar_3_day_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/ic_fluent_calendar_agenda_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/ic_fluent_attach_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/ic_fluent_calendar_day_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/ic_fluent_flag_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/gleam_single.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/ic_fluent_mail_unread_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/ic_fluent_calendar_month_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/ic_fluent_question_circle_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/ic_fluent_home_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/ic_fluent_home_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/ic_fluent_home_24_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/ic_fluent_home_28_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/ic_fluent_add_circle_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/ic_fluent_add_circle_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/ic_fluent_add_circle_24_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/ic_fluent_add_circle_28_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/ic_fluent_folder_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/ic_fluent_folder_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/ic_fluent_folder_24_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/ic_fluent_folder_28_filled.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/ic_fluent_premium_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/ic_fluent_dismiss_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/ic_fluent_dismiss_28_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/at.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/excelIcon.png (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/ic_fluent_lock_closed_20_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/ic_fluent_share_20_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/ic_fluent_chevron_down_20_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/ic_fluent_chevron_right_20_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/ic_fluent_image_24_regular.pdf (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/ic_fluent_add_20_regular.svg (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/Contents.json (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/ic_fluent_subtract_20_regular.svg (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/Base.lproj/LaunchScreen.storyboard (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ar.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ca.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/cs.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/da.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/de.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/el.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/en-GB.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/en.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/es-MX.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/es.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/fi.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/fr.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/he.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/hi.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/hr.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/hu.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/id.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/it.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ja.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ko.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ms.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/nb-NO.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/nl.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/pl.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/pt-BR.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/pt-PT.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ro.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/ru.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/sk.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/sv.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/th.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/tr.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/uk.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/vi.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/zh-Hans.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/Resources/zh-Hant.lproj/LaunchScreen.strings (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/SceneDelegate.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/ScrollView/DemoControllerScrollView.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/ScrollView/UIResponder+Extensions.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/SwiftUI/FluentUIDemoToggle.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/TableViewCellSampleData.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/TableViewHeaderFooterSampleData.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUI.Demo/TableViewSampleData.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ActivityIndicatorTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ActivityIndicatorTest_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/AliasColorTokensTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/AvatarGroupTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/AvatarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/AvatarTest_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/BadgeFieldTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/BadgeViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/BaseTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/BottomCommandingControllerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/BottomSheetControllerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ButtonTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/CardNudgeTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/CardTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/CommandBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/DateTimePickerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/DrawerControllerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/GlobalColorTokensTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/HUDTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/HUDTest_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/IndeterminateProgressBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/IndeterminateProgressBarTest_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/LabelTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ListActionItemTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ListItemTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/MultilineCommandBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/NavigationControllerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/NotificationViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/NotificationViewTest_SwiftUI.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/OtherCellsTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PeoplePickerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PersonaButtonCarouselTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PersonaListViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PillButtonBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PillButtonTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/PopupMenuControllerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/SearchBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/SegmentedControlTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ShadowTokensTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/ShimmerViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/SideTabBarTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TabBarViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TableViewCellShimmerTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TableViewCellTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TableViewHeaderFooterViewTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TextFieldTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TooltipTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/TypographyTokensTest.swift (100%) rename {ios/FluentUI.Demo => Demos/FluentUIDemo_iOS}/FluentUIDemoTests/Utilities/XCUIElement+Extensions.swift (100%) rename {ios => Demos/FluentUIDemo_iOS}/appcenter-pre-build.sh (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/ContentView.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AccentColor.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AppIcon.appiconset/Contents.json (100%) rename {ios/FluentUI/Resources/FluentUI-ios.xcassets => Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets}/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/FluentUISwiftUITestApp-Info.plist (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/FluentUISwiftUITestApp.entitlements (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/FluentUISwiftUITestAppApp.swift (100%) rename {macos/FluentUI/Resources/FluentUI-macos.xcassets => Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets}/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUISwiftUITestApp/TestViewControllerWrappingView.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/AppDelegate.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AvatarView/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/persona-female.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/persona-male.png (100%) rename {macos/FluentUI/Resources/FluentUI-macos.xcassets/AvatarView => Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors}/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json (100%) rename {macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets => Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets}/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/ic_fluent_tag_regular.pdf (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/ic_fluent_tag_lock_regular.pdf (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/ic_fluent_tag_lock_filled.pdf (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/ic_fluent_tag_filled.pdf (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/ic_fluent_chevron_down_12_regular.svg (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/Contents.json (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/icon_24x24.png (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/Base.lproj/MainMenu.xib (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/FluentUITestApp-Info.plist (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/TestControlsViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ar.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ca.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/cs.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/da.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/de.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/el.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/en-GB.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/en.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/es-MX.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/es.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/fi.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/fr.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/he.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/hi.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/hr.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/hu.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/id.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/it.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ja.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ko.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ms.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/nb-NO.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/nl.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/pl.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/pt-BR.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/pt-PT.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ro.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/ru.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/sk.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/sv.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/th.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/tr.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/uk.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/vi.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/zh-Hans.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestApp/zh-Hant.lproj/MainMenu.strings (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestAvatarViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestBadgeViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestButtonViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestColorProvider.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestColorViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestDatePickerController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestFilledTemplateImageViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestLinkViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestNotificationBarViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestSeparatorViewController.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUITestViewControllers/TestViewControllers.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/FluentUIUnitTest/FluentUIUnitTest-Info.plist (100%) rename {macos => Demos/FluentUIDemo_macOS}/README.md (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/project.pbxproj (96%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUISwiftUITestApp.xcscheme (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme (81%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestViewControllers.xcscheme (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI.xctestplan (90%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/AvatarViewTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/BadgeViewTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/BaseTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/ButtonTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/ColorTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/DatePickerTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/FilledTemplateImageTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/LinkTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/NotificationBarViewTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUIDemoTests/SeparatorTest.swift (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_common.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_debug.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_framework.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_release.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_resources.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_swiftui_testapp.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_testapp.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_testviewcontrollers.xcconfig (100%) rename {macos => Demos/FluentUIDemo_macOS}/xcode/FluentUI_unittest.xcconfig (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-AccentIcon.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-Icon.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-Image.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-ImageSquare.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-Initials.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-InitialsSquare.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-OutlinedIcon.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-OutlinedPrimaryIcon.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Avatar-Overflow.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/BottomSheetController.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Borderless.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Danger-Filled.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Danger-Outline.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Primary-Filled.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Primary-Outline.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Secondary-Outline.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Button-Tertiary-Outline.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Date-Calendar.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Date-Components.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateRange-Calendar-Paged.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateRange-Calendar-Tabbed.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateRange-Components.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateTime-Calendar-1.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateTime-Calendar-2.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateTime-Components.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/DateTimeRange.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Label.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-Button.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-Checkmark.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-Detail.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-Disclosure.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-List.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-None.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-Standalone.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/ListItem-View.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/MultilineCommandBar-Compact.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/MultilineCommandBar-Regular.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-Accessory-Image-TitleDownArrow.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-Accessory-SubtitleDisclosure.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-Style-Custom.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-Style-Primary.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-Style-System.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-TitleStyle-Leading1.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-TitleStyle-Leading2.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-TitleStyle-System1.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Navigation-TitleStyle-System2.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/PopupMenuController_iPad.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/PopupMenuController_iPhone.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/SearchBar-On-Brand.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/SearchBar-On-Canvas.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/SearchBar-On-System.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/TextField-Error.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/TextField-Filled.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/TextField-Focused.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/TextField-Placeholder.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/TextField-Typing.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-Down.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-Left.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-MessageAndTitle.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-MessageOnly.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-Right.png (100%) rename {ios/docs => Docs/iOS}/Controls/.attachments/Tooltip-Up.png (100%) rename {ios/docs => Docs/iOS}/Controls/Avatar.md (84%) rename {ios/docs => Docs/iOS}/Controls/BottomSheet.md (85%) rename {ios/docs => Docs/iOS}/Controls/Button.md (85%) rename {ios/docs => Docs/iOS}/Controls/DateTimePicker.md (94%) rename {ios/docs => Docs/iOS}/Controls/Label.md (91%) rename {ios/docs => Docs/iOS}/Controls/ListItem.md (90%) rename {ios/docs => Docs/iOS}/Controls/MultilineCommandBar.md (83%) rename {ios/docs => Docs/iOS}/Controls/Navigation.md (84%) rename {ios/docs => Docs/iOS}/Controls/PopupMenuController.md (61%) rename {ios/docs => Docs/iOS}/Controls/SearchBar.md (87%) rename {ios/docs => Docs/iOS}/Controls/TextField.md (74%) rename {ios/docs => Docs/iOS}/Controls/Tooltip.md (88%) rename {macos/docs => Docs/macOS}/Controls/.attachments/AvatarViewImage.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/AvatarViewInitials.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/AvatarViews.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/Badge.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonAccentColors.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonImagePositions.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonLinkedPrimary.gif (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonSizes.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonStyles.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/ButtonViews.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerCustomDate.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerDefaultDateOnly.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerDefaultDateTime.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerIslamicCalendar.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerNoTextField.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/DatePickerSecondaryCalendar.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/FilledTemplate-blueFill-blackBorder.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/FilledTemplate-clearFill-whiteBorder.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/FilledTemplate-redFill-whiteBorder.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/Link.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/LinkWithHover.png (100%) rename {macos/docs => Docs/macOS}/Controls/.attachments/Separator.png (100%) rename {macos/docs => Docs/macOS}/Controls/AvatarView.md (90%) rename {macos/docs => Docs/macOS}/Controls/BadgeView.md (77%) rename {macos/docs => Docs/macOS}/Controls/Button.md (96%) rename {macos/docs => Docs/macOS}/Controls/DatePicker.md (93%) rename {macos/docs => Docs/macOS}/Controls/FilledTemplateImageView.md (90%) rename {macos/docs => Docs/macOS}/Controls/Link.md (94%) rename {macos/docs => Docs/macOS}/Controls/Separator.md (80%) rename {macos/docs => Docs/macOS}/Controls/Template.md (100%) delete mode 100644 FluentUI.nuspec rename {public => Sources/FluentUI}/FluentUI.swift (100%) rename {ios => Sources/FluentUI_iOS}/CONTRIBUTING.md (91%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ActivityIndicator/ActivityIndicator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ActivityIndicator/ActivityIndicatorModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ActivityIndicator/ActivityIndicatorTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ActivityIndicator/MSFActivityIndicator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/Avatar.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/Avatar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/AvatarModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/AvatarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/MSFAvatar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/MSFAvatarPresence.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/Persona.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Avatar/ShapeCutout.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/AvatarGroup/AvatarGroup.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/AvatarGroup/AvatarGroupModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/AvatarGroup/AvatarGroupTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/AvatarGroup/MSFAvatarGroup.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Badge Field/BadgeField.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Badge Field/BadgeFieldTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Badge Field/BadgeStringExtractor.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Badge Field/BadgeView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Badge Field/BadgeViewTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/BarButtonItems/BarButtonItems.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/BarButtonItems/BarButtonItems.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Commanding/BottomCommanding.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Commanding/BottomCommandingController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Commanding/BottomCommandingTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Commanding/CommandingItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Commanding/CommandingSection.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Sheet/BottomSheetController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Sheet/BottomSheetPassthroughView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Sheet/BottomSheetTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Bottom Sheet/ContentHeightResolutionContext.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Button/Button.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Button/ButtonTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Button/FluentButtonStyle.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Button/FluentButtonToggleStyle.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/AccessibilityContainerView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/AccessibleViewDelegate.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Calendar+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/CalendarConfiguration.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/CalendarView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/CalendarViewDataSource.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/CalendarViewLayout.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewDayCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewDayMonthCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewDayMonthYearCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewDayTodayCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewMonthBannerView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Calendar/Views/CalendarViewWeekdayHeadingView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Card Nudge/CardNudge.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Card Nudge/CardNudgeModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Card Nudge/CardNudgeTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Card Nudge/MSFCardNudge.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Card/CardView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBarButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBarButtonGroupView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBarCommandGroupsView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBarItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Command Bar/CommandBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Picker/DatePickerController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Picker/DatePickerSelectionManager.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/DateTimePickerController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponent.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentTableView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewDataSource.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewLayout.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/Date+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/DateComponents+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/DateTimePicker.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/DayOfMonth.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/GenericDateTimePicker.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Date Time Pickers/String+Date.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/DotView/DotView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/CALayer+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/DrawerController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/DrawerPresentationController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/DrawerShadowView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/DrawerTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Drawer/DrawerTransitionAnimator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/EasyTapButton/EasyTapButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/HUD.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/HUD.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/HUDModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/HeadsUpDisplay.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/HeadsUpDisplayTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/HUD/MSFHeadsUpDisplay.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/IndeterminateProgressBar/IndeterminateProgressBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/IndeterminateProgressBar/IndeterminateProgressBarModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/IndeterminateProgressBar/IndeterminateProgressBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/IndeterminateProgressBar/MSFIndeterminateProgressBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Label/BadgeLabel.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Label/BadgeLabelTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Label/Label.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Label/LabelTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/FluentList.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/FluentListModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/FluentListSection.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/FluentListSectionFooter.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/FluentListSectionHeader.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/ListActionItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/ListActionItemModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/ListItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/List/ListItemModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/MultilineCommandBar/MultilineCommandBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/BadgeLabelButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Helpers/ContentScrollViewTraits.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Helpers/NavigationAnimator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Navigation.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/NavigationBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/NavigationBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/NavigationController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/SearchBar/SearchBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/SearchBar/SearchBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Shy Header/ShyHeaderController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Shy Header/ShyHeaderView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/TwoLineTitleView+Navigation.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/UIBarButtonItem+BadgeValue.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/UINavigationItem+Navigation.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/UIViewController+Navigation.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Views/AvatarTitleView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Navigation/Views/AvatarTitleViewTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Notification/FluentNotification.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Notification/MSFNotification.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Notification/Notification.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Notification/NotificationModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Notification/NotificationTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Obscurable/BlurringView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Obscurable/DimmingView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Obscurable/Obscurable.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Other Cells/ActionsCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Other Cells/ActivityIndicatorCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Other Cells/BooleanCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Other Cells/CenteredLabelCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Other Cells/OtherCells.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/People Picker/PeoplePicker.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/People Picker/PeoplePickerTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/People Picker/PersonaBadgeViewDataSource.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/People Picker/PersonaCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/People Picker/PersonaListView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButton/MSFPersonaButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButton/PersonaButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButton/PersonaButtonModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButton/PersonaButtonTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButtonCarousel/MSFPersonaButtonCarousel.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButtonCarousel/PersonaButtonCarousel.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButtonCarousel/PersonaButtonCarouselModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/PersonaButtonCarousel/PersonaButtonCarouselTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Pill Button Bar/PillButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Pill Button Bar/PillButtonBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Pill Button Bar/PillButtonTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuItemCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuItemTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuProtocols.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuSection.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuSectionHeaderView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Popup Menu/PopupMenuTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Presenters/CardPresentationController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Presenters/CardPresenterNavigationController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Presenters/CardTransitionAnimator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Presenters/PageCardPresenterController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ResizingHandleView/ResizingHandleTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/ResizingHandleView/ResizingHandleView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/SegmentedControl/SegmentItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/SegmentedControl/SegmentPillButton.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/SegmentedControl/SegmentedControl.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/SegmentedControl/SegmentedControlTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Separator/Separator.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Separator/SeparatorTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Shimmer/ShimmerLinesView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Shimmer/ShimmerTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Shimmer/ShimmerView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/SideTabBar.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/SideTabBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/TabBarItem.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/TabBarItemTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/TabBarItemView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/TabBarTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tab Bar/TabBarView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Table View/TableView.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Table View/TableViewCell.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Table View/TableViewHeaderFooterView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Table View/TableViewHeaderFooterViewTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TableViewListShared/TableViewCellTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TableViewListShared/TableViewListShared.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TextField/FluentTextField.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TextField/FluentTextFieldInternal.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TextField/FluentTextInputError.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TextField/TextField.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TextField/TextFieldTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/Tooltip.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/Tooltip.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/TooltipModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/TooltipTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/TooltipView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/Tooltip/TooltipViewController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TouchForwardingView/TouchForwardingView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TwoLineTitleView/TwoLineTitleView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Components}/TwoLineTitleView/TwoLineTitleViewTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/ColorProviding.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Compatibility.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/ControlHostingView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Core.resources.xcfilelist (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/Color+DynamicColor.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/NSLayoutConstraint+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/String+Extension.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/UIApplication+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/UIColor+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/UIImage+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/UIScrollView+Extensions.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Extensions/UIView+Extensions.swift (100%) rename {ios/FluentUI/Core/Theme => Sources/FluentUI_iOS/Core}/FluentTheme+Tokens.swift (100%) rename {ios/FluentUI/Core/Theme => Sources/FluentUI_iOS/Core}/FluentTheme.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/FluentThemedHostingController.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/FluentUIFramework.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/FocusRingView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/SwiftUI+ViewAnimation.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/SwiftUI+ViewModifiers.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/SwiftUI+ViewPresentation.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/FluentTheme+UIKit.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/FluentTheme+visionOS.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/ControlTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/EmptyTokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/FontInfo.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/GlobalTokens+UIKit.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/GlobalTokens.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/LinearGradientInfo.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/ShadowInfo.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/TokenSet.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/TokenizedControl.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/Theme/Tokens/TokenizedControlView.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/UIKit+SwiftUI_interoperability.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS/Core}/Utilities/AnimationSynchronizer.swift (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Core/module.modulemap (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/FluentUI.h (100%) rename {ios => Sources/FluentUI_iOS}/README.md (96%) rename {macos/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets => Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets}/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/ic_fluent_presence_available_10_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/ic_fluent_presence_available_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/ic_fluent_presence_available_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/ic_fluent_presence_available_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/ic_fluent_presence_away_10_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/ic_fluent_presence_away_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/ic_fluent_presence_away_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/ic_fluent_presence_blocked_10_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/ic_fluent_presence_blocked_12_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/ic_fluent_presence_blocked_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/ic_fluent_presence_busy_10_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/ic_fluent_presence_busy_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/ic_fluent_presence_busy_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/ic_fluent_presence_dnd_10_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/ic_fluent_presence_dnd_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/ic_fluent_presence_dnd_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/ic_fluent_presence_dnd_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/ic_fluent_presence_offline_10_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/ic_fluent_presence_offline_12_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/ic_fluent_presence_offline_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/ic_fluent_presence_oof_10_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/ic_fluent_presence_oof_12_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/ic_fluent_presence_oof_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/ic_fluent_presence_unknown_10_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/ic_fluent_presence_unknown_12_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/ic_fluent_presence_unknown_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/Presence/presenceBorder.colorset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/back-24x24.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/back-24x24.imageset/ic_ios_arrow_left_24_outlined.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/ic_checkmark_24_outlined.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/checkmark_36_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/ic_checkmark_20_outlined.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/ic_fluent_chevron_down_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/ic_fluent_chevron_down_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/ic_fluent_chevron_right_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/ic_fluent_chevron_right_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/ic_fluent_dismiss_20_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/dismiss_36_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/ic_fluent_ios_chevron_right_20_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/ic_fluent_dismiss_circle_24_regular.svg (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/ic_fluent_people_24_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/ic_fluent_person_24_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/more-24x24.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/more-24x24.imageset/ic_more_24_outlined.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/ic_fluent_person_12_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/ic_fluent_person_12_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/ic_fluent_person_16_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/ic_fluent_person_16_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/ic_fluent_person_20_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/ic_fluent_person_20_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/ic_fluent_person_24_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/ic_fluent_person_24_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/ic_fluent_person_28_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/ic_fluent_person_28_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/ic_fluent_person_48_filled.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/ic_fluent_person_48_regular.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/search-20x20.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/search-20x20.imageset/ic_search_20_outlined.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/search-clear.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/search-clear.imageset/search-bar-clear.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/selection-off.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/selection-off.imageset/unselected.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/selection-on.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/selection-on.imageset/selected.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/Contents.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/tooltip-arrow.pdf (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/CultureMapping.json (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ar.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ar.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ca.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ca.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/cs.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/cs.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/da.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/da.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/de.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/de.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/el.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/el.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/en-GB.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/en-GB.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/en.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/en.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/es-MX.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/es-MX.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/es.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/es.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/fi.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/fi.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/fr.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/fr.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/he.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/he.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hi.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hi.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hr.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hr.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hu.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/hu.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/id.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/id.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/it.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/it.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ja.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ja.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ko.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ko.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ms.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ms.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/nb-NO.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/nb-NO.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/nl.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/nl.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pl.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pl.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pt-BR.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pt-BR.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pt-PT.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/pt-PT.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ro.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ro.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ru.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/ru.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/sk.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/sk.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/sv.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/sv.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/th.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/th.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/tr.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/tr.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/uk.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/uk.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/vi.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/vi.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/zh-Hans.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/zh-Hans.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/zh-Hant.lproj/Localizable.strings (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Localization/zh-Hant.lproj/Localizable.stringsdict (100%) rename {ios/FluentUI => Sources/FluentUI_iOS}/Resources/Version.plist (100%) rename {macos => Sources/FluentUI_macOS}/CONTRIBUTING.md (89%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Appearance/Apperance+Theme.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/AvatarView/AvatarView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Badge/BadgeView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Button/Button.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DatePicker/CalendarDayButton.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DatePicker/CalendarHeaderView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DatePicker/CalendarView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DatePicker/DatePickerController.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DatePicker/DatePickerView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/DynamicColor/DynamicColor.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/FilledTemplateImageView/FilledTemplateImageView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Link/Link.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Notification/NotificationBarView.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS/Components}/Separator/Separator.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Core/ColorProviding.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Core/Colors.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Core/FluentUIResources.swift (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/FluentUI-Info.plist (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/FluentUI.h (100%) rename {macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors => Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/AvatarView}/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/AvatarView/borderColor.colorset/Contents.json (100%) rename {macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors => Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors}/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/brandBackgroundDisabled.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/brandForegroundDisabled.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/firstOuterDropShadow.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/innerShadow.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground2.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground3.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground2.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground3.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralInverted.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/neutralStroke2.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/ButtonColors/secondOuterDropShadow.colorset/Contents.json (100%) rename {macos/FluentUITestApp/Assets.xcassets => Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets}/Contents.json (100%) rename {macos/FluentUITestApp/Assets.xcassets/Colors => Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors}/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/anchorShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/anchorTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/beigeShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/beigeTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/black.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/blue10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/blueShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/blueTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/brassShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/brassTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/brownShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/brownTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/clear.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlue.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cranberryShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cranberryTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cyan20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cyan30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerPrimary.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/darkRedShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/darkRedTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/forestShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/forestTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/goldShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/goldTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/grapeShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/grapeTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray100.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray200.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray25.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray300.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray400.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray50.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray500.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray600.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray700.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray800.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray900.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/gray950.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/green10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/green20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lavenderShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lavenderTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lightTealShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lightTealTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lilacShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/lilacTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/magenta10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/magenta20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/magentaPink10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/magentaShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/magentaTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/marigoldShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/marigoldTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/minkShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/minkTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/navyShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/navyTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/orange20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/orange30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/orangeYellow20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/peachShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/peachTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/pinkRed10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/pinkShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/pinkTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/platinumShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/platinumTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/plumShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/plumTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceAvailable.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceAway.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceBlocked.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceBusy.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceDnd.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceOffline.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceOof.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/presenceUnknown.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/purpleShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/purpleTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/red10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/red20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/redShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/redTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/seafoamShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/seafoamTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/steelShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/steelTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successPrimary.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successShade10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successShade20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successTint10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successTint20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successTint30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/successTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/tealShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/tealTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningPrimary.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningShade10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningShade20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningShade30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningTint10.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningTint20.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningTint30.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/warningTint40.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/FluentUI-macos.xcassets/FluentColors/white.colorset/Contents.json (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ar.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ca.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/cs.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/da.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/de.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/el.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/en-GB.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/en.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/es-MX.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/es.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/fi.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/fr.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/he.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/hi.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/hr.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/hu.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/id.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/it.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ja.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ko.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ms.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/nb-NO.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/nl.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/pl.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/pt-BR.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/pt-PT.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ro.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/ru.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/sk.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/sv.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/th.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/tr.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/uk.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/vi.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/zh-Hans.lproj/FluentUI.strings (100%) rename {macos/FluentUI => Sources/FluentUI_macOS}/Resources/Strings/zh-Hant.lproj/FluentUI.strings (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/AvatarTests.swift (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/ColorTests.swift (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/DatePickerControllerTests.swift (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/FluentUITests.swift (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/FontTests.swift (100%) rename {ios/FluentUI.Tests => Tests/FluentUI_iOS_Tests}/Info.plist (100%) rename {macos/FluentUIUnitTest => Tests/FluentUI_macOS_Tests}/AvatarViewTests.swift (100%) rename {macos/FluentUIUnitTest => Tests/FluentUI_macOS_Tests}/DatePickerControllerTests.swift (100%) delete mode 100644 ios/FluentUI.Resources/Info.plist delete mode 100644 ios/xcode/FluentUILib_common.xcconfig delete mode 100644 ios/xcode/FluentUILib_debug.xcconfig delete mode 100644 ios/xcode/FluentUILib_release.xcconfig delete mode 100644 ios/xcode/FluentUIResources.xcconfig delete mode 100644 ios/xcode/FluentUITests.xcconfig delete mode 100644 ios/xcode/FluentUI_common.xcconfig delete mode 100644 ios/xcode/FluentUI_debug.xcconfig delete mode 100644 ios/xcode/FluentUI_release.xcconfig delete mode 100644 macos/FluentUIResources-macos/FluentUIResources-Info.plist delete mode 100644 macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme delete mode 100755 scripts/generate_build_number.sh delete mode 100755 scripts/nuget_publish.sh delete mode 100755 scripts/prepare_for_nuget_pack.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7f8c21763..6638746eb3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,7 @@ Fluent UI Apple requires all [pull requests](https://help.github.com/en/github/c Fluent UI Apple doesn't have any external code dependencies, so developing in the repository is as easy as launching the appropriate Xcode project or workspace and building and running a test/demo app. -For more detailed instructions on how to run the demo app in specific platform, please see [the iOS readme file](ios/CONTRIBUTING.md) and the [the macOS readme file](macos/CONTRIBUTING.md). +For more detailed instructions on how to run the demo app in specific platform, please see [the iOS readme file](Sources/FluentUI_iOS/CONTRIBUTING.md) and the [the macOS readme file](Sources/FluentUI_macOS/CONTRIBUTING.md). ## Checklist before creating a pull request Fill out all the information in your [PR description](https://github.com/microsoft/fluentui-apple/blob/main/.github/PULL_REQUEST_TEMPLATE.md#pull-request-checklist) diff --git a/Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json b/Demos/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json rename to Demos/FluentUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png b/Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png rename to Demos/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/FluentUIDemo_iOS.png diff --git a/Demo/FluentUIDemo/Assets.xcassets/Contents.json b/Demos/FluentUIDemo/Assets.xcassets/Contents.json similarity index 100% rename from Demo/FluentUIDemo/Assets.xcassets/Contents.json rename to Demos/FluentUIDemo/Assets.xcassets/Contents.json diff --git a/Demo/FluentUIDemo/ContentView.swift b/Demos/FluentUIDemo/ContentView.swift similarity index 100% rename from Demo/FluentUIDemo/ContentView.swift rename to Demos/FluentUIDemo/ContentView.swift diff --git a/Demo/FluentUIDemo/FluentUIDemo.entitlements b/Demos/FluentUIDemo/FluentUIDemo.entitlements similarity index 100% rename from Demo/FluentUIDemo/FluentUIDemo.entitlements rename to Demos/FluentUIDemo/FluentUIDemo.entitlements diff --git a/Demo/FluentUIDemo.xcodeproj/project.pbxproj b/Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.pbxproj similarity index 97% rename from Demo/FluentUIDemo.xcodeproj/project.pbxproj rename to Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.pbxproj index cbbe78272b..8e53bf112a 100644 --- a/Demo/FluentUIDemo.xcodeproj/project.pbxproj +++ b/Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.pbxproj @@ -21,7 +21,7 @@ 92660C332C486AA800A209ED /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 92660C352C486AA800A209ED /* FluentUIDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FluentUIDemo.entitlements; sourceTree = "<group>"; }; 92660C372C486AA800A209ED /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; - 92660C472C48786600A209ED /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ..; sourceTree = "<group>"; }; + 92660C472C48786600A209ED /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ../..; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -64,7 +64,7 @@ 92660C352C486AA800A209ED /* FluentUIDemo.entitlements */, 92660C362C486AA800A209ED /* Preview Content */, ); - path = FluentUIDemo; + name = FluentUIDemo; sourceTree = "<group>"; }; 92660C362C486AA800A209ED /* Preview Content */ = { @@ -292,10 +292,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = FluentUIDemo/FluentUIDemo.entitlements; + CODE_SIGN_ENTITLEMENTS = FluentUIDemo.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "\"FluentUIDemo/Preview Content\""; + DEVELOPMENT_ASSET_PATHS = "\"Preview Content\""; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; @@ -329,10 +329,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = FluentUIDemo/FluentUIDemo.entitlements; + CODE_SIGN_ENTITLEMENTS = FluentUIDemo.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "\"FluentUIDemo/Preview Content\""; + DEVELOPMENT_ASSET_PATHS = "\"Preview Content\""; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; diff --git a/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Demo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Demo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from Demo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demos/FluentUIDemo/FluentUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Demo/FluentUIDemo/FluentUIDemoApp.swift b/Demos/FluentUIDemo/FluentUIDemoApp.swift similarity index 100% rename from Demo/FluentUIDemo/FluentUIDemoApp.swift rename to Demos/FluentUIDemo/FluentUIDemoApp.swift diff --git a/Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json b/Demos/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from Demo/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json rename to Demos/FluentUIDemo/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.pbxproj rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme similarity index 88% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme index ac392815b9..b671ada739 100644 --- a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Development.xcscheme @@ -20,6 +20,20 @@ ReferencedContainer = "container:FluentUI.Demo.xcodeproj"> </BuildableReference> </BuildActionEntry> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "FluentUI_iOS_Tests" + BuildableName = "FluentUI_iOS_Tests" + BlueprintName = "FluentUI_iOS_Tests" + ReferencedContainer = "container:../../.."> + </BuildableReference> + </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction @@ -67,7 +81,7 @@ BlueprintIdentifier = "FluentUI_iOS_Tests" BuildableName = "FluentUI_iOS_Tests" BlueprintName = "FluentUI_iOS_Tests" - ReferencedContainer = "container:../.."> + ReferencedContainer = "container:../../.."> </BuildableReference> </TestableReference> </Testables> diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Dogfood.xcscheme diff --git a/ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme rename to Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/xcshareddata/xcschemes/Demo.Release.xcscheme diff --git a/ios/FluentUI.Demo/FluentUI.Demo/AppDelegate.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/AppDelegate.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/AppDelegate.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/AppDelegate.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/BrandedSwitch.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/BrandedSwitch.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/BrandedSwitch.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/BrandedSwitch.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/ColoredPillBackgroundView.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/ColoredPillBackgroundView.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/ColoredPillBackgroundView.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/ColoredPillBackgroundView.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceControlView.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoAppearanceControlView.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceControlView.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoAppearanceControlView.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoAppearanceMenu.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoAppearanceMenu.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoAppearanceMenu.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoColorThemes.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoColorThemes.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoColorThemes.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoColorThemes.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoHostingController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoHostingController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoHostingController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoListViewController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoListViewController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoListViewController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoTableViewController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/DemoTableViewController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/DemoTableViewController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ActivityIndicatorDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ActivityIndicatorDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ActivityIndicatorDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ActivityIndicatorDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AliasColorTokensDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AliasColorTokensDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarGroupDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarGroupDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarGroupDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BadgeFieldDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BadgeFieldDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/BadgeFieldDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BadgeFieldDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BadgeViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BadgeViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/BadgeViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BadgeViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BottomCommandingDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomCommandingDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BottomCommandingDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomSheetDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BottomSheetDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomSheetDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BottomSheetDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ButtonDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ButtonDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ButtonDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CardNudgeDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/CardNudgeDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CardNudgeDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/CardViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CardViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/CardViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CardViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/CommandBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CommandBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/CommandBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/CommandBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/DateTimePickerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/DateTimePickerDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/DateTimePickerDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/DateTimePickerDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/DrawerDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/DrawerDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/DrawerDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/GlobalColorTokensDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/GlobalColorTokensDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/GlobalColorTokensDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/GlobalColorTokensDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/HUDDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/HUDDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/HUDDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/HUDDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/HUDDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/HUDDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/HUDDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/HUDDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/IndeterminateProgressBarDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/LabelDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/LabelDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/LabelDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/LabelDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListActionItemDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListActionItemDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListActionItemDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListItemDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListItemDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.h diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoColorProviding.m diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.h b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoController.h similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.h rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoController.h diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoController.m similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ObjectiveCDemoController.m rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ObjectiveCDemoController.m diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/OtherCellsDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/OtherCellsDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/OtherCellsDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/OtherCellsDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PeoplePickerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PeoplePickerDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PeoplePickerDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PeoplePickerDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PersonaButtonCarouselDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PersonaButtonCarouselDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PersonaButtonCarouselDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PersonaButtonCarouselDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PersonaListViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PersonaListViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PersonaListViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PersonaListViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PillButtonBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PillButtonBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PillButtonBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PillButtonBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PillButtonDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PillButtonDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PillButtonDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PillButtonDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.h b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuObjCDemoController.h similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.h rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuObjCDemoController.h diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SearchBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SearchBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SegmentedControlDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SegmentedControlDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/SegmentedControlDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SegmentedControlDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ShadowTokensDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShadowTokensDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ShadowTokensDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShadowTokensDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ShimmerLinesViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShimmerLinesViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ShimmerLinesViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShimmerLinesViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/ShimmerViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShimmerViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/ShimmerViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ShimmerViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SideTabBarDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/SideTabBarDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SideTabBarDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TabBarViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TabBarViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewCellDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewCellDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewCellDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewCellDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewCellShimmerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewCellShimmerDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewCellShimmerDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewCellShimmerDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.h b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldObjCDemoController.h similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.h rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldObjCDemoController.h diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldObjCDemoController.m similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldObjCDemoController.m diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TooltipDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TooltipDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TooltipDemoController_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TwoLineTitleViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TwoLineTitleViewDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TwoLineTitleViewDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TwoLineTitleViewDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Demos/TypographyTokensDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TypographyTokensDemoController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Demos/TypographyTokensDemoController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TypographyTokensDemoController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/FluentUI.Demo-Bridging-Header.h b/Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo-Bridging-Header.h similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/FluentUI.Demo-Bridging-Header.h rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo-Bridging-Header.h diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Info.plist b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Info.plist rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist diff --git a/ios/FluentUI.Demo/FluentUI.Demo/OtherCellsSampleData.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/OtherCellsSampleData.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/OtherCellsSampleData.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/OtherCellsSampleData.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/ReadmeViewController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/ReadmeViewController.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/ReadmeViewController.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/ReadmeViewController.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x-1.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x-1.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x-1.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x-1.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 20_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x-1.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x-1.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x-1.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x-1.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 29_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x-1.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x-1.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x-1.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x-1.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 40_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 60_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 76_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 83.5_2x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 83.5_2x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 83.5_2x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ 83.5_2x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ App Store.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ App Store.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ App Store.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/ App Store.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/ App Store.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/ App Store.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/ App Store.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/ App Store.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/AppLogo.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/avatar_allan_munger.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/avatar_allan_munger.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/avatar_allan_munger.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_allan_munger.imageset/avatar_allan_munger.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/avatar_amanda_brady.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/avatar_amanda_brady.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/avatar_amanda_brady.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_amanda_brady.imageset/avatar_amanda_brady.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/avatar_ashley_mccarthy.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/avatar_ashley_mccarthy.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/avatar_ashley_mccarthy.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_ashley_mccarthy.imageset/avatar_ashley_mccarthy.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/avatar_cecil_folk.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/avatar_cecil_folk.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/avatar_cecil_folk.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_cecil_folk.imageset/avatar_cecil_folk.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/avatar_celeste_burton.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/avatar_celeste_burton.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/avatar_celeste_burton.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_celeste_burton.imageset/avatar_celeste_burton.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/avatar_colin_ballinger.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/avatar_colin_ballinger.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/avatar_colin_ballinger.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_colin_ballinger.imageset/avatar_colin_ballinger.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/avatar_daisy_phillips.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/avatar_daisy_phillips.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/avatar_daisy_phillips.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_daisy_phillips.imageset/avatar_daisy_phillips.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/avatar_elvia_atkins.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/avatar_elvia_atkins.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/avatar_elvia_atkins.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_elvia_atkins.imageset/avatar_elvia_atkins.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/avatar_henry_brill.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/avatar_henry_brill.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/avatar_henry_brill.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_henry_brill.imageset/avatar_henry_brill.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/avatar_isaac_fielder.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/avatar_isaac_fielder.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/avatar_isaac_fielder.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_isaac_fielder.imageset/avatar_isaac_fielder.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/avatar_johnie_mcconnell.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/avatar_johnie_mcconnell.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/avatar_johnie_mcconnell.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_johnie_mcconnell.imageset/avatar_johnie_mcconnell.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/avatar_kat_larsson.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/avatar_kat_larsson.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/avatar_kat_larsson.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_kat_larsson.imageset/avatar_kat_larsson.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/avatar_katri_ahokas.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/avatar_katri_ahokas.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/avatar_katri_ahokas.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_katri_ahokas.imageset/avatar_katri_ahokas.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/avatar_lydia_bauer.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/avatar_lydia_bauer.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/avatar_lydia_bauer.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_lydia_bauer.imageset/avatar_lydia_bauer.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/avatar_mauricio_august.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/avatar_mauricio_august.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/avatar_mauricio_august.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_mauricio_august.imageset/avatar_mauricio_august.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/avatar_miguel_garcia.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/avatar_miguel_garcia.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/avatar_miguel_garcia.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_miguel_garcia.imageset/avatar_miguel_garcia.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/avatar_robert_tolbert.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/avatar_robert_tolbert.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/avatar_robert_tolbert.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robert_tolbert.imageset/avatar_robert_tolbert.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/avatar_robin_counts.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/avatar_robin_counts.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/avatar_robin_counts.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_robin_counts.imageset/avatar_robin_counts.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/avatar_tim_deboer.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/avatar_tim_deboer.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/avatar_tim_deboer.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/avatar_tim_deboer.imageset/avatar_tim_deboer.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/site.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/site.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/site.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/site.imageset/site.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/thumbs_up_3d_default.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/thumbs_up_3d_default.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/thumbs_up_3d_default.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Avatar/thumbs_up_3d_default.imageset/thumbs_up_3d_default.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/ic_fluent_circle_20_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/ic_fluent_circle_20_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/ic_fluent_circle_20_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_20.imageset/ic_fluent_circle_20_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/ic_fluent_circle_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/ic_fluent_circle_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/ic_fluent_circle_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Button/Placeholder_24.imageset/ic_fluent_circle_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Las Vegas_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Las Vegas_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Las Vegas_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Las Vegas.imageset/Las Vegas_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Montreal_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Montreal_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Montreal_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Montreal.imageset/Montreal_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Phoenix_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Phoenix_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Phoenix_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Phoenix.imageset/Phoenix_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/San Francisco_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/San Francisco_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/San Francisco_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/San Francisco.imageset/San Francisco_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Seattle_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Seattle_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Seattle_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Seattle.imageset/Seattle_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Toronto_3x.jpg b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Toronto_3x.jpg similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Toronto_3x.jpg rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Toronto.imageset/Toronto_3x.jpg diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Vancouver_3x.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Vancouver_3x.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Vancouver_3x.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Cities/Vancouver.imageset/Vancouver_3x.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/add24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/add24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/add24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/add24Regular.imageset/add24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/arrowRedo24Filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/arrowRedo24Filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/arrowRedo24Filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowRedo24Filled.imageset/arrowRedo24Filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/arrowUndo24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/arrowUndo24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/arrowUndo24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/arrowUndo24Regular.imageset/arrowUndo24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/calendar24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/calendar24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/calendar24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/calendar24Regular.imageset/calendar24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/copy24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/copy24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/copy24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/copy24Regular.imageset/copy24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/ic_fluent_delete_24_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/ic_fluent_delete_24_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/ic_fluent_delete_24_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Filled.imageset/ic_fluent_delete_24_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/delete24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/delete24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/delete24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/delete24Regular.imageset/delete24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/keyboardDock24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/keyboardDock24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/keyboardDock24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/keyboardDock24Regular.imageset/keyboardDock24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/link24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/link24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/link24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/link24Regular.imageset/link24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/mention24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/mention24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/mention24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/mention24Regular.imageset/mention24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/text24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/text24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/text24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/text24Regular.imageset/text24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/textBold24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/textBold24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/textBold24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBold24Regular.imageset/textBold24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/textBulletList24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/textBulletList24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/textBulletList24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textBulletList24Regular.imageset/textBulletList24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/textChecklistListLtr24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/textChecklistListLtr24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/textChecklistListLtr24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textChecklistListLtr24Regular.imageset/textChecklistListLtr24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/textItalic24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/textItalic24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/textItalic24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textItalic24Regular.imageset/textItalic24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/textNumberListLtr24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/textNumberListLtr24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/textNumberListLtr24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textNumberListLtr24Regular.imageset/textNumberListLtr24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/textStrikethrough24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/textStrikethrough24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/textStrikethrough24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textStrikethrough24Regular.imageset/textStrikethrough24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/textUnderline24Regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/textUnderline24Regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/textUnderline24Regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/CommandBar/textUnderline24Regular.imageset/textUnderline24Regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/ic_fluent_flag_48_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/ic_fluent_flag_48_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/ic_fluent_flag_48_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/HUD/flag-48x48.imageset/ic_fluent_flag_48_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogo.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogo.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogo.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogo.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogoDarkMode.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogoDarkMode.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogoDarkMode.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/MicrosoftLogo.imageset/msLogoDarkMode.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/ic_fluent_filter_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/ic_fluent_filter_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/ic_fluent_filter_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_filter_28.imageset/ic_fluent_filter_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/ic_fluent_settings_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/ic_fluent_settings_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/ic_fluent_settings_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_settings_24_regular.imageset/ic_fluent_settings_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/ic_fluent_star_16_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/ic_fluent_star_16_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/ic_fluent_star_16_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_16_regular.imageset/ic_fluent_star_16_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/ic_fluent_star_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/ic_fluent_star_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/ic_fluent_star_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/Navigation/ic_fluent_star_24_regular.imageset/ic_fluent_star_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/ic_fluent_play_circle_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/ic_fluent_play_circle_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/ic_fluent_play_circle_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/NotificationView/play-in-circle-24x24.imageset/ic_fluent_play_circle_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/PlaceholderImage.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/PlaceholderImage.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/PlaceholderImage.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PlaceholderImage.imageset/PlaceholderImage.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/ic_fluent_calendar_3_day_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/ic_fluent_calendar_3_day_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/ic_fluent_calendar_3_day_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-24x24.imageset/ic_fluent_calendar_3_day_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/ic_fluent_calendar_3_day_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/ic_fluent_calendar_3_day_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/ic_fluent_calendar_3_day_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/3-day-view-28x28.imageset/ic_fluent_calendar_3_day_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/ic_fluent_calendar_agenda_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/ic_fluent_calendar_agenda_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/ic_fluent_calendar_agenda_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/agenda-24x24.imageset/ic_fluent_calendar_agenda_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/ic_fluent_attach_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/ic_fluent_attach_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/ic_fluent_attach_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/attach-24x24.imageset/ic_fluent_attach_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/ic_fluent_calendar_day_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/ic_fluent_calendar_day_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/ic_fluent_calendar_day_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/day-view-24x24.imageset/ic_fluent_calendar_day_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/ic_fluent_flag_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/ic_fluent_flag_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/ic_fluent_flag_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/flag-24x24.imageset/ic_fluent_flag_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/gleam_single.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/gleam_single.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/gleam_single.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/gleam.imageset/gleam_single.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/ic_fluent_mail_unread_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/ic_fluent_mail_unread_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/ic_fluent_mail_unread_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/mail-unread-24x24.imageset/ic_fluent_mail_unread_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/ic_fluent_calendar_month_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/ic_fluent_calendar_month_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/ic_fluent_calendar_month_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/PopupMenu/month-view-24x24.imageset/ic_fluent_calendar_month_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/ic_fluent_question_circle_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/ic_fluent_question_circle_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/ic_fluent_question_circle_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Help_24.imageset/ic_fluent_question_circle_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/ic_fluent_home_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/ic_fluent_home_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/ic_fluent_home_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_24.imageset/ic_fluent_home_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/ic_fluent_home_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/ic_fluent_home_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/ic_fluent_home_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_28.imageset/ic_fluent_home_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/ic_fluent_home_24_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/ic_fluent_home_24_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/ic_fluent_home_24_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_24.imageset/ic_fluent_home_24_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/ic_fluent_home_28_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/ic_fluent_home_28_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/ic_fluent_home_28_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Home_Selected_28.imageset/ic_fluent_home_28_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/ic_fluent_add_circle_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/ic_fluent_add_circle_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/ic_fluent_add_circle_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_24.imageset/ic_fluent_add_circle_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/ic_fluent_add_circle_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/ic_fluent_add_circle_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/ic_fluent_add_circle_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_28.imageset/ic_fluent_add_circle_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/ic_fluent_add_circle_24_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/ic_fluent_add_circle_24_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/ic_fluent_add_circle_24_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_24.imageset/ic_fluent_add_circle_24_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/ic_fluent_add_circle_28_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/ic_fluent_add_circle_28_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/ic_fluent_add_circle_28_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/New_Selected_28.imageset/ic_fluent_add_circle_28_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/ic_fluent_folder_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/ic_fluent_folder_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/ic_fluent_folder_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_24.imageset/ic_fluent_folder_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/ic_fluent_folder_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/ic_fluent_folder_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/ic_fluent_folder_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_28.imageset/ic_fluent_folder_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/ic_fluent_folder_24_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/ic_fluent_folder_24_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/ic_fluent_folder_24_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_24.imageset/ic_fluent_folder_24_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/ic_fluent_folder_28_filled.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/ic_fluent_folder_28_filled.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/ic_fluent_folder_28_filled.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/Open_Selected_28.imageset/ic_fluent_folder_28_filled.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/ic_fluent_premium_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/ic_fluent_premium_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/ic_fluent_premium_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TabBarView/ic_fluent_premium_24_regular.imageset/ic_fluent_premium_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/ic_fluent_dismiss_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/ic_fluent_dismiss_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/ic_fluent_dismiss_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_24.imageset/ic_fluent_dismiss_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/ic_fluent_dismiss_28_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/ic_fluent_dismiss_28_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/ic_fluent_dismiss_28_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/Dismiss_28.imageset/ic_fluent_dismiss_28_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/at.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/at.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/at.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/at-12x12.imageset/at.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/excelIcon.png b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/excelIcon.png similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/excelIcon.png rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/excelIcon.imageset/excelIcon.png diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/ic_fluent_lock_closed_20_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/ic_fluent_lock_closed_20_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/ic_fluent_lock_closed_20_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_lock_closed_20_regular.imageset/ic_fluent_lock_closed_20_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/ic_fluent_share_20_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/ic_fluent_share_20_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/ic_fluent_share_20_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewCell/ic_fluent_share_20_regular.imageset/ic_fluent_share_20_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/ic_fluent_chevron_down_20_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/ic_fluent_chevron_down_20_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/ic_fluent_chevron_down_20_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-down-20x20.imageset/ic_fluent_chevron_down_20_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/ic_fluent_chevron_right_20_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/ic_fluent_chevron_right_20_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/ic_fluent_chevron_right_20_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/chevron-right-20x20.imageset/ic_fluent_chevron_right_20_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/ic_fluent_image_24_regular.pdf b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/ic_fluent_image_24_regular.pdf similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/ic_fluent_image_24_regular.pdf rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/TableViewHeaderFooterView/image-24x24.imageset/ic_fluent_image_24_regular.pdf diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/ic_fluent_add_20_regular.svg b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/ic_fluent_add_20_regular.svg similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/ic_fluent_add_20_regular.svg rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_add_20_regular.imageset/ic_fluent_add_20_regular.svg diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/Contents.json b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/Contents.json rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/Contents.json diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/ic_fluent_subtract_20_regular.svg b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/ic_fluent_subtract_20_regular.svg similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/ic_fluent_subtract_20_regular.svg rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Assets.xcassets/ic_fluent_subtract_20_regular.imageset/ic_fluent_subtract_20_regular.svg diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/Base.lproj/LaunchScreen.storyboard b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/Base.lproj/LaunchScreen.storyboard rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/Base.lproj/LaunchScreen.storyboard diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ar.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ar.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ar.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ar.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ca.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ca.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ca.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ca.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/cs.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/cs.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/cs.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/cs.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/da.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/da.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/da.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/da.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/de.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/de.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/de.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/de.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/el.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/el.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/el.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/el.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/en-GB.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/en-GB.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/en-GB.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/en-GB.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/en.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/en.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/en.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/en.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/es-MX.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/es-MX.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/es-MX.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/es-MX.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/es.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/es.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/es.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/es.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/fi.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/fi.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/fi.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/fi.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/fr.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/fr.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/fr.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/fr.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/he.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/he.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/he.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/he.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/hi.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hi.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/hi.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hi.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/hr.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hr.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/hr.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hr.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/hu.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hu.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/hu.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/hu.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/id.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/id.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/id.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/id.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/it.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/it.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/it.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/it.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ja.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ja.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ja.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ja.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ko.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ko.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ko.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ko.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ms.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ms.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ms.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ms.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/nb-NO.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/nb-NO.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/nb-NO.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/nb-NO.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/nl.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/nl.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/nl.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/nl.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/pl.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pl.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/pl.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pl.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/pt-BR.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pt-BR.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/pt-BR.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pt-BR.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/pt-PT.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pt-PT.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/pt-PT.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/pt-PT.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ro.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ro.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ro.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ro.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/ru.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ru.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/ru.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/ru.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/sk.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/sk.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/sk.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/sk.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/sv.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/sv.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/sv.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/sv.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/th.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/th.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/th.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/th.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/tr.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/tr.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/tr.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/tr.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/uk.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/uk.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/uk.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/uk.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/vi.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/vi.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/vi.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/vi.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/zh-Hans.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/zh-Hans.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/zh-Hans.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/zh-Hans.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/Resources/zh-Hant.lproj/LaunchScreen.strings b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/zh-Hant.lproj/LaunchScreen.strings similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/Resources/zh-Hant.lproj/LaunchScreen.strings rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/Resources/zh-Hant.lproj/LaunchScreen.strings diff --git a/ios/FluentUI.Demo/FluentUI.Demo/SceneDelegate.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/SceneDelegate.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/SceneDelegate.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/SceneDelegate.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/ScrollView/DemoControllerScrollView.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/ScrollView/DemoControllerScrollView.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/ScrollView/DemoControllerScrollView.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/ScrollView/DemoControllerScrollView.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/ScrollView/UIResponder+Extensions.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/ScrollView/UIResponder+Extensions.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/ScrollView/UIResponder+Extensions.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/ScrollView/UIResponder+Extensions.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/FluentUIDemoToggle.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/SwiftUI/FluentUIDemoToggle.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/SwiftUI/FluentUIDemoToggle.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/SwiftUI/FluentUIDemoToggle.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/TableViewCellSampleData.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewCellSampleData.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/TableViewCellSampleData.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewCellSampleData.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/TableViewHeaderFooterSampleData.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewHeaderFooterSampleData.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/TableViewHeaderFooterSampleData.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewHeaderFooterSampleData.swift diff --git a/ios/FluentUI.Demo/FluentUI.Demo/TableViewSampleData.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewSampleData.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUI.Demo/TableViewSampleData.swift rename to Demos/FluentUIDemo_iOS/FluentUI.Demo/TableViewSampleData.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ActivityIndicatorTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ActivityIndicatorTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ActivityIndicatorTest_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ActivityIndicatorTest_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ActivityIndicatorTest_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/AliasColorTokensTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/AliasColorTokensTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/AliasColorTokensTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/AliasColorTokensTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/AvatarGroupTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarGroupTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/AvatarGroupTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarGroupTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/AvatarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/AvatarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/AvatarTest_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarTest_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/AvatarTest_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/AvatarTest_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/BadgeFieldTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/BadgeFieldTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/BadgeFieldTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/BadgeFieldTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/BadgeViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/BadgeViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/BadgeViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/BadgeViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/BaseTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/BaseTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/BaseTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/BaseTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/BottomCommandingControllerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/BottomCommandingControllerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/BottomCommandingControllerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/BottomCommandingControllerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/BottomSheetControllerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/BottomSheetControllerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/BottomSheetControllerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/BottomSheetControllerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ButtonTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ButtonTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ButtonTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ButtonTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/CardNudgeTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/CardNudgeTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/CardNudgeTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/CardNudgeTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/CardTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/CardTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/CardTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/CardTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/CommandBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/CommandBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/CommandBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/CommandBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/DateTimePickerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/DateTimePickerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/DateTimePickerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/DateTimePickerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/DrawerControllerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/DrawerControllerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/DrawerControllerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/DrawerControllerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/GlobalColorTokensTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/GlobalColorTokensTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/GlobalColorTokensTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/GlobalColorTokensTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/HUDTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/HUDTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/HUDTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/HUDTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/HUDTest_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/HUDTest_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/HUDTest_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/HUDTest_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/IndeterminateProgressBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/IndeterminateProgressBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/IndeterminateProgressBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/IndeterminateProgressBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/IndeterminateProgressBarTest_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/IndeterminateProgressBarTest_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/IndeterminateProgressBarTest_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/IndeterminateProgressBarTest_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/LabelTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/LabelTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/LabelTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/LabelTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ListActionItemTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ListActionItemTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ListActionItemTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ListActionItemTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ListItemTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ListItemTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ListItemTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ListItemTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/MultilineCommandBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/MultilineCommandBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/MultilineCommandBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/MultilineCommandBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/NavigationControllerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/NavigationControllerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/NavigationControllerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/NavigationControllerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/NotificationViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/NotificationViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/NotificationViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/NotificationViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/NotificationViewTest_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/NotificationViewTest_SwiftUI.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/NotificationViewTest_SwiftUI.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/NotificationViewTest_SwiftUI.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/OtherCellsTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/OtherCellsTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/OtherCellsTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/OtherCellsTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PeoplePickerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PeoplePickerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PeoplePickerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PeoplePickerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PersonaButtonCarouselTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PersonaButtonCarouselTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PersonaButtonCarouselTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PersonaButtonCarouselTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PersonaListViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PersonaListViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PersonaListViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PersonaListViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PillButtonBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PillButtonBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PillButtonBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PillButtonBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PillButtonTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PillButtonTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PillButtonTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PillButtonTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/PopupMenuControllerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/PopupMenuControllerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/PopupMenuControllerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/PopupMenuControllerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/SearchBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/SearchBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/SearchBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/SearchBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/SegmentedControlTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/SegmentedControlTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/SegmentedControlTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/SegmentedControlTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ShadowTokensTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ShadowTokensTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ShadowTokensTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ShadowTokensTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/ShimmerViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/ShimmerViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/ShimmerViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/ShimmerViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/SideTabBarTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/SideTabBarTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/SideTabBarTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/SideTabBarTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TabBarViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TabBarViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TabBarViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TabBarViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TableViewCellShimmerTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewCellShimmerTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TableViewCellShimmerTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewCellShimmerTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TableViewCellTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewCellTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TableViewCellTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewCellTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TableViewHeaderFooterViewTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewHeaderFooterViewTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TableViewHeaderFooterViewTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TableViewHeaderFooterViewTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TextFieldTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TextFieldTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TextFieldTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TextFieldTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TooltipTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TooltipTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TooltipTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TooltipTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/TypographyTokensTest.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/TypographyTokensTest.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/TypographyTokensTest.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/TypographyTokensTest.swift diff --git a/ios/FluentUI.Demo/FluentUIDemoTests/Utilities/XCUIElement+Extensions.swift b/Demos/FluentUIDemo_iOS/FluentUIDemoTests/Utilities/XCUIElement+Extensions.swift similarity index 100% rename from ios/FluentUI.Demo/FluentUIDemoTests/Utilities/XCUIElement+Extensions.swift rename to Demos/FluentUIDemo_iOS/FluentUIDemoTests/Utilities/XCUIElement+Extensions.swift diff --git a/ios/appcenter-pre-build.sh b/Demos/FluentUIDemo_iOS/appcenter-pre-build.sh similarity index 100% rename from ios/appcenter-pre-build.sh rename to Demos/FluentUIDemo_iOS/appcenter-pre-build.sh diff --git a/macos/FluentUISwiftUITestApp/ContentView.swift b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/ContentView.swift similarity index 100% rename from macos/FluentUISwiftUITestApp/ContentView.swift rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/ContentView.swift diff --git a/macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AccentColor.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AccentColor.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AccentColor.colorset/Contents.json diff --git a/macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AppIcon.appiconset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AppIcon.appiconset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/AppIcon.appiconset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Contents.json b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/Contents.json diff --git a/macos/FluentUISwiftUITestApp/FluentUISwiftUITestApp-Info.plist b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestApp-Info.plist similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUISwiftUITestApp-Info.plist rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestApp-Info.plist diff --git a/macos/FluentUISwiftUITestApp/FluentUISwiftUITestApp.entitlements b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestApp.entitlements similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUISwiftUITestApp.entitlements rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestApp.entitlements diff --git a/macos/FluentUISwiftUITestApp/FluentUISwiftUITestAppApp.swift b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestAppApp.swift similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUISwiftUITestAppApp.swift rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/FluentUISwiftUITestAppApp.swift diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/Contents.json b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/macos/FluentUISwiftUITestApp/TestViewControllerWrappingView.swift b/Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/TestViewControllerWrappingView.swift similarity index 100% rename from macos/FluentUISwiftUITestApp/TestViewControllerWrappingView.swift rename to Demos/FluentUIDemo_macOS/FluentUISwiftUITestApp/TestViewControllerWrappingView.swift diff --git a/macos/FluentUITestApp/AppDelegate.swift b/Demos/FluentUIDemo_macOS/FluentUITestApp/AppDelegate.swift similarity index 100% rename from macos/FluentUITestApp/AppDelegate.swift rename to Demos/FluentUIDemo_macOS/FluentUITestApp/AppDelegate.swift diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x-1.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-128_2x.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-16_2x.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-256_2x.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/ Icon-512_2x.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/AvatarView/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AvatarView/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/persona-female.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/persona-female.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/persona-female.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-female.imageset/persona-female.png diff --git a/macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/persona-male.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/persona-male.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/persona-male.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/AvatarView/persona-male.imageset/persona-male.png diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/AvatarView/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/AvatarView/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryColor.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade10Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade20Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryShade30Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint10Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint20Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint30Color.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Colors/DemoPrimaryTint40Color.colorset/Contents.json diff --git a/macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Contents.json similarity index 100% rename from macos/FluentUISwiftUITestApp/FluentUI-testapp.xcassets/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/ic_fluent_tag_regular.pdf b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/ic_fluent_tag_regular.pdf similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/ic_fluent_tag_regular.pdf rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge.imageset/ic_fluent_tag_regular.pdf diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/ic_fluent_tag_lock_regular.pdf b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/ic_fluent_tag_lock_regular.pdf similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/ic_fluent_tag_lock_regular.pdf rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked.imageset/ic_fluent_tag_lock_regular.pdf diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/ic_fluent_tag_lock_filled.pdf b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/ic_fluent_tag_lock_filled.pdf similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/ic_fluent_tag_lock_filled.pdf rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadgeLocked_Mask.imageset/ic_fluent_tag_lock_filled.pdf diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/ic_fluent_tag_filled.pdf b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/ic_fluent_tag_filled.pdf similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/ic_fluent_tag_filled.pdf rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/FilledTemplateImageView/FluentBadge_Mask.imageset/ic_fluent_tag_filled.pdf diff --git a/macos/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/ic_fluent_chevron_down_12_regular.svg b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/ic_fluent_chevron_down_12_regular.svg similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/ic_fluent_chevron_down_12_regular.svg rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_chevron_down_12_regular.imageset/ic_fluent_chevron_down_12_regular.svg diff --git a/macos/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/Contents.json b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/Contents.json rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/icon_24x24.png b/Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/icon_24x24.png similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/icon_24x24.png rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Assets.xcassets/ic_fluent_non_template_24_filled.imageset/icon_24x24.png diff --git a/macos/FluentUITestApp/Base.lproj/MainMenu.xib b/Demos/FluentUIDemo_macOS/FluentUITestApp/Base.lproj/MainMenu.xib similarity index 100% rename from macos/FluentUITestApp/Base.lproj/MainMenu.xib rename to Demos/FluentUIDemo_macOS/FluentUITestApp/Base.lproj/MainMenu.xib diff --git a/macos/FluentUITestApp/FluentUITestApp-Info.plist b/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist similarity index 100% rename from macos/FluentUITestApp/FluentUITestApp-Info.plist rename to Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist diff --git a/macos/FluentUITestApp/TestControlsViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestApp/TestControlsViewController.swift similarity index 100% rename from macos/FluentUITestApp/TestControlsViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestApp/TestControlsViewController.swift diff --git a/macos/FluentUITestApp/ar.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ar.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ar.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ar.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ca.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ca.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ca.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ca.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/cs.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/cs.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/cs.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/cs.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/da.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/da.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/da.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/da.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/de.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/de.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/de.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/de.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/el.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/el.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/el.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/el.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/en-GB.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/en-GB.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/en-GB.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/en-GB.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/en.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/en.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/en.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/en.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/es-MX.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/es-MX.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/es-MX.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/es-MX.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/es.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/es.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/es.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/es.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/fi.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/fi.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/fi.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/fi.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/fr.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/fr.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/fr.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/fr.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/he.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/he.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/he.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/he.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/hi.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/hi.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/hi.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/hi.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/hr.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/hr.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/hr.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/hr.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/hu.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/hu.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/hu.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/hu.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/id.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/id.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/id.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/id.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/it.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/it.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/it.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/it.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ja.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ja.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ja.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ja.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ko.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ko.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ko.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ko.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ms.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ms.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ms.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ms.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/nb-NO.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/nb-NO.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/nb-NO.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/nb-NO.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/nl.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/nl.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/nl.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/nl.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/pl.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/pl.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/pl.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/pl.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/pt-BR.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/pt-BR.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/pt-BR.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/pt-BR.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/pt-PT.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/pt-PT.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/pt-PT.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/pt-PT.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ro.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ro.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ro.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ro.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/ru.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/ru.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/ru.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/ru.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/sk.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/sk.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/sk.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/sk.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/sv.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/sv.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/sv.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/sv.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/th.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/th.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/th.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/th.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/tr.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/tr.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/tr.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/tr.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/uk.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/uk.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/uk.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/uk.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/vi.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/vi.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/vi.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/vi.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/zh-Hans.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/zh-Hans.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/zh-Hans.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/zh-Hans.lproj/MainMenu.strings diff --git a/macos/FluentUITestApp/zh-Hant.lproj/MainMenu.strings b/Demos/FluentUIDemo_macOS/FluentUITestApp/zh-Hant.lproj/MainMenu.strings similarity index 100% rename from macos/FluentUITestApp/zh-Hant.lproj/MainMenu.strings rename to Demos/FluentUIDemo_macOS/FluentUITestApp/zh-Hant.lproj/MainMenu.strings diff --git a/macos/FluentUITestViewControllers/TestAvatarViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestAvatarViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestAvatarViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestAvatarViewController.swift diff --git a/macos/FluentUITestViewControllers/TestBadgeViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestBadgeViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestBadgeViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestBadgeViewController.swift diff --git a/macos/FluentUITestViewControllers/TestButtonViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestButtonViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestButtonViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestButtonViewController.swift diff --git a/macos/FluentUITestViewControllers/TestColorProvider.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestColorProvider.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestColorProvider.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestColorProvider.swift diff --git a/macos/FluentUITestViewControllers/TestColorViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestColorViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestColorViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestColorViewController.swift diff --git a/macos/FluentUITestViewControllers/TestDatePickerController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestDatePickerController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestDatePickerController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestDatePickerController.swift diff --git a/macos/FluentUITestViewControllers/TestFilledTemplateImageViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestFilledTemplateImageViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestFilledTemplateImageViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestFilledTemplateImageViewController.swift diff --git a/macos/FluentUITestViewControllers/TestLinkViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestLinkViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestLinkViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestLinkViewController.swift diff --git a/macos/FluentUITestViewControllers/TestNotificationBarViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestNotificationBarViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestNotificationBarViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestNotificationBarViewController.swift diff --git a/macos/FluentUITestViewControllers/TestSeparatorViewController.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestSeparatorViewController.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestSeparatorViewController.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestSeparatorViewController.swift diff --git a/macos/FluentUITestViewControllers/TestViewControllers.swift b/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestViewControllers.swift similarity index 100% rename from macos/FluentUITestViewControllers/TestViewControllers.swift rename to Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestViewControllers.swift diff --git a/macos/FluentUIUnitTest/FluentUIUnitTest-Info.plist b/Demos/FluentUIDemo_macOS/FluentUIUnitTest/FluentUIUnitTest-Info.plist similarity index 100% rename from macos/FluentUIUnitTest/FluentUIUnitTest-Info.plist rename to Demos/FluentUIDemo_macOS/FluentUIUnitTest/FluentUIUnitTest-Info.plist diff --git a/macos/README.md b/Demos/FluentUIDemo_macOS/README.md similarity index 100% rename from macos/README.md rename to Demos/FluentUIDemo_macOS/README.md diff --git a/macos/xcode/FluentUI.xcodeproj/project.pbxproj b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.pbxproj similarity index 96% rename from macos/xcode/FluentUI.xcodeproj/project.pbxproj rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.pbxproj index f8e3ccbcdf..ef23d5bbc6 100644 --- a/macos/xcode/FluentUI.xcodeproj/project.pbxproj +++ b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.pbxproj @@ -22,11 +22,9 @@ 8F5368072295F4C10098AC8F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8F5368062295F4C10098AC8F /* Assets.xcassets */; }; 8F53680A2295F4C10098AC8F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8F5368082295F4C10098AC8F /* MainMenu.xib */; }; 9252C6222C62A8B3009C9272 /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 9252C6212C62A8B3009C9272 /* FluentUI */; }; - 9252C6282C62A9F1009C9272 /* FluentUI in Frameworks */ = {isa = PBXBuildFile; productRef = 9252C6272C62A9F1009C9272 /* FluentUI */; }; 9B4AEBAB2705206300B68020 /* TestFilledTemplateImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B4AEBAA2705206300B68020 /* TestFilledTemplateImageViewController.swift */; }; 9B8661772A4F5DAE00FA4F78 /* TestColorProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8661752A4F5C4800FA4F78 /* TestColorProvider.swift */; }; A257F81E2512DE45002CAA6E /* TestColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A257F81C2512DDF7002CAA6E /* TestColorViewController.swift */; }; - A257F826251D987E002CAA6E /* FluentUI-macos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */; }; E61C96D322962BC20006561F /* TestControlsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E61C96D222962BC20006561F /* TestControlsViewController.swift */; }; E660317224BEB46F00A132DB /* TestViewControllerWrappingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E660317124BEB46F00A132DB /* TestViewControllerWrappingView.swift */; }; E6A92D2D24BEA8AC00562BCA /* TestSeparatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC97EFE8247FAB1D00DADC99 /* TestSeparatorViewController.swift */; }; @@ -123,7 +121,6 @@ 8F38AE5C230354D700F5D7B0 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F38AE5D230354DA00F5D7B0 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F41CC6D2447B60F0040B851 /* FluentUIResources-macos.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "FluentUIResources-macos.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8F41CC6F2447B60F0040B851 /* FluentUIResources-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FluentUIResources-Info.plist"; sourceTree = "<group>"; }; 8F41CC732447B66A0040B851 /* FluentUI_resources.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_resources.xcconfig; sourceTree = "<group>"; }; 8F5368022295F4BF0098AC8F /* FluentUITestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FluentUITestApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8F5368042295F4BF0098AC8F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; @@ -140,11 +137,10 @@ 8F79192724589B6D00C84086 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F79192924589B6E00C84086 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/MainMenu.strings; sourceTree = "<group>"; }; 8F931A6C22BD593300311764 /* FluentUI_unittest.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = FluentUI_unittest.xcconfig; sourceTree = "<group>"; }; - 9252C61E2C62A881009C9272 /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ../..; sourceTree = "<group>"; }; + 9252C61E2C62A881009C9272 /* fluentui-apple */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "fluentui-apple"; path = ../../..; sourceTree = "<group>"; }; 9B4AEBAA2705206300B68020 /* TestFilledTemplateImageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestFilledTemplateImageViewController.swift; sourceTree = "<group>"; }; 9B8661752A4F5C4800FA4F78 /* TestColorProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestColorProvider.swift; sourceTree = "<group>"; }; A257F81C2512DDF7002CAA6E /* TestColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestColorViewController.swift; sourceTree = "<group>"; }; - A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = "FluentUI-macos.xcassets"; path = "../FluentUI/Resources/FluentUI-macos.xcassets"; sourceTree = "<group>"; }; AC97EFE3247541E100DADC99 /* TestButtonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestButtonViewController.swift; sourceTree = "<group>"; }; AC97EFE8247FAB1D00DADC99 /* TestSeparatorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSeparatorViewController.swift; sourceTree = "<group>"; }; E61C96BB2295E8D60006561F /* FluentUIUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FluentUIUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -191,14 +187,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E61C96B82295E8D60006561F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9252C6282C62A9F1009C9272 /* FluentUI in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E6A92D2224BEA85900562BCA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -233,15 +221,6 @@ path = FluentUIDemoTests; sourceTree = "<group>"; }; - 8F41CC6E2447B60F0040B851 /* FluentUIResources-macos */ = { - isa = PBXGroup; - children = ( - 8F41CC6F2447B60F0040B851 /* FluentUIResources-Info.plist */, - ); - name = "FluentUIResources-macos"; - path = "../FluentUIResources-macos"; - sourceTree = "<group>"; - }; 8F5368032295F4BF0098AC8F /* FluentUITestApp */ = { isa = PBXGroup; children = ( @@ -266,9 +245,7 @@ isa = PBXGroup; children = ( 9252C61E2C62A881009C9272 /* fluentui-apple */, - A257F825251D987E002CAA6E /* FluentUI-macos.xcassets */, 3A42751029677C3700F36FBE /* FluentUIDemoTests */, - 8F41CC6E2447B60F0040B851 /* FluentUIResources-macos */, E6A92D2524BEA85900562BCA /* FluentUITestViewControllers */, 8F5368032295F4BF0098AC8F /* FluentUITestApp */, E6A92D3724BEA91F00562BCA /* FluentUISwiftUITestApp */, @@ -284,7 +261,6 @@ E61C96B32295E8D60006561F /* Products */ = { isa = PBXGroup; children = ( - E61C96BB2295E8D60006561F /* FluentUIUnitTests.xctest */, 8F5368022295F4BF0098AC8F /* FluentUITestApp.app */, 8F41CC6D2447B60F0040B851 /* FluentUIResources-macos.bundle */, E6A92D2424BEA85900562BCA /* libFluentUITestViewControllers.a */, @@ -581,7 +557,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - A257F826251D987E002CAA6E /* FluentUI-macos.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -594,13 +569,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E61C96B92295E8D60006561F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; E6A92D3424BEA91F00562BCA /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -696,10 +664,6 @@ isa = PBXTargetDependency; productRef = 9252C6232C62A8DC009C9272 /* FluentUI */; }; - 9252C6262C62A8F6009C9272 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - productRef = 9252C6252C62A8F6009C9272 /* FluentUI */; - }; E6A92D4724BEA9A600562BCA /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = E6A92D2324BEA85900562BCA /* FluentUITestViewControllers */; @@ -1068,14 +1032,6 @@ isa = XCSwiftPackageProductDependency; productName = FluentUI; }; - 9252C6252C62A8F6009C9272 /* FluentUI */ = { - isa = XCSwiftPackageProductDependency; - productName = FluentUI; - }; - 9252C6272C62A9F1009C9272 /* FluentUI */ = { - isa = XCSwiftPackageProductDependency; - productName = FluentUI; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = E61C96A92295E8D60006561F /* Project object */; diff --git a/macos/xcode/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from macos/xcode/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/macos/xcode/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from macos/xcode/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUISwiftUITestApp.xcscheme b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUISwiftUITestApp.xcscheme similarity index 100% rename from macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUISwiftUITestApp.xcscheme rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUISwiftUITestApp.xcscheme diff --git a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme similarity index 81% rename from macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme index cee2066982..e193651832 100644 --- a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme +++ b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestApp-macOS.xcscheme @@ -26,6 +26,20 @@ buildForProfiling = "YES" buildForArchiving = "YES" buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "FluentUI" + BuildableName = "FluentUI" + BlueprintName = "FluentUI" + ReferencedContainer = "container:../../.."> + </BuildableReference> + </BuildActionEntry> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "NO" + buildForProfiling = "NO" + buildForArchiving = "NO" + buildForAnalyzing = "NO"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "E61C96BA2295E8D60006561F" @@ -34,6 +48,20 @@ ReferencedContainer = "container:FluentUI.xcodeproj"> </BuildableReference> </BuildActionEntry> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "NO" + buildForProfiling = "NO" + buildForArchiving = "NO" + buildForAnalyzing = "NO"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "FluentUI_macOS_Tests" + BuildableName = "FluentUI_macOS_Tests" + BlueprintName = "FluentUI_macOS_Tests" + ReferencedContainer = "container:../../.."> + </BuildableReference> + </BuildActionEntry> </BuildActionEntries> </BuildAction> <TestAction diff --git a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestViewControllers.xcscheme b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestViewControllers.xcscheme similarity index 100% rename from macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestViewControllers.xcscheme rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUITestViewControllers.xcscheme diff --git a/macos/xcode/FluentUI.xctestplan b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xctestplan similarity index 90% rename from macos/xcode/FluentUI.xctestplan rename to Demos/FluentUIDemo_macOS/xcode/FluentUI.xctestplan index b79db0bef1..bc4a29f0de 100644 --- a/macos/xcode/FluentUI.xctestplan +++ b/Demos/FluentUIDemo_macOS/xcode/FluentUI.xctestplan @@ -47,15 +47,15 @@ { "target" : { "containerPath" : "container:FluentUI.xcodeproj", - "identifier" : "E61C96BA2295E8D60006561F", - "name" : "FluentUITests" + "identifier" : "3A42750E29677C3700F36FBE", + "name" : "FluentUIDemoTests" } }, { "target" : { - "containerPath" : "container:FluentUI.xcodeproj", - "identifier" : "3A42750E29677C3700F36FBE", - "name" : "FluentUIDemoTests" + "containerPath" : "container:..\/..\/..", + "identifier" : "FluentUI_macOS_Tests", + "name" : "FluentUI_macOS_Tests" } } ], diff --git a/macos/xcode/FluentUIDemoTests/AvatarViewTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/AvatarViewTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/AvatarViewTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/AvatarViewTest.swift diff --git a/macos/xcode/FluentUIDemoTests/BadgeViewTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/BadgeViewTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/BadgeViewTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/BadgeViewTest.swift diff --git a/macos/xcode/FluentUIDemoTests/BaseTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/BaseTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/BaseTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/BaseTest.swift diff --git a/macos/xcode/FluentUIDemoTests/ButtonTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/ButtonTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/ButtonTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/ButtonTest.swift diff --git a/macos/xcode/FluentUIDemoTests/ColorTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/ColorTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/ColorTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/ColorTest.swift diff --git a/macos/xcode/FluentUIDemoTests/DatePickerTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/DatePickerTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/DatePickerTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/DatePickerTest.swift diff --git a/macos/xcode/FluentUIDemoTests/FilledTemplateImageTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/FilledTemplateImageTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/FilledTemplateImageTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/FilledTemplateImageTest.swift diff --git a/macos/xcode/FluentUIDemoTests/LinkTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/LinkTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/LinkTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/LinkTest.swift diff --git a/macos/xcode/FluentUIDemoTests/NotificationBarViewTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/NotificationBarViewTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/NotificationBarViewTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/NotificationBarViewTest.swift diff --git a/macos/xcode/FluentUIDemoTests/SeparatorTest.swift b/Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/SeparatorTest.swift similarity index 100% rename from macos/xcode/FluentUIDemoTests/SeparatorTest.swift rename to Demos/FluentUIDemo_macOS/xcode/FluentUIDemoTests/SeparatorTest.swift diff --git a/macos/xcode/FluentUI_common.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_common.xcconfig similarity index 100% rename from macos/xcode/FluentUI_common.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_common.xcconfig diff --git a/macos/xcode/FluentUI_debug.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_debug.xcconfig similarity index 100% rename from macos/xcode/FluentUI_debug.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_debug.xcconfig diff --git a/macos/xcode/FluentUI_framework.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_framework.xcconfig similarity index 100% rename from macos/xcode/FluentUI_framework.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_framework.xcconfig diff --git a/macos/xcode/FluentUI_release.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_release.xcconfig similarity index 100% rename from macos/xcode/FluentUI_release.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_release.xcconfig diff --git a/macos/xcode/FluentUI_resources.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_resources.xcconfig similarity index 100% rename from macos/xcode/FluentUI_resources.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_resources.xcconfig diff --git a/macos/xcode/FluentUI_swiftui_testapp.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_swiftui_testapp.xcconfig similarity index 100% rename from macos/xcode/FluentUI_swiftui_testapp.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_swiftui_testapp.xcconfig diff --git a/macos/xcode/FluentUI_testapp.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_testapp.xcconfig similarity index 100% rename from macos/xcode/FluentUI_testapp.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_testapp.xcconfig diff --git a/macos/xcode/FluentUI_testviewcontrollers.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_testviewcontrollers.xcconfig similarity index 100% rename from macos/xcode/FluentUI_testviewcontrollers.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_testviewcontrollers.xcconfig diff --git a/macos/xcode/FluentUI_unittest.xcconfig b/Demos/FluentUIDemo_macOS/xcode/FluentUI_unittest.xcconfig similarity index 100% rename from macos/xcode/FluentUI_unittest.xcconfig rename to Demos/FluentUIDemo_macOS/xcode/FluentUI_unittest.xcconfig diff --git a/ios/docs/Controls/.attachments/Avatar-AccentIcon.png b/Docs/iOS/Controls/.attachments/Avatar-AccentIcon.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-AccentIcon.png rename to Docs/iOS/Controls/.attachments/Avatar-AccentIcon.png diff --git a/ios/docs/Controls/.attachments/Avatar-Icon.png b/Docs/iOS/Controls/.attachments/Avatar-Icon.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-Icon.png rename to Docs/iOS/Controls/.attachments/Avatar-Icon.png diff --git a/ios/docs/Controls/.attachments/Avatar-Image.png b/Docs/iOS/Controls/.attachments/Avatar-Image.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-Image.png rename to Docs/iOS/Controls/.attachments/Avatar-Image.png diff --git a/ios/docs/Controls/.attachments/Avatar-ImageSquare.png b/Docs/iOS/Controls/.attachments/Avatar-ImageSquare.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-ImageSquare.png rename to Docs/iOS/Controls/.attachments/Avatar-ImageSquare.png diff --git a/ios/docs/Controls/.attachments/Avatar-Initials.png b/Docs/iOS/Controls/.attachments/Avatar-Initials.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-Initials.png rename to Docs/iOS/Controls/.attachments/Avatar-Initials.png diff --git a/ios/docs/Controls/.attachments/Avatar-InitialsSquare.png b/Docs/iOS/Controls/.attachments/Avatar-InitialsSquare.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-InitialsSquare.png rename to Docs/iOS/Controls/.attachments/Avatar-InitialsSquare.png diff --git a/ios/docs/Controls/.attachments/Avatar-OutlinedIcon.png b/Docs/iOS/Controls/.attachments/Avatar-OutlinedIcon.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-OutlinedIcon.png rename to Docs/iOS/Controls/.attachments/Avatar-OutlinedIcon.png diff --git a/ios/docs/Controls/.attachments/Avatar-OutlinedPrimaryIcon.png b/Docs/iOS/Controls/.attachments/Avatar-OutlinedPrimaryIcon.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-OutlinedPrimaryIcon.png rename to Docs/iOS/Controls/.attachments/Avatar-OutlinedPrimaryIcon.png diff --git a/ios/docs/Controls/.attachments/Avatar-Overflow.png b/Docs/iOS/Controls/.attachments/Avatar-Overflow.png similarity index 100% rename from ios/docs/Controls/.attachments/Avatar-Overflow.png rename to Docs/iOS/Controls/.attachments/Avatar-Overflow.png diff --git a/ios/docs/Controls/.attachments/BottomSheetController.png b/Docs/iOS/Controls/.attachments/BottomSheetController.png similarity index 100% rename from ios/docs/Controls/.attachments/BottomSheetController.png rename to Docs/iOS/Controls/.attachments/BottomSheetController.png diff --git a/ios/docs/Controls/.attachments/Button-Borderless.png b/Docs/iOS/Controls/.attachments/Button-Borderless.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Borderless.png rename to Docs/iOS/Controls/.attachments/Button-Borderless.png diff --git a/ios/docs/Controls/.attachments/Button-Danger-Filled.png b/Docs/iOS/Controls/.attachments/Button-Danger-Filled.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Danger-Filled.png rename to Docs/iOS/Controls/.attachments/Button-Danger-Filled.png diff --git a/ios/docs/Controls/.attachments/Button-Danger-Outline.png b/Docs/iOS/Controls/.attachments/Button-Danger-Outline.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Danger-Outline.png rename to Docs/iOS/Controls/.attachments/Button-Danger-Outline.png diff --git a/ios/docs/Controls/.attachments/Button-Primary-Filled.png b/Docs/iOS/Controls/.attachments/Button-Primary-Filled.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Primary-Filled.png rename to Docs/iOS/Controls/.attachments/Button-Primary-Filled.png diff --git a/ios/docs/Controls/.attachments/Button-Primary-Outline.png b/Docs/iOS/Controls/.attachments/Button-Primary-Outline.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Primary-Outline.png rename to Docs/iOS/Controls/.attachments/Button-Primary-Outline.png diff --git a/ios/docs/Controls/.attachments/Button-Secondary-Outline.png b/Docs/iOS/Controls/.attachments/Button-Secondary-Outline.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Secondary-Outline.png rename to Docs/iOS/Controls/.attachments/Button-Secondary-Outline.png diff --git a/ios/docs/Controls/.attachments/Button-Tertiary-Outline.png b/Docs/iOS/Controls/.attachments/Button-Tertiary-Outline.png similarity index 100% rename from ios/docs/Controls/.attachments/Button-Tertiary-Outline.png rename to Docs/iOS/Controls/.attachments/Button-Tertiary-Outline.png diff --git a/ios/docs/Controls/.attachments/Date-Calendar.png b/Docs/iOS/Controls/.attachments/Date-Calendar.png similarity index 100% rename from ios/docs/Controls/.attachments/Date-Calendar.png rename to Docs/iOS/Controls/.attachments/Date-Calendar.png diff --git a/ios/docs/Controls/.attachments/Date-Components.png b/Docs/iOS/Controls/.attachments/Date-Components.png similarity index 100% rename from ios/docs/Controls/.attachments/Date-Components.png rename to Docs/iOS/Controls/.attachments/Date-Components.png diff --git a/ios/docs/Controls/.attachments/DateRange-Calendar-Paged.png b/Docs/iOS/Controls/.attachments/DateRange-Calendar-Paged.png similarity index 100% rename from ios/docs/Controls/.attachments/DateRange-Calendar-Paged.png rename to Docs/iOS/Controls/.attachments/DateRange-Calendar-Paged.png diff --git a/ios/docs/Controls/.attachments/DateRange-Calendar-Tabbed.png b/Docs/iOS/Controls/.attachments/DateRange-Calendar-Tabbed.png similarity index 100% rename from ios/docs/Controls/.attachments/DateRange-Calendar-Tabbed.png rename to Docs/iOS/Controls/.attachments/DateRange-Calendar-Tabbed.png diff --git a/ios/docs/Controls/.attachments/DateRange-Components.png b/Docs/iOS/Controls/.attachments/DateRange-Components.png similarity index 100% rename from ios/docs/Controls/.attachments/DateRange-Components.png rename to Docs/iOS/Controls/.attachments/DateRange-Components.png diff --git a/ios/docs/Controls/.attachments/DateTime-Calendar-1.png b/Docs/iOS/Controls/.attachments/DateTime-Calendar-1.png similarity index 100% rename from ios/docs/Controls/.attachments/DateTime-Calendar-1.png rename to Docs/iOS/Controls/.attachments/DateTime-Calendar-1.png diff --git a/ios/docs/Controls/.attachments/DateTime-Calendar-2.png b/Docs/iOS/Controls/.attachments/DateTime-Calendar-2.png similarity index 100% rename from ios/docs/Controls/.attachments/DateTime-Calendar-2.png rename to Docs/iOS/Controls/.attachments/DateTime-Calendar-2.png diff --git a/ios/docs/Controls/.attachments/DateTime-Components.png b/Docs/iOS/Controls/.attachments/DateTime-Components.png similarity index 100% rename from ios/docs/Controls/.attachments/DateTime-Components.png rename to Docs/iOS/Controls/.attachments/DateTime-Components.png diff --git a/ios/docs/Controls/.attachments/DateTimeRange.png b/Docs/iOS/Controls/.attachments/DateTimeRange.png similarity index 100% rename from ios/docs/Controls/.attachments/DateTimeRange.png rename to Docs/iOS/Controls/.attachments/DateTimeRange.png diff --git a/ios/docs/Controls/.attachments/Label.png b/Docs/iOS/Controls/.attachments/Label.png similarity index 100% rename from ios/docs/Controls/.attachments/Label.png rename to Docs/iOS/Controls/.attachments/Label.png diff --git a/ios/docs/Controls/.attachments/ListItem-Button.png b/Docs/iOS/Controls/.attachments/ListItem-Button.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-Button.png rename to Docs/iOS/Controls/.attachments/ListItem-Button.png diff --git a/ios/docs/Controls/.attachments/ListItem-Checkmark.png b/Docs/iOS/Controls/.attachments/ListItem-Checkmark.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-Checkmark.png rename to Docs/iOS/Controls/.attachments/ListItem-Checkmark.png diff --git a/ios/docs/Controls/.attachments/ListItem-Detail.png b/Docs/iOS/Controls/.attachments/ListItem-Detail.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-Detail.png rename to Docs/iOS/Controls/.attachments/ListItem-Detail.png diff --git a/ios/docs/Controls/.attachments/ListItem-Disclosure.png b/Docs/iOS/Controls/.attachments/ListItem-Disclosure.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-Disclosure.png rename to Docs/iOS/Controls/.attachments/ListItem-Disclosure.png diff --git a/ios/docs/Controls/.attachments/ListItem-List.png b/Docs/iOS/Controls/.attachments/ListItem-List.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-List.png rename to Docs/iOS/Controls/.attachments/ListItem-List.png diff --git a/ios/docs/Controls/.attachments/ListItem-None.png b/Docs/iOS/Controls/.attachments/ListItem-None.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-None.png rename to Docs/iOS/Controls/.attachments/ListItem-None.png diff --git a/ios/docs/Controls/.attachments/ListItem-Standalone.png b/Docs/iOS/Controls/.attachments/ListItem-Standalone.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-Standalone.png rename to Docs/iOS/Controls/.attachments/ListItem-Standalone.png diff --git a/ios/docs/Controls/.attachments/ListItem-View.png b/Docs/iOS/Controls/.attachments/ListItem-View.png similarity index 100% rename from ios/docs/Controls/.attachments/ListItem-View.png rename to Docs/iOS/Controls/.attachments/ListItem-View.png diff --git a/ios/docs/Controls/.attachments/MultilineCommandBar-Compact.png b/Docs/iOS/Controls/.attachments/MultilineCommandBar-Compact.png similarity index 100% rename from ios/docs/Controls/.attachments/MultilineCommandBar-Compact.png rename to Docs/iOS/Controls/.attachments/MultilineCommandBar-Compact.png diff --git a/ios/docs/Controls/.attachments/MultilineCommandBar-Regular.png b/Docs/iOS/Controls/.attachments/MultilineCommandBar-Regular.png similarity index 100% rename from ios/docs/Controls/.attachments/MultilineCommandBar-Regular.png rename to Docs/iOS/Controls/.attachments/MultilineCommandBar-Regular.png diff --git a/ios/docs/Controls/.attachments/Navigation-Accessory-Image-TitleDownArrow.png b/Docs/iOS/Controls/.attachments/Navigation-Accessory-Image-TitleDownArrow.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-Accessory-Image-TitleDownArrow.png rename to Docs/iOS/Controls/.attachments/Navigation-Accessory-Image-TitleDownArrow.png diff --git a/ios/docs/Controls/.attachments/Navigation-Accessory-SubtitleDisclosure.png b/Docs/iOS/Controls/.attachments/Navigation-Accessory-SubtitleDisclosure.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-Accessory-SubtitleDisclosure.png rename to Docs/iOS/Controls/.attachments/Navigation-Accessory-SubtitleDisclosure.png diff --git a/ios/docs/Controls/.attachments/Navigation-Style-Custom.png b/Docs/iOS/Controls/.attachments/Navigation-Style-Custom.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-Style-Custom.png rename to Docs/iOS/Controls/.attachments/Navigation-Style-Custom.png diff --git a/ios/docs/Controls/.attachments/Navigation-Style-Primary.png b/Docs/iOS/Controls/.attachments/Navigation-Style-Primary.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-Style-Primary.png rename to Docs/iOS/Controls/.attachments/Navigation-Style-Primary.png diff --git a/ios/docs/Controls/.attachments/Navigation-Style-System.png b/Docs/iOS/Controls/.attachments/Navigation-Style-System.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-Style-System.png rename to Docs/iOS/Controls/.attachments/Navigation-Style-System.png diff --git a/ios/docs/Controls/.attachments/Navigation-TitleStyle-Leading1.png b/Docs/iOS/Controls/.attachments/Navigation-TitleStyle-Leading1.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-TitleStyle-Leading1.png rename to Docs/iOS/Controls/.attachments/Navigation-TitleStyle-Leading1.png diff --git a/ios/docs/Controls/.attachments/Navigation-TitleStyle-Leading2.png b/Docs/iOS/Controls/.attachments/Navigation-TitleStyle-Leading2.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-TitleStyle-Leading2.png rename to Docs/iOS/Controls/.attachments/Navigation-TitleStyle-Leading2.png diff --git a/ios/docs/Controls/.attachments/Navigation-TitleStyle-System1.png b/Docs/iOS/Controls/.attachments/Navigation-TitleStyle-System1.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-TitleStyle-System1.png rename to Docs/iOS/Controls/.attachments/Navigation-TitleStyle-System1.png diff --git a/ios/docs/Controls/.attachments/Navigation-TitleStyle-System2.png b/Docs/iOS/Controls/.attachments/Navigation-TitleStyle-System2.png similarity index 100% rename from ios/docs/Controls/.attachments/Navigation-TitleStyle-System2.png rename to Docs/iOS/Controls/.attachments/Navigation-TitleStyle-System2.png diff --git a/ios/docs/Controls/.attachments/PopupMenuController_iPad.png b/Docs/iOS/Controls/.attachments/PopupMenuController_iPad.png similarity index 100% rename from ios/docs/Controls/.attachments/PopupMenuController_iPad.png rename to Docs/iOS/Controls/.attachments/PopupMenuController_iPad.png diff --git a/ios/docs/Controls/.attachments/PopupMenuController_iPhone.png b/Docs/iOS/Controls/.attachments/PopupMenuController_iPhone.png similarity index 100% rename from ios/docs/Controls/.attachments/PopupMenuController_iPhone.png rename to Docs/iOS/Controls/.attachments/PopupMenuController_iPhone.png diff --git a/ios/docs/Controls/.attachments/SearchBar-On-Brand.png b/Docs/iOS/Controls/.attachments/SearchBar-On-Brand.png similarity index 100% rename from ios/docs/Controls/.attachments/SearchBar-On-Brand.png rename to Docs/iOS/Controls/.attachments/SearchBar-On-Brand.png diff --git a/ios/docs/Controls/.attachments/SearchBar-On-Canvas.png b/Docs/iOS/Controls/.attachments/SearchBar-On-Canvas.png similarity index 100% rename from ios/docs/Controls/.attachments/SearchBar-On-Canvas.png rename to Docs/iOS/Controls/.attachments/SearchBar-On-Canvas.png diff --git a/ios/docs/Controls/.attachments/SearchBar-On-System.png b/Docs/iOS/Controls/.attachments/SearchBar-On-System.png similarity index 100% rename from ios/docs/Controls/.attachments/SearchBar-On-System.png rename to Docs/iOS/Controls/.attachments/SearchBar-On-System.png diff --git a/ios/docs/Controls/.attachments/TextField-Error.png b/Docs/iOS/Controls/.attachments/TextField-Error.png similarity index 100% rename from ios/docs/Controls/.attachments/TextField-Error.png rename to Docs/iOS/Controls/.attachments/TextField-Error.png diff --git a/ios/docs/Controls/.attachments/TextField-Filled.png b/Docs/iOS/Controls/.attachments/TextField-Filled.png similarity index 100% rename from ios/docs/Controls/.attachments/TextField-Filled.png rename to Docs/iOS/Controls/.attachments/TextField-Filled.png diff --git a/ios/docs/Controls/.attachments/TextField-Focused.png b/Docs/iOS/Controls/.attachments/TextField-Focused.png similarity index 100% rename from ios/docs/Controls/.attachments/TextField-Focused.png rename to Docs/iOS/Controls/.attachments/TextField-Focused.png diff --git a/ios/docs/Controls/.attachments/TextField-Placeholder.png b/Docs/iOS/Controls/.attachments/TextField-Placeholder.png similarity index 100% rename from ios/docs/Controls/.attachments/TextField-Placeholder.png rename to Docs/iOS/Controls/.attachments/TextField-Placeholder.png diff --git a/ios/docs/Controls/.attachments/TextField-Typing.png b/Docs/iOS/Controls/.attachments/TextField-Typing.png similarity index 100% rename from ios/docs/Controls/.attachments/TextField-Typing.png rename to Docs/iOS/Controls/.attachments/TextField-Typing.png diff --git a/ios/docs/Controls/.attachments/Tooltip-Down.png b/Docs/iOS/Controls/.attachments/Tooltip-Down.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-Down.png rename to Docs/iOS/Controls/.attachments/Tooltip-Down.png diff --git a/ios/docs/Controls/.attachments/Tooltip-Left.png b/Docs/iOS/Controls/.attachments/Tooltip-Left.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-Left.png rename to Docs/iOS/Controls/.attachments/Tooltip-Left.png diff --git a/ios/docs/Controls/.attachments/Tooltip-MessageAndTitle.png b/Docs/iOS/Controls/.attachments/Tooltip-MessageAndTitle.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-MessageAndTitle.png rename to Docs/iOS/Controls/.attachments/Tooltip-MessageAndTitle.png diff --git a/ios/docs/Controls/.attachments/Tooltip-MessageOnly.png b/Docs/iOS/Controls/.attachments/Tooltip-MessageOnly.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-MessageOnly.png rename to Docs/iOS/Controls/.attachments/Tooltip-MessageOnly.png diff --git a/ios/docs/Controls/.attachments/Tooltip-Right.png b/Docs/iOS/Controls/.attachments/Tooltip-Right.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-Right.png rename to Docs/iOS/Controls/.attachments/Tooltip-Right.png diff --git a/ios/docs/Controls/.attachments/Tooltip-Up.png b/Docs/iOS/Controls/.attachments/Tooltip-Up.png similarity index 100% rename from ios/docs/Controls/.attachments/Tooltip-Up.png rename to Docs/iOS/Controls/.attachments/Tooltip-Up.png diff --git a/ios/docs/Controls/Avatar.md b/Docs/iOS/Controls/Avatar.md similarity index 84% rename from ios/docs/Controls/Avatar.md rename to Docs/iOS/Controls/Avatar.md index a853d76f9d..26d92f55b3 100644 --- a/ios/docs/Controls/Avatar.md +++ b/Docs/iOS/Controls/Avatar.md @@ -39,9 +39,9 @@ Avatar(style: style, `Avatar` in Swift, `MSFAvatar` in Objective-C ### Source Code -- [Avatar.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Avatar/Avatar.swift) -- [MSFAvatar.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Avatar/MSFAvatar.swift) +- [Avatar.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Avatar/Avatar.swift) +- [MSFAvatar.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Avatar/MSFAvatar.swift) ### Sample Code -- [AvatarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController.swift) -- [AvatarDemoController_SwiftUI.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift) +- [AvatarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController.swift) +- [AvatarDemoController_SwiftUI.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/AvatarDemoController_SwiftUI.swift) diff --git a/ios/docs/Controls/BottomSheet.md b/Docs/iOS/Controls/BottomSheet.md similarity index 85% rename from ios/docs/Controls/BottomSheet.md rename to Docs/iOS/Controls/BottomSheet.md index 613bea397f..edd1075735 100644 --- a/ios/docs/Controls/BottomSheet.md +++ b/Docs/iOS/Controls/BottomSheet.md @@ -39,10 +39,10 @@ There is currently no SwiftUI implementation of the `Bottom Sheet` `BottomSheetController` in Swift, `MSFBottomSheetController` in Objective-C ### Source Code - - [BottomSheetController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Bottom%20Sheet/BottomSheetController.swift) - - [BottomSheetPassthroughView.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Bottom%20Sheet/BottomSheetPassthroughView.swift) - - [ContentHeightResolutionContext.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Bottom%20Sheet/ContentHeightResolutionContext.swift) - - [BottomSheetTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Bottom%20Sheet/BottomSheetTokenSet.swift) + - [BottomSheetController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Bottom%20Sheet/BottomSheetController.swift) + - [BottomSheetPassthroughView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Bottom%20Sheet/BottomSheetPassthroughView.swift) + - [ContentHeightResolutionContext.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Bottom%20Sheet/ContentHeightResolutionContext.swift) + - [BottomSheetTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Bottom%20Sheet/BottomSheetTokenSet.swift) ### Sample Code - - [BottomSheetDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/BottomSheetDemoController.swift) + - [BottomSheetDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/BottomSheetDemoController.swift) diff --git a/ios/docs/Controls/Button.md b/Docs/iOS/Controls/Button.md similarity index 85% rename from ios/docs/Controls/Button.md rename to Docs/iOS/Controls/Button.md index 6c708a07dc..032d9465b3 100644 --- a/ios/docs/Controls/Button.md +++ b/Docs/iOS/Controls/Button.md @@ -28,8 +28,8 @@ There is currently no SwiftUI implementation of the `Button` `Button` in Swift, `MSFButton` in Objective-C ### Source Code - - [Button.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Button/Button.swift) - - [ButtonTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Button/ButtonTokenSet.swift) + - [Button.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Button/Button.swift) + - [ButtonTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Button/ButtonTokenSet.swift) ### Sample Code - - [ButtonDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/ButtonDemoController.swift) + - [ButtonDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ButtonDemoController.swift) diff --git a/ios/docs/Controls/DateTimePicker.md b/Docs/iOS/Controls/DateTimePicker.md similarity index 94% rename from ios/docs/Controls/DateTimePicker.md rename to Docs/iOS/Controls/DateTimePicker.md index 2731707382..9b79913021 100644 --- a/ios/docs/Controls/DateTimePicker.md +++ b/Docs/iOS/Controls/DateTimePicker.md @@ -31,9 +31,9 @@ dateTimePicker.present(from: self, ### Control Name `DateTimePicker` in Swift, `MSFDateTimePicker` in Objective-C ### Source Code -[DateTimePicker.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Date%20Time%20Pickers/DateTimePicker.swift) +[DateTimePicker.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Date%20Time%20Pickers/DateTimePicker.swift) ### Sample Code -[DateTimePickerDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/DateTimePickerDemoController.swift) +[DateTimePickerDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/DateTimePickerDemoController.swift) ## Known Issues ### Custom Calendar Configuration diff --git a/ios/docs/Controls/Label.md b/Docs/iOS/Controls/Label.md similarity index 91% rename from ios/docs/Controls/Label.md rename to Docs/iOS/Controls/Label.md index 66e0d81e45..23ef4c9ed8 100644 --- a/ios/docs/Controls/Label.md +++ b/Docs/iOS/Controls/Label.md @@ -28,6 +28,6 @@ There is currently no SwiftUI implementation of the Label ### Control Name `Label` in Swift, `MSFLabel` in Objective-C ### Source Code -[Label.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Label/Label.swift) +[Label.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Label/Label.swift) ### Sample Code -[LabelDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/fluent2-tokens/ios/FluentUI.Demo/FluentUI.Demo/Demos/LabelDemoController.swift) +[LabelDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/LabelDemoController.swift) diff --git a/ios/docs/Controls/ListItem.md b/Docs/iOS/Controls/ListItem.md similarity index 90% rename from ios/docs/Controls/ListItem.md rename to Docs/iOS/Controls/ListItem.md index 7eb58af623..ce6370ff7a 100644 --- a/ios/docs/Controls/ListItem.md +++ b/Docs/iOS/Controls/ListItem.md @@ -34,7 +34,7 @@ ListItem(title: "Title", `ListItem` in SwiftUI ### Source Code -- [ListItem.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/List/ListItem.swift) +- [ListItem.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/List/ListItem.swift) ### Sample Code -- [ListItemDemoController_SwiftUI.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift) +- [ListItemDemoController_SwiftUI.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/ListItemDemoController_SwiftUI.swift) diff --git a/ios/docs/Controls/MultilineCommandBar.md b/Docs/iOS/Controls/MultilineCommandBar.md similarity index 83% rename from ios/docs/Controls/MultilineCommandBar.md rename to Docs/iOS/Controls/MultilineCommandBar.md index b0e51de746..556f8bf7a1 100644 --- a/ios/docs/Controls/MultilineCommandBar.md +++ b/Docs/iOS/Controls/MultilineCommandBar.md @@ -24,10 +24,10 @@ let multilineCommandBar = MultilineCommandBar(compactRows: compactRows, regularR `MultilineCommandBar` in Swift, `MSFMultilineCommandBar` in Objective-C ### Source Code -- [MultilineCommandBar.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/MultilineCommandBar/MultilineCommandBar.swift) +- [MultilineCommandBar.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/MultilineCommandBar/MultilineCommandBar.swift) ### Sample Code -- [MultilineCommandBarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift) +- [MultilineCommandBarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/MultilineCommandBarDemoController.swift) ## Accessibility `MultilineCommandBar` contains accessibility identifiers for each `CommandBar`. diff --git a/ios/docs/Controls/Navigation.md b/Docs/iOS/Controls/Navigation.md similarity index 84% rename from ios/docs/Controls/Navigation.md rename to Docs/iOS/Controls/Navigation.md index 52a87a96f0..1faa045da2 100644 --- a/ios/docs/Controls/Navigation.md +++ b/Docs/iOS/Controls/Navigation.md @@ -2,7 +2,7 @@ ## Overview -Use a `NavigationController` to enable users to navigate through hierarchical data. `NavigationController`, along with [extensions to `UINavigationItem`](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Navigation/UINavigationItem%2BNavigation.swift), allow you to render all relevant information with a Fluent look and feel. +Use a `NavigationController` to enable users to navigate through hierarchical data. `NavigationController`, along with [extensions to `UINavigationItem`](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Navigation/UINavigationItem%2BNavigation.swift), allow you to render all relevant information with a Fluent look and feel. ### Appearance Examples @@ -33,8 +33,8 @@ You can also specify an optional `titleImage` with the associated navigation ite ### Source Code -[Navigation folder](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Navigation/) +[Navigation folder](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Navigation/) ### Sample Code -[NavigationControllerDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/NavigationControllerDemoController.swift) +[NavigationControllerDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift) diff --git a/ios/docs/Controls/PopupMenuController.md b/Docs/iOS/Controls/PopupMenuController.md similarity index 61% rename from ios/docs/Controls/PopupMenuController.md rename to Docs/iOS/Controls/PopupMenuController.md index eb40e36c28..c986721c25 100644 --- a/ios/docs/Controls/PopupMenuController.md +++ b/Docs/iOS/Controls/PopupMenuController.md @@ -15,14 +15,14 @@ There is currently no SwiftUI implementation of the PopupMenuController ## Implementation ### Source Code #### UIKit - - [PopupMenuController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuController.swift) - - [PopupMenuItem.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuItem.swift) - - [PopupMenuItemCell.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuItemCell.swift) - - [PopupMenuProtocols.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuProtocols.swift) - - [PopupMenuSection.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuSection.swift) - - [PopupMenuSectionHeaderView.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Popup%20Menu/PopupMenuSectionHeaderView.swift) + - [PopupMenuController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuController.swift) + - [PopupMenuItem.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuItem.swift) + - [PopupMenuItemCell.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuItemCell.swift) + - [PopupMenuProtocols.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuProtocols.swift) + - [PopupMenuSection.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuSection.swift) + - [PopupMenuSectionHeaderView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Popup%20Menu/PopupMenuSectionHeaderView.swift) ### Sample Code #### Objective-C - - [PopupMenuObjCDemoController.m](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m) + - [PopupMenuObjCDemoController.m](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuObjCDemoController.m) #### Swift - - [PopupMenuDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/PopupMenuDemoController.swift) \ No newline at end of file + - [PopupMenuDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/PopupMenuDemoController.swift) \ No newline at end of file diff --git a/ios/docs/Controls/SearchBar.md b/Docs/iOS/Controls/SearchBar.md similarity index 87% rename from ios/docs/Controls/SearchBar.md rename to Docs/iOS/Controls/SearchBar.md index b23eaaca10..51a90afd0d 100644 --- a/ios/docs/Controls/SearchBar.md +++ b/Docs/iOS/Controls/SearchBar.md @@ -26,10 +26,10 @@ The `SearchBar` contains a search icon, a search text field, a placeholder text, `SearchBar` in Swift, `MSFSearchBar` in Objective-C ### Source Code -- [SearchBar.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/Navigation/SearchBar/SearchBar.swift) +- [SearchBar.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift) ### Sample Code -- [SearchBarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/SearchBarDemoController.swift) +- [SearchBarDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/SearchBarDemoController.swift) ## Accessibility `SearchBar` publicly exposes accessibility hints, labels and identifiers for the `clearButton`, `cancelButton`, and `searchTextField`. diff --git a/ios/docs/Controls/TextField.md b/Docs/iOS/Controls/TextField.md similarity index 74% rename from ios/docs/Controls/TextField.md rename to Docs/iOS/Controls/TextField.md index 86837b2a75..f4c5066bab 100644 --- a/ios/docs/Controls/TextField.md +++ b/Docs/iOS/Controls/TextField.md @@ -20,7 +20,7 @@ Once the user is done and taps away, the Text Field will switch back to the unfo ![TextField-Filled.png](.attachments/TextField-Filled.png) -The Text Field also exposes an optional [FluentTextInputError](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/TextField/FluentTextInputError.swift), which if set will replace the assistive text with the error's localized description and will recolor the title, separator, and assistive text to show that it is in the error state. +The Text Field also exposes an optional [FluentTextInputError](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/TextField/FluentTextInputError.swift), which if set will replace the assistive text with the error's localized description and will recolor the title, separator, and assistive text to show that it is in the error state. ![TextField-Error.png](.attachments/TextField-Error.png) @@ -40,7 +40,7 @@ The Text Field has four closure properties that allow clients to respond to spec @objc public var onReturn: ((FluentTextField) -> Bool)? ``` -The UITextField that the Text Field uses is actually a custom subclass of the UITextField, the [FluentTextFieldInternal](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/TextField/FluentTextFieldInternal.swift), so that the position of the trailing clear text button could be customized. +The UITextField that the Text Field uses is actually a custom subclass of the UITextField, the [FluentTextFieldInternal](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/TextField/FluentTextFieldInternal.swift), so that the position of the trailing clear text button could be customized. ## Implementation ### Control Name @@ -48,12 +48,12 @@ The UITextField that the Text Field uses is actually a custom subclass of the UI ### Source Code #### UIKit - - [FluentTextField.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/TextField/FluentTextField.swift) - - [TextFieldTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI/TextField/TextFieldTokenSet.swift) + - [FluentTextField.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift) + - [TextFieldTokenSet.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/TextField/TextFieldTokenSet.swift) ### Sample Code #### Objective-C - - [TextFieldObjCDemoController.m](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldObjCDemoController.m) + - [TextFieldObjCDemoController.m](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldObjCDemoController.m) #### Swift - - [TextFieldDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/ios/FluentUI.Demo/FluentUI.Demo/Demos/TextFieldDemoController.swift) + - [TextFieldDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TextFieldDemoController.swift) diff --git a/ios/docs/Controls/Tooltip.md b/Docs/iOS/Controls/Tooltip.md similarity index 88% rename from ios/docs/Controls/Tooltip.md rename to Docs/iOS/Controls/Tooltip.md index dbca4b41e7..e43c34a2da 100644 --- a/ios/docs/Controls/Tooltip.md +++ b/Docs/iOS/Controls/Tooltip.md @@ -38,8 +38,8 @@ Tooltip.shared.show(with: "This is the message of the tooltip.", ### Control Name `Tooltip` in Swift, `MSFTooltip` in Objective-C/UIKit ### Source Code -[Tooltip.swift](https://github.com/microsoft/fluentui-apple/blob/fluent2-tokens/ios/FluentUI/Tooltip/Tooltip.swift) -[TooltipView.swift](https://github.com/microsoft/fluentui-apple/blob/fluent2-tokens/ios/FluentUI/Tooltip/TooltipView.swift) -[TooltipViewController.swift](https://github.com/microsoft/fluentui-apple/blob/fluent2-tokens/ios/FluentUI/Tooltip/TooltipViewController.swift) +[Tooltip.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift) +[TooltipView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Tooltip/TooltipView.swift) +[TooltipViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_iOS/Components/Tooltip/TooltipViewController.swift) ### Sample Code -[TooltipDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/fluent2-tokens/ios/FluentUI.Demo/FluentUI.Demo/Demos/TooltipDemoController.swift) +[TooltipDemoController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TooltipDemoController.swift) diff --git a/macos/docs/Controls/.attachments/AvatarViewImage.png b/Docs/macOS/Controls/.attachments/AvatarViewImage.png similarity index 100% rename from macos/docs/Controls/.attachments/AvatarViewImage.png rename to Docs/macOS/Controls/.attachments/AvatarViewImage.png diff --git a/macos/docs/Controls/.attachments/AvatarViewInitials.png b/Docs/macOS/Controls/.attachments/AvatarViewInitials.png similarity index 100% rename from macos/docs/Controls/.attachments/AvatarViewInitials.png rename to Docs/macOS/Controls/.attachments/AvatarViewInitials.png diff --git a/macos/docs/Controls/.attachments/AvatarViews.png b/Docs/macOS/Controls/.attachments/AvatarViews.png similarity index 100% rename from macos/docs/Controls/.attachments/AvatarViews.png rename to Docs/macOS/Controls/.attachments/AvatarViews.png diff --git a/macos/docs/Controls/.attachments/Badge.png b/Docs/macOS/Controls/.attachments/Badge.png similarity index 100% rename from macos/docs/Controls/.attachments/Badge.png rename to Docs/macOS/Controls/.attachments/Badge.png diff --git a/macos/docs/Controls/.attachments/ButtonAccentColors.png b/Docs/macOS/Controls/.attachments/ButtonAccentColors.png similarity index 100% rename from macos/docs/Controls/.attachments/ButtonAccentColors.png rename to Docs/macOS/Controls/.attachments/ButtonAccentColors.png diff --git a/macos/docs/Controls/.attachments/ButtonImagePositions.png b/Docs/macOS/Controls/.attachments/ButtonImagePositions.png similarity index 100% rename from macos/docs/Controls/.attachments/ButtonImagePositions.png rename to Docs/macOS/Controls/.attachments/ButtonImagePositions.png diff --git a/macos/docs/Controls/.attachments/ButtonLinkedPrimary.gif b/Docs/macOS/Controls/.attachments/ButtonLinkedPrimary.gif similarity index 100% rename from macos/docs/Controls/.attachments/ButtonLinkedPrimary.gif rename to Docs/macOS/Controls/.attachments/ButtonLinkedPrimary.gif diff --git a/macos/docs/Controls/.attachments/ButtonSizes.png b/Docs/macOS/Controls/.attachments/ButtonSizes.png similarity index 100% rename from macos/docs/Controls/.attachments/ButtonSizes.png rename to Docs/macOS/Controls/.attachments/ButtonSizes.png diff --git a/macos/docs/Controls/.attachments/ButtonStyles.png b/Docs/macOS/Controls/.attachments/ButtonStyles.png similarity index 100% rename from macos/docs/Controls/.attachments/ButtonStyles.png rename to Docs/macOS/Controls/.attachments/ButtonStyles.png diff --git a/macos/docs/Controls/.attachments/ButtonViews.png b/Docs/macOS/Controls/.attachments/ButtonViews.png similarity index 100% rename from macos/docs/Controls/.attachments/ButtonViews.png rename to Docs/macOS/Controls/.attachments/ButtonViews.png diff --git a/macos/docs/Controls/.attachments/DatePickerCustomDate.png b/Docs/macOS/Controls/.attachments/DatePickerCustomDate.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerCustomDate.png rename to Docs/macOS/Controls/.attachments/DatePickerCustomDate.png diff --git a/macos/docs/Controls/.attachments/DatePickerDefaultDateOnly.png b/Docs/macOS/Controls/.attachments/DatePickerDefaultDateOnly.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerDefaultDateOnly.png rename to Docs/macOS/Controls/.attachments/DatePickerDefaultDateOnly.png diff --git a/macos/docs/Controls/.attachments/DatePickerDefaultDateTime.png b/Docs/macOS/Controls/.attachments/DatePickerDefaultDateTime.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerDefaultDateTime.png rename to Docs/macOS/Controls/.attachments/DatePickerDefaultDateTime.png diff --git a/macos/docs/Controls/.attachments/DatePickerIslamicCalendar.png b/Docs/macOS/Controls/.attachments/DatePickerIslamicCalendar.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerIslamicCalendar.png rename to Docs/macOS/Controls/.attachments/DatePickerIslamicCalendar.png diff --git a/macos/docs/Controls/.attachments/DatePickerNoTextField.png b/Docs/macOS/Controls/.attachments/DatePickerNoTextField.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerNoTextField.png rename to Docs/macOS/Controls/.attachments/DatePickerNoTextField.png diff --git a/macos/docs/Controls/.attachments/DatePickerSecondaryCalendar.png b/Docs/macOS/Controls/.attachments/DatePickerSecondaryCalendar.png similarity index 100% rename from macos/docs/Controls/.attachments/DatePickerSecondaryCalendar.png rename to Docs/macOS/Controls/.attachments/DatePickerSecondaryCalendar.png diff --git a/macos/docs/Controls/.attachments/FilledTemplate-blueFill-blackBorder.png b/Docs/macOS/Controls/.attachments/FilledTemplate-blueFill-blackBorder.png similarity index 100% rename from macos/docs/Controls/.attachments/FilledTemplate-blueFill-blackBorder.png rename to Docs/macOS/Controls/.attachments/FilledTemplate-blueFill-blackBorder.png diff --git a/macos/docs/Controls/.attachments/FilledTemplate-clearFill-whiteBorder.png b/Docs/macOS/Controls/.attachments/FilledTemplate-clearFill-whiteBorder.png similarity index 100% rename from macos/docs/Controls/.attachments/FilledTemplate-clearFill-whiteBorder.png rename to Docs/macOS/Controls/.attachments/FilledTemplate-clearFill-whiteBorder.png diff --git a/macos/docs/Controls/.attachments/FilledTemplate-redFill-whiteBorder.png b/Docs/macOS/Controls/.attachments/FilledTemplate-redFill-whiteBorder.png similarity index 100% rename from macos/docs/Controls/.attachments/FilledTemplate-redFill-whiteBorder.png rename to Docs/macOS/Controls/.attachments/FilledTemplate-redFill-whiteBorder.png diff --git a/macos/docs/Controls/.attachments/Link.png b/Docs/macOS/Controls/.attachments/Link.png similarity index 100% rename from macos/docs/Controls/.attachments/Link.png rename to Docs/macOS/Controls/.attachments/Link.png diff --git a/macos/docs/Controls/.attachments/LinkWithHover.png b/Docs/macOS/Controls/.attachments/LinkWithHover.png similarity index 100% rename from macos/docs/Controls/.attachments/LinkWithHover.png rename to Docs/macOS/Controls/.attachments/LinkWithHover.png diff --git a/macos/docs/Controls/.attachments/Separator.png b/Docs/macOS/Controls/.attachments/Separator.png similarity index 100% rename from macos/docs/Controls/.attachments/Separator.png rename to Docs/macOS/Controls/.attachments/Separator.png diff --git a/macos/docs/Controls/AvatarView.md b/Docs/macOS/Controls/AvatarView.md similarity index 90% rename from macos/docs/Controls/AvatarView.md rename to Docs/macOS/Controls/AvatarView.md index 3bd2206ae2..156e604303 100644 --- a/macos/docs/Controls/AvatarView.md +++ b/Docs/macOS/Controls/AvatarView.md @@ -38,6 +38,6 @@ AvatarView(avatarSize: size, ### Control Name `AvatarView` in Swift, `MSFAvatarView` in Objective-C ### Source Code -[AvatarView.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/AvatarView/AvatarView.swift) +[AvatarView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/AvatarView/AvatarView.swift) ### Sample Code -[TestAvatarViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestAvatarViewController.swift) +[TestAvatarViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestAvatarViewController.swift) diff --git a/macos/docs/Controls/BadgeView.md b/Docs/macOS/Controls/BadgeView.md similarity index 77% rename from macos/docs/Controls/BadgeView.md rename to Docs/macOS/Controls/BadgeView.md index f8c316d9bf..14b02468cb 100644 --- a/macos/docs/Controls/BadgeView.md +++ b/Docs/macOS/Controls/BadgeView.md @@ -21,6 +21,6 @@ BadgeView(title: "Badge") ### Control Name `BadgeView` in Swift, `MSFBadgeView` in Objective-C ### Source Code -[BadgeView.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/BadgeView/BadgeView.swift) +[BadgeView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/BadgeView/BadgeView.swift) ### Sample Code -[TestBadgeViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestBadgeViewController.swift) +[TestBadgeViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestBadgeViewController.swift) diff --git a/macos/docs/Controls/Button.md b/Docs/macOS/Controls/Button.md similarity index 96% rename from macos/docs/Controls/Button.md rename to Docs/macOS/Controls/Button.md index b3ea9077b7..36f62f1c1a 100644 --- a/macos/docs/Controls/Button.md +++ b/Docs/macOS/Controls/Button.md @@ -75,6 +75,6 @@ let buttonWithImage = Button(image: NSImage(named: NSImage.addTemplateName)!) ### Control Name `Button` in Swift, `MSFButton` in Objective-C ### Source Code -[Button.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/Button/Button.swift) +[Button.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/Button/Button.swift) ### Sample Code -[TestButtonViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestButtonViewController.swift) +[TestButtonViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestButtonViewController.swift) diff --git a/macos/docs/Controls/DatePicker.md b/Docs/macOS/Controls/DatePicker.md similarity index 93% rename from macos/docs/Controls/DatePicker.md rename to Docs/macOS/Controls/DatePicker.md index 341ca383f5..02079ad6e1 100644 --- a/macos/docs/Controls/DatePicker.md +++ b/Docs/macOS/Controls/DatePicker.md @@ -74,6 +74,6 @@ controller.hasTextField = false ### Control Name `DatePickerController` in Swift, `MSFDatePickerController` in Objective-C ### Source Code -[DatePickerController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/DatePicker/DatePickerController.swift) +[DatePickerController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/DatePicker/DatePickerController.swift) ### Sample Code -[TestDatePickerController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestDatePickerController.swift) +[TestDatePickerController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestDatePickerController.swift) diff --git a/macos/docs/Controls/FilledTemplateImageView.md b/Docs/macOS/Controls/FilledTemplateImageView.md similarity index 90% rename from macos/docs/Controls/FilledTemplateImageView.md rename to Docs/macOS/Controls/FilledTemplateImageView.md index eed147ee40..d519354bf7 100644 --- a/macos/docs/Controls/FilledTemplateImageView.md +++ b/Docs/macOS/Controls/FilledTemplateImageView.md @@ -37,6 +37,6 @@ tagImage.fillColor = .clear ### Control Name `FilledTemplateImageView` in Swift, `MSFFilledTemplateImageView` in Objective-C ### Source Code -[FilledTemplateImageView.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/FilledTemplateImageView/FilledTemplateImageView.swift) +[FilledTemplateImageView.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/FilledTemplateImageView/FilledTemplateImageView.swift) ### Sample Code -[FilledTemplateImageViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/FilledTemplateImageViewController.swift) +[FilledTemplateImageViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/FilledTemplateImageViewController.swift) diff --git a/macos/docs/Controls/Link.md b/Docs/macOS/Controls/Link.md similarity index 94% rename from macos/docs/Controls/Link.md rename to Docs/macOS/Controls/Link.md index e8d6e9713e..6a23649b65 100644 --- a/macos/docs/Controls/Link.md +++ b/Docs/macOS/Controls/Link.md @@ -52,6 +52,6 @@ link.action = #selector(displayAlert) ### Control Name `Link` in Swift, `MSFLink` in Objective-C ### Source Code -[Link.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/Link/Link.swift) +[Link.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/Link/Link.swift) ### Sample Code -[TestLinkViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestLinkViewController.swift) +[TestLinkViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestLinkViewController.swift) diff --git a/macos/docs/Controls/Separator.md b/Docs/macOS/Controls/Separator.md similarity index 80% rename from macos/docs/Controls/Separator.md rename to Docs/macOS/Controls/Separator.md index 5b722011e2..6f62e8c962 100644 --- a/macos/docs/Controls/Separator.md +++ b/Docs/macOS/Controls/Separator.md @@ -24,6 +24,6 @@ let horizontalSeparator = Separator(orientation: .horizontal) ### Control Name `Separator` in Swift, `MSFSeparator` in Objective-C ### Source Code -[Separator.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUI/Separator/Separator.swift) +[Separator.swift](https://github.com/microsoft/fluentui-apple/blob/main/Sources/FluentUI_macOS/Components/Separator/Separator.swift) ### Sample Code -[TestSeparatorViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/macos/FluentUITestViewControllers/TestSeparatorViewController.swift) \ No newline at end of file +[TestSeparatorViewController.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestSeparatorViewController.swift) \ No newline at end of file diff --git a/macos/docs/Controls/Template.md b/Docs/macOS/Controls/Template.md similarity index 100% rename from macos/docs/Controls/Template.md rename to Docs/macOS/Controls/Template.md diff --git a/FluentUI.nuspec b/FluentUI.nuspec deleted file mode 100644 index cbb2d7a1c5..0000000000 --- a/FluentUI.nuspec +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <metadata> - <id>Microsoft.FluentUI.Apple</id> - <version>$buildNumber$</version> - <description>FluentUI native controls for iOS and macOS</description> - <authors>Microsoft</authors> - <projectUrl>https://github.com/microsoft/fluentui-apple</projectUrl> - <repository type="git" url="$repoUri$" commit="$commitId$" /> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - </metadata> - <files> - <!-- Zipped Build Output --> - <file src="DerivedData\Build\Products\nuget\BuildOutput.zip" target="Archives/BuildOutput.zip"/> - </files> -</package> diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 85c8235bb4..48bb81aee6 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -1,3 +1,11 @@ +# Constants +ios_root = 'Sources/FluentUI_iOS' +macos_root = 'Sources/FluentUI_macOS' + +components_dir = 'Components' +core_dir = 'Core' +resources_dir = 'Resources' + Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' s.version = '0.30.0' @@ -16,94 +24,94 @@ Pod::Spec.new do |s| s.subspec 'Avatar_ios' do |avatar_ios| avatar_ios.platform = :ios - avatar_ios.dependency 'MicrosoftFluentUI/Core_ios' - avatar_ios.preserve_paths = ["ios/FluentUI/Avatar/Avatar.resources.xcfilelist"] - avatar_ios.source_files = ["ios/FluentUI/Avatar/**/*.{swift,h}"] + avatar_ios.dependency "#{s.name}/Core_ios" + avatar_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Avatar/Avatar.resources.xcfilelist"] + avatar_ios.source_files = ["#{ios_root}/#{components_dir}/Avatar/**/*.{swift,h}"] end s.subspec 'AvatarGroup_ios' do |avatargroup_ios| avatargroup_ios.platform = :ios - avatargroup_ios.dependency 'MicrosoftFluentUI/Avatar_ios' - avatargroup_ios.source_files = ["ios/FluentUI/AvatarGroup/**/*.{swift,h}"] + avatargroup_ios.dependency "#{s.name}/Avatar_ios" + avatargroup_ios.source_files = ["#{ios_root}/#{components_dir}/AvatarGroup/**/*.{swift,h}"] end s.subspec 'ActivityIndicator_ios' do |activityindicator_ios| activityindicator_ios.platform = :ios - activityindicator_ios.dependency 'MicrosoftFluentUI/Core_ios' - activityindicator_ios.source_files = ["ios/FluentUI/ActivityIndicator/**/*.{swift,h}"] + activityindicator_ios.dependency "#{s.name}/Core_ios" + activityindicator_ios.source_files = ["#{ios_root}/#{components_dir}/ActivityIndicator/**/*.{swift,h}"] end s.subspec 'BadgeField_ios' do |badgefield_ios| badgefield_ios.platform = :ios - badgefield_ios.dependency 'MicrosoftFluentUI/Label_ios' - badgefield_ios.source_files = ["ios/FluentUI/Badge Field/**/*.{swift,h}"] + badgefield_ios.dependency "#{s.name}/Label_ios" + badgefield_ios.source_files = ["#{ios_root}/#{components_dir}/Badge Field/**/*.{swift,h}"] end s.subspec 'BarButtonItems_ios' do |barbuttonitems_ios| barbuttonitems_ios.platform = :ios - barbuttonitems_ios.dependency 'MicrosoftFluentUI/Core_ios' - barbuttonitems_ios.preserve_paths = ["ios/FluentUI/BarButtonItems/BarButtonItems.resources.xcfilelist"] - barbuttonitems_ios.source_files = ["ios/FluentUI/BarButtonItems/**/*.{swift,h}"] + barbuttonitems_ios.dependency "#{s.name}/Core_ios" + barbuttonitems_ios.preserve_paths = ["#{ios_root}/#{components_dir}/BarButtonItems/BarButtonItems.resources.xcfilelist"] + barbuttonitems_ios.source_files = ["#{ios_root}/#{components_dir}/BarButtonItems/**/*.{swift,h}"] end s.subspec 'BottomCommanding_ios' do |bottomcommanding_ios| bottomcommanding_ios.platform = :ios - bottomcommanding_ios.dependency 'MicrosoftFluentUI/BottomSheet_ios' - bottomcommanding_ios.dependency 'MicrosoftFluentUI/OtherCells_ios' - bottomcommanding_ios.dependency 'MicrosoftFluentUI/Separator_ios' - bottomcommanding_ios.dependency 'MicrosoftFluentUI/TabBar_ios' - bottomcommanding_ios.dependency 'MicrosoftFluentUI/TableView_ios' - bottomcommanding_ios.preserve_paths = ["ios/FluentUI/Bottom Commanding/BottomCommanding.resources.xcfilelist"] - bottomcommanding_ios.source_files = ["ios/FluentUI/Bottom Commanding/**/*.{swift,h}"] + bottomcommanding_ios.dependency "#{s.name}/BottomSheet_ios" + bottomcommanding_ios.dependency "#{s.name}/OtherCells_ios" + bottomcommanding_ios.dependency "#{s.name}/Separator_ios" + bottomcommanding_ios.dependency "#{s.name}/TabBar_ios" + bottomcommanding_ios.dependency "#{s.name}/TableView_ios" + bottomcommanding_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Bottom Commanding/BottomCommanding.resources.xcfilelist"] + bottomcommanding_ios.source_files = ["#{ios_root}/#{components_dir}/Bottom Commanding/**/*.{swift,h}"] end s.subspec 'BottomSheet_ios' do |bottomsheet_ios| bottomsheet_ios.platform = :ios - bottomsheet_ios.dependency 'MicrosoftFluentUI/Obscurable_ios' - bottomsheet_ios.dependency 'MicrosoftFluentUI/ResizingHandleView_ios' - bottomsheet_ios.source_files = ["ios/FluentUI/Bottom Sheet/**/*.{swift,h}"] + bottomsheet_ios.dependency "#{s.name}/Obscurable_ios" + bottomsheet_ios.dependency "#{s.name}/ResizingHandleView_ios" + bottomsheet_ios.source_files = ["#{ios_root}/#{components_dir}/Bottom Sheet/**/*.{swift,h}"] end s.subspec 'Button_ios' do |button_ios| button_ios.platform = :ios - button_ios.dependency 'MicrosoftFluentUI/Core_ios' - button_ios.source_files = ["ios/FluentUI/Button/**/*.{swift,h}"] + button_ios.dependency "#{s.name}/Core_ios" + button_ios.source_files = ["#{ios_root}/#{components_dir}/Button/**/*.{swift,h}"] end s.subspec 'Calendar_ios' do |calendar_ios| calendar_ios.platform = :ios - calendar_ios.dependency 'MicrosoftFluentUI/BarButtonItems_ios' - calendar_ios.dependency 'MicrosoftFluentUI/DotView_ios' - calendar_ios.dependency 'MicrosoftFluentUI/Label_ios' - calendar_ios.dependency 'MicrosoftFluentUI/Presenters_ios' - calendar_ios.dependency 'MicrosoftFluentUI/SegmentedControl_ios' - calendar_ios.dependency 'MicrosoftFluentUI/Separator_ios' - calendar_ios.dependency 'MicrosoftFluentUI/TwoLineTitleView_ios' - calendar_ios.source_files = ["ios/FluentUI/Calendar/**/*.{swift,h}", - "ios/FluentUI/Date Time Pickers/**/*.{swift,h}"] + calendar_ios.dependency "#{s.name}/BarButtonItems_ios" + calendar_ios.dependency "#{s.name}/DotView_ios" + calendar_ios.dependency "#{s.name}/Label_ios" + calendar_ios.dependency "#{s.name}/Presenters_ios" + calendar_ios.dependency "#{s.name}/SegmentedControl_ios" + calendar_ios.dependency "#{s.name}/Separator_ios" + calendar_ios.dependency "#{s.name}/TwoLineTitleView_ios" + calendar_ios.source_files = ["#{ios_root}/#{components_dir}/Calendar/**/*.{swift,h}", + "#{ios_root}/#{components_dir}/Date Time Pickers/**/*.{swift,h}"] end s.subspec 'Card_ios' do |card_ios| card_ios.platform = :ios - card_ios.dependency 'MicrosoftFluentUI/Label_ios' - card_ios.source_files = ["ios/FluentUI/Card/**/*.{swift,h}"] + card_ios.dependency "#{s.name}/Label_ios" + card_ios.source_files = ["#{ios_root}/#{components_dir}/Card/**/*.{swift,h}"] end s.subspec 'CardNudge_ios' do |cardnudge_ios| cardnudge_ios.platform = :ios - cardnudge_ios.dependency 'MicrosoftFluentUI/Core_ios' - cardnudge_ios.source_files = ["ios/FluentUI/Card Nudge/**/*.{swift,h}"] + cardnudge_ios.dependency "#{s.name}/Core_ios" + cardnudge_ios.source_files = ["#{ios_root}/#{components_dir}/Card Nudge/**/*.{swift,h}"] end s.subspec 'CommandBar_ios' do |commandbar_ios| commandbar_ios.platform = :ios - commandbar_ios.dependency 'MicrosoftFluentUI/Core_ios' - commandbar_ios.source_files = ["ios/FluentUI/Command Bar/**/*.{swift,h}"] + commandbar_ios.dependency "#{s.name}/Core_ios" + commandbar_ios.source_files = ["#{ios_root}/#{components_dir}/Command Bar/**/*.{swift,h}"] end s.subspec 'Core_ios' do |core_ios| core_ios.platform = :ios - core_ios.resource_bundle = { 'FluentUIResources-ios' => ["ios/FluentUI/**/*.{storyboard,xib,xcassets,strings,stringsdict}"] } + core_ios.resource_bundle = { 'FluentUIResources-ios' => ["#{ios_root}/#{resources_dir}/**/*.{storyboard,xib,xcassets,strings,stringsdict}"] } core_ios.script_phase = { :name => 'Optimize resource bundle', :script => 'REMOVE_UNUSED_RESOURCES_SCRIPT_PATH=${PODS_TARGET_SRCROOT}/scripts/removeUnusedResourcesFromAssets.swift @@ -118,244 +126,229 @@ if [ -f ${REMOVE_UNUSED_RESOURCES_SCRIPT_PATH} ]; then XCODEBUILDPARAMS="" fi - xcrun --sdk macosx swift ${CONDITIONALCOMPILATIONFLAGS} ${REMOVE_UNUSED_RESOURCES_SCRIPT_PATH} ${LOCROOT}/MicrosoftFluentUI/ios/FluentUI/Resources/FluentUI-ios.xcassets ${LOCROOT}/MicrosoftFluentUI/ios + xcrun --sdk macosx swift ${CONDITIONALCOMPILATIONFLAGS} ${REMOVE_UNUSED_RESOURCES_SCRIPT_PATH} ${LOCROOT}/MicrosoftFluentUI/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets ${LOCROOT}/MicrosoftFluentUI/Sources/FluentUI_iOS echo "=== Rebuilding resource bundle target ===" - xcodebuild ${XCODEBUILDPARAMS} DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING=1 -project ${PROJECT_FILE_PATH} -target "MicrosoftFluentUI-FluentUIResources-ios" -sdk ${PLATFORM_NAME} -configuration ${CONFIGURATION} ARCHS="${ARCHS}" CONFIGURATION_BUILD_DIR="${CONFIGURATION_BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" BUILT_PRODUCTS_DIR="${BUILT_PRODUCTS_DIR}" ${ACTION} + xcodebuild ${XCODEBUILDPARAMS} DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING=1 -project ${PROJECT_FILE_PATH} -target "MicrosoftFluentUI-FluentUIResources-ios" -sdk ${PLATFORM_NAME} -configuration ${CONFIGURATION} ARCHS="${ARCHS}" CONFIGURATION_BUILD_DIR="${CONFIGURATION_BUILD_dir}/" BUILD_ROOT="${BUILD_ROOT}" BUILT_PRODUCTS_DIR="${BUILT_PRODUCTS_dir}/" ${ACTION} # Deletes the script to ensure it will not be needlessly executed more than once after each "pod install" rm ${REMOVE_UNUSED_RESOURCES_SCRIPT_PATH} fi', :execution_position => :before_compile } - core_ios.preserve_paths = ["ios/FluentUI/Core/Core.resources.xcfilelist", + core_ios.preserve_paths = ["#{ios_root}/#{core_dir}/Core.resources.xcfilelist", "scripts/removeUnusedResourcesFromAssets.swift"] - core_ios.source_files = ["ios/FluentUI/Configuration/**/*.{swift,h}", - "ios/FluentUI/Core/**/*.{swift,h}", - "ios/FluentUI/Extensions/**/*.{swift,h}"] + core_ios.source_files = ["#{ios_root}/#{core_dir}/**/*.{swift,h}"] end - # Temporarily removed while this is not part of our main project - # s.subspec 'Divider_ios' do |divider_ios| - # divider_ios.platform = :ios - # divider_ios.dependency 'MicrosoftFluentUI/Core_ios' - # divider_ios.source_files = ["ios/FluentUI/Divider/**/*.{swift,h}"] - # end - s.subspec 'DotView_ios' do |dotview_ios| dotview_ios.platform = :ios - dotview_ios.dependency 'MicrosoftFluentUI/Core_ios' - dotview_ios.source_files = ["ios/FluentUI/DotView/**/*.{swift,h}"] + dotview_ios.dependency "#{s.name}/Core_ios" + dotview_ios.source_files = ["#{ios_root}/#{components_dir}/DotView/**/*.{swift,h}"] end s.subspec 'Drawer_ios' do |drawer_ios| drawer_ios.platform = :ios - drawer_ios.dependency 'MicrosoftFluentUI/Obscurable_ios' - drawer_ios.dependency 'MicrosoftFluentUI/ResizingHandleView_ios' - drawer_ios.dependency 'MicrosoftFluentUI/Separator_ios' - drawer_ios.dependency 'MicrosoftFluentUI/TouchForwardingView_ios' - drawer_ios.source_files = ["ios/FluentUI/Drawer/**/*.{swift,h}"] + drawer_ios.dependency "#{s.name}/Obscurable_ios" + drawer_ios.dependency "#{s.name}/ResizingHandleView_ios" + drawer_ios.dependency "#{s.name}/Separator_ios" + drawer_ios.dependency "#{s.name}/TouchForwardingView_ios" + drawer_ios.source_files = ["#{ios_root}/#{components_dir}/Drawer/**/*.{swift,h}"] end s.subspec 'EasyTapButton_ios' do |easytapbutton_ios| easytapbutton_ios.platform = :ios - easytapbutton_ios.dependency 'MicrosoftFluentUI/Core_ios' - easytapbutton_ios.source_files = ["ios/FluentUI/EasyTapButton/**/*.{swift,h}"] + easytapbutton_ios.dependency "#{s.name}/Core_ios" + easytapbutton_ios.source_files = ["#{ios_root}/#{components_dir}/EasyTapButton/**/*.{swift,h}"] end s.subspec 'HUD_ios' do |hud_ios| hud_ios.platform = :ios - hud_ios.dependency 'MicrosoftFluentUI/ActivityIndicator_ios' - hud_ios.dependency 'MicrosoftFluentUI/Label_ios' - hud_ios.dependency 'MicrosoftFluentUI/TouchForwardingView_ios' - hud_ios.preserve_paths = ["ios/FluentUI/HUD/HUD.resources.xcfilelist"] - hud_ios.source_files = ["ios/FluentUI/HUD/**/*.{swift,h}"] + hud_ios.dependency "#{s.name}/ActivityIndicator_ios" + hud_ios.dependency "#{s.name}/Label_ios" + hud_ios.dependency "#{s.name}/TouchForwardingView_ios" + hud_ios.preserve_paths = ["#{ios_root}/#{components_dir}/HUD/HUD.resources.xcfilelist"] + hud_ios.source_files = ["#{ios_root}/#{components_dir}/HUD/**/*.{swift,h}"] end s.subspec 'IndeterminateProgressBar_ios' do |indeterminateprogressbar_ios| indeterminateprogressbar_ios.platform = :ios - indeterminateprogressbar_ios.dependency 'MicrosoftFluentUI/Core_ios' - indeterminateprogressbar_ios.source_files = ["ios/FluentUI/IndeterminateProgressBar/**/*.{swift,h}"] + indeterminateprogressbar_ios.dependency "#{s.name}/Core_ios" + indeterminateprogressbar_ios.source_files = ["#{ios_root}/#{components_dir}/IndeterminateProgressBar/**/*.{swift,h}"] end s.subspec 'Label_ios' do |label_ios| label_ios.platform = :ios - label_ios.dependency 'MicrosoftFluentUI/Core_ios' - label_ios.source_files = ["ios/FluentUI/Label/**/*.{swift,h}"] + label_ios.dependency "#{s.name}/Core_ios" + label_ios.source_files = ["#{ios_root}/#{components_dir}/Label/**/*.{swift,h}"] end s.subspec 'ListItem_ios' do |listitem_ios| listitem_ios.platform = :ios - listitem_ios.dependency 'MicrosoftFluentUI/OtherCells_ios' - listitem_ios.dependency 'MicrosoftFluentUI/Separator_ios' - listitem_ios.dependency 'MicrosoftFluentUI/TableViewListShared_ios' - listitem_ios.source_files = ["ios/FluentUI/List/**/*.swift"] + listitem_ios.dependency "#{s.name}/OtherCells_ios" + listitem_ios.dependency "#{s.name}/Separator_ios" + listitem_ios.dependency "#{s.name}/TableViewListShared_ios" + listitem_ios.source_files = ["#{ios_root}/#{components_dir}/List/**/*.swift"] end s.subspec 'MultilineCommandBar_ios' do |multilinecommandbar_ios| multilinecommandbar_ios.platform = :ios - multilinecommandbar_ios.dependency 'MicrosoftFluentUI/BottomSheet_ios' - multilinecommandbar_ios.dependency 'MicrosoftFluentUI/CommandBar_ios' - multilinecommandbar_ios.dependency 'MicrosoftFluentUI/Core_ios' - multilinecommandbar_ios.source_files = ["ios/FluentUI/MultilineCommandBar/**/*.{swift,h}"] + multilinecommandbar_ios.dependency "#{s.name}/BottomSheet_ios" + multilinecommandbar_ios.dependency "#{s.name}/CommandBar_ios" + multilinecommandbar_ios.dependency "#{s.name}/Core_ios" + multilinecommandbar_ios.source_files = ["#{ios_root}/#{components_dir}/MultilineCommandBar/**/*.{swift,h}"] end s.subspec 'Navigation_ios' do |navigation_ios| navigation_ios.platform = :ios - navigation_ios.dependency 'MicrosoftFluentUI/ActivityIndicator_ios' - navigation_ios.dependency 'MicrosoftFluentUI/Avatar_ios' - navigation_ios.dependency 'MicrosoftFluentUI/Separator_ios' - navigation_ios.dependency 'MicrosoftFluentUI/TwoLineTitleView_ios' - navigation_ios.preserve_paths = ["ios/FluentUI/Navigation/Navigation.resources.xcfilelist"] - navigation_ios.source_files = ["ios/FluentUI/Navigation/**/*.{swift,h}"] + navigation_ios.dependency "#{s.name}/ActivityIndicator_ios" + navigation_ios.dependency "#{s.name}/Avatar_ios" + navigation_ios.dependency "#{s.name}/Separator_ios" + navigation_ios.dependency "#{s.name}/TwoLineTitleView_ios" + navigation_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Navigation/Navigation.resources.xcfilelist"] + navigation_ios.source_files = ["#{ios_root}/#{components_dir}/Navigation/**/*.{swift,h}"] end s.subspec 'Notification_ios' do |notification_ios| notification_ios.platform = :ios - notification_ios.dependency 'MicrosoftFluentUI/Obscurable_ios' - notification_ios.dependency 'MicrosoftFluentUI/Label_ios' - notification_ios.preserve_paths = ["ios/FluentUI/Notification/Notification.resources.xcfilelist"] - notification_ios.source_files = ["ios/FluentUI/Notification/**/*.{swift,h}"] + notification_ios.dependency "#{s.name}/Obscurable_ios" + notification_ios.dependency "#{s.name}/Label_ios" + notification_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Notification/Notification.resources.xcfilelist"] + notification_ios.source_files = ["#{ios_root}/#{components_dir}/Notification/**/*.{swift,h}"] end s.subspec 'Obscurable_ios' do |obscurable_ios| obscurable_ios.platform = :ios - obscurable_ios.dependency 'MicrosoftFluentUI/Core_ios' - obscurable_ios.source_files = ["ios/FluentUI/Obscurable/**/*.{swift,h}"] + obscurable_ios.dependency "#{s.name}/Core_ios" + obscurable_ios.source_files = ["#{ios_root}/#{components_dir}/Obscurable/**/*.{swift,h}"] end s.subspec 'OtherCells_ios' do |othercells_ios| othercells_ios.platform = :ios - othercells_ios.dependency 'MicrosoftFluentUI/ActivityIndicator_ios' - othercells_ios.dependency 'MicrosoftFluentUI/TableView_ios' - othercells_ios.preserve_paths = ["ios/FluentUI/Other Cells/OtherCells.resources.xcfilelist"] - othercells_ios.source_files = ["ios/FluentUI/Other Cells/**/*.{swift,h}"] + othercells_ios.dependency "#{s.name}/ActivityIndicator_ios" + othercells_ios.dependency "#{s.name}/TableView_ios" + othercells_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Other Cells/OtherCells.resources.xcfilelist"] + othercells_ios.source_files = ["#{ios_root}/#{components_dir}/Other Cells/**/*.{swift,h}"] end s.subspec 'PeoplePicker_ios' do |peoplepicker_ios| peoplepicker_ios.platform = :ios - peoplepicker_ios.dependency 'MicrosoftFluentUI/Avatar_ios' - peoplepicker_ios.dependency 'MicrosoftFluentUI/BadgeField_ios' - peoplepicker_ios.dependency 'MicrosoftFluentUI/Separator_ios' - peoplepicker_ios.dependency 'MicrosoftFluentUI/OtherCells_ios' - peoplepicker_ios.source_files = ["ios/FluentUI/People Picker/**/*.{swift,h}"] + peoplepicker_ios.dependency "#{s.name}/Avatar_ios" + peoplepicker_ios.dependency "#{s.name}/BadgeField_ios" + peoplepicker_ios.dependency "#{s.name}/Separator_ios" + peoplepicker_ios.dependency "#{s.name}/OtherCells_ios" + peoplepicker_ios.source_files = ["#{ios_root}/#{components_dir}/People Picker/**/*.{swift,h}"] end s.subspec 'PersonaButton_ios' do |personaButton_ios| personaButton_ios.platform = :ios - personaButton_ios.dependency 'MicrosoftFluentUI/Avatar_ios' - personaButton_ios.source_files = ["ios/FluentUI/PersonaButton/**/*.{swift,h}"] + personaButton_ios.dependency "#{s.name}/Avatar_ios" + personaButton_ios.source_files = ["#{ios_root}/#{components_dir}/PersonaButton/**/*.{swift,h}"] end s.subspec 'PersonaButtonCarousel_ios' do |personaButtonCarousel_ios| personaButtonCarousel_ios.platform = :ios - personaButtonCarousel_ios.dependency 'MicrosoftFluentUI/PersonaButton_ios' - personaButtonCarousel_ios.source_files = ["ios/FluentUI/PersonaButtonCarousel/**/*.{swift,h}"] + personaButtonCarousel_ios.dependency "#{s.name}/PersonaButton_ios" + personaButtonCarousel_ios.source_files = ["#{ios_root}/#{components_dir}/PersonaButtonCarousel/**/*.{swift,h}"] end s.subspec 'PillButtonBar_ios' do |pillbuttonbar_ios| pillbuttonbar_ios.platform = :ios - pillbuttonbar_ios.dependency 'MicrosoftFluentUI/Core_ios' - pillbuttonbar_ios.source_files = ["ios/FluentUI/Pill Button Bar/**/*.{swift,h}"] + pillbuttonbar_ios.dependency "#{s.name}/Core_ios" + pillbuttonbar_ios.source_files = ["#{ios_root}/#{components_dir}/Pill Button Bar/**/*.{swift,h}"] end s.subspec 'PopupMenu_ios' do |popupmenu_ios| popupmenu_ios.platform = :ios - popupmenu_ios.dependency 'MicrosoftFluentUI/Drawer_ios' - popupmenu_ios.dependency 'MicrosoftFluentUI/Label_ios' - popupmenu_ios.dependency 'MicrosoftFluentUI/Separator_ios' - popupmenu_ios.dependency 'MicrosoftFluentUI/TableView_ios' - popupmenu_ios.source_files = ["ios/FluentUI/Popup Menu/**/*.{swift,h}"] + popupmenu_ios.dependency "#{s.name}/Drawer_ios" + popupmenu_ios.dependency "#{s.name}/Label_ios" + popupmenu_ios.dependency "#{s.name}/Separator_ios" + popupmenu_ios.dependency "#{s.name}/TableView_ios" + popupmenu_ios.source_files = ["#{ios_root}/#{components_dir}/Popup Menu/**/*.{swift,h}"] end s.subspec 'Presenters_ios' do |presenters_ios| presenters_ios.platform = :ios - presenters_ios.dependency 'MicrosoftFluentUI/Obscurable_ios' - presenters_ios.source_files = ["ios/FluentUI/Presenters/**/*.{swift,h}"] + presenters_ios.dependency "#{s.name}/Obscurable_ios" + presenters_ios.source_files = ["#{ios_root}/#{components_dir}/Presenters/**/*.{swift,h}"] end s.subspec 'ResizingHandleView_ios' do |resizinghandleview_ios| resizinghandleview_ios.platform = :ios - resizinghandleview_ios.dependency 'MicrosoftFluentUI/Core_ios' - resizinghandleview_ios.source_files = ["ios/FluentUI/ResizingHandleView/**/*.{swift,h}"] + resizinghandleview_ios.dependency "#{s.name}/Core_ios" + resizinghandleview_ios.source_files = ["#{ios_root}/#{components_dir}/ResizingHandleView/**/*.{swift,h}"] end s.subspec 'SegmentedControl_ios' do |segmentedcontrol_ios| segmentedcontrol_ios.platform = :ios - segmentedcontrol_ios.dependency 'MicrosoftFluentUI/Separator_ios' - segmentedcontrol_ios.source_files = ["ios/FluentUI/SegmentedControl/**/*.{swift,h}"] + segmentedcontrol_ios.dependency "#{s.name}/Separator_ios" + segmentedcontrol_ios.source_files = ["#{ios_root}/#{components_dir}/SegmentedControl/**/*.{swift,h}"] end s.subspec 'Separator_ios' do |separator_ios| separator_ios.platform = :ios - separator_ios.dependency 'MicrosoftFluentUI/Core_ios' - separator_ios.source_files = ["ios/FluentUI/Separator/**/*.{swift,h}"] + separator_ios.dependency "#{s.name}/Core_ios" + separator_ios.source_files = ["#{ios_root}/#{components_dir}/Separator/**/*.{swift,h}"] end s.subspec 'Shimmer_ios' do |shimmer_ios| shimmer_ios.platform = :ios - shimmer_ios.dependency 'MicrosoftFluentUI/Core_ios' - shimmer_ios.dependency 'MicrosoftFluentUI/Utilities_ios' - shimmer_ios.source_files = ["ios/FluentUI/Shimmer/**/*.{swift,h}"] + shimmer_ios.dependency "#{s.name}/Core_ios" + shimmer_ios.source_files = ["#{ios_root}/#{components_dir}/Shimmer/**/*.{swift,h}"] end s.subspec 'TabBar_ios' do |tabbar_ios| tabbar_ios.platform = :ios - tabbar_ios.dependency 'MicrosoftFluentUI/Avatar_ios' - tabbar_ios.dependency 'MicrosoftFluentUI/Label_ios' - tabbar_ios.dependency 'MicrosoftFluentUI/Separator_ios' - tabbar_ios.source_files = ["ios/FluentUI/Tab Bar/**/*.{swift,h}"] + tabbar_ios.dependency "#{s.name}/Avatar_ios" + tabbar_ios.dependency "#{s.name}/Label_ios" + tabbar_ios.dependency "#{s.name}/Separator_ios" + tabbar_ios.source_files = ["#{ios_root}/#{components_dir}/Tab Bar/**/*.{swift,h}"] end s.subspec 'TableView_ios' do |tableview_ios| tableview_ios.platform = :ios - tableview_ios.dependency 'MicrosoftFluentUI/Label_ios' - tableview_ios.dependency 'MicrosoftFluentUI/Separator_ios' - tableview_ios.dependency 'MicrosoftFluentUI/TableViewListShared_ios' - tableview_ios.preserve_paths = ["ios/FluentUI/Table View/TableView.resources.xcfilelist"] - tableview_ios.source_files = ["ios/FluentUI/Table View/**/*.{swift,h}"] + tableview_ios.dependency "#{s.name}/Label_ios" + tableview_ios.dependency "#{s.name}/Separator_ios" + tableview_ios.dependency "#{s.name}/TableViewListShared_ios" + tableview_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Table View/TableView.resources.xcfilelist"] + tableview_ios.source_files = ["#{ios_root}/#{components_dir}/Table View/**/*.{swift,h}"] end s.subspec 'TableViewListShared_ios' do |tableviewlistshared_ios| tableviewlistshared_ios.platform = :ios - tableviewlistshared_ios.dependency 'MicrosoftFluentUI/Core_ios' - tableviewlistshared_ios.preserve_paths = ["ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist"] - tableviewlistshared_ios.source_files = ["ios/FluentUI/TableViewListShared/**/*.{swift,h}"] + tableviewlistshared_ios.dependency "#{s.name}/Core_ios" + tableviewlistshared_ios.preserve_paths = ["#{ios_root}/#{components_dir}/TableViewListShared/TableViewListShared.resources.xcfilelist"] + tableviewlistshared_ios.source_files = ["#{ios_root}/#{components_dir}/TableViewListShared/**/*.{swift,h}"] end s.subspec 'TextField_ios' do |textfield_ios| textfield_ios.platform = :ios - textfield_ios.dependency 'MicrosoftFluentUI/Button_ios' - textfield_ios.dependency 'MicrosoftFluentUI/Label_ios' - textfield_ios.dependency 'MicrosoftFluentUI/Separator_ios' - textfield_ios.preserve_paths = ["ios/FluentUI/TextField/TextField.resources.xcfilelist"] - textfield_ios.source_files = ["ios/FluentUI/TextField/**/*.{swift,h}"] + textfield_ios.dependency "#{s.name}/Button_ios" + textfield_ios.dependency "#{s.name}/Label_ios" + textfield_ios.dependency "#{s.name}/Separator_ios" + textfield_ios.preserve_paths = ["#{ios_root}/#{components_dir}/TextField/TextField.resources.xcfilelist"] + textfield_ios.source_files = ["#{ios_root}/#{components_dir}/TextField/**/*.{swift,h}"] end s.subspec 'Tooltip_ios' do |tooltip_ios| tooltip_ios.platform = :ios - tooltip_ios.dependency 'MicrosoftFluentUI/Label_ios' - tooltip_ios.dependency 'MicrosoftFluentUI/TouchForwardingView_ios' - tooltip_ios.preserve_paths = ["ios/FluentUI/Tooltip/Tooltip.resources.xcfilelist"] - tooltip_ios.source_files = ["ios/FluentUI/Tooltip/**/*.{swift,h}"] + tooltip_ios.dependency "#{s.name}/Label_ios" + tooltip_ios.dependency "#{s.name}/TouchForwardingView_ios" + tooltip_ios.preserve_paths = ["#{ios_root}/#{components_dir}/Tooltip/Tooltip.resources.xcfilelist"] + tooltip_ios.source_files = ["#{ios_root}/#{components_dir}/Tooltip/**/*.{swift,h}"] end s.subspec 'TouchForwardingView_ios' do |touchforwardingview_ios| touchforwardingview_ios.platform = :ios - touchforwardingview_ios.dependency 'MicrosoftFluentUI/Core_ios' - touchforwardingview_ios.source_files = ["ios/FluentUI/TouchForwardingView/**/*.{swift,h}"] + touchforwardingview_ios.dependency "#{s.name}/Core_ios" + touchforwardingview_ios.source_files = ["#{ios_root}/#{components_dir}/TouchForwardingView/**/*.{swift,h}"] end s.subspec 'TwoLineTitleView_ios' do |twoLinetitleview_ios| twoLinetitleview_ios.platform = :ios - twoLinetitleview_ios.dependency 'MicrosoftFluentUI/EasyTapButton_ios' - twoLinetitleview_ios.dependency 'MicrosoftFluentUI/Label_ios' - twoLinetitleview_ios.preserve_paths = ["ios/FluentUI/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist"] - twoLinetitleview_ios.source_files = ["ios/FluentUI/TwoLineTitleView/**/*.{swift,h}"] - end - - s.subspec 'Utilities_ios' do |utilities_ios| - utilities_ios.platform = :ios - utilities_ios.source_files = ["ios/FluentUI/Utilities/**/*.{swift,h}"] + twoLinetitleview_ios.dependency "#{s.name}/EasyTapButton_ios" + twoLinetitleview_ios.dependency "#{s.name}/Label_ios" + twoLinetitleview_ios.preserve_paths = ["#{ios_root}/#{components_dir}/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist"] + twoLinetitleview_ios.source_files = ["#{ios_root}/#{components_dir}/TwoLineTitleView/**/*.{swift,h}"] end @@ -365,58 +358,58 @@ fi', :execution_position => :before_compile } s.subspec 'Appearance_mac' do |appearance_mac| appearance_mac.platform = :osx - appearance_mac.source_files = ["macos/FluentUI/Appearance/**/*.{swift,h}"] + appearance_mac.source_files = ["#{macos_root}/#{components_dir}/Appearance/**/*.{swift,h}"] end s.subspec 'AvatarView_mac' do |avatarview_mac| avatarview_mac.platform = :osx - avatarview_mac.dependency 'MicrosoftFluentUI/Core_mac' - avatarview_mac.dependency 'MicrosoftFluentUI/DynamicColor_mac' - avatarview_mac.source_files = ["macos/FluentUI/AvatarView/**/*.{swift,h}"] + avatarview_mac.dependency "#{s.name}/Core_mac" + avatarview_mac.dependency "#{s.name}/DynamicColor_mac" + avatarview_mac.source_files = ["#{macos_root}/#{components_dir}/AvatarView/**/*.{swift,h}"] end s.subspec 'BadgeView_mac' do |badgeview_mac| badgeview_mac.platform = :osx - badgeview_mac.dependency 'MicrosoftFluentUI/Core_mac' - badgeview_mac.dependency 'MicrosoftFluentUI/DynamicColor_mac' - badgeview_mac.source_files = ["macos/FluentUI/Badge/**/*.{swift,h}"] + badgeview_mac.dependency "#{s.name}/Core_mac" + badgeview_mac.dependency "#{s.name}/DynamicColor_mac" + badgeview_mac.source_files = ["#{macos_root}/#{components_dir}/Badge/**/*.{swift,h}"] end s.subspec 'Button_mac' do |button_mac| button_mac.platform = :osx - button_mac.dependency 'MicrosoftFluentUI/Core_mac' - button_mac.source_files = ["macos/FluentUI/Button/**/*.{swift,h}"] + button_mac.dependency "#{s.name}/Core_mac" + button_mac.source_files = ["#{macos_root}/#{components_dir}/Button/**/*.{swift,h}"] end s.subspec 'Core_mac' do |core_mac| core_mac.platform = :osx - core_mac.resource_bundle = { 'FluentUIResources-macos' => ["macos/FluentUI/**/*.{storyboard,xib,xcassets,strings,stringsdict}"] } - core_mac.source_files = ["macos/FluentUI/Core/**/*.{swift,h}"] + core_mac.resource_bundle = { 'FluentUIResources-macos' => ["#{macos_root}/#{resources_dir}/**/*.{storyboard,xib,xcassets,strings,stringsdict}"] } + core_mac.source_files = ["#{macos_root}/#{core_dir}/**/*.{swift,h}"] end s.subspec 'DatePicker_mac' do |datepicker_mac| datepicker_mac.platform = :osx - datepicker_mac.dependency 'MicrosoftFluentUI/Core_mac' - datepicker_mac.dependency 'MicrosoftFluentUI/Appearance_mac' - datepicker_mac.source_files = ["macos/FluentUI/DatePicker/**/*.{swift,h}"] + datepicker_mac.dependency "#{s.name}/Core_mac" + datepicker_mac.dependency "#{s.name}/Appearance_mac" + datepicker_mac.source_files = ["#{macos_root}/#{components_dir}/DatePicker/**/*.{swift,h}"] end s.subspec 'DynamicColor_mac' do |dynamiccolor_mac| dynamiccolor_mac.platform = :osx - dynamiccolor_mac.dependency 'MicrosoftFluentUI/Appearance_mac' - dynamiccolor_mac.source_files = ["macos/FluentUI/DynamicColor/**/*.{swift,h}"] + dynamiccolor_mac.dependency "#{s.name}/Appearance_mac" + dynamiccolor_mac.source_files = ["#{macos_root}/#{components_dir}/DynamicColor/**/*.{swift,h}"] end s.subspec 'Link_mac' do |link_mac| link_mac.platform = :osx - link_mac.dependency 'MicrosoftFluentUI/Core_mac' - link_mac.source_files = ["macos/FluentUI/Link/**/*.{swift,h}"] + link_mac.dependency "#{s.name}/Core_mac" + link_mac.source_files = ["#{macos_root}/#{components_dir}/Link/**/*.{swift,h}"] end s.subspec 'Separator_mac' do |separator_mac| separator_mac.platform = :osx - separator_mac.dependency 'MicrosoftFluentUI/Core_mac' - separator_mac.source_files = ["macos/FluentUI/Separator/**/*.{swift,h}"] + separator_mac.dependency "#{s.name}/Core_mac" + separator_mac.source_files = ["#{macos_root}/#{components_dir}/Separator/**/*.{swift,h}"] end end diff --git a/Package.swift b/Package.swift index c5024b99a7..570869c402 100644 --- a/Package.swift +++ b/Package.swift @@ -2,6 +2,48 @@ import PackageDescription +let iOSPlatforms: [Platform] = [.iOS, .visionOS, .macCatalyst] +let macOSPlatforms: [Platform] = [.macOS] + +let targets: [Target] = [ + .target( + name: "FluentUI", + dependencies: [ + .targetItem(name: "FluentUI_ios", condition: .when(platforms: iOSPlatforms)), + .targetItem(name: "FluentUI_macos", condition: .when(platforms: macOSPlatforms)) + ], + path: "Sources/FluentUI" + ), + .target( + name: "FluentUI_ios", + path: "Sources/FluentUI_iOS", + resources: [ + .copy("Resources/Version.plist") + ] + ), + .target( + name: "FluentUI_macos", + path: "Sources/FluentUI_macOS" + ) +] + +let testTargets: [Target] = [ + .testTarget( + name: "FluentUI_iOS_Tests", + dependencies: [ + .target(name: "FluentUI_ios", condition: .when(platforms: iOSPlatforms)), + ], + path: "Tests/FluentUI_iOS_Tests" + ), + .testTarget( + name: "FluentUI_macOS_Tests", + dependencies: [ + .target(name: "FluentUI_macos", condition: .when(platforms: macOSPlatforms)) + ], + path: "Tests/FluentUI_macOS_Tests" + ) +] + let package = Package( name: "FluentUI", defaultLocalization: "en", @@ -19,58 +61,5 @@ let package = Package( ] ) ], - targets: [ - .target( - name: "FluentUI", - dependencies: [ - .target(name: "FluentUI_ios", condition: .when(platforms: [.iOS, .visionOS, .macCatalyst])), - .target(name: "FluentUI_macos", condition: .when(platforms: [.macOS])) - ], - path: "public" - ), - .target( - name: "FluentUI_ios", - path: "ios/FluentUI", - exclude: [ - "Avatar/Avatar.resources.xcfilelist", - "BarButtonItems/BarButtonItems.resources.xcfilelist", - "Bottom Commanding/BottomCommanding.resources.xcfilelist", - "Core/Core.resources.xcfilelist", - "HUD/HUD.resources.xcfilelist", - "Navigation/Navigation.resources.xcfilelist", - "Notification/Notification.resources.xcfilelist", - "Other Cells/OtherCells.resources.xcfilelist", - "Resources/Localization/CultureMapping.json", - "Table View/TableView.resources.xcfilelist", - "TableViewListShared/TableViewListShared.resources.xcfilelist", - "TextField/TextField.resources.xcfilelist", - "Tooltip/Tooltip.resources.xcfilelist", - "TwoLineTitleView/TwoLineTitleView.resources.xcfilelist", - ], - resources: [ - .copy("Resources/Version.plist") - ] - ), - .testTarget( - name: "FluentUI_iOS_Tests", - dependencies: [ - .target(name: "FluentUI_ios", condition: .when(platforms: [.iOS, .visionOS, .macCatalyst])), - ], - path: "ios/FluentUI.Tests" - ), - .target( - name: "FluentUI_macos", - path: "macos/FluentUI", - exclude: [ - "FluentUI-Info.plist" - ] - ), - .testTarget( - name: "FluentUI_macOS_Tests", - dependencies: [ - .target(name: "FluentUI_macos", condition: .when(platforms: [.macOS])) - ], - path: "macos/FluentUIUnitTest" - ) - ] + targets: targets + testTargets ) diff --git a/README.md b/README.md index 205572ad65..a2fbd2dcc4 100644 --- a/README.md +++ b/README.md @@ -37,18 +37,6 @@ To integrate FluentUI into your Xcode project using CocoaPods, specify it in you pod 'MicrosoftFluentUI', '~> X.X.X' ``` -#### Manual installation - -- Download the latest changes from the [FluentUI for Apple](https://github.com/microsoft/fluentui-apple) repository. -- Move the `fluentui-apple` folder into your project folder. -- For iOS platform - - Move `ios/FluentUI.xcodeproj` into your Xcode project. - - In Xcode select your project -> your target -> "General" -> "Frameworks, Libraries, and Embedded Content" -> add `libFluentUI.a`. - - In Xcode select your project -> your target -> "Build Phases" -> "Copy Bundle Resources" -> add `FluentUIResources-ios.bundle`. -- For macOS platform - - Move `macos/xcode/FluentUI.xcodeproj` into your Xcode project. - - In Xcode select your project -> your target -> "General" -> "Frameworks, Libraries, and Embedded Content" -> add `FluentUI.framework`. - ### Import and use FluentUI After the framework has been added you can import the module to use it: @@ -63,7 +51,7 @@ For Objective-C ``` ## List of Available Controls -For more platform-specific information, please see [the iOS readme file](ios/README.md) and the [the macOS readme file](macos/README.md). +For more platform-specific information, please see [the iOS readme file](Sources/FluentUI_iOS/README.md) and the [the macOS readme file](Sources/FluentUI_macOS/README.md). ## Changelog diff --git a/public/FluentUI.swift b/Sources/FluentUI/FluentUI.swift similarity index 100% rename from public/FluentUI.swift rename to Sources/FluentUI/FluentUI.swift diff --git a/ios/CONTRIBUTING.md b/Sources/FluentUI_iOS/CONTRIBUTING.md similarity index 91% rename from ios/CONTRIBUTING.md rename to Sources/FluentUI_iOS/CONTRIBUTING.md index c70e3875be..d7b20adae2 100644 --- a/ios/CONTRIBUTING.md +++ b/Sources/FluentUI_iOS/CONTRIBUTING.md @@ -6,7 +6,7 @@ Included in this repository is a demo that showcases all the currently available To build and run the demo app follow these steps: - Clone the [FluentUI](https://github.com/microsoft/fluentui-apple) repository. -- Open `ios/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. +- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose an iOS Simulator(or Device if you have your own device provisioning profile) to deploy to. - Make sure Swift Package Manager has download 2 dependencies(appcenter-sdk-apple and PLCrashReporter) for demo app. - Build and Run the demo app @@ -19,7 +19,7 @@ To build and run the demo app follow these steps: - Create and add a demo controller in the Fluent demo app under [Demos](FluentUI.Demo/FluentUI.Demo/Demos) (ex. FooDemoController.swift) - Add FooDemoController.swift to Fluent Demo xcode project (All the files are in alphabetical order) - Make sure it is part of FluentUI.Demo Target membership -- Add your FooDemoController to the list of [DemoDescriptor](https://github.com/microsoft/fluentui-apple/blob/02b1c3fe601b793cb6cfd24813e11d92420e0d77/ios/FluentUI.Demo/FluentUI.Demo/Demos.swift#L30) +- Add your FooDemoController to the list of [DemoDescriptor](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos.swift) - Add a new cocopod subspec in [MicrosoftFluentUI.podspec](https://github.com/microsoft/fluentui-apple/blob/main/MicrosoftFluentUI.podspec) with required dependencies. "s.subspec 'Foo_ios' do |foo_ios|" - Verify by "pod spec lint" For more info on [cocoapod](https://cocoapods.org) - Build and Run diff --git a/ios/FluentUI/ActivityIndicator/ActivityIndicator.swift b/Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicator.swift similarity index 100% rename from ios/FluentUI/ActivityIndicator/ActivityIndicator.swift rename to Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicator.swift diff --git a/ios/FluentUI/ActivityIndicator/ActivityIndicatorModifiers.swift b/Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicatorModifiers.swift similarity index 100% rename from ios/FluentUI/ActivityIndicator/ActivityIndicatorModifiers.swift rename to Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicatorModifiers.swift diff --git a/ios/FluentUI/ActivityIndicator/ActivityIndicatorTokenSet.swift b/Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicatorTokenSet.swift similarity index 100% rename from ios/FluentUI/ActivityIndicator/ActivityIndicatorTokenSet.swift rename to Sources/FluentUI_iOS/Components/ActivityIndicator/ActivityIndicatorTokenSet.swift diff --git a/ios/FluentUI/ActivityIndicator/MSFActivityIndicator.swift b/Sources/FluentUI_iOS/Components/ActivityIndicator/MSFActivityIndicator.swift similarity index 100% rename from ios/FluentUI/ActivityIndicator/MSFActivityIndicator.swift rename to Sources/FluentUI_iOS/Components/ActivityIndicator/MSFActivityIndicator.swift diff --git a/ios/FluentUI/Avatar/Avatar.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Avatar/Avatar.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Avatar/Avatar.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Avatar/Avatar.resources.xcfilelist diff --git a/ios/FluentUI/Avatar/Avatar.swift b/Sources/FluentUI_iOS/Components/Avatar/Avatar.swift similarity index 100% rename from ios/FluentUI/Avatar/Avatar.swift rename to Sources/FluentUI_iOS/Components/Avatar/Avatar.swift diff --git a/ios/FluentUI/Avatar/AvatarModifiers.swift b/Sources/FluentUI_iOS/Components/Avatar/AvatarModifiers.swift similarity index 100% rename from ios/FluentUI/Avatar/AvatarModifiers.swift rename to Sources/FluentUI_iOS/Components/Avatar/AvatarModifiers.swift diff --git a/ios/FluentUI/Avatar/AvatarTokenSet.swift b/Sources/FluentUI_iOS/Components/Avatar/AvatarTokenSet.swift similarity index 100% rename from ios/FluentUI/Avatar/AvatarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Avatar/AvatarTokenSet.swift diff --git a/ios/FluentUI/Avatar/MSFAvatar.swift b/Sources/FluentUI_iOS/Components/Avatar/MSFAvatar.swift similarity index 100% rename from ios/FluentUI/Avatar/MSFAvatar.swift rename to Sources/FluentUI_iOS/Components/Avatar/MSFAvatar.swift diff --git a/ios/FluentUI/Avatar/MSFAvatarPresence.swift b/Sources/FluentUI_iOS/Components/Avatar/MSFAvatarPresence.swift similarity index 100% rename from ios/FluentUI/Avatar/MSFAvatarPresence.swift rename to Sources/FluentUI_iOS/Components/Avatar/MSFAvatarPresence.swift diff --git a/ios/FluentUI/Avatar/Persona.swift b/Sources/FluentUI_iOS/Components/Avatar/Persona.swift similarity index 100% rename from ios/FluentUI/Avatar/Persona.swift rename to Sources/FluentUI_iOS/Components/Avatar/Persona.swift diff --git a/ios/FluentUI/Avatar/ShapeCutout.swift b/Sources/FluentUI_iOS/Components/Avatar/ShapeCutout.swift similarity index 100% rename from ios/FluentUI/Avatar/ShapeCutout.swift rename to Sources/FluentUI_iOS/Components/Avatar/ShapeCutout.swift diff --git a/ios/FluentUI/AvatarGroup/AvatarGroup.swift b/Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroup.swift similarity index 100% rename from ios/FluentUI/AvatarGroup/AvatarGroup.swift rename to Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroup.swift diff --git a/ios/FluentUI/AvatarGroup/AvatarGroupModifiers.swift b/Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroupModifiers.swift similarity index 100% rename from ios/FluentUI/AvatarGroup/AvatarGroupModifiers.swift rename to Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroupModifiers.swift diff --git a/ios/FluentUI/AvatarGroup/AvatarGroupTokenSet.swift b/Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroupTokenSet.swift similarity index 100% rename from ios/FluentUI/AvatarGroup/AvatarGroupTokenSet.swift rename to Sources/FluentUI_iOS/Components/AvatarGroup/AvatarGroupTokenSet.swift diff --git a/ios/FluentUI/AvatarGroup/MSFAvatarGroup.swift b/Sources/FluentUI_iOS/Components/AvatarGroup/MSFAvatarGroup.swift similarity index 100% rename from ios/FluentUI/AvatarGroup/MSFAvatarGroup.swift rename to Sources/FluentUI_iOS/Components/AvatarGroup/MSFAvatarGroup.swift diff --git a/ios/FluentUI/Badge Field/BadgeField.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift similarity index 100% rename from ios/FluentUI/Badge Field/BadgeField.swift rename to Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift diff --git a/ios/FluentUI/Badge Field/BadgeFieldTokenSet.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeFieldTokenSet.swift similarity index 100% rename from ios/FluentUI/Badge Field/BadgeFieldTokenSet.swift rename to Sources/FluentUI_iOS/Components/Badge Field/BadgeFieldTokenSet.swift diff --git a/ios/FluentUI/Badge Field/BadgeStringExtractor.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeStringExtractor.swift similarity index 100% rename from ios/FluentUI/Badge Field/BadgeStringExtractor.swift rename to Sources/FluentUI_iOS/Components/Badge Field/BadgeStringExtractor.swift diff --git a/ios/FluentUI/Badge Field/BadgeView.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift similarity index 100% rename from ios/FluentUI/Badge Field/BadgeView.swift rename to Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift diff --git a/ios/FluentUI/Badge Field/BadgeViewTokenSet.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeViewTokenSet.swift similarity index 100% rename from ios/FluentUI/Badge Field/BadgeViewTokenSet.swift rename to Sources/FluentUI_iOS/Components/Badge Field/BadgeViewTokenSet.swift diff --git a/ios/FluentUI/BarButtonItems/BarButtonItems.resources.xcfilelist b/Sources/FluentUI_iOS/Components/BarButtonItems/BarButtonItems.resources.xcfilelist similarity index 100% rename from ios/FluentUI/BarButtonItems/BarButtonItems.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/BarButtonItems/BarButtonItems.resources.xcfilelist diff --git a/ios/FluentUI/BarButtonItems/BarButtonItems.swift b/Sources/FluentUI_iOS/Components/BarButtonItems/BarButtonItems.swift similarity index 100% rename from ios/FluentUI/BarButtonItems/BarButtonItems.swift rename to Sources/FluentUI_iOS/Components/BarButtonItems/BarButtonItems.swift diff --git a/ios/FluentUI/Bottom Commanding/BottomCommanding.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommanding.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Bottom Commanding/BottomCommanding.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommanding.resources.xcfilelist diff --git a/ios/FluentUI/Bottom Commanding/BottomCommandingController.swift b/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift similarity index 100% rename from ios/FluentUI/Bottom Commanding/BottomCommandingController.swift rename to Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift diff --git a/ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift b/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingTokenSet.swift similarity index 100% rename from ios/FluentUI/Bottom Commanding/BottomCommandingTokenSet.swift rename to Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingTokenSet.swift diff --git a/ios/FluentUI/Bottom Commanding/CommandingItem.swift b/Sources/FluentUI_iOS/Components/Bottom Commanding/CommandingItem.swift similarity index 100% rename from ios/FluentUI/Bottom Commanding/CommandingItem.swift rename to Sources/FluentUI_iOS/Components/Bottom Commanding/CommandingItem.swift diff --git a/ios/FluentUI/Bottom Commanding/CommandingSection.swift b/Sources/FluentUI_iOS/Components/Bottom Commanding/CommandingSection.swift similarity index 100% rename from ios/FluentUI/Bottom Commanding/CommandingSection.swift rename to Sources/FluentUI_iOS/Components/Bottom Commanding/CommandingSection.swift diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetController.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift similarity index 100% rename from ios/FluentUI/Bottom Sheet/BottomSheetController.swift rename to Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetPassthroughView.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetPassthroughView.swift similarity index 100% rename from ios/FluentUI/Bottom Sheet/BottomSheetPassthroughView.swift rename to Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetPassthroughView.swift diff --git a/ios/FluentUI/Bottom Sheet/BottomSheetTokenSet.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetTokenSet.swift similarity index 100% rename from ios/FluentUI/Bottom Sheet/BottomSheetTokenSet.swift rename to Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetTokenSet.swift diff --git a/ios/FluentUI/Bottom Sheet/ContentHeightResolutionContext.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/ContentHeightResolutionContext.swift similarity index 100% rename from ios/FluentUI/Bottom Sheet/ContentHeightResolutionContext.swift rename to Sources/FluentUI_iOS/Components/Bottom Sheet/ContentHeightResolutionContext.swift diff --git a/ios/FluentUI/Button/Button.swift b/Sources/FluentUI_iOS/Components/Button/Button.swift similarity index 100% rename from ios/FluentUI/Button/Button.swift rename to Sources/FluentUI_iOS/Components/Button/Button.swift diff --git a/ios/FluentUI/Button/ButtonTokenSet.swift b/Sources/FluentUI_iOS/Components/Button/ButtonTokenSet.swift similarity index 100% rename from ios/FluentUI/Button/ButtonTokenSet.swift rename to Sources/FluentUI_iOS/Components/Button/ButtonTokenSet.swift diff --git a/ios/FluentUI/Button/FluentButtonStyle.swift b/Sources/FluentUI_iOS/Components/Button/FluentButtonStyle.swift similarity index 100% rename from ios/FluentUI/Button/FluentButtonStyle.swift rename to Sources/FluentUI_iOS/Components/Button/FluentButtonStyle.swift diff --git a/ios/FluentUI/Button/FluentButtonToggleStyle.swift b/Sources/FluentUI_iOS/Components/Button/FluentButtonToggleStyle.swift similarity index 100% rename from ios/FluentUI/Button/FluentButtonToggleStyle.swift rename to Sources/FluentUI_iOS/Components/Button/FluentButtonToggleStyle.swift diff --git a/ios/FluentUI/Calendar/AccessibilityContainerView.swift b/Sources/FluentUI_iOS/Components/Calendar/AccessibilityContainerView.swift similarity index 100% rename from ios/FluentUI/Calendar/AccessibilityContainerView.swift rename to Sources/FluentUI_iOS/Components/Calendar/AccessibilityContainerView.swift diff --git a/ios/FluentUI/Calendar/AccessibleViewDelegate.swift b/Sources/FluentUI_iOS/Components/Calendar/AccessibleViewDelegate.swift similarity index 100% rename from ios/FluentUI/Calendar/AccessibleViewDelegate.swift rename to Sources/FluentUI_iOS/Components/Calendar/AccessibleViewDelegate.swift diff --git a/ios/FluentUI/Calendar/Calendar+Extensions.swift b/Sources/FluentUI_iOS/Components/Calendar/Calendar+Extensions.swift similarity index 100% rename from ios/FluentUI/Calendar/Calendar+Extensions.swift rename to Sources/FluentUI_iOS/Components/Calendar/Calendar+Extensions.swift diff --git a/ios/FluentUI/Calendar/CalendarConfiguration.swift b/Sources/FluentUI_iOS/Components/Calendar/CalendarConfiguration.swift similarity index 100% rename from ios/FluentUI/Calendar/CalendarConfiguration.swift rename to Sources/FluentUI_iOS/Components/Calendar/CalendarConfiguration.swift diff --git a/ios/FluentUI/Calendar/CalendarView.swift b/Sources/FluentUI_iOS/Components/Calendar/CalendarView.swift similarity index 100% rename from ios/FluentUI/Calendar/CalendarView.swift rename to Sources/FluentUI_iOS/Components/Calendar/CalendarView.swift diff --git a/ios/FluentUI/Calendar/CalendarViewDataSource.swift b/Sources/FluentUI_iOS/Components/Calendar/CalendarViewDataSource.swift similarity index 100% rename from ios/FluentUI/Calendar/CalendarViewDataSource.swift rename to Sources/FluentUI_iOS/Components/Calendar/CalendarViewDataSource.swift diff --git a/ios/FluentUI/Calendar/CalendarViewLayout.swift b/Sources/FluentUI_iOS/Components/Calendar/CalendarViewLayout.swift similarity index 100% rename from ios/FluentUI/Calendar/CalendarViewLayout.swift rename to Sources/FluentUI_iOS/Components/Calendar/CalendarViewLayout.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewDayCell.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewDayCell.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewDayMonthCell.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayMonthCell.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewDayMonthCell.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayMonthCell.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewDayMonthYearCell.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayMonthYearCell.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewDayMonthYearCell.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayMonthYearCell.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewDayTodayCell.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayTodayCell.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewDayTodayCell.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayTodayCell.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewMonthBannerView.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewMonthBannerView.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewMonthBannerView.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewMonthBannerView.swift diff --git a/ios/FluentUI/Calendar/Views/CalendarViewWeekdayHeadingView.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewWeekdayHeadingView.swift similarity index 100% rename from ios/FluentUI/Calendar/Views/CalendarViewWeekdayHeadingView.swift rename to Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewWeekdayHeadingView.swift diff --git a/ios/FluentUI/Card Nudge/CardNudge.swift b/Sources/FluentUI_iOS/Components/Card Nudge/CardNudge.swift similarity index 100% rename from ios/FluentUI/Card Nudge/CardNudge.swift rename to Sources/FluentUI_iOS/Components/Card Nudge/CardNudge.swift diff --git a/ios/FluentUI/Card Nudge/CardNudgeModifiers.swift b/Sources/FluentUI_iOS/Components/Card Nudge/CardNudgeModifiers.swift similarity index 100% rename from ios/FluentUI/Card Nudge/CardNudgeModifiers.swift rename to Sources/FluentUI_iOS/Components/Card Nudge/CardNudgeModifiers.swift diff --git a/ios/FluentUI/Card Nudge/CardNudgeTokenSet.swift b/Sources/FluentUI_iOS/Components/Card Nudge/CardNudgeTokenSet.swift similarity index 100% rename from ios/FluentUI/Card Nudge/CardNudgeTokenSet.swift rename to Sources/FluentUI_iOS/Components/Card Nudge/CardNudgeTokenSet.swift diff --git a/ios/FluentUI/Card Nudge/MSFCardNudge.swift b/Sources/FluentUI_iOS/Components/Card Nudge/MSFCardNudge.swift similarity index 100% rename from ios/FluentUI/Card Nudge/MSFCardNudge.swift rename to Sources/FluentUI_iOS/Components/Card Nudge/MSFCardNudge.swift diff --git a/ios/FluentUI/Card/CardView.swift b/Sources/FluentUI_iOS/Components/Card/CardView.swift similarity index 100% rename from ios/FluentUI/Card/CardView.swift rename to Sources/FluentUI_iOS/Components/Card/CardView.swift diff --git a/ios/FluentUI/Command Bar/CommandBar.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBar.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift diff --git a/ios/FluentUI/Command Bar/CommandBarButton.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBarButton.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBarButton.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBarButton.swift diff --git a/ios/FluentUI/Command Bar/CommandBarButtonGroupView.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBarButtonGroupView.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBarButtonGroupView.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBarButtonGroupView.swift diff --git a/ios/FluentUI/Command Bar/CommandBarCommandGroupsView.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBarCommandGroupsView.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBarCommandGroupsView.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBarCommandGroupsView.swift diff --git a/ios/FluentUI/Command Bar/CommandBarItem.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBarItem.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBarItem.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBarItem.swift diff --git a/ios/FluentUI/Command Bar/CommandBarTokenSet.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBarTokenSet.swift similarity index 100% rename from ios/FluentUI/Command Bar/CommandBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Command Bar/CommandBarTokenSet.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Picker/DatePickerController.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Picker/DatePickerController.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Picker/DatePickerController.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Picker/DatePickerController.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Picker/DatePickerSelectionManager.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Picker/DatePickerSelectionManager.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Picker/DatePickerSelectionManager.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Picker/DatePickerSelectionManager.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/DateTimePickerController.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/DateTimePickerController.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/DateTimePickerController.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/DateTimePickerController.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerView.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponent.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponent.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponent.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponent.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentTableView.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentTableView.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentTableView.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentTableView.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewDataSource.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewDataSource.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewDataSource.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewDataSource.swift diff --git a/ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewLayout.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewLayout.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewLayout.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewLayout.swift diff --git a/ios/FluentUI/Date Time Pickers/Date+Extensions.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date+Extensions.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/Date+Extensions.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/Date+Extensions.swift diff --git a/ios/FluentUI/Date Time Pickers/DateComponents+Extensions.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/DateComponents+Extensions.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/DateComponents+Extensions.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/DateComponents+Extensions.swift diff --git a/ios/FluentUI/Date Time Pickers/DateTimePicker.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/DateTimePicker.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/DateTimePicker.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/DateTimePicker.swift diff --git a/ios/FluentUI/Date Time Pickers/DayOfMonth.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/DayOfMonth.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/DayOfMonth.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/DayOfMonth.swift diff --git a/ios/FluentUI/Date Time Pickers/GenericDateTimePicker.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/GenericDateTimePicker.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/GenericDateTimePicker.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/GenericDateTimePicker.swift diff --git a/ios/FluentUI/Date Time Pickers/String+Date.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/String+Date.swift similarity index 100% rename from ios/FluentUI/Date Time Pickers/String+Date.swift rename to Sources/FluentUI_iOS/Components/Date Time Pickers/String+Date.swift diff --git a/ios/FluentUI/DotView/DotView.swift b/Sources/FluentUI_iOS/Components/DotView/DotView.swift similarity index 100% rename from ios/FluentUI/DotView/DotView.swift rename to Sources/FluentUI_iOS/Components/DotView/DotView.swift diff --git a/ios/FluentUI/Drawer/CALayer+Extensions.swift b/Sources/FluentUI_iOS/Components/Drawer/CALayer+Extensions.swift similarity index 100% rename from ios/FluentUI/Drawer/CALayer+Extensions.swift rename to Sources/FluentUI_iOS/Components/Drawer/CALayer+Extensions.swift diff --git a/ios/FluentUI/Drawer/DrawerController.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift similarity index 100% rename from ios/FluentUI/Drawer/DrawerController.swift rename to Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift diff --git a/ios/FluentUI/Drawer/DrawerPresentationController.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerPresentationController.swift similarity index 100% rename from ios/FluentUI/Drawer/DrawerPresentationController.swift rename to Sources/FluentUI_iOS/Components/Drawer/DrawerPresentationController.swift diff --git a/ios/FluentUI/Drawer/DrawerShadowView.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerShadowView.swift similarity index 100% rename from ios/FluentUI/Drawer/DrawerShadowView.swift rename to Sources/FluentUI_iOS/Components/Drawer/DrawerShadowView.swift diff --git a/ios/FluentUI/Drawer/DrawerTokenSet.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerTokenSet.swift similarity index 100% rename from ios/FluentUI/Drawer/DrawerTokenSet.swift rename to Sources/FluentUI_iOS/Components/Drawer/DrawerTokenSet.swift diff --git a/ios/FluentUI/Drawer/DrawerTransitionAnimator.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerTransitionAnimator.swift similarity index 100% rename from ios/FluentUI/Drawer/DrawerTransitionAnimator.swift rename to Sources/FluentUI_iOS/Components/Drawer/DrawerTransitionAnimator.swift diff --git a/ios/FluentUI/EasyTapButton/EasyTapButton.swift b/Sources/FluentUI_iOS/Components/EasyTapButton/EasyTapButton.swift similarity index 100% rename from ios/FluentUI/EasyTapButton/EasyTapButton.swift rename to Sources/FluentUI_iOS/Components/EasyTapButton/EasyTapButton.swift diff --git a/ios/FluentUI/HUD/HUD.resources.xcfilelist b/Sources/FluentUI_iOS/Components/HUD/HUD.resources.xcfilelist similarity index 100% rename from ios/FluentUI/HUD/HUD.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/HUD/HUD.resources.xcfilelist diff --git a/ios/FluentUI/HUD/HUD.swift b/Sources/FluentUI_iOS/Components/HUD/HUD.swift similarity index 100% rename from ios/FluentUI/HUD/HUD.swift rename to Sources/FluentUI_iOS/Components/HUD/HUD.swift diff --git a/ios/FluentUI/HUD/HUDModifiers.swift b/Sources/FluentUI_iOS/Components/HUD/HUDModifiers.swift similarity index 100% rename from ios/FluentUI/HUD/HUDModifiers.swift rename to Sources/FluentUI_iOS/Components/HUD/HUDModifiers.swift diff --git a/ios/FluentUI/HUD/HeadsUpDisplay.swift b/Sources/FluentUI_iOS/Components/HUD/HeadsUpDisplay.swift similarity index 100% rename from ios/FluentUI/HUD/HeadsUpDisplay.swift rename to Sources/FluentUI_iOS/Components/HUD/HeadsUpDisplay.swift diff --git a/ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift b/Sources/FluentUI_iOS/Components/HUD/HeadsUpDisplayTokenSet.swift similarity index 100% rename from ios/FluentUI/HUD/HeadsUpDisplayTokenSet.swift rename to Sources/FluentUI_iOS/Components/HUD/HeadsUpDisplayTokenSet.swift diff --git a/ios/FluentUI/HUD/MSFHeadsUpDisplay.swift b/Sources/FluentUI_iOS/Components/HUD/MSFHeadsUpDisplay.swift similarity index 100% rename from ios/FluentUI/HUD/MSFHeadsUpDisplay.swift rename to Sources/FluentUI_iOS/Components/HUD/MSFHeadsUpDisplay.swift diff --git a/ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBar.swift b/Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBar.swift similarity index 100% rename from ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBar.swift rename to Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBar.swift diff --git a/ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBarModifiers.swift b/Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBarModifiers.swift similarity index 100% rename from ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBarModifiers.swift rename to Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBarModifiers.swift diff --git a/ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBarTokenSet.swift b/Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBarTokenSet.swift similarity index 100% rename from ios/FluentUI/IndeterminateProgressBar/IndeterminateProgressBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/IndeterminateProgressBar/IndeterminateProgressBarTokenSet.swift diff --git a/ios/FluentUI/IndeterminateProgressBar/MSFIndeterminateProgressBar.swift b/Sources/FluentUI_iOS/Components/IndeterminateProgressBar/MSFIndeterminateProgressBar.swift similarity index 100% rename from ios/FluentUI/IndeterminateProgressBar/MSFIndeterminateProgressBar.swift rename to Sources/FluentUI_iOS/Components/IndeterminateProgressBar/MSFIndeterminateProgressBar.swift diff --git a/ios/FluentUI/Label/BadgeLabel.swift b/Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift similarity index 100% rename from ios/FluentUI/Label/BadgeLabel.swift rename to Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift diff --git a/ios/FluentUI/Label/BadgeLabelTokenSet.swift b/Sources/FluentUI_iOS/Components/Label/BadgeLabelTokenSet.swift similarity index 100% rename from ios/FluentUI/Label/BadgeLabelTokenSet.swift rename to Sources/FluentUI_iOS/Components/Label/BadgeLabelTokenSet.swift diff --git a/ios/FluentUI/Label/Label.swift b/Sources/FluentUI_iOS/Components/Label/Label.swift similarity index 100% rename from ios/FluentUI/Label/Label.swift rename to Sources/FluentUI_iOS/Components/Label/Label.swift diff --git a/ios/FluentUI/Label/LabelTokenSet.swift b/Sources/FluentUI_iOS/Components/Label/LabelTokenSet.swift similarity index 100% rename from ios/FluentUI/Label/LabelTokenSet.swift rename to Sources/FluentUI_iOS/Components/Label/LabelTokenSet.swift diff --git a/ios/FluentUI/List/FluentList.swift b/Sources/FluentUI_iOS/Components/List/FluentList.swift similarity index 100% rename from ios/FluentUI/List/FluentList.swift rename to Sources/FluentUI_iOS/Components/List/FluentList.swift diff --git a/ios/FluentUI/List/FluentListModifiers.swift b/Sources/FluentUI_iOS/Components/List/FluentListModifiers.swift similarity index 100% rename from ios/FluentUI/List/FluentListModifiers.swift rename to Sources/FluentUI_iOS/Components/List/FluentListModifiers.swift diff --git a/ios/FluentUI/List/FluentListSection.swift b/Sources/FluentUI_iOS/Components/List/FluentListSection.swift similarity index 100% rename from ios/FluentUI/List/FluentListSection.swift rename to Sources/FluentUI_iOS/Components/List/FluentListSection.swift diff --git a/ios/FluentUI/List/FluentListSectionFooter.swift b/Sources/FluentUI_iOS/Components/List/FluentListSectionFooter.swift similarity index 100% rename from ios/FluentUI/List/FluentListSectionFooter.swift rename to Sources/FluentUI_iOS/Components/List/FluentListSectionFooter.swift diff --git a/ios/FluentUI/List/FluentListSectionHeader.swift b/Sources/FluentUI_iOS/Components/List/FluentListSectionHeader.swift similarity index 100% rename from ios/FluentUI/List/FluentListSectionHeader.swift rename to Sources/FluentUI_iOS/Components/List/FluentListSectionHeader.swift diff --git a/ios/FluentUI/List/ListActionItem.swift b/Sources/FluentUI_iOS/Components/List/ListActionItem.swift similarity index 100% rename from ios/FluentUI/List/ListActionItem.swift rename to Sources/FluentUI_iOS/Components/List/ListActionItem.swift diff --git a/ios/FluentUI/List/ListActionItemModifiers.swift b/Sources/FluentUI_iOS/Components/List/ListActionItemModifiers.swift similarity index 100% rename from ios/FluentUI/List/ListActionItemModifiers.swift rename to Sources/FluentUI_iOS/Components/List/ListActionItemModifiers.swift diff --git a/ios/FluentUI/List/ListItem.swift b/Sources/FluentUI_iOS/Components/List/ListItem.swift similarity index 100% rename from ios/FluentUI/List/ListItem.swift rename to Sources/FluentUI_iOS/Components/List/ListItem.swift diff --git a/ios/FluentUI/List/ListItemModifiers.swift b/Sources/FluentUI_iOS/Components/List/ListItemModifiers.swift similarity index 100% rename from ios/FluentUI/List/ListItemModifiers.swift rename to Sources/FluentUI_iOS/Components/List/ListItemModifiers.swift diff --git a/ios/FluentUI/MultilineCommandBar/MultilineCommandBar.swift b/Sources/FluentUI_iOS/Components/MultilineCommandBar/MultilineCommandBar.swift similarity index 100% rename from ios/FluentUI/MultilineCommandBar/MultilineCommandBar.swift rename to Sources/FluentUI_iOS/Components/MultilineCommandBar/MultilineCommandBar.swift diff --git a/ios/FluentUI/Navigation/BadgeLabelButton.swift b/Sources/FluentUI_iOS/Components/Navigation/BadgeLabelButton.swift similarity index 100% rename from ios/FluentUI/Navigation/BadgeLabelButton.swift rename to Sources/FluentUI_iOS/Components/Navigation/BadgeLabelButton.swift diff --git a/ios/FluentUI/Navigation/Helpers/ContentScrollViewTraits.swift b/Sources/FluentUI_iOS/Components/Navigation/Helpers/ContentScrollViewTraits.swift similarity index 100% rename from ios/FluentUI/Navigation/Helpers/ContentScrollViewTraits.swift rename to Sources/FluentUI_iOS/Components/Navigation/Helpers/ContentScrollViewTraits.swift diff --git a/ios/FluentUI/Navigation/Helpers/NavigationAnimator.swift b/Sources/FluentUI_iOS/Components/Navigation/Helpers/NavigationAnimator.swift similarity index 100% rename from ios/FluentUI/Navigation/Helpers/NavigationAnimator.swift rename to Sources/FluentUI_iOS/Components/Navigation/Helpers/NavigationAnimator.swift diff --git a/ios/FluentUI/Navigation/Navigation.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Navigation/Navigation.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Navigation/Navigation.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Navigation/Navigation.resources.xcfilelist diff --git a/ios/FluentUI/Navigation/NavigationBar.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift similarity index 100% rename from ios/FluentUI/Navigation/NavigationBar.swift rename to Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift diff --git a/ios/FluentUI/Navigation/NavigationBarTokenSet.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBarTokenSet.swift similarity index 100% rename from ios/FluentUI/Navigation/NavigationBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Navigation/NavigationBarTokenSet.swift diff --git a/ios/FluentUI/Navigation/NavigationController.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationController.swift similarity index 100% rename from ios/FluentUI/Navigation/NavigationController.swift rename to Sources/FluentUI_iOS/Components/Navigation/NavigationController.swift diff --git a/ios/FluentUI/Navigation/SearchBar/SearchBar.swift b/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift similarity index 100% rename from ios/FluentUI/Navigation/SearchBar/SearchBar.swift rename to Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift diff --git a/ios/FluentUI/Navigation/SearchBar/SearchBarTokenSet.swift b/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBarTokenSet.swift similarity index 100% rename from ios/FluentUI/Navigation/SearchBar/SearchBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBarTokenSet.swift diff --git a/ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift b/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderController.swift similarity index 100% rename from ios/FluentUI/Navigation/Shy Header/ShyHeaderController.swift rename to Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderController.swift diff --git a/ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift b/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift similarity index 100% rename from ios/FluentUI/Navigation/Shy Header/ShyHeaderView.swift rename to Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift diff --git a/ios/FluentUI/Navigation/TwoLineTitleView+Navigation.swift b/Sources/FluentUI_iOS/Components/Navigation/TwoLineTitleView+Navigation.swift similarity index 100% rename from ios/FluentUI/Navigation/TwoLineTitleView+Navigation.swift rename to Sources/FluentUI_iOS/Components/Navigation/TwoLineTitleView+Navigation.swift diff --git a/ios/FluentUI/Navigation/UIBarButtonItem+BadgeValue.swift b/Sources/FluentUI_iOS/Components/Navigation/UIBarButtonItem+BadgeValue.swift similarity index 100% rename from ios/FluentUI/Navigation/UIBarButtonItem+BadgeValue.swift rename to Sources/FluentUI_iOS/Components/Navigation/UIBarButtonItem+BadgeValue.swift diff --git a/ios/FluentUI/Navigation/UINavigationItem+Navigation.swift b/Sources/FluentUI_iOS/Components/Navigation/UINavigationItem+Navigation.swift similarity index 100% rename from ios/FluentUI/Navigation/UINavigationItem+Navigation.swift rename to Sources/FluentUI_iOS/Components/Navigation/UINavigationItem+Navigation.swift diff --git a/ios/FluentUI/Navigation/UIViewController+Navigation.swift b/Sources/FluentUI_iOS/Components/Navigation/UIViewController+Navigation.swift similarity index 100% rename from ios/FluentUI/Navigation/UIViewController+Navigation.swift rename to Sources/FluentUI_iOS/Components/Navigation/UIViewController+Navigation.swift diff --git a/ios/FluentUI/Navigation/Views/AvatarTitleView.swift b/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift similarity index 100% rename from ios/FluentUI/Navigation/Views/AvatarTitleView.swift rename to Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift diff --git a/ios/FluentUI/Navigation/Views/AvatarTitleViewTokenSet.swift b/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleViewTokenSet.swift similarity index 100% rename from ios/FluentUI/Navigation/Views/AvatarTitleViewTokenSet.swift rename to Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleViewTokenSet.swift diff --git a/ios/FluentUI/Notification/FluentNotification.swift b/Sources/FluentUI_iOS/Components/Notification/FluentNotification.swift similarity index 100% rename from ios/FluentUI/Notification/FluentNotification.swift rename to Sources/FluentUI_iOS/Components/Notification/FluentNotification.swift diff --git a/ios/FluentUI/Notification/MSFNotification.swift b/Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift similarity index 100% rename from ios/FluentUI/Notification/MSFNotification.swift rename to Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift diff --git a/ios/FluentUI/Notification/Notification.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Notification/Notification.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Notification/Notification.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Notification/Notification.resources.xcfilelist diff --git a/ios/FluentUI/Notification/NotificationModifiers.swift b/Sources/FluentUI_iOS/Components/Notification/NotificationModifiers.swift similarity index 100% rename from ios/FluentUI/Notification/NotificationModifiers.swift rename to Sources/FluentUI_iOS/Components/Notification/NotificationModifiers.swift diff --git a/ios/FluentUI/Notification/NotificationTokenSet.swift b/Sources/FluentUI_iOS/Components/Notification/NotificationTokenSet.swift similarity index 100% rename from ios/FluentUI/Notification/NotificationTokenSet.swift rename to Sources/FluentUI_iOS/Components/Notification/NotificationTokenSet.swift diff --git a/ios/FluentUI/Obscurable/BlurringView.swift b/Sources/FluentUI_iOS/Components/Obscurable/BlurringView.swift similarity index 100% rename from ios/FluentUI/Obscurable/BlurringView.swift rename to Sources/FluentUI_iOS/Components/Obscurable/BlurringView.swift diff --git a/ios/FluentUI/Obscurable/DimmingView.swift b/Sources/FluentUI_iOS/Components/Obscurable/DimmingView.swift similarity index 100% rename from ios/FluentUI/Obscurable/DimmingView.swift rename to Sources/FluentUI_iOS/Components/Obscurable/DimmingView.swift diff --git a/ios/FluentUI/Obscurable/Obscurable.swift b/Sources/FluentUI_iOS/Components/Obscurable/Obscurable.swift similarity index 100% rename from ios/FluentUI/Obscurable/Obscurable.swift rename to Sources/FluentUI_iOS/Components/Obscurable/Obscurable.swift diff --git a/ios/FluentUI/Other Cells/ActionsCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift similarity index 100% rename from ios/FluentUI/Other Cells/ActionsCell.swift rename to Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift diff --git a/ios/FluentUI/Other Cells/ActivityIndicatorCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift similarity index 100% rename from ios/FluentUI/Other Cells/ActivityIndicatorCell.swift rename to Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift diff --git a/ios/FluentUI/Other Cells/BooleanCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/BooleanCell.swift similarity index 100% rename from ios/FluentUI/Other Cells/BooleanCell.swift rename to Sources/FluentUI_iOS/Components/Other Cells/BooleanCell.swift diff --git a/ios/FluentUI/Other Cells/CenteredLabelCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift similarity index 100% rename from ios/FluentUI/Other Cells/CenteredLabelCell.swift rename to Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift diff --git a/ios/FluentUI/Other Cells/OtherCells.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Other Cells/OtherCells.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Other Cells/OtherCells.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Other Cells/OtherCells.resources.xcfilelist diff --git a/ios/FluentUI/People Picker/PeoplePicker.swift b/Sources/FluentUI_iOS/Components/People Picker/PeoplePicker.swift similarity index 100% rename from ios/FluentUI/People Picker/PeoplePicker.swift rename to Sources/FluentUI_iOS/Components/People Picker/PeoplePicker.swift diff --git a/ios/FluentUI/People Picker/PeoplePickerTokenSet.swift b/Sources/FluentUI_iOS/Components/People Picker/PeoplePickerTokenSet.swift similarity index 100% rename from ios/FluentUI/People Picker/PeoplePickerTokenSet.swift rename to Sources/FluentUI_iOS/Components/People Picker/PeoplePickerTokenSet.swift diff --git a/ios/FluentUI/People Picker/PersonaBadgeViewDataSource.swift b/Sources/FluentUI_iOS/Components/People Picker/PersonaBadgeViewDataSource.swift similarity index 100% rename from ios/FluentUI/People Picker/PersonaBadgeViewDataSource.swift rename to Sources/FluentUI_iOS/Components/People Picker/PersonaBadgeViewDataSource.swift diff --git a/ios/FluentUI/People Picker/PersonaCell.swift b/Sources/FluentUI_iOS/Components/People Picker/PersonaCell.swift similarity index 100% rename from ios/FluentUI/People Picker/PersonaCell.swift rename to Sources/FluentUI_iOS/Components/People Picker/PersonaCell.swift diff --git a/ios/FluentUI/People Picker/PersonaListView.swift b/Sources/FluentUI_iOS/Components/People Picker/PersonaListView.swift similarity index 100% rename from ios/FluentUI/People Picker/PersonaListView.swift rename to Sources/FluentUI_iOS/Components/People Picker/PersonaListView.swift diff --git a/ios/FluentUI/PersonaButton/MSFPersonaButton.swift b/Sources/FluentUI_iOS/Components/PersonaButton/MSFPersonaButton.swift similarity index 100% rename from ios/FluentUI/PersonaButton/MSFPersonaButton.swift rename to Sources/FluentUI_iOS/Components/PersonaButton/MSFPersonaButton.swift diff --git a/ios/FluentUI/PersonaButton/PersonaButton.swift b/Sources/FluentUI_iOS/Components/PersonaButton/PersonaButton.swift similarity index 100% rename from ios/FluentUI/PersonaButton/PersonaButton.swift rename to Sources/FluentUI_iOS/Components/PersonaButton/PersonaButton.swift diff --git a/ios/FluentUI/PersonaButton/PersonaButtonModifiers.swift b/Sources/FluentUI_iOS/Components/PersonaButton/PersonaButtonModifiers.swift similarity index 100% rename from ios/FluentUI/PersonaButton/PersonaButtonModifiers.swift rename to Sources/FluentUI_iOS/Components/PersonaButton/PersonaButtonModifiers.swift diff --git a/ios/FluentUI/PersonaButton/PersonaButtonTokenSet.swift b/Sources/FluentUI_iOS/Components/PersonaButton/PersonaButtonTokenSet.swift similarity index 100% rename from ios/FluentUI/PersonaButton/PersonaButtonTokenSet.swift rename to Sources/FluentUI_iOS/Components/PersonaButton/PersonaButtonTokenSet.swift diff --git a/ios/FluentUI/PersonaButtonCarousel/MSFPersonaButtonCarousel.swift b/Sources/FluentUI_iOS/Components/PersonaButtonCarousel/MSFPersonaButtonCarousel.swift similarity index 100% rename from ios/FluentUI/PersonaButtonCarousel/MSFPersonaButtonCarousel.swift rename to Sources/FluentUI_iOS/Components/PersonaButtonCarousel/MSFPersonaButtonCarousel.swift diff --git a/ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarousel.swift b/Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarousel.swift similarity index 100% rename from ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarousel.swift rename to Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarousel.swift diff --git a/ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarouselModifiers.swift b/Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarouselModifiers.swift similarity index 100% rename from ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarouselModifiers.swift rename to Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarouselModifiers.swift diff --git a/ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarouselTokenSet.swift b/Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarouselTokenSet.swift similarity index 100% rename from ios/FluentUI/PersonaButtonCarousel/PersonaButtonCarouselTokenSet.swift rename to Sources/FluentUI_iOS/Components/PersonaButtonCarousel/PersonaButtonCarouselTokenSet.swift diff --git a/ios/FluentUI/Pill Button Bar/PillButton.swift b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift similarity index 100% rename from ios/FluentUI/Pill Button Bar/PillButton.swift rename to Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift diff --git a/ios/FluentUI/Pill Button Bar/PillButtonBar.swift b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift similarity index 100% rename from ios/FluentUI/Pill Button Bar/PillButtonBar.swift rename to Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift diff --git a/ios/FluentUI/Pill Button Bar/PillButtonTokenSet.swift b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonTokenSet.swift similarity index 100% rename from ios/FluentUI/Pill Button Bar/PillButtonTokenSet.swift rename to Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonTokenSet.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuController.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuController.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuController.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuController.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuItem.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuItem.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuItemCell.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItemCell.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuItemCell.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItemCell.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuItemTokenSet.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItemTokenSet.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuItemTokenSet.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItemTokenSet.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuProtocols.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuProtocols.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuProtocols.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuProtocols.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuSection.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuSection.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuSection.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuSection.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuSectionHeaderView.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuSectionHeaderView.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuSectionHeaderView.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuSectionHeaderView.swift diff --git a/ios/FluentUI/Popup Menu/PopupMenuTokenSet.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuTokenSet.swift similarity index 100% rename from ios/FluentUI/Popup Menu/PopupMenuTokenSet.swift rename to Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuTokenSet.swift diff --git a/ios/FluentUI/Presenters/CardPresentationController.swift b/Sources/FluentUI_iOS/Components/Presenters/CardPresentationController.swift similarity index 100% rename from ios/FluentUI/Presenters/CardPresentationController.swift rename to Sources/FluentUI_iOS/Components/Presenters/CardPresentationController.swift diff --git a/ios/FluentUI/Presenters/CardPresenterNavigationController.swift b/Sources/FluentUI_iOS/Components/Presenters/CardPresenterNavigationController.swift similarity index 100% rename from ios/FluentUI/Presenters/CardPresenterNavigationController.swift rename to Sources/FluentUI_iOS/Components/Presenters/CardPresenterNavigationController.swift diff --git a/ios/FluentUI/Presenters/CardTransitionAnimator.swift b/Sources/FluentUI_iOS/Components/Presenters/CardTransitionAnimator.swift similarity index 100% rename from ios/FluentUI/Presenters/CardTransitionAnimator.swift rename to Sources/FluentUI_iOS/Components/Presenters/CardTransitionAnimator.swift diff --git a/ios/FluentUI/Presenters/PageCardPresenterController.swift b/Sources/FluentUI_iOS/Components/Presenters/PageCardPresenterController.swift similarity index 100% rename from ios/FluentUI/Presenters/PageCardPresenterController.swift rename to Sources/FluentUI_iOS/Components/Presenters/PageCardPresenterController.swift diff --git a/ios/FluentUI/ResizingHandleView/ResizingHandleTokenSet.swift b/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleTokenSet.swift similarity index 100% rename from ios/FluentUI/ResizingHandleView/ResizingHandleTokenSet.swift rename to Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleTokenSet.swift diff --git a/ios/FluentUI/ResizingHandleView/ResizingHandleView.swift b/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift similarity index 100% rename from ios/FluentUI/ResizingHandleView/ResizingHandleView.swift rename to Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift diff --git a/ios/FluentUI/SegmentedControl/SegmentItem.swift b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentItem.swift similarity index 100% rename from ios/FluentUI/SegmentedControl/SegmentItem.swift rename to Sources/FluentUI_iOS/Components/SegmentedControl/SegmentItem.swift diff --git a/ios/FluentUI/SegmentedControl/SegmentPillButton.swift b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentPillButton.swift similarity index 100% rename from ios/FluentUI/SegmentedControl/SegmentPillButton.swift rename to Sources/FluentUI_iOS/Components/SegmentedControl/SegmentPillButton.swift diff --git a/ios/FluentUI/SegmentedControl/SegmentedControl.swift b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift similarity index 100% rename from ios/FluentUI/SegmentedControl/SegmentedControl.swift rename to Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift diff --git a/ios/FluentUI/SegmentedControl/SegmentedControlTokenSet.swift b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControlTokenSet.swift similarity index 100% rename from ios/FluentUI/SegmentedControl/SegmentedControlTokenSet.swift rename to Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControlTokenSet.swift diff --git a/ios/FluentUI/Separator/Separator.swift b/Sources/FluentUI_iOS/Components/Separator/Separator.swift similarity index 100% rename from ios/FluentUI/Separator/Separator.swift rename to Sources/FluentUI_iOS/Components/Separator/Separator.swift diff --git a/ios/FluentUI/Separator/SeparatorTokenSet.swift b/Sources/FluentUI_iOS/Components/Separator/SeparatorTokenSet.swift similarity index 100% rename from ios/FluentUI/Separator/SeparatorTokenSet.swift rename to Sources/FluentUI_iOS/Components/Separator/SeparatorTokenSet.swift diff --git a/ios/FluentUI/Shimmer/ShimmerLinesView.swift b/Sources/FluentUI_iOS/Components/Shimmer/ShimmerLinesView.swift similarity index 100% rename from ios/FluentUI/Shimmer/ShimmerLinesView.swift rename to Sources/FluentUI_iOS/Components/Shimmer/ShimmerLinesView.swift diff --git a/ios/FluentUI/Shimmer/ShimmerTokenSet.swift b/Sources/FluentUI_iOS/Components/Shimmer/ShimmerTokenSet.swift similarity index 100% rename from ios/FluentUI/Shimmer/ShimmerTokenSet.swift rename to Sources/FluentUI_iOS/Components/Shimmer/ShimmerTokenSet.swift diff --git a/ios/FluentUI/Shimmer/ShimmerView.swift b/Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift similarity index 100% rename from ios/FluentUI/Shimmer/ShimmerView.swift rename to Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift diff --git a/ios/FluentUI/Tab Bar/SideTabBar.swift b/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift similarity index 100% rename from ios/FluentUI/Tab Bar/SideTabBar.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift diff --git a/ios/FluentUI/Tab Bar/SideTabBarTokenSet.swift b/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBarTokenSet.swift similarity index 100% rename from ios/FluentUI/Tab Bar/SideTabBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/SideTabBarTokenSet.swift diff --git a/ios/FluentUI/Tab Bar/TabBarItem.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItem.swift similarity index 100% rename from ios/FluentUI/Tab Bar/TabBarItem.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/TabBarItem.swift diff --git a/ios/FluentUI/Tab Bar/TabBarItemTokenSet.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemTokenSet.swift similarity index 100% rename from ios/FluentUI/Tab Bar/TabBarItemTokenSet.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemTokenSet.swift diff --git a/ios/FluentUI/Tab Bar/TabBarItemView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift similarity index 100% rename from ios/FluentUI/Tab Bar/TabBarItemView.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift diff --git a/ios/FluentUI/Tab Bar/TabBarTokenSet.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarTokenSet.swift similarity index 100% rename from ios/FluentUI/Tab Bar/TabBarTokenSet.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/TabBarTokenSet.swift diff --git a/ios/FluentUI/Tab Bar/TabBarView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift similarity index 100% rename from ios/FluentUI/Tab Bar/TabBarView.swift rename to Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift diff --git a/ios/FluentUI/Table View/TableView.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Table View/TableView.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Table View/TableView.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Table View/TableView.resources.xcfilelist diff --git a/ios/FluentUI/Table View/TableViewCell.swift b/Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift similarity index 100% rename from ios/FluentUI/Table View/TableViewCell.swift rename to Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift diff --git a/ios/FluentUI/Table View/TableViewHeaderFooterView.swift b/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift similarity index 100% rename from ios/FluentUI/Table View/TableViewHeaderFooterView.swift rename to Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift diff --git a/ios/FluentUI/Table View/TableViewHeaderFooterViewTokenSet.swift b/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterViewTokenSet.swift similarity index 100% rename from ios/FluentUI/Table View/TableViewHeaderFooterViewTokenSet.swift rename to Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterViewTokenSet.swift diff --git a/ios/FluentUI/TableViewListShared/TableViewCellTokenSet.swift b/Sources/FluentUI_iOS/Components/TableViewListShared/TableViewCellTokenSet.swift similarity index 100% rename from ios/FluentUI/TableViewListShared/TableViewCellTokenSet.swift rename to Sources/FluentUI_iOS/Components/TableViewListShared/TableViewCellTokenSet.swift diff --git a/ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist b/Sources/FluentUI_iOS/Components/TableViewListShared/TableViewListShared.resources.xcfilelist similarity index 100% rename from ios/FluentUI/TableViewListShared/TableViewListShared.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/TableViewListShared/TableViewListShared.resources.xcfilelist diff --git a/ios/FluentUI/TextField/FluentTextField.swift b/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift similarity index 100% rename from ios/FluentUI/TextField/FluentTextField.swift rename to Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift diff --git a/ios/FluentUI/TextField/FluentTextFieldInternal.swift b/Sources/FluentUI_iOS/Components/TextField/FluentTextFieldInternal.swift similarity index 100% rename from ios/FluentUI/TextField/FluentTextFieldInternal.swift rename to Sources/FluentUI_iOS/Components/TextField/FluentTextFieldInternal.swift diff --git a/ios/FluentUI/TextField/FluentTextInputError.swift b/Sources/FluentUI_iOS/Components/TextField/FluentTextInputError.swift similarity index 100% rename from ios/FluentUI/TextField/FluentTextInputError.swift rename to Sources/FluentUI_iOS/Components/TextField/FluentTextInputError.swift diff --git a/ios/FluentUI/TextField/TextField.resources.xcfilelist b/Sources/FluentUI_iOS/Components/TextField/TextField.resources.xcfilelist similarity index 100% rename from ios/FluentUI/TextField/TextField.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/TextField/TextField.resources.xcfilelist diff --git a/ios/FluentUI/TextField/TextFieldTokenSet.swift b/Sources/FluentUI_iOS/Components/TextField/TextFieldTokenSet.swift similarity index 100% rename from ios/FluentUI/TextField/TextFieldTokenSet.swift rename to Sources/FluentUI_iOS/Components/TextField/TextFieldTokenSet.swift diff --git a/ios/FluentUI/Tooltip/Tooltip.resources.xcfilelist b/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Tooltip/Tooltip.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/Tooltip/Tooltip.resources.xcfilelist diff --git a/ios/FluentUI/Tooltip/Tooltip.swift b/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift similarity index 100% rename from ios/FluentUI/Tooltip/Tooltip.swift rename to Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift diff --git a/ios/FluentUI/Tooltip/TooltipModifiers.swift b/Sources/FluentUI_iOS/Components/Tooltip/TooltipModifiers.swift similarity index 100% rename from ios/FluentUI/Tooltip/TooltipModifiers.swift rename to Sources/FluentUI_iOS/Components/Tooltip/TooltipModifiers.swift diff --git a/ios/FluentUI/Tooltip/TooltipTokenSet.swift b/Sources/FluentUI_iOS/Components/Tooltip/TooltipTokenSet.swift similarity index 100% rename from ios/FluentUI/Tooltip/TooltipTokenSet.swift rename to Sources/FluentUI_iOS/Components/Tooltip/TooltipTokenSet.swift diff --git a/ios/FluentUI/Tooltip/TooltipView.swift b/Sources/FluentUI_iOS/Components/Tooltip/TooltipView.swift similarity index 100% rename from ios/FluentUI/Tooltip/TooltipView.swift rename to Sources/FluentUI_iOS/Components/Tooltip/TooltipView.swift diff --git a/ios/FluentUI/Tooltip/TooltipViewController.swift b/Sources/FluentUI_iOS/Components/Tooltip/TooltipViewController.swift similarity index 100% rename from ios/FluentUI/Tooltip/TooltipViewController.swift rename to Sources/FluentUI_iOS/Components/Tooltip/TooltipViewController.swift diff --git a/ios/FluentUI/TouchForwardingView/TouchForwardingView.swift b/Sources/FluentUI_iOS/Components/TouchForwardingView/TouchForwardingView.swift similarity index 100% rename from ios/FluentUI/TouchForwardingView/TouchForwardingView.swift rename to Sources/FluentUI_iOS/Components/TouchForwardingView/TouchForwardingView.swift diff --git a/ios/FluentUI/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist b/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist similarity index 100% rename from ios/FluentUI/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist rename to Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.resources.xcfilelist diff --git a/ios/FluentUI/TwoLineTitleView/TwoLineTitleView.swift b/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift similarity index 100% rename from ios/FluentUI/TwoLineTitleView/TwoLineTitleView.swift rename to Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift diff --git a/ios/FluentUI/TwoLineTitleView/TwoLineTitleViewTokenSet.swift b/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleViewTokenSet.swift similarity index 100% rename from ios/FluentUI/TwoLineTitleView/TwoLineTitleViewTokenSet.swift rename to Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleViewTokenSet.swift diff --git a/ios/FluentUI/Core/ColorProviding.swift b/Sources/FluentUI_iOS/Core/ColorProviding.swift similarity index 100% rename from ios/FluentUI/Core/ColorProviding.swift rename to Sources/FluentUI_iOS/Core/ColorProviding.swift diff --git a/ios/FluentUI/Core/Compatibility.swift b/Sources/FluentUI_iOS/Core/Compatibility.swift similarity index 100% rename from ios/FluentUI/Core/Compatibility.swift rename to Sources/FluentUI_iOS/Core/Compatibility.swift diff --git a/ios/FluentUI/Core/ControlHostingView.swift b/Sources/FluentUI_iOS/Core/ControlHostingView.swift similarity index 100% rename from ios/FluentUI/Core/ControlHostingView.swift rename to Sources/FluentUI_iOS/Core/ControlHostingView.swift diff --git a/ios/FluentUI/Core/Core.resources.xcfilelist b/Sources/FluentUI_iOS/Core/Core.resources.xcfilelist similarity index 100% rename from ios/FluentUI/Core/Core.resources.xcfilelist rename to Sources/FluentUI_iOS/Core/Core.resources.xcfilelist diff --git a/ios/FluentUI/Extensions/Color+DynamicColor.swift b/Sources/FluentUI_iOS/Core/Extensions/Color+DynamicColor.swift similarity index 100% rename from ios/FluentUI/Extensions/Color+DynamicColor.swift rename to Sources/FluentUI_iOS/Core/Extensions/Color+DynamicColor.swift diff --git a/ios/FluentUI/Extensions/NSLayoutConstraint+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/NSLayoutConstraint+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/NSLayoutConstraint+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/NSLayoutConstraint+Extensions.swift diff --git a/ios/FluentUI/Extensions/String+Extension.swift b/Sources/FluentUI_iOS/Core/Extensions/String+Extension.swift similarity index 100% rename from ios/FluentUI/Extensions/String+Extension.swift rename to Sources/FluentUI_iOS/Core/Extensions/String+Extension.swift diff --git a/ios/FluentUI/Extensions/UIApplication+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIApplication+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/UIApplication+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/UIApplication+Extensions.swift diff --git a/ios/FluentUI/Extensions/UIColor+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIColor+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/UIColor+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/UIColor+Extensions.swift diff --git a/ios/FluentUI/Extensions/UIImage+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIImage+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/UIImage+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/UIImage+Extensions.swift diff --git a/ios/FluentUI/Extensions/UIScrollView+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIScrollView+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/UIScrollView+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/UIScrollView+Extensions.swift diff --git a/ios/FluentUI/Extensions/UIView+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIView+Extensions.swift similarity index 100% rename from ios/FluentUI/Extensions/UIView+Extensions.swift rename to Sources/FluentUI_iOS/Core/Extensions/UIView+Extensions.swift diff --git a/ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift b/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift similarity index 100% rename from ios/FluentUI/Core/Theme/FluentTheme+Tokens.swift rename to Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift diff --git a/ios/FluentUI/Core/Theme/FluentTheme.swift b/Sources/FluentUI_iOS/Core/FluentTheme.swift similarity index 100% rename from ios/FluentUI/Core/Theme/FluentTheme.swift rename to Sources/FluentUI_iOS/Core/FluentTheme.swift diff --git a/ios/FluentUI/Core/FluentThemedHostingController.swift b/Sources/FluentUI_iOS/Core/FluentThemedHostingController.swift similarity index 100% rename from ios/FluentUI/Core/FluentThemedHostingController.swift rename to Sources/FluentUI_iOS/Core/FluentThemedHostingController.swift diff --git a/ios/FluentUI/Core/FluentUIFramework.swift b/Sources/FluentUI_iOS/Core/FluentUIFramework.swift similarity index 100% rename from ios/FluentUI/Core/FluentUIFramework.swift rename to Sources/FluentUI_iOS/Core/FluentUIFramework.swift diff --git a/ios/FluentUI/Core/FocusRingView.swift b/Sources/FluentUI_iOS/Core/FocusRingView.swift similarity index 100% rename from ios/FluentUI/Core/FocusRingView.swift rename to Sources/FluentUI_iOS/Core/FocusRingView.swift diff --git a/ios/FluentUI/Core/SwiftUI+ViewAnimation.swift b/Sources/FluentUI_iOS/Core/SwiftUI+ViewAnimation.swift similarity index 100% rename from ios/FluentUI/Core/SwiftUI+ViewAnimation.swift rename to Sources/FluentUI_iOS/Core/SwiftUI+ViewAnimation.swift diff --git a/ios/FluentUI/Core/SwiftUI+ViewModifiers.swift b/Sources/FluentUI_iOS/Core/SwiftUI+ViewModifiers.swift similarity index 100% rename from ios/FluentUI/Core/SwiftUI+ViewModifiers.swift rename to Sources/FluentUI_iOS/Core/SwiftUI+ViewModifiers.swift diff --git a/ios/FluentUI/Core/SwiftUI+ViewPresentation.swift b/Sources/FluentUI_iOS/Core/SwiftUI+ViewPresentation.swift similarity index 100% rename from ios/FluentUI/Core/SwiftUI+ViewPresentation.swift rename to Sources/FluentUI_iOS/Core/SwiftUI+ViewPresentation.swift diff --git a/ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift similarity index 100% rename from ios/FluentUI/Core/Theme/FluentTheme+UIKit.swift rename to Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift diff --git a/ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+visionOS.swift similarity index 100% rename from ios/FluentUI/Core/Theme/FluentTheme+visionOS.swift rename to Sources/FluentUI_iOS/Core/Theme/FluentTheme+visionOS.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/ControlTokenSet.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/EmptyTokenSet.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/EmptyTokenSet.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/FontInfo.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/FontInfo.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/GlobalTokens+UIKit.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/GlobalTokens+UIKit.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/GlobalTokens+UIKit.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/GlobalTokens.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/GlobalTokens.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/GlobalTokens.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/LinearGradientInfo.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/LinearGradientInfo.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/LinearGradientInfo.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/LinearGradientInfo.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/ShadowInfo.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/TokenSet.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenSet.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/TokenSet.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/TokenSet.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/TokenizedControl.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/TokenizedControl.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift diff --git a/ios/FluentUI/Core/Theme/Tokens/TokenizedControlView.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift similarity index 100% rename from ios/FluentUI/Core/Theme/Tokens/TokenizedControlView.swift rename to Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift diff --git a/ios/FluentUI/Core/UIKit+SwiftUI_interoperability.swift b/Sources/FluentUI_iOS/Core/UIKit+SwiftUI_interoperability.swift similarity index 100% rename from ios/FluentUI/Core/UIKit+SwiftUI_interoperability.swift rename to Sources/FluentUI_iOS/Core/UIKit+SwiftUI_interoperability.swift diff --git a/ios/FluentUI/Utilities/AnimationSynchronizer.swift b/Sources/FluentUI_iOS/Core/Utilities/AnimationSynchronizer.swift similarity index 100% rename from ios/FluentUI/Utilities/AnimationSynchronizer.swift rename to Sources/FluentUI_iOS/Core/Utilities/AnimationSynchronizer.swift diff --git a/ios/FluentUI/Core/module.modulemap b/Sources/FluentUI_iOS/Core/module.modulemap similarity index 100% rename from ios/FluentUI/Core/module.modulemap rename to Sources/FluentUI_iOS/Core/module.modulemap diff --git a/ios/FluentUI/FluentUI.h b/Sources/FluentUI_iOS/FluentUI.h similarity index 100% rename from ios/FluentUI/FluentUI.h rename to Sources/FluentUI_iOS/FluentUI.h diff --git a/ios/README.md b/Sources/FluentUI_iOS/README.md similarity index 96% rename from ios/README.md rename to Sources/FluentUI_iOS/README.md index 69fa610639..31286d9a82 100644 --- a/ios/README.md +++ b/Sources/FluentUI_iOS/README.md @@ -62,7 +62,7 @@ Included in this repository is a demo of currently implemented controls. A full To build and deploy the demo follow these steps: - Download or clone the [FluentUI for iOS](https://github.com/microsoft/fluentui-apple) repository. -- Open `ios/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. +- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose a device to deploy to. - Once deployed you can choose a control to demo from the list of controls on the selected device. diff --git a/macos/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Contents.json similarity index 100% rename from macos/FluentUISwiftUITestApp/Preview Content/Preview Assets.xcassets/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/ic_fluent_presence_available_10_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/ic_fluent_presence_available_10_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/ic_fluent_presence_available_10_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_10_filled.imageset/ic_fluent_presence_available_10_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/ic_fluent_presence_available_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/ic_fluent_presence_available_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/ic_fluent_presence_available_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_12_filled.imageset/ic_fluent_presence_available_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/ic_fluent_presence_available_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/ic_fluent_presence_available_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/ic_fluent_presence_available_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_filled.imageset/ic_fluent_presence_available_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/ic_fluent_presence_available_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/ic_fluent_presence_available_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/ic_fluent_presence_available_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_available_16_regular.imageset/ic_fluent_presence_available_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/ic_fluent_presence_away_10_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/ic_fluent_presence_away_10_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/ic_fluent_presence_away_10_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_10_filled.imageset/ic_fluent_presence_away_10_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/ic_fluent_presence_away_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/ic_fluent_presence_away_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/ic_fluent_presence_away_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_12_filled.imageset/ic_fluent_presence_away_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/ic_fluent_presence_away_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/ic_fluent_presence_away_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/ic_fluent_presence_away_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_away_16_filled.imageset/ic_fluent_presence_away_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/ic_fluent_presence_blocked_10_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/ic_fluent_presence_blocked_10_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/ic_fluent_presence_blocked_10_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_10_regular.imageset/ic_fluent_presence_blocked_10_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/ic_fluent_presence_blocked_12_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/ic_fluent_presence_blocked_12_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/ic_fluent_presence_blocked_12_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_12_regular.imageset/ic_fluent_presence_blocked_12_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/ic_fluent_presence_blocked_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/ic_fluent_presence_blocked_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/ic_fluent_presence_blocked_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_blocked_16_regular.imageset/ic_fluent_presence_blocked_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/ic_fluent_presence_busy_10_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/ic_fluent_presence_busy_10_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/ic_fluent_presence_busy_10_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_10_filled.imageset/ic_fluent_presence_busy_10_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/ic_fluent_presence_busy_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/ic_fluent_presence_busy_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/ic_fluent_presence_busy_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_12_filled.imageset/ic_fluent_presence_busy_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/ic_fluent_presence_busy_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/ic_fluent_presence_busy_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/ic_fluent_presence_busy_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_busy_16_filled.imageset/ic_fluent_presence_busy_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/ic_fluent_presence_dnd_10_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/ic_fluent_presence_dnd_10_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/ic_fluent_presence_dnd_10_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_10_filled.imageset/ic_fluent_presence_dnd_10_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/ic_fluent_presence_dnd_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/ic_fluent_presence_dnd_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/ic_fluent_presence_dnd_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_12_filled.imageset/ic_fluent_presence_dnd_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/ic_fluent_presence_dnd_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/ic_fluent_presence_dnd_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/ic_fluent_presence_dnd_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_filled.imageset/ic_fluent_presence_dnd_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/ic_fluent_presence_dnd_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/ic_fluent_presence_dnd_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/ic_fluent_presence_dnd_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_dnd_16_regular.imageset/ic_fluent_presence_dnd_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/ic_fluent_presence_offline_10_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/ic_fluent_presence_offline_10_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/ic_fluent_presence_offline_10_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_10_regular.imageset/ic_fluent_presence_offline_10_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/ic_fluent_presence_offline_12_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/ic_fluent_presence_offline_12_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/ic_fluent_presence_offline_12_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_12_regular.imageset/ic_fluent_presence_offline_12_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/ic_fluent_presence_offline_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/ic_fluent_presence_offline_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/ic_fluent_presence_offline_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_offline_16_regular.imageset/ic_fluent_presence_offline_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/ic_fluent_presence_oof_10_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/ic_fluent_presence_oof_10_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/ic_fluent_presence_oof_10_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_10_regular.imageset/ic_fluent_presence_oof_10_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/ic_fluent_presence_oof_12_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/ic_fluent_presence_oof_12_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/ic_fluent_presence_oof_12_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_12_regular.imageset/ic_fluent_presence_oof_12_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/ic_fluent_presence_oof_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/ic_fluent_presence_oof_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/ic_fluent_presence_oof_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_oof_16_regular.imageset/ic_fluent_presence_oof_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/ic_fluent_presence_unknown_10_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/ic_fluent_presence_unknown_10_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/ic_fluent_presence_unknown_10_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_10_regular.imageset/ic_fluent_presence_unknown_10_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/ic_fluent_presence_unknown_12_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/ic_fluent_presence_unknown_12_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/ic_fluent_presence_unknown_12_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_12_regular.imageset/ic_fluent_presence_unknown_12_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/ic_fluent_presence_unknown_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/ic_fluent_presence_unknown_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/ic_fluent_presence_unknown_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/ic_fluent_presence_unknown_16_regular.imageset/ic_fluent_presence_unknown_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/presenceBorder.colorset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/presenceBorder.colorset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/Presence/presenceBorder.colorset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/Presence/presenceBorder.colorset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/back-24x24.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/back-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/back-24x24.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/back-24x24.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/back-24x24.imageset/ic_ios_arrow_left_24_outlined.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/back-24x24.imageset/ic_ios_arrow_left_24_outlined.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/back-24x24.imageset/ic_ios_arrow_left_24_outlined.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/back-24x24.imageset/ic_ios_arrow_left_24_outlined.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/ic_checkmark_24_outlined.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/ic_checkmark_24_outlined.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/ic_checkmark_24_outlined.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-24x24.imageset/ic_checkmark_24_outlined.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/checkmark_36_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/checkmark_36_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/checkmark_36_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-36x36.imageset/checkmark_36_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/ic_checkmark_20_outlined.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/ic_checkmark_20_outlined.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/ic_checkmark_20_outlined.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/checkmark-thin-20x20.imageset/ic_checkmark_20_outlined.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/ic_fluent_chevron_down_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/ic_fluent_chevron_down_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/ic_fluent_chevron_down_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-12x12.imageset/ic_fluent_chevron_down_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/ic_fluent_chevron_down_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/ic_fluent_chevron_down_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/ic_fluent_chevron_down_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-down-16x16.imageset/ic_fluent_chevron_down_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/ic_fluent_chevron_right_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/ic_fluent_chevron_right_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/ic_fluent_chevron_right_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-12x12.imageset/ic_fluent_chevron_right_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/ic_fluent_chevron_right_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/ic_fluent_chevron_right_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/ic_fluent_chevron_right_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/chevron-right-16x16.imageset/ic_fluent_chevron_right_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/ic_fluent_dismiss_20_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/ic_fluent_dismiss_20_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/ic_fluent_dismiss_20_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-20x20.imageset/ic_fluent_dismiss_20_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/dismiss_36_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/dismiss_36_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/dismiss_36_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/dismiss-36x36.imageset/dismiss_36_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/ic_fluent_ios_chevron_right_20_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/ic_fluent_ios_chevron_right_20_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/ic_fluent_ios_chevron_right_20_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/iOS-chevron-right-20x20.imageset/ic_fluent_ios_chevron_right_20_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/ic_fluent_dismiss_circle_24_regular.svg b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/ic_fluent_dismiss_circle_24_regular.svg similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/ic_fluent_dismiss_circle_24_regular.svg rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_dismiss_circle_24_regular.imageset/ic_fluent_dismiss_circle_24_regular.svg diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/ic_fluent_people_24_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/ic_fluent_people_24_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/ic_fluent_people_24_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_people_24_regular.imageset/ic_fluent_people_24_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/ic_fluent_person_24_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/ic_fluent_person_24_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/ic_fluent_person_24_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/ic_fluent_person_24_regular.imageset/ic_fluent_person_24_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/more-24x24.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/more-24x24.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/more-24x24.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/more-24x24.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/more-24x24.imageset/ic_more_24_outlined.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/more-24x24.imageset/ic_more_24_outlined.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/more-24x24.imageset/ic_more_24_outlined.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/more-24x24.imageset/ic_more_24_outlined.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/ic_fluent_person_12_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/ic_fluent_person_12_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/ic_fluent_person_12_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_filled.imageset/ic_fluent_person_12_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/ic_fluent_person_12_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/ic_fluent_person_12_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/ic_fluent_person_12_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_12_regular.imageset/ic_fluent_person_12_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/ic_fluent_person_16_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/ic_fluent_person_16_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/ic_fluent_person_16_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_filled.imageset/ic_fluent_person_16_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/ic_fluent_person_16_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/ic_fluent_person_16_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/ic_fluent_person_16_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_16_regular.imageset/ic_fluent_person_16_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/ic_fluent_person_20_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/ic_fluent_person_20_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/ic_fluent_person_20_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_filled.imageset/ic_fluent_person_20_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/ic_fluent_person_20_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/ic_fluent_person_20_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/ic_fluent_person_20_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_20_regular.imageset/ic_fluent_person_20_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/ic_fluent_person_24_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/ic_fluent_person_24_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/ic_fluent_person_24_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_filled.imageset/ic_fluent_person_24_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/ic_fluent_person_24_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/ic_fluent_person_24_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/ic_fluent_person_24_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_24_regular.imageset/ic_fluent_person_24_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/ic_fluent_person_28_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/ic_fluent_person_28_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/ic_fluent_person_28_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_filled.imageset/ic_fluent_person_28_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/ic_fluent_person_28_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/ic_fluent_person_28_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/ic_fluent_person_28_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_28_regular.imageset/ic_fluent_person_28_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/ic_fluent_person_48_filled.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/ic_fluent_person_48_filled.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/ic_fluent_person_48_filled.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_filled.imageset/ic_fluent_person_48_filled.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/ic_fluent_person_48_regular.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/ic_fluent_person_48_regular.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/ic_fluent_person_48_regular.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/person_48_regular.imageset/ic_fluent_person_48_regular.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/search-20x20.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-20x20.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/search-20x20.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-20x20.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/search-20x20.imageset/ic_search_20_outlined.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-20x20.imageset/ic_search_20_outlined.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/search-20x20.imageset/ic_search_20_outlined.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-20x20.imageset/ic_search_20_outlined.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/search-clear.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-clear.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/search-clear.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-clear.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/search-clear.imageset/search-bar-clear.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-clear.imageset/search-bar-clear.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/search-clear.imageset/search-bar-clear.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/search-clear.imageset/search-bar-clear.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-off.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-off.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-off.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-off.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-off.imageset/unselected.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-off.imageset/unselected.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-off.imageset/unselected.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-off.imageset/unselected.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-on.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-on.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-on.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-on.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-on.imageset/selected.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-on.imageset/selected.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/selection-on.imageset/selected.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/selection-on.imageset/selected.pdf diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/Contents.json b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/Contents.json similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/Contents.json rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/Contents.json diff --git a/ios/FluentUI/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/tooltip-arrow.pdf b/Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/tooltip-arrow.pdf similarity index 100% rename from ios/FluentUI/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/tooltip-arrow.pdf rename to Sources/FluentUI_iOS/Resources/FluentUI-ios.xcassets/tooltip-arrow.imageset/tooltip-arrow.pdf diff --git a/ios/FluentUI/Resources/Localization/CultureMapping.json b/Sources/FluentUI_iOS/Resources/Localization/CultureMapping.json similarity index 100% rename from ios/FluentUI/Resources/Localization/CultureMapping.json rename to Sources/FluentUI_iOS/Resources/Localization/CultureMapping.json diff --git a/ios/FluentUI/Resources/Localization/ar.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ar.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ar.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ar.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ar.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ar.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ar.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ar.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ca.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ca.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ca.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ca.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ca.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ca.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ca.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ca.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/cs.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/cs.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/cs.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/cs.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/cs.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/cs.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/cs.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/cs.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/da.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/da.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/da.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/da.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/da.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/da.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/da.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/da.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/de.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/de.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/de.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/de.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/de.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/de.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/de.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/de.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/el.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/el.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/el.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/el.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/el.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/el.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/el.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/el.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/en-GB.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/en-GB.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/en-GB.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/en-GB.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/en-GB.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/en-GB.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/en-GB.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/en-GB.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/en.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/en.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/en.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/en.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/es-MX.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/es-MX.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/es-MX.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/es-MX.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/es-MX.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/es-MX.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/es-MX.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/es-MX.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/es.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/es.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/es.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/es.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/es.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/es.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/es.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/es.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/fi.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/fi.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/fi.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/fi.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/fi.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/fi.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/fi.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/fi.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/fr.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/fr.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/fr.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/fr.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/fr.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/fr.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/fr.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/fr.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/he.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/he.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/he.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/he.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/he.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/he.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/he.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/he.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/hi.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/hi.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/hi.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/hi.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/hi.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/hi.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/hi.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/hi.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/hr.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/hr.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/hr.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/hr.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/hr.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/hr.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/hr.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/hr.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/hu.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/hu.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/hu.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/hu.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/hu.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/hu.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/hu.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/hu.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/id.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/id.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/id.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/id.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/id.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/id.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/id.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/id.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/it.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/it.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/it.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/it.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/it.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/it.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/it.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/it.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ja.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ja.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ja.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ja.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ja.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ja.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ja.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ja.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ko.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ko.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ko.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ko.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ko.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ko.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ko.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ko.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ms.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ms.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ms.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ms.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ms.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ms.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ms.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ms.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/nb-NO.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/nb-NO.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/nb-NO.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/nb-NO.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/nb-NO.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/nb-NO.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/nb-NO.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/nb-NO.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/nl.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/nl.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/nl.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/nl.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/nl.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/nl.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/nl.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/nl.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/pl.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/pl.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/pl.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/pl.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/pl.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/pl.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/pl.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/pl.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/pt-BR.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/pt-BR.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/pt-BR.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/pt-BR.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/pt-BR.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/pt-BR.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/pt-BR.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/pt-BR.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/pt-PT.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/pt-PT.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/pt-PT.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/pt-PT.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/pt-PT.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/pt-PT.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/pt-PT.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/pt-PT.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ro.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ro.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ro.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ro.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ro.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ro.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ro.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ro.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/ru.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/ru.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/ru.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/ru.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/ru.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/ru.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/ru.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/ru.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/sk.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/sk.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/sk.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/sk.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/sk.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/sk.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/sk.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/sk.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/sv.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/sv.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/sv.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/sv.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/sv.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/sv.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/sv.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/sv.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/th.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/th.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/th.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/th.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/th.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/th.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/th.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/th.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/tr.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/tr.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/tr.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/tr.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/tr.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/tr.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/tr.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/tr.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/uk.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/uk.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/uk.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/uk.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/uk.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/uk.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/uk.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/uk.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/vi.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/vi.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/vi.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/vi.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/vi.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/vi.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/vi.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/vi.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/zh-Hans.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/zh-Hans.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/zh-Hans.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/zh-Hans.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/zh-Hans.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/zh-Hans.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/zh-Hans.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/zh-Hans.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Localization/zh-Hant.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/zh-Hant.lproj/Localizable.strings similarity index 100% rename from ios/FluentUI/Resources/Localization/zh-Hant.lproj/Localizable.strings rename to Sources/FluentUI_iOS/Resources/Localization/zh-Hant.lproj/Localizable.strings diff --git a/ios/FluentUI/Resources/Localization/zh-Hant.lproj/Localizable.stringsdict b/Sources/FluentUI_iOS/Resources/Localization/zh-Hant.lproj/Localizable.stringsdict similarity index 100% rename from ios/FluentUI/Resources/Localization/zh-Hant.lproj/Localizable.stringsdict rename to Sources/FluentUI_iOS/Resources/Localization/zh-Hant.lproj/Localizable.stringsdict diff --git a/ios/FluentUI/Resources/Version.plist b/Sources/FluentUI_iOS/Resources/Version.plist similarity index 100% rename from ios/FluentUI/Resources/Version.plist rename to Sources/FluentUI_iOS/Resources/Version.plist diff --git a/macos/CONTRIBUTING.md b/Sources/FluentUI_macOS/CONTRIBUTING.md similarity index 89% rename from macos/CONTRIBUTING.md rename to Sources/FluentUI_macOS/CONTRIBUTING.md index fd759c2764..7603fc71f3 100644 --- a/macos/CONTRIBUTING.md +++ b/Sources/FluentUI_macOS/CONTRIBUTING.md @@ -6,7 +6,7 @@ Included in this repository is a demo that showcases all the currently available To build and deploy the demo follow these steps: - clone the [FluentUI](https://github.com/microsoft/fluentui-apple) repository. -- Open `macos/xcode/FluentUI.xcodeproj` in Xcode. +- Open `Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj` in Xcode. - In the Xcode scheme menu choose `FluentUITestApp-macOS` and choose "My Mac" as the deployment target. - Once deployed you can choose a control to test from the list of controls in the left pane. @@ -18,7 +18,7 @@ To build and deploy the demo follow these steps: - Create and add a test ViewController under [FluentUITestViewControllers](FluentUITestViewControllers) (ex. TestFooViewController.swift) - Add TestFooViewController.swift to FluentUI xcode project (All the files are in alphabetical order) - Make sure it is part of FluentUITestViewControllers Target membership -- Add TestFooViewController to the array in [TestViewContronllers.swift](https://github.com/microsoft/fluentui-apple/blob/02b1c3fe601b793cb6cfd24813e11d92420e0d77/macos/FluentUITestViewControllers/TestViewControllers.swift#L14) +- Add TestFooViewController to the array in [TestViewContronllers.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestViewControllers.swift) - Add a new cocopod subspec in [MicrosoftFluentUI.podspec](https://github.com/microsoft/fluentui-apple/blob/main/MicrosoftFluentUI.podspec) with required dependencies. "s.subspec 'Foo_mac' do |foo_mac|" - Verify by "pod spec lint" For more info on [cocoapod](https://cocoapods.org) - Build and Run diff --git a/macos/FluentUI/Appearance/Apperance+Theme.swift b/Sources/FluentUI_macOS/Components/Appearance/Apperance+Theme.swift similarity index 100% rename from macos/FluentUI/Appearance/Apperance+Theme.swift rename to Sources/FluentUI_macOS/Components/Appearance/Apperance+Theme.swift diff --git a/macos/FluentUI/AvatarView/AvatarView.swift b/Sources/FluentUI_macOS/Components/AvatarView/AvatarView.swift similarity index 100% rename from macos/FluentUI/AvatarView/AvatarView.swift rename to Sources/FluentUI_macOS/Components/AvatarView/AvatarView.swift diff --git a/macos/FluentUI/Badge/BadgeView.swift b/Sources/FluentUI_macOS/Components/Badge/BadgeView.swift similarity index 100% rename from macos/FluentUI/Badge/BadgeView.swift rename to Sources/FluentUI_macOS/Components/Badge/BadgeView.swift diff --git a/macos/FluentUI/Button/Button.swift b/Sources/FluentUI_macOS/Components/Button/Button.swift similarity index 100% rename from macos/FluentUI/Button/Button.swift rename to Sources/FluentUI_macOS/Components/Button/Button.swift diff --git a/macos/FluentUI/DatePicker/CalendarDayButton.swift b/Sources/FluentUI_macOS/Components/DatePicker/CalendarDayButton.swift similarity index 100% rename from macos/FluentUI/DatePicker/CalendarDayButton.swift rename to Sources/FluentUI_macOS/Components/DatePicker/CalendarDayButton.swift diff --git a/macos/FluentUI/DatePicker/CalendarHeaderView.swift b/Sources/FluentUI_macOS/Components/DatePicker/CalendarHeaderView.swift similarity index 100% rename from macos/FluentUI/DatePicker/CalendarHeaderView.swift rename to Sources/FluentUI_macOS/Components/DatePicker/CalendarHeaderView.swift diff --git a/macos/FluentUI/DatePicker/CalendarView.swift b/Sources/FluentUI_macOS/Components/DatePicker/CalendarView.swift similarity index 100% rename from macos/FluentUI/DatePicker/CalendarView.swift rename to Sources/FluentUI_macOS/Components/DatePicker/CalendarView.swift diff --git a/macos/FluentUI/DatePicker/DatePickerController.swift b/Sources/FluentUI_macOS/Components/DatePicker/DatePickerController.swift similarity index 100% rename from macos/FluentUI/DatePicker/DatePickerController.swift rename to Sources/FluentUI_macOS/Components/DatePicker/DatePickerController.swift diff --git a/macos/FluentUI/DatePicker/DatePickerView.swift b/Sources/FluentUI_macOS/Components/DatePicker/DatePickerView.swift similarity index 100% rename from macos/FluentUI/DatePicker/DatePickerView.swift rename to Sources/FluentUI_macOS/Components/DatePicker/DatePickerView.swift diff --git a/macos/FluentUI/DynamicColor/DynamicColor.swift b/Sources/FluentUI_macOS/Components/DynamicColor/DynamicColor.swift similarity index 100% rename from macos/FluentUI/DynamicColor/DynamicColor.swift rename to Sources/FluentUI_macOS/Components/DynamicColor/DynamicColor.swift diff --git a/macos/FluentUI/FilledTemplateImageView/FilledTemplateImageView.swift b/Sources/FluentUI_macOS/Components/FilledTemplateImageView/FilledTemplateImageView.swift similarity index 100% rename from macos/FluentUI/FilledTemplateImageView/FilledTemplateImageView.swift rename to Sources/FluentUI_macOS/Components/FilledTemplateImageView/FilledTemplateImageView.swift diff --git a/macos/FluentUI/Link/Link.swift b/Sources/FluentUI_macOS/Components/Link/Link.swift similarity index 100% rename from macos/FluentUI/Link/Link.swift rename to Sources/FluentUI_macOS/Components/Link/Link.swift diff --git a/macos/FluentUI/Notification/NotificationBarView.swift b/Sources/FluentUI_macOS/Components/Notification/NotificationBarView.swift similarity index 100% rename from macos/FluentUI/Notification/NotificationBarView.swift rename to Sources/FluentUI_macOS/Components/Notification/NotificationBarView.swift diff --git a/macos/FluentUI/Separator/Separator.swift b/Sources/FluentUI_macOS/Components/Separator/Separator.swift similarity index 100% rename from macos/FluentUI/Separator/Separator.swift rename to Sources/FluentUI_macOS/Components/Separator/Separator.swift diff --git a/macos/FluentUI/Core/ColorProviding.swift b/Sources/FluentUI_macOS/Core/ColorProviding.swift similarity index 100% rename from macos/FluentUI/Core/ColorProviding.swift rename to Sources/FluentUI_macOS/Core/ColorProviding.swift diff --git a/macos/FluentUI/Core/Colors.swift b/Sources/FluentUI_macOS/Core/Colors.swift similarity index 100% rename from macos/FluentUI/Core/Colors.swift rename to Sources/FluentUI_macOS/Core/Colors.swift diff --git a/macos/FluentUI/Core/FluentUIResources.swift b/Sources/FluentUI_macOS/Core/FluentUIResources.swift similarity index 100% rename from macos/FluentUI/Core/FluentUIResources.swift rename to Sources/FluentUI_macOS/Core/FluentUIResources.swift diff --git a/macos/FluentUI/FluentUI-Info.plist b/Sources/FluentUI_macOS/FluentUI-Info.plist similarity index 100% rename from macos/FluentUI/FluentUI-Info.plist rename to Sources/FluentUI_macOS/FluentUI-Info.plist diff --git a/macos/FluentUI/FluentUI.h b/Sources/FluentUI_macOS/FluentUI.h similarity index 100% rename from macos/FluentUI/FluentUI.h rename to Sources/FluentUI_macOS/FluentUI.h diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/AvatarView/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/AvatarView/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/AvatarView/borderColor.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/AvatarView/borderColor.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/AvatarView/borderColor.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/AvatarView/borderColor.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/brandBackgroundDisabled.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/brandBackgroundDisabled.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/brandBackgroundDisabled.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/brandBackgroundDisabled.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/brandForegroundDisabled.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/brandForegroundDisabled.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/brandForegroundDisabled.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/brandForegroundDisabled.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/firstOuterDropShadow.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/firstOuterDropShadow.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/firstOuterDropShadow.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/firstOuterDropShadow.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/innerShadow.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/innerShadow.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/innerShadow.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/innerShadow.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground2.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground2.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground2.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground2.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground3.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground3.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground3.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralBackground3.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground2.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground2.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground2.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground2.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground3.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground3.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground3.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralForeground3.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralInverted.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralInverted.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralInverted.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralInverted.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralStroke2.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralStroke2.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/neutralStroke2.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/neutralStroke2.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/secondOuterDropShadow.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/secondOuterDropShadow.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/ButtonColors/secondOuterDropShadow.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/ButtonColors/secondOuterDropShadow.colorset/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/Contents.json diff --git a/macos/FluentUITestApp/Assets.xcassets/Colors/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/Contents.json similarity index 100% rename from macos/FluentUITestApp/Assets.xcassets/Colors/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/anchorShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/anchorShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/anchorShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/anchorShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/anchorTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/anchorTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/anchorTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/anchorTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/beigeShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/beigeShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/beigeShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/beigeShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/beigeTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/beigeTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/beigeTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/beigeTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/black.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/black.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/black.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/black.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blue10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blue10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blue10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blue10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueMagenta30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/blueTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/blueTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brassShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brassShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brassShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brassShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brassTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brassTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brassTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brassTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brownShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brownShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brownShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brownShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brownTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brownTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/brownTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/brownTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/clear.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/clear.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/clear.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/clear.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlue.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlue.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlue.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlue.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/communicationBlueTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cornFlowerTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cranberryShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cranberryShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cranberryShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cranberryShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cranberryTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cranberryTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cranberryTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cranberryTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyan20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyan20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyan20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyan20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyan30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyan30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyan30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyan30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/cyanBlue20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerPrimary.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerPrimary.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerPrimary.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerPrimary.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/dangerTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkGreenTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkRedShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkRedShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkRedShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkRedShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkRedTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkRedTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/darkRedTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/darkRedTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/forestShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/forestShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/forestShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/forestShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/forestTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/forestTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/forestTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/forestTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/goldShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/goldShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/goldShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/goldShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/goldTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/goldTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/goldTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/goldTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/grapeShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/grapeShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/grapeShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/grapeShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/grapeTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/grapeTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/grapeTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/grapeTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray100.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray100.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray100.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray100.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray200.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray200.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray200.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray200.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray25.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray25.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray25.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray25.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray300.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray300.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray300.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray300.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray400.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray400.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray400.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray400.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray50.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray50.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray50.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray50.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray500.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray500.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray500.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray500.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray600.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray600.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray600.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray600.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray700.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray700.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray700.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray700.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray800.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray800.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray800.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray800.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray900.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray900.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray900.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray900.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray950.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray950.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/gray950.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/gray950.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/green10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/green10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/green10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/green10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/green20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/green20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/green20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/green20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lavenderShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lavenderShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lavenderShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lavenderShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lavenderTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lavenderTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lavenderTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lavenderTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lightTealShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lightTealShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lightTealShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lightTealShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lightTealTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lightTealTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lightTealTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lightTealTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lilacShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lilacShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lilacShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lilacShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lilacTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lilacTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/lilacTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/lilacTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magenta10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magenta10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magenta10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magenta10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magenta20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magenta20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magenta20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magenta20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaPink10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaPink10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaPink10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaPink10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/magentaTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/magentaTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/marigoldShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/marigoldShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/marigoldShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/marigoldShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/marigoldTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/marigoldTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/marigoldTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/marigoldTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/minkShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/minkShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/minkShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/minkShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/minkTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/minkTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/minkTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/minkTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/navyShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/navyShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/navyShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/navyShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/navyTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/navyTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/navyTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/navyTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orange20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orange20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orange20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orange20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orange30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orange30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orange30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orange30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orangeYellow20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orangeYellow20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/orangeYellow20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/orangeYellow20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/peachShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/peachShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/peachShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/peachShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/peachTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/peachTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/peachTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/peachTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkRed10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkRed10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkRed10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkRed10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pinkTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pinkTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/platinumShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/platinumShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/platinumShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/platinumShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/platinumTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/platinumTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/platinumTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/platinumTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/plumShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/plumShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/plumShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/plumShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/plumTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/plumTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/plumTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/plumTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceAvailable.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceAvailable.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceAvailable.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceAvailable.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceAway.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceAway.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceAway.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceAway.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceBlocked.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceBlocked.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceBlocked.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceBlocked.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceBusy.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceBusy.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceBusy.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceBusy.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceDnd.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceDnd.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceDnd.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceDnd.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceOffline.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceOffline.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceOffline.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceOffline.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceOof.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceOof.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceOof.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceOof.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceUnknown.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceUnknown.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/presenceUnknown.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/presenceUnknown.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/pumpkinTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/purpleShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/purpleShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/purpleShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/purpleShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/purpleTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/purpleTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/purpleTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/purpleTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/red10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/red10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/red10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/red10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/red20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/red20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/red20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/red20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/redShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/redShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/redShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/redShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/redTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/redTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/redTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/redTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/royalBlueTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/seafoamShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/seafoamShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/seafoamShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/seafoamShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/seafoamTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/seafoamTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/seafoamTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/seafoamTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/steelShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/steelShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/steelShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/steelShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/steelTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/steelTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/steelTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/steelTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successPrimary.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successPrimary.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successPrimary.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successPrimary.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/successTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/successTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/tealShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/tealShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/tealShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/tealShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/tealTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/tealTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/tealTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/tealTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningPrimary.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningPrimary.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningPrimary.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningPrimary.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningShade30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningShade30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint10.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint10.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint10.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint10.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint20.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint20.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint20.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint20.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint30.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint30.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint30.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint30.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint40.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint40.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/warningTint40.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/warningTint40.colorset/Contents.json diff --git a/macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/white.colorset/Contents.json b/Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/white.colorset/Contents.json similarity index 100% rename from macos/FluentUI/Resources/FluentUI-macos.xcassets/FluentColors/white.colorset/Contents.json rename to Sources/FluentUI_macOS/Resources/FluentUI-macos.xcassets/FluentColors/white.colorset/Contents.json diff --git a/macos/FluentUI/Resources/Strings/ar.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ar.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ar.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ar.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ca.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ca.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ca.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ca.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/cs.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/cs.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/cs.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/cs.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/da.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/da.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/da.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/da.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/de.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/de.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/de.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/de.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/el.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/el.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/el.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/el.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/en-GB.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/en-GB.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/en-GB.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/en-GB.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/en.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/en.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/en.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/en.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/es-MX.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/es-MX.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/es-MX.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/es-MX.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/es.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/es.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/es.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/es.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/fi.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/fi.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/fi.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/fi.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/fr.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/fr.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/fr.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/fr.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/he.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/he.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/he.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/he.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/hi.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/hi.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/hi.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/hi.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/hr.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/hr.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/hr.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/hr.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/hu.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/hu.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/hu.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/hu.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/id.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/id.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/id.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/id.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/it.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/it.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/it.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/it.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ja.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ja.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ja.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ja.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ko.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ko.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ko.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ko.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ms.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ms.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ms.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ms.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/nb-NO.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/nb-NO.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/nb-NO.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/nb-NO.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/nl.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/nl.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/nl.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/nl.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/pl.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/pl.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/pl.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/pl.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/pt-BR.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/pt-BR.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/pt-BR.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/pt-BR.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/pt-PT.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/pt-PT.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/pt-PT.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/pt-PT.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ro.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ro.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ro.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ro.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/ru.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/ru.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/ru.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/ru.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/sk.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/sk.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/sk.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/sk.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/sv.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/sv.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/sv.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/sv.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/th.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/th.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/th.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/th.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/tr.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/tr.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/tr.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/tr.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/uk.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/uk.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/uk.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/uk.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/vi.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/vi.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/vi.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/vi.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/zh-Hans.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/zh-Hans.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/zh-Hans.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/zh-Hans.lproj/FluentUI.strings diff --git a/macos/FluentUI/Resources/Strings/zh-Hant.lproj/FluentUI.strings b/Sources/FluentUI_macOS/Resources/Strings/zh-Hant.lproj/FluentUI.strings similarity index 100% rename from macos/FluentUI/Resources/Strings/zh-Hant.lproj/FluentUI.strings rename to Sources/FluentUI_macOS/Resources/Strings/zh-Hant.lproj/FluentUI.strings diff --git a/ios/FluentUI.Tests/AvatarTests.swift b/Tests/FluentUI_iOS_Tests/AvatarTests.swift similarity index 100% rename from ios/FluentUI.Tests/AvatarTests.swift rename to Tests/FluentUI_iOS_Tests/AvatarTests.swift diff --git a/ios/FluentUI.Tests/ColorTests.swift b/Tests/FluentUI_iOS_Tests/ColorTests.swift similarity index 100% rename from ios/FluentUI.Tests/ColorTests.swift rename to Tests/FluentUI_iOS_Tests/ColorTests.swift diff --git a/ios/FluentUI.Tests/DatePickerControllerTests.swift b/Tests/FluentUI_iOS_Tests/DatePickerControllerTests.swift similarity index 100% rename from ios/FluentUI.Tests/DatePickerControllerTests.swift rename to Tests/FluentUI_iOS_Tests/DatePickerControllerTests.swift diff --git a/ios/FluentUI.Tests/FluentUITests.swift b/Tests/FluentUI_iOS_Tests/FluentUITests.swift similarity index 100% rename from ios/FluentUI.Tests/FluentUITests.swift rename to Tests/FluentUI_iOS_Tests/FluentUITests.swift diff --git a/ios/FluentUI.Tests/FontTests.swift b/Tests/FluentUI_iOS_Tests/FontTests.swift similarity index 100% rename from ios/FluentUI.Tests/FontTests.swift rename to Tests/FluentUI_iOS_Tests/FontTests.swift diff --git a/ios/FluentUI.Tests/Info.plist b/Tests/FluentUI_iOS_Tests/Info.plist similarity index 100% rename from ios/FluentUI.Tests/Info.plist rename to Tests/FluentUI_iOS_Tests/Info.plist diff --git a/macos/FluentUIUnitTest/AvatarViewTests.swift b/Tests/FluentUI_macOS_Tests/AvatarViewTests.swift similarity index 100% rename from macos/FluentUIUnitTest/AvatarViewTests.swift rename to Tests/FluentUI_macOS_Tests/AvatarViewTests.swift diff --git a/macos/FluentUIUnitTest/DatePickerControllerTests.swift b/Tests/FluentUI_macOS_Tests/DatePickerControllerTests.swift similarity index 100% rename from macos/FluentUIUnitTest/DatePickerControllerTests.swift rename to Tests/FluentUI_macOS_Tests/DatePickerControllerTests.swift diff --git a/ios/FluentUI.Resources/Info.plist b/ios/FluentUI.Resources/Info.plist deleted file mode 100644 index ee978d11f8..0000000000 --- a/ios/FluentUI.Resources/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleShortVersionString</key> - <string>0.30.0</string> - <key>CFBundleVersion</key> - <string>0.30.0</string> -</dict> -</plist> diff --git a/ios/xcode/FluentUILib_common.xcconfig b/ios/xcode/FluentUILib_common.xcconfig deleted file mode 100644 index 4d9d1cd323..0000000000 --- a/ios/xcode/FluentUILib_common.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -CODE_SIGN_STYLE = Automatic -MTL_FAST_MATH = YES -OTHER_LDFLAGS = -ObjC -PRODUCT_NAME = FluentUI -SKIP_INSTALL = YES -SWIFT_VERSION = 5.0 - -// Objective C header file paths -FLUENT_HSP_INPUT = $(DERIVED_SOURCES_DIR) -FLUENT_HSP_OUTPUT = $(BUILT_PRODUCTS_DIR)/include/$(PRODUCT_MODULE_NAME) diff --git a/ios/xcode/FluentUILib_debug.xcconfig b/ios/xcode/FluentUILib_debug.xcconfig deleted file mode 100644 index 4caa90885b..0000000000 --- a/ios/xcode/FluentUILib_debug.xcconfig +++ /dev/null @@ -1,7 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -#include "FluentUILib_common.xcconfig" -ENABLE_ADDRESS_SANITIZER = YES diff --git a/ios/xcode/FluentUILib_release.xcconfig b/ios/xcode/FluentUILib_release.xcconfig deleted file mode 100644 index aa0bb9fcc8..0000000000 --- a/ios/xcode/FluentUILib_release.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -#include "FluentUILib_common.xcconfig" diff --git a/ios/xcode/FluentUIResources.xcconfig b/ios/xcode/FluentUIResources.xcconfig deleted file mode 100644 index b6e34366b3..0000000000 --- a/ios/xcode/FluentUIResources.xcconfig +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -CODE_SIGNING_ALLOWED = NO -INFOPLIST_FILE = FluentUI.Resources/Info.plist -INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Bundles -PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.FluentUIResources-ios -PRODUCT_NAME = FluentUIResources-ios -SKIP_INSTALL = YES -WRAPPER_EXTENSION = bundle diff --git a/ios/xcode/FluentUITests.xcconfig b/ios/xcode/FluentUITests.xcconfig deleted file mode 100644 index f2851e0c21..0000000000 --- a/ios/xcode/FluentUITests.xcconfig +++ /dev/null @@ -1,17 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CODE_SIGN_STYLE = Automatic -DEVELOPMENT_TEAM = UBF8T346G9 -INFOPLIST_FILE = FluentUI.Tests/Info.plist -LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks -OTHER_LDFLAGS = -ObjC -PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.FluentUITests -PRODUCT_NAME = $(TARGET_NAME) -SUPPORTED_PLATFORMS = iphoneos iphonesimulator xros xrsimulator -SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO -SWIFT_VERSION = 5.0 -TARGETED_DEVICE_FAMILY = 1,2,7 diff --git a/ios/xcode/FluentUI_common.xcconfig b/ios/xcode/FluentUI_common.xcconfig deleted file mode 100644 index ce5b744bc5..0000000000 --- a/ios/xcode/FluentUI_common.xcconfig +++ /dev/null @@ -1,56 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -ALWAYS_SEARCH_USER_PATHS = NO -CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES -CLANG_ANALYZER_NONNULL = YES -CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE -CLANG_CXX_LANGUAGE_STANDARD = gnu++14 -CLANG_CXX_LIBRARY = libc++ -CLANG_ENABLE_MODULES = YES -CLANG_ENABLE_OBJC_ARC = YES -CLANG_ENABLE_OBJC_WEAK = YES -CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES -CLANG_WARN_BOOL_CONVERSION = YES -CLANG_WARN_COMMA = YES -CLANG_WARN_CONSTANT_CONVERSION = YES -CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES -CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR -CLANG_WARN_DOCUMENTATION_COMMENTS = YES -CLANG_WARN_EMPTY_BODY = YES -CLANG_WARN_ENUM_CONVERSION = YES -CLANG_WARN_INFINITE_RECURSION = YES -CLANG_WARN_INT_CONVERSION = YES -CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -CLANG_WARN_OBJC_LITERAL_CONVERSION = YES -CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR -CLANG_WARN_RANGE_LOOP_ANALYSIS = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_SUSPICIOUS_MOVE = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN_UNREACHABLE_CODE = YES -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CODE_SIGN_IDENTITY = iPhone Developer -COPY_PHASE_STRIP = NO -CURRENT_PROJECT_VERSION = 1 -ENABLE_STRICT_OBJC_MSGSEND = YES -GCC_C_LANGUAGE_STANDARD = gnu11 -GCC_NO_COMMON_BLOCKS = YES -GCC_TREAT_WARNINGS_AS_ERRORS = YES -GCC_WARN_64_TO_32_BIT_CONVERSION = YES -GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR -GCC_WARN_UNDECLARED_SELECTOR = YES -GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE -GCC_WARN_UNUSED_FUNCTION = YES -GCC_WARN_UNUSED_VARIABLE = YES -IPHONEOS_DEPLOYMENT_TARGET = 16.0 -SDKROOT = iphoneos -SUPPORTED_PLATFORMS = iphoneos iphonesimulator xros xrsimulator -SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO -SWIFT_TREAT_WARNINGS_AS_ERRORS = YES -TARGETED_DEVICE_FAMILY = 1,2,7 -VERSIONING_SYSTEM = apple-generic -VERSION_INFO_PREFIX = diff --git a/ios/xcode/FluentUI_debug.xcconfig b/ios/xcode/FluentUI_debug.xcconfig deleted file mode 100644 index a8e7a4cf92..0000000000 --- a/ios/xcode/FluentUI_debug.xcconfig +++ /dev/null @@ -1,17 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -#include "FluentUI_common.xcconfig" - -DEBUG_INFORMATION_FORMAT = dwarf -ENABLE_TESTABILITY = YES -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 -MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE -ONLY_ACTIVE_ARCH = YES -GCC_DYNAMIC_NO_PIC = NO -GCC_OPTIMIZATION_LEVEL = 0 -SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG -SWIFT_OPTIMIZATION_LEVEL = -Onone -ENABLE_ADDRESS_SANITIZER = YES diff --git a/ios/xcode/FluentUI_release.xcconfig b/ios/xcode/FluentUI_release.xcconfig deleted file mode 100644 index cd05717b5a..0000000000 --- a/ios/xcode/FluentUI_release.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// - -#include "FluentUI_common.xcconfig" - -DEBUG_INFORMATION_FORMAT = dwarf-with-dsym -ENABLE_NS_ASSERTIONS = NO -MTL_ENABLE_DEBUG_INFO = NO -SWIFT_COMPILATION_MODE = wholemodule -SWIFT_OPTIMIZATION_LEVEL = -O -VALIDATE_PRODUCT = YES diff --git a/macos/FluentUIResources-macos/FluentUIResources-Info.plist b/macos/FluentUIResources-macos/FluentUIResources-Info.plist deleted file mode 100644 index f3ada4c873..0000000000 --- a/macos/FluentUIResources-macos/FluentUIResources-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> - <key>NSPrincipalClass</key> - <string></string> -</dict> -</plist> diff --git a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme b/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme deleted file mode 100644 index 4d40fb6e4d..0000000000 --- a/macos/xcode/FluentUI.xcodeproj/xcshareddata/xcschemes/FluentUI-macOS.xcscheme +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1340" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "FluentUI" - BuildableName = "FluentUI" - BlueprintName = "FluentUI" - ReferencedContainer = "container:../.."> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - enableAddressSanitizer = "YES" - enableASanStackUseAfterReturn = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "E61C96BA2295E8D60006561F" - BuildableName = "FluentUIUnitTests.xctest" - BlueprintName = "FluentUITests" - ReferencedContainer = "container:FluentUI.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/scripts/BumpVersion.swift b/scripts/BumpVersion.swift index c59a12900b..c42e263bd4 100755 --- a/scripts/BumpVersion.swift +++ b/scripts/BumpVersion.swift @@ -128,7 +128,7 @@ do { func updatePlist(path: String, values: [String]) { guard let plistData = FileManager.default.contents(atPath: path), var plistDictionary = try? PropertyListSerialization.propertyList(from: plistData, options: [], format: nil) as? [String: Any] else { - print("\(redColor)Error: Failed to read plist file.\(resetColor)") + print("\(redColor)Error: Failed to read plist file at \(path).\(resetColor)") exit(1) } @@ -139,14 +139,14 @@ func updatePlist(path: String, values: [String]) { } guard let modifiedPlistData = try? PropertyListSerialization.data(fromPropertyList: plistDictionary, format: .xml, options: 0) else { - print("\(redColor)Failed to serialize plist data.\(resetColor)") + print("\(redColor)Failed to serialize plist data at \(path).\(resetColor)") exit(1) } do { try modifiedPlistData.write(to: URL(fileURLWithPath: path)) } catch { - print("\(redColor)Failed to write modified plist data. \(error.localizedDescription)\(resetColor)") + print("\(redColor)Failed to write modified plist data at \(path). \(error.localizedDescription)\(resetColor)") exit(1) } } @@ -154,16 +154,16 @@ func updatePlist(path: String, values: [String]) { let values = newVersion.components(separatedBy: ".") let majorBump = Int(values[0])! -updatePlist(path: "\(currentDirectory)/ios/FluentUI.Demo/FluentUI.Demo/Info.plist", +updatePlist(path: "\(currentDirectory)/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist", values: ["\(1 + majorBump)\(croppedNewValue)", "\(137 + majorBump)\(croppedNewValue)"]) -updatePlist(path: "\(currentDirectory)/ios/FluentUI.Resources/Version.plist", +updatePlist(path: "\(currentDirectory)/Sources/FluentUI_iOS/Resources/Version.plist", values: [newVersion, newVersion]) -updatePlist(path: "\(currentDirectory)/macos/FluentUI/FluentUI-Info.plist", +updatePlist(path: "\(currentDirectory)/Sources/FluentUI_macOS/FluentUI-Info.plist", values: [newVersion, newVersion]) -updatePlist(path: "\(currentDirectory)/macos/FluentUITestApp/FluentUITestApp-Info.plist", +updatePlist(path: "\(currentDirectory)/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist", values: [newVersion, "\(62 + majorBump)\(croppedNewValue)"]) print("\(greenColor)Successfully updated fluent version to \(newVersion)!\nFeel free to verify all strings have been bumped properly. For reference, see https://github.com/microsoft/fluentui-apple/pull/1812/files.\(resetColor)") diff --git a/scripts/generate_build_number.sh b/scripts/generate_build_number.sh deleted file mode 100755 index 5ad7405313..0000000000 --- a/scripts/generate_build_number.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Tweak our build number and export it as a variable for the nuget packing script -BUILD_VERSION_SUFFIX="" -BUILD_VERSION_STRING="0.0.0.1" - -if [ -n "$BUILD_NUMBER_SUFFIX_OVERRIDE" ]; then - # Allow someone calling us to provide an override to always add a suffix to a given build number by providing an env variable - ADJUSTED_BUILD_NUMBER_SUFFIX_OVERRIDE="${BUILD_NUMBER_SUFFIX_OVERRIDE//[^a-z0-9A-Z]/}" - BUILD_VERSION_SUFFIX="-$ADJUSTED_BUILD_NUMBER_SUFFIX_OVERRIDE" -elif [ -n "$BUILD_SOURCEBRANCHNAME" ] && [ "$BUILD_SOURCEBRANCHNAME" != "main" ]; then - # Otherwise append the branch name unless we're the main branch for this repo - ADJUSTED_SOURCEBRANCHNAME="${BUILD_SOURCEBRANCHNAME//[^a-z0-9A-Z]/}" - BUILD_VERSION_SUFFIX="-$ADJUSTED_SOURCEBRANCHNAME" -fi - -if [ -n "$BUILD_BUILDNUMBER" ]; then - BUILD_VERSION_STRING="$BUILD_BUILDNUMBER" -fi - -echo "Original Build Number: $BUILD_BUILDNUMBER" -echo "Adjusted Build Number: $BUILD_VERSION_STRING$BUILD_VERSION_SUFFIX" - -echo "##vso[task.setvariable variable=sanitizedBuildNumber]$BUILD_VERSION_STRING$BUILD_VERSION_SUFFIX" diff --git a/scripts/localize.sh b/scripts/localize.sh index d419cc5e9a..534c40c3f3 100755 --- a/scripts/localize.sh +++ b/scripts/localize.sh @@ -20,7 +20,7 @@ if [ -z $TDBUILD_AAD_APPLICATION_CLIENT_SECRET ]; then fi # Localize iOS resources -scripts/GetLocalizedFiles.sh -t $TDBUILD_TEAM_ID -u -a $TDBUILD_AAD_APPLICATION_CLIENT_ID -p $TDBUILD_AAD_APPLICATION_CLIENT_SECRET -f ios/FluentUI/Resources/Localization/en.lproj -r ios -o ios/FluentUI/Resources/Localization +scripts/GetLocalizedFiles.sh -t $TDBUILD_TEAM_ID -u -a $TDBUILD_AAD_APPLICATION_CLIENT_ID -p $TDBUILD_AAD_APPLICATION_CLIENT_SECRET -f Sources/FluentUI_iOS/Resources/Localization/en.lproj -r ios -o Sources/FluentUI_iOS/Resources/Localization # Localize macOS resources -scripts/GetLocalizedFiles.sh -t $TDBUILD_TEAM_ID -u -a $TDBUILD_AAD_APPLICATION_CLIENT_ID -p $TDBUILD_AAD_APPLICATION_CLIENT_SECRET -f macos/FluentUI/Resources/Strings/en.lproj -r macos -o macos/FluentUI/Resources/Strings +scripts/GetLocalizedFiles.sh -t $TDBUILD_TEAM_ID -u -a $TDBUILD_AAD_APPLICATION_CLIENT_ID -p $TDBUILD_AAD_APPLICATION_CLIENT_SECRET -f Sources/FluentUI_macOS/Resources/Strings/en.lproj -r macos -o Sources/FluentUI_macOS/Resources/Strings diff --git a/scripts/nuget_publish.sh b/scripts/nuget_publish.sh deleted file mode 100755 index 0fa6b44624..0000000000 --- a/scripts/nuget_publish.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -# nuget_publish.sh -# A local version of the fluentui-apple-publish-nuget.yml Azure Pipeline that fires all the jobs sequentially. -# Useful for local validation, keep in sync with .ado/fluentui-apple-publish-nuget.yml -# Note: Execute this script from the root of the repository, such as `./scripts/nuget_publish.sh` - -# Keep an exit code so that we can return a non-zero exit code if any build fails -# while still running all builds each time. -EXIT_CODE=0 - -# Path to the xcode build wrapper script -XCODEBUILD_WRAPPER_LOCATION='scripts/xcodebuild_wrapper.sh' - -# Extra arguments for xcode build to mimic nuget publishing environment -DERIVED_DATA_EXTRA_ARG='-derivedDataPath DerivedData' -STANDARD_XCCONFIG_EXTRA_ARG='-xcconfig .ado/xcconfig/publish_overrides.xcconfig' -IOS_DEVICE_XCCONFIG_EXTRA_ARG='-xcconfig .ado/xcconfig/publish_overrides_ios_device.xcconfig' - -function handle_exit_code() -{ - if [ $? -ne 0 ] - then - echo "Previous command exited with non-zero exit code" - # Intentionally changing the global EXIT_CODE variable - EXIT_CODE=1 - fi -} - -echo "Building and Testing macOS Debug" -$XCODEBUILD_WRAPPER_LOCATION macos_build FluentUI-macOS Debug build $DERIVED_DATA_EXTRA_ARG $STANDARD_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Building and Testing macOS Release" -$XCODEBUILD_WRAPPER_LOCATION macos_build FluentUI-macOS Release build $DERIVED_DATA_EXTRA_ARG $STANDARD_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Building iOS Static Lib Debug Simulator" -$XCODEBUILD_WRAPPER_LOCATION ios_simulator_build FluentUI-iOS Debug build $DERIVED_DATA_EXTRA_ARG $STANDARD_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Building iOS Static Lib Release Simulator" -$XCODEBUILD_WRAPPER_LOCATION ios_simulator_build FluentUI-iOS Release build $DERIVED_DATA_EXTRA_ARG $STANDARD_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Building Static Lib iOS Debug Device" -$XCODEBUILD_WRAPPER_LOCATION ios_device_build FluentUI-iOS Debug build $DERIVED_DATA_EXTRA_ARG $IOS_DEVICE_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Building iOS Release Static Lib Device" -$XCODEBUILD_WRAPPER_LOCATION ios_device_build FluentUI-iOS Release build $DERIVED_DATA_EXTRA_ARG $IOS_DEVICE_XCCONFIG_EXTRA_ARG -handle_exit_code - -echo "Running scripts/prepare_for_nuget_pack.sh" -scripts/prepare_for_nuget_pack.sh -handle_exit_code - -# Check if any of our individual build steps failed -if [ $EXIT_CODE -ne 0 ] -then - echo "NuGet Pack Build Failed, please check logs for failures" -else - echo "NuGet Pack Build Succeeded" -fi - -exit $EXIT_CODE \ No newline at end of file diff --git a/scripts/prepare_for_nuget_pack.sh b/scripts/prepare_for_nuget_pack.sh deleted file mode 100755 index 307e1d3360..0000000000 --- a/scripts/prepare_for_nuget_pack.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash - -# NuGet packing doesn't support symlinks, so zip up our frameworks first to preserve the symlinks - -# Fail if any of the commands fails to run -set -e - -# Make a directory if necessary, no-op if it already exists -# -# \param $1 the name of the folder to create -function make_dir_if_necessary() -{ - if ! [ -d "$1" ]; then - echo "Making $1 folder" - mkdir "$1" - else - echo "$1 folder already exists" - fi -} - -# A thin wrapper around rsync to exclude specific swift source info files -# -# \param $1+ the standard input to rsync without any extra flags provided -function rsync_excluding_swift_source_info_files() -{ - rsync -a --exclude '*.swiftsourceinfo' --prune-empty-dirs "$@" -} - -# Build up our output directory in Products/nuget -PRODUCTS_DIR="DerivedData/Build/Products" -NUGET_OUTPUT_DIR="$PRODUCTS_DIR/nuget" -make_dir_if_necessary "$NUGET_OUTPUT_DIR" - -NUGET_OUTPUT_INCLUDE_DIR="$NUGET_OUTPUT_DIR/include" -make_dir_if_necessary "$NUGET_OUTPUT_INCLUDE_DIR" - -NUGET_OUTPUT_INCLUDE_DIR_IOS="$NUGET_OUTPUT_INCLUDE_DIR/ios" -make_dir_if_necessary "$NUGET_OUTPUT_INCLUDE_DIR_IOS" - -NUGET_OUTPUT_INCLUDE_DIR_IOS_FLUENTUI="$NUGET_OUTPUT_INCLUDE_DIR_IOS/FluentUI" -make_dir_if_necessary "$NUGET_OUTPUT_INCLUDE_DIR_IOS_FLUENTUI" - -# Copy a single generated header into our output directory in an includes folder. Ensure we nest a FluentUI folder for proper `#import <FluentUI/FluentUI-Swift.h>` imports -# Pick the release simulator header since the device target has some arm64 specific ifdefs while the simulator version works on all platforms. -# Rename the FluentUILib-Swift.h to FluentUI-Swift.h for consistency with Framework consumption -echo "Copy iOS generated Swift header to include dir" -rsync -a "DerivedData/Build/Intermediates.noindex/FluentUI.build/Release-iphonesimulator/FluentUILib.build/DerivedSources/FluentUI-Swift.h" "$NUGET_OUTPUT_INCLUDE_DIR_IOS_FLUENTUI/FluentUI-Swift.h" - -# cd into the products directory to make copying all the output easier -cd $PRODUCTS_DIR - -# Copy each platform -make_dir_if_necessary "nuget/Debug-macosx" -echo "Copy Debug-macosx Framework into nuget folder" -rsync_excluding_swift_source_info_files Debug/FluentUI.framework/ nuget/Debug-macosx/FluentUI.framework/ - -make_dir_if_necessary "nuget/Ship-macosx" -echo "Copy Ship-macosx Framework into nuget folder" -rsync_excluding_swift_source_info_files Release/FluentUI.framework/ nuget/Ship-macosx/FluentUI.framework/ - -make_dir_if_necessary "nuget/Debug-iphoneos" -echo "Copy Debug-iphoneos build output into nuget folder" -rsync -a Debug-iphoneos/libFluentUI.a nuget/Debug-iphoneos/ -rsync_excluding_swift_source_info_files Debug-iphoneos/FluentUI.swiftmodule/ nuget/Debug-iphoneos/FluentUI.swiftmodule/ -rsync -a Debug-iphoneos/FluentUIResources-ios.bundle/ nuget/Debug-iphoneos/FluentUIResources-ios.bundle/ - -make_dir_if_necessary "nuget/Ship-iphoneos" -echo "Copy Ship-iphoneos build output into nuget folder" -rsync -a Release-iphoneos/libFluentUI.a nuget/Ship-iphoneos/ -rsync_excluding_swift_source_info_files Release-iphoneos/FluentUI.swiftmodule/ nuget/Ship-iphoneos/FluentUI.swiftmodule/ -rsync -a Release-iphoneos/FluentUIResources-ios.bundle/ nuget/Ship-iphoneos/FluentUIResources-ios.bundle/ - -make_dir_if_necessary "nuget/Debug-iphonesimulator" -echo "Copy Debug-iphonesimulator build output into nuget folder" -rsync -a Debug-iphonesimulator/libFluentUI.a nuget/Debug-iphonesimulator/ -rsync_excluding_swift_source_info_files Debug-iphonesimulator/FluentUI.swiftmodule/ nuget/Debug-iphonesimulator/FluentUI.swiftmodule/ -rsync -a Debug-iphonesimulator/FluentUIResources-ios.bundle/ nuget/Debug-iphonesimulator/FluentUIResources-ios.bundle/ - -make_dir_if_necessary "nuget/Ship-iphonesimulator" -echo "Copy Ship-iphonesimulator build output into nuget folder" -rsync -a Release-iphonesimulator/libFluentUI.a nuget/Ship-iphonesimulator/ -rsync_excluding_swift_source_info_files Release-iphonesimulator/FluentUI.swiftmodule/ nuget/Ship-iphonesimulator/FluentUI.swiftmodule/ -rsync -a Release-iphonesimulator/FluentUIResources-ios.bundle/ nuget/Ship-iphonesimulator/FluentUIResources-ios.bundle/ - -# cd into our nuget folder to finally zip up our build output -cd "nuget" - -# Zip the build output -echo "Creating zip archive named BuildOutput.zip containing all the platform folders" -zip --symlinks -r BuildOutput.zip Debug-macosx/ Ship-macosx/ Debug-iphoneos/ Ship-iphoneos/ Debug-iphonesimulator/ Ship-iphonesimulator/ include/ - -exit $? diff --git a/scripts/xcodebuild_wrapper.sh b/scripts/xcodebuild_wrapper.sh index 185d2409ad..8d4e85ff0a 100755 --- a/scripts/xcodebuild_wrapper.sh +++ b/scripts/xcodebuild_wrapper.sh @@ -30,7 +30,7 @@ function invoke_xcodebuild() # \param $3+ build commands function ios_simulator_build() { - invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" iphonesimulator "${@:3}" + invoke_xcodebuild project "Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj" "$1" "$2" iphonesimulator "${@:3}" return $? } @@ -41,7 +41,7 @@ function ios_simulator_build() # \param $3+ build commands function ios_device_build() { - invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" iphoneos "${@:3}" + invoke_xcodebuild project "Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj" "$1" "$2" iphoneos "${@:3}" return $? } @@ -52,7 +52,7 @@ function ios_device_build() # \param $3+ build commands function macos_build() { - invoke_xcodebuild project "macos/xcode/FluentUI.xcodeproj" "$1" "$2" macosx "${@:3}" + invoke_xcodebuild project "Demos/FluentUIDemo_macOS/xcode/FluentUI.xcodeproj" "$1" "$2" macosx "${@:3}" return $? } @@ -63,7 +63,7 @@ function macos_build() # \param $3+ build commands function visionos_simulator_build() { - invoke_xcodebuild project "ios/FluentUI.Demo/FluentUI.Demo.xcodeproj" "$1" "$2" xrsimulator "${@:3}" + invoke_xcodebuild project "Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj" "$1" "$2" xrsimulator "${@:3}" return $? } From 56619e44b48f6d32ade2c6a886796a3440b75bfd Mon Sep 17 00:00:00 2001 From: Lamine Male <106181067+laminesm@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:31:07 -0700 Subject: [PATCH 73/90] Change max allowed tabs from 5 to 6 in TabBarView (#2092) --- Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift index bbe7ed4679..4972ffe706 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift @@ -149,7 +149,7 @@ open class TabBarView: UIView, TokenizedControlInternal { @objc public static let tabBarPadHeight: CGFloat = TabBarTokenSet.padHeight private struct Constants { - static let maxTabCount: Int = 5 + static let maxTabCount: Int = 6 } private let backgroundView: UIVisualEffectView = { From 9e9db43e3f793ae7152e14bfc285f929271b7701 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:18:47 -0700 Subject: [PATCH 74/90] Fix links (#2091) --- Demos/FluentUIDemo_iOS/appcenter-pre-build.sh | 2 +- Sources/FluentUI_iOS/CONTRIBUTING.md | 6 +++--- Sources/FluentUI_iOS/README.md | 8 ++++---- Sources/FluentUI_macOS/CONTRIBUTING.md | 4 ++-- .../FluentUI_macOS}/README.md | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) rename {Demos/FluentUIDemo_macOS => Sources/FluentUI_macOS}/README.md (94%) diff --git a/Demos/FluentUIDemo_iOS/appcenter-pre-build.sh b/Demos/FluentUIDemo_iOS/appcenter-pre-build.sh index d8bf924915..f75daed556 100644 --- a/Demos/FluentUIDemo_iOS/appcenter-pre-build.sh +++ b/Demos/FluentUIDemo_iOS/appcenter-pre-build.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash echo 'Replacing AppCenterSecret placeholder...' -sed -i '' -e "s/$AppCenterSecretPlaceHolder/\"$AppCenterSecret\"/g" ./FluentUI.Demo/FluentUI.Demo/AppDelegate.swift +sed -i '' -e "s/$AppCenterSecretPlaceHolder/\"$AppCenterSecret\"/g" ./FluentUI.Demo/AppDelegate.swift diff --git a/Sources/FluentUI_iOS/CONTRIBUTING.md b/Sources/FluentUI_iOS/CONTRIBUTING.md index d7b20adae2..1589227f61 100644 --- a/Sources/FluentUI_iOS/CONTRIBUTING.md +++ b/Sources/FluentUI_iOS/CONTRIBUTING.md @@ -6,17 +6,17 @@ Included in this repository is a demo that showcases all the currently available To build and run the demo app follow these steps: - Clone the [FluentUI](https://github.com/microsoft/fluentui-apple) repository. -- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. +- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose an iOS Simulator(or Device if you have your own device provisioning profile) to deploy to. - Make sure Swift Package Manager has download 2 dependencies(appcenter-sdk-apple and PLCrashReporter) for demo app. - Build and Run the demo app ## Adding a new component -- Create a new folder of the Control name (ex. Foo) under under [FluentUI](FluentUI) +- Create a new folder of the Control name (ex. Foo) under [Components](Components) - Create a new swift file. (ex. Foo.swift) - Add Foo.swift in Fluent xcode project (All the files are in alphabetical order) - Make sure your file is under FluentUILib target -- Create and add a demo controller in the Fluent demo app under [Demos](FluentUI.Demo/FluentUI.Demo/Demos) (ex. FooDemoController.swift) +- Create and add a demo controller in the Fluent demo app under [Demos](/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos) (ex. FooDemoController.swift) - Add FooDemoController.swift to Fluent Demo xcode project (All the files are in alphabetical order) - Make sure it is part of FluentUI.Demo Target membership - Add your FooDemoController to the list of [DemoDescriptor](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos.swift) diff --git a/Sources/FluentUI_iOS/README.md b/Sources/FluentUI_iOS/README.md index 31286d9a82..8557d2b672 100644 --- a/Sources/FluentUI_iOS/README.md +++ b/Sources/FluentUI_iOS/README.md @@ -14,7 +14,7 @@ FluentUI for iOS is a native framework that provides the Microsoft UI experience ## Colors and Typography -FluentUI for iOS provides [colors](FluentUI/Core/Colors.swift) and [typography](FluentUI/Core/Fonts.swift) core to experiences within the Fluent Design language. +FluentUI for iOS provides [colors](Core/FluentTheme+Tokens.swift) and [typography](Core/FluentTheme+Tokens.swift) core to experiences within the Fluent Design language. ## Controls @@ -54,15 +54,15 @@ Some of the controls available include: - TableViewCellShimmer - Tooltip -A full list of currently supported controls can be found here: [FluentUI](FluentUI). +A full list of currently supported controls can be found here: [Components](Components). ## Demo app -Included in this repository is a demo of currently implemented controls. A full list of implemented controls available in the demo can be found here: [Demos](FluentUI.Demo/FluentUI.Demo/Demos). +Included in this repository is a demo of currently implemented controls. A full list of implemented controls available in the demo can be found here: [Demos](/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos). To build and deploy the demo follow these steps: - Download or clone the [FluentUI for iOS](https://github.com/microsoft/fluentui-apple) repository. -- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo/FluentUI.Demo.xcodeproj` in Xcode. +- Open `Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj` in Xcode. - In the Xcode scheme menu choose `Demo.development` and choose a device to deploy to. - Once deployed you can choose a control to demo from the list of controls on the selected device. diff --git a/Sources/FluentUI_macOS/CONTRIBUTING.md b/Sources/FluentUI_macOS/CONTRIBUTING.md index 7603fc71f3..36df84f0de 100644 --- a/Sources/FluentUI_macOS/CONTRIBUTING.md +++ b/Sources/FluentUI_macOS/CONTRIBUTING.md @@ -11,11 +11,11 @@ To build and deploy the demo follow these steps: - Once deployed you can choose a control to test from the list of controls in the left pane. ### Adding a new component -- Create a new folder of the Control name (ex. Foo) under [FluentUI](FluentUI) +- Create a new folder of the Control name (ex. Foo) under [Components](Components) - Create a new swift file. (ex. Foo.swift) - Add Foo.swift and its folder in FluentUI xcode project (All the files are in alphabetical order) - Make sure your file is under FluentUI framework target -- Create and add a test ViewController under [FluentUITestViewControllers](FluentUITestViewControllers) (ex. TestFooViewController.swift) +- Create and add a test ViewController under [FluentUITestViewControllers](/Demos/FluentUIDemo_macOS/FluentUITestViewControllers) (ex. TestFooViewController.swift) - Add TestFooViewController.swift to FluentUI xcode project (All the files are in alphabetical order) - Make sure it is part of FluentUITestViewControllers Target membership - Add TestFooViewController to the array in [TestViewContronllers.swift](https://github.com/microsoft/fluentui-apple/blob/main/Demos/FluentUIDemo_macOS/FluentUITestViewControllers/TestViewControllers.swift) diff --git a/Demos/FluentUIDemo_macOS/README.md b/Sources/FluentUI_macOS/README.md similarity index 94% rename from Demos/FluentUIDemo_macOS/README.md rename to Sources/FluentUI_macOS/README.md index 68321276cd..4500b35297 100644 --- a/Demos/FluentUIDemo_macOS/README.md +++ b/Sources/FluentUI_macOS/README.md @@ -19,4 +19,4 @@ Some of the controls available include: - Separator -A full list of currently supported controls can be found here: [FluentUI](FluentUI). +A full list of currently supported controls can be found here: [Components](Components). From 308f8b777129865130e9ac26671f4db1d3564969 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Wed, 2 Oct 2024 12:33:35 -0700 Subject: [PATCH 75/90] Fixing swiftlint for new folder config (#2093) --- .swiftlint.yml | 5 +++-- Sources/FluentUI_iOS/Core/FluentUIFramework.swift | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.swiftlint.yml b/.swiftlint.yml index b558e26d2c..214df1e545 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -168,8 +168,9 @@ only_rules: included: # paths to include during linting. `--path` is ignored if present. - ${LINTPATH} - - ios - - macos + - Demos + - Sources + - Tests excluded: # paths to ignore during linting. Takes precedence over `included`. - Pods diff --git a/Sources/FluentUI_iOS/Core/FluentUIFramework.swift b/Sources/FluentUI_iOS/Core/FluentUIFramework.swift index 2836979826..c8ac847756 100644 --- a/Sources/FluentUI_iOS/Core/FluentUIFramework.swift +++ b/Sources/FluentUI_iOS/Core/FluentUIFramework.swift @@ -25,7 +25,9 @@ public class FluentUIFramework: NSObject { @objc public static var fluentVersion: String? = { struct VersionConfig: Decodable { + // swiftlint:disable identifier_name let FluentVersion: String + // swiftlint:enable identifier_name } guard let url = resourceBundle.url(forResource: "Version", withExtension: "plist"), From f8d3094a8f12b618580877e1f075cd0cd6a437c9 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:44:30 -0700 Subject: [PATCH 76/90] Cleanup code (#2095) --- .../NavigationControllerDemoController.swift | 27 +++++++------------ ...leViewHeaderFooterViewDemoController.swift | 2 +- .../Components/Navigation/NavigationBar.swift | 11 ++++---- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift index e670a9263e..5bb3642299 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NavigationControllerDemoController.swift @@ -57,9 +57,6 @@ class NavigationControllerDemoController: DemoController { addTitle(text: "Top Accessory View") container.addArrangedSubview(createButton(title: "Show with top search bar for large screen width", action: #selector(showWithTopSearchBar))) - addTitle(text: "Top Accessory View with shy wide accessory view") - container.addArrangedSubview(createButton(title: "Show with top search bar for large screen width with a shy pill segment control", action: #selector(showWithTopSearchBarWithShySecondaryAccessoryView))) - addTitle(text: "Change Style Periodically") container.addArrangedSubview(createButton(title: "Change the style every second", action: #selector(showSearchChangingStyleEverySecond))) } @@ -131,32 +128,32 @@ class NavigationControllerDemoController: DemoController { presentController(withTitleStyle: .leading, subtitle: "Subtitle goes here", style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: true, leadingItem: .customButton) } - @objc func showSystemTitleWithShyAccessory() { - presentController(withTitleStyle: .system, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: true) - } - @objc func showRegularTitleWithShyAccessoryAndSubtitle() { presentController(withTitleStyle: .system, subtitle: "Subtitle goes here", accessoryView: createAccessoryView(), contractNavigationBarOnScroll: true) } @objc func showRegularTitleWithFixedAccessory() { - presentController(withTitleStyle: .system, accessoryView: createAccessoryView()) - } - - @objc func showSystemTitleWithFixedAccessoryAndSubtitle() { - presentController(withTitleStyle: .system, subtitle: "Subtitle goes here", style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: false) + presentController(withTitleStyle: .system, accessoryView: createAccessoryView(), contractNavigationBarOnScroll: false) } @objc func showSystemTitle() { presentController(withTitleStyle: .system, style: .system) } + @objc func showSystemTitleWithShyAccessory() { + presentController(withTitleStyle: .system, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: true) + } + + @objc func showSystemTitleWithFixedAccessoryAndSubtitle() { + presentController(withTitleStyle: .system, subtitle: "Subtitle goes here", style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: false) + } + @objc func showRegularTitleWithSubtitle() { presentController(withTitleStyle: .system, subtitle: "Subtitle goes here") } @objc func showRegularTitleWithSubtitleAndCustomLeadingButton() { - presentController(withTitleStyle: .system, subtitle: "Subtitle goes here", style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: true, leadingItem: .customButton) + presentController(withTitleStyle: .system, subtitle: "Subtitle goes here", accessoryView: createAccessoryView(with: .onSystemNavigationBar), contractNavigationBarOnScroll: true, leadingItem: .customButton) } @objc func showLargeTitleWithGradientStyle() { @@ -197,10 +194,6 @@ class NavigationControllerDemoController: DemoController { presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), showsTopAccessory: true, contractNavigationBarOnScroll: false) } - @objc func showWithTopSearchBarWithShySecondaryAccessoryView() { - presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), secondaryAccessoryView: createSecondaryAccessoryView(), showsTopAccessory: true, contractNavigationBarOnScroll: true) - } - @objc func showSearchChangingStyleEverySecond() { presentController(withTitleStyle: .largeLeading, style: .system, accessoryView: createAccessoryView(with: .onSystemNavigationBar), showsTopAccessory: true, contractNavigationBarOnScroll: false, updateStylePeriodically: true) } diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift index 06c7db58bb..e54e8d67a0 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TableViewHeaderFooterViewDemoController.swift @@ -164,7 +164,7 @@ extension TableViewHeaderFooterViewDemoController { // MARK: - TableViewHeaderFooterViewDemoController: TableViewHeaderFooterViewDelegate extension TableViewHeaderFooterViewDemoController: TableViewHeaderFooterViewDelegate { - @available (visionOS, deprecated: 1.0) + @available(visionOS, deprecated: 1.0) func headerFooterView(_ headerFooterView: TableViewHeaderFooterView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { let alertController = UIAlertController(title: "Link tapped", message: nil, preferredStyle: .alert) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) diff --git a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift index 046a027c64..ae978fd1f7 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift @@ -329,7 +329,7 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl return } updateAccessibilityElements() - updateViewsForLargeTitlePresentation(for: topItem) + updateViewsForNavigationItem(topItem) } } @@ -425,7 +425,7 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl systemShadowColor = standardAppearance.shadowColor updateColors(for: topItem) - updateViewsForLargeTitlePresentation(for: topItem) + updateViewsForNavigationItem(topItem) updateAccessibilityElements() tokenSet.registerOnUpdate(for: self) { [weak self] in @@ -574,7 +574,7 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl if traitCollection.verticalSizeClass != previousTraitCollection?.verticalSizeClass { updateElementSizes() updateContentStackViewMargins(forExpandedContent: contentIsExpanded) - updateViewsForLargeTitlePresentation(for: topItem) + updateViewsForNavigationItem(topItem) updateTitleViewConstraints() // change bar button image size and title inset depending on device rotation @@ -844,7 +844,7 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl /// Cache for the system shadow color, since the default value is private. private var systemShadowColor: UIColor? - private func updateViewsForLargeTitlePresentation(for navigationItem: UINavigationItem?) { + private func updateViewsForNavigationItem(_ navigationItem: UINavigationItem?) { // UIView.isHidden has a bug where a series of repeated calls with the same parameter can "glitch" the view into a permanent shown/hidden state // i.e. repeatedly trying to hide a UIView that is already in the hidden state // by adding a check to the isHidden property prior to setting, we avoid such problematic scenarios @@ -856,7 +856,8 @@ open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitl // We also want to hide the backgroundView and the contentStackView for gradient style regular title to // avoid displaying duplicated navigation bar items. - if usesLeadingTitle || (style != .gradient && systemWantsCompactNavigationBar && navigationItem?.titleView == nil) { + let shouldHideSystemNavigationItems = usesLeadingTitle || (style != .gradient && systemWantsCompactNavigationBar && navigationItem?.titleView == nil) + if shouldHideSystemNavigationItems { if backgroundView.isHidden { backgroundView.isHidden = false } From 1ef7f333598b1068f525c2e3ed8cfc3211676745 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Wed, 16 Oct 2024 16:32:32 -0700 Subject: [PATCH 77/90] Updating `Version.plist` keys to match other plists (#2096) --- Sources/FluentUI_iOS/Core/FluentUIFramework.swift | 4 ++-- Sources/FluentUI_iOS/Resources/Version.plist | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Sources/FluentUI_iOS/Core/FluentUIFramework.swift b/Sources/FluentUI_iOS/Core/FluentUIFramework.swift index c8ac847756..460e0c62f5 100644 --- a/Sources/FluentUI_iOS/Core/FluentUIFramework.swift +++ b/Sources/FluentUI_iOS/Core/FluentUIFramework.swift @@ -26,7 +26,7 @@ public class FluentUIFramework: NSObject { @objc public static var fluentVersion: String? = { struct VersionConfig: Decodable { // swiftlint:disable identifier_name - let FluentVersion: String + let CFBundleVersion: String // swiftlint:enable identifier_name } @@ -35,7 +35,7 @@ public class FluentUIFramework: NSObject { let versionConfig = try? PropertyListDecoder().decode(VersionConfig.self, from: data) else { return nil } - return versionConfig.FluentVersion + return versionConfig.CFBundleVersion }() @available(*, deprecated, message: "Non-fluent icons no longer supported. Setting this var no longer has any effect and it will be removed in a future update.") diff --git a/Sources/FluentUI_iOS/Resources/Version.plist b/Sources/FluentUI_iOS/Resources/Version.plist index e0a61d1d45..0bb4dd0858 100644 --- a/Sources/FluentUI_iOS/Resources/Version.plist +++ b/Sources/FluentUI_iOS/Resources/Version.plist @@ -2,7 +2,9 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>FluentVersion</key> + <key>CFBundleShortVersionString</key> + <string>0.30.0</string> + <key>CFBundleVersion</key> <string>0.30.0</string> </dict> </plist> From 5fe0c3740d64b789473bbe5fc01dd926dd7bd9cc Mon Sep 17 00:00:00 2001 From: "T.J. Ross" <thross@microsoft.com> Date: Thu, 17 Oct 2024 13:27:22 -0700 Subject: [PATCH 78/90] Fix SPM support for visionOS (#2098) --- Sources/FluentUI/FluentUI.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/FluentUI/FluentUI.swift b/Sources/FluentUI/FluentUI.swift index db7c610e28..5a51e5e214 100644 --- a/Sources/FluentUI/FluentUI.swift +++ b/Sources/FluentUI/FluentUI.swift @@ -3,7 +3,7 @@ // Licensed under the MIT License. // -#if os(iOS) +#if os(iOS) || os(visionOS) @_exported import FluentUI_ios #elseif os(macOS) @_exported import FluentUI_macos From 38954a21e9a7c9320c733c3be64623a80ba9a540 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Thu, 17 Oct 2024 15:53:36 -0700 Subject: [PATCH 79/90] Bump version to 0.31.0 (#2097) --- Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist | 4 ++-- .../FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- MicrosoftFluentUI.podspec | 2 +- Sources/FluentUI_iOS/Resources/Version.plist | 4 ++-- Sources/FluentUI_macOS/FluentUI-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist index 6891e302eb..21507fcc07 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.30.0</string> + <string>1.31.0</string> <key>CFBundleURLTypes</key> <array> <dict> @@ -26,7 +26,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>137.30.0</string> + <string>137.31.0</string> <key>LSRequiresIPhoneOS</key> <true/> <key>UIApplicationSceneManifest</key> diff --git a/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist b/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist index 0b24bfd9c2..e772cd26bd 100644 --- a/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist +++ b/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.30.0</string> + <string>0.31.0</string> <key>CFBundleVersion</key> - <string>62.30.0</string> + <string>62.31.0</string> <key>LSApplicationCategoryType</key> <string>public.app-category.developer-tools</string> <key>LSMinimumSystemVersion</key> diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 48bb81aee6..95376a1f34 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -8,7 +8,7 @@ resources_dir = 'Resources' Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.30.0' + s.version = '0.31.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/Sources/FluentUI_iOS/Resources/Version.plist b/Sources/FluentUI_iOS/Resources/Version.plist index 0bb4dd0858..250009c93c 100644 --- a/Sources/FluentUI_iOS/Resources/Version.plist +++ b/Sources/FluentUI_iOS/Resources/Version.plist @@ -3,8 +3,8 @@ <plist version="1.0"> <dict> <key>CFBundleShortVersionString</key> - <string>0.30.0</string> + <string>0.31.0</string> <key>CFBundleVersion</key> - <string>0.30.0</string> + <string>0.31.0</string> </dict> </plist> diff --git a/Sources/FluentUI_macOS/FluentUI-Info.plist b/Sources/FluentUI_macOS/FluentUI-Info.plist index 72ffeddfc8..b58d90bf20 100644 --- a/Sources/FluentUI_macOS/FluentUI-Info.plist +++ b/Sources/FluentUI_macOS/FluentUI-Info.plist @@ -15,8 +15,8 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>0.30.0</string> + <string>0.31.0</string> <key>CFBundleVersion</key> - <string>0.30.0</string> + <string>0.31.0</string> </dict> </plist> From f1ebf878f26a7d14aa698c6dcc2c197e4de66c4b Mon Sep 17 00:00:00 2001 From: Lukas Capkovic <3610850+lcapkovic@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:16:27 -0700 Subject: [PATCH 80/90] Ensure MSFNotification doesn't internally handle safe areas (#2099) --- .../Components/Notification/MSFNotification.swift | 2 +- Sources/FluentUI_iOS/Core/ControlHostingView.swift | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift b/Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift index 784214b8b0..8cf5a40d2e 100644 --- a/Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift +++ b/Sources/FluentUI_iOS/Components/Notification/MSFNotification.swift @@ -25,7 +25,7 @@ import UIKit self.isFlexibleWidthToast = isFlexibleWidthToast && style.isToast notification = FluentNotification(style: style, shouldSelfPresent: false) - super.init(AnyView(notification)) + super.init(AnyView(notification), safeAreaRegions: []) let defaultDismissAction = { [weak self] in guard let strongSelf = self else { return diff --git a/Sources/FluentUI_iOS/Core/ControlHostingView.swift b/Sources/FluentUI_iOS/Core/ControlHostingView.swift index 13e7ee6af8..22e93c1df2 100644 --- a/Sources/FluentUI_iOS/Core/ControlHostingView.swift +++ b/Sources/FluentUI_iOS/Core/ControlHostingView.swift @@ -35,9 +35,16 @@ open class ControlHostingView: UIView { /// the control view in an `AnyView.` /// /// - Parameter controlView: An `AnyView`-wrapped component to host. - public init(_ controlView: AnyView) { + /// - Parameter safeAreaRegions: Passthrough to the respective property on UIHostingController. + /// Indicates which safe area regions the underlying hosting controller should add to its view. + public init(_ controlView: AnyView, safeAreaRegions: SafeAreaRegions = .all) { hostingController = FluentThemedHostingController.init(rootView: controlView) hostingController.sizingOptions = [.intrinsicContentSize] + + if #available(iOS 16.4, *) { + hostingController.safeAreaRegions = safeAreaRegions + } + super.init(frame: .zero) self.configureHostedView() From bd274ff9601b115a1998a1765e0ee41dc99bf5e5 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Mon, 21 Oct 2024 12:42:01 -0700 Subject: [PATCH 81/90] Create `FluentUI_common` module, part 1 (#2094) * Update common files to build in a separate module * Moving FluentTheme back to original location to help with diff * Make DynamicColor internal again * Remove `_DEPRECATED` * Fix whitespace issues --- .../NotificationViewDemoController.swift | 4 +- ...tificationViewDemoController_SwiftUI.swift | 4 +- .../Components/Badge Field/BadgeField.swift | 2 +- .../Components/Badge Field/BadgeView.swift | 2 +- .../BottomCommandingController.swift | 2 +- .../Bottom Sheet/BottomSheetController.swift | 2 +- .../Components/Button/Button.swift | 2 +- .../Calendar/Views/CalendarViewDayCell.swift | 2 +- .../Components/Card/CardView.swift | 2 +- .../Components/Command Bar/CommandBar.swift | 2 +- .../DateTimePickerViewComponentCell.swift | 2 +- .../Components/Drawer/DrawerController.swift | 2 +- .../Components/Label/BadgeLabel.swift | 2 +- .../FluentUI_iOS/Components/Label/Label.swift | 2 +- .../Components/Navigation/NavigationBar.swift | 2 +- .../Navigation/SearchBar/SearchBar.swift | 2 +- .../Navigation/Shy Header/ShyHeaderView.swift | 2 +- .../Navigation/Views/AvatarTitleView.swift | 2 +- .../Components/Other Cells/ActionsCell.swift | 2 +- .../Other Cells/ActivityIndicatorCell.swift | 2 +- .../Other Cells/CenteredLabelCell.swift | 2 +- .../Pill Button Bar/PillButton.swift | 2 +- .../Components/Popup Menu/PopupMenuItem.swift | 4 + .../ResizingHandleView.swift | 2 +- .../SegmentedControl/SegmentedControl.swift | 2 +- .../Components/Separator/Separator.swift | 2 +- .../Components/Shimmer/ShimmerView.swift | 2 +- .../Components/Tab Bar/SideTabBar.swift | 2 +- .../Components/Tab Bar/TabBarItemView.swift | 2 +- .../Components/Tab Bar/TabBarView.swift | 2 +- .../Components/Table View/TableViewCell.swift | 2 +- .../TableViewHeaderFooterView.swift | 2 +- .../TextField/FluentTextField.swift | 2 +- .../Components/Tooltip/Tooltip.swift | 2 +- .../TwoLineTitleView/TwoLineTitleView.swift | 2 +- ...amicColor.swift => Color+Extensions.swift} | 52 -- .../SwiftUI+ViewAnimation.swift | 0 .../SwiftUI+ViewModifiers.swift | 4 +- .../SwiftUI+ViewPresentation.swift | 0 .../Core/Extensions/UIFont+Extensions.swift | 135 +++++ .../Core/FluentTheme+Tokens.swift | 465 +++++++++--------- .../Core/Theme/FluentTheme+UIKit.swift | 121 ++++- .../Core/{ => Theme}/FluentTheme.swift | 95 +--- .../Core/Theme/Tokens/ControlTokenSet.swift | 77 +-- .../Core/Theme/Tokens/DynamicColor.swift | 44 ++ .../Core/Theme/Tokens/EmptyTokenSet.swift | 2 +- .../Core/Theme/Tokens/FontInfo.swift | 138 +----- .../Core/Theme/Tokens/ShadowInfo+UIKit.swift | 85 ++++ .../Core/Theme/Tokens/ShadowInfo.swift | 61 +-- .../Core/Theme/Tokens/TokenizedControl.swift | 6 - .../Theme/Tokens/TokenizedControlView.swift | 7 +- 51 files changed, 733 insertions(+), 635 deletions(-) rename Sources/FluentUI_iOS/Core/Extensions/{Color+DynamicColor.swift => Color+Extensions.swift} (50%) rename Sources/FluentUI_iOS/Core/{ => Extensions}/SwiftUI+ViewAnimation.swift (100%) rename Sources/FluentUI_iOS/Core/{ => Extensions}/SwiftUI+ViewModifiers.swift (98%) rename Sources/FluentUI_iOS/Core/{ => Extensions}/SwiftUI+ViewPresentation.swift (100%) create mode 100644 Sources/FluentUI_iOS/Core/Extensions/UIFont+Extensions.swift rename Sources/FluentUI_iOS/Core/{ => Theme}/FluentTheme.swift (63%) create mode 100644 Sources/FluentUI_iOS/Core/Theme/Tokens/DynamicColor.swift create mode 100644 Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo+UIKit.swift diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift index 27f43375b6..f3916cd952 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController.swift @@ -245,11 +245,11 @@ class NotificationViewDemoController: DemoController { return UIColor(light: GlobalTokens.sharedColor(.orange, .primary)) }, .shadow: .shadowInfo { - return ShadowInfo(keyColor: GlobalTokens.sharedColor(.hotPink, .primary), + return ShadowInfo(keyColor: GlobalTokens.sharedSwiftUIColor(.hotPink, .primary), keyBlur: 10.0, xKey: 10.0, yKey: 10.0, - ambientColor: GlobalTokens.sharedColor(.teal, .primary), + ambientColor: GlobalTokens.sharedSwiftUIColor(.teal, .primary), ambientBlur: 100.0, xAmbient: -10.0, yAmbient: -10.0) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift index 0f191de209..5ec53e3b6a 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/NotificationViewDemoController_SwiftUI.swift @@ -307,11 +307,11 @@ struct NotificationDemoView: View { return GlobalTokens.sharedColor(.orange, .primary) }, .shadow: .shadowInfo { - return ShadowInfo(keyColor: GlobalTokens.sharedColor(.hotPink, .primary), + return ShadowInfo(keyColor: GlobalTokens.sharedSwiftUIColor(.hotPink, .primary), keyBlur: 10.0, xKey: 10.0, yKey: 10.0, - ambientColor: GlobalTokens.sharedColor(.teal, .primary), + ambientColor: GlobalTokens.sharedSwiftUIColor(.teal, .primary), ambientBlur: 100.0, xAmbient: -10.0, yAmbient: -10.0) diff --git a/Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift index 4a822f22ae..05e422a86f 100644 --- a/Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift +++ b/Sources/FluentUI_iOS/Components/Badge Field/BadgeField.swift @@ -57,7 +57,7 @@ public protocol BadgeFieldDelegate: AnyObject { * voiceover and dynamic text sizing */ @objc(MSFBadgeField) -open class BadgeField: UIView, TokenizedControlInternal { +open class BadgeField: UIView, TokenizedControl { private struct Constants { static let emptyTextFieldString: String = "" static let dragAndDropMinimumPressDuration: TimeInterval = 0.2 diff --git a/Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift b/Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift index a4058e29d0..be0e0773f2 100644 --- a/Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift +++ b/Sources/FluentUI_iOS/Components/Badge Field/BadgeView.swift @@ -56,7 +56,7 @@ public protocol BadgeViewDelegate { `BadgeView` can be selected with a tap gesture and tapped again after entering a selected state for the purpose of displaying more details about the entity represented by the selected badge. */ @objc(MSFBadgeView) -open class BadgeView: UIView, TokenizedControlInternal { +open class BadgeView: UIView, TokenizedControl { @objc open var dataSource: BadgeViewDataSource? { didSet { reload() diff --git a/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift b/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift index e30935751e..86b2b60ff4 100644 --- a/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift +++ b/Sources/FluentUI_iOS/Components/Bottom Commanding/BottomCommandingController.swift @@ -60,7 +60,7 @@ public protocol BottomCommandingControllerDelegate: AnyObject { /// Items from the `expandedListSections` are either presented in an expanded sheet or a popover, depending on the current style. /// @objc(MSFBottomCommandingController) -open class BottomCommandingController: UIViewController, TokenizedControlInternal { +open class BottomCommandingController: UIViewController, TokenizedControl { /// View controller that will be displayed below the bottom commanding UI. @objc public var contentViewController: UIViewController? { diff --git a/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift index 4a44a353cb..00a08e2c75 100644 --- a/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift +++ b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift @@ -65,7 +65,7 @@ public protocol BottomSheetControllerDelegate: AnyObject { } @objc(MSFBottomSheetController) -public class BottomSheetController: UIViewController, Shadowable, TokenizedControlInternal { +public class BottomSheetController: UIViewController, Shadowable, TokenizedControl { /// Initializes the bottom sheet controller /// - Parameters: diff --git a/Sources/FluentUI_iOS/Components/Button/Button.swift b/Sources/FluentUI_iOS/Components/Button/Button.swift index fb84110133..5f8094d7ae 100644 --- a/Sources/FluentUI_iOS/Components/Button/Button.swift +++ b/Sources/FluentUI_iOS/Components/Button/Button.swift @@ -10,7 +10,7 @@ import UIKit /// By default, `titleLabel`'s `adjustsFontForContentSizeCategory` is set to true for non-floating buttons to automatically update its font when device's content size category changes @IBDesignable @objc(MSFButton) -open class Button: UIButton, Shadowable, TokenizedControlInternal { +open class Button: UIButton, Shadowable, TokenizedControl { @objc open var style: ButtonStyle = .outlineAccent { didSet { if style != oldValue { diff --git a/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift index 6621814609..788098241f 100644 --- a/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift +++ b/Sources/FluentUI_iOS/Components/Calendar/Views/CalendarViewDayCell.swift @@ -50,7 +50,7 @@ let calendarViewDayCellVisualStateTransitionDuration: TimeInterval = 0.3 // MARK: - CalendarViewDayCell -class CalendarViewDayCell: UICollectionViewCell, TokenizedControlInternal { +class CalendarViewDayCell: UICollectionViewCell, TokenizedControl { struct Constants { static let borderWidth: CGFloat = 0.5 static let dotDiameter: CGFloat = 6.0 diff --git a/Sources/FluentUI_iOS/Components/Card/CardView.swift b/Sources/FluentUI_iOS/Components/Card/CardView.swift index d39c8ad54b..95f2fe2f88 100644 --- a/Sources/FluentUI_iOS/Components/Card/CardView.swift +++ b/Sources/FluentUI_iOS/Components/Card/CardView.swift @@ -151,7 +151,7 @@ public enum CardSize: Int, CaseIterable { Conform to the `CardDelegate` in order to provide a handler for the card tap event */ @objc(MSFCardView) -open class CardView: UIView, Shadowable, TokenizedControlInternal { +open class CardView: UIView, Shadowable, TokenizedControl { /// Delegate to handle user interaction with the CardView @objc public weak var delegate: CardDelegate? diff --git a/Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift b/Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift index 6b598f7237..7e3cc3f449 100644 --- a/Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift +++ b/Sources/FluentUI_iOS/Components/Command Bar/CommandBar.swift @@ -18,7 +18,7 @@ public protocol CommandBarDelegate: AnyObject { Provide `itemGroups` in `init` to set the buttons in the CommandBar. Optional `leadingItemGroups` and `trailingItemGroups` add buttons in leading and trailing positions. Each `CommandBarItem` will be represented as a button. */ @objc(MSFCommandBar) -public class CommandBar: UIView, TokenizedControlInternal { +public class CommandBar: UIView, TokenizedControl { // Hierarchy: // // isScrollable = true diff --git a/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift index f4f030b750..db6625623c 100644 --- a/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift +++ b/Sources/FluentUI_iOS/Components/Date Time Pickers/Date Time Picker/Views/DateTimePickerViewComponentCell.swift @@ -8,7 +8,7 @@ import UIKit // MARK: - DateTimePickerViewComponentCell /// TableViewCell representing the cell of component view (should be used only by DateTimePickerViewComponent and not instantiated on its own) -class DateTimePickerViewComponentCell: UITableViewCell, TokenizedControlInternal { +class DateTimePickerViewComponentCell: UITableViewCell, TokenizedControl { private struct Constants { static let baseHeight: CGFloat = 45 static let verticalPadding: CGFloat = 12 diff --git a/Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift b/Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift index 3d789a2b45..fa2c008358 100644 --- a/Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift +++ b/Sources/FluentUI_iOS/Components/Drawer/DrawerController.swift @@ -97,7 +97,7 @@ public protocol DrawerControllerDelegate: AnyObject { */ @objc(MSFDrawerController) -open class DrawerController: UIViewController, TokenizedControlInternal { +open class DrawerController: UIViewController, TokenizedControl { /// DrawerController colors with obj-c support @objc public static func drawerBackgroundColor(fluentTheme: FluentTheme?) -> UIColor { let theme = fluentTheme ?? .shared diff --git a/Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift b/Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift index da14eea4fd..f556f6110a 100644 --- a/Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift +++ b/Sources/FluentUI_iOS/Components/Label/BadgeLabel.swift @@ -7,7 +7,7 @@ import UIKit // MARK: BadgeLabel -class BadgeLabel: UILabel, TokenizedControlInternal { +class BadgeLabel: UILabel, TokenizedControl { var style: BadgeLabelStyle = .system { didSet { updateColors() diff --git a/Sources/FluentUI_iOS/Components/Label/Label.swift b/Sources/FluentUI_iOS/Components/Label/Label.swift index 1d8f3f5153..911091c12a 100644 --- a/Sources/FluentUI_iOS/Components/Label/Label.swift +++ b/Sources/FluentUI_iOS/Components/Label/Label.swift @@ -9,7 +9,7 @@ import UIKit /// By default, `adjustsFontForContentSizeCategory` is set to true to automatically update its font when device's content size category changes @objc(MSFLabel) -open class Label: UILabel, TokenizedControlInternal { +open class Label: UILabel, TokenizedControl { private static let defaultColorForTheme: (FluentTheme) -> UIColor = TextColorStyle.regular.uiColor @objc open var colorStyle: TextColorStyle { diff --git a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift index ae978fd1f7..34af15a829 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift @@ -100,7 +100,7 @@ protocol NavigationBarBackButtonDelegate { /// Contains the MSNavigationTitleView class and handles passing animatable progress through /// Custom UI can be hidden if desired @objc(MSFNavigationBar) -open class NavigationBar: UINavigationBar, TokenizedControlInternal, TwoLineTitleViewDelegate { +open class NavigationBar: UINavigationBar, TokenizedControl, TwoLineTitleViewDelegate { /// If the style is `.custom`, UINavigationItem's `navigationBarColor` is used for all the subviews' backgroundColor @objc(MSFNavigationBarStyle) public enum Style: Int { diff --git a/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift b/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift index a2a72a6b7c..47efdc4236 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/SearchBar/SearchBar.swift @@ -22,7 +22,7 @@ public protocol SearchBarDelegate: AnyObject { /// Drop-in replacement for UISearchBar that allows for more customization @objc(MSFSearchBar) -open class SearchBar: UIView, TokenizedControlInternal { +open class SearchBar: UIView, TokenizedControl { @objc open var hidesNavigationBarDuringSearch: Bool = true { didSet { if oldValue != hidesNavigationBarDuringSearch && isActive { diff --git a/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift b/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift index 55e9fcebe4..d9f2e505d1 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/Shy Header/ShyHeaderView.swift @@ -11,7 +11,7 @@ import UIKit /// Used to contain an accessory provided by the VC contained by the NavigatableShyContainerVC /// This class in itself is fairly straightforward, defining a height and a containment layout /// The animation around showing/hiding this view progressively is handled by its superview/superVC, an instance of ShyHeaderController -class ShyHeaderView: UIView, TokenizedControlInternal { +class ShyHeaderView: UIView, TokenizedControl { typealias TokenSetKeyType = EmptyTokenSet.Tokens public var tokenSet: EmptyTokenSet = .init() diff --git a/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift b/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift index 25de74b2ec..5654d3019c 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/Views/AvatarTitleView.swift @@ -8,7 +8,7 @@ import UIKit // MARK: AvatarTitleView /// A helper view used by `NavigationBar` capable of displaying a large title and an avatar. -class AvatarTitleView: UIView, TokenizedControlInternal, TwoLineTitleViewDelegate { +class AvatarTitleView: UIView, TokenizedControl, TwoLineTitleViewDelegate { enum Style: Int { case primary case system diff --git a/Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift index 8d18aed6ca..0f9c975dd8 100644 --- a/Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift +++ b/Sources/FluentUI_iOS/Components/Other Cells/ActionsCell.swift @@ -15,7 +15,7 @@ import UIKit `topSeparatorType` and `bottomSeparatorType` can be used to show custom horizontal separators. Make sure to remove the `UITableViewCell` built-in separator by setting `separatorStyle = .none` on your table view. */ @objc(MSFActionsCell) -open class ActionsCell: UITableViewCell, TokenizedControlInternal { +open class ActionsCell: UITableViewCell, TokenizedControl { @objc(MSFActionsCellActionType) public enum ActionType: Int { case regular diff --git a/Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift index 046131e59d..c396b65d7e 100644 --- a/Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift +++ b/Sources/FluentUI_iOS/Components/Other Cells/ActivityIndicatorCell.swift @@ -8,7 +8,7 @@ import UIKit // MARK: ActivityIndicatorCell @objc(MSFActivityIndicatorCell) -open class ActivityIndicatorCell: UITableViewCell, TokenizedControlInternal { +open class ActivityIndicatorCell: UITableViewCell, TokenizedControl { public static let identifier: String = "ActivityIndicatorCell" @objc public var backgroundStyleType: TableViewCellBackgroundStyleType = .plain { diff --git a/Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift b/Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift index 1ae7cf6ce4..1034f450fc 100644 --- a/Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift +++ b/Sources/FluentUI_iOS/Components/Other Cells/CenteredLabelCell.swift @@ -8,7 +8,7 @@ import UIKit // MARK: CenteredLabelCell @objc(MSFCenteredLabelCell) -open class CenteredLabelCell: UITableViewCell, TokenizedControlInternal { +open class CenteredLabelCell: UITableViewCell, TokenizedControl { public static let identifier: String = "CenteredLabelCell" public typealias TokenSetKeyType = TableViewCellTokenSet.Tokens diff --git a/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift index afbd8dc672..8cd300fb83 100644 --- a/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift +++ b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButton.swift @@ -9,7 +9,7 @@ import UIKit /// A `PillButton` is a button in the shape of a pill that can have two states: on (Selected) and off (not selected) @objc(MSFPillButton) -open class PillButton: UIButton, TokenizedControlInternal { +open class PillButton: UIButton, TokenizedControl { open override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { guard self == context.nextFocusedView || self == context.previouslyFocusedView else { diff --git a/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift index d4b36f48f6..2d169b3c0d 100644 --- a/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift +++ b/Sources/FluentUI_iOS/Components/Popup Menu/PopupMenuItem.swift @@ -101,6 +101,10 @@ open class PopupMenuItem: NSObject, PopupMenuTemplateItem, FluentThemeable { self.init(image: image, selectedImage: selectedImage, title: title, subtitle: subtitle, isEnabled: isEnabled, isSelected: isSelected, executes: executionMode, onSelected: onSelected, isAccessoryCheckmarkVisible: isAccessoryCheckmarkVisible) } + public func isApplicableThemeChange(_ notification: Notification) -> Bool { + return true + } + lazy var tokenSet: PopupMenuItemTokenSet = { PopupMenuItemTokenSet(customViewSize: { self.image != nil ? .small : .zero }) }() diff --git a/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift b/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift index 323a53c02f..d48b7f4d94 100644 --- a/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift +++ b/Sources/FluentUI_iOS/Components/ResizingHandleView/ResizingHandleView.swift @@ -8,7 +8,7 @@ import UIKit // MARK: - ResizingHandleView @objc(MSFResizingHandleView) -open class ResizingHandleView: UIView, TokenizedControlInternal { +open class ResizingHandleView: UIView, TokenizedControl { @objc public static let height: CGFloat = 20 private lazy var markLayer: CALayer = { diff --git a/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift index 5a49e687fb..0a0b939c62 100644 --- a/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift +++ b/Sources/FluentUI_iOS/Components/SegmentedControl/SegmentedControl.swift @@ -7,7 +7,7 @@ import UIKit // MARK: SegmentedControl /// A styled segmented control that should be used instead of UISegmentedControl. It is designed to flex the button width proportionally to the control's width. @objc(MSFSegmentedControl) -open class SegmentedControl: UIView, TokenizedControlInternal { +open class SegmentedControl: UIView, TokenizedControl { private struct Constants { static let iPadMinimumWidth: CGFloat = 375 } diff --git a/Sources/FluentUI_iOS/Components/Separator/Separator.swift b/Sources/FluentUI_iOS/Components/Separator/Separator.swift index 72120db724..4ffa37c8c8 100644 --- a/Sources/FluentUI_iOS/Components/Separator/Separator.swift +++ b/Sources/FluentUI_iOS/Components/Separator/Separator.swift @@ -16,7 +16,7 @@ public enum SeparatorOrientation: Int { // MARK: - Separator @objc(MSFSeparator) -open class Separator: UIView, TokenizedControlInternal { +open class Separator: UIView, TokenizedControl { public typealias TokenSetKeyType = SeparatorTokenSet.Tokens lazy public var tokenSet: SeparatorTokenSet = .init() diff --git a/Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift b/Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift index 307f0da51e..3163bcbf28 100644 --- a/Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift +++ b/Sources/FluentUI_iOS/Components/Shimmer/ShimmerView.swift @@ -7,7 +7,7 @@ import UIKit /// View that converts the subviews of a container view into a loading state with the "shimmering" effect. @objc(MSFShimmerView) -open class ShimmerView: UIView, TokenizedControlInternal { +open class ShimmerView: UIView, TokenizedControl { /// Optional synchronizer to sync multiple shimmer views. @objc open weak var animationSynchronizer: AnimationSynchronizerProtocol? diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift b/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift index 9c63e8ca80..4d3408fcde 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/SideTabBar.swift @@ -23,7 +23,7 @@ public protocol SideTabBarDelegate { /// View for a vertical side tab bar that can be used for app navigation. /// Optimized for horizontal regular + vertical regular size class configuration. Prefer using TabBarView for other size class configurations. @objc(MSFSideTabBar) -open class SideTabBar: UIView, TokenizedControlInternal { +open class SideTabBar: UIView, TokenizedControl { /// Delegate to handle user interactions in the side tab bar. @objc public weak var delegate: SideTabBarDelegate? { didSet { diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift index b66e1ddb9a..7a28fbffcd 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift @@ -5,7 +5,7 @@ import UIKit -class TabBarItemView: UIControl, TokenizedControlInternal { +class TabBarItemView: UIControl, TokenizedControl { let item: TabBarItem typealias TokenSetKeyType = TabBarItemTokenSet.Tokens diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift index 4972ffe706..6688e2eb06 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift @@ -20,7 +20,7 @@ public protocol TabBarViewDelegate { /// Set up `items` array to determine the order of `TabBarItems` to show. /// Use `selectedItem` property to change the selected tab bar item. @objc(MSFTabBarView) -open class TabBarView: UIView, TokenizedControlInternal { +open class TabBarView: UIView, TokenizedControl { /// List of TabBarItems in the TabBarView. Order of the array is the order of the subviews. @objc open var items: [TabBarItem] = [] { willSet { diff --git a/Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift b/Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift index cd34e90ef7..ff03d47cee 100644 --- a/Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift +++ b/Sources/FluentUI_iOS/Components/Table View/TableViewCell.swift @@ -34,7 +34,7 @@ Specify `accessoryType` on setup to show either a disclosure indicator or a `det NOTE: This cell implements its own custom separator. Make sure to remove the UITableViewCell built-in separator by setting `separatorStyle = .none` on your table view. To remove the cell's custom separator set `bottomSeparatorType` to `.none`. */ @objc(MSFTableViewCell) -open class TableViewCell: UITableViewCell, TokenizedControlInternal { +open class TableViewCell: UITableViewCell, TokenizedControl { @objc(MSFTableViewCellSeparatorType) public enum SeparatorType: Int { case none diff --git a/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift b/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift index be240c7cf3..209242a283 100644 --- a/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift +++ b/Sources/FluentUI_iOS/Components/Table View/TableViewHeaderFooterView.swift @@ -44,7 +44,7 @@ public protocol TableViewHeaderFooterViewDelegate: AnyObject { /// The optional accessory button should only be used with `default` style headers with the `title` as a single line of text. /// Use `titleNumberOfLines` to configure the number of lines for the `title`. Headers generally use the default number of lines of 1 while footers may use a multiple number of lines. @objc(MSFTableViewHeaderFooterView) -open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedControlInternal { +open class TableViewHeaderFooterView: UITableViewHeaderFooterView, TokenizedControl { @objc public static var identifier: String { return String(describing: self) } /// The height of the view based on the height of its content. diff --git a/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift b/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift index e19314ec29..580ece3ee2 100644 --- a/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift +++ b/Sources/FluentUI_iOS/Components/TextField/FluentTextField.swift @@ -6,7 +6,7 @@ import UIKit @objc(MSFTextField) -public final class FluentTextField: UIView, UITextFieldDelegate, TokenizedControlInternal { +public final class FluentTextField: UIView, UITextFieldDelegate, TokenizedControl { public override func willMove(toWindow newWindow: UIWindow?) { super.willMove(toWindow: newWindow) guard let newWindow else { diff --git a/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift b/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift index 61396e0ccb..b8c2d3cadf 100644 --- a/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift +++ b/Sources/FluentUI_iOS/Components/Tooltip/Tooltip.swift @@ -17,7 +17,7 @@ import UIKit // |--|--layer (ambient and key shadows added as sublayers) /// A styled tooltip that is presented anchored to a view. @objc(MSFTooltip) -open class Tooltip: NSObject, TokenizedControlInternal { +open class Tooltip: NSObject, TokenizedControl { /// Displays a tooltip based on the current settings, pointing to the supplied anchorView. /// If another tooltip view is already showing, it will be dismissed and the new tooltip will be shown. diff --git a/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift b/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift index ac096e8b7f..0dc4ff424d 100644 --- a/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift +++ b/Sources/FluentUI_iOS/Components/TwoLineTitleView/TwoLineTitleView.swift @@ -17,7 +17,7 @@ public protocol TwoLineTitleViewDelegate: AnyObject { // MARK: - TwoLineTitleView @objc(MSFTwoLineTitleView) -open class TwoLineTitleView: UIView, TokenizedControlInternal { +open class TwoLineTitleView: UIView, TokenizedControl { @objc(MSFTwoLineTitleViewStyle) public enum Style: Int { case primary diff --git a/Sources/FluentUI_iOS/Core/Extensions/Color+DynamicColor.swift b/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift similarity index 50% rename from Sources/FluentUI_iOS/Core/Extensions/Color+DynamicColor.swift rename to Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift index a30c8afd1d..f585e6718f 100644 --- a/Sources/FluentUI_iOS/Core/Extensions/Color+DynamicColor.swift +++ b/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift @@ -39,56 +39,4 @@ extension Color { self.init(uiColor: UIColor(dynamicColor: dynamicColor)) } } - - init(dynamicColor: DynamicColor) { - if #available(iOS 17, *) { - self.init(dynamicColor) - } else { - self.init(uiColor: UIColor(dynamicColor: dynamicColor)) - } - } -} - -/// A container that stores a dynamic set of `Color` values. -struct DynamicColor: Hashable { - - /// Creates a custom `ShapeStyle` that stores a dynamic set of `Color` values. - /// - /// - Parameter light: The default `Color` for a light context. Required. - /// - Parameter dark: The override `Color` for a dark context. Optional. - /// - Parameter darkElevated: The override `Color` for a dark elevated context. Optional. - init(light: Color, - dark: Color? = nil, - darkElevated: Color? = nil) { - self.light = light - self.dark = dark - self.darkElevated = darkElevated - } - - init(uiColor: UIColor) { - self.init(light: Color(uiColor.light), - dark: Color(uiColor.dark), - darkElevated: Color(uiColor.darkElevated)) - } - - let light: Color - let dark: Color? - let darkElevated: Color? -} - -@available(iOS 17, *) -extension DynamicColor: ShapeStyle { - /// Evaluate to a resolved `Color` (in the form of a `ShapeStyle`) given the current `environment`. - func resolve(in environment: EnvironmentValues) -> Color.Resolved { - if environment.colorScheme == .dark { - if environment.isPresented, let darkElevated = darkElevated { - return darkElevated.resolve(in: environment) - } else if let dark = dark { - return dark.resolve(in: environment) - } - } - - // default - return light.resolve(in: environment) - } } diff --git a/Sources/FluentUI_iOS/Core/SwiftUI+ViewAnimation.swift b/Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewAnimation.swift similarity index 100% rename from Sources/FluentUI_iOS/Core/SwiftUI+ViewAnimation.swift rename to Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewAnimation.swift diff --git a/Sources/FluentUI_iOS/Core/SwiftUI+ViewModifiers.swift b/Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewModifiers.swift similarity index 98% rename from Sources/FluentUI_iOS/Core/SwiftUI+ViewModifiers.swift rename to Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewModifiers.swift index 793d813138..5093a8ea42 100644 --- a/Sources/FluentUI_iOS/Core/SwiftUI+ViewModifiers.swift +++ b/Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewModifiers.swift @@ -138,11 +138,11 @@ struct ShadowModifier: ViewModifier { func body(content: Content) -> some View { content - .shadow(color: Color(shadowInfo.ambientColor), + .shadow(color: shadowInfo.ambientColor, radius: shadowInfo.ambientBlur, x: shadowInfo.xAmbient, y: shadowInfo.yAmbient) - .shadow(color: Color(shadowInfo.keyColor), + .shadow(color: shadowInfo.keyColor, radius: shadowInfo.keyBlur, x: shadowInfo.xKey, y: shadowInfo.yKey) diff --git a/Sources/FluentUI_iOS/Core/SwiftUI+ViewPresentation.swift b/Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewPresentation.swift similarity index 100% rename from Sources/FluentUI_iOS/Core/SwiftUI+ViewPresentation.swift rename to Sources/FluentUI_iOS/Core/Extensions/SwiftUI+ViewPresentation.swift diff --git a/Sources/FluentUI_iOS/Core/Extensions/UIFont+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/UIFont+Extensions.swift new file mode 100644 index 0000000000..36c5d45f7f --- /dev/null +++ b/Sources/FluentUI_iOS/Core/Extensions/UIFont+Extensions.swift @@ -0,0 +1,135 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI +import UIKit + +public extension Font { + static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true) -> Font { + // SwiftUI Font is missing some of the ease of construction available in UIFont. + // So just leverage the logic there to create the equivalent SwiftUI font. + let uiFont = UIFont.fluent(fontInfo, shouldScale: shouldScale) + return Font(uiFont) + } +} + +extension UIFont { + @objc public static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true) -> UIFont { + return fluent(fontInfo, shouldScale: shouldScale, contentSizeCategory: nil) + } + + @objc public static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true, contentSizeCategory: UIContentSizeCategory?) -> UIFont { + let traitCollection: UITraitCollection? + if let contentSizeCategory = contentSizeCategory { + traitCollection = .init(preferredContentSizeCategory: contentSizeCategory) + } else { + traitCollection = nil + } + + let weight = uiWeight(fontInfo.weight) + + if let name = fontInfo.name, + let font = UIFont(name: name, size: fontInfo.size) { + // Named font + let unscaledFont = font.withWeight(weight) + if shouldScale { + let fontMetrics = UIFontMetrics(forTextStyle: uiTextStyle(fontInfo.textStyle)) + return fontMetrics.scaledFont(for: unscaledFont, compatibleWith: traitCollection) + } else { + return unscaledFont + } + } else { + // System font + if !shouldScale { + return .systemFont(ofSize: fontInfo.size, weight: weight) + } + + let textStyle = uiTextStyle(fontInfo.textStyle) + if fontInfo.matchesSystemSize { + // System-recognized font size, let the OS scale it for us + return UIFont.preferredFont(forTextStyle: textStyle, compatibleWith: traitCollection).withWeight(weight) + } + + // Custom font size, we need to scale it ourselves + let fontMetrics = UIFontMetrics(forTextStyle: textStyle) + return fontMetrics.scaledFont(for: .systemFont(ofSize: fontInfo.size, weight: weight), compatibleWith: traitCollection) + } + } + + private func withWeight(_ weight: UIFont.Weight) -> UIFont { + var attributes = fontDescriptor.fontAttributes + var traits = (attributes[.traits] as? [UIFontDescriptor.TraitKey: Any]) ?? [:] + + traits[.weight] = weight + + // We need to remove `.name` since it may clash with the requested font weight, but + // `.family` will ensure that e.g. Helvetica stays Helvetica. + attributes[.name] = nil + attributes[.traits] = traits + attributes[.family] = familyName + + let descriptor = UIFontDescriptor(fontAttributes: attributes) + + return UIFont(descriptor: descriptor, size: pointSize) + } + + private static func uiTextStyle(_ textStyle: Font.TextStyle) -> UIFont.TextStyle { + switch textStyle { + case .largeTitle: + return .largeTitle + case .title: + return .title1 + case .title2: + return .title2 + case .title3: + return .title3 + case .headline: + return .headline + case .body: + return .body + case .callout: + return .callout + case .subheadline: + return .subheadline + case .footnote: + return .footnote + case .caption: + return .caption1 + case .caption2: + return .caption2 + default: + // Font.TextStyle has `@unknown default` attribute, so we need a default. + assertionFailure("Unknown Font.TextStyle found! Reverting to .body style.") + return .body + } + } + + private static func uiWeight(_ weight: Font.Weight) -> UIFont.Weight { + switch weight { + case .ultraLight: + return .ultraLight + case .thin: + return .thin + case .light: + return .light + case .regular: + return .regular + case .medium: + return .medium + case .semibold: + return .semibold + case .bold: + return .bold + case .heavy: + return .heavy + case .black: + return .black + default: + // Font.Weight has `@unknown default` attribute, so we need a default. + assertionFailure("Unknown Font.Weight found! Reverting to .regular weight.") + return .regular + } + } +} diff --git a/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift b/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift index 1efa587f69..0706440344 100644 --- a/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift +++ b/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift @@ -150,7 +150,7 @@ public extension FluentTheme { /// - Parameter token: The `ColorsTokens` value to be retrieved. /// - Returns: A `Color` for the given token. func swiftUIColor(_ token: ColorToken) -> Color { - return Color(dynamicColor: colorTokenSet[token]) + return colorTokenSet[token] } /// Returns the shadow value for the given token. @@ -165,27 +165,10 @@ public extension FluentTheme { /// Returns the font value for the given token. /// /// - Parameter token: The `TypographyTokens` value to be retrieved. - /// - Parameter adjustsForContentSizeCategory: If true, the resulting font will change size according to Dynamic Type specifications. /// - Returns: A `UIFont` for the given token. - @objc(typographyForToken:adjustsForContentSizeCategory:) - func typography(_ token: TypographyToken, adjustsForContentSizeCategory: Bool = true) -> UIFont { - return UIFont.fluent(typographyTokenSet[token], - shouldScale: adjustsForContentSizeCategory) - } - - /// Returns the font value for the given token. - /// - /// - Parameter token: The `TypographyTokens` value to be retrieved. - /// - Parameter adjustsForContentSizeCategory: If true, the resulting font will change size according to Dynamic Type specifications. - /// - Parameter contentSizeCategory: An overridden `UIContentSizeCategory` to conform to. - /// - Returns: A `UIFont` for the given token. - @objc(typographyForToken:adjustsForContentSizeCategory:contentSizeCategory:) - func typography(_ token: TypographyToken, - adjustsForContentSizeCategory: Bool = true, - contentSizeCategory: UIContentSizeCategory) -> UIFont { - return UIFont.fluent(typographyTokenSet[token], - shouldScale: adjustsForContentSizeCategory, - contentSizeCategory: contentSizeCategory) + @objc(typographyForToken:) + func typographyInfo(_ token: TypographyToken) -> FontInfo { + return typographyTokenSet[token] } /// Returns an array of colors for the given token. @@ -193,366 +176,366 @@ public extension FluentTheme { /// - Parameter token: The `GradientTokens` value to be retrieved. /// - Returns: An array of `Color` values for the given token. func gradient(_ token: GradientToken) -> [Color] { - return gradientTokenSet[token].map { Color(dynamicColor: $0) } + return gradientTokenSet[token] } } extension FluentTheme { - static func defaultColor(_ token: FluentTheme.ColorToken) -> DynamicColor { + static func defaultColor(_ token: FluentTheme.ColorToken) -> Color { switch token { case .foreground1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .foreground2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), - dark: GlobalTokens.neutralSwiftUIColor(.grey84)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey84)) case .foreground3: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey50), - dark: GlobalTokens.neutralSwiftUIColor(.grey68)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey50), + dark: GlobalTokens.neutralSwiftUIColor(.grey68)) case .foregroundDisabled1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey74), - dark: GlobalTokens.neutralSwiftUIColor(.grey36)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey74), + dark: GlobalTokens.neutralSwiftUIColor(.grey36)) case .foregroundDisabled2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey18)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey18)) case .foregroundOnColor: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .brandForegroundTint: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm130)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm130)) case .brandForeground1: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandForeground1Pressed: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandForeground1Selected: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandForegroundDisabled1: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm90)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm90)) case .brandForegroundDisabled2: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandGradient1: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientPrimaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientPrimaryDark)) + return Color(light: GlobalTokens.brandSwiftUIColor(.gradientPrimaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientPrimaryDark)) case .brandGradient2: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientSecondaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientSecondaryDark)) + return Color(light: GlobalTokens.brandSwiftUIColor(.gradientSecondaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientSecondaryDark)) case .brandGradient3: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientTertiaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientTertiaryDark)) + return Color(light: GlobalTokens.brandSwiftUIColor(.gradientTertiaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientTertiaryDark)) case .foregroundDarkStatic: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .foregroundLightStatic: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .background1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey4)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey4)) case .background1Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey18), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey18)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey18), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey18)) case .background1Selected: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey14), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey14), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .background2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey12), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey16)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey12), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey16)) case .background2Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background2Selected: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey26), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey26)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey26)) case .background3: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey16), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey20)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey16), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey20)) case .background3Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey34), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background3Selected: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background4: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), - dark: GlobalTokens.neutralSwiftUIColor(.grey20), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey24)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey24)) case .background4Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), - dark: GlobalTokens.neutralSwiftUIColor(.grey38), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background4Selected: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), - dark: GlobalTokens.neutralSwiftUIColor(.grey34), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background5: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey94), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey28)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey94), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey28)) case .background5Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey42), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey42), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .background5Selected: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), - dark: GlobalTokens.neutralSwiftUIColor(.grey38), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background6: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey36), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey40)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey36), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey40)) case .backgroundDisabled: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey32), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey32), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandBackgroundTint: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm150), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm150), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground1: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandBackground1Pressed: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandBackground1Selected: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackground2: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm70)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm70)) case .brandBackground2Pressed: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm40)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground2Selected: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm80)) case .brandBackground3: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackgroundDisabled: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .stencil1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), - dark: GlobalTokens.neutralSwiftUIColor(.grey34)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34)) case .stencil2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), - dark: GlobalTokens.neutralSwiftUIColor(.grey20)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20)) case .backgroundCanvas: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey96), - dark: GlobalTokens.neutralSwiftUIColor(.grey8), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey96), + dark: GlobalTokens.neutralSwiftUIColor(.grey8), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .backgroundDarkStatic: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .backgroundInverted: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey46), - dark: GlobalTokens.neutralSwiftUIColor(.grey72), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey78)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey46), + dark: GlobalTokens.neutralSwiftUIColor(.grey72), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey78)) case .backgroundLightStatic: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.white), - darkElevated: GlobalTokens.neutralSwiftUIColor(.white)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white), + darkElevated: GlobalTokens.neutralSwiftUIColor(.white)) case .backgroundLightStaticDisabled: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey68), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey68), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .stroke1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey36)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey36)) case .stroke1Pressed: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey70), - dark: GlobalTokens.neutralSwiftUIColor(.grey48)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey70), + dark: GlobalTokens.neutralSwiftUIColor(.grey48)) case .stroke2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .strokeAccessible: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), - dark: GlobalTokens.neutralSwiftUIColor(.grey62), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey68)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey62), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey68)) case .strokeFocus1: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .strokeFocus2: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .strokeDisabled: - return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey26), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) + return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandStroke1: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandStroke1Pressed: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandStroke1Selected: - return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .dangerBackground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.red, .shade40)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade40)) case .dangerBackground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .shade10)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade10)) case .dangerForeground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerForeground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerStroke1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint20), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint20)) case .dangerStroke2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .successBackground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.green, .shade40)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade40)) case .successBackground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.green, .shade10)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade10)) case .successForeground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successForeground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successStroke1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint20), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint20)) case .severeBackground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade40)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade40)) case .severeBackground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10)) case .severeForeground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeForeground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade20), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade20), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeStroke1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint10), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint20)) case .warningBackground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade40)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade40)) case .warningBackground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade10)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade10)) case .warningForeground1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningForeground2: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningStroke1: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade20)) case .presenceAway: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.marigold, .primary)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.marigold, .primary)) case .presenceDnd: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint10)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint10)) case .presenceAvailable: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.lightGreen, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.lightGreen, .tint20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.lightGreen, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.lightGreen, .tint20)) case .presenceOof: - return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.berry, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.berry, .tint20)) + return Color(light: GlobalTokens.sharedSwiftUIColor(.berry, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.berry, .tint20)) } } static func defaultShadow(_ token: ShadowToken) -> ShadowInfo { switch token { case .clear: - return ShadowInfo(keyColor: .clear, + return ShadowInfo(keyColor: Color.clear, keyBlur: 0.0, xKey: 0.0, yKey: 0.0, - ambientColor: .clear, + ambientColor: Color.clear, ambientBlur: 0.0, xAmbient: 0.0, yAmbient: 0.0) case .shadow02: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.14), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.28)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.14), + dark: .black.opacity(0.28)), keyBlur: 2, xKey: 0, yKey: 1, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.12), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20)), + ambientColor: .init(light: .black.opacity(0.12), + dark: .black.opacity(0.20)), ambientBlur: 2, xAmbient: 0, yAmbient: 0) case .shadow04: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.14), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.28)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.14), + dark: .black.opacity(0.28)), keyBlur: 4, xKey: 0, yKey: 2, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.12), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20)), + ambientColor: .init(light: .black.opacity(0.12), + dark: .black.opacity(0.20)), ambientBlur: 2, xAmbient: 0, yAmbient: 0) case .shadow08: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.14), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.28)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.14), + dark: .black.opacity(0.28)), keyBlur: 8, xKey: 0, yKey: 4, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.12), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20)), + ambientColor: .init(light: .black.opacity(0.12), + dark: .black.opacity(0.20)), ambientBlur: 2, xAmbient: 0, yAmbient: 0) case .shadow16: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.14), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.28)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.14), + dark: .black.opacity(0.28)), keyBlur: 16, xKey: 0, yKey: 8, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.12), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20)), + ambientColor: .init(light: .black.opacity(0.12), + dark: .black.opacity(0.20)), ambientBlur: 2, xAmbient: 0, yAmbient: 0) case .shadow28: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.24), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.48)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.24), + dark: .black.opacity(0.48)), keyBlur: 28, xKey: 0, yKey: 14, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.40)), + ambientColor: .init(light: .black.opacity(0.20), + dark: .black.opacity(0.40)), ambientBlur: 8, xAmbient: 0, yAmbient: 0) case .shadow64: - return ShadowInfo(keyColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.24), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.48)), + return ShadowInfo(keyColor: .init(light: .black.opacity(0.24), + dark: .black.opacity(0.48)), keyBlur: 64, xKey: 0, yKey: 32, - ambientColor: UIColor(light: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.20), - dark: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.40)), + ambientColor: .init(light: .black.opacity(0.20), + dark: .black.opacity(0.40)), ambientBlur: 8, xAmbient: 0, yAmbient: 0) @@ -601,7 +584,7 @@ extension FluentTheme { } /// Derives its default values from the theme's `colorTokenSet` values - static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet<ColorToken, DynamicColor>) -> [DynamicColor] { + static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet<ColorToken, Color>) -> [Color] { switch token { case .flair: return [colorTokenSet[.brandGradient1], diff --git a/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift index ff201281ac..ad7976429e 100644 --- a/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift +++ b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift @@ -8,13 +8,77 @@ import SwiftUI public extension FluentTheme { + /// Initializes and returns a new `FluentTheme`. + /// + /// A `FluentTheme` receives any custom alias tokens on initialization via arguments here. + /// Control tokens can be customized via `register(controlType:tokens:) `; + /// see that method's description for additional information. + /// + /// - Parameters: + /// - colorOverrides: A `Dictionary` of override values mapped to `ColorTokens`. + /// - shadowOverrides: A `Dictionary` of override values mapped to `ShadowTokens`. + /// - typographyOverrides: A `Dictionary` of override values mapped to `TypographyTokens`. + /// - gradientOverrides: A `Dictionary` of override values mapped to `GradientTokens`. + /// + /// - Returns: An initialized `FluentTheme` instance, with optional overrides. + convenience init(colorOverrides: [ColorToken: UIColor]? = nil, + shadowOverrides: [ShadowToken: ShadowInfo]? = nil, + typographyOverrides: [TypographyToken: UIFont]? = nil, + gradientOverrides: [GradientToken: [UIColor]]? = nil) { + + let mappedColorOverrides = colorOverrides?.compactMapValues({ uiColor in + return Color(uiColor) + }) + + let mappedTypographyOverrides = typographyOverrides?.compactMapValues({ uiFont in + return FontInfo(name: uiFont.fontName, size: uiFont.pointSize) + }) + + let mappedGradientOverrides = gradientOverrides?.compactMapValues({ uiColors in + return uiColors.compactMap { uiColor in + Color(uiColor) + } + }) + + self.init(colorOverrides: mappedColorOverrides, + shadowOverrides: shadowOverrides, + typographyOverrides: mappedTypographyOverrides, + gradientOverrides: mappedGradientOverrides) + } + /// Returns the color value for the given token. /// /// - Parameter token: The `ColorsTokens` value to be retrieved. /// - Returns: A `UIColor` for the given token. @objc(colorForToken:) func color(_ token: ColorToken) -> UIColor { - return UIColor(dynamicColor: colorTokenSet[token]) + return UIColor(swiftUIColor(token)) + } + + /// Returns the font value for the given token. + /// + /// - Parameter token: The `TypographyTokens` value to be retrieved. + /// - Parameter adjustsForContentSizeCategory: If true, the resulting font will change size according to Dynamic Type specifications. + /// - Returns: A `UIFont` for the given token. + @objc(typographyForToken:adjustsForContentSizeCategory:) + func typography(_ token: TypographyToken, adjustsForContentSizeCategory: Bool = true) -> UIFont { + return UIFont.fluent(typographyInfo(token), + shouldScale: adjustsForContentSizeCategory) + } + + /// Returns the font value for the given token. + /// + /// - Parameter token: The `TypographyTokens` value to be retrieved. + /// - Parameter adjustsForContentSizeCategory: If true, the resulting font will change size according to Dynamic Type specifications. + /// - Parameter contentSizeCategory: An overridden `UIContentSizeCategory` to conform to. + /// - Returns: A `UIFont` for the given token. + @objc(typographyForToken:adjustsForContentSizeCategory:contentSizeCategory:) + func typography(_ token: TypographyToken, + adjustsForContentSizeCategory: Bool = true, + contentSizeCategory: UIContentSizeCategory) -> UIFont { + return UIFont.fluent(typographyInfo(token), + shouldScale: adjustsForContentSizeCategory, + contentSizeCategory: contentSizeCategory) } /// Returns an array of colors for the given token. @@ -23,6 +87,59 @@ public extension FluentTheme { /// - Returns: An array of `UIColor` values for the given token. @objc(gradientColorsForToken:) func gradient(_ token: GradientToken) -> [UIColor] { - return gradientTokenSet[token].map { UIColor(dynamicColor: $0) } + let colors: [Color] = gradient(token) + return colors.map { UIColor($0) } + } +} + +@objc extension UIView: FluentThemeable { + private struct Keys { + static var fluentTheme: UInt8 = 0 + static var cachedFluentTheme: UInt8 = 0 + } + + /// The custom `FluentTheme` to apply to this view. + @objc public var fluentTheme: FluentTheme { + get { + var optionalView: UIView? = self + while let view = optionalView { + // If we successfully find a theme, return it. + if let theme = objc_getAssociatedObject(view, &Keys.fluentTheme) as? FluentTheme { + return theme + } else { + optionalView = view.superview + } + } + + // No custom themes anywhere, so return the default theme + return FluentTheme.shared + } + set { + objc_setAssociatedObject(self, &Keys.fluentTheme, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + NotificationCenter.default.post(name: .didChangeTheme, object: self) + } + } + + /// Removes any associated `ColorProvider` from the given `UIView`. + @objc(resetFluentTheme) + public func resetFluentTheme() { + objc_setAssociatedObject(self, &Keys.fluentTheme, nil, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + NotificationCenter.default.post(name: .didChangeTheme, object: self) + } + + @objc(isApplicableThemeChange:) + public func isApplicableThemeChange(_ notification: Notification) -> Bool { + // Do not update unless the notification's name is `.didChangeTheme`. + guard notification.name == .didChangeTheme else { + return false + } + + // If there is no object, or it is not a UIView, we must assume that we need to update. + guard let themeView = notification.object as? UIView else { + return true + } + + // If the object is a UIView, we only update if `view` is a descendant thereof. + return self.isDescendant(of: themeView) } } diff --git a/Sources/FluentUI_iOS/Core/FluentTheme.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift similarity index 63% rename from Sources/FluentUI_iOS/Core/FluentTheme.swift rename to Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift index 0d7ad39d48..ce261a69a3 100644 --- a/Sources/FluentUI_iOS/Core/FluentTheme.swift +++ b/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift @@ -16,7 +16,10 @@ public class FluentTheme: NSObject, ObservableObject { /// /// - Returns: An initialized `FluentTheme` instance, with optional overrides. @objc public convenience override init() { - self.init(colorOverrides: nil, shadowOverrides: nil, typographyOverrides: nil, gradientOverrides: nil) + self.init(colorOverrides: nil as [ColorToken: Color]?, + shadowOverrides: nil as [ShadowToken: ShadowInfo]?, + typographyOverrides: nil as [TypographyToken: FontInfo]?, + gradientOverrides: nil as [GradientToken: [Color]]?) } /// Initializes and returns a new `FluentTheme`. @@ -32,34 +35,24 @@ public class FluentTheme: NSObject, ObservableObject { /// - gradientOverrides: A `Dictionary` of override values mapped to `GradientTokens`. /// /// - Returns: An initialized `FluentTheme` instance, with optional overrides. - public init(colorOverrides: [ColorToken: UIColor]? = nil, + public init(colorOverrides: [ColorToken: Color]? = nil, shadowOverrides: [ShadowToken: ShadowInfo]? = nil, - typographyOverrides: [TypographyToken: UIFont]? = nil, - gradientOverrides: [GradientToken: [UIColor]]? = nil) { - - // Need to massage UIFonts into FontInfo objects - let mappedTypographyOverrides = typographyOverrides?.compactMapValues({ font in - return FontInfo(name: font.fontName, size: font.pointSize) - }) - - let mappedColorOverrides = colorOverrides?.compactMapValues({ color in - return DynamicColor(uiColor: color) - }) - + typographyOverrides: [TypographyToken: FontInfo]? = nil, + gradientOverrides: [GradientToken: [Color]]? = nil) { #if os(visionOS) // We have custom overrides for `defaultColors` in visionOS. - let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor_visionOS(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> Color) = FluentTheme.defaultColor_visionOS(_:) #else - let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> Color) = FluentTheme.defaultColor(_:) #endif - let colorTokenSet = TokenSet<ColorToken, DynamicColor>(defaultColorFunction, mappedColorOverrides) + let colorTokenSet = TokenSet<ColorToken, Color>(defaultColorFunction, colorOverrides) let shadowTokenSet = TokenSet<ShadowToken, ShadowInfo>(FluentTheme.defaultShadow(_:), shadowOverrides) - let typographyTokenSet = TokenSet<TypographyToken, FontInfo>(FluentTheme.defaultTypography(_:), mappedTypographyOverrides) - let gradientTokenSet = TokenSet<GradientToken, [DynamicColor]>({ [colorTokenSet] token in + let typographyTokenSet = TokenSet<TypographyToken, FontInfo>(FluentTheme.defaultTypography(_:), typographyOverrides) + let gradientTokenSet = TokenSet<GradientToken, [Color]>({ [colorTokenSet] token in // Reference the colorTokenSet as part of the gradient lookup return FluentTheme.defaultGradientColor(token, colorTokenSet: colorTokenSet) - }) + }, gradientOverrides) self.colorTokenSet = colorTokenSet self.shadowTokenSet = shadowTokenSet @@ -101,34 +94,23 @@ public class FluentTheme: NSObject, ObservableObject { } } - /// Determines if a given `Notification` should cause an update for the given `UIView`. + /// Determines if a given `Notification` should cause an update for the given `FluentThemeable`. /// /// - Parameter notification: A `Notification` object that may be requesting a view update based on a theme change. - /// - Parameter view: The `UIView` instance that wants to determine whether to update. + /// - Parameter view: The `FluentThemeable` instance that wants to determine whether to update. /// - /// - Returns: `True` if the view should update, `false` otherwise. + /// - Returns: `true` if the view should update, `false` otherwise. @objc(isApplicableThemeChangeNotification:forView:) public static func isApplicableThemeChange(_ notification: Notification, - for view: UIView) -> Bool { - // Do not update unless the notification's name is `.didChangeTheme`. - guard notification.name == .didChangeTheme else { - return false - } - - // If there is no object, or it is not a UIView, we must assume that we need to update. - guard let themeView = notification.object as? UIView else { - return true - } - - // If the object is a UIView, we only update if `view` is a descendant thereof. - return view.isDescendant(of: themeView) + for view: FluentThemeable) -> Bool { + return view.isApplicableThemeChange(notification) } // Token storage - let colorTokenSet: TokenSet<ColorToken, DynamicColor> + let colorTokenSet: TokenSet<ColorToken, Color> let shadowTokenSet: TokenSet<ShadowToken, ShadowInfo> let typographyTokenSet: TokenSet<TypographyToken, FontInfo> - let gradientTokenSet: TokenSet<GradientToken, [DynamicColor]> + let gradientTokenSet: TokenSet<GradientToken, [Color]> private func tokenKey<T: TokenSetKey>(_ tokenSetType: ControlTokenSet<T>.Type) -> String { return "\(tokenSetType)" @@ -142,6 +124,7 @@ public class FluentTheme: NSObject, ObservableObject { /// Public protocol that, when implemented, allows any container to store and yield a `FluentTheme`. @objc public protocol FluentThemeable { var fluentTheme: FluentTheme { get set } + func isApplicableThemeChange(_ notification: Notification) -> Bool } public extension Notification.Name { @@ -152,42 +135,6 @@ public extension Notification.Name { static let didChangeTheme = Notification.Name("FluentUI.stylesheet.theme") } -@objc extension UIView: FluentThemeable { - private struct Keys { - static var fluentTheme: UInt8 = 0 - static var cachedFluentTheme: UInt8 = 0 - } - - /// The custom `FluentTheme` to apply to this view. - @objc public var fluentTheme: FluentTheme { - get { - var optionalView: UIView? = self - while let view = optionalView { - // If we successfully find a theme, return it. - if let theme = objc_getAssociatedObject(view, &Keys.fluentTheme) as? FluentTheme { - return theme - } else { - optionalView = view.superview - } - } - - // No custom themes anywhere, so return the default theme - return FluentTheme.shared - } - set { - objc_setAssociatedObject(self, &Keys.fluentTheme, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - NotificationCenter.default.post(name: .didChangeTheme, object: self) - } - } - - /// Removes any associated `ColorProvider` from the given `UIView`. - @objc(resetFluentTheme) - public func resetFluentTheme() { - objc_setAssociatedObject(self, &Keys.fluentTheme, nil, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - NotificationCenter.default.post(name: .didChangeTheme, object: self) - } -} - // MARK: - Environment public extension View { diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift index 00e8225970..605bba1daa 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/ControlTokenSet.swift @@ -4,11 +4,13 @@ // import Combine -import UIKit import SwiftUI +#if os(iOS) || os(visionOS) +import UIKit +#endif // os(iOS) || os(visionOS) /// Base class for all Fluent control tokenization. -public class ControlTokenSet<T: TokenSetKey>: ObservableObject { +open class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// Allows us to index into this token set using square brackets. /// /// We can use square brackets to both read and write into this `TokenSet`. For example: @@ -61,7 +63,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// - Parameter otherTokenSet: The token set we will be pulling values from. /// - Parameter mapping: A `Dictionary` that maps our own tokens that we wish to override with /// their corresponding tokens in `otherTokenSet`. - func setOverrides<U>(from otherTokenSet: ControlTokenSet<U>, mapping: [T: U]) { + public func setOverrides<U>(from otherTokenSet: ControlTokenSet<U>, mapping: [T: U]) { // Make a copy so we write all the values at once var valueOverrideCopy = valueOverrides ?? [:] mapping.forEach { (thisToken, otherToken) in @@ -71,7 +73,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { } /// Initialize the `ControlTokenSet` with an escaping callback for fetching default values. - init(_ defaults: @escaping (_ token: T, _ theme: FluentTheme) -> ControlTokenValue) { + public init(_ defaults: @escaping (_ token: T, _ theme: FluentTheme) -> ControlTokenValue) { self.defaults = defaults } @@ -81,7 +83,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// Removes all `onUpdate`-based observing. Useful if you are re-registering the same tokenSet /// for a new instance of a control (see `Tooltip` for an example). - func deregisterOnUpdate() { + public func deregisterOnUpdate() { if let notificationObserver { NotificationCenter.default.removeObserver(notificationObserver, name: .didChangeTheme, @@ -95,7 +97,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// Prepares this token set by installing the current `FluentTheme` if it has changed. /// /// - Parameter fluentTheme: The current `FluentTheme` for the control's environment. - func update(_ fluentTheme: FluentTheme) { + public func update(_ fluentTheme: FluentTheme) { if fluentTheme != self.fluentTheme { self.fluentTheme = fluentTheme } @@ -111,7 +113,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// - Parameter token: The token key to fetch any existing override for. /// /// - Returns: the active override value for a given token, or nil if none exists. - func overrideValue(forToken token: T) -> ControlTokenValue? { + public func overrideValue(forToken token: T) -> ControlTokenValue? { if let value = valueOverrides?[token] { return value } else if let value = fluentTheme.tokens(for: type(of: self))?[token] { @@ -124,7 +126,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// /// - Parameter value: The value to set as an override. /// - Parameter token: The token key whose value should be set. - func setOverrideValue(_ value: ControlTokenValue?, forToken token: T) { + public func setOverrideValue(_ value: ControlTokenValue?, forToken token: T) { if valueOverrides == nil { valueOverrides = [:] } @@ -142,7 +144,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// /// - Parameter control: The `UIView` instance that wishes to observe. /// - Parameter onUpdate: A callback to run whenever `control` should update itself. - func registerOnUpdate(for control: UIView, onUpdate: @escaping (() -> Void)) { + public func registerOnUpdate(for control: FluentThemeable, onUpdate: @escaping (() -> Void)) { guard self.onUpdate == nil, changeSink == nil, notificationObserver == nil else { @@ -164,7 +166,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { queue: nil) { [weak self, weak control] notification in guard let strongSelf = self, let control, - FluentTheme.isApplicableThemeChange(notification, for: control) + control.isApplicableThemeChange(notification) else { return } @@ -173,7 +175,7 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { } /// The current `FluentTheme` associated with this `ControlTokenSet`. - var fluentTheme: FluentTheme = FluentTheme.shared { + public var fluentTheme: FluentTheme = FluentTheme.shared { didSet { guard let onUpdate else { return @@ -204,9 +206,11 @@ public class ControlTokenSet<T: TokenSetKey>: ObservableObject { /// Union-type enumeration of all possible token values to be stored by a `ControlTokenSet`. public enum ControlTokenValue { case float(() -> CGFloat) - case uiColor(() -> UIColor) case color(() -> Color) +#if os(iOS) || os(visionOS) + case uiColor(() -> UIColor) case uiFont(() -> UIFont) +#endif // os(iOS) || os(visionOS) case shadowInfo(() -> ShadowInfo) public var float: CGFloat { @@ -218,6 +222,21 @@ public enum ControlTokenValue { } } + public var color: Color { + if case .color(let color) = self { + return color() + } else { +#if os(iOS) || os(visionOS) + if case .uiColor(let uiColor) = self { + return Color(uiColor()) + } +#endif // os(iOS) || os(visionOS) + assertionFailure("Cannot convert token to Color: \(self)") + return fallbackColor + } + } + +#if os(iOS) || os(visionOS) public var uiColor: UIColor { if case .uiColor(let uiColor) = self { return uiColor() @@ -229,17 +248,6 @@ public enum ControlTokenValue { } } - public var color: Color { - if case .color(let color) = self { - return color() - } else if case .uiColor(let uiColor) = self { - return Color(uiColor()) - } else { - assertionFailure("Cannot convert token to Color: \(self)") - return fallbackColor - } - } - public var uiFont: UIFont { if case .uiFont(let uiFont) = self { return uiFont() @@ -248,17 +256,18 @@ public enum ControlTokenValue { return UIFont() } } +#endif // os(iOS) || os(visionOS) public var shadowInfo: ShadowInfo { if case .shadowInfo(let shadowInfo) = self { return shadowInfo() } else { assertionFailure("Cannot convert token to ShadowInfo: \(self)") - return ShadowInfo(keyColor: fallbackUIColor, + return ShadowInfo(keyColor: fallbackColor, keyBlur: 10.0, xKey: 10.0, yKey: 10.0, - ambientColor: fallbackUIColor, + ambientColor: fallbackColor, ambientBlur: 10.0, xAmbient: 10.0, yAmbient: 10.0) @@ -284,10 +293,14 @@ public enum ControlTokenValue { switch value { case let number as NSNumber: self = .float { CGFloat(number.doubleValue) } - case let color as UIColor: - self = .uiColor { color } + case let color as Color: + self = .color { color } +#if os(iOS) || os(visionOS) + case let uiColor as UIColor: + self = .uiColor { uiColor } case let font as UIFont: self = .uiFont { font } +#endif // os(iOS) || os(visionOS) case let shadowInfo as ShadowInfo: self = .shadowInfo { shadowInfo } default: @@ -297,14 +310,16 @@ public enum ControlTokenValue { // MARK: - Helpers +#if os(iOS) || os(visionOS) private var fallbackUIColor: UIColor { #if DEBUG // Use our global "Hot Pink" in debug builds, to help identify unintentional conversions. - return GlobalTokens.sharedColor(.hotPink, .primary) + return UIColor(GlobalTokens.sharedSwiftUIColor(.hotPink, .primary)) #else return GlobalTokens.neutralColor(.black) #endif } +#endif // os(iOS) || os(visionOS) private var fallbackColor: Color { #if DEBUG @@ -323,12 +338,14 @@ extension ControlTokenValue: CustomStringConvertible { switch self { case .float(let float): return "ControlTokenValue.float (\(float())" - case .uiColor(let uiColor): - return "ControlTokenValue.uiColor (\(uiColor())" case .color(let color): return "ControlTokenValue.color (\(color())" +#if os(iOS) || os(visionOS) + case .uiColor(let uiColor): + return "ControlTokenValue.uiColor (\(uiColor())" case .uiFont(let uiFont): return "ControlTokenValue.uiFont (\(uiFont())" +#endif // os(iOS) || os(visionOS) case .shadowInfo(let shadowInfo): return "ControlTokenValue.shadowInfo (\(shadowInfo())" } diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/DynamicColor.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/DynamicColor.swift new file mode 100644 index 0000000000..5f52b3c091 --- /dev/null +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/DynamicColor.swift @@ -0,0 +1,44 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI + +/// A container that stores a dynamic set of `Color` values. +struct DynamicColor: Hashable { + + /// Creates a custom `ShapeStyle` that stores a dynamic set of `Color` values. + /// + /// - Parameter light: The default `Color` for a light context. Required. + /// - Parameter dark: The override `Color` for a dark context. Optional. + /// - Parameter darkElevated: The override `Color` for a dark elevated context. Optional. + init(light: Color, + dark: Color? = nil, + darkElevated: Color? = nil) { + self.light = light + self.dark = dark + self.darkElevated = darkElevated + } + + let light: Color + let dark: Color? + let darkElevated: Color? +} + +@available(iOS 17, macOS 14, *) +extension DynamicColor: ShapeStyle { + /// Evaluate to a resolved `Color` (in the form of a `ShapeStyle`) given the current `environment`. + func resolve(in environment: EnvironmentValues) -> Color.Resolved { + if environment.colorScheme == .dark { + if environment.isPresented, let darkElevated = darkElevated { + return darkElevated.resolve(in: environment) + } else if let dark = dark { + return dark.resolve(in: environment) + } + } + + // default + return light.resolve(in: environment) + } +} diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift index e4f97e6f46..fbcb53aa9c 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/EmptyTokenSet.swift @@ -13,7 +13,7 @@ public enum EmptyToken: Int, TokenSetKey { /// of being tokenized, but are not fully at that stage yet. public class EmptyTokenSet: ControlTokenSet<EmptyToken> { - init() { + public init() { super.init { _, _ in preconditionFailure("Should not fetch values") } diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift index cd8f6ae968..f8333de3fd 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/FontInfo.swift @@ -35,7 +35,7 @@ public class FontInfo: NSObject { /// The weight to use for the font. public let weight: Font.Weight - var textStyle: Font.TextStyle { + public var textStyle: Font.TextStyle { // Defaults to smallest supported text style for mapping, before checking if we're bigger. var textStyle = Font.TextStyle.caption2 for tuple in Self.sizeTuples { @@ -47,7 +47,11 @@ public class FontInfo: NSObject { return textStyle } - fileprivate static var sizeTuples: [(size: CGFloat, textStyle: Font.TextStyle)] = [ + public var matchesSystemSize: Bool { + return FontInfo.sizeTuples.contains(where: { $0.size == size }) + } + + private static var sizeTuples: [(size: CGFloat, textStyle: Font.TextStyle)] = [ (34.0, .largeTitle), (28.0, .title), (22.0, .title2), @@ -62,133 +66,3 @@ public class FontInfo: NSObject { (11.0, .caption2) ] } - -// MARK: - ViewModifier - -public extension Font { - static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true) -> Font { - // SwiftUI Font is missing some of the ease of construction available in UIFont. - // So just leverage the logic there to create the equivalent SwiftUI font. - let uiFont = UIFont.fluent(fontInfo, shouldScale: shouldScale) - return Font(uiFont) - } -} - -extension UIFont { - @objc public static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true) -> UIFont { - return fluent(fontInfo, shouldScale: shouldScale, contentSizeCategory: nil) - } - - @objc public static func fluent(_ fontInfo: FontInfo, shouldScale: Bool = true, contentSizeCategory: UIContentSizeCategory?) -> UIFont { - let traitCollection: UITraitCollection? - if let contentSizeCategory = contentSizeCategory { - traitCollection = .init(preferredContentSizeCategory: contentSizeCategory) - } else { - traitCollection = nil - } - - let weight = uiWeight(fontInfo.weight) - - if let name = fontInfo.name, - let font = UIFont(name: name, size: fontInfo.size) { - // Named font - let unscaledFont = font.withWeight(weight) - if shouldScale { - let fontMetrics = UIFontMetrics(forTextStyle: uiTextStyle(fontInfo.textStyle)) - return fontMetrics.scaledFont(for: unscaledFont, compatibleWith: traitCollection) - } else { - return unscaledFont - } - } else { - // System font - if !shouldScale { - return .systemFont(ofSize: fontInfo.size, weight: weight) - } - - let textStyle = uiTextStyle(fontInfo.textStyle) - if FontInfo.sizeTuples.contains(where: { $0.size == fontInfo.size }) { - // System-recognized font size, let the OS scale it for us - return UIFont.preferredFont(forTextStyle: textStyle, compatibleWith: traitCollection).withWeight(weight) - } - - // Custom font size, we need to scale it ourselves - let fontMetrics = UIFontMetrics(forTextStyle: textStyle) - return fontMetrics.scaledFont(for: .systemFont(ofSize: fontInfo.size, weight: weight), compatibleWith: traitCollection) - } - } - - private func withWeight(_ weight: UIFont.Weight) -> UIFont { - var attributes = fontDescriptor.fontAttributes - var traits = (attributes[.traits] as? [UIFontDescriptor.TraitKey: Any]) ?? [:] - - traits[.weight] = weight - - // We need to remove `.name` since it may clash with the requested font weight, but - // `.family` will ensure that e.g. Helvetica stays Helvetica. - attributes[.name] = nil - attributes[.traits] = traits - attributes[.family] = familyName - - let descriptor = UIFontDescriptor(fontAttributes: attributes) - - return UIFont(descriptor: descriptor, size: pointSize) - } - - private static func uiTextStyle(_ textStyle: Font.TextStyle) -> UIFont.TextStyle { - switch textStyle { - case .largeTitle: - return .largeTitle - case .title: - return .title1 - case .title2: - return .title2 - case .title3: - return .title3 - case .headline: - return .headline - case .body: - return .body - case .callout: - return .callout - case .subheadline: - return .subheadline - case .footnote: - return .footnote - case .caption: - return .caption1 - case .caption2: - return .caption2 - default: - // Font.TextStyle has `@unknown default` attribute, so we need a default. - assertionFailure("Unknown Font.TextStyle found! Reverting to .body style.") - return .body - } - } - - private static func uiWeight(_ weight: Font.Weight) -> UIFont.Weight { - switch weight { - case .ultraLight: - return .ultraLight - case .thin: - return .thin - case .light: - return .light - case .regular: - return .regular - case .medium: - return .medium - case .semibold: - return .semibold - case .bold: - return .bold - case .heavy: - return .heavy - case .black: - return .black - default: - // Font.Weight has `@unknown default` attribute, so we need a default. - assertionFailure("Unknown Font.Weight found! Reverting to .regular weight.") - return .regular - } - } -} diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo+UIKit.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo+UIKit.swift new file mode 100644 index 0000000000..a4edaf211b --- /dev/null +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo+UIKit.swift @@ -0,0 +1,85 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// + +import SwiftUI +import UIKit + +public extension ShadowInfo { + + /// Initializes a shadow struct to be used in Fluent. + /// + /// - Parameters: + /// - keyColor: The color of the key shadow. + /// - keyBlur: The blur of the key shadow. + /// - xKey: The horizontal offset of the key shadow. + /// - yKey: The vertical offset of the key shadow. + /// - ambientColor: The color of the ambient shadow. + /// - ambientBlur: The blur of the ambient shadow. + /// - xAmbient: The horizontal offset of the ambient shadow. + /// - yAmbient: The vertical offset of the ambient shadow. + @objc convenience init(keyColor: UIColor, + keyBlur: CGFloat, + xKey: CGFloat, + yKey: CGFloat, + ambientColor: UIColor, + ambientBlur: CGFloat, + xAmbient: CGFloat, + yAmbient: CGFloat) { + self.init(keyColor: Color(keyColor), + keyBlur: keyBlur, + xKey: xKey, + yKey: yKey, + ambientColor: Color(ambientColor), + ambientBlur: ambientBlur, + xAmbient: xAmbient, + yAmbient: yAmbient) + } + + /// Applies a key and an ambient shadow on a `UIView`. + /// - Parameters: + /// - view: The view on which the shadows will be applied. + /// - parentController: The view controller responsible for the view on which the shadows will be applied. + func applyShadow(to view: UIView, parentController: UIViewController? = nil) { + guard var shadowable = (view as? Shadowable) ?? (view.superview as? Shadowable) ?? (parentController as? Shadowable) else { + assertionFailure("Cannot apply Fluent shadows to a non-Shadowable view") + return + } + + shadowable.ambientShadow?.removeFromSuperlayer() + shadowable.keyShadow?.removeFromSuperlayer() + + let ambientShadow = initializeShadowLayer(view: view, isAmbientShadow: true) + let keyShadow = initializeShadowLayer(view: view) + + shadowable.ambientShadow = ambientShadow + shadowable.keyShadow = keyShadow + + view.layer.insertSublayer(ambientShadow, at: 0) + view.layer.insertSublayer(keyShadow, below: ambientShadow) + } + + /// Initializes a `CALayer` with the relevant `ShadowInfo` values. + /// - Parameters: + /// - view: The view on which the shadow layer will be applied. + /// - isAmbientShadow: Determines whether to apply ambient or key shadow values on the layer. + /// - Returns: The modified `CALayer`. + func initializeShadowLayer(view: UIView, isAmbientShadow: Bool = false) -> CALayer { + let layer = CALayer() + + layer.frame = view.bounds + layer.shadowColor = UIColor(isAmbientShadow ? ambientColor : keyColor).cgColor + layer.shadowRadius = isAmbientShadow ? ambientBlur : keyBlur + + // The shadowOpacity needs to be set to 1 since the alpha is already set through shadowColor + layer.shadowOpacity = 1 + layer.shadowOffset = CGSize(width: isAmbientShadow ? xAmbient : xKey, + height: isAmbientShadow ? yAmbient : yKey) + layer.needsDisplayOnBoundsChange = true + layer.cornerRadius = view.layer.cornerRadius + layer.backgroundColor = view.backgroundColor?.cgColor + + return layer + } +} diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift index c038adcff7..5b2c723d95 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/ShadowInfo.swift @@ -4,7 +4,8 @@ // import CoreGraphics -import UIKit +import QuartzCore +import SwiftUI /// Represents a two-part shadow as used by FluentUI. @objc(MSFShadowInfo) @@ -20,11 +21,11 @@ public class ShadowInfo: NSObject { /// - ambientBlur: The blur of the ambient shadow. /// - xAmbient: The horizontal offset of the ambient shadow. /// - yAmbient: The vertical offset of the ambient shadow. - public init(keyColor: UIColor, + public init(keyColor: Color, keyBlur: CGFloat, xKey: CGFloat, yKey: CGFloat, - ambientColor: UIColor, + ambientColor: Color, ambientBlur: CGFloat, xAmbient: CGFloat, yAmbient: CGFloat) { @@ -39,7 +40,7 @@ public class ShadowInfo: NSObject { } /// The color of the key shadow. - @objc public let keyColor: UIColor + public let keyColor: Color /// The blur of the key shadow. @objc public let keyBlur: CGFloat @@ -51,7 +52,7 @@ public class ShadowInfo: NSObject { @objc public let yKey: CGFloat /// The color of the ambient shadow. - @objc public let ambientColor: UIColor + public let ambientColor: Color /// The blur of the ambient shadow. @objc public let ambientBlur: CGFloat @@ -66,55 +67,7 @@ public class ShadowInfo: NSObject { private let shadowBlurAdjustment: CGFloat = 0.5 } -public extension ShadowInfo { - /// Applies a key and an ambient shadow on a `UIView`. - /// - Parameters: - /// - view: The view on which the shadows will be applied. - /// - parentController: The view controller responsible for the view on which the shadows will be applied. - func applyShadow(to view: UIView, parentController: UIViewController? = nil) { - guard var shadowable = (view as? Shadowable) ?? (view.superview as? Shadowable) ?? (parentController as? Shadowable) else { - assertionFailure("Cannot apply Fluent shadows to a non-Shadowable view") - return - } - - shadowable.ambientShadow?.removeFromSuperlayer() - shadowable.keyShadow?.removeFromSuperlayer() - - let ambientShadow = initializeShadowLayer(view: view, isAmbientShadow: true) - let keyShadow = initializeShadowLayer(view: view) - - shadowable.ambientShadow = ambientShadow - shadowable.keyShadow = keyShadow - - view.layer.insertSublayer(ambientShadow, at: 0) - view.layer.insertSublayer(keyShadow, below: ambientShadow) - } - - /// Initializes a `CALayer` with the relevant `ShadowInfo` values. - /// - Parameters: - /// - view: The view on which the shadow layer will be applied. - /// - isAmbientShadow: Determines whether to apply ambient or key shadow values on the layer. - /// - Returns: The modified `CALayer`. - func initializeShadowLayer(view: UIView, isAmbientShadow: Bool = false) -> CALayer { - let layer = CALayer() - - layer.frame = view.bounds - layer.shadowColor = (isAmbientShadow ? ambientColor : keyColor).cgColor - layer.shadowRadius = isAmbientShadow ? ambientBlur : keyBlur - - // The shadowOpacity needs to be set to 1 since the alpha is already set through shadowColor - layer.shadowOpacity = 1 - layer.shadowOffset = CGSize(width: isAmbientShadow ? xAmbient : xKey, - height: isAmbientShadow ? yAmbient : yKey) - layer.needsDisplayOnBoundsChange = true - layer.cornerRadius = view.layer.cornerRadius - layer.backgroundColor = view.backgroundColor?.cgColor - - return layer - } -} - -/// Public protocol that, when implemented, allows any UIView or one of its subviews to implement fluent shadows +/// Public protocol that, when implemented, allows any view or one of its subviews to implement fluent shadows public protocol Shadowable { /// The layer on which the ambient shadow is implemented var ambientShadow: CALayer? { get set } diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift index d132780a7d..868c9c34d3 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControl.swift @@ -14,9 +14,3 @@ public protocol TokenizedControl { /// The set of tokens associated with this `TokenizedControl`. var tokenSet: TokenSetType { get } } - -/// Internal extension to `TokenizedControl` that adds the ability to modify the active tokens. -protocol TokenizedControlInternal: TokenizedControl { - /// The current `FluentTheme` applied to this control. Usually acquired via the environment. - var fluentTheme: FluentTheme { get } -} diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift index b31817519d..41f46c0b63 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift @@ -6,7 +6,7 @@ import SwiftUI /// SwiftUI-specific extension to `TokenizedControl`. -public protocol TokenizedControlOverridable: TokenizedControl { +public protocol TokenizedControlView: TokenizedControl { /// Modifier function that updates the design tokens for a given control. /// /// - Parameter tokens: The tokens to apply to this control. @@ -15,11 +15,8 @@ public protocol TokenizedControlOverridable: TokenizedControl { func overrideTokens(_ overrideTokens: [TokenSetKeyType: ControlTokenValue]?) -> Self } -/// Internal union of `TokenizedControlOverridable` and `TokenizedControlInternal` protocols. -internal protocol TokenizedControlView: TokenizedControlOverridable, TokenizedControlInternal {} - /// Common base type alias for all `state` objects. -typealias ControlState = NSObject & ObservableObject & Identifiable +public typealias ControlState = NSObject & ObservableObject & Identifiable // MARK: - Extensions From c89102c8eee582917bbf5509da9758c48872db73 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Thu, 24 Oct 2024 15:55:20 -0700 Subject: [PATCH 82/90] Fix Dogfood CODE_SIGN_IDENTITY (#2100) --- Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj index 76ba3b56cc..f05b83f535 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo.xcodeproj/project.pbxproj @@ -1107,7 +1107,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; BUNDLE_NAME = FluentUI; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = 9KBH5RKYEW; INFOPLIST_FILE = FluentUI.Demo/Info.plist; From 7b48bf195d933c1d679cf89ad4bfa686d0621d48 Mon Sep 17 00:00:00 2001 From: Daniel Morales <dans_alex@hotmail.com> Date: Fri, 1 Nov 2024 13:09:18 -0700 Subject: [PATCH 83/90] Fix (#2102) --- .../Components/Navigation/NavigationBar.swift | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift index 34af15a829..d086f26015 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift @@ -540,7 +540,13 @@ open class NavigationBar: UINavigationBar, TokenizedControl, TwoLineTitleViewDel tokenSet.update(newWindow.fluentTheme) updateTitleViewTokenSets() - updateColors(for: topItem) + + if let navigationItem = topItem { + let (_, actualItem) = actualStyleAndItem(for: navigationItem) + update(with: actualItem) + } else { + updateColors(for: topItem) + } } private func updateTitleViewTokenSets() { @@ -756,7 +762,7 @@ open class NavigationBar: UINavigationBar, TokenizedControl, TwoLineTitleViewDel } /// Updates the bar button items. - /// + /// /// In general, this should be called as late as possible when receiving a new navigation item /// because it will replace a client-provided left bar button item with a back button if needed. private func updateBarButtonItems(with navigationItem: UINavigationItem) { From dbc5609759eefcdeaba471e028faf740846b4032 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Fri, 1 Nov 2024 17:50:52 -0700 Subject: [PATCH 84/90] Fix swift 6 error (#2103) --- .../FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift index 41f46c0b63..50e1f417e1 100644 --- a/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift +++ b/Sources/FluentUI_iOS/Core/Theme/Tokens/TokenizedControlView.swift @@ -3,6 +3,7 @@ // Licensed under the MIT License. // +import Combine import SwiftUI /// SwiftUI-specific extension to `TokenizedControl`. From 71df35b0da92ddc3e8da1b6cde843e74dd080884 Mon Sep 17 00:00:00 2001 From: Daniel Morales <dans_alex@hotmail.com> Date: Mon, 4 Nov 2024 12:13:21 -0800 Subject: [PATCH 85/90] Fixing function call (#2104) --- Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift index d086f26015..21b0d01c67 100644 --- a/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift +++ b/Sources/FluentUI_iOS/Components/Navigation/NavigationBar.swift @@ -543,7 +543,7 @@ open class NavigationBar: UINavigationBar, TokenizedControl, TwoLineTitleViewDel if let navigationItem = topItem { let (_, actualItem) = actualStyleAndItem(for: navigationItem) - update(with: actualItem) + updateColors(for: actualItem) } else { updateColors(for: topItem) } From a4abfdb616fe20ca6e8d2f9fc38e42f40ccb5293 Mon Sep 17 00:00:00 2001 From: Des Marks <johnmarks@microsoft.com> Date: Tue, 5 Nov 2024 15:18:01 -0800 Subject: [PATCH 86/90] [A11y][VoiceOver] Set accessibility value for the sheet expansion state (#2101) * Set accessibility value for the sheet expansion state. * PR Cleanup --------- Co-authored-by: Des Marks <desmarks@Dess-Mac-mini.local> --- .../Bottom Sheet/BottomSheetController.swift | 23 +++++++++++-------- .../Localization/en.lproj/Localizable.strings | 4 ++++ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift index 00a08e2c75..a0161c5e02 100644 --- a/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift +++ b/Sources/FluentUI_iOS/Components/Bottom Sheet/BottomSheetController.swift @@ -174,7 +174,7 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr /// The message should convey the "Expand" action and will be used when the bottom sheet is collapsed. @objc public var handleExpandCustomAccessibilityLabel: String? { didSet { - updateResizingHandleViewAccessibility() + updateResizingHandleViewAccessibility(for: currentExpansionState) } } @@ -182,7 +182,7 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr /// The message should convey the "Collapse" action and will be used when the bottom sheet is expanded. @objc public var handleCollapseCustomAccessibilityLabel: String? { didSet { - updateResizingHandleViewAccessibility() + updateResizingHandleViewAccessibility(for: currentExpansionState) } } @@ -496,6 +496,8 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr super.viewDidAppear(animated) tokenSet.update(fluentTheme) + + updateResizingHandleViewAccessibility(for: currentExpansionState) } public override func viewDidLayoutSubviews() { @@ -523,6 +525,7 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr collapsedHeightInSafeArea = view.safeAreaLayoutGuide.layoutFrame.maxY - offset(for: .collapsed) updateAppearance() + super.viewDidLayoutSubviews() } @@ -667,13 +670,15 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr move(to: isExpanded ? .collapsed : .expanded, interaction: .resizingHandleTap) } - private func updateResizingHandleViewAccessibility() { - if currentExpansionState == .expanded { + private func updateResizingHandleViewAccessibility(for state: BottomSheetExpansionState) { + if state == .expanded { resizingHandleView.accessibilityLabel = handleCollapseCustomAccessibilityLabel ?? "Accessibility.Drawer.ResizingHandle.Label.Collapse".localized resizingHandleView.accessibilityHint = "Accessibility.Drawer.ResizingHandle.Hint.Collapse".localized - } else { + resizingHandleView.accessibilityValue = "Accessibility.Drawer.ResizingHandle.Value.Expanded".localized + } else if state == .collapsed { resizingHandleView.accessibilityLabel = handleExpandCustomAccessibilityLabel ?? "Accessibility.Drawer.ResizingHandle.Label.Expand".localized resizingHandleView.accessibilityHint = "Accessibility.Drawer.ResizingHandle.Hint.Expand".localized + resizingHandleView.accessibilityValue = "Accessibility.Drawer.ResizingHandle.Value.Collapsed".localized } } @@ -933,6 +938,8 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr completeAnimationsIfNeeded() + updateResizingHandleViewAccessibility(for: targetExpansionState) + if currentSheetVerticalOffset != offset(for: targetExpansionState) { delegate?.bottomSheetController?(self, willMoveTo: targetExpansionState, interaction: interaction) @@ -1173,11 +1180,7 @@ public class BottomSheetController: UIViewController, Shadowable, TokenizedContr private var currentStateChangeAnimator: UIViewPropertyAnimator? - private var currentExpansionState: BottomSheetExpansionState = .collapsed { - didSet { - updateResizingHandleViewAccessibility() - } - } + private var currentExpansionState: BottomSheetExpansionState = .collapsed private var targetExpansionState: BottomSheetExpansionState? diff --git a/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings b/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings index d74480ba92..e3d54c67d0 100644 --- a/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings +++ b/Sources/FluentUI_iOS/Resources/Localization/en.lproj/Localizable.strings @@ -82,10 +82,14 @@ "Accessibility.Drawer.ResizingHandle.Label.Expand" = "Expand"; /* Accessibility hint for drawer's resizing handle when it has expand action */ "Accessibility.Drawer.ResizingHandle.Hint.Expand" = "Double tap to expand"; +/* Accessibility value for drawer's resizing handle when the sheet is in a collapsed state */ +"Accessibility.Drawer.ResizingHandle.Value.Collapsed" = "Collapsed"; /* Accessibility label for drawer's resizing handle when it has collapse action */ "Accessibility.Drawer.ResizingHandle.Label.Collapse" = "Collapse"; /* Accessibility hint for drawer's resizing handle when it has collapse action */ "Accessibility.Drawer.ResizingHandle.Hint.Collapse" = "Double tap to collapse"; +/* Accessibility value for drawer's resizing handle when the sheet is in a expanded state */ +"Accessibility.Drawer.ResizingHandle.Value.Expanded" = "Expanded"; /* Accessibility label for when a task under progress has finished */ "Accessibility.HUD.Done" = "Done"; From 0e6e9a1a6ed50cfe65e34760a9de4f72e5529aa4 Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Fri, 8 Nov 2024 13:38:04 -0800 Subject: [PATCH 87/90] Fix dark mode issues with new color system (#2105) --- .../Core/Extensions/Color+Extensions.swift | 24 ++ .../Core/FluentTheme+Tokens.swift | 390 +++++++++--------- .../Core/Theme/FluentTheme+UIKit.swift | 2 +- .../FluentUI_iOS/Core/Theme/FluentTheme.swift | 17 +- 4 files changed, 230 insertions(+), 203 deletions(-) diff --git a/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift b/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift index f585e6718f..23473a40af 100644 --- a/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift +++ b/Sources/FluentUI_iOS/Core/Extensions/Color+Extensions.swift @@ -33,10 +33,34 @@ extension Color { darkElevated: Color? = nil) { let dynamicColor = DynamicColor(light: light, dark: dark, darkElevated: darkElevated) + self.init(dynamicColor: dynamicColor) + } + + /// Creates a custom `Color` from a prebuilt `DynamicColor` structure. + /// + /// - Parameter dynamicColor: A dynmic color structure that describes the `Color` to be created. + init(dynamicColor: DynamicColor) { if #available(iOS 17, *) { self.init(dynamicColor) } else { self.init(uiColor: UIColor(dynamicColor: dynamicColor)) } } + + var dynamicColor: DynamicColor { + if #available(iOS 17, *) { + var lightEnvironment = EnvironmentValues.init() + lightEnvironment.colorScheme = .light + + var darkEnvironment = EnvironmentValues.init() + darkEnvironment.colorScheme = .dark + + return DynamicColor(light: Color(self.resolve(in: lightEnvironment)), + dark: Color(self.resolve(in: darkEnvironment))) + } else { + let uiColor = UIColor(self) + return DynamicColor(light: Color(uiColor.light), + dark: Color(uiColor.dark)) + } + } } diff --git a/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift b/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift index 0706440344..cea14a0ac3 100644 --- a/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift +++ b/Sources/FluentUI_iOS/Core/FluentTheme+Tokens.swift @@ -150,7 +150,7 @@ public extension FluentTheme { /// - Parameter token: The `ColorsTokens` value to be retrieved. /// - Returns: A `Color` for the given token. func swiftUIColor(_ token: ColorToken) -> Color { - return colorTokenSet[token] + return Color(dynamicColor: colorTokenSet[token]) } /// Returns the shadow value for the given token. @@ -176,289 +176,289 @@ public extension FluentTheme { /// - Parameter token: The `GradientTokens` value to be retrieved. /// - Returns: An array of `Color` values for the given token. func gradient(_ token: GradientToken) -> [Color] { - return gradientTokenSet[token] + return gradientTokenSet[token].map { Color(dynamicColor: $0) } } } extension FluentTheme { - static func defaultColor(_ token: FluentTheme.ColorToken) -> Color { + static func defaultColor(_ token: FluentTheme.ColorToken) -> DynamicColor { switch token { case .foreground1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey14), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .foreground2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey38), - dark: GlobalTokens.neutralSwiftUIColor(.grey84)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey84)) case .foreground3: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey50), - dark: GlobalTokens.neutralSwiftUIColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey50), + dark: GlobalTokens.neutralSwiftUIColor(.grey68)) case .foregroundDisabled1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey74), - dark: GlobalTokens.neutralSwiftUIColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey74), + dark: GlobalTokens.neutralSwiftUIColor(.grey36)) case .foregroundDisabled2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey18)) case .foregroundOnColor: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .brandForegroundTint: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm130)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm130)) case .brandForeground1: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandForeground1Pressed: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandForeground1Selected: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandForegroundDisabled1: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm90)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm90)) case .brandForegroundDisabled2: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm140), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandGradient1: - return Color(light: GlobalTokens.brandSwiftUIColor(.gradientPrimaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientPrimaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientPrimaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientPrimaryDark)) case .brandGradient2: - return Color(light: GlobalTokens.brandSwiftUIColor(.gradientSecondaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientSecondaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientSecondaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientSecondaryDark)) case .brandGradient3: - return Color(light: GlobalTokens.brandSwiftUIColor(.gradientTertiaryLight), - dark: GlobalTokens.brandSwiftUIColor(.gradientTertiaryDark)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.gradientTertiaryLight), + dark: GlobalTokens.brandSwiftUIColor(.gradientTertiaryDark)) case .foregroundDarkStatic: - return Color(light: GlobalTokens.neutralSwiftUIColor(.black), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .foregroundLightStatic: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .background1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey4)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey4)) case .background1Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey18), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey18)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey18), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey18)) case .background1Selected: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey14), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey14), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .background2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey12), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey16)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey12), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey16)) case .background2Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background2Selected: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey26), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey26)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey26)) case .background3: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey16), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey16), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey20)) case .background3Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey34), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background3Selected: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey92), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey92), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .background4: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey98), - dark: GlobalTokens.neutralSwiftUIColor(.grey20), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey24)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey24)) case .background4Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey86), - dark: GlobalTokens.neutralSwiftUIColor(.grey38), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background4Selected: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey90), - dark: GlobalTokens.neutralSwiftUIColor(.grey34), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey34)) case .background5: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey94), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey28)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey94), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey28)) case .background5Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey42), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey42), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .background5Selected: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey86), - dark: GlobalTokens.neutralSwiftUIColor(.grey38), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey86), + dark: GlobalTokens.neutralSwiftUIColor(.grey38), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey38)) case .background6: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey36), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey40)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey36), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey40)) case .backgroundDisabled: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey32), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey32), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandBackgroundTint: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm150), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm150), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground1: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandBackground1Pressed: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandBackground1Selected: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackground2: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm70)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm70)) case .brandBackground2Pressed: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm40)) case .brandBackground2Selected: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm80)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80)) case .brandBackground3: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .brandBackgroundDisabled: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm140), - dark: GlobalTokens.brandSwiftUIColor(.comm40)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm140), + dark: GlobalTokens.brandSwiftUIColor(.comm40)) case .stencil1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey90), - dark: GlobalTokens.neutralSwiftUIColor(.grey34)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey90), + dark: GlobalTokens.neutralSwiftUIColor(.grey34)) case .stencil2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey98), - dark: GlobalTokens.neutralSwiftUIColor(.grey20)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey98), + dark: GlobalTokens.neutralSwiftUIColor(.grey20)) case .backgroundCanvas: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey96), - dark: GlobalTokens.neutralSwiftUIColor(.grey8), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey96), + dark: GlobalTokens.neutralSwiftUIColor(.grey8), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey14)) case .backgroundDarkStatic: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey14), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey14), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .backgroundInverted: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey46), - dark: GlobalTokens.neutralSwiftUIColor(.grey72), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey78)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey46), + dark: GlobalTokens.neutralSwiftUIColor(.grey72), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey78)) case .backgroundLightStatic: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.white), - darkElevated: GlobalTokens.neutralSwiftUIColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.white), + darkElevated: GlobalTokens.neutralSwiftUIColor(.white)) case .backgroundLightStaticDisabled: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.grey68), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.grey68), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey42)) case .stroke1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey82), - dark: GlobalTokens.neutralSwiftUIColor(.grey30), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey36)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey82), + dark: GlobalTokens.neutralSwiftUIColor(.grey30), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey36)) case .stroke1Pressed: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey70), - dark: GlobalTokens.neutralSwiftUIColor(.grey48)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey70), + dark: GlobalTokens.neutralSwiftUIColor(.grey48)) case .stroke2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey24), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey24), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey30)) case .strokeAccessible: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey38), - dark: GlobalTokens.neutralSwiftUIColor(.grey62), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey68)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey38), + dark: GlobalTokens.neutralSwiftUIColor(.grey62), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey68)) case .strokeFocus1: - return Color(light: GlobalTokens.neutralSwiftUIColor(.white), - dark: GlobalTokens.neutralSwiftUIColor(.black)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.white), + dark: GlobalTokens.neutralSwiftUIColor(.black)) case .strokeFocus2: - return Color(light: GlobalTokens.neutralSwiftUIColor(.black), - dark: GlobalTokens.neutralSwiftUIColor(.white)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.black), + dark: GlobalTokens.neutralSwiftUIColor(.white)) case .strokeDisabled: - return Color(light: GlobalTokens.neutralSwiftUIColor(.grey88), - dark: GlobalTokens.neutralSwiftUIColor(.grey26), - darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) + return DynamicColor(light: GlobalTokens.neutralSwiftUIColor(.grey88), + dark: GlobalTokens.neutralSwiftUIColor(.grey26), + darkElevated: GlobalTokens.neutralSwiftUIColor(.grey32)) case .brandStroke1: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm80), - dark: GlobalTokens.brandSwiftUIColor(.comm100)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm80), + dark: GlobalTokens.brandSwiftUIColor(.comm100)) case .brandStroke1Pressed: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm50), - dark: GlobalTokens.brandSwiftUIColor(.comm140)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm50), + dark: GlobalTokens.brandSwiftUIColor(.comm140)) case .brandStroke1Selected: - return Color(light: GlobalTokens.brandSwiftUIColor(.comm60), - dark: GlobalTokens.brandSwiftUIColor(.comm120)) + return DynamicColor(light: GlobalTokens.brandSwiftUIColor(.comm60), + dark: GlobalTokens.brandSwiftUIColor(.comm120)) case .dangerBackground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.red, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade40)) case .dangerBackground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .shade10)) case .dangerForeground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerForeground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .dangerStroke1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .tint20), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint20)) case .dangerStroke2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint30)) case .successBackground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.green, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade40)) case .successBackground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.green, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .shade10)) case .successForeground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successForeground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint30)) case .successStroke1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.green, .tint20), - dark: GlobalTokens.sharedSwiftUIColor(.green, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.green, .tint20), + dark: GlobalTokens.sharedSwiftUIColor(.green, .tint20)) case .severeBackground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade40)) case .severeBackground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10)) case .severeForeground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeForeground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade20), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .shade20), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint30)) case .severeStroke1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint10), - dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint10), + dark: GlobalTokens.sharedSwiftUIColor(.darkOrange, .tint20)) case .warningBackground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .tint60), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade40)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .tint60), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade40)) case .warningBackground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade10)) case .warningForeground1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningForeground2: - return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .tint30)) case .warningStroke1: - return Color(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), - dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.yellow, .shade30), + dark: GlobalTokens.sharedSwiftUIColor(.yellow, .shade20)) case .presenceAway: - return Color(light: GlobalTokens.sharedSwiftUIColor(.marigold, .primary)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.marigold, .primary)) case .presenceDnd: - return Color(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.red, .tint10)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.red, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.red, .tint10)) case .presenceAvailable: - return Color(light: GlobalTokens.sharedSwiftUIColor(.lightGreen, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.lightGreen, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.lightGreen, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.lightGreen, .tint20)) case .presenceOof: - return Color(light: GlobalTokens.sharedSwiftUIColor(.berry, .primary), - dark: GlobalTokens.sharedSwiftUIColor(.berry, .tint20)) + return DynamicColor(light: GlobalTokens.sharedSwiftUIColor(.berry, .primary), + dark: GlobalTokens.sharedSwiftUIColor(.berry, .tint20)) } } @@ -584,7 +584,7 @@ extension FluentTheme { } /// Derives its default values from the theme's `colorTokenSet` values - static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet<ColorToken, Color>) -> [Color] { + static func defaultGradientColor(_ token: GradientToken, colorTokenSet: TokenSet<ColorToken, DynamicColor>) -> [DynamicColor] { switch token { case .flair: return [colorTokenSet[.brandGradient1], diff --git a/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift index ad7976429e..dd7080352d 100644 --- a/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift +++ b/Sources/FluentUI_iOS/Core/Theme/FluentTheme+UIKit.swift @@ -52,7 +52,7 @@ public extension FluentTheme { /// - Returns: A `UIColor` for the given token. @objc(colorForToken:) func color(_ token: ColorToken) -> UIColor { - return UIColor(swiftUIColor(token)) + return UIColor(dynamicColor: colorTokenSet[token]) } /// Returns the font value for the given token. diff --git a/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift b/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift index ce261a69a3..34459fa01f 100644 --- a/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift +++ b/Sources/FluentUI_iOS/Core/Theme/FluentTheme.swift @@ -41,18 +41,21 @@ public class FluentTheme: NSObject, ObservableObject { gradientOverrides: [GradientToken: [Color]]? = nil) { #if os(visionOS) // We have custom overrides for `defaultColors` in visionOS. - let defaultColorFunction: ((FluentTheme.ColorToken) -> Color) = FluentTheme.defaultColor_visionOS(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor_visionOS(_:) #else - let defaultColorFunction: ((FluentTheme.ColorToken) -> Color) = FluentTheme.defaultColor(_:) + let defaultColorFunction: ((FluentTheme.ColorToken) -> DynamicColor) = FluentTheme.defaultColor(_:) #endif - let colorTokenSet = TokenSet<ColorToken, Color>(defaultColorFunction, colorOverrides) + let colorTokenSet = TokenSet<ColorToken, DynamicColor>( + defaultColorFunction, + colorOverrides?.mapValues { $0.dynamicColor } + ) let shadowTokenSet = TokenSet<ShadowToken, ShadowInfo>(FluentTheme.defaultShadow(_:), shadowOverrides) let typographyTokenSet = TokenSet<TypographyToken, FontInfo>(FluentTheme.defaultTypography(_:), typographyOverrides) - let gradientTokenSet = TokenSet<GradientToken, [Color]>({ [colorTokenSet] token in + let gradientTokenSet = TokenSet<GradientToken, [DynamicColor]>({ [colorTokenSet] token in // Reference the colorTokenSet as part of the gradient lookup return FluentTheme.defaultGradientColor(token, colorTokenSet: colorTokenSet) - }, gradientOverrides) + }, gradientOverrides?.mapValues { $0.map { $0.dynamicColor} }) self.colorTokenSet = colorTokenSet self.shadowTokenSet = shadowTokenSet @@ -107,10 +110,10 @@ public class FluentTheme: NSObject, ObservableObject { } // Token storage - let colorTokenSet: TokenSet<ColorToken, Color> + let colorTokenSet: TokenSet<ColorToken, DynamicColor> let shadowTokenSet: TokenSet<ShadowToken, ShadowInfo> let typographyTokenSet: TokenSet<TypographyToken, FontInfo> - let gradientTokenSet: TokenSet<GradientToken, [Color]> + let gradientTokenSet: TokenSet<GradientToken, [DynamicColor]> private func tokenKey<T: TokenSetKey>(_ tokenSetType: ControlTokenSet<T>.Type) -> String { return "\(tokenSetType)" From 8b6ed6d8d571887d29e737a212b5ea3ca592194f Mon Sep 17 00:00:00 2001 From: Mike Schreiber <mischreiber@microsoft.com> Date: Thu, 14 Nov 2024 14:45:36 -0800 Subject: [PATCH 88/90] [iOS] Support gradient colors for selected item in `TabBarView` (#2107) * Adding an API for gradient highlights on `TabBar` * Adding additional comments * Delete old commented test code --- .../Demos/TabBarViewDemoController.swift | 22 ++++++++ .../Components/Tab Bar/TabBarItemView.swift | 53 ++++++++++++++++--- .../Components/Tab Bar/TabBarView.swift | 11 ++++ 3 files changed, 78 insertions(+), 8 deletions(-) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift index 025d5afad4..8c0db196c9 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Demos/TabBarViewDemoController.swift @@ -19,10 +19,12 @@ class TabBarViewDemoController: DemoController { private var showsItemTitles: Bool { return itemTitleVisibilitySwitch.isOn } private var showBadgeNumbers: Bool { return showBadgeNumbersSwitch.isOn } private var useHigherBadgeNumbers: Bool { return useHigherBadgeNumbersSwitch.isOn } + private var useGradientSelection: Bool { return useGradientSelectionSwitch.isOn } private let itemTitleVisibilitySwitch = BrandedSwitch() private let showBadgeNumbersSwitch = BrandedSwitch() private let useHigherBadgeNumbersSwitch = BrandedSwitch() + private let useGradientSelectionSwitch = BrandedSwitch() private lazy var incrementBadgeButton: Button = { return createButton(title: "+", action: #selector(incrementBadgeNumbers)) @@ -37,6 +39,19 @@ class TabBarViewDemoController: DemoController { private var badgeNumbers: [UInt] = Constants.initialBadgeNumbers private var higherBadgeNumbers: [UInt] = Constants.initialHigherBadgeNumbers + private lazy var gradient: CAGradientLayer = { + let gradientColors = [ + UIColor.red.cgColor, + UIColor.green.cgColor + ] + let colorfulGradient = CAGradientLayer() + colorfulGradient.colors = gradientColors + colorfulGradient.startPoint = CGPoint(x: 0.0, y: 0.0) + colorfulGradient.endPoint = CGPoint(x: 1.0, y: 1.0) + colorfulGradient.type = .axial + return colorfulGradient + }() + override func viewDidLoad() { super.viewDidLoad() @@ -55,6 +70,9 @@ class TabBarViewDemoController: DemoController { addRow(text: "Use higher badge numbers", items: [useHigherBadgeNumbersSwitch], textWidth: Constants.switchSettingTextWidth) useHigherBadgeNumbersSwitch.addTarget(self, action: #selector(handleOnSwitchValueChanged), for: .valueChanged) + addRow(text: "Use gradient selection", items: [useGradientSelectionSwitch], textWidth: Constants.switchSettingTextWidth) + useGradientSelectionSwitch.addTarget(self, action: #selector(handleOnSwitchValueChanged), for: .valueChanged) + addRow(text: "Modify badge numbers", items: [incrementBadgeButton, decrementBadgeButton], textWidth: Constants.buttonSettingTextWidth) setupTabBarView() @@ -94,6 +112,10 @@ class TabBarViewDemoController: DemoController { // If the open file item has been clicked, maintain that state through to the new item updatedTabBarView.items[2].isUnreadDotVisible = isOpenFileUnread + if useGradientSelection { + updatedTabBarView.selectedItemGradient = gradient + } + updatedTabBarView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(updatedTabBarView) diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift index 7a28fbffcd..ae9ce6b954 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarItemView.swift @@ -85,6 +85,15 @@ class TabBarItemView: UIControl, TokenizedControl { } } + /// The main gradient layer to be applied to the TabBarItemView with the gradient style. + var gradient: CAGradientLayer? { + didSet { + if oldValue != gradient { + updateColors() + } + } + } + init(item: TabBarItem, showsTitle: Bool, canResizeImage: Bool = true) { self.canResizeImage = canResizeImage self.item = item @@ -180,8 +189,10 @@ class TabBarItemView: UIControl, TokenizedControl { override func didMoveToWindow() { super.didMoveToWindow() - tokenSet.update(fluentTheme) - updateAppearance() + if window != nil { + tokenSet.update(fluentTheme) + updateAppearance() + } } private var badgeValue: String? { @@ -266,12 +277,38 @@ class TabBarItemView: UIControl, TokenizedControl { return alwaysShowTitleBelowImage || (traitCollection.horizontalSizeClass == .compact && traitCollection.verticalSizeClass == .regular) } - private func updateColors() { - let selectedColor = tokenSet[.selectedColor].uiColor - let disabledColor = tokenSet[.disabledColor].uiColor + private var selectedImage: UIImage? { + let selectedImage = item.selectedImage(isInPortraitMode: isInPortraitMode, labelIsHidden: titleLabel.isHidden) + guard let gradient else { + return selectedImage + } + + // This is necessary because imageView.tintColor does not work with UIColor(patternImage:). + let mask = CALayer() + mask.contents = selectedImage?.cgImage + mask.frame = imageView.bounds + gradient.frame = imageView.bounds + gradient.mask = mask + let renderer = UIGraphicsImageRenderer(bounds: imageView.bounds) + let gradientImage = renderer.image { rendererContext in + gradient.render(in: rendererContext.cgContext) + } + return gradientImage + } - titleLabel.textColor = isEnabled ? (isSelected ? selectedColor : tokenSet[.unselectedTextColor].uiColor) : disabledColor - imageView.tintColor = isEnabled ? (isSelected ? selectedColor : tokenSet[.unselectedImageColor].uiColor) : disabledColor + private func updateColors() { + if isEnabled { + // We cannot use UIColor(patternImage:) for the tintColor of a UIView. Instead, we have to + // fully replace the image, so we should not re-tint it here when we have a gradient. + let shouldTint = isSelected && gradient == nil + let tintColor = tokenSet[.selectedColor].uiColor + titleLabel.textColor = shouldTint ? tintColor : tokenSet[.unselectedTextColor].uiColor + imageView.tintColor = shouldTint ? tintColor : tokenSet[.unselectedImageColor].uiColor + } else { + let disabledColor = tokenSet[.disabledColor].uiColor + titleLabel.textColor = disabledColor + imageView.tintColor = disabledColor + } } private func updateImage() { @@ -279,7 +316,7 @@ class TabBarItemView: UIControl, TokenizedControl { // UIImageView in iOS 16 where highlighted images lose their tint color in certain scenarios. While we wait for a fix, // this is a straightforward workaround that gets us the same effect without triggering the bug. imageView.image = isSelected ? - item.selectedImage(isInPortraitMode: isInPortraitMode, labelIsHidden: titleLabel.isHidden) : + selectedImage : item.unselectedImage(isInPortraitMode: isInPortraitMode, labelIsHidden: titleLabel.isHidden) } diff --git a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift index 6688e2eb06..7dd1093d82 100644 --- a/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift +++ b/Sources/FluentUI_iOS/Components/Tab Bar/TabBarView.swift @@ -64,6 +64,13 @@ open class TabBarView: UIView, TokenizedControl { } } } + + /// An optional gradient to display for the selected item. + @objc public var selectedItemGradient: CAGradientLayer? { + didSet { + updateAppearance() + } + } @objc public weak var delegate: TabBarViewDelegate? @@ -210,6 +217,10 @@ open class TabBarView: UIView, TokenizedControl { forToken: .titleLabelFontPortrait) tabBarItemTokenSet.setOverrideValue(tokenSet.overrideValue(forToken: .tabBarItemTitleLabelFontLandscape), forToken: .titleLabelFontLandscape) + + if let selectedItemGradient { + tabBarItemView.gradient = selectedItemGradient + } } } topBorderLine.tokenSet[.color] = tokenSet[.separatorColor] From 29d8c312c47ef110d4d2f70a6b2ee8c35c993fcd Mon Sep 17 00:00:00 2001 From: Lamine Male <106181067+laminesm@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:43:52 -0800 Subject: [PATCH 89/90] Don't recreate pill buttons when the pill button bar's bounds change (#2108) --- .../Pill Button Bar/PillButtonBar.swift | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift index 2c8e01795a..224ccccc16 100644 --- a/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift +++ b/Sources/FluentUI_iOS/Components/Pill Button Bar/PillButtonBar.swift @@ -81,20 +81,6 @@ open class PillButtonBar: UIScrollView { } } - public override var bounds: CGRect { - didSet { - if bounds.width > 0, lastKnownScrollFrameWidth > 0, bounds.width != lastKnownScrollFrameWidth { - // Frame changes can happen because of rotation, split view or adding the view for the first - // time into a superview. First time layout already has buttons in default sizes, recreate - // them so that the next time we layout subviews we'll recalculate their optimal sizes. - recreateButtons() - stackView.spacing = Constants.minButtonsSpacing - } - - lastKnownScrollFrameWidth = bounds.width - } - } - /// Initializes the PillButtonBar using the provided style. /// /// - Parameters: @@ -207,8 +193,6 @@ open class PillButtonBar: UIScrollView { private var buttons = [PillButton]() - private var lastKnownScrollFrameWidth: CGFloat = 0.0 - private var needsButtonSizeReconfiguration: Bool = false private var selectedButton: PillButton? { @@ -394,19 +378,6 @@ open class PillButtonBar: UIScrollView { return nil } - private func recreateButtons() { - let selectedItem = selectedButton?.pillBarItem - selectedButton = nil - - let currentItems = items - items = nil - items = currentItems - - if let selectedItem = selectedItem { - selectItem(selectedItem) - } - } - private func setupScrollView() { if effectiveUserInterfaceLayoutDirection == .rightToLeft { transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) From d7f954bca7a3b9a2f059cfdbbb7bbeadedd01863 Mon Sep 17 00:00:00 2001 From: Joanna Qu <55368679+joannaquu@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:53:18 -0800 Subject: [PATCH 90/90] Bump version to 0.32.0 (#2109) --- Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist | 4 ++-- .../FluentUITestApp/FluentUITestApp-Info.plist | 4 ++-- MicrosoftFluentUI.podspec | 2 +- Sources/FluentUI_iOS/Resources/Version.plist | 4 ++-- Sources/FluentUI_macOS/FluentUI-Info.plist | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist index 21507fcc07..c11eea77fe 100644 --- a/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist +++ b/Demos/FluentUIDemo_iOS/FluentUI.Demo/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.31.0</string> + <string>1.32.0</string> <key>CFBundleURLTypes</key> <array> <dict> @@ -26,7 +26,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>137.31.0</string> + <string>137.32.0</string> <key>LSRequiresIPhoneOS</key> <true/> <key>UIApplicationSceneManifest</key> diff --git a/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist b/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist index e772cd26bd..b1f58c526c 100644 --- a/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist +++ b/Demos/FluentUIDemo_macOS/FluentUITestApp/FluentUITestApp-Info.plist @@ -17,9 +17,9 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.31.0</string> + <string>0.32.0</string> <key>CFBundleVersion</key> - <string>62.31.0</string> + <string>62.32.0</string> <key>LSApplicationCategoryType</key> <string>public.app-category.developer-tools</string> <key>LSMinimumSystemVersion</key> diff --git a/MicrosoftFluentUI.podspec b/MicrosoftFluentUI.podspec index 95376a1f34..c5c99c1675 100644 --- a/MicrosoftFluentUI.podspec +++ b/MicrosoftFluentUI.podspec @@ -8,7 +8,7 @@ resources_dir = 'Resources' Pod::Spec.new do |s| s.name = 'MicrosoftFluentUI' - s.version = '0.31.0' + s.version = '0.32.0' s.summary = 'Fluent UI is a set of reusable UI controls and tools' s.homepage = "https://www.microsoft.com/design/fluent/#/" s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/Sources/FluentUI_iOS/Resources/Version.plist b/Sources/FluentUI_iOS/Resources/Version.plist index 250009c93c..0329d64130 100644 --- a/Sources/FluentUI_iOS/Resources/Version.plist +++ b/Sources/FluentUI_iOS/Resources/Version.plist @@ -3,8 +3,8 @@ <plist version="1.0"> <dict> <key>CFBundleShortVersionString</key> - <string>0.31.0</string> + <string>0.32.0</string> <key>CFBundleVersion</key> - <string>0.31.0</string> + <string>0.32.0</string> </dict> </plist> diff --git a/Sources/FluentUI_macOS/FluentUI-Info.plist b/Sources/FluentUI_macOS/FluentUI-Info.plist index b58d90bf20..9c3726c6a7 100644 --- a/Sources/FluentUI_macOS/FluentUI-Info.plist +++ b/Sources/FluentUI_macOS/FluentUI-Info.plist @@ -15,8 +15,8 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>0.31.0</string> + <string>0.32.0</string> <key>CFBundleVersion</key> - <string>0.31.0</string> + <string>0.32.0</string> </dict> </plist>

a+W$ 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 literal 0 HcmV?d00001 diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png b/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd9c19671cb01ce9484b82543dd0c4c7aadbd6f GIT binary patch literal 1861 zcmV-L2fFx)P)x zQw7nG2nmEB^2L#C`6Ko@$(^0s-Fdt>GrK!yL<1|$&3??h_j|whG4BW`uJ>=RU$BY2 z2$=I=bV2Ch|6Ghd5&8^!w^f>JH{M$A$DgUXx%kU^H!pCdQ_|%N2Q8dCN->`&kY{wP z@hf#oEGT18%fhrRkT6VA%CP>MJiC#~ko9}AZI2lnO!)CB;UREsnBvQ|H6MWvlR1IRT#8N^uzq&Kf75rV z&ays{y{D1_AI=nbJ1bw8>58-M;_da`tfloY9<(u4nqal}470b|U8bSdv`RN8sRu&x zO~IL(ejAujM!f6vS*cJahC<7w{WgvYS~cSYm)|{1#ByDys%;qFYIm>JI|jV<&RS=^ zJPS$_tTt9=9i`msuwiiN*TKsKFa8v?B?NpKKzpj{O=^w)}&a;07rlL}Nt z^1ZV-gETcknd}S0-4_)QcHiAT_C~zc%EdTyK4s?KLg53&bMAA8f*TYB0y9pC^DWRh zJB#+xtOTR1>vd7?K0>~^56Z`04*S^g0nBdrU?lgrC_yV%H`P2}7<;AapAhhJ&))T- z80rR5o=Eyl^-jr{g~^QD1MAl%3$sXNlzWFLw5_y?bM$C}PMK5&=3#>JhKdtHn>?6V&j36C zwrHer?GB|KrTE~JFN@JCT zs=RQ+6hdcd-QX%e5$_?FYEJmLM7i-0_Fy2D(s&INxTSDQjf>ORM`$X52cYyTh;c5I z%d@y5AV7R+U|}R_^~Wyk<{_w)z)TS$gwYK*WKS}{&02j{x+QIt0a8E8a4x8nhe>rG z9WciC4$$6z>@tLM|AAxO)m;_kL@@&m{S^}x18#_7E^PqC6UI0?$HLs=Gbmn^!}IYF zX6MiW_M%MVGR7o`2^R#*EB`mF$U%zW|I(tV5kb2~e(DV}V!l~C1xS4`2SadwU))#O zBMUmd93yXxr~$YDQltj1Y*whbO3#`BANz<1Rsbd;4?xn?od?}1k(q#=7LG($PB;cG za~1$N%L6#aMkvcbG(r|M7uVb+#`~1Cu#XGajYIJE$Scx!MU*%k1!q>*fpGjfxm*LP z6mi8sX(PkED}2z(uP83>4@9xVKq{6i9n{e8Sgsie({vmI>?x?~03$?vl`@45Wj89X z`YRUNjRV;G2T~;^{W4K3?jVYYQrTs2@wj3`7Cd`02!r*AKepg@FNQz2)#e#6*<^F^I@R{@@7hprhYbCmc<*X=X}OO=uSYM8Pq-O!`R| zfTbSMs52W4k+BP+IEdJ*POtp;Z6q%VXRX8sXhL;irJG8Xwt48V-JZjQq|62{h?*k8{rk`_73p4O_B9k7%7+KEmt!Hhd$i zahZ7eLybXYZ)CYYN;uZ-8F4+JSSHGyg(BR@Z1;x9|J;V%f8x{ChSQUR?_K{FDvb0G z6#xe)3th9w9?6=KML#{0nZbQQ`dl7P!VqB;1iFq#plcwqw%Mi67`r(DJsN?|O8G4q zP1vJ8^F7DpT+wtoer!9pp>K|?z4hBv;)HTtuR}np3pA(I@0}E;lOd6{Nn0Ym74}Fg zrai+yf(JpN;b47WBDm+~LL1AOxobW?J$2*fIfLDd>Z7<~)D6vPaYG_5P{qlV01*&+ z)@xfvRoh)RDQMV;fg~a11;kFr;AXdlzmDxSv$}j{ZLVdmf4!KwV4S!N)rX9>Vosq@ zXWFS_fE)mydN^5lPF~~z48_pT&&;8l;QIISKhgc|__S-Uo}JI`e74lWPG%-~3{<%M zPJBi+9Wbo|vosF<)97O5c85U{Ov# z9ngP2sEQR&DltKfIbp3_Lrw88e#%<7mt}Z9rR!?&@^bX&G`_aBwtC+lj4vNrS~<4d zljP{(KVDj6a^}8xZ*VTdtzO&QSY2LPi`V=O-l=40?T@pR00000NkvXXu0mjf!D?vM literal 0 HcmV?d00001 diff --git a/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png b/Demo/FluentUIDemo/Assets.xcassets/AppIcon.appiconset/ Icon-32_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5af289e4fb477ce259eb229e9778f5abfeb74f GIT binary patch literal 4795 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