Skip to content

Commit f10f948

Browse files
committed
Initial commit
1 parent ee9dd6b commit f10f948

File tree

415 files changed

+16467
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

415 files changed

+16467
-1
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: build
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- '**.cs'
8+
- '**.csproj'
9+
- '**.xaml'
10+
- '**.razor'
11+
pull_request:
12+
branches: [ main ]
13+
paths:
14+
- '**.cs'
15+
- '**.csproj'
16+
- '**.xaml'
17+
- '**.razor'
18+
19+
env:
20+
DOTNET_VERSION: '8.0.x' # The .NET SDK version to use
21+
22+
jobs:
23+
build:
24+
25+
name: Build All Projects
26+
runs-on: windows-latest
27+
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
project:
32+
- Finish
33+
- Part 1 - Displaying Data
34+
- Part 2 - Add Monkey Dialog
35+
- Part 3 - Navigation
36+
- Part 4 - Platform Features
37+
- Part 5 - Theming the app
38+
- Part 6 - Advanced Topics
39+
40+
steps:
41+
- uses: actions/checkout@v4
42+
- name: Setup .NET
43+
uses: actions/setup-dotnet@v4
44+
with:
45+
dotnet-version: ${{ env.DOTNET_VERSION }}
46+
47+
- name: Setup MSBuild.exe
48+
uses: microsoft/setup-msbuild@v2
49+
with:
50+
vs-prerelease: true
51+
52+
- name: Install .NET workloads
53+
shell: pwsh
54+
run: |
55+
dotnet workload install android
56+
dotnet workload install ios
57+
dotnet workload install maccatalyst
58+
dotnet workload install maui
59+
60+
- name: Build ${{ matrix.project }}
61+
run: dotnet build "${{ matrix.project }}/MonkeyFinderHybrid/MonkeyFinderHybrid.csproj"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,3 +396,4 @@ FodyWeavers.xsd
396396

397397
# JetBrains Rider
398398
*.sln.iml
399+
.DS_Store

Art/AddNewPage-dark.png

9.29 KB

Art/AddNewPage-light.png

8.73 KB

Art/CodedMonkeys-dark.png

623 KB

Art/CodedMonkeys-light.png

627 KB

Art/ConnectivityStatus-dark.png

105 KB

Art/ConnectivityStatus-light.png

114 KB

Art/Convert-dark.png

115 KB

Art/Convert-light.png

110 KB

Art/Details-dark.png

283 KB

Art/Details-light.png

287 KB

Art/Dialog-dark.png

475 KB

Art/Dialog-light.png

478 KB

Art/FinalUI-dark.png

1.19 MB

Art/FinalUI-light.png

1.17 MB

Art/HasNavBar-dark.png

25.1 KB

Art/HasNavBar-light.png

24.3 KB

Art/NavigationBar-dark.png

957 KB

Art/NavigationBar-light.png

952 KB

Art/ResourcesSingleProject-dark.png

2.72 KB

Art/ResourcesSingleProject-light.png

3.1 KB

Art/RestoreNuGets-dark.png

39.9 KB

Art/RestoreNuGets-light.png

38.3 KB

Art/SelectFramework-dark.png

21.2 KB

Art/SelectFramework-light.png

20.7 KB

Art/SharedRating-dark.png

135 KB

Art/SharedRating-light.png

136 KB

Art/Solution-dark.png

15.5 KB

Art/Solution-light.png

15.1 KB

Art/Themes.gif

193 KB

Art/VSCodeDebugMenu-dark.png

15.3 KB

Art/VSCodeDebugMenu-light.png

14.5 KB

Art/components-overview-dark.png

8 KB

Art/components-overview-light.png

7.47 KB

Art/safe-area-ios-dark.png

370 KB

Art/safe-area-ios-light.png

352 KB

Art/wwwCss-dark.png

4.69 KB

Art/wwwCss-light.png

5.13 KB

Art/wwwroot-dark.png

3.51 KB

Art/wwwroot-light.png

3.07 KB

Community Modules/README.md

Lines changed: 19 additions & 0 deletions

