├── images └── logo.png ├── global.json ├── WhatIsThisSheet ├── AssemblyInfo.cs ├── SheetStopMeasurement.cs ├── SheetStop.cs ├── NumericExtensions.cs ├── ViewExtensions.cs ├── WhatIsThisSheet.csproj └── BottomSheet.cs ├── WhatIsThisSheet.Sample ├── Resources │ ├── Images │ │ └── dotnet_bot.png │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ └── OpenSans-Semibold.ttf │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ ├── Raw │ │ └── AboutAssets.txt │ ├── Splash │ │ └── splash.svg │ └── Styles │ │ ├── Colors.xaml │ │ └── Styles.xaml ├── Properties │ └── launchSettings.json ├── AppShell.xaml.cs ├── App.xaml.cs ├── Platforms │ ├── Android │ │ ├── Resources │ │ │ └── values │ │ │ │ └── colors.xml │ │ ├── MainApplication.cs │ │ ├── AndroidManifest.xml │ │ └── MainActivity.cs │ ├── iOS │ │ ├── AppDelegate.cs │ │ ├── Program.cs │ │ └── Info.plist │ ├── MacCatalyst │ │ ├── AppDelegate.cs │ │ ├── Program.cs │ │ ├── Entitlements.plist │ │ └── Info.plist │ ├── Windows │ │ ├── App.xaml │ │ ├── app.manifest │ │ ├── App.xaml.cs │ │ └── Package.appxmanifest │ └── Tizen │ │ ├── Main.cs │ │ └── tizen-manifest.xml ├── AppShell.xaml ├── MauiProgram.cs ├── App.xaml ├── MainPage.xaml.cs ├── MainPage.xaml └── WhatIsThisSheet.Sample.csproj ├── .gitattributes ├── README.md ├── LICENSE ├── stylecop.json ├── .github └── workflows │ └── nuget.yml ├── Directory.build.props ├── WhatIsThisSheet.sln ├── .gitignore └── .editorconfig /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEightBot/WhatIsThisSheet/HEAD/images/logo.png -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "allowPrerelease": false, 4 | "rollForward": "latestMajor" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /WhatIsThisSheet/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | [assembly: XmlnsDefinition("http://what.is.this.sheet/schemas/controls", $"{nameof(WhatIsThisSheet)}")] 2 | -------------------------------------------------------------------------------- /WhatIsThisSheet/SheetStopMeasurement.cs: -------------------------------------------------------------------------------- 1 | namespace WhatIsThisSheet; 2 | 3 | public enum SheetStopMeasurement 4 | { 5 | Fixed = 0, 6 | Percentage = 1, 7 | } -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/Images/dotnet_bot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEightBot/WhatIsThisSheet/HEAD/WhatIsThisSheet.Sample/Resources/Images/dotnet_bot.png -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/Fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEightBot/WhatIsThisSheet/HEAD/WhatIsThisSheet.Sample/Resources/Fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/Fonts/OpenSans-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheEightBot/WhatIsThisSheet/HEAD/WhatIsThisSheet.Sample/Resources/Fonts/OpenSans-Semibold.ttf -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Windows Machine": { 4 | "commandName": "MsixPackage", 5 | "nativeDebugging": false 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /WhatIsThisSheet/SheetStop.cs: -------------------------------------------------------------------------------- 1 | namespace WhatIsThisSheet; 2 | 3 | public struct SheetStop 4 | { 5 | public SheetStopMeasurement Measurement { get; set; } 6 | 7 | public double Value { get; set; } 8 | } -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/AppShell.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace MauiDrawer.Sample; 2 | 3 | public partial class AppShell : Shell 4 | { 5 | public AppShell() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/App.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace MauiDrawer.Sample; 2 | 3 | public partial class App : Application 4 | { 5 | public App() 6 | { 7 | InitializeComponent(); 8 | 9 | MainPage = new AppShell(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #512BD4 4 | #2B0B98 5 | #2B0B98 6 | 7 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/AppIcon/appicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | 3 | namespace MauiDrawer.Sample; 4 | 5 | [Register("AppDelegate")] 6 | public class AppDelegate : MauiUIApplicationDelegate 7 | { 8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 9 | } 10 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/MacCatalyst/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | 3 | namespace MauiDrawer.Sample; 4 | 5 | [Register("AppDelegate")] 6 | public class AppDelegate : MauiUIApplicationDelegate 7 | { 8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 9 | } 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.cs text 7 | 8 | # Declare files that will always have CRLF line endings on checkout. 9 | *.sln text eol=crlf -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Windows/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Tizen/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.Maui; 3 | using Microsoft.Maui.Hosting; 4 | 5 | namespace MauiDrawer.Sample; 6 | 7 | class Program : MauiApplication 8 | { 9 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 10 | 11 | static void Main(string[] args) 12 | { 13 | var app = new Program(); 14 | app.Run(args); 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /WhatIsThisSheet/NumericExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace WhatIsThisSheet; 2 | 3 | public static class NumericExtensions 4 | { 5 | public static double Clamp(this double val, double min, double max) 6 | { 7 | if (val < min) 8 | { 9 | return min; 10 | } 11 | 12 | if (val > max) 13 | { 14 | return max; 15 | } 16 | 17 | return val; 18 | } 19 | } -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Android/MainApplication.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Runtime; 3 | 4 | namespace MauiDrawer.Sample; 5 | 6 | [Application] 7 | public class MainApplication : MauiApplication 8 | { 9 | public MainApplication(IntPtr handle, JniHandleOwnership ownership) 10 | : base(handle, ownership) 11 | { 12 | } 13 | 14 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 15 | } 16 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Android/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Content.PM; 3 | using Android.OS; 4 | 5 | namespace MauiDrawer.Sample; 6 | 7 | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] 8 | public class MainActivity : MauiAppCompatActivity 9 | { 10 | } 11 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/iOS/Program.cs: -------------------------------------------------------------------------------- 1 | using ObjCRuntime; 2 | using UIKit; 3 | 4 | namespace MauiDrawer.Sample; 5 | 6 | public static class Program 7 | { 8 | // This is the main entry point of the application. 9 | private static void Main(string[] args) 10 | { 11 | // if you want to use a different Application Delegate class from "AppDelegate" 12 | // you can specify it here. 13 | UIApplication.Main(args, null, typeof(AppDelegate)); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/MacCatalyst/Program.cs: -------------------------------------------------------------------------------- 1 | using ObjCRuntime; 2 | using UIKit; 3 | 4 | namespace MauiDrawer.Sample; 5 | 6 | public static class Program 7 | { 8 | // This is the main entry point of the application. 9 | private static void Main(string[] args) 10 | { 11 | // if you want to use a different Application Delegate class from "AppDelegate" 12 | // you can specify it here. 13 | UIApplication.Main(args, null, typeof(AppDelegate)); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /WhatIsThisSheet/ViewExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace WhatIsThisSheet; 2 | 3 | public static class ViewExtensions 4 | { 5 | public static Page? ParentPage(this Element view) 6 | { 7 | var currentParent = view.Parent; 8 | 9 | while (currentParent is not null) 10 | { 11 | if (currentParent is Page parentPage) 12 | { 13 | return parentPage; 14 | } 15 | 16 | currentParent = currentParent.Parent; 17 | } 18 | 19 | return default; 20 | } 21 | } -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/AppShell.xaml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/MauiProgram.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Logging; 2 | 3 | namespace MauiDrawer.Sample; 4 | 5 | public static class MauiProgram 6 | { 7 | public static MauiApp CreateMauiApp() 8 | { 9 | var builder = MauiApp.CreateBuilder(); 10 | builder 11 | .UseMauiApp() 12 | .ConfigureFonts(fonts => 13 | { 14 | fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); 15 | fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); 16 | }); 17 | 18 | #if DEBUG 19 | builder.Logging.AddDebug(); 20 | #endif 21 | 22 | return builder.Build(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/App.xaml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/MacCatalyst/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.apple.security.app-sandbox 8 | 9 | 10 | com.apple.security.network.client 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/Raw/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories). Deployment of the asset to your application 3 | is automatically handled by the following `MauiAsset` Build Action within your `.csproj`. 4 | 5 | 6 | 7 | These files will be deployed with you package and will be accessible using Essentials: 8 | 9 | async Task LoadMauiAsset() 10 | { 11 | using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt"); 12 | using var reader = new StreamReader(stream); 13 | 14 | var contents = reader.ReadToEnd(); 15 | } 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Windows/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | true/PM 12 | PerMonitorV2, PerMonitor 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Tizen/tizen-manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | maui-appicon-placeholder 7 | 8 | 9 | 10 | 11 | http://tizen.org/privilege/internet 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Windows/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.UI.Xaml; 2 | 3 | // To learn more about WinUI, the WinUI project structure, 4 | // and more about our project templates, see: http://aka.ms/winui-project-info. 5 | 6 | namespace MauiDrawer.Sample.WinUI; 7 | 8 | /// 9 | /// Provides application-specific behavior to supplement the default Application class. 10 | /// 11 | public partial class App : MauiWinUIApplication 12 | { 13 | /// 14 | /// Initializes the singleton application object. This is the first line of authored code 15 | /// executed, and as such is the logical equivalent of main() or WinMain(). 16 | /// 17 | public App() 18 | { 19 | this.InitializeComponent(); 20 | } 21 | 22 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WhatIsThisSheet - .NET MAUI Bottom Sheet Component 2 | 3 | The .NET MAUI Bottom Sheet component is a user interface element that slides up from the bottom of the screen to reveal more content. It's a versatile component that can be used for various purposes such as displaying additional information, presenting a list of options, or providing a secondary navigation. 4 | 5 | ![sheet_animation_1](https://github.com/user-attachments/assets/8c961d14-4f50-451f-92b5-58c206605eeb) 6 | 7 | 8 | ## Features 9 | 10 | - **Sliding Panel:** The bottom sheet slides up and down, providing a smooth user experience. 11 | - **Customizable Content:** You can customize the content of the bottom sheet according to your needs. 12 | - **Gesture Support:** The bottom sheet supports user gestures, allowing users to drag it up or down. 13 | - **Partial and Full Expansion:** The bottom sheet can be expanded partially or fully based on the content size or user interaction. 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Eight-Bot 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LSRequiresIPhoneOS 6 | 7 | UIDeviceFamily 8 | 9 | 1 10 | 2 11 | 12 | UIRequiredDeviceCapabilities 13 | 14 | arm64 15 | 16 | UISupportedInterfaceOrientations 17 | 18 | UIInterfaceOrientationPortrait 19 | UIInterfaceOrientationLandscapeLeft 20 | UIInterfaceOrientationLandscapeRight 21 | 22 | UISupportedInterfaceOrientations~ipad 23 | 24 | UIInterfaceOrientationPortrait 25 | UIInterfaceOrientationPortraitUpsideDown 26 | UIInterfaceOrientationLandscapeLeft 27 | UIInterfaceOrientationLandscapeRight 28 | 29 | XSAppIconAssets 30 | Assets.xcassets/appicon.appiconset 31 | 32 | 33 | -------------------------------------------------------------------------------- /stylecop.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", 3 | "settings": { 4 | "indentation": { 5 | "useTabs": false, 6 | "indentationSize": 4 7 | }, 8 | "documentationRules": { 9 | "documentExposedElements": false, 10 | "documentInternalElements": false, 11 | "documentPrivateElements": false, 12 | "documentInterfaces": false, 13 | "documentPrivateFields": false, 14 | "documentationCulture": "en-US", 15 | "xmlHeader": false 16 | }, 17 | "layoutRules": { 18 | "newlineAtEndOfFile": "allow", 19 | "allowConsecutiveUsings": true 20 | }, 21 | "maintainabilityRules": { 22 | "topLevelTypes": [ 23 | "class", 24 | "interface", 25 | "struct", 26 | "enum", 27 | "delegate" 28 | ] 29 | }, 30 | "orderingRules": { 31 | "usingDirectivesPlacement": "outsideNamespace", 32 | "systemUsingDirectivesFirst": true 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace MauiDrawer.Sample; 2 | 3 | public partial class MainPage : ContentPage 4 | { 5 | private readonly int _count = 0; 6 | 7 | public MainPage() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | private int _incrementer = 0; 13 | 14 | private void Button_Clicked(object sender, System.EventArgs e) 15 | { 16 | _incrementer++; 17 | (sender as Button).Text = $"Tapped {_incrementer} Times"; 18 | } 19 | 20 | private void Dismiss_Clicked(object sender, System.EventArgs e) 21 | { 22 | MainBottomSheet.Dismiss(); 23 | } 24 | 25 | private void Switch_Toggled(object sender, Microsoft.Maui.Controls.ToggledEventArgs e) 26 | { 27 | MainBottomSheet.AllowFullDismiss = !MainBottomSheet.AllowFullDismiss; 28 | } 29 | 30 | private void Show_Clicked(object sender, System.EventArgs e) 31 | { 32 | MainBottomSheet.Show(.65d); 33 | } 34 | 35 | private void GetTapped_Clicked(object sender, System.EventArgs e) 36 | { 37 | Console.WriteLine("Tapped Out!"); 38 | } 39 | 40 | private void ToggleBackgroundInteraction_Clicked(object sender, System.EventArgs e) 41 | { 42 | MainBottomSheet.AllowBackgroundInteraction = !MainBottomSheet.AllowBackgroundInteraction; 43 | } 44 | 45 | private void LockPosition_Clicked(object sender, System.EventArgs e) 46 | { 47 | MainBottomSheet.LockPosition = !MainBottomSheet.LockPosition; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/MacCatalyst/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | UIDeviceFamily 15 | 16 | 2 17 | 18 | UIRequiredDeviceCapabilities 19 | 20 | arm64 21 | 22 | UISupportedInterfaceOrientations 23 | 24 | UIInterfaceOrientationPortrait 25 | UIInterfaceOrientationLandscapeLeft 26 | UIInterfaceOrientationLandscapeRight 27 | 28 | UISupportedInterfaceOrientations~ipad 29 | 30 | UIInterfaceOrientationPortrait 31 | UIInterfaceOrientationPortraitUpsideDown 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | XSAppIconAssets 36 | Assets.xcassets/appicon.appiconset 37 | 38 | 39 | -------------------------------------------------------------------------------- /.github/workflows/nuget.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a .NET project 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net 3 | 4 | name: .NET 5 | 6 | on: 7 | push: 8 | tags: 9 | - "v**" 10 | 11 | jobs: 12 | build: 13 | runs-on: macos-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v3 17 | - uses: actions/setup-dotnet@v3 18 | with: 19 | dotnet-version: "8.x" 20 | source-url: https://nuget.pkg.github.com/theeightbot/index.json 21 | env: 22 | NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} 23 | 24 | - name: Install MAUI Workloads 25 | run: dotnet workload install maui --ignore-failed-sources 26 | 27 | - name: Semver Parse 28 | id: version 29 | uses: release-kit/semver@v1.0.10 30 | 31 | - name: Build 32 | run: dotnet build WhatIsThisSheet/WhatIsThisSheet.csproj 33 | 34 | - name: Create the package 35 | run: dotnet pack --configuration Release /p:AssemblyVersion=${{ steps.version.outputs.major }}.${{ steps.version.outputs.minor }}.${{ steps.version.outputs.patch }} /p:Version=${{ steps.version.outputs.major }}.${{ steps.version.outputs.minor }}.${{ steps.version.outputs.patch }} WhatIsThisSheet/WhatIsThisSheet.csproj 36 | 37 | - name: Publish the package to GPR 38 | run: dotnet nuget push WhatIsThisSheet/bin/Release/*.nupkg 39 | 40 | - name: Publish the package to NuGet 41 | run: dotnet nuget push WhatIsThisSheet/bin/Release/*.nupkg --api-key "${{ secrets.EIGHTBOT_NUGET_APIKEY }}" --source https://api.nuget.org/v3/index.json 42 | -------------------------------------------------------------------------------- /Directory.build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | latest 5 | $(NoWarn);CS1591 6 | 7 | 8 | https://eight.bot 9 | https://github.com/TheEightBot/WhatIsThisSheet 10 | git 11 | .NET MAUI;Bottom Sheet;Navigation;Component;UI Control;Eight-Bot 12 | The .NET MAUI Bottom Sheet component is a user interface element that slides up from the bottom of the screen to reveal more content. It's a versatile component that can be used for various purposes such as displaying additional information, presenting a list of options, or providing a secondary navigation. 13 | logo.png 14 | 15 | 16 | 19 | 22 | 25 | 26 | 27 | 30 | 31 | 32 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/AppIcon/appiconfg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Resources/Splash/splash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/Platforms/Windows/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | $placeholder$ 15 | User Name 16 | $placeholder$.png 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /WhatIsThisSheet.Sample/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 |