gitextract_5fqaxoqu/ ├── .config/ │ └── dotnet-tools.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── copilot-instructions.md │ ├── dependabot.yml │ └── workflows/ │ ├── copilot-setup-steps.yml │ └── spice.yml ├── .gitignore ├── .vscode/ │ └── settings.json ├── Directory.Build.props ├── Directory.Build.targets ├── LICENSE ├── NuGet.config ├── README.md ├── docs/ │ ├── DATA-BINDING-SPEC.md │ ├── MAUI-CONTROLS-COMPARISON.md │ ├── NAVIGATION-SPEC.md │ ├── THEME-SPEC.md │ ├── VIEW-LIFECYCLE-SPEC.md │ └── spice.pptx ├── global.json ├── samples/ │ ├── HeadToHeadMaui/ │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── AppShell.xaml │ │ ├── AppShell.xaml.cs │ │ ├── HeadToHeadMaui.csproj │ │ ├── HeadToHeadMaui.sln │ │ ├── MainPage.xaml │ │ ├── MainPage.xaml.cs │ │ ├── MauiProgram.cs │ │ ├── Platforms/ │ │ │ ├── Android/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── MainActivity.cs │ │ │ │ ├── MainApplication.cs │ │ │ │ └── Resources/ │ │ │ │ └── values/ │ │ │ │ └── colors.xml │ │ │ ├── MacCatalyst/ │ │ │ │ ├── AppDelegate.cs │ │ │ │ ├── Info.plist │ │ │ │ └── Program.cs │ │ │ ├── Tizen/ │ │ │ │ ├── Main.cs │ │ │ │ └── tizen-manifest.xml │ │ │ ├── Windows/ │ │ │ │ ├── App.xaml │ │ │ │ ├── App.xaml.cs │ │ │ │ ├── Package.appxmanifest │ │ │ │ └── app.manifest │ │ │ └── iOS/ │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ └── Resources/ │ │ ├── Raw/ │ │ │ └── AboutAssets.txt │ │ └── Styles/ │ │ ├── Colors.xaml │ │ └── Styles.xaml │ ├── HeadToHeadSpice/ │ │ ├── App.cs │ │ ├── GlobalUsings.cs │ │ ├── HeadToHeadSpice.csproj │ │ └── Platforms/ │ │ ├── Android/ │ │ │ ├── AndroidManifest.xml │ │ │ └── MainActivity.cs │ │ └── iOS/ │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ └── Program.cs │ ├── README.md │ ├── Spice.BlazorSample/ │ │ ├── App.cs │ │ ├── GlobalUsings.cs │ │ ├── Main.razor │ │ ├── Pages/ │ │ │ └── Index.razor │ │ ├── Platforms/ │ │ │ ├── Android/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── MainActivity.cs │ │ │ └── iOS/ │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ │ ├── Shared/ │ │ │ ├── MainLayout.razor │ │ │ ├── MainLayout.razor.css │ │ │ ├── NavMenu.razor │ │ │ └── NavMenu.razor.css │ │ ├── Spice.BlazorSample.csproj │ │ ├── _Imports.razor │ │ └── wwwroot/ │ │ ├── css/ │ │ │ ├── app.css │ │ │ └── open-iconic/ │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font/ │ │ │ └── fonts/ │ │ │ └── open-iconic.otf │ │ └── index.html │ ├── Spice.Scenarios/ │ │ ├── App.cs │ │ ├── GlobalUsings.cs │ │ ├── Platforms/ │ │ │ ├── Android/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── MainActivity.cs │ │ │ └── iOS/ │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ │ ├── Scenarios/ │ │ │ ├── ActivityIndicatorScenario.cs │ │ │ ├── BorderScenario.cs │ │ │ ├── BoxViewScenario.cs │ │ │ ├── CheckBoxScenario.cs │ │ │ ├── CollectionViewScenario.cs │ │ │ ├── ContentViewScenario.cs │ │ │ ├── DatePickerScenario.cs │ │ │ ├── EditorScenario.cs │ │ │ ├── EntryScenario.cs │ │ │ ├── GhostButtonScenario.cs │ │ │ ├── HelloWorldScenario.cs │ │ │ ├── ImageButtonScenario.cs │ │ │ ├── MarginScenario.cs │ │ │ ├── PickerScenario.cs │ │ │ ├── ProgressBarScenario.cs │ │ │ ├── RadioButtonScenario.cs │ │ │ ├── RefreshViewScenario.cs │ │ │ ├── ScrollViewScenario.cs │ │ │ ├── SearchBarScenario.cs │ │ │ ├── SliderScenario.cs │ │ │ ├── SwipeViewScenario.cs │ │ │ ├── SwitchScenario.cs │ │ │ ├── ThemeScenario.cs │ │ │ ├── TimePickerScenario.cs │ │ │ └── WebViewScenario.cs │ │ └── Spice.Scenarios.csproj │ └── samples.slnx ├── sizes/ │ ├── com.companyname.Hello-Signed.apkdesc │ ├── com.companyname.HelloBlazor-Signed.apkdesc │ └── startup.md ├── spice.slnx ├── src/ │ ├── ProfiledAot/ │ │ ├── Directory.Build.props │ │ ├── Directory.Build.targets │ │ ├── README.md │ │ ├── build.proj │ │ └── shared/ │ │ └── nuget.config │ ├── Spice/ │ │ ├── Blazor/ │ │ │ ├── BlazorWebView.cs │ │ │ ├── SpiceDispatcher.cs │ │ │ ├── SpiceServiceProvider.cs │ │ │ └── UriExtensions.cs │ │ ├── Core/ │ │ │ ├── ActivityIndicator.cs │ │ │ ├── Application.cs │ │ │ ├── BindingExtensions.cs │ │ │ ├── Border.cs │ │ │ ├── BoxView.cs │ │ │ ├── Button.cs │ │ │ ├── CheckBox.cs │ │ │ ├── CollectionView.cs │ │ │ ├── ColumnDefinition.cs │ │ │ ├── ContentView.cs │ │ │ ├── DatePicker.cs │ │ │ ├── Editor.cs │ │ │ ├── Entry.cs │ │ │ ├── Grid.cs │ │ │ ├── GridLength.cs │ │ │ ├── GridUnitType.cs │ │ │ ├── Image.cs │ │ │ ├── ImageButton.cs │ │ │ ├── Label.cs │ │ │ ├── LayoutAlignment.cs │ │ │ ├── LayoutExpandFlag.cs │ │ │ ├── LayoutOptions.cs │ │ │ ├── NavigationView.cs │ │ │ ├── Orientation.cs │ │ │ ├── Picker.cs │ │ │ ├── PlatformAppearance.cs │ │ │ ├── ProgressBar.cs │ │ │ ├── RadioButton.cs │ │ │ ├── RefreshView.cs │ │ │ ├── RootComponent.cs │ │ │ ├── RowDefinition.cs │ │ │ ├── ScrollView.cs │ │ │ ├── SearchBar.cs │ │ │ ├── SelectionMode.cs │ │ │ ├── Slider.cs │ │ │ ├── StackLayout.cs │ │ │ ├── SwipeBehaviorOnInvoked.cs │ │ │ ├── SwipeDirection.cs │ │ │ ├── SwipeItem.cs │ │ │ ├── SwipeItems.cs │ │ │ ├── SwipeMode.cs │ │ │ ├── SwipeView.cs │ │ │ ├── Switch.cs │ │ │ ├── TabView.cs │ │ │ ├── Theme.cs │ │ │ ├── Thickness.cs │ │ │ ├── TimePicker.cs │ │ │ ├── TwoWayBindingExtensions.cs │ │ │ ├── View.cs │ │ │ └── WebView.cs │ │ ├── GlobalUsings.cs │ │ ├── MSBuild/ │ │ │ ├── Spice.Blazor.targets │ │ │ ├── Spice.props │ │ │ ├── Spice.targets │ │ │ ├── spice-blazor.aotprofile │ │ │ ├── spice-blazor.aotprofile.txt │ │ │ ├── spice.aotprofile │ │ │ └── spice.aotprofile.txt │ │ ├── Platforms/ │ │ │ ├── Android/ │ │ │ │ ├── ActivityIndicator.cs │ │ │ │ ├── Application.cs │ │ │ │ ├── Blazor/ │ │ │ │ │ ├── AndroidAssetFileProvider.cs │ │ │ │ │ ├── AndroidWebViewManager.cs │ │ │ │ │ ├── BlazorWebView.cs │ │ │ │ │ ├── SpiceBlazorWebViewClient.cs │ │ │ │ │ └── SpiceDispatcher.cs │ │ │ │ ├── Border.cs │ │ │ │ ├── BoxView.cs │ │ │ │ ├── Button.cs │ │ │ │ ├── CheckBox.cs │ │ │ │ ├── CollectionView.cs │ │ │ │ ├── ContentView.cs │ │ │ │ ├── DatePicker.cs │ │ │ │ ├── Editor.cs │ │ │ │ ├── Entry.cs │ │ │ │ ├── Grid.cs │ │ │ │ ├── Image.cs │ │ │ │ ├── ImageButton.cs │ │ │ │ ├── Interop.java │ │ │ │ ├── Label.cs │ │ │ │ ├── NavigationView.cs │ │ │ │ ├── Picker.cs │ │ │ │ ├── Platform.cs │ │ │ │ ├── PlatformAppearance.cs │ │ │ │ ├── PlatformExtensions.cs │ │ │ │ ├── ProgressBar.cs │ │ │ │ ├── RadioButton.cs │ │ │ │ ├── RefreshView.cs │ │ │ │ ├── ScrollView.cs │ │ │ │ ├── SearchBar.cs │ │ │ │ ├── Slider.cs │ │ │ │ ├── SpiceActivity.cs │ │ │ │ ├── StackLayout.cs │ │ │ │ ├── SwipeView.cs │ │ │ │ ├── Switch.cs │ │ │ │ ├── TabView.cs │ │ │ │ ├── TimePicker.cs │ │ │ │ ├── Transforms.xml │ │ │ │ ├── View.cs │ │ │ │ └── WebView.cs │ │ │ └── iOS/ │ │ │ ├── ActivityIndicator.cs │ │ │ ├── Application.cs │ │ │ ├── Blazor/ │ │ │ │ ├── BlazorWebView.cs │ │ │ │ ├── SpiceDispatcher.cs │ │ │ │ ├── iOSFileProvider.cs │ │ │ │ └── iOSWebViewManager.cs │ │ │ ├── Border.cs │ │ │ ├── BoxView.cs │ │ │ ├── Button.cs │ │ │ ├── CheckBox.cs │ │ │ ├── CollectionView.cs │ │ │ ├── ConstraintHelper.cs │ │ │ ├── ContentView.cs │ │ │ ├── DatePicker.cs │ │ │ ├── Editor.cs │ │ │ ├── Entry.cs │ │ │ ├── Grid.cs │ │ │ ├── Image.cs │ │ │ ├── ImageButton.cs │ │ │ ├── Label.cs │ │ │ ├── NavigationView.cs │ │ │ ├── Picker.cs │ │ │ ├── Platform.cs │ │ │ ├── PlatformAppearance.cs │ │ │ ├── PlatformExtensions.cs │ │ │ ├── ProgressBar.cs │ │ │ ├── RadioButton.cs │ │ │ ├── RefreshView.cs │ │ │ ├── ScrollView.cs │ │ │ ├── SearchBar.cs │ │ │ ├── Slider.cs │ │ │ ├── SpiceAppDelegate.cs │ │ │ ├── SpiceViewController.cs │ │ │ ├── StackLayout.cs │ │ │ ├── SwipeView.cs │ │ │ ├── Switch.cs │ │ │ ├── TabView.cs │ │ │ ├── TimePicker.cs │ │ │ ├── View.cs │ │ │ └── WebView.cs │ │ ├── README.md │ │ └── Spice.csproj │ └── Spice.Templates/ │ ├── Spice.Templates.csproj │ └── templates/ │ ├── spice/ │ │ ├── .template.config/ │ │ │ └── template.json │ │ ├── App.cs │ │ ├── GlobalUsings.cs │ │ ├── Hello.csproj │ │ └── Platforms/ │ │ ├── Android/ │ │ │ ├── AndroidManifest.xml │ │ │ └── MainActivity.cs │ │ └── iOS/ │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ └── Program.cs │ └── spice-blazor/ │ ├── .template.config/ │ │ └── template.json │ ├── App.cs │ ├── GlobalUsings.cs │ ├── HelloBlazor.csproj │ ├── Main.razor │ ├── Pages/ │ │ └── Index.razor │ ├── Platforms/ │ │ ├── Android/ │ │ │ ├── AndroidManifest.xml │ │ │ └── MainActivity.cs │ │ └── iOS/ │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ └── Program.cs │ ├── Shared/ │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── NavMenu.razor.css │ ├── _Imports.razor │ └── wwwroot/ │ ├── css/ │ │ ├── app.css │ │ └── open-iconic/ │ │ ├── FONT-LICENSE │ │ ├── ICON-LICENSE │ │ ├── README.md │ │ └── font/ │ │ └── fonts/ │ │ └── open-iconic.otf │ └── index.html └── tests/ └── Spice.Tests/ ├── ActivityIndicatorTests.cs ├── ApplicationTests.cs ├── AutomationIdTests.cs ├── BindingExtensionsTests.cs ├── BorderTests.cs ├── BoxViewTests.cs ├── ButtonTests.cs ├── CheckBoxTests.cs ├── CollectionViewTests.cs ├── ContentViewTests.cs ├── DatePickerTests.cs ├── EditorTests.cs ├── EntryTests.cs ├── GridLengthTests.cs ├── GridTests.cs ├── ImageButtonTests.cs ├── ImageTests.cs ├── LabelTests.cs ├── LayoutOptionsTests.cs ├── MarginTests.cs ├── ModalPresentationTests.cs ├── NavigationViewTests.cs ├── PickerTests.cs ├── Platforms/ │ ├── Android/ │ │ ├── AndroidManifest.xml │ │ ├── MainActivity.cs │ │ ├── TestDevice.cs │ │ ├── TestEntryPoint.cs │ │ └── TestInstrumentation.cs │ └── iOS/ │ ├── AppDelegate.cs │ ├── Info.plist │ ├── Program.cs │ ├── TestDevice.cs │ └── TestEntryPoint.cs ├── ProgressBarTests.cs ├── PropertyChangedTests.cs ├── RadioButtonTests.cs ├── RefreshViewTests.cs ├── ScrollViewTests.cs ├── SearchBarTests.cs ├── SliderTests.cs ├── Spice.Tests.csproj ├── StackLayoutTests.cs ├── SwipeItemsTests.cs ├── SwipeViewTests.cs ├── SwitchTests.cs ├── TabViewTests.cs ├── TestViewModel.cs ├── ThemeTests.cs ├── ThicknessTests.cs ├── TimePickerTests.cs ├── TwoWayBindingExtensionsTests.cs ├── Usings.cs ├── ViewLifecycleTests.cs ├── ViewOpacityTests.cs ├── ViewSizeTests.cs ├── ViewTests.cs ├── ViewVisibilityTests.cs └── WebViewTests.cs