Updated on 2026-08-14
This commit is contained in:
commit
53ffcc2918
677 changed files with 33091 additions and 6980 deletions
|
|
@ -82,8 +82,6 @@ sealed class MainScreenAnalyticsEvent(
|
|||
|
||||
class BuyScreenOpened : MainScreenAnalyticsEvent(event = "Buy Screen Opened")
|
||||
|
||||
class SwapScreenOpened : MainScreenAnalyticsEvent(event = "Swap Screen Opened")
|
||||
|
||||
class SellScreenOpened : MainScreenAnalyticsEvent(event = "Sell Screen Opened")
|
||||
|
||||
data class BuyTokenClicked(val currencySymbol: String) : MainScreenAnalyticsEvent(
|
||||
|
|
@ -96,21 +94,6 @@ sealed class MainScreenAnalyticsEvent(
|
|||
params = mapOf(TOKEN_PARAM to currencySymbol),
|
||||
)
|
||||
|
||||
data class SwapTokenClicked(val currencySymbol: String) : MainScreenAnalyticsEvent(
|
||||
event = "Swap Token Clicked",
|
||||
params = mapOf(TOKEN_PARAM to currencySymbol),
|
||||
)
|
||||
|
||||
data class ReceiveTokenClicked(val currencySymbol: String) : MainScreenAnalyticsEvent(
|
||||
event = "Receive Token Clicked",
|
||||
params = mapOf(TOKEN_PARAM to currencySymbol),
|
||||
)
|
||||
|
||||
data class RemoveTokenClicked(val currencySymbol: String) : MainScreenAnalyticsEvent(
|
||||
event = "Remove Button Clicked",
|
||||
params = mapOf(TOKEN_PARAM to currencySymbol),
|
||||
)
|
||||
|
||||
data class ButtonClose(val source: AnalyticsParam.ScreensSources) : MainScreenAnalyticsEvent(
|
||||
event = "Button - Close",
|
||||
params = mapOf(AnalyticsParam.SOURCE to source.value),
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
package com.tangem.core.analytics.models.event
|
||||
|
||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SEARCHED
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TYPE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.ScreensSources
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
|
|
@ -15,19 +11,6 @@ sealed class SwapAnalyticsEvent(
|
|||
params: Map<String, String> = emptyMap(),
|
||||
) : AnalyticsEvent("Swap", event, params) {
|
||||
|
||||
data class TokenSelected(
|
||||
val token: String,
|
||||
val source: ScreensSources,
|
||||
val isSearched: Boolean,
|
||||
) : SwapAnalyticsEvent(
|
||||
event = "Token Selected",
|
||||
params = mapOf(
|
||||
TOKEN_PARAM to token,
|
||||
SOURCE to source.value,
|
||||
SEARCHED to if (isSearched) "True" else "False",
|
||||
),
|
||||
)
|
||||
|
||||
class FilterProvider(filterType: String) : SwapAnalyticsEvent(
|
||||
event = "Filter Provider",
|
||||
params = mapOf(TYPE to filterType),
|
||||
|
|
|
|||
70
core/config-toggles/CLAUDE.md
Normal file
70
core/config-toggles/CLAUDE.md
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# core/config-toggles
|
||||
|
||||
Feature toggles (and the related excluded-blockchains toggles). Toggles gate
|
||||
features by app version; the JSON config is the source of truth and the
|
||||
`FeatureToggles` enum is generated from it at build time.
|
||||
|
||||
## How it works
|
||||
|
||||
- **Config:** `src/main/assets/configs/feature_toggles_config.json` — a JSON array
|
||||
of `{ "name": <STRING>, "version": <STRING> }` (`ConfigToggle`).
|
||||
- The **convention plugin** generates the `FeatureToggles` enum (one entry per
|
||||
`name`) at build time. Reference it as `FeatureToggles.<NAME>`.
|
||||
- **Entry point:** `FeatureTogglesManager.isFeatureEnabled(FeatureToggles.X)`.
|
||||
- `ProdFeatureTogglesManager` (release): a toggle is enabled when the app
|
||||
version `>=` its `version`.
|
||||
- `DevFeatureTogglesManager` (tester builds, `BuildConfig.TESTER_MENU_ENABLED`):
|
||||
runtime-toggleable via the Tester Menu.
|
||||
- **`version` semantics:**
|
||||
- `"undefined"` (`DISABLED_FEATURE_TOGGLE_VERSION`) → OFF in prod; can only be
|
||||
flipped ON via the Tester Menu / dev builds. Use this while a feature is in
|
||||
development.
|
||||
- `"X.Y"` (e.g. `5.40`) → ON in prod from that app version onward
|
||||
(`currentVersion >= localVersion`, see `VersionAvailabilityContract`).
|
||||
|
||||
## Naming convention (ENFORCED by a test)
|
||||
|
||||
- A toggle `name` MUST match `^(AND|TWI)_\d+(?:_[A-Z0-9]+)+$` — start with the
|
||||
Jira ticket id (`AND_<id>` for Android tickets, `TWI_<id>` for idea tickets),
|
||||
then an `UPPER_SNAKE_CASE` suffix. Example: `AND_15901_STORIES_CONTAINER_ENABLED`.
|
||||
- Enforced by `FeatureTogglesNamingConventionTest`. Legacy toggles that predate
|
||||
the rule are whitelisted in its `EXCLUDED_TOGGLES_LIST` — do **not** add new
|
||||
names there without an explicit reason.
|
||||
- The Kotlin interface property stays human-readable **without** the ticket id:
|
||||
`isStoriesContainerEnabled`.
|
||||
|
||||
## Per-feature toggles & how to add one
|
||||
|
||||
Each feature owns its toggles — feature code reads them through its own
|
||||
interface, never `FeatureTogglesManager` directly:
|
||||
|
||||
- `api/`: `XxxFeatureToggles` interface — `val isYyyEnabled: Boolean`.
|
||||
- `impl/`: `DefaultXxxFeatureToggles(featureTogglesManager)` exposes each toggle as
|
||||
a **getter-backed property**, not a stored value — so it is re-evaluated on every
|
||||
read (required for runtime toggling via the Tester Menu):
|
||||
|
||||
```kotlin
|
||||
override val isYyyEnabled: Boolean
|
||||
get() = featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_<id>_YYY)
|
||||
```
|
||||
|
||||
Never `val isYyyEnabled = featureTogglesManager.isFeatureEnabled(...)` (evaluated
|
||||
once at construction).
|
||||
- DI: a `@Provides @Singleton` in the feature's Hilt module returning the interface.
|
||||
|
||||
To add a toggle:
|
||||
|
||||
1. Add `{ "name": "AND_<id>_FOO_ENABLED", "version": "undefined" }` to the config
|
||||
JSON (the enum is regenerated at build).
|
||||
2. Add `val isFooEnabled` to the feature's `XxxFeatureToggles` and map it in
|
||||
`DefaultXxxFeatureToggles` (create the interface/impl/DI provider if the
|
||||
feature has none yet).
|
||||
3. Gate code on `xxxFeatureToggles.isFooEnabled`.
|
||||
|
||||
## Removing (cleanup)
|
||||
|
||||
When a toggle ships at 100%, set its `version` to the release and run the
|
||||
`cleanup-feature-toggles` skill — it removes the JSON entry, the interface/impl
|
||||
members, inlines `true`, and drops dead branches. Mark code that must be deleted
|
||||
together with a toggle using `@RemoveWithToggle("AND_<id>_FOO_ENABLED")`
|
||||
(`com.tangem.utils.annotations.RemoveWithToggle`); the cleanup skill picks it up.
|
||||
|
|
@ -1,4 +1,8 @@
|
|||
[
|
||||
{
|
||||
"name": "AND_15901_STORIES_CONTAINER_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "NEW_CARD_SCANNING_ENABLED",
|
||||
"version": "undefined"
|
||||
|
|
@ -12,7 +16,7 @@
|
|||
"version": "5.39"
|
||||
},
|
||||
{
|
||||
"name": "USEDESK_ENABLED",
|
||||
"name": "TWI_485_USEDESK_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
|
|
@ -147,6 +151,10 @@
|
|||
"name": "TWI_83_ADDRESS_BOOK_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "AND_15632_GASLESS_YIELD_WITHDRAW_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "AND_15489_EXPRESS_SHARE_BUTTON_ENABLED",
|
||||
"version": "6.0"
|
||||
|
|
@ -166,5 +174,9 @@
|
|||
{
|
||||
"name": "AND_14829_WARNINGS_REFACTORING_ENABLED",
|
||||
"version": "undefined"
|
||||
},
|
||||
{
|
||||
"name": "TWI_1469_FOR_YOU_ENABLED",
|
||||
"version": "undefined"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ internal class FeatureTogglesNamingConventionTest {
|
|||
"SOLANA_TX_HISTORY_ENABLED",
|
||||
"STAKING_ETH_ENABLED",
|
||||
"SWAP_AB_ENABLED",
|
||||
"USEDESK_ENABLED",
|
||||
"VIRTUAL_ACCOUNTS_ENABLED",
|
||||
"VISA_ONBOARDING_ENABLED",
|
||||
"WALLET_CONNECT_BITCOIN_ENABLED",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 1,
|
||||
"identityHash": "442ac578743a8b624777711cf49c77e2",
|
||||
"identityHash": "55f2651d215126dd0465b9c711165cba",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "express_provider",
|
||||
|
|
@ -474,11 +474,88 @@
|
|||
"address"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "onramp_country",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`code` TEXT NOT NULL, `name` TEXT NOT NULL, `image` TEXT NOT NULL, `alpha3` TEXT NOT NULL, `continent` TEXT NOT NULL, `onramp_available` INTEGER NOT NULL, `currency_name` TEXT NOT NULL, `currency_code` TEXT NOT NULL, `currency_image` TEXT, `currency_precision` INTEGER NOT NULL, `currency_unit` TEXT NOT NULL, PRIMARY KEY(`code`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "code",
|
||||
"columnName": "code",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "image",
|
||||
"columnName": "image",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "alpha3",
|
||||
"columnName": "alpha3",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "continent",
|
||||
"columnName": "continent",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "onrampAvailable",
|
||||
"columnName": "onramp_available",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "defaultCurrency.name",
|
||||
"columnName": "currency_name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "defaultCurrency.code",
|
||||
"columnName": "currency_code",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "defaultCurrency.image",
|
||||
"columnName": "currency_image",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "defaultCurrency.precision",
|
||||
"columnName": "currency_precision",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "defaultCurrency.unit",
|
||||
"columnName": "currency_unit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '442ac578743a8b624777711cf49c77e2')"
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '55f2651d215126dd0465b9c711165cba')"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.tangem.datasource.api.addressbook
|
||||
|
||||
import com.tangem.datasource.api.addressbook.models.SyncAddressBooksRequest
|
||||
import com.tangem.datasource.api.addressbook.models.SyncAddressBooksResponse
|
||||
import com.tangem.datasource.api.addressbook.models.UpdateAddressBookRequest
|
||||
import com.tangem.datasource.api.addressbook.models.UpdateAddressBookResponse
|
||||
import com.tangem.datasource.api.common.response.ApiResponse
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.Header
|
||||
import retrofit2.http.PUT
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Path
|
||||
|
||||
interface AddressBookApi {
|
||||
|
||||
@POST("v1/address-books/sync")
|
||||
suspend fun syncAddressBooks(@Body body: SyncAddressBooksRequest): ApiResponse<SyncAddressBooksResponse>
|
||||
|
||||
@PUT("v1/address-books/{walletId}")
|
||||
suspend fun updateAddressBook(
|
||||
@Path("walletId") walletId: String,
|
||||
@Header("If-Match") eTag: String?,
|
||||
@Body body: UpdateAddressBookRequest,
|
||||
): ApiResponse<UpdateAddressBookResponse>
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.tangem.datasource.api.addressbook.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/**
|
||||
* Request body for `POST /address-books/sync`.
|
||||
*
|
||||
* Each [Wallet.etag] is optional: when it matches the backend's etag, that wallet is omitted from the
|
||||
* response and the local copy is kept.
|
||||
*/
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SyncAddressBooksRequest(
|
||||
@Json(name = "wallets") val wallets: List<Wallet>,
|
||||
) {
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class Wallet(
|
||||
@Json(name = "walletId") val walletId: String,
|
||||
@Json(name = "etag") val etag: String? = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.tangem.datasource.api.addressbook.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/**
|
||||
* Response body for `POST /address-books/sync`.
|
||||
*
|
||||
* [items] contains only the wallets whose backend etag differs from the one sent in the request; wallets
|
||||
* with a matching etag are omitted and their local copy must be kept.
|
||||
*/
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class SyncAddressBooksResponse(
|
||||
@Json(name = "items") val items: List<Item>,
|
||||
) {
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class Item(
|
||||
@Json(name = "walletId") val walletId: String,
|
||||
@Json(name = "etag") val etag: String,
|
||||
@Json(name = "version") val version: String,
|
||||
@Json(name = "updatedAt") val updatedAt: String,
|
||||
@Json(name = "nonce") val nonce: String,
|
||||
@Json(name = "ciphertext") val ciphertext: String,
|
||||
@Json(name = "authTag") val authTag: String,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.tangem.datasource.api.addressbook.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/** Request body for `PUT /address-books/{walletId}`. */
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class UpdateAddressBookRequest(
|
||||
@Json(name = "version") val version: String,
|
||||
@Json(name = "nonce") val nonce: String,
|
||||
@Json(name = "ciphertext") val ciphertext: String,
|
||||
@Json(name = "authTag") val authTag: String,
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.tangem.datasource.api.addressbook.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/** Response body for `PUT /address-books/{walletId}`. */
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class UpdateAddressBookResponse(
|
||||
@Json(name = "walletId") val walletId: String,
|
||||
@Json(name = "etag") val etag: String,
|
||||
@Json(name = "updatedAt") val updatedAt: String,
|
||||
)
|
||||
|
|
@ -4,6 +4,7 @@ import com.tangem.datasource.api.auth.models.request.AuthApiRequest
|
|||
import com.tangem.datasource.api.auth.models.request.NonceApiRequest
|
||||
import com.tangem.datasource.api.auth.models.request.RefreshApiRequest
|
||||
import com.tangem.datasource.api.auth.models.request.RegisterApiRequest
|
||||
import com.tangem.datasource.api.auth.models.request.WalletRegistrationRequest
|
||||
import com.tangem.datasource.api.auth.models.response.NonceApiResponse
|
||||
import com.tangem.datasource.api.auth.models.response.TokenApiResponse
|
||||
import com.tangem.datasource.api.common.response.ApiResponse
|
||||
|
|
@ -30,8 +31,7 @@ interface AuthApi {
|
|||
* session token pair. Called once per app install.
|
||||
*/
|
||||
@POST("api/v1/auth/register")
|
||||
@RequiresDpopProof
|
||||
suspend fun register(@Body request: RegisterApiRequest): ApiResponse<TokenApiResponse>
|
||||
suspend fun registerDevice(@Body request: RegisterApiRequest): ApiResponse<TokenApiResponse>
|
||||
|
||||
/**
|
||||
* Request authentication nonce.
|
||||
|
|
@ -61,4 +61,23 @@ interface AuthApi {
|
|||
@POST("api/v1/auth/refresh")
|
||||
@RequiresDpopProof
|
||||
suspend fun refresh(@Body request: RefreshApiRequest): ApiResponse<TokenApiResponse>
|
||||
|
||||
/**
|
||||
* Request wallet registration nonce.
|
||||
*
|
||||
* Generates a nonce bound to the device public key for the wallet registration flow.
|
||||
*/
|
||||
@POST("api/v1/auth/nonce/wallet")
|
||||
suspend fun requestWalletNonce(@Body request: NonceApiRequest): ApiResponse<NonceApiResponse>
|
||||
|
||||
/**
|
||||
* Register a wallet.
|
||||
*
|
||||
* Binds a new wallet to an already-registered device. When a card signature is provided the
|
||||
* wallet is bound as COLD (card-backed); otherwise it is registered as a MOBILE (hot) wallet.
|
||||
* Returns refreshed session tokens reflecting the updated wallet list.
|
||||
*/
|
||||
@POST("api/v1/auth/wallet")
|
||||
@RequiresDpopProof
|
||||
suspend fun registerWallet(@Body request: WalletRegistrationRequest): ApiResponse<TokenApiResponse>
|
||||
}
|
||||
|
|
@ -10,17 +10,17 @@ import com.squareup.moshi.JsonClass
|
|||
@JsonClass(generateAdapter = true)
|
||||
data class DeviceMetadata(
|
||||
/** Device hardware model (e.g. `iPhone 15 Pro`). */
|
||||
@Json(name = "deviceModel") val deviceModel: String?,
|
||||
@Json(name = "deviceModel") val deviceModel: String,
|
||||
/** Operating system (`android` / `ios`). */
|
||||
@Json(name = "os") val os: String,
|
||||
/** OS version string (e.g. `17.4.1`). */
|
||||
@Json(name = "osVersion") val osVersion: String?,
|
||||
@Json(name = "osVersion") val osVersion: String,
|
||||
/** Application version (e.g. `5.8.0`). */
|
||||
@Json(name = "appVersion") val appVersion: String?,
|
||||
@Json(name = "appVersion") val appVersion: String,
|
||||
/** User-Agent header (e.g. `Tangem/5.8.0 (iPhone; iOS 17.4.1; Scale/3.00)`). */
|
||||
@Json(name = "userAgent") val userAgent: String?,
|
||||
@Json(name = "userAgent") val userAgent: String,
|
||||
/** Client locale (e.g. `en-US`). */
|
||||
@Json(name = "locale") val locale: String?,
|
||||
@Json(name = "locale") val locale: String,
|
||||
/** Client timezone (e.g. `Europe/Moscow`). */
|
||||
@Json(name = "timezone") val timezone: String?,
|
||||
@Json(name = "timezone") val timezone: String,
|
||||
)
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.tangem.datasource.api.auth.models.request
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/**
|
||||
* Wallet registration request — binds a new wallet to an already-registered device.
|
||||
*
|
||||
* When [cardSignature] (and the accompanying [cardSignatureSalt] / [walletStatus]) is provided the
|
||||
* wallet is bound as COLD (card-backed); otherwise it is registered as a MOBILE (hot) wallet.
|
||||
* Mirrors the `WalletRegistrationRequest` schema in the backend OpenAPI contract.
|
||||
*/
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class WalletRegistrationRequest(
|
||||
/** Deciphered nonce value from `/api/v1/auth/nonce/wallet`. */
|
||||
@Json(name = "nonce") val nonce: String,
|
||||
/**
|
||||
* Wallet identifier — Base64-encoded
|
||||
* `HMAC-SHA256(key = SHA-256(walletPublicKey), data = "UserWalletID")`.
|
||||
*/
|
||||
@Json(name = "walletId") val walletId: String,
|
||||
/**
|
||||
* Base64-encoded secp256k1 RSV signature (65 bytes) over `sha256(nonce || walletSignatureSalt)`.
|
||||
* The server recovers `walletPublicKey` from this signature.
|
||||
*/
|
||||
@Json(name = "walletSignature") val walletSignature: String,
|
||||
/** Base64-encoded salt used in the wallet signature hash. */
|
||||
@Json(name = "walletSignatureSalt") val walletSignatureSalt: String,
|
||||
/**
|
||||
* Base64-encoded secp256k1 RSV signature (65 bytes) over
|
||||
* `sha256(walletPublicKey || nonce || cardSignatureSalt || walletStatus)`. Required for
|
||||
* cold-wallet registration; `null` for mobile (hot) wallets.
|
||||
*/
|
||||
@Json(name = "cardSignature") val cardSignature: String?,
|
||||
/** Base64-encoded salt used in the card signature hash. Required for cold-wallet registration. */
|
||||
@Json(name = "cardSignatureSalt") val cardSignatureSalt: String?,
|
||||
/**
|
||||
* Base64-encoded single byte describing wallet provenance on the card
|
||||
* (`0x82` = generated on card, `0xC2` = SEED imported). Required for cold-wallet registration.
|
||||
*/
|
||||
@Json(name = "walletStatus") val walletStatus: String?,
|
||||
/** Platform attestation token (Play Integrity / App Attest). */
|
||||
@Json(name = "attestationToken") val attestationToken: String?,
|
||||
/** Client-reported device metadata. */
|
||||
@Json(name = "metadata") val metadata: DeviceMetadata,
|
||||
)
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.tangem.datasource.api.gasless
|
||||
|
||||
import com.tangem.datasource.api.common.response.ApiResponse
|
||||
import com.tangem.datasource.api.gasless.models.GaslessBatchTransactionRequest
|
||||
import com.tangem.datasource.api.gasless.models.GaslessServiceResponse
|
||||
import com.tangem.datasource.api.gasless.models.GaslessSignedTransactionResultDTO
|
||||
import com.tangem.datasource.api.gasless.models.GaslessTransactionRequest
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.POST
|
||||
|
||||
interface GaslessTxServiceApiV2 {
|
||||
@POST("api/v2/transaction/sign")
|
||||
suspend fun signGaslessTransaction(
|
||||
@Body transaction: GaslessTransactionRequest,
|
||||
): ApiResponse<GaslessServiceResponse<GaslessSignedTransactionResultDTO>>
|
||||
|
||||
@POST("api/v2/transaction/batch-sign")
|
||||
suspend fun signGaslessBatchTransaction(
|
||||
@Body transaction: GaslessBatchTransactionRequest,
|
||||
): ApiResponse<GaslessServiceResponse<GaslessSignedTransactionResultDTO>>
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.tangem.datasource.api.gasless.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
/**
|
||||
* Request body for gasless batch transaction submission (v2 `POST /api/v2/transaction/batch-sign`).
|
||||
* Represents a batch of transactions with fee delegation metadata.
|
||||
*
|
||||
* The top-level payload field is `gaslessTransaction` (shared shape with single sign — see
|
||||
* gasless-service `BatchSignRequestDto`), carrying `transactions[]`, `fee`, `nonce`.
|
||||
*/
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class GaslessBatchTransactionRequest(
|
||||
@Json(name = "gaslessTransaction")
|
||||
val gaslessTransaction: GaslessBatchTransactionDataDTO,
|
||||
|
||||
@Json(name = "signature")
|
||||
val signature: String,
|
||||
|
||||
@Json(name = "userAddress")
|
||||
val userAddress: String,
|
||||
|
||||
@Json(name = "chainId")
|
||||
val chainId: Int,
|
||||
|
||||
@Json(name = "eip7702auth")
|
||||
val eip7702Auth: Eip7702AuthorizationDTO? = null,
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class GaslessBatchTransactionDataDTO(
|
||||
@Json(name = "transactions")
|
||||
val transactions: List<TransactionData>,
|
||||
|
||||
@Json(name = "fee")
|
||||
val fee: FeeData,
|
||||
|
||||
@Json(name = "nonce")
|
||||
val nonce: String,
|
||||
)
|
||||
|
|
@ -45,6 +45,9 @@ data class TransactionData(
|
|||
@Json(name = "value")
|
||||
val value: String,
|
||||
|
||||
@Json(name = "gasLimit")
|
||||
val gasLimit: String? = null,
|
||||
|
||||
@Json(name = "data")
|
||||
val data: String,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -52,16 +52,16 @@ interface TangemTechApi {
|
|||
@Body userTokens: UserTokensResponse,
|
||||
): ApiResponse<Unit>
|
||||
|
||||
@GET("/v1/wallets/{wallet_id}/notification-preferences")
|
||||
@GET("/api/v1/notification-preferences/{wallet_id}")
|
||||
suspend fun getPushNotificationPreferences(
|
||||
@Path("wallet_id") walletId: String,
|
||||
): ApiResponse<PushNotificationPreferencesResponse>
|
||||
|
||||
@PUT("/v1/wallets/{wallet_id}/notification-preferences")
|
||||
@PUT("/api/v1/notification-preferences/{wallet_id}")
|
||||
suspend fun updatePushNotificationPreferences(
|
||||
@Path("wallet_id") walletId: String,
|
||||
@Body body: PushNotificationPreferencesBody,
|
||||
): ApiResponse<Unit>
|
||||
): ApiResponse<PushNotificationPreferencesResponse>
|
||||
|
||||
// region Referral
|
||||
/** Returns referral status by [walletId] */
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
package com.tangem.datasource.api.tangemTech.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class PushNotificationPreferenceState(
|
||||
@Json(name = "isEnabled") val isEnabled: Boolean,
|
||||
@Json(name = "isVisible") val isVisible: Boolean,
|
||||
)
|
||||
|
|
@ -5,10 +5,10 @@ import com.squareup.moshi.JsonClass
|
|||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class PushNotificationPreferencesBody(
|
||||
@Json(name = "transactionAlerts")
|
||||
val areTransactionAlertsEnabled: Boolean,
|
||||
@Json(name = "offersUpdates")
|
||||
val areOffersUpdatesEnabled: Boolean,
|
||||
@Json(name = "priceAlerts")
|
||||
@Json(name = "transactionEventsEnabled")
|
||||
val areTransactionEventsEnabled: Boolean,
|
||||
@Json(name = "offerUpdatesEnabled")
|
||||
val areOfferUpdatesEnabled: Boolean,
|
||||
@Json(name = "priceAlertsEnabled")
|
||||
val arePriceAlertsEnabled: Boolean,
|
||||
)
|
||||
|
|
@ -5,7 +5,7 @@ import com.squareup.moshi.JsonClass
|
|||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class PushNotificationPreferencesResponse(
|
||||
@Json(name = "transactionAlerts") val transactionAlerts: PushNotificationPreferenceState,
|
||||
@Json(name = "offersUpdates") val offersUpdates: PushNotificationPreferenceState,
|
||||
@Json(name = "priceAlerts") val priceAlerts: PushNotificationPreferenceState,
|
||||
@Json(name = "transactionEventsEnabled") val areTransactionEventsEnabled: Boolean,
|
||||
@Json(name = "offerUpdatesEnabled") val areOfferUpdatesEnabled: Boolean,
|
||||
@Json(name = "priceAlertsEnabled") val arePriceAlertsEnabled: Boolean,
|
||||
)
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.tangem.datasource.di
|
||||
|
||||
import com.tangem.datasource.BuildConfig
|
||||
import com.tangem.datasource.api.addressbook.AddressBookApi
|
||||
import com.tangem.datasource.api.auth.AuthApi
|
||||
import com.tangem.datasource.api.common.blockaid.BlockAidApi
|
||||
import com.tangem.datasource.api.surveysparrow.SurveySparrowApi
|
||||
|
|
@ -18,6 +19,7 @@ import com.tangem.datasource.api.news.NewsApi
|
|||
import com.tangem.datasource.api.onramp.OnrampApi
|
||||
import com.tangem.datasource.api.ethpool.P2PEthPoolApi
|
||||
import com.tangem.datasource.api.gasless.GaslessTxServiceApi
|
||||
import com.tangem.datasource.api.gasless.GaslessTxServiceApiV2
|
||||
import com.tangem.datasource.api.pay.TangemPayApi
|
||||
import com.tangem.datasource.api.pay.TangemPayAuthApi
|
||||
import com.tangem.datasource.api.stakekit.StakeKitApi
|
||||
|
|
@ -117,6 +119,16 @@ internal object NetworkModule {
|
|||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAddressBookApi(retrofitApiBuilder: RetrofitApiBuilder): AddressBookApi {
|
||||
return retrofitApiBuilder.build(
|
||||
apiConfigId = ApiConfig.ID.TangemTech,
|
||||
applyTimeoutAnnotations = false,
|
||||
sessionAuth = false,
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideYieldSupplyApi(retrofitApiBuilder: RetrofitApiBuilder): YieldSupplyApi {
|
||||
|
|
@ -252,4 +264,20 @@ internal object NetworkModule {
|
|||
),
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGaslessTxServiceApiV2(retrofitApiBuilder: RetrofitApiBuilder): GaslessTxServiceApiV2 {
|
||||
return retrofitApiBuilder.build(
|
||||
apiConfigId = ApiConfig.ID.GaslessTxService,
|
||||
applyTimeoutAnnotations = false,
|
||||
sessionAuth = false,
|
||||
timeouts = Timeouts(
|
||||
callTimeoutSeconds = TIMEOUT_60_SECONDS,
|
||||
connectTimeoutSeconds = TIMEOUT_60_SECONDS,
|
||||
readTimeoutSeconds = TIMEOUT_60_SECONDS,
|
||||
writeTimeoutSeconds = TIMEOUT_60_SECONDS,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.tangem.datasource.local.converter
|
||||
|
||||
import com.tangem.datasource.api.onramp.models.response.model.OnrampCountryDTO
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.OnrampCountryEntity
|
||||
|
||||
/** Maps an [OnrampCountryDTO] API response into its persisted [OnrampCountryEntity]. */
|
||||
fun OnrampCountryDTO.toEntity(): OnrampCountryEntity {
|
||||
return OnrampCountryEntity(
|
||||
code = code,
|
||||
name = name,
|
||||
image = image,
|
||||
alpha3 = alpha3,
|
||||
continent = continent,
|
||||
isOnrampAvailable = onrampAvailable,
|
||||
defaultCurrency = OnrampCountryEntity.CurrencyEmbedded(
|
||||
name = defaultCurrency.name,
|
||||
code = defaultCurrency.code,
|
||||
image = defaultCurrency.image,
|
||||
precision = defaultCurrency.precision,
|
||||
unit = defaultCurrency.unit ?: defaultCurrency.code,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
@ -41,6 +41,8 @@ object PreferencesKeys {
|
|||
|
||||
val USED_CARDS_INFO_KEY by lazy { stringPreferencesKey(name = "usedCardsInfo_v2") }
|
||||
|
||||
val USEDESK_CLIENT_ID_KEY by lazy { stringPreferencesKey(name = "usedeskClientId") }
|
||||
|
||||
val APP_THEME_MODE_KEY by lazy { stringPreferencesKey(name = "appThemeMode") }
|
||||
|
||||
val SELECTED_APP_CURRENCY_KEY by lazy { stringPreferencesKey(name = "selectedAppCurrency") }
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.tangem.datasource.local.txhistory.db.entity.express.ExpressSyncStateE
|
|||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressExchangeEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressOnrampEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressProviderEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.OnrampCountryEntity
|
||||
|
||||
@Database(
|
||||
version = 1,
|
||||
|
|
@ -16,6 +17,7 @@ import com.tangem.datasource.local.txhistory.db.entity.express.ExpressProviderEn
|
|||
ExpressExchangeEntity::class,
|
||||
ExpressOnrampEntity::class,
|
||||
ExpressSyncStateEntity::class,
|
||||
OnrampCountryEntity::class,
|
||||
],
|
||||
)
|
||||
abstract class TxHistoryDatabase : RoomDatabase() {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import androidx.room.Query
|
|||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressExchangeEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressOnrampEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.ExpressProviderEntity
|
||||
import com.tangem.datasource.local.txhistory.db.entity.express.OnrampCountryEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
@ -22,12 +23,19 @@ interface ExpressHistoryDao {
|
|||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun upsertOnramps(items: List<ExpressOnrampEntity>)
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun upsertCountries(items: List<OnrampCountryEntity>)
|
||||
|
||||
/**
|
||||
* All persisted providers keyed by [ExpressProviderEntity.id]
|
||||
*/
|
||||
@Query("SELECT * FROM express_provider")
|
||||
fun getProvidersById(): Flow<Map<@MapColumn(columnName = "id") String, ExpressProviderEntity>>
|
||||
|
||||
/** All persisted onramp countries keyed by [OnrampCountryEntity.code]. */
|
||||
@Query("SELECT * FROM onramp_country")
|
||||
fun getCountriesByCode(): Flow<Map<@MapColumn(columnName = "code") String, OnrampCountryEntity>>
|
||||
|
||||
/**
|
||||
* Outgoing swaps: the viewed currency is the swap's `from` side, so the row is stored under this
|
||||
* address ([ExpressExchangeEntity.ownerAddress] == fromAddress). Join to on-chain by `payin_hash`.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
package com.tangem.datasource.local.txhistory.db.entity.express
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Embedded
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
|
||||
/** Persisted onramp country, matched to a transaction by [code] == [ExpressOnrampEntity.countryCode]. */
|
||||
@Entity(tableName = "onramp_country")
|
||||
data class OnrampCountryEntity(
|
||||
|
||||
@PrimaryKey
|
||||
@ColumnInfo(name = "code")
|
||||
val code: String,
|
||||
|
||||
@ColumnInfo(name = "name")
|
||||
val name: String,
|
||||
|
||||
@ColumnInfo(name = "image")
|
||||
val image: String,
|
||||
|
||||
@ColumnInfo(name = "alpha3")
|
||||
val alpha3: String,
|
||||
|
||||
@ColumnInfo(name = "continent")
|
||||
val continent: String,
|
||||
|
||||
@ColumnInfo(name = "onramp_available")
|
||||
val isOnrampAvailable: Boolean,
|
||||
|
||||
@Embedded(prefix = "currency_")
|
||||
val defaultCurrency: CurrencyEmbedded,
|
||||
) {
|
||||
|
||||
data class CurrencyEmbedded(
|
||||
|
||||
@ColumnInfo(name = "name")
|
||||
val name: String,
|
||||
|
||||
@ColumnInfo(name = "code")
|
||||
val code: String,
|
||||
|
||||
@ColumnInfo(name = "image")
|
||||
val image: String?,
|
||||
|
||||
@ColumnInfo(name = "precision")
|
||||
val precision: Int,
|
||||
|
||||
@ColumnInfo(name = "unit")
|
||||
val unit: String,
|
||||
)
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 76d6a50dc3161cfc6cc7055afc8ce4ba619ac5c6
|
||||
Subproject commit 42aac70c1d2d0d636470fa476703cab353010bba
|
||||
|
|
@ -32,7 +32,7 @@ import com.tangem.core.ui.res.TangemThemePreview
|
|||
import com.tangem.core.ui.res.TangemThemePreviewRedesign
|
||||
|
||||
enum class AccountIconSize {
|
||||
Default, Large, Medium, Small, ExtraSmall, RedesignedDefault, RedesignExtraSmall
|
||||
Default, Large, Medium, Small, ExtraSmall, RedesignedDefault, RedesignExtraSmall, RedesignLarge, Contact
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -132,6 +132,8 @@ fun AccountCharIcon(char: Char, color: Color, size: AccountIconSize, modifier: M
|
|||
AccountIconSize.ExtraSmall -> TangemTheme.typography.caption1
|
||||
AccountIconSize.RedesignedDefault -> TangemTheme.typography2.headingSemibold28
|
||||
AccountIconSize.RedesignExtraSmall -> TangemTheme.typography2.captionMedium11
|
||||
AccountIconSize.RedesignLarge -> TangemTheme.typography3.heading.medium
|
||||
AccountIconSize.Contact -> TangemTheme.typography3.body.medium
|
||||
}
|
||||
|
||||
val textSize by animateFloatAsState(
|
||||
|
|
@ -166,6 +168,8 @@ private fun AccountIconSize.iconSizeInDp(): Dp = when (this) {
|
|||
AccountIconSize.ExtraSmall -> 8.dp
|
||||
AccountIconSize.RedesignedDefault -> 20.dp
|
||||
AccountIconSize.RedesignExtraSmall -> 8.dp
|
||||
AccountIconSize.RedesignLarge -> 32.dp
|
||||
AccountIconSize.Contact -> 20.dp
|
||||
}
|
||||
|
||||
fun AccountIconSize.toBoxSize(): Dp = when (this) {
|
||||
|
|
@ -176,6 +180,8 @@ fun AccountIconSize.toBoxSize(): Dp = when (this) {
|
|||
AccountIconSize.ExtraSmall -> 14.dp
|
||||
AccountIconSize.RedesignedDefault -> 40.dp
|
||||
AccountIconSize.RedesignExtraSmall -> 16.dp
|
||||
AccountIconSize.RedesignLarge -> 80.dp
|
||||
AccountIconSize.Contact -> 40.dp
|
||||
}
|
||||
|
||||
private fun AccountIconSize.boxShapeSizeInDp(): Dp = when (this) {
|
||||
|
|
@ -186,6 +192,8 @@ private fun AccountIconSize.boxShapeSizeInDp(): Dp = when (this) {
|
|||
AccountIconSize.ExtraSmall -> 4.dp
|
||||
AccountIconSize.RedesignedDefault -> 12.dp
|
||||
AccountIconSize.RedesignExtraSmall -> 6.dp
|
||||
AccountIconSize.RedesignLarge -> 80.dp
|
||||
AccountIconSize.Contact -> 100.dp
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
|
|
@ -228,7 +236,9 @@ private fun Sample() {
|
|||
AccountIconSize.Small -> AccountIconSize.ExtraSmall
|
||||
AccountIconSize.ExtraSmall -> AccountIconSize.RedesignedDefault
|
||||
AccountIconSize.RedesignedDefault -> AccountIconSize.RedesignExtraSmall
|
||||
AccountIconSize.RedesignExtraSmall -> AccountIconSize.Default
|
||||
AccountIconSize.RedesignExtraSmall -> AccountIconSize.RedesignLarge
|
||||
AccountIconSize.RedesignLarge -> AccountIconSize.Contact
|
||||
AccountIconSize.Contact -> AccountIconSize.Default
|
||||
}
|
||||
}) { Text("Change") }
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,10 @@ inline fun <reified T : StoryConfig> StoriesContainer(
|
|||
) {
|
||||
var watchedCounter by remember { mutableIntStateOf(1) }
|
||||
var isPressed by remember { mutableStateOf(value = false) }
|
||||
val storyState by remember(config) {
|
||||
// Key on content (stories + repeatability), not the whole config object: an unrelated change
|
||||
// to the config instance (e.g. a caller folding a changing flag into it) must not recreate the
|
||||
// state machine and rewind stories to the first page.
|
||||
val storyState by remember(config.stories, config.isRestartable) {
|
||||
mutableStateOf(
|
||||
StoriesStepStateMachine(
|
||||
stories = config.stories,
|
||||
|
|
@ -59,7 +62,9 @@ inline fun <reified T : StoryConfig> StoriesContainer(
|
|||
),
|
||||
)
|
||||
}
|
||||
BackHandler(onBack = { config.onClose(watchedCounter) })
|
||||
if (config.isCloseButtonVisible) {
|
||||
BackHandler(onBack = { config.onClose(watchedCounter) })
|
||||
}
|
||||
|
||||
val isPaused = isPressed || isPauseStories
|
||||
|
||||
|
|
@ -90,22 +95,24 @@ inline fun <reified T : StoryConfig> StoriesContainer(
|
|||
paused = isPaused,
|
||||
onStepFinish = onNextClick,
|
||||
)
|
||||
Icon(
|
||||
painter = rememberVectorPainter(
|
||||
image = ImageVector.vectorResource(R.drawable.ic_close_24),
|
||||
),
|
||||
tint = TangemTheme.colors.icon.constant,
|
||||
contentDescription = null,
|
||||
modifier = Modifier
|
||||
.align(Alignment.End)
|
||||
.padding(top = 14.dp, end = 16.dp)
|
||||
.clickable(
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
indication = LocalIndication.current,
|
||||
onClick = { config.onClose(watchedCounter) },
|
||||
)
|
||||
.testTag(SwapStoriesScreenTestTags.CLOSE_BUTTON),
|
||||
)
|
||||
if (config.isCloseButtonVisible) {
|
||||
Icon(
|
||||
painter = rememberVectorPainter(
|
||||
image = ImageVector.vectorResource(R.drawable.ic_close_24),
|
||||
),
|
||||
tint = TangemTheme.colors.icon.constant,
|
||||
contentDescription = null,
|
||||
modifier = Modifier
|
||||
.align(Alignment.End)
|
||||
.padding(top = 14.dp, end = 16.dp)
|
||||
.clickable(
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
indication = LocalIndication.current,
|
||||
onClick = { config.onClose(watchedCounter) },
|
||||
)
|
||||
.testTag(SwapStoriesScreenTestTags.CLOSE_BUTTON),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,18 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
/**
|
||||
* Config for stories component
|
||||
*
|
||||
* @property stories configuration list
|
||||
* @property stories configuration list
|
||||
* @property isRestartable indicates than stories progressions starts
|
||||
* @property isCloseButtonVisible whether the top-right close button (and back handler) is shown.
|
||||
* Set `false` for non-closable stories (e.g. a root intro screen); [onClose] is then irrelevant.
|
||||
* @property onClose invoked with the number of watched stories when the user closes them.
|
||||
* Only meaningful when [isCloseButtonVisible] is `true`; defaults to a no-op for non-closable stories.
|
||||
*/
|
||||
interface StoriesContentConfig<T : StoryConfig> {
|
||||
val stories: ImmutableList<T>
|
||||
val isRestartable: Boolean
|
||||
val onClose: (Int) -> Unit
|
||||
val isCloseButtonVisible: Boolean get() = true
|
||||
val onClose: (Int) -> Unit get() = {}
|
||||
}
|
||||
|
||||
interface StoryConfig {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Arrangement
|
|||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
|
@ -32,6 +33,8 @@ import androidx.compose.ui.text.style.TextDecoration
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import com.tangem.core.ui.R
|
||||
import com.tangem.core.ui.components.currency.icon.CurrencyIcon
|
||||
import com.tangem.core.ui.components.currency.icon.CurrencyIconState
|
||||
import com.tangem.core.ui.components.icons.identicon.IdentIcon
|
||||
import com.tangem.core.ui.components.transactions.state.TransactionItemUM
|
||||
import com.tangem.core.ui.components.transactions.state.TransactionItemUM.Content.Direction
|
||||
|
|
@ -70,55 +73,92 @@ fun TransactionItem(state: TransactionItemUM, isBalanceHidden: Boolean, modifier
|
|||
|
||||
@Composable
|
||||
private fun ContentItem(state: TransactionItemUM.Content, isBalanceHidden: Boolean, modifier: Modifier = Modifier) {
|
||||
val rowModifier = modifier
|
||||
.fillMaxWidth()
|
||||
.clickable(onClick = state.onClick)
|
||||
.testTag(TransactionHistoryItemTestTags.ITEM)
|
||||
|
||||
TangemRowContainer(
|
||||
modifier = rowModifier,
|
||||
contentPadding = PaddingValues(
|
||||
horizontal = TangemTheme.dimens2.x4,
|
||||
vertical = TangemTheme.dimens2.x3,
|
||||
),
|
||||
Column(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.clickable(onClick = state.onClick)
|
||||
.testTag(TransactionHistoryItemTestTags.ITEM),
|
||||
) {
|
||||
StatusCircle(
|
||||
iconRes = state.iconRes,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.HEAD)
|
||||
.padding(end = TangemTheme.dimens2.x3)
|
||||
.size(TangemTheme.dimens2.x10)
|
||||
.testTag(TransactionHistoryItemTestTags.STATUS_PREFIX + state.status.testTagSuffix),
|
||||
TangemRowContainer(
|
||||
contentPadding = PaddingValues(
|
||||
horizontal = TangemTheme.dimens2.x4,
|
||||
vertical = TangemTheme.dimens2.x3,
|
||||
),
|
||||
) {
|
||||
StatusCircle(
|
||||
iconRes = state.iconRes,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.HEAD)
|
||||
.padding(end = TangemTheme.dimens2.x3)
|
||||
.size(TangemTheme.dimens2.x10)
|
||||
.testTag(TransactionHistoryItemTestTags.STATUS_PREFIX + state.status.testTagSuffix),
|
||||
)
|
||||
TitleText(
|
||||
title = state.title,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.START_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.TITLE),
|
||||
)
|
||||
SubtitleText(
|
||||
subtitle = state.subtitle,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.START_BOTTOM)
|
||||
.padding(top = TangemTheme.dimens2.x0_5),
|
||||
)
|
||||
state.amount?.let { amount ->
|
||||
AmountText(
|
||||
amount = amount,
|
||||
status = state.status,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.AMOUNT),
|
||||
)
|
||||
}
|
||||
CurrencyText(
|
||||
symbol = state.currencySymbol,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_BOTTOM)
|
||||
.padding(top = TangemTheme.dimens2.x0_5)
|
||||
.testTag(TransactionHistoryItemTestTags.CURRENCY),
|
||||
)
|
||||
}
|
||||
state.warning?.let { warning ->
|
||||
WarningLine(
|
||||
warning = warning,
|
||||
modifier = Modifier.padding(
|
||||
start = TangemTheme.dimens2.x4,
|
||||
end = TangemTheme.dimens2.x4,
|
||||
bottom = TangemTheme.dimens2.x3,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun WarningLine(warning: TextReference, modifier: Modifier = Modifier) {
|
||||
val attention = TangemTheme.colors2.text.status.attention
|
||||
Row(
|
||||
modifier = modifier,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(TangemTheme.dimens2.x2),
|
||||
) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_alert_triangle_20),
|
||||
contentDescription = null,
|
||||
tint = attention,
|
||||
modifier = Modifier.size(TangemTheme.dimens2.x5),
|
||||
)
|
||||
TitleText(
|
||||
title = state.title,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.START_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.TITLE),
|
||||
)
|
||||
SubtitleText(
|
||||
subtitle = state.subtitle,
|
||||
status = state.status,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.START_BOTTOM)
|
||||
.padding(top = TangemTheme.dimens2.x0_5),
|
||||
)
|
||||
AmountText(
|
||||
amount = state.amount,
|
||||
status = state.status,
|
||||
isBalanceHidden = isBalanceHidden,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_TOP)
|
||||
.testTag(TransactionHistoryItemTestTags.AMOUNT),
|
||||
)
|
||||
CurrencyText(
|
||||
symbol = state.currencySymbol,
|
||||
modifier = Modifier
|
||||
.layoutId(TangemRowLayoutId.END_BOTTOM)
|
||||
.padding(top = TangemTheme.dimens2.x0_5)
|
||||
.testTag(TransactionHistoryItemTestTags.CURRENCY),
|
||||
Text(
|
||||
text = warning.resolveReference(),
|
||||
color = attention,
|
||||
style = TangemTheme.typography2.captionMedium12,
|
||||
maxLines = 2,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -262,6 +302,21 @@ private fun SubtitleText(subtitle: ContentSubtitle, status: Status, modifier: Mo
|
|||
modifier = Modifier.fillMaxSize(),
|
||||
)
|
||||
}
|
||||
is ContentSubtitle.Asset -> InlineImageSubtitle(
|
||||
template = stringResourceSafe(subtitle.direction.templateResId(), subtitle.symbol),
|
||||
color = tertiary,
|
||||
afterIconColor = if (isFailed) tertiary else primary,
|
||||
modifier = modifier,
|
||||
) {
|
||||
subtitle.icon?.let { iconState ->
|
||||
CurrencyIcon(
|
||||
state = iconState,
|
||||
shouldDisplayNetwork = false,
|
||||
withFixedSize = false,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -491,4 +546,73 @@ private fun Preview_TransactionItem_Swap() {
|
|||
}
|
||||
}
|
||||
|
||||
@Preview(showBackground = true, widthDp = 360)
|
||||
@Preview(showBackground = true, widthDp = 360, uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun Preview_TransactionItem_Express() {
|
||||
TangemThemePreviewRedesign {
|
||||
PreviewColumn(
|
||||
items = listOf(
|
||||
TransactionItemUM.Content(
|
||||
txHash = "exp-swap-u",
|
||||
amount = "-390.00",
|
||||
currencySymbol = "USDT",
|
||||
time = "",
|
||||
status = Status.Unconfirmed,
|
||||
direction = Direction.OUTGOING,
|
||||
onClick = {},
|
||||
iconRes = R.drawable.ic_exchange_vertical_24,
|
||||
title = stringReference("Swapping"),
|
||||
subtitle = ContentSubtitle.Asset(
|
||||
direction = ContentSubtitle.Direction.TO,
|
||||
symbol = "POL",
|
||||
icon = CurrencyIconState.CoinIcon(
|
||||
url = null,
|
||||
fallbackResId = R.drawable.ic_custom_token_44,
|
||||
isGrayscale = false,
|
||||
shouldShowCustomBadge = false,
|
||||
),
|
||||
),
|
||||
timestamp = 0L,
|
||||
warning = stringReference("KYC verification required by provider"),
|
||||
),
|
||||
TransactionItemUM.Content(
|
||||
txHash = "exp-onramp-c",
|
||||
amount = "+0.006339",
|
||||
currencySymbol = "BTC",
|
||||
time = "",
|
||||
status = Status.Confirmed,
|
||||
direction = Direction.INCOMING,
|
||||
onClick = {},
|
||||
iconRes = R.drawable.ic_tangem_card_24,
|
||||
title = stringReference("Topped up"),
|
||||
subtitle = ContentSubtitle.Asset(
|
||||
direction = ContentSubtitle.Direction.FROM,
|
||||
symbol = "SEK",
|
||||
icon = null,
|
||||
),
|
||||
timestamp = 0L,
|
||||
),
|
||||
TransactionItemUM.Content(
|
||||
txHash = "exp-onramp-f",
|
||||
amount = "0.006339",
|
||||
currencySymbol = "BTC",
|
||||
time = "",
|
||||
status = Status.Failed,
|
||||
direction = Direction.INCOMING,
|
||||
onClick = {},
|
||||
iconRes = R.drawable.ic_tangem_card_24,
|
||||
title = stringReference("Top up failed"),
|
||||
subtitle = ContentSubtitle.Asset(
|
||||
direction = ContentSubtitle.Direction.FROM,
|
||||
symbol = "SEK",
|
||||
icon = null,
|
||||
),
|
||||
timestamp = 0L,
|
||||
),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
|
@ -3,6 +3,7 @@ package com.tangem.core.ui.components.transactions.state
|
|||
import androidx.annotation.DrawableRes
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.tangem.core.ui.components.currency.icon.CurrencyIconState
|
||||
import com.tangem.core.ui.ds.image.DeviceIconUM
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
|
||||
|
|
@ -22,12 +23,13 @@ sealed interface TransactionItemUM {
|
|||
/**
|
||||
* Content state.
|
||||
*
|
||||
* @property amount signed numeric value, e.g. "+0.500913" / "-350.31"; no currency symbol embedded
|
||||
* @property amount signed numeric value, e.g. "+0.500913" / "-350.31"; no currency symbol embedded.
|
||||
* `null` hides the numeric value while [currencySymbol] still shows.
|
||||
* @property currencySymbol currency symbol shown alongside [amount], e.g. "BTC", "USDT"
|
||||
*/
|
||||
data class Content(
|
||||
override val txHash: String,
|
||||
val amount: String,
|
||||
val amount: String?,
|
||||
val currencySymbol: String,
|
||||
val time: String,
|
||||
val status: Status,
|
||||
|
|
@ -37,6 +39,7 @@ sealed interface TransactionItemUM {
|
|||
val title: TextReference,
|
||||
val subtitle: ContentSubtitle,
|
||||
val timestamp: Long,
|
||||
val warning: TextReference? = null,
|
||||
) : TransactionItemUM {
|
||||
|
||||
@Immutable
|
||||
|
|
@ -95,6 +98,19 @@ sealed interface TransactionItemUM {
|
|||
val deviceIconUM: DeviceIconUM,
|
||||
) : ContentSubtitle
|
||||
|
||||
/**
|
||||
* Counterparty asset ticker — renders as "to/from: <icon> <SYMBOL>". Used for express rows
|
||||
* (swap counterparty currency / onramp fiat), e.g. "to: ◎ POL" or "from: 🇸🇪 SEK".
|
||||
*
|
||||
* @property icon resolved counterparty currency icon, rendered via `CurrencyIcon`. `null` when no icon
|
||||
* is available (e.g. onramp fiat carries no `CryptoCurrency`) — the ticker then renders without a leading icon.
|
||||
*/
|
||||
data class Asset(
|
||||
val direction: Direction,
|
||||
val symbol: String,
|
||||
val icon: CurrencyIconState?,
|
||||
) : ContentSubtitle
|
||||
|
||||
enum class Direction { TO, FROM }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,297 @@
|
|||
@file:Suppress("MagicNumber")
|
||||
|
||||
package com.tangem.core.ui.ds2.glowring
|
||||
|
||||
import android.os.Build
|
||||
import androidx.compose.animation.core.CubicBezierEasing
|
||||
import androidx.compose.animation.core.LinearEasing
|
||||
import androidx.compose.animation.core.RepeatMode
|
||||
import androidx.compose.animation.core.animateFloat
|
||||
import androidx.compose.animation.core.infiniteRepeatable
|
||||
import androidx.compose.animation.core.rememberInfiniteTransition
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.lerp
|
||||
import androidx.compose.ui.semantics.contentDescription
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreviewRedesign
|
||||
import com.tangem.core.ui.res.generated.TangemColors3
|
||||
|
||||
/**
|
||||
* Design-system v2 (DS3) **Glow Ring** — an animated angular-gradient halo that runs around a
|
||||
* rounded-rect outline, like lights chasing along the border.
|
||||
*
|
||||
* [Figma](https://www.figma.com/design/AsnJ5CPHib4Qxw12gszjMS/%F0%9F%92%A0-DS-Components?node-id=4933-126&m=dev)
|
||||
*
|
||||
* @param modifier Modifier for the whole component; also defines its size when there is no [content].
|
||||
* @param variant Color theme of the gradient — see [TangemGlowRing.Variant].
|
||||
* @param cornerRadius Corner radius of the ring; should match the radius of the wrapped surface.
|
||||
* @param animated When `false`, the ring is rendered static (no rotation).
|
||||
* @param quality Rendering strategy; defaults to [TangemGlowRing.Quality.Auto] (device-appropriate).
|
||||
* Force [TangemGlowRing.Quality.LayeredStrokes] to preview the pre-Android-12 fallback on any device.
|
||||
* @param contentDescription Accessibility label; pass a value when the ring conveys state (e.g. error),
|
||||
* leave `null` when it is purely decorative.
|
||||
* @param content Optional content drawn inside/over the ring.
|
||||
*/
|
||||
@Composable
|
||||
fun TangemGlowRing(
|
||||
modifier: Modifier = Modifier,
|
||||
variant: TangemGlowRing.Variant = TangemGlowRing.Variant.Magic,
|
||||
cornerRadius: Dp = 24.dp,
|
||||
animated: Boolean = true,
|
||||
quality: TangemGlowRing.Quality = TangemGlowRing.Quality.Auto,
|
||||
contentDescription: String? = null,
|
||||
content: @Composable BoxScope.() -> Unit = {},
|
||||
) {
|
||||
val resolved = remember(quality) { resolveQuality(quality) }
|
||||
val stops = rememberGlowRingStops(variant, animated)
|
||||
val metrics = remember {
|
||||
GlowRingMetrics(coreWidth = 2.dp, ringWidth = 4.dp, blurMid = 8.dp, blurBottom = 16.dp)
|
||||
}
|
||||
|
||||
val angle = if (animated) {
|
||||
val transition = rememberInfiniteTransition(label = "glowRing")
|
||||
val rotation by transition.animateFloat(
|
||||
initialValue = GLOW_RING_START_ANGLE,
|
||||
targetValue = 270f,
|
||||
animationSpec = infiniteRepeatable(
|
||||
animation = tween(
|
||||
durationMillis = 24_000,
|
||||
easing = CubicBezierEasing(a = 0.1f, b = 0f, c = 0.9f, d = 1f),
|
||||
),
|
||||
repeatMode = RepeatMode.Restart,
|
||||
),
|
||||
label = "angle",
|
||||
)
|
||||
rotation
|
||||
} else {
|
||||
GLOW_RING_START_ANGLE
|
||||
}
|
||||
|
||||
Box(
|
||||
modifier = if (contentDescription != null) {
|
||||
modifier.semantics { this.contentDescription = contentDescription }
|
||||
} else {
|
||||
modifier
|
||||
},
|
||||
) {
|
||||
val ringModifier = Modifier.matchParentSize()
|
||||
when (resolved) {
|
||||
ResolvedGlowRingQuality.Blur -> BlurGlowRing(
|
||||
angle = angle,
|
||||
stops = stops,
|
||||
cornerRadius = cornerRadius,
|
||||
metrics = metrics,
|
||||
modifier = ringModifier,
|
||||
)
|
||||
ResolvedGlowRingQuality.LayeredStrokes -> LayeredStrokesGlowRing(
|
||||
angle = angle,
|
||||
stops = stops,
|
||||
cornerRadius = cornerRadius,
|
||||
metrics = metrics,
|
||||
modifier = ringModifier,
|
||||
)
|
||||
}
|
||||
content()
|
||||
}
|
||||
}
|
||||
|
||||
/** Sweep start angle, also reused as the static angle when [TangemGlowRing] is not animated (Figma: -90°). */
|
||||
private const val GLOW_RING_START_ANGLE = -90f
|
||||
|
||||
/**
|
||||
* Resolves the gradient stops for [variant] from the DS3 `colors3.glow` tokens. The
|
||||
* [TangemGlowRing.Variant.Magic] variant continuously ping-pongs between gradient A (`glow.magic`) and
|
||||
* gradient B (`glow.magicBlend`) while [animated] is `true`; every other variant has a single static
|
||||
* gradient.
|
||||
*/
|
||||
@Composable
|
||||
private fun rememberGlowRingStops(variant: TangemGlowRing.Variant, animated: Boolean): List<Pair<Float, Color>> {
|
||||
val glow = TangemTheme.colors3.glow
|
||||
if (variant != TangemGlowRing.Variant.Magic || !animated) {
|
||||
return variant.stops(glow)
|
||||
}
|
||||
val morphTransition = rememberInfiniteTransition(label = "glowRingMorph")
|
||||
val mix by morphTransition.animateFloat(
|
||||
initialValue = 0f,
|
||||
targetValue = 1f,
|
||||
animationSpec = infiniteRepeatable(
|
||||
// 6s A→B half-period; Reverse makes a 12s ping-pong (Figma morphDur = 12s).
|
||||
animation = tween(durationMillis = 6_000, easing = LinearEasing),
|
||||
repeatMode = RepeatMode.Reverse,
|
||||
),
|
||||
label = "morphMix",
|
||||
)
|
||||
return morphedMagicStops(glow.magic.steps(), glow.magicBlend.steps(), mix)
|
||||
}
|
||||
|
||||
/** Public API surface of [TangemGlowRing]. */
|
||||
object TangemGlowRing {
|
||||
|
||||
/** Color theme of the glow ring gradient. */
|
||||
enum class Variant {
|
||||
/**
|
||||
* Multi-color "magic" gradient that continuously auto-morphs (ping-pongs) between separated
|
||||
* orange / blue / purple arcs and a continuous fully-saturated blend.
|
||||
*/
|
||||
Magic,
|
||||
|
||||
/** Green success glow. */
|
||||
Success,
|
||||
|
||||
/** Red error glow. */
|
||||
Error,
|
||||
|
||||
/** Orange/amber warning glow. */
|
||||
Warning,
|
||||
|
||||
/** Blue informational glow. */
|
||||
Info,
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendering strategy for the glow.
|
||||
*
|
||||
* [Auto] picks the best renderer for the current device — a real Gaussian blur on Android 12+
|
||||
* (API 31) and a layered-stroke approximation on older versions. The explicit values force one
|
||||
* renderer regardless of API level; they exist mainly for previews / Storybook so the
|
||||
* pre-Android-12 fallback can be inspected on a modern device. Product code should use [Auto].
|
||||
*/
|
||||
enum class Quality {
|
||||
/** Auto-detect the renderer from the device API level (recommended). */
|
||||
Auto,
|
||||
|
||||
/** Force the Android 12+ real-blur renderer. */
|
||||
Blur,
|
||||
|
||||
/** Force the pre-Android-12 layered-stroke fallback. */
|
||||
LayeredStrokes,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves [quality] to a concrete renderer. [TangemGlowRing.Quality.Auto] picks a real blur on
|
||||
* Android 12+ (API 31) and falls back to stacked translucent strokes on older versions; the explicit
|
||||
* values force their renderer regardless of API level.
|
||||
*/
|
||||
private fun resolveQuality(quality: TangemGlowRing.Quality): ResolvedGlowRingQuality = when (quality) {
|
||||
TangemGlowRing.Quality.Blur -> ResolvedGlowRingQuality.Blur
|
||||
TangemGlowRing.Quality.LayeredStrokes -> ResolvedGlowRingQuality.LayeredStrokes
|
||||
TangemGlowRing.Quality.Auto -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
ResolvedGlowRingQuality.Blur
|
||||
} else {
|
||||
ResolvedGlowRingQuality.LayeredStrokes
|
||||
}
|
||||
}
|
||||
|
||||
/** Concrete rendering strategy chosen by [resolveQuality]. */
|
||||
private enum class ResolvedGlowRingQuality { Blur, LayeredStrokes }
|
||||
|
||||
/**
|
||||
* Builds the angular-gradient stops for [this] variant from its DS3 `colors3.glow` token group. Every
|
||||
* variant token exposes the same 10 [steps] — solid arcs at steps 1/4/7, a faint arc at 9 and transparent
|
||||
* gaps elsewhere — which [glowStops] lays out as evenly-spaced, seamlessly-looping stops.
|
||||
*/
|
||||
private fun TangemGlowRing.Variant.stops(glow: TangemColors3.Glow): List<Pair<Float, Color>> = glowStops(
|
||||
when (this) {
|
||||
TangemGlowRing.Variant.Magic -> glow.magic.steps()
|
||||
TangemGlowRing.Variant.Success -> glow.success.steps()
|
||||
TangemGlowRing.Variant.Error -> glow.error.steps()
|
||||
TangemGlowRing.Variant.Warning -> glow.warning.steps()
|
||||
TangemGlowRing.Variant.Info -> glow.info.steps()
|
||||
},
|
||||
)
|
||||
|
||||
/**
|
||||
* Blends the Magic gradients A ([magic] = `glow.magic`) and B ([magicBlend] = `glow.magicBlend`) at
|
||||
* [mix] (`0` = A, `1` = B). Both token groups share the same stop positions, so the morph is a direct
|
||||
* per-step color lerp. Mirrors the reference rig's auto-morph (ping-pong) between gradient A and B.
|
||||
*/
|
||||
private fun morphedMagicStops(magic: List<Color>, magicBlend: List<Color>, mix: Float): List<Pair<Float, Color>> {
|
||||
val m = mix.coerceIn(0f, 1f)
|
||||
return glowStops(List(magic.size) { lerp(magic[it], magicBlend[it], m) })
|
||||
}
|
||||
|
||||
/**
|
||||
* Lays the glow [steps] out as an angular gradient: evenly spaced from `0`, with step 1 repeated at `1.0`
|
||||
* so the rotation loops seamlessly. Transparent steps create the gaps between the glowing arcs.
|
||||
*/
|
||||
private fun glowStops(steps: List<Color>): List<Pair<Float, Color>> {
|
||||
val count = steps.size
|
||||
return steps.mapIndexed { index, color -> index.toFloat() / count to color } + (1f to steps.first())
|
||||
}
|
||||
|
||||
private fun TangemColors3.Glow.Magic.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
private fun TangemColors3.Glow.MagicBlend.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
private fun TangemColors3.Glow.Success.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
private fun TangemColors3.Glow.Error.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
private fun TangemColors3.Glow.Warning.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
private fun TangemColors3.Glow.Info.steps(): List<Color> =
|
||||
listOf(step1, step2, step3, step4, step5, step6, step7, step8, step9, step10)
|
||||
|
||||
@Preview(name = "Light", showBackground = true)
|
||||
@Preview(name = "Dark", uiMode = android.content.res.Configuration.UI_MODE_NIGHT_YES, showBackground = true)
|
||||
@Composable
|
||||
private fun TangemGlowRingPreview() {
|
||||
TangemThemePreviewRedesign {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.background(TangemTheme.colors3.bg.primary)
|
||||
.padding(24.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(24.dp),
|
||||
) {
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(24.dp)) {
|
||||
TangemGlowRing(
|
||||
modifier = Modifier.size(120.dp, 72.dp),
|
||||
variant = TangemGlowRing.Variant.Magic,
|
||||
)
|
||||
TangemGlowRing(
|
||||
modifier = Modifier.size(120.dp, 72.dp),
|
||||
variant = TangemGlowRing.Variant.Success,
|
||||
)
|
||||
}
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(24.dp)) {
|
||||
TangemGlowRing(
|
||||
modifier = Modifier.size(120.dp, 72.dp),
|
||||
variant = TangemGlowRing.Variant.Error,
|
||||
)
|
||||
TangemGlowRing(
|
||||
modifier = Modifier.size(120.dp, 72.dp),
|
||||
variant = TangemGlowRing.Variant.Warning,
|
||||
)
|
||||
}
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(24.dp)) {
|
||||
TangemGlowRing(
|
||||
modifier = Modifier.size(120.dp, 72.dp),
|
||||
variant = TangemGlowRing.Variant.Info,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
@file:Suppress("MagicNumber")
|
||||
|
||||
package com.tangem.core.ui.ds2.glowring
|
||||
|
||||
import androidx.compose.foundation.Canvas
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.BlurredEdgeTreatment
|
||||
import androidx.compose.ui.draw.blur
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.geometry.CornerRadius
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.geometry.Rect
|
||||
import androidx.compose.ui.geometry.RoundRect
|
||||
import androidx.compose.ui.geometry.Size
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.Path
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.drawscope.DrawScope
|
||||
import androidx.compose.ui.graphics.drawscope.clipPath
|
||||
import androidx.compose.ui.graphics.drawscope.withTransform
|
||||
import androidx.compose.ui.graphics.lerp
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import kotlin.math.cos
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
|
||||
/**
|
||||
* Token-driven measurements shared by both renderers, mirroring the Figma component anatomy:
|
||||
* a crisp [coreWidth] core line plus two wider, blurred glow bands ([ringWidth] stroked, blurred by
|
||||
* [blurMid] and [blurBottom]).
|
||||
*/
|
||||
internal data class GlowRingMetrics(
|
||||
val coreWidth: Dp, // crisp core stroke (top layer)
|
||||
val ringWidth: Dp, // glow band stroke (mid + bottom layers)
|
||||
val blurMid: Dp, // mid glow blur radius
|
||||
val blurBottom: Dp, // widest glow blur radius
|
||||
)
|
||||
|
||||
/**
|
||||
* Tier 1 — works on every API level, no blur or shader. Approximates the blurred glow by stacking the
|
||||
* same breathing angular-gradient ring several times: progressively wider + fainter bands under a crisp
|
||||
* core. Everything is clipped to the rounded box, so only the inner half of each band shows → inner glow.
|
||||
*/
|
||||
@Composable
|
||||
internal fun LayeredStrokesGlowRing(
|
||||
angle: Float,
|
||||
stops: List<Pair<Float, Color>>,
|
||||
cornerRadius: Dp,
|
||||
metrics: GlowRingMetrics,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Box(modifier.clip(RoundedCornerShape(cornerRadius))) {
|
||||
Canvas(Modifier.fillMaxSize()) {
|
||||
val r = cornerRadius.toPx()
|
||||
// widest & faintest first, crisp core last
|
||||
drawBreathingRing(
|
||||
stops = stops,
|
||||
angleDeg = angle,
|
||||
cornerRadiusPx = r,
|
||||
strokePx = (metrics.ringWidth + metrics.blurBottom).toPx(),
|
||||
alpha = 0.06f,
|
||||
)
|
||||
drawBreathingRing(
|
||||
stops = stops,
|
||||
angleDeg = angle,
|
||||
cornerRadiusPx = r,
|
||||
strokePx = (metrics.ringWidth + metrics.blurMid).toPx(),
|
||||
alpha = 0.12f,
|
||||
)
|
||||
drawBreathingRing(
|
||||
stops = stops,
|
||||
angleDeg = angle,
|
||||
cornerRadiusPx = r,
|
||||
strokePx = metrics.ringWidth.toPx(),
|
||||
alpha = 0.30f,
|
||||
)
|
||||
drawBreathingRing(
|
||||
stops = stops,
|
||||
angleDeg = angle,
|
||||
cornerRadiusPx = r,
|
||||
strokePx = metrics.coreWidth.toPx(),
|
||||
alpha = 1.0f,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tier 2 — Android 12+ (API 31). Reproduces the Figma anatomy directly: three stacked breathing
|
||||
* angular-gradient rings with real blur (bottom widest, mid, top crisp). Each layer bleeds with
|
||||
* [BlurredEdgeTreatment.Unbounded]; the surrounding [clip] to the rounded box keeps only the inner
|
||||
* bloom, producing the inner glow.
|
||||
*/
|
||||
@Composable
|
||||
internal fun BlurGlowRing(
|
||||
angle: Float,
|
||||
stops: List<Pair<Float, Color>>,
|
||||
cornerRadius: Dp,
|
||||
metrics: GlowRingMetrics,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Box(modifier.clip(RoundedCornerShape(cornerRadius))) {
|
||||
// bottom — widest halo
|
||||
BreathingRing(
|
||||
angle = angle,
|
||||
stops = stops,
|
||||
cornerRadius = cornerRadius,
|
||||
strokeWidth = metrics.ringWidth,
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.blur(radius = metrics.blurBottom, edgeTreatment = BlurredEdgeTreatment.Unbounded),
|
||||
)
|
||||
// mid
|
||||
BreathingRing(
|
||||
angle = angle,
|
||||
stops = stops,
|
||||
cornerRadius = cornerRadius,
|
||||
strokeWidth = metrics.ringWidth,
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.blur(radius = metrics.blurMid, edgeTreatment = BlurredEdgeTreatment.Unbounded),
|
||||
)
|
||||
// top — crisp core
|
||||
BreathingRing(
|
||||
angle = angle,
|
||||
stops = stops,
|
||||
cornerRadius = cornerRadius,
|
||||
strokeWidth = metrics.coreWidth,
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun BreathingRing(
|
||||
angle: Float,
|
||||
stops: List<Pair<Float, Color>>,
|
||||
cornerRadius: Dp,
|
||||
strokeWidth: Dp,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
Canvas(modifier) {
|
||||
drawBreathingRing(
|
||||
stops = stops,
|
||||
angleDeg = angle,
|
||||
cornerRadiusPx = cornerRadius.toPx(),
|
||||
strokePx = strokeWidth.toPx(),
|
||||
alpha = 1f,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws one angular-gradient ring band clipped to the rounded-rect stroke outline. The gradient is a
|
||||
* sweep whose colour seam is rotated by [angleDeg] (via [rotatedStops]) and whose vertical squish
|
||||
* breathes between W/2 and W/8 over the rotation (`rxM = mid + amp·cos(2φ)`), reproducing the morphing
|
||||
* arcs of the reference rig.
|
||||
*/
|
||||
private fun DrawScope.drawBreathingRing(
|
||||
stops: List<Pair<Float, Color>>,
|
||||
angleDeg: Float,
|
||||
cornerRadiusPx: Float,
|
||||
strokePx: Float,
|
||||
alpha: Float,
|
||||
) {
|
||||
val w = size.width
|
||||
val h = size.height
|
||||
if (w <= 0f || h <= 0f) return
|
||||
val center = Offset(w / 2f, h / 2f)
|
||||
|
||||
// Breathing horizontal radius of the gradient ellipse → vertical squish of the angle sampling.
|
||||
val maxRx = w / 2f
|
||||
val minRx = w / 8f
|
||||
val mid = (maxRx + minRx) / 2f
|
||||
val amp = max((maxRx - minRx) / 2f, 0f)
|
||||
val phaseRad = Math.toRadians(angleDeg.toDouble()).toFloat()
|
||||
val rxM = mid + amp * cos(2f * phaseRad)
|
||||
val scaleY = h / 2f / max(rxM, 1f)
|
||||
|
||||
val r = min(cornerRadiusPx, min(w, h) / 2f)
|
||||
val o = strokePx / 2f
|
||||
val ring = Path().apply {
|
||||
fillType = PathFillType.EvenOdd
|
||||
addRoundRect(
|
||||
RoundRect(rect = Rect(Offset(-o, -o), Size(w + 2f * o, h + 2f * o)), cornerRadius = CornerRadius(r + o)),
|
||||
)
|
||||
addRoundRect(
|
||||
RoundRect(
|
||||
rect = Rect(Offset(o, o), Size(w - 2f * o, h - 2f * o)),
|
||||
cornerRadius = CornerRadius(max(r - o, 0f)),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
val brush = Brush.sweepGradient(colorStops = rotatedStops(stops, angleDeg), center = center)
|
||||
val big = max(w, h) * 4f
|
||||
clipPath(ring) {
|
||||
withTransform({ scale(scaleX = 1f, scaleY = scaleY, pivot = center) }) {
|
||||
drawRect(
|
||||
brush = brush,
|
||||
topLeft = Offset(center.x - big / 2f, center.y - big / 2f),
|
||||
size = Size(big, big),
|
||||
alpha = alpha,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compose's [Brush.sweepGradient] has no start-angle parameter, so the colour seam is rotated by
|
||||
* shifting every stop position by `deg/360` (wrapping around the loop) and re-anchoring boundary stops
|
||||
* at 0 and 1 with the interpolated wrap colour. Mirrors `rotatedStops` from the reference rig.
|
||||
*/
|
||||
private fun rotatedStops(base: List<Pair<Float, Color>>, deg: Float): Array<Pair<Float, Color>> {
|
||||
val d = (deg / 360f % 1f + 1f) % 1f
|
||||
val uniq = base.dropLast(1) // drop the duplicate wrap stop at 1.0
|
||||
val shifted = uniq
|
||||
.map { (p, c) -> ((p + d) % 1f + 1f) % 1f to c }
|
||||
.sortedBy { it.first }
|
||||
val first = shifted.first()
|
||||
val last = shifted.last()
|
||||
val span = first.first + 1f - last.first
|
||||
val wrapFraction = if (span > 1e-6f) (1f - last.first) / span else 0f
|
||||
val wrapColor = lerp(last.second, first.second, wrapFraction)
|
||||
return (listOf(0f to wrapColor) + shifted + listOf(1f to wrapColor)).toTypedArray()
|
||||
}
|
||||
|
|
@ -52,11 +52,13 @@ open class BigDecimalCryptoFormatStyled(
|
|||
fun BigDecimalFormatScope.crypto(
|
||||
symbol: String,
|
||||
decimals: Int,
|
||||
ignoreSymbolPosition: Boolean = false,
|
||||
locale: Locale = Locale.getDefault(),
|
||||
): BigDecimalCryptoFormat {
|
||||
return BigDecimalCryptoFormat(
|
||||
symbol = symbol,
|
||||
decimals = decimals,
|
||||
shouldIgnoreSymbolPosition = ignoreSymbolPosition,
|
||||
locale = locale,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,11 +190,13 @@ object TangemTheme {
|
|||
@ReadOnlyComposable
|
||||
get() = LocalTangemTypography3.current
|
||||
|
||||
@Deprecated("Use plain dp")
|
||||
val dimens: TangemDimens
|
||||
@Composable
|
||||
@ReadOnlyComposable
|
||||
get() = LocalTangemDimens.current
|
||||
|
||||
@Deprecated("Use plain dp")
|
||||
val dimens2: TangemDimens2
|
||||
@Composable
|
||||
@ReadOnlyComposable
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7a974320353cf7ea1e0a25ca074f8e200ce44506044cc5b2bdcb00aee2c6dc85
|
||||
d90598b8786899b4dbdd8f8744c24c13ea8a9545971b0f20c1c2136be83e63be
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ class TangemColors3 internal constructor(
|
|||
val border: Border,
|
||||
val overlay: Overlay,
|
||||
val interaction: Interaction,
|
||||
val glow: Glow,
|
||||
val material: Material,
|
||||
) {
|
||||
|
||||
|
|
@ -135,6 +136,7 @@ class TangemColors3 internal constructor(
|
|||
orange: Color,
|
||||
yellow: Color,
|
||||
green: Color,
|
||||
neutral: Color,
|
||||
) {
|
||||
var blue by mutableStateOf(blue)
|
||||
private set
|
||||
|
|
@ -148,6 +150,8 @@ class TangemColors3 internal constructor(
|
|||
private set
|
||||
var green by mutableStateOf(green)
|
||||
private set
|
||||
var neutral by mutableStateOf(neutral)
|
||||
private set
|
||||
|
||||
fun update(other: Accent) {
|
||||
blue = other.blue
|
||||
|
|
@ -156,6 +160,7 @@ class TangemColors3 internal constructor(
|
|||
orange = other.orange
|
||||
yellow = other.yellow
|
||||
green = other.green
|
||||
neutral = other.neutral
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -264,6 +269,7 @@ class TangemColors3 internal constructor(
|
|||
orange: Color,
|
||||
yellow: Color,
|
||||
green: Color,
|
||||
neutral: Color,
|
||||
) {
|
||||
var blue by mutableStateOf(blue)
|
||||
private set
|
||||
|
|
@ -277,6 +283,8 @@ class TangemColors3 internal constructor(
|
|||
private set
|
||||
var green by mutableStateOf(green)
|
||||
private set
|
||||
var neutral by mutableStateOf(neutral)
|
||||
private set
|
||||
|
||||
fun update(other: Accent) {
|
||||
blue = other.blue
|
||||
|
|
@ -285,6 +293,7 @@ class TangemColors3 internal constructor(
|
|||
orange = other.orange
|
||||
yellow = other.yellow
|
||||
green = other.green
|
||||
neutral = other.neutral
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -361,6 +370,7 @@ class TangemColors3 internal constructor(
|
|||
orange: Color,
|
||||
yellow: Color,
|
||||
green: Color,
|
||||
neutral: Color,
|
||||
) {
|
||||
var blue by mutableStateOf(blue)
|
||||
private set
|
||||
|
|
@ -374,6 +384,8 @@ class TangemColors3 internal constructor(
|
|||
private set
|
||||
var green by mutableStateOf(green)
|
||||
private set
|
||||
var neutral by mutableStateOf(neutral)
|
||||
private set
|
||||
|
||||
fun update(other: Accent) {
|
||||
blue = other.blue
|
||||
|
|
@ -382,6 +394,7 @@ class TangemColors3 internal constructor(
|
|||
orange = other.orange
|
||||
yellow = other.yellow
|
||||
green = other.green
|
||||
neutral = other.neutral
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -485,6 +498,7 @@ class TangemColors3 internal constructor(
|
|||
orange: Color,
|
||||
yellow: Color,
|
||||
green: Color,
|
||||
neutral: Color,
|
||||
) {
|
||||
var blue by mutableStateOf(blue)
|
||||
private set
|
||||
|
|
@ -498,6 +512,8 @@ class TangemColors3 internal constructor(
|
|||
private set
|
||||
var green by mutableStateOf(green)
|
||||
private set
|
||||
var neutral by mutableStateOf(neutral)
|
||||
private set
|
||||
|
||||
fun update(other: Accent) {
|
||||
blue = other.blue
|
||||
|
|
@ -506,6 +522,7 @@ class TangemColors3 internal constructor(
|
|||
orange = other.orange
|
||||
yellow = other.yellow
|
||||
green = other.green
|
||||
neutral = other.neutral
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -534,28 +551,30 @@ class TangemColors3 internal constructor(
|
|||
|
||||
@Stable
|
||||
class Interaction internal constructor(
|
||||
pressStaticLight: Color,
|
||||
pressStaticDark: Color,
|
||||
val press: Press,
|
||||
val focusRing: FocusRing,
|
||||
) {
|
||||
var pressStaticLight by mutableStateOf(pressStaticLight)
|
||||
private set
|
||||
var pressStaticDark by mutableStateOf(pressStaticDark)
|
||||
private set
|
||||
|
||||
@Stable
|
||||
class Press internal constructor(
|
||||
default: Color,
|
||||
staticLight: Color,
|
||||
staticDark: Color,
|
||||
inverse: Color,
|
||||
) {
|
||||
var default by mutableStateOf(default)
|
||||
private set
|
||||
var staticLight by mutableStateOf(staticLight)
|
||||
private set
|
||||
var staticDark by mutableStateOf(staticDark)
|
||||
private set
|
||||
var inverse by mutableStateOf(inverse)
|
||||
private set
|
||||
|
||||
fun update(other: Press) {
|
||||
default = other.default
|
||||
staticLight = other.staticLight
|
||||
staticDark = other.staticDark
|
||||
inverse = other.inverse
|
||||
}
|
||||
}
|
||||
|
|
@ -577,13 +596,319 @@ class TangemColors3 internal constructor(
|
|||
}
|
||||
|
||||
fun update(other: Interaction) {
|
||||
pressStaticLight = other.pressStaticLight
|
||||
pressStaticDark = other.pressStaticDark
|
||||
press.update(other.press)
|
||||
focusRing.update(other.focusRing)
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Glow internal constructor(
|
||||
val magic: Magic,
|
||||
val magicBlend: MagicBlend,
|
||||
val success: Success,
|
||||
val error: Error,
|
||||
val warning: Warning,
|
||||
val info: Info,
|
||||
) {
|
||||
|
||||
@Stable
|
||||
class Magic internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: Magic) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class MagicBlend internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: MagicBlend) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Success internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: Success) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Error internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: Error) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Warning internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: Warning) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Info internal constructor(
|
||||
step1: Color,
|
||||
step2: Color,
|
||||
step3: Color,
|
||||
step4: Color,
|
||||
step5: Color,
|
||||
step6: Color,
|
||||
step7: Color,
|
||||
step8: Color,
|
||||
step9: Color,
|
||||
step10: Color,
|
||||
) {
|
||||
var step1 by mutableStateOf(step1)
|
||||
private set
|
||||
var step2 by mutableStateOf(step2)
|
||||
private set
|
||||
var step3 by mutableStateOf(step3)
|
||||
private set
|
||||
var step4 by mutableStateOf(step4)
|
||||
private set
|
||||
var step5 by mutableStateOf(step5)
|
||||
private set
|
||||
var step6 by mutableStateOf(step6)
|
||||
private set
|
||||
var step7 by mutableStateOf(step7)
|
||||
private set
|
||||
var step8 by mutableStateOf(step8)
|
||||
private set
|
||||
var step9 by mutableStateOf(step9)
|
||||
private set
|
||||
var step10 by mutableStateOf(step10)
|
||||
private set
|
||||
|
||||
fun update(other: Info) {
|
||||
step1 = other.step1
|
||||
step2 = other.step2
|
||||
step3 = other.step3
|
||||
step4 = other.step4
|
||||
step5 = other.step5
|
||||
step6 = other.step6
|
||||
step7 = other.step7
|
||||
step8 = other.step8
|
||||
step9 = other.step9
|
||||
step10 = other.step10
|
||||
}
|
||||
}
|
||||
|
||||
fun update(other: Glow) {
|
||||
magic.update(other.magic)
|
||||
magicBlend.update(other.magicBlend)
|
||||
success.update(other.success)
|
||||
error.update(other.error)
|
||||
warning.update(other.warning)
|
||||
info.update(other.info)
|
||||
}
|
||||
}
|
||||
|
||||
@Stable
|
||||
class Material internal constructor(
|
||||
val tint: Tint,
|
||||
|
|
@ -709,6 +1034,7 @@ class TangemColors3 internal constructor(
|
|||
border.update(other.border)
|
||||
overlay.update(other.overlay)
|
||||
interaction.update(other.interaction)
|
||||
glow.update(other.glow)
|
||||
material.update(other.material)
|
||||
}
|
||||
}
|
||||
|
|
@ -43,6 +43,7 @@ internal fun darkColors3() =
|
|||
orange = TangemColorPalette.Orange.`40`,
|
||||
yellow = TangemColorPalette.Yellow.`40`,
|
||||
green = TangemColorPalette.Green.`40`,
|
||||
neutral = TangemColorPalette.Neutral.`40`,
|
||||
),
|
||||
),
|
||||
bg = TangemColors3.Bg(
|
||||
|
|
@ -74,6 +75,7 @@ internal fun darkColors3() =
|
|||
orange = TangemColorPalette.Orange.`50`,
|
||||
yellow = TangemColorPalette.Yellow.`50`,
|
||||
green = TangemColorPalette.Green.`50`,
|
||||
neutral = TangemColorPalette.Neutral.`50`,
|
||||
),
|
||||
),
|
||||
icon = TangemColors3.Icon(
|
||||
|
|
@ -97,6 +99,7 @@ internal fun darkColors3() =
|
|||
orange = TangemColorPalette.Orange.`40`,
|
||||
yellow = TangemColorPalette.Yellow.`40`,
|
||||
green = TangemColorPalette.Green.`40`,
|
||||
neutral = TangemColorPalette.Neutral.`40`,
|
||||
),
|
||||
),
|
||||
border = TangemColors3.Border(
|
||||
|
|
@ -126,16 +129,17 @@ internal fun darkColors3() =
|
|||
orange = TangemColorPalette.Orange.`40`,
|
||||
yellow = TangemColorPalette.Yellow.`40`,
|
||||
green = TangemColorPalette.Green.`40`,
|
||||
neutral = TangemColorPalette.Neutral.`40`,
|
||||
),
|
||||
),
|
||||
overlay = TangemColors3.Overlay(
|
||||
modal = TangemColorPalette.Opaque.BaseBlack.`80`,
|
||||
),
|
||||
interaction = TangemColors3.Interaction(
|
||||
pressStaticLight = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
pressStaticDark = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
press = TangemColors3.Interaction.Press(
|
||||
default = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
staticLight = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
staticDark = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
inverse = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
),
|
||||
focusRing = TangemColors3.Interaction.FocusRing(
|
||||
|
|
@ -143,6 +147,80 @@ internal fun darkColors3() =
|
|||
brand = TangemColorPalette.Blue.`50`,
|
||||
),
|
||||
),
|
||||
glow = TangemColors3.Glow(
|
||||
magic = TangemColors3.Glow.Magic(
|
||||
step1 = TangemColorPalette.Yellow.`30`,
|
||||
step2 = Color(0x000077E1),
|
||||
step3 = Color(0x000C58AF),
|
||||
step4 = TangemColorPalette.Blue.`50`,
|
||||
step5 = Color(0x005EBDF9),
|
||||
step6 = Color(0x00473068),
|
||||
step7 = TangemColorPalette.Violet.`50`,
|
||||
step8 = Color(0x00E12C2E),
|
||||
step9 = Color(0x4D473068),
|
||||
step10 = Color(0x0067419B),
|
||||
),
|
||||
magicBlend = TangemColors3.Glow.MagicBlend(
|
||||
step1 = TangemColorPalette.Violet.`50`,
|
||||
step2 = Color(0x00143C70),
|
||||
step3 = Color(0x00FA6931),
|
||||
step4 = TangemColorPalette.Yellow.`30`,
|
||||
step5 = Color(0x002DAE3B),
|
||||
step6 = Color(0x0098D7FF),
|
||||
step7 = TangemColorPalette.Green.`20`,
|
||||
step8 = Color(0x00A967FD),
|
||||
step9 = Color(0x4D67419B),
|
||||
step10 = Color(0x00FF5E66),
|
||||
),
|
||||
success = TangemColors3.Glow.Success(
|
||||
step1 = TangemColorPalette.Green.`50`,
|
||||
step2 = Color(0x001C4415),
|
||||
step3 = Color(0x001C4415),
|
||||
step4 = TangemColorPalette.Green.`60`,
|
||||
step5 = Color(0x001C4415),
|
||||
step6 = Color(0x001C4415),
|
||||
step7 = TangemColorPalette.Green.`40`,
|
||||
step8 = Color(0x001C4415),
|
||||
step9 = Color(0x4D1C4415),
|
||||
step10 = Color(0x001C4415),
|
||||
),
|
||||
error = TangemColors3.Glow.Error(
|
||||
step1 = TangemColorPalette.Red.`50`,
|
||||
step2 = Color(0x006D2323),
|
||||
step3 = Color(0x006D2323),
|
||||
step4 = TangemColorPalette.Red.`60`,
|
||||
step5 = Color(0x006D2323),
|
||||
step6 = Color(0x006D2323),
|
||||
step7 = TangemColorPalette.Red.`40`,
|
||||
step8 = Color(0x006D2323),
|
||||
step9 = Color(0x4D6D2323),
|
||||
step10 = Color(0x006D2323),
|
||||
),
|
||||
warning = TangemColors3.Glow.Warning(
|
||||
step1 = TangemColorPalette.Yellow.`40`,
|
||||
step2 = Color(0x00573414),
|
||||
step3 = Color(0x00573414),
|
||||
step4 = TangemColorPalette.Yellow.`50`,
|
||||
step5 = Color(0x00573414),
|
||||
step6 = Color(0x00573414),
|
||||
step7 = TangemColorPalette.Yellow.`30`,
|
||||
step8 = Color(0x00573414),
|
||||
step9 = Color(0x4D573414),
|
||||
step10 = Color(0x00573414),
|
||||
),
|
||||
info = TangemColors3.Glow.Info(
|
||||
step1 = TangemColorPalette.Blue.`50`,
|
||||
step2 = Color(0x00143C70),
|
||||
step3 = Color(0x00143C70),
|
||||
step4 = TangemColorPalette.Blue.`60`,
|
||||
step5 = Color(0x00143C70),
|
||||
step6 = Color(0x00143C70),
|
||||
step7 = TangemColorPalette.Blue.`40`,
|
||||
step8 = Color(0x00143C70),
|
||||
step9 = Color(0x4D143C70),
|
||||
step10 = Color(0x00143C70),
|
||||
),
|
||||
),
|
||||
material = TangemColors3.Material(
|
||||
tint = TangemColors3.Material.Tint(
|
||||
glass = Color(0x662C2C2C),
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ internal fun lightColors3() =
|
|||
orange = TangemColorPalette.Orange.`50`,
|
||||
yellow = TangemColorPalette.Yellow.`50`,
|
||||
green = TangemColorPalette.Green.`50`,
|
||||
neutral = TangemColorPalette.Neutral.`50`,
|
||||
),
|
||||
),
|
||||
bg = TangemColors3.Bg(
|
||||
|
|
@ -74,6 +75,7 @@ internal fun lightColors3() =
|
|||
orange = TangemColorPalette.Orange.`50`,
|
||||
yellow = TangemColorPalette.Yellow.`50`,
|
||||
green = TangemColorPalette.Green.`50`,
|
||||
neutral = TangemColorPalette.Neutral.`50`,
|
||||
),
|
||||
),
|
||||
icon = TangemColors3.Icon(
|
||||
|
|
@ -97,6 +99,7 @@ internal fun lightColors3() =
|
|||
orange = TangemColorPalette.Orange.`50`,
|
||||
yellow = TangemColorPalette.Yellow.`50`,
|
||||
green = TangemColorPalette.Green.`50`,
|
||||
neutral = TangemColorPalette.Neutral.`50`,
|
||||
),
|
||||
),
|
||||
border = TangemColors3.Border(
|
||||
|
|
@ -126,16 +129,17 @@ internal fun lightColors3() =
|
|||
orange = TangemColorPalette.Orange.`50`,
|
||||
yellow = TangemColorPalette.Yellow.`50`,
|
||||
green = TangemColorPalette.Green.`50`,
|
||||
neutral = TangemColorPalette.Neutral.`50`,
|
||||
),
|
||||
),
|
||||
overlay = TangemColors3.Overlay(
|
||||
modal = TangemColorPalette.Opaque.BaseBlack.`60`,
|
||||
),
|
||||
interaction = TangemColors3.Interaction(
|
||||
pressStaticLight = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
pressStaticDark = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
press = TangemColors3.Interaction.Press(
|
||||
default = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
staticLight = TangemColorPalette.Opaque.BaseBlack.`10`,
|
||||
staticDark = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
inverse = TangemColorPalette.Opaque.BaseWhite.`10`,
|
||||
),
|
||||
focusRing = TangemColors3.Interaction.FocusRing(
|
||||
|
|
@ -143,6 +147,80 @@ internal fun lightColors3() =
|
|||
brand = TangemColorPalette.Blue.`50`,
|
||||
),
|
||||
),
|
||||
glow = TangemColors3.Glow(
|
||||
magic = TangemColors3.Glow.Magic(
|
||||
step1 = TangemColorPalette.Yellow.`30`,
|
||||
step2 = Color(0x00DBF1FF),
|
||||
step3 = Color(0x00109FF0),
|
||||
step4 = TangemColorPalette.Blue.`40`,
|
||||
step5 = Color(0x00DBF1FF),
|
||||
step6 = Color(0x00C5A5FC),
|
||||
step7 = TangemColorPalette.Violet.`40`,
|
||||
step8 = Color(0x00FF979D),
|
||||
step9 = Color(0x4DC5A5FC),
|
||||
step10 = Color(0x00EEE7FD),
|
||||
),
|
||||
magicBlend = TangemColors3.Glow.MagicBlend(
|
||||
step1 = TangemColorPalette.Violet.`40`,
|
||||
step2 = Color(0x0098D7FF),
|
||||
step3 = Color(0x00FFC3AD),
|
||||
step4 = TangemColorPalette.Yellow.`30`,
|
||||
step5 = Color(0x009EE1AB),
|
||||
step6 = Color(0x00109FF0),
|
||||
step7 = TangemColorPalette.Green.`30`,
|
||||
step8 = Color(0x00B07BFD),
|
||||
step9 = Color(0x4DC5A5FC),
|
||||
step10 = Color(0x00FF979D),
|
||||
),
|
||||
success = TangemColors3.Glow.Success(
|
||||
step1 = TangemColorPalette.Green.`40`,
|
||||
step2 = Color(0x009EE1AB),
|
||||
step3 = Color(0x009EE1AB),
|
||||
step4 = TangemColorPalette.Green.`50`,
|
||||
step5 = Color(0x009EE1AB),
|
||||
step6 = Color(0x009EE1AB),
|
||||
step7 = TangemColorPalette.Green.`30`,
|
||||
step8 = Color(0x009EE1AB),
|
||||
step9 = Color(0x4D9EE1AB),
|
||||
step10 = Color(0x009EE1AB),
|
||||
),
|
||||
error = TangemColors3.Glow.Error(
|
||||
step1 = TangemColorPalette.Red.`40`,
|
||||
step2 = Color(0x00FFC0C3),
|
||||
step3 = Color(0x00FFC0C3),
|
||||
step4 = TangemColorPalette.Red.`50`,
|
||||
step5 = Color(0x00FFC0C3),
|
||||
step6 = Color(0x00FFC0C3),
|
||||
step7 = TangemColorPalette.Red.`30`,
|
||||
step8 = Color(0x00FFC0C3),
|
||||
step9 = Color(0x4DFFC0C3),
|
||||
step10 = Color(0x00FFC0C3),
|
||||
),
|
||||
warning = TangemColors3.Glow.Warning(
|
||||
step1 = TangemColorPalette.Yellow.`30`,
|
||||
step2 = Color(0x00F7CA75),
|
||||
step3 = Color(0x00F7CA75),
|
||||
step4 = TangemColorPalette.Yellow.`40`,
|
||||
step5 = Color(0x00F7CA75),
|
||||
step6 = Color(0x00F7CA75),
|
||||
step7 = TangemColorPalette.Yellow.`20`,
|
||||
step8 = Color(0x00F7CA75),
|
||||
step9 = Color(0x4DF7CA75),
|
||||
step10 = Color(0x00F7CA75),
|
||||
),
|
||||
info = TangemColors3.Glow.Info(
|
||||
step1 = TangemColorPalette.Blue.`40`,
|
||||
step2 = Color(0x0098D7FF),
|
||||
step3 = Color(0x0098D7FF),
|
||||
step4 = TangemColorPalette.Blue.`50`,
|
||||
step5 = Color(0x0098D7FF),
|
||||
step6 = Color(0x0098D7FF),
|
||||
step7 = TangemColorPalette.Blue.`30`,
|
||||
step8 = Color(0x0098D7FF),
|
||||
step9 = Color(0x4D98D7FF),
|
||||
step10 = Color(0x0098D7FF),
|
||||
),
|
||||
),
|
||||
material = TangemColors3.Material(
|
||||
tint = TangemColors3.Material.Tint(
|
||||
glass = Color(0x00000000),
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class TangemTypography3 internal constructor(fontFamily: FontFamily) {
|
|||
fontFamily = fontFamily,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
fontSize = 28.sp,
|
||||
lineHeight = 33.sp,
|
||||
lineHeight = 34.sp,
|
||||
letterSpacing = (-0.37).sp,
|
||||
lineHeightStyle = LineHeightStyle(
|
||||
alignment = LineHeightStyle.Alignment.Center,
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
f264a99d653eca57bedd4b49ff9ce5171ba9615770a57d574824e387f6cb1d5c
|
||||
023a0f2a00de6fcd99f046ded7f648786a000cf1b10b70e17c78b1efed9e63f6
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_address_polygon_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M4.53711 2.69414C5.02195 2.43596 5.60404 2.43592 6.08887 2.69414L7.75195 3.57988C8.28964 3.86657 8.62591 4.42656 8.62598 5.03594V5.49492C8.62547 5.83958 8.34573 6.11979 8.00098 6.11992C7.65613 6.1199 7.37649 5.83965 7.37598 5.49492V5.03594C7.37591 4.88841 7.29414 4.75294 7.16406 4.6834L5.50098 3.79766C5.38347 3.73507 5.24252 3.73512 5.125 3.79766L3.46191 4.6834C3.3317 4.7529 3.25007 4.88833 3.25 5.03594V7.38457C3.2502 7.53207 3.33176 7.66767 3.46191 7.73711L5.125 8.62285C5.24241 8.68521 5.3836 8.6853 5.50098 8.62285L9.91309 6.27324C10.3979 6.01506 10.98 6.01502 11.4648 6.27324L13.1279 7.15898C13.6656 7.44565 14.0019 8.00568 14.002 8.61504V10.9637C14.0018 11.573 13.6656 12.1331 13.1279 12.4197L11.4648 13.3055C10.9801 13.5636 10.3978 13.5635 9.91309 13.3055L8.25 12.4197C7.71226 12.1331 7.37617 11.573 7.37598 10.9637V10.5057C7.37598 10.1605 7.65581 9.88068 8.00098 9.88066C8.34604 9.88079 8.62598 10.1606 8.62598 10.5057V10.9637C8.62617 11.1113 8.70759 11.2478 8.83789 11.3172L10.501 12.2029C10.6183 12.2652 10.7597 12.2652 10.877 12.2029L12.54 11.3172C12.6703 11.2478 12.7518 11.1112 12.752 10.9637V8.61504C12.7519 8.46752 12.6701 8.33202 12.54 8.2625L10.877 7.37676C10.7595 7.31417 10.6185 7.31422 10.501 7.37676L6.08887 9.72637C5.60417 9.98446 5.02184 9.98437 4.53711 9.72637L2.87402 8.84062C2.33626 8.55404 2.0002 7.99392 2 7.38457V5.03594C2.00007 4.42648 2.3362 3.86654 2.87402 3.57988L4.53711 2.69414Z"),
|
||||
pathData = addPathNodes("M4.53711 2.69414C5.02195 2.43596 5.60404 2.43592 6.08887 2.69414L7.75195 3.57988C8.28964 3.86657 8.62591 4.42656 8.62598 5.03594V5.49492C8.62547 5.83958 8.34573 6.11979 8.00098 6.11992C7.65613 6.1199 7.37649 5.83965 7.37598 5.49492V5.03594C7.37591 4.88841 7.29414 4.75294 7.16406 4.6834L5.50098 3.79766C5.38347 3.73507 5.24252 3.73512 5.125 3.79766L3.46191 4.6834C3.3317 4.7529 3.25007 4.88833 3.25 5.03594V7.38457C3.2502 7.53207 3.33176 7.66767 3.46191 7.73711L5.125 8.62285C5.24241 8.68521 5.3836 8.6853 5.50098 8.62285L9.91309 6.27324C10.3979 6.01506 10.98 6.01502 11.4648 6.27324L13.1279 7.15898C13.6656 7.44565 14.0019 8.00567 14.002 8.61504V10.9637C14.0018 11.573 13.6656 12.1331 13.1279 12.4197L11.4648 13.3055C10.9801 13.5636 10.3978 13.5635 9.91309 13.3055L8.25 12.4197C7.71226 12.1331 7.37617 11.573 7.37598 10.9637V10.5057C7.37598 10.1605 7.65581 9.88068 8.00098 9.88066C8.34604 9.8808 8.62598 10.1606 8.62598 10.5057V10.9637C8.62617 11.1113 8.70759 11.2478 8.83789 11.3172L10.501 12.2029C10.6183 12.2652 10.7597 12.2652 10.877 12.2029L12.54 11.3172C12.6703 11.2478 12.7518 11.1112 12.752 10.9637V8.61504C12.7519 8.46752 12.6701 8.33202 12.54 8.2625L10.877 7.37676C10.7595 7.31417 10.6185 7.31422 10.501 7.37676L6.08887 9.72637C5.60417 9.98446 5.02184 9.98437 4.53711 9.72637L2.87402 8.84062C2.33626 8.55404 2.0002 7.99392 2 7.38457V5.03594C2.00007 4.42648 2.3362 3.86654 2.87402 3.57988L4.53711 2.69414Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_address_polygon_16!!
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_address_polygon_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.78125 3.21402C6.30813 2.92909 6.94286 2.92905 7.46973 3.21402L9.82031 4.48453C10.3935 4.79465 10.751 5.39437 10.751 6.04605V6.80484C10.7504 7.21849 10.4147 7.55467 10.001 7.55484C9.5871 7.55484 9.25152 7.21859 9.25098 6.80484V6.04605C9.25095 5.94518 9.19511 5.85194 9.10645 5.80386L6.75586 4.53335C6.67424 4.48924 6.57575 4.48921 6.49414 4.53335L4.14453 5.80386C4.05587 5.85194 4.00002 5.94518 4 6.04605V9.38882C4.00037 9.48941 4.056 9.58215 4.14453 9.63003L6.49414 10.9015C6.57557 10.9455 6.6744 10.9454 6.75586 10.9015L12.5312 7.7775C13.0582 7.4925 13.6938 7.4925 14.2207 7.7775L16.5703 9.04898C17.1435 9.35911 17.501 9.9588 17.501 10.6105V13.9523C17.5008 14.6039 17.1434 15.2038 16.5703 15.5138L14.2207 16.7853C13.6939 17.0701 13.058 17.0701 12.5312 16.7853L10.1816 15.5138C9.6085 15.2038 9.25119 14.6039 9.25098 13.9523V13.1945C9.25098 12.7803 9.58676 12.4445 10.001 12.4445C10.415 12.4447 10.751 12.7804 10.751 13.1945V13.9523C10.7512 14.053 10.806 14.1465 10.8945 14.1945L13.2451 15.466C13.3266 15.5099 13.4254 15.5099 13.5068 15.466L15.8574 14.1945C15.946 14.1465 16.0008 14.053 16.001 13.9523V10.6105C16.001 10.5097 15.946 10.4164 15.8574 10.3683L13.5068 9.09683C13.4253 9.05275 13.3267 9.05274 13.2451 9.09683L7.46973 12.2209C6.94305 12.5056 6.30796 12.5055 5.78125 12.2209L3.43066 10.9494C2.85767 10.6394 2.50037 10.0402 2.5 9.38882V6.04605C2.50002 5.39437 2.85752 4.79465 3.43066 4.48453L5.78125 3.21402Z"),
|
||||
pathData = addPathNodes("M5.78125 3.21402C6.30813 2.92909 6.94286 2.92905 7.46973 3.21402L9.82031 4.48453C10.3935 4.79465 10.751 5.39437 10.751 6.04605V6.80484C10.7504 7.21849 10.4147 7.55467 10.001 7.55484C9.5871 7.55484 9.25152 7.21859 9.25098 6.80484V6.04605C9.25095 5.94518 9.19511 5.85194 9.10645 5.80386L6.75586 4.53335C6.67424 4.48924 6.57575 4.48921 6.49414 4.53335L4.14453 5.80386C4.05587 5.85194 4.00002 5.94518 4 6.04605V9.38882C4.00037 9.48941 4.05601 9.58215 4.14453 9.63003L6.49414 10.9015C6.57557 10.9455 6.6744 10.9454 6.75586 10.9015L12.5312 7.7775C13.0582 7.4925 13.6938 7.4925 14.2207 7.7775L16.5703 9.04898C17.1435 9.35911 17.501 9.9588 17.501 10.6105V13.9523C17.5008 14.6039 17.1434 15.2038 16.5703 15.5138L14.2207 16.7853C13.6939 17.0701 13.058 17.0701 12.5312 16.7853L10.1816 15.5138C9.6085 15.2038 9.25119 14.6039 9.25098 13.9523V13.1945C9.25098 12.7803 9.58676 12.4445 10.001 12.4445C10.415 12.4447 10.751 12.7804 10.751 13.1945V13.9523C10.7512 14.053 10.806 14.1465 10.8945 14.1945L13.2451 15.466C13.3266 15.5099 13.4254 15.5099 13.5068 15.466L15.8574 14.1945C15.946 14.1465 16.0008 14.053 16.001 13.9523V10.6105C16.001 10.5097 15.946 10.4164 15.8574 10.3683L13.5068 9.09683C13.4253 9.05275 13.3267 9.05274 13.2451 9.09683L7.46973 12.2209C6.94305 12.5056 6.30796 12.5055 5.78125 12.2209L3.43066 10.9494C2.85767 10.6394 2.50037 10.0402 2.5 9.38882V6.04605C2.50002 5.39437 2.85752 4.79465 3.43066 4.48453L5.78125 3.21402Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_address_polygon_20!!
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_arrow_refresh_12: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.96777 5.4668C10.2623 5.4668 10.501 5.70545 10.501 6C10.501 8.48579 8.48581 10.501 6 10.501C4.62026 10.5007 3.39017 9.87706 2.56641 8.90039V9.30664C2.56606 9.6009 2.32754 9.83984 2.0332 9.83984C1.73913 9.83953 1.50035 9.6007 1.5 9.30664V7.65332C1.5 7.35896 1.73892 7.12043 2.0332 7.12012H3.68652C3.98107 7.12012 4.21973 7.35877 4.21973 7.65332C4.21954 7.94772 3.98096 8.18652 3.68652 8.18652H3.35938C3.98887 8.94784 4.93716 9.43331 6 9.43359C7.89672 9.43359 9.43457 7.89668 9.43457 6C9.43457 5.7056 9.67343 5.46705 9.96777 5.4668Z"),
|
||||
pathData = addPathNodes("M9.96777 5.4668C10.2623 5.4668 10.501 5.70545 10.501 6C10.501 8.48579 8.48581 10.501 6 10.501C4.62026 10.5007 3.39017 9.87706 2.56641 8.90039V9.30664C2.56606 9.6009 2.32754 9.83984 2.0332 9.83984C1.73913 9.83953 1.50035 9.6007 1.5 9.30664V7.65332C1.5 7.35896 1.73892 7.12043 2.0332 7.12012H3.68652C3.98107 7.12012 4.21973 7.35877 4.21973 7.65332C4.21954 7.94772 3.98096 8.18652 3.68652 8.18652H3.35938C3.98887 8.94784 4.93716 9.43331 6 9.43359C7.89672 9.43359 9.43457 7.89668 9.43457 6C9.43457 5.7056 9.67344 5.46705 9.96777 5.4668Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_arrow_refresh_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.8789 7.37695C13.224 7.37704 13.5039 7.65683 13.5039 8.00195C13.5039 11.0407 11.0407 13.5038 8.00195 13.5039C6.28439 13.5039 4.7571 12.713 3.75 11.4814V12.0664C3.74971 12.4113 3.46988 12.6913 3.125 12.6914C2.7801 12.6913 2.50029 12.4113 2.5 12.0664V10.0342C2.5 9.68908 2.77992 9.4093 3.125 9.40918H5.15723C5.50229 9.40932 5.78223 9.68909 5.78223 10.0342C5.78207 10.3791 5.50219 10.659 5.15723 10.6592H4.69141C5.47041 11.6307 6.66264 12.2539 8.00195 12.2539C10.3503 12.2538 12.2539 10.3503 12.2539 8.00195C12.2539 7.65678 12.5337 7.37695 12.8789 7.37695Z"),
|
||||
pathData = addPathNodes("M12.8789 7.37695C13.224 7.37704 13.5039 7.65683 13.5039 8.00195C13.5039 11.0407 11.0407 13.5038 8.00195 13.5039C6.28439 13.5039 4.7571 12.713 3.75 11.4814V12.0664C3.74971 12.4113 3.46988 12.6913 3.125 12.6914C2.7801 12.6913 2.50029 12.4113 2.5 12.0664V10.0342C2.5 9.68907 2.77992 9.4093 3.125 9.40918H5.15723C5.50229 9.40932 5.78223 9.68909 5.78223 10.0342C5.78207 10.3791 5.50219 10.659 5.15723 10.6592H4.69141C5.47041 11.6307 6.66264 12.2539 8.00195 12.2539C10.3503 12.2538 12.2539 10.3503 12.2539 8.00195C12.2539 7.65677 12.5337 7.37695 12.8789 7.37695Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_arrow_refresh_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_arrow_refresh_28: ImageVector
|
||||
get() {
|
||||
if (_ic_arrow_refresh_28 != null) return _ic_arrow_refresh_28!!
|
||||
_ic_arrow_refresh_28 = ImageVector.Builder(
|
||||
name = "ic_arrow_refresh_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M24.751 12.749C24.0606 12.749 23.501 13.3087 23.501 13.999C23.501 19.2457 19.248 23.4978 14.001 23.498C10.9116 23.498 8.16877 22.0188 6.43457 19.7275H7.72949C8.41975 19.7274 8.97949 19.1678 8.97949 18.4775C8.9793 17.7874 8.41963 17.2277 7.72949 17.2275H3.25C2.55993 17.2277 2.00019 17.7875 2 18.4775V22.9561C2 23.6463 2.55981 24.2059 3.25 24.2061C3.94026 24.2059 4.5 23.6463 4.5 22.9561V21.3115C6.69035 24.1575 10.1264 25.998 14.001 25.998C20.6286 25.9978 26.001 20.6265 26.001 13.999C26.001 13.3088 25.4412 12.7492 24.751 12.749Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14 2C7.37245 2.0002 2.00018 7.37166 2 13.999C2.00013 14.6891 2.55994 15.2488 3.25 15.249C3.94022 15.249 4.49987 14.6892 4.5 13.999C4.50018 8.75249 8.75304 4.5002 14 4.5C17.0888 4.50004 19.8312 5.97872 21.5654 8.26953H20.2715C19.5815 8.26973 19.0218 8.82959 19.0215 9.51953C19.0215 10.2098 19.5813 10.7693 20.2715 10.7695H24.751C25.4412 10.7693 26.001 10.2098 26.001 9.51953V5.04102C26.0008 4.35091 25.4411 3.79122 24.751 3.79102C24.0607 3.79102 23.5011 4.35078 23.501 5.04102V6.6875C21.3106 3.84097 17.8749 2.00004 14 2Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_arrow_refresh_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcArrowRefresh28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_arrow_refresh_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_binoculars_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_binoculars_28: ImageVector
|
||||
get() {
|
||||
if (_ic_binoculars_28 != null) return _ic_binoculars_28!!
|
||||
_ic_binoculars_28 = ImageVector.Builder(
|
||||
name = "ic_binoculars_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M19.7578 5.00391C21.6512 5.08382 23.2755 6.39977 23.751 8.24805L25.7334 15.9453C25.9024 16.4714 25.9951 17.028 25.9951 17.5996C25.995 19.7768 24.6902 21.7452 22.6816 22.5811C20.6717 23.4172 18.3597 22.9512 16.8262 21.4053C15.9614 20.5334 15.4557 19.438 15.3076 18.3047H12.6846C12.6248 18.7649 12.509 19.2228 12.3272 19.665C11.499 21.679 9.54216 22.9979 7.36622 22.998C5.19023 22.998 3.23354 21.679 2.40528 19.665C1.95365 18.5664 1.8872 17.377 2.16797 16.2725L2.18067 16.2168C2.18644 16.1951 2.19123 16.173 2.19727 16.1514L4.23438 8.24902C4.72469 6.34088 6.43972 5.00092 8.41114 5.00098C10.4237 5.00098 12.1068 6.38144 12.5879 8.24219H15.3984C15.8795 6.38135 17.5618 5.00015 19.5742 5L19.7578 5.00391ZM9.38868 15.5566C8.27017 14.4341 6.46227 14.4341 5.34376 15.5566C4.52086 16.3827 4.27211 17.6296 4.71778 18.7139C5.1632 19.7968 6.21056 20.498 7.36622 20.498C8.52184 20.4979 9.5693 19.7969 10.0147 18.7139C10.1716 18.3321 10.2405 17.9298 10.2305 17.5332H10.2256V17.4111C10.1795 16.7245 9.89192 16.0619 9.38868 15.5566ZM21.7207 14.9268C20.6517 14.4821 19.4204 14.7281 18.6006 15.5547C17.4807 16.684 17.4808 18.5152 18.6006 19.6445C19.4204 20.4709 20.6518 20.7179 21.7207 20.2734C22.7909 19.8282 23.495 18.774 23.4951 17.5996C23.4951 17.3576 23.4631 17.121 23.4063 16.8936L23.3975 16.8965L23.334 16.6504C23.0688 15.8823 22.4904 15.2471 21.7207 14.9268ZM12.7256 10.7422V15.8047H15.2598V10.7422H12.7256ZM8.41114 7.5C7.59 7.49995 6.86494 8.05939 6.65626 8.87109L5.72852 12.4717C7.21662 11.9941 8.87032 12.1841 10.2256 13.043V9.33301C10.2254 8.31386 9.40615 7.5 8.41114 7.5ZM19.5742 7.5C18.5794 7.50017 17.7599 8.31397 17.7598 9.33301V13.041C19.0875 12.1979 20.7338 11.9753 22.2549 12.4619L21.3301 8.87207C21.1214 8.06026 20.3955 7.49981 19.5742 7.5Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_binoculars_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcBinoculars28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_binoculars_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ val Icons.ic_checkmark_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.2784 6.30768C18.6608 5.90939 19.294 5.89615 19.6924 6.27839C20.0907 6.66081 20.104 7.29407 19.7217 7.69245L10.1202 17.6924C9.93164 17.8888 9.67073 18 9.3985 18.0001C9.12637 18 8.86632 17.8887 8.6778 17.6924L4.27838 13.1124C3.89612 12.714 3.90943 12.0808 4.30768 11.6983C4.70604 11.3161 5.33929 11.3294 5.72174 11.7276L9.39752 15.5557L18.2784 6.30768Z"),
|
||||
pathData = addPathNodes("M18.2784 6.30768C18.6608 5.90939 19.294 5.89615 19.6924 6.27839C20.0907 6.66081 20.104 7.29407 19.7217 7.69245L10.1202 17.6924C9.93164 17.8888 9.67073 18 9.3985 18.0001C9.12638 18 8.86632 17.8887 8.6778 17.6924L4.27838 13.1124C3.89612 12.714 3.90943 12.0808 4.30768 11.6983C4.70604 11.3161 5.33929 11.3294 5.72174 11.7276L9.39752 15.5557L18.2784 6.30768Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_checkmark_24!!
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ val Icons.ic_clock_12: ImageVector
|
|||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6 1C8.76142 1 11 3.23858 11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1ZM6 2C3.79086 2 2 3.79086 2 6C2 8.20914 3.79086 10 6 10C8.20914 10 10 8.20914 10 6C10 3.79086 8.20914 2 6 2Z"),
|
||||
)
|
||||
}.build()
|
||||
|
|
|
|||
|
|
@ -31,11 +31,11 @@ val Icons.ic_clock_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.36523 4.5C8.71001 4.50033 8.99003 4.7802 8.99023 5.125V8.26074C8.99023 8.60572 8.71014 8.88542 8.36523 8.88574H6.125C5.77982 8.88574 5.5 8.60592 5.5 8.26074C5.50026 7.91578 5.77998 7.63574 6.125 7.63574H7.74023V5.125C7.74044 4.78 8.02018 4.5 8.36523 4.5Z"),
|
||||
pathData = addPathNodes("M8.36523 4.5C8.71001 4.50033 8.99003 4.7802 8.99023 5.125V8.26074C8.99023 8.60572 8.71014 8.88542 8.36523 8.88574H6.125C5.77982 8.88574 5.5 8.60592 5.5 8.26074C5.50026 7.91578 5.77998 7.63574 6.125 7.63574H7.74023V5.125C7.74044 4.77999 8.02018 4.5 8.36523 4.5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.30957 2.00781C11.48 2.16874 14.001 4.79058 14.001 8.00098C14.0007 11.3147 11.3146 14.0006 8.00098 14.001C4.68703 14.001 2.00027 11.3149 2 8.00098C2 4.68687 4.68687 2 8.00098 2L8.30957 2.00781ZM8.00098 3.25C5.37722 3.25 3.25 5.37722 3.25 8.00098C3.25027 10.6245 5.37739 12.751 8.00098 12.751C10.6243 12.7506 12.7507 10.6243 12.751 8.00098C12.751 5.37743 10.6244 3.25033 8.00098 3.25Z"),
|
||||
)
|
||||
}.build()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ val Icons.ic_clock_20: ImageVector
|
|||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.4092 2.01074C14.6352 2.2248 17.996 5.71889 17.9961 9.99805C17.996 14.4151 14.4151 17.996 9.99805 17.9961C5.581 17.996 2.00007 14.4151 2 9.99805C2.00005 5.58099 5.58099 2.00005 9.99805 2L10.4092 2.01074ZM9.99805 3.5C6.40942 3.50005 3.50005 6.40942 3.5 9.99805C3.50007 13.5867 6.40943 16.496 9.99805 16.4961C13.5867 16.496 16.496 13.5867 16.4961 9.99805C16.496 6.40943 13.5867 3.50007 9.99805 3.5Z"),
|
||||
)
|
||||
}.build()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ val Icons.ic_clock_24: ImageVector
|
|||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4Z"),
|
||||
)
|
||||
}.build()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_clock_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_clock_28: ImageVector
|
||||
get() {
|
||||
if (_ic_clock_28 != null) return _ic_clock_28!!
|
||||
_ic_clock_28 = ImageVector.Builder(
|
||||
name = "ic_clock_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.522 6.77881C15.2123 6.77881 15.7719 7.33851 15.772 8.02881V14.5981C15.7717 15.2883 15.2122 15.8481 14.522 15.8481H9.74463C9.05481 15.8477 8.49492 15.288 8.49463 14.5981C8.4947 13.9081 9.05468 13.3486 9.74463 13.3481H13.272V8.02881C13.272 7.33887 13.8321 6.77938 14.522 6.77881Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.3101 2.00439C20.7939 2.16878 25.9993 7.47709 25.9995 14.0005C25.9993 20.6274 20.6274 25.9993 14.0005 25.9995C7.37353 25.9993 2.00068 20.6274 2.00049 14.0005C2.00072 7.37357 7.37355 2.00065 14.0005 2.00049L14.3101 2.00439ZM14.0005 4.50049C8.75426 4.50065 4.50072 8.75428 4.50049 14.0005C4.50068 19.2467 8.75424 23.4993 14.0005 23.4995C19.2467 23.4993 23.4993 19.2467 23.4995 14.0005C23.4993 8.7543 19.2467 4.50068 14.0005 4.50049Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_clock_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcClock28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_clock_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ val Icons.ic_clock_32: ImageVector
|
|||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.001 4C22.6288 4.00026 28.0027 9.37314 28.0029 16.001C28.0027 22.6288 22.6288 28.0027 16.001 28.0029C9.37314 28.0027 4.00026 22.6288 4 16.001C4.00026 9.37313 9.37313 4.00026 16.001 4ZM16.001 6.5C10.7538 6.50026 6.50026 10.7538 6.5 16.001C6.50026 21.2481 10.7538 25.5027 16.001 25.5029C21.2481 25.5027 25.5027 21.2481 25.5029 16.001C25.5027 10.7538 21.2481 6.50026 16.001 6.5Z"),
|
||||
)
|
||||
}.build()
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_cloud_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8 3.375C10.1072 3.375 11.8925 4.86911 12.1826 6.8584C13.556 7.11784 14.6248 8.27613 14.625 9.71387C14.625 11.3498 13.2412 12.625 11.5996 12.625H5C3.02705 12.625 1.375 11.0941 1.375 9.14258L1.37891 8.97754C1.45745 7.41255 2.61167 6.12397 4.14746 5.77051C4.82684 4.31304 6.33845 3.37577 8 3.375ZM8 4.625C6.70774 4.62572 5.58437 5.40923 5.18262 6.53516C5.10338 6.75663 4.90622 6.9146 4.67285 6.94434C3.47814 7.09672 2.62729 8.05592 2.625 9.14355C2.6254 10.3476 3.6595 11.375 5 11.375H11.5996C12.609 11.375 13.375 10.6027 13.375 9.71387C13.3748 8.82524 12.6088 8.05371 11.5996 8.05371C11.2547 8.0535 10.9747 7.77369 10.9746 7.42871C10.9746 5.90873 9.67213 4.625 8 4.625Z"),
|
||||
pathData = addPathNodes("M8 3.375C10.1072 3.375 11.8925 4.86911 12.1826 6.8584C13.556 7.11784 14.6248 8.27613 14.625 9.71387C14.625 11.3498 13.2412 12.625 11.5996 12.625H5C3.02705 12.625 1.375 11.0941 1.375 9.14258L1.37891 8.97754C1.45745 7.41255 2.61167 6.12397 4.14746 5.77051C4.82684 4.31304 6.33845 3.37577 8 3.375ZM8 4.625C6.70774 4.62572 5.58437 5.40923 5.18262 6.53516C5.10338 6.75663 4.90621 6.9146 4.67285 6.94434C3.47814 7.09672 2.62729 8.05592 2.625 9.14355C2.6254 10.3476 3.6595 11.375 5 11.375H11.5996C12.609 11.375 13.375 10.6027 13.375 9.71387C13.3748 8.82524 12.6088 8.05371 11.5996 8.05371C11.2547 8.0535 10.9747 7.77369 10.9746 7.42871C10.9746 5.90873 9.67213 4.625 8 4.625Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_cloud_16!!
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_copy_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7.23633 4.93848C7.78585 4.93848 8.23583 4.93797 8.60059 4.96777C8.97264 4.99819 9.3113 5.06328 9.62793 5.22461C10.1217 5.47629 10.5238 5.87829 10.7754 6.37207C10.9365 6.68855 11.0009 7.02757 11.0313 7.39941C11.061 7.76414 11.0615 8.21431 11.0615 8.76367V9.67285C11.0615 10.2223 11.061 10.6724 11.0313 11.0371C11.0008 11.4091 10.9367 11.7479 10.7754 12.0645C10.5237 12.5583 10.1218 12.9603 9.62793 13.2119C9.31131 13.3732 8.97262 13.4374 8.60059 13.4678C8.23583 13.4976 7.78585 13.498 7.23633 13.498H6.32715C5.77772 13.498 5.32764 13.4975 4.96289 13.4678C4.59102 13.4374 4.25204 13.373 3.93555 13.2119C3.44178 12.9603 3.03977 12.5582 2.78809 12.0645C2.62678 11.7479 2.56167 11.4091 2.53125 11.0371C2.50145 10.6724 2.50195 10.2223 2.50195 9.67285V8.76367C2.50195 8.21431 2.5015 7.76414 2.53125 7.39941C2.56164 7.02743 2.62688 6.68865 2.78809 6.37207C3.03975 5.87815 3.44162 5.47628 3.93555 5.22461C4.25218 5.06334 4.59084 4.99817 4.96289 4.96777C5.32764 4.93801 5.77771 4.93848 6.32715 4.93848H7.23633ZM6.32715 6.18848C5.757 6.18848 5.36656 6.18921 5.06445 6.21387C4.76993 6.23793 4.61402 6.28136 4.50293 6.33789C4.24421 6.46972 4.03319 6.68073 3.90137 6.93945C3.84488 7.05054 3.8014 7.20661 3.77734 7.50098C3.7527 7.80306 3.75195 8.19363 3.75195 8.76367V9.67285C3.75195 10.2429 3.75267 10.6335 3.77734 10.9355C3.80145 11.23 3.84479 11.386 3.90137 11.4971C4.03321 11.7556 4.24433 11.9659 4.50293 12.0977C4.61402 12.1542 4.76999 12.1986 5.06445 12.2227C5.36654 12.2473 5.75706 12.248 6.32715 12.248H7.23633C7.80643 12.248 8.19696 12.2473 8.49902 12.2227C8.79361 12.1986 8.94948 12.1542 9.06055 12.0977C9.31902 11.9659 9.52934 11.7555 9.66113 11.4971C9.71771 11.386 9.76203 11.23 9.78613 10.9355C9.81081 10.6335 9.81152 10.2429 9.81152 9.67285V8.76367C9.81152 8.19367 9.81077 7.80305 9.78613 7.50098C9.76208 7.20657 9.71763 7.05054 9.66113 6.93945C9.52936 6.68084 9.31912 6.46973 9.06055 6.33789C8.94949 6.28131 8.79354 6.23797 8.49902 6.21387C8.19696 6.18919 7.80643 6.18848 7.23633 6.18848H6.32715Z"),
|
||||
pathData = addPathNodes("M7.23633 4.93848C7.78585 4.93848 8.23583 4.93797 8.60059 4.96777C8.97264 4.99819 9.3113 5.06328 9.62793 5.22461C10.1217 5.47629 10.5238 5.87829 10.7754 6.37207C10.9365 6.68855 11.0009 7.02757 11.0313 7.39941C11.061 7.76414 11.0615 8.21431 11.0615 8.76367V9.67285C11.0615 10.2223 11.061 10.6724 11.0313 11.0371C11.0008 11.4091 10.9367 11.7479 10.7754 12.0645C10.5237 12.5583 10.1218 12.9603 9.62793 13.2119C9.31131 13.3732 8.97262 13.4374 8.60059 13.4678C8.23583 13.4976 7.78585 13.498 7.23633 13.498H6.32715C5.77772 13.498 5.32764 13.4975 4.96289 13.4678C4.59102 13.4374 4.25204 13.373 3.93555 13.2119C3.44178 12.9603 3.03977 12.5582 2.78809 12.0645C2.62678 11.7479 2.56167 11.4091 2.53125 11.0371C2.50145 10.6724 2.50195 10.2223 2.50195 9.67285V8.76367C2.50195 8.21431 2.5015 7.76414 2.53125 7.39941C2.56164 7.02743 2.62688 6.68865 2.78809 6.37207C3.03975 5.87815 3.44162 5.47628 3.93555 5.22461C4.25218 5.06334 4.59084 4.99817 4.96289 4.96777C5.32764 4.93801 5.77771 4.93848 6.32715 4.93848H7.23633ZM6.32715 6.18848C5.757 6.18848 5.36655 6.18921 5.06445 6.21387C4.76993 6.23793 4.61402 6.28136 4.50293 6.33789C4.24421 6.46972 4.03319 6.68073 3.90137 6.93945C3.84488 7.05054 3.8014 7.20661 3.77734 7.50098C3.7527 7.80306 3.75195 8.19363 3.75195 8.76367V9.67285C3.75195 10.2429 3.75267 10.6335 3.77734 10.9355C3.80145 11.23 3.84479 11.386 3.90137 11.4971C4.03321 11.7556 4.24433 11.9659 4.50293 12.0977C4.61402 12.1542 4.76999 12.1986 5.06445 12.2227C5.36654 12.2473 5.75706 12.248 6.32715 12.248H7.23633C7.80643 12.248 8.19696 12.2473 8.49902 12.2227C8.79361 12.1986 8.94948 12.1542 9.06055 12.0977C9.31902 11.9659 9.52934 11.7555 9.66113 11.4971C9.71771 11.386 9.76203 11.23 9.78613 10.9355C9.81081 10.6335 9.81152 10.2429 9.81152 9.67285V8.76367C9.81152 8.19367 9.81077 7.80305 9.78613 7.50098C9.76208 7.20657 9.71763 7.05054 9.66113 6.93945C9.52936 6.68084 9.31912 6.46973 9.06055 6.33789C8.94949 6.28131 8.79354 6.23797 8.49902 6.21387C8.19696 6.18919 7.80643 6.18848 7.23633 6.18848H6.32715Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_copy_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.125 6.125C9.81266 6.125 10.3736 6.124 10.8281 6.16113C11.2914 6.19898 11.7099 6.2804 12.1006 6.47949C12.7119 6.79105 13.209 7.28807 13.5205 7.89941C13.7195 8.2901 13.801 8.70869 13.8389 9.17188C13.876 9.62634 13.875 10.1874 13.875 10.875V12.25C13.875 12.9375 13.876 13.4987 13.8389 13.9531C13.801 14.4163 13.7196 14.8349 13.5205 15.2256C13.2089 15.837 12.7121 16.3349 12.1006 16.6465C11.7099 16.8455 11.2913 16.926 10.8281 16.9639C10.3736 17.001 9.81266 17 9.125 17H7.75C7.06232 17 6.50138 17.001 6.04688 16.9639C5.5837 16.926 5.1651 16.8455 4.77442 16.6465C4.16295 16.3349 3.66609 15.837 3.35449 15.2256C3.15544 14.8349 3.07399 14.4163 3.03614 13.9531C2.99903 13.4987 3 12.9375 3 12.25V10.875C3 10.1874 2.99902 9.62634 3.03614 9.17188C3.07398 8.70869 3.15547 8.2901 3.35449 7.89941C3.66604 7.28808 4.16309 6.79106 4.77442 6.47949C5.16514 6.28041 5.58363 6.19898 6.04688 6.16113C6.50138 6.124 7.06232 6.125 7.75 6.125H9.125ZM7.75 7.625C7.03757 7.625 6.5482 7.62526 6.16895 7.65625C5.79853 7.68652 5.5991 7.74205 5.45508 7.81543C5.12602 7.98318 4.85816 8.251 4.69043 8.58008C4.61709 8.72409 4.56151 8.92366 4.53125 9.29395C4.50028 9.67317 4.5 10.1627 4.5 10.875V12.25C4.5 12.9622 4.50028 13.4519 4.53125 13.8311C4.56153 14.2014 4.61705 14.4009 4.69043 14.5449C4.85816 14.874 5.12601 15.1418 5.45508 15.3096C5.5991 15.3829 5.79861 15.4385 6.16895 15.4688C6.5482 15.4997 7.03757 15.5 7.75 15.5H9.125C9.83743 15.5 10.3268 15.4997 10.7061 15.4688C11.0765 15.4385 11.2759 15.3829 11.4199 15.3096C11.749 15.1418 12.0168 14.874 12.1846 14.5449C12.258 14.4009 12.3135 14.2014 12.3438 13.8311C12.3747 13.4519 12.375 12.9622 12.375 12.25V10.875C12.375 10.1627 12.3747 9.67317 12.3438 9.29395C12.3135 8.92366 12.2579 8.72409 12.1846 8.58008C12.0168 8.25099 11.749 7.98317 11.4199 7.81543C11.2759 7.74204 11.0765 7.68652 10.7061 7.65625C10.3268 7.62526 9.83744 7.625 9.125 7.625H7.75Z"),
|
||||
pathData = addPathNodes("M9.125 6.125C9.81266 6.125 10.3736 6.124 10.8281 6.16113C11.2914 6.19898 11.7099 6.2804 12.1006 6.47949C12.7119 6.79105 13.209 7.28807 13.5205 7.89941C13.7195 8.2901 13.801 8.70869 13.8389 9.17188C13.876 9.62634 13.875 10.1874 13.875 10.875V12.25C13.875 12.9375 13.876 13.4987 13.8389 13.9531C13.801 14.4163 13.7196 14.8349 13.5205 15.2256C13.2089 15.837 12.7121 16.3349 12.1006 16.6465C11.7099 16.8455 11.2913 16.926 10.8281 16.9639C10.3736 17.001 9.81266 17 9.125 17H7.75C7.06232 17 6.50138 17.001 6.04688 16.9639C5.5837 16.926 5.1651 16.8455 4.77442 16.6465C4.16295 16.3349 3.66609 15.837 3.35449 15.2256C3.15544 14.8349 3.07399 14.4163 3.03614 13.9531C2.99903 13.4987 3 12.9375 3 12.25V10.875C3 10.1874 2.99902 9.62634 3.03614 9.17188C3.07398 8.70869 3.15547 8.2901 3.35449 7.89941C3.66604 7.28808 4.16309 6.79106 4.77442 6.47949C5.16514 6.28041 5.58363 6.19898 6.04688 6.16113C6.50138 6.124 7.06232 6.125 7.75 6.125H9.125ZM7.75 7.625C7.03757 7.625 6.5482 7.62526 6.16895 7.65625C5.79853 7.68652 5.5991 7.74205 5.45508 7.81543C5.12601 7.98318 4.85816 8.251 4.69043 8.58008C4.61709 8.72409 4.56151 8.92366 4.53125 9.29395C4.50028 9.67317 4.5 10.1627 4.5 10.875V12.25C4.5 12.9622 4.50028 13.4519 4.53125 13.8311C4.56153 14.2014 4.61705 14.4009 4.69043 14.5449C4.85816 14.874 5.12601 15.1418 5.45508 15.3096C5.5991 15.3829 5.79861 15.4385 6.16895 15.4688C6.5482 15.4997 7.03757 15.5 7.75 15.5H9.125C9.83743 15.5 10.3268 15.4997 10.7061 15.4688C11.0765 15.4385 11.2759 15.3829 11.4199 15.3096C11.749 15.1418 12.0168 14.874 12.1846 14.5449C12.258 14.4009 12.3135 14.2014 12.3438 13.8311C12.3747 13.4519 12.375 12.9622 12.375 12.25V10.875C12.375 10.1627 12.3747 9.67317 12.3438 9.29395C12.3135 8.92366 12.2579 8.72409 12.1846 8.58008C12.0168 8.25099 11.749 7.98317 11.4199 7.81543C11.2759 7.74204 11.0765 7.68652 10.7061 7.65625C10.3268 7.62526 9.83744 7.625 9.125 7.625H7.75Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_dots_horizontal_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.09953 10.5059C6.87727 10.5599 7.49688 11.2045 7.49699 12C7.49686 12.8273 6.82427 13.5 5.99699 13.5C5.17312 13.4997 4.50325 12.8325 4.49797 12.0098L4.49699 12.0107C4.48844 11.2094 5.11151 10.5611 5.88761 10.5059C5.92247 10.5022 5.95823 10.5 5.99406 10.5C6.02951 10.5 6.06503 10.5023 6.09953 10.5059Z"),
|
||||
pathData = addPathNodes("M6.09953 10.5059C6.87727 10.5599 7.49688 11.2045 7.49699 12C7.49686 12.8273 6.82428 13.5 5.99699 13.5C5.17312 13.4997 4.50325 12.8325 4.49797 12.0098L4.49699 12.0107C4.48844 11.2094 5.11151 10.5611 5.88761 10.5059C5.92247 10.5022 5.95823 10.5 5.99406 10.5C6.02951 10.5 6.06503 10.5023 6.09953 10.5059Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ val Icons.ic_edit_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.7041 3C15.3127 3.00063 15.8962 3.24314 16.3262 3.67383C16.757 4.10457 16.999 4.68886 16.999 5.29785C16.999 5.90709 16.7569 6.49135 16.3262 6.92188C16.3189 6.92918 16.3103 6.93545 16.3027 6.94238H16.3047C16.3081 6.93926 16.3135 6.93451 16.3154 6.93262L15.834 7.41406C15.5321 7.7158 15.1182 8.12892 14.6719 8.5752C13.7792 9.46776 12.7549 10.4922 12.2285 11.0186C11.8808 11.3662 11.4265 11.5868 10.9385 11.6465L9.86133 11.7803C9.40623 11.8364 8.95107 11.6769 8.62988 11.3496C8.30873 11.0223 8.15798 10.5643 8.22266 10.1104L8.38184 8.99317C8.44827 8.52187 8.66648 8.08476 9.00293 7.74805C9.73986 7.0108 11.5406 5.20998 13.0791 3.67188C13.51 3.24129 14.0949 2.99946 14.7041 3ZM15.2656 4.7334C15.1166 4.58395 14.9132 4.50024 14.7021 4.5C14.5177 4.49995 14.3398 4.56396 14.1982 4.67969L14.1396 4.73242C12.6013 6.27043 10.8013 8.07145 10.0645 8.80859C9.95776 8.91535 9.8881 9.05365 9.86719 9.20313V9.20606L9.71289 10.2861L10.7549 10.1582H10.7568C10.9123 10.1391 11.0572 10.0687 11.168 9.95801L15.2686 5.85742C15.416 5.70838 15.499 5.50744 15.499 5.29785C15.499 5.08655 15.4149 4.88268 15.2656 4.7334Z"),
|
||||
pathData = addPathNodes("M14.7041 3C15.3127 3.00063 15.8962 3.24314 16.3262 3.67383C16.757 4.10457 16.999 4.68886 16.999 5.29785C16.999 5.90709 16.7569 6.49135 16.3262 6.92188C16.3189 6.92918 16.3103 6.93545 16.3027 6.94238H16.3047C16.3081 6.93926 16.3135 6.93451 16.3154 6.93262L15.834 7.41406C15.5321 7.7158 15.1182 8.12892 14.6719 8.5752C13.7792 9.46775 12.7549 10.4922 12.2285 11.0186C11.8808 11.3662 11.4265 11.5868 10.9385 11.6465L9.86133 11.7803C9.40623 11.8364 8.95107 11.6769 8.62988 11.3496C8.30873 11.0223 8.15798 10.5643 8.22266 10.1104L8.38184 8.99317C8.44827 8.52187 8.66648 8.08476 9.00293 7.74805C9.73986 7.0108 11.5406 5.20998 13.0791 3.67188C13.51 3.24129 14.0949 2.99946 14.7041 3ZM15.2656 4.7334C15.1166 4.58395 14.9132 4.50024 14.7021 4.5C14.5177 4.49995 14.3398 4.56396 14.1982 4.67969L14.1396 4.73242C12.6013 6.27043 10.8013 8.07145 10.0645 8.80859C9.95776 8.91535 9.8881 9.05365 9.86719 9.20313V9.20606L9.71289 10.2861L10.7549 10.1582H10.7568C10.9123 10.1391 11.0572 10.0687 11.168 9.95801L15.2686 5.85742C15.416 5.70838 15.499 5.50744 15.499 5.29785C15.499 5.08655 15.4149 4.88268 15.2656 4.7334Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_edit_20!!
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_error_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.0791 10.0029C8.47125 10.0427 8.77901 10.3735 8.7793 10.7783C8.77927 11.2087 8.43035 11.5576 8 11.5576C7.59677 11.5574 7.26459 11.2512 7.22461 10.8584L7.2207 10.7783C7.22033 10.3459 7.57225 9.99916 8 9.99902L8.0791 10.0029Z"),
|
||||
pathData = addPathNodes("M8.0791 10.0029C8.47125 10.0427 8.77901 10.3735 8.7793 10.7783C8.77927 11.2087 8.43035 11.5576 8 11.5576C7.59677 11.5574 7.26459 11.2512 7.22461 10.8584L7.2207 10.7783C7.22032 10.3459 7.57225 9.99916 8 9.99902L8.0791 10.0029Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ val Icons.ic_error_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.5537 2.00195C13.1795 2.00199 13.7802 2.25102 14.2227 2.69336L17.3047 5.77539C17.7485 6.21806 17.998 6.81932 17.998 7.44531V12.5537C17.998 13.1795 17.749 13.7802 17.3066 14.2227L13.752 17.7783C13.6113 17.919 13.4196 17.998 13.2207 17.998H7.44531C6.81953 17.998 6.21879 17.7489 5.77637 17.3066L2.69336 14.2236C2.25101 13.7812 2.00204 13.1805 2.00195 12.5547V7.44531C2.00201 6.81948 2.25098 6.2188 2.69336 5.77637L5.77637 2.69336C6.21881 2.25099 6.81947 2.002 7.44531 2.00195H12.5537ZM7.44531 3.50195C7.21775 3.502 6.99836 3.59252 6.83691 3.75391L3.75391 6.83691C3.59252 6.99836 3.50201 7.21775 3.50195 7.44531V12.5547C3.50204 12.7822 3.59255 13.0017 3.75391 13.1631L6.83691 16.2451C6.99838 16.4066 7.21769 16.498 7.44531 16.498H12.9102L16.2451 13.1621C16.4066 13.0006 16.498 12.7813 16.498 12.5537V7.44531C16.498 7.2178 16.4068 6.99912 16.2451 6.83789L13.1621 3.75391C13.0007 3.59255 12.7813 3.50199 12.5537 3.50195H7.44531Z"),
|
||||
pathData = addPathNodes("M12.5537 2.00195C13.1795 2.00199 13.7802 2.25102 14.2227 2.69336L17.3047 5.77539C17.7485 6.21806 17.998 6.81932 17.998 7.44531V12.5537C17.998 13.1795 17.749 13.7802 17.3066 14.2227L13.752 17.7783C13.6113 17.919 13.4196 17.998 13.2207 17.998H7.44531C6.81953 17.998 6.21879 17.7489 5.77637 17.3066L2.69336 14.2236C2.25101 13.7812 2.00204 13.1805 2.00195 12.5547V7.44531C2.00201 6.81948 2.25098 6.2188 2.69336 5.77637L5.77637 2.69336C6.21881 2.25099 6.81947 2.002 7.44531 2.00195H12.5537ZM7.44531 3.50195C7.21775 3.502 6.99836 3.59252 6.83691 3.75391L3.75391 6.83691C3.59252 6.99836 3.502 7.21775 3.50195 7.44531V12.5547C3.50204 12.7822 3.59255 13.0017 3.75391 13.1631L6.83691 16.2451C6.99838 16.4066 7.21769 16.498 7.44531 16.498H12.9102L16.2451 13.1621C16.4066 13.0006 16.498 12.7813 16.498 12.5537V7.44531C16.498 7.2178 16.4068 6.99912 16.2451 6.83789L13.1621 3.75391C13.0007 3.59255 12.7813 3.50199 12.5537 3.50195H7.44531Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_error_20!!
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ val Icons.ic_error_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.1709 2C15.9664 2 16.7297 2.31661 17.292 2.87891L21.1191 6.70605L21.3193 6.92578C21.7579 7.45976 22 8.13194 22 8.82812V15.1709C22 15.9664 21.6834 16.7297 21.1211 17.292L16.707 21.707C16.5195 21.8946 16.2652 22 16 22H8.82812C8.03264 22 7.26935 21.6834 6.70703 21.1211L2.87891 17.293C2.31662 16.7307 2 15.9674 2 15.1719V8.82812C2 8.03264 2.31662 7.26935 2.87891 6.70703L6.70703 2.87891C7.26935 2.31662 8.03264 2 8.82812 2H15.1709ZM8.82812 4C8.56367 4 8.30876 4.10533 8.12109 4.29297L4.29297 8.12109C4.10533 8.30876 4 8.56367 4 8.82812V15.1719C4 15.4363 4.10533 15.6912 4.29297 15.8789L8.12109 19.707C8.30876 19.8947 8.56367 20 8.82812 20H15.5859L19.707 15.8779L19.7734 15.8047C19.9194 15.6266 20 15.4024 20 15.1709V8.82812C20 8.56383 19.8948 8.30943 19.707 8.12207L15.8779 4.29297C15.6903 4.10533 15.4354 4 15.1709 4H8.82812Z"),
|
||||
pathData = addPathNodes("M15.1709 2C15.9664 2 16.7297 2.31661 17.292 2.87891L21.1191 6.70605L21.3193 6.92578C21.7579 7.45976 22 8.13194 22 8.82812V15.1709C22 15.9664 21.6834 16.7297 21.1211 17.292L16.707 21.707C16.5195 21.8946 16.2652 22 16 22H8.82812C8.03264 22 7.26935 21.6834 6.70703 21.1211L2.87891 17.293C2.31662 16.7306 2 15.9674 2 15.1719V8.82812C2 8.03264 2.31662 7.26935 2.87891 6.70703L6.70703 2.87891C7.26935 2.31662 8.03264 2 8.82812 2H15.1709ZM8.82812 4C8.56367 4 8.30876 4.10533 8.12109 4.29297L4.29297 8.12109C4.10533 8.30876 4 8.56367 4 8.82812V15.1719C4 15.4363 4.10533 15.6912 4.29297 15.8789L8.12109 19.707C8.30876 19.8947 8.56367 20 8.82812 20H15.5859L19.707 15.8779L19.7734 15.8047C19.9194 15.6266 20 15.4024 20 15.1709V8.82812C20 8.56383 19.8948 8.30943 19.707 8.12207L15.8779 4.29297C15.6903 4.10533 15.4354 4 15.1709 4H8.82812Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_error_24!!
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ val Icons.ic_gauge_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.1219 6.72445C12.4133 6.43066 12.8883 6.42759 13.1825 6.71859C13.4765 7.00977 13.479 7.48477 13.1883 7.77914L10.4637 10.5311C10.1723 10.8253 9.69749 10.8273 9.40318 10.536C9.1089 10.2446 9.10599 9.76976 9.39732 9.47543L12.1219 6.72445Z"),
|
||||
pathData = addPathNodes("M12.1219 6.72445C12.4133 6.43067 12.8883 6.42759 13.1825 6.71859C13.4765 7.00977 13.479 7.48477 13.1883 7.77914L10.4637 10.5311C10.1723 10.8253 9.69749 10.8273 9.40318 10.536C9.1089 10.2446 9.10599 9.76976 9.39732 9.47543L12.1219 6.72445Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_gauge_20!!
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_16: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_16: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_16 != null) return _ic_grid_16!!
|
||||
_ic_grid_16 = ImageVector.Builder(
|
||||
name = "ic_grid_16",
|
||||
defaultWidth = 16.dp,
|
||||
defaultHeight = 16.dp,
|
||||
viewportWidth = 16f,
|
||||
viewportHeight = 16f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.46191 8.71777C6.46661 8.71817 7.28125 9.53232 7.28125 10.5371V12.1797C7.28095 13.1842 6.46643 13.9986 5.46191 13.999H3.81934C2.81448 13.999 2.0003 13.1845 2 12.1797V10.5371C2 9.53207 2.8143 8.71777 3.81934 8.71777H5.46191ZM3.81934 9.96777C3.50465 9.96777 3.25 10.2224 3.25 10.5371V12.1797C3.25029 12.4941 3.50484 12.749 3.81934 12.749H5.46191C5.77607 12.7486 6.03096 12.4939 6.03125 12.1797V10.5371C6.03125 10.2227 5.77626 9.96817 5.46191 9.96777H3.81934Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.1797 8.71777C13.1844 8.71818 13.999 9.53233 13.999 10.5371V12.1797C13.9987 13.1842 13.1842 13.9986 12.1797 13.999H10.5371C9.53225 13.999 8.71807 13.1845 8.71777 12.1797V10.5371C8.71777 9.53207 9.53207 8.71777 10.5371 8.71777H12.1797ZM10.5371 9.96777C10.2224 9.96777 9.96777 10.2224 9.96777 10.5371V12.1797C9.96807 12.4941 10.2226 12.749 10.5371 12.749H12.1797C12.4938 12.7486 12.7487 12.4939 12.749 12.1797V10.5371C12.749 10.2227 12.494 9.96818 12.1797 9.96777H10.5371Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.46191 2C6.46661 2.0004 7.28125 2.81454 7.28125 3.81934V5.46191C7.2808 6.46632 6.46634 7.28085 5.46191 7.28125H3.81934C2.81458 7.28125 2.00045 6.46657 2 5.46191V3.81934C2 2.8143 2.8143 2 3.81934 2H5.46191ZM3.81934 3.25C3.50465 3.25 3.25 3.50465 3.25 3.81934V5.46191C3.25045 5.77621 3.50493 6.03125 3.81934 6.03125H5.46191C5.77598 6.03085 6.0308 5.77597 6.03125 5.46191V3.81934C6.03125 3.5049 5.77626 3.2504 5.46191 3.25H3.81934Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.1797 2C13.1844 2.00041 13.999 2.81455 13.999 3.81934V5.46191C13.9986 6.46632 13.1841 7.28084 12.1797 7.28125H10.5371C9.53235 7.28125 8.71822 6.46657 8.71777 5.46191V3.81934C8.71777 2.8143 9.53207 2 10.5371 2H12.1797ZM10.5371 3.25C10.2224 3.25 9.96777 3.50465 9.96777 3.81934V5.46191C9.96822 5.77621 10.2227 6.03125 10.5371 6.03125H12.1797C12.4937 6.03084 12.7486 5.77596 12.749 5.46191V3.81934C12.749 3.50491 12.494 3.25041 12.1797 3.25H10.5371Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_16!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGrid16Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_16,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_20: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_20 != null) return _ic_grid_20!!
|
||||
_ic_grid_20 = ImageVector.Builder(
|
||||
name = "ic_grid_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.57617 11.0615C7.88022 11.0617 8.93652 12.1188 8.93652 13.4229V15.6377C8.93616 16.9415 7.88 17.9978 6.57617 17.998H4.36133C3.05744 17.9979 2.00036 16.9415 2 15.6377V13.4229C2 12.1187 3.05722 11.0616 4.36133 11.0615H6.57617ZM4.36133 12.5615C3.88564 12.5616 3.5 12.9471 3.5 13.4229V15.6377C3.50036 16.1131 3.88587 16.4979 4.36133 16.498H6.57617C7.05157 16.4978 7.43616 16.1131 7.43652 15.6377V13.4229C7.43652 12.9472 7.05179 12.5617 6.57617 12.5615H4.36133Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.6377 11.0615C16.9417 11.0618 17.998 12.1188 17.998 13.4229V15.6377C17.9977 16.9414 16.9415 17.9978 15.6377 17.998H13.4229C12.1189 17.998 11.0619 16.9416 11.0615 15.6377V13.4229C11.0615 12.1186 12.1186 11.0615 13.4229 11.0615H15.6377ZM13.4229 12.5615C12.9471 12.5615 12.5615 12.9471 12.5615 13.4229V15.6377C12.5619 16.1132 12.9473 16.498 13.4229 16.498H15.6377C16.113 16.4978 16.4977 16.113 16.498 15.6377V13.4229C16.498 12.9472 16.1133 12.5618 15.6377 12.5615H13.4229Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.57617 2C7.88017 2.0002 8.93645 3.0573 8.93652 4.36133V6.57617C8.93633 7.8801 7.8801 8.93633 6.57617 8.93652H4.36133C3.05734 8.9364 2.0002 7.88014 2 6.57617V4.36133C2.00007 3.05725 3.05726 2.00012 4.36133 2H6.57617ZM4.36133 3.5C3.88569 3.50012 3.50007 3.88568 3.5 4.36133V6.57617C3.5002 7.05172 3.88577 7.4364 4.36133 7.43652H6.57617C7.05167 7.43633 7.43633 7.05167 7.43652 6.57617V4.36133C7.43645 3.88572 7.05175 3.5002 6.57617 3.5H4.36133Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.6377 2C16.9416 2.00026 17.998 3.05734 17.998 4.36133V6.57617C17.9978 7.88006 16.9416 8.93626 15.6377 8.93652H13.4229C12.1188 8.93652 11.0617 7.88022 11.0615 6.57617V4.36133C11.0616 3.05718 12.1187 2 13.4229 2H15.6377ZM13.4229 3.5C12.9471 3.5 12.5616 3.8856 12.5615 4.36133V6.57617C12.5617 7.05179 12.9472 7.43652 13.4229 7.43652H15.6377C16.1131 7.43626 16.4978 7.05163 16.498 6.57617V4.36133C16.498 3.88576 16.1132 3.50026 15.6377 3.5H13.4229Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGrid20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_24: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_24 != null) return _ic_grid_24!!
|
||||
_ic_grid_24 = ImageVector.Builder(
|
||||
name = "ic_grid_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7.74902 13.249C9.40615 13.249 10.749 14.5919 10.749 16.249V18.998C10.7488 20.6551 9.40603 21.998 7.74902 21.998H5C3.34319 21.9978 2.00018 20.6549 2 18.998V16.249C2 14.592 3.34308 13.2493 5 13.249H7.74902ZM5 15.249C4.44756 15.2493 4 15.6967 4 16.249V18.998C4.00018 19.5502 4.44767 19.9978 5 19.998H7.74902C8.30156 19.998 8.74884 19.5504 8.74902 18.998V16.249C8.74902 15.6965 8.30167 15.249 7.74902 15.249H5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.998 13.249C20.6552 13.249 21.998 14.5919 21.998 16.249V18.998C21.9979 20.6551 20.6551 21.998 18.998 21.998H16.249C14.5921 21.9979 13.2492 20.655 13.249 18.998V16.249C13.249 14.5919 14.592 13.2491 16.249 13.249H18.998ZM16.249 15.249C15.6965 15.2491 15.249 15.6966 15.249 16.249V18.998C15.2492 19.5503 15.6966 19.9979 16.249 19.998H18.998C19.5506 19.998 19.9979 19.5504 19.998 18.998V16.249C19.998 15.6965 19.5507 15.249 18.998 15.249H16.249Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7.74902 2C9.40602 2 10.7488 3.34302 10.749 5V7.74902C10.749 9.40619 9.40615 10.749 7.74902 10.749H5C3.34308 10.7488 2 9.40604 2 7.74902V5C2.00021 3.34317 3.34321 2.00024 5 2H7.74902ZM5 4C4.44769 4.00024 4.00021 4.44783 4 5V7.74902C4 8.30138 4.44756 8.74879 5 8.74902H7.74902C8.30167 8.74902 8.74902 8.30152 8.74902 7.74902V5C8.74881 4.44768 8.30154 4 7.74902 4H5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.998 2C20.655 2 21.9978 3.34302 21.998 5V7.74902C21.998 9.40619 20.6552 10.749 18.998 10.749H16.249C14.592 10.7489 13.249 9.40612 13.249 7.74902V5C13.2492 3.34308 14.5921 2.00011 16.249 2H18.998ZM16.249 4C15.6966 4.00011 15.2492 4.44775 15.249 5V7.74902C15.249 8.30146 15.6965 8.74892 16.249 8.74902H18.998C19.5507 8.74902 19.998 8.30152 19.998 7.74902V5C19.9978 4.44768 19.5506 4 18.998 4H16.249Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGrid24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_28: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_28 != null) return _ic_grid_28!!
|
||||
_ic_grid_28 = ImageVector.Builder(
|
||||
name = "ic_grid_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.39648 15.1885C11.2838 15.1886 12.8124 16.7181 12.8125 18.6055V21.585C12.8123 23.4722 11.2837 25.0008 9.39648 25.001H6.41699C4.52965 25.0009 3.00017 23.4723 3 21.585V18.6055C3.00008 16.7181 4.5296 15.1886 6.41699 15.1885H9.39648ZM6.41699 17.6885C5.91031 17.6886 5.50008 18.0988 5.5 18.6055V21.585C5.50017 22.0916 5.91037 22.5009 6.41699 22.501H9.39648C9.90303 22.5008 10.3123 22.0915 10.3125 21.585V18.6055C10.3124 18.0988 9.90309 17.6886 9.39648 17.6885H6.41699Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21.585 15.1885C23.4722 15.1887 25.0009 16.7182 25.001 18.6055V21.585C25.0008 23.4722 23.4721 25.0007 21.585 25.001H18.6055C16.7181 25.001 15.1887 23.4723 15.1885 21.585V18.6055C15.1886 16.718 16.718 15.1885 18.6055 15.1885H21.585ZM18.6055 17.6885C18.0987 17.6885 17.6886 18.0987 17.6885 18.6055V21.585C17.6887 22.0916 18.0988 22.501 18.6055 22.501H21.585C22.0914 22.5007 22.5008 22.0915 22.501 21.585V18.6055C22.5009 18.0989 22.0915 17.6887 21.585 17.6885H18.6055Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.39648 3C11.2837 3.00017 12.8123 4.52974 12.8125 6.41699V9.39648C12.8123 11.2837 11.2837 12.8123 9.39648 12.8125H6.41699C4.52965 12.8124 3.00017 11.2838 3 9.39648V6.41699C3.00018 4.52968 4.52966 3.00008 6.41699 3H9.39648ZM6.41699 5.5C5.91037 5.50008 5.50018 5.9104 5.5 6.41699V9.39648C5.50017 9.90309 5.91037 10.3124 6.41699 10.3125H9.39648C9.90303 10.3123 10.3123 9.90303 10.3125 9.39648V6.41699C10.3123 5.91045 9.90303 5.50017 9.39648 5.5H6.41699Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21.585 3C23.4721 3.00026 25.0008 4.52979 25.001 6.41699V9.39648C25.0008 11.2837 23.4721 12.8122 21.585 12.8125H18.6055C16.7181 12.8125 15.1887 11.2839 15.1885 9.39648V6.41699C15.1887 4.52963 16.7181 3 18.6055 3H21.585ZM18.6055 5.5C18.0988 5.5 17.6887 5.91034 17.6885 6.41699V9.39648C17.6887 9.90314 18.0988 10.3125 18.6055 10.3125H21.585C22.0914 10.3122 22.5008 9.90298 22.501 9.39648V6.41699C22.5008 5.9105 22.0914 5.50026 21.585 5.5H18.6055Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGrid28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_plus_16: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_plus_16: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_plus_16 != null) return _ic_grid_plus_16!!
|
||||
_ic_grid_plus_16 = ImageVector.Builder(
|
||||
name = "ic_grid_plus_16",
|
||||
defaultWidth = 16.dp,
|
||||
defaultHeight = 16.dp,
|
||||
viewportWidth = 16f,
|
||||
viewportHeight = 16f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.61133 8.56934C6.61611 8.56962 7.43047 9.38387 7.43066 10.3887V12.1807C7.43063 13.1856 6.61621 13.9997 5.61133 14H3.81934C2.81429 13.9999 2.00003 13.1857 2 12.1807V10.3887C2.00019 9.38375 2.81439 8.56943 3.81934 8.56934H5.61133ZM3.81934 9.81934C3.50475 9.81943 3.25019 10.0741 3.25 10.3887V12.1807C3.25003 12.4954 3.50465 12.7499 3.81934 12.75H5.61133C5.92585 12.7497 6.18063 12.4953 6.18066 12.1807V10.3887C6.18047 10.0742 5.92575 9.81962 5.61133 9.81934H3.81934Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M11.2852 9.16699C11.6301 9.16722 11.9102 9.44696 11.9102 9.79199V10.6602H12.7783C13.1233 10.6604 13.4033 10.9401 13.4033 11.2852C13.4032 11.6301 13.1232 11.9099 12.7783 11.9102H11.9102V12.7783C11.91 13.1232 11.63 13.4031 11.2852 13.4033C10.9401 13.4033 10.6603 13.1234 10.6602 12.7783V11.9102H9.79199C9.4469 11.9102 9.16713 11.6302 9.16699 11.2852C9.16699 10.94 9.44681 10.6602 9.79199 10.6602H10.6602V9.79199C10.6602 9.44681 10.94 9.16699 11.2852 9.16699Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.61133 2C6.61617 2.00028 7.43057 2.81445 7.43066 3.81934V5.61133C7.43048 6.61614 6.61612 7.43038 5.61133 7.43066H3.81934C2.81438 7.43057 2.00018 6.61626 2 5.61133V3.81934C2.00009 2.81433 2.81433 2.00009 3.81934 2H5.61133ZM3.81934 3.25C3.50469 3.25009 3.25009 3.50468 3.25 3.81934V5.61133C3.25018 5.9259 3.50474 6.18057 3.81934 6.18066H5.61133C5.92576 6.18038 6.18048 5.92579 6.18066 5.61133V3.81934C6.18057 3.5048 5.92582 3.25028 5.61133 3.25H3.81934Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.1807 2C13.1857 2.00003 13.9999 2.81429 14 3.81934V5.61133C13.9998 6.6163 13.1857 7.43063 12.1807 7.43066H10.3887C9.38377 7.43052 8.56952 6.61623 8.56934 5.61133V3.81934C8.56943 2.81436 9.38371 2.00015 10.3887 2H12.1807ZM10.3887 3.25C10.0741 3.25015 9.81943 3.50472 9.81934 3.81934V5.61133C9.81952 5.92587 10.0741 6.18052 10.3887 6.18066H12.1807C12.4953 6.18063 12.7498 5.92594 12.75 5.61133V3.81934C12.7499 3.50465 12.4954 3.25003 12.1807 3.25H10.3887Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_plus_16!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGridPlus16Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_plus_16,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_plus_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_plus_20: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_plus_20 != null) return _ic_grid_plus_20!!
|
||||
_ic_grid_plus_20 = ImageVector.Builder(
|
||||
name = "ic_grid_plus_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.77734 10.8604C8.08152 10.8604 9.1377 11.9175 9.1377 13.2217V15.6377C9.1374 16.9416 8.08134 17.998 6.77734 17.998H4.36133C3.05738 17.9979 2.00029 16.9416 2 15.6377V13.2217C2 11.9175 3.0572 10.8605 4.36133 10.8604H6.77734ZM4.36133 12.3604C3.88563 12.3605 3.5 12.746 3.5 13.2217V15.6377C3.50029 16.1132 3.88581 16.4979 4.36133 16.498H6.77734C7.25292 16.498 7.63741 16.1132 7.6377 15.6377V13.2217C7.6377 12.7459 7.2531 12.3604 6.77734 12.3604H4.36133Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.4287 11.665C14.8427 11.6652 15.1785 12.001 15.1787 12.415V13.6787H16.4424C16.8564 13.6788 17.1922 14.0147 17.1924 14.4287C17.1923 14.8428 16.8565 15.1786 16.4424 15.1787H15.1787V16.4424C15.1787 16.8565 14.8428 17.1923 14.4287 17.1924C14.0147 17.1922 13.6788 16.8564 13.6787 16.4424V15.1787H12.415C12.0009 15.1786 11.6651 14.8428 11.665 14.4287C11.6652 14.0147 12.001 13.6788 12.415 13.6787H13.6787V12.415C13.6789 12.0011 14.0148 11.6652 14.4287 11.665Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.77734 2C8.08152 2.00006 9.13769 3.05714 9.1377 4.36133V6.77734C9.13764 8.08149 8.08149 9.13763 6.77734 9.1377H4.36133C3.05724 9.13757 2.00006 8.08145 2 6.77734V4.36133C2.00001 3.05718 3.05721 2.00012 4.36133 2H6.77734ZM4.36133 3.5C3.88564 3.50012 3.50001 3.88561 3.5 4.36133V6.77734C3.50006 7.25302 3.88567 7.63757 4.36133 7.6377H6.77734C7.25306 7.63763 7.63764 7.25306 7.6377 6.77734V4.36133C7.63769 3.88557 7.25309 3.50006 6.77734 3.5H4.36133Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.6377 2C16.9418 2.00013 17.998 3.05719 17.998 4.36133V6.77734C17.998 8.08144 16.9418 9.13756 15.6377 9.1377H13.2217C11.9175 9.1377 10.8604 8.08153 10.8604 6.77734V4.36133C10.8604 3.0571 11.9175 2 13.2217 2H15.6377ZM13.2217 3.5C12.7459 3.5 12.3604 3.88553 12.3604 4.36133V6.77734C12.3604 7.2531 12.7459 7.6377 13.2217 7.6377H15.6377C16.1133 7.63756 16.498 7.25302 16.498 6.77734V4.36133C16.498 3.88561 16.1134 3.50013 15.6377 3.5H13.2217Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_plus_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGridPlus20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_plus_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_plus_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_plus_24: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_plus_24 != null) return _ic_grid_plus_24!!
|
||||
_ic_grid_plus_24 = ImageVector.Builder(
|
||||
name = "ic_grid_plus_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8 13C9.65728 13 11 14.3427 11 16V19C11 20.6573 9.65728 22 8 22H5C3.34272 22 2 20.6573 2 19V16C2 14.3427 3.34272 13 5 13H8ZM5 15C4.44728 15 4 15.4473 4 16V19C4 19.5527 4.44728 20 5 20H8C8.55272 20 9 19.5527 9 19V16C9 15.4473 8.55272 15 8 15H5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M17.5 14C18.0523 14 18.5 14.4477 18.5 15V16.5H20C20.5523 16.5 21 16.9477 21 17.5C21 18.0523 20.5523 18.5 20 18.5H18.5V20C18.5 20.5523 18.0523 21 17.5 21C16.9477 21 16.5 20.5523 16.5 20V18.5H15C14.4477 18.5 14 18.0523 14 17.5C14 16.9477 14.4477 16.5 15 16.5H16.5V15C16.5 14.4477 16.9477 14 17.5 14Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8 2C9.65728 2 11 3.34272 11 5V8C11 9.65728 9.65728 11 8 11H5C3.34272 11 2 9.65728 2 8V5C2 3.34272 3.34272 2 5 2H8ZM5 4C4.44728 4 4 4.44728 4 5V8C4 8.55272 4.44728 9 5 9H8C8.55272 9 9 8.55272 9 8V5C9 4.44728 8.55272 4 8 4H5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M19 2C20.6573 2 22 3.34272 22 5V8C22 9.65728 20.6573 11 19 11H16C14.3427 11 13 9.65728 13 8V5C13 3.34272 14.3427 2 16 2H19ZM16 4C15.4473 4 15 4.44728 15 5V8C15 8.55272 15.4473 9 16 9H19C19.5527 9 20 8.55272 20 8V5C20 4.44728 19.5527 4 19 4H16Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_plus_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGridPlus24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_plus_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_grid_plus_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_grid_plus_28: ImageVector
|
||||
get() {
|
||||
if (_ic_grid_plus_28 != null) return _ic_grid_plus_28!!
|
||||
_ic_grid_plus_28 = ImageVector.Builder(
|
||||
name = "ic_grid_plus_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.66699 14.918C11.5545 14.918 13.084 16.4474 13.084 18.335V21.585C13.0839 23.4725 11.5545 25.0019 9.66699 25.002H6.41699C4.52948 25.002 3.00007 23.4725 3 21.585V18.335C3 16.4474 4.52944 14.918 6.41699 14.918H9.66699ZM6.41699 17.418C5.91015 17.418 5.5 17.8281 5.5 18.335V21.585C5.50007 22.0917 5.91019 22.502 6.41699 22.502H9.66699C10.1738 22.5019 10.5839 22.0917 10.584 21.585V18.335C10.584 17.8281 10.1738 17.418 9.66699 17.418H6.41699Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M19.96 16.001C20.6501 16.0011 21.2098 16.5609 21.21 17.251V18.71H22.668C23.3583 18.71 23.9179 19.2697 23.918 19.96C23.9178 20.6502 23.3582 21.21 22.668 21.21H21.21V22.668C21.21 23.3582 20.6502 23.9178 19.96 23.918C19.2696 23.9179 18.71 23.3583 18.71 22.668V21.21H17.251C16.5609 21.2098 16.0011 20.6501 16.001 19.96C16.0011 19.2698 16.5608 18.7101 17.251 18.71H18.71V17.251C18.7101 16.5608 19.2697 16.001 19.96 16.001Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.66699 3C11.5545 3.00001 13.084 4.52945 13.084 6.41699V9.66699C13.084 11.5545 11.5545 13.084 9.66699 13.084H6.41699C4.52944 13.084 3 11.5545 3 9.66699V6.41699C3.00001 4.52945 4.52944 3 6.41699 3H9.66699ZM6.41699 5.5C5.91016 5.5 5.50001 5.91016 5.5 6.41699V9.66699C5.5 10.1738 5.91015 10.584 6.41699 10.584H9.66699C10.1738 10.584 10.584 10.1738 10.584 9.66699V6.41699C10.584 5.91017 10.1738 5.50001 9.66699 5.5H6.41699Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21.585 3C23.4724 3.00014 25.0019 4.52954 25.002 6.41699V9.66699C25.002 11.5545 23.4724 13.0838 21.585 13.084H18.335C16.4474 13.084 14.918 11.5545 14.918 9.66699V6.41699C14.918 4.52945 16.4474 3 18.335 3H21.585ZM18.335 5.5C17.8281 5.5 17.418 5.91016 17.418 6.41699V9.66699C17.418 10.1738 17.8281 10.584 18.335 10.584H21.585C22.0917 10.5838 22.502 10.1737 22.502 9.66699V6.41699C22.5019 5.91025 22.0917 5.50014 21.585 5.5H18.335Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_grid_plus_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcGridPlus28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_grid_plus_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ val Icons.ic_heart_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.2119 2.5C12.5521 2.50031 14.0029 4.70655 14.0029 6.63379C14.0028 7.65361 13.6105 8.59271 13.0713 9.40234C12.5316 10.2126 11.8223 10.9278 11.1299 11.5156C10.435 12.1054 9.73935 12.5815 9.21191 12.9102C8.94794 13.0746 8.72349 13.2043 8.55859 13.2939C8.47673 13.3385 8.40636 13.3747 8.35156 13.4014C8.32501 13.4143 8.29574 13.4279 8.26855 13.4395C8.25576 13.4449 8.23542 13.4529 8.21191 13.4609C8.20024 13.4649 8.18004 13.4714 8.15527 13.4775C8.14029 13.4813 8.07935 13.497 8.00098 13.4971C7.92349 13.497 7.8634 13.4815 7.84766 13.4775C7.82308 13.4714 7.80276 13.4649 7.79102 13.4609C7.76739 13.4529 7.74624 13.4449 7.7334 13.4395C7.70641 13.428 7.67774 13.4142 7.65137 13.4014C7.59665 13.3747 7.52608 13.3384 7.44434 13.2939C7.27944 13.2043 7.05403 13.0746 6.79004 12.9102C6.26273 12.5816 5.56768 12.1052 4.87305 11.5156C4.18068 10.9279 3.47133 10.2124 2.93164 9.40234C2.39241 8.59271 2.0001 7.65361 2 6.63379C2.00005 4.70644 3.45057 2.50005 5.79102 2.5C6.76206 2.50006 7.48919 2.86673 8.00098 3.29004C8.51283 2.86653 9.24045 2.5 10.2119 2.5ZM10.2119 3.75C9.3646 3.75 8.81364 4.17408 8.47852 4.57031C8.35982 4.71056 8.18471 4.79192 8.00098 4.79199C7.81744 4.79187 7.64307 4.71032 7.52441 4.57031C7.18932 4.17412 6.63819 3.75008 5.79102 3.75C4.34424 3.75005 3.25005 5.1742 3.25 6.63379C3.2501 7.32849 3.51797 8.02773 3.97168 8.70898C4.42501 9.38953 5.04224 10.0197 5.68164 10.5625C6.31859 11.1031 6.96175 11.5436 7.45117 11.8486C7.67273 11.9867 7.86195 12.0952 8.00098 12.1719C8.14011 12.0951 8.3288 11.9869 8.55078 11.8486C9.04033 11.5436 9.68405 11.1034 10.3213 10.5625C10.9607 10.0197 11.5779 9.38958 12.0312 8.70898C12.4849 8.02775 12.7528 7.32847 12.7529 6.63379C12.7529 5.17434 11.6585 3.75032 10.2119 3.75Z"),
|
||||
pathData = addPathNodes("M10.2119 2.5C12.5521 2.50031 14.0029 4.70655 14.0029 6.63379C14.0028 7.65361 13.6105 8.59271 13.0713 9.40234C12.5316 10.2126 11.8223 10.9278 11.1299 11.5156C10.435 12.1054 9.73935 12.5815 9.21191 12.9102C8.94794 13.0746 8.72349 13.2043 8.55859 13.2939C8.47673 13.3385 8.40636 13.3747 8.35156 13.4014C8.32501 13.4143 8.29574 13.4279 8.26855 13.4395C8.25576 13.4449 8.23542 13.4529 8.21191 13.4609C8.20024 13.4649 8.18004 13.4714 8.15527 13.4775C8.14029 13.4813 8.07935 13.497 8.00098 13.4971C7.92349 13.497 7.8634 13.4815 7.84766 13.4775C7.82308 13.4714 7.80276 13.4649 7.79102 13.4609C7.76739 13.4529 7.74624 13.4449 7.7334 13.4395C7.70641 13.428 7.67774 13.4142 7.65137 13.4014C7.59665 13.3747 7.52608 13.3384 7.44434 13.2939C7.27944 13.2043 7.05403 13.0746 6.79004 12.9102C6.26273 12.5816 5.56768 12.1052 4.87305 11.5156C4.18068 10.9279 3.47133 10.2124 2.93164 9.40234C2.39241 8.59271 2.0001 7.65361 2 6.63379C2.00005 4.70644 3.45057 2.50005 5.79102 2.5C6.76206 2.50006 7.48919 2.86673 8.00098 3.29004C8.51283 2.86653 9.24045 2.5 10.2119 2.5ZM10.2119 3.75C9.3646 3.75 8.81364 4.17408 8.47852 4.57031C8.35982 4.71056 8.18471 4.79192 8.00098 4.79199C7.81744 4.79187 7.64307 4.71032 7.52441 4.57031C7.18932 4.17412 6.63819 3.75008 5.79102 3.75C4.34424 3.75005 3.25005 5.1742 3.25 6.63379C3.2501 7.32849 3.51797 8.02773 3.97168 8.70898C4.42501 9.38953 5.04224 10.0197 5.68164 10.5625C6.31859 11.1031 6.96175 11.5436 7.45117 11.8486C7.67273 11.9867 7.86195 12.0952 8.00098 12.1719C8.14011 12.0951 8.3288 11.9869 8.55078 11.8486C9.04033 11.5436 9.68405 11.1034 10.3213 10.5625C10.9607 10.0197 11.5779 9.38958 12.0312 8.70898C12.4849 8.02775 12.7528 7.32846 12.7529 6.63379C12.7529 5.17434 11.6585 3.75032 10.2119 3.75Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_16!!
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_heart_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_heart_28: ImageVector
|
||||
get() {
|
||||
if (_ic_heart_28 != null) return _ic_heart_28!!
|
||||
_ic_heart_28 = ImageVector.Builder(
|
||||
name = "ic_heart_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.4189 3.5C23.043 3.5 25.999 7.66221 25.999 11.4092C25.9989 13.379 25.2017 15.181 24.1201 16.7227C23.0366 18.2667 21.615 19.6276 20.2305 20.7432C18.8407 21.8628 17.4505 22.7663 16.3965 23.3896C15.8687 23.7018 15.4192 23.9472 15.0898 24.1172C14.9263 24.2016 14.7858 24.2708 14.6768 24.3213C14.6239 24.3457 14.5671 24.3711 14.5137 24.3926C14.4884 24.4027 14.4483 24.4177 14.4023 24.4326C14.3796 24.44 14.3404 24.4527 14.293 24.4639C14.263 24.4709 14.1481 24.498 14 24.498C13.851 24.498 13.7352 24.4707 13.7061 24.4639C13.6586 24.4527 13.6204 24.44 13.5977 24.4326C13.5514 24.4176 13.5106 24.4027 13.4854 24.3926C13.4319 24.3711 13.3751 24.3457 13.3223 24.3213C13.2132 24.2708 13.0728 24.2016 12.9092 24.1172C12.5799 23.9472 12.1311 23.7017 11.6035 23.3896C10.5494 22.7662 9.15845 21.863 7.76855 20.7432C6.38398 19.6276 4.9634 18.2668 3.87988 16.7227C2.79814 15.181 2.00013 13.3791 2 11.4092C2.00004 7.66234 4.95627 3.50031 9.58008 3.5C11.5194 3.5 12.9731 4.2018 13.999 5.01465C15.0249 4.20158 16.4793 3.50006 18.4189 3.5ZM18.4189 6C16.6992 6.00008 15.5931 6.81735 14.9326 7.55859C14.6955 7.82435 14.3561 7.97646 14 7.97656C13.6436 7.97649 13.3035 7.8246 13.0664 7.55859C12.4059 6.81731 11.3 6 9.58008 6C6.63197 6.00032 4.50004 8.72832 4.5 11.4092C4.50013 12.6933 5.02207 13.9991 5.92578 15.2871C6.82793 16.5728 8.05909 17.7655 9.33789 18.7959C10.6114 19.822 11.8967 20.6581 12.876 21.2373C13.333 21.5076 13.7192 21.7179 14 21.8643C14.2807 21.7179 14.6675 21.5073 15.124 21.2373C16.1032 20.6581 17.3888 19.8218 18.6621 18.7959C19.9407 17.7657 21.1712 16.5726 22.0732 15.2871C22.977 13.9991 23.4989 12.6933 23.499 11.4092C23.499 8.72817 21.3673 6 18.4189 6Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcHeart28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_heart_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_heart_28_filled: ImageVector? = null
|
||||
|
||||
val Icons.ic_heart_28_filled: ImageVector
|
||||
get() {
|
||||
if (_ic_heart_28_filled != null) return _ic_heart_28_filled!!
|
||||
_ic_heart_28_filled = ImageVector.Builder(
|
||||
name = "ic_heart_28_filled",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.9328 3.49902C23.1595 3.49902 25.9995 7.41027 25.9995 11.059C25.9995 18.4484 14.2128 24.499 13.9995 24.499C13.7862 24.499 1.99951 18.4484 1.99951 11.059C1.99951 7.41027 4.83951 3.49902 9.06618 3.49902C11.4928 3.49902 13.0795 4.6934 13.9995 5.7434C14.9195 4.6934 16.5062 3.49902 18.9328 3.49902Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_28_filled!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcHeart28FilledPreview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_heart_28_filled,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ val Icons.ic_heart_32: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M20.834 4.5C25.8256 4.50032 29.0046 9.05209 29.0049 13.1299C29.0048 15.2713 28.1491 17.2402 26.9756 18.9355C25.8006 20.633 24.2568 22.1319 22.748 23.3643C21.2341 24.6008 19.7184 25.5981 18.5693 26.2871C17.9941 26.632 17.5046 26.9034 17.1465 27.0908C16.9686 27.1839 16.8166 27.2594 16.6992 27.3145C16.6423 27.3411 16.5824 27.3688 16.5264 27.3916C16.4999 27.4024 16.4584 27.418 16.4111 27.4336C16.3879 27.4412 16.3481 27.4542 16.2998 27.4658C16.2696 27.4731 16.1523 27.5009 16.002 27.501C15.8526 27.5009 15.7363 27.4733 15.7051 27.4658C15.657 27.4543 15.6171 27.4413 15.5938 27.4336C15.5467 27.4181 15.5051 27.4024 15.4785 27.3916C15.4226 27.3688 15.3625 27.3411 15.3057 27.3145C15.1884 27.2595 15.0361 27.1838 14.8584 27.0908C14.5003 26.9035 14.0107 26.6319 13.4355 26.2871C12.2866 25.5982 10.7707 24.6007 9.25684 23.3643C7.74815 22.132 6.20426 20.6328 5.0293 18.9355C3.8558 17.2402 3.00012 15.2713 3 13.1299C3.00024 9.05194 6.17897 4.5 11.1709 4.5C13.306 4.50013 14.8942 5.29749 16.002 6.20703C17.1098 5.29726 18.6983 4.5 20.834 4.5ZM20.834 7C18.9179 7 17.6812 7.92499 16.9414 8.7666C16.7042 9.03641 16.3612 9.19127 16.002 9.19141C15.6429 9.19128 15.3007 9.03609 15.0635 8.7666C14.3238 7.92506 13.0866 7.00017 11.1709 7C7.88427 7 5.50024 10.084 5.5 13.1299C5.50012 14.595 6.08771 16.0719 7.08496 17.5127C8.08079 18.9511 9.43611 20.282 10.8389 21.4277C12.2366 22.5693 13.6468 23.4997 14.7207 24.1436C15.248 24.4597 15.6898 24.7035 16.002 24.8672C16.3142 24.7034 16.7564 24.46 17.2842 24.1436C18.3582 23.4996 19.7682 22.5694 21.166 21.4277C22.5689 20.2819 23.9241 18.9513 24.9199 17.5127C25.9172 16.0719 26.5048 14.595 26.5049 13.1299C26.5046 10.0842 24.1203 7.00033 20.834 7Z"),
|
||||
pathData = addPathNodes("M20.834 4.5C25.8256 4.50032 29.0046 9.05209 29.0049 13.1299C29.0048 15.2713 28.1491 17.2402 26.9756 18.9355C25.8006 20.633 24.2568 22.1319 22.748 23.3643C21.2341 24.6008 19.7184 25.5981 18.5693 26.2871C17.9941 26.632 17.5046 26.9034 17.1465 27.0908C16.9686 27.1839 16.8166 27.2594 16.6992 27.3145C16.6423 27.3411 16.5824 27.3688 16.5264 27.3916C16.4999 27.4024 16.4584 27.418 16.4111 27.4336C16.3879 27.4412 16.3481 27.4543 16.2998 27.4658C16.2696 27.4731 16.1523 27.5009 16.002 27.501C15.8526 27.5009 15.7363 27.4733 15.7051 27.4658C15.657 27.4543 15.6171 27.4413 15.5938 27.4336C15.5467 27.4181 15.5051 27.4024 15.4785 27.3916C15.4226 27.3688 15.3625 27.3411 15.3057 27.3145C15.1884 27.2595 15.0361 27.1838 14.8584 27.0908C14.5003 26.9035 14.0107 26.6319 13.4355 26.2871C12.2866 25.5982 10.7707 24.6007 9.25684 23.3643C7.74815 22.132 6.20426 20.6328 5.0293 18.9355C3.8558 17.2402 3.00012 15.2713 3 13.1299C3.00024 9.05194 6.17897 4.5 11.1709 4.5C13.306 4.50013 14.8942 5.29749 16.002 6.20703C17.1098 5.29726 18.6983 4.5 20.834 4.5ZM20.834 7C18.9179 7 17.6812 7.92499 16.9414 8.7666C16.7042 9.03641 16.3612 9.19127 16.002 9.19141C15.6429 9.19128 15.3007 9.03609 15.0635 8.7666C14.3238 7.92506 13.0866 7.00017 11.1709 7C7.88427 7 5.50024 10.084 5.5 13.1299C5.50012 14.595 6.08771 16.0719 7.08496 17.5127C8.08079 18.9511 9.43611 20.282 10.8389 21.4277C12.2366 22.5693 13.6468 23.4997 14.7207 24.1436C15.248 24.4597 15.6898 24.7035 16.002 24.8672C16.3142 24.7034 16.7564 24.46 17.2842 24.1436C18.3582 23.4996 19.7682 22.5694 21.166 21.4277C22.5689 20.2819 23.9241 18.9513 24.9199 17.5127C25.9172 16.0719 26.5048 14.595 26.5049 13.1299C26.5046 10.0842 24.1203 7.00033 20.834 7Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_32!!
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ val Icons.ic_heart_broken_16: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.2119 2.5C12.5521 2.50031 14.0029 4.70655 14.0029 6.63379C14.0028 7.65361 13.6105 8.59271 13.0713 9.40234C12.5316 10.2126 11.8223 10.9278 11.1299 11.5156C10.435 12.1054 9.73935 12.5815 9.21191 12.9102C8.94794 13.0746 8.72349 13.2043 8.55859 13.2939C8.47673 13.3385 8.40636 13.3747 8.35156 13.4014C8.32501 13.4143 8.29574 13.4279 8.26855 13.4395C8.25576 13.4449 8.23542 13.4529 8.21191 13.4609C8.20024 13.4649 8.18004 13.4714 8.15527 13.4775C8.14029 13.4813 8.07935 13.497 8.00098 13.4971C7.92349 13.497 7.8634 13.4815 7.84766 13.4775C7.82308 13.4714 7.80276 13.4649 7.79102 13.4609C7.76739 13.4529 7.74624 13.4449 7.7334 13.4395C7.70641 13.428 7.67774 13.4142 7.65137 13.4014C7.59665 13.3747 7.52608 13.3384 7.44434 13.2939C7.27944 13.2043 7.05403 13.0746 6.79004 12.9102C6.26273 12.5816 5.56768 12.1052 4.87305 11.5156C4.18068 10.9279 3.47133 10.2124 2.93164 9.40234C2.39241 8.59271 2.0001 7.65361 2 6.63379C2.00005 4.70644 3.45057 2.50005 5.79102 2.5C6.76206 2.50006 7.48919 2.86673 8.00098 3.29004C8.51283 2.86653 9.24045 2.5 10.2119 2.5ZM5.79102 3.75C4.34424 3.75005 3.25005 5.1742 3.25 6.63379C3.2501 7.32849 3.51797 8.02773 3.97168 8.70898C4.42501 9.38953 5.04224 10.0197 5.68164 10.5625C6.31859 11.1031 6.96175 11.5436 7.45117 11.8486C7.48253 11.8682 7.51395 11.886 7.54395 11.9043L8.2041 9.66016L6.91992 8.08887C6.73201 7.85885 6.73214 7.52794 6.91992 7.29785L8.16016 5.78027L7.60254 4.64453C7.57508 4.6216 7.54789 4.59802 7.52441 4.57031C7.18932 4.17412 6.63819 3.75008 5.79102 3.75ZM10.2119 3.75C9.5951 3.75 9.13554 3.97487 8.80176 4.25L9.45898 5.59082C9.56625 5.80992 9.53593 6.07166 9.38184 6.26074L8.21094 7.69238L9.38184 9.125C9.5123 9.28474 9.55517 9.49938 9.49707 9.69727L8.9375 11.5986C9.3564 11.3201 9.84091 10.9703 10.3213 10.5625C10.9607 10.0197 11.5779 9.38958 12.0312 8.70898C12.4849 8.02775 12.7528 7.32847 12.7529 6.63379C12.7529 5.17434 11.6585 3.75032 10.2119 3.75Z"),
|
||||
pathData = addPathNodes("M10.2119 2.5C12.5521 2.50031 14.0029 4.70655 14.0029 6.63379C14.0028 7.65361 13.6105 8.59271 13.0713 9.40234C12.5316 10.2126 11.8223 10.9278 11.1299 11.5156C10.435 12.1054 9.73935 12.5815 9.21191 12.9102C8.94794 13.0746 8.72349 13.2043 8.55859 13.2939C8.47673 13.3385 8.40636 13.3747 8.35156 13.4014C8.32501 13.4143 8.29574 13.4279 8.26855 13.4395C8.25576 13.4449 8.23542 13.4529 8.21191 13.4609C8.20024 13.4649 8.18004 13.4714 8.15527 13.4775C8.14029 13.4813 8.07935 13.497 8.00098 13.4971C7.92349 13.497 7.8634 13.4815 7.84766 13.4775C7.82308 13.4714 7.80276 13.4649 7.79102 13.4609C7.76739 13.4529 7.74624 13.4449 7.7334 13.4395C7.70641 13.428 7.67774 13.4142 7.65137 13.4014C7.59665 13.3747 7.52608 13.3384 7.44434 13.2939C7.27944 13.2043 7.05403 13.0746 6.79004 12.9102C6.26273 12.5816 5.56768 12.1052 4.87305 11.5156C4.18068 10.9279 3.47133 10.2124 2.93164 9.40234C2.39241 8.59271 2.0001 7.65361 2 6.63379C2.00005 4.70644 3.45057 2.50005 5.79102 2.5C6.76206 2.50006 7.48919 2.86673 8.00098 3.29004C8.51283 2.86653 9.24045 2.5 10.2119 2.5ZM5.79102 3.75C4.34424 3.75005 3.25005 5.1742 3.25 6.63379C3.2501 7.32849 3.51797 8.02773 3.97168 8.70898C4.42501 9.38953 5.04224 10.0197 5.68164 10.5625C6.31859 11.1031 6.96175 11.5436 7.45117 11.8486C7.48253 11.8682 7.51395 11.886 7.54395 11.9043L8.2041 9.66016L6.91992 8.08887C6.73201 7.85885 6.73214 7.52794 6.91992 7.29785L8.16016 5.78027L7.60254 4.64453C7.57508 4.6216 7.54789 4.59802 7.52441 4.57031C7.18932 4.17412 6.63819 3.75008 5.79102 3.75ZM10.2119 3.75C9.5951 3.75 9.13554 3.97487 8.80176 4.25L9.45898 5.59082C9.56625 5.80992 9.53593 6.07166 9.38184 6.26074L8.21094 7.69238L9.38184 9.125C9.5123 9.28474 9.55517 9.49938 9.49707 9.69727L8.9375 11.5986C9.3564 11.3201 9.84091 10.9703 10.3213 10.5625C10.9607 10.0197 11.5779 9.38958 12.0312 8.70898C12.4849 8.02775 12.7528 7.32846 12.7529 6.63379C12.7529 5.17434 11.6585 3.75032 10.2119 3.75Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_broken_16!!
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_heart_broken_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_heart_broken_28: ImageVector
|
||||
get() {
|
||||
if (_ic_heart_broken_28 != null) return _ic_heart_broken_28!!
|
||||
_ic_heart_broken_28 = ImageVector.Builder(
|
||||
name = "ic_heart_broken_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.4189 3.5C23.043 3.5 25.999 7.66221 25.999 11.4092C25.9989 13.379 25.2017 15.181 24.1201 16.7227C23.0366 18.2667 21.615 19.6276 20.2305 20.7432C18.8407 21.8628 17.4505 22.7663 16.3965 23.3896C15.8687 23.7018 15.4192 23.9472 15.0898 24.1172C14.9263 24.2016 14.7858 24.2708 14.6768 24.3213C14.6239 24.3457 14.5671 24.3711 14.5137 24.3926C14.4884 24.4027 14.4483 24.4177 14.4023 24.4326C14.3796 24.44 14.3404 24.4527 14.293 24.4639C14.263 24.4709 14.1481 24.498 14 24.498C13.851 24.498 13.7352 24.4707 13.7061 24.4639C13.6586 24.4527 13.6204 24.44 13.5977 24.4326C13.5514 24.4176 13.5106 24.4027 13.4854 24.3926C13.4319 24.3711 13.3751 24.3457 13.3223 24.3213C13.2132 24.2708 13.0728 24.2016 12.9092 24.1172C12.5799 23.9472 12.1311 23.7017 11.6035 23.3896C10.5494 22.7662 9.15845 21.863 7.76855 20.7432C6.38398 19.6276 4.9634 18.2668 3.87988 16.7227C2.79814 15.181 2.00013 13.3791 2 11.4092C2.00004 7.66234 4.95627 3.50031 9.58008 3.5C11.5194 3.5 12.9731 4.2018 13.999 5.01465C15.0249 4.20158 16.4793 3.50006 18.4189 3.5ZM9.58008 6C6.63197 6.00032 4.50004 8.72832 4.5 11.4092C4.50013 12.6933 5.02207 13.9991 5.92578 15.2871C6.82793 16.5728 8.05909 17.7655 9.33789 18.7959C10.6114 19.822 11.8967 20.6581 12.876 21.2373C12.9504 21.2813 13.0242 21.3215 13.0947 21.3623L14.3916 17.1787L11.8584 14.2354C11.4552 13.7666 11.455 13.0732 11.8584 12.6045L14.293 9.77539L13.2217 7.70215C13.1668 7.65843 13.1138 7.61172 13.0664 7.55859C12.4059 6.81731 11.3 6 9.58008 6ZM18.4189 6C17.2003 6.00005 16.29 6.41016 15.6279 6.91309L16.9014 9.37793C17.1353 9.83082 17.0707 10.3812 16.7383 10.7676L14.4541 13.4199L16.7383 16.0732C17.019 16.3994 17.1126 16.8477 16.9854 17.2588L15.8984 20.7617C16.7354 20.2329 17.7026 19.569 18.6621 18.7959C19.9407 17.7657 21.1712 16.5726 22.0732 15.2871C22.977 13.9991 23.4989 12.6933 23.499 11.4092C23.499 8.72817 21.3673 6 18.4189 6Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_heart_broken_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcHeartBroken28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_heart_broken_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_info_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_info_28: ImageVector
|
||||
get() {
|
||||
if (_ic_info_28 != null) return _ic_info_28!!
|
||||
_ic_info_28 = ImageVector.Builder(
|
||||
name = "ic_info_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14 12.75C14.6902 12.7502 15.25 13.3097 15.25 14V19.9717C15.25 20.6619 14.6902 21.2215 14 21.2217C13.3097 21.2216 12.75 20.662 12.75 19.9717V15.2461C12.0855 15.2169 11.5557 14.6717 11.5557 14C11.5557 13.3096 12.1153 12.75 12.8057 12.75H14Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.832 7.97949C14.6237 8.04632 15.2498 8.70702 15.25 9.52051C15.25 10.3756 14.5562 11.0692 13.7012 11.0693C12.8462 11.0691 12.1533 10.3755 12.1533 9.52051C12.1523 8.70625 12.7786 8.04689 13.5674 7.97949C13.611 7.97489 13.6554 7.97266 13.7002 7.97266C13.7446 7.97266 13.7888 7.97497 13.832 7.97949ZM13.6035 10.4678L13.7002 10.4727C13.6667 10.4727 13.6334 10.4694 13.6006 10.4668L13.6035 10.4678Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14 2C20.6274 2.00019 25.9988 7.37257 25.999 14C25.9988 20.6275 20.6275 25.9988 14 25.999C7.37252 25.9989 2.00019 20.6275 2 14C2.00023 7.37256 7.37254 2.00016 14 2ZM14 4.5C8.75325 4.50016 4.50023 8.75327 4.5 14C4.50019 19.2468 8.75323 23.4989 14 23.499C19.2467 23.4988 23.4988 19.2467 23.499 14C23.4988 8.75329 19.2467 4.50019 14 4.5Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_info_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcInfo28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_info_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_mail_16: ImageVector? = null
|
||||
|
||||
val Icons.ic_mail_16: ImageVector
|
||||
get() {
|
||||
if (_ic_mail_16 != null) return _ic_mail_16!!
|
||||
_ic_mail_16 = ImageVector.Builder(
|
||||
name = "ic_mail_16",
|
||||
defaultWidth = 16.dp,
|
||||
defaultHeight = 16.dp,
|
||||
viewportWidth = 16f,
|
||||
viewportHeight = 16f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.9355 5.4375C11.2286 5.25521 11.6135 5.34473 11.7959 5.6377C11.9782 5.9307 11.8886 6.31565 11.5957 6.49805L8.33105 8.5293C8.129 8.6549 7.87295 8.65492 7.6709 8.5293L4.40625 6.49805C4.11345 6.31566 4.02389 5.93067 4.20605 5.6377C4.38838 5.34478 4.77338 5.25535 5.06641 5.4375L8.00098 7.26172L10.9355 5.4375Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.5713 2.5C13.6766 2.50014 14.502 3.44503 14.502 4.52148V11.4775C14.5016 12.486 13.7765 13.3795 12.7754 13.4873L12.5713 13.498H3.43066C2.32546 13.498 1.50023 12.5529 1.5 11.4766V4.52148C1.5 3.445 2.32531 2.50009 3.43066 2.5H12.5713ZM3.43066 3.75C3.09322 3.7501 2.75 4.05515 2.75 4.52148V11.4766C2.75022 11.9426 3.09333 12.248 3.43066 12.248H12.5713C12.9087 12.2479 13.2516 11.9425 13.252 11.4775V4.52148C13.252 4.05519 12.9087 3.75015 12.5713 3.75H3.43066Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_mail_16!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcMail16Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_mail_16,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_mail_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_mail_20: ImageVector
|
||||
get() {
|
||||
if (_ic_mail_20 != null) return _ic_mail_20!!
|
||||
_ic_mail_20 = ImageVector.Builder(
|
||||
name = "ic_mail_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.6484 6.95996C14.0043 6.74868 14.464 6.86514 14.6758 7.2207C14.8873 7.57655 14.7707 8.03721 14.415 8.24902L10.3857 10.6455C10.1496 10.7858 9.85527 10.7857 9.61914 10.6455L5.58984 8.24902C5.2341 8.0372 5.11744 7.5766 5.3291 7.2207C5.54094 6.865 6.00154 6.74831 6.35742 6.95996L10.002 9.12695L13.6484 6.95996Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.6436 3.5C16.9633 3.50042 18.0049 4.58896 18.0049 5.89746V14.1045C18.0048 15.3306 17.0892 16.3635 15.8877 16.4883L15.6436 16.501H4.3623C3.04231 16.5009 2.00002 15.4122 2 14.1035V5.89746C2.00001 4.58878 3.04231 3.50012 4.3623 3.5H15.6436ZM4.3623 5C3.90175 5.00012 3.50099 5.38584 3.50098 5.89746V14.1035C3.50099 14.6151 3.90175 15.0009 4.3623 15.001H15.6436C16.1041 15.0006 16.5048 14.6148 16.5049 14.1045V5.89746C16.5049 5.38605 16.1039 5.00042 15.6436 5H4.3623Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_mail_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcMail20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_mail_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_mail_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_mail_24: ImageVector
|
||||
get() {
|
||||
if (_ic_mail_24 != null) return _ic_mail_24!!
|
||||
_ic_mail_24 = ImageVector.Builder(
|
||||
name = "ic_mail_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.14258 8.48535C6.42676 8.01188 7.04112 7.85846 7.51465 8.14258L12 10.833L16.4854 8.14258C16.9589 7.85846 17.5732 8.01188 17.8574 8.48535C18.1415 8.95888 17.9881 9.57324 17.5146 9.85742L12.5146 12.8574C12.198 13.0474 11.802 13.0474 11.4854 12.8574L6.48535 9.85742C6.01188 9.57324 5.85846 8.95888 6.14258 8.48535Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M19 4C20.6598 4 22 5.34813 22 7.00586V16.9951C22 18.6522 20.6595 20 19 20H5C3.34015 20 2 18.6519 2 16.9941V7.00586C2 5.34813 3.34015 4 5 4H19ZM5 6C4.44985 6 4 6.44757 4 7.00586V16.9941C4 17.5524 4.44985 18 5 18H19C19.5505 18 20 17.5521 20 16.9951V7.00586C20 6.44757 19.5502 6 19 6H5Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_mail_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcMail24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_mail_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_percent_16: ImageVector? = null
|
||||
|
||||
val Icons.ic_percent_16: ImageVector
|
||||
get() {
|
||||
if (_ic_percent_16 != null) return _ic_percent_16!!
|
||||
_ic_percent_16 = ImageVector.Builder(
|
||||
name = "ic_percent_16",
|
||||
defaultWidth = 16.dp,
|
||||
defaultHeight = 16.dp,
|
||||
viewportWidth = 16f,
|
||||
viewportHeight = 16f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathData = addPathNodes("M9.87392 9.87313C10.8176 8.92951 12.3472 8.92957 13.2909 9.87313L13.4569 10.0567C14.231 11.0058 14.1756 12.4055 13.2909 13.2901C12.3472 14.2335 10.8176 14.2337 9.87392 13.2901C8.93031 12.3465 8.93038 10.8168 9.87392 9.87313ZM12.3192 10.6768C11.861 10.3029 11.1849 10.3298 10.7577 10.7569C10.3023 11.2124 10.3023 11.9509 10.7577 12.4063C11.2132 12.8617 11.9516 12.8616 12.4071 12.4063C12.8342 11.9793 12.8608 11.3039 12.4872 10.8458L12.4071 10.7569L12.3192 10.6768Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.036 3.07723C12.2799 2.83356 12.6757 2.83397 12.9198 3.07723C13.1639 3.32131 13.1639 3.71793 12.9198 3.962L3.96279 12.919C3.7187 13.1631 3.32209 13.1631 3.07802 12.919C2.83453 12.6751 2.83454 12.2792 3.07802 12.0352L12.036 3.07723Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.EvenOdd,
|
||||
pathData = addPathNodes("M2.70791 2.70712C3.65162 1.76369 5.18124 1.76359 6.1249 2.70712L6.29091 2.89071C7.06491 3.83975 7.00942 5.23944 6.1249 6.12411C5.18119 7.06765 3.6516 7.06768 2.70791 6.12411C1.76422 5.18044 1.76421 3.65078 2.70791 2.70712ZM5.15322 3.51083C4.69509 3.13693 4.0189 3.16394 3.59169 3.59091C3.13617 4.0464 3.1362 4.7848 3.59169 5.24032C4.04723 5.69574 4.78555 5.69571 5.24111 5.24032C5.66794 4.81331 5.69469 4.13783 5.32119 3.67977L5.24111 3.59091L5.15322 3.51083Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_16!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcPercent16Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_percent_16,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_percent_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_percent_20: ImageVector
|
||||
get() {
|
||||
if (_ic_percent_20 != null) return _ic_percent_20!!
|
||||
_ic_percent_20 = ImageVector.Builder(
|
||||
name = "ic_percent_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.164 12.1622C13.2512 11.0751 14.9998 11.0586 16.1103 12.1075L16.1142 12.1105L16.1708 12.1622L16.3661 12.3771C17.2738 13.49 17.2082 15.1318 16.1708 16.1691C15.0642 17.2753 13.2705 17.2754 12.164 16.1691C11.0577 15.0626 11.0576 13.2687 12.164 12.1622ZM15.0097 13.131C14.4859 12.7039 13.7128 12.7346 13.2245 13.2228C12.704 13.7434 12.7041 14.5878 13.2245 15.1085C13.7453 15.6291 14.5895 15.629 15.1103 15.1085C15.5984 14.6204 15.6291 13.8481 15.2021 13.3243L15.1103 13.2228L15.0097 13.131Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.6796 4.25989C14.9725 3.96734 15.4474 3.96712 15.7402 4.25989C16.0328 4.5527 16.0327 5.02758 15.7402 5.32044L5.3222 15.7374C5.02935 16.0303 4.55455 16.0302 4.26166 15.7374C3.96879 15.4445 3.96875 14.9698 4.26166 14.6769L14.6796 4.25989Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3.83002 3.82825C4.91726 2.74143 6.66596 2.72458 7.7763 3.77356L7.78021 3.77649L7.83685 3.82825L8.03216 4.04309C8.93972 5.15588 8.87397 6.79775 7.83685 7.83509C6.73027 8.94143 4.93656 8.94149 3.83002 7.83509C2.72358 6.72857 2.7235 4.93472 3.83002 3.82825ZM6.67572 4.797C6.15202 4.36988 5.37884 4.40087 4.89056 4.8888C4.36985 5.40947 4.36996 6.2538 4.89056 6.77454C5.41132 7.29516 6.25551 7.29509 6.7763 6.77454C7.26417 6.28641 7.29503 5.51397 6.8681 4.99036L6.7763 4.8888L6.67572 4.797Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcPercent20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_percent_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_percent_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_percent_24: ImageVector
|
||||
get() {
|
||||
if (_ic_percent_24 != null) return _ic_percent_24!!
|
||||
_ic_percent_24 = ImageVector.Builder(
|
||||
name = "ic_percent_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M15.1704 15.1704C16.7324 13.6084 19.2647 13.6084 20.8267 15.1704L20.9683 15.3188C22.3869 16.8889 22.3398 19.3134 20.8267 20.8266C19.2648 22.3885 16.7324 22.3882 15.1704 20.8266C13.6084 19.2647 13.6085 16.7324 15.1704 15.1704ZM19.2603 16.4467C18.4748 15.8062 17.3165 15.8524 16.5845 16.5844C15.8036 17.3654 15.8036 18.6316 16.5845 19.4126C17.3654 20.193 18.6318 20.1933 19.4126 19.4126C20.1447 18.6804 20.19 17.5212 19.5493 16.7358L19.4126 16.5844L19.2603 16.4467Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18.7905 3.79245C19.1809 3.40203 19.814 3.40224 20.2046 3.79245C20.5951 4.18297 20.5951 4.81598 20.2046 5.20651L5.20654 20.2046C4.81601 20.5949 4.18295 20.595 3.79248 20.2046C3.40239 19.8141 3.40225 19.1809 3.79248 18.7905L18.7905 3.79245Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3.17139 3.17135C4.73327 1.60947 7.26565 1.60963 8.82764 3.17135L8.96924 3.31979C10.388 4.88987 10.3408 7.31437 8.82764 8.8276C7.26577 10.3893 4.73333 10.3892 3.17139 8.8276C1.60972 7.26565 1.60964 4.73326 3.17139 3.17135ZM7.26123 4.44772C6.47582 3.80747 5.31743 3.85343 4.58545 4.58542C3.80474 5.36627 3.80483 6.63264 4.58545 7.41354C5.36635 8.19411 6.63275 8.19423 7.41357 7.41354C8.14573 6.68135 8.19107 5.5222 7.55029 4.73678L7.41357 4.58542L7.26123 4.44772Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcPercent24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_percent_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_percent_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_percent_28: ImageVector
|
||||
get() {
|
||||
if (_ic_percent_28 != null) return _ic_percent_28!!
|
||||
_ic_percent_28 = ImageVector.Builder(
|
||||
name = "ic_percent_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M17.3147 17.3155C19.0717 15.5586 21.9209 15.5587 23.678 17.3155C25.4347 19.0726 25.4348 21.9218 23.678 23.6788C21.921 25.4358 19.0718 25.4356 17.3147 23.6788C15.5579 21.9217 15.5577 19.0725 17.3147 17.3155ZM21.7581 18.9464C20.9728 18.3062 19.8151 18.3523 19.0833 19.0841C18.3025 19.8649 18.3025 21.1304 19.0833 21.9112C19.8641 22.6915 21.1298 22.6918 21.9104 21.9112C22.6422 21.1792 22.6875 20.0207 22.0471 19.2354L21.9104 19.0841L21.7581 18.9464Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21.2366 4.9913C21.7246 4.50323 22.516 4.50343 23.0042 4.9913C23.4923 5.47945 23.4923 6.27072 23.0042 6.75888L6.75806 23.0059C6.26995 23.4938 5.47859 23.4939 4.99048 23.0059C4.50252 22.5178 4.50256 21.7265 4.99048 21.2384L21.2366 4.9913Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M4.31763 4.31747C6.07464 2.56089 8.92395 2.5608 10.6809 4.31747C12.4378 6.07442 12.4375 8.92361 10.6809 10.6808C8.92383 12.4379 6.07471 12.4379 4.31763 10.6808C2.56089 8.92362 2.56067 6.07446 4.31763 4.31747ZM8.76099 5.94833C7.97588 5.30821 6.81808 5.35453 6.08618 6.08603C5.30541 6.86681 5.30543 8.13238 6.08618 8.91317C6.86696 9.69379 8.13262 9.6939 8.91333 8.91317C9.64494 8.18106 9.69063 7.02252 9.05005 6.23739L8.91333 6.08603L8.76099 5.94833Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcPercent28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_percent_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -46,7 +46,7 @@ val Icons.ic_percent_backward_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.5 7.62531C8.98325 7.62531 9.375 8.01706 9.375 8.50031C9.3748 8.98274 8.98418 9.37328 8.50195 9.37434L8.5 9.37531C8.26802 9.37544 8.04499 9.28348 7.88086 9.11945C7.71615 8.95474 7.62424 8.73031 7.625 8.49738C7.62658 8.01548 8.01773 7.62531 8.5 7.62531Z"),
|
||||
pathData = addPathNodes("M8.5 7.62531C8.98325 7.62531 9.375 8.01706 9.375 8.50031C9.3748 8.98274 8.98418 9.37328 8.50195 9.37434L8.5 9.37531C8.26802 9.37543 8.04499 9.28348 7.88086 9.11945C7.71615 8.95474 7.62424 8.73031 7.625 8.49738C7.62658 8.01548 8.01772 7.62531 8.5 7.62531Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_backward_20!!
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ val Icons.ic_percent_backward_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.126 13.0018C14.3867 13.0017 14.6387 13.091 14.8389 13.2547L14.9219 13.3299L14.9971 13.4129C15.1608 13.6131 15.251 13.865 15.251 14.1258C15.251 14.7471 14.7472 15.2507 14.126 15.2508C13.5047 15.2508 13.001 14.7471 13.001 14.1258C13.0011 13.5059 13.5026 13.0039 14.1221 13.0018H14.126Z"),
|
||||
pathData = addPathNodes("M14.126 13.0018C14.3867 13.0017 14.6388 13.091 14.8389 13.2547L14.9219 13.3299L14.9971 13.4129C15.1608 13.6131 15.251 13.865 15.251 14.1258C15.251 14.7471 14.7472 15.2507 14.126 15.2508C13.5047 15.2508 13.001 14.7471 13.001 14.1258C13.0011 13.5059 13.5026 13.0039 14.1221 13.0018H14.126Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
@ -46,7 +46,7 @@ val Icons.ic_percent_backward_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M9.98926 8.75472C10.5565 8.81232 10.9988 9.29151 10.999 9.87386C10.999 10.4943 10.497 10.9964 9.87695 10.9979L9.87793 10.9989L9.875 10.9979L9.87402 10.9989C9.57573 10.9989 9.28912 10.8808 9.07812 10.6698C8.86639 10.4579 8.74791 10.1695 8.74902 9.86995C8.75133 9.25065 9.25419 8.74897 9.87402 8.74886L9.98926 8.75472Z"),
|
||||
pathData = addPathNodes("M9.98926 8.75472C10.5565 8.81231 10.9988 9.29151 10.999 9.87386C10.999 10.4943 10.497 10.9964 9.87695 10.9979L9.87793 10.9989L9.875 10.9979L9.87402 10.9989C9.57573 10.9989 9.28912 10.8808 9.07812 10.6698C8.86639 10.4579 8.74791 10.1695 8.74902 9.86995C8.75133 9.25065 9.25419 8.74897 9.87402 8.74886L9.98926 8.75472Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_percent_backward_24!!
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ val Icons.ic_pincode_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.95898 9.27246C6.34232 8.88986 6.95046 8.87284 7.35547 9.21875L7.36035 9.22168L7.41699 9.27246L7.46777 9.3291C7.47273 9.33522 7.47668 9.34242 7.48145 9.34863C7.72182 9.6405 7.78718 10.0421 7.64062 10.3965C7.48111 10.7819 7.10463 11.034 6.6875 11.0342C6.27036 11.0341 5.89395 10.7819 5.73438 10.3965C5.57495 10.011 5.66379 9.56729 5.95898 9.27246Z"),
|
||||
pathData = addPathNodes("M5.95898 9.27246C6.34232 8.88986 6.95046 8.87284 7.35547 9.21875L7.36035 9.22168L7.41699 9.27246L7.46777 9.3291C7.47273 9.33522 7.47668 9.34242 7.48145 9.34863C7.72183 9.6405 7.78718 10.0421 7.64062 10.3965C7.48111 10.7819 7.10463 11.034 6.6875 11.0342C6.27036 11.0341 5.89395 10.7819 5.73438 10.3965C5.57495 10.011 5.66379 9.56729 5.95898 9.27246Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ val Icons.ic_pincode_24: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.71484 10.9326C7.25469 10.493 8.05043 10.5248 8.55371 11.0273C8.94733 11.4205 9.06523 12.0123 8.85254 12.5264C8.6397 13.0402 8.13825 13.375 7.58203 13.375C7.02584 13.3749 6.5243 13.0402 6.31152 12.5264C6.09886 12.0124 6.21682 11.4205 6.61035 11.0273L6.71484 10.9326Z"),
|
||||
pathData = addPathNodes("M6.71484 10.9326C7.25469 10.493 8.05043 10.5248 8.55371 11.0273C8.94733 11.4205 9.06523 12.0123 8.85254 12.5264C8.6397 13.0402 8.13825 13.375 7.58203 13.375C7.02584 13.3749 6.5243 13.0402 6.31152 12.5264C6.09886 12.0124 6.21683 11.4205 6.61035 11.0273L6.71484 10.9326Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,82 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_face_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_face_20: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_face_20 != null) return _ic_scan_face_20!!
|
||||
_ic_scan_face_20 = ImageVector.Builder(
|
||||
name = "ic_scan_face_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M2.75 13.2812C3.16403 13.2815 3.5 13.6172 3.5 14.0312V14.8369C3.50011 15.7576 4.24636 16.5046 5.16699 16.5049H5.97363C6.3875 16.5053 6.72363 16.8409 6.72363 17.2549C6.72333 17.6686 6.38731 18.0045 5.97363 18.0049H5.16699C3.41794 18.0046 2.00011 16.586 2 14.8369V14.0312C2 13.617 2.33579 13.2812 2.75 13.2812Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M17.2549 13.2812C17.6689 13.2815 18.0049 13.6172 18.0049 14.0312V14.8369C18.0048 16.5861 16.5861 18.0048 14.8369 18.0049H14.0312C13.6172 18.0049 13.2816 17.6688 13.2812 17.2549C13.2812 16.8407 13.617 16.5049 14.0312 16.5049H14.8369C15.7577 16.5048 16.5048 15.7577 16.5049 14.8369V14.0312C16.5049 13.617 16.8407 13.2812 17.2549 13.2812Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.084 12.8213C12.3769 12.5287 12.8527 12.5285 13.1455 12.8213C13.4378 13.114 13.4377 13.589 13.1455 13.8818C11.4102 15.6171 8.59567 15.617 6.86035 13.8818C6.56746 13.5889 6.56746 13.1142 6.86035 12.8213C7.15327 12.5287 7.62811 12.5285 7.9209 12.8213C9.07035 13.9706 10.9345 13.9705 12.084 12.8213Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.4053 6.91309C10.8193 6.91332 11.1553 7.24902 11.1553 7.66309V10.4834C11.155 11.342 10.4582 12.0387 9.59961 12.0391H9.19629C8.78223 12.0391 8.44653 11.7031 8.44629 11.2891C8.4464 10.8749 8.78214 10.5391 9.19629 10.5391H9.59961C9.62979 10.5387 9.65503 10.5136 9.65527 10.4834V7.66309C9.65527 7.24887 9.99106 6.91309 10.4053 6.91309Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.37598 6.89941C6.79 6.89964 7.12598 7.23534 7.12598 7.64941V8.8584C7.12558 9.27214 6.78976 9.60818 6.37598 9.6084C5.96204 9.60835 5.62637 9.27225 5.62598 8.8584V7.64941C5.62598 7.23523 5.9618 6.89946 6.37598 6.89941Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.6279 6.89941C14.042 6.89964 14.3779 7.23534 14.3779 7.64941V8.8584C14.3775 9.27214 14.0417 9.60818 13.6279 9.6084C13.2142 9.60814 12.8783 9.27212 12.8779 8.8584V7.64941C12.8779 7.23536 13.2139 6.89967 13.6279 6.89941Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.97363 2C6.3875 2.0004 6.72363 2.33604 6.72363 2.75C6.72342 3.16378 6.38737 3.4996 5.97363 3.5H5.16699C4.24645 3.50025 3.50025 4.24645 3.5 5.16699V5.97363C3.4996 6.38737 3.16378 6.72342 2.75 6.72363C2.33604 6.72363 2.0004 6.3875 2 5.97363V5.16699C2.00025 3.41802 3.41802 2.00025 5.16699 2H5.97363Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.8369 2C16.5861 2.00004 18.0046 3.4179 18.0049 5.16699V5.97363C18.0045 6.38736 17.6686 6.72339 17.2549 6.72363C16.8409 6.72363 16.5053 6.3875 16.5049 5.97363V5.16699C16.5046 4.24632 15.7576 3.50004 14.8369 3.5H14.0312C13.6172 3.5 13.2815 3.16403 13.2812 2.75C13.2812 2.33579 13.617 2 14.0312 2H14.8369Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_face_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFace20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_face_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_face_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_face_24: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_face_24 != null) return _ic_scan_face_24!!
|
||||
_ic_scan_face_24 = ImageVector.Builder(
|
||||
name = "ic_scan_face_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3 16C3.55228 16 4 16.4477 4 17V18C4 19.1046 4.89543 20 6 20H7C7.55228 20 8 20.4477 8 21C8 21.5523 7.55228 22 7 22H6C3.79086 22 2 20.2091 2 18V17C2 16.4477 2.44772 16 3 16Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21 16C21.5523 16 22 16.4477 22 17V18C22 20.2091 20.2091 22 18 22H17C16.4477 22 16 21.5523 16 21C16 20.4477 16.4477 20 17 20H18C19.1046 20 20 19.1046 20 18V17C20 16.4477 20.4477 16 21 16Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.5352 15.4502C14.9257 15.0599 15.5588 15.0597 15.9492 15.4502C16.3395 15.8407 16.3395 16.4738 15.9492 16.8643C13.7687 19.0445 10.2322 19.0447 8.05176 16.8643C7.66131 16.4738 7.66148 15.8407 8.05176 15.4502C8.44228 15.0597 9.0753 15.0597 9.46582 15.4502C10.8652 16.8496 13.1357 16.8494 14.5352 15.4502Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.5 8.09668C13.0522 8.09668 13.4998 8.54454 13.5 9.09668V12.5967C13.5 13.701 12.6043 14.5967 11.5 14.5967H11C10.4477 14.5967 10 14.149 10 13.5967C10.0002 13.0445 10.4478 12.5967 11 12.5967H11.5V9.09668C11.5002 8.54454 11.9478 8.09668 12.5 8.09668Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7.5 8.08008C8.05228 8.08008 8.5 8.52779 8.5 9.08008V10.5801C8.49997 11.1323 8.05226 11.5801 7.5 11.5801C6.94774 11.5801 6.50003 11.1323 6.5 10.5801V9.08008C6.5 8.52779 6.94772 8.08008 7.5 8.08008Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.5 8.08008C17.0523 8.08008 17.5 8.52779 17.5 9.08008V10.5801C17.5 11.1323 17.0523 11.5801 16.5 11.5801C15.9477 11.5801 15.5 11.1323 15.5 10.5801V9.08008C15.5 8.52779 15.9477 8.08008 16.5 8.08008Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7 2C7.55228 2 8 2.44772 8 3C8 3.55228 7.55228 4 7 4H6C4.89543 4 4 4.89543 4 6V7C4 7.55228 3.55228 8 3 8C2.44772 8 2 7.55228 2 7V6C2 3.79086 3.79086 2 6 2H7Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18 2C20.2091 2 22 3.79086 22 6V7C22 7.55228 21.5523 8 21 8C20.4477 8 20 7.55228 20 7V6C20 4.89543 19.1046 4 18 4H17C16.4477 4 16 3.55228 16 3C16 2.44772 16.4477 2 17 2H18Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_face_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFace24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_face_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_face_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_face_28: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_face_28 != null) return _ic_scan_face_28!!
|
||||
_ic_scan_face_28 = ImageVector.Builder(
|
||||
name = "ic_scan_face_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3.24902 18.7217C3.93928 18.7217 4.49886 19.2815 4.49902 19.9717V21.166C4.49929 22.4541 5.54377 23.4987 6.83203 23.499H8.02637C8.71653 23.499 9.27606 24.0589 9.27637 24.749C9.2761 25.4392 8.71656 25.999 8.02637 25.999H6.83203C4.16315 25.9987 1.99929 23.8349 1.99902 21.166V19.9717C1.99918 19.2816 2.55891 18.7218 3.24902 18.7217Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M24.749 18.7217C25.4393 18.7217 25.9989 19.2815 25.999 19.9717V21.166C25.9988 23.8351 23.8352 25.999 21.166 25.999H19.9717C19.2815 25.999 18.7219 25.4392 18.7217 24.749C18.722 24.0589 19.2815 23.499 19.9717 23.499H21.166C22.4546 23.499 23.4988 22.4543 23.499 21.166V19.9717C23.4992 19.2816 24.059 18.7219 24.749 18.7217Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.9873 18.0811C17.4754 17.593 18.2677 17.5932 18.7559 18.0811C19.2434 18.5692 19.2436 19.3606 18.7559 19.8486C16.1297 22.4744 11.8703 22.4744 9.24414 19.8486C8.75638 19.3605 8.75635 18.5691 9.24414 18.0811C9.73219 17.593 10.5235 17.5932 11.0117 18.0811C12.6615 19.7305 15.3374 19.7303 16.9873 18.0811Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.5967 9.28223C15.2868 9.2824 15.8465 9.84216 15.8467 10.5322V14.7129C15.8463 16.0621 14.7515 17.157 13.4023 17.1572H12.8047C12.1146 17.1571 11.555 16.5972 11.5547 15.9072C11.5549 15.2171 12.1146 14.6573 12.8047 14.6572H13.3467V10.5322C13.3469 9.84212 13.9065 9.28233 14.5967 9.28223Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.62402 9.2627C9.31438 9.2627 9.87402 9.82234 9.87402 10.5127V12.3037C9.87354 12.9937 9.31408 13.5537 8.62402 13.5537C7.93415 13.5535 7.37451 12.9935 7.37402 12.3037V10.5127C7.37402 9.82248 7.93386 9.26292 8.62402 9.2627Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M19.374 9.2627C20.0644 9.2627 20.624 9.82234 20.624 10.5127V12.3037C20.6235 12.9937 20.0641 13.5537 19.374 13.5537C18.6842 13.5534 18.1245 12.9935 18.124 12.3037V10.5127C18.124 9.82254 18.6839 9.26301 19.374 9.2627Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.02637 1.99902C8.7166 1.99902 9.27616 2.55982 9.27637 3.25C9.2761 3.94013 8.71656 4.5 8.02637 4.5H6.83203C5.5438 4.50036 4.49934 5.54494 4.49902 6.83301V8.02734C4.49876 8.71747 3.93922 9.27734 3.24902 9.27734C2.55897 9.27718 1.99929 8.71737 1.99902 8.02734V6.83301C1.99934 4.16414 4.16318 1.99938 6.83203 1.99902H8.02637Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21.166 1.99902C23.8352 1.99903 25.9987 4.16392 25.999 6.83301V8.02734C25.9988 8.71747 25.4392 9.27734 24.749 9.27734C24.059 9.27709 23.4993 8.71732 23.499 8.02734V6.83301C23.4987 5.54473 22.4545 4.5 21.166 4.5H19.9717C19.2815 4.5 18.7219 3.94013 18.7217 3.25C18.7219 2.55982 19.2814 1.99902 19.9717 1.99902H21.166Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_face_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFace28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_face_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_finger_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_finger_20: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_finger_20 != null) return _ic_scan_finger_20!!
|
||||
_ic_scan_finger_20 = ImageVector.Builder(
|
||||
name = "ic_scan_finger_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.0124 14.8955C12.1618 14.5097 12.5961 14.318 12.9821 14.4668C13.3681 14.6161 13.5598 15.0503 13.4108 15.4365C13.1205 16.1883 12.7739 16.9187 12.3747 17.6201C12.1697 17.9796 11.712 18.1051 11.3523 17.9004C10.9927 17.6953 10.8672 17.2377 11.072 16.8779C11.4345 16.241 11.7489 15.5779 12.0124 14.8955Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.2644 8.88865C10.6784 8.88868 11.0142 9.22459 11.0144 9.63865C11.015 12.4596 10.0677 15.2001 8.32198 17.4306C8.06683 17.7565 7.59537 17.8142 7.26924 17.5596C6.94342 17.3042 6.88526 16.8319 7.14034 16.5058C8.68058 14.5378 9.51494 12.1225 9.51436 9.63865C9.51444 9.22477 9.85051 8.88904 10.2644 8.88865Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.2653 5.44432C12.5975 5.44453 14.5055 7.31162 14.5065 9.6367V9.63865C14.5063 10.3695 14.4562 11.1001 14.3562 11.8242C14.2993 12.2343 13.9206 12.5204 13.5105 12.4638C13.1007 12.4069 12.8135 12.029 12.8698 11.6191C12.9605 10.963 13.0063 10.3009 13.0065 9.63865V9.6367C13.0055 8.15931 11.7885 6.94453 10.2653 6.94432C8.74176 6.94469 7.52324 8.16057 7.52315 9.63865C7.52315 9.64975 7.52169 9.66087 7.5212 9.67185C7.5158 11.8542 6.73697 13.965 5.31905 15.6367C5.05109 15.9523 4.57722 15.9914 4.26143 15.7236C3.94624 15.4558 3.9073 14.9827 4.17452 14.667C5.37107 13.2564 6.02442 11.476 6.02217 9.63963C6.02217 9.62597 6.02342 9.61209 6.02413 9.59861C6.04586 7.29137 7.94609 5.44469 10.2653 5.44432Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M6.01339 3.26072C8.3863 1.71559 11.4267 1.58123 13.9294 2.91014C16.4329 4.23982 17.9996 6.82266 17.9987 9.63768C17.998 11.1835 17.8129 12.7254 17.448 14.2285C17.3502 14.6307 16.945 14.8777 16.5427 14.7803C16.1406 14.6824 15.8935 14.2772 15.9909 13.875C16.3278 12.4875 16.498 11.0652 16.4987 9.63865C16.4995 7.38607 15.2453 5.30815 13.2253 4.23533C11.2039 3.16206 8.74676 3.27059 6.83174 4.51756C6.48474 4.7431 6.0196 4.64562 5.79366 4.29881C5.56802 3.9519 5.6668 3.4868 6.01339 3.26072Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3.30831 6.31541C3.49148 5.94415 3.94185 5.79178 4.31319 5.97459C4.68465 6.15786 4.83728 6.60801 4.65401 6.97947C4.24545 7.8077 4.03204 8.71657 4.03096 9.6367V9.63963C4.03015 10.5378 3.82117 11.4239 3.42061 12.2295C3.23614 12.5999 2.78639 12.7513 2.41573 12.5674C2.04534 12.3828 1.89373 11.9322 2.07784 11.5615C2.37574 10.9623 2.53042 10.3031 2.53096 9.6367C2.53201 8.48565 2.79812 7.34958 3.30831 6.31541Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_finger_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFinger20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_finger_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_finger_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_finger_24: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_finger_24 != null) return _ic_scan_finger_24!!
|
||||
_ic_scan_finger_24 = ImageVector.Builder(
|
||||
name = "ic_scan_finger_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.248 17.6974C14.447 17.1823 15.0259 16.9263 15.541 17.1251C16.056 17.3242 16.3131 17.9031 16.1143 18.4181C15.7714 19.3057 15.3621 20.1673 14.8906 20.9953C14.6173 21.475 14.0062 21.6423 13.5264 21.3693C13.0468 21.096 12.8796 20.4858 13.1523 20.006C13.5747 19.2642 13.941 18.4922 14.248 17.6974Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.3125 10.5773C12.8648 10.5772 13.3133 11.025 13.3135 11.5773C13.3141 14.9117 12.1924 18.1511 10.1279 20.7873C9.78744 21.2215 9.15925 21.2982 8.72461 20.9582C8.28999 20.6178 8.21372 19.9896 8.55371 19.5548C10.3441 17.2686 11.314 14.4621 11.3135 11.5773C11.3135 11.0252 11.7605 10.5776 12.3125 10.5773Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.3125 6.53823C15.1124 6.53844 17.406 8.78132 17.4062 11.5763C17.4062 11.584 17.4045 11.5921 17.4043 11.5998C17.4029 12.4548 17.3446 13.3102 17.2275 14.1574C17.1513 14.7037 16.6471 15.0862 16.1006 15.0109C15.5539 14.9351 15.1719 14.4296 15.2471 13.883C15.3527 13.119 15.4049 12.3482 15.4053 11.5773C15.4052 9.91234 14.0338 8.53844 12.3125 8.53823C10.5915 8.53829 9.21956 9.9109 9.21875 11.5753C9.22189 14.1772 8.29513 16.6958 6.60449 18.6876C6.24706 19.1084 5.6153 19.1602 5.19433 18.8029C4.77367 18.4455 4.72197 17.8137 5.0791 17.3927C6.46441 15.7606 7.22136 13.7013 7.21875 11.5773V11.5753C7.21956 8.78071 9.51277 6.53829 12.3125 6.53823Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7.26171 3.99721C10.0807 2.16169 13.6922 2.00324 16.665 3.58218C19.6387 5.16176 21.5008 8.23004 21.5 11.5753V11.5773C21.4991 13.3991 21.2809 15.2159 20.8506 16.9874C20.7198 17.5233 20.1797 17.8528 19.6436 17.7228C19.1071 17.5925 18.7773 17.0512 18.9072 16.5148C19.3001 14.8976 19.4991 13.24 19.5 11.5773V11.5753C19.5008 8.97961 18.0558 6.58493 15.7266 5.3478C13.3954 4.10975 10.562 4.236 8.35351 5.67397C7.89075 5.97518 7.27108 5.84368 6.96972 5.381C6.66861 4.91828 6.79913 4.29857 7.26171 3.99721Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M4.04785 7.6271C4.29225 7.13212 4.89258 6.92896 5.38769 7.173C5.88258 7.41745 6.08586 8.01679 5.84179 8.51186C5.37056 9.46676 5.12528 10.5147 5.12402 11.5753V11.5783C5.12301 12.6501 4.8735 13.7079 4.3955 14.6691C4.14934 15.163 3.5489 15.365 3.05468 15.1193C2.56055 14.8734 2.35915 14.2728 2.60449 13.7785C2.94563 13.0925 3.12336 12.3381 3.12402 11.5753C3.12528 10.2069 3.44122 8.85644 4.04785 7.6271Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_finger_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFinger24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_finger_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_finger_28: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_finger_28: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_finger_28 != null) return _ic_scan_finger_28!!
|
||||
_ic_scan_finger_28 = ImageVector.Builder(
|
||||
name = "ic_scan_finger_28",
|
||||
defaultWidth = 28.dp,
|
||||
defaultHeight = 28.dp,
|
||||
viewportWidth = 28f,
|
||||
viewportHeight = 28f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.4788 20.4991C16.7273 19.8554 17.4512 19.5353 18.095 19.7833C18.739 20.0318 19.0602 20.7555 18.8118 21.3995C18.4171 22.4222 17.9462 23.4151 17.4036 24.3692C17.0622 24.969 16.2985 25.1792 15.6985 24.838C15.0992 24.4967 14.8893 23.7336 15.2298 23.1339C15.7112 22.2874 16.1288 21.406 16.4788 20.4991Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.3557 12.2647C15.0458 12.2647 15.6064 12.8246 15.6067 13.5147C15.6075 17.3629 14.3141 21.1014 11.9329 24.1436C11.5073 24.6868 10.7215 24.7828 10.178 24.3575C9.63466 23.9321 9.53905 23.1462 9.96413 22.6026C12.0029 19.9979 13.1075 16.8011 13.1067 13.5147C13.1069 12.8249 13.666 12.2653 14.3557 12.2647Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.3557 7.63288C17.6231 7.63288 20.3017 10.2504 20.302 13.5147C20.3016 14.5087 20.2329 15.5026 20.0969 16.4874C20.0024 17.1709 19.3713 17.6489 18.6878 17.5548C18.0042 17.4602 17.5262 16.8292 17.6204 16.1456C17.7401 15.2782 17.8001 14.4037 17.801 13.5284C17.801 13.5242 17.801 13.5198 17.801 13.5157C17.801 11.6635 16.2746 10.1329 14.3557 10.1329C12.4381 10.1333 10.9119 11.662 10.9104 13.5128L10.8987 14.0762C10.7769 16.8841 9.72096 19.5788 7.88893 21.7383C7.44228 22.2644 6.6535 22.3293 6.12721 21.8829C5.6011 21.4364 5.53654 20.6475 5.98268 20.1212C7.55523 18.2675 8.41329 15.9286 8.41042 13.5167V13.5128C8.41185 10.2496 11.0893 7.63327 14.3557 7.63288Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.5071 4.73444C11.7718 2.60837 15.9538 2.42444 19.3967 4.253C22.8417 6.08298 24.9992 9.63856 24.9973 13.5157C24.9963 15.6135 24.7443 17.7043 24.2493 19.7442C24.0864 20.4148 23.4111 20.8267 22.7405 20.6641C22.0703 20.5011 21.6574 19.8257 21.8196 19.1553C22.2679 17.3077 22.4955 15.4134 22.4964 13.5137C22.4964 13.5093 22.4963 13.5045 22.4964 13.5001C22.4923 10.5662 20.859 7.86048 18.2249 6.46101C15.5843 5.05847 12.3739 5.20038 9.87233 6.82917C9.2939 7.20555 8.51853 7.04224 8.14186 6.46394C7.76562 5.8857 7.92927 5.11125 8.5071 4.73444Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M4.78444 8.93952C5.08961 8.3205 5.83917 8.06632 6.45827 8.37116C7.07747 8.67642 7.33188 9.42579 7.02663 10.045C6.49388 11.1259 6.21669 12.3121 6.2151 13.5128V13.5157C6.21404 14.7613 5.92428 15.9905 5.3694 17.1075C5.06208 17.7253 4.31165 17.9769 3.69362 17.67C3.07597 17.3628 2.82364 16.6131 3.13014 15.9952C3.51404 15.2223 3.71435 14.373 3.7151 13.5137C3.71664 11.9286 4.08254 10.3636 4.78444 8.93952Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_finger_28!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanFinger28Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_finger_28,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_qr_20: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_qr_20: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_qr_20 != null) return _ic_scan_qr_20!!
|
||||
_ic_scan_qr_20 = ImageVector.Builder(
|
||||
name = "ic_scan_qr_20",
|
||||
defaultWidth = 20.dp,
|
||||
defaultHeight = 20.dp,
|
||||
viewportWidth = 20f,
|
||||
viewportHeight = 20f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M2.75 13.2812C3.16403 13.2815 3.5 13.6172 3.5 14.0312V14.8369C3.50011 15.7576 4.24636 16.5046 5.16699 16.5049H5.97363C6.3875 16.5053 6.72363 16.8409 6.72363 17.2549C6.72333 17.6686 6.38731 18.0045 5.97363 18.0049H5.16699C3.41794 18.0046 2.00011 16.586 2 14.8369V14.0312C2 13.617 2.33579 13.2812 2.75 13.2812Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M17.2549 13.2812C17.6689 13.2815 18.0049 13.6172 18.0049 14.0312V14.8369C18.0048 16.5861 16.5861 18.0048 14.8369 18.0049H14.0312C13.6172 18.0049 13.2816 17.6688 13.2812 17.2549C13.2812 16.8407 13.617 16.5049 14.0312 16.5049H14.8369C15.7577 16.5048 16.5048 15.7577 16.5049 14.8369V14.0312C16.5049 13.617 16.8407 13.2812 17.2549 13.2812Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.7773 13.4453C11.0718 13.2051 11.5066 13.2217 11.7812 13.4961L11.7852 13.501C12.0777 13.7939 12.0779 14.2687 11.7852 14.5615L11.7812 14.5654C11.4885 14.8581 11.0136 14.858 10.7207 14.5654L10.7158 14.5615C10.4234 14.2688 10.4235 13.7938 10.7158 13.501L10.7207 13.4961L10.7773 13.4453Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.5176 13.4453C13.8121 13.2051 14.2469 13.2216 14.5215 13.4961L14.5254 13.501C14.8179 13.7939 14.818 14.2687 14.5254 14.5615L14.5215 14.5654C14.2287 14.8582 13.7539 14.858 13.4609 14.5654L13.4561 14.5615C13.1634 14.2688 13.1636 13.7939 13.4561 13.501L13.4609 13.4961L13.5176 13.4453Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.29297 10.4609C8.98333 10.4609 9.54297 11.0206 9.54297 11.7109V14.0312C9.54282 14.4453 9.20709 14.7812 8.79297 14.7812H6.47266C5.78243 14.7812 5.22281 14.2214 5.22266 13.5312V11.7109C5.22266 11.0206 5.78234 10.461 6.47266 10.4609H8.29297ZM6.72266 13.2812H8.04297V11.9609H6.72266V13.2812Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.1475 12.0352C12.4419 11.7949 12.8767 11.8116 13.1514 12.0859L13.1553 12.0908C13.4478 12.3837 13.448 12.8586 13.1553 13.1514L13.1514 13.1553C12.8586 13.448 12.3837 13.4478 12.0908 13.1553L12.0859 13.1514C11.7935 12.8586 11.7937 12.3837 12.0859 12.0908L12.0908 12.0859L12.1475 12.0352Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10.7773 10.625C11.0718 10.3847 11.5066 10.4014 11.7812 10.6758L11.7852 10.6807C12.0777 10.9736 12.0779 11.4484 11.7852 11.7412L11.7812 11.7451C11.4885 12.0378 11.0136 12.0376 10.7207 11.7451L10.7158 11.7412C10.4233 11.4485 10.4235 10.9735 10.7158 10.6807L10.7207 10.6758L10.7773 10.625Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.5176 10.625C13.8121 10.3848 14.2469 10.4012 14.5215 10.6758L14.5254 10.6807C14.8179 10.9736 14.8181 11.4484 14.5254 11.7412L14.5215 11.7451C14.2287 12.0379 13.7539 12.0377 13.4609 11.7451L13.4561 11.7412C13.1633 11.4485 13.1636 10.9736 13.4561 10.6807L13.4609 10.6758L13.5176 10.625Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M8.29297 5.22266C8.98326 5.22266 9.54286 5.78239 9.54297 6.47266V8.79297C9.54297 9.20718 9.20718 9.54297 8.79297 9.54297H6.47266C5.78234 9.54292 5.22266 8.9833 5.22266 8.29297V6.47266C5.22277 5.78242 5.78241 5.2227 6.47266 5.22266H8.29297ZM6.72266 8.04297H8.04297V6.72266H6.72266V8.04297Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M13.5312 5.22266C14.2214 5.22278 14.7811 5.78247 14.7812 6.47266V8.79297C14.7812 9.20711 14.4454 9.54285 14.0312 9.54297H11.7109C11.0206 9.54297 10.4609 8.98332 10.4609 8.29297V6.47266C10.461 5.78239 11.0206 5.22266 11.7109 5.22266H13.5312ZM11.9609 8.04297H13.2812V6.72266H11.9609V8.04297Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M5.97363 2C6.3875 2.0004 6.72363 2.33604 6.72363 2.75C6.72342 3.16378 6.38737 3.4996 5.97363 3.5H5.16699C4.24645 3.50025 3.50025 4.24645 3.5 5.16699V5.97363C3.4996 6.38737 3.16378 6.72342 2.75 6.72363C2.33604 6.72363 2.0004 6.3875 2 5.97363V5.16699C2.00025 3.41802 3.41802 2.00025 5.16699 2H5.97363Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.8369 2C16.5861 2.00004 18.0046 3.4179 18.0049 5.16699V5.97363C18.0045 6.38736 17.6686 6.72339 17.2549 6.72363C16.8409 6.72363 16.5053 6.3875 16.5049 5.97363V5.16699C16.5046 4.24632 15.7576 3.50004 14.8369 3.5H14.0312C13.6172 3.5 13.2815 3.16403 13.2812 2.75C13.2812 2.33579 13.617 2 14.0312 2H14.8369Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_qr_20!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanQr20Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_qr_20,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
@file:Suppress("all")
|
||||
|
||||
package com.tangem.core.ui.res.generated.icons
|
||||
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.PathFillType
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.addPathNodes
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Auto-generated from design tokens. Do not edit manually.
|
||||
*/
|
||||
|
||||
private var _ic_scan_qr_24: ImageVector? = null
|
||||
|
||||
val Icons.ic_scan_qr_24: ImageVector
|
||||
get() {
|
||||
if (_ic_scan_qr_24 != null) return _ic_scan_qr_24!!
|
||||
_ic_scan_qr_24 = ImageVector.Builder(
|
||||
name = "ic_scan_qr_24",
|
||||
defaultWidth = 24.dp,
|
||||
defaultHeight = 24.dp,
|
||||
viewportWidth = 24f,
|
||||
viewportHeight = 24f,
|
||||
).apply {
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M3 16C3.55228 16 4 16.4477 4 17V18C4 19.1046 4.89543 20 6 20H7C7.55228 20 8 20.4477 8 21C8 21.5523 7.55228 22 7 22H6C3.79086 22 2 20.2091 2 18V17C2 16.4477 2.44772 16 3 16Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M21 16C21.5523 16 22 16.4477 22 17V18C22 20.2091 20.2091 22 18 22H17C16.4477 22 16 21.5523 16 21C16 20.4477 16.4477 20 17 20H18C19.1046 20 20 19.1046 20 18V17C20 16.4477 20.4477 16 21 16Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.8428 16.2881C13.2333 15.8976 13.8663 15.8977 14.2568 16.2881L14.2617 16.293C14.6522 16.6835 14.6522 17.3165 14.2617 17.707L14.2568 17.7119C13.8663 18.1023 13.2333 18.1024 12.8428 17.7119L12.8379 17.707C12.4475 17.3165 12.4475 16.6835 12.8379 16.293L12.8428 16.2881Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.2432 16.2881C16.6337 15.8977 17.2667 15.8976 17.6572 16.2881L17.6621 16.293C18.0525 16.6835 18.0525 17.3165 17.6621 17.707L17.6572 17.7119C17.2667 18.1024 16.6337 18.1023 16.2432 17.7119L16.2383 17.707C15.8478 17.3165 15.8478 16.6835 16.2383 16.293L16.2432 16.2881Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10 12.5C10.8284 12.5 11.5 13.1716 11.5 14V17C11.5 17.5523 11.0523 18 10.5 18H7.5C6.67157 18 6 17.3284 6 16.5V14C6 13.1716 6.67157 12.5 7.5 12.5H10ZM8 16H9.5V14.5H8V16Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M14.543 14.5381C14.9335 14.1476 15.5665 14.1476 15.957 14.5381L15.9619 14.543C16.3524 14.9335 16.3524 15.5665 15.9619 15.957L15.957 15.9619C15.5665 16.3524 14.9335 16.3524 14.543 15.9619L14.5381 15.957C14.1476 15.5665 14.1476 14.9335 14.5381 14.543L14.543 14.5381Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.8428 12.7881C13.2333 12.3976 13.8663 12.3977 14.2568 12.7881L14.2617 12.793C14.6522 13.1835 14.6522 13.8165 14.2617 14.207L14.2568 14.2119C13.8663 14.6023 13.2333 14.6024 12.8428 14.2119L12.8379 14.207C12.4475 13.8165 12.4475 13.1835 12.8379 12.793L12.8428 12.7881Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.2432 12.7881C16.6337 12.3977 17.2667 12.3976 17.6572 12.7881L17.6621 12.793C18.0525 13.1835 18.0525 13.8165 17.6621 14.207L17.6572 14.2119C17.2667 14.6024 16.6337 14.6023 16.2432 14.2119L16.2383 14.207C15.8478 13.8165 15.8478 13.1835 16.2383 12.793L16.2432 12.7881Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M10 6C10.8284 6 11.5 6.67157 11.5 7.5V10.5C11.5 11.0523 11.0523 11.5 10.5 11.5H7.5C6.67157 11.5 6 10.8284 6 10V7.5C6 6.67157 6.67157 6 7.5 6H10ZM8 9.5H9.5V8H8V9.5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M16.5 6C17.3284 6 18 6.67157 18 7.5V10.5C18 11.0523 17.5523 11.5 17 11.5H14C13.1716 11.5 12.5 10.8284 12.5 10V7.5C12.5 6.67157 13.1716 6 14 6H16.5ZM14.5 9.5H16V8H14.5V9.5Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M7 2C7.55228 2 8 2.44772 8 3C8 3.55228 7.55228 4 7 4H6C4.89543 4 4 4.89543 4 6V7C4 7.55228 3.55228 8 3 8C2.44772 8 2 7.55228 2 7V6C2 3.79086 3.79086 2 6 2H7Z"),
|
||||
)
|
||||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M18 2C20.2091 2 22 3.79086 22 6V7C22 7.55228 21.5523 8 21 8C20.4477 8 20 7.55228 20 7V6C20 4.89543 19.1046 4 18 4H17C16.4477 4 16 3.55228 16 3C16 2.44772 16.4477 2 17 2H18Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_scan_qr_24!!
|
||||
}
|
||||
|
||||
@Composable
|
||||
@Preview(showBackground = true)
|
||||
private fun IcScanQr24Preview() {
|
||||
Icon(
|
||||
imageVector = Icons.ic_scan_qr_24,
|
||||
contentDescription = null,
|
||||
)
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ val Icons.ic_share_android_20: ImageVector
|
|||
addPath(
|
||||
fill = SolidColor(Color.Black),
|
||||
pathFillType = PathFillType.NonZero,
|
||||
pathData = addPathNodes("M12.3772 3.37816C13.5488 2.20706 15.4479 2.20684 16.6194 3.37816L16.7258 3.48949C17.7901 4.667 17.7541 6.48523 16.6194 7.62035C15.4478 8.79166 13.5487 8.79182 12.3772 7.62035C12.3273 7.57044 12.2803 7.51849 12.2346 7.46605L8.42995 9.3684C8.51871 9.78341 8.52065 10.2131 8.4319 10.6282L12.2346 12.5295C12.28 12.4774 12.3276 12.4258 12.3772 12.3762C13.5487 11.2052 15.4479 11.2051 16.6194 12.3762L16.7258 12.4875C17.7901 13.665 17.7541 15.4833 16.6194 16.6184C15.4478 17.7899 13.5488 17.7899 12.3772 16.6184C11.6315 15.8725 11.3629 14.8323 11.5667 13.8723L7.75709 11.968C7.71291 12.0185 7.66947 12.0712 7.62135 12.1194C6.44983 13.2909 4.55077 13.2907 3.37916 12.1194C2.20761 10.9478 2.20758 9.04876 3.37916 7.87719C4.5508 6.70628 6.44997 6.70588 7.62135 7.87719L7.7278 7.98851C7.73882 8.00071 7.74826 8.01427 7.75905 8.0266L11.5667 6.12328C11.3633 5.16358 11.6318 4.1237 12.3772 3.37816ZM15.4456 13.3332C14.8565 12.853 13.9869 12.8881 13.4378 13.4368C13.3456 13.5289 13.2685 13.6312 13.2053 13.7385C13.1944 13.7708 13.1829 13.8039 13.1673 13.8352C13.1508 13.8681 13.1301 13.8986 13.1096 13.928C12.8874 14.4705 12.9973 15.1172 13.4378 15.5578C14.0235 16.1436 14.973 16.1436 15.5589 15.5578C16.1075 15.0088 16.1424 14.14 15.6624 13.551L15.5589 13.4368L15.4456 13.3332ZM6.44752 8.83422C5.85857 8.35384 4.98896 8.38916 4.43971 8.93773C3.85392 9.52352 3.85394 10.473 4.43971 11.0588C5.02553 11.6444 5.97507 11.6445 6.56081 11.0588C6.65438 10.9651 6.73153 10.8605 6.79518 10.7512C6.80525 10.7231 6.81762 10.6946 6.83131 10.6672C6.8454 10.6391 6.8612 10.6117 6.87819 10.5862C7.03699 10.2133 7.03917 9.78966 6.88209 9.41625C6.86365 9.38907 6.84643 9.36048 6.83131 9.33031C6.81696 9.30158 6.80458 9.27196 6.7942 9.24242C6.75582 9.1768 6.71353 9.11238 6.66432 9.05199L6.56081 8.93773L6.44752 8.83422ZM15.4456 4.33519C14.8565 3.85483 13.987 3.88996 13.4378 4.43871C12.9973 4.87938 12.8883 5.52603 13.1106 6.06859C13.1311 6.09809 13.1507 6.12926 13.1673 6.16234C13.1825 6.19282 13.1936 6.22472 13.2044 6.25609C13.2678 6.36431 13.3449 6.46696 13.4378 6.5598C14.0235 7.14549 14.973 7.14532 15.5589 6.5598C16.1075 6.01072 16.1424 5.14197 15.6624 4.55297L15.5589 4.43871L15.4456 4.33519Z"),
|
||||
pathData = addPathNodes("M12.3772 3.37816C13.5488 2.20706 15.4479 2.20684 16.6194 3.37816L16.7258 3.48949C17.7901 4.667 17.7541 6.48523 16.6194 7.62035C15.4478 8.79166 13.5487 8.79182 12.3772 7.62035C12.3273 7.57044 12.2803 7.5185 12.2346 7.46605L8.42995 9.3684C8.51871 9.78341 8.52065 10.2131 8.4319 10.6282L12.2346 12.5295C12.28 12.4774 12.3276 12.4258 12.3772 12.3762C13.5487 11.2052 15.4479 11.2051 16.6194 12.3762L16.7258 12.4875C17.7901 13.665 17.7541 15.4833 16.6194 16.6184C15.4478 17.7899 13.5488 17.7899 12.3772 16.6184C11.6315 15.8725 11.3629 14.8323 11.5667 13.8723L7.75709 11.968C7.71291 12.0185 7.66948 12.0712 7.62135 12.1194C6.44983 13.2909 4.55078 13.2907 3.37916 12.1194C2.20761 10.9478 2.20758 9.04876 3.37916 7.87719C4.5508 6.70628 6.44997 6.70588 7.62135 7.87719L7.7278 7.98851C7.73882 8.00071 7.74826 8.01427 7.75905 8.0266L11.5667 6.12328C11.3633 5.16358 11.6318 4.1237 12.3772 3.37816ZM15.4456 13.3332C14.8565 12.853 13.9869 12.8881 13.4378 13.4368C13.3456 13.5289 13.2685 13.6312 13.2053 13.7385C13.1944 13.7708 13.1829 13.8039 13.1673 13.8352C13.1508 13.8681 13.1301 13.8986 13.1096 13.928C12.8874 14.4705 12.9973 15.1172 13.4378 15.5578C14.0235 16.1436 14.973 16.1436 15.5589 15.5578C16.1075 15.0088 16.1424 14.14 15.6624 13.551L15.5589 13.4368L15.4456 13.3332ZM6.44752 8.83422C5.85857 8.35384 4.98896 8.38916 4.43971 8.93773C3.85392 9.52352 3.85394 10.473 4.43971 11.0588C5.02553 11.6444 5.97507 11.6445 6.56081 11.0588C6.65438 10.9651 6.73153 10.8605 6.79518 10.7512C6.80525 10.7231 6.81762 10.6946 6.83131 10.6672C6.8454 10.6391 6.8612 10.6117 6.87819 10.5862C7.03699 10.2133 7.03917 9.78966 6.88209 9.41625C6.86365 9.38907 6.84643 9.36048 6.83131 9.33031C6.81696 9.30158 6.80458 9.27196 6.7942 9.24242C6.75582 9.1768 6.71353 9.11238 6.66432 9.05199L6.56081 8.93773L6.44752 8.83422ZM15.4456 4.33519C14.8565 3.85483 13.987 3.88996 13.4378 4.43871C12.9973 4.87938 12.8883 5.52603 13.1106 6.06859C13.1311 6.09809 13.1507 6.12926 13.1673 6.16234C13.1825 6.19282 13.1936 6.22472 13.2044 6.25609C13.2678 6.36431 13.3449 6.46696 13.4378 6.5598C14.0235 7.14549 14.973 7.14532 15.5589 6.5598C16.1075 6.01072 16.1424 5.14197 15.6624 4.55297L15.5589 4.43871L15.4456 4.33519Z"),
|
||||
)
|
||||
}.build()
|
||||
return _ic_share_android_20!!
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue