Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e887025
Add touch event on touchable views
AgustinBonilla Sep 2, 2025
e5cbb3c
Add touch event samples
AgustinBonilla Sep 2, 2025
c6d8ca7
Fix touch issue on checkbox
AgustinBonilla Sep 3, 2025
169259b
Create main.yml
AgustinBonilla Sep 15, 2025
195322e
Use Android Dialog on Snackbar
AgustinBonilla Sep 16, 2025
39e99b4
Add CharacterSpacing and LineBreakMode on iOS
AgustinBonilla Sep 16, 2025
b032b68
Add FontAttributes
AgustinBonilla Sep 17, 2025
98a41ef
Update todo list
AgustinBonilla Sep 17, 2025
7e470f9
Update main.yml
AgustinBonilla Sep 17, 2025
5ce9c51
Update main.yml
AgustinBonilla Sep 17, 2025
ca0a16d
Update main.yml
AgustinBonilla Sep 17, 2025
6d5fc50
Rename master pipeline name
AgustinBonilla Sep 17, 2025
ba72ee5
Add develop pipeline
AgustinBonilla Sep 18, 2025
cd6469c
Set write permissions
AgustinBonilla Sep 18, 2025
d1f82b3
Auto-generate docs [skip ci]
github-actions[bot] Sep 18, 2025
5431f5d
Update develop.yml
AgustinBonilla Sep 18, 2025
98504a1
Change namespace to TouchEventArgs, ITouchableView and TouchEventType
AgustinBonilla Sep 18, 2025
9368230
Move LetterSpacingSpan implementation
AgustinBonilla Sep 18, 2025
4d6902a
Change pipelines
AgustinBonilla Sep 18, 2025
053f15d
Update nuget.props
AgustinBonilla Sep 18, 2025
735f0f4
Merge pull request #100 from HorusSoftwareUY/feature/pipelines
pgonzalezmorelli Sep 18, 2025
933a041
Merge pull request #98 from HorusSoftwareUY/feature/touch-event
pgonzalezmorelli Sep 18, 2025
b69e279
Merge pull request #99 from HorusSoftwareUY/feature/snackbar-dialog
pgonzalezmorelli Sep 18, 2025
8d2d696
Auto-generate docs [skip ci]
github-actions[bot] Sep 18, 2025
95b9269
trigger workflow
AgustinBonilla Sep 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/workflows/develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Run the documentation generation tool and push changes to develop branch

on:
push:
branches: [ "develop" ]

permissions:
contents: write

env:
SLN_FILE_PATH: 'HorusStudio.Maui.MaterialDesignControls.sln'
CSPROJ_FILE_PATH: 'src/HorusStudio.Maui.MaterialDesignControls/HorusStudio.Maui.MaterialDesignControls.csproj'
MATERIALDESIGNCONTROLS_DLL_FILE_PATH: 'src/HorusStudio.Maui.MaterialDesignControls/bin/Release/net9.0-android/HorusStudio.Maui.MaterialDesignControls.dll'
XMLDOC2MARKDOWN_FILE_PATH: 'tools/XMLDoc2Markdown/XMLDoc2Markdown.dll'
DOCUMENTATION_OUTPUT_PATH: 'docs'

jobs:
build:
runs-on: macos-latest

steps:
- uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
include-prerelease: true

- name: Install MAUI workloads
run: |
echo "📦 Installing MAUI workloads..."
dotnet workload install maui
dotnet workload restore
echo "✅ MAUI workloads installed successfully!"

- name: Restore dependencies
run: |
echo "📦 Restoring dependencies..."
dotnet restore ${{ env.SLN_FILE_PATH }}
echo "✅ Dependencies restored successfully!"

- name: Build solution
run: |
echo "📦 Building solution..."
dotnet build ${{ env.CSPROJ_FILE_PATH }} -c Release --no-restore
echo "✅ Solution built successfully!"

