Add a mechanism to customize app icons and colors
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 63;
|
||||
objectVersion = 70;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXAggregateTarget section */
|
||||
@@ -2971,6 +2971,10 @@
|
||||
FFECCE59967018204876D0A5 /* LocationMarkerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationMarkerView.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
||||
0F5E53BB2F7D3AA5008BB162 /* Letro */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Letro; sourceTree = "<group>"; };
|
||||
/* End PBXFileSystemSynchronizedRootGroup section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
60823A8E409E27661824D510 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
@@ -6616,6 +6620,7 @@
|
||||
E68740F873AB18A5C26844EA /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0F5E53BB2F7D3AA5008BB162 /* Letro */,
|
||||
A78C2592419CA4C76FBA8FD2 /* Application */,
|
||||
0787F81684E503024BD0C051 /* Services */,
|
||||
593C7129C5927E25AD8B688F /* FlowCoordinators */,
|
||||
@@ -7115,6 +7120,9 @@
|
||||
58C473A5DEA945AACFEA8E9F /* PBXTargetDependency */,
|
||||
2E32BC489F482046B8B1460F /* PBXTargetDependency */,
|
||||
);
|
||||
fileSystemSynchronizedGroups = (
|
||||
0F5E53BB2F7D3AA5008BB162 /* Letro */,
|
||||
);
|
||||
name = ElementX;
|
||||
packageProductDependencies = (
|
||||
A678E40E917620059695F067 /* MatrixRustSDK */,
|
||||
|
||||
21
ElementX/Resources/Assets.xcassets/images/letro-icon-chat.imageset/Contents.json
vendored
Normal file
21
ElementX/Resources/Assets.xcassets/images/letro-icon-chat.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "letro-icon-chat.svg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
3
ElementX/Resources/Assets.xcassets/images/letro-icon-chat.imageset/letro-icon-chat.svg
vendored
Normal file
3
ElementX/Resources/Assets.xcassets/images/letro-icon-chat.imageset/letro-icon-chat.svg
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9005 0.826677C18.7711 0.983967 19.4764 1.57232 19.7778 2.39265C19.9154 2.76736 19.9112 2.70651 19.9112 4.33668V5.84196L19.8405 5.98152C19.7502 6.15981 19.5581 6.33684 19.3846 6.40176C19.2244 6.4617 18.9531 6.46792 18.7985 6.41514C18.565 6.3355 18.3176 6.07351 18.2551 5.83957C18.2349 5.76435 18.2267 5.36801 18.2267 4.46893C18.2267 3.62196 18.2179 3.16227 18.1998 3.07748C18.1482 2.83462 17.9322 2.59748 17.7022 2.53123C17.6452 2.51476 15.4909 2.50908 11.1065 2.51378L4.5956 2.52079L4.4802 2.57973C4.34164 2.65053 4.21441 2.78569 4.1449 2.936L4.09384 3.04644L4.06995 12.9144L3.51194 14.5825C3.20503 15.4999 2.95889 16.2555 2.96495 16.2615C2.97102 16.2676 3.19524 16.2179 3.46323 16.151L3.95048 16.0296L5.00179 16.0444L5.15709 16.1187C5.34344 16.2078 5.49456 16.3554 5.58228 16.5341C5.63883 16.6492 5.64688 16.694 5.64664 16.8926C5.64645 17.075 5.63616 17.1419 5.59422 17.2331C5.51569 17.404 5.32518 17.5917 5.15045 17.6705C5.00807 17.7347 4.98112 17.7381 4.51197 17.7526L4.02216 17.7677L2.87528 18.0613C1.57126 18.395 1.55914 18.3965 1.27579 18.257C0.946516 18.0949 0.755942 17.7638 0.793192 17.4186C0.801531 17.3415 1.12961 16.321 1.58449 14.9574L2.36157 12.628L2.3616 7.95666C2.36162 3.2713 2.36702 2.93106 2.44621 2.62472C2.55224 2.21464 2.76733 1.84145 3.07838 1.52795C3.47419 1.129 3.89206 0.910996 4.42835 0.823714C4.74565 0.772057 17.6139 0.7749 17.9005 0.826677ZM20.2722 8.7471C21.0897 8.88384 21.8347 9.48949 22.1328 10.2596C22.3092 10.7153 22.2965 10.4359 22.3114 14.1927L22.3247 17.5736L22.7128 19.8729C22.9263 21.1375 23.101 22.2134 23.101 22.2638C23.101 22.3833 23.0395 22.588 22.9709 22.6965C22.8916 22.8222 22.7316 22.9581 22.5782 23.03C22.4669 23.0821 22.4112 23.0927 22.2528 23.0915C22.0753 23.0902 21.8672 23.0344 19.3379 22.309L16.6141 21.5279L13.496 21.5273C11.6734 21.527 10.2791 21.5171 10.1402 21.5036C9.10776 21.4032 8.27216 20.6956 7.99629 19.6881L7.94067 19.4851V10.7162L8.0075 10.5012C8.24796 9.7273 8.78432 9.14356 9.50293 8.87364C9.93301 8.7121 9.60529 8.72082 15.1417 8.7239C17.8963 8.72543 20.2051 8.73587 20.2722 8.7471ZM20.0105 10.4422C20.2431 10.4887 20.4637 10.6733 20.5445 10.8891C20.5913 11.0143 20.5922 11.0765 20.5919 14.2712L20.5915 17.5258L20.8824 19.2762C21.0423 20.2389 21.1681 21.0316 21.1619 21.0379C21.1556 21.0441 20.1889 20.7725 19.0137 20.4344L16.8768 19.8196L10.1627 19.7957L10.0539 19.742C9.84726 19.6402 9.69743 19.4512 9.65052 19.2331C9.6295 19.1354 9.62429 18.0845 9.62978 15.0409L9.63709 10.979L9.69355 10.8541C9.7596 10.7081 9.91703 10.5541 10.0749 10.4811L10.1866 10.4295L15.0489 10.4259C17.7232 10.424 19.9559 10.4313 20.0105 10.4422Z" fill="#B1B3B9"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
21
ElementX/Resources/Assets.xcassets/images/letro-icon-chatSolid.imageset/Contents.json
vendored
Normal file
21
ElementX/Resources/Assets.xcassets/images/letro-icon-chatSolid.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "letro-icon-chatSolid.svg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
16
ElementX/Resources/Assets.xcassets/images/letro-icon-chatSolid.imageset/letro-icon-chatSolid.svg
vendored
Normal file
16
ElementX/Resources/Assets.xcassets/images/letro-icon-chatSolid.imageset/letro-icon-chatSolid.svg
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9005 0.826677C18.7711 0.983967 19.4764 1.57232 19.7778 2.39265C19.9154 2.76736 19.9112 2.70651 19.9112 4.33668V5.84196L19.8405 5.98152C19.7502 6.15981 19.5581 6.33684 19.3846 6.40176C19.2244 6.4617 18.9531 6.46792 18.7985 6.41514C18.565 6.3355 18.3176 6.07351 18.2551 5.83957C18.2349 5.76435 18.2267 5.36801 18.2267 4.46893C18.2267 3.62196 18.2179 3.16227 18.1998 3.07748C18.1482 2.83462 17.9322 2.59748 17.7022 2.53123C17.6452 2.51476 15.4909 2.50908 11.1065 2.51378L4.5956 2.52079L4.4802 2.57973C4.34164 2.65053 4.21441 2.78569 4.1449 2.936L4.09384 3.04644L4.06995 12.9144L3.51194 14.5825C3.20503 15.4999 2.95889 16.2555 2.96495 16.2615C2.97102 16.2676 3.19524 16.2179 3.46323 16.151L3.95048 16.0296L5.00179 16.0444L5.15709 16.1187C5.34344 16.2078 5.49456 16.3554 5.58228 16.5341C5.63883 16.6492 5.64688 16.694 5.64664 16.8926C5.64645 17.075 5.63616 17.1419 5.59422 17.2331C5.51569 17.404 5.32518 17.5917 5.15045 17.6705C5.00807 17.7347 4.98112 17.7381 4.51197 17.7526L4.02216 17.7677L2.87528 18.0613C1.57126 18.395 1.55914 18.3965 1.27579 18.257C0.946516 18.0949 0.755942 17.7638 0.793192 17.4186C0.801531 17.3415 1.12961 16.321 1.58449 14.9574L2.36157 12.628L2.3616 7.95666C2.36162 3.2713 2.36702 2.93106 2.44621 2.62472C2.55224 2.21464 2.76733 1.84145 3.07838 1.52795C3.47419 1.129 3.89206 0.910996 4.42835 0.823714C4.74565 0.772057 17.6139 0.7749 17.9005 0.826677ZM20.2722 8.7471C21.0897 8.88384 21.8347 9.48949 22.1328 10.2596C22.3092 10.7153 22.2965 10.4359 22.3114 14.1927L22.3247 17.5736L22.7128 19.8729C22.9263 21.1375 23.101 22.2134 23.101 22.2638C23.101 22.3833 23.0395 22.588 22.9709 22.6965C22.8916 22.8222 22.7316 22.9581 22.5782 23.03C22.4669 23.0821 22.4112 23.0927 22.2528 23.0915C22.0753 23.0902 21.8672 23.0344 19.3379 22.309L16.6141 21.5279L13.496 21.5273C11.6734 21.527 10.2791 21.5171 10.1402 21.5036C9.10776 21.4032 8.27216 20.6956 7.99629 19.6881L7.94067 19.4851V10.7162L8.0075 10.5012C8.24796 9.7273 8.78432 9.14356 9.50293 8.87364C9.93301 8.7121 9.60529 8.72082 15.1417 8.7239C17.8963 8.72543 20.2051 8.73587 20.2722 8.7471ZM20.0105 10.4422C20.2431 10.4887 20.4637 10.6733 20.5445 10.8891C20.5913 11.0143 20.5922 11.0765 20.5919 14.2712L20.5915 17.5258L20.8824 19.2762C21.0423 20.2389 21.1681 21.0316 21.1619 21.0379C21.1556 21.0441 20.1889 20.7725 19.0137 20.4344L16.8768 19.8196L10.1627 19.7957L10.0539 19.742C9.84726 19.6402 9.69743 19.4512 9.65052 19.2331C9.6295 19.1354 9.62429 18.0845 9.62978 15.0409L9.63709 10.979L9.69355 10.8541C9.7596 10.7081 9.91703 10.5541 10.0749 10.4811L10.1866 10.4295L15.0489 10.4259C17.7232 10.424 19.9559 10.4313 20.0105 10.4422Z" fill="url(#paint0_linear_9496_17897)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_9496_17897" x1="0.966404" y1="22.5583" x2="22.5605" y2="0.957182" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
21
ElementX/Resources/Assets.xcassets/images/letro-icon-space.imageset/Contents.json
vendored
Normal file
21
ElementX/Resources/Assets.xcassets/images/letro-icon-space.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "letro-icon-space.svg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
3
ElementX/Resources/Assets.xcassets/images/letro-icon-space.imageset/letro-icon-space.svg
vendored
Normal file
3
ElementX/Resources/Assets.xcassets/images/letro-icon-space.imageset/letro-icon-space.svg
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20.5649 11.595C20.0415 11.0643 19.4266 10.6324 18.7499 10.32C19.2477 9.90843 19.642 9.38564 19.9008 8.79379C20.1597 8.20193 20.2759 7.55755 20.2402 6.91255C20.2044 6.26755 20.0177 5.63997 19.695 5.08035C19.3723 4.52073 18.9227 4.04472 18.3824 3.69065C17.8421 3.33659 17.2261 3.11438 16.5842 3.04191C15.9423 2.96944 15.2924 3.04874 14.6867 3.27343C14.0811 3.49812 13.5366 3.86192 13.0973 4.33551C12.658 4.8091 12.336 5.37926 12.1574 6.00005H11.8424C11.6637 5.37926 11.3418 4.8091 10.9024 4.33551C10.4631 3.86192 9.91868 3.49812 9.31303 3.27343C8.70738 3.04874 8.05742 2.96944 7.41551 3.04191C6.7736 3.11438 6.15768 3.33659 5.61737 3.69065C5.07706 4.04472 4.62745 4.52073 4.30477 5.08035C3.98208 5.63997 3.79534 6.26755 3.75959 6.91255C3.72383 7.55755 3.84006 8.20193 4.09891 8.79379C4.35776 9.38564 4.752 9.90843 5.24987 10.32C4.15575 10.8169 3.22835 11.619 2.5791 12.6302C1.92984 13.6413 1.58634 14.8184 1.58987 16.0201C1.58987 16.2807 1.64133 16.5388 1.7413 16.7795C1.84128 17.0202 1.98779 17.2388 2.17245 17.4228C2.3571 17.6067 2.57626 17.7524 2.81735 17.8515C3.05845 17.9506 3.31672 18.001 3.57737 18H5.82737C5.76699 18.3367 5.73687 18.678 5.73737 19.0201C5.73736 19.5426 5.9439 20.044 6.31199 20.4148C6.68007 20.7857 7.17985 20.9961 7.70237 21H16.2974C16.8212 20.9981 17.3229 20.7886 17.6926 20.4175C18.0623 20.0464 18.2699 19.5439 18.2699 19.0201C18.2704 18.678 18.2402 18.3367 18.1799 18H20.4299C20.9537 17.9981 21.4554 17.7886 21.8251 17.4175C22.1948 17.0464 22.4024 16.5439 22.4024 16.0201C22.4036 15.1977 22.2418 14.3832 21.9264 13.6237C21.611 12.8642 21.1483 12.1747 20.5649 11.595ZM16.1249 4.50005C16.8211 4.50005 17.4887 4.77661 17.981 5.26889C18.4733 5.76118 18.7499 6.42886 18.7499 7.12505C18.7499 7.82124 18.4733 8.48892 17.981 8.9812C17.4887 9.47349 16.8211 9.75005 16.1249 9.75005C16.0581 9.011 15.7929 8.30374 15.3572 7.70304C14.9215 7.10235 14.3316 6.63055 13.6499 6.33755C13.8179 5.81061 14.1473 5.34976 14.5913 5.02006C15.0354 4.69036 15.5718 4.50847 16.1249 4.50005ZM14.6249 10.125C14.6249 10.6442 14.4709 11.1517 14.1825 11.5834C13.894 12.0151 13.4841 12.3516 13.0044 12.5502C12.5248 12.7489 11.997 12.8009 11.4878 12.6996C10.9786 12.5983 10.5108 12.3483 10.1437 11.9812C9.7766 11.6141 9.5266 11.1464 9.42531 10.6372C9.32402 10.128 9.37601 9.60016 9.57469 9.12051C9.77337 8.64085 10.1098 8.23088 10.5415 7.94244C10.9732 7.654 11.4807 7.50005 11.9999 7.50005C12.6961 7.50005 13.3637 7.77661 13.856 8.26889C14.3483 8.76118 14.6249 9.42886 14.6249 10.125ZM5.24987 7.12505C5.24291 6.49484 5.46358 5.88327 5.87134 5.4027C6.27909 4.92213 6.84655 4.60481 7.46949 4.50905C8.09242 4.41328 8.72899 4.5455 9.26226 4.8814C9.79554 5.21731 10.1897 5.73435 10.3724 6.33755C9.69061 6.63055 9.10071 7.10235 8.66504 7.70304C8.22937 8.30374 7.96413 9.011 7.89737 9.75005C7.55076 9.75302 7.207 9.68732 6.88592 9.55673C6.56483 9.42614 6.2728 9.23326 6.02665 8.98921C5.78051 8.74515 5.58514 8.45477 5.45182 8.13482C5.31849 7.81486 5.24986 7.47167 5.24987 7.12505ZM3.57737 16.5C3.45137 16.4981 3.3312 16.4466 3.2428 16.3568C3.1544 16.267 3.10486 16.1461 3.10487 16.0201C3.10388 15.3934 3.22659 14.7726 3.46595 14.1935C3.70532 13.6143 4.05664 13.0881 4.49977 12.6449C4.9429 12.2018 5.46913 11.8505 6.0483 11.6111C6.62747 11.3718 7.24819 11.2491 7.87487 11.25H8.03987C8.27073 12.0602 8.74453 12.7801 9.39737 13.3125C8.00025 13.9595 6.88603 15.0924 6.26237 16.5H3.57737ZM16.3274 19.5H7.70237C7.57637 19.4981 7.4562 19.4466 7.3678 19.3568C7.2794 19.267 7.22986 19.1461 7.22987 19.0201C7.22987 17.755 7.73242 16.5417 8.62697 15.6472C9.52152 14.7526 10.7348 14.25 11.9999 14.25C13.265 14.25 14.4782 14.7526 15.3728 15.6472C16.2673 16.5417 16.7699 17.755 16.7699 19.0201C16.7699 19.1461 16.7203 19.267 16.6319 19.3568C16.5435 19.4466 16.4234 19.4981 16.2974 19.5H16.3274ZM20.4524 16.5H17.7374C17.1122 15.0952 15.9982 13.9652 14.6024 13.32C15.2565 12.7856 15.7304 12.063 15.9599 11.25H16.1249C17.3893 11.252 18.6015 11.7552 19.4956 12.6493C20.3897 13.5435 20.8929 14.7556 20.8949 16.0201C20.8949 16.1461 20.8453 16.267 20.7569 16.3568C20.6685 16.4466 20.5484 16.4981 20.4224 16.5H20.4524Z" fill="#B1B3B9"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
21
ElementX/Resources/Assets.xcassets/images/letro-icon-spaceSolid.imageset/Contents.json
vendored
Normal file
21
ElementX/Resources/Assets.xcassets/images/letro-icon-spaceSolid.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "letro-icon-spaceSolid.svg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
112
ElementX/Resources/Assets.xcassets/images/letro-icon-spaceSolid.imageset/letro-icon-spaceSolid.svg
vendored
Normal file
112
ElementX/Resources/Assets.xcassets/images/letro-icon-spaceSolid.imageset/letro-icon-spaceSolid.svg
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.7056 7.81412C18.7056 8.47974 18.2813 9.15474 17.6884 9.36802C17.5267 9.42662 17.3509 9.45709 17.1704 9.45709C16.9899 9.45709 16.8142 9.42427 16.6524 9.36802C16.0595 9.15474 15.6353 8.48209 15.6353 7.81412C15.6353 6.96568 16.322 6.38209 17.1728 6.38209C18.0165 6.37974 18.7056 6.96334 18.7056 7.81412Z" stroke="url(#paint0_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M8.36719 7.81411C8.36719 8.47974 7.94297 9.15474 7.35 9.36802C7.18828 9.42661 7.0125 9.45708 6.83203 9.45708C6.65156 9.45708 6.47578 9.42427 6.31406 9.36802C5.72109 9.15474 5.29688 8.48208 5.29688 7.81411C5.29688 6.96567 5.98359 6.38208 6.83438 6.38208C7.68516 6.38208 8.36719 6.96333 8.36719 7.81411Z" stroke="url(#paint1_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M13.3267 4.99224C13.3267 5.56645 12.9611 6.14771 12.4478 6.33286C12.3072 6.38208 12.1572 6.4102 12.0001 6.4102C11.8431 6.4102 11.6931 6.38208 11.5525 6.33286C11.0416 6.15005 10.6736 5.5688 10.6736 4.99224C10.6736 4.26099 11.2666 3.75708 12.0001 3.75708C12.7337 3.75708 13.3267 4.25864 13.3267 4.99224Z" stroke="url(#paint2_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M7.26567 13.3875C7.26567 14.161 6.77349 14.9415 6.08442 15.1899C5.89692 15.2579 5.69302 15.293 5.48208 15.293C5.27114 15.293 5.06724 15.2555 4.87974 15.1899C4.19067 14.9438 3.69849 14.161 3.69849 13.3875C3.69849 12.4032 4.49536 11.7258 5.47974 11.7258C6.46411 11.7258 7.26567 12.4032 7.26567 13.3875Z" stroke="url(#paint3_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M7.92895 17.2617C7.65708 17.6976 7.50005 18.2132 7.50005 18.764V18.8835H3.17817C3.00005 18.8835 2.85474 18.7382 2.85474 18.5601V18.0187C2.85474 17.1023 3.60474 16.3523 4.52114 16.3523H6.44302C7.08989 16.3523 7.65239 16.7226 7.92895 17.2617Z" stroke="url(#paint4_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M20.2992 13.3876C20.2992 14.161 19.807 14.9415 19.118 15.1899C18.9305 15.2579 18.7266 15.293 18.5156 15.293C18.3047 15.293 18.1008 15.2555 17.9133 15.1899C17.2266 14.9415 16.7344 14.1586 16.7344 13.3876C16.7344 12.4032 17.5313 11.7258 18.5156 11.7258C19.5023 11.7235 20.2992 12.4032 20.2992 13.3876Z" stroke="url(#paint5_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M21.1453 18.0188V18.5603C21.1453 18.7384 21 18.8837 20.8218 18.8837H16.5V18.7642C16.5 18.2134 16.3429 17.7001 16.071 17.2618C16.3476 16.7228 16.9101 16.3501 17.5546 16.3501H19.4765C20.3953 16.3524 21.1453 17.1024 21.1453 18.0188Z" stroke="url(#paint6_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10" stroke-linejoin="round"/>
|
||||
<path d="M15.0516 11.2337C15.0516 12.558 14.2079 14.065 13.0313 14.4892C12.7102 14.6041 12.3633 14.6673 12 14.6673C11.6391 14.6673 11.2922 14.6041 10.9688 14.4892C9.78989 14.0673 8.94849 12.558 8.94849 11.2337C8.94849 9.54858 10.3149 8.38843 12 8.38843C13.6852 8.38843 15.0516 9.54858 15.0516 11.2337Z" stroke="url(#paint7_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10"/>
|
||||
<path d="M16.5 18.764V19.6898C16.5 19.9945 16.2492 20.2453 15.9445 20.2453H8.05547C7.75078 20.2453 7.5 19.9968 7.5 19.6898V18.764C7.5 18.2132 7.65703 17.7 7.92891 17.2617C8.43281 16.4507 9.33281 15.907 10.3547 15.907H13.6453C14.6648 15.907 15.5648 16.4507 16.0711 17.2617C16.343 17.7 16.5 18.2132 16.5 18.764Z" stroke="url(#paint8_linear_9587_13112)" stroke-width="1.3" stroke-miterlimit="10"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_9587_13112" x1="15.6597" y1="9.38356" x2="18.6367" y2="6.41114" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_9587_13112" x1="5.32135" y1="9.38356" x2="8.29831" y2="6.41113" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_9587_13112" x1="10.6947" y1="6.34677" x2="13.2633" y2="3.77823" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_9587_13112" x1="3.72692" y1="15.2077" x2="7.18038" y2="11.7543" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear_9587_13112" x1="2.89518" y1="18.823" x2="4.8529" y2="14.8985" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear_9587_13112" x1="16.7628" y1="15.2077" x2="20.2163" y2="11.7565" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint6_linear_9587_13112" x1="16.1115" y1="18.8231" x2="18.0721" y2="14.8964" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint7_linear_9587_13112" x1="8.99713" y1="14.5172" x2="15.0734" y2="8.61103" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint8_linear_9587_13112" x1="7.57173" y1="20.1415" x2="10.8573" y2="13.3254" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.05" stop-color="#C20000"/>
|
||||
<stop offset="0.19" stop-color="#C30300"/>
|
||||
<stop offset="0.32" stop-color="#C60E00"/>
|
||||
<stop offset="0.45" stop-color="#CB2000"/>
|
||||
<stop offset="0.57" stop-color="#D33900"/>
|
||||
<stop offset="0.68" stop-color="#DD5A00"/>
|
||||
<stop offset="0.8" stop-color="#E98200"/>
|
||||
<stop offset="0.91" stop-color="#F7B000"/>
|
||||
<stop offset="0.96" stop-color="#FFC800"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.3 KiB |
@@ -6,6 +6,7 @@
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
|
||||
import Compound
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
@@ -16,6 +17,9 @@ struct Application: App {
|
||||
private var appCoordinator: AppCoordinatorProtocol!
|
||||
|
||||
init() {
|
||||
// Letro: use custom colors and icons
|
||||
CompoundExtensions.applyLetroOverrides()
|
||||
|
||||
if ProcessInfo.isRunningUITests {
|
||||
appCoordinator = UITestsAppCoordinator(appDelegate: appDelegate)
|
||||
} else if ProcessInfo.isRunningUnitTests {
|
||||
|
||||
@@ -35,6 +35,10 @@ internal enum Asset {
|
||||
internal static let letroBg1 = ImageAsset(name: "images/letro-bg-1")
|
||||
internal static let letroHeader1 = ImageAsset(name: "images/letro-header-1")
|
||||
internal static let letroHeader2 = ImageAsset(name: "images/letro-header-2")
|
||||
internal static let letroIconChat = ImageAsset(name: "images/letro-icon-chat")
|
||||
internal static let letroIconChatSolid = ImageAsset(name: "images/letro-icon-chatSolid")
|
||||
internal static let letroIconSpace = ImageAsset(name: "images/letro-icon-space")
|
||||
internal static let letroIconSpaceSolid = ImageAsset(name: "images/letro-icon-spaceSolid")
|
||||
internal static let letroLogoType = ImageAsset(name: "images/letro-logo-type")
|
||||
internal static let locationMarkerShape = ImageAsset(name: "images/location-marker-shape")
|
||||
internal static let mapBlurred = ImageAsset(name: "images/mapBlurred")
|
||||
|
||||
52
ElementX/Sources/Letro/Extensions/CompoundExtensions.swift
Normal file
52
ElementX/Sources/Letro/Extensions/CompoundExtensions.swift
Normal file
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// Copyright 2026 Element Creations Ltd.
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
import Compound
|
||||
import CompoundDesignTokens
|
||||
import SwiftUI
|
||||
|
||||
enum CompoundExtensions {
|
||||
@MainActor
|
||||
static func applyLetroOverrides() {
|
||||
Color.compound.applyLetroOverrides()
|
||||
UIColor.compound.applyLetroOverrides()
|
||||
CompoundIcon.applyLetroOverrides()
|
||||
}
|
||||
}
|
||||
|
||||
extension CompoundColors {
|
||||
@MainActor
|
||||
func applyLetroOverrides() {
|
||||
override(\.gradientSubtleStop1, with: CompoundCoreColorTokens.alphaOrange500)
|
||||
override(\.gradientSubtleStop2, with: CompoundCoreColorTokens.alphaOrange400)
|
||||
override(\.gradientSubtleStop3, with: CompoundCoreColorTokens.alphaOrange300)
|
||||
override(\.gradientSubtleStop4, with: CompoundCoreColorTokens.alphaOrange200)
|
||||
override(\.gradientSubtleStop5, with: CompoundCoreColorTokens.alphaOrange100)
|
||||
override(\.gradientSubtleStop6, with: CompoundCoreColorTokens.transparent)
|
||||
}
|
||||
}
|
||||
|
||||
extension CompoundUIColors {
|
||||
@MainActor
|
||||
func applyLetroOverrides() {
|
||||
override(\.gradientSubtleStop1, with: CompoundCoreUIColorTokens.alphaOrange500)
|
||||
override(\.gradientSubtleStop2, with: CompoundCoreUIColorTokens.alphaOrange400)
|
||||
override(\.gradientSubtleStop3, with: CompoundCoreUIColorTokens.alphaOrange300)
|
||||
override(\.gradientSubtleStop4, with: CompoundCoreUIColorTokens.alphaOrange200)
|
||||
override(\.gradientSubtleStop5, with: CompoundCoreUIColorTokens.alphaOrange100)
|
||||
override(\.gradientSubtleStop6, with: CompoundCoreUIColorTokens.transparent)
|
||||
}
|
||||
}
|
||||
|
||||
extension CompoundIcon {
|
||||
@MainActor
|
||||
static func applyLetroOverrides() {
|
||||
override(\.chat, with: Image("images/letro-icon-chat"))
|
||||
override(\.chatSolid, with: Image("images/letro-icon-chatSolid"))
|
||||
override(\.space, with: Image("images/letro-icon-space"))
|
||||
override(\.spaceSolid, with: Image("images/letro-icon-spaceSolid"))
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,9 @@ public struct CompoundIcon: View {
|
||||
/// - Parameters:
|
||||
/// - icon: The icon to show.
|
||||
public init(_ icon: KeyPath<CompoundIcons, Image>) {
|
||||
image = .compound[keyPath: icon]
|
||||
// Letro: Add a mechanism to override icons
|
||||
image = Self.resolve(icon)
|
||||
|
||||
size = .medium
|
||||
font = .compound.bodyLG
|
||||
}
|
||||
@@ -63,7 +65,9 @@ public struct CompoundIcon: View {
|
||||
/// - size: The size of the icon.
|
||||
/// - font: The font that should be used for scaling with Dynamic Type.
|
||||
public init(_ icon: KeyPath<CompoundIcons, Image>, size: Size, relativeTo font: Font) {
|
||||
image = .compound[keyPath: icon]
|
||||
// Letro: Add a mechanism to override icons
|
||||
image = Self.resolve(icon)
|
||||
|
||||
self.size = size
|
||||
self.font = font
|
||||
}
|
||||
@@ -102,6 +106,15 @@ public struct CompoundIcon: View {
|
||||
.resizable()
|
||||
.modifier(CompoundIconFrame(fontSize: size.value, textStyle: fontSize.style))
|
||||
}
|
||||
|
||||
// Letro: Add a mechanism to override icons
|
||||
private static var overrides = [AnyKeyPath: Image]()
|
||||
public static func override(_ keyPath: KeyPath<CompoundIcons, Image>, with image: Image?) {
|
||||
overrides[keyPath] = image
|
||||
}
|
||||
private static func resolve(_ keyPath: KeyPath<CompoundIcons, Image>) -> Image {
|
||||
overrides[keyPath] ?? .compound[keyPath: keyPath]
|
||||
}
|
||||
}
|
||||
|
||||
/// A simple modifier that applies a square frame of a given size that will be
|
||||
|
||||
Reference in New Issue
Block a user