feat: gradient buttons, language selector with flags, SVG support, and UI improvements

- Add linear gradient backgrounds to primary/secondary/danger buttons
- Add language selector with flag icons in ComboBox
- Add SVG support via egui_extras feature
- Add cancel confirmation dialog on exit
- Update Yali logo to SVG icon
- Add flag SVGs for all countries
- Improve users step layout with form helpers
- Refactor button API (ui::theme::*_button now takes ui param)
This commit is contained in:
Erkan IŞIK
2026-06-14 22:40:52 +03:00
parent b9f6df272e
commit a48120b039
305 changed files with 12323 additions and 445 deletions
+190
View File
@@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="ALL" />
</component>
<component name="CargoProjects">
<cargoProject FILE="$PROJECT_DIR$/Cargo.toml">
<package file="$PROJECT_DIR$">
<feature name="default" enabled="true" />
</package>
</cargoProject>
</component>
<component name="ChangeListManager">
<list default="true" id="678cd247-c8b2-4063-94f2-b682b6bb236f" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/src/jobs/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/jobs/mod.rs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.rs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/steps/finish.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/steps/finish.rs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/steps/users.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/steps/users.rs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="EmbeddingIndexingInfo">
<option name="cachedIndexableFilesCount" value="60" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="RsBuildProfile:dev" />
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="MacroExpansionManager">
<option name="directoryName" value="SEoPnRhe" />
</component>
<component name="McpProjectServerCommands">
<commands />
<urls />
</component>
<component name="NextEditCompletionFeaturesState">
<decayedCancelled>
<entry key="MS100" value="1.3703429928695074" />
<entry key="MS500" value="3.8590125328749143" />
<entry key="S2" value="7.997842435345602" />
<entry key="S5" value="10.064911302778096" />
<entry key="S10" value="11.012369312098846" />
<entry key="S30" value="13.297481425267742" />
<entry key="S60" value="15.87856108324346" />
<entry key="M2" value="18.276288137461545" />
<entry key="M5" value="20.310094423200308" />
<entry key="M10" value="21.117446084238765" />
<entry key="M15" value="21.402932145531366" />
<entry key="M30" value="21.697027759187925" />
<entry key="H1" value="21.847387285884242" />
<entry key="H2" value="21.923409838840797" />
<entry key="H4" value="21.961633697117406" />
<entry key="D1" value="21.993595701089557" />
<entry key="W1" value="21.99908485703503" />
</decayedCancelled>
<decayedSelected>
<entry key="MS100" value="0.0" />
<entry key="MS500" value="0.0" />
<entry key="S2" value="0.0" />
<entry key="S5" value="0.0" />
<entry key="S10" value="0.0" />
<entry key="S30" value="0.0" />
<entry key="S60" value="0.0" />
<entry key="M2" value="0.0" />
<entry key="M5" value="0.0" />
<entry key="M10" value="0.0" />
<entry key="M15" value="0.0" />
<entry key="M30" value="0.0" />
<entry key="H1" value="0.0" />
<entry key="H2" value="0.0" />
<entry key="H4" value="0.0" />
<entry key="D1" value="0.0" />
<entry key="W1" value="0.0" />
</decayedSelected>
<decayedShown>
<entry key="MS100" value="1.3078922956617014" />
<entry key="MS500" value="3.825086492339626" />
<entry key="S2" value="7.9801662926722425" />
<entry key="S5" value="10.055978630202434" />
<entry key="S10" value="11.006681666978707" />
<entry key="S30" value="13.281192897397881" />
<entry key="S60" value="15.857757898004378" />
<entry key="M2" value="18.259339578960148" />
<entry key="M5" value="20.30097410383367" />
<entry key="M10" value="21.112409623597532" />
<entry key="M15" value="21.399461291839437" />
<entry key="M30" value="21.695233776922116" />
<entry key="H1" value="21.846475280025572" />
<entry key="H2" value="21.92295003430812" />
<entry key="H4" value="21.961402838400403" />
<entry key="D1" value="21.99355709128008" />
<entry key="W1" value="21.999079338075337" />
</decayedShown>
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 7,
"fromUser": false
}]]></component>
<component name="ProjectId" id="3EmCAm9jtQmYNAWdSYZrNovWdvk" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"ModuleVcsDetector.initialDetectionPerformed": "true",
"RunOnceActivity.MCP Project settings loaded": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.git.unshallow": "true",
"RunOnceActivity.rust.reset.selective.auto.import": "true",
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
"codeWithMe.voiceChat.enabledByDefault": "false",
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
"git-widget-placeholder": "main",
"junie.onboarding.icon.badge.shown": "true",
"last_opened_file_path": "/media/yedekleme/gitlab/erkanisik/yali-rs",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"org.rust.cargo.project.model.PROJECT_DISCOVERY": "true",
"org.rust.first.attach.projects": "true",
"settings.editor.selected.configurable": "ml.llm.LLMThirdPartyAiProvidersConfigurable",
"to.speed.mode.migration.done": "true",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="RunManager" selected="Cargo.Run yali-rs">
<configuration name="Run yali-rs" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="buildProfileId" value="dev" />
<option name="command" value="run --package yali-rs --bin yali-rs" />
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
<envs />
<option name="emulateTerminal" value="true" />
<option name="channel" value="DEFAULT" />
<option name="requiredFeatures" value="true" />
<option name="allFeatures" value="false" />
<option name="withSudo" value="false" />
<option name="buildTarget" value="REMOTE" />
<option name="backtrace" value="SHORT" />
<option name="isRedirectInput" value="false" />
<option name="redirectInputPath" value="" />
<method v="2">
<option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" />
</method>
</configuration>
<configuration name="Test yali-rs" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="command" value="test --workspace" />
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
<envs />
<option name="emulateTerminal" value="true" />
<option name="channel" value="DEFAULT" />
<option name="requiredFeatures" value="true" />
<option name="allFeatures" value="false" />
<option name="withSudo" value="false" />
<option name="buildTarget" value="REMOTE" />
<option name="backtrace" value="SHORT" />
<option name="isRedirectInput" value="false" />
<option name="redirectInputPath" value="" />
<method v="2">
<option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" />
</method>
</configuration>
</component>
<component name="RustProjectSettings">
<option name="toolchainHomeDirectory" value="/usr/bin" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="678cd247-c8b2-4063-94f2-b682b6bb236f" name="Changes" comment="" />
<created>1780774218610</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1780774218610</updated>
<workItem from="1780774219939" duration="732000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
<select />
</component>
</project>