@onekeyfe/react-native-native-list 6.7.0-alpha.412 → 6.7.0-alpha.414

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/android/src/main/java/com/onekey/nativelist/NativeListAccessoryStack.kt +0 -5
  2. package/android/src/main/java/com/onekey/nativelist/NativeListLeadingVisual.kt +0 -5
  3. package/android/src/main/java/com/onekey/nativelist/NativeListPrimitives.kt +338 -117
  4. package/android/src/main/java/com/onekey/nativelist/NativeListRendererRowView.kt +0 -5
  5. package/docs/SPEC.md +7 -114
  6. package/ios/NativeListAccessoryStack.swift +16 -6
  7. package/ios/NativeListDataRowRenderer.swift +6 -15
  8. package/ios/NativeListDesignAssets.swift +84 -13
  9. package/ios/NativeListIdentityRenderer.swift +10 -12
  10. package/ios/NativeListLeadingVisual.swift +9 -11
  11. package/ios/NativeListMarketRenderer.swift +13 -7
  12. package/ios/NativeListMediaTileRenderer.swift +2 -6
  13. package/ios/NativeListMetricCardRenderer.swift +2 -4
  14. package/ios/NativeListSectionHeaderRenderer.swift +4 -12
  15. package/ios/Resources/NativeListIcons.xcassets/Contents.json +1 -0
  16. package/ios/Resources/NativeListIcons.xcassets/onekey_arrow_bottom.imageset/Contents.json +1 -0
  17. package/ios/Resources/NativeListIcons.xcassets/onekey_arrow_bottom.imageset/icon.svg +1 -0
  18. package/ios/Resources/NativeListIcons.xcassets/onekey_arrow_top.imageset/Contents.json +1 -0
  19. package/ios/Resources/NativeListIcons.xcassets/onekey_arrow_top.imageset/icon.svg +1 -0
  20. package/ios/Resources/NativeListIcons.xcassets/onekey_badge_verified_solid.imageset/Contents.json +1 -0
  21. package/ios/Resources/NativeListIcons.xcassets/onekey_badge_verified_solid.imageset/icon.svg +1 -0
  22. package/ios/Resources/NativeListIcons.xcassets/onekey_chart_trending_up.imageset/Contents.json +1 -0
  23. package/ios/Resources/NativeListIcons.xcassets/onekey_chart_trending_up.imageset/icon.svg +1 -0
  24. package/ios/Resources/NativeListIcons.xcassets/onekey_checkbox_checked.imageset/Contents.json +1 -0
  25. package/ios/Resources/NativeListIcons.xcassets/onekey_checkbox_checked.imageset/icon.svg +1 -0
  26. package/ios/Resources/NativeListIcons.xcassets/onekey_checkbox_indeterminate.imageset/Contents.json +1 -0
  27. package/ios/Resources/NativeListIcons.xcassets/onekey_checkbox_indeterminate.imageset/icon.svg +1 -0
  28. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_bottom.imageset/Contents.json +1 -0
  29. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_bottom.imageset/icon.svg +1 -0
  30. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_grabber_ver.imageset/Contents.json +1 -0
  31. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_grabber_ver.imageset/icon.svg +1 -0
  32. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_right_small.imageset/Contents.json +1 -0
  33. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_right_small.imageset/icon.svg +1 -0
  34. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_top.imageset/Contents.json +1 -0
  35. package/ios/Resources/NativeListIcons.xcassets/onekey_chevron_top.imageset/icon.svg +1 -0
  36. package/ios/Resources/NativeListIcons.xcassets/onekey_crypto_coin_outline.imageset/Contents.json +15 -0
  37. package/ios/Resources/NativeListIcons.xcassets/onekey_crypto_coin_outline.imageset/icon.svg +4 -0
  38. package/ios/Resources/NativeListIcons.xcassets/onekey_document2.imageset/Contents.json +1 -0
  39. package/ios/Resources/NativeListIcons.xcassets/onekey_document2.imageset/icon.svg +1 -0
  40. package/ios/Resources/NativeListIcons.xcassets/onekey_dot_hor.imageset/Contents.json +1 -0
  41. package/ios/Resources/NativeListIcons.xcassets/onekey_dot_hor.imageset/icon.svg +1 -0
  42. package/ios/Resources/NativeListIcons.xcassets/onekey_dot_ver_solid.imageset/Contents.json +1 -0
  43. package/ios/Resources/NativeListIcons.xcassets/onekey_dot_ver_solid.imageset/icon.svg +1 -0
  44. package/ios/Resources/NativeListIcons.xcassets/onekey_drag.imageset/Contents.json +1 -0
  45. package/ios/Resources/NativeListIcons.xcassets/onekey_drag.imageset/icon.svg +1 -0
  46. package/ios/Resources/NativeListIcons.xcassets/onekey_error_solid.imageset/Contents.json +1 -0
  47. package/ios/Resources/NativeListIcons.xcassets/onekey_error_solid.imageset/icon.svg +1 -0
  48. package/ios/Resources/NativeListIcons.xcassets/onekey_gas_solid.imageset/Contents.json +15 -0
  49. package/ios/Resources/NativeListIcons.xcassets/onekey_gas_solid.imageset/icon.svg +3 -0
  50. package/ios/Resources/NativeListIcons.xcassets/onekey_image_square_waves.imageset/Contents.json +1 -0
  51. package/ios/Resources/NativeListIcons.xcassets/onekey_image_square_waves.imageset/icon.svg +1 -0
  52. package/ios/Resources/NativeListIcons.xcassets/onekey_info_circle.imageset/Contents.json +1 -0
  53. package/ios/Resources/NativeListIcons.xcassets/onekey_info_circle.imageset/icon.svg +1 -0
  54. package/ios/Resources/NativeListIcons.xcassets/onekey_minus_circle.imageset/Contents.json +1 -0
  55. package/ios/Resources/NativeListIcons.xcassets/onekey_minus_circle.imageset/icon.svg +1 -0
  56. package/ios/Resources/NativeListIcons.xcassets/onekey_minus_circle_solid.imageset/Contents.json +1 -0
  57. package/ios/Resources/NativeListIcons.xcassets/onekey_minus_circle_solid.imageset/icon.svg +1 -0
  58. package/ios/Resources/NativeListIcons.xcassets/onekey_pencil.imageset/Contents.json +1 -0
  59. package/ios/Resources/NativeListIcons.xcassets/onekey_pencil.imageset/icon.svg +1 -0
  60. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_circle.imageset/Contents.json +1 -0
  61. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_circle.imageset/icon.svg +1 -0
  62. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_large.imageset/Contents.json +1 -0
  63. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_large.imageset/icon.svg +1 -0
  64. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_small.imageset/Contents.json +1 -0
  65. package/ios/Resources/NativeListIcons.xcassets/onekey_plus_small.imageset/icon.svg +1 -0
  66. package/ios/Resources/NativeListIcons.xcassets/onekey_questionmark_solid.imageset/Contents.json +1 -0
  67. package/ios/Resources/NativeListIcons.xcassets/onekey_questionmark_solid.imageset/icon.svg +1 -0
  68. package/ios/Resources/NativeListIcons.xcassets/onekey_refresh_ccw_outline.imageset/Contents.json +15 -0
  69. package/ios/Resources/NativeListIcons.xcassets/onekey_refresh_ccw_outline.imageset/icon.svg +3 -0
  70. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_account_error_custom.imageset/Contents.json +15 -0
  71. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_account_error_custom.imageset/icon.svg +14 -0
  72. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_all_networks_solid.imageset/Contents.json +15 -0
  73. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_all_networks_solid.imageset/icon.svg +12 -0
  74. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_apple_brand.imageset/Contents.json +15 -0
  75. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_apple_brand.imageset/icon.svg +6 -0
  76. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_bot_illus.imageset/Contents.json +15 -0
  77. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_bot_illus.imageset/icon.svg +15 -0
  78. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_crossed_small_solid.imageset/Contents.json +15 -0
  79. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_crossed_small_solid.imageset/icon.svg +3 -0
  80. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_globus_outline.imageset/Contents.json +15 -0
  81. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_globus_outline.imageset/icon.svg +7 -0
  82. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_google_illus.imageset/Contents.json +15 -0
  83. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_google_illus.imageset/icon.svg +18 -0
  84. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_lock_solid.imageset/Contents.json +15 -0
  85. package/ios/Resources/NativeListIcons.xcassets/onekey_selector_lock_solid.imageset/icon.svg +7 -0
  86. package/ios/Resources/NativeListIcons.xcassets/onekey_shield_exclamation.imageset/Contents.json +1 -0
  87. package/ios/Resources/NativeListIcons.xcassets/onekey_shield_exclamation.imageset/icon.svg +1 -0
  88. package/ios/Resources/NativeListIcons.xcassets/onekey_speaker_promote.imageset/Contents.json +1 -0
  89. package/ios/Resources/NativeListIcons.xcassets/onekey_speaker_promote.imageset/icon.svg +1 -0
  90. package/ios/Resources/NativeListIcons.xcassets/onekey_star.imageset/Contents.json +1 -0
  91. package/ios/Resources/NativeListIcons.xcassets/onekey_star.imageset/icon.svg +1 -0
  92. package/ios/Resources/NativeListIcons.xcassets/onekey_star_solid.imageset/Contents.json +1 -0
  93. package/ios/Resources/NativeListIcons.xcassets/onekey_star_solid.imageset/icon.svg +1 -0
  94. package/ios/Resources/NativeListIcons.xcassets/onekey_swap_hor.imageset/Contents.json +1 -0
  95. package/ios/Resources/NativeListIcons.xcassets/onekey_swap_hor.imageset/icon.svg +1 -0
  96. package/ios/Resources/NativeListIcons.xcassets/onekey_ticket.imageset/Contents.json +1 -0
  97. package/ios/Resources/NativeListIcons.xcassets/onekey_ticket.imageset/icon.svg +1 -0
  98. package/ios/Resources/NativeListIcons.xcassets/onekey_wallet.imageset/Contents.json +1 -0
  99. package/ios/Resources/NativeListIcons.xcassets/onekey_wallet.imageset/icon.svg +1 -0
  100. package/ios/tests/NativeListAccessoryStackTests.swift +0 -12
  101. package/lib/module/web/NativeListWebEngine.js +323 -21
  102. package/lib/module/web/templates/ActivityRowRenderer.js +24 -4
  103. package/lib/module/web/templates/MarketTableRowRenderer.js +15 -11
  104. package/lib/module/web/templates/MediaTileRowRenderer.js +12 -2
  105. package/lib/typescript/src/web/NativeListWebEngine.d.ts +1 -0
  106. package/package.json +4 -10
  107. package/react-native-native-list.podspec +5 -0
  108. package/src/web/NativeListWebEngine.ts +405 -25
  109. package/src/web/templates/ActivityRowRenderer.ts +53 -15
  110. package/src/web/templates/MarketTableRowRenderer.ts +29 -17
  111. package/src/web/templates/MediaTileRowRenderer.ts +15 -2
  112. package/android/src/main/java/com/onekey/nativelist/NativeListGeneratedIcons.kt +0 -47
  113. package/ios/NativeListGeneratedIcons.swift +0 -55
  114. package/ios/NativeListIconBinding.swift +0 -171
  115. package/ios/tests/NativeListSharedIconTests.swift +0 -236
  116. package/lib/module/web/NativeListGeneratedIcons.js +0 -31
  117. package/lib/typescript/src/web/NativeListGeneratedIcons.d.ts +0 -2
  118. package/scripts/generate-icons.mjs +0 -150
  119. package/scripts/generate-icons.test.mjs +0 -288
  120. package/scripts/native-list-icons.json +0 -260
  121. package/src/web/NativeListGeneratedIcons.ts +0 -28
