Compare commits

...

46 Commits

Author SHA1 Message Date
Zhang Dian
d57c843032 misc: bump version. 2026-02-09 23:54:05 +08:00
Zhang Dian
a56b1e374a fix: update TextBox padding for improved layout consistency. (#748) 2026-02-09 23:29:28 +08:00
Zhang Dian
664d05db45 feat: add ClearSelectionOnLostFocus property to AutoCompleteBox. (#746) 2026-02-09 23:28:15 +08:00
Zhang Dian
fdbfd91b8f feat: Properly handle nc hit test for caption buttons. (#745) 2026-02-09 21:33:12 +08:00
Zhang Dian
3b0b007a40 fix: reverse TickBar when Slider direction is reversed. (#744) 2026-02-09 18:29:13 +08:00
Zhang Dian
c1eff9ddf8 fix: add AutomationProperties names to ScrollViewer controls. (#738) 2026-02-09 15:17:21 +08:00
xoma-zver
4285e6e227 feat: add Inter font resource reference to SemiFontFamilyRegular (#722) 2026-02-09 14:51:29 +08:00
Zhang Dian
edacd88fa7 fix: update MenuFlyout to use ShowMode for context menus in SelectableTextBlock and TextBox (#739) 2026-02-09 14:46:29 +08:00
Zhang Dian
136d577667 fix: fix DatePicker & TimePicker to respect custom Width property. (#737) 2026-02-09 14:45:17 +08:00
Zhang Dian
4ef1520e64 fix: remove inline text decorations from Popup styles. 2026-01-16 17:40:11 +08:00
Dong Bin
5e751ccdbb Disable scroll chaining in AutoCompleteBox popup. (#716)
* feat: disable scroll chaining in popup.

* feat: disable scroll chaining in MenuScrollViewer
2026-01-09 15:45:00 +08:00
Dong Bin
13dcdbdd07 chore: mark old versions as EOL. (#715) 2026-01-04 23:42:51 +08:00
Zhang Dian
185fe8c984 fix: fix the reference version of TDG. 2025-12-30 16:33:43 +08:00
Zhang Dian
622c8c23b7 ci: add adroid workload. 2025-12-30 16:04:07 +08:00
Zhang Dian
104ba2f1f4 misc: bump version. 2025-12-30 15:26:35 +08:00
Zhang Dian
4895d2f51b fix: ClearButton shouble not be focusable. 2025-12-29 16:02:00 +08:00
Shatyuka
414736443d fix: controls under TextBox inheriting Ibeam cursor (#710) 2025-12-22 19:32:57 +08:00
Copilot
65d2f88cab Make DataGrid cell grid lines use dynamic resources for thickness (#666)
* Initial plan

* Implement dynamic resources for DataGrid grid line thickness and color

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Revert DynamicResource to StaticResource for DataGridLineBrush in theme files

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>
2025-12-16 17:08:07 +08:00
Zhang Dian
0a622772f4 ci: specify project path for dotnet restore in publish.yml. 2025-12-10 15:11:49 +08:00
Dong Bin
5ef8f7ddaf fix: replace icon resource include with semi:Icons in Index.axaml (#707) 2025-12-09 16:06:04 +08:00
Zhang Dian
ba9dd0a574 chore: turn on CPM & slnx. 2025-12-09 13:58:01 +08:00
Dong Bin
f784a2c927 fix: try to fix wasm deployment issue. (#698) 2025-11-17 11:23:45 +08:00
Zhang Dian
69cc9b9ca3 misc: bump version. 2025-11-15 15:18:45 +08:00
Zhang Dian
9226858cda misc: bump version. 2025-11-15 14:58:50 +08:00
Copilot
7f81aa3bde Sync upstream: Move ContentPresenter.RecognizesAccessKey to style setters (#696)
* Initial plan

* Move ContentPresenter.RecognizeAccessKey from local value to style

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>
2025-11-12 20:08:34 +08:00
Dong Bin
bc37be16ac Merge pull request #695 from irihitech/AITag
Add AI style - Colorful & Gradient to TagLabel
2025-11-11 21:34:04 +08:00
Zhang Dian
7a831d35f7 feat: add AI style - Colorful & Gradient to TagLabel. 2025-11-11 19:06:17 +08:00
Dong Bin
5f8357ecbc Merge pull request #694 from irihitech/AIButton
add AI style - Colorful Button
2025-11-11 16:07:11 +08:00
Zhang Dian
4c7caa6dbf misc: revert SplitButton. 2025-11-11 15:50:32 +08:00
Zhang Dian
445b31893e feat: enhance button styles with AI Colorful classes and update ButtonDemo layout. 2025-11-11 15:20:36 +08:00
Zhang Dian
301a4e954c fix: NEW -> New. 2025-11-05 13:27:23 +08:00
Zhang Dian
dc80578c53 feat: add "NEW" label for AI Icons in IconDemo. 2025-11-05 13:24:21 +08:00
Zhang Dian
6c8825b3df Add AI icons & Excel, PDF, Word icons (#691)
* feat: add AI-related icons.

* feat: add AI icons to IconDemo and update view model.

* feat: rename icon files and update resource includes for consistency.

* feat: refactor IconDemo to use dynamic tab control for icons.

* fix: Filled Icons -> Fill Icons.

* misc: remove commas in icon Path.

* feat: add Excel, PDF, and Word icons.
2025-11-05 12:55:01 +08:00
Zhang Dian
aa105337fa Merge pull request #690 from irihitech/typo
PointerOver -> Pointerover
2025-11-04 14:53:17 +08:00
Copilot
f92b5f4373 Add AI-related color resources to theme palette and demo (#689)
* Initial plan

* Add AI-related color resources for Light and Dark themes

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Fix gradient angle to correctly represent 278 degrees

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Fix gradient angle and add AI resources to palette demo

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Add AI General gradients section to palette demo UI

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* feat: unify gradient initialization.

* feat: add AI-related color resources for Light and Dark themes.

* feat: add AI-related color tokens to ColorTokens and PaletteDemo

* Rename AI token names from Ai to AI (capital)

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* fix: fix AI-related color tokens names.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>
Co-authored-by: Dong Bin <popmessiah@hotmail.com>
Co-authored-by: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
2025-11-03 15:18:49 +08:00
Dong Bin
bbff875d9c Merge pull request #684 from irihitech/copilot/update-readme-compatibility
Update README to indicate 11.3.7 is only compatible with Avalonia 11.3.7
2025-10-19 19:58:04 +08:00
copilot-swe-agent[bot]
df75863ac5 Add version 11.3.7 to README compatibility tables
Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>
2025-10-19 11:53:54 +00:00
copilot-swe-agent[bot]
c04e5e8579 Initial plan 2025-10-19 11:51:45 +00:00
Dong Bin
9fca51b30d Merge pull request #681 from irihitech/fix-679
Using ResourceDictionary.SetItems to improve Locale switching
2025-10-17 07:25:19 +08:00
Zhang Dian
0ea632437d fix: fix copilot comment. 2025-10-16 16:12:40 +08:00
Zhang Dian
c0277a7004 feat: using ResourceDictionary.SetItems to improve Locale switching. 2025-10-16 15:28:45 +08:00
Zhang Dian
2c527dc598 fix: fix README badges for ColorPicker, DataGrid, and TreeDataGrid. 2025-10-09 19:54:35 +08:00
Copilot
ab2cef9dc4 Add README files to NuGet packages (#677)
* Initial plan

* Add README files to NuGet packages for Semi.Avalonia, Semi.Avalonia.DataGrid, and Semi.Avalonia.ColorPicker

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Restore Package.props import to reduce code duplication

Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>

* Add README file to Semi.Avalonia.TreeDataGrid package

Co-authored-by: zdpcdt <54255897+zdpcdt@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rabbitism <14807942+rabbitism@users.noreply.github.com>
Co-authored-by: zdpcdt <54255897+zdpcdt@users.noreply.github.com>
2025-10-09 19:47:10 +08:00
Dong Bin
86daf6b428 Merge pull request #675 from zdpcdt/android
Upgrade to .NET 9.0 for Android and fix Fonts issue.
2025-10-07 17:21:20 +08:00
Zhang Dian
8f7cdf52b4 feat: upgrade to .NET 9.0 for Android and fix Fonts issue. 2025-10-07 15:35:12 +08:00
Zhang Dian
176430f95f fix: fix web demo issue#674.
upgrade web demo to .NET 9.0 and update GitHub Actions to use checkout@v5.
2025-10-07 13:20:31 +08:00
95 changed files with 2785 additions and 1597 deletions

View File

@@ -2,7 +2,7 @@ name: Deploy to GitHub Pages
env: env:
PROJECT_PATH: demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj PROJECT_PATH: demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj
OUTPUT_PATH: demo/Semi.Avalonia.Demo.Web/bin/Release/net8.0-browser/publish/wwwroot OUTPUT_PATH: demo/Semi.Avalonia.Demo.Web/bin/Release/net10.0-browser/publish/wwwroot
on: on:
workflow_dispatch: workflow_dispatch:
@@ -11,12 +11,13 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.1.1 uses: actions/checkout@v5
- name: Setup .NET 8 - name: Setup dotnet
uses: actions/setup-dotnet@v4 uses: actions/setup-dotnet@v5
with: with:
dotnet-version: 8.0.x dotnet-version: |
10.0.x
- name: Install wasm-tools - name: Install wasm-tools
run: dotnet workload install wasm-tools run: dotnet workload install wasm-tools

View File

@@ -31,7 +31,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Get Version - name: Get Version
run: | run: |

View File

@@ -47,7 +47,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Pack Semi.Avalonia - name: Pack Semi.Avalonia
if: ${{ inputs.Semi_Avalonia }} if: ${{ inputs.Semi_Avalonia }}

View File

@@ -75,7 +75,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Publish win-x64 - name: Publish win-x64
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
- name: Upload a Build Artifact - name: Upload a Build Artifact
@@ -91,7 +91,7 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Enable Native AOT in .csproj - name: Enable Native AOT in .csproj
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
- name: Publish win-x64 AOT - name: Publish win-x64 AOT
@@ -109,7 +109,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Publish linux-x64 - name: Publish linux-x64
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
- name: Upload a Build Artifact - name: Upload a Build Artifact
@@ -125,7 +125,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Enable Native AOT in .csproj - name: Enable Native AOT in .csproj
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
- name: Publish linux-x64 AOT - name: Publish linux-x64 AOT
@@ -143,7 +143,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Publish linux-x64 DRM - name: Publish linux-x64 DRM
run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
- name: Upload a Build Artifact - name: Upload a Build Artifact
@@ -159,7 +159,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Enable Native AOT in .csproj - name: Enable Native AOT in .csproj
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj
- name: Publish linux-x64 AOT - name: Publish linux-x64 AOT
@@ -177,7 +177,7 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Publish osx-arm64 - name: Publish osx-arm64
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r osx-arm64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r osx-arm64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
- name: Upload a Build Artifact - name: Upload a Build Artifact
@@ -193,7 +193,7 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: Enable Native AOT in .csproj - name: Enable Native AOT in .csproj
run: sed -i '' 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj run: sed -i '' 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
- name: Publish osx-arm64 AOT - name: Publish osx-arm64 AOT
@@ -211,13 +211,13 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4.2.2 uses: actions/checkout@v5
- name: CD Android - name: Install Android workload
run: cd demo/Semi.Avalonia.Demo.Android run: dotnet workload install android
- name: Restore Dependencies - name: Restore Dependencies
run: dotnet restore run: dotnet restore demo/Semi.Avalonia.Demo.Android
- name: Publish Android - name: Publish Android
run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o publish /p:RuntimeIdentifier=android-arm64 run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net10.0-android --no-restore -o publish /p:RuntimeIdentifier=android-arm64
- name: Upload a Build Artifact - name: Upload a Build Artifact
uses: actions/upload-artifact@v4.6.2 uses: actions/upload-artifact@v4.6.2
with: with:

View File

@@ -75,13 +75,12 @@ We offer limited free community support for Semi Avalonia and Ursa. If you have
## Version compatibility ## Version compatibility
| Semi Design Version | Avalonia Version | | Semi Avalonia Version | Avalonia Version |
|:--------------------|:-----------------| |:----------------------|:-----------------|
| 11.2.1 | >=11.2.1 | | 11.3.7 | >=11.3.7 |
| 11.2.0 | 11.2.0 | | 11.2.1 | >=11.2.1 |
| 11.1.0 | >=11.1.0 | | 11.2.0 | End of Life |
| 11.0.7 | >=11.0.7 | | 11.1.x | End of Life |
| 11.0.1 | <=11.0.6 |
## Credits ## Credits

View File

@@ -75,13 +75,12 @@ dotnet add package Semi.Avalonia.AvaloniaEdit
## 版本兼容性 ## 版本兼容性
| Semi Design Version | Avalonia Version | | Semi Avalonia Version | Avalonia Version |
|:--------------------|:-----------------| |:----------------------|:-----------------|
| 11.2.1 | >=11.2.1 | | 11.3.7 | >=11.3.7 |
| 11.2.0 | 11.2.0 | | 11.2.1 | >=11.2.1 |
| 11.1.0 | >=11.1.0 | | 11.2.0 | End of Life |
| 11.0.7 | >=11.0.7 | | 11.1.x | End of Life |
| 11.0.1 | <=11.0.6 |
## 致谢 ## 致谢

View File

@@ -1,99 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32929.385
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia", "src\Semi.Avalonia\Semi.Avalonia.csproj", "{90D0B063-BC64-40AB-A56C-AC11909CF410}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Files", "Solution Files", "{B1E6A7D4-0AFB-4D32-9969-5FBDAC0CFF3E}"
ProjectSection(SolutionItems) = preProject
demo\Directory.Build.props = demo\Directory.Build.props
demo\global.json = demo\global.json
src\Package.props = src\Package.props
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GitHub Action", "GitHub Action", "{318534A1-1CC3-40FB-B4AE-736F94465232}"
ProjectSection(SolutionItems) = preProject
.github\workflows\deploy.yml = .github\workflows\deploy.yml
.github\workflows\pack.yml = .github\workflows\pack.yml
.github\workflows\pack-nightly.yml = .github\workflows\pack-nightly.yml
.github\workflows\publish.yml = .github\workflows\publish.yml
.github\workflows\release-tag.yml = .github\workflows\release-tag.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Demo", "Demo", "{43091528-9509-43CB-A003-9C5C11E96DD6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Desktop", "demo\Semi.Avalonia.Demo.Desktop\Semi.Avalonia.Demo.Desktop.csproj", "{2ADCA724-2B6D-46EC-87F7-604D7918B89A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Web", "demo\Semi.Avalonia.Demo.Web\Semi.Avalonia.Demo.Web.csproj", "{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo", "demo\Semi.Avalonia.Demo\Semi.Avalonia.Demo.csproj", "{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.DataGrid", "src\Semi.Avalonia.DataGrid\Semi.Avalonia.DataGrid.csproj", "{8A90C292-8761-4F70-8E1F-EFC097FEADB3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.ColorPicker", "src\Semi.Avalonia.ColorPicker\Semi.Avalonia.ColorPicker.csproj", "{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Android", "demo\Semi.Avalonia.Demo.Android\Semi.Avalonia.Demo.Android.csproj", "{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.Demo.Drm", "demo\Semi.Avalonia.Demo.Drm\Semi.Avalonia.Demo.Drm.csproj", "{86D93406-412A-4429-93B2-92AAD0407784}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.TreeDataGrid", "src\Semi.Avalonia.TreeDataGrid\Semi.Avalonia.TreeDataGrid.csproj", "{398D2998-0835-41F5-99A3-608CAB8051E2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{90D0B063-BC64-40AB-A56C-AC11909CF410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90D0B063-BC64-40AB-A56C-AC11909CF410}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90D0B063-BC64-40AB-A56C-AC11909CF410}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90D0B063-BC64-40AB-A56C-AC11909CF410}.Release|Any CPU.Build.0 = Release|Any CPU
{2ADCA724-2B6D-46EC-87F7-604D7918B89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2ADCA724-2B6D-46EC-87F7-604D7918B89A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2ADCA724-2B6D-46EC-87F7-604D7918B89A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2ADCA724-2B6D-46EC-87F7-604D7918B89A}.Release|Any CPU.Build.0 = Release|Any CPU
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0}.Release|Any CPU.Build.0 = Release|Any CPU
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}.Release|Any CPU.Build.0 = Release|Any CPU
{8A90C292-8761-4F70-8E1F-EFC097FEADB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A90C292-8761-4F70-8E1F-EFC097FEADB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A90C292-8761-4F70-8E1F-EFC097FEADB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A90C292-8761-4F70-8E1F-EFC097FEADB3}.Release|Any CPU.Build.0 = Release|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Release|Any CPU.Build.0 = Release|Any CPU
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.Build.0 = Release|Any CPU
{86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.Build.0 = Release|Any CPU
{398D2998-0835-41F5-99A3-608CAB8051E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{398D2998-0835-41F5-99A3-608CAB8051E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{398D2998-0835-41F5-99A3-608CAB8051E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{398D2998-0835-41F5-99A3-608CAB8051E2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2ADCA724-2B6D-46EC-87F7-604D7918B89A} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{0C81FC1C-5D2D-478A-9876-923A0C85EC2F} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{86D93406-412A-4429-93B2-92AAD0407784} = {43091528-9509-43CB-A003-9C5C11E96DD6}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7CA41ED3-2CED-40CC-AA21-28C3B42B1E86}
EndGlobalSection
EndGlobal

28
Semi.Avalonia.slnx Normal file
View File

@@ -0,0 +1,28 @@
<Solution>
<Folder Name="/Demo/">
<Project Path="demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj"/>
<Project Path="demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj"/>
<Project Path="demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj"/>
<Project Path="demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj"/>
<Project Path="demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj"/>
</Folder>
<Folder Name="/GitHub Action/">
<File Path=".github/workflows/deploy.yml"/>
<File Path=".github/workflows/pack-nightly.yml"/>
<File Path=".github/workflows/pack.yml"/>
<File Path=".github/workflows/publish.yml"/>
<File Path=".github/workflows/release-tag.yml"/>
</Folder>
<Folder Name="/Solution Items/Demo/">
<File Path="demo/Directory.Packages.props"/>
<File Path="demo/global.json"/>
</Folder>
<Folder Name="/Solution Items/Package/">
<File Path="src/Directory.Packages.props"/>
<File Path="src/Directory.Build.props"/>
</Folder>
<Project Path="src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj"/>
<Project Path="src/Semi.Avalonia.DataGrid/Semi.Avalonia.DataGrid.csproj"/>
<Project Path="src/Semi.Avalonia.TreeDataGrid/Semi.Avalonia.TreeDataGrid.csproj"/>
<Project Path="src/Semi.Avalonia/Semi.Avalonia.csproj"/>
</Solution>

View File

@@ -1,7 +0,0 @@
<Project>
<PropertyGroup>
<AvaloniaVersion>11.3.7</AvaloniaVersion>
<DataGridVersion>11.3.7</DataGridVersion>
<CommunityToolkitVersion>8.4.0</CommunityToolkitVersion>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,27 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<AvaloniaVersion>11.3.11</AvaloniaVersion>
<DataGridVersion>11.3.11</DataGridVersion>
<SkiaSharpVersion>3.119.1</SkiaSharpVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Avalonia" Version="$(AvaloniaVersion)"/>
<PackageVersion Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
<PackageVersion Include="Avalonia.Desktop" Version="$(AvaloniaVersion)" />
<PackageVersion Include="Avalonia.LinuxFramebuffer" Version="$(AvaloniaVersion)"/>
<PackageVersion Include="Avalonia.iOS" Version="$(AvaloniaVersion)" />
<PackageVersion Include="Avalonia.Browser" Version="$(AvaloniaVersion)" />
<PackageVersion Include="Avalonia.Android" Version="$(AvaloniaVersion)" />
<PackageVersion Include="Avalonia.Controls.ColorPicker" Version="$(AvaloniaVersion)"/>
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="$(DataGridVersion)"/>
<PackageVersion Include="SkiaSharp" Version="$(SkiaSharpVersion)"/>
<PackageVersion Include="SkiaSharp.NativeAssets.WebAssembly" Version="$(SkiaSharpVersion)"/>
<PackageVersion Include="Xamarin.AndroidX.Core.SplashScreen" Version="1.2.0"/>
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0"/>
<PackageVersion Include="Irihi.Avalonia.Shared" Version="0.3.1"/>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,16 @@
using Avalonia;
using Avalonia.Media;
namespace Semi.Avalonia.Demo.Android;
public static class AvaloniaAppBuilderExtensions
{
private static string DefaultFontFamily => "avares://Semi.Avalonia.Demo.Android/Assets#Source Han Sans CN";
public static AppBuilder WithSourceHanSansCNFont(this AppBuilder builder) =>
builder.With(new FontManagerOptions
{
DefaultFamilyName = DefaultFontFamily,
FontFallbacks = [new FontFallback { FontFamily = new FontFamily(DefaultFontFamily) }]
});
}

View File

@@ -1,5 +1,6 @@
using Android.App; using Android.App;
using Android.Content.PM; using Android.Content.PM;
using Avalonia;
using Avalonia.Android; using Avalonia.Android;
namespace Semi.Avalonia.Demo.Android; namespace Semi.Avalonia.Demo.Android;
@@ -13,4 +14,9 @@ namespace Semi.Avalonia.Demo.Android;
ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
public class MainActivity : AvaloniaMainActivity<App> public class MainActivity : AvaloniaMainActivity<App>
{ {
protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
{
return base.CustomizeAppBuilder(builder)
.WithSourceHanSansCNFont();
}
} }

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net8.0-android</TargetFramework> <TargetFramework>net10.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion> <SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ApplicationId>com.irihitech.Semi.Avalonia</ApplicationId> <ApplicationId>com.irihitech.Semi.Avalonia</ApplicationId>
@@ -15,11 +15,12 @@
<ItemGroup> <ItemGroup>
<AndroidResource Include="Icon.png" Link="Resources\drawable\Icon.png"/> <AndroidResource Include="Icon.png" Link="Resources\drawable\Icon.png"/>
<AvaloniaResource Include="..\Fonts\*" Link="Assets\Fonts\%(Filename)%(Extension)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Android" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Android"/>
<PackageReference Include="Xamarin.AndroidX.Core.SplashScreen" Version="1.0.1.1"/> <PackageReference Include="Xamarin.AndroidX.Core.SplashScreen"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -23,7 +23,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Desktop"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -23,8 +23,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Desktop"/>
<PackageReference Include="Avalonia.LinuxFramebuffer" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.LinuxFramebuffer"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,17 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk.WebAssembly"> <Project Sdk="Microsoft.NET.Sdk.WebAssembly">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0-browser</TargetFramework> <TargetFramework>net10.0-browser</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<AvaloniaResource Include="Assets\**"/> <AvaloniaResource Include="..\Fonts\*" Link="Assets\Fonts\%(Filename)%(Extension)" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Browser" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Browser"/>
<PackageReference Include="SkiaSharp"/>
<PackageReference Include="SkiaSharp.NativeAssets.WebAssembly"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -79,6 +79,32 @@ public static class ColorTokens
new("SemiColorDangerLightActive", "Danger Light Active") new("SemiColorDangerLightActive", "Danger Light Active")
]; ];
public static IReadOnlyList<Tuple<string, string>> AIGeneralTokens { get; } =
[
new("SemiColorAIGeneral", "AI General"),
new("SemiColorAIGeneralPointerover", "AI General Pointerover"),
new("SemiColorAIGeneralActive", "AI General Active"),
new("SemiColorAIGeneralDisabled", "AI General Disabled")
];
public static IReadOnlyList<Tuple<string, string>> AIPurpleTokens { get; } =
[
new("SemiColorAIPurple", "AI Purple"),
new("SemiColorAIPurplePointerover", "AI Purple Pointerover"),
new("SemiColorAIPurpleActive", "AI Purple Active"),
new("SemiColorAIPurpleDisabled", "AI Purple Disabled")
];
public static IReadOnlyList<Tuple<string, string>> AIBackgroundTokens { get; } =
[
new("SemiColorAIBackgroundBottom", "AI Bottom Background"),
new("SemiColorAIBackgroundBottomPointerover", "AI Bottom Background Pointerover"),
new("SemiColorAIBackgroundBottomActive", "AI Bottom Background Active"),
new("SemiColorAIBackgroundTop", "AI Top Background"),
new("SemiColorAIBackgroundTopPointerover", "AI Top Background Pointerover"),
new("SemiColorAIBackgroundTopActive", "AI Top Background Active"),
];
public static IReadOnlyList<Tuple<string, string>> TextTokens { get; } = public static IReadOnlyList<Tuple<string, string>> TextTokens { get; } =
[ [
new("SemiColorText0", "Text 0"), new("SemiColorText0", "Text 0"),

View File

@@ -92,6 +92,12 @@ public class ColorDetailControl : TemplatedControl
Hex2 = hex2 as string; Hex2 = hex2 as string;
OpacityNumber = brush.Opacity.ToString(CultureInfo.InvariantCulture); OpacityNumber = brush.Opacity.ToString(CultureInfo.InvariantCulture);
} }
else
{
Hex = null;
Hex2 = null;
OpacityNumber = null;
}
} }
public async Task Copy(object o) public async Task Copy(object o)

View File

@@ -6,174 +6,369 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> mc:Ignorable="d">
<ScrollViewer> <ScrollViewer>
<StackPanel HorizontalAlignment="Left" Spacing="20"> <StackPanel HorizontalAlignment="Left" Spacing="8">
<StackPanel.Styles> <StackPanel.Styles>
<Style Selector="SplitButton"> <Style Selector="SplitButton,DropDownButton,ToggleSplitButton">
<Setter Property="Flyout"> <Setter Property="Button.Flyout">
<MenuFlyout Placement="BottomEdgeAlignedRight"> <MenuFlyout>
<MenuItem Header="Submit All" />
<MenuItem Header="Submit Updated" />
</MenuFlyout>
</Setter>
</Style>
<Style Selector="DropDownButton">
<Setter Property="Flyout">
<MenuFlyout Placement="BottomEdgeAlignedRight">
<MenuItem Header="Submit All" />
<MenuItem Header="Submit Updated" />
</MenuFlyout>
</Setter>
</Style>
<Style Selector="ToggleSplitButton">
<Setter Property="Flyout">
<MenuFlyout Placement="BottomEdgeAlignedRight">
<MenuItem Header="Submit All" /> <MenuItem Header="Submit All" />
<MenuItem Header="Submit Updated" /> <MenuItem Header="Submit Updated" />
</MenuFlyout> </MenuFlyout>
</Setter> </Setter>
</Style> </Style>
</StackPanel.Styles> </StackPanel.Styles>
<HeaderedContentControl
Theme="{StaticResource GroupBox}">
<HeaderedContentControl.Header>
<StackPanel Spacing="8">
<TextBlock Text="Button/RepeatButton Theme" />
<WrapPanel ItemSpacing="4">
<TextBlock Text="Theme:" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue Solid" Content="Light" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue Solid" Content="Solid" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue Solid" Content="Outline" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue Solid" Content="Borderless" />
</WrapPanel>
<WrapPanel ItemSpacing="4">
<TextBlock Text="Classes:" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Primary" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Secondary" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Tertiary" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Success" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Warning" />
<Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Danger" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl.Header>
<StackPanel HorizontalAlignment="Left" Spacing="16">
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Default" />
<Button Content="Primary" Classes="Primary" />
<Button Content="Secondary" Classes="Secondary" />
<Button Content="Tertiary" Classes="Tertiary" />
<Button Content="Success" Classes="Success" />
<Button Content="Warning" Classes="Warning" />
<Button Content="Danger" Classes="Danger" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Default" Theme="{StaticResource SolidButton}" />
<Button Content="Primary" Classes="Primary" Theme="{StaticResource SolidButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{StaticResource SolidButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{StaticResource SolidButton}" />
<Button Content="Success" Classes="Success" Theme="{StaticResource SolidButton}" />
<Button Content="Warning" Classes="Warning" Theme="{StaticResource SolidButton}" />
<Button Content="Danger" Classes="Danger" Theme="{StaticResource SolidButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Default" Theme="{StaticResource OutlineButton}" />
<Button Content="Primary" Classes="Primary" Theme="{StaticResource OutlineButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{StaticResource OutlineButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{StaticResource OutlineButton}" />
<Button Content="Success" Classes="Success" Theme="{StaticResource OutlineButton}" />
<Button Content="Warning" Classes="Warning" Theme="{StaticResource OutlineButton}" />
<Button Content="Danger" Classes="Danger" Theme="{StaticResource OutlineButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Default" Theme="{StaticResource BorderlessButton}" />
<Button Content="Primary" Classes="Primary" Theme="{StaticResource BorderlessButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{StaticResource BorderlessButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{StaticResource BorderlessButton}" />
<Button Content="Success" Classes="Success" Theme="{StaticResource BorderlessButton}" />
<Button Content="Warning" Classes="Warning" Theme="{StaticResource BorderlessButton}" />
<Button Content="Danger" Classes="Danger" Theme="{StaticResource BorderlessButton}" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
<TextBlock>Light (Default)</TextBlock> <HeaderedContentControl
<StackPanel Orientation="Horizontal" Spacing="20"> Theme="{StaticResource GroupBox}"
<Button Classes="Primary">Primary</Button> Header="Prohibited Status">
<Button Classes="Secondary">Secondary</Button> <WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Classes="Tertiary">Tertiary</Button> <Button Content="Light" IsEnabled="False" />
<Button Classes="Success">Success</Button> <Button Content="Solid" IsEnabled="False" Theme="{StaticResource SolidButton}" />
<Button Classes="Warning">Warning</Button> <Button Content="Outline" IsEnabled="False" Theme="{StaticResource OutlineButton}" />
<Button Classes="Danger">Danger</Button> <Button Content="Borderless" IsEnabled="False" Theme="{StaticResource BorderlessButton}" />
<Button Classes="Danger" IsEnabled="False">Disabled</Button> </WrapPanel>
</StackPanel> </HeaderedContentControl>
<TextBlock>Solid</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<Button Classes="Primary" Theme="{DynamicResource SolidButton}">Primary</Button>
<Button Classes="Secondary" Theme="{DynamicResource SolidButton}">Secondary</Button>
<Button Classes="Tertiary" Theme="{DynamicResource SolidButton}">Tertiary</Button>
<Button Classes="Success" Theme="{DynamicResource SolidButton}">Success</Button>
<Button Classes="Warning" Theme="{DynamicResource SolidButton}">Warning</Button>
<Button Classes="Danger" Theme="{DynamicResource SolidButton}">Danger</Button>
<Button
Classes="Danger"
IsEnabled="False"
Theme="{DynamicResource SolidButton}">
Disabled
</Button>
</StackPanel>
<TextBlock>Outline</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<Button Classes="Primary" Theme="{DynamicResource OutlineButton}">Primary</Button>
<Button Classes="Secondary" Theme="{DynamicResource OutlineButton}">Secondary</Button>
<Button Classes="Tertiary" Theme="{DynamicResource OutlineButton}">Tertiary</Button>
<Button Classes="Success" Theme="{DynamicResource OutlineButton}">Success</Button>
<Button Classes="Warning" Theme="{DynamicResource OutlineButton}">Warning</Button>
<Button Classes="Danger" Theme="{DynamicResource OutlineButton}">Danger</Button>
<Button Classes="Danger" Theme="{DynamicResource OutlineButton}" IsEnabled="False">Disabled</Button>
</StackPanel>
<TextBlock>Borderless</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<Button Classes="Primary" Theme="{DynamicResource BorderlessButton}">Primary</Button>
<Button Classes="Secondary" Theme="{DynamicResource BorderlessButton}">Secondary</Button>
<Button Classes="Tertiary" Theme="{DynamicResource BorderlessButton}">Tertiary</Button>
<Button Classes="Success" Theme="{DynamicResource BorderlessButton}">Success</Button>
<Button Classes="Warning" Theme="{DynamicResource BorderlessButton}">Warning</Button>
<Button Classes="Danger" Theme="{DynamicResource BorderlessButton}">Danger</Button>
<Button
Classes="Danger"
IsEnabled="False"
Theme="{DynamicResource BorderlessButton}">
Disabled
</Button>
</StackPanel>
<TextBlock>Disabled</TextBlock>
<StackPanel Background="{DynamicResource SemiColorBackground1}" Orientation="Horizontal" Spacing="20">
<Button IsEnabled="False">Light</Button>
<Button IsEnabled="False" Theme="{DynamicResource SolidButton}">Solid</Button>
<Button IsEnabled="False" Theme="{DynamicResource OutlineButton}">Outline</Button>
<Button IsEnabled="False" Theme="{DynamicResource BorderlessButton}">Borderless</Button>
</StackPanel>
<TextBlock>Size Classes</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<Button Classes="Primary Small">Small</Button>
<Button Classes="Primary">Default</Button>
<Button Classes="Primary Large">Large</Button>
</StackPanel>
<TextBlock>DropDownButton</TextBlock> <HeaderedContentControl
<StackPanel Orientation="Horizontal" Spacing="8"> Theme="{StaticResource GroupBox}">
<DropDownButton Content="Primary" /> <HeaderedContentControl.Header>
<DropDownButton Classes="Secondary" Content="Secondary" /> <StackPanel Spacing="8">
<DropDownButton Classes="Tertiary" Content="Tertiary" /> <WrapPanel ItemSpacing="4">
<DropDownButton Classes="Success" Content="Success" /> <TextBlock Text="Size Classes:" />
<DropDownButton Classes="Warning" Content="Warning" /> <Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Large" />
<DropDownButton Classes="Danger" Content="Danger" /> <Label Theme="{StaticResource TagLabel}" Classes="Blue" Content="Small" />
<DropDownButton </WrapPanel>
Classes="Danger" </StackPanel>
Content="Disabled" </HeaderedContentControl.Header>
IsEnabled="False" /> <WrapPanel ItemSpacing="16" LineSpacing="16">
</StackPanel> <Button Content="Large" Classes="Large" />
<StackPanel Orientation="Horizontal" Spacing="8"> <Button Content="Default" />
<DropDownButton Content="Default" Classes="Success" /> <Button Content="Small" Classes="Small" />
<DropDownButton Content="Solid" Theme="{DynamicResource SolidDropDownButton}" Classes="Success" /> </WrapPanel>
<DropDownButton Content="Outline" Theme="{DynamicResource OutlineDropDownButton}" Classes="Success" /> </HeaderedContentControl>
<DropDownButton Content="Borderless" Theme="{DynamicResource BorderlessDropDownButton}" Classes="Success" />
<DropDownButton Content="Default" Classes="Success" IsEnabled="False" />
<DropDownButton Content="Solid" Theme="{DynamicResource SolidDropDownButton}" Classes="Success" IsEnabled="False" />
<DropDownButton Content="Outline" Theme="{DynamicResource OutlineDropDownButton}" Classes="Success" IsEnabled="False" />
<DropDownButton Content="Borderless" Theme="{DynamicResource BorderlessDropDownButton}" Classes="Success" IsEnabled="False" />
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="8">
<DropDownButton Classes="Small" Content="Small" />
<DropDownButton Content="Default" />
<DropDownButton Classes="Large" Content="Large" />
</StackPanel>
<TextBlock>SplitButton</TextBlock> <HeaderedContentControl
<StackPanel Orientation="Horizontal" Spacing="8"> Theme="{StaticResource GroupBox}">
<SplitButton Content="Primary" /> <HeaderedContentControl.Header>
<SplitButton Classes="Secondary" Content="Secondary" /> <StackPanel Spacing="8">
<SplitButton Classes="Tertiary" Content="Tertiary" /> <TextBlock Text="AI style - Colorful Button" />
<SplitButton Classes="Success" Content="Success" /> <WrapPanel ItemSpacing="4">
<SplitButton Classes="Warning" Content="Warning" /> <TextBlock Text="Theme:" />
<SplitButton Classes="Danger" Content="Danger" /> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient Solid" Content="Light" />
<SplitButton Classes="Danger" Content="Disabled" IsEnabled="False" /> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient Solid" Content="Solid" />
</StackPanel> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient Solid" Content="Outline" />
<StackPanel Orientation="Horizontal" Spacing="8"> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient Solid" Content="Borderless" />
<SplitButton Content="Default" Classes="Success" /> </WrapPanel>
<SplitButton Content="Solid" Theme="{DynamicResource SolidSplitButton}" Classes="Success" /> <WrapPanel ItemSpacing="4">
<SplitButton Content="Outline" Theme="{DynamicResource OutlineSplitButton}" Classes="Success" /> <TextBlock Text="Classes:" />
<SplitButton Content="Borderless" Theme="{DynamicResource BorderlessSplitButton}" Classes="Success" /> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient" Content="Colorful Primary" />
<SplitButton Content="Default" Classes="Success" IsEnabled="False" /> <Label Theme="{StaticResource TagLabel}" Classes="Colorful Gradient" Content="Colorful Tertiary" />
<SplitButton Content="Solid" Theme="{DynamicResource SolidSplitButton}" Classes="Success" IsEnabled="False" /> </WrapPanel>
<SplitButton Content="Outline" Theme="{DynamicResource OutlineSplitButton}" Classes="Success" IsEnabled="False" /> </StackPanel>
<SplitButton Content="Borderless" Theme="{DynamicResource BorderlessSplitButton}" Classes="Success" IsEnabled="False" /> </HeaderedContentControl.Header>
</StackPanel> <StackPanel HorizontalAlignment="Left" Spacing="16">
<StackPanel Orientation="Horizontal" Spacing="8"> <WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Classes="Small" Content="Small" /> <Button Content="Primary" Classes="Colorful Primary" />
<SplitButton Content="Default" /> <Button Content="Tertiary" Classes="Colorful Tertiary" />
<SplitButton Classes="Large" Content="Large" /> <Button Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</StackPanel> </WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Primary" Classes="Colorful Primary" Theme="{StaticResource SolidButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource SolidButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource SolidButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Primary" Classes="Colorful Primary" Theme="{StaticResource OutlineButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource OutlineButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource OutlineButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<Button Content="Primary" Classes="Colorful Primary" Theme="{StaticResource BorderlessButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource BorderlessButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource BorderlessButton}" IsEnabled="False" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
<TextBlock>ToggleSplitButton</TextBlock> <HeaderedContentControl
<StackPanel Orientation="Horizontal" Spacing="8"> Theme="{StaticResource GroupBox}" Header="DropDownButton">
<ToggleSplitButton Content="Primary" /> <StackPanel HorizontalAlignment="Left" Spacing="16">
<ToggleSplitButton Classes="Secondary" Content="Secondary" /> <WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Classes="Tertiary" Content="Tertiary" /> <DropDownButton Content="Default" />
<ToggleSplitButton Classes="Success" Content="Success" /> <DropDownButton Content="Primary" Classes="Primary" />
<ToggleSplitButton Classes="Warning" Content="Warning" /> <DropDownButton Content="Secondary" Classes="Secondary" />
<ToggleSplitButton Classes="Danger" Content="Danger" /> <DropDownButton Content="Tertiary" Classes="Tertiary" />
<ToggleSplitButton Classes="Danger" Content="Disabled" IsEnabled="False" /> <DropDownButton Content="Success" Classes="Success" />
</StackPanel> <DropDownButton Content="Warning" Classes="Warning" />
<StackPanel Orientation="Horizontal" Spacing="8"> <DropDownButton Content="Danger" Classes="Danger" />
<ToggleSplitButton Content="Default" Classes="Success" /> </WrapPanel>
<ToggleSplitButton Content="Checked" Classes="Success" IsChecked="True" /> <WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Content="Default" Classes="Success" IsEnabled="False" /> <DropDownButton Content="Default" Theme="{StaticResource SolidDropDownButton}" />
<ToggleSplitButton Content="Checked" Classes="Success" IsChecked="True" IsEnabled="False" /> <DropDownButton Content="Primary" Classes="Primary" Theme="{StaticResource SolidDropDownButton}" />
</StackPanel> <DropDownButton Content="Secondary" Classes="Secondary" Theme="{StaticResource SolidDropDownButton}" />
<StackPanel Orientation="Horizontal" Spacing="8"> <DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource SolidDropDownButton}" />
<ToggleSplitButton Classes="Small" Content="Small" /> <DropDownButton Content="Success" Classes="Success" Theme="{StaticResource SolidDropDownButton}" />
<ToggleSplitButton Content="Default" /> <DropDownButton Content="Warning" Classes="Warning" Theme="{StaticResource SolidDropDownButton}" />
<ToggleSplitButton Classes="Large" Content="Large" /> <DropDownButton Content="Danger" Classes="Danger" Theme="{StaticResource SolidDropDownButton}" />
</StackPanel> </WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Default" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Primary" Classes="Primary" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Secondary" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Success" Classes="Success" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Warning" Classes="Warning" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Danger" Classes="Danger" Theme="{StaticResource OutlineDropDownButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Default" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Primary" Classes="Primary" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Secondary" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Success" Classes="Success" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Warning" Classes="Warning" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Danger" Classes="Danger" Theme="{StaticResource BorderlessDropDownButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Light" IsEnabled="False" />
<DropDownButton Content="Solid" IsEnabled="False" Theme="{StaticResource SolidDropDownButton}" />
<DropDownButton Content="Outline" IsEnabled="False" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Borderless" IsEnabled="False" Theme="{StaticResource BorderlessDropDownButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Large" Classes="Large" />
<DropDownButton Content="Default" />
<DropDownButton Content="Small" Classes="Small" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Primary" Classes="Colorful Primary" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{StaticResource SolidDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource SolidDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource SolidDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource OutlineDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource OutlineDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{StaticResource BorderlessDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{StaticResource BorderlessDropDownButton}" IsEnabled="False" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
<HeaderedContentControl
Theme="{StaticResource GroupBox}" Header="SplitButton">
<StackPanel HorizontalAlignment="Left" Spacing="16">
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Default" />
<SplitButton Content="Primary" Classes="Primary" />
<SplitButton Content="Secondary" Classes="Secondary" />
<SplitButton Content="Tertiary" Classes="Tertiary" />
<SplitButton Content="Success" Classes="Success" />
<SplitButton Content="Warning" Classes="Warning" />
<SplitButton Content="Danger" Classes="Danger" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Default" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Primary" Classes="Primary" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Secondary" Classes="Secondary" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Success" Classes="Success" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Warning" Classes="Warning" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Danger" Classes="Danger" Theme="{StaticResource SolidSplitButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Default" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Primary" Classes="Primary" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Secondary" Classes="Secondary" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Success" Classes="Success" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Warning" Classes="Warning" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Danger" Classes="Danger" Theme="{StaticResource OutlineSplitButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Default" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Primary" Classes="Primary" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Secondary" Classes="Secondary" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Tertiary" Classes="Tertiary" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Success" Classes="Success" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Warning" Classes="Warning" Theme="{StaticResource BorderlessSplitButton}" />
<SplitButton Content="Danger" Classes="Danger" Theme="{StaticResource BorderlessSplitButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Light" IsEnabled="False" />
<SplitButton Content="Solid" IsEnabled="False" Theme="{StaticResource SolidSplitButton}" />
<SplitButton Content="Outline" IsEnabled="False" Theme="{StaticResource OutlineSplitButton}" />
<SplitButton Content="Borderless" IsEnabled="False" Theme="{StaticResource BorderlessSplitButton}" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<SplitButton Content="Large" Classes="Large" />
<SplitButton Content="Default" />
<SplitButton Content="Small" Classes="Small" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
<HeaderedContentControl
Theme="{StaticResource GroupBox}"
Header="ToggleSplitButton">
<StackPanel HorizontalAlignment="Left" Spacing="24">
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Content="Default" />
<ToggleSplitButton Classes="Primary" Content="Primary" />
<ToggleSplitButton Classes="Secondary" Content="Secondary" />
<ToggleSplitButton Classes="Tertiary" Content="Tertiary" />
<ToggleSplitButton Classes="Success" Content="Success" />
<ToggleSplitButton Classes="Warning" Content="Warning" />
<ToggleSplitButton Classes="Danger" Content="Danger" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Content="Default" IsChecked="True" />
<ToggleSplitButton Classes="Primary" Content="Primary" IsChecked="True" />
<ToggleSplitButton Classes="Secondary" Content="Secondary" IsChecked="True" />
<ToggleSplitButton Classes="Tertiary" Content="Tertiary" IsChecked="True" />
<ToggleSplitButton Classes="Success" Content="Success" IsChecked="True" />
<ToggleSplitButton Classes="Warning" Content="Warning" IsChecked="True" />
<ToggleSplitButton Classes="Danger" Content="Danger" IsChecked="True" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Content="Unchecked" Classes="Success" IsEnabled="False" />
<ToggleSplitButton Content="Checked" Classes="Success" IsChecked="True" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleSplitButton Content="Large" Classes="Large" />
<ToggleSplitButton Content="Default" />
<ToggleSplitButton Content="Small" Classes="Small" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
<HeaderedContentControl
Theme="{StaticResource GroupBox}" Header="ToggleButton">
<StackPanel HorizontalAlignment="Left" Spacing="16">
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" />
<ToggleButton Content="Primary" Classes="Primary" />
<ToggleButton Content="Secondary" Classes="Secondary" />
<ToggleButton Content="Tertiary" Classes="Tertiary" />
<ToggleButton Content="Success" Classes="Success" />
<ToggleButton Content="Warning" Classes="Warning" />
<ToggleButton Content="Danger" Classes="Danger" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" IsChecked="True" />
<ToggleButton Content="Primary" Classes="Primary" IsChecked="True" />
<ToggleButton Content="Secondary" Classes="Secondary" IsChecked="True" />
<ToggleButton Content="Tertiary" Classes="Tertiary" IsChecked="True" />
<ToggleButton Content="Success" Classes="Success" IsChecked="True" />
<ToggleButton Content="Warning" Classes="Warning" IsChecked="True" />
<ToggleButton Content="Danger" Classes="Danger" IsChecked="True" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Primary" Classes="Primary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Secondary" Classes="Secondary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Tertiary" Classes="Tertiary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Success" Classes="Success" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Warning" Classes="Warning" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Danger" Classes="Danger" IsChecked="{x:Null}" IsThreeState="True" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Unchecked" IsEnabled="False" />
<ToggleButton Content="Checked" IsEnabled="False" IsChecked="True" />
<ToggleButton Content="Indeterminate" IsEnabled="False" IsChecked="{x:Null}" IsThreeState="True" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Large" Classes="Large" />
<ToggleButton Content="Default" />
<ToggleButton Content="Small" Classes="Small" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Primary" Classes="Colorful Primary" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Primary" Classes="Colorful Primary" IsChecked="True" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" IsChecked="True" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsChecked="True" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Primary" Classes="Colorful Primary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsChecked="{x:Null}" IsThreeState="True" IsEnabled="False" />
</WrapPanel>
</StackPanel>
</HeaderedContentControl>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
</UserControl> </UserControl>

View File

@@ -18,78 +18,67 @@
Text="{Binding SearchText}" Text="{Binding SearchText}"
Watermark="Input Icon Name" /> Watermark="Input Icon Name" />
<TabControl Grid.Row="1"> <TabControl
<TabItem Header="Filled Icons"> Grid.Row="1"
<ScrollViewer> Theme="{StaticResource LineTabControl}"
<ItemsControl ItemsSource="{Binding FilteredFilledIcons}"> ItemsSource="{Binding IconTabs}">
<ItemsControl.ItemsPanel> <TabControl.ItemTemplate>
<ItemsPanelTemplate> <DataTemplate>
<WrapPanel /> <WrapPanel ItemSpacing="5">
</ItemsPanelTemplate> <TextBlock Text="{Binding Header}" />
</ItemsControl.ItemsPanel> <Label
<ItemsControl.ItemTemplate> Theme="{StaticResource TagLabel}"
<DataTemplate> Classes="Purple"
<Button Theme="{DynamicResource OutlineButton}" IsVisible="{Binding Header,
Classes="Tertiary" Converter={x:Static ObjectConverters.Equal},
Padding="0" ConverterParameter='AI Icons'}"
Margin="10" Content="New" />
Width="200" </WrapPanel>
Height="120" </DataTemplate>
Click="Button_Clicked"> </TabControl.ItemTemplate>
<StackPanel Spacing="8">
<PathIcon
Theme="{DynamicResource InnerPathIcon}"
HorizontalAlignment="Center"
Classes="ExtraLarge"
Data="{Binding Geometry}" />
<TextBlock
HorizontalAlignment="Center"
FontSize="12"
FontWeight="Normal"
Text="{Binding ResourceKey}" />
</StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</TabItem>
<TabItem Header="Stroked Icons"> <TabControl.ContentTemplate>
<ScrollViewer> <DataTemplate DataType="vm:IconTab">
<ItemsControl ItemsSource="{Binding FilteredStrokedIcons}"> <ScrollViewer>
<ItemsControl.ItemsPanel> <ItemsControl
<ItemsPanelTemplate> Margin="0 10"
<WrapPanel /> ItemsSource="{Binding IconItems}">
</ItemsPanelTemplate> <ItemsControl.ItemsPanel>
</ItemsControl.ItemsPanel> <ItemsPanelTemplate>
<ItemsControl.ItemTemplate> <WrapPanel
<DataTemplate> ItemWidth="200"
<Button Theme="{DynamicResource OutlineButton}" ItemHeight="120"
Classes="Tertiary" ItemSpacing="10"
Padding="0" LineSpacing="10" />
Margin="10" </ItemsPanelTemplate>
Width="200" </ItemsControl.ItemsPanel>
Height="120" <ItemsControl.ItemTemplate>
Click="Button_Clicked"> <DataTemplate>
<StackPanel Spacing="8"> <Button Theme="{DynamicResource OutlineButton}"
<PathIcon Classes="Tertiary"
Theme="{DynamicResource InnerPathIcon}" Padding="0"
HorizontalAlignment="Center" HorizontalAlignment="Stretch"
Classes="ExtraLarge" VerticalAlignment="Stretch"
Data="{Binding Geometry}" /> Click="Button_Clicked">
<TextBlock <StackPanel Spacing="8">
HorizontalAlignment="Center" <PathIcon
FontSize="12" Theme="{DynamicResource InnerPathIcon}"
FontWeight="Normal" HorizontalAlignment="Center"
Text="{Binding ResourceKey}" /> Classes="ExtraLarge"
</StackPanel> Data="{Binding Geometry}" />
</Button> <TextBlock
</DataTemplate> HorizontalAlignment="Center"
</ItemsControl.ItemTemplate> FontSize="12"
</ItemsControl> FontWeight="Normal"
</ScrollViewer> Text="{Binding ResourceKey}" />
</TabItem> </StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl> </TabControl>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -8,14 +8,11 @@
d:DesignWidth="800" d:DesignWidth="800"
mc:Ignorable="d"> mc:Ignorable="d">
<ScrollViewer> <ScrollViewer>
<StackPanel HorizontalAlignment="Left" Spacing="20"> <StackPanel>
<StackPanel.Styles> <StackPanel.Styles>
<Style Selector="Label"> <Style Selector="Grid > TextBlock,Grid > Label">
<Setter Property="Margin" Value="4" /> <Setter Property="Layoutable.VerticalAlignment" Value="Center" />
</Style> <Setter Property="Layoutable.Margin" Value="4" />
<Style Selector="Grid > TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="4" />
</Style> </Style>
</StackPanel.Styles> </StackPanel.Styles>
<ScrollViewer HorizontalScrollBarVisibility="Auto"> <ScrollViewer HorizontalScrollBarVisibility="Auto">
@@ -156,69 +153,89 @@
</HeaderedContentControl> </HeaderedContentControl>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
<WrapPanel>
<Label Theme="{StaticResource TagLabel}">Label</Label> <HeaderedContentControl
<Label Classes="Large" Theme="{StaticResource TagLabel}">Large Label</Label> Margin="16"
<Label Classes="Circle" Theme="{StaticResource TagLabel}">Circle Label</Label> Header="Theme: TagLabel"
<Label Classes="Large Circle" Theme="{StaticResource TagLabel}">Large Circle Label</Label> Theme="{DynamicResource GroupBox}">
</WrapPanel> <ScrollViewer HorizontalScrollBarVisibility="Auto">
<WrapPanel> <StackPanel Orientation="Horizontal" Spacing="8">
<Label Classes="Red" Theme="{StaticResource TagLabel}">Red</Label> <StackPanel Spacing="4">
<Label Classes="Pink" Theme="{StaticResource TagLabel}">Pink</Label> <Label Classes="Red" Theme="{StaticResource TagLabel}">Red</Label>
<Label Classes="Purple" Theme="{StaticResource TagLabel}">Purple</Label> <Label Classes="Pink" Theme="{StaticResource TagLabel}">Pink</Label>
<Label Classes="Violet" Theme="{StaticResource TagLabel}">Violet</Label> <Label Classes="Purple" Theme="{StaticResource TagLabel}">Purple</Label>
<Label Classes="Indigo" Theme="{StaticResource TagLabel}">Indigo</Label> <Label Classes="Violet" Theme="{StaticResource TagLabel}">Violet</Label>
<Label Classes="Blue" Theme="{StaticResource TagLabel}">Blue</Label> <Label Classes="Indigo" Theme="{StaticResource TagLabel}">Indigo</Label>
<Label Classes="LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label> <Label Classes="Blue" Theme="{StaticResource TagLabel}">Blue</Label>
<Label Classes="Cyan" Theme="{StaticResource TagLabel}">Cyan</Label> <Label Classes="LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label>
<Label Classes="Teal" Theme="{StaticResource TagLabel}">Teal</Label> <Label Classes="Cyan" Theme="{StaticResource TagLabel}">Cyan</Label>
<Label Classes="Green" Theme="{StaticResource TagLabel}">Green</Label> <Label Classes="Teal" Theme="{StaticResource TagLabel}">Teal</Label>
<Label Classes="LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label> <Label Classes="Green" Theme="{StaticResource TagLabel}">Green</Label>
<Label Classes="Lime" Theme="{StaticResource TagLabel}">Lime</Label> <Label Classes="LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label>
<Label Classes="Yellow" Theme="{StaticResource TagLabel}">Yellow</Label> <Label Classes="Lime" Theme="{StaticResource TagLabel}">Lime</Label>
<Label Classes="Amber" Theme="{StaticResource TagLabel}">Amber</Label> <Label Classes="Yellow" Theme="{StaticResource TagLabel}">Yellow</Label>
<Label Classes="Orange" Theme="{StaticResource TagLabel}">Orange</Label> <Label Classes="Amber" Theme="{StaticResource TagLabel}">Amber</Label>
<Label Classes="Grey" Theme="{StaticResource TagLabel}">Grey</Label> <Label Classes="Orange" Theme="{StaticResource TagLabel}">Orange</Label>
<Label Classes="White" Theme="{StaticResource TagLabel}">White</Label> <Label Classes="Grey" Theme="{StaticResource TagLabel}">Grey</Label>
</WrapPanel> <Label Classes="White" Theme="{StaticResource TagLabel}">White</Label>
<WrapPanel> </StackPanel>
<Label Classes="Ghost Red" Theme="{StaticResource TagLabel}">Red</Label> <StackPanel Spacing="4">
<Label Classes="Ghost Pink" Theme="{StaticResource TagLabel}">Pink</Label> <Label Classes="Ghost Red" Theme="{StaticResource TagLabel}">Red</Label>
<Label Classes="Ghost Purple" Theme="{StaticResource TagLabel}">Purple</Label> <Label Classes="Ghost Pink" Theme="{StaticResource TagLabel}">Pink</Label>
<Label Classes="Ghost Violet" Theme="{StaticResource TagLabel}">Violet</Label> <Label Classes="Ghost Purple" Theme="{StaticResource TagLabel}">Purple</Label>
<Label Classes="Ghost Indigo" Theme="{StaticResource TagLabel}">Indigo</Label> <Label Classes="Ghost Violet" Theme="{StaticResource TagLabel}">Violet</Label>
<Label Classes="Ghost Blue" Theme="{StaticResource TagLabel}">Blue</Label> <Label Classes="Ghost Indigo" Theme="{StaticResource TagLabel}">Indigo</Label>
<Label Classes="Ghost LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label> <Label Classes="Ghost Blue" Theme="{StaticResource TagLabel}">Blue</Label>
<Label Classes="Ghost Cyan" Theme="{StaticResource TagLabel}">Cyan</Label> <Label Classes="Ghost LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label>
<Label Classes="Ghost Teal" Theme="{StaticResource TagLabel}">Teal</Label> <Label Classes="Ghost Cyan" Theme="{StaticResource TagLabel}">Cyan</Label>
<Label Classes="Ghost Green" Theme="{StaticResource TagLabel}">Green</Label> <Label Classes="Ghost Teal" Theme="{StaticResource TagLabel}">Teal</Label>
<Label Classes="Ghost LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label> <Label Classes="Ghost Green" Theme="{StaticResource TagLabel}">Green</Label>
<Label Classes="Ghost Lime" Theme="{StaticResource TagLabel}">Lime</Label> <Label Classes="Ghost LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label>
<Label Classes="Ghost Yellow" Theme="{StaticResource TagLabel}">Yellow</Label> <Label Classes="Ghost Lime" Theme="{StaticResource TagLabel}">Lime</Label>
<Label Classes="Ghost Amber" Theme="{StaticResource TagLabel}">Amber</Label> <Label Classes="Ghost Yellow" Theme="{StaticResource TagLabel}">Yellow</Label>
<Label Classes="Ghost Orange" Theme="{StaticResource TagLabel}">Orange</Label> <Label Classes="Ghost Amber" Theme="{StaticResource TagLabel}">Amber</Label>
<Label Classes="Ghost Grey" Theme="{StaticResource TagLabel}">Grey</Label> <Label Classes="Ghost Orange" Theme="{StaticResource TagLabel}">Orange</Label>
<Label Classes="Ghost White" Theme="{StaticResource TagLabel}">White</Label> <Label Classes="Ghost Grey" Theme="{StaticResource TagLabel}">Grey</Label>
</WrapPanel> <Label Classes="Ghost White" Theme="{StaticResource TagLabel}">White</Label>
<WrapPanel> </StackPanel>
<Label Classes="Solid Red" Theme="{StaticResource TagLabel}">Red</Label> <StackPanel Spacing="4">
<Label Classes="Solid Pink" Theme="{StaticResource TagLabel}">Pink</Label> <Label Classes="Solid Red" Theme="{StaticResource TagLabel}">Red</Label>
<Label Classes="Solid Purple" Theme="{StaticResource TagLabel}">Purple</Label> <Label Classes="Solid Pink" Theme="{StaticResource TagLabel}">Pink</Label>
<Label Classes="Solid Violet" Theme="{StaticResource TagLabel}">Violet</Label> <Label Classes="Solid Purple" Theme="{StaticResource TagLabel}">Purple</Label>
<Label Classes="Solid Indigo" Theme="{StaticResource TagLabel}">Indigo</Label> <Label Classes="Solid Violet" Theme="{StaticResource TagLabel}">Violet</Label>
<Label Classes="Solid Blue" Theme="{StaticResource TagLabel}">Blue</Label> <Label Classes="Solid Indigo" Theme="{StaticResource TagLabel}">Indigo</Label>
<Label Classes="Solid LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label> <Label Classes="Solid Blue" Theme="{StaticResource TagLabel}">Blue</Label>
<Label Classes="Solid Cyan" Theme="{StaticResource TagLabel}">Cyan</Label> <Label Classes="Solid LightBlue" Theme="{StaticResource TagLabel}">LightBlue</Label>
<Label Classes="Solid Teal" Theme="{StaticResource TagLabel}">Teal</Label> <Label Classes="Solid Cyan" Theme="{StaticResource TagLabel}">Cyan</Label>
<Label Classes="Solid Green" Theme="{StaticResource TagLabel}">Green</Label> <Label Classes="Solid Teal" Theme="{StaticResource TagLabel}">Teal</Label>
<Label Classes="Solid LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label> <Label Classes="Solid Green" Theme="{StaticResource TagLabel}">Green</Label>
<Label Classes="Solid Lime" Theme="{StaticResource TagLabel}">Lime</Label> <Label Classes="Solid LightGreen" Theme="{StaticResource TagLabel}">LightGreen</Label>
<Label Classes="Solid Yellow" Theme="{StaticResource TagLabel}">Yellow</Label> <Label Classes="Solid Lime" Theme="{StaticResource TagLabel}">Lime</Label>
<Label Classes="Solid Amber" Theme="{StaticResource TagLabel}">Amber</Label> <Label Classes="Solid Yellow" Theme="{StaticResource TagLabel}">Yellow</Label>
<Label Classes="Solid Orange" Theme="{StaticResource TagLabel}">Orange</Label> <Label Classes="Solid Amber" Theme="{StaticResource TagLabel}">Amber</Label>
<Label Classes="Solid Grey" Theme="{StaticResource TagLabel}">Grey</Label> <Label Classes="Solid Orange" Theme="{StaticResource TagLabel}">Orange</Label>
<Label Classes="Solid White" Theme="{StaticResource TagLabel}">White</Label> <Label Classes="Solid Grey" Theme="{StaticResource TagLabel}">Grey</Label>
</WrapPanel> <Label Classes="Solid White" Theme="{StaticResource TagLabel}">White</Label>
</StackPanel>
<StackPanel Spacing="4">
<Label Classes="Colorful Gradient" Theme="{DynamicResource TagLabel}">Light</Label>
<Label Classes="Colorful Gradient Ghost" Theme="{DynamicResource TagLabel}">Ghost</Label>
<Label Classes="Colorful Gradient Solid" Theme="{DynamicResource TagLabel}">Solid</Label>
</StackPanel>
<StackPanel Spacing="4">
<Label Classes="Colorful" Theme="{DynamicResource TagLabel}">Light</Label>
<Label Classes="Colorful Ghost" Theme="{DynamicResource TagLabel}">Ghost</Label>
<Label Classes="Colorful Solid" Theme="{DynamicResource TagLabel}">Solid</Label>
</StackPanel>
<StackPanel Spacing="4">
<Label Theme="{StaticResource TagLabel}">Label</Label>
<Label Classes="Large" Theme="{StaticResource TagLabel}">Large Label</Label>
<Label Classes="Circle" Theme="{StaticResource TagLabel}">Circle Label</Label>
<Label Classes="Large Circle" Theme="{StaticResource TagLabel}">Large Circle Label</Label>
</StackPanel>
</StackPanel>
</ScrollViewer>
</HeaderedContentControl>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
</UserControl> </UserControl>

View File

@@ -1,80 +0,0 @@
<UserControl
x:Class="Semi.Avalonia.Demo.Pages.RepeatButtonDemo"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<StackPanel HorizontalAlignment="Left" Spacing="20">
<TextBlock>Light (Default)</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<RepeatButton Classes="Primary">Primary</RepeatButton>
<RepeatButton Classes="Secondary">Secondary</RepeatButton>
<RepeatButton Classes="Tertiary">Tertiary</RepeatButton>
<RepeatButton Classes="Success">Success</RepeatButton>
<RepeatButton Classes="Warning">Warning</RepeatButton>
<RepeatButton Classes="Danger">Danger</RepeatButton>
<RepeatButton Classes="Danger" IsEnabled="False">Disabled</RepeatButton>
</StackPanel>
<TextBlock>Solid</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<RepeatButton Classes="Primary" Theme="{DynamicResource SolidRepeatButton}">Primary</RepeatButton>
<RepeatButton Classes="Secondary" Theme="{DynamicResource SolidRepeatButton}">Secondary</RepeatButton>
<RepeatButton Classes="Tertiary" Theme="{DynamicResource SolidRepeatButton}">Tertiary</RepeatButton>
<RepeatButton Classes="Success" Theme="{DynamicResource SolidRepeatButton}">Success</RepeatButton>
<RepeatButton Classes="Warning" Theme="{DynamicResource SolidRepeatButton}">Warning</RepeatButton>
<RepeatButton Classes="Danger" Theme="{DynamicResource SolidRepeatButton}">Danger</RepeatButton>
<RepeatButton
Classes="Danger"
IsEnabled="False"
Theme="{DynamicResource SolidRepeatButton}">
Disabled
</RepeatButton>
</StackPanel>
<TextBlock>Outline</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<RepeatButton Classes="Primary" Theme="{DynamicResource OutlineRepeatButton}">Primary</RepeatButton>
<RepeatButton Classes="Secondary" Theme="{DynamicResource OutlineRepeatButton}">Secondary</RepeatButton>
<RepeatButton Classes="Tertiary" Theme="{DynamicResource OutlineRepeatButton}">Tertiary</RepeatButton>
<RepeatButton Classes="Success" Theme="{DynamicResource OutlineRepeatButton}">Success</RepeatButton>
<RepeatButton Classes="Warning" Theme="{DynamicResource OutlineRepeatButton}">Warning</RepeatButton>
<RepeatButton Classes="Danger" Theme="{DynamicResource OutlineRepeatButton}">Danger</RepeatButton>
<RepeatButton
Classes="Danger"
IsEnabled="False"
Theme="{DynamicResource OutlineRepeatButton}">
Disabled
</RepeatButton>
</StackPanel>
<TextBlock>Borderless</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<RepeatButton Classes="Primary" Theme="{DynamicResource BorderlessRepeatButton}">Primary</RepeatButton>
<RepeatButton Classes="Secondary" Theme="{DynamicResource BorderlessRepeatButton}">Secondary</RepeatButton>
<RepeatButton Classes="Tertiary" Theme="{DynamicResource BorderlessRepeatButton}">Tertiary</RepeatButton>
<RepeatButton Classes="Success" Theme="{DynamicResource BorderlessRepeatButton}">Success</RepeatButton>
<RepeatButton Classes="Warning" Theme="{DynamicResource BorderlessRepeatButton}">Warning</RepeatButton>
<RepeatButton Classes="Danger" Theme="{DynamicResource BorderlessRepeatButton}">Danger</RepeatButton>
<RepeatButton
Classes="Danger"
IsEnabled="False"
Theme="{DynamicResource BorderlessRepeatButton}">
Disabled
</RepeatButton>
</StackPanel>
<TextBlock>Disabled</TextBlock>
<StackPanel Background="{DynamicResource SemiColorBackground1}" Orientation="Horizontal" Spacing="20">
<Button IsEnabled="False">Light</Button>
<Button IsEnabled="False" Theme="{DynamicResource SolidButton}">Solid</Button>
<Button IsEnabled="False" Theme="{DynamicResource OutlineButton}">Outline</Button>
<Button IsEnabled="False" Theme="{DynamicResource BorderlessButton}">Borderless</Button>
</StackPanel>
<TextBlock>Size Classes</TextBlock>
<StackPanel Orientation="Horizontal" Spacing="20">
<RepeatButton Classes="Small">Small</RepeatButton>
<RepeatButton>Default</RepeatButton>
<RepeatButton Classes="Large">Large</RepeatButton>
</StackPanel>
</StackPanel>
</UserControl>

View File

@@ -1,11 +0,0 @@
using Avalonia.Controls;
namespace Semi.Avalonia.Demo.Pages;
public partial class RepeatButtonDemo : UserControl
{
public RepeatButtonDemo()
{
InitializeComponent();
}
}

View File

@@ -22,6 +22,15 @@
TickFrequency="10" TickFrequency="10"
TickPlacement="Outside" TickPlacement="Outside"
Value="0" /> Value="0" />
<Slider
Value="0"
Minimum="0"
Maximum="100"
TickPlacement="BottomRight"
IsSnapToTickEnabled="True"
IsDirectionReversed="True"
Ticks="0,20,25,40,75,100"
Width="300" />
<Slider <Slider
Width="300" Width="300"
Classes="ToolTip" Classes="ToolTip"

View File

@@ -1,98 +0,0 @@
<UserControl
x:Class="Semi.Avalonia.Demo.Pages.ToggleButtonDemo"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<StackPanel Spacing="20">
<TextBlock Text="Toggle Button (Default)" />
<StackPanel Orientation="Horizontal" Spacing="20">
<ToggleButton>Default</ToggleButton>
<ToggleButton Classes="Primary">Primary</ToggleButton>
<ToggleButton Classes="Secondary">Secondary</ToggleButton>
<ToggleButton Classes="Tertiary">Tertiary</ToggleButton>
<ToggleButton Classes="Success">Success</ToggleButton>
<ToggleButton Classes="Warning">Warning</ToggleButton>
<ToggleButton Classes="Danger">Danger</ToggleButton>
<ToggleButton Classes="Danger" IsEnabled="False">Disabled</ToggleButton>
</StackPanel>
<TextBlock Text="Toggle Button Checked State" />
<StackPanel Orientation="Horizontal" Spacing="20">
<ToggleButton IsChecked="True">Default</ToggleButton>
<ToggleButton Classes="Primary" IsChecked="True">Primary</ToggleButton>
<ToggleButton Classes="Secondary" IsChecked="True">Secondary</ToggleButton>
<ToggleButton Classes="Tertiary" IsChecked="True">Tertiary</ToggleButton>
<ToggleButton Classes="Success" IsChecked="True">Success</ToggleButton>
<ToggleButton Classes="Warning" IsChecked="True">Warning</ToggleButton>
<ToggleButton Classes="Danger" IsChecked="True">Danger</ToggleButton>
<ToggleButton
Classes="Danger"
IsChecked="True"
IsEnabled="False">
Disabled
</ToggleButton>
</StackPanel>
<TextBlock Text="Toggle Button Three State" />
<StackPanel Orientation="Horizontal" Spacing="20">
<ToggleButton IsChecked="{x:Null}" IsThreeState="True">Default</ToggleButton>
<ToggleButton
Classes="Primary"
IsChecked="{x:Null}"
IsThreeState="True">
Primary
</ToggleButton>
<ToggleButton
Classes="Secondary"
IsChecked="{x:Null}"
IsThreeState="True">
Secondary
</ToggleButton>
<ToggleButton
Classes="Tertiary"
IsChecked="{x:Null}"
IsThreeState="True">
Tertiary
</ToggleButton>
<ToggleButton
Classes="Success"
IsChecked="{x:Null}"
IsThreeState="True">
Success
</ToggleButton>
<ToggleButton
Classes="Warning"
IsChecked="{x:Null}"
IsThreeState="True">
Warning
</ToggleButton>
<ToggleButton
Classes="Danger"
IsChecked="{x:Null}"
IsThreeState="True">
Danger
</ToggleButton>
<ToggleButton
Classes="Danger"
IsChecked="{x:Null}"
IsEnabled="False"
IsThreeState="True">
Disabled
</ToggleButton>
</StackPanel>
<TextBlock Text="Toggle Button Disabled State" />
<StackPanel Background="{DynamicResource SemiColorBackground1}" Orientation="Horizontal" Spacing="20">
<ToggleButton IsThreeState="True" IsEnabled="False">Default</ToggleButton>
<ToggleButton IsThreeState="True" IsEnabled="False" IsChecked="True">Checked</ToggleButton>
<ToggleButton IsThreeState="True" IsEnabled="False" IsChecked="{x:Null}">Indeterminate</ToggleButton>
</StackPanel>
<TextBlock Text="Toggle Button Size" />
<StackPanel Orientation="Horizontal" Spacing="20">
<ToggleButton Classes="Small" IsThreeState="True">Small</ToggleButton>
<ToggleButton IsThreeState="True">Default</ToggleButton>
<ToggleButton Classes="Large" IsThreeState="True">Large</ToggleButton>
</StackPanel>
</StackPanel>
</UserControl>

View File

@@ -1,11 +0,0 @@
using Avalonia.Controls;
namespace Semi.Avalonia.Demo.Pages;
public partial class ToggleButtonDemo : UserControl
{
public ToggleButtonDemo()
{
InitializeComponent();
}
}

View File

@@ -11,16 +11,16 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia"/>
<PackageReference Include="Avalonia.Controls.ColorPicker" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Controls.ColorPicker"/>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="$(DataGridVersion)"/> <PackageReference Include="Avalonia.Controls.DataGrid"/>
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.--> <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)"> <PackageReference Include="Avalonia.Diagnostics">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets> <IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets> <PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" Version="$(CommunityToolkitVersion)"/> <PackageReference Include="CommunityToolkit.Mvvm"/>
<PackageReference Include="Irihi.Avalonia.Shared" Version="0.3.0" /> <PackageReference Include="Irihi.Avalonia.Shared"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -12,13 +12,16 @@ public partial class IconDemoViewModel : ObservableObject
{ {
private readonly Icons _resources = new(); private readonly Icons _resources = new();
private readonly Dictionary<string, IconItem> _filledIcons = new(); private readonly Dictionary<string, IconItem> _fillIcons = new();
private readonly Dictionary<string, IconItem> _strokedIcons = new(); private readonly Dictionary<string, IconItem> _strokedIcons = new();
private readonly Dictionary<string, IconItem> _aiIcons = new();
[ObservableProperty] private string? _searchText; [ObservableProperty] private string? _searchText;
public ObservableCollection<IconItem> FilteredFilledIcons { get; set; } = []; public ObservableCollection<IconTab> IconTabs { get; } = [];
public ObservableCollection<IconItem> FilteredFillIcons { get; set; } = [];
public ObservableCollection<IconItem> FilteredStrokedIcons { get; set; } = []; public ObservableCollection<IconItem> FilteredStrokedIcons { get; set; } = [];
public ObservableCollection<IconItem> FilteredAIIcons { get; set; } = [];
public void InitializeResources() public void InitializeResources()
{ {
@@ -36,24 +39,31 @@ public partial class IconDemoViewModel : ObservableObject
Geometry = geometry Geometry = geometry
}; };
if (resourceKey.EndsWith("Stroked", StringComparison.InvariantCultureIgnoreCase)) if (resourceKey.StartsWith("SemiIconAI"))
_aiIcons[resourceKey] = icon;
else if (resourceKey.EndsWith("Stroked", StringComparison.InvariantCultureIgnoreCase))
_strokedIcons[resourceKey] = icon; _strokedIcons[resourceKey] = icon;
else else
_filledIcons[resourceKey] = icon; _fillIcons[resourceKey] = icon;
} }
} }
OnSearchTextChanged(string.Empty); OnSearchTextChanged(string.Empty);
IconTabs.Clear();
IconTabs.Add(new IconTab("Fill Icons", FilteredFillIcons));
IconTabs.Add(new IconTab("Stroked Icons", FilteredStrokedIcons));
IconTabs.Add(new IconTab("AI Icons", FilteredAIIcons));
} }
partial void OnSearchTextChanged(string? value) partial void OnSearchTextChanged(string? value)
{ {
var search = string.IsNullOrWhiteSpace(value) ? string.Empty : value.Trim(); var search = string.IsNullOrWhiteSpace(value) ? string.Empty : value.Trim();
FilteredFilledIcons.Clear(); FilteredFillIcons.Clear();
foreach (var pair in _filledIcons.Where(kv => kv.Key.Contains(search, StringComparison.InvariantCultureIgnoreCase))) foreach (var pair in _fillIcons.Where(kv => kv.Key.Contains(search, StringComparison.InvariantCultureIgnoreCase)))
{ {
FilteredFilledIcons.Add(pair.Value); FilteredFillIcons.Add(pair.Value);
} }
FilteredStrokedIcons.Clear(); FilteredStrokedIcons.Clear();
@@ -61,9 +71,21 @@ public partial class IconDemoViewModel : ObservableObject
{ {
FilteredStrokedIcons.Add(pair.Value); FilteredStrokedIcons.Add(pair.Value);
} }
FilteredAIIcons.Clear();
foreach (var pair in _aiIcons.Where(kv => kv.Key.Contains(search, StringComparison.InvariantCultureIgnoreCase)))
{
FilteredAIIcons.Add(pair.Value);
}
} }
} }
public class IconTab(string header, ObservableCollection<IconItem> iconItems)
{
public string Header { get; set; } = header;
public ObservableCollection<IconItem> IconItems { get; set; } = iconItems;
}
public class IconItem public class IconItem
{ {
public string? ResourceKey { get; set; } public string? ResourceKey { get; set; }

View File

@@ -19,7 +19,7 @@ public partial class PaletteDemoViewModel : ObservableObject
"Red", "Pink", "Purple", "Violet", "Indigo", "Red", "Pink", "Purple", "Violet", "Indigo",
"Blue", "LightBlue", "Cyan", "Teal", "Green", "Blue", "LightBlue", "Cyan", "Teal", "Green",
"LightGreen", "Lime", "Yellow", "Amber", "Orange", "LightGreen", "Lime", "Yellow", "Amber", "Orange",
"Grey" "Grey", "AIPurple"
]; ];
private readonly IResourceDictionary? _lightResourceDictionary; private readonly IResourceDictionary? _lightResourceDictionary;
@@ -61,6 +61,38 @@ public partial class PaletteDemoViewModel : ObservableObject
s.Initialize(_darkResourceDictionary, color, false); s.Initialize(_darkResourceDictionary, color, false);
DarkLists.Add(s); DarkLists.Add(s);
} }
InitializeAIGeneralGradients();
}
private void InitializeAIGeneralGradients()
{
if (_lightResourceDictionary is null || _darkResourceDictionary is null) return;
ColorListViewModel lightGradients = new ColorListViewModel { SeriesName = "AI General" };
ColorListViewModel darkGradients = new ColorListViewModel { SeriesName = "AI General" };
for (var i = 0; i < 10; i++)
{
var key = $"SemiAIGeneral{i}";
if (_lightResourceDictionary.TryGetValue(key, out var lightValue) && lightValue is IBrush lightBrush)
{
var name = $"AI General {i}";
var item = new ColorItemViewModel(name, lightBrush, key, true, i);
lightGradients.Color.Add(item);
}
if (_darkResourceDictionary.TryGetValue(key, out var darkValue) && darkValue is IBrush darkBrush)
{
var name = $"AI General {i}";
var item = new ColorItemViewModel(name, darkBrush, key, false, i);
darkGradients.Color.Add(item);
}
}
LightLists.Add(lightGradients);
DarkLists.Add(darkGradients);
} }
private void InitializeFunctionalColors() private void InitializeFunctionalColors()
@@ -79,6 +111,12 @@ public partial class PaletteDemoViewModel : ObservableObject
"Warning", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.WarningTokens)); "Warning", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.WarningTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel( FunctionalColors.Add(new FunctionalColorGroupViewModel(
"Danger", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.DangerTokens)); "Danger", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.DangerTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel(
"AI General", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.AIGeneralTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel(
"AI Purple", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.AIPurpleTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel(
"AI Background", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.AIBackgroundTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel( FunctionalColors.Add(new FunctionalColorGroupViewModel(
"Text", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.TextTokens)); "Text", _lightResourceDictionary, _darkResourceDictionary, ColorTokens.TextTokens));
FunctionalColors.Add(new FunctionalColorGroupViewModel( FunctionalColors.Add(new FunctionalColorGroupViewModel(
@@ -142,14 +180,24 @@ public partial class ColorItemViewModel : ObservableObject
<StaticResource x:Key="" ResourceKey="{ResourceKey}" /> <StaticResource x:Key="" ResourceKey="{ResourceKey}" />
"""; """;
public ColorItemViewModel(string colorDisplayName, ISolidColorBrush brush, string resourceKey, bool light, public ColorItemViewModel(string colorDisplayName, IBrush brush, string resourceKey, bool light,
int index) int index)
{ {
ColorDisplayName = colorDisplayName; ColorDisplayName = colorDisplayName;
Brush = brush; Brush = brush;
ResourceKey = resourceKey; ResourceKey = resourceKey;
var hex = ColorConverter.ToHex.Convert(brush.Color, typeof(string), false, CultureInfo.InvariantCulture);
Hex = hex as string ?? string.Empty; // Only calculate hex for solid color brushes
if (brush is ISolidColorBrush solidBrush)
{
var hex = ColorConverter.ToHex.Convert(solidBrush.Color, typeof(string), false, CultureInfo.InvariantCulture);
Hex = hex as string ?? string.Empty;
}
else
{
Hex = string.Empty;
}
if ((light && index < 5) || (!light && index >= 5)) if ((light && index < 5) || (!light && index >= 5))
{ {
TextBrush = Brushes.Black; TextBrush = Brushes.Black;
@@ -175,7 +223,7 @@ public partial class FunctionalColorGroupViewModel : ObservableObject
{ {
if (lightDictionary?.TryGetValue(key, out var lightValue) ?? false) if (lightDictionary?.TryGetValue(key, out var lightValue) ?? false)
{ {
if (lightValue is ISolidColorBrush lightBrush) if (lightValue is IBrush lightBrush)
{ {
LightColors.Add(new ColorItemViewModel(name, lightBrush, key, true, 0)); LightColors.Add(new ColorItemViewModel(name, lightBrush, key, true, 0));
} }
@@ -183,7 +231,7 @@ public partial class FunctionalColorGroupViewModel : ObservableObject
if (darkDictionary?.TryGetValue(key, out var darkValue) ?? false) if (darkDictionary?.TryGetValue(key, out var darkValue) ?? false)
{ {
if (darkValue is ISolidColorBrush darkBrush) if (darkValue is IBrush darkBrush)
{ {
DarkColors.Add(new ColorItemViewModel(name, darkBrush, key, true, 0)); DarkColors.Add(new ColorItemViewModel(name, darkBrush, key, true, 0));
} }

View File

@@ -161,15 +161,9 @@
<TabItem Header="Button"> <TabItem Header="Button">
<pages:ButtonDemo /> <pages:ButtonDemo />
</TabItem> </TabItem>
<TabItem Header="RepeatButton">
<pages:RepeatButtonDemo />
</TabItem>
<TabItem Header="HyperlinkButton"> <TabItem Header="HyperlinkButton">
<pages:HyperlinkButtonDemo /> <pages:HyperlinkButtonDemo />
</TabItem> </TabItem>
<TabItem Header="ToggleButton">
<pages:ToggleButtonDemo />
</TabItem>
<TabItem Header="CheckBox"> <TabItem Header="CheckBox">
<pages:CheckBoxDemo /> <pages:CheckBoxDemo />
</TabItem> </TabItem>

View File

@@ -90,97 +90,97 @@ public partial class MainViewModel : ObservableObject
{ {
Header = "简体中文", Header = "简体中文",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("zh-cn") CommandParameter = new CultureInfo("zh-CN")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "English", Header = "English",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("en-us") CommandParameter = new CultureInfo("en-US")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "日本語", Header = "日本語",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("ja-jp") CommandParameter = new CultureInfo("ja-JP")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "한국어", Header = "한국어",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("ko-kr") CommandParameter = new CultureInfo("ko-KR")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "English (UK)", Header = "English (UK)",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("en-gb") CommandParameter = new CultureInfo("en-GB")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Italiano", Header = "Italiano",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("it-it") CommandParameter = new CultureInfo("it-IT")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Italiano (Switzerland)", Header = "Italiano (Switzerland)",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("it-ch") CommandParameter = new CultureInfo("it-CH")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Nederlands", Header = "Nederlands",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("nl-nl") CommandParameter = new CultureInfo("nl-NL")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Nederlands (Belgium)", Header = "Nederlands (Belgium)",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("nl-be") CommandParameter = new CultureInfo("nl-BE")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Українська", Header = "Українська",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("uk-ua") CommandParameter = new CultureInfo("uk-UA")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Русский", Header = "Русский",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("ru-ru") CommandParameter = new CultureInfo("ru-RU")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "繁體中文", Header = "繁體中文",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("zh-tw") CommandParameter = new CultureInfo("zh-TW")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Deutsch", Header = "Deutsch",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("de-de") CommandParameter = new CultureInfo("de-DE")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Español", Header = "Español",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("es-es") CommandParameter = new CultureInfo("es-ES")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Polski", Header = "Polski",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("pl-pl") CommandParameter = new CultureInfo("pl-PL")
}, },
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Français", Header = "Français",
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new CultureInfo("fr-fr") CommandParameter = new CultureInfo("fr-FR")
}, },
] ]
} }

View File

@@ -1,17 +1,22 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>11.3.7</Version> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>
<PropertyGroup>
<Authors>IRIHI Technology Co., Ltd.</Authors> <Authors>IRIHI Technology Co., Ltd.</Authors>
<Description>Avalonia Theme inspired by Semi Design.</Description> <Description>Avalonia Theme inspired by Semi Design.</Description>
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl> <RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>irihi.png</PackageIcon> <PackageIcon>irihi.png</PackageIcon>
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl> <PackageReadmeFile>README.md</PackageReadmeFile>
<AvaloniaVersion>11.3.7</AvaloniaVersion>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -0,0 +1,13 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<AvaloniaVersion>11.3.7</AvaloniaVersion>
<DataGridVersion>11.3.7</DataGridVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Avalonia" Version="$(AvaloniaVersion)"/>
<PackageVersion Include="Avalonia.Controls.ColorPicker" Version="$(AvaloniaVersion)"/>
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="$(DataGridVersion)"/>
<PackageVersion Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1"/>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,50 @@
# Semi.Avalonia.ColorPicker
[![Semi Avalonia ColorPicker](https://img.shields.io/nuget/v/Semi.Avalonia.ColorPicker.svg?color=red&style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.ColorPicker/)
[![Semi Avalonia ColorPicker](https://img.shields.io/nuget/dt/Semi.Avalonia.ColorPicker.svg?style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.ColorPicker/)
Avalonia ColorPicker Theme inspired by Semi Design
This package provides Semi Design theming for the Avalonia ColorPicker control.
## Installation
```bash
dotnet add package Semi.Avalonia.ColorPicker
```
## Prerequisites
This package requires the main Semi.Avalonia theme to be installed:
```bash
dotnet add package Semi.Avalonia
```
## Usage
Include the ColorPicker theme in your application:
```xaml
<Application
...
xmlns:semi="https://irihi.tech/semi">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
<semi:ColorPickerSemiTheme />
</Application.Styles>
</Application>
```
## Resources
- [Documentation](https://docs.irihi.tech/semi/)
- [Repository](https://github.com/irihitech/Semi.Avalonia)
- [Online Demo](https://irihitech.github.io/Semi.Avalonia/)
- [Download Demo](https://github.com/irihitech/Semi.Avalonia/releases)
## Credits
[Semi Design](https://semi.design/)
[Avalonia](https://github.com/AvaloniaUI/Avalonia)

View File

@@ -1,18 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="../Package.props"/>
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
<Version>11.3.7.3</Version>
<PackageReleaseNotes>Update to Semi.Avalonia.ColorPicker 11.3.7.3</PackageReleaseNotes>
<Title>Semi.Avalonia.ColorPicker</Title> <Title>Semi.Avalonia.ColorPicker</Title>
<PackageReleaseNotes>Update to Semi.Avalonia.ColorPicker 11.3.7</PackageReleaseNotes>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Controls.ColorPicker" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Controls.ColorPicker"/>
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -86,7 +86,7 @@
<Rectangle <Rectangle
Name="PART_RightGridLine" Name="PART_RightGridLine"
Grid.Column="1" Grid.Column="1"
Width="1" Width="{DynamicResource DataGridGridLineThickness}"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
Fill="{DynamicResource DataGridLineBrush}" /> Fill="{DynamicResource DataGridLineBrush}" />
</Grid> </Grid>
@@ -145,7 +145,7 @@
<Rectangle <Rectangle
Name="VerticalSeparator" Name="VerticalSeparator"
Grid.Column="1" Grid.Column="1"
Width="1" Width="{DynamicResource DataGridGridLineThickness}"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
Fill="{TemplateBinding SeparatorBrush}" Fill="{TemplateBinding SeparatorBrush}"
IsVisible="{TemplateBinding AreSeparatorsVisible}" /> IsVisible="{TemplateBinding AreSeparatorsVisible}" />
@@ -209,7 +209,7 @@
<Rectangle <Rectangle
Grid.Row="0" Grid.Row="0"
Grid.RowSpan="2" Grid.RowSpan="2"
Height="1" Height="{DynamicResource DataGridGridLineThickness}"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
Fill="{DynamicResource DataGridLineBrush}" Fill="{DynamicResource DataGridLineBrush}"
StrokeThickness="1" /> StrokeThickness="1" />
@@ -250,7 +250,7 @@
Grid.Row="2" Grid.Row="2"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="2"
Height="1" Height="{DynamicResource DataGridGridLineThickness}"
Margin="1,0,1,0" Margin="1,0,1,0"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
Fill="{TemplateBinding SeparatorBrush}" Fill="{TemplateBinding SeparatorBrush}"
@@ -315,7 +315,7 @@
Name="PART_BottomGridLine" Name="PART_BottomGridLine"
Grid.Row="2" Grid.Row="2"
Grid.Column="1" Grid.Column="1"
Height="1" Height="{DynamicResource DataGridGridLineThickness}"
HorizontalAlignment="Stretch" /> HorizontalAlignment="Stretch" />
</DataGridFrozenGrid> </DataGridFrozenGrid>
</Border> </Border>
@@ -452,7 +452,7 @@
Grid.Row="1" Grid.Row="1"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="5" Grid.ColumnSpan="5"
Height="1" Height="{DynamicResource DataGridGridLineThickness}"
Fill="{DynamicResource DataGridLineBrush}" /> Fill="{DynamicResource DataGridLineBrush}" />
</DataGridFrozenGrid> </DataGridFrozenGrid>
</ControlTemplate> </ControlTemplate>
@@ -498,7 +498,7 @@
Grid.Row="0" Grid.Row="0"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="3" Grid.ColumnSpan="3"
Height="1" Height="{DynamicResource DataGridGridLineThickness}"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
Fill="{DynamicResource DataGridLineBrush}" /> Fill="{DynamicResource DataGridLineBrush}" />

View File

@@ -0,0 +1,50 @@
# Semi.Avalonia.DataGrid
[![Semi Avalonia DataGrid](https://img.shields.io/nuget/v/Semi.Avalonia.DataGrid.svg?color=red&style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.DataGrid/)
[![Semi Avalonia DataGrid](https://img.shields.io/nuget/dt/Semi.Avalonia.DataGrid.svg?style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.DataGrid/)
Avalonia DataGrid Theme inspired by Semi Design
This package provides Semi Design theming for the Avalonia DataGrid control.
## Installation
```bash
dotnet add package Semi.Avalonia.DataGrid
```
## Prerequisites
This package requires the main Semi.Avalonia theme to be installed:
```bash
dotnet add package Semi.Avalonia
```
## Usage
Include the DataGrid theme in your application:
```xaml
<Application
...
xmlns:semi="https://irihi.tech/semi">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
<semi:DataGridSemiTheme />
</Application.Styles>
</Application>
```
## Resources
- [Documentation](https://docs.irihi.tech/semi/)
- [Repository](https://github.com/irihitech/Semi.Avalonia)
- [Online Demo](https://irihitech.github.io/Semi.Avalonia/)
- [Download Demo](https://github.com/irihitech/Semi.Avalonia/releases)
## Credits
[Semi Design](https://semi.design/)
[Avalonia](https://github.com/AvaloniaUI/Avalonia)

View File

@@ -2,27 +2,14 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
<Nullable>enable</Nullable> <Version>11.3.7.3</Version>
<LangVersion>latest</LangVersion> <PackageReleaseNotes>Update to Semi.Avalonia.DataGrid 11.3.7.3</PackageReleaseNotes>
<Version>11.3.7</Version>
<PackageReleaseNotes>Update to Semi.Avalonia.DataGrid 11.3.7</PackageReleaseNotes>
<Authors>IRIHI Technology Co., Ltd.</Authors>
<Description>Avalonia Theme inspired by Semi Design.</Description>
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>irihi.png</PackageIcon>
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl>
<Title>Semi.Avalonia.DataGrid</Title> <Title>Semi.Avalonia.DataGrid</Title>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.7"/> <PackageReference Include="Avalonia.Controls.DataGrid"/>
<None Include="..\..\irihi.png" Pack="true" PackagePath="\" Link="Properties\irihi.png"/> <None Include="README.md" Pack="true" PackagePath="\"/>
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" Link="Properties\LICENSE"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -19,4 +19,7 @@
<StaticResource x:Key="DataGridRowGroupHeaderVisualStrokeThickness" ResourceKey="SemiBorderSpacingControl" /> <StaticResource x:Key="DataGridRowGroupHeaderVisualStrokeThickness" ResourceKey="SemiBorderSpacingControl" />
<StaticResource x:Key="DataGridDisabledCornerRadius" ResourceKey="SemiBorderRadiusSmall" /> <StaticResource x:Key="DataGridDisabledCornerRadius" ResourceKey="SemiBorderRadiusSmall" />
<!-- Grid line thickness -->
<x:Double x:Key="DataGridGridLineThickness">1</x:Double>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -1,10 +1,10 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StaticResource x:Key="TreeDataGridGridLinesBrush" ResourceKey="SemiColorBorder" /> <StaticResource x:Key="TreeDataGridGridLinesBrush" ResourceKey="SemiColorBorder" />
<StaticResource x:Key="TreeDataGridHeaderPointerOverBackground" ResourceKey="SemiColorFill1" /> <StaticResource x:Key="TreeDataGridHeaderPointeroverBackground" ResourceKey="SemiColorFill1" />
<StaticResource x:Key="TreeDataGridHeaderPressedBackground" ResourceKey="SemiColorFill2" /> <StaticResource x:Key="TreeDataGridHeaderPressedBackground" ResourceKey="SemiColorFill2" />
<SolidColorBrush x:Key="TreeDataGridHeaderPointerOverBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="TreeDataGridHeaderPointeroverBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="TreeDataGridHeaderPressedBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="TreeDataGridHeaderPressedBorderBrush" Color="Transparent" />
<StaticResource x:Key="TreeDataGridHeaderPointerOverForeground" ResourceKey="SemiColorText1" /> <StaticResource x:Key="TreeDataGridHeaderPointeroverForeground" ResourceKey="SemiColorText1" />
<StaticResource x:Key="TreeDataGridHeaderPressedForeground" ResourceKey="SemiColorText0" /> <StaticResource x:Key="TreeDataGridHeaderPressedForeground" ResourceKey="SemiColorText0" />
<StaticResource x:Key="TreeDataGridCellSelectedBackground" ResourceKey="SemiColorPrimaryLight" /> <StaticResource x:Key="TreeDataGridCellSelectedBackground" ResourceKey="SemiColorPrimaryLight" />
<StaticResource x:Key="TreeDataGridColumnHeaderForeground" ResourceKey="SemiColorText2" /> <StaticResource x:Key="TreeDataGridColumnHeaderForeground" ResourceKey="SemiColorText2" />

View File

@@ -1,10 +1,10 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StaticResource x:Key="TreeDataGridGridLinesBrush" ResourceKey="SemiColorBorder" /> <StaticResource x:Key="TreeDataGridGridLinesBrush" ResourceKey="SemiColorBorder" />
<StaticResource x:Key="TreeDataGridHeaderPointerOverBackground" ResourceKey="SemiColorFill1" /> <StaticResource x:Key="TreeDataGridHeaderPointeroverBackground" ResourceKey="SemiColorFill1" />
<StaticResource x:Key="TreeDataGridHeaderPressedBackground" ResourceKey="SemiColorFill2" /> <StaticResource x:Key="TreeDataGridHeaderPressedBackground" ResourceKey="SemiColorFill2" />
<SolidColorBrush x:Key="TreeDataGridHeaderPointerOverBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="TreeDataGridHeaderPointeroverBorderBrush" Color="Transparent" />
<SolidColorBrush x:Key="TreeDataGridHeaderPressedBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="TreeDataGridHeaderPressedBorderBrush" Color="Transparent" />
<StaticResource x:Key="TreeDataGridHeaderPointerOverForeground" ResourceKey="SemiColorText1" /> <StaticResource x:Key="TreeDataGridHeaderPointeroverForeground" ResourceKey="SemiColorText1" />
<StaticResource x:Key="TreeDataGridHeaderPressedForeground" ResourceKey="SemiColorText0" /> <StaticResource x:Key="TreeDataGridHeaderPressedForeground" ResourceKey="SemiColorText0" />
<StaticResource x:Key="TreeDataGridCellSelectedBackground" ResourceKey="SemiColorPrimaryLight" /> <StaticResource x:Key="TreeDataGridCellSelectedBackground" ResourceKey="SemiColorPrimaryLight" />
<StaticResource x:Key="TreeDataGridColumnHeaderForeground" ResourceKey="SemiColorText2" /> <StaticResource x:Key="TreeDataGridColumnHeaderForeground" ResourceKey="SemiColorText2" />

View File

@@ -0,0 +1,50 @@
# Semi.Avalonia.TreeDataGrid
[![Semi Avalonia TreeDataGrid](https://img.shields.io/nuget/v/Semi.Avalonia.TreeDataGrid.svg?color=red&style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.TreeDataGrid/)
[![Semi Avalonia TreeDataGrid](https://img.shields.io/nuget/dt/Semi.Avalonia.TreeDataGrid.svg?style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia.TreeDataGrid/)
Avalonia TreeDataGrid Theme inspired by Semi Design
This package provides Semi Design theming for the Avalonia TreeDataGrid control.
## Installation
```bash
dotnet add package Semi.Avalonia.TreeDataGrid
```
## Prerequisites
This package requires the main Semi.Avalonia theme to be installed:
```bash
dotnet add package Semi.Avalonia
```
## Usage
Include the TreeDataGrid theme in your application:
```xaml
<Application
...
xmlns:semi="https://irihi.tech/semi">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
<semi:TreeDataGridSemiTheme />
</Application.Styles>
</Application>
```
## Resources
- [Documentation](https://docs.irihi.tech/semi/)
- [Repository](https://github.com/irihitech/Semi.Avalonia)
- [Online Demo](https://irihitech.github.io/Semi.Avalonia/)
- [Download Demo](https://github.com/irihitech/Semi.Avalonia/releases)
## Credits
[Semi Design](https://semi.design/)
[Avalonia](https://github.com/AvaloniaUI/Avalonia)

View File

@@ -2,26 +2,14 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable> <Version>11.1.1.1</Version>
<LangVersion>latest</LangVersion> <PackageReleaseNotes>Update to Semi.Avalonia.TreeDataGrid 11.1.1.1</PackageReleaseNotes>
<Version>11.0.10.4</Version> <Title>Semi.Avalonia.TreeDataGrid</Title>
<PackageReleaseNotes>Update to 11.0.10.4</PackageReleaseNotes>
<Authors>IRIHI Technology Co., Ltd.</Authors>
<Description>Avalonia Theme inspired by Semi Design.</Description>
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>irihi.png</PackageIcon>
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.0.10"/> <PackageReference Include="Avalonia.Controls.TreeDataGrid"/>
<None Include="..\..\irihi.png" Pack="true" PackagePath="\" Link="Properties\irihi.png"/> <None Include="README.md" Pack="true" PackagePath="\"/>
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" Link="Properties\LICENSE"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -113,9 +113,9 @@
</Setter> </Setter>
<Style Selector="^:pointerover /template/ Border#DataGridBorder"> <Style Selector="^:pointerover /template/ Border#DataGridBorder">
<Setter Property="Background" Value="{DynamicResource TreeDataGridHeaderPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource TreeDataGridHeaderPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource TreeDataGridHeaderPointerOverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource TreeDataGridHeaderPointeroverBorderBrush}" />
<Setter Property="TextBlock.Foreground" Value="{DynamicResource TreeDataGridHeaderPointerOverForeground}" /> <Setter Property="TextBlock.Foreground" Value="{DynamicResource TreeDataGridHeaderPointeroverForeground}" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#DataGridBorder"> <Style Selector="^:pressed /template/ Border#DataGridBorder">

View File

@@ -19,6 +19,7 @@
Name="PART_TextBox" Name="PART_TextBox"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
MinHeight="{TemplateBinding MinHeight}" MinHeight="{TemplateBinding MinHeight}"
ClearSelectionOnLostFocus="{TemplateBinding ClearSelectionOnLostFocus}"
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}" DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}"
Theme="{DynamicResource NonErrorTextBox}" Theme="{DynamicResource NonErrorTextBox}"
InnerLeftContent="{TemplateBinding InnerLeftContent}" InnerLeftContent="{TemplateBinding InnerLeftContent}"
@@ -62,6 +63,7 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
MinHeight="0" MinHeight="0"
Classes="Bordered" Classes="Bordered"
ClearSelectionOnLostFocus="{TemplateBinding ClearSelectionOnLostFocus}"
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}" DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}"
Watermark="{TemplateBinding Watermark}" /> Watermark="{TemplateBinding Watermark}" />
<Popup <Popup
@@ -85,7 +87,8 @@
Foreground="{TemplateBinding Foreground}" Foreground="{TemplateBinding Foreground}"
ItemTemplate="{TemplateBinding ItemTemplate}" ItemTemplate="{TemplateBinding ItemTemplate}"
ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto" /> ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.IsScrollChainingEnabled="False" />
</Border> </Border>
</Popup> </Popup>
</Panel> </Panel>

View File

@@ -1,11 +1,97 @@
<ResourceDictionary <ResourceDictionary
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Button Theme Key: Light, Solid, Outline, Borderless; Default is Light --> <!-- Theme: Light, Solid, Outline, Borderless; Default is Light -->
<!-- Button Default Classes: Primary, Secondary, Tertiary, Success, Warning, Danger; Default is Primary --> <!-- Color Classes: Primary, Secondary, Tertiary, Success, Warning, Danger; Default is Primary -->
<!-- State: default, pointerover, pressed, disabled --> <!-- Size Classes: Large, Small -->
<!-- AI style Classes: Colorful -->
<!-- PseudoClasses: :pointerover, :pressed, :disabled -->
<Design.PreviewWith>
<StackPanel Margin="16" Spacing="16">
<WrapPanel ItemSpacing="16">
<Button Content="Default" />
<Button Content="Primary" Classes="Primary" />
<Button Content="Secondary" Classes="Secondary" />
<Button Content="Tertiary" Classes="Tertiary" />
<Button Content="Success" Classes="Success" />
<Button Content="Warning" Classes="Warning" />
<Button Content="Danger" Classes="Danger" />
<Button Content="Disabled" Classes="Danger" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Theme="{DynamicResource SolidButton}" />
<Button Content="Primary" Classes="Primary" Theme="{DynamicResource SolidButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{DynamicResource SolidButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource SolidButton}" />
<Button Content="Success" Classes="Success" Theme="{DynamicResource SolidButton}" />
<Button Content="Warning" Classes="Warning" Theme="{DynamicResource SolidButton}" />
<Button Content="Danger" Classes="Danger" Theme="{DynamicResource SolidButton}" />
<Button Content="Disabled" Classes="Danger" Theme="{DynamicResource SolidButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Theme="{DynamicResource OutlineButton}" />
<Button Content="Primary" Classes="Primary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Success" Classes="Success" Theme="{DynamicResource OutlineButton}" />
<Button Content="Warning" Classes="Warning" Theme="{DynamicResource OutlineButton}" />
<Button Content="Danger" Classes="Danger" Theme="{DynamicResource OutlineButton}" />
<Button Content="Disabled" Classes="Danger" Theme="{DynamicResource OutlineButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Primary" Classes="Primary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Secondary" Classes="Secondary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Success" Classes="Success" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Warning" Classes="Warning" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Danger" Classes="Danger" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Disabled" Classes="Danger" Theme="{DynamicResource BorderlessButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Classes="Colorful" />
<Button Content="Primary" Classes="Colorful Primary" />
<Button Content="Secondary" Classes="Colorful Secondary" />
<Button Content="Tertiary" Classes="Colorful Tertiary" />
<Button Content="Success" Classes="Colorful Success" />
<Button Content="Warning" Classes="Colorful Warning" />
<Button Content="Danger" Classes="Colorful Danger" />
<Button Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Classes="Colorful" Theme="{DynamicResource SolidButton}" />
<Button Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource SolidButton}" />
<Button Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource SolidButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource SolidButton}" />
<Button Content="Success" Classes="Colorful Success" Theme="{DynamicResource SolidButton}" />
<Button Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource SolidButton}" />
<Button Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource SolidButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource SolidButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Classes="Colorful" Theme="{DynamicResource OutlineButton}" />
<Button Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource OutlineButton}" />
<Button Content="Success" Classes="Colorful Success" Theme="{DynamicResource OutlineButton}" />
<Button Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource OutlineButton}" />
<Button Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource OutlineButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource OutlineButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<Button Content="Default" Classes="Colorful" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Success" Classes="Colorful Success" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource BorderlessButton}" />
<Button Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource BorderlessButton}" IsEnabled="False" />
</WrapPanel>
</StackPanel>
</Design.PreviewWith>
<!-- Button Light -->
<ControlTheme x:Key="{x:Type Button}" TargetType="Button"> <ControlTheme x:Key="{x:Type Button}" TargetType="Button">
<Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" /> <Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" />
<Setter Property="MinHeight" Value="{DynamicResource ButtonDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource ButtonDefaultHeight}" />
@@ -37,7 +123,6 @@
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
RecognizesAccessKey="True"
TextElement.FontSize="{TemplateBinding FontSize}" TextElement.FontSize="{TemplateBinding FontSize}"
TextElement.FontWeight="{TemplateBinding FontWeight}" TextElement.FontWeight="{TemplateBinding FontWeight}"
UseLayoutRounding="False" /> UseLayoutRounding="False" />
@@ -47,6 +132,7 @@
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{TemplateBinding Background}" /> <Setter Property="Background" Value="{TemplateBinding Background}" />
<Setter Property="BorderBrush" Value="{TemplateBinding BorderBrush}" /> <Setter Property="BorderBrush" Value="{TemplateBinding BorderBrush}" />
<Setter Property="RecognizesAccessKey" Value="True" />
</Style> </Style>
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
@@ -68,6 +154,12 @@
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDangerForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDangerForeground}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultColorfulPrimaryForeground}" />
</Style>
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" />
@@ -209,6 +301,39 @@
</Style> </Style>
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
</Style>
</Style>
<Style Selector="^.Tertiary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidColorfulTertiaryForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
</Style>
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" />
@@ -241,6 +366,14 @@
<Style Selector="^.Danger /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^.Danger /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonOutlineColorfulPrimaryForeground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineColorfulPrimaryBorderBrush}" />
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />
@@ -261,7 +394,6 @@
<Setter Property="Background" Value="{DynamicResource ButtonBorderlessBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonBorderlessBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderlessBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorderlessBorderBrush}" />
</Style> </Style>
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="InnerIconButton" TargetType="Button"> <ControlTheme x:Key="InnerIconButton" TargetType="Button">

View File

@@ -171,7 +171,7 @@
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#Background"> <Style Selector="^:pointerover /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#Background"> <Style Selector="^:pressed /template/ Border#Background">
@@ -213,8 +213,8 @@
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#Background"> <Style Selector="^:pointerover /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointerOverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointeroverBorderBrush}" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#Background"> <Style Selector="^:pressed /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" />

View File

@@ -50,21 +50,33 @@
Data="{StaticResource WindowExpandGlyph}" Data="{StaticResource WindowExpandGlyph}"
Foreground="{Binding $parent[Button].Foreground}" /> Foreground="{Binding $parent[Button].Foreground}" />
</Button> </Button>
<Button Name="PART_MinimizeButton" Theme="{StaticResource CaptionButton}"> <Button
Name="PART_MinimizeButton"
Theme="{StaticResource CaptionButton}"
AutomationProperties.Name="Minimize"
Win32Properties.NonClientHitTestResult="MinButton">
<PathIcon <PathIcon
Name="PART_MinimizeButtonIcon" Name="PART_MinimizeButtonIcon"
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"
Data="{StaticResource WindowMinimizeGlyph}" Data="{StaticResource WindowMinimizeGlyph}"
Foreground="{Binding $parent[Button].Foreground}" /> Foreground="{Binding $parent[Button].Foreground}" />
</Button> </Button>
<Button Name="PART_RestoreButton" Theme="{StaticResource CaptionButton}"> <Button
Name="PART_RestoreButton"
Theme="{StaticResource CaptionButton}"
AutomationProperties.Name="Maximize"
Win32Properties.NonClientHitTestResult="MaxButton">
<PathIcon <PathIcon
Name="PART_RestoreButtonIcon" Name="PART_RestoreButtonIcon"
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"
Data="{StaticResource WindowMaximizeGlyph}" Data="{StaticResource WindowMaximizeGlyph}"
Foreground="{Binding $parent[Button].Foreground}" /> Foreground="{Binding $parent[Button].Foreground}" />
</Button> </Button>
<Button Name="PART_CloseButton" Theme="{StaticResource CaptionButton}"> <Button
Name="PART_CloseButton"
Theme="{StaticResource CaptionButton}"
AutomationProperties.Name="Close"
Win32Properties.NonClientHitTestResult="Close">
<PathIcon <PathIcon
Name="PART_CloseButtonIcon" Name="PART_CloseButtonIcon"
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"

View File

@@ -62,13 +62,16 @@
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
RecognizesAccessKey="True"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</Grid> </Grid>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^:pointerover /template/ Border#NormalRectangle"> <Style Selector="^:pointerover /template/ Border#NormalRectangle">
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxPointeroverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource CheckBoxPointeroverBorderBrush}" />
@@ -219,13 +222,16 @@
Foreground="{TemplateBinding Foreground}" Foreground="{TemplateBinding Foreground}"
IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
RecognizesAccessKey="True"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</Grid> </Grid>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^:pointerover"> <Style Selector="^:pointerover">
<Style Selector="^ /template/ Border#NormalRectangle"> <Style Selector="^ /template/ Border#NormalRectangle">
@@ -337,12 +343,15 @@
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
RecognizesAccessKey="True"
UseLayoutRounding="False" UseLayoutRounding="False"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource CheckBoxCardPointeroverBackground}" /> <Setter Property="Background" Value="{DynamicResource CheckBoxCardPointeroverBackground}" />

View File

@@ -217,7 +217,7 @@
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsBackground}" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#Background"> <Style Selector="^:pointerover /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#Background"> <Style Selector="^:pressed /template/ Border#Background">
@@ -273,8 +273,8 @@
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#Background"> <Style Selector="^:pointerover /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointerOverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointeroverBorderBrush}" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#Background"> <Style Selector="^:pressed /template/ Border#Background">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" />

View File

@@ -2,9 +2,10 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith> <Design.PreviewWith>
<Border Padding="20"> <StackPanel Margin="20">
<DatePickerPresenter /> <DatePickerPresenter />
</Border> <DatePicker Width="500" />
</StackPanel>
</Design.PreviewWith> </Design.PreviewWith>
<ControlTheme x:Key="{x:Type DatePickerPresenter}" TargetType="DatePickerPresenter"> <ControlTheme x:Key="{x:Type DatePickerPresenter}" TargetType="DatePickerPresenter">
<Setter Property="Width" Value="296" /> <Setter Property="Width" Value="296" />
@@ -141,6 +142,7 @@
<Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="MinHeight" Value="{DynamicResource DateTimePickerButtonDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource DateTimePickerButtonDefaultHeight}" />
<Setter Property="MinWidth" Value="296" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="DatePicker"> <ControlTemplate TargetType="DatePicker">
<DataValidationErrors> <DataValidationErrors>
@@ -152,8 +154,8 @@
Name="PART_FlyoutButton" Name="PART_FlyoutButton"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="2"
Width="298" MinWidth="{TemplateBinding MinWidth}"
MinWidth="298" MaxWidth="{TemplateBinding MaxWidth}"
MinHeight="{TemplateBinding MinHeight}" MinHeight="{TemplateBinding MinHeight}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
@@ -239,7 +241,8 @@
Margin="0,0,9,0" Margin="0,0,9,0"
Command="{Binding $parent[DatePicker].Clear}" Command="{Binding $parent[DatePicker].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
IsVisible="False" /> IsVisible="False"
Focusable="False" />
</Grid> </Grid>
</DataValidationErrors> </DataValidationErrors>
</ControlTemplate> </ControlTemplate>

View File

@@ -37,7 +37,7 @@
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">

View File

@@ -2,16 +2,90 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith> <Design.PreviewWith>
<StackPanel Margin="20"> <StackPanel Margin="16" Spacing="16">
<DropDownButton Content="Button" /> <WrapPanel ItemSpacing="16">
<DropDownButton Classes="Primary" Content="Button" /> <DropDownButton Content="Default" />
<DropDownButton Classes="Secondary" Content="Button" /> <DropDownButton Content="Primary" Classes="Primary" />
<DropDownButton IsEnabled="False" Classes="Tertiary" Content="Button" /> <DropDownButton Content="Secondary" Classes="Secondary" />
<DropDownButton Theme="{DynamicResource SolidDropDownButton}" Classes="Success" Content="Button" /> <DropDownButton Content="Tertiary" Classes="Tertiary" />
<DropDownButton Theme="{DynamicResource OutlineDropDownButton}" Classes="Warning" Content="Button" /> <DropDownButton Content="Success" Classes="Success" />
<DropDownButton Theme="{DynamicResource BorderlessDropDownButton}" Classes="Danger" Content="Button" /> <DropDownButton Content="Warning" Classes="Warning" />
<DropDownButton Content="Danger" Classes="Danger" />
<DropDownButton Content="Disabled" Classes="Danger" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Primary" Classes="Primary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Secondary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Success" Classes="Success" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Warning" Classes="Warning" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Danger" Classes="Danger" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Danger" Theme="{DynamicResource SolidDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Primary" Classes="Primary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Secondary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Success" Classes="Success" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Warning" Classes="Warning" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Danger" Classes="Danger" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Danger" Theme="{DynamicResource OutlineDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Primary" Classes="Primary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Secondary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Tertiary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Success" Classes="Success" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Warning" Classes="Warning" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Danger" Classes="Danger" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Danger" Theme="{DynamicResource BorderlessDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Classes="Colorful" />
<DropDownButton Content="Primary" Classes="Colorful Primary" />
<DropDownButton Content="Secondary" Classes="Colorful Secondary" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" />
<DropDownButton Content="Success" Classes="Colorful Success" />
<DropDownButton Content="Warning" Classes="Colorful Warning" />
<DropDownButton Content="Danger" Classes="Colorful Danger" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Classes="Colorful" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Success" Classes="Colorful Success" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource SolidDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource SolidDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Classes="Colorful" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Success" Classes="Colorful Success" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource OutlineDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource OutlineDropDownButton}" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16">
<DropDownButton Content="Default" Classes="Colorful" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Primary" Classes="Colorful Primary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Secondary" Classes="Colorful Secondary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Tertiary" Classes="Colorful Tertiary" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Success" Classes="Colorful Success" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Warning" Classes="Colorful Warning" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Danger" Classes="Colorful Danger" Theme="{DynamicResource BorderlessDropDownButton}" />
<DropDownButton Content="Disabled" Classes="Colorful Primary" Theme="{DynamicResource BorderlessDropDownButton}" IsEnabled="False" />
</WrapPanel>
</StackPanel> </StackPanel>
</Design.PreviewWith> </Design.PreviewWith>
<ControlTheme x:Key="{x:Type DropDownButton}" TargetType="DropDownButton"> <ControlTheme x:Key="{x:Type DropDownButton}" TargetType="DropDownButton">
<Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" /> <Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" />
<Setter Property="MinHeight" Value="{DynamicResource ButtonDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource ButtonDefaultHeight}" />
@@ -36,13 +110,12 @@
Padding="{TemplateBinding Padding}" Padding="{TemplateBinding Padding}"
BorderThickness="{TemplateBinding BorderThickness}" BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"> CornerRadius="{TemplateBinding CornerRadius}">
<DockPanel> <DockPanel HorizontalSpacing="8">
<PathIcon <PathIcon
Name="DropDownGlyph" Name="DropDownGlyph"
DockPanel.Dock="Right" DockPanel.Dock="Right"
Theme="{DynamicResource InnerPathIcon}" Theme="{DynamicResource InnerPathIcon}"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Margin="8,0,0,0"
Data="{DynamicResource DropDownButtonIconGlyph}" Data="{DynamicResource DropDownButtonIconGlyph}"
Foreground="{Binding #PART_ContentPresenter.Foreground}" Foreground="{Binding #PART_ContentPresenter.Foreground}"
IsHitTestVisible="False" IsHitTestVisible="False"
@@ -53,8 +126,7 @@
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
Foreground="{TemplateBinding Foreground}" Foreground="{TemplateBinding Foreground}" />
RecognizesAccessKey="True" />
</DockPanel> </DockPanel>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
@@ -65,6 +137,10 @@
<Setter Property="BorderBrush" Value="{TemplateBinding BorderBrush}" /> <Setter Property="BorderBrush" Value="{TemplateBinding BorderBrush}" />
</Style> </Style>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultPrimaryForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultPrimaryForeground}" />
</Style> </Style>
@@ -84,6 +160,12 @@
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDangerForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDangerForeground}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultColorfulPrimaryForeground}" />
</Style>
</Style>
<Style Selector="^:pointerover /template/ Border#PART_Background"> <Style Selector="^:pointerover /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonDefaultPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonDefaultPointeroverBorderBrush}" />
@@ -243,6 +325,40 @@
</Style> </Style>
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary">
<Style Selector="^ /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
</Style>
</Style>
<Style Selector="^.Tertiary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidColorfulTertiaryForeground}" />
</Style>
<Style Selector="^ /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_Background">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
</Style>
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" />
</Style> </Style>
@@ -277,6 +393,16 @@
<Style Selector="^.Danger /template/ Border#PART_Background"> <Style Selector="^.Danger /template/ Border#PART_Background">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonOutlineColorfulPrimaryForeground}" />
</Style>
<Style Selector="^ /template/ Border#PART_Background">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineColorfulPrimaryBorderBrush}" />
</Style>
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
</Style> </Style>

View File

@@ -41,7 +41,6 @@
Grid.Row="0" Grid.Row="0"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplate="{TemplateBinding HeaderTemplate}"
RecognizesAccessKey="True"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
@@ -53,7 +52,6 @@
Grid.Row="1" Grid.Row="1"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
RecognizesAccessKey="True"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
@@ -64,6 +62,14 @@
</Border> </Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="GroupBox" TargetType="HeaderedContentControl"> <ControlTheme x:Key="GroupBox" TargetType="HeaderedContentControl">

View File

@@ -39,12 +39,15 @@
Name="PART_ContentPresenter" Name="PART_ContentPresenter"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
RecognizesAccessKey="True" />
</DockPanel> </DockPanel>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:pointerover"> <Style Selector="^:pointerover">
<Setter Property="Foreground" Value="{DynamicResource HyperlinkButtonPointeroverForeground}" /> <Setter Property="Foreground" Value="{DynamicResource HyperlinkButtonPointeroverForeground}" />
</Style> </Style>

View File

@@ -75,7 +75,16 @@
<Label Classes="Solid Grey" Theme="{StaticResource TagLabel}">Grey</Label> <Label Classes="Solid Grey" Theme="{StaticResource TagLabel}">Grey</Label>
<Label Classes="Solid White" Theme="{StaticResource TagLabel}">White</Label> <Label Classes="Solid White" Theme="{StaticResource TagLabel}">White</Label>
</WrapPanel> </WrapPanel>
<WrapPanel>
<Label Classes="Colorful Gradient" Theme="{DynamicResource TagLabel}">AI</Label>
<Label Classes="Colorful Gradient Ghost" Theme="{DynamicResource TagLabel}">AI</Label>
<Label Classes="Colorful Gradient Solid" Theme="{DynamicResource TagLabel}">AI</Label>
</WrapPanel>
<WrapPanel>
<Label Classes="Colorful" Theme="{DynamicResource TagLabel}">AI</Label>
<Label Classes="Colorful Ghost" Theme="{DynamicResource TagLabel}">AI</Label>
<Label Classes="Colorful Solid" Theme="{DynamicResource TagLabel}">AI</Label>
</WrapPanel>
</StackPanel> </StackPanel>
</Design.PreviewWith> </Design.PreviewWith>
<ControlTheme x:Key="{x:Type Label}" TargetType="Label"> <ControlTheme x:Key="{x:Type Label}" TargetType="Label">
@@ -94,10 +103,12 @@
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}" />
RecognizesAccessKey="True" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^.Secondary"> <Style Selector="^.Secondary">
<Setter Property="Foreground" Value="{DynamicResource TextBlockSecondaryForeground}" /> <Setter Property="Foreground" Value="{DynamicResource TextBlockSecondaryForeground}" />
</Style> </Style>
@@ -162,6 +173,7 @@
<!-- Shape: Square,Circle. Default is Square --> <!-- Shape: Square,Circle. Default is Square -->
<!-- Size: Small, Large. Default is Small --> <!-- Size: Small, Large. Default is Small -->
<!-- Color: Red, Pink, Purple, Violet, Indigo, Blue, LightBlue, Cyan, Teal, Green, LightGreen, Lime, Yellow, Amber, Orange, Grey, White. Default is Grey --> <!-- Color: Red, Pink, Purple, Violet, Indigo, Blue, LightBlue, Cyan, Teal, Green, LightGreen, Lime, Yellow, Amber, Orange, Grey, White. Default is Grey -->
<!-- AI style: Colorful, Gradient -->
<ControlTheme x:Key="TagLabel" TargetType="Label"> <ControlTheme x:Key="TagLabel" TargetType="Label">
<Setter Property="BorderThickness" Value="{DynamicResource LabelTagBorderThickness}" /> <Setter Property="BorderThickness" Value="{DynamicResource LabelTagBorderThickness}" />
<Setter Property="MinHeight" Value="{DynamicResource LabelTagSmallHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource LabelTagSmallHeight}" />
@@ -187,10 +199,12 @@
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
RecognizesAccessKey="True"
UseLayoutRounding="True" /> UseLayoutRounding="True" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^.Large"> <Style Selector="^.Large">
<Setter Property="Padding" Value="{DynamicResource LabelTagLargePadding}" /> <Setter Property="Padding" Value="{DynamicResource LabelTagLargePadding}" />
<Setter Property="MinHeight" Value="{DynamicResource LabelTagLargeHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource LabelTagLargeHeight}" />
@@ -395,5 +409,34 @@
<Setter Property="BorderBrush" Value="{DynamicResource LabelTagSolidWhiteBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource LabelTagSolidWhiteBorderBrush}" />
<Setter Property="Background" Value="{DynamicResource LabelTagSolidWhiteBackground}" /> <Setter Property="Background" Value="{DynamicResource LabelTagSolidWhiteBackground}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Setter Property="FontWeight" Value="{StaticResource LabelTagColorfulFontWeight}" />
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulLightForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulLightBackground}" />
<Style Selector="^.Ghost">
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulGhostForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulGhostBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource LabelTagColorfulGhostBorderBrush}" />
</Style>
<Style Selector="^.Solid">
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulSolidForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulSolidBackground}" />
</Style>
<Style Selector="^.Gradient">
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulGradientLightForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulGradientLightBackground}" />
<Style Selector="^.Ghost">
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulGradientGhostForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulGradientGhostBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource LabelTagColorfulGradientGhostBorderBrush}" />
</Style>
<Style Selector="^.Solid">
<Setter Property="Foreground" Value="{DynamicResource LabelTagColorfulGradientSolidForeground}" />
<Setter Property="Background" Value="{DynamicResource LabelTagColorfulGradientSolidBackground}" />
</Style>
</Style>
</Style>
</ControlTheme> </ControlTheme>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -7,6 +7,7 @@
<ControlTheme x:Key="MenuScrollViewer" TargetType="ScrollViewer"> <ControlTheme x:Key="MenuScrollViewer" TargetType="ScrollViewer">
<Setter Property="Background" Value="Transparent" /> <Setter Property="Background" Value="Transparent" />
<Setter Property="ScrollViewer.IsScrollChainingEnabled" Value="False" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="ScrollViewer"> <ControlTemplate TargetType="ScrollViewer">
<DockPanel> <DockPanel>
@@ -166,8 +167,7 @@
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Center" VerticalAlignment="Center"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplate="{TemplateBinding HeaderTemplate}" />
RecognizesAccessKey="True" />
<TextBlock <TextBlock
Name="PART_InputGestureText" Name="PART_InputGestureText"
Grid.Column="3" Grid.Column="3"
@@ -222,6 +222,10 @@
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:icon /template/ Viewbox#PART_IconPresenter"> <Style Selector="^:icon /template/ Viewbox#PART_IconPresenter">
<Setter Property="IsVisible" Value="True" /> <Setter Property="IsVisible" Value="True" />
</Style> </Style>
@@ -346,7 +350,7 @@
BorderThickness="{DynamicResource MenuFlyoutBorderThickness}" BorderThickness="{DynamicResource MenuFlyoutBorderThickness}"
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}" BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
CornerRadius="{DynamicResource MenuFlyoutCornerRadius}"> CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
<ScrollViewer Theme="{StaticResource MenuScrollViewer}" CornerRadius="{DynamicResource MenuFlyoutCornerRadius}"> <ScrollViewer Theme="{StaticResource MenuScrollViewer}" IsScrollChainingEnabled="False" CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
<ItemsPresenter <ItemsPresenter
Name="PART_ItemsPresenter" Name="PART_ItemsPresenter"
Grid.IsSharedSizeScope="True" Grid.IsSharedSizeScope="True"

View File

@@ -57,7 +57,7 @@
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pointerover /template/ TextBox#PART_TextBox"> <Style Selector="^:pointerover /template/ TextBox#PART_TextBox">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ TextBox#PART_TextBox"> <Style Selector="^:pressed /template/ TextBox#PART_TextBox">

View File

@@ -7,6 +7,7 @@
<Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" /> <Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" />
<Setter Property="FontWeight" Value="{DynamicResource DefaultFontWeight}" /> <Setter Property="FontWeight" Value="{DynamicResource DefaultFontWeight}" />
<Setter Property="FontFamily" Value="{DynamicResource DefaultFontFamily}" /> <Setter Property="FontFamily" Value="{DynamicResource DefaultFontFamily}" />
<Setter Property="Inline.TextDecorations" Value="" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="PopupRoot"> <ControlTemplate TargetType="PopupRoot">
<LayoutTransformControl LayoutTransform="{TemplateBinding Transform}"> <LayoutTransformControl LayoutTransform="{TemplateBinding Transform}">
@@ -29,6 +30,10 @@
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type OverlayPopupHost}" TargetType="OverlayPopupHost"> <ControlTheme x:Key="{x:Type OverlayPopupHost}" TargetType="OverlayPopupHost">
<Setter Property="FontSize" Value="{DynamicResource DefaultFontSize}" />
<Setter Property="FontWeight" Value="{DynamicResource DefaultFontWeight}" />
<Setter Property="FontFamily" Value="{DynamicResource DefaultFontFamily}" />
<Setter Property="Inline.TextDecorations" Value="" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate> <ControlTemplate>
<LayoutTransformControl LayoutTransform="{TemplateBinding Transform}"> <LayoutTransformControl LayoutTransform="{TemplateBinding Transform}">

View File

@@ -64,13 +64,16 @@
Foreground="{TemplateBinding Foreground}" Foreground="{TemplateBinding Foreground}"
IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
RecognizesAccessKey="True"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</Grid> </Grid>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^ /template/ Ellipse#CheckGlyph"> <Style Selector="^ /template/ Ellipse#CheckGlyph">
<Setter Property="IsVisible" Value="False" /> <Setter Property="IsVisible" Value="False" />
@@ -162,12 +165,14 @@
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
RecognizesAccessKey="True"
TextElement.FontSize="{TemplateBinding FontSize}" TextElement.FontSize="{TemplateBinding FontSize}"
TextElement.FontWeight="{TemplateBinding FontWeight}" TextElement.FontWeight="{TemplateBinding FontWeight}"
UseLayoutRounding="False" /> UseLayoutRounding="False" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Setter Property="Background" Value="Transparent" /> <Setter Property="Background" Value="Transparent" />
<Style Selector="^:pointerover"> <Style Selector="^:pointerover">
@@ -249,7 +254,6 @@
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
Foreground="{TemplateBinding Foreground}" Foreground="{TemplateBinding Foreground}"
IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{TemplateBinding Content,Converter={x:Static ObjectConverters.IsNotNull}}"
RecognizesAccessKey="True"
FontSize="{TemplateBinding FontSize}" FontSize="{TemplateBinding FontSize}"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</Grid> </Grid>
@@ -257,6 +261,10 @@
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^ /template/ Ellipse#CheckGlyph"> <Style Selector="^ /template/ Ellipse#CheckGlyph">
<Setter Property="IsVisible" Value="False" /> <Setter Property="IsVisible" Value="False" />
@@ -369,11 +377,13 @@
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
RecognizesAccessKey="True"
UseLayoutRounding="False" UseLayoutRounding="False"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:unchecked"> <Style Selector="^:unchecked">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BorderBrush" Value="{DynamicResource RadioButtonCardDefaultBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource RadioButtonCardDefaultBorderBrush}" />

View File

@@ -54,6 +54,7 @@
MinWidth="{StaticResource ScrollBarThickness}" MinWidth="{StaticResource ScrollBarThickness}"
VerticalAlignment="Center" VerticalAlignment="Center"
Focusable="False" Focusable="False"
AutomationProperties.Name="Column left"
Theme="{StaticResource ScrollBarRepeatButton}"> Theme="{StaticResource ScrollBarRepeatButton}">
<PathIcon <PathIcon
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"
@@ -76,6 +77,7 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="0" CornerRadius="0"
Focusable="False" Focusable="False"
AutomationProperties.Name="Page left"
Theme="{StaticResource ScrollBarRepeatButton}" /> Theme="{StaticResource ScrollBarRepeatButton}" />
</Track.DecreaseButton> </Track.DecreaseButton>
<Track.IncreaseButton> <Track.IncreaseButton>
@@ -86,9 +88,10 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="0" CornerRadius="0"
Focusable="False" Focusable="False"
AutomationProperties.Name="Page right"
Theme="{StaticResource ScrollBarRepeatButton}" /> Theme="{StaticResource ScrollBarRepeatButton}" />
</Track.IncreaseButton> </Track.IncreaseButton>
<Thumb Name="thumb" /> <Thumb Name="thumb" AutomationProperties.Name="Position" />
</Track> </Track>
<RepeatButton <RepeatButton
Name="PART_LineDownButton" Name="PART_LineDownButton"
@@ -97,6 +100,7 @@
VerticalAlignment="Center" VerticalAlignment="Center"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Focusable="False" Focusable="False"
AutomationProperties.Name="Column right"
Theme="{DynamicResource ScrollBarRepeatButton}"> Theme="{DynamicResource ScrollBarRepeatButton}">
<PathIcon <PathIcon
Theme="{DynamicResource InnerPathIcon}" Theme="{DynamicResource InnerPathIcon}"
@@ -124,6 +128,7 @@
HorizontalContentAlignment="Center" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Focusable="False" Focusable="False"
AutomationProperties.Name="Line up"
Theme="{StaticResource ScrollBarRepeatButton}"> Theme="{StaticResource ScrollBarRepeatButton}">
<PathIcon <PathIcon
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"
@@ -147,6 +152,7 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="0" CornerRadius="0"
Focusable="False" Focusable="False"
AutomationProperties.Name="Page up"
Theme="{StaticResource ScrollBarRepeatButton}" /> Theme="{StaticResource ScrollBarRepeatButton}" />
</Track.DecreaseButton> </Track.DecreaseButton>
<Track.IncreaseButton> <Track.IncreaseButton>
@@ -157,9 +163,10 @@
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="0" CornerRadius="0"
Focusable="False" Focusable="False"
AutomationProperties.Name="Page down"
Theme="{StaticResource ScrollBarRepeatButton}" /> Theme="{StaticResource ScrollBarRepeatButton}" />
</Track.IncreaseButton> </Track.IncreaseButton>
<Thumb Name="thumb" /> <Thumb Name="thumb" AutomationProperties.Name="Position" />
</Track> </Track>
<RepeatButton <RepeatButton
Name="PART_LineDownButton" Name="PART_LineDownButton"
@@ -168,6 +175,7 @@
HorizontalContentAlignment="Center" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Focusable="False" Focusable="False"
AutomationProperties.Name="Line down"
Theme="{StaticResource ScrollBarRepeatButton}"> Theme="{StaticResource ScrollBarRepeatButton}">
<PathIcon <PathIcon
Theme="{StaticResource InnerPathIcon}" Theme="{StaticResource InnerPathIcon}"

View File

@@ -2,7 +2,10 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<MenuFlyout x:Key="SelectableTextBlockContextFlyout" Placement="Bottom"> <MenuFlyout
x:Key="SelectableTextBlockContextFlyout"
ShowMode="{OnFormFactor Desktop=Standard, Mobile=Transient}"
Placement="Bottom">
<MenuItem <MenuItem
Command="{Binding $parent[SelectableTextBlock].Copy}" Command="{Binding $parent[SelectableTextBlock].Copy}"
Header="{DynamicResource STRING_MENU_COPY}" Header="{DynamicResource STRING_MENU_COPY}"

View File

@@ -92,11 +92,12 @@
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
Fill="{DynamicResource SliderTickForeground}" Fill="{DynamicResource SliderTickForeground}"
IsVisible="False" IsVisible="False"
Maximum="{TemplateBinding Slider.Maximum}" Maximum="{TemplateBinding Maximum}"
Minimum="{TemplateBinding Slider.Minimum}" Minimum="{TemplateBinding Minimum}"
Orientation="{TemplateBinding Slider.Orientation}" Orientation="{TemplateBinding Orientation}"
Placement="Top" Placement="Top"
TickFrequency="{TemplateBinding Slider.TickFrequency}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
TickFrequency="{TemplateBinding TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<TickBar <TickBar
Name="BottomTickBar" Name="BottomTickBar"
@@ -106,11 +107,12 @@
VerticalAlignment="Top" VerticalAlignment="Top"
Fill="{DynamicResource SliderTickForeground}" Fill="{DynamicResource SliderTickForeground}"
IsVisible="False" IsVisible="False"
Maximum="{TemplateBinding Slider.Maximum}" Maximum="{TemplateBinding Maximum}"
Minimum="{TemplateBinding Slider.Minimum}" Minimum="{TemplateBinding Minimum}"
Orientation="{TemplateBinding Slider.Orientation}" Orientation="{TemplateBinding Orientation}"
Placement="Bottom" Placement="Bottom"
TickFrequency="{TemplateBinding Slider.TickFrequency}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
TickFrequency="{TemplateBinding TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<Track <Track
Name="PART_Track" Name="PART_Track"
@@ -169,11 +171,12 @@
HorizontalAlignment="Right" HorizontalAlignment="Right"
Fill="{DynamicResource SliderTickForeground}" Fill="{DynamicResource SliderTickForeground}"
IsVisible="False" IsVisible="False"
Maximum="{TemplateBinding Slider.Maximum}" Maximum="{TemplateBinding Maximum}"
Minimum="{TemplateBinding Slider.Minimum}" Minimum="{TemplateBinding Minimum}"
Orientation="{TemplateBinding Slider.Orientation}" Orientation="{TemplateBinding Orientation}"
Placement="Left" Placement="Left"
TickFrequency="{TemplateBinding Slider.TickFrequency}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
TickFrequency="{TemplateBinding TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<TickBar <TickBar
Name="RightTickBar" Name="RightTickBar"
@@ -183,11 +186,12 @@
HorizontalAlignment="Left" HorizontalAlignment="Left"
Fill="{DynamicResource SliderTickForeground}" Fill="{DynamicResource SliderTickForeground}"
IsVisible="False" IsVisible="False"
Maximum="{TemplateBinding Slider.Maximum}" Maximum="{TemplateBinding Maximum}"
Minimum="{TemplateBinding Slider.Minimum}" Minimum="{TemplateBinding Minimum}"
Orientation="{TemplateBinding Slider.Orientation}" Orientation="{TemplateBinding Orientation}"
Placement="Right" Placement="Right"
TickFrequency="{TemplateBinding Slider.TickFrequency}" IsDirectionReversed="{TemplateBinding IsDirectionReversed}"
TickFrequency="{TemplateBinding TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<Track <Track
Name="PART_Track" Name="PART_Track"

View File

@@ -44,12 +44,14 @@
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
RecognizesAccessKey="True"
TextElement.FontSize="{TemplateBinding FontSize}" TextElement.FontSize="{TemplateBinding FontSize}"
TextElement.FontWeight="{TemplateBinding FontWeight}" TextElement.FontWeight="{TemplateBinding FontWeight}"
UseLayoutRounding="False" /> UseLayoutRounding="False" />
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type SplitButton}" TargetType="SplitButton"> <ControlTheme x:Key="{x:Type SplitButton}" TargetType="SplitButton">

View File

@@ -42,6 +42,10 @@
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^:selected /template/ ContentPresenter#PART_HeaderPresenter"> <Style Selector="^:selected /template/ ContentPresenter#PART_HeaderPresenter">
<Setter Property="FontWeight" Value="{DynamicResource TabItemSelectedFontWeight}" /> <Setter Property="FontWeight" Value="{DynamicResource TabItemSelectedFontWeight}" />
<Setter Property="Foreground" Value="{DynamicResource TabItemLineHeaderSelectedForeground}" /> <Setter Property="Foreground" Value="{DynamicResource TabItemLineHeaderSelectedForeground}" />

View File

@@ -1,7 +1,10 @@
<ResourceDictionary <ResourceDictionary
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<MenuFlyout x:Key="DefaultTextBoxContextFlyout" Placement="Bottom"> <MenuFlyout
x:Key="DefaultTextBoxContextFlyout"
ShowMode="{OnFormFactor Desktop=Standard, Mobile=Transient}"
Placement="Bottom">
<MenuItem <MenuItem
Command="{Binding $parent[TextBox].Cut}" Command="{Binding $parent[TextBox].Cut}"
Header="{DynamicResource STRING_MENU_CUT}" Header="{DynamicResource STRING_MENU_CUT}"
@@ -107,6 +110,7 @@
Command="{Binding $parent[TextBox].Clear}" Command="{Binding $parent[TextBox].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
IsVisible="False" IsVisible="False"
Focusable="False"
Theme="{StaticResource InnerIconButton}" /> Theme="{StaticResource InnerIconButton}" />
<ToggleButton <ToggleButton
Name="PART_RevealButton" Name="PART_RevealButton"
@@ -152,7 +156,7 @@
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder">
@@ -210,8 +214,8 @@
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointerOverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointeroverBorderBrush}" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" />
@@ -260,7 +264,6 @@
<Setter Property="BorderThickness" Value="{DynamicResource TextBoxBorderThickness}" /> <Setter Property="BorderThickness" Value="{DynamicResource TextBoxBorderThickness}" />
<Setter Property="BackgroundSizing" Value="OuterBorderEdge" /> <Setter Property="BackgroundSizing" Value="OuterBorderEdge" />
<Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}" /> <Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}" />
<Setter Property="Cursor" Value="Ibeam" />
<Setter Property="CaretBrush" Value="{DynamicResource TextBoxTextCaretBrush}" /> <Setter Property="CaretBrush" Value="{DynamicResource TextBoxTextCaretBrush}" />
<Setter Property="Padding" Value="{DynamicResource TextBoxContentPadding}" /> <Setter Property="Padding" Value="{DynamicResource TextBoxContentPadding}" />
<Setter Property="MinHeight" Value="{DynamicResource TextBoxDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource TextBoxDefaultHeight}" />
@@ -328,6 +331,11 @@
TextAlignment="{TemplateBinding TextAlignment}" TextAlignment="{TemplateBinding TextAlignment}"
TextWrapping="{TemplateBinding TextWrapping}" /> TextWrapping="{TemplateBinding TextWrapping}" />
</Panel> </Panel>
<ScrollViewer.Styles>
<Style Selector="ScrollContentPresenter#PART_ContentPresenter">
<Setter Property="Cursor" Value="Ibeam" />
</Style>
</ScrollViewer.Styles>
</ScrollViewer> </ScrollViewer>
<Button <Button
Name="PART_ClearButton" Name="PART_ClearButton"
@@ -335,6 +343,7 @@
Command="{Binding $parent[TextBox].Clear}" Command="{Binding $parent[TextBox].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
IsVisible="False" IsVisible="False"
Focusable="False"
Theme="{StaticResource InnerIconButton}" /> Theme="{StaticResource InnerIconButton}" />
<ToggleButton <ToggleButton
Name="PART_RevealButton" Name="PART_RevealButton"
@@ -380,7 +389,7 @@
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder">
@@ -438,8 +447,8 @@
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsBorderBrush}" />
</Style> </Style>
<Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pointerover /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointerOverBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointerOverBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource DataValidationErrorsPointeroverBorderBrush}" />
</Style> </Style>
<Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder"> <Style Selector="^:pressed /template/ Border#PART_ContentPresenterBorder">
<Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" /> <Setter Property="Background" Value="{DynamicResource DataValidationErrorsPressedBackground}" />
@@ -483,7 +492,6 @@
<Setter Property="Foreground" Value="{DynamicResource TextBoxForeground}" /> <Setter Property="Foreground" Value="{DynamicResource TextBoxForeground}" />
<Setter Property="SelectionBrush" Value="{DynamicResource TextBoxSelectionBackground}" /> <Setter Property="SelectionBrush" Value="{DynamicResource TextBoxSelectionBackground}" />
<Setter Property="SelectionForegroundBrush" Value="{DynamicResource TextBoxSelectionForeground}" /> <Setter Property="SelectionForegroundBrush" Value="{DynamicResource TextBoxSelectionForeground}" />
<Setter Property="Cursor" Value="Ibeam" />
<Setter Property="CaretBrush" Value="{DynamicResource TextBoxTextCaretBrush}" /> <Setter Property="CaretBrush" Value="{DynamicResource TextBoxTextCaretBrush}" />
<Setter Property="Padding" Value="{DynamicResource TextBoxContentPadding}" /> <Setter Property="Padding" Value="{DynamicResource TextBoxContentPadding}" />
<Setter Property="MinHeight" Value="{DynamicResource TextBoxDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource TextBoxDefaultHeight}" />
@@ -542,6 +550,11 @@
TextAlignment="{TemplateBinding TextAlignment}" TextAlignment="{TemplateBinding TextAlignment}"
TextWrapping="{TemplateBinding TextWrapping}" /> TextWrapping="{TemplateBinding TextWrapping}" />
</Panel> </Panel>
<ScrollViewer.Styles>
<Style Selector="ScrollContentPresenter#PART_ContentPresenter">
<Setter Property="Cursor" Value="Ibeam" />
</Style>
</ScrollViewer.Styles>
</ScrollViewer> </ScrollViewer>
<ContentPresenter <ContentPresenter
Grid.Column="2" Grid.Column="2"

View File

@@ -2,9 +2,10 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith> <Design.PreviewWith>
<Border Padding="20"> <StackPanel Margin="20">
<TimePickerPresenter /> <TimePickerPresenter />
</Border> <TimePicker UseSeconds="True" Width="500" />
</StackPanel>
</Design.PreviewWith> </Design.PreviewWith>
<ControlTheme x:Key="{x:Type TimePickerPresenter}" TargetType="TimePickerPresenter"> <ControlTheme x:Key="{x:Type TimePickerPresenter}" TargetType="TimePickerPresenter">
<Setter Property="Width" Value="242" /> <Setter Property="Width" Value="242" />
@@ -163,6 +164,7 @@
<Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="MinHeight" Value="{DynamicResource DateTimePickerButtonDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource DateTimePickerButtonDefaultHeight}" />
<Setter Property="MinWidth" Value="242" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate> <ControlTemplate>
<DataValidationErrors> <DataValidationErrors>
@@ -174,8 +176,8 @@
Name="PART_FlyoutButton" Name="PART_FlyoutButton"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="2"
Width="242" MinWidth="{TemplateBinding MinWidth}"
MinWidth="242" MaxWidth="{TemplateBinding MaxWidth}"
MinHeight="{TemplateBinding MinHeight}" MinHeight="{TemplateBinding MinHeight}"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
@@ -305,7 +307,8 @@
Margin="0,0,9,0" Margin="0,0,9,0"
Command="{Binding $parent[TimePicker].Clear}" Command="{Binding $parent[TimePicker].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
IsVisible="False" /> IsVisible="False"
Focusable="False" />
</Grid> </Grid>
</DataValidationErrors> </DataValidationErrors>
</ControlTemplate> </ControlTemplate>

View File

@@ -16,12 +16,14 @@
<Border <Border
Name="PART_Background" Name="PART_Background"
Background="{TemplateBinding Background}" Background="{TemplateBinding Background}"
IsHitTestVisible="False" /> IsHitTestVisible="False"
Win32Properties.NonClientHitTestResult="Caption" />
<CaptionButtons <CaptionButtons
Name="PART_CaptionButtons" Name="PART_CaptionButtons"
HorizontalAlignment="Right" HorizontalAlignment="Right"
VerticalAlignment="Top" VerticalAlignment="Top"
Foreground="{TemplateBinding Foreground}" /> Foreground="{TemplateBinding Foreground}"
Win32Properties.NonClientHitTestResult="Client" />
</Panel> </Panel>
</Panel> </Panel>
</ControlTemplate> </ControlTemplate>

View File

@@ -2,20 +2,67 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Design.PreviewWith> <Design.PreviewWith>
<StackPanel Margin="20"> <StackPanel HorizontalAlignment="Left" Spacing="16">
<ToggleButton Classes="Primary">Toggle</ToggleButton> <WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Classes="Secondary">Toggle</ToggleButton> <ToggleButton Content="Default" />
<ToggleButton Classes="Tertiary">Toggle</ToggleButton> <ToggleButton Content="Primary" Classes="Primary" />
<ToggleButton Classes="Success">Toggle</ToggleButton> <ToggleButton Content="Secondary" Classes="Secondary" />
<ToggleButton Classes="Warning">Toggle</ToggleButton> <ToggleButton Content="Tertiary" Classes="Tertiary" />
<ToggleButton Classes="Danger">Toggle</ToggleButton> <ToggleButton Content="Success" Classes="Success" />
<ToggleButton Content="Warning" Classes="Warning" />
<ToggleButton Classes="Primary" IsThreeState="True">Toggle 3</ToggleButton> <ToggleButton Content="Danger" Classes="Danger" />
<ToggleButton Classes="Secondary" IsThreeState="True">Toggle 3</ToggleButton> <ToggleButton Content="Disabled" Classes="Danger" IsEnabled="False" />
<ToggleButton Classes="Tertiary" IsThreeState="True">Toggle 3</ToggleButton> </WrapPanel>
<ToggleButton Classes="Success" IsThreeState="True">Toggle 3</ToggleButton> <WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Classes="Warning" IsThreeState="True">Toggle 3</ToggleButton> <ToggleButton Content="Default" IsChecked="True" />
<ToggleButton Classes="Danger" IsThreeState="True">Toggle 3</ToggleButton> <ToggleButton Content="Primary" Classes="Primary" IsChecked="True" />
<ToggleButton Content="Secondary" Classes="Secondary" IsChecked="True" />
<ToggleButton Content="Tertiary" Classes="Tertiary" IsChecked="True" />
<ToggleButton Content="Success" Classes="Success" IsChecked="True" />
<ToggleButton Content="Warning" Classes="Warning" IsChecked="True" />
<ToggleButton Content="Danger" Classes="Danger" IsChecked="True" />
<ToggleButton Content="Disabled" Classes="Danger" IsChecked="True" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Primary" Classes="Primary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Secondary" Classes="Secondary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Tertiary" Classes="Tertiary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Success" Classes="Success" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Warning" Classes="Warning" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Danger" Classes="Danger" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Disabled" Classes="Danger" IsChecked="{x:Null}" IsThreeState="True" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" Classes="Colorful" />
<ToggleButton Content="Primary" Classes="Colorful Primary" />
<ToggleButton Content="Secondary" Classes="Colorful Secondary" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" />
<ToggleButton Content="Success" Classes="Colorful Success" />
<ToggleButton Content="Warning" Classes="Colorful Warning" />
<ToggleButton Content="Danger" Classes="Colorful Danger" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" Classes="Colorful" IsChecked="True" />
<ToggleButton Content="Primary" Classes="Colorful Primary" IsChecked="True" />
<ToggleButton Content="Secondary" Classes="Colorful Secondary" IsChecked="True" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" IsChecked="True" />
<ToggleButton Content="Success" Classes="Colorful Success" IsChecked="True" />
<ToggleButton Content="Warning" Classes="Colorful Warning" IsChecked="True" />
<ToggleButton Content="Danger" Classes="Colorful Danger" IsChecked="True" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsChecked="True" IsEnabled="False" />
</WrapPanel>
<WrapPanel ItemSpacing="16" LineSpacing="16">
<ToggleButton Content="Default" Classes="Colorful" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Primary" Classes="Colorful Primary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Secondary" Classes="Colorful Secondary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Tertiary" Classes="Colorful Tertiary" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Success" Classes="Colorful Success" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Warning" Classes="Colorful Warning" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Danger" Classes="Colorful Danger" IsChecked="{x:Null}" IsThreeState="True" />
<ToggleButton Content="Disabled" Classes="Colorful Primary" IsChecked="{x:Null}" IsThreeState="True" IsEnabled="False" />
</WrapPanel>
</StackPanel> </StackPanel>
</Design.PreviewWith> </Design.PreviewWith>
<ControlTheme <ControlTheme
@@ -136,6 +183,39 @@
</Style> </Style>
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulPrimaryPressedBackground}" />
</Style>
</Style>
<Style Selector="^.Tertiary">
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidColorfulTertiaryForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryBackground}" />
</Style>
<Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPointeroverBackground}" />
</Style>
<Style Selector="^:pressed /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Background" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonSolidColorfulTertiaryPressedBackground}" />
</Style>
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonSolidDisabledForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonSolidDisabledBackground}" />
@@ -174,6 +254,14 @@
<Style Selector="^.Danger /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^.Danger /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineDangerBorderBrush}" />
</Style> </Style>
<Style Selector="^.Colorful">
<Style Selector="^.Primary /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonOutlineColorfulPrimaryForeground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineColorfulPrimaryBorderBrush}" />
</Style>
</Style>
<Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter"> <Style Selector="^:disabled /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" /> <Setter Property="Foreground" Value="{DynamicResource ButtonDefaultDisabledForeground}" />
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" /> <Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />

View File

@@ -64,8 +64,7 @@
VerticalAlignment="Top" VerticalAlignment="Top"
Content="{TemplateBinding Content}" Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplate="{TemplateBinding ContentTemplate}"
IsVisible="{TemplateBinding Content, Converter={x:Static ObjectConverters.IsNotNull}}" IsVisible="{TemplateBinding Content, Converter={x:Static ObjectConverters.IsNotNull}}" />
RecognizesAccessKey="True" />
<Border <Border
Name="SwitchBackgroundBorder" Name="SwitchBackgroundBorder"
@@ -140,6 +139,10 @@
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter">
<Setter Property="RecognizesAccessKey" Value="True" />
</Style>
<Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter:empty"> <Style Selector="^ /template/ ContentPresenter#PART_ContentPresenter:empty">
<Setter Property="Margin" Value="0" /> <Setter Property="Margin" Value="0" />
</Style> </Style>

View File

@@ -0,0 +1,30 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StreamGeometry x:Key="SemiIconAIBell">
M20 20a1 1 0 0 1 0 2H4a1 1 0 0 1 0-2h16ZM12 3.5a1 1 0 0 1 0 2 5 5 0 0 0-5 5v6h10V14a1 1 0 0 1 2 0v3.5a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-7a7 7 0 0 1 7-7ZM1.05 6.18a1 1 0 0 1 1.17-.66l.1.03 1.5.5.1.04a1 1 0 0 1-.64 1.89l-.1-.03-1.5-.5-.1-.04a1 1 0 0 1-.53-1.23ZM2.8 2.8a1 1 0 0 1 1.34-.07l.08.07 1.5 1.5.07.08a1 1 0 0 1-1.41 1.4l-.08-.06-1.5-1.5-.07-.08A1 1 0 0 1 2.8 2.8Zm3.4-1.74a1 1 0 0 1 1.22.54l.04.1.5 1.5.03.1a1 1 0 0 1-1.9.62l-.03-.1-.5-1.5-.03-.1a1 1 0 0 1 .66-1.16Z
M17.11 4.05a4.56 4.56 0 0 1-2.06 2.06 4.28 4.28 0 0 1-.58.24.68.68 0 0 0 0 1.3 4.56 4.56 0 0 1 .58.24c.9.44 1.62 1.17 2.06 2.06a4.4 4.4 0 0 1 .24.58.68.68 0 0 0 1.3 0 4.57 4.57 0 0 1 .24-.58 4.56 4.56 0 0 1 2.06-2.06 4.28 4.28 0 0 1 .58-.24.68.68 0 0 0 0-1.3 4.56 4.56 0 0 1-.58-.24 4.56 4.56 0 0 1-2.3-2.64.68.68 0 0 0-1.3 0 4.58 4.58 0 0 1-.24.58ZM18 5.73c-.36.48-.79.91-1.27 1.27.48.36.91.79 1.27 1.27.36-.48.79-.91 1.27-1.27A6.2 6.2 0 0 1 18 5.73Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIEdit">
M16.28 5.04a2 2 0 0 1 2.83 0l2.15 2.14a2 2 0 0 1 0 2.84L11.24 20.04c-.7.7-1.6 1.18-2.56 1.37l-2.97.6a1.2 1.2 0 0 1-1.42-1.42l.6-2.97c.19-.97.67-1.86 1.37-2.56L16.28 5.04Zm-8.6 11.43c-.43.42-.71.96-.83 1.54l-.36 1.8 1.8-.37c.58-.11 1.11-.4 1.53-.82l7.29-7.29-2.15-2.15-7.29 7.3ZM5.56 2.5a.69.69 0 0 1 1.3 0c.06.17.12.34.2.5l.04.08c.44.9 1.17 1.62 2.07 2.07l.08.04.5.2c.62.2.62 1.09 0 1.3-.17.06-.34.12-.5.2l-.08.04A4.57 4.57 0 0 0 7.1 9l-.04.08c-.08.16-.14.33-.2.5a.69.69 0 0 1-1.3 0 4.57 4.57 0 0 0-.2-.5L5.33 9a4.57 4.57 0 0 0-2.07-2.07l-.08-.04a4.58 4.58 0 0 0-.5-.2.69.69 0 0 1 0-1.3l.5-.2.08-.04a4.57 4.57 0 0 0 2.07-2.07L5.37 3l.2-.5Zm10.81 5.27 2.15 2.14 1.31-1.3-2.15-2.15-1.3 1.3Zm-10.16-3c-.36.48-.8.9-1.27 1.27.48.36.9.79 1.27 1.27.36-.48.79-.91 1.27-1.27a6.22 6.22 0 0 1-1.27-1.27Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIFile">
M19 1a2 2 0 0 1 2 2v10a1 1 0 1 1-2 0V3H5v18h7a1 1 0 1 1 0 2H5a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2h14Zm-1.07 15.4a.6.6 0 0 1 1.14 0c.05.16.1.3.17.45l.04.07a3.99 3.99 0 0 0 1.8 1.8l.07.04a4 4 0 0 0 .44.17.6.6 0 0 1 0 1.14 4 4 0 0 0-.44.17l-.07.04a3.99 3.99 0 0 0-1.8 1.8l-.04.07a4 4 0 0 0-.17.44.6.6 0 0 1-1.14 0 4 4 0 0 0-.17-.44l-.04-.07a3.99 3.99 0 0 0-1.8-1.8l-.07-.04a4 4 0 0 0-.44-.17.6.6 0 0 1 0-1.14 4 4 0 0 0 .44-.17l.07-.04a3.99 3.99 0 0 0 1.8-1.8l.04-.07a4 4 0 0 0 .17-.44Zm.57 2c-.31.41-.69.79-1.1 1.1.41.31.79.69 1.1 1.1.31-.41.69-.79 1.1-1.1-.41-.31-.79-.69-1.1-1.1Zm-4.4-8.1a.43.43 0 0 1 .8 0 2.85 2.85 0 0 0 .57.98l.05.05.15.15.05.05a2.85 2.85 0 0 0 .99.56c.39.13.39.69 0 .82a2.85 2.85 0 0 0-.99.56l-.05.05-.15.15-.05.05a2.85 2.85 0 0 0-.56.99.43.43 0 0 1-.82 0 2.85 2.85 0 0 0-.56-.99l-.05-.05-.15-.15-.05-.05a2.85 2.85 0 0 0-.99-.56.43.43 0 0 1 0-.82 2.85 2.85 0 0 0 .99-.56l.05-.05.15-.15.05-.05a2.85 2.85 0 0 0 .56-.99Zm-4.6 1.2a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h1.5ZM16 6a1 1 0 1 1 0 2H8a1 1 0 0 1 0-2h8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIFilled">
M9.68 5.45c.22-1.1 1.8-1.1 2.02 0a8.79 8.79 0 0 0 6.85 6.85c1.1.22 1.1 1.8 0 2.02a8.79 8.79 0 0 0-6.85 6.85c-.22 1.1-1.8 1.1-2.02 0a8.79 8.79 0 0 0-6.85-6.85c-1.1-.22-1.1-1.8 0-2.02a8.79 8.79 0 0 0 6.85-6.85Zm8.48-3.85c.16-.8 1.31-.8 1.48 0a3.54 3.54 0 0 0 2.76 2.76c.8.17.8 1.32 0 1.48a3.54 3.54 0 0 0-2.76 2.76c-.17.8-1.32.8-1.48 0a3.54 3.54 0 0 0-2.76-2.76c-.8-.16-.8-1.31 0-1.48a3.54 3.54 0 0 0 2.76-2.76Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIImage">
M12 2a1 1 0 1 1 0 2H4v11.23l3.67-3.37.15-.12a2 2 0 0 1 2.5.08l3.2 2.74 2.16-2.15a2 2 0 0 1 2.61-.19L20 13.5V12a1 1 0 1 1 2 0v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2h8ZM4 17.94V20h16v-4l-2.9-2.18-2.05 2.05 1.6 1.37a1 1 0 0 1-1.3 1.52l-6.33-5.42L4 17.94Z
M17.72 2.92a3.99 3.99 0 0 1-1.8 1.8 4.28 4.28 0 0 1-.51.21.6.6 0 0 0 0 1.14 3.99 3.99 0 0 1 .5.2 3.99 3.99 0 0 1 1.81 1.81 4.4 4.4 0 0 1 .21.51.6.6 0 0 0 1.14 0 3.98 3.98 0 0 1 .2-.5 3.99 3.99 0 0 1 1.81-1.81 4.2 4.2 0 0 1 .51-.21.6.6 0 0 0 0-1.14 3.99 3.99 0 0 1-.5-.2 3.99 3.99 0 0 1-1.81-1.81 4.4 4.4 0 0 1-.21-.51.6.6 0 0 0-1.14 0 3.98 3.98 0 0 1-.2.5Zm.78 1.47c-.31.42-.69.8-1.11 1.11.42.31.8.69 1.11 1.11.31-.42.69-.8 1.11-1.11-.42-.31-.8-.69-1.11-1.11Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAISearch">
M10 2a1 1 0 1 1 0 2 6 6 0 1 0 6 6 1 1 0 0 1 2 0 8 8 0 0 1-1.68 4.9l5.39 5.4a1 1 0 1 1-1.42 1.4l-5.39-5.38A8 8 0 1 1 10 2Zm4.93-.6a.6.6 0 0 1 1.14 0c.05.16.1.3.17.45l.04.07a3.99 3.99 0 0 0 1.8 1.8l.07.04a4 4 0 0 0 .44.17.6.6 0 0 1 0 1.14 4 4 0 0 0-.44.17l-.07.04a4 4 0 0 0-1.8 1.8 4.5 4.5 0 0 0-.21.51.6.6 0 0 1-1.14 0 4 4 0 0 0-.2-.5 4 4 0 0 0-1.81-1.81l-.07-.04a4 4 0 0 0-.44-.17.6.6 0 0 1 0-1.14 4 4 0 0 0 .44-.17l.07-.04a4 4 0 0 0 1.8-1.8l.04-.07.17-.44Zm.57 2c-.31.41-.69.79-1.1 1.1.41.31.79.69 1.1 1.1.31-.41.69-.79 1.1-1.1-.41-.31-.79-.69-1.1-1.1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIStroked">
M9.68 5.45c.22-1.1 1.8-1.1 2.02 0a8.79 8.79 0 0 0 6.85 6.85c1.1.22 1.1 1.8 0 2.02a8.79 8.79 0 0 0-6.85 6.85c-.22 1.1-1.8 1.1-2.02 0a8.79 8.79 0 0 0-6.85-6.85c-1.1-.22-1.1-1.8 0-2.02a8.79 8.79 0 0 0 6.85-6.85Zm1.01 2.96a10.73 10.73 0 0 1-4.9 4.9 10.73 10.73 0 0 1 4.9 4.9 10.73 10.73 0 0 1 4.9-4.9 10.73 10.73 0 0 1-4.9-4.9Zm7.47-6.8c.16-.81 1.31-.81 1.48 0a3.54 3.54 0 0 0 2.76 2.75c.8.17.8 1.32 0 1.48a3.54 3.54 0 0 0-2.76 2.76c-.17.8-1.32.8-1.48 0a3.54 3.54 0 0 0-2.76-2.76c-.8-.16-.8-1.31 0-1.48a3.54 3.54 0 0 0 2.76-2.76Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAIWand">
M17.11 15.05a4.56 4.56 0 0 1-2.64 2.3.68.68 0 0 0 0 1.3 4.57 4.57 0 0 1 2.64 2.3 4.4 4.4 0 0 1 .24.58.68.68 0 0 0 1.3 0 4.57 4.57 0 0 1 .24-.58 4.56 4.56 0 0 1 2.06-2.06 4.4 4.4 0 0 1 .58-.24.68.68 0 0 0 0-1.3 4.57 4.57 0 0 1-.58-.24 4.56 4.56 0 0 1-2.3-2.64.68.68 0 0 0-1.3 0 4.57 4.57 0 0 1-.24.58Zm.89 1.68c-.36.48-.79.91-1.27 1.27.48.36.91.79 1.27 1.27.36-.48.79-.91 1.27-1.27A6.2 6.2 0 0 1 18 16.73Z
M4.83 3.53a3.42 3.42 0 0 0 .68-1.18.51.51 0 0 1 .98 0 3.42 3.42 0 0 0 2.16 2.16c.47.16.47.82 0 .98a3.42 3.42 0 0 0-2.16 2.16.51.51 0 0 1-.98 0 3.42 3.42 0 0 0-2.16-2.16.51.51 0 0 1 0-.98 3.42 3.42 0 0 0 1.48-.98Z
M16.57 2.93a3.18 3.18 0 1 1 4.5 4.5L7.43 21.07a3.18 3.18 0 1 1-4.5-4.5L16.57 2.93ZM4.34 17.97a1.2 1.2 0 0 0 1.7 1.7L16.6 9.08l-1.7-1.7L4.34 17.97ZM19.67 4.33a1.2 1.2 0 0 0-1.7 0L16.3 6l1.7 1.7 1.66-1.66a1.2 1.2 0 0 0 0-1.7Z
</StreamGeometry>
</ResourceDictionary>

View File

@@ -1,69 +0,0 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StreamGeometry x:Key="SemiIconCaretDown">
m17.55 15.66-4.8 5.48a1 1 0 0 1-1.5 0l-4.8-5.48A1 1 0 0 1 7.2 14h9.6a1 1 0 0 1 .75 1.66Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCaretUp">
m6.45 8.34 4.8-5.48a1 1 0 0 1 1.5 0l4.8 5.48A1 1 0 0 1 16.8 10H7.2a1 1 0 0 1-.75-1.66Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCheckBoxIndeterminate">
M5 12.5c0-.83.67-1.5 1.5-1.5h11a1.5 1.5 0 0 1 0 3h-11A1.5 1.5 0 0 1 5 12.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCheckBoxTick">
M17.41 7.3c.66.51.78 1.45.28 2.11l-6.5 8.5a1.5 1.5 0 0 1-2.37.01l-3.5-4.5a1.5 1.5 0 1 1 2.36-1.84L10 14.54l5.32-6.95a1.5 1.5 0 0 1 2.1-.28Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconConfigStroked">
M16.95 4.24c0-.63.5-1.13 1.13-1.13h3.31a1.13 1.13 0 0 1 0 2.25h-3.31c-.62 0-1.13-.5-1.13-1.12Z,
M13.66.9c.62 0 1.12.5 1.12 1.13v4.42a1.13 1.13 0 0 1-2.25 0V2.03c0-.63.5-1.13 1.13-1.13Z,
M.38 4.24c0-.63.5-1.13 1.12-1.13h11.03v2.25H1.5c-.62 0-1.13-.5-1.13-1.12Z,
M.38 11.97c0-.62.5-1.12 1.12-1.12h4.42a1.13 1.13 0 0 1 0 2.25H1.5c-.62 0-1.13-.5-1.13-1.13Z,
M10.34 8.64c.62 0 1.13.5 1.13 1.12v4.42a1.13 1.13 0 0 1-2.25 0V9.76c0-.62.5-1.12 1.12-1.12Z,
M11.47 10.85H22.5a1.13 1.13 0 010 2.25H11.47Z,
M16.95 19.71c0-.62.5-1.13 1.13-1.13h3.31a1.13 1.13 0 0 1 0 2.25h-3.31c-.62 0-1.13-.5-1.13-1.12Z,
M13.66 16.37c.62 0 1.12.5 1.12 1.13v4.42a1.13 1.13 0 0 1-2.25 0V17.5c0-.62.5-1.13 1.13-1.13Z,
M.38 19.71c0-.62.5-1.13 1.12-1.13h11.03v2.25H1.5c-.62 0-1.13-.5-1.13-1.12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconDesktop">
M2.5 14.5v-9c0-1.1.9-2 2-2h15a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-15a2 2 0 0 1-2-2Z,
M5.5 13.5v-7h13v7h-13Z,
M7 21.5h10a1 1 0 001-1v-1a1 1 0 00-1-1h-10a1 1 0 00-1 1v1a1 1 0 001 1Z,
M10 16.5v2h4v-2h-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconGallery">
M15.66.75 2.4 4.22A3 3 0 0 0 .34 7.95l2.35 8.23a3 3 0 0 0 .31.7V11a4 4 0 0 1 4-4h13.5l-1.2-4.18A3 3 0 0 0 15.67.75Z,
M8 9h13a3 3 0 013 3v9a3 3 0 01-3 3H8a3 3 0 01-3-3V12a3 3 0 013-3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconIssueStroked">
M4.13 4.13a11.1 11.1 0 0 1 15.74 0 11.1 11.1 0 0 1 0 15.74 11.1 11.1 0 0 1-15.74 0 11.1 11.1 0 0 1 0-15.74Zm1.6 1.6a8.84 8.84 0 0 1 12.55 0 8.84 8.84 0 0 1 0 12.55 8.84 8.84 0 0 1-12.56 0 8.84 8.84 0 0 1 0-12.56Z,
M12 18.5a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z,
M12 4.88c.62 0 1.13.5 1.13 1.12v8a1.13 1.13 0 0 1-2.26 0V6c0-.62.5-1.13 1.13-1.13Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLoading">
M12 0c.66 0 1.2.54 1.2 1.2v5.2a1.2 1.2 0 0 1-2.4 0V1.2c0-.66.54-1.2 1.2-1.2Zm7.05 2.3c.54.38.66 1.13.27 1.67l-3.06 4.2a1.2 1.2 0 0 1-1.94-1.4l3.06-4.21a1.2 1.2 0 0 1 1.67-.27Zm-14.1 0a1.2 1.2 0 0 1 1.67.26l3.06 4.2a1.2 1.2 0 1 1-1.94 1.41l-3.06-4.2a1.2 1.2 0 0 1 .27-1.68Zm-4.36 6c.2-.64.88-.98 1.5-.78l4.95 1.6a1.2 1.2 0 0 1-.74 2.3L1.36 9.8a1.2 1.2 0 0 1-.77-1.5Zm22.82 0c.2.62-.14 1.3-.77 1.5l-4.94 1.61a1.2 1.2 0 0 1-.74-2.28l4.94-1.6c.63-.21 1.3.13 1.51.76Zm-15.6 5.06c.21.63-.13 1.3-.77 1.51l-4.94 1.6a1.2 1.2 0 0 1-.74-2.27l4.94-1.61c.63-.2 1.31.14 1.52.77Zm8.37 0c.21-.63.89-.98 1.52-.77l4.94 1.6a1.2 1.2 0 0 1-.74 2.29l-4.94-1.6a1.2 1.2 0 0 1-.78-1.52Zm-6.77 2.2c.54.39.66 1.14.27 1.68l-3.06 4.2a1.2 1.2 0 1 1-1.94-1.4l3.06-4.21a1.2 1.2 0 0 1 1.67-.27Zm5.18 0a1.2 1.2 0 0 1 1.67.27l3.06 4.2a1.2 1.2 0 0 1-1.94 1.41l-3.06-4.2a1.2 1.2 0 0 1 .27-1.68ZM12 16.4c.66 0 1.2.54 1.2 1.2v5.2a1.2 1.2 0 0 1-2.4 0v-5.2c0-.66.54-1.2 1.2-1.2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRegExp">
M16.75 1c.83 0 1.5.67 1.5 1.5v2.7l2.17-1.45a1.5 1.5 0 1 1 1.66 2.5L19.46 8l2.62 1.75a1.5 1.5 0 1 1-1.66 2.5l-2.17-1.45v2.7a1.5 1.5 0 0 1-3 0v-2.7l-2.17 1.45a1.5 1.5 0 0 1-1.66-2.5L14.05 8l-2.63-1.75a1.5 1.5 0 0 1 1.66-2.5l2.17 1.45V2.5c0-.83.67-1.5 1.5-1.5Z,
M2 17.5a4.5 4.5 0 109 0 4.5 4.5 0 10-9 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconShieldStroked">
m3 4.13 9-1.63 9 1.63v5.39c0 5.66-3.62 10.69-9 12.48-5.37-1.8-9-6.82-9-12.49V4.13Z,
M5 6.13 12 4.5l7 1.63v3.39c0 3.66-3 8.69-7 10.48-4-1.8-7-5.82-7-10.49V6.13Z,
M13 10.5h2a1 1 0 010 2h-2v2a1 1 0 01-2 0v-2H9a1 1 0 010-2h2v-2a1 1 0 012 0v2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSpin">
M14.2 3.79A8.5 8.5 0 0 0 5 16.81a1.5 1.5 0 1 1-2.48 1.7 11.5 11.5 0 1 1 20.6-3.53 1.5 1.5 0 0 1-2.91-.78A8.5 8.5 0 0 0 14.2 3.79Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTriangleArrow">
M24 9v1c-4 0-5.5 1-7.5 3S14 16 12 16s-2.5-1-4.5-3S4 10 0 10V9h24Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUnlink">
M12.94 2.94a5.74 5.74 0 1 1 8.12 8.12l-3.55 3.55-2.12-2.12 3.55-3.55a2.74 2.74 0 1 0-3.88-3.88l-3.55 3.55L9.39 6.5l3.55-3.55Zm-10 10 3.05-3.05L8.11 12l-3.05 3.05a2.74 2.74 0 0 0 3.88 3.88l3.05-3.05L14.11 18l-3.05 3.05a5.74 5.74 0 1 1-8.12-8.12Z,
M5.4 7.5l2.7 2.7 1.4-1.4-2.7-2.7L5.4 7.5Z,
M15.3 14.4l-1.4 1.4 2.7 2.7 1.4-1.4-2.7-2.7Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUserAdd">
M19.08 19.84c-1.38-2.24-4.32-4.34-8.62-4.34-4.3 0-7.24 2.1-8.62 4.34C1.2 20.88 2.1 22 3.34 22h14.24c1.23 0 2.14-1.12 1.5-2.16Z,
M14.05 10.42c.52-.21 1.02-.86 1.25-1.7.3-1.11.23-2.1-.57-2.4C14.65 2.48 13.13 1 9.96 1 6.78 1 5.27 2.48 5.19 6.32c-.8.3-.86 1.29-.57 2.4.23.84.73 1.49 1.25 1.7.84 2.15 2.37 3.6 4.09 3.6 1.72 0 3.25-1.45 4.09-3.6Z,
M20 1a1 1 0 0 0-1 1v2h-2a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0V6h2a1 1 0 1 0 0-2h-2V2a1 1 0 0 0-1-1Z
</StreamGeometry>
</ResourceDictionary>

View File

@@ -0,0 +1,498 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StreamGeometry x:Key="SemiIconAbsoluteStroked">
M13.62 5.04a1 1 0 1 0 1.42-1.42L12.7 1.3a1 1 0 0 0-1.42 0L8.96 3.62a1 1 0 0 0 1.42 1.42L11 4.4V11H4.41l.63-.62a1 1 0 1 0-1.42-1.42L1.3 11.3a1 1 0 0 0 0 1.42l2.33 2.33a1 1 0 0 0 1.42-1.42L4.4 13H11v6.59l-.62-.63a1 1 0 0 0-1.42 1.42l2.33 2.33a1 1 0 0 0 1.42 0l2.33-2.33a1 1 0 0 0-1.42-1.42l-.62.63V13h6.59l-.63.62a1 1 0 0 0 1.42 1.42l2.33-2.33a1 1 0 0 0 0-1.42l-2.33-2.33a1 1 0 1 0-1.42 1.42l.63.62H13V4.41l.62.63Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignHCenterStroked">
M11 3a1 1 0 1 1 2 0v2h7a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-7v2h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4v2a1 1 0 1 1-2 0v-2H7a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h4v-2H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h7V3Zm1 14h4v-2H8v2h4Zm7-8H5V7h14v2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignHLeftStroked">
M2 3a1 1 0 0 1 2 0v18a1 1 0 1 1-2 0V3Zm4 3a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V6Zm2 1v2h11V7H8Zm-1 6a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H7Zm1 4v-2h6v2H8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignHRightStroked">
M20 3a1 1 0 1 1 2 0v18a1 1 0 1 1-2 0V3ZM3 6a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6Zm2 1v2h11V7H5Zm4 6a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H9Zm1 4v-2h6v2h-6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignVBotStroked">
M18.5 3a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4Zm-1 2h-2v11h2V5Zm4 15a1 1 0 1 1 0 2h-18a1 1 0 1 1 0-2h18Zm-10-11a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V9Zm-4 1h2v6h-2v-6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignVBottomStroked">
M18 3a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4Zm-1 2h-2v11h2V5Zm4 15a1 1 0 1 1 0 2H3a1 1 0 1 1 0-2h18ZM11 9a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V9Zm-4 1h2v6H7v-6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignVCenterStroked">
M18 3a1 1 0 0 1 1 1v7h2a1 1 0 1 1 0 2h-2v7a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-7h-2v4a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-4H3a1 1 0 1 1 0-2h2V7a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4h2V4a1 1 0 0 1 1-1h4Zm-1 2h-2v14h2V5ZM7 8h2v8H7V8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconAlignVTopStroked">
M3 4a1 1 0 1 1 0-2h18a1 1 0 1 1 0 2H3Zm3 12a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H6Zm1-2h2V8H7v6Zm6 6a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v13Zm4-1h-2V8h2v11Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBarChartHStroked">
M16.5 2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-13a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h13Zm-1 2h-11v2h11V4Zm-2 12a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-10a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h10Zm-1 2h-8v2h8v-2Zm10-8a1 1 0 0 0-1-1h-18a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-4Zm-18 1h16v2h-16v-2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBarChartVStroked">
M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V3Zm2 1v16h2V4h-2ZM2 8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8Zm2 1v11h2V9H4Zm13 1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1h-4Zm1 10v-8h2v8h-2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBellStroked">
M10.01 2.78a2 2 0 0 1 3.98 0A7 7 0 0 1 19 9.5c0 3.35.72 5.57 1.4 6.93a7.74 7.74 0 0 0 1.24 1.8A1 1 0 0 1 21 20h-5.13a4 4 0 0 1-7.74 0H3a1 1 0 0 1-.64-1.77c1.05-.87 1.71-2.24 2.11-3.87.4-1.6.5-3.36.53-4.87 0-2.72 1.16-4.52 2.67-5.6.75-.54 1.57-.9 2.34-1.1ZM12 21a2 2 0 0 1-1.73-1h3.46A2 2 0 0 1 12 21Zm6.97-3H5.15c.6-.98 1-2.07 1.26-3.16.45-1.83.57-3.76.59-5.32V9.5c0-2.07.84-3.27 1.83-3.99A5.7 5.7 0 0 1 12 4.5a5 5 0 0 1 5 5c0 3.65.78 6.18 1.6 7.82l.37.68Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBookH5Stroked">
M19 3H7a2 2 0 0 0-2 2v12.17A3 3 0 0 1 6 17h13V3ZM6 21a1 1 0 0 1-1-1v-.01A1 1 0 0 1 6 19h13v2H6ZM3 5v15a3 3 0 0 0 3 3h14a1 1 0 0 0 1-1V3a2 2 0 0 0-2-2H7a4 4 0 0 0-4 4Zm4.25 3.5c0-.28.22-.5.5-.5h.5c.28 0 .5.22.5.5v1.25c0 .28.22.5.5.5h.5a.5.5 0 0 0 .5-.5V8.5c0-.28.22-.5.5-.5h.5c.28 0 .5.22.5.5v5a.5.5 0 0 1-.5.5h-.5a.5.5 0 0 1-.5-.5v-1.25a.5.5 0 0 0-.5-.5h-.5a.5.5 0 0 0-.5.5v1.25a.5.5 0 0 1-.5.5h-.5a.5.5 0 0 1-.5-.5v-5Zm5.75 1v1.75c0 .28.22.5.5.5h1.63a.38.38 0 0 1 0 .75H13.5a.5.5 0 0 0-.5.5v.5c0 .28.22.5.5.5h3a.5.5 0 0 0 .5-.5v-2.75a.5.5 0 0 0-.5-.5h-1.63a.38.38 0 0 1 0-.75h1.63A.5.5 0 0 0 17 9v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBookmarkAddStroked">
M6 3v16.72l4.63-2.39a3 3 0 0 1 2.74 0L18 19.72V3H6ZM5 1a1 1 0 0 0-1 1v19.36a1 1 0 0 0 1.46.89l6.08-3.14a1 1 0 0 1 .92 0l6.08 3.14a1 1 0 0 0 1.46-.9V2a1 1 0 0 0-1-1H5Zm3 9a1 1 0 0 1 1-1h2V7a1 1 0 1 1 2 0v2h2a1 1 0 1 1 0 2h-2v2a1 1 0 1 1-2 0v-2H9a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBookmarkDeleteStroked">
m6 19.72 4.63-2.39a3 3 0 0 1 2.74 0L18 19.72V3H6v16.72ZM5 1a1 1 0 0 0-1 1v19.36a1 1 0 0 0 1.46.89l6.08-3.14a1 1 0 0 1 .92 0l6.08 3.14a1 1 0 0 0 1.46-.9V2a1 1 0 0 0-1-1H5Zm3 9a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H9a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBookOpenStroked">
M2 2.5a1 1 0 0 0-1 1v15a1 1 0 0 0 1 1h7a2 2 0 0 1 2 2 1 1 0 1 0 2 0c0-1.1.9-2 2-2h7a1 1 0 0 0 1-1v-15a1 1 0 0 0-1-1h-6a5 5 0 0 0-4 2 5 5 0 0 0-4-2H2Zm9 5a3 3 0 0 0-3-3H3v13h6c.73 0 1.41.2 2 .54V7.5Zm2 10.54a3.98 3.98 0 0 1 2-.54h6v-13h-5a3 3 0 0 0-3 3v10.54Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBookStroked">
M5 5c0-1.1.9-2 2-2h12v14H6a3 3 0 0 0-1 .17V5ZM3 20V5a4 4 0 0 1 4-4h12a2 2 0 0 1 2 2v19a1 1 0 0 1-1 1H6a3 3 0 0 1-3-3Zm2 0a1 1 0 0 1 1-1h13v2H6a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBottomCenterStroked">
M7 2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H7Zm1 10V4h8v8H8Zm-5 8a1 1 0 1 0 0 2h18a1 1 0 1 0 0-2H3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBottomLeftStroked">
M4 3a1 1 0 0 0-2 0v18a1 1 0 0 0 1 1h18a1 1 0 1 0 0-2H4V3Zm7-1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H11Zm1 10V4h8v8h-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBottomRightStroked">
M22 3a1 1 0 1 0-2 0v17H3a1 1 0 1 0 0 2h18a1 1 0 0 0 1-1V3ZM3 2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3Zm1 10V4h8v8H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconBriefStroked">
M5 1a2 2 0 0 0-2 2v18c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.41A2 2 0 0 0 20.41 7L15 1.59A2 2 0 0 0 13.59 1H5Zm8 2H5v18h14V9h-5a1 1 0 0 1-1-1V3Zm4.59 4L15 4.41V7h2.59Zm-6.09 5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-5Zm-4.5.5c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm4.5 3.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-5Zm-4.5.5c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconButtonStroked">
M2 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H2Zm1 10V8h18v8H3Zm4-5a1 1 0 1 0 0 2h10a1 1 0 1 0 0-2H7Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCalendarStroked">
M9.65 2.11a1.11 1.11 0 1 0-2.22 0v.87H3.1A2.1 2.1 0 0 0 1 5.08V20.9c0 1.16.94 2.1 2.1 2.1h17.8a2.1 2.1 0 0 0 2.1-2.1V5.08a2.1 2.1 0 0 0-2.1-2.1h-4.33V2.1a1.11 1.11 0 1 0-2.22 0v.87h-4.7V2.1Zm6.92 18.67h4.2v-3.71h-4.2v3.7Zm0-5.94h4.2v-3.7h-4.2v3.7Zm-2.22-3.7v3.7h-4.7v-3.7h4.7Zm1.11-2.23h5.32v-3.7h-4.2v.86a1.11 1.11 0 1 1-2.23 0V5.2h-4.7v.87a1.11 1.11 0 0 1-2.22 0V5.2h-4.2v3.71h12.23Zm-1.11 8.16v3.7h-4.7v-3.7h4.7Zm-6.92 3.7v-3.7h-4.2v3.7h4.2Zm0-5.93v-3.7h-4.2v3.7h4.2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCandlestickChartStroked">
M5 2a1 1 0 0 1 1 1v6h1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H6v2a1 1 0 1 1-2 0v-2H3a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1V3a1 1 0 0 1 1-1Zm0 15h1v-6H4v6h1Zm11-9a1 1 0 0 1 1-1h1V3a1 1 0 1 1 2 0v4h1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-1v4a1 1 0 1 1-2 0v-4h-1a1 1 0 0 1-1-1V8Zm4 7h-2V9h2v6ZM10 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h1v6a1 1 0 1 0 2 0v-6h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-1V3a1 1 0 1 0-2 0v2h-1Zm2 8h-1V7h2v6h-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCarouselStroked">
M1 6h2v12H1v2h3a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H1v2Zm6-1a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1V5Zm2 1v12h6V6H9Zm10-1a1 1 0 0 1 1-1h3v2h-2v12h2v2h-3a1 1 0 0 1-1-1V5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCenterLeftStroked">
M4 3a1 1 0 1 0-2 0v18a1 1 0 1 0 2 0V3Zm7 3a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H11Zm1 10V8h8v8h-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCenterRightStroked">
M22 3a1 1 0 1 0-2 0v18a1 1 0 1 0 2 0V3ZM3 6a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H3Zm1 10V8h8v8H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconChainStroked">
M18.36 5.64a3 3 0 0 0-4.24 0L12 7.76a1 1 0 1 1-1.41-1.42l2.12-2.12a5 5 0 0 1 7.07 7.07l-2.12 2.12A1 1 0 0 1 16.24 12l2.12-2.12a3 3 0 0 0 0-4.24ZM5.64 18.36a3 3 0 0 0 4.24 0L12 16.24a1 1 0 0 1 1.41 1.42l-2.12 2.12a5 5 0 0 1-7.07-7.07l2.12-2.12A1 1 0 0 1 7.76 12l-2.12 2.12a3 3 0 0 0 0 4.24Zm9.9-8.48a1 1 0 0 0-1.42-1.42l-5.66 5.66a1 1 0 1 0 1.42 1.42l5.66-5.66Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCheckChoiceStroked">
M2 4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H2Zm1 5V6h9v3H3Zm-1 4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H2Zm1 5v-3h9v3H3Zm13-4a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-5Zm2 1v3h3v-3h-3Zm4.75-8.34a1 1 0 0 0-1.5-1.32l-2.8 3.2-1.24-1.25a1 1 0 1 0-1.42 1.42l2 2a1 1 0 0 0 1.46-.05l3.5-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCheckCircleStroked">
M12 23a11 11 0 1 0 0-22 11 11 0 0 0 0 22Zm9-11a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-4.23-2.36a1 1 0 1 0-1.54-1.28l-4.3 5.16-2.22-2.23a1 1 0 0 0-1.42 1.42l3 3a1 1 0 0 0 1.48-.07l5-6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconChecklistStroked">
M7.7 2.8a1 1 0 0 1 0 1.4l-3 3a1 1 0 0 1-1.4 0L1.8 5.7a1 1 0 0 1 1.4-1.4l.8.79 2.3-2.3a1 1 0 0 1 1.4 0Z
M7.7 9.8a1 1 0 0 1 0 1.4l-3 3a1 1 0 0 1-1.4 0l-1.5-1.5a1 1 0 1 1 1.4-1.4l.8.79 2.3-2.3a1 1 0 0 1 1.4 0Z
M7.7 16.8a1 1 0 0 1 0 1.4l-3 3a1 1 0 0 1-1.4 0l-1.5-1.5a1 1 0 1 1 1.4-1.4l.8.79 2.3-2.3a1 1 0 0 1 1.4 0Z
M9.5 12a1 1 0 0 1 1-1h11a1 1 0 1 1 0 2h-11a1 1 0 0 1-1-1Z
M9.5 19a1 1 0 0 1 1-1h11a1 1 0 1 1 0 2h-11a1 1 0 0 1-1-1Z
M9.5 5a1 1 0 0 1 1-1h11a1 1 0 1 1 0 2h-11a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconChevronDownStroked">
M4.08 8.15c.47-.5 1.26-.54 1.77-.07L12 13.8l6.15-5.7a1.25 1.25 0 0 1 1.7 1.83l-7 6.5c-.48.44-1.22.44-1.7 0l-7-6.5a1.25 1.25 0 0 1-.07-1.77Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconChevronRightStroked">
M7.9 20.17a1.25 1.25 0 0 1-.07-1.77l5.71-6.15-5.7-6.15a1.25 1.25 0 0 1 1.83-1.7l6.5 7c.44.48.44 1.22 0 1.7l-6.5 7c-.47.5-1.26.54-1.77.07Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCloudStroked">
M20 11.3V11c0-3.9-3.1-7-7-7-2.8 0-5.2 1.7-6.3 4-3.2.2-5.7 2.8-5.7 6 0 3.3 2.7 6 6 6h11.5a4.48 4.48 0 0 0 1.5-8.7ZM18.5 18H7a4.01 4.01 0 0 1-.9-7.9c.3-.1.6-.1.9-.1.31 0 .56 0 .84.1.13.04.28-.04.31-.17.13-.59.39-1.1.65-1.63C9.7 6.9 11.2 6 13 6a4.95 4.95 0 0 1 4.69 6.74.2.2 0 0 0 .19.26h.62c.4 0 .8.1 1.1.3a2.48 2.48 0 0 1-1.1 4.7Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCloudUploadStroked">
M20 11v.3a4.48 4.48 0 0 1-1.5 8.7H17s-1 0-1-1 1-1 1-1h1.5a2.48 2.48 0 0 0 1.1-4.7c-.3-.2-.7-.3-1.1-.3h-.62a.2.2 0 0 1-.2-.26A4.95 4.95 0 0 0 13 6c-1.79 0-3.29.9-4.19 2.3a7.06 7.06 0 0 0-.65 1.63c-.03.13-.18.2-.3.16C7.55 10 7.3 10 7 10c-.3 0-.6 0-.9.1A4.01 4.01 0 0 0 7 18s1 0 1 1-1 1-1 1c-3.3 0-6-2.7-6-6 0-3.2 2.5-5.8 5.7-6 1.1-2.3 3.5-4 6.3-4 3.9 0 7 3.1 7 7Zm-4.3 3.7a1 1 0 0 1-1.4 0L13 13.42V19a1 1 0 1 1-2 0v-5.59l-1.3 1.3a1 1 0 0 1-1.4-1.42l3-3a1 1 0 0 1 1.4 0l3 3a1 1 0 0 1 0 1.42Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCodeStroked">
M14.96 5.27a1 1 0 1 0-1.92-.54l-4 14a1 1 0 1 0 1.92.54l4-14ZM7.71 6.3a1 1 0 0 1 0 1.42L3.4 12l4.3 4.3a1 1 0 1 1-1.42 1.4l-5-5a1 1 0 0 1 0-1.4l5-5a1 1 0 0 1 1.42 0Zm8.58 0a1 1 0 0 1 1.42 0l5 5a1 1 0 0 1 0 1.42l-5 5a1 1 0 0 1-1.42-1.42L20.6 12l-4.3-4.3a1 1 0 0 1 0-1.4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCoinMoneyStroked">
M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0Zm9-11a11 11 0 1 0 0 22 11 11 0 0 0 0-22ZM8.8 7.3a1 1 0 0 1 1.4 0L12 9.08l1.8-1.8a1 1 0 1 1 1.4 1.42L13.92 10H15a1 1 0 1 1 0 2h-2v1h2a1 1 0 1 1 0 2h-2v1a1 1 0 1 1-2 0v-1H9a1 1 0 1 1 0-2h2v-1H9a1 1 0 1 1 0-2h1.09l-1.3-1.3a1 1 0 0 1 0-1.4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconColumnsStroked">
M4 5c0-1.1.9-2 2-2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5Zm5 0H6v14h3V5Z
M13 5c0-1.1.9-2 2-2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3a2 2 0 0 1-2-2V5Zm5 0h-3v14h3V5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCommentStroked">
m4 17.9.94-.74a2.97 2.97 0 0 1 1.85-.63H20V5H4v12.9ZM21 3H3a1 1 0 0 0-1 1v15.95a1 1 0 0 0 1.62.79l2.55-2a1 1 0 0 1 .62-.21H21a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1ZM8 8a1 1 0 0 0 0 2h8a1 1 0 1 0 0-2H8Zm-1 5a1 1 0 0 1 1-1h5a1 1 0 1 1 0 2H8a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconComponentPlaceholderStroked">
M3 2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3Zm1 5V4h7v3H4Zm8 8a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1h-9Zm1 5v-3h7v3h-7Zm2-17a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V3Zm2 1v7h3V4h-3ZM3 11a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-9a1 1 0 0 0-1-1H3Zm1 9v-7h3v7H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconComponentStroked">
M1 9a1 1 0 0 1 1-1h20a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V9Zm2 1v4h18v-4H3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCopyStroked">
M22 16a2 2 0 0 1-2 2V4H6c0-1.1.9-2 2-2h12a2 2 0 0 1 2 2v12ZM2 8c0-1.1.9-2 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8Zm2 0h12v12H4V8Zm2 6a1 1 0 0 1 1-1h2v-2a1 1 0 1 1 2 0v2h2a1 1 0 1 1 0 2h-2v2a1 1 0 1 1-2 0v-2H7a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCornerRadiusStroked">
M12 4h9a1 1 0 1 0 0-2h-9A10 10 0 0 0 2 12v9a1 1 0 1 0 2 0v-9a8 8 0 0 1 8-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCrossCircleStroked">
M23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0Zm-11 9a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM8.11 8.11a1 1 0 0 1 1.42 0L12 10.6l2.47-2.48a1 1 0 1 1 1.42 1.42L13.4 12l2.48 2.47a1 1 0 0 1-1.42 1.42L12 13.4 9.53 15.9a1 1 0 0 1-1.42-1.42L10.6 12 8.1 9.53a1 1 0 0 1 0-1.42Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCrossStroked">
M3.62 19.12a1.25 1.25 0 0 0 1.76 1.76l7.12-7.11 7.12 7.11a1.25 1.25 0 0 0 1.76-1.76L14.27 12l7.11-7.12a1.25 1.25 0 0 0-1.76-1.76l-7.12 7.11-7.12-7.11a1.25 1.25 0 1 0-1.76 1.76L10.73 12l-7.11 7.12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconCustomerSupportStroked">
M7 8a5 5 0 0 1 10 0v8a5 5 0 0 1-2.17 4.12.5.5 0 0 0-.33-.12h-4a.5.5 0 0 0-.5.5v2c0 .28.22.5.5.5h4a.5.5 0 0 0 .5-.5v-.17A7 7 0 0 0 18.93 17H21a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-2V8A7 7 0 1 0 5 8v1H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V8Zm-3 7v-4h1v4H4Zm15-4v4h1v-4h-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconDeleteStroked">
M10 5V4h4v1h-4ZM8 5V3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2h4a1 1 0 1 1 0 2h-1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V7H4a1 1 0 0 1 0-2h4Zm7 2H7v13h10V7h-2ZM9 9.5c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5v7a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-7Zm4 0c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5v7a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-7Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconDownCircleStroked">
M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0Zm9-11a11 11 0 1 0 0 22 11 11 0 0 0 0-22Zm-3.18 9.3a1 1 0 1 0-1.42 1.4l3.9 3.9a1 1 0 0 0 1.4 0l3.9-3.9a1 1 0 0 0-1.42-1.4L12 13.46 8.82 10.3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconDownloadStroked">
M13 4a1 1 0 1 0-2 0v9.59l-2.8-2.8a1 1 0 0 0-1.4 1.42l4.5 4.5a1 1 0 0 0 .7.29 1 1 0 0 0 .7-.29l4.5-4.5a1 1 0 0 0-1.4-1.42L13 13.6V4Zm8 9a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-7a1 1 0 1 1 2 0v6h16v-6a1 1 0 0 1 1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconEdit2Stroked">
M21.14 4.41 19.73 3a2 2 0 0 0-2.83 0l-1.41 1.41-.71.71L8.3 11.6a1 1 0 0 0-.28.53l-.6 3.43a1 1 0 0 0 1.16 1.16l3.43-.6a1 1 0 0 0 .53-.28l6.47-6.47.7-.7 1.42-1.42a2 2 0 0 0 0-2.83Zm-2.12 2.13.7-.71-1.4-1.42-.71.71 1.41 1.42Zm-1.41 1.41-1.42-1.41-6.24 6.24-.3 1.72 1.71-.3 6.25-6.25ZM2 5a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2H4v14h14v-6a1 1 0 1 1 2 0v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconEditStroked">
M18.58 2.59a2 2 0 0 0-2.83 0L13.62 4.7l-.7.7-9.8 9.8a1 1 0 0 0-.28.55l-.83 5.08a1 1 0 0 0 1.15 1.15l5.08-.83a1 1 0 0 0 .55-.28l9.8-9.8.7-.7 2.12-2.13a2 2 0 0 0 0-2.83l-2.83-2.83Zm0 5.66L20 6.84 17.16 4l-1.41 1.42 2.83 2.83Zm-1.42 1.42-2.83-2.83-9.56 9.56-.56 3.39 3.39-.56 9.56-9.56Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconElementStroked">
M14.75 6.5a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0ZM12.5 11a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9ZM7 18.75a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5Zm4.5-2.25a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm6.5 2.25a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5Zm4.5-2.25a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconExternalOpenStroked">
M21 2a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V5.41l-9.3 9.3a1 1 0 0 1-1.4-1.42L18.58 4H15a1 1 0 1 1 0-2h6ZM2 5a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2H4v14h14v-7a1 1 0 1 1 2 0v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFillStroked">
M7.42 2.17a1 1 0 0 1 1.41 0l9.43 9.44a1 1 0 0 1 0 1.41l-.02.02-6.7 6.7a2.5 2.5 0 0 1-3.53 0l-5.66-5.66a2.5 2.5 0 0 1 0-3.53l6.01-6.01-.94-.95a1 1 0 0 1 0-1.42Zm2.36 3.78 6.36 6.36-2.18 2.19H5.6l-1.83-1.83a.5.5 0 0 1 0-.71l6-6.01ZM21 19c0 1.1-.67 2-1.5 2s-1.5-.9-1.5-2c0-1.08.66-2.49 1.1-3.31a.44.44 0 0 1 .8 0c.44.82 1.1 2.23 1.1 3.31Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFingerLeftStroked">
M6.7 3.7a1 1 0 0 0-1.4-1.4l-3 3a1 1 0 0 0 0 1.4l3 3a1 1 0 0 0 1.4-1.4L5.42 7h3.44v5.65c-.23-.26-.54-.5-.96-.61a2.98 2.98 0 0 0-1.54-.1c-.55.15-.93.5-1.14.96-.19.4-.22.84-.2 1.19 0 .36.05.73.1 1.07.15.93.64 2.85 4 6.52a1 1 0 0 0 .73.32h11a1 1 0 0 0 1-1v-7.47c0-.96-.33-1.7-.83-2.21a2.8 2.8 0 0 0-1.49-.8l-5.67-.87V7H21a1 1 0 1 0 0-2h-7.2a2.5 2.5 0 0 0-4.9 0H5.4l1.3-1.3Zm4.14 1.8a.5.5 0 1 1 1 0v5c0 .5.37.92.86 1 4 .6 6.14.93 6.47 1 .1 0 .26.07.4.22.12.12.27.35.27.81V20H10.3c-2.9-3.23-3.13-4.72-3.2-5.16A6.17 6.17 0 0 1 7 13.9c.08 0 .19.03.34.07l.07.1c.09.15.16.33.26.6l.05.14c.12.3.29.74.58 1.1.35.43.86.74 1.54.74v-.04c.34-.06.7-.25.82-.38.05-.08.11-.22.13-.27a.96.96 0 0 0 .05-.24 1.13 1.13 0 0 0 0-.1 12.2 12.2 0 0 0 0-.6v-9.5Zm-3.51 8.45Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFixedStroked">
M4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm8-10c-2.4 0-4.6.85-6.33 2.26L4.31 2.89a1 1 0 0 0-1.42 1.42l1.37 1.36a9.96 9.96 0 0 0 0 12.66l-1.37 1.36a1 1 0 1 0 1.42 1.42l1.36-1.37a9.96 9.96 0 0 0 12.66 0l1.36 1.37a1 1 0 0 0 1.42-1.42l-1.37-1.36a9.96 9.96 0 0 0 0-12.66l1.37-1.36a1 1 0 0 0-1.42-1.42l-1.36 1.37A9.96 9.96 0 0 0 12 2Zm-2 10a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm2-4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFlowChartStroked">
M7.5 3a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v4.5a1 1 0 0 1-1 1H13V11h4.5a1 1 0 0 1 1 1v3.5H21a1 1 0 0 1 1 1V21a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-4.5a1 1 0 0 1 1-1h2.5V13h-9v2.5H10a1 1 0 0 1 1 1V21a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-4.5a1 1 0 0 1 1-1h2.5V12a1 1 0 0 1 1-1H11V8.5H8.5a1 1 0 0 1-1-1V3Zm-1 14.5H4V20h5v-2.5H6.5Zm11 0H15V20h5v-2.5h-2.5ZM9.5 4v2.5h5V4h-5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFolderStroked">
M4 4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-8.59L10 4.59A2 2 0 0 0 8.59 4H4Zm0 2h4.59l1 1-1 1H4V6Zm0 4v8h16V8h-8.59L10 9.41a2 2 0 0 1-1.41.59H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFollowStroked">
M6 8c0 3.3 2.7 6 6 6s6-2.7 6-6-2.7-6-6-6-6 2.7-6 6Zm2 0c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4ZM2.12 20.56C2.35 20.05 4.65 15 12 15c0 0 1 0 1 1s-1 1-1 1c-6.2 0-8 4.2-8 4.4-.2.5-.8.7-1.3.5-.6-.2-.8-.8-.6-1.3l.02-.04ZM17 15a1 1 0 1 1 2 0v2h2a1 1 0 1 1 0 2h-2v2a1 1 0 1 1-2 0v-2h-2a1 1 0 1 1 0-2h2v-2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconForwardStroked">
m20.12 12-5.68 5.98V16.5a3 3 0 0 0-3.01-3c-2.3 0-4.44.06-6.26.85-.45.2-.86.42-1.24.69.35-1.13.9-2.11 1.64-2.9 1.3-1.43 3.27-2.43 6-2.6a3.05 3.05 0 0 0 2.87-3.04v-.48L20.12 12Zm-16.6 6.25c1.81-2.53 3.94-2.73 7.92-2.75a1 1 0 0 1 1 1v4a1 1 0 0 0 1.71.69l8.07-8.5a1 1 0 0 0 0-1.38l-8.07-8.5a1 1 0 0 0-1.71.7v3c0 .55-.45.99-1 1.02-6.22.4-9.8 4.6-9.94 10.14a13.45 13.45 0 0 0 .03.77c.04.35.1.8.2 1.18.1.35.2.64.33.7.13.05.28-.02.43-.33a14.17 14.17 0 0 1 1.03-1.74Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconFullScreenStroked">
M11.2 11.2a1 1 0 0 1-1.4 0L4 5.42V9a1 1 0 1 1-2 0V3a1 1 0 0 1 .29-.7v-.01A1 1 0 0 1 3 2H9a1 1 0 0 1 0 2H5.41l5.8 5.8a1 1 0 0 1 0 1.4Zm1.6 1.6a1 1 0 0 1 1.4 0l5.8 5.79V15a1 1 0 1 1 2 0v6a1 1 0 0 1-.29.7v.01a1 1 0 0 1-.7.29H15a1 1 0 1 1 0-2h3.59l-5.8-5.8a1 1 0 0 1 0-1.4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconGiftStroked">
M8 3a3 3 0 0 0-2.83 4H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1v8a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-8h1a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1h-2.17A3 3 0 0 0 16 3h-2c-.77 0-1.47.29-2 .76A2.99 2.99 0 0 0 10 3H8Zm5 6h7v2h-7V9Zm-2 0H4v2h7V9Zm0 4H6v7h5v-7Zm2 7h5v-7h-5v7ZM11 6v1H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1Zm6 0a1 1 0 0 1-1 1h-3V6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconGridStroked">
M3 2a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3Zm1 7V4h5v5H4Zm-1 4a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1H3Zm1 7v-5h5v5H4Zm9-17a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1V3Zm2 1v5h5V4h-5Zm-1 9a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1h-7Zm1 7v-5h5v5h-5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconHeartStroked">
M12 4.16a5.45 5.45 0 0 0-3.82-2.08 6.41 6.41 0 0 0-5.13 1.87A6.96 6.96 0 0 0 1 9.03a10.3 10.3 0 0 0 2.04 5.62c2.01 2.9 6.22 6.38 7.73 7.6.72.58 1.74.58 2.46 0 1.51-1.22 5.72-4.7 7.73-7.6A10.3 10.3 0 0 0 23 9.03a6.96 6.96 0 0 0-2.05-5.08 6.41 6.41 0 0 0-5.13-1.87c-1.44.14-2.83.8-3.82 2.08Zm-4.02-.09a4.41 4.41 0 0 0-3.5 1.27A4.96 4.96 0 0 0 3 9a8.32 8.32 0 0 0 1.68 4.52c1.81 2.6 5.75 5.9 7.32 7.16 1.57-1.26 5.5-4.55 7.32-7.16A8.32 8.32 0 0 0 21 8.99a4.96 4.96 0 0 0-1.48-3.65 4.41 4.41 0 0 0-3.5-1.27c-1.23.12-2.38.8-3 2.28-.38.9-1.66.9-2.04 0a3.51 3.51 0 0 0-3-2.28Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconHelpCircleStroked">
M4.22 4.22a10.97 10.97 0 0 1 15.56 0l-.7.7.7-.7a10.97 10.97 0 0 1 0 15.56 10.97 10.97 0 0 1-15.56 0l.7-.7-.7.7a10.97 10.97 0 0 1 0-15.56ZM12 3a8.97 8.97 0 0 0-9 9 8.97 8.97 0 0 0 9 9 8.97 8.97 0 0 0 9-9 8.97 8.97 0 0 0-9-9Z
M8 9.31a4 4 0 1 1 5 3.88v1.12a1 1 0 1 1-2 0v-2a1 1 0 0 1 1-1 2 2 0 1 0-2-2 1 1 0 0 1-2 0Z
M12 18.81a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconHomeStroked">
M11.39 2.21a1 1 0 0 1 1.22 0l9 7A1 1 0 0 1 22 10v11a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-7h-4v7a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V10c0-.3.14-.6.39-.79l9-7ZM4 10.5V20h4v-7a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v7h4v-9.51l-8-6.22-8 6.22Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconHourglassStroked">
M4 1a1 1 0 0 0 0 2h1v5c0 .27.1.52.3.7L8.58 12l-3.3 3.3A1 1 0 0 0 5 16v5H4a1 1 0 1 0 0 2h16a1 1 0 1 0 0-2h-1v-5a1 1 0 0 0-.3-.7L15.42 12l3.3-3.3A1 1 0 0 0 19 8V3h1a1 1 0 1 0 0-2H4Zm9.3 10.3L17 7.58V3H7v4.59l3.7 3.7a1 1 0 0 1 0 1.42L7 16.4V21h10v-4.59l-3.7-3.7a1 1 0 0 1 0-1.42ZM9 7a1 1 0 0 1 1-1h4a1 1 0 1 1 0 2h-4a1 1 0 0 1-1-1Zm0 11a1 1 0 1 0 0 2h6a1 1 0 1 0 0-2H9Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconImageStroked">
M2 4c0-1.1.9-2 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm18 0H4v16h16V4ZM9 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2ZM6 9a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm11.7 1.8a1 1 0 0 0-1.4 0l-3.87 3.86-1.8-1.44a1 1 0 0 0-1.34.07l-3.5 3.5a1 1 0 1 0 1.42 1.42l2.86-2.87 1.8 1.44a1 1 0 0 0 1.34-.07L17 12.9l.8.8a1 1 0 0 0 1.4-1.42l-1.5-1.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconIndependentCornersStroked">
M15 2a1 1 0 1 0 0 2h5v5a1 1 0 1 0 2 0V3a1 1 0 0 0-1-1h-6ZM9 22a1 1 0 1 0 0-2H4v-5a1 1 0 1 0-2 0v6a1 1 0 0 0 1 1h6ZM3 10a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H4v5a1 1 0 0 1-1 1Zm19 5a1 1 0 1 0-2 0v5h-5a1 1 0 1 0 0 2h6a1 1 0 0 0 1-1v-6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconInheritStroked">
M2 4.5C2 3.67 2.67 3 3.5 3h17c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5H9v5h5v-1.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5h-5a1.5 1.5 0 0 1-1.5-1.5V18H8a1 1 0 0 1-1-1v-6H3.5A1.5 1.5 0 0 1 2 9.5v-5ZM7 9h13V5H4v4h3Zm13 6h-4v4h4v-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconInnerSectionStroked">
M5 2a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H5Zm1 18V4h3v16H6Zm8-18a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1h-5Zm1 18V4h3v16h-3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconInteractiveStroked">
M12.5 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm8.18-10a8.18 8.18 0 1 1-16.36 0 8.18 8.18 0 0 1 16.36 0Zm-1.82 0a6.36 6.36 0 1 1-12.72 0 6.36 6.36 0 0 1 12.72 0Zm-6.36 4.55a4.55 4.55 0 1 0 0-9.1 4.55 4.55 0 0 0 0 9.1ZM15.23 12a2.73 2.73 0 1 1-5.46 0 2.73 2.73 0 0 1 5.46 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconInviteStroked">
M22 8.8c0-.1 0-.2-.1-.2 0-.1-.1-.1-.1-.2 0 0 0-.1-.1-.1 0 0-.1-.1-.2-.1L19 6.5V4c0-.5-.5-1-1-1h-4.2l-1.2-.8c-.3-.2-.8-.2-1.1 0l-1.3.8H6c-.5 0-1 .5-1 1v2.5L2.5 8.1s-.1.1-.2.1c0 0 0 .1-.1.1 0 0-.1.1-.1.2s-.1.2-.1.3V21c0 .5.5 1 1 1h18c.5 0 1-.5 1-1V8.8ZM7 5h10v5.1l-5 2.8-5-2.8V5Zm13 15H4v-9.3l1 .6 2 1.1 4.5 2.5c.3.2.7.2 1 0l4.5-2.5 2-1.1 1-.6V20Z
M15 9c0 .5-.5 1-1 1h-1v1c0 .5-.5 1-1 1a1 1 0 0 1-1-1v-1h-1a1 1 0 0 1-1-1c0-.6.5-1 1-1h1V7c0-.5.5-1 1-1s1 .5 1 1v1h1c.5 0 1 .5 1 1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconKeyStroked">
M15.33 4a4.59 4.59 0 0 0-4.66 4.5c0 .62.13 1.2.36 1.74l.27.62L5 17.4V20h2.12v-2.5H9.7V15h2.57v-2.37h1l.21.01a2.5 2.5 0 0 1 .3.07l.06.02.46.1c.4.1.8.17 1.03.17 2.6 0 4.67-2.04 4.67-4.5S17.94 4 15.33 4ZM8.67 8.5c0-3.62 3.01-6.5 6.66-6.5A6.58 6.58 0 0 1 22 8.5a6.58 6.58 0 0 1-7.73 6.38V17H11.7v2.5H9.12V22H3v-5.4l5.96-6.2a6.35 6.35 0 0 1-.3-1.9Zm8.33 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLeftCircleStroked">
M2.5 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0Zm9-11a11 11 0 1 0 0 22 11 11 0 0 0 0-22Zm2.2 7.7a1 1 0 0 0-1.4-1.4l-3.9 3.88a1 1 0 0 0 0 1.42l3.9 3.89a1 1 0 0 0 1.4-1.42l-3.17-3.18L13.7 8.7Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLightningStroked">
M10.1 10.58c.06 0 .1.05.1.12l-1.1 6.36 7.02-7.11h-3.07a.1.1 0 0 1-.1-.15l3.5-6.8H9.71l-3.5 7.58h3.88ZM8.3 1.29A.5.5 0 0 1 8.76 1H18.9c.37 0 .61.4.44.73l-3.18 6.22h3.55a.5.5 0 0 1 .36.85L7.18 21.87a.5.5 0 0 1-.85-.44l1.51-8.85H3.88a.5.5 0 0 1-.46-.71L8.3 1.29Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLineChartStroked">
M2 3a1 1 0 0 1 2 0v17h17a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1V3Zm18.38 3.47a1 1 0 0 0-1.76-.94L15.1 12.1 10 9.14a1 1 0 0 0-1.37.36l-3.5 6a1 1 0 0 0 1.72 1l3-5.13 5.14 3a1 1 0 0 0 1.38-.4l4-7.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLockStroked">
M12 2a5 5 0 0 0-5 5v1H6a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5Zm3 6V7a3 3 0 1 0-6 0v1h6Zm-8 2H6v10h12V10H7Zm5 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconLoopTextStroked">
M19.64 2.23a1 1 0 0 0-1.28 1.54l.88.73H8a7 7 0 0 0-7 7 1 1 0 1 0 2 0 5 5 0 0 1 5-5h11.24l-.88.73a1 1 0 1 0 1.28 1.54l3-2.5a1 1 0 0 0 0-1.54l-3-2.5ZM22 11a1 1 0 0 1 1 1 7 7 0 0 1-7 7H4.76l.88.73a1 1 0 1 1-1.28 1.54l-3-2.5a1.05 1.05 0 0 1-.11-.1 1 1 0 0 1 .12-1.44l2.99-2.5a1 1 0 1 1 1.28 1.54l-.88.73H16a5 5 0 0 0 5-5 1 1 0 0 1 1-1ZM7 9.5c0-.28.22-.5.5-.5h6c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-6a.5.5 0 0 1-.5-.5v-1Zm8.5-.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h2a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-2ZM7 13.5c0-.28.22-.5.5-.5h3c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1Zm5.5-.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMailStroked">
M3 4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h18a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H3Zm0 3.23V18h18V7.23l-8.41 6.08a1 1 0 0 1-1.18 0L3 7.23ZM19.3 6H4.7l7.3 5.27L19.3 6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMapPinStroked">
M19 10a8.6 8.6 0 0 1-.94 3.47 20.67 20.67 0 0 1-2.39 3.83c-.93 1.2-1.9 2.21-2.71 2.9-.4.34-.72.57-.96.7a7.07 7.07 0 0 1-.96-.7c-.81-.69-1.78-1.7-2.71-2.9a20.67 20.67 0 0 1-2.4-3.83A8.6 8.6 0 0 1 5 10c0-2.26.74-3.97 1.88-5.12C8.03 3.74 9.74 3 12 3c2.26 0 3.97.74 5.12 1.88C18.26 6.03 19 7.74 19 10Zm2 0c0 5.42-7 13-9 13s-9-7.58-9-13 3.58-9 9-9 9 3.58 9 9Zm-9 3a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm2-4a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMarginLeftStroked">
M16 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-4Zm0 2h4v16h-4V4Zm-5.59 11.3A1 1 0 0 1 9 13.87l.59-.59H4.4l.59.59a1 1 0 1 1-1.41 1.41L1.29 13a1 1 0 0 1 0-1.41l2.3-2.3A1 1 0 0 1 5 10.71l-.59.58H9.6L9 10.71a1 1 0 1 1 1.41-1.42l2.3 2.3a1 1 0 0 1 0 1.41l-2.3 2.3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMarginStroked">
M4 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4Zm9 2h7v7h-2a1 1 0 1 0 0 2h2v7h-7v-2a1 1 0 1 0-2 0v2H4v-7h2a1 1 0 1 0 0-2H4V4h7v2a1 1 0 1 0 2 0V4ZM9 8a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1H9Zm1 6v-4h4v4h-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMinusCircleStroked">
M12 23a11 11 0 1 0 0-22 11 11 0 0 0 0 22Zm9-11a9 9 0 1 1-18 0 9 9 0 0 1 18 0ZM8 11a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2H8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMinusStroked">
M3 13a1 1 0 1 1 0-2h18a1 1 0 1 1 0 2H3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconModalStroked">
M4 3a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H4Zm0 2h16v2H4V5Zm0 4v10h16V9H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMoneyExchangeStroked">
M3 12a9 9 0 0 1 18 0 1 1 0 1 0 2 0 11 11 0 1 0-11 11 1 1 0 1 0 0-2 9 9 0 0 1-9-9Zm5.17-5.2a1 1 0 0 1 1.41 0L12 9.2l2.42-2.42a1 1 0 1 1 1.41 1.42l-2.3 2.29h2.22a1 1 0 1 1 0 2H13v1h2.75a1 1 0 1 1 0 2H13v2a1 1 0 1 1-2 0v-2H8.25a1 1 0 1 1 0-2H11v-1H8.25a1 1 0 1 1 0-2h2.21l-2.3-2.3a1 1 0 0 1 0-1.4Zm11.8 8.92c.3-.3.77-.3 1.06 0l1.5 1.5A.75.75 0 0 1 22 18.5h-6a.75.75 0 0 1 0-1.5h4.19l-.22-.22a.75.75 0 0 1 0-1.06Zm-3 7.06a.75.75 0 1 0 1.06-1.06l-.22-.22H22a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0-.53 1.28l1.5 1.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMonitorStroked">
M1 5c0-1.1.9-2 2-2h18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-8v2h3a1 1 0 1 1 0 2H8a1 1 0 1 1 0-2h3v-2H3a2 2 0 0 1-2-2V5Zm20 10H3V5h18v10Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMoreStroked">
M7.5 12a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z
M15 12a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z
M20 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconMusicNoteStroked">
M11.3 2.29a1 1 0 0 1 .95-.26l6.42 1.5c.45.1.77.51.77.98v4.05a1 1 0 0 1-1.23.97L13 8.3v10.18A3.52 3.52 0 0 1 9.48 22H7.52A3.52 3.52 0 0 1 4 18.48v-.46a3.52 3.52 0 0 1 3.52-3.52H11V3a1 1 0 0 1 .3-.71ZM13 6.24l4.44 1.06v-2L13 4.26v1.98ZM7.52 16.5H11v1.98c0 .84-.68 1.52-1.52 1.52H7.52C6.68 20 6 19.32 6 18.48v-.46c0-.84.68-1.52 1.52-1.52Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconNineGridStroked">
M5 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2ZM2 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm3 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm-3-1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm2 7a1 1 0 1 0 2 0 1 1 0 0 0-2 0Zm1-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm7-10a1 1 0 1 1 0-2 1 1 0 0 1 0 2ZM9 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm2 7a1 1 0 1 0 2 0 1 1 0 0 0-2 0Zm1-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm0 11a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm-3-1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm7-14a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm2 7a1 1 0 1 0 2 0 1 1 0 0 0-2 0Zm1-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm0 11a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm-3-1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconNoteMoneyStroked">
M1 5.5c0-1.1.9-2 2-2h18a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-13Zm20 0H3v13h18v-13ZM8.8 7.3a1 1 0 0 1 1.4 0L12 9.08l1.8-1.8a1 1 0 1 1 1.4 1.42L13.92 10H15a1 1 0 1 1 0 2h-2v1h2a1 1 0 1 1 0 2h-2v1a1 1 0 1 1-2 0v-1H9a1 1 0 1 1 0-2h2v-1H9a1 1 0 1 1 0-2h1.09l-1.3-1.3a1 1 0 0 1 0-1.4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconOrderedListStroked">
M5 4.5V9h.5c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5H3V5h-.5a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5h2c.28 0 .5.22.5.5v1Zm3 0c0-.28.22-.5.5-.5h12c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-12a.5.5 0 0 1-.5-.5v-1Zm0 10c0-.28.22-.5.5-.5h12c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-12a.5.5 0 0 1-.5-.5v-1ZM8.5 8a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h7a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-7ZM8 18.5c0-.28.22-.5.5-.5h7c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5v-1Zm-6-5c0-.28.22-.5.5-.5h3c.28 0 .5.22.5.5v4a.5.5 0 0 1-.5.5H4v1h1.5c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-4c0-.28.22-.5.5-.5H4v-1H2.5a.5.5 0 0 1-.5-.5v-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPieChart2Stroked">
M11 3.05a9 9 0 1 0 6.62 15.98l-6.47-6.47a.5.5 0 0 1-.15-.35V3.05Zm2 0V11h7.95A9 9 0 0 0 13 3.05ZM14.41 13l4.62 4.62A8.96 8.96 0 0 0 20.95 13H14.4ZM1 12a11 11 0 1 1 22 0 11 11 0 0 1-22 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPiechartH5Stroked">
M11 3.05A9 9 0 0 0 12 21v2a11 11 0 1 1 10.59-8h-2.1c.22-.64.38-1.3.46-2H14.4l2 2H13.6L11 12.41V3.05Zm2 0V11h7.95A9 9 0 0 0 13 3.05ZM13 22v-6h1.5v2.25H16V16h1.5v6H16v-2.25h-1.5V22H13Zm5.75-4.5v2.25h2.5v.75h-2.5V22h4v-3.75h-2.5v-.75h2.5V16h-4v1.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPieChartStroked">
M17.62 19.03A9 9 0 1 1 11 3.05v9.36l6.62 6.62Zm1.41-1.41L13 11.59V3.05a9 9 0 0 1 6.03 14.57ZM23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPlusCircleStroked">
M23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0Zm-11 9a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm-5-9a1 1 0 0 1 1-1h3V8a1 1 0 1 1 2 0v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPlusStroked">
M12 2a1 1 0 0 0-1 1v8H3a1 1 0 1 0 0 2h8v8a1 1 0 1 0 2 0v-8h8a1 1 0 1 0 0-2h-8V3a1 1 0 0 0-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconPrizeStroked">
M4 1a1 1 0 0 0-1 1v5a1 1 0 0 0 .4.8L7 10.5v.6a7 7 0 1 0 10 0v-.6l3.6-2.7A1 1 0 0 0 21 7V2a1 1 0 0 0-1-1H4Zm3 2v5L5 6.5V3h2Zm0 13a4.98 4.98 0 0 1 8.33-3.73A4.99 4.99 0 0 1 12 21a5 5 0 0 1-5-5Zm12-9.5L17 8V3h2v3.5ZM9 9.67a6.97 6.97 0 0 1 6 0V3H9v6.67ZM13 16a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm2 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRankingCardStroked">
M3 3.5a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2h18a2 2 0 0 0 2-2v-13a2 2 0 0 0-2-2H3Zm0 2h18v13H3v-13Zm5 3V15h.5c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5H6V9h-.5a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5h2c.28 0 .5.22.5.5v1Zm2-.25c0-.69.56-1.25 1.25-1.25h6.5c.69 0 1.25.56 1.25 1.25v3.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-3.5ZM12 9v2h5V9h-5Zm-1.5 6a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h8a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRealSizeStroked">
M1 6c0-1.1.9-2 2-2h18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6Zm20 0H3v12h18V6ZM5 9a1 1 0 0 1 1-1h1.5a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-5H6a1 1 0 0 1-1-1Zm11-1a1 1 0 1 0 0 2h.5v5a1 1 0 1 0 2 0V9a1 1 0 0 0-1-1H16Zm-3 2a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-1 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRedoStroked">
M3.5 12a8 8 0 0 1 13.66-5.66c.28.28.68.71 1.09 1.16H16a1 1 0 1 0 0 2h4.5a1 1 0 0 0 1-1V4a1 1 0 1 0-2 0v1.9a37.8 37.8 0 0 0-.93-.97 10 10 0 1 0 0 14.14 1 1 0 1 0-1.41-1.41A8 8 0 0 1 3.5 12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconReplyStroked">
m3.88 12 5.68 5.98V16.5a3 3 0 0 1 3.01-3c2.3 0 4.44.06 6.26.85.45.2.86.42 1.24.69a7.63 7.63 0 0 0-1.64-2.9c-1.3-1.43-3.27-2.43-6-2.6A3.05 3.05 0 0 1 9.56 6.5v-.48L3.88 12Zm16.6 6.25c-1.81-2.53-3.94-2.73-7.92-2.75a1 1 0 0 0-1 1v4a1 1 0 0 1-1.71.69l-8.07-8.5a1 1 0 0 1 0-1.38l8.07-8.5a1 1 0 0 1 1.71.7v3c0 .55.45.99 1 1.02 6.22.4 9.8 4.6 9.94 10.14a13.2 13.2 0 0 1-.03.77c-.04.35-.1.8-.2 1.18-.1.35-.2.64-.33.7-.13.05-.28-.02-.43-.33a14.18 14.18 0 0 0-1.03-1.74Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRingChartStroked">
M20.95 13A9 9 0 1 1 11 3.05V7.1a5 5 0 1 0 5.9 5.9h4.05Zm0-2H16.9A5 5 0 0 0 13 7.1V3.05A9 9 0 0 1 20.95 11ZM23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0Zm-8 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRotationStroked">
M19 1.5a1 1 0 0 1 1 1v5h-5a1 1 0 1 1 0-2h1.6A8 8 0 0 0 5.82 17.05c.34.44.35 1.07-.04 1.46-.4.39-1.03.39-1.38-.04A10 10 0 0 1 18 4.04V2.5a1 1 0 0 1 1-1ZM8 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm3 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm4.5-3.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM21 14a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconRowsStroked">
M19 4a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm0 5V6H5v3h14Z
M19 13a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3c0-1.1.9-2 2-2h14Zm0 5v-3H5v3h14Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSaveStroked">
M2 4c0-1.1.9-2 2-2h10.96a2 2 0 0 1 1.41.59l5.04 5.04a2 2 0 0 1 .59 1.4V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm9 0H8v3h3V4ZM6 4v4a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V4h1.96L20 9.04V20h-2v-5a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v5H4V4h2Zm10 12v4H8v-4h8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSearchStroked">
M16 10a6 6 0 1 1-12 0 6 6 0 0 1 12 0Zm-1.1 6.32a8 8 0 1 1 1.41-1.41l5.4 5.38a1 1 0 0 1-1.42 1.42l-5.38-5.39Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSectionStroked">
M3 4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H3Zm1 5V6h16v3H4Zm-1 4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3Zm1 5v-3h16v3H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSendMsgStroked">
M1 4c0-1.1.9-2 2-2h18a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2h-9.22L7 21.86A1 1 0 0 1 5.5 21v-2H3a2 2 0 0 1-2-2V4Zm20 0H3v13h3c.83 0 1.5.67 1.5 1.5v.73l3.25-1.95a2 2 0 0 1 1.03-.28H21V4Zm-7.7 3.3a1 1 0 0 1 1.4 0l3 3a1 1 0 0 1 0 1.4l-3 3a1 1 0 0 1-1.4-1.4l1.29-1.3H8a1 1 0 1 1 0-2h6.59l-1.3-1.3a1 1 0 0 1 0-1.4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSendStroked">
m9.47 13.12-4.11-2.74 13.1-4.92-5.22 13.05-2.38-3.97.09-.08 3.5-3.5a1 1 0 0 0-1.42-1.42l-3.5 3.5a1 1 0 0 0-.06.08ZM2.83 9.19l17.05-6.4a1 1 0 0 1 1.28 1.31l-6.81 17.03a1 1 0 0 1-1.79.14L9 15.32a1 1 0 0 0-.3-.32l-6.07-4.04a1 1 0 0 1 .2-1.77Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconServerStroked">
M6 1a2 2 0 0 0-2 2v18c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H6Zm0 2h12v10H6V3Zm0 12v6h12v-6H6ZM9.5 5a1 1 0 0 0 0 2h5a1 1 0 1 0 0-2h-5Zm0 4a1 1 0 0 0 0 2h5a1 1 0 1 0 0-2h-5ZM12 19.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSettingStroked">
M10.59 1.38c-.83 0-1.5.67-1.5 1.5v1.63L6.98 5.73l-1.4-.8a1.5 1.5 0 0 0-2.04.54L2.1 7.94A1.5 1.5 0 0 0 2.66 10l1.4.8v2.43l-1.42.82a1.5 1.5 0 0 0-.55 2.05l1.43 2.46a1.5 1.5 0 0 0 2.05.55l1.42-.82 2.1 1.2v1.64c0 .83.67 1.5 1.5 1.5h2.84c.83 0 1.5-.67 1.5-1.5v-1.64l2.08-1.2 1.45.83a1.5 1.5 0 0 0 2.04-.55l1.43-2.47a1.5 1.5 0 0 0-.55-2.05l-1.44-.83v-2.4l1.42-.83a1.5 1.5 0 0 0 .55-2.04l-1.42-2.47a1.5 1.5 0 0 0-2.05-.55l-1.41.81-2.1-1.2V2.87c0-.83-.67-1.5-1.5-1.5H10.6Zm.5 3.42V3.38h1.84v1.43c0 .54.29 1.03.75 1.3l2.6 1.5a1.5 1.5 0 0 0 1.5 0L19 6.9l.93 1.6-1.24.7a1.5 1.5 0 0 0-.75 1.3v3c0 .53.29 1.02.75 1.3l1.26.72-.93 1.6-1.26-.73a1.5 1.5 0 0 0-1.5 0l-2.58 1.49a1.5 1.5 0 0 0-.75 1.3v1.43H11.1V19.2a1.5 1.5 0 0 0-.75-1.3l-2.6-1.5a1.5 1.5 0 0 0-1.5 0L5 17.12l-.93-1.6 1.24-.71c.46-.27.75-.76.75-1.3v-3a1.5 1.5 0 0 0-.75-1.3l-1.22-.7.93-1.6 1.2.7a1.5 1.5 0 0 0 1.5 0l2.62-1.51c.46-.27.75-.76.75-1.3ZM12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm1.5-3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconShareMoneyStroked">
M17 2a3.5 3.5 0 0 0-3.43 4.18L8.3 9.37a3.5 3.5 0 1 0 .07 5.2L13 17.3v-2.33l-3.6-2.12a3.5 3.5 0 0 0-.03-1.79l5.13-3.1a3.49 3.49 0 0 0 6-2.46A3.5 3.5 0 0 0 17 2Zm-1.5 3.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM4.5 12a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm11.53 1.02L18 14.99l1.97-1.97a.75.75 0 1 1 1.06 1.06l-1.93 1.93H21a.75.75 0 0 1 0 1.5h-2.25v1H21a.75.75 0 0 1 0 1.5h-2.25v1.24a.75.75 0 0 1-1.5 0v-1.24H15a.75.75 0 1 1 0-1.5h2.25v-1H15a.75.75 0 0 1 0-1.5h1.9l-1.93-1.93a.75.75 0 1 1 1.06-1.06Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconShareStroked">
M14 5.5a3.5 3.5 0 1 1 1 2.45l-5.13 3.11a3.5 3.5 0 0 1 .03 1.79l5.22 3.08A3.49 3.49 0 0 1 21 18.5a3.5 3.5 0 1 1-6.9-.85l-5.22-3.08A3.49 3.49 0 0 1 3 12a3.5 3.5 0 0 1 5.8-2.63l5.27-3.19A3.51 3.51 0 0 1 14 5.5ZM17.5 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm-11 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm9.5 8a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconShrinkScreenStroked">
M3.7 2.3a1 1 0 0 0-1.4 1.4l5.79 5.8H4.5a1 1 0 0 0 0 2h6a1 1 0 0 0 1-1v-6a1 1 0 1 0-2 0v3.59l-5.8-5.8Zm8.88 10.82a1 1 0 0 0-.08.38v6a1 1 0 1 0 2 0v-3.59l5.8 5.8a1 1 0 0 0 1.4-1.42l-5.79-5.79h3.59a1 1 0 1 0 0-2h-6a1 1 0 0 0-.7.29l-.01.01a1 1 0 0 0-.21.32Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSmartphoneCheckStroked">
M4.5 3c0-1.1.9-2 2-2h11a2 2 0 0 1 2 2v18a2 2 0 0 1-2 2h-11a2 2 0 0 1-2-2V3Zm13 0h-11v18h11V3ZM10 18a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2h-4Zm4.77-8.36a1 1 0 1 0-1.54-1.28l-1.8 2.16-.72-.73a1 1 0 1 0-1.42 1.42l1.5 1.5a1 1 0 0 0 1.48-.07l2.5-3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSmartphoneStroked">
M6.5 1a2 2 0 0 0-2 2v18c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2h-11Zm0 2h11v18h-11V3ZM9 19a1 1 0 0 1 1-1h4a1 1 0 1 1 0 2h-4a1 1 0 0 1-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSonicStroked">
M12 2a1 1 0 0 1 1 1v18a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1Zm5 3a1 1 0 0 1 1 1v12a1 1 0 1 1-2 0V6a1 1 0 0 1 1-1ZM3 9a1 1 0 1 0-2 0v6a1 1 0 1 0 2 0V9Zm19-1a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V9a1 1 0 0 1 1-1ZM8 6a1 1 0 1 0-2 0v12a1 1 0 1 0 2 0V6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconSortStroked">
M6.61 14.04a1 1 0 0 1 .89-.54h9a1 1 0 0 1 .82 1.57l-4.5 6.5a1 1 0 0 1-1.64 0l-4.5-6.5a1 1 0 0 1-.07-1.03Zm2.8 1.46L12 19.24l2.6-3.74H9.4Z
M12 2a1 1 0 0 1 .82.43l4.5 6.5a1 1 0 0 1-.82 1.57h-9a1 1 0 0 1-.82-1.57l4.5-6.5A1 1 0 0 1 12 2ZM9.4 8.5h5.2L12 4.76 9.4 8.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconStackBarChartStroked">
M10 2a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1h-4Zm3 9h-2v9h2v-9Zm0-2V4h-2v5h2ZM3 7a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H3Zm3 7H4v6h2v-6Zm0-2V9H4v3h2Zm10-1a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V11Zm2 5h2v-4h-2v4Zm0 2v2h2v-2h-2Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconStarStroked">
M12 5.03 9.57 9.1c-.17.3-.46.5-.8.55l-4.3.79 3 3.46c.22.26.32.6.28.93l-.62 4.46 4.41-1.9c.3-.12.63-.12.92 0l4.4 1.9-.6-4.46c-.05-.34.05-.67.27-.93l3-3.46-4.3-.79a1.17 1.17 0 0 1-.8-.55L12 5.03Zm-1-2.46a1.16 1.16 0 0 1 2 0l3.03 5.07 5.51 1c.89.17 1.26 1.24.68 1.92l-3.8 4.4.77 5.71c.13.9-.78 1.6-1.61 1.23L12 19.5l-5.58 2.4a1.17 1.17 0 0 1-1.61-1.23l.78-5.7-3.8-4.4a1.17 1.17 0 0 1 .67-1.92l5.51-1L11 2.56Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconStopwatchStroked">
M8.5 1a1 1 0 0 0 0 2h7a1 1 0 1 0 0-2h-7ZM12 4a9.5 9.5 0 1 0 6.67 2.74l1.04-1.03a1 1 0 0 0-1.42-1.42L17.1 5.5A9.46 9.46 0 0 0 12 4Zm-7.5 9.5a7.5 7.5 0 1 1 15 0 7.5 7.5 0 0 1-15 0ZM13 9a1 1 0 1 0-2 0v4.5a1 1 0 1 0 2 0V9Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconStoryStroked">
M20.36 12a8.36 8.36 0 1 1-16.72 0 8.36 8.36 0 0 1 16.72 0ZM23 12a11 11 0 1 1-22 0 11 11 0 0 1 22 0Zm-5.45-2.15A1.32 1.32 0 1 0 15.7 8l-5.67 5.66-2.37-2.36a1.32 1.32 0 0 0-1.86 1.86l3.3 3.3a1.32 1.32 0 0 0 1.86 0l6.6-6.6Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTabArrowStroked">
M2 5c0-1.1.9-2 2-2h11a1 1 0 1 1 0 2H4v14h16v-8a1 1 0 1 1 2 0v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5Z
M18.3 8.7a1 1 0 0 1 0-1.4L19.58 6l-1.3-1.3a1 1 0 0 1 1.42-1.4l2 2a1 1 0 0 1 0 1.4l-2 2a1 1 0 0 1-1.42 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTabsStroked">
M2 5c0-1.1.9-2 2-2h16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5Zm12 0h-4v2h4V5Zm2 2h4V5h-4v2ZM4 5h4v3a1 1 0 0 0 1 1h11v10H4V5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTaskMoneyStroked">
M2 4c0-1.1.9-2 2-2h16a2 2 0 0 1 2 2v6a1 1 0 1 1-2 0V4H4v16h8a1 1 0 1 1 0 2H4a2 2 0 0 1-2-2V4Zm4 5a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1Zm1 3a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2H7Zm7.97 1.02c.3-.3.77-.3 1.06 0L18 14.99l1.97-1.97a.75.75 0 1 1 1.06 1.06l-1.93 1.93H21a.75.75 0 0 1 0 1.5h-2.25v1H21a.75.75 0 0 1 0 1.5h-2.25v1.24a.75.75 0 0 1-1.5 0v-1.24H15a.75.75 0 1 1 0-1.5h2.25v-1H15a.75.75 0 0 1 0-1.5h1.9l-1.93-1.93a.75.75 0 0 1 0-1.06Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTemplateStroked">
M3 3c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v18a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3Zm16 0H5v18h14V3Z
M7 10a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8Zm2 1v6h6v-6H9Z
M7 5.5c0-.28.22-.5.5-.5h9c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTestScoreStroked">
M5 1a2 2 0 0 0-2 2v18c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H5Zm0 2h14v18H5V3Zm3 14a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2H8Zm-1-3a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2H8a1 1 0 0 1-1-1Zm3.25-9.5c.28 0 .54.16.67.41l2.5 5a.75.75 0 1 1-1.34.68l-.42-.84H8.84l-.42.84a.75.75 0 1 1-1.34-.68l2.5-5a.75.75 0 0 1 .67-.41Zm0 2.43.66 1.32H9.6l.66-1.32Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTextStroked">
M4 2a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0V4h6v16H9a1 1 0 1 0 0 2h6a1 1 0 1 0 0-2h-2V4h6v2a1 1 0 1 0 2 0V3a1 1 0 0 0-1-1H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconThumbUpStroked">
m11.42 2.1-.83-.4L6.42 9H3.2C2.54 9 2 9.54 2 10.2v10.6c0 .66.54 1.2 1.2 1.2H17.67c.65 0 1.19-.12 1.6-.4.38-.23.66-.61.72-1.06a251.76 251.76 0 0 0 1.77-7.79c.13-.68.24-1.32.24-1.68 0-.77-.3-1.38-.76-1.79a2.18 2.18 0 0 0-1.4-.53h-6.5l.19-1.16.03-.17c.13-.76.27-1.6.27-2.17 0-.97-.58-1.72-1.05-2.18a5.37 5.37 0 0 0-1.36-.98ZM6 20v-9H4v9h2Zm2 0h9.67c.19 0 .32-.02.4-.04a250.3 250.3 0 0 0 1.73-7.58c.14-.74.2-1.18.2-1.31 0-.13-.02-.2-.04-.22a.14.14 0 0 0-.03-.06.18.18 0 0 0-.06-.03l-.04-.01h-8.58v-1c0-.7.17-1.68.3-2.5v-.02c.16-.89.28-1.6.28-1.98 0-.16-.1-.42-.45-.76a2.85 2.85 0 0 0-.05-.05L8 10.27V20Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTicketCodeExchangeStroked">
M.88 5a1 1 0 0 1 1-1h20a1 1 0 0 1 1 1v4.8a1 1 0 0 1-.72.96c-.73.22-1.1.76-1.1 1.24s.37 1.02 1.1 1.24c.36.11.62.4.7.76H19.8a3.07 3.07 0 0 1-.74-2c0-1.28.77-2.3 1.82-2.86V6h-18v3.14A3.27 3.27 0 0 1 4.69 12c0 1.28-.77 2.3-1.82 2.86V18h11v2h-12a1 1 0 0 1-1-1v-4.8a1 1 0 0 1 .72-.96c.73-.22 1.1-.76 1.1-1.24 0-.47-.36-1.01-1.09-1.24a1 1 0 0 1-.73-.96V5Zm6 5a1 1 0 0 1 2 0v4a1 1 0 1 1-2 0v-4Zm14.03 5.47a.75.75 0 1 0-1.07 1.06l.22.22h-4.18a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 .53-1.28l-1.5-1.5Zm-4.07 7.06a.75.75 0 1 0 1.07-1.06l-.22-.22h4.18a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0-.53 1.28l1.5 1.5ZM11.88 9a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0v-4a1 1 0 0 0-1-1Zm3 1a1 1 0 1 1 2 0v4a1 1 0 1 1-2 0v-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTicketCodeStroked">
M2 4a1 1 0 0 0-1 1v4.8c0 .46.3.84.73.96.72.23 1.09.77 1.09 1.24 0 .48-.37 1.02-1.1 1.24a1 1 0 0 0-.72.96V19a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1v-4.8a1 1 0 0 0-.71-.96c-.74-.22-1.1-.76-1.1-1.24s.36-1.02 1.1-1.24A1 1 0 0 0 23 9.8V5a1 1 0 0 0-1-1H2Zm1 5.14V6h18v3.14A3.27 3.27 0 0 0 19.18 12c0 1.28.78 2.3 1.82 2.86V18H3v-3.14A3.27 3.27 0 0 0 4.82 12c0-1.28-.78-2.3-1.82-2.86ZM8 9a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0v-4a1 1 0 0 0-1-1Zm3 1a1 1 0 1 1 2 0v4a1 1 0 1 1-2 0v-4Zm5-1a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0v-4a1 1 0 0 0-1-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTopCenterStroked">
M3 2a1 1 0 0 0 0 2h18a1 1 0 1 0 0-2H3Zm4 8a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1H7Zm1 10v-8h8v8H8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTopLeftStroked">
M3 2a1 1 0 0 0-1 1v18a1 1 0 1 0 2 0V4h17a1 1 0 1 0 0-2H3Zm8 8a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1H11Zm1 10v-8h8v8h-8Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTopRightStroked">
M3 2a1 1 0 0 0 0 2h17v17a1 1 0 1 0 2 0V3a1 1 0 0 0-1-1H3Zm0 8a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1H3Zm1 10v-8h8v8H4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTransparentStroked">
M2 2h4v4H2V2Zm8 4H6v4H2v4h4v4H2v4h4v-4h4v4h4v-4h4v4h4v-4h-4v-4h4v-4h-4V6h4V2h-4v4h-4V2h-4v4Zm0 4V6h4v4h-4Zm0 4H6v-4h4v4Zm4 0v4h-4v-4h4Zm0 0v-4h4v4h-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTrueFalseStroked">
M15.8 4.3a1 1 0 0 1 1.4 0L19 6.08l1.8-1.8a1 1 0 1 1 1.4 1.42L20.42 7.5l1.8 1.8a1 1 0 0 1-1.42 1.4L19 8.92l-1.8 1.8a1 1 0 0 1-1.4-1.42l1.79-1.79-1.8-1.8a1 1 0 0 1 0-1.4Zm6.95 11.36a1 1 0 0 0-1.5-1.32l-2.8 3.2-1.24-1.25a1 1 0 0 0-1.42 1.42l2 2a1 1 0 0 0 1.46-.05l3.5-4ZM1 5a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5Zm2 1v3h9V6H3Zm-1 7a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H2Zm1 5v-3h9v3H3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconTvCheckedStroked">
M19.5 4.87a1 1 0 1 0-1-1.74L11.76 7 5.52 3.15a1 1 0 0 0-1.04 1.7L7.97 7H3.95C2.89 7 2 7.84 2 8.93v11.14C2 21.16 2.9 22 3.95 22h16.1c1.06 0 1.95-.84 1.95-1.93V8.93C22 7.84 21.1 7 20.05 7h-4.28l3.73-2.13ZM11.52 9a1 1 0 0 1-.04 0H4v11h16V9h-7.98a1 1 0 0 1-.04 0h-.46Zm4.73 3.66a1 1 0 0 0-1.5-1.32l-3.3 3.7-2.24-2.25a1 1 0 0 0-1.42 1.42l3 3a1 1 0 0 0 1.46-.05l4-4.5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUnChainStroked">
M8 2a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1Zm6.12 3.64a3 3 0 1 1 4.24 4.24L16.24 12a1 1 0 0 0 1.42 1.41l2.12-2.12a5 5 0 0 0-7.07-7.07l-2.12 2.12A1 1 0 0 0 12 7.76l2.12-2.12ZM9.88 18.36a3 3 0 1 1-4.24-4.24L7.76 12a1 1 0 1 0-1.42-1.41L4.22 12.7a5 5 0 0 0 7.07 7.07l2.12-2.12A1 1 0 0 0 12 16.24l-2.12 2.12ZM15 21a1 1 0 1 0 2 0v-3a1 1 0 1 0-2 0v3ZM2 8a1 1 0 0 1 1-1h3a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm19 9a1 1 0 1 0 0-2h-3a1 1 0 1 0 0 2h3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUnlockStroked">
M12 3a3 3 0 0 0-3 3v2h9a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V10c0-1.1.9-2 2-2h1V6a5 5 0 0 1 10 0h-2a3 3 0 0 0-3-3ZM6 20h12V10H6v10Zm8-5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUserCircleStroked">
M23.03 12.03a11 11 0 1 1-22 0 11 11 0 0 1 22 0Zm-4.3 6.01A9 9 0 1 0 5.3 18a7.02 7.02 0 0 1 3.57-4.25A4.49 4.49 0 0 1 12 6a4.5 4.5 0 0 1 3.13 7.74 7.02 7.02 0 0 1 3.6 4.3Zm-1.75 1.5a5 5 0 0 0-9.96-.03 8.96 8.96 0 0 0 9.96.04ZM12 13a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUserListStroked">
M6 8c0 3.3 2.7 6 6 6s6-2.7 6-6-2.7-6-6-6-6 2.7-6 6Zm2 0c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4ZM2.12 20.56C2.35 20.05 4.65 15 12 15c0 0 1 0 1 1s-1 1-1 1c-6.2 0-8 4.2-8 4.4-.2.5-.8.7-1.3.5-.6-.2-.8-.8-.6-1.3l.02-.04ZM14 17.5c0-.28.22-.5.5-.5h1c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1Zm.5 2.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5-2.5c0-.28.22-.5.5-.5h4c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-4a.5.5 0 0 1-.5-.5v-1Zm.5 2.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h4a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconUserStroked">
M12 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6Zm0-10C9.8 4 8 5.8 8 8s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4Z
M21.9 20.6c-.1-.2-2.3-5.6-9.9-5.6-7.6 0-9.8 5.4-9.9 5.6-.2.5 0 1.1.6 1.3.5.2 1.1 0 1.3-.5 0-.2 1.8-4.4 8-4.4s8 4.2 8.1 4.4c.2.5.8.8 1.3.5.5-.2.7-.8.5-1.3Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVennChartStroked">
M12 3a5 5 0 0 0-5 5.07 7.06 7.06 0 0 1 5 1.18 6.97 6.97 0 0 1 5-1.18V8a5 5 0 0 0-5-5Zm6.97 5.66L19 8a7 7 0 1 0-13.97.66A7 7 0 1 0 12 20.75a7 7 0 1 0 6.97-12.09Zm-2.4 1.37a5.06 5.06 0 0 0-3.07.64c.4.5.73 1.07.98 1.67a5.02 5.02 0 0 0 2.09-2.3Zm-6.07.64a4.98 4.98 0 0 0-3.07-.64 5.02 5.02 0 0 0 2.1 2.31 7 7 0 0 1 .97-1.67Zm.93 2.3A5 5 0 0 1 12 12a5 5 0 0 1 .57.97 5.06 5.06 0 0 1-1.14 0Zm-2.4 1.37a7.03 7.03 0 0 1-3.5-3.68 5 5 0 1 0 4.97 8.67 6.97 6.97 0 0 1-1.47-4.99ZM12 18a4.98 4.98 0 0 1-1-3.07 7.05 7.05 0 0 0 2 0V15c0 1.13-.37 2.16-1 3Zm1.5 1.33a6.97 6.97 0 0 0 1.47-4.99 7.02 7.02 0 0 0 3.5-3.68 5 5 0 1 1-4.97 8.67Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVersionStroked">
M5.13 3.13v17.02l6.35-3.29c.33-.16.71-.16 1.04 0l6.36 3.3V3.11H5.13ZM2.88 3C2.88 1.83 3.83.87 5 .87h14c1.17 0 2.13.96 2.13 2.13v19a1.13 1.13 0 0 1-1.65 1L12 19.13 4.52 23a1.13 1.13 0 0 1-1.64-1V3Z
M6.88 9c0-.62.5-1.13 1.12-1.13h8a1.13 1.13 0 0 1 0 2.25H8c-.62 0-1.13-.5-1.13-1.12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVideoDouyinStroked">
M4 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h8a1 1 0 1 0 0-2H4V4h16v7a1 1 0 1 0 2 0V4a2 2 0 0 0-2-2H4Zm5.5 5.13A1 1 0 0 0 8 8v8a1 1 0 0 0 1.5.87l7-4a1 1 0 0 0 0-1.74l-7-4ZM13.98 12 10 14.28V9.72L13.98 12Zm6 2h-1.36v5.4a1.13 1.13 0 1 1-.76-1.11v-1.4a2.5 2.5 0 1 0 2.12 2.47v-2.69c.53.38 1.19.6 1.9.6v-1.35a1.9 1.9 0 0 1-1.9-1.9V14Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVideoListStroked">
M4 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h7a1 1 0 1 0 0-2H4V4h16v10a1 1 0 1 0 2 0V4a2 2 0 0 0-2-2H4Zm5.5 5.13A1 1 0 0 0 8 8v8a1 1 0 0 0 1.5.87l7-4a1 1 0 0 0 0-1.74l-7-4ZM13.98 12 10 14.28V9.72L13.98 12Zm.52 5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm0 3a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1Zm2.5-2.5c0-.28.22-.5.5-.5h4c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-4a.5.5 0 0 1-.5-.5v-1Zm.5 2.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h4a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVideoStroked">
M4 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4Zm0 2h16v16H4V4Zm5.5 3.13A1 1 0 0 0 8 8v8a1 1 0 0 0 1.5.87l7-4a1 1 0 0 0 0-1.74l-7-4ZM13.98 12 10 14.28V9.72L13.98 12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVideoUrlStroked">
M4 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h4a1 1 0 1 0 0-2H4V4h16v10a1 1 0 1 0 2 0V4a2 2 0 0 0-2-2H4Zm5.5 5.13A1 1 0 0 0 8 8v8a1 1 0 0 0 1.5.87l7-4a1 1 0 0 0 0-1.74l-7-4ZM13.98 12 10 14.28V9.72L13.98 12ZM11 17h1v4h1v-4h1v4.5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1-.5-.5V17Zm9 0h-1v4.5c0 .28.22.5.5.5H22v-1h-2v-4Zm-4.5 0a.5.5 0 0 0-.5.5V22h1v-2h.17l.83 2h1l-.77-2h.27a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-2Zm1.5 1h-1v1h1v-1Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVoteStroked">
M5 4.5C5 3.67 5.67 3 6.5 3h11c.83 0 1.5.67 1.5 1.5v11c0 .83-.67 1.5-1.5 1.5h-11A1.5 1.5 0 0 1 5 15.5v-11ZM7 5v10h10V5H7ZM5 19.5c0-.28.22-.5.5-.5h13c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-1ZM2 14a1 1 0 0 0-1 1v5.5c0 .28.22.5.5.5h1a.5.5 0 0 0 .5-.5V16h.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H2Zm19 2h-.5a.5.5 0 0 1-.5-.5v-1c0-.28.22-.5.5-.5H22a1 1 0 0 1 1 1v5.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V16Zm-5.3-7.3a1 1 0 0 0-1.4-1.4L11 10.58l-1.3-1.3a1 1 0 0 0-1.4 1.42l2 2a1 1 0 0 0 1.4 0l4-4Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconVoteVideoStroked">
M8.6 2.2a1 1 0 1 0-1.2 1.6L9 5H6.5C5.67 5 5 5.67 5 6.5v9c0 .83.67 1.5 1.5 1.5h11c.83 0 1.5-.67 1.5-1.5v-9c0-.83-.67-1.5-1.5-1.5H15l1.6-1.2a1 1 0 1 0-1.2-1.6L12 4.75 8.6 2.2ZM7 15V7h10v8H7Zm-1.5 4a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5h13a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-13ZM1 15a1 1 0 0 1 1-1h1.5c.28 0 .5.22.5.5v1a.5.5 0 0 1-.5.5H3v4.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V15Zm19.5 1h.5v4.5c0 .28.22.5.5.5h1a.5.5 0 0 0 .5-.5V15a1 1 0 0 0-1-1h-1.5a.5.5 0 0 0-.5.5v1c0 .28.22.5.5.5Zm-4.8-7.7a1 1 0 0 1 0 1.4l-4 4a1 1 0 0 1-1.4 0l-2-2a1 1 0 1 1 1.4-1.4l1.3 1.29 3.3-3.3a1 1 0 0 1 1.4 0Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconWindowAdaptionStroked">
M14 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V4h-5a1 1 0 0 1-1-1Zm-4 18a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-6a1 1 0 1 1 2 0v5h5a1 1 0 0 1 1 1ZM2 9a1 1 0 0 0 2 0V4h5a1 1 0 1 0 0-2H3a1 1 0 0 0-1 1v6Zm19 5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-6a1 1 0 1 1 0-2h5v-5a1 1 0 0 1 1-1ZM8.5 7.5a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-7a1 1 0 0 0-1-1h-7Zm1 7v-5h5v5h-5Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconConfigStroked">
M16.95 4.24c0-.63.5-1.13 1.13-1.13h3.31a1.13 1.13 0 0 1 0 2.25h-3.31c-.62 0-1.13-.5-1.13-1.12Z
M13.66.9c.62 0 1.12.5 1.12 1.13v4.42a1.13 1.13 0 0 1-2.25 0V2.03c0-.63.5-1.13 1.13-1.13Z
M.38 4.24c0-.63.5-1.13 1.12-1.13h11.03v2.25H1.5c-.62 0-1.13-.5-1.13-1.12Z
M.38 11.97c0-.62.5-1.12 1.12-1.12h4.42a1.13 1.13 0 0 1 0 2.25H1.5c-.62 0-1.13-.5-1.13-1.13Z
M10.34 8.64c.62 0 1.13.5 1.13 1.12v4.42a1.13 1.13 0 0 1-2.25 0V9.76c0-.62.5-1.12 1.12-1.12Z
M11.47 10.85H22.5a1.13 1.13 0 010 2.25H11.47Z
M16.95 19.71c0-.62.5-1.13 1.13-1.13h3.31a1.13 1.13 0 0 1 0 2.25h-3.31c-.62 0-1.13-.5-1.13-1.12Z
M13.66 16.37c.62 0 1.12.5 1.12 1.13v4.42a1.13 1.13 0 0 1-2.25 0V17.5c0-.62.5-1.13 1.13-1.13Z
M.38 19.71c0-.62.5-1.13 1.12-1.13h11.03v2.25H1.5c-.62 0-1.13-.5-1.13-1.12Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconIssueStroked">
M4.13 4.13a11.1 11.1 0 0 1 15.74 0 11.1 11.1 0 0 1 0 15.74 11.1 11.1 0 0 1-15.74 0 11.1 11.1 0 0 1 0-15.74Zm1.6 1.6a8.84 8.84 0 0 1 12.55 0 8.84 8.84 0 0 1 0 12.55 8.84 8.84 0 0 1-12.56 0 8.84 8.84 0 0 1 0-12.56Z
M12 18.5a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z
M12 4.88c.62 0 1.13.5 1.13 1.12v8a1.13 1.13 0 0 1-2.26 0V6c0-.62.5-1.13 1.13-1.13Z
</StreamGeometry>
<StreamGeometry x:Key="SemiIconShieldStroked">
m3 4.13 9-1.63 9 1.63v5.39c0 5.66-3.62 10.69-9 12.48-5.37-1.8-9-6.82-9-12.49V4.13Z
M5 6.13 12 4.5l7 1.63v3.39c0 3.66-3 8.69-7 10.48-4-1.8-7-5.82-7-10.49V6.13Z
M13 10.5h2a1 1 0 010 2h-2v2a1 1 0 01-2 0v-2H9a1 1 0 010-2h2v-2a1 1 0 012 0v2Z
</StreamGeometry>
</ResourceDictionary>

View File

@@ -3,7 +3,8 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="Icon.axaml" /> <ResourceInclude Source="FillIcons.axaml" />
<ResourceInclude Source="IconPatch.axaml" /> <ResourceInclude Source="StrokedIcons.axaml" />
<ResourceInclude Source="AIIcons.axaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -16,7 +16,7 @@
<ResourceInclude Source="/Themes/Shared/_index.axaml" /> <ResourceInclude Source="/Themes/Shared/_index.axaml" />
<ResourceInclude Source="/Tokens/Variables.axaml" /> <ResourceInclude Source="/Tokens/Variables.axaml" />
<ResourceInclude Source="/Locale/zh-cn.axaml" /> <ResourceInclude Source="/Locale/zh-cn.axaml" />
<ResourceInclude Source="/Icons/_index.axaml" /> <semi:Icons />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Styles.Resources> </Styles.Resources>

View File

@@ -1,26 +0,0 @@
# Semi.Avalonia Theme
## Naming Conventions
Resources are named by following format
`Control`+`Theme`[+`Class`+`PseudoClass`]+`Property`
Example:
`ButtonDefaultBackground`
`ButtonSolidPointeroverBorderThickness`
### Theme
If Theme key is type default, use `Default` as Theme part
### Class and PseudoClass
* Classes comes before PseudoClasses
* If multiple Classes are applied, order by alphabet order.
* If multiple PseudoClass are applied, order by alphabet order.

View File

@@ -0,0 +1,71 @@
# Semi.Avalonia
[![Semi Avalonia](https://img.shields.io/nuget/v/Semi.Avalonia.svg?color=red&style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia/)
[![Semi Avalonia](https://img.shields.io/nuget/dt/Semi.Avalonia.svg?style=flat-square)](https://www.nuget.org/packages/Semi.Avalonia/)
Avalonia Theme inspired by Semi Design
## Installation
```bash
dotnet add package Semi.Avalonia
```
## Usage
Include Semi Design Styles in your application:
```xaml
<Application
...
xmlns:semi="https://irihi.tech/semi">
<Application.Styles>
<semi:SemiTheme Locale="zh-CN" />
</Application.Styles>
</Application>
```
That's all.
## Additional Packages
ColorPicker, DataGrid, TreeDataGrid, Dock, Tabalonia and AvaloniaEdit are distributed in separated packages. Please install if you need.
```bash
dotnet add package Semi.Avalonia.ColorPicker
dotnet add package Semi.Avalonia.DataGrid
dotnet add package Semi.Avalonia.TreeDataGrid
dotnet add package Semi.Avalonia.Dock
dotnet add package Semi.Avalonia.Tabalonia
dotnet add package Semi.Avalonia.AvaloniaEdit
```
```xaml
<Application.Styles>
<semi:ColorPickerSemiTheme />
<semi:DataGridSemiTheme />
<semi:TreeDataGridSemiTheme />
<semi:DockSemiTheme />
<semi:TabaloniaSemiTheme />
<semi:AvaloniaEditSemiTheme />
</Application.Styles>
```
## Resources
- [Documentation](https://docs.irihi.tech/semi/)
- [Repository](https://github.com/irihitech/Semi.Avalonia)
- [Online Demo](https://irihitech.github.io/Semi.Avalonia/)
- [Download Demo](https://github.com/irihitech/Semi.Avalonia/releases)
## Credits
[Semi Design](https://semi.design/)
[Avalonia](https://github.com/AvaloniaUI/Avalonia)
[FluentAvalonia](https://github.com/amwx/FluentAvalonia)
[Material Design Icons](https://pictogrammers.com/library/mdi/)
[CommunityToolKit](https://github.com/CommunityToolkit/dotnet)

View File

@@ -1,18 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="../Package.props"/>
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
<Version>11.3.7.3</Version>
<PackageReleaseNotes>Update to Semi.Avalonia 11.3.7.3</PackageReleaseNotes>
<Title>Semi.Avalonia</Title> <Title>Semi.Avalonia</Title>
<PackageReleaseNotes>Update to Semi.Avalonia 11.3.7</PackageReleaseNotes>
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia"/>
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,9 +1,7 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Styling; using Avalonia.Styling;
using Semi.Avalonia.Locale; using Semi.Avalonia.Locale;
@@ -11,35 +9,35 @@ namespace Semi.Avalonia;
public class SemiTheme : Styles public class SemiTheme : Styles
{ {
private static readonly Dictionary<CultureInfo, ResourceDictionary> _localeToResource = new()
{
{ new CultureInfo("zh-cn"), new zh_cn() },
{ new CultureInfo("en-us"), new en_us() },
{ new CultureInfo("en-gb"), new en_gb() },
{ new CultureInfo("it-it"), new it_it() },
{ new CultureInfo("it-ch"), new it_ch() },
{ new CultureInfo("nl-be"), new nl_be() },
{ new CultureInfo("nl-nl"), new nl_nl() },
{ new CultureInfo("ja-jp"), new ja_jp() },
{ new CultureInfo("ko-kr"), new ko_kr() },
{ new CultureInfo("uk-ua"), new uk_ua() },
{ new CultureInfo("ru-ru"), new ru_ru() },
{ new CultureInfo("zh-tw"), new zh_tw() },
{ new CultureInfo("de-de"), new de_de() },
{ new CultureInfo("es-es"), new es_es() },
{ new CultureInfo("pl-pl"), new pl_pl() },
{ new CultureInfo("fr-fr"), new fr_fr() },
};
private static readonly ResourceDictionary _defaultResource = new zh_cn();
private CultureInfo? _locale;
public static ThemeVariant Aquatic => new(nameof(Aquatic), ThemeVariant.Dark); public static ThemeVariant Aquatic => new(nameof(Aquatic), ThemeVariant.Dark);
public static ThemeVariant Desert => new(nameof(Desert), ThemeVariant.Light); public static ThemeVariant Desert => new(nameof(Desert), ThemeVariant.Light);
public static ThemeVariant Dusk => new(nameof(Dusk), ThemeVariant.Dark); public static ThemeVariant Dusk => new(nameof(Dusk), ThemeVariant.Dark);
public static ThemeVariant NightSky => new(nameof(NightSky), ThemeVariant.Dark); public static ThemeVariant NightSky => new(nameof(NightSky), ThemeVariant.Dark);
private static readonly Dictionary<CultureInfo, ResourceDictionary> LocaleToResource = new()
{
{ new CultureInfo("zh-CN"), new zh_cn() },
{ new CultureInfo("en-US"), new en_us() },
{ new CultureInfo("en-GB"), new en_gb() },
{ new CultureInfo("it-IT"), new it_it() },
{ new CultureInfo("it-CH"), new it_ch() },
{ new CultureInfo("nl-BE"), new nl_be() },
{ new CultureInfo("nl-NL"), new nl_nl() },
{ new CultureInfo("ja-JP"), new ja_jp() },
{ new CultureInfo("ko-KR"), new ko_kr() },
{ new CultureInfo("uk-UA"), new uk_ua() },
{ new CultureInfo("ru-RU"), new ru_ru() },
{ new CultureInfo("zh-TW"), new zh_tw() },
{ new CultureInfo("de-DE"), new de_de() },
{ new CultureInfo("es-ES"), new es_es() },
{ new CultureInfo("pl-PL"), new pl_pl() },
{ new CultureInfo("fr-FR"), new fr_fr() },
};
private static readonly ResourceDictionary DefaultResource = new zh_cn();
private CultureInfo? _locale;
public CultureInfo? Locale public CultureInfo? Locale
{ {
get => _locale; get => _locale;
@@ -50,12 +48,26 @@ public class SemiTheme : Styles
if (TryGetLocaleResource(value, out var resource) && resource is not null) if (TryGetLocaleResource(value, out var resource) && resource is not null)
{ {
_locale = value; _locale = value;
foreach (var kv in resource) Resources[kv.Key] = kv.Value; if (Resources is ResourceDictionary rd)
{
rd.SetItems(resource);
}
else
{
foreach (var kv in resource) Resources[kv.Key] = kv.Value;
}
} }
else else
{ {
_locale = new CultureInfo("zh-CN"); _locale = new CultureInfo("zh-CN");
foreach (var kv in _defaultResource) Resources[kv.Key] = kv.Value; if (Resources is ResourceDictionary rd)
{
rd.SetItems(DefaultResource);
}
else
{
foreach (var kv in DefaultResource) Resources[kv.Key] = kv.Value;
}
} }
} }
catch catch
@@ -69,43 +81,52 @@ public class SemiTheme : Styles
{ {
if (Equals(locale, CultureInfo.InvariantCulture)) if (Equals(locale, CultureInfo.InvariantCulture))
{ {
resourceDictionary = _defaultResource; resourceDictionary = DefaultResource;
return true; return true;
} }
if (locale is null) if (locale is null)
{ {
resourceDictionary = _defaultResource; resourceDictionary = DefaultResource;
return false; return false;
} }
if (_localeToResource.TryGetValue(locale, out var resource)) if (LocaleToResource.TryGetValue(locale, out var resource))
{ {
resourceDictionary = resource; resourceDictionary = resource;
return true; return true;
} }
resourceDictionary = _defaultResource; resourceDictionary = DefaultResource;
return false; return false;
} }
public static void OverrideLocaleResources(Application application, CultureInfo? culture) public static void OverrideLocaleResources(Application application, CultureInfo? culture)
{ {
if (culture is null) return; if (culture is null) return;
if (!_localeToResource.TryGetValue(culture, out var resources)) return; if (!LocaleToResource.TryGetValue(culture, out var resources)) return;
foreach (var kv in resources)
if (application.Resources is ResourceDictionary rd)
{ {
application.Resources[kv.Key] = kv.Value; rd.SetItems(resources);
}
else
{
foreach (var kv in resources) application.Resources[kv.Key] = kv.Value;
} }
} }
public static void OverrideLocaleResources(StyledElement element, CultureInfo? culture) public static void OverrideLocaleResources(StyledElement element, CultureInfo? culture)
{ {
if (culture is null) return; if (culture is null) return;
if (!_localeToResource.TryGetValue(culture, out var resources)) return; if (!LocaleToResource.TryGetValue(culture, out var resources)) return;
foreach (var kv in resources) if (element.Resources is ResourceDictionary rd)
{ {
element.Resources[kv.Key] = kv.Value; rd.SetItems(resources);
}
else
{
foreach (var kv in resources) element.Resources[kv.Key] = kv.Value;
} }
} }
} }

View File

@@ -71,6 +71,22 @@
<SolidColorBrush x:Key="ButtonBorderlessBackground" Color="Transparent" /> <SolidColorBrush x:Key="ButtonBorderlessBackground" Color="Transparent" />
<SolidColorBrush x:Key="ButtonBorderlessBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="ButtonBorderlessBorderBrush" Color="Transparent" />
<!-- end Borderless --> <!-- end Borderless -->
<!-- Colorful Classes -->
<StaticResource x:Key="ButtonDefaultColorfulPrimaryForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryBackground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryPointeroverBackground" ResourceKey="SemiColorAIGeneralPointerover" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryPressedBackground" ResourceKey="SemiColorAIGeneralActive" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryBackground" ResourceKey="SemiAIGeneral0" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryPointeroverBackground" ResourceKey="SemiAIGeneral1" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryPressedBackground" ResourceKey="SemiAIGeneral2" />
<StaticResource x:Key="ButtonOutlineColorfulPrimaryForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="ButtonOutlineColorfulPrimaryBorderBrush" ResourceKey="SemiColorAIPurple" />
<!-- end Colorful -->
<StaticResource x:Key="ButtonInputInnerForeground" ResourceKey="SemiColorText2" /> <StaticResource x:Key="ButtonInputInnerForeground" ResourceKey="SemiColorText2" />
<StaticResource x:Key="ButtonInputInnerPointeroverForeground" ResourceKey="SemiColorPrimaryPointerover" /> <StaticResource x:Key="ButtonInputInnerPointeroverForeground" ResourceKey="SemiColorPrimaryPointerover" />
<StaticResource x:Key="ButtonInputInnerPressedForeground" ResourceKey="SemiColorPrimaryActive" /> <StaticResource x:Key="ButtonInputInnerPressedForeground" ResourceKey="SemiColorPrimaryActive" />

View File

@@ -2,10 +2,14 @@
<StaticResource x:Key="DataValidationErrorsForeground" ResourceKey="SemiColorDanger" /> <StaticResource x:Key="DataValidationErrorsForeground" ResourceKey="SemiColorDanger" />
<StaticResource x:Key="DataValidationErrorsBackground" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsBackground" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsBorderBrush" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsBorderBrush" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsPointerOverBackground" ResourceKey="SemiColorDangerLightPointerover" /> <StaticResource x:Key="DataValidationErrorsPointeroverBackground" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPointerOverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" /> <StaticResource x:Key="DataValidationErrorsPointeroverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPressedBackground" ResourceKey="SemiColorDangerLightActive" /> <StaticResource x:Key="DataValidationErrorsPressedBackground" ResourceKey="SemiColorDangerLightActive" />
<StaticResource x:Key="DataValidationErrorsPressedBorderBrush" ResourceKey="SemiColorDangerLightActive" /> <StaticResource x:Key="DataValidationErrorsPressedBorderBrush" ResourceKey="SemiColorDangerLightActive" />
<StaticResource x:Key="DataValidationErrorsSelectedBackground" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsSelectedBackground" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsSelectedBorderBrush" ResourceKey="SemiColorDanger" /> <StaticResource x:Key="DataValidationErrorsSelectedBorderBrush" ResourceKey="SemiColorDanger" />
<!-- Deprecated keys -->
<StaticResource x:Key="DataValidationErrorsPointerOverBackground" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPointerOverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" />
</ResourceDictionary> </ResourceDictionary>

View File

@@ -88,6 +88,21 @@
<StaticResource x:Key="LabelTagSolidWhiteBackground" ResourceKey="SemiColorBackground4" /> <StaticResource x:Key="LabelTagSolidWhiteBackground" ResourceKey="SemiColorBackground4" />
<SolidColorBrush x:Key="LabelTagSolidWhiteBorderBrush" Opacity="0.7" Color="{StaticResource SemiGrey2Color}" /> <SolidColorBrush x:Key="LabelTagSolidWhiteBorderBrush" Opacity="0.7" Color="{StaticResource SemiGrey2Color}" />
<StaticResource x:Key="LabelTagColorfulLightForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulLightBackground" ResourceKey="SemiAIPurple0" />
<StaticResource x:Key="LabelTagColorfulGhostForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulGhostBackground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGhostBorderBrush" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulSolidForeground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulSolidBackground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulGradientLightForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientLightBackground" ResourceKey="SemiAIGeneral0" />
<StaticResource x:Key="LabelTagColorfulGradientGhostForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientGhostBackground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGradientGhostBorderBrush" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientSolidForeground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGradientSolidBackground" ResourceKey="SemiColorAIGeneral" />
<!-- Obsolete --> <!-- Obsolete -->
<StaticResource x:Key="LabelTagLightWhiteForeground" ResourceKey="LabelTagSolidWhiteForeground" /> <StaticResource x:Key="LabelTagLightWhiteForeground" ResourceKey="LabelTagSolidWhiteForeground" />
<StaticResource x:Key="LabelTagLightWhiteBackground" ResourceKey="LabelTagSolidWhiteBackground" /> <StaticResource x:Key="LabelTagLightWhiteBackground" ResourceKey="LabelTagSolidWhiteBackground" />

View File

@@ -2,10 +2,14 @@
<SolidColorBrush x:Key="DataValidationErrorsForeground" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsForeground" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsBackground" Opacity="0.2" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsBackground" Opacity="0.2" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsBorderBrush" Opacity="0.2" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsBorderBrush" Opacity="0.2" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsPointerOverBackground" Opacity="0.3" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsPointeroverBackground" Opacity="0.3" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsPointerOverBorderBrush" Opacity="0.3" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsPointeroverBorderBrush" Opacity="0.3" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsPressedBackground" Opacity="0.4" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsPressedBackground" Opacity="0.4" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsPressedBorderBrush" Opacity="0.4" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsPressedBorderBrush" Opacity="0.4" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsSelectedBackground" Opacity="0.2" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsSelectedBackground" Opacity="0.2" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsSelectedBorderBrush" Color="#FC725A" /> <SolidColorBrush x:Key="DataValidationErrorsSelectedBorderBrush" Color="#FC725A" />
<!-- Deprecated keys -->
<SolidColorBrush x:Key="DataValidationErrorsPointerOverBackground" Opacity="0.3" Color="#FC725A" />
<SolidColorBrush x:Key="DataValidationErrorsPointerOverBorderBrush" Opacity="0.3" Color="#FC725A" />
</ResourceDictionary> </ResourceDictionary>

View File

@@ -71,6 +71,22 @@
<SolidColorBrush x:Key="ButtonBorderlessBackground" Color="Transparent" /> <SolidColorBrush x:Key="ButtonBorderlessBackground" Color="Transparent" />
<SolidColorBrush x:Key="ButtonBorderlessBorderBrush" Color="Transparent" /> <SolidColorBrush x:Key="ButtonBorderlessBorderBrush" Color="Transparent" />
<!-- end Borderless --> <!-- end Borderless -->
<!-- Colorful Classes -->
<StaticResource x:Key="ButtonDefaultColorfulPrimaryForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryBackground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryPointeroverBackground" ResourceKey="SemiColorAIGeneralPointerover" />
<StaticResource x:Key="ButtonSolidColorfulPrimaryPressedBackground" ResourceKey="SemiColorAIGeneralActive" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryBackground" ResourceKey="SemiAIGeneral0" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryPointeroverBackground" ResourceKey="SemiAIGeneral1" />
<StaticResource x:Key="ButtonSolidColorfulTertiaryPressedBackground" ResourceKey="SemiAIGeneral2" />
<StaticResource x:Key="ButtonOutlineColorfulPrimaryForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="ButtonOutlineColorfulPrimaryBorderBrush" ResourceKey="SemiColorAIPurple" />
<!-- end Colorful -->
<StaticResource x:Key="ButtonInputInnerForeground" ResourceKey="SemiColorText2" /> <StaticResource x:Key="ButtonInputInnerForeground" ResourceKey="SemiColorText2" />
<StaticResource x:Key="ButtonInputInnerPointeroverForeground" ResourceKey="SemiColorPrimaryPointerover" /> <StaticResource x:Key="ButtonInputInnerPointeroverForeground" ResourceKey="SemiColorPrimaryPointerover" />
<StaticResource x:Key="ButtonInputInnerPressedForeground" ResourceKey="SemiColorPrimaryActive" /> <StaticResource x:Key="ButtonInputInnerPressedForeground" ResourceKey="SemiColorPrimaryActive" />

View File

@@ -2,10 +2,14 @@
<StaticResource x:Key="DataValidationErrorsForeground" ResourceKey="SemiColorDanger" /> <StaticResource x:Key="DataValidationErrorsForeground" ResourceKey="SemiColorDanger" />
<StaticResource x:Key="DataValidationErrorsBackground" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsBackground" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsBorderBrush" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsBorderBrush" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsPointerOverBackground" ResourceKey="SemiColorDangerLightPointerover" /> <StaticResource x:Key="DataValidationErrorsPointeroverBackground" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPointerOverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" /> <StaticResource x:Key="DataValidationErrorsPointeroverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPressedBackground" ResourceKey="SemiColorDangerLightActive" /> <StaticResource x:Key="DataValidationErrorsPressedBackground" ResourceKey="SemiColorDangerLightActive" />
<StaticResource x:Key="DataValidationErrorsPressedBorderBrush" ResourceKey="SemiColorDangerLightActive" /> <StaticResource x:Key="DataValidationErrorsPressedBorderBrush" ResourceKey="SemiColorDangerLightActive" />
<StaticResource x:Key="DataValidationErrorsSelectedBackground" ResourceKey="SemiColorDangerLight" /> <StaticResource x:Key="DataValidationErrorsSelectedBackground" ResourceKey="SemiColorDangerLight" />
<StaticResource x:Key="DataValidationErrorsSelectedBorderBrush" ResourceKey="SemiColorDanger" /> <StaticResource x:Key="DataValidationErrorsSelectedBorderBrush" ResourceKey="SemiColorDanger" />
<!-- Deprecated keys -->
<StaticResource x:Key="DataValidationErrorsPointerOverBackground" ResourceKey="SemiColorDangerLightPointerover" />
<StaticResource x:Key="DataValidationErrorsPointerOverBorderBrush" ResourceKey="SemiColorDangerLightPointerover" />
</ResourceDictionary> </ResourceDictionary>

View File

@@ -88,6 +88,21 @@
<StaticResource x:Key="LabelTagSolidWhiteBackground" ResourceKey="SemiColorBackground4" /> <StaticResource x:Key="LabelTagSolidWhiteBackground" ResourceKey="SemiColorBackground4" />
<SolidColorBrush x:Key="LabelTagSolidWhiteBorderBrush" Opacity="0.7" Color="{StaticResource SemiGrey2Color}" /> <SolidColorBrush x:Key="LabelTagSolidWhiteBorderBrush" Opacity="0.7" Color="{StaticResource SemiGrey2Color}" />
<StaticResource x:Key="LabelTagColorfulLightForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulLightBackground" ResourceKey="SemiAIPurple0" />
<StaticResource x:Key="LabelTagColorfulGhostForeground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulGhostBackground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGhostBorderBrush" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulSolidForeground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulSolidBackground" ResourceKey="SemiColorAIPurple" />
<StaticResource x:Key="LabelTagColorfulGradientLightForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientLightBackground" ResourceKey="SemiAIGeneral0" />
<StaticResource x:Key="LabelTagColorfulGradientGhostForeground" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientGhostBackground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGradientGhostBorderBrush" ResourceKey="SemiColorAIGeneral" />
<StaticResource x:Key="LabelTagColorfulGradientSolidForeground" ResourceKey="SemiColorWhite" />
<StaticResource x:Key="LabelTagColorfulGradientSolidBackground" ResourceKey="SemiColorAIGeneral" />
<!-- Obsolete --> <!-- Obsolete -->
<StaticResource x:Key="LabelTagLightWhiteForeground" ResourceKey="LabelTagSolidWhiteForeground" /> <StaticResource x:Key="LabelTagLightWhiteForeground" ResourceKey="LabelTagSolidWhiteForeground" />
<StaticResource x:Key="LabelTagLightWhiteBackground" ResourceKey="LabelTagSolidWhiteBackground" /> <StaticResource x:Key="LabelTagLightWhiteBackground" ResourceKey="LabelTagSolidWhiteBackground" />

View File

@@ -8,4 +8,5 @@
<StaticResource x:Key="LabelTagFontWeight" ResourceKey="SemiFontWeightRegular" /> <StaticResource x:Key="LabelTagFontWeight" ResourceKey="SemiFontWeightRegular" />
<StaticResource x:Key="LabelTagSquareCornerRadius" ResourceKey="SemiBorderRadiusSmall" /> <StaticResource x:Key="LabelTagSquareCornerRadius" ResourceKey="SemiBorderRadiusSmall" />
<StaticResource x:Key="LabelTagCircleCornerRadius" ResourceKey="SemiBorderRadiusFull" /> <StaticResource x:Key="LabelTagCircleCornerRadius" ResourceKey="SemiBorderRadiusFull" />
<StaticResource x:Key="LabelTagColorfulFontWeight" ResourceKey="SemiFontWeightBold" />
</ResourceDictionary> </ResourceDictionary>

View File

@@ -3,9 +3,9 @@
<StaticResource x:Key="TextBoxSmallHeight" ResourceKey="SemiHeightControlSmall" /> <StaticResource x:Key="TextBoxSmallHeight" ResourceKey="SemiHeightControlSmall" />
<StaticResource x:Key="TextBoxLargeHeight" ResourceKey="SemiHeightControlLarge" /> <StaticResource x:Key="TextBoxLargeHeight" ResourceKey="SemiHeightControlLarge" />
<StaticResource x:Key="TextBoxDefaultCornerRadius" ResourceKey="SemiBorderRadiusSmall" /> <StaticResource x:Key="TextBoxDefaultCornerRadius" ResourceKey="SemiBorderRadiusSmall" />
<Thickness x:Key="TextBoxInnerLeftContentPadding">0 0 8 0</Thickness> <Thickness x:Key="TextBoxInnerLeftContentPadding">0 0 12 0</Thickness>
<Thickness x:Key="TextBoxInnerRightContentPadding">8 0 0 0</Thickness> <Thickness x:Key="TextBoxInnerRightContentPadding">12 0 0 0</Thickness>
<Thickness x:Key="TextBoxContentPadding">8 0</Thickness> <Thickness x:Key="TextBoxContentPadding">12 0</Thickness>
<StaticResource x:Key="TextBoxBorderThickness" ResourceKey="SemiBorderThicknessControl" /> <StaticResource x:Key="TextBoxBorderThickness" ResourceKey="SemiBorderThicknessControl" />
<Thickness x:Key="TextBoxTextAreaContentPadding">12 5</Thickness> <Thickness x:Key="TextBoxTextAreaContentPadding">12 5</Thickness>
<x:Double x:Key="TextBoxTextAreaHeight">90</x:Double> <x:Double x:Key="TextBoxTextAreaHeight">90</x:Double>

View File

@@ -170,6 +170,16 @@
<Color x:Key="SemiBackground2Color">#35363C</Color> <Color x:Key="SemiBackground2Color">#35363C</Color>
<Color x:Key="SemiBackground3Color">#43444A</Color> <Color x:Key="SemiBackground3Color">#43444A</Color>
<Color x:Key="SemiBackground4Color">#4F5159</Color> <Color x:Key="SemiBackground4Color">#4F5159</Color>
<Color x:Key="SemiAIPurple0Color">#3A1770</Color>
<Color x:Key="SemiAIPurple1Color">#532394</Color>
<Color x:Key="SemiAIPurple2Color">#6F31B8</Color>
<Color x:Key="SemiAIPurple3Color">#8D41DB</Color>
<Color x:Key="SemiAIPurple4Color">#A744FF</Color>
<Color x:Key="SemiAIPurple5Color">#C375FF</Color>
<Color x:Key="SemiAIPurple6Color">#D598FF</Color>
<Color x:Key="SemiAIPurple7Color">#E5BAFF</Color>
<Color x:Key="SemiAIPurple8Color">#F3DDFF</Color>
<Color x:Key="SemiAIPurple9Color">#FBF3FF</Color>
<SolidColorBrush x:Key="SemiWhite" Color="{StaticResource SemiWhiteColor}" /> <SolidColorBrush x:Key="SemiWhite" Color="{StaticResource SemiWhiteColor}" />
<SolidColorBrush x:Key="SemiBlack" Color="{StaticResource SemiBlackColor}" /> <SolidColorBrush x:Key="SemiBlack" Color="{StaticResource SemiBlackColor}" />
@@ -333,6 +343,76 @@
<SolidColorBrush x:Key="SemiGrey7" Color="{StaticResource SemiGrey7Color}" /> <SolidColorBrush x:Key="SemiGrey7" Color="{StaticResource SemiGrey7Color}" />
<SolidColorBrush x:Key="SemiGrey8" Color="{StaticResource SemiGrey8Color}" /> <SolidColorBrush x:Key="SemiGrey8" Color="{StaticResource SemiGrey8Color}" />
<SolidColorBrush x:Key="SemiGrey9" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiGrey9" Color="{StaticResource SemiGrey9Color}" />
<SolidColorBrush x:Key="SemiAIPurple0" Color="{StaticResource SemiAIPurple0Color}" />
<SolidColorBrush x:Key="SemiAIPurple1" Color="{StaticResource SemiAIPurple1Color}" />
<SolidColorBrush x:Key="SemiAIPurple2" Color="{StaticResource SemiAIPurple2Color}" />
<SolidColorBrush x:Key="SemiAIPurple3" Color="{StaticResource SemiAIPurple3Color}" />
<SolidColorBrush x:Key="SemiAIPurple4" Color="{StaticResource SemiAIPurple4Color}" />
<SolidColorBrush x:Key="SemiAIPurple5" Color="{StaticResource SemiAIPurple5Color}" />
<SolidColorBrush x:Key="SemiAIPurple6" Color="{StaticResource SemiAIPurple6Color}" />
<SolidColorBrush x:Key="SemiAIPurple7" Color="{StaticResource SemiAIPurple7Color}" />
<SolidColorBrush x:Key="SemiAIPurple8" Color="{StaticResource SemiAIPurple8Color}" />
<SolidColorBrush x:Key="SemiAIPurple9" Color="{StaticResource SemiAIPurple9Color}" />
<LinearGradientBrush x:Key="SemiAIGeneral0" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#092C64" />
<GradientStop Offset="0.3" Color="#271D6C" />
<GradientStop Offset="0.6" Color="#3A1770" />
<GradientStop Offset="1.0" Color="#501265" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral1" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#114088" />
<GradientStop Offset="0.3" Color="#362B90" />
<GradientStop Offset="0.6" Color="#532394" />
<GradientStop Offset="1.0" Color="#711C89" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral2" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#1A56AC" />
<GradientStop Offset="0.3" Color="#463BB4" />
<GradientStop Offset="0.6" Color="#6F31B8" />
<GradientStop Offset="1.0" Color="#9429AD" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral3" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#266FCF" />
<GradientStop Offset="0.3" Color="#584ED7" />
<GradientStop Offset="0.6" Color="#8D41DB" />
<GradientStop Offset="1.0" Color="#B937D0" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral4" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#237FF0" />
<GradientStop Offset="0.3" Color="#5E54F8" />
<GradientStop Offset="0.6" Color="#A744FF" />
<GradientStop Offset="1.0" Color="#DB38F1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral5" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#5BA2F5" />
<GradientStop Offset="0.3" Color="#8681FC" />
<GradientStop Offset="0.6" Color="#C375FF" />
<GradientStop Offset="1.0" Color="#EA6BF6" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral6" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#83BBF8" />
<GradientStop Offset="0.3" Color="#A3A0FD" />
<GradientStop Offset="0.6" Color="#D598FF" />
<GradientStop Offset="1.0" Color="#F38FF8" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral7" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#ACD2FA" />
<GradientStop Offset="0.3" Color="#C0C0FD" />
<GradientStop Offset="0.6" Color="#E5BAFF" />
<GradientStop Offset="1.0" Color="#F9B4FB" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral8" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#D5E9FD" />
<GradientStop Offset="0.3" Color="#DFDFFE" />
<GradientStop Offset="0.6" Color="#F3DDFF" />
<GradientStop Offset="1.0" Color="#FDD9FC" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral9" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#EFF7FE" />
<GradientStop Offset="0.3" Color="#F4F4FF" />
<GradientStop Offset="0.6" Color="#FBF3FF" />
<GradientStop Offset="1.0" Color="#FEF1FE" />
</LinearGradientBrush>
<!-- Official Color=#E4E7F5 --> <!-- Official Color=#E4E7F5 -->
<SolidColorBrush x:Key="SemiColorWhite" Color="{StaticResource SemiWhiteColor}" /> <SolidColorBrush x:Key="SemiColorWhite" Color="{StaticResource SemiWhiteColor}" />
<SolidColorBrush x:Key="SemiColorBlack" Color="{StaticResource SemiBlackColor}" /> <SolidColorBrush x:Key="SemiColorBlack" Color="{StaticResource SemiBlackColor}" />
@@ -390,6 +470,76 @@
<SolidColorBrush x:Key="SemiColorDangerLightPointerover" Opacity="0.3" Color="{StaticResource SemiRed5Color}" /> <SolidColorBrush x:Key="SemiColorDangerLightPointerover" Opacity="0.3" Color="{StaticResource SemiRed5Color}" />
<SolidColorBrush x:Key="SemiColorDangerLightActive" Opacity="0.4" Color="{StaticResource SemiRed5Color}" /> <SolidColorBrush x:Key="SemiColorDangerLightActive" Opacity="0.4" Color="{StaticResource SemiRed5Color}" />
<!-- AI General -->
<LinearGradientBrush x:Key="SemiColorAIGeneral" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#5BA2F5" />
<GradientStop Offset="0.3" Color="#8681FC" />
<GradientStop Offset="0.6" Color="#C375FF" />
<GradientStop Offset="1.0" Color="#EA6BF6" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralPointerover" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#83BBF8" />
<GradientStop Offset="0.3" Color="#A3A0FD" />
<GradientStop Offset="0.6" Color="#D598FF" />
<GradientStop Offset="1.0" Color="#F38FF8" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralActive" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#ACD2FA" />
<GradientStop Offset="0.3" Color="#C0C0FD" />
<GradientStop Offset="0.6" Color="#E5BAFF" />
<GradientStop Offset="1.0" Color="#F9B4FB" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralDisabled" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#1A56AC" />
<GradientStop Offset="0.3" Color="#463BB4" />
<GradientStop Offset="0.6" Color="#6F31B8" />
<GradientStop Offset="1.0" Color="#9429AD" />
</LinearGradientBrush>
<!-- AI Purple -->
<SolidColorBrush x:Key="SemiColorAIPurple" Color="{StaticResource SemiAIPurple5Color}" />
<SolidColorBrush x:Key="SemiColorAIPurplePointerover" Color="{StaticResource SemiAIPurple6Color}" />
<SolidColorBrush x:Key="SemiColorAIPurpleActive" Color="{StaticResource SemiAIPurple7Color}" />
<SolidColorBrush x:Key="SemiColorAIPurpleDisabled" Color="{StaticResource SemiAIPurple2Color}" />
<!-- AI Background -->
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottom" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#33FFE28A" />
<GradientStop Offset="0.504" Color="#33E72DFF" />
<GradientStop Offset="0.9423" Color="#330073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottomPointerover" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#4DFFE28A" />
<GradientStop Offset="0.504" Color="#4DE72DFF" />
<GradientStop Offset="0.9423" Color="#4D0073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottomActive" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#66FFE28A" />
<GradientStop Offset="0.504" Color="#66E72DFF" />
<GradientStop Offset="0.9423" Color="#660073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTop" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#5C5338FF" />
<GradientStop Offset="0.3288" Color="#37B030F0" />
<GradientStop Offset="0.5917" Color="#1C9A00AE" />
<GradientStop Offset="0.9423" Color="#00000000" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTopPointerover" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#8A5338FF" />
<GradientStop Offset="0.3288" Color="#53B030F0" />
<GradientStop Offset="0.5917" Color="#299A00AE" />
<GradientStop Offset="0.9423" Color="#00000000" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTopActive" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#B85338FF" />
<GradientStop Offset="0.3288" Color="#6EB030F0" />
<GradientStop Offset="0.5917" Color="#379A00AE" />
<GradientStop Offset="0.9423" Color="#00000000" />
</LinearGradientBrush>
<!-- Text and Icons --> <!-- Text and Icons -->
<SolidColorBrush x:Key="SemiColorText0" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiColorText0" Color="{StaticResource SemiGrey9Color}" />
<SolidColorBrush x:Key="SemiColorText1" Opacity="0.8" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiColorText1" Opacity="0.8" Color="{StaticResource SemiGrey9Color}" />

View File

@@ -170,6 +170,16 @@
<Color x:Key="SemiBackground2Color">White</Color> <Color x:Key="SemiBackground2Color">White</Color>
<Color x:Key="SemiBackground3Color">White</Color> <Color x:Key="SemiBackground3Color">White</Color>
<Color x:Key="SemiBackground4Color">White</Color> <Color x:Key="SemiBackground4Color">White</Color>
<Color x:Key="SemiAIPurple0Color">#F8EDFF</Color>
<Color x:Key="SemiAIPurple1Color">#F2DAFF</Color>
<Color x:Key="SemiAIPurple2Color">#E3B5FF</Color>
<Color x:Key="SemiAIPurple3Color">#D191FF</Color>
<Color x:Key="SemiAIPurple4Color">#BD6CFF</Color>
<Color x:Key="SemiAIPurple5Color">#A647FF</Color>
<Color x:Key="SemiAIPurple6Color">#8636DB</Color>
<Color x:Key="SemiAIPurple7Color">#6928B8</Color>
<Color x:Key="SemiAIPurple8Color">#4E1C94</Color>
<Color x:Key="SemiAIPurple9Color">#361270</Color>
<SolidColorBrush x:Key="SemiWhite" Color="{StaticResource SemiWhiteColor}" /> <SolidColorBrush x:Key="SemiWhite" Color="{StaticResource SemiWhiteColor}" />
<SolidColorBrush x:Key="SemiBlack" Color="{StaticResource SemiBlackColor}" /> <SolidColorBrush x:Key="SemiBlack" Color="{StaticResource SemiBlackColor}" />
@@ -333,6 +343,76 @@
<SolidColorBrush x:Key="SemiGrey7" Color="{StaticResource SemiGrey7Color}" /> <SolidColorBrush x:Key="SemiGrey7" Color="{StaticResource SemiGrey7Color}" />
<SolidColorBrush x:Key="SemiGrey8" Color="{StaticResource SemiGrey8Color}" /> <SolidColorBrush x:Key="SemiGrey8" Color="{StaticResource SemiGrey8Color}" />
<SolidColorBrush x:Key="SemiGrey9" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiGrey9" Color="{StaticResource SemiGrey9Color}" />
<SolidColorBrush x:Key="SemiAIPurple0" Color="{StaticResource SemiAIPurple0Color}" />
<SolidColorBrush x:Key="SemiAIPurple1" Color="{StaticResource SemiAIPurple1Color}" />
<SolidColorBrush x:Key="SemiAIPurple2" Color="{StaticResource SemiAIPurple2Color}" />
<SolidColorBrush x:Key="SemiAIPurple3" Color="{StaticResource SemiAIPurple3Color}" />
<SolidColorBrush x:Key="SemiAIPurple4" Color="{StaticResource SemiAIPurple4Color}" />
<SolidColorBrush x:Key="SemiAIPurple5" Color="{StaticResource SemiAIPurple5Color}" />
<SolidColorBrush x:Key="SemiAIPurple6" Color="{StaticResource SemiAIPurple6Color}" />
<SolidColorBrush x:Key="SemiAIPurple7" Color="{StaticResource SemiAIPurple7Color}" />
<SolidColorBrush x:Key="SemiAIPurple8" Color="{StaticResource SemiAIPurple8Color}" />
<SolidColorBrush x:Key="SemiAIPurple9" Color="{StaticResource SemiAIPurple9Color}" />
<LinearGradientBrush x:Key="SemiAIGeneral0" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#FFF2FF" />
<GradientStop Offset="0.3" Color="#F8EDFF" />
<GradientStop Offset="0.6" Color="#F4F4FF" />
<GradientStop Offset="1.0" Color="#EFF7FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral1" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#FFDAFE" />
<GradientStop Offset="0.3" Color="#F2DAFF" />
<GradientStop Offset="0.6" Color="#DFE0FF" />
<GradientStop Offset="1.0" Color="#D5EBFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral2" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#FEB5FF" />
<GradientStop Offset="0.3" Color="#E3B5FF" />
<GradientStop Offset="0.6" Color="#C1C0FF" />
<GradientStop Offset="1.0" Color="#ABD5FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral3" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#F98FFF" />
<GradientStop Offset="0.3" Color="#D191FF" />
<GradientStop Offset="0.6" Color="#A3A0FF" />
<GradientStop Offset="1.0" Color="#82BEFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral4" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#F26AFF" />
<GradientStop Offset="0.3" Color="#BD6CFF" />
<GradientStop Offset="0.6" Color="#8681FF" />
<GradientStop Offset="1.0" Color="#58A6FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral5" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#E945FF" />
<GradientStop Offset="0.3" Color="#A647FF" />
<GradientStop Offset="0.6" Color="#6B61FF" />
<GradientStop Offset="1.0" Color="#2E8CFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral6" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#C235DB" />
<GradientStop Offset="0.3" Color="#8636DB" />
<GradientStop Offset="0.6" Color="#584DDB" />
<GradientStop Offset="1.0" Color="#2172DB" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral7" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#9D27B8" />
<GradientStop Offset="0.3" Color="#6928B8" />
<GradientStop Offset="0.6" Color="#473BB8" />
<GradientStop Offset="1.0" Color="#1659B8" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral8" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#791B94" />
<GradientStop Offset="0.3" Color="#4E1C94" />
<GradientStop Offset="0.6" Color="#372B94" />
<GradientStop Offset="1.0" Color="#0D4394" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiAIGeneral9" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#581170" />
<GradientStop Offset="0.3" Color="#361270" />
<GradientStop Offset="0.6" Color="#281D70" />
<GradientStop Offset="1.0" Color="#072F70" />
</LinearGradientBrush>
<SolidColorBrush x:Key="SemiColorWhite" Color="{StaticResource SemiWhiteColor}" /> <SolidColorBrush x:Key="SemiColorWhite" Color="{StaticResource SemiWhiteColor}" />
<SolidColorBrush x:Key="SemiColorBlack" Color="{StaticResource SemiBlackColor}" /> <SolidColorBrush x:Key="SemiColorBlack" Color="{StaticResource SemiBlackColor}" />
@@ -390,6 +470,76 @@
<SolidColorBrush x:Key="SemiColorDangerLightPointerover" Color="{StaticResource SemiRed1Color}" /> <SolidColorBrush x:Key="SemiColorDangerLightPointerover" Color="{StaticResource SemiRed1Color}" />
<SolidColorBrush x:Key="SemiColorDangerLightActive" Color="{StaticResource SemiRed2Color}" /> <SolidColorBrush x:Key="SemiColorDangerLightActive" Color="{StaticResource SemiRed2Color}" />
<!-- AI General -->
<LinearGradientBrush x:Key="SemiColorAIGeneral" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#E945FF" />
<GradientStop Offset="0.3" Color="#A647FF" />
<GradientStop Offset="0.6" Color="#6B61FF" />
<GradientStop Offset="1.0" Color="#2E8CFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralPointerover" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#C235DB" />
<GradientStop Offset="0.3" Color="#8636DB" />
<GradientStop Offset="0.6" Color="#584DDB" />
<GradientStop Offset="1.0" Color="#2172DB" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralActive" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#9D27B8" />
<GradientStop Offset="0.3" Color="#6928B8" />
<GradientStop Offset="0.6" Color="#473BB8" />
<GradientStop Offset="1.0" Color="#1659B8" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIGeneralDisabled" StartPoint="99%,93%" EndPoint="1%,7%">
<GradientStop Offset="0.0" Color="#FEB5FF" />
<GradientStop Offset="0.3" Color="#E3B5FF" />
<GradientStop Offset="0.6" Color="#C1C0FF" />
<GradientStop Offset="1.0" Color="#ABD5FF" />
</LinearGradientBrush>
<!-- AI Purple -->
<SolidColorBrush x:Key="SemiColorAIPurple" Color="{StaticResource SemiAIPurple5Color}" />
<SolidColorBrush x:Key="SemiColorAIPurplePointerover" Color="{StaticResource SemiAIPurple6Color}" />
<SolidColorBrush x:Key="SemiColorAIPurpleActive" Color="{StaticResource SemiAIPurple7Color}" />
<SolidColorBrush x:Key="SemiColorAIPurpleDisabled" Color="{StaticResource SemiAIPurple2Color}" />
<!-- AI Background -->
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottom" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#0AFFFFFF" />
<GradientStop Offset="0.3288" Color="#0AFFE28A" />
<GradientStop Offset="0.6793" Color="#0AE72DFF" />
<GradientStop Offset="0.9423" Color="#0A0073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottomPointerover" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#14FFFFFF" />
<GradientStop Offset="0.3288" Color="#14FFE28A" />
<GradientStop Offset="0.6793" Color="#14E72DFF" />
<GradientStop Offset="0.9423" Color="#140073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundBottomActive" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#1EFFFFFF" />
<GradientStop Offset="0.3288" Color="#1EFFE28A" />
<GradientStop Offset="0.6793" Color="#1EE72DFF" />
<GradientStop Offset="0.9423" Color="#1E0073FF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTop" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#295338FF" />
<GradientStop Offset="0.3288" Color="#18B030F0" />
<GradientStop Offset="0.5917" Color="#0CE72DFF" />
<GradientStop Offset="0.9423" Color="#00FFFFFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTopPointerover" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#3D5338FF" />
<GradientStop Offset="0.3288" Color="#25B030F0" />
<GradientStop Offset="0.5917" Color="#12E72DFF" />
<GradientStop Offset="0.9423" Color="#00FFFFFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="SemiColorAIBackgroundTopActive" StartPoint="69.35%,0%" EndPoint="30.65%,100%">
<GradientStop Offset="0.0658" Color="#525338FF" />
<GradientStop Offset="0.3288" Color="#31B030F0" />
<GradientStop Offset="0.5917" Color="#18E72DFF" />
<GradientStop Offset="0.9423" Color="#00FFFFFF" />
</LinearGradientBrush>
<!-- Text and Icons --> <!-- Text and Icons -->
<SolidColorBrush x:Key="SemiColorText0" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiColorText0" Color="{StaticResource SemiGrey9Color}" />
<SolidColorBrush x:Key="SemiColorText1" Opacity="0.8" Color="{StaticResource SemiGrey9Color}" /> <SolidColorBrush x:Key="SemiColorText1" Opacity="0.8" Color="{StaticResource SemiGrey9Color}" />

View File

@@ -67,7 +67,7 @@
<FontWeight x:Key="SemiFontWeightRegular">400</FontWeight> <!-- 字重 - 常规 --> <FontWeight x:Key="SemiFontWeightRegular">400</FontWeight> <!-- 字重 - 常规 -->
<FontWeight x:Key="SemiFontWeightBold">600</FontWeight> <!-- 字重 - 粗 --> <FontWeight x:Key="SemiFontWeightBold">600</FontWeight> <!-- 字重 - 粗 -->
<FontFamily x:Key="SemiFontFamilyRegular"> <FontFamily x:Key="SemiFontFamilyRegular">
Inter, -apple-system, BlinkMacSystemFont, PingFang SC, fonts:Inter#Inter, Inter, -apple-system, BlinkMacSystemFont, PingFang SC,
Microsoft YaHei, Segoe UI, Hiragino Sans GB, Helvetica Neue, Microsoft YaHei, Segoe UI, Hiragino Sans GB, Helvetica Neue,
Helvetica, Arial, sans-serif Helvetica, Arial, sans-serif
</FontFamily> </FontFamily>