Compare commits
26 Commits
29fb04e783
...
v0.5.0
| Author | SHA1 | Date | |
|---|---|---|---|
| d8dea1913a | |||
| 1f99e49dec | |||
| 8bac9fbc58 | |||
| e0aad6277d | |||
| 99ce4b8e55 | |||
| bdf52e82af | |||
| a8244ec0de | |||
| 2affd56e38 | |||
| 6714cccf1d | |||
| 06575fb224 | |||
| 68c19a9adf | |||
| ebf7aec77c | |||
| 5c6a5fb41d | |||
| 3754c67449 | |||
| 582d6b5663 | |||
| fc5c8d7b51 | |||
|
|
0f8d0867ad | ||
|
|
0c782fd9b4 | ||
| e9c155b272 | |||
| fe0f1d98ef | |||
| 3a52f5c19f | |||
| 5a6d96ca97 | |||
| 0c52789cf6 | |||
| b50ee1a251 | |||
| 50ae20abd1 | |||
|
|
79e1d52391 |
10
.claude/settings.local.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"WebFetch(domain:raw.githubusercontent.com)",
|
||||||
|
"Bash(chmod +x \"/c/Users/Nouredeen/.claude/scripts/context-bar.sh\")",
|
||||||
|
"Bash(dotnet build:*)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"spinnerTipsEnabled": true
|
||||||
|
}
|
||||||
258
.claude/skills/avalonia/SKILL.md
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
---
|
||||||
|
name: avalonia
|
||||||
|
description: >
|
||||||
|
Use when working on any Avalonia UI code — AXAML, control styling, bindings,
|
||||||
|
control templates, animations, custom controls, platform differences, or
|
||||||
|
LiveCharts2/Svg.Skia integration. Triggers on questions about Avalonia
|
||||||
|
controls, properties, ControlThemes, styles, pseudo-classes, DataTemplates,
|
||||||
|
ViewLocator, or any "how do I do X in Avalonia" question.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Avalonia UI Skill
|
||||||
|
|
||||||
|
You are working in an Avalonia UI project. This skill gives you accurate,
|
||||||
|
verified knowledge about Avalonia and prevents hallucinating WPF-style patterns
|
||||||
|
that do not work in Avalonia.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 1 — Check before you answer
|
||||||
|
|
||||||
|
**NEVER** answer from memory alone for:
|
||||||
|
- Specific control properties or template part names
|
||||||
|
- Pseudo-class selectors (`:pointerover`, `:pressed`, `:focus`, etc.)
|
||||||
|
- Animation API (`Animation`, `KeyFrame`, `Cue`, `Easing` classes)
|
||||||
|
- `ControlTheme` vs `Style` syntax differences
|
||||||
|
- Platform-specific behaviors (mobile vs desktop)
|
||||||
|
- LiveCharts2 or Svg.Skia properties
|
||||||
|
|
||||||
|
**Always verify** using one of these sources in order:
|
||||||
|
|
||||||
|
1. **Official docs**: `https://docs.avaloniaui.net/docs/reference/controls/{control-name}`
|
||||||
|
2. **GitHub source** (most reliable for exact property names):
|
||||||
|
`https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/{ControlName}.cs`
|
||||||
|
3. **Avalonia samples**: `https://github.com/AvaloniaUI/Avalonia.Samples`
|
||||||
|
|
||||||
|
For styling/theming questions also check:
|
||||||
|
- `https://github.com/AvaloniaUI/Avalonia/tree/master/src/Avalonia.Themes.Fluent/Controls`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2 — Core Avalonia vs WPF differences
|
||||||
|
|
||||||
|
These are frequent sources of errors. Apply automatically:
|
||||||
|
|
||||||
|
### Styling
|
||||||
|
```xml
|
||||||
|
<!-- Avalonia: CSS-like selectors -->
|
||||||
|
<Style Selector="Button.primary:pointerover /template/ ContentPresenter">
|
||||||
|
<Setter Property="Background" Value="Blue"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<!-- NOT WPF DataTriggers — those do not exist in Avalonia -->
|
||||||
|
<!-- NOT WPF Triggers — use pseudo-classes instead -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### ControlTheme (Avalonia 11+)
|
||||||
|
```xml
|
||||||
|
<!-- For re-theming built-in controls use ControlTheme, not Style -->
|
||||||
|
<ControlTheme x:Key="{x:Type Button}" TargetType="Button">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<ControlTemplate>...</ControlTemplate>
|
||||||
|
</Setter>
|
||||||
|
</ControlTheme>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bindings
|
||||||
|
```xml
|
||||||
|
<!-- x:CompileBindings="True" (default) requires x:DataType -->
|
||||||
|
<!-- Use x:CompileBindings="False" on shell/dynamic views -->
|
||||||
|
<!-- DynamicResource NOT StaticResource for theme colors -->
|
||||||
|
<!-- No ElementName binding across UserControl boundaries — use RelativeSource or pass via property -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### No DataTriggers
|
||||||
|
Avalonia has no DataTriggers. Use instead:
|
||||||
|
- `Classes.myClass="{Binding SomeBool}"` + style on `.myClass`
|
||||||
|
- `IsVisible="{Binding SomeBool}"`
|
||||||
|
- `MultiBinding` with converter
|
||||||
|
|
||||||
|
### x:Name in code-behind
|
||||||
|
`x:Name` does NOT create direct fields in Avalonia. Access named controls via:
|
||||||
|
```csharp
|
||||||
|
var btn = this.Get<Button>("PART_Button"); // throws if not found
|
||||||
|
var btn = this.FindControl<Button>("PART_Button"); // returns null if not found
|
||||||
|
// TranslateTransform cannot have x:Name — access via RenderTransform:
|
||||||
|
var tf = (TranslateTransform)someControl.RenderTransform!;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Animations in code-behind
|
||||||
|
```csharp
|
||||||
|
var animation = new Animation
|
||||||
|
{
|
||||||
|
Duration = TimeSpan.FromMilliseconds(320),
|
||||||
|
Easing = new CubicEaseOut(),
|
||||||
|
FillMode = FillMode.Forward,
|
||||||
|
Children =
|
||||||
|
{
|
||||||
|
new KeyFrame { Cue = new Cue(0d), Setters = { new Setter(TranslateTransform.YProperty, 0d) } },
|
||||||
|
new KeyFrame { Cue = new Cue(1d), Setters = { new Setter(TranslateTransform.YProperty, 300d) } }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
await animation.RunAsync(targetControl);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Platform detection
|
||||||
|
```csharp
|
||||||
|
bool isMobile = ApplicationLifetime is ISingleViewApplicationLifetime;
|
||||||
|
// App.IsMobile is the project's cached version
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 3 — Known Avalonia gotchas from this project
|
||||||
|
|
||||||
|
### ViewLocator (no DataTemplates in AXAML)
|
||||||
|
```csharp
|
||||||
|
// ViewLocator auto-resolves: {Name}ViewModel → {Name}View (desktop) or {Name}ViewMobile (mobile)
|
||||||
|
// Do NOT register DataTemplates in AXAML
|
||||||
|
// Register FuncDataTemplate in App.axaml.cs code-behind if needed
|
||||||
|
```
|
||||||
|
|
||||||
|
### Observable property initialization order
|
||||||
|
Object initializers set properties one by one — `partial void On{Property}Changed` fires
|
||||||
|
immediately, before other properties are set. **Never** trigger initialization logic from
|
||||||
|
property changed handlers when the VM needs multiple properties. Always use an explicit
|
||||||
|
`Initialize()` method called after the object initializer.
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// WRONG
|
||||||
|
partial void OnTransactionsChanged(List<Transaction> value) => ProcessData(); // Categories may be null
|
||||||
|
|
||||||
|
// RIGHT
|
||||||
|
var vm = new MyViewModel { Transactions = t, Categories = c, Accounts = a };
|
||||||
|
vm.Initialize(); // all props guaranteed set
|
||||||
|
```
|
||||||
|
|
||||||
|
### ObservableCollection mutations
|
||||||
|
Mutating a `List<T>` never triggers binding updates. Replace the entire collection:
|
||||||
|
```csharp
|
||||||
|
MyList = new List<T>(newItems); // triggers OnPropertyChanged
|
||||||
|
// NOT: MyList.Add(item); // binding won't update for List<T>
|
||||||
|
```
|
||||||
|
For `ObservableCollection<T>`, `.Add()` and `.Remove()` do trigger updates but `.Clear()` +
|
||||||
|
re-add causes a full re-render. Prefer replacing the collection for large updates.
|
||||||
|
|
||||||
|
### ScrollViewer + LiveCharts2
|
||||||
|
LiveCharts2 CartesianChart intercepts scroll events. Forward them manually:
|
||||||
|
```csharp
|
||||||
|
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnAttachedToVisualTree(e);
|
||||||
|
var charts = this.GetVisualDescendants().OfType<CartesianChart>();
|
||||||
|
foreach (var chart in charts)
|
||||||
|
chart.AddHandler(PointerWheelChangedEvent, OnChartScroll, RoutingStrategies.Tunnel);
|
||||||
|
}
|
||||||
|
private void OnChartScroll(object? sender, PointerWheelEventArgs e)
|
||||||
|
{
|
||||||
|
var sv = this.GetVisualAncestors().OfType<ScrollViewer>().FirstOrDefault();
|
||||||
|
if (sv is null) return;
|
||||||
|
sv.Offset = new Vector(sv.Offset.X, sv.Offset.Y - e.Delta.Y * sv.SmallChange.Height * 3);
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Half-donut chart
|
||||||
|
```xml
|
||||||
|
<Border Height="150" ClipToBounds="True">
|
||||||
|
<lvc:PieChart Series="{Binding ...}" Height="300" Margin="0,0,0,-150"
|
||||||
|
InitialRotation="-180" MaxAngle="180" LegendPosition="Hidden"
|
||||||
|
ZoomMode="None"/>
|
||||||
|
</Border>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Svg.Skia CSS
|
||||||
|
```xml
|
||||||
|
<!-- stroke-based (Lucide icons) -->
|
||||||
|
<Svg Path="../Assets/Icons/name.svg" Css="{DynamicResource SvgBlue}"/>
|
||||||
|
|
||||||
|
<!-- SvgBlue resource = "path, circle, rect, ellipse, line, polyline, polygon, text, use { stroke: #7B9CFF; }" -->
|
||||||
|
<!-- Fill-based icons use SvgFillBlue etc. -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mobile-specific AXAML rules
|
||||||
|
- No `BoxShadow` — GPU expensive, causes jitter
|
||||||
|
- No `MinWidth`/`MinHeight` on UserControl root
|
||||||
|
- Add `Classes="mobile"` to root element for mobile-specific style overrides
|
||||||
|
- Use `VirtualizingStackPanel` in ItemsControl for long lists
|
||||||
|
- Page size 10 on mobile vs 25 on desktop
|
||||||
|
|
||||||
|
### CalendarDayButton / Calendar
|
||||||
|
Avalonia's Calendar uses `CalendarDayButton` not `CalendarDayItem`.
|
||||||
|
Template parts: `PART_MonthView`, `PART_YearView`, `PART_HeaderButton`, `PART_PreviousButton`, `PART_NextButton`.
|
||||||
|
|
||||||
|
### FlyoutPresenter
|
||||||
|
```xml
|
||||||
|
<!-- Custom transparent flyout presenter must be a ControlTheme in Resources, not Styles -->
|
||||||
|
<ControlTheme x:Key="TransparentFlyoutPresenter" TargetType="FlyoutPresenter">
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="BorderThickness" Value="0"/>
|
||||||
|
<Setter Property="Padding" Value="0"/>
|
||||||
|
</ControlTheme>
|
||||||
|
```
|
||||||
|
|
||||||
|
### TextBox ghost class
|
||||||
|
```xml
|
||||||
|
<!-- Transparent textbox that works in all states -->
|
||||||
|
<Style Selector="TextBox.ghost">
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="BorderThickness" Value="0"/>
|
||||||
|
<Setter Property="Padding" Value="0"/>
|
||||||
|
<Setter Property="FocusAdorner" Value="{x:Null}"/>
|
||||||
|
</Style>
|
||||||
|
<Style Selector="TextBox.ghost:pointerover /template/ Border#PART_BorderElement">
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="BorderThickness" Value="0"/>
|
||||||
|
</Style>
|
||||||
|
<!-- Also add :focus and :disabled variants -->
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 4 — How to look up unfamiliar Avalonia APIs
|
||||||
|
|
||||||
|
### For a control's properties:
|
||||||
|
```
|
||||||
|
Fetch: https://docs.avaloniaui.net/docs/reference/controls/{control-name-lowercase}
|
||||||
|
```
|
||||||
|
|
||||||
|
### For template part names (e.g. what's inside a ComboBox):
|
||||||
|
```
|
||||||
|
Search GitHub: https://github.com/search?q=repo:AvaloniaUI/Avalonia+PART_+{ControlName}&type=code
|
||||||
|
Or fetch: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/{ControlName}.axaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### For pseudo-class selectors:
|
||||||
|
```
|
||||||
|
Fetch: https://docs.avaloniaui.net/docs/reference/styles/pseudo-classes
|
||||||
|
```
|
||||||
|
|
||||||
|
### For animation classes (Easing, FillMode, etc.):
|
||||||
|
```
|
||||||
|
Fetch: https://docs.avaloniaui.net/docs/guides/graphics-and-animations/animation
|
||||||
|
```
|
||||||
|
|
||||||
|
### For ColorPicker internals:
|
||||||
|
```
|
||||||
|
Fetch: https://raw.githubusercontent.com/AvaloniaUI/Avalonia/refs/heads/master/src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPicker.xaml
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 5 — Response format
|
||||||
|
|
||||||
|
1. State what you verified and where
|
||||||
|
2. Provide the correct AXAML or C# with no WPF-isms
|
||||||
|
3. Flag any Avalonia version caveat if relevant (project uses 11.x)
|
||||||
|
4. If something cannot be done via AXAML, explain the code-behind approach
|
||||||
|
5. Never guess at property names — fetch source if uncertain
|
||||||
41
.gitea/workflows/build-linux.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: Build Linux
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup .NET
|
||||||
|
uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: '8.0.x'
|
||||||
|
|
||||||
|
- name: Publish
|
||||||
|
run: |
|
||||||
|
dotnet publish Clario.Desktop/Clario.Desktop.csproj \
|
||||||
|
-r linux-x64 \
|
||||||
|
-c Release \
|
||||||
|
--self-contained true \
|
||||||
|
-p:PublishSingleFile=false \
|
||||||
|
-o ./publish/linux-x64
|
||||||
|
|
||||||
|
|
||||||
|
- name: Package as tar.gz
|
||||||
|
run: tar -czf Clario-linux-x64.tar.gz -C ./publish/linux-x64 .
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: Clario-linux-x64
|
||||||
|
path: ./Clario-linux-x64.tar.gz
|
||||||
|
|
||||||
|
retention-days: 7
|
||||||
40
.github/workflows/build-linux.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
name: Build Linux
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup .NET
|
||||||
|
uses: actions/setup-dotnet@v4
|
||||||
|
with:
|
||||||
|
dotnet-version: '8.0.x'
|
||||||
|
|
||||||
|
- name: Publish
|
||||||
|
run: |
|
||||||
|
dotnet publish Clario.Desktop/Clario.Desktop.csproj \
|
||||||
|
-r linux-x64 \
|
||||||
|
-c Release \
|
||||||
|
--self-contained true \
|
||||||
|
-p:PublishSingleFile=true \
|
||||||
|
-o ./publish/linux-x64
|
||||||
|
|
||||||
|
|
||||||
|
- name: Package as tar.gz
|
||||||
|
run: tar -czf Clario-linux-x64.tar.gz -C ./publish/linux-x64 .
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: Clario-linux-x64
|
||||||
|
path: ./publish/linux
|
||||||
|
retention-days: 7
|
||||||
460
.gitignore
vendored
@@ -1,454 +1,10 @@
|
|||||||
## Ignore Visual Studio temporary files, build results, and
|
bin/
|
||||||
## files generated by popular Visual Studio add-ons.
|
obj/
|
||||||
##
|
|
||||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.rsuser
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Mono auto generated files
|
|
||||||
mono_crash.*
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
[Ww][Ii][Nn]32/
|
|
||||||
[Aa][Rr][Mm]/
|
|
||||||
[Aa][Rr][Mm]64/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Ll]og/
|
|
||||||
[Ll]ogs/
|
|
||||||
|
|
||||||
# Visual Studio 2015/2017 cache/options directory
|
|
||||||
.vs/
|
.vs/
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# Visual Studio 2017 auto generated files
|
|
||||||
Generated\ Files/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUnit
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
nunit-*.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# Benchmark Results
|
|
||||||
BenchmarkDotNet.Artifacts/
|
|
||||||
|
|
||||||
# .NET Core
|
|
||||||
project.lock.json
|
|
||||||
project.fragment.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
# Tye
|
|
||||||
.tye/
|
|
||||||
|
|
||||||
# ASP.NET Scaffolding
|
|
||||||
ScaffoldingReadMe.txt
|
|
||||||
|
|
||||||
# StyleCop
|
|
||||||
StyleCopReport.xml
|
|
||||||
|
|
||||||
# Files built by Visual Studio
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_h.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.iobj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.ipdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*_wpftmp.csproj
|
|
||||||
*.log
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
*.VC.db
|
|
||||||
*.VC.VC.opendb
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# Visual Studio Trace Files
|
|
||||||
*.e2e
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# AxoCover is a Code Coverage Tool
|
|
||||||
.axoCover/*
|
|
||||||
!.axoCover/settings.json
|
|
||||||
|
|
||||||
# Coverlet is a free, cross platform Code Coverage Tool
|
|
||||||
coverage*.json
|
|
||||||
coverage*.xml
|
|
||||||
coverage*.info
|
|
||||||
|
|
||||||
# Visual Studio code coverage results
|
|
||||||
*.coverage
|
|
||||||
*.coveragexml
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# NuGet Symbol Packages
|
|
||||||
*.snupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/[Pp]ackages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/[Pp]ackages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/[Pp]ackages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
*.appx
|
|
||||||
*.appxbundle
|
|
||||||
*.appxupload
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!?*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.jfm
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Including strong name files can present a security risk
|
|
||||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
|
||||||
#*.snk
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
ServiceFabricBackup/
|
|
||||||
*.rptproj.bak
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
*.ndf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
*.rptproj.rsuser
|
|
||||||
*- [Bb]ackup.rdl
|
|
||||||
*- [Bb]ackup ([0-9]).rdl
|
|
||||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
|
||||||
*.vbw
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# CodeRush personal settings
|
|
||||||
.cr/personal
|
|
||||||
|
|
||||||
# Python Tools for Visual Studio (PTVS)
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|
||||||
# Cake - Uncomment if you are using it
|
|
||||||
# tools/**
|
|
||||||
# !tools/packages.config
|
|
||||||
|
|
||||||
# Tabs Studio
|
|
||||||
*.tss
|
|
||||||
|
|
||||||
# Telerik's JustMock configuration file
|
|
||||||
*.jmconfig
|
|
||||||
|
|
||||||
# BizTalk build output
|
|
||||||
*.btp.cs
|
|
||||||
*.btm.cs
|
|
||||||
*.odx.cs
|
|
||||||
*.xsd.cs
|
|
||||||
|
|
||||||
# OpenCover UI analysis results
|
|
||||||
OpenCover/
|
|
||||||
|
|
||||||
# Azure Stream Analytics local run output
|
|
||||||
ASALocalRun/
|
|
||||||
|
|
||||||
# MSBuild Binary and Structured Log
|
|
||||||
*.binlog
|
|
||||||
|
|
||||||
# NVidia Nsight GPU debugger configuration file
|
|
||||||
*.nvuser
|
|
||||||
|
|
||||||
# MFractors (Xamarin productivity tool) working folder
|
|
||||||
.mfractor/
|
|
||||||
|
|
||||||
# Local History for Visual Studio
|
|
||||||
.localhistory/
|
|
||||||
|
|
||||||
# BeatPulse healthcheck temp database
|
|
||||||
healthchecksdb
|
|
||||||
|
|
||||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
|
||||||
MigrationBackup/
|
|
||||||
|
|
||||||
# Ionide (cross platform F# VS Code tools) working folder
|
|
||||||
.ionide/
|
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
|
||||||
FodyWeavers.xsd
|
|
||||||
|
|
||||||
##
|
|
||||||
## Visual studio for Mac
|
|
||||||
##
|
|
||||||
|
|
||||||
|
|
||||||
# globs
|
|
||||||
Makefile.in
|
|
||||||
*.userprefs
|
|
||||||
*.usertasks
|
|
||||||
config.make
|
|
||||||
config.status
|
|
||||||
aclocal.m4
|
|
||||||
install-sh
|
|
||||||
autom4te.cache/
|
|
||||||
*.tar.gz
|
|
||||||
tarballs/
|
|
||||||
test-results/
|
|
||||||
|
|
||||||
# Mac bundle stuff
|
|
||||||
*.dmg
|
|
||||||
*.app
|
|
||||||
|
|
||||||
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
|
|
||||||
# General
|
|
||||||
.DS_Store
|
|
||||||
.AppleDouble
|
|
||||||
.LSOverride
|
|
||||||
|
|
||||||
# Icon must end with two \r
|
|
||||||
Icon
|
|
||||||
|
|
||||||
|
|
||||||
# Thumbnails
|
|
||||||
._*
|
|
||||||
|
|
||||||
# Files that might appear in the root of a volume
|
|
||||||
.DocumentRevisions-V100
|
|
||||||
.fseventsd
|
|
||||||
.Spotlight-V100
|
|
||||||
.TemporaryItems
|
|
||||||
.Trashes
|
|
||||||
.VolumeIcon.icns
|
|
||||||
.com.apple.timemachine.donotpresent
|
|
||||||
|
|
||||||
# Directories potentially created on remote AFP share
|
|
||||||
.AppleDB
|
|
||||||
.AppleDesktop
|
|
||||||
Network Trash Folder
|
|
||||||
Temporary Items
|
|
||||||
.apdisk
|
|
||||||
|
|
||||||
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
|
|
||||||
# Windows thumbnail cache files
|
|
||||||
Thumbs.db
|
|
||||||
ehthumbs.db
|
|
||||||
ehthumbs_vista.db
|
|
||||||
|
|
||||||
# Dump file
|
|
||||||
*.stackdump
|
|
||||||
|
|
||||||
# Folder config file
|
|
||||||
[Dd]esktop.ini
|
|
||||||
|
|
||||||
# Recycle Bin used on file shares
|
|
||||||
$RECYCLE.BIN/
|
|
||||||
|
|
||||||
# Windows Installer files
|
|
||||||
*.cab
|
|
||||||
*.msi
|
|
||||||
*.msix
|
|
||||||
*.msm
|
|
||||||
*.msp
|
|
||||||
|
|
||||||
# Windows shortcuts
|
|
||||||
*.lnk
|
|
||||||
|
|
||||||
# JetBrains Rider
|
|
||||||
.idea/
|
.idea/
|
||||||
*.sln.iml
|
*.user
|
||||||
|
*.suo
|
||||||
##
|
./Clario/CLAUDE_CONTEXT.md
|
||||||
## Visual Studio Code
|
publish/
|
||||||
##
|
*.tar.gz
|
||||||
.vscode/*
|
Clario/devsettings.json
|
||||||
!.vscode/settings.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/extensions.json
|
|
||||||
196
CLAUDE.md
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
# Clario — Claude Code Instructions
|
||||||
|
|
||||||
|
Clario is a cross-platform personal finance tracking app.
|
||||||
|
See @NEW_CHAT_CONTEXT.md for full project context before starting any task.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
- **UI**: Avalonia UI XPlat (.NET 9), CommunityToolkit.MVVM
|
||||||
|
- **Backend**: Supabase (PostgreSQL, Auth, RLS, Realtime)
|
||||||
|
- **Charts**: LiveCharts2 (SkiaSharp)
|
||||||
|
- **IDE**: JetBrains Rider, Windows dev machine (Arabic region — always use `en-US` CultureInfo)
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
Clario/ ← shared (ViewModels, Models, Services, Data, CustomControls, Behaviors, Converters)
|
||||||
|
Clario.Desktop/ ← Windows/macOS/Linux entry point
|
||||||
|
Clario.Android/ ← Android entry point
|
||||||
|
Views/ ← desktop AXAML views only
|
||||||
|
MobileViews/ ← mobile AXAML views only
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build & Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Desktop
|
||||||
|
dotnet run --project Clario.Desktop
|
||||||
|
|
||||||
|
# Android (requires connected device or emulator)
|
||||||
|
dotnet build Clario.Android -c Release
|
||||||
|
|
||||||
|
# Verify build
|
||||||
|
dotnet build Clario.sln
|
||||||
|
```
|
||||||
|
|
||||||
|
## Platform Detection
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Always check this before any platform-specific logic
|
||||||
|
App.IsMobile // true on Android/iOS, false on desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## CRITICAL RULES — Read before every task
|
||||||
|
|
||||||
|
### AXAML Rules
|
||||||
|
|
||||||
|
- **ALWAYS** use `{DynamicResource}` for theme colors, never hardcode hex
|
||||||
|
- **NEVER** put DataTemplates in AXAML — ViewLocator handles all view resolution
|
||||||
|
- **NEVER** add `MinWidth`/`MinHeight` to UserControl in mobile views
|
||||||
|
- **NEVER** use `BoxShadow` in mobile views
|
||||||
|
- Use `x:CompileBindings="False"` on shell views with dynamic DataContext
|
||||||
|
- Desktop views go in `Views/`, mobile views go in `MobileViews/` named `{Name}ViewMobile.axaml`
|
||||||
|
- Icon background opacity always: `<SolidColorBrush Color="..." Opacity="0.15"/>`
|
||||||
|
- Separator between list items: `Spacing="1"` on StackPanel + `BorderSubtle` background on container
|
||||||
|
|
||||||
|
### ViewModel Rules
|
||||||
|
|
||||||
|
- **NEVER** fetch data in child ViewModel constructors
|
||||||
|
- **NEVER** trigger initialization from `partial void On{Property}Changed` when VM depends on multiple properties
|
||||||
|
- Call `Initialize()` explicitly after object initializer sets all required fields
|
||||||
|
- Child VMs have `public required ViewModelBase parentViewModel`
|
||||||
|
- Replace lists entirely to trigger bindings — never mutate and expect updates
|
||||||
|
|
||||||
|
### C# Rules
|
||||||
|
|
||||||
|
- Always `en-US` CultureInfo for dates/numbers (Windows has Arabic region)
|
||||||
|
- Use `Task.WhenAll` for parallel async fetches in `InitializeApp`
|
||||||
|
- Use `_ = SomeAsyncMethod()` for fire-and-forget with try/catch inside the method
|
||||||
|
- Wrap fire-and-forget in try/catch — exceptions are silently swallowed
|
||||||
|
|
||||||
|
### Style Classes
|
||||||
|
|
||||||
|
```
|
||||||
|
accented → primary action button (AccentBlue bg)
|
||||||
|
base → secondary action button
|
||||||
|
nav → transparent navigation/toggle button
|
||||||
|
danger → destructive action (DangerButtonBackground + AccentRed text)
|
||||||
|
ghost → transparent TextBox (no border, any state)
|
||||||
|
label → uppercase muted TextBlock label
|
||||||
|
muted → TextMuted foreground
|
||||||
|
mobile → root class on mobile views (enables mobile overrides)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Tokens (quick reference)
|
||||||
|
|
||||||
|
```
|
||||||
|
BgBase/BgSurface/BgSidebar/BgHover
|
||||||
|
BorderSubtle/BorderAccent
|
||||||
|
TextPrimary/TextSecondary/TextMuted/TextDisabled
|
||||||
|
AccentBlue/AccentGreen/AccentYellow/AccentRed/AccentPurple/AccentOrange/AccentPink
|
||||||
|
IconBgBlue/IconBgGreen/IconBgRed/IconBgOrange/IconBgPurple/IconBgPink
|
||||||
|
BadgeBgRed/BadgeBgYellow/BadgeBgGreen/BadgeBgBlue
|
||||||
|
DangerButtonBackground/DangerButtonBorder
|
||||||
|
SvgPrimary/SvgSecondary/SvgMuted/SvgDisabled/SvgBlue/SvgGreen/SvgYellow/SvgRed
|
||||||
|
```
|
||||||
|
|
||||||
|
## SVG Pattern
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Svg Path="../Assets/Icons/icon-name.svg" Width="16" Height="16" Css="{DynamicResource SvgBlue}"/>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Converters (quick reference)
|
||||||
|
|
||||||
|
| Key | Usage |
|
||||||
|
|-----|-------|
|
||||||
|
| `HexToColorConverter` | `ConverterParameter=color/css/brush` |
|
||||||
|
| `AmountColorConverter` | type string → AccentRed/Green brush |
|
||||||
|
| `AmountSignConverter` | MultiBinding(amount, type) → `+$x.xx` |
|
||||||
|
| `BoolToColorConverter` | `ConverterParameter='#hex1\|#hex2'` |
|
||||||
|
| `BoolToCssConverter` | `ConverterParameter='#hex1\|#hex2'` → SVG CSS |
|
||||||
|
| `SvgPathFromName` | `"icon-name"` → `"../Assets/Icons/icon-name.svg"` |
|
||||||
|
| `DateFormatConverter` | DateTime → string (always en-US) |
|
||||||
|
| `EqualValueConverter` | MultiBinding equality → bool |
|
||||||
|
| `NetworthSumConverter` | MultiBinding(income, expenses) → net |
|
||||||
|
| `PercentageConverter` | MultiBinding(value, total) → % |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Flyout Pattern
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<Button.Flyout>
|
||||||
|
<Flyout Placement="BottomEdgeAlignedRight"
|
||||||
|
FlyoutPresenterTheme="{StaticResource TransparentFlyoutPresenter}">
|
||||||
|
<views:SomeView/>
|
||||||
|
</Flyout>
|
||||||
|
</Button.Flyout>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Modal Overlay Pattern
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- In MainView content area, on top of ContentControl -->
|
||||||
|
<views:SomeFormView
|
||||||
|
DataContext="{Binding SomeFormVM}"
|
||||||
|
IsVisible="{Binding IsFormVisible}"/>
|
||||||
|
```
|
||||||
|
The view's root Grid must have `<Border Background="#70000000"/>` as the dim layer.
|
||||||
|
|
||||||
|
## Bottom Sheet Pattern (mobile)
|
||||||
|
|
||||||
|
- Controlled via `ShowSheet()` / `HideSheet()` public methods in code-behind
|
||||||
|
- `TranslateTransform` animation: CubicEaseOut 320ms up, CubicEaseIn 260ms down
|
||||||
|
- `OverlayGrid.IsVisible = false` by default in AXAML
|
||||||
|
- Set `BottomSheet.MaxHeight = Bounds.Height * 0.82` in `OnAttachedToVisualTree`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Supabase
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// All queries via DataRepo
|
||||||
|
DataRepo.General.FetchTransactions()
|
||||||
|
DataRepo.General.FetchCategories()
|
||||||
|
DataRepo.General.FetchAccounts()
|
||||||
|
DataRepo.General.FetchBudgets()
|
||||||
|
DataRepo.General.FetchProfileInfo()
|
||||||
|
// etc.
|
||||||
|
|
||||||
|
// Auth
|
||||||
|
SupabaseService.Client.Auth.CurrentUser
|
||||||
|
SupabaseService.Client.Auth.SignIn(email, password)
|
||||||
|
SupabaseService.Client.Auth.SignOut()
|
||||||
|
SupabaseService.Client.Auth.Update(new UserAttributes { ... })
|
||||||
|
```
|
||||||
|
|
||||||
|
RLS: all tables enabled. INSERT uses `WITH CHECK (auth.uid() = user_id)`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
After any code change, verify by:
|
||||||
|
1. `dotnet build Clario.sln` — must have zero errors
|
||||||
|
2. Check AXAML for `{DynamicResource}` on all color bindings
|
||||||
|
3. Check that no ViewModel constructor fetches data
|
||||||
|
4. On mobile views: no `BoxShadow`, no `MinWidth`/`MinHeight`, has `Classes="mobile"` on root
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What's Not Yet Built
|
||||||
|
|
||||||
|
- `AuthViewMobile` — needs creating
|
||||||
|
- Settings view mobile version — needs creating
|
||||||
|
- Analytics view — not designed yet
|
||||||
|
- Light theme — token file incomplete, do not assume it's complete
|
||||||
|
- Real-time Supabase subscriptions — not wired to UI
|
||||||
@@ -13,16 +13,16 @@
|
|||||||
<RootNamespace>Clario.Android</RootNamespace>
|
<RootNamespace>Clario.Android</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<AndroidResource Include="Icon.png">
|
|
||||||
<Link>Resources\drawable\Icon.png</Link>
|
|
||||||
</AndroidResource>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia.Android"/>
|
<PackageReference Include="Avalonia.Android"/>
|
||||||
|
<PackageReference Include="Avalonia.Controls.ColorPicker" />
|
||||||
<PackageReference Include="Avalonia.Svg.Skia" />
|
<PackageReference Include="Avalonia.Svg.Skia" />
|
||||||
|
<PackageReference Include="Deadpikle.AvaloniaProgressRing" />
|
||||||
|
<PackageReference Include="FluentAvalonia.ProgressRing" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
||||||
|
<PackageReference Include="SkiaSharp" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.Linux" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.WebAssembly" />
|
||||||
<PackageReference Include="Supabase" />
|
<PackageReference Include="Supabase" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Core.SplashScreen"/>
|
<PackageReference Include="Xamarin.AndroidX.Core.SplashScreen"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -30,4 +30,9 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Clario\Clario.csproj" />
|
<ProjectReference Include="..\Clario\Clario.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Resources\drawable-night-v31\" />
|
||||||
|
<Folder Include="Resources\drawable-v31\" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
<animated-vector
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt">
|
|
||||||
<aapt:attr name="android:drawable">
|
|
||||||
<vector
|
|
||||||
android:name="vector"
|
|
||||||
android:width="128dp"
|
|
||||||
android:height="128dp"
|
|
||||||
android:viewportWidth="128"
|
|
||||||
android:viewportHeight="128">
|
|
||||||
<group
|
|
||||||
android:name="wrapper"
|
|
||||||
android:translateX="21"
|
|
||||||
android:translateY="21">
|
|
||||||
<group android:name="group">
|
|
||||||
<path
|
|
||||||
android:name="path"
|
|
||||||
android:pathData="M 74.853 85.823 L 75.368 85.823 C 80.735 85.823 85.144 81.803 85.761 76.602 L 85.836 41.76 C 85.225 18.593 66.254 0 42.939 0 C 19.24 0 0.028 19.212 0.028 42.912 C 0.028 66.357 18.831 85.418 42.18 85.823 L 74.853 85.823 Z"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
|
||||||
android:name="path_1"
|
|
||||||
android:pathData="M 43.059 14.614 C 29.551 14.614 18.256 24.082 15.445 36.743 C 18.136 37.498 20.109 39.968 20.109 42.899 C 20.109 45.831 18.136 48.301 15.445 49.055 C 18.256 61.716 29.551 71.184 43.059 71.184 C 47.975 71.184 52.599 69.93 56.628 67.723 L 56.628 70.993 L 71.344 70.993 L 71.344 44.072 C 71.357 43.714 71.344 43.26 71.344 42.899 C 71.344 27.278 58.68 14.614 43.059 14.614 Z M 29.51 42.899 C 29.51 35.416 35.576 29.35 43.059 29.35 C 50.541 29.35 56.607 35.416 56.607 42.899 C 56.607 50.382 50.541 56.448 43.059 56.448 C 35.576 56.448 29.51 50.382 29.51 42.899 Z"
|
|
||||||
android:strokeWidth="1"
|
|
||||||
android:fillType="evenOdd"/>
|
|
||||||
<path
|
|
||||||
android:name="path_2"
|
|
||||||
android:pathData="M 18.105 42.88 C 18.105 45.38 16.078 47.407 13.579 47.407 C 11.079 47.407 9.052 45.38 9.052 42.88 C 9.052 40.381 11.079 38.354 13.579 38.354 C 16.078 38.354 18.105 40.381 18.105 42.88 Z"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
</aapt:attr>
|
|
||||||
<target android:name="path">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:duration="1000"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#161c2d"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
<target android:name="path_1">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:duration="1000"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#f9f9fb"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
<target android:name="path_2">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:duration="1000"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#f9f9fb"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
</animated-vector>
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
<animated-vector
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt">
|
|
||||||
<aapt:attr name="android:drawable">
|
|
||||||
<vector
|
|
||||||
android:name="vector"
|
|
||||||
android:width="128dp"
|
|
||||||
android:height="128dp"
|
|
||||||
android:viewportWidth="128"
|
|
||||||
android:viewportHeight="128">
|
|
||||||
<group
|
|
||||||
android:name="wrapper"
|
|
||||||
android:translateX="21"
|
|
||||||
android:translateY="21">
|
|
||||||
<group android:name="group">
|
|
||||||
<path
|
|
||||||
android:name="path"
|
|
||||||
android:pathData="M 74.853 85.823 L 75.368 85.823 C 80.735 85.823 85.144 81.803 85.761 76.602 L 85.836 41.76 C 85.225 18.593 66.254 0 42.939 0 C 19.24 0 0.028 19.212 0.028 42.912 C 0.028 66.357 18.831 85.418 42.18 85.823 L 74.853 85.823 Z"
|
|
||||||
android:fillColor="#00ffffff"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
<path
|
|
||||||
android:name="path_1"
|
|
||||||
android:pathData="M 43.059 14.614 C 29.551 14.614 18.256 24.082 15.445 36.743 C 18.136 37.498 20.109 39.968 20.109 42.899 C 20.109 45.831 18.136 48.301 15.445 49.055 C 18.256 61.716 29.551 71.184 43.059 71.184 C 47.975 71.184 52.599 69.93 56.628 67.723 L 56.628 70.993 L 71.344 70.993 L 71.344 44.072 C 71.357 43.714 71.344 43.26 71.344 42.899 C 71.344 27.278 58.68 14.614 43.059 14.614 Z M 29.51 42.899 C 29.51 35.416 35.576 29.35 43.059 29.35 C 50.541 29.35 56.607 35.416 56.607 42.899 C 56.607 50.382 50.541 56.448 43.059 56.448 C 35.576 56.448 29.51 50.382 29.51 42.899 Z"
|
|
||||||
android:fillColor="#00ffffff"
|
|
||||||
android:strokeWidth="1"
|
|
||||||
android:fillType="evenOdd"/>
|
|
||||||
<path
|
|
||||||
android:name="path_2"
|
|
||||||
android:pathData="M 18.105 42.88 C 18.105 45.38 16.078 47.407 13.579 47.407 C 11.079 47.407 9.052 45.38 9.052 42.88 C 9.052 40.381 11.079 38.354 13.579 38.354 C 16.078 38.354 18.105 40.381 18.105 42.88 Z"
|
|
||||||
android:fillColor="#00ffffff"
|
|
||||||
android:strokeWidth="1"/>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</vector>
|
|
||||||
</aapt:attr>
|
|
||||||
<target android:name="path_2">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:startOffset="100"
|
|
||||||
android:duration="900"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#161c2d"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
<target android:name="path">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:duration="500"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#f9f9fb"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
<target android:name="path_1">
|
|
||||||
<aapt:attr name="android:animation">
|
|
||||||
<objectAnimator
|
|
||||||
android:propertyName="fillColor"
|
|
||||||
android:startOffset="100"
|
|
||||||
android:duration="900"
|
|
||||||
android:valueFrom="#00ffffff"
|
|
||||||
android:valueTo="#161c2d"
|
|
||||||
android:valueType="colorType"
|
|
||||||
android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
|
||||||
</aapt:attr>
|
|
||||||
</target>
|
|
||||||
</animated-vector>
|
|
||||||
BIN
Clario.Android/Resources/drawable/Icon.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
@@ -5,7 +5,7 @@
|
|||||||
<color android:color="@color/splash_background"/>
|
<color android:color="@color/splash_background"/>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
<item android:drawable="@drawable/icon"
|
<item android:drawable="@drawable/Icon"
|
||||||
android:width="120dp"
|
android:width="120dp"
|
||||||
android:height="120dp"
|
android:height="120dp"
|
||||||
android:gravity="center" />
|
android:gravity="center" />
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@mipmap/ic_launcher_background"/>
|
||||||
|
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||||
|
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>
|
||||||
|
</adaptive-icon>
|
||||||
BIN
Clario.Android/Resources/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
Clario.Android/Resources/mipmap-hdpi/ic_launcher_background.png
Normal file
|
After Width: | Height: | Size: 844 B |
BIN
Clario.Android/Resources/mipmap-hdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
Clario.Android/Resources/mipmap-hdpi/ic_launcher_monochrome.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
Clario.Android/Resources/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Clario.Android/Resources/mipmap-mdpi/ic_launcher_background.png
Normal file
|
After Width: | Height: | Size: 450 B |
BIN
Clario.Android/Resources/mipmap-mdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Clario.Android/Resources/mipmap-mdpi/ic_launcher_monochrome.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Clario.Android/Resources/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Clario.Android/Resources/mipmap-xhdpi/ic_launcher_background.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Clario.Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
Clario.Android/Resources/mipmap-xhdpi/ic_launcher_monochrome.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
Clario.Android/Resources/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
BIN
Clario.Android/Resources/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -9,7 +9,6 @@
|
|||||||
<item name="android:windowBackground">@null</item>
|
<item name="android:windowBackground">@null</item>
|
||||||
<item name="android:windowNoTitle">true</item>
|
<item name="android:windowNoTitle">true</item>
|
||||||
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
|
||||||
<item name="android:windowSplashScreenAnimatedIcon">@drawable/avalonia_anim</item>
|
|
||||||
<item name="android:windowSplashScreenAnimationDuration">1000</item>
|
<item name="android:windowSplashScreenAnimationDuration">1000</item>
|
||||||
<item name="postSplashScreenTheme">@style/MyTheme.Main</item>
|
<item name="postSplashScreenTheme">@style/MyTheme.Main</item>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<color name="splash_background">#FFFFFF</color>
|
<color name="splash_background">#0B0D12</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
BIN
Clario.Android/play_store_512.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
@@ -8,12 +8,18 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia.Browser"/>
|
<PackageReference Include="Avalonia.Browser"/>
|
||||||
<PackageReference Include="Avalonia.Svg.Skia" />
|
<PackageReference Include="Avalonia.Controls.ColorPicker" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
<PackageReference Include="Avalonia.Svg.Skia"/>
|
||||||
<PackageReference Include="Supabase" />
|
<PackageReference Include="Deadpikle.AvaloniaProgressRing"/>
|
||||||
|
<PackageReference Include="FluentAvalonia.ProgressRing"/>
|
||||||
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia"/>
|
||||||
|
<PackageReference Include="SkiaSharp"/>
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.Linux" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.WebAssembly"/>
|
||||||
|
<PackageReference Include="Supabase"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Clario\Clario.csproj" />
|
<ProjectReference Include="..\Clario\Clario.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<!--If you are willing to use platform-specific APIs, use conditional compilation.
|
|
||||||
See https://docs.avaloniaui.net/docs/guides/platforms/platform-specific-code/dotnet for more details.-->
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
@@ -12,6 +11,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Avalonia.Controls.ColorPicker" />
|
||||||
<PackageReference Include="Avalonia.Desktop"/>
|
<PackageReference Include="Avalonia.Desktop"/>
|
||||||
<!--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">
|
<PackageReference Include="Avalonia.Diagnostics">
|
||||||
@@ -19,7 +19,11 @@
|
|||||||
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
|
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Avalonia.Svg.Skia" />
|
<PackageReference Include="Avalonia.Svg.Skia" />
|
||||||
|
<PackageReference Include="Deadpikle.AvaloniaProgressRing" />
|
||||||
|
<PackageReference Include="FluentAvalonia.ProgressRing" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.Linux" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.WebAssembly" />
|
||||||
<PackageReference Include="Supabase" />
|
<PackageReference Include="Supabase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
36
Clario.Desktop/Clario.Desktop.parcel
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"GeneralSettings": {
|
||||||
|
"NetProjectPath": "Clario.Desktop.csproj",
|
||||||
|
"ApplicationName": "Clario",
|
||||||
|
"Version": "0.4.0",
|
||||||
|
"PackageName": {
|
||||||
|
"$type": "msbuild",
|
||||||
|
"property": "AssemblyName"
|
||||||
|
},
|
||||||
|
"AssemblyName": {
|
||||||
|
"$type": "msbuild",
|
||||||
|
"property": "AssemblyName"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LinuxSettings": {
|
||||||
|
"AppIcon": "../Clario/Assets/Logo.png",
|
||||||
|
"CreateBinSymlink": "True"
|
||||||
|
},
|
||||||
|
"Win32Settings": {
|
||||||
|
"InstallerIcon": "../Clario/Assets/Clario-Logo.svg",
|
||||||
|
"Company": "Clario",
|
||||||
|
"IncludeUninstaller": "True"
|
||||||
|
},
|
||||||
|
"MacOsSettings": {
|
||||||
|
"CreateBundle": true,
|
||||||
|
"BundleIdentifier": "com.CompanyName.Clario-Desktop",
|
||||||
|
"SigningCredentialsType": "AdHoc"
|
||||||
|
},
|
||||||
|
"PublishSettings": {
|
||||||
|
"PublishSingleFile": "True",
|
||||||
|
"PublishReadyToRun": "True",
|
||||||
|
"ExtraBuildProperties": {
|
||||||
|
"RuntimeFrameworkVersion": "8.0.11"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Clario.Services;
|
|
||||||
|
|
||||||
namespace Clario.Desktop;
|
namespace Clario.Desktop;
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,15 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Avalonia.Controls.ColorPicker" />
|
||||||
<PackageReference Include="Avalonia.iOS"/>
|
<PackageReference Include="Avalonia.iOS"/>
|
||||||
<PackageReference Include="Avalonia.Svg.Skia" />
|
<PackageReference Include="Avalonia.Svg.Skia" />
|
||||||
|
<PackageReference Include="Deadpikle.AvaloniaProgressRing" />
|
||||||
|
<PackageReference Include="FluentAvalonia.ProgressRing" />
|
||||||
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" />
|
||||||
|
<PackageReference Include="SkiaSharp" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.Linux" />
|
||||||
|
<PackageReference Include="SkiaSharp.NativeAssets.WebAssembly" />
|
||||||
<PackageReference Include="Supabase" />
|
<PackageReference Include="Supabase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:local="using:Clario"
|
xmlns:local="using:Clario"
|
||||||
xmlns:converters="clr-namespace:Clario.Converters"
|
xmlns:converters="clr-namespace:Clario.Converters"
|
||||||
|
xmlns:views="clr-namespace:Clario.Views"
|
||||||
|
xmlns:vm="clr-namespace:Clario.ViewModels"
|
||||||
|
xmlns:styling="clr-namespace:FluentAvalonia.Styling;assembly=FluentAvalonia"
|
||||||
x:Class="Clario.App"
|
x:Class="Clario.App"
|
||||||
RequestedThemeVariant="Dark">
|
RequestedThemeVariant="Default">
|
||||||
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
|
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
|
||||||
|
|
||||||
<Application.DataTemplates>
|
<Application.DataTemplates>
|
||||||
<local:ViewLocator />
|
<local:ViewLocator />
|
||||||
</Application.DataTemplates>
|
</Application.DataTemplates>
|
||||||
@@ -24,9 +26,15 @@
|
|||||||
<converters:DecimalSignConverter x:Key="DecimalSignConverter" />
|
<converters:DecimalSignConverter x:Key="DecimalSignConverter" />
|
||||||
<converters:PercentageConverter x:Key="PercentageConverter" />
|
<converters:PercentageConverter x:Key="PercentageConverter" />
|
||||||
<converters:DecimalColorConverter x:Key="DecimalColorConverter" />
|
<converters:DecimalColorConverter x:Key="DecimalColorConverter" />
|
||||||
|
<converters:BoolToColorConverter x:Key="BoolToColorConverter" />
|
||||||
|
<converters:BoolToCssConverter x:Key="BoolToCssConverter" />
|
||||||
|
<converters:CreditAmountConverter x:Key="CreditAmountConverter"/>
|
||||||
|
<converters:BoolToStringConverter x:Key="BoolToStringConverter"/>
|
||||||
</Application.Resources>
|
</Application.Resources>
|
||||||
<Application.Styles>
|
<Application.Styles>
|
||||||
<FluentTheme />
|
<FluentTheme />
|
||||||
<StyleInclude Source="../Theme/AppTheme.axaml" />
|
<StyleInclude Source="../Theme/AppTheme.axaml" />
|
||||||
|
<StyleInclude Source="avares://AvaloniaProgressRing/Styles/ProgressRing.xaml"/>
|
||||||
|
<StyleInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/Fluent.xaml" />
|
||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
</Application>
|
</Application>
|
||||||
@@ -2,11 +2,10 @@ using System;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Controls.ApplicationLifetimes;
|
using Avalonia.Controls.ApplicationLifetimes;
|
||||||
using Avalonia.Data.Core;
|
|
||||||
using Avalonia.Data.Core.Plugins;
|
using Avalonia.Data.Core.Plugins;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
|
using Avalonia.Styling;
|
||||||
using Clario.Data;
|
using Clario.Data;
|
||||||
using Clario.Services;
|
using Clario.Services;
|
||||||
using Clario.ViewModels;
|
using Clario.ViewModels;
|
||||||
@@ -16,15 +15,42 @@ namespace Clario;
|
|||||||
|
|
||||||
public partial class App : Application
|
public partial class App : Application
|
||||||
{
|
{
|
||||||
|
public static bool IsMobile { get; private set; }
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
|
RequestedThemeVariant = ThemeVariant.Dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async void OnFrameworkInitializationCompleted()
|
public override async void OnFrameworkInitializationCompleted()
|
||||||
{
|
{
|
||||||
base.OnFrameworkInitializationCompleted();
|
base.OnFrameworkInitializationCompleted();
|
||||||
|
|
||||||
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLoading)
|
||||||
|
{
|
||||||
|
// Avoid duplicate validations from both Avalonia and the CommunityToolkit.
|
||||||
|
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
|
||||||
|
DisableAvaloniaDataAnnotationValidation();
|
||||||
|
|
||||||
|
desktopLoading.MainWindow = new MainWindow
|
||||||
|
{
|
||||||
|
DataContext = new LoadingViewModel()
|
||||||
|
};
|
||||||
|
desktopLoading.MainWindow.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatformLoading)
|
||||||
|
{
|
||||||
|
DebugLogger.Log("ANDROID PATH HIT");
|
||||||
|
singleViewPlatformLoading.MainView = new MainAppMobile()
|
||||||
|
{
|
||||||
|
DataContext = new LoadingViewModel()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
IsMobile = ApplicationLifetime is ISingleViewApplicationLifetime;
|
||||||
|
|
||||||
var culture = new CultureInfo("en-US");
|
var culture = new CultureInfo("en-US");
|
||||||
|
|
||||||
CultureInfo.DefaultThreadCurrentCulture = culture;
|
CultureInfo.DefaultThreadCurrentCulture = culture;
|
||||||
@@ -34,9 +60,9 @@ public partial class App : Application
|
|||||||
{
|
{
|
||||||
await SupabaseService.Client.Auth.RetrieveSessionAsync();
|
await SupabaseService.Client.Auth.RetrieveSessionAsync();
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
/* session invalid or expired */
|
DebugLogger.Log($"[Auth] RetrieveSession failed: {e.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
var user = SupabaseService.Client.Auth.CurrentUser;
|
var user = SupabaseService.Client.Auth.CurrentUser;
|
||||||
@@ -53,19 +79,13 @@ public partial class App : Application
|
|||||||
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
|
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
|
||||||
DisableAvaloniaDataAnnotationValidation();
|
DisableAvaloniaDataAnnotationValidation();
|
||||||
|
|
||||||
desktop.MainWindow = new MainWindow
|
desktop.MainWindow!.DataContext = user is not null ? new MainViewModel() : new AuthViewModel();
|
||||||
{
|
|
||||||
DataContext = user is not null ? new MainViewModel() : new AuthViewModel()
|
|
||||||
};
|
|
||||||
desktop.MainWindow.Show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
|
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
|
||||||
{
|
{
|
||||||
singleViewPlatform.MainView = new MainView
|
DebugLogger.Log("ANDROID PATH HIT");
|
||||||
{
|
singleViewPlatform.MainView!.DataContext = user is not null ? new MainViewModel() : new AuthViewModel();
|
||||||
DataContext = user is not null ? new MainViewModel() : new AuthViewModel()
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
Clario/Assets/AppIcons/logo-icon-primary-transparent.ico
Normal file
|
After Width: | Height: | Size: 174 KiB |
@@ -1,25 +0,0 @@
|
|||||||
<svg width="261" height="293" viewBox="0 0 261 293" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M158.179 13.01C158.66 7.50821 154.588 2.62135 149.066 2.52288C122.238 2.04452 95.7365 9.07331 72.5947 22.9121C49.4528 36.7509 30.7204 56.7719 18.4475 80.6321C15.9214 85.5434 18.2994 91.4436 23.3741 93.6229L52.2522 106.025C57.3268 108.204 63.1612 105.823 65.875 101.013C73.7479 87.058 85.1404 75.3323 98.9894 67.0506C112.838 58.7689 128.559 54.281 144.578 53.9485C150.1 53.8339 154.958 49.8208 155.44 44.319L158.179 13.01Z" fill="url(#paint0_linear_104_135)"/>
|
|
||||||
<path d="M23.3741 93.6229C18.2994 91.4436 12.3833 93.7818 10.5611 98.9954C-0.408524 130.383 -0.208299 164.717 11.32 196.122C22.8483 227.527 44.9093 253.837 73.5808 270.673C78.3433 273.469 84.3671 271.424 86.8266 266.479L100.822 238.339C103.282 233.394 101.23 227.436 96.5789 224.458C79.6305 213.605 66.5961 197.463 59.5985 178.4C52.6009 159.337 52.0958 138.595 57.9976 119.355C59.6172 114.075 57.3268 108.204 52.2522 106.025L23.3741 93.6229Z" fill="url(#paint1_linear_104_135)"/>
|
|
||||||
<path d="M86.8266 266.479C84.3671 271.424 86.3711 277.462 91.4748 279.572C119.302 291.079 150.128 293.604 179.597 286.645C209.066 279.685 235.506 263.636 255.245 240.896C258.865 236.725 257.956 230.429 253.544 227.106L228.438 208.201C224.026 204.879 217.793 205.806 214.015 209.834C201.617 223.05 185.555 232.394 167.777 236.593C149.999 240.791 131.453 239.621 114.452 233.347C109.271 231.435 103.282 233.394 100.822 238.339L86.8266 266.479Z" fill="url(#paint2_linear_104_135)"/>
|
|
||||||
<path d="M254.158 66.7147C258.595 63.4264 259.552 57.1377 255.964 52.9394C244.93 40.0298 231.681 29.153 216.815 20.8348C201.949 12.5165 185.749 6.91511 168.974 4.26464C163.519 3.40269 158.66 7.50821 158.179 13.01L155.44 44.319C154.958 49.8208 159.046 54.6165 164.464 55.6882C173.994 57.5734 183.189 60.9512 191.703 65.7152C200.217 70.4792 207.905 76.5485 214.497 83.6844C218.245 87.7411 224.471 88.716 228.908 85.4277L254.158 66.7147Z" fill="url(#paint3_linear_104_135)"/>
|
|
||||||
<path d="M52.2522 106.025L23.3741 93.6229M52.2522 106.025C57.3268 108.204 63.1612 105.823 65.875 101.013C73.7479 87.058 85.1404 75.3323 98.9894 67.0506C112.838 58.7689 128.559 54.281 144.578 53.9485C150.1 53.8339 154.958 49.8208 155.44 44.319M52.2522 106.025C57.3268 108.204 59.6172 114.075 57.9976 119.355C52.0958 138.595 52.6009 159.337 59.5985 178.4C66.5961 197.463 79.6305 213.605 96.5789 224.458C101.23 227.436 103.282 233.394 100.822 238.339M23.3741 93.6229C18.2994 91.4436 15.9214 85.5434 18.4475 80.6321C30.7204 56.7719 49.4528 36.7509 72.5947 22.9121C95.7365 9.07331 122.238 2.04452 149.066 2.52288C154.588 2.62135 158.66 7.50821 158.179 13.01M23.3741 93.6229C18.2994 91.4436 12.3833 93.7818 10.5611 98.9954C-0.408524 130.383 -0.208299 164.717 11.32 196.122C22.8483 227.527 44.9093 253.837 73.5808 270.673C78.3433 273.469 84.3671 271.424 86.8266 266.479M155.44 44.319L158.179 13.01M155.44 44.319C154.958 49.8208 159.046 54.6165 164.464 55.6882C173.994 57.5734 183.189 60.9512 191.703 65.7152C200.217 70.4792 207.905 76.5485 214.497 83.6844C218.245 87.7411 224.471 88.716 228.908 85.4277L254.158 66.7147C258.595 63.4264 259.552 57.1377 255.964 52.9394C244.93 40.0298 231.681 29.153 216.815 20.8348C201.949 12.5165 185.749 6.91511 168.974 4.26464C163.519 3.40269 158.66 7.50821 158.179 13.01M100.822 238.339L86.8266 266.479M100.822 238.339C103.282 233.394 109.271 231.435 114.452 233.347C131.453 239.621 149.999 240.791 167.777 236.593C185.555 232.394 201.617 223.05 214.015 209.834C217.793 205.806 224.026 204.879 228.438 208.201L253.544 227.106C257.956 230.429 258.865 236.725 255.245 240.896C235.506 263.636 209.066 279.685 179.597 286.645C150.128 293.604 119.302 291.079 91.4748 279.572C86.3711 277.462 84.3671 271.424 86.8266 266.479" stroke="#13161E" stroke-width="5"/>
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="paint0_linear_104_135" x1="263.849" y1="11.0816" x2="206.286" y2="106.27" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_104_135" x1="263.849" y1="11.0816" x2="206.286" y2="106.27" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_104_135" x1="263.849" y1="11.0816" x2="206.286" y2="106.27" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint3_linear_104_135" x1="263.849" y1="11.0816" x2="206.286" y2="106.27" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 4.5 KiB |
15
Clario/Assets/Icons/archive.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<rect width="20" height="5" x="2" y="3" rx="1" />
|
||||||
|
<path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" />
|
||||||
|
<path d="M10 12h4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 340 B |
1
Clario/Assets/Icons/arrow-left-right.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left-right-icon lucide-arrow-left-right"><path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/></svg>
|
||||||
|
After Width: | Height: | Size: 344 B |
14
Clario/Assets/Icons/arrow-left.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="m12 19-7-7 7-7" />
|
||||||
|
<path d="M19 12H5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 262 B |
14
Clario/Assets/Icons/arrow-right.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M5 12h14" />
|
||||||
|
<path d="m12 5 7 7-7 7" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 261 B |
1
Clario/Assets/Icons/chart-bar.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-bar-icon lucide-chart-bar"><path d="M3 3v16a2 2 0 0 0 2 2h16"/><path d="M7 16h8"/><path d="M7 11h12"/><path d="M7 6h3"/></svg>
|
||||||
|
After Width: | Height: | Size: 334 B |
1
Clario/Assets/Icons/chart-column.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column-icon lucide-chart-column"><path d="M3 3v16a2 2 0 0 0 2 2h16"/><path d="M18 17V9"/><path d="M13 17V5"/><path d="M8 17v-3"/></svg>
|
||||||
|
After Width: | Height: | Size: 343 B |
1
Clario/Assets/Icons/chevron-down.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down-icon lucide-chevron-down"><path d="m6 9 6 6 6-6"/></svg>
|
||||||
|
After Width: | Height: | Size: 271 B |
1
Clario/Assets/Icons/circle-check.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-icon lucide-circle-check"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>
|
||||||
|
After Width: | Height: | Size: 304 B |
15
Clario/Assets/Icons/log-in.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="m10 17 5-5-5-5" />
|
||||||
|
<path d="M15 12H3" />
|
||||||
|
<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 319 B |
1
Clario/Assets/Icons/log-out.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-log-out-icon lucide-log-out"><path d="m16 17 5-5-5-5"/><path d="M21 12H9"/><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/></svg>
|
||||||
|
After Width: | Height: | Size: 334 B |
1
Clario/Assets/Icons/receipt.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-receipt-icon lucide-receipt"><path d="M12 17V7"/><path d="M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8"/><path d="M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z"/></svg>
|
||||||
|
After Width: | Height: | Size: 758 B |
1
Clario/Assets/Icons/refresh-cw.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw-icon lucide-refresh-cw"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/></svg>
|
||||||
|
After Width: | Height: | Size: 411 B |
1
Clario/Assets/Icons/sliders-horizontal.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal-icon lucide-sliders-horizontal"><path d="M10 5H3"/><path d="M12 19H3"/><path d="M14 3v4"/><path d="M16 17v4"/><path d="M21 12h-9"/><path d="M21 19h-5"/><path d="M21 5h-7"/><path d="M8 10v4"/><path d="M8 12H3"/></svg>
|
||||||
|
After Width: | Height: | Size: 437 B |
15
Clario/Assets/Icons/target.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<circle cx="12" cy="12" r="10" />
|
||||||
|
<circle cx="12" cy="12" r="6" />
|
||||||
|
<circle cx="12" cy="12" r="2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 314 B |
1
Clario/Assets/Icons/upload.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-upload-icon lucide-upload"><path d="M12 3v12"/><path d="m17 8-5-5-5 5"/><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/></svg>
|
||||||
|
After Width: | Height: | Size: 333 B |
16
Clario/Assets/Icons/user-plus.svg
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
|
||||||
|
<circle cx="9" cy="7" r="4" />
|
||||||
|
<line x1="19" x2="19" y1="8" y2="14" />
|
||||||
|
<line x1="22" x2="16" y1="11" y2="11" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 383 B |
1
Clario/Assets/Icons/wallet-cards.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wallet-cards-icon lucide-wallet-cards"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2"/><path d="M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21"/></svg>
|
||||||
|
After Width: | Height: | Size: 437 B |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-dark-192x64.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-dark-384x128.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-dark-768x192.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
12
Clario/Assets/Logo/logo-combined-primary-bg-dark.svg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<svg width="193" height="64" viewBox="0 0 193 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="192" height="64" fill="#13161E"/>
|
||||||
|
<path d="M60.9424 61.424V14.96H70.7671V61.424H60.9424Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M90.7211 62.064C87.8529 62.064 85.2844 61.36 83.0155 59.952C80.7894 58.544 79.0128 56.624 77.6857 54.192C76.4014 51.76 75.7593 48.9867 75.7593 45.872C75.7593 42.7574 76.4014 39.984 77.6857 37.552C79.0128 35.12 80.7894 33.2 83.0155 31.792C85.2844 30.384 87.8529 29.68 90.7211 29.68C92.8188 29.68 94.7024 30.0854 96.372 30.896C98.0844 31.7067 99.4757 32.8374 100.546 34.288C101.616 35.696 102.215 37.3174 102.344 39.152V52.592C102.215 54.4267 101.616 56.0694 100.546 57.52C99.5185 58.928 98.1486 60.0374 96.4362 60.848C94.7238 61.6587 92.8188 62.064 90.7211 62.064ZM92.7118 53.232C94.8094 53.232 96.5004 52.5494 97.7847 51.184C99.069 49.776 99.7111 48.0054 99.7111 45.872C99.7111 44.4214 99.4114 43.1414 98.8121 42.032C98.2556 40.9227 97.4422 40.0694 96.372 39.472C95.3446 38.832 94.1459 38.512 92.776 38.512C91.4061 38.512 90.186 38.832 89.1158 39.472C88.0884 40.0694 87.2536 40.9227 86.6114 42.032C86.0121 43.1414 85.7125 44.4214 85.7125 45.872C85.7125 47.28 86.0121 48.5387 86.6114 49.648C87.2108 50.7574 88.0456 51.632 89.1158 52.272C90.186 52.912 91.3847 53.232 92.7118 53.232ZM99.3258 61.424V53.04L100.803 45.488L99.3258 37.936V30.32H108.958V61.424H99.3258Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M115.875 61.424V30.32H125.7V61.424H115.875ZM125.7 44.336L121.591 41.136C122.404 37.5094 123.774 34.6934 125.7 32.688C127.627 30.6827 130.302 29.68 133.727 29.68C135.225 29.68 136.531 29.9147 137.644 30.384C138.8 30.8107 139.806 31.4934 140.662 32.432L134.819 39.792C134.391 39.3227 133.855 38.96 133.213 38.704C132.571 38.448 131.843 38.32 131.03 38.32C129.403 38.32 128.098 38.832 127.113 39.856C126.171 40.8374 125.7 42.3307 125.7 44.336Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M143.279 61.424V30.32H153.104V61.424H143.279ZM148.224 26.032C146.683 26.032 145.398 25.52 144.371 24.496C143.386 23.4294 142.894 22.1494 142.894 20.656C142.894 19.12 143.386 17.84 144.371 16.816C145.398 15.792 146.683 15.28 148.224 15.28C149.765 15.28 151.028 15.792 152.012 16.816C152.997 17.84 153.489 19.12 153.489 20.656C153.489 22.1494 152.997 23.4294 152.012 24.496C151.028 25.52 149.765 26.032 148.224 26.032Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M175.049 62.128C171.838 62.128 168.927 61.424 166.316 60.016C163.747 58.5654 161.714 56.6027 160.215 54.128C158.717 51.6534 157.968 48.88 157.968 45.808C157.968 42.736 158.717 39.984 160.215 37.552C161.714 35.12 163.747 33.2 166.316 31.792C168.884 30.3414 171.795 29.616 175.049 29.616C178.302 29.616 181.213 30.32 183.782 31.728C186.35 33.136 188.384 35.0774 189.882 37.552C191.381 39.984 192.13 42.736 192.13 45.808C192.13 48.88 191.381 51.6534 189.882 54.128C188.384 56.6027 186.35 58.5654 183.782 60.016C181.213 61.424 178.302 62.128 175.049 62.128ZM175.049 53.232C176.461 53.232 177.703 52.9334 178.773 52.336C179.843 51.696 180.657 50.8214 181.213 49.712C181.813 48.56 182.112 47.2587 182.112 45.808C182.112 44.3574 181.813 43.0987 181.213 42.032C180.614 40.9227 179.779 40.0694 178.709 39.472C177.682 38.832 176.461 38.512 175.049 38.512C173.679 38.512 172.459 38.832 171.389 39.472C170.318 40.0694 169.484 40.9227 168.884 42.032C168.285 43.1414 167.985 44.4214 167.985 45.872C167.985 47.28 168.285 48.56 168.884 49.712C169.484 50.8214 170.318 51.696 171.389 52.336C172.459 52.9334 173.679 53.232 175.049 53.232Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M18.7486 56.9368C18.24 57.9379 18.6544 59.1603 19.7097 59.5876C25.4636 61.9173 31.8375 62.4285 37.9309 61.0195C44.0243 59.6104 49.4913 56.3611 53.5727 51.757C54.3213 50.9126 54.1334 49.6378 53.2211 48.9652L48.0298 45.1375C47.1176 44.4649 45.8288 44.6527 45.0475 45.4682C42.4841 48.144 39.1628 50.0358 35.4868 50.8859C31.8108 51.7359 27.976 51.4989 24.4608 50.2287C23.3895 49.8416 22.1511 50.2383 21.6425 51.2394L18.7486 56.9368Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M4.31783 20.5629C3.26812 20.1135 2.04436 20.5957 1.66746 21.6708C-0.601631 28.1431 -0.560215 35.2232 1.82443 41.6993C4.20907 48.1754 8.77242 53.6007 14.7032 57.0724C15.6883 57.649 16.9343 57.2274 17.443 56.2077L20.3381 50.4049C20.8468 49.3852 20.4224 48.1565 19.4603 47.5424C15.9545 45.3045 13.2584 41.9758 11.8109 38.0448C10.3634 34.1138 10.2589 29.8367 11.4797 25.8691C11.8148 24.7803 11.341 23.5697 10.2913 23.1203L4.31783 20.5629Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M32.6177 2.18868C32.7167 1.04295 31.8788 0.0252705 30.7428 0.0047656C25.2237 -0.0948531 19.7716 1.36887 15.0107 4.25076C10.2498 7.13264 6.39603 11.302 3.87117 16.2708C3.35146 17.2935 3.84069 18.5222 4.88469 18.9761L10.8257 21.5587C11.8697 22.0126 13.07 21.5167 13.6283 20.515C15.2479 17.609 17.5917 15.1671 20.4408 13.4425C23.2899 11.7178 26.5241 10.7832 29.8196 10.714C30.9556 10.6901 31.9551 9.85441 32.0541 8.70867L32.6177 2.18868Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M53.7542 13.0775C54.6687 12.4032 54.8659 11.1136 54.1264 10.2527C51.8524 7.60548 49.1219 5.3751 46.0581 3.66936C42.9943 1.96362 39.6554 0.814996 36.1983 0.27149C35.0741 0.0947387 34.0727 0.936616 33.9735 2.06482L33.4089 8.48501C33.3097 9.61322 34.1522 10.5966 35.2688 10.8164C37.2328 11.203 39.1278 11.8956 40.8825 12.8725C42.6372 13.8494 44.2218 15.094 45.5804 16.5573C46.3528 17.3892 47.6358 17.5891 48.5503 16.9147L53.7542 13.0775Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.2 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-light-192x64.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-light-384x128.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-bg-light-768x192.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
12
Clario/Assets/Logo/logo-combined-primary-bg-light.svg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<svg width="193" height="64" viewBox="0 0 193 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="192" height="64" fill="white"/>
|
||||||
|
<path d="M60.9424 61.424V14.96H70.7671V61.424H60.9424Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M90.7211 62.064C87.8529 62.064 85.2844 61.36 83.0155 59.952C80.7894 58.544 79.0128 56.624 77.6857 54.192C76.4014 51.76 75.7593 48.9866 75.7593 45.872C75.7593 42.7573 76.4014 39.984 77.6857 37.552C79.0128 35.12 80.7894 33.2 83.0155 31.792C85.2844 30.384 87.8529 29.68 90.7211 29.68C92.8188 29.68 94.7024 30.0853 96.372 30.896C98.0844 31.7066 99.4757 32.8373 100.546 34.288C101.616 35.696 102.215 37.3173 102.344 39.152V52.592C102.215 54.4266 101.616 56.0693 100.546 57.52C99.5185 58.928 98.1486 60.0373 96.4362 60.848C94.7238 61.6586 92.8188 62.064 90.7211 62.064ZM92.7118 53.232C94.8094 53.232 96.5004 52.5493 97.7847 51.184C99.069 49.776 99.7111 48.0053 99.7111 45.872C99.7111 44.4213 99.4114 43.1413 98.8121 42.032C98.2556 40.9226 97.4422 40.0693 96.372 39.472C95.3446 38.832 94.1459 38.512 92.776 38.512C91.4061 38.512 90.186 38.832 89.1158 39.472C88.0884 40.0693 87.2536 40.9226 86.6114 42.032C86.0121 43.1413 85.7125 44.4213 85.7125 45.872C85.7125 47.28 86.0121 48.5386 86.6114 49.648C87.2108 50.7573 88.0456 51.632 89.1158 52.272C90.186 52.912 91.3847 53.232 92.7118 53.232ZM99.3258 61.424V53.04L100.803 45.488L99.3258 37.936V30.32H108.958V61.424H99.3258Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M115.875 61.424V30.32H125.7V61.424H115.875ZM125.7 44.336L121.591 41.136C122.404 37.5093 123.774 34.6933 125.7 32.688C127.627 30.6826 130.302 29.68 133.727 29.68C135.225 29.68 136.531 29.9146 137.644 30.384C138.8 30.8106 139.806 31.4933 140.662 32.432L134.819 39.792C134.391 39.3226 133.855 38.96 133.213 38.704C132.571 38.448 131.843 38.32 131.03 38.32C129.403 38.32 128.098 38.832 127.113 39.856C126.171 40.8373 125.7 42.3306 125.7 44.336Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M143.279 61.424V30.32H153.104V61.424H143.279ZM148.224 26.032C146.683 26.032 145.398 25.52 144.371 24.496C143.386 23.4293 142.894 22.1493 142.894 20.656C142.894 19.12 143.386 17.84 144.371 16.816C145.398 15.792 146.683 15.28 148.224 15.28C149.765 15.28 151.028 15.792 152.012 16.816C152.997 17.84 153.489 19.12 153.489 20.656C153.489 22.1493 152.997 23.4293 152.012 24.496C151.028 25.52 149.765 26.032 148.224 26.032Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M175.049 62.128C171.838 62.128 168.927 61.424 166.316 60.016C163.747 58.5653 161.714 56.6026 160.215 54.128C158.717 51.6533 157.968 48.88 157.968 45.808C157.968 42.736 158.717 39.984 160.215 37.552C161.714 35.12 163.747 33.2 166.316 31.792C168.884 30.3413 171.795 29.616 175.049 29.616C178.302 29.616 181.213 30.32 183.782 31.728C186.35 33.136 188.384 35.0773 189.882 37.552C191.381 39.984 192.13 42.736 192.13 45.808C192.13 48.88 191.381 51.6533 189.882 54.128C188.384 56.6026 186.35 58.5653 183.782 60.016C181.213 61.424 178.302 62.128 175.049 62.128ZM175.049 53.232C176.461 53.232 177.703 52.9333 178.773 52.336C179.843 51.696 180.657 50.8213 181.213 49.712C181.813 48.56 182.112 47.2586 182.112 45.808C182.112 44.3573 181.813 43.0986 181.213 42.032C180.614 40.9226 179.779 40.0693 178.709 39.472C177.682 38.832 176.461 38.512 175.049 38.512C173.679 38.512 172.459 38.832 171.389 39.472C170.318 40.0693 169.484 40.9226 168.884 42.032C168.285 43.1413 167.985 44.4213 167.985 45.872C167.985 47.28 168.285 48.56 168.884 49.712C169.484 50.8213 170.318 51.696 171.389 52.336C172.459 52.9333 173.679 53.232 175.049 53.232Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M18.7486 56.9368C18.24 57.9379 18.6544 59.1603 19.7097 59.5876C25.4636 61.9173 31.8375 62.4285 37.9309 61.0195C44.0243 59.6104 49.4913 56.3611 53.5727 51.757C54.3213 50.9126 54.1334 49.6378 53.2211 48.9652L48.0298 45.1375C47.1176 44.4649 45.8288 44.6527 45.0475 45.4682C42.4841 48.144 39.1628 50.0358 35.4868 50.8859C31.8108 51.7359 27.976 51.4989 24.4608 50.2287C23.3895 49.8416 22.1511 50.2383 21.6425 51.2394L18.7486 56.9368Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M4.31783 20.563C3.26812 20.1136 2.04436 20.5957 1.66746 21.6708C-0.601631 28.1432 -0.560215 35.2233 1.82443 41.6994C4.20907 48.1754 8.77242 53.6007 14.7032 57.0724C15.6883 57.6491 16.9343 57.2275 17.443 56.2077L20.3381 50.405C20.8468 49.3853 20.4224 48.1566 19.4603 47.5424C15.9545 45.3045 13.2584 41.9758 11.8109 38.0449C10.3634 34.1139 10.2589 29.8368 11.4797 25.8692C11.8148 24.7804 11.341 23.5697 10.2913 23.1203L4.31783 20.563Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M32.6177 2.18868C32.7167 1.04295 31.8788 0.0252705 30.7428 0.0047656C25.2237 -0.0948531 19.7716 1.36887 15.0107 4.25076C10.2498 7.13264 6.39603 11.302 3.87117 16.2708C3.35146 17.2935 3.84069 18.5222 4.88469 18.9761L10.8257 21.5587C11.8697 22.0126 13.07 21.5167 13.6283 20.515C15.2479 17.609 17.5917 15.1671 20.4408 13.4425C23.2899 11.7178 26.5241 10.7832 29.8196 10.714C30.9556 10.6901 31.9551 9.85441 32.0541 8.70867L32.6177 2.18868Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M53.7542 13.0775C54.6687 12.4032 54.8659 11.1137 54.1264 10.2528C51.8524 7.60554 49.1219 5.37516 46.0581 3.66942C42.9943 1.96368 39.6554 0.815057 36.1983 0.271551C35.0741 0.0947997 34.0727 0.936677 33.9735 2.06488L33.4089 8.48507C33.3097 9.61328 34.1522 10.5967 35.2688 10.8165C37.2328 11.203 39.1278 11.8957 40.8825 12.8726C42.6372 13.8495 44.2218 15.0941 45.5804 16.5573C46.3528 17.3892 47.6358 17.5891 48.5503 16.9148L53.7542 13.0775Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.2 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-transparent-192x64.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-transparent-384x128.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
Clario/Assets/Logo/logo-combined-primary-transparent-768x192.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
11
Clario/Assets/Logo/logo-combined-primary-transparent.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<svg width="193" height="64" viewBox="0 0 193 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M60.9424 61.424V14.96H70.7671V61.424H60.9424Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M90.7211 62.064C87.8529 62.064 85.2844 61.36 83.0155 59.952C80.7894 58.544 79.0128 56.624 77.6857 54.192C76.4014 51.76 75.7593 48.9866 75.7593 45.872C75.7593 42.7573 76.4014 39.984 77.6857 37.552C79.0128 35.12 80.7894 33.2 83.0155 31.792C85.2844 30.384 87.8529 29.68 90.7211 29.68C92.8188 29.68 94.7024 30.0853 96.372 30.896C98.0844 31.7066 99.4757 32.8373 100.546 34.288C101.616 35.696 102.215 37.3173 102.344 39.152V52.592C102.215 54.4266 101.616 56.0693 100.546 57.52C99.5185 58.928 98.1486 60.0373 96.4362 60.848C94.7238 61.6586 92.8188 62.064 90.7211 62.064ZM92.7118 53.232C94.8094 53.232 96.5004 52.5493 97.7847 51.184C99.069 49.776 99.7111 48.0053 99.7111 45.872C99.7111 44.4213 99.4114 43.1413 98.8121 42.032C98.2556 40.9226 97.4422 40.0693 96.372 39.472C95.3446 38.832 94.1459 38.512 92.776 38.512C91.4061 38.512 90.186 38.832 89.1158 39.472C88.0884 40.0693 87.2536 40.9226 86.6114 42.032C86.0121 43.1413 85.7125 44.4213 85.7125 45.872C85.7125 47.28 86.0121 48.5386 86.6114 49.648C87.2108 50.7573 88.0456 51.632 89.1158 52.272C90.186 52.912 91.3847 53.232 92.7118 53.232ZM99.3258 61.424V53.04L100.803 45.488L99.3258 37.936V30.32H108.958V61.424H99.3258Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M115.875 61.424V30.32H125.7V61.424H115.875ZM125.7 44.336L121.591 41.136C122.404 37.5093 123.774 34.6933 125.7 32.688C127.627 30.6826 130.302 29.68 133.727 29.68C135.225 29.68 136.531 29.9146 137.644 30.384C138.8 30.8106 139.806 31.4933 140.662 32.432L134.819 39.792C134.391 39.3226 133.855 38.96 133.213 38.704C132.571 38.448 131.843 38.32 131.03 38.32C129.403 38.32 128.098 38.832 127.113 39.856C126.171 40.8373 125.7 42.3306 125.7 44.336Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M143.279 61.424V30.32H153.104V61.424H143.279ZM148.224 26.032C146.683 26.032 145.398 25.52 144.371 24.496C143.386 23.4293 142.894 22.1493 142.894 20.656C142.894 19.12 143.386 17.84 144.371 16.816C145.398 15.792 146.683 15.28 148.224 15.28C149.765 15.28 151.028 15.792 152.012 16.816C152.997 17.84 153.489 19.12 153.489 20.656C153.489 22.1493 152.997 23.4293 152.012 24.496C151.028 25.52 149.765 26.032 148.224 26.032Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M175.049 62.128C171.838 62.128 168.927 61.424 166.316 60.016C163.747 58.5653 161.714 56.6026 160.215 54.128C158.717 51.6533 157.968 48.88 157.968 45.808C157.968 42.736 158.717 39.984 160.215 37.552C161.714 35.12 163.747 33.2 166.316 31.792C168.884 30.3413 171.795 29.616 175.049 29.616C178.302 29.616 181.213 30.32 183.782 31.728C186.35 33.136 188.384 35.0773 189.882 37.552C191.381 39.984 192.13 42.736 192.13 45.808C192.13 48.88 191.381 51.6533 189.882 54.128C188.384 56.6026 186.35 58.5653 183.782 60.016C181.213 61.424 178.302 62.128 175.049 62.128ZM175.049 53.232C176.461 53.232 177.703 52.9333 178.773 52.336C179.843 51.696 180.657 50.8213 181.213 49.712C181.813 48.56 182.112 47.2586 182.112 45.808C182.112 44.3573 181.813 43.0986 181.213 42.032C180.614 40.9226 179.779 40.0693 178.709 39.472C177.682 38.832 176.461 38.512 175.049 38.512C173.679 38.512 172.459 38.832 171.389 39.472C170.318 40.0693 169.484 40.9226 168.884 42.032C168.285 43.1413 167.985 44.4213 167.985 45.872C167.985 47.28 168.285 48.56 168.884 49.712C169.484 50.8213 170.318 51.696 171.389 52.336C172.459 52.9333 173.679 53.232 175.049 53.232Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M18.7486 56.9368C18.24 57.9379 18.6544 59.1603 19.7097 59.5876C25.4636 61.9173 31.8375 62.4285 37.9309 61.0195C44.0243 59.6104 49.4913 56.3611 53.5727 51.757C54.3213 50.9126 54.1334 49.6378 53.2211 48.9652L48.0298 45.1375C47.1176 44.4649 45.8288 44.6527 45.0475 45.4682C42.4841 48.144 39.1628 50.0358 35.4868 50.8859C31.8108 51.7359 27.976 51.4989 24.4608 50.2287C23.3895 49.8416 22.1511 50.2383 21.6425 51.2394L18.7486 56.9368Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M4.31783 20.563C3.26812 20.1136 2.04436 20.5957 1.66746 21.6708C-0.601631 28.1432 -0.560215 35.2233 1.82443 41.6994C4.20907 48.1754 8.77242 53.6007 14.7032 57.0724C15.6883 57.6491 16.9343 57.2275 17.443 56.2077L20.3381 50.405C20.8468 49.3853 20.4224 48.1566 19.4603 47.5424C15.9545 45.3045 13.2584 41.9758 11.8109 38.0449C10.3634 34.1139 10.2589 29.8368 11.4797 25.8692C11.8148 24.7804 11.341 23.5697 10.2913 23.1203L4.31783 20.563Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M32.6177 2.18868C32.7167 1.04295 31.8788 0.0252705 30.7428 0.0047656C25.2237 -0.0948531 19.7716 1.36887 15.0107 4.25076C10.2498 7.13264 6.39603 11.302 3.87117 16.2708C3.35146 17.2935 3.84069 18.5222 4.88469 18.9761L10.8257 21.5587C11.8697 22.0126 13.07 21.5167 13.6283 20.515C15.2479 17.609 17.5917 15.1671 20.4408 13.4425C23.2899 11.7178 26.5241 10.7832 29.8196 10.714C30.9556 10.6901 31.9551 9.85441 32.0541 8.70867L32.6177 2.18868Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M53.7542 13.0775C54.6687 12.4032 54.8659 11.1137 54.1264 10.2528C51.8524 7.60554 49.1219 5.37516 46.0581 3.66942C42.9943 1.96368 39.6554 0.815057 36.1983 0.271551C35.0741 0.0947997 34.0727 0.936677 33.9735 2.06488L33.4089 8.48507C33.3097 9.61328 34.1522 10.5967 35.2688 10.8165C37.2328 11.203 39.1278 11.8957 40.8825 12.8726C42.6372 13.8495 44.2218 15.0941 45.5804 16.5573C46.3528 17.3892 47.6358 17.5891 48.5503 16.9148L53.7542 13.0775Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.1 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-dark-transparent-128.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-dark-transparent-256.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-dark-transparent-512.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M47.1441 111.781C46.1901 113.699 46.9675 116.042 48.9472 116.861C59.7416 121.326 71.6993 122.305 83.1308 119.605C94.5622 116.905 104.818 110.678 112.475 101.854C113.88 100.236 113.527 97.7931 111.816 96.5041L102.077 89.1687C100.365 87.8797 97.9475 88.2395 96.4818 89.8024C91.6727 94.9302 85.4418 98.5558 78.5455 100.185C71.6492 101.814 64.455 101.36 57.8605 98.9255C55.8506 98.1836 53.5273 98.9438 52.5733 100.862L47.1441 111.781Z" fill="#0F1117"/>
|
||||||
|
<path d="M21.0973 43.9209C19.1287 43.0753 16.8338 43.9825 16.127 46.0054C11.8718 58.1837 11.9494 71.5054 16.4214 83.6906C20.8933 95.8758 29.451 106.084 40.573 112.616C42.4204 113.701 44.7571 112.908 45.7111 110.989L51.1403 100.071C52.0943 98.1522 51.2984 95.8403 49.4942 94.6848C42.9197 90.474 37.8636 84.2108 35.1491 76.8144C32.4346 69.418 32.2387 61.3702 34.5281 53.9049C35.1564 51.8563 34.2679 49.5784 32.2994 48.7328L21.0973 43.9209Z" fill="#0F1117"/>
|
||||||
|
<path d="M73.8169 11.1106C74.0037 8.9759 72.4239 7.0798 70.2818 7.04159C59.8752 6.85599 49.595 9.58316 40.618 14.9526C31.641 20.3221 24.3745 28.0902 19.6138 37.348C18.6338 39.2536 19.5563 41.5428 21.5248 42.3884L32.7269 47.2003C34.6954 48.0459 36.9587 47.122 38.0114 45.2557C41.0653 39.8412 45.4846 35.2916 50.8568 32.0784C56.2289 28.8651 62.3272 27.1238 68.5411 26.9947C70.683 26.9503 72.5677 25.3932 72.7544 23.2585L73.8169 11.1106Z" fill="#0F1117"/>
|
||||||
|
<path d="M112.475 31.8413C114.197 30.5654 114.568 28.1254 113.176 26.4964C108.896 21.4875 103.757 17.2673 97.9898 14.0399C92.2231 10.8124 85.9388 8.63902 79.4318 7.61064C77.3157 7.2762 75.4308 8.86914 75.2441 11.0039L74.1816 23.1517C73.9948 25.2864 75.5805 27.1472 77.6821 27.563C81.3789 28.2944 84.9457 29.605 88.2484 31.4535C91.551 33.3019 94.5336 35.6568 97.0907 38.4255C98.5445 39.9995 100.959 40.3778 102.681 39.1019L112.475 31.8413Z" fill="#0F1117"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-light-transparent-128.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-light-transparent-256.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
Clario/Assets/Logo/logo-icon-neutral-light-transparent-512.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M47.1441 111.781C46.1901 113.699 46.9675 116.042 48.9472 116.861C59.7416 121.326 71.6993 122.305 83.1308 119.605C94.5622 116.905 104.818 110.678 112.475 101.854C113.88 100.236 113.527 97.7931 111.816 96.5041L102.077 89.1687C100.365 87.8797 97.9475 88.2395 96.4818 89.8024C91.6727 94.9302 85.4418 98.5558 78.5455 100.185C71.6492 101.814 64.455 101.36 57.8605 98.9255C55.8506 98.1836 53.5273 98.9438 52.5733 100.862L47.1441 111.781Z" fill="#F0F2F8"/>
|
||||||
|
<path d="M21.0973 43.9209C19.1287 43.0753 16.8338 43.9825 16.127 46.0054C11.8718 58.1837 11.9494 71.5054 16.4214 83.6906C20.8933 95.8758 29.451 106.084 40.573 112.616C42.4204 113.701 44.7571 112.908 45.7111 110.989L51.1403 100.071C52.0943 98.1522 51.2984 95.8403 49.4942 94.6848C42.9197 90.474 37.8636 84.2108 35.1491 76.8144C32.4346 69.418 32.2387 61.3702 34.5281 53.9049C35.1564 51.8563 34.2679 49.5784 32.2994 48.7328L21.0973 43.9209Z" fill="#F0F2F8"/>
|
||||||
|
<path d="M73.8169 11.1106C74.0037 8.9759 72.4239 7.0798 70.2818 7.04159C59.8752 6.85599 49.595 9.58316 40.618 14.9526C31.641 20.3221 24.3745 28.0902 19.6138 37.348C18.6338 39.2536 19.5563 41.5428 21.5248 42.3884L32.7269 47.2003C34.6954 48.0459 36.9587 47.122 38.0114 45.2557C41.0653 39.8412 45.4846 35.2916 50.8568 32.0784C56.2289 28.8651 62.3272 27.1238 68.5411 26.9947C70.683 26.9503 72.5677 25.3932 72.7544 23.2585L73.8169 11.1106Z" fill="#F0F2F8"/>
|
||||||
|
<path d="M112.475 31.8413C114.197 30.5655 114.568 28.1254 113.176 26.4965C108.896 21.4876 103.757 17.2674 97.9898 14.0399C92.2231 10.8124 85.9388 8.63908 79.4318 7.6107C77.3157 7.27626 75.4308 8.8692 75.2441 11.0039L74.1816 23.1518C73.9948 25.2865 75.5805 27.1472 77.6821 27.5631C81.3789 28.2945 84.9457 29.6051 88.2484 31.4535C91.551 33.3019 94.5336 35.6568 97.0907 38.4256C98.5445 39.9996 100.959 40.3778 102.681 39.102L112.475 31.8413Z" fill="#F0F2F8"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-dark-128.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-dark-256.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-dark-512.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
7
Clario/Assets/Logo/logo-icon-primary-bg-dark.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="128" height="128" fill="#13161E"/>
|
||||||
|
<path d="M47.1441 111.781C46.1901 113.699 46.9675 116.042 48.9472 116.861C59.7416 121.326 71.6993 122.305 83.1308 119.605C94.5622 116.905 104.818 110.678 112.475 101.854C113.88 100.236 113.527 97.7931 111.816 96.5041L102.077 89.1687C100.365 87.8797 97.9475 88.2395 96.4818 89.8024C91.6727 94.9302 85.4418 98.5558 78.5455 100.185C71.6492 101.814 64.455 101.36 57.8605 98.9255C55.8506 98.1836 53.5273 98.9438 52.5733 100.862L47.1441 111.781Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M21.0973 43.9209C19.1287 43.0753 16.8338 43.9825 16.127 46.0054C11.8718 58.1837 11.9494 71.5054 16.4214 83.6906C20.8933 95.8758 29.451 106.084 40.573 112.616C42.4204 113.701 44.7571 112.908 45.7111 110.989L51.1403 100.071C52.0943 98.1522 51.2984 95.8403 49.4942 94.6848C42.9197 90.474 37.8636 84.2108 35.1491 76.8144C32.4346 69.418 32.2387 61.3702 34.5281 53.9049C35.1564 51.8563 34.2679 49.5784 32.2994 48.7328L21.0973 43.9209Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M73.8169 11.1106C74.0037 8.9759 72.4239 7.0798 70.2818 7.04159C59.8752 6.85599 49.595 9.58316 40.618 14.9526C31.641 20.3221 24.3745 28.0902 19.6138 37.348C18.6338 39.2536 19.5563 41.5428 21.5248 42.3884L32.7269 47.2003C34.6954 48.0459 36.9587 47.122 38.0114 45.2557C41.0653 39.8412 45.4846 35.2916 50.8568 32.0784C56.2289 28.8651 62.3272 27.1238 68.5411 26.9947C70.683 26.9503 72.5677 25.3932 72.7544 23.2585L73.8169 11.1106Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M112.475 31.8413C114.197 30.5655 114.568 28.1254 113.176 26.4965C108.896 21.4876 103.757 17.2674 97.9898 14.0399C92.2231 10.8124 85.9388 8.63908 79.4318 7.6107C77.3157 7.27626 75.4308 8.8692 75.2441 11.0039L74.1816 23.1518C73.9948 25.2865 75.5805 27.1472 77.6821 27.5631C81.3789 28.2945 84.9457 29.6051 88.2484 31.4535C91.551 33.3019 94.5336 35.6568 97.0907 38.4256C98.5445 39.9996 100.959 40.3778 102.681 39.102L112.475 31.8413Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-light-128.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-light-256.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-bg-light-512.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
7
Clario/Assets/Logo/logo-icon-primary-bg-light.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="128" height="128" fill="white"/>
|
||||||
|
<path d="M47.1441 111.781C46.1901 113.699 46.9675 116.042 48.9472 116.861C59.7416 121.326 71.6993 122.305 83.1308 119.605C94.5622 116.905 104.818 110.678 112.475 101.854C113.88 100.236 113.527 97.7931 111.816 96.5041L102.077 89.1687C100.365 87.8797 97.9475 88.2395 96.4818 89.8024C91.6727 94.9302 85.4418 98.5558 78.5455 100.185C71.6492 101.814 64.455 101.36 57.8605 98.9255C55.8506 98.1836 53.5273 98.9438 52.5733 100.862L47.1441 111.781Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M21.0973 43.9209C19.1287 43.0753 16.8338 43.9825 16.127 46.0054C11.8718 58.1837 11.9494 71.5054 16.4214 83.6906C20.8933 95.8758 29.451 106.084 40.573 112.616C42.4204 113.701 44.7571 112.908 45.7111 110.989L51.1403 100.071C52.0943 98.1522 51.2984 95.8403 49.4942 94.6848C42.9197 90.474 37.8636 84.2108 35.1491 76.8144C32.4346 69.418 32.2387 61.3702 34.5281 53.9049C35.1564 51.8563 34.2679 49.5784 32.2994 48.7328L21.0973 43.9209Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M73.8169 11.1106C74.0037 8.9759 72.4239 7.0798 70.2818 7.04159C59.8752 6.85599 49.595 9.58316 40.618 14.9526C31.641 20.3221 24.3745 28.0902 19.6138 37.348C18.6338 39.2536 19.5563 41.5428 21.5248 42.3884L32.7269 47.2003C34.6954 48.0459 36.9587 47.122 38.0114 45.2557C41.0653 39.8412 45.4846 35.2916 50.8568 32.0784C56.2289 28.8651 62.3272 27.1238 68.5411 26.9947C70.683 26.9503 72.5677 25.3932 72.7544 23.2585L73.8169 11.1106Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M112.475 31.8413C114.197 30.5654 114.568 28.1254 113.176 26.4964C108.896 21.4875 103.757 17.2673 97.9898 14.0399C92.2231 10.8124 85.9388 8.63902 79.4318 7.61064C77.3157 7.2762 75.4308 8.86914 75.2441 11.0039L74.1816 23.1517C73.9948 25.2864 75.5805 27.1472 77.6821 27.563C81.3789 28.2944 84.9457 29.605 88.2484 31.4535C91.551 33.3019 94.5336 35.6568 97.0907 38.4255C98.5445 39.9995 100.959 40.3778 102.681 39.1019L112.475 31.8413Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-transparent-128.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-transparent-256.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
Clario/Assets/Logo/logo-icon-primary-transparent-512.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
6
Clario/Assets/Logo/logo-icon-primary-transparent.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M47.1441 111.781C46.1901 113.699 46.9675 116.042 48.9472 116.861C59.7416 121.326 71.6993 122.305 83.1308 119.605C94.5622 116.905 104.818 110.678 112.475 101.854C113.88 100.236 113.527 97.7931 111.816 96.5041L102.077 89.1687C100.365 87.8797 97.9475 88.2395 96.4818 89.8024C91.6727 94.9302 85.4418 98.5558 78.5455 100.185C71.6492 101.814 64.455 101.36 57.8605 98.9255C55.8506 98.1836 53.5273 98.9438 52.5733 100.862L47.1441 111.781Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M21.0973 43.9209C19.1287 43.0753 16.8338 43.9825 16.127 46.0054C11.8718 58.1837 11.9494 71.5054 16.4214 83.6906C20.8933 95.8758 29.451 106.084 40.573 112.616C42.4204 113.701 44.7571 112.908 45.7111 110.989L51.1403 100.071C52.0943 98.1522 51.2984 95.8403 49.4942 94.6848C42.9197 90.474 37.8636 84.2108 35.1491 76.8144C32.4346 69.418 32.2387 61.3702 34.5281 53.9049C35.1564 51.8563 34.2679 49.5784 32.2994 48.7328L21.0973 43.9209Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M73.8169 11.1106C74.0037 8.9759 72.4239 7.0798 70.2818 7.04159C59.8752 6.85599 49.595 9.58316 40.618 14.9526C31.641 20.3221 24.3745 28.0902 19.6138 37.348C18.6338 39.2536 19.5563 41.5428 21.5248 42.3884L32.7269 47.2003C34.6954 48.0459 36.9587 47.122 38.0114 45.2557C41.0653 39.8412 45.4846 35.2916 50.8568 32.0784C56.2289 28.8651 62.3272 27.1238 68.5411 26.9947C70.683 26.9503 72.5677 25.3932 72.7544 23.2585L73.8169 11.1106Z" fill="#3B6AFF"/>
|
||||||
|
<path d="M112.475 31.8413C114.197 30.5654 114.568 28.1254 113.176 26.4964C108.896 21.4875 103.757 17.2673 97.9898 14.0399C92.2231 10.8124 85.9388 8.63902 79.4318 7.61064C77.3157 7.2762 75.4308 8.86914 75.2441 11.0039L74.1816 23.1517C73.9948 25.2864 75.5805 27.1472 77.6821 27.563C81.3789 28.2944 84.9457 29.605 88.2484 31.4535C91.551 33.3019 94.5336 35.6568 97.0907 38.4255C98.5445 39.9995 100.959 40.3778 102.681 39.1019L112.475 31.8413Z" fill="#3B6AFF"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -1,30 +0,0 @@
|
|||||||
<svg width="800" height="400" viewBox="0 0 800 400" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M211.696 66.3202C212.178 60.8183 208.105 55.9315 202.583 55.833C175.756 55.3546 149.254 62.3834 126.112 76.2222C102.97 90.061 84.238 110.082 71.9651 133.942C69.4389 138.853 71.817 144.754 76.8916 146.933L105.77 159.335C110.844 161.514 116.679 159.133 119.393 154.323C127.265 140.368 138.658 128.642 152.507 120.361C166.356 112.079 182.077 107.591 198.096 107.259C203.617 107.144 208.476 103.131 208.957 97.6291L211.696 66.3202Z" fill="url(#paint0_linear_104_124)"/>
|
|
||||||
<path d="M76.8916 146.933C71.817 144.754 65.9008 147.092 64.0787 152.306C53.1091 183.693 53.3093 218.027 64.8376 249.432C76.3659 280.837 98.4269 307.147 127.098 323.983C131.861 326.779 137.885 324.735 140.344 319.79L154.34 291.649C156.799 286.704 154.748 280.746 150.097 277.768C133.148 266.915 120.114 250.773 113.116 231.71C106.118 212.647 105.613 191.906 111.515 172.665C113.135 167.385 110.844 161.514 105.77 159.335L76.8916 146.933Z" fill="url(#paint1_linear_104_124)"/>
|
|
||||||
<path d="M140.344 319.79C137.885 324.735 139.889 330.772 144.992 332.882C172.819 344.389 203.645 346.914 233.115 339.955C262.584 332.995 289.023 316.946 308.762 294.206C312.383 290.035 311.474 283.739 307.062 280.417L281.956 261.511C277.544 258.189 271.311 259.116 267.532 263.144C255.135 276.36 239.072 285.704 221.294 289.903C203.516 294.102 184.97 292.931 167.97 286.657C162.789 284.745 156.799 286.704 154.34 291.649L140.344 319.79Z" fill="url(#paint2_linear_104_124)"/>
|
|
||||||
<path d="M307.676 120.025C312.113 116.736 313.07 110.448 309.482 106.25C298.448 93.3399 285.199 82.4632 270.333 74.1449C255.467 65.8267 239.266 60.2252 222.492 57.5748C217.037 56.7128 212.178 60.8183 211.696 66.3202L208.957 97.6291C208.476 103.131 212.563 107.927 217.981 108.998C227.511 110.884 236.706 114.261 245.22 119.025C253.734 123.789 261.423 129.859 268.015 136.994C271.763 141.051 277.988 142.026 282.425 138.738L307.676 120.025Z" fill="url(#paint3_linear_104_124)"/>
|
|
||||||
<path d="M105.77 159.335L76.8916 146.933M105.77 159.335C110.844 161.514 116.679 159.133 119.393 154.323C127.265 140.368 138.658 128.642 152.507 120.361C166.356 112.079 182.077 107.591 198.096 107.259C203.617 107.144 208.476 103.131 208.957 97.6291M105.77 159.335C110.844 161.514 113.135 167.385 111.515 172.665C105.613 191.906 106.118 212.647 113.116 231.71C120.114 250.773 133.148 266.915 150.097 277.768C154.748 280.746 156.799 286.704 154.34 291.649M76.8916 146.933C71.817 144.754 69.4389 138.853 71.9651 133.942C84.238 110.082 102.97 90.061 126.112 76.2222C149.254 62.3834 175.756 55.3546 202.583 55.833C208.105 55.9315 212.178 60.8183 211.696 66.3202M76.8916 146.933C71.817 144.754 65.9008 147.092 64.0787 152.306C53.1091 183.693 53.3093 218.027 64.8376 249.432C76.3659 280.837 98.4269 307.147 127.098 323.983C131.861 326.779 137.885 324.735 140.344 319.79M208.957 97.6291L211.696 66.3202M208.957 97.6291C208.476 103.131 212.563 107.927 217.981 108.998C227.511 110.884 236.706 114.261 245.22 119.025C253.734 123.789 261.423 129.859 268.015 136.994C271.763 141.051 277.988 142.026 282.425 138.738L307.676 120.025C312.113 116.736 313.07 110.448 309.482 106.25C298.448 93.3399 285.199 82.4632 270.333 74.1449C255.467 65.8267 239.266 60.2252 222.492 57.5748C217.037 56.7128 212.178 60.8183 211.696 66.3202M154.34 291.649L140.344 319.79M154.34 291.649C156.799 286.704 162.789 284.745 167.97 286.657C184.97 292.931 203.516 294.102 221.294 289.903C239.072 285.704 255.135 276.36 267.532 263.144C271.311 259.116 277.544 258.189 281.956 261.511L307.062 280.417C311.474 283.739 312.383 290.035 308.762 294.206C289.023 316.946 262.584 332.995 233.115 339.955C203.645 346.914 172.819 344.389 144.992 332.882C139.889 330.772 137.885 324.735 140.344 319.79" stroke="#13161E" stroke-width="5"/>
|
|
||||||
<path d="M331.8 292V146.8H362.4V292H331.8ZM424.548 294C415.615 294 407.615 291.8 400.548 287.4C393.615 283 388.082 277 383.948 269.4C379.948 261.8 377.948 253.133 377.948 243.4C377.948 233.667 379.948 225 383.948 217.4C388.082 209.8 393.615 203.8 400.548 199.4C407.615 195 415.615 192.8 424.548 192.8C431.082 192.8 436.948 194.067 442.148 196.6C447.482 199.133 451.815 202.667 455.148 207.2C458.482 211.6 460.348 216.667 460.748 222.4V264.4C460.348 270.133 458.482 275.267 455.148 279.8C451.948 284.2 447.682 287.667 442.348 290.2C437.015 292.733 431.082 294 424.548 294ZM430.748 266.4C437.282 266.4 442.548 264.267 446.548 260C450.548 255.6 452.548 250.067 452.548 243.4C452.548 238.867 451.615 234.867 449.748 231.4C448.015 227.933 445.482 225.267 442.148 223.4C438.948 221.4 435.215 220.4 430.948 220.4C426.682 220.4 422.882 221.4 419.548 223.4C416.348 225.267 413.748 227.933 411.748 231.4C409.882 234.867 408.948 238.867 408.948 243.4C408.948 247.8 409.882 251.733 411.748 255.2C413.615 258.667 416.215 261.4 419.548 263.4C422.882 265.4 426.615 266.4 430.748 266.4ZM451.348 292V265.8L455.948 242.2L451.348 218.6V194.8H481.348V292H451.348ZM502.894 292V194.8H533.494V292H502.894ZM533.494 238.6L520.694 228.6C523.227 217.267 527.494 208.467 533.494 202.2C539.494 195.933 547.827 192.8 558.494 192.8C563.16 192.8 567.227 193.533 570.694 195C574.294 196.333 577.427 198.467 580.094 201.4L561.894 224.4C560.56 222.933 558.894 221.8 556.894 221C554.894 220.2 552.627 219.8 550.094 219.8C545.027 219.8 540.96 221.4 537.894 224.6C534.96 227.667 533.494 232.333 533.494 238.6ZM588.245 292V194.8H618.845V292H588.245ZM603.645 181.4C598.845 181.4 594.845 179.8 591.645 176.6C588.579 173.267 587.045 169.267 587.045 164.6C587.045 159.8 588.579 155.8 591.645 152.6C594.845 149.4 598.845 147.8 603.645 147.8C608.445 147.8 612.379 149.4 615.445 152.6C618.512 155.8 620.045 159.8 620.045 164.6C620.045 169.267 618.512 173.267 615.445 176.6C612.379 179.8 608.445 181.4 603.645 181.4ZM687.194 294.2C677.194 294.2 668.127 292 659.994 287.6C651.994 283.067 645.66 276.933 640.994 269.2C636.327 261.467 633.994 252.8 633.994 243.2C633.994 233.6 636.327 225 640.994 217.4C645.66 209.8 651.994 203.8 659.994 199.4C667.994 194.867 677.06 192.6 687.194 192.6C697.327 192.6 706.394 194.8 714.394 199.2C722.394 203.6 728.727 209.667 733.394 217.4C738.06 225 740.394 233.6 740.394 243.2C740.394 252.8 738.06 261.467 733.394 269.2C728.727 276.933 722.394 283.067 714.394 287.6C706.394 292 697.327 294.2 687.194 294.2ZM687.194 266.4C691.594 266.4 695.46 265.467 698.794 263.6C702.127 261.6 704.66 258.867 706.394 255.4C708.26 251.8 709.194 247.733 709.194 243.2C709.194 238.667 708.26 234.733 706.394 231.4C704.527 227.933 701.927 225.267 698.594 223.4C695.394 221.4 691.594 220.4 687.194 220.4C682.927 220.4 679.127 221.4 675.794 223.4C672.46 225.267 669.86 227.933 667.994 231.4C666.127 234.867 665.194 238.867 665.194 243.4C665.194 247.8 666.127 251.8 667.994 255.4C669.86 258.867 672.46 261.6 675.794 263.6C679.127 265.467 682.927 266.4 687.194 266.4Z" fill="url(#paint4_linear_104_124)"/>
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="paint0_linear_104_124" x1="317.366" y1="64.3917" x2="259.803" y2="159.58" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint1_linear_104_124" x1="317.366" y1="64.3917" x2="259.803" y2="159.58" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint2_linear_104_124" x1="317.366" y1="64.3917" x2="259.803" y2="159.58" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint3_linear_104_124" x1="317.366" y1="64.3917" x2="259.803" y2="159.58" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="paint4_linear_104_124" x1="745" y1="92" x2="321" y2="344" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#7B9CFF"/>
|
|
||||||
<stop offset="1" stop-color="#3B6AFF"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 7.7 KiB |
BIN
Clario/Assets/screenshots/after.png
Normal file
|
After Width: | Height: | Size: 29 KiB |