- name: Unzip the documentation generation tool
run: |
echo "📦 Unzipping the documentation generation tool..."
unzip tools/XMLDoc2Markdown.zip -d tools/
echo "✅ Documentation generation tool unzipped successfully!"

- name: Run the documentation generation tool
run: |
echo "📦 Running the documentation generation tool..."
dotnet ${{ env.XMLDOC2MARKDOWN_FILE_PATH }} ${{ env.MATERIALDESIGNCONTROLS_DLL_FILE_PATH }} ${{ env.DOCUMENTATION_OUTPUT_PATH }} --exclude-class-static="HorusStudio.Maui.MaterialDesignControls.MaterialLightTheme,HorusStudio.Maui.MaterialDesignControls.MaterialDarkTheme,HorusStudio.Maui.MaterialDesignControls.MaterialFontSize,HorusStudio.Maui.MaterialDesignControls.MaterialFontFamily,HorusStudio.Maui.MaterialDesignControls.MaterialElevation,HorusStudio.Maui.MaterialDesignControls.MaterialAnimation,HorusStudio.Maui.MaterialDesignControls.MaterialFontTracking,HorusStudio.Maui.MaterialDesignControls.MaterialIcon,HorusStudio.Maui.MaterialDesignControls.MaterialFormat" --excludeinternal --onlyinternal-members --no-index-page --specific-namespace="HorusStudio.Maui.MaterialDesignControls"
echo "✅ Documentation generated successfully!"