@@ -1,5 +1,3 @@
1
- import { createNamedIcon } from '@onekeyfe/react-native-image/icon/dom';
2
- import { nativeListGeneratedIcons as selectorIcons } from './NativeListGeneratedIcons';
3
1
  import { applyTextWeight } from './templates/RowText';
4
2
  import {
5
3
  applyRowContainerStyle,
@@ -99,6 +97,8 @@ export const WEB_REORDER_ANIMATION = {
99
97
  const REORDER_TOUCH_LONG_PRESS_MS = 120;
100
98
  const MARKET_LONG_PRESS_MS = 800;
101
99
  const MARKET_MOVE_CANCEL_PX = 10;
100
+ export const WEB_MARKET_VERIFIED_PATH =
101
+ 'M9.483 11.458v3.5h-1v-3.5z M10.467 2.698a2.03 2.03 0 0 1 3.065 0l1.358 1.564a.03.03 0 0 0 .028.01l2.046-.325a2.03 2.03 0 0 1 2.347 1.971l.037 2.07q0 .016.014.026l1.776 1.066a2.03 2.03 0 0 1 .532 3.019l-1.304 1.609a.03.03 0 0 0-.005.03l.675 1.956a2.03 2.03 0 0 1-1.533 2.656l-2.033.394a.03.03 0 0 0-.023.019l-.741 1.933a2.03 2.03 0 0 1-2.88 1.05l-1.811-1.006a.03.03 0 0 0-.03 0l-1.811 1.005a2.03 2.03 0 0 1-2.88-1.049l-.742-1.933a.03.03 0 0 0-.023-.019l-2.033-.394a2.03 2.03 0 0 1-1.532-2.656l.675-1.957a.03.03 0 0 0-.005-.029l-1.304-1.61a2.03 2.03 0 0 1 .532-3.018l1.776-1.066a.03.03 0 0 0 .014-.026l.035-2.07a2.03 2.03 0 0 1 2.349-1.97l2.045.324a.03.03 0 0 0 .028-.01zm1.516 3.76a.5.5 0 0 0-.447.276l-1.861 3.724H8.483a1 1 0 0 0-1 1v3.5a1 1 0 0 0 1 1h6.692a2 2 0 0 0 1.981-1.73l.341-2.5a2 2 0 0 0-1.982-2.27h-1.939l.197-1.269a1.5 1.5 0 0 0-1.481-1.731z';
102
102
  const REORDER_MOUSE_MOVE_THRESHOLD_PX = 5;
103
103
  const REORDER_EDGE_RATIO = 0.25;
104
104
  const REORDER_MAX_SPEED_ZONE_RATIO = 0.05;
@@ -1179,35 +1179,416 @@ function paintSelectorImageBackground(
1179
1179
  if (image.complete && image.naturalWidth > 0) update();
1180
1180
  }
1181
1181
 
1182
+ // OneKey patch: use source SVG paths for selector actions and wallet provider marks.
1183
+ const selectorIcons: Readonly<
1184
+ Record<
1185
+ string,
1186
+ Readonly<{
1187
+ viewBox: string;
1188
+ paths: readonly Readonly<{
1189
+ d: string;
1190
+ fill: string;
1191
+ fillRule: string;
1192
+ opacity: number;
1193
+ }>[];
1194
+ }>
1195
+ >
1196
+ > = {
1197
+ RefreshCcwOutline: {
1198
+ viewBox: '0 0 24 24',
1199
+ paths: [
1200
+ {
1201
+ d: 'M5 12a7 7 0 0 0 7 7 7.15 7.15 0 0 0 4.955-2h-2.943v-2h6v6h-2v-2.257A9.148 9.148 0 0 1 12 21a9 9 0 0 1-9-9v-1h2v1Zm1-6.754A9.148 9.148 0 0 1 12 3a9 9 0 0 1 9 9v1h-2v-1a7 7 0 0 0-7-7 7.15 7.15 0 0 0-4.955 2H10v2H4V3h2v2.246Z',
1202
+ fill: 'currentColor',
1203
+ fillRule: 'nonzero',
1204
+ opacity: 1,
1205
+ },
1206
+ ],
1207
+ },
1208
+ DotVerSolid: {
1209
+ viewBox: '0 0 24 24',
1210
+ paths: [
1211
+ {
1212
+ d: 'M14 18v4h-4v-4zm0-4h-4v-4h4zm0-8h-4V2h4z',
1213
+ fill: 'currentColor',
1214
+ fillRule: 'nonzero',
1215
+ opacity: 1,
1216
+ },
1217
+ ],
1218
+ },
1219
+ Document2Outline: {
1220
+ viewBox: '0 0 24 24',
1221
+ paths: [
1222
+ {
1223
+ d: 'M12 16H8v-2h4zm4-4H8v-2h8zm0-4H8V6h8z',
1224
+ fill: 'currentColor',
1225
+ fillRule: 'nonzero',
1226
+ opacity: 1,
1227
+ },
1228
+ {
1229
+ d: 'M20 22H4V2h16zM6 20h12V4H6z',
1230
+ fill: 'currentColor',
1231
+ fillRule: 'evenodd',
1232
+ opacity: 1,
1233
+ },
1234
+ ],
1235
+ },
1236
+ WalletOutline: {
1237
+ viewBox: '0 0 24 24',
1238
+ paths: [
1239
+ {
1240
+ d: 'M15.5 13.25a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5',
1241
+ fill: 'currentColor',
1242
+ fillRule: 'nonzero',
1243
+ opacity: 1,
1244
+ },
1245
+ {
1246
+ d: 'M17 8h4v13H7a4 4 0 0 1-4-4V6.5A3.5 3.5 0 0 1 6.5 3H17zM5 17a2 2 0 0 0 2 2h12v-9H6.5c-.537 0-1.045-.12-1.5-.337zM6.5 5a1.5 1.5 0 1 0 0 3H15V5z',
1247
+ fill: 'currentColor',
1248
+ fillRule: 'evenodd',
1249
+ opacity: 1,
1250
+ },
1251
+ ],
1252
+ },
1253
+ PlusLargeOutline: {
1254
+ viewBox: '0 0 24 24',
1255
+ paths: [
1256
+ {
1257
+ d: 'M13 11h8v2h-8v8h-2v-8H3v-2h8V3h2z',
1258
+ fill: 'currentColor',
1259
+ fillRule: 'nonzero',
1260
+ opacity: 1,
1261
+ },
1262
+ ],
1263
+ },
1264
+ TicketOutline: {
1265
+ viewBox: '0 0 24 24',
1266
+ paths: [
1267
+ {
1268
+ d: 'M16 17.01h-2V15h2v2.01Zm0-4h-2V11h2v2.01Zm0-4h-2V7h2v2.01Z',
1269
+ fill: 'currentColor',
1270
+ fillRule: 'nonzero',
1271
+ opacity: 1,
1272
+ },
1273
+ {
1274
+ d: 'm22 9.927-.629.252c-1.661.665-1.661 2.977 0 3.642l.629.252V20H2v-5.927l.629-.252c1.661-.665 1.661-2.977 0-3.642L2 9.927V4h20v5.927ZM4 8.636c2.5 1.52 2.499 5.207 0 6.727V18h16v-2.637c-2.499-1.52-2.5-5.208 0-6.727V6H4v2.636Z',
1275
+ fill: 'currentColor',
1276
+ fillRule: 'evenodd',
1277
+ opacity: 1,
1278
+ },
1279
+ ],
1280
+ },
1281
+ GasSolid: {
1282
+ viewBox: '0 0 24 24',
1283
+ paths: [
1284
+ {
1285
+ d: 'M15 9h4v7h1V8.414L17.586 6 19 4.586l3 3V18h-5v-7h-2v8h1v2H2v-2h1V3h12zM6 9v2h6V9z',
1286
+ fill: 'currentColor',
1287
+ fillRule: 'evenodd',
1288
+ opacity: 1,
1289
+ },
1290
+ ],
1291
+ },
1292
+ CryptoCoinOutline: {
1293
+ viewBox: '0 0 24 24',
1294
+ paths: [
1295
+ {
1296
+ d: 'M11 16.387a4.5 4.5 0 0 1 0-8.775V6h2v1.613a4.5 4.5 0 0 1 2.856 2.067l-1.712 1.032a2.5 2.5 0 1 0 0 2.576l1.712 1.032A4.5 4.5 0 0 1 13 16.386V18h-2z',
1297
+ fill: 'currentColor',
1298
+ fillRule: 'nonzero',
1299
+ opacity: 1,
1300
+ },
1301
+ {
1302
+ d: 'M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10m-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0',
1303
+ fill: 'currentColor',
1304
+ fillRule: 'evenodd',
1305
+ opacity: 1,
1306
+ },
1307
+ ],
1308
+ },
1309
+ GlobusOutline: {
1310
+ viewBox: '0 0 24 24',
1311
+ paths: [
1312
+ {
1313
+ d: 'M12 2c5.185 0 9.448 3.947 9.95 9H22v2h-.05c-.502 5.053-4.765 9-9.95 9s-9.448-3.947-9.95-9H2v-2h.05C2.552 5.947 6.815 2 12 2M9.523 13c.09 1.982.438 3.726.934 5.002.29.746.612 1.282.917 1.614.304.331.517.384.626.384s.322-.053.626-.384c.305-.332.627-.868.917-1.614.496-1.276.845-3.02.934-5.002zm-5.459 0a8 8 0 0 0 4.8 6.36 10 10 0 0 1-.271-.633C7.994 17.187 7.61 15.189 7.52 13zm12.416 0c-.09 2.189-.474 4.187-1.073 5.727a10 10 0 0 1-.271.633 8 8 0 0 0 4.8-6.36zM8.863 4.639A8 8 0 0 0 4.064 11h3.457c.09-2.189.473-4.187 1.072-5.727q.127-.327.27-.634M12 4c-.109 0-.322.053-.626.384-.305.332-.627.868-.917 1.614-.496 1.276-.844 3.02-.934 5.002h4.954c-.09-1.982-.438-3.726-.934-5.002-.29-.746-.612-1.282-.917-1.614C12.322 4.053 12.109 4 12 4m3.136.639q.144.307.271.634c.599 1.54.982 3.538 1.073 5.727h3.456a8 8 0 0 0-4.8-6.361',
1314
+ fill: 'currentColor',
1315
+ fillRule: 'evenodd',
1316
+ opacity: 1.0,
1317
+ },
1318
+ ],
1319
+ },
1320
+ LockSolid: {
1321
+ viewBox: '0 0 24 24',
1322
+ paths: [
1323
+ {
1324
+ d: 'M12 2a5 5 0 0 1 5 5v2h3v13H4V9h3V7a5 5 0 0 1 5-5m-1 11v5h2v-5zm1-9a3 3 0 0 0-3 3v2h6V7a3 3 0 0 0-3-3',
1325
+ fill: 'currentColor',
1326
+ fillRule: 'evenodd',
1327
+ opacity: 1.0,
1328
+ },
1329
+ ],
1330
+ },
1331
+ GoogleIllus: {
1332
+ viewBox: '0 0 24 24',
1333
+ paths: [
1334
+ {
1335
+ d: 'M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09',
1336
+ fill: '#4285F4',
1337
+ fillRule: 'nonzero',
1338
+ opacity: 1.0,
1339
+ },
1340
+ {
1341
+ d: 'M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23',
1342
+ fill: '#34A853',
1343
+ fillRule: 'nonzero',
1344
+ opacity: 1.0,
1345
+ },
1346
+ {
1347
+ d: 'M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22z',
1348
+ fill: '#FBBC05',
1349
+ fillRule: 'nonzero',
1350
+ opacity: 1.0,
1351
+ },
1352
+ {
1353
+ d: 'M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53',
1354
+ fill: '#EA4335',
1355
+ fillRule: 'nonzero',
1356
+ opacity: 1.0,
1357
+ },
1358
+ ],
1359
+ },
1360
+ AppleBrand: {
1361
+ viewBox: '0 0 16 20',
1362
+ paths: [
1363
+ {
1364
+ d: 'M11.67.834c.117 1.074-.315 2.153-.955 2.928-.64.773-1.692 1.378-2.718 1.298-.14-1.054.38-2.151.971-2.836C9.63 1.45 10.746.872 11.67.834M14.994 7.093c-.176.108-1.992 1.224-1.972 3.482.025 2.769 2.428 3.693 2.46 3.705l-.004.015a10.1 10.1 0 0 1-1.264 2.593c-.764 1.116-1.556 2.229-2.806 2.254-.598.011-1-.162-1.416-.343-.437-.19-.891-.386-1.609-.386-.751 0-1.226.203-1.683.398-.397.169-.78.333-1.32.354-1.208.047-2.124-1.207-2.895-2.32C.909 14.57-.294 10.414 1.322 7.612c.803-1.395 2.237-2.275 3.794-2.298.671-.014 1.32.244 1.89.47.434.172.821.326 1.135.326.282 0 .659-.149 1.099-.323.692-.273 1.539-.607 2.41-.518.599.026 2.276.24 3.354 1.818z',
1365
+ fill: 'currentColor',
1366
+ fillRule: 'nonzero',
1367
+ opacity: 1.0,
1368
+ },
1369
+ ],
1370
+ },
1371
+ BotIllus: {
1372
+ viewBox: '0 0 24 24',
1373
+ paths: [
1374
+ {
1375
+ d: 'M11 2a1 1 0 1 1 2 0v1.8l1.6 1.6a1 1 0 1 1-1.4 1.4L12 5.6l-1.2 1.2a1 1 0 0 1-1.4-1.4L11 3.8z',
1376
+ fill: '#8897A5',
1377
+ fillRule: 'nonzero',
1378
+ opacity: 1.0,
1379
+ },
1380
+ {
1381
+ d: 'M8.0 6.0h8.0a5.0 5.0 0 0 1 5.0 5.0v4.0a5.0 5.0 0 0 1 -5.0 5.0h-8.0a5.0 5.0 0 0 1 -5.0 -5.0v-4.0a5.0 5.0 0 0 1 5.0 -5.0z',
1382
+ fill: '#3FA9F5',
1383
+ fillRule: 'nonzero',
1384
+ opacity: 1.0,
1385
+ },
1386
+ {
1387
+ d: 'M3.0 10.0h0.0a1.5 1.5 0 0 1 1.5 1.5v3.0a1.5 1.5 0 0 1 -1.5 1.5h0.0a1.5 1.5 0 0 1 -1.5 -1.5v-3.0a1.5 1.5 0 0 1 1.5 -1.5z',
1388
+ fill: '#8897A5',
1389
+ fillRule: 'nonzero',
1390
+ opacity: 1.0,
1391
+ },
1392
+ {
1393
+ d: 'M21.0 10.0h0.0a1.5 1.5 0 0 1 1.5 1.5v3.0a1.5 1.5 0 0 1 -1.5 1.5h0.0a1.5 1.5 0 0 1 -1.5 -1.5v-3.0a1.5 1.5 0 0 1 1.5 -1.5z',
1394
+ fill: '#8897A5',
1395
+ fillRule: 'nonzero',
1396
+ opacity: 1.0,
1397
+ },
1398
+ {
1399
+ d: 'M7.5 12.0a1.5 1.5 0 1 0 3.0 0a1.5 1.5 0 1 0 -3.0 0',
1400
+ fill: '#10243E',
1401
+ fillRule: 'nonzero',
1402
+ opacity: 1.0,
1403
+ },
1404
+ {
1405
+ d: 'M13.5 12.0a1.5 1.5 0 1 0 3.0 0a1.5 1.5 0 1 0 -3.0 0',
1406
+ fill: '#10243E',
1407
+ fillRule: 'nonzero',
1408
+ opacity: 1.0,
1409
+ },
1410
+ {
1411
+ d: 'M8.5 15.4c.9.8 2.08 1.2 3.5 1.2s2.6-.4 3.5-1.2c.24-.2.6-.18.8.06.2.23.17.6-.06.8-1.14.98-2.58 1.46-4.24 1.46s-3.1-.48-4.24-1.46a.58.58 0 0 1-.06-.8c.2-.24.56-.26.8-.06',
1412
+ fill: '#10243E',
1413
+ fillRule: 'nonzero',
1414
+ opacity: 1.0,
1415
+ },
1416
+ ],
1417
+ },
1418
+ AllNetworksSolid: {
1419
+ viewBox: '0 0 24 24',
1420
+ paths: [
1421
+ {
1422
+ d: 'M15.333 13.998a1.335 1.335 0 1 1 0 2.67 1.335 1.335 0 0 1 0-2.67',
1423
+ fill: 'currentColor',
1424
+ fillRule: 'nonzero',
1425
+ opacity: 1.0,
1426
+ },
1427
+ {
1428
+ d: 'M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0M8 12.668A2 2 0 0 0 6 14.666V16c0 1.103.895 1.997 1.998 1.998h1.334A2 2 0 0 0 11.33 16v-1.334a2 2 0 0 0-1.998-1.998zm7.333 0a2.665 2.665 0 1 0 0 5.33 2.665 2.665 0 0 0 0-5.33M7.999 6.001A2 2 0 0 0 6.001 8v1.334c0 1.103.895 1.998 1.998 1.998h1.334a2 2 0 0 0 1.998-1.998V7.999a2 2 0 0 0-1.998-1.998zm6.667 0A2 2 0 0 0 12.668 8v1.334c0 1.103.895 1.998 1.998 1.998H16a2 2 0 0 0 1.998-1.998V7.999A2 2 0 0 0 16 6.001z',
1429
+ fill: 'currentColor',
1430
+ fillRule: 'evenodd',
1431
+ opacity: 1.0,
1432
+ },
1433
+ ],
1434
+ },
1435
+ CrossedSmallSolid: {
1436
+ viewBox: '0 0 24 24',
1437
+ paths: [
1438
+ {
1439
+ d: 'M17.87 8.25 14.12 12l3.75 3.75-2.12 2.121-3.75-3.75-3.75 3.75-2.121-2.121L9.879 12l-3.75-3.75 2.12-2.121L12 9.879l3.75-3.75 2.122 2.121Z',
1440
+ fill: 'currentColor',
1441
+ fillRule: 'nonzero',
1442
+ opacity: 1.0,
1443
+ },
1444
+ ],
1445
+ },
1446
+ AccountErrorCustom: {
1447
+ viewBox: '0 0 18 18',
1448
+ paths: [
1449
+ {
1450
+ d: 'M12.5 12.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5',
1451
+ fill: '#000',
1452
+ fillRule: 'nonzero',
1453
+ opacity: 0.447,
1454
+ },
1455
+ {
1456
+ d: 'M0 3.5A3.5 3.5 0 0 1 3.5 0h8.088A2.41 2.41 0 0 1 14 2.412V5h1a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3H4a4 4 0 0 1-4-4zm2 3.163V14a2 2 0 0 0 2 2h11a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H3.5c-.537 0-1.045-.12-1.5-.337M2 3.5A1.5 1.5 0 0 0 3.5 5H12V2.412A.41.41 0 0 0 11.588 2H3.5A1.5 1.5 0 0 0 2 3.5',
1457
+ fill: '#000',
1458
+ fillRule: 'evenodd',
1459
+ opacity: 0.447,
1460
+ },
1461
+ ],
1462
+ },
1463
+ PlusSmallOutline: {
1464
+ viewBox: '0 0 24 24',
1465
+ paths: [
1466
+ {
1467
+ d: 'M13 11h5v2h-5v5h-2v-5H6v-2h5V6h2z',
1468
+ fill: 'currentColor',
1469
+ fillRule: 'nonzero',
1470
+ opacity: 1.0,
1471
+ },
1472
+ ],
1473
+ },
1474
+ DotHorOutline: {
1475
+ viewBox: '0 0 24 24',
1476
+ paths: [
1477
+ {
1478
+ d: 'M6 14H2v-4h4zm8 0h-4v-4h4zm8 0h-4v-4h4z',
1479
+ fill: 'currentColor',
1480
+ fillRule: 'nonzero',
1481
+ opacity: 1.0,
1482
+ },
1483
+ ],
1484
+ },
1485
+ ChevronRightSmallOutline: {
1486
+ viewBox: '0 0 24 24',
1487
+ paths: [
1488
+ {
1489
+ d: 'M15.414 12 10 17.414 8.586 16l4-4-4-4L10 6.586z',
1490
+ fill: 'currentColor',
1491
+ fillRule: 'nonzero',
1492
+ opacity: 1.0,
1493
+ },
1494
+ ],
1495
+ },
1496
+ DragOutline: {
1497
+ viewBox: '0 0 24 24',
1498
+ paths: [
1499
+ {
1500
+ d: 'M11 21H7v-4h4zm6 0h-4v-4h4zm-6-7H7v-4h4zm6 0h-4v-4h4zm-6-7H7V3h4zm6 0h-4V3h4z',
1501
+ fill: 'currentColor',
1502
+ fillRule: 'nonzero',
1503
+ opacity: 1.0,
1504
+ },
1505
+ ],
1506
+ },
1507
+ PencilOutline: {
1508
+ viewBox: '0 0 24 24',
1509
+ paths: [
1510
+ {
1511
+ d: 'M22.414 7.5 7.914 22H2v-5.914l14.5-14.5zM4 16.914V20h3.086l9.5-9.5L13.5 7.414zM14.914 6 18 9.086 19.586 7.5 16.5 4.414z',
1512
+ fill: 'currentColor',
1513
+ fillRule: 'evenodd',
1514
+ opacity: 1.0,
1515
+ },
1516
+ ],
1517
+ },
1518
+ CheckboxCheckedCustom: {
1519
+ viewBox: '0 0 16 16',
1520
+ paths: [
1521
+ {
1522
+ d: 'M12.204 5.043a1 1 0 0 1 0 1.414l-4.5 4.5a1 1 0 0 1-1.414 0l-2-2a1 1 0 1 1 1.414-1.414l1.293 1.293 3.793-3.793a1 1 0 0 1 1.414 0',
1523
+ fill: 'currentColor',
1524
+ fillRule: 'evenodd',
1525
+ opacity: 1.0,
1526
+ },
1527
+ ],
1528
+ },
1529
+ CheckboxIndeterminateCustom: {
1530
+ viewBox: '0 0 16 16',
1531
+ paths: [
1532
+ {
1533
+ d: 'M4 8a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2H5a1 1 0 0 1-1-1',
1534
+ fill: 'currentColor',
1535
+ fillRule: 'evenodd',
1536
+ opacity: 1.0,
1537
+ },
1538
+ ],
1539
+ },
1540
+ Circle: {
1541
+ viewBox: '0 0 24 24',
1542
+ paths: [
1543
+ {
1544
+ d: 'M0 12a12 12 0 1 0 24 0a12 12 0 1 0 -24 0',
1545
+ fill: 'currentColor',
1546
+ fillRule: 'nonzero',
1547
+ opacity: 1,
1548
+ },
1549
+ ],
1550
+ },
1551
+ BadgeVerifiedSolid: {
1552
+ viewBox: '0 0 24 24',
1553
+ paths: [
1554
+ {
1555
+ d: WEB_MARKET_VERIFIED_PATH,
1556
+ fill: 'currentColor',
1557
+ fillRule: 'evenodd',
1558
+ opacity: 1,
1559
+ },
1560
+ ],
1561
+ },
1562
+ };
1182
1563
  function applySelectorIcon(element: HTMLElement, name: string) {
1183
- const canonical = selectorIcons[name];
1184
- if (!canonical) return;
1185
- if (canonical === 'Circle') {
1186
- const svg = element.ownerDocument.createElementNS(
1187
- 'http://www.w3.org/2000/svg',
1188
- 'svg'
1189
- );
1190
- svg.setAttribute('viewBox', '0 0 24 24');
1191
- svg.setAttribute('width', '24');
1192
- svg.setAttribute('height', '24');
1193
- svg.setAttribute('aria-hidden', 'true');
1194
- const circle = element.ownerDocument.createElementNS(
1564
+ const icon = selectorIcons[name];
1565
+ if (!icon) return;
1566
+ element.textContent = '';
1567
+ const svg = element.ownerDocument.createElementNS(
1568
+ 'http://www.w3.org/2000/svg',
1569
+ 'svg'
1570
+ );
1571
+ svg.setAttribute('viewBox', icon.viewBox);
1572
+ svg.setAttribute('width', '24');
1573
+ svg.setAttribute('height', '24');
1574
+ svg.setAttribute('aria-hidden', 'true');
1575
+ icon.paths.forEach((path) => {
1576
+ const child = element.ownerDocument.createElementNS(
1195
1577
  'http://www.w3.org/2000/svg',
1196
- 'circle'
1578
+ 'path'
1197
1579
  );
1198
- circle.setAttribute('cx', '12');
1199
- circle.setAttribute('cy', '12');
1200
- circle.setAttribute('r', '12');
1201
- circle.setAttribute('fill', 'currentColor');
1202
- svg.append(circle);
1203
- element.replaceChildren(svg);
1204
- return;
1205
- }
1206
- element.replaceChildren(createNamedIcon(element.ownerDocument, canonical));
1580
+ child.setAttribute('d', path.d);
1581
+ child.setAttribute('fill', path.fill);
1582
+ child.setAttribute('fill-rule', path.fillRule);
1583
+ child.setAttribute('fill-opacity', String(path.opacity));
1584
+ svg.appendChild(child);
1585
+ });
1586
+ element.appendChild(svg);
1207
1587
  }
1208
1588
 
1209
1589
  function iconGlyph(name: string): string {
1210
1590
  const normalized = name.toLocaleLowerCase();
1591
+ if (normalized === 'dotversolid') return '⋮';
1211
1592
  if (normalized.includes('chevron')) {
1212
1593
  if (normalized.includes('top')) return '⌃';
1213
1594
  if (normalized.includes('bottom')) return '⌄';
@@ -1641,7 +2022,6 @@ function createIconAction(
1641
2022
  if (element.tagName === 'BUTTON') {
1642
2023
  element.setAttribute('type', 'button');
1643
2024
  element.toggleAttribute('disabled', Boolean(disabled));
1644
- if (name === 'DotVerSolid') element.setAttribute('aria-label', '⋮');
1645
2025
  }
1646
2026
  applySelectorIcon(element, name);
1647
2027
  if (actionKey) setData(element, 'nativeListAction', actionKey);
@@ -1,4 +1,3 @@
1
- import { createNamedIcon } from '@onekeyfe/react-native-image/icon/dom';
2
1
  import type { ActivityAmount, ActivityRow, LeadingVisual } from '../../models';
3
2
  import { createElement, tagSlot, markActionAnchorSource } from './RowElements';
4
3
  import { RowVisualStyle, type RowPrimitives } from './RowVisual';
@@ -271,18 +270,41 @@ function createHistory(body: HTMLElement, primitives: RowPrimitives) {
271
270
  histories.set(body, v);
272
271
  return v;
273
272
  }
274
- const historyIconNames = new Set([
275
- 'ArrowTopOutline',
276
- 'ArrowBottomOutline',
277
- 'SwitchHorOutline',
278
- 'CoinsOutline',
279
- 'ShieldCheckDoneOutline',
280
- 'UnlockedOutline',
281
- 'Document2Outline',
282
- 'CryptoCoinOutline',
283
- 'ImageSquareWavesOutline',
284
- 'DotHorOutline',
285
- ]);
273
+ const historyIconPaths: Readonly<Record<string, readonly string[]>> = {
274
+ ArrowTopOutline: [
275
+ 'M19.414 10 18 11.414l-5-5V21h-2V6.414l-5 5L4.586 10 12 2.586z',
276
+ ],
277
+ ArrowBottomOutline: [
278
+ 'm13 17.586 5-5L19.414 14 12 21.414 4.586 14 6 12.586l5 5V3h2z',
279
+ ],
280
+ SwitchHorOutline: [
281
+ 'm9.414 13-3 3H21v2H6.414l3 3L8 22.414 2.586 17 8 11.586zm12-6L16 12.414 14.586 11l3-3H3V6h14.586l-3-3L16 1.586z',
282
+ ],
283
+ CoinsOutline: [
284
+ 'M9 3a7 7 0 0 1 6.328 4.008 7 7 0 1 1-6.657 9.983A7 7 0 0 1 9 3m5.718 6.008a5 5 0 1 0 .566 9.985 5 5 0 0 0-.566-9.985M9 5a5 5 0 0 0-.941 9.91 7 7 0 0 1 5.11-7.667A4.99 4.99 0 0 0 8.999 5Z',
285
+ ],
286
+ ShieldCheckDoneOutline: [
287
+ 'M15.914 9.75 11 14.664 8.086 11.75 9.5 10.336l1.5 1.5 3.5-3.5z',
288
+ 'M12.325 2.055 21 5.036v6.876c0 2.807-1.149 4.83-2.813 6.404-1.615 1.53-3.745 2.66-5.712 3.722l-.475.256-.475-.256c-1.967-1.061-4.097-2.192-5.713-3.722C4.15 16.741 3 14.72 3 11.912V5.036l8.675-2.981.325-.113zM5 6.463v5.45c0 2.165.851 3.686 2.188 4.951 1.275 1.208 2.965 2.154 4.812 3.154 1.847-1 3.537-1.946 4.813-3.154C18.148 15.6 19 14.078 19 11.912v-5.45l-7-2.405z',
289
+ ],
290
+ UnlockedOutline: [
291
+ 'M13 18h-2v-5h2z',
292
+ 'M12 2a5 5 0 0 1 5 5h-2a3 3 0 0 0-6 0v2h11v13H4V9h3V7a5 5 0 0 1 5-5M6 20h12v-9H6z',
293
+ ],
294
+ Document2Outline: [
295
+ 'M12 16H8v-2h4zm4-4H8v-2h8zm0-4H8V6h8z',
296
+ 'M20 22H4V2h16zM6 20h12V4H6z',
297
+ ],
298
+ CryptoCoinOutline: [
299
+ 'M11 16.387a4.5 4.5 0 0 1 0-8.775V6h2v1.613a4.5 4.5 0 0 1 2.856 2.067l-1.712 1.032a2.5 2.5 0 1 0 0 2.576l1.712 1.032A4.5 4.5 0 0 1 13 16.386V18h-2z',
300
+ 'M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10m-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0',
301
+ ],
302
+ ImageSquareWavesOutline: [
303
+ 'M14.25 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4',
304
+ 'M21 21H3V3h18zM5 16.414V19h12.586L14 15.414l-2 2-4-4zm0-2.828 3-3 4 4 2-2 5 5V5H5z',
305
+ ],
306
+ DotHorOutline: ['M6 14H2v-4h4zm8 0h-4v-4h4zm8 0h-4v-4h4z'],
307
+ };
286
308
  function historyIcon(
287
309
  node: HTMLElement,
288
310
  source: LeadingVisual | undefined,
@@ -294,7 +316,8 @@ function historyIcon(
294
316
  : source?.kind === 'token'
295
317
  ? source.fallbackIcon?.name
296
318
  : undefined;
297
- if (!name || !historyIconNames.has(name)) return;
319
+ const paths = name && historyIconPaths[name];
320
+ if (!paths) return;
298
321
  const placeholder = node.querySelector<HTMLElement>(
299
322
  '.ok-native-list-visual-fallback'
300
323
  );
@@ -311,9 +334,24 @@ function historyIcon(
311
334
  fallback.style.color = source.tintColor;
312
335
  else if (source && 'fallbackIcon' in source && source.fallbackIcon?.tintColor)
313
336
  fallback.style.color = source.fallbackIcon.tintColor;
314
- const svg = createNamedIcon(node.ownerDocument, name);
337
+ const svg = node.ownerDocument.createElementNS(
338
+ 'http://www.w3.org/2000/svg',
339
+ 'svg'
340
+ );
341
+ svg.setAttribute('viewBox', '0 0 24 24');
315
342
  svg.setAttribute('width', String(size));
316
343
  svg.setAttribute('height', String(size));
344
+ svg.setAttribute('fill', 'currentColor');
345
+ svg.setAttribute('aria-hidden', 'true');
346
+ for (const d of paths) {
347
+ const path = node.ownerDocument.createElementNS(
348
+ 'http://www.w3.org/2000/svg',
349
+ 'path'
350
+ );
351
+ path.setAttribute('d', d);
352
+ path.setAttribute('fill-rule', 'evenodd');
353
+ svg.append(path);
354
+ }
317
355
  fallback.replaceChildren(svg);
318
356
  }
319
357
  function bindHistory(
@@ -1,4 +1,3 @@
1
- import { createNamedIcon } from '@onekeyfe/react-native-image/icon/dom';
2
1
  import type {
3
2
  MarketRow,
4
3
  WebMarketTableCell,
@@ -27,6 +26,10 @@ const views = new WeakMap<HTMLElement, Views>();
27
26
  const columnSignatures = new WeakMap<readonly WebMarketTableColumn[], string>();
28
27
  let sparklineId = 0;
29
28
  const svgNamespace = 'http://www.w3.org/2000/svg';
29
+ const outlineStar =
30
+ 'm15.455 7.243 7.729 1.123-5.592 5.45 1.32 7.698L12 17.879l-6.911 3.635 1.32-7.698-5.592-5.45 7.728-1.123L12 .24zM9.872 9.071l-4.759.69 3.444 3.358-.814 4.738L12 15.62l.465.245 3.791 1.993-.813-4.739 3.443-3.357-4.758-.69L12 4.758z';
31
+ const solidStar =
32
+ 'm15.405 7.313 7.84 1.034-5.735 5.443 1.44 7.774L12 17.793l-6.948 3.771 1.44-7.774L.756 8.347l7.839-1.034L12 .178z';
30
33
  function columnsSignature(columns: readonly WebMarketTableColumn[]) {
31
34
  let signature = columnSignatures.get(columns);
32
35
  if (signature === undefined) {
@@ -173,13 +176,19 @@ function action(
173
176
  flexShrink: '0',
174
177
  });
175
178
  }
176
- function icon(document: Document, name: string, size: number): SVGSVGElement {
177
- const svg = createNamedIcon(document, name);
179
+ function icon(document: Document, d: string, size: number): SVGSVGElement {
180
+ const svg = document.createElementNS(svgNamespace, 'svg');
181
+ svg.setAttribute('viewBox', '0 0 24 24');
178
182
  svg.setAttribute('width', String(size));
179
183
  svg.setAttribute('height', String(size));
184
+ svg.setAttribute('aria-hidden', 'true');
185
+ svg.setAttribute('fill', 'currentColor');
186
+ const path = document.createElementNS(svgNamespace, 'path');
187
+ path.setAttribute('d', d);
188
+ path.setAttribute('fill-rule', 'evenodd');
189
+ svg.appendChild(path);
180
190
  return svg;
181
191
  }
182
-
183
192
  function drawSparkline(
184
193
  element: HTMLElement,
185
194
  cell: Extract<WebMarketTableCell, { kind: 'sparkline' }>
@@ -444,7 +453,11 @@ function updateCell(
444
453
  );
445
454
  if (badge.actionKey) node.dataset.nativeListHoverAction = 'true';
446
455
  node.textContent = '';
447
- const svg = icon(document, 'BadgeRecognizedSolid', 14);
456
+ const svg = icon(
457
+ document,
458
+ 'M9.483 11.458v3.5h-1v-3.5z M10.467 2.698a2.03 2.03 0 0 1 3.065 0l1.358 1.564a.03.03 0 0 0 .028.01l2.046-.325a2.03 2.03 0 0 1 2.347 1.971l.037 2.07q0 .016.014.026l1.776 1.066a2.03 2.03 0 0 1 .532 3.019l-1.304 1.609a.03.03 0 0 0-.005.03l.675 1.956a2.03 2.03 0 0 1-1.533 2.656l-2.033.394a.03.03 0 0 0-.023.019l-.741 1.933a2.03 2.03 0 0 1-2.88 1.05l-1.811-1.006a.03.03 0 0 0-.03 0l-1.811 1.005a2.03 2.03 0 0 1-2.88-1.049l-.742-1.933a.03.03 0 0 0-.023-.019l-2.033-.394a2.03 2.03 0 0 1-1.532-2.656l.675-1.957a.03.03 0 0 0-.005-.029l-1.304-1.61a2.03 2.03 0 0 1 .532-3.018l1.776-1.066a.03.03 0 0 0 .014-.026l.035-2.07a2.03 2.03 0 0 1 2.349-1.97l2.045.324a.03.03 0 0 0 .028-.01zm1.516 3.76a.5.5 0 0 0-.447.276l-1.861 3.724H8.483a1 1 0 0 0-1 1v3.5a1 1 0 0 0 1 1h6.692a2 2 0 0 0 1.981-1.73l.341-2.5a2 2 0 0 0-1.982-2.27h-1.939l.197-1.269a1.5 1.5 0 0 0-1.481-1.731z',
459
+ 14
460
+ );
448
461
  node.appendChild(svg);
449
462
  }
450
463
  title.appendChild(node);
@@ -565,7 +578,13 @@ function updateCell(
565
578
  );
566
579
  button.style.padding = '0';
567
580
  button.style.color = 'var(--nl-icon-subdued)';
568
- button.appendChild(icon(document, 'Copy3Outline', 14));
581
+ button.appendChild(
582
+ icon(
583
+ document,
584
+ 'M21 17h-4v4H3V7h4V3h14zM5 19h10V9H5zM9 7h8v8h2V5H9z',
585
+ 14
586
+ )
587
+ );
569
588
  hoverFrame.appendChild(button);
570
589
  }
571
590
  track.appendChild(hoverFrame);
@@ -594,19 +613,12 @@ function updateCell(
594
613
  : 'var(--nl-icon-subdued)';
595
614
  let svg = button.querySelector('svg');
596
615
  if (!svg) {
597
- svg = icon(document, cell.active ? 'StarSolid' : 'StarOutline', 16);
616
+ svg = icon(document, cell.active ? solidStar : outlineStar, 16);
598
617
  button.appendChild(svg);
599
618
  }
600
- const name = cell.active ? 'StarSolid' : 'StarOutline';
601
- if (
602
- !svg
603
- .querySelector('use')
604
- ?.getAttribute('href')
605
- ?.endsWith(`#onekey-${name}`)
606
- ) {
607
- const replacement = icon(document, name, 16);
608
- svg.replaceWith(replacement);
609
- }
619
+ svg
620
+ .querySelector('path')
621
+ ?.setAttribute('d', cell.active ? solidStar : outlineStar);
610
622
  if (!button.parentElement) element.appendChild(button);
611
623
  } else if (cell.kind === 'sparkline') drawSparkline(element, cell);
612
624
  else {
@@ -1,4 +1,3 @@
1
- import { createNamedIcon } from '@onekeyfe/react-native-image/icon/dom';
2
1
  import type { MediaTileRow, NativeListTextStyle } from '../../models';
3
2
  import type { RowPrimitives } from './RowVisual';
4
3
 
@@ -221,7 +220,21 @@ function initGallery(body: HTMLElement, primitives: RowPrimitives) {
221
220
  };
222
221
  const frame = element('ok-native-list-media-image');
223
222
  const fallback = element('ok-native-list-media-fallback');
224
- const svg = createNamedIcon(document, 'ImageSquareWavesOutline');
223
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
224
+ svg.setAttribute('viewBox', '0 0 24 24');
225
+ svg.setAttribute('width', '24');
226
+ svg.setAttribute('height', '24');
227
+ svg.setAttribute('aria-hidden', 'true');
228
+ svg.setAttribute('fill', 'currentColor');
229
+ for (const d of [
230
+ 'M14.25 7a2 2 0 1 1 0 4 2 2 0 0 1 0-4',
231
+ 'M21 21H3V3h18zM5 16.414V19h12.586L14 15.414l-2 2-4-4zm0-2.828 3-3 4 4 2-2 5 5V5H5z',
232
+ ]) {
233
+ const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
234
+ path.setAttribute('d', d);
235
+ path.setAttribute('fill-rule', 'evenodd');
236
+ svg.append(path);
237
+ }
225
238
  fallback.append(svg);
226
239
  Object.assign(fallback.style, {
227
240
  position: 'absolute',