Finish/MonkeyFinderHybrid.sln

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.5.002.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonkeyFinderHybrid", "MonkeyFinderHybrid\MonkeyFinderHybrid.csproj", "{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17+
{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
18+
{0D09B878-27F8-473C-8F48-B0B82CF2E6CD}.Release|Any CPU.Build.0 = Release|Any CPU
19+
EndGlobalSection
20+
GlobalSection(SolutionProperties) = preSolution
21+
HideSolutionNode = FALSE
22+
EndGlobalSection
23+
GlobalSection(ExtensibilityGlobals) = postSolution
24+
SolutionGuid = {25132CDC-EDF8-4441-83A1-A6267274B021}
25+
EndGlobalSection
26+
EndGlobal

Finish/MonkeyFinderHybrid/App.xaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
4+
xmlns:local="clr-namespace:MonkeyFinderHybrid"
5+
x:Class="MonkeyFinderHybrid.App">
6+
<Application.Resources>
7+
8+
</Application.Resources>
9+
</Application>

Finish/MonkeyFinderHybrid/App.xaml.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace MonkeyFinderHybrid;
2+
3+
public partial class App : Application
4+
{
5+
public App()
6+
{
7+
InitializeComponent();
8+
}
9+
10+
protected override Window CreateWindow(IActivationState? activationState)
11+
{
12+
return new Window(new NavigationPage(new MainPage())
13+
{
14+
BarBackgroundColor = Color.FromArgb("#ffc107"),
15+
BarTextColor = Colors.White
16+
});
17+
}
18+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<button class="button-yellow" @onclick="Callback">@Caption</button>
2+
3+
@code {
4+
[Parameter]
5+
[EditorRequired]
6+
public string Caption { get; set; } = string.Empty;
7+
8+
[Parameter]
9+
public EventCallback Callback { get; set; }
10+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
@implements IDialogContentComponent<Monkey>
2+
3+
@* Header *@
4+
<FluentDialogHeader ShowDismiss="true">
5+
<FluentStack VerticalAlignment="VerticalAlignment.Center">
6+
<FluentLabel Typo="Typography.PaneHeader">
7+
@Dialog.Instance.Parameters.Title
8+
</FluentLabel>
9+
</FluentStack>
10+
</FluentDialogHeader>
11+
12+
@* Body *@
13+
<FluentDialogBody>
14+
<FluentTextField @bind-Value="@Content.Name">Name:</FluentTextField>
15+
<FluentTextField @bind-Value="@Content.Details">Description:</FluentTextField>
16+
<FluentTextField @bind-Value="@Content.Location">Location:</FluentTextField>
17+
<FluentTextField @bind-Value="@Content.Image">Image:</FluentTextField>
18+
<FluentNumberField @bind-Value="@Content.Population">Population:</FluentNumberField>
19+
</FluentDialogBody>
20+
21+
@* Footer *@
22+
<FluentDialogFooter>
23+
<FluentButton Appearance="Appearance.Accent" OnClick="@SaveAsync">Save</FluentButton>
24+
<FluentButton Appearance="Appearance.Neutral" OnClick="@CancelAsync">Cancel</FluentButton>
25+
</FluentDialogFooter>
26+
27+
@code {
28+
[Parameter]
29+
public Monkey Content { get; set; } = default!;
30+
31+
[CascadingParameter]
32+
public FluentDialog Dialog { get; set; } = default!;
33+
34+
private async Task SaveAsync()
35+
{
36+
await Dialog.CloseAsync(Content);
37+
}
38+
39+
private async Task CancelAsync()
40+
{
41+
await Dialog.CancelAsync();
42+
}
43+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@inherits LayoutComponentBase
2+
3+
<div class="page">
4+
5+
<div class="sidebar">
6+
<NavMenu />
7+
</div>
8+
9+
<main>
10+
<article class="content px-4">
11+
@Body
12+
</article>
13+
</main>
14+
15+
<FluentDialogProvider />
16+
</div>
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
.page {
2+
position: relative;
3+
display: flex;
4+
flex-direction: column;
5+
}
6+
7+
main {
8+
flex: 1;
9+
}
10+
11+
.sidebar {
12+
background-image: linear-gradient(180deg, rgb(255, 193, 7) 0%, #ffc107 70%);
13+
}
14+
15+
.top-row {
16+
background-color: #f7f7f7;
17+
border-bottom: 1px solid #d6d5d5;
18+
justify-content: flex-end;
19+
height: 3.5rem;
20+
display: flex;
21+
align-items: center;
22+
}
23+
24+
.top-row ::deep a,
25+
.top-row ::deep .btn-link {
26+
white-space: nowrap;
27+
margin-left: 1.5rem;
28+
text-decoration: none;
29+
}
30+
31+
.top-row ::deep a:hover,
32+
.top-row ::deep .btn-link:hover {
33+
text-decoration: underline;
34+
}
35+
36+
.top-row ::deep a:first-child {
37+
overflow: hidden;
38+
text-overflow: ellipsis;
39+
}
40+
41+
@media (max-width: 640.98px) {
42+
.top-row {
43+
justify-content: space-between;
44+
}
45+
46+
.top-row ::deep a,
47+
.top-row ::deep .btn-link {
48+
margin-left: 0;
49+
}
50+
}
51+
52+
@media (min-width: 641px) {
53+
.page {
54+
flex-direction: row;
55+
}
56+
57+
.sidebar {
58+
width: 250px;
59+
height: 100vh;
60+
position: sticky;
61+
top: 0;
62+
}
63+
64+
.top-row {
65+
position: sticky;
66+
top: 0;
67+
z-index: 1;
68+
}
69+
70+
.top-row.auth ::deep a:first-child {
71+
flex: 1;
72+
text-align: right;
73+
width: 0;
74+
}
75+
76+
.top-row,
77+
article {
78+
padding-left: 2rem !important;
79+
padding-right: 1.5rem !important;
80+
}
81+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<div class="navbar navbar-light" style="background-color: #ffc107;">
2+
<div class="container-fluid">
3+
<a class="navbar-brand" href="">MonkeyFinderHybrid</a>
4+
</div>
5+
</div>
6+
7+
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
8+
9+
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
10+
<nav class="flex-column">
11+
<div class="nav-item px-3">
12+
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
13+
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Monkeys
14+
</NavLink>
15+
</div>
16+
<div class="nav-item px-3">
17+
<NavLink class="nav-link" href="options">
18+
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Options
19+
</NavLink>
20+
</div>
21+
22+
</nav>
23+
</div>

0 commit comments

Comments
 (0)