- name: Commit & push changes
run: |
echo "📦 Committing and pushing changes..."
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "Auto-generate docs [skip ci]" || echo "No changes to commit"
git push origin HEAD:${GITHUB_REF#refs/heads/}
echo "✅ Changes committed and pushed successfully!"
88 changes: 88 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Build, pack and push HorusStudio.Maui.MaterialDesignControls NuGet package

on:
push:
branches: [ "master" ]

permissions:
contents: write

env:
SLN_FILE_PATH: 'HorusStudio.Maui.MaterialDesignControls.sln'
CSPROJ_FILE_PATH: 'src/HorusStudio.Maui.MaterialDesignControls/HorusStudio.Maui.MaterialDesignControls.csproj'

jobs:
build:
runs-on: macos-latest

steps:
- uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
include-prerelease: true

- name: Install MAUI workloads
run: |
echo "📦 Installing MAUI workloads..."
dotnet workload install maui
dotnet workload restore
echo "✅ MAUI workloads installed successfully!"

- name: Restore dependencies
run: |
echo "📦 Restoring dependencies..."
dotnet restore ${{ env.SLN_FILE_PATH }}
echo "✅ Dependencies restored successfully!"

- name: Build solution
run: |
echo "📦 Building solution..."
dotnet build ${{ env.CSPROJ_FILE_PATH }} -c Release --no-restore
echo "✅ Solution built successfully!"

- name: Pack NuGet package
run: |
echo "📦 Packaging NuGet package..."
dotnet pack ${{ env.CSPROJ_FILE_PATH }} -c Release -o ./artifacts --no-build
echo "✅ NuGet package packed successfully!"

- name: Publish NuGet package
run: |
echo "📦 Publishing NuGet package..."
dotnet nuget push "./artifacts/*.nupkg" --source "https://api.nuget.org/v3/index.json" --api-key ${{ secrets.NUGET_API_KEY }} --skip-duplicate
echo "✅ NuGet package published successfully!"

- name: Get version from nupkg
id: get_version
run: |
FILE=$(ls ./artifacts/*.nupkg | head -n 1)
VERSION=$(echo $FILE | sed -E 's/.*\.([0-9]+\.[0-9]+\.[0-9]+)\.nupkg/\1/')
echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Create Git tag
run: |
echo "📦 Creating Git tag..."
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag -a "v${{ steps.get_version.outputs.version }}" -m "Release v${{ steps.get_version.outputs.version }}"
git push origin "v${{ steps.get_version.outputs.version }}"
echo "✅ Git tag created and pushed successfully!"

- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.get_version.outputs.version }}
release_name: ${{ steps.get_version.outputs.version }}
body: |
### [NuGet package](https://www.nuget.org/packages/HorusStudio.Maui.MaterialDesignControls/${{ steps.get_version.outputs.version }})
#### New features
-
#### Bug fixes
-
draft: true
prerelease: false
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ __pycache__/
# Cake - Uncomment if you are using it
tools/**
!tools/packages.config
!tools/XMLDoc2Markdown.zip

# Tabs Studio
*.tss
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ Find more usages and samples on our [sample app](samples/HorusStudio.Maui.Materi

## Release notes

Check out our progress [here](ReleaseNotes.md).
Check out our progress [here](https://github.com/HorusSoftwareUY/Maui.MaterialDesignControls/releases).

## Developed by
<a href="http://horus.com.uy"><img src="resources/logo.png" width="200"></a>
Expand Down
112 changes: 0 additions & 112 deletions ReleaseNotes.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ private async void DefaultSnackbar()

## Known issues and pending features

* [macOS] MaterialSnackbar with icons are not shown due to an icon rendering issue
* [macOS] MaterialSnackbar with icons are not shown due to an icon rendering issue.
* Add FontFamily, TextTransform and TextDecorations properties.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# ITouchableView

The ITouchableView interface serves as a base for touchable views.

Namespace: HorusStudio.Maui.MaterialDesignControls

<br>

## Properties

### <a id="properties-isenabled"/>**IsEnabled**

Gets or sets the state when the view is enabled.

Property type: [Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean)<br>

<br>

### <a id="properties-touchanimation"/>**TouchAnimation**

Gets or sets a custom animation to be executed when view is clicked.

Property type: ITouchAnimation<br>

<br>

### <a id="properties-touchanimationtype"/>**TouchAnimationType**

Gets or sets an animation to be executed when view is clicked.

Property type: TouchAnimationTypes<br>

| Name | Value | Description |
| --- | --: | --- |
| None | 0 | None: no animation runs. |
| Fade | 1 | Fade: Represents an animation that simulates a "fade" effect by changing the opacity over the target element. |
| Scale | 2 | Scale: Represents an animation that simulates a "sink" or "sunken" effect by scaling the target element. |
| Bounce | 3 | Bounce: Represents an animation that simulates a "sink" or "sunken" effect with a "bounce" effect when the user releases the target element. |

<br>

## Events

### <a id="events-touch"/>**Touch**

Occurs when the view is touched.

<br>
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,12 @@ Occurs when the button is released.

<br>

### <a id="events-touch"/>**Touch**

Occurs when the button is touched.

<br>

### <a id="events-unfocused"/>**Unfocused**

Occurs when the button is unfocused.
Expand All @@ -442,3 +448,4 @@ Occurs when the button is unfocused.
* ContentLayout is buggy.
* Add default Material behavior for pressed state on default styles (v2).
* [iOS] FontAttributes and SupportingFontAttributes don't work (MAUI issue)
* [Android] When placed inside a ScrollView, it will fire Command on drag event as well. This behavior is totally inherited from MAUI Button. If you need to avoid that, we recommend using MaterialCard, MaterialChip, or MaterialViewButton instead.
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,12 @@ Occurs when the card is released.

<br>

### <a id="events-touch"/>**Touch**

Occurs when the card is touched.

<br>

## Known issues and pending features

* Disable color styles looks a bit weird with the opacities that the guideline specifies, we have to review them.
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,12 @@ Occurs when the checkbox is checked / unchecked

<br>

### <a id="events-touch"/>**Touch**

Occurs when the checkbox is touched.

<br>

## Known issues and pending features

* [iOS] FontAttributes doesn't work.
Original file line number Diff line number Diff line change
Expand Up @@ -379,3 +379,9 @@ Remarks: If a value is not explicitly set, the control will use the Text propert
Occurs when the chips is clicked/tapped.

<br>

### <a id="events-touch"/>**Touch**

Occurs when the chip is touched.

<br>
Loading
Loading