@blocklet/ui-react 2.13.70 → 3.0.1

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 (381) hide show
  1. package/lib/@types/index.js +5 -18
  2. package/lib/BlockletStudio/index.js +75 -89
  3. package/lib/ComponentInstaller/index.js +153 -190
  4. package/lib/ComponentInstaller/installer-item.js +56 -55
  5. package/lib/ComponentInstaller/locales.js +19 -18
  6. package/lib/ComponentInstaller/use-component-installed.js +49 -80
  7. package/lib/ComponentManager/components/add-component.js +68 -89
  8. package/lib/ComponentManager/components/check-component.js +4 -2
  9. package/lib/ComponentManager/components/publish-component.js +48 -57
  10. package/lib/ComponentManager/components/resource-dialog.js +41 -55
  11. package/lib/ComponentManager/index.js +8 -3
  12. package/lib/ComponentManager/libs/locales.js +8 -5
  13. package/lib/Dashboard/index.js +88 -124
  14. package/lib/Footer/brand.js +25 -28
  15. package/lib/Footer/copyright.js +15 -16
  16. package/lib/Footer/index.js +55 -65
  17. package/lib/Footer/internal-footer.js +93 -95
  18. package/lib/Footer/layout/plain.js +26 -24
  19. package/lib/Footer/layout/row.js +16 -20
  20. package/lib/Footer/layout/standard.js +73 -59
  21. package/lib/Footer/links.js +100 -120
  22. package/lib/Footer/social-media.js +28 -33
  23. package/lib/Header/index.js +108 -130
  24. package/lib/Icon/index.js +43 -59
  25. package/lib/Notifications/Snackbar.js +114 -151
  26. package/lib/Notifications/hooks/use-title.js +85 -126
  27. package/lib/Notifications/hooks/use-width.js +10 -9
  28. package/lib/Notifications/utils.js +74 -114
  29. package/lib/UserCenter/components/config-inviter.js +21 -31
  30. package/lib/UserCenter/components/config-profile.js +41 -47
  31. package/lib/UserCenter/components/danger-zone.js +88 -93
  32. package/lib/UserCenter/components/editable-field.js +149 -167
  33. package/lib/UserCenter/components/nft.js +91 -81
  34. package/lib/UserCenter/components/notification.js +206 -195
  35. package/lib/UserCenter/components/passport.js +37 -53
  36. package/lib/UserCenter/components/privacy.js +53 -64
  37. package/lib/UserCenter/components/settings.js +117 -128
  38. package/lib/UserCenter/components/status-dialog/date-picker.js +35 -36
  39. package/lib/UserCenter/components/status-dialog/index.js +132 -144
  40. package/lib/UserCenter/components/status-selector/duration-menu.js +53 -48
  41. package/lib/UserCenter/components/status-selector/index.js +37 -36
  42. package/lib/UserCenter/components/status-selector/menu-item.js +13 -9
  43. package/lib/UserCenter/components/storage/action.js +27 -25
  44. package/lib/UserCenter/components/storage/connected.js +59 -30
  45. package/lib/UserCenter/components/storage/delete.js +32 -39
  46. package/lib/UserCenter/components/storage/disconnect.js +43 -25
  47. package/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg.js +7 -0
  48. package/lib/UserCenter/components/storage/index.js +24 -18
  49. package/lib/UserCenter/components/storage/preview-nft.js +35 -36
  50. package/lib/UserCenter/components/third-party-login/index.js +73 -143
  51. package/lib/UserCenter/components/third-party-login/third-party-item.js +132 -153
  52. package/lib/UserCenter/components/user-center.js +345 -461
  53. package/lib/UserCenter/components/user-info/address.js +120 -100
  54. package/lib/UserCenter/components/user-info/index.js +10 -4
  55. package/lib/UserCenter/components/user-info/link-preview-input.js +148 -159
  56. package/lib/UserCenter/components/user-info/metadata.js +290 -385
  57. package/lib/UserCenter/components/user-info/switch-role.js +24 -18
  58. package/lib/UserCenter/components/user-info/timezone-select.js +37 -45
  59. package/lib/UserCenter/components/user-info/user-basic-info.js +213 -207
  60. package/lib/UserCenter/components/user-info/user-info-item.js +39 -26
  61. package/lib/UserCenter/components/user-info/user-info.js +52 -67
  62. package/lib/UserCenter/components/user-info/user-status.js +111 -154
  63. package/lib/UserCenter/components/user-info/utils.js +96 -93
  64. package/lib/UserCenter/components/webhook-item.js +95 -143
  65. package/lib/UserCenter/index.js +4 -1
  66. package/lib/UserCenter/libs/locales.js +132 -129
  67. package/lib/UserCenter/libs/utils.js +17 -22
  68. package/lib/UserSessions/components/user-session-info.js +30 -26
  69. package/lib/UserSessions/components/user-sessions.js +222 -268
  70. package/lib/UserSessions/index.js +4 -1
  71. package/lib/UserSessions/libs/locales.js +31 -28
  72. package/lib/UserSessions/libs/utils.js +30 -56
  73. package/lib/blocklets.js +75 -156
  74. package/lib/common/domain-warning.js +64 -104
  75. package/lib/common/header-addons.js +59 -80
  76. package/lib/common/link-blocker.js +10 -16
  77. package/lib/common/notification-addon.js +56 -89
  78. package/lib/common/overridable-theme-provider.js +12 -12
  79. package/lib/common/wallet-hidden-topbar.js +11 -13
  80. package/lib/common/ws.js +23 -34
  81. package/lib/contexts/config-user-space.js +34 -43
  82. package/lib/hooks/use-mobile.js +7 -4
  83. package/lib/index.js +25 -10
  84. package/lib/libs/client.js +5 -2
  85. package/lib/libs/constant.js +4 -1
  86. package/lib/libs/spaces.js +11 -11
  87. package/lib/libs/with-hide-when-embed.js +13 -15
  88. package/lib/packages/blocklet-ui-react/build.config.d.ts +2 -0
  89. package/lib/packages/blocklet-ui-react/jest.config.d.ts +8 -0
  90. package/lib/packages/blocklet-ui-react/lib/@types/index.d.ts +3 -0
  91. package/lib/packages/blocklet-ui-react/lib/BlockletStudio/index.d.ts +26 -0
  92. package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/index.d.ts +18 -0
  93. package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/installer-item.d.ts +18 -0
  94. package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/locales.d.ts +28 -0
  95. package/lib/packages/blocklet-ui-react/lib/ComponentInstaller/use-component-installed.d.ts +12 -0
  96. package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/add-component.d.ts +13 -0
  97. package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/check-component.d.ts +2 -0
  98. package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/publish-component.d.ts +7 -0
  99. package/lib/packages/blocklet-ui-react/lib/ComponentManager/components/resource-dialog.d.ts +11 -0
  100. package/lib/packages/blocklet-ui-react/lib/ComponentManager/index.d.ts +4 -0
  101. package/lib/packages/blocklet-ui-react/lib/ComponentManager/libs/locales.d.ts +19 -0
  102. package/lib/packages/blocklet-ui-react/lib/Dashboard/index.d.ts +27 -0
  103. package/lib/packages/blocklet-ui-react/lib/Footer/brand.d.ts +15 -0
  104. package/lib/packages/blocklet-ui-react/lib/Footer/copyright.d.ts +13 -0
  105. package/lib/packages/blocklet-ui-react/lib/Footer/index.d.ts +2 -0
  106. package/lib/packages/blocklet-ui-react/lib/Footer/internal-footer.d.ts +29 -0
  107. package/lib/packages/blocklet-ui-react/lib/Footer/layout/plain.d.ts +19 -0
  108. package/lib/packages/blocklet-ui-react/lib/Footer/layout/row.d.ts +13 -0
  109. package/lib/packages/blocklet-ui-react/lib/Footer/layout/standard.d.ts +21 -0
  110. package/lib/packages/blocklet-ui-react/lib/Footer/links.d.ts +20 -0
  111. package/lib/packages/blocklet-ui-react/lib/Footer/social-media.d.ts +14 -0
  112. package/lib/packages/blocklet-ui-react/lib/Header/index.d.ts +2 -0
  113. package/lib/packages/blocklet-ui-react/lib/Icon/index.d.ts +7 -0
  114. package/lib/packages/blocklet-ui-react/lib/Notifications/Snackbar.d.ts +8 -0
  115. package/lib/packages/blocklet-ui-react/lib/Notifications/hooks/use-title.d.ts +9 -0
  116. package/lib/packages/blocklet-ui-react/lib/Notifications/hooks/use-width.d.ts +2 -0
  117. package/lib/packages/blocklet-ui-react/lib/Notifications/utils.d.ts +10 -0
  118. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/config-inviter.d.ts +4 -0
  119. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/config-profile.d.ts +5 -0
  120. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/danger-zone.d.ts +2 -0
  121. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/editable-field.d.ts +50 -0
  122. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/nft.d.ts +4 -0
  123. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/notification.d.ts +5 -0
  124. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/passport.d.ts +5 -0
  125. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/privacy.d.ts +5 -0
  126. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/settings.d.ts +8 -0
  127. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-dialog/date-picker.d.ts +9 -0
  128. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-dialog/index.d.ts +9 -0
  129. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/duration-menu.d.ts +7 -0
  130. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/index.d.ts +8 -0
  131. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/status-selector/menu-item.d.ts +9 -0
  132. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/action.d.ts +7 -0
  133. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/connected.d.ts +4 -0
  134. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/delete.d.ts +5 -0
  135. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/disconnect.d.ts +2 -0
  136. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg.d.ts +3 -0
  137. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/index.d.ts +2 -0
  138. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/storage/preview-nft.d.ts +5 -0
  139. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/third-party-login/index.d.ts +4 -0
  140. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/third-party-login/third-party-item.d.ts +4 -0
  141. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-center.d.ts +15 -0
  142. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/address.d.ts +7 -0
  143. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/index.d.ts +5 -0
  144. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/link-preview-input.d.ts +6 -0
  145. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/metadata.d.ts +7 -0
  146. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/switch-role.d.ts +6 -0
  147. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/timezone-select.d.ts +7 -0
  148. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-basic-info.d.ts +12 -0
  149. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-info-item.d.ts +6 -0
  150. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-info.d.ts +6 -0
  151. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/user-status.d.ts +9 -0
  152. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/user-info/utils.d.ts +33 -0
  153. package/lib/packages/blocklet-ui-react/lib/UserCenter/components/webhook-item.d.ts +10 -0
  154. package/lib/packages/blocklet-ui-react/lib/UserCenter/index.d.ts +2 -0
  155. package/lib/packages/blocklet-ui-react/lib/UserCenter/libs/locales.d.ts +513 -0
  156. package/lib/packages/blocklet-ui-react/lib/UserCenter/libs/utils.d.ts +3 -0
  157. package/lib/packages/blocklet-ui-react/lib/UserSessions/components/user-session-info.d.ts +5 -0
  158. package/lib/packages/blocklet-ui-react/lib/UserSessions/components/user-sessions.d.ts +8 -0
  159. package/lib/packages/blocklet-ui-react/lib/UserSessions/index.d.ts +2 -0
  160. package/lib/packages/blocklet-ui-react/lib/UserSessions/libs/locales.d.ts +88 -0
  161. package/lib/packages/blocklet-ui-react/lib/UserSessions/libs/utils.d.ts +3 -0
  162. package/lib/packages/blocklet-ui-react/lib/blocklets.d.ts +18 -0
  163. package/lib/packages/blocklet-ui-react/lib/common/domain-warning.d.ts +12 -0
  164. package/lib/packages/blocklet-ui-react/lib/common/header-addons.d.ts +19 -0
  165. package/lib/packages/blocklet-ui-react/lib/common/link-blocker.d.ts +4 -0
  166. package/lib/packages/blocklet-ui-react/lib/common/notification-addon.d.ts +10 -0
  167. package/lib/packages/blocklet-ui-react/lib/common/overridable-theme-provider.d.ts +12 -0
  168. package/lib/packages/blocklet-ui-react/lib/common/wallet-hidden-topbar.d.ts +2 -0
  169. package/lib/packages/blocklet-ui-react/lib/common/ws.d.ts +4 -0
  170. package/lib/packages/blocklet-ui-react/lib/contexts/config-user-space.d.ts +7 -0
  171. package/lib/packages/blocklet-ui-react/lib/hooks/use-mobile.d.ts +4 -0
  172. package/lib/packages/blocklet-ui-react/lib/index.d.ts +12 -0
  173. package/lib/packages/blocklet-ui-react/lib/libs/client.d.ts +3 -0
  174. package/lib/packages/blocklet-ui-react/lib/libs/constant.d.ts +2 -0
  175. package/lib/packages/blocklet-ui-react/lib/libs/spaces.d.ts +3 -0
  176. package/lib/packages/blocklet-ui-react/lib/libs/with-hide-when-embed.d.ts +5 -0
  177. package/lib/packages/blocklet-ui-react/lib/types.d.ts +37 -0
  178. package/lib/packages/blocklet-ui-react/lib/utils.d.ts +11 -0
  179. package/lib/{@types → packages/blocklet-ui-react/src/@types}/index.d.ts +3 -3
  180. package/lib/{BlockletStudio → packages/blocklet-ui-react/src/BlockletStudio}/index.d.ts +1 -1
  181. package/lib/packages/blocklet-ui-react/src/ComponentInstaller/ComponentInstaller.stories.d.ts +9 -0
  182. package/lib/packages/blocklet-ui-react/src/ComponentInstaller/demo/basic.d.ts +29 -0
  183. package/lib/packages/blocklet-ui-react/src/ComponentInstaller/demo/mock-optional-components.d.ts +2 -0
  184. package/lib/packages/blocklet-ui-react/src/ComponentInstaller/index.d.ts +18 -0
  185. package/lib/packages/blocklet-ui-react/src/ComponentInstaller/installer-item.d.ts +18 -0
  186. package/lib/{ComponentInstaller → packages/blocklet-ui-react/src/ComponentInstaller}/use-component-installed.d.ts +1 -1
  187. package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/add-component.d.ts +2 -2
  188. package/lib/packages/blocklet-ui-react/src/ComponentManager/components/check-component.d.ts +2 -0
  189. package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/publish-component.d.ts +2 -2
  190. package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/components/resource-dialog.d.ts +2 -2
  191. package/lib/packages/blocklet-ui-react/src/Dashboard/Dashboard.stories.d.ts +13 -0
  192. package/lib/packages/blocklet-ui-react/src/Dashboard/demo/basic.d.ts +29 -0
  193. package/lib/packages/blocklet-ui-react/src/Dashboard/index.d.ts +30 -0
  194. package/lib/packages/blocklet-ui-react/src/Footer/Footer.stories.d.ts +19 -0
  195. package/lib/packages/blocklet-ui-react/src/Footer/brand.d.ts +15 -0
  196. package/lib/packages/blocklet-ui-react/src/Footer/copyright.d.ts +13 -0
  197. package/lib/packages/blocklet-ui-react/src/Footer/demo/arcblock-site.d.ts +31 -0
  198. package/lib/packages/blocklet-ui-react/src/Footer/demo/brand.d.ts +1 -0
  199. package/lib/packages/blocklet-ui-react/src/Footer/demo/copyright.d.ts +1 -0
  200. package/lib/packages/blocklet-ui-react/src/Footer/demo/footer.d.ts +10 -0
  201. package/lib/packages/blocklet-ui-react/src/Footer/demo/links.d.ts +1 -0
  202. package/lib/packages/blocklet-ui-react/src/Footer/demo/social-media-icons.d.ts +1 -0
  203. package/lib/packages/blocklet-ui-react/src/Footer/index.d.ts +6 -0
  204. package/lib/packages/blocklet-ui-react/src/Footer/internal-footer.d.ts +32 -0
  205. package/lib/packages/blocklet-ui-react/src/Footer/layout/plain.d.ts +22 -0
  206. package/lib/packages/blocklet-ui-react/src/Footer/layout/row.d.ts +13 -0
  207. package/lib/packages/blocklet-ui-react/src/Footer/layout/standard.d.ts +24 -0
  208. package/lib/packages/blocklet-ui-react/src/Footer/links.d.ts +23 -0
  209. package/lib/packages/blocklet-ui-react/src/Footer/social-media.d.ts +14 -0
  210. package/lib/packages/blocklet-ui-react/src/Header/Header.stories.d.ts +26 -0
  211. package/lib/packages/blocklet-ui-react/src/Header/demo/addons-customization.d.ts +11 -0
  212. package/lib/packages/blocklet-ui-react/src/Header/demo/basic.d.ts +1 -0
  213. package/lib/packages/blocklet-ui-react/src/Header/demo/fixtures/index.d.ts +49 -0
  214. package/lib/packages/blocklet-ui-react/src/Header/demo/with-enable-connect-enable-locale.d.ts +1 -0
  215. package/lib/{Header → packages/blocklet-ui-react/src/Header}/index.d.ts +3 -2
  216. package/lib/packages/blocklet-ui-react/src/Icon/Icon.stories.d.ts +12 -0
  217. package/lib/packages/blocklet-ui-react/src/Icon/demo/basic.d.ts +1 -0
  218. package/lib/{Icon → packages/blocklet-ui-react/src/Icon}/index.d.ts +2 -3
  219. package/lib/packages/blocklet-ui-react/src/Notifications/Snackbar.d.ts +16 -0
  220. package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/hooks/use-title.d.ts +1 -1
  221. package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/utils.d.ts +2 -2
  222. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/config-inviter.d.ts +1 -1
  223. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/config-profile.d.ts +1 -1
  224. package/lib/packages/blocklet-ui-react/src/UserCenter/components/danger-zone.d.ts +1 -0
  225. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/editable-field.d.ts +3 -3
  226. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/nft.d.ts +1 -1
  227. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/notification.d.ts +1 -1
  228. package/lib/packages/blocklet-ui-react/src/UserCenter/components/passport.d.ts +5 -0
  229. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/privacy.d.ts +1 -1
  230. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/settings.d.ts +2 -2
  231. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-dialog/date-picker.d.ts +1 -1
  232. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-dialog/index.d.ts +1 -1
  233. package/lib/packages/blocklet-ui-react/src/UserCenter/components/status-selector/duration-menu.d.ts +7 -0
  234. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-selector/index.d.ts +1 -1
  235. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/status-selector/menu-item.d.ts +4 -4
  236. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/action.d.ts +1 -1
  237. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/connected.d.ts +1 -1
  238. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/delete.d.ts +1 -1
  239. package/lib/packages/blocklet-ui-react/src/UserCenter/components/storage/disconnect.d.ts +2 -0
  240. package/lib/packages/blocklet-ui-react/src/UserCenter/components/storage/index.d.ts +2 -0
  241. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/storage/preview-nft.d.ts +1 -1
  242. package/lib/packages/blocklet-ui-react/src/UserCenter/components/third-party-login/index.d.ts +4 -0
  243. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/third-party-login/third-party-item.d.ts +2 -2
  244. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-center.d.ts +2 -2
  245. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/address.d.ts +2 -2
  246. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/link-preview-input.d.ts +1 -1
  247. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/metadata.d.ts +2 -2
  248. package/lib/packages/blocklet-ui-react/src/UserCenter/components/user-info/switch-role.d.ts +7 -0
  249. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/timezone-select.d.ts +1 -1
  250. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-basic-info.d.ts +3 -3
  251. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-info-item.d.ts +1 -1
  252. package/lib/packages/blocklet-ui-react/src/UserCenter/components/user-info/user-info.d.ts +6 -0
  253. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/user-status.d.ts +2 -2
  254. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/utils.d.ts +8 -5
  255. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/webhook-item.d.ts +1 -1
  256. package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/libs/utils.d.ts +1 -1
  257. package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/components/user-session-info.d.ts +1 -1
  258. package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/components/user-sessions.d.ts +1 -1
  259. package/lib/packages/blocklet-ui-react/src/common/domain-warning.d.ts +12 -0
  260. package/lib/packages/blocklet-ui-react/src/common/header-addons.d.ts +19 -0
  261. package/lib/{common → packages/blocklet-ui-react/src/common}/link-blocker.d.ts +1 -1
  262. package/lib/{common → packages/blocklet-ui-react/src/common}/notification-addon.d.ts +3 -6
  263. package/lib/{common → packages/blocklet-ui-react/src/common}/overridable-theme-provider.d.ts +5 -8
  264. package/lib/{contexts → packages/blocklet-ui-react/src/contexts}/config-user-space.d.ts +3 -3
  265. package/lib/{libs → packages/blocklet-ui-react/src/libs}/with-hide-when-embed.d.ts +1 -1
  266. package/lib/packages/blocklet-ui-react/src/types.d.ts +36 -0
  267. package/lib/packages/blocklet-ui-react/tools/auto-exports.d.ts +1 -0
  268. package/lib/packages/blocklet-ui-react/tools/jest.d.ts +1 -0
  269. package/lib/packages/blocklet-ui-react/vite.config.d.mts +2 -0
  270. package/lib/types.js +39 -39
  271. package/lib/utils.js +61 -175
  272. package/package.json +28 -34
  273. package/src/ComponentInstaller/ComponentInstaller.stories.jsx +16 -0
  274. package/src/ComponentInstaller/index.jsx +11 -27
  275. package/src/ComponentInstaller/installer-item.jsx +1 -5
  276. package/src/ComponentManager/components/add-component.tsx +3 -3
  277. package/src/ComponentManager/components/publish-component.tsx +3 -3
  278. package/src/Dashboard/Dashboard.stories.jsx +20 -0
  279. package/src/Dashboard/index.jsx +16 -27
  280. package/src/Footer/Footer.stories.jsx +32 -0
  281. package/src/Footer/brand.jsx +1 -7
  282. package/src/Footer/copyright.jsx +1 -6
  283. package/src/Footer/index.jsx +1 -6
  284. package/src/Footer/internal-footer.jsx +26 -16
  285. package/src/Footer/layout/row.jsx +2 -7
  286. package/src/Footer/layout/standard.jsx +12 -2
  287. package/src/Footer/links.jsx +2 -7
  288. package/src/Footer/social-media.jsx +1 -5
  289. package/src/Header/Header.stories.jsx +30 -0
  290. package/src/Header/index.tsx +1 -1
  291. package/src/Icon/Icon.stories.jsx +12 -0
  292. package/src/Notifications/Snackbar.tsx +119 -126
  293. package/src/Notifications/hooks/use-title.tsx +5 -2
  294. package/src/Notifications/hooks/use-width.tsx +1 -1
  295. package/src/UserCenter/components/config-profile.tsx +0 -1
  296. package/src/UserCenter/components/danger-zone.tsx +7 -3
  297. package/src/UserCenter/components/editable-field.tsx +45 -44
  298. package/src/UserCenter/components/nft.tsx +21 -9
  299. package/src/UserCenter/components/notification.tsx +22 -6
  300. package/src/UserCenter/components/privacy.tsx +1 -1
  301. package/src/UserCenter/components/settings.tsx +6 -1
  302. package/src/UserCenter/components/status-dialog/date-picker.tsx +10 -7
  303. package/src/UserCenter/components/status-dialog/index.tsx +11 -4
  304. package/src/UserCenter/components/status-selector/duration-menu.tsx +7 -2
  305. package/src/UserCenter/components/status-selector/index.tsx +7 -1
  306. package/src/UserCenter/components/status-selector/menu-item.tsx +1 -2
  307. package/src/UserCenter/components/storage/action.tsx +1 -2
  308. package/src/UserCenter/components/storage/connected.tsx +18 -5
  309. package/src/UserCenter/components/storage/delete.tsx +1 -1
  310. package/src/UserCenter/components/storage/disconnect.tsx +10 -2
  311. package/src/UserCenter/components/storage/index.tsx +6 -1
  312. package/src/UserCenter/components/storage/preview-nft.tsx +1 -1
  313. package/src/UserCenter/components/third-party-login/index.tsx +2 -2
  314. package/src/UserCenter/components/third-party-login/third-party-item.tsx +11 -7
  315. package/src/UserCenter/components/user-center.tsx +10 -5
  316. package/src/UserCenter/components/user-info/address.tsx +12 -6
  317. package/src/UserCenter/components/user-info/link-preview-input.tsx +36 -51
  318. package/src/UserCenter/components/user-info/metadata.tsx +45 -39
  319. package/src/UserCenter/components/user-info/timezone-select.tsx +2 -5
  320. package/src/UserCenter/components/user-info/user-basic-info.tsx +24 -8
  321. package/src/UserCenter/components/user-info/user-info-item.tsx +7 -2
  322. package/src/UserCenter/components/user-info/user-status.tsx +7 -9
  323. package/src/UserCenter/components/user-info/utils.ts +77 -11
  324. package/src/UserCenter/components/webhook-item.tsx +4 -2
  325. package/src/UserSessions/components/user-sessions.tsx +1 -1
  326. package/src/common/domain-warning.jsx +2 -14
  327. package/src/common/header-addons.jsx +8 -11
  328. package/src/common/notification-addon.jsx +1 -7
  329. package/src/common/overridable-theme-provider.jsx +1 -5
  330. package/src/common/ws.js +2 -2
  331. package/src/contexts/config-user-space.tsx +3 -3
  332. package/vite.config.mjs +31 -0
  333. package/lib/@types/shims.d.ts +0 -18
  334. package/lib/ComponentInstaller/index.d.ts +0 -37
  335. package/lib/ComponentInstaller/installer-item.d.ts +0 -21
  336. package/lib/ComponentManager/components/check-component.d.ts +0 -2
  337. package/lib/Dashboard/index.d.ts +0 -44
  338. package/lib/Footer/brand.d.ts +0 -22
  339. package/lib/Footer/copyright.d.ts +0 -18
  340. package/lib/Footer/index.d.ts +0 -6
  341. package/lib/Footer/internal-footer.d.ts +0 -29
  342. package/lib/Footer/layout/plain.d.ts +0 -15
  343. package/lib/Footer/layout/row.d.ts +0 -18
  344. package/lib/Footer/layout/standard.d.ts +0 -17
  345. package/lib/Footer/links.d.ts +0 -23
  346. package/lib/Footer/social-media.d.ts +0 -14
  347. package/lib/Notifications/Snackbar.d.ts +0 -14
  348. package/lib/UserCenter/components/danger-zone.d.ts +0 -1
  349. package/lib/UserCenter/components/passport.d.ts +0 -5
  350. package/lib/UserCenter/components/status-selector/duration-menu.d.ts +0 -7
  351. package/lib/UserCenter/components/storage/disconnect.d.ts +0 -2
  352. package/lib/UserCenter/components/storage/icons/empty-spaces-nft.svg +0 -58
  353. package/lib/UserCenter/components/storage/icons/long-arrow.svg +0 -5
  354. package/lib/UserCenter/components/storage/icons/space-connected.svg +0 -3
  355. package/lib/UserCenter/components/storage/icons/space-disconnect.svg +0 -3
  356. package/lib/UserCenter/components/storage/index.d.ts +0 -2
  357. package/lib/UserCenter/components/third-party-login/index.d.ts +0 -4
  358. package/lib/UserCenter/components/user-info/switch-role.d.ts +0 -7
  359. package/lib/UserCenter/components/user-info/user-info.d.ts +0 -6
  360. package/lib/common/domain-warning.d.ts +0 -17
  361. package/lib/common/header-addons.d.ts +0 -27
  362. package/lib/types.d.ts +0 -2
  363. /package/lib/{ComponentInstaller → packages/blocklet-ui-react/src/ComponentInstaller}/locales.d.ts +0 -0
  364. /package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/index.d.ts +0 -0
  365. /package/lib/{ComponentManager → packages/blocklet-ui-react/src/ComponentManager}/libs/locales.d.ts +0 -0
  366. /package/lib/{Notifications → packages/blocklet-ui-react/src/Notifications}/hooks/use-width.d.ts +0 -0
  367. /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/components/user-info/index.d.ts +0 -0
  368. /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/index.d.ts +0 -0
  369. /package/lib/{UserCenter → packages/blocklet-ui-react/src/UserCenter}/libs/locales.d.ts +0 -0
  370. /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/index.d.ts +0 -0
  371. /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/libs/locales.d.ts +0 -0
  372. /package/lib/{UserSessions → packages/blocklet-ui-react/src/UserSessions}/libs/utils.d.ts +0 -0
  373. /package/lib/{blocklets.d.ts → packages/blocklet-ui-react/src/blocklets.d.ts} +0 -0
  374. /package/lib/{common → packages/blocklet-ui-react/src/common}/wallet-hidden-topbar.d.ts +0 -0
  375. /package/lib/{common → packages/blocklet-ui-react/src/common}/ws.d.ts +0 -0
  376. /package/lib/{hooks → packages/blocklet-ui-react/src/hooks}/use-mobile.d.ts +0 -0
  377. /package/lib/{index.d.ts → packages/blocklet-ui-react/src/index.d.ts} +0 -0
  378. /package/lib/{libs → packages/blocklet-ui-react/src/libs}/client.d.ts +0 -0
  379. /package/lib/{libs → packages/blocklet-ui-react/src/libs}/constant.d.ts +0 -0
  380. /package/lib/{libs → packages/blocklet-ui-react/src/libs}/spaces.d.ts +0 -0
  381. /package/lib/{utils.d.ts → packages/blocklet-ui-react/src/utils.d.ts} +0 -0
@@ -1,134 +1,111 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import PropTypes from "prop-types";
4
- import { useCreation } from "ahooks";
5
- import isInteger from "lodash/isInteger";
6
- import isString from "lodash/isString";
7
- import { styled } from "@arcblock/ux/lib/Theme";
8
- import clsx from "clsx";
9
- import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
10
- import Icon from "../Icon/index.js";
11
- import useMobile from "../hooks/use-mobile.js";
12
- import { splitNavColumns } from "../utils.js";
13
- export default function Links({ links, flowLayout, columns, ...rest }) {
14
- const [activeIndex, setActiveIndex] = useState(-1);
15
- const isMobile = useMobile({ key: "md" });
16
- const isGroupMode = links.some((item) => item.items?.length);
17
- const columnsLayout = !isMobile && isGroupMode && isInteger(columns) && columns > 1;
18
- const renderItem = ({ label, link, icon, render, props }) => {
19
- let result = label;
20
- if (render) {
21
- result = render({ label, link, props });
22
- } else if (link && isString(link)) {
23
- const isExternal = link.startsWith("http") || link.startsWith("//");
24
- result = /* @__PURE__ */ jsx(
1
+ import { jsx as n, jsxs as m, Fragment as v } from "react/jsx-runtime";
2
+ import { useState as N } from "react";
3
+ import l from "prop-types";
4
+ import { useCreation as $ } from "ahooks";
5
+ import j from "lodash/isInteger";
6
+ import I from "lodash/isString";
7
+ import { styled as z } from "@arcblock/ux/lib/Theme";
8
+ import c from "clsx";
9
+ import { ExpandMore as M } from "@mui/icons-material";
10
+ import C from "../Icon/index.js";
11
+ import A from "../hooks/use-mobile.js";
12
+ import { splitNavColumns as E } from "../utils.js";
13
+ function F({ links: e = [], flowLayout: d = !1, columns: u, ...k }) {
14
+ const [g, b] = N(-1), y = A({ key: "md" }), h = e.some((r) => {
15
+ var o;
16
+ return (o = r.items) == null ? void 0 : o.length;
17
+ }), x = !y && h && j(u) && u > 1, p = ({ label: r, link: o, icon: t, render: a, props: i }) => {
18
+ let s = r;
19
+ if (a)
20
+ s = a({ label: r, link: o, props: i });
21
+ else if (o && I(o)) {
22
+ const f = o.startsWith("http") || o.startsWith("//");
23
+ s = /* @__PURE__ */ n(
25
24
  "a",
26
25
  {
27
- href: link,
28
- "aria-label": `Footer link for ${label}`,
29
- target: isExternal ? "_blank" : "_self",
30
- rel: isExternal ? "noreferrer noopener" : void 0,
31
- ...props,
32
- children: label
26
+ href: o,
27
+ "aria-label": `Footer link for ${r}`,
28
+ target: f ? "_blank" : "_self",
29
+ rel: f ? "noreferrer noopener" : void 0,
30
+ ...i,
31
+ children: r
33
32
  }
34
33
  );
35
34
  }
36
- return /* @__PURE__ */ jsxs(Fragment, { children: [
37
- icon && /* @__PURE__ */ jsx(Icon, { icon, size: 20, sx: { mr: 0.5 } }),
38
- result
35
+ return /* @__PURE__ */ m(v, { children: [
36
+ t && /* @__PURE__ */ n(C, { icon: t, size: 20, sx: { mr: 0.5 } }),
37
+ s
39
38
  ] });
40
- };
41
- const content = useCreation(() => {
42
- if (!links?.length) {
43
- return null;
44
- }
45
- if (flowLayout) {
46
- return links.map((item, i) => /* @__PURE__ */ jsx("span", { className: "footer-links-item", children: renderItem(item) }, i));
47
- }
48
- if (columnsLayout) {
49
- return splitNavColumns(links, { columns }).map((cols, i) => {
50
- return /* @__PURE__ */ jsx("div", { className: "footer-links-column", children: cols.filter((v) => v.group).map((item, j) => {
51
- const { items } = item;
52
- return /* @__PURE__ */ jsxs("div", { className: "footer-links-group", children: [
53
- /* @__PURE__ */ jsx("span", { className: "footer-links-item", children: renderItem(item) }),
54
- !!items?.length && /* @__PURE__ */ jsx("div", { className: "footer-links-sub", children: items.map((child, k) => /* @__PURE__ */ jsx(
55
- "span",
56
- {
57
- className: clsx("footer-links-item", { "footer-links-item--new": child.isNew }),
58
- children: renderItem(child)
59
- },
60
- k
61
- )) })
62
- ] }, j);
63
- }) }, i);
64
- });
65
- }
66
- return links.map((item, i) => {
67
- const { items } = item;
68
- const isActive = i === activeIndex;
69
- return /* @__PURE__ */ jsxs(
70
- "div",
39
+ }, w = $(() => e != null && e.length ? d ? e.map((r, o) => /* @__PURE__ */ n("span", { className: "footer-links-item", children: p(r) }, o)) : x ? E(e, { columns: u }).map((r, o) => /* @__PURE__ */ n("div", { className: "footer-links-column", children: r.filter((t) => t.group).map((t, a) => {
40
+ const { items: i } = t;
41
+ return /* @__PURE__ */ m("div", { className: "footer-links-group", children: [
42
+ /* @__PURE__ */ n("span", { className: "footer-links-item", children: p(t) }),
43
+ !!(i != null && i.length) && /* @__PURE__ */ n("div", { className: "footer-links-sub", children: i.map((s, f) => /* @__PURE__ */ n(
44
+ "span",
71
45
  {
72
- className: clsx("footer-links-group", {
73
- "footer-links-group--active": isActive
74
- }),
75
- onClick: () => setActiveIndex(activeIndex === i ? -1 : i),
76
- children: [
77
- /* @__PURE__ */ jsxs("span", { className: "footer-links-item", children: [
78
- renderItem(item),
79
- !!items?.length && /* @__PURE__ */ jsx("span", { className: "footer-links-group-expand-icon", children: /* @__PURE__ */ jsx(
80
- ExpandMoreIcon,
81
- {
82
- style: {
83
- transform: `rotate(${isActive ? 180 : 0}deg)`
84
- }
85
- }
86
- ) })
87
- ] }),
88
- !!items?.length && /* @__PURE__ */ jsx("div", { className: "footer-links-sub", children: items.map((child, j) => /* @__PURE__ */ jsx("span", { className: clsx("footer-links-item", { "footer-links-item--new": child.isNew }), children: renderItem(child) }, j)) })
89
- ]
46
+ className: c("footer-links-item", { "footer-links-item--new": s.isNew }),
47
+ children: p(s)
90
48
  },
91
- i
92
- );
93
- });
94
- }, [links, flowLayout, columnsLayout, activeIndex]);
95
- if (!links?.length) {
96
- return null;
97
- }
98
- return /* @__PURE__ */ jsx(
99
- Root,
49
+ f
50
+ )) })
51
+ ] }, a);
52
+ }) }, o)) : e.map((r, o) => {
53
+ const { items: t } = r, a = o === g;
54
+ return /* @__PURE__ */ m(
55
+ "div",
56
+ {
57
+ className: c("footer-links-group", {
58
+ "footer-links-group--active": a
59
+ }),
60
+ onClick: () => b(g === o ? -1 : o),
61
+ children: [
62
+ /* @__PURE__ */ m("span", { className: "footer-links-item", children: [
63
+ p(r),
64
+ !!(t != null && t.length) && /* @__PURE__ */ n("span", { className: "footer-links-group-expand-icon", children: /* @__PURE__ */ n(
65
+ M,
66
+ {
67
+ style: {
68
+ transform: `rotate(${a ? 180 : 0}deg)`
69
+ }
70
+ }
71
+ ) })
72
+ ] }),
73
+ !!(t != null && t.length) && /* @__PURE__ */ n("div", { className: "footer-links-sub", children: t.map((i, s) => /* @__PURE__ */ n("span", { className: c("footer-links-item", { "footer-links-item--new": i.isNew }), children: p(i) }, s)) })
74
+ ]
75
+ },
76
+ o
77
+ );
78
+ }) : null, [e, d, x, g]);
79
+ return e != null && e.length ? /* @__PURE__ */ n(
80
+ S,
100
81
  {
101
- ...rest,
102
- className: clsx(rest.className, {
103
- "footer-links--grouped": isGroupMode,
104
- "footer-links--flow": flowLayout,
105
- "footer-links--columns": columnsLayout
82
+ ...k,
83
+ className: c(k.className, {
84
+ "footer-links--grouped": h,
85
+ "footer-links--flow": d,
86
+ "footer-links--columns": x
106
87
  }),
107
- children: /* @__PURE__ */ jsx("div", { className: "footer-links-inner", children: content })
88
+ children: /* @__PURE__ */ n("div", { className: "footer-links-inner", children: w })
108
89
  }
109
- );
90
+ ) : null;
110
91
  }
111
- Links.propTypes = {
112
- links: PropTypes.arrayOf(
113
- PropTypes.shape({
114
- label: PropTypes.string,
115
- link: PropTypes.string,
116
- render: PropTypes.func,
117
- props: PropTypes.object
92
+ F.propTypes = {
93
+ links: l.arrayOf(
94
+ l.shape({
95
+ label: l.string,
96
+ link: l.string,
97
+ render: l.func,
98
+ props: l.object
118
99
  })
119
100
  ),
120
101
  // 流动布局, 简单的从左到右排列
121
- flowLayout: PropTypes.bool,
102
+ flowLayout: l.bool,
122
103
  // 列布局
123
- columns: PropTypes.number
104
+ columns: l.number
124
105
  };
125
- Links.defaultProps = {
126
- links: [],
127
- flowLayout: false
128
- };
129
- const Root = styled("div")`
106
+ const S = z("div")`
130
107
  overflow: hidden;
131
- color: ${({ theme }) => theme.palette.text.secondary};
108
+ color: ${({ theme: e }) => e.palette.text.secondary};
132
109
  .footer-links-inner {
133
110
  display: flex;
134
111
  justify-content: space-between;
@@ -159,8 +136,8 @@ const Root = styled("div")`
159
136
  font-size: 14px;
160
137
  &--new::after {
161
138
  content: 'New';
162
- color: ${({ theme }) => theme.palette.info.main};
163
- background-color: ${({ theme }) => theme.palette.info.light};
139
+ color: ${({ theme: e }) => e.palette.info.main};
140
+ background-color: ${({ theme: e }) => e.palette.info.light};
164
141
  padding: 1px 8px;
165
142
  border-radius: 10px/50%;
166
143
  margin-left: 8px;
@@ -170,7 +147,7 @@ const Root = styled("div")`
170
147
  .footer-links-group {
171
148
  > .footer-links-item {
172
149
  font-weight: 600;
173
- color: ${({ theme }) => theme.palette.text.primary};
150
+ color: ${({ theme: e }) => e.palette.text.primary};
174
151
  }
175
152
  .footer-links-sub {
176
153
  margin-top: 8px;
@@ -184,7 +161,7 @@ const Root = styled("div")`
184
161
  text-decoration: none;
185
162
  transition: color 0.2s ease-in-out;
186
163
  &:hover {
187
- color: ${({ theme }) => theme.palette.text.primary};
164
+ color: ${({ theme: e }) => e.palette.text.primary};
188
165
  }
189
166
  }
190
167
  /* columns 布局 */
@@ -221,13 +198,13 @@ const Root = styled("div")`
221
198
  top: 50%;
222
199
  transform: translate(0, -50%);
223
200
  height: 1em;
224
- border-left: 1px solid ${(props) => props.theme.palette.text.secondary};
201
+ border-left: 1px solid ${(e) => e.theme.palette.text.secondary};
225
202
  }
226
203
  }
227
204
  }
228
205
 
229
206
  /* 移动端样式 */
230
- ${(props) => props.theme.breakpoints.down("md")} {
207
+ ${(e) => e.theme.breakpoints.down("md")} {
231
208
  .footer-links-inner {
232
209
  flex-direction: column;
233
210
  margin: 0;
@@ -243,7 +220,7 @@ const Root = styled("div")`
243
220
  }
244
221
  }
245
222
  .footer-links-group + .footer-links-group {
246
- border-top: 1px solid ${(props) => props.theme.palette.grey[200]};
223
+ border-top: 1px solid ${(e) => e.theme.palette.grey[200]};
247
224
  }
248
225
  .footer-links-group--active {
249
226
  .footer-links-sub {
@@ -275,3 +252,6 @@ const Root = styled("div")`
275
252
  }
276
253
  }
277
254
  `;
255
+ export {
256
+ F as default
257
+ };
@@ -1,52 +1,47 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import PropTypes from "prop-types";
3
- import { styled } from "@arcblock/ux/lib/Theme";
4
- import Icon from "../Icon/index.js";
5
- export default function SocialMedia({ items, ...rest }) {
6
- if (!items?.length) {
7
- return null;
8
- }
9
- return /* @__PURE__ */ jsx(Root, { ...rest, children: items.map((item, i) => {
10
- return /* @__PURE__ */ jsx(
11
- "a",
12
- {
13
- href: item.link,
14
- target: "_blank",
15
- "aria-label": `Social media icon${item.title ? ` for ${item.title}` : ""}`,
16
- rel: "noreferrer",
17
- children: /* @__PURE__ */ jsx(Icon, { icon: item.icon || item.title, size: 24, component: "span" })
18
- },
19
- i
20
- );
21
- }) });
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import o from "prop-types";
3
+ import { styled as i } from "@arcblock/ux/lib/Theme";
4
+ import l from "../Icon/index.js";
5
+ function p({ items: r = null, ...t }) {
6
+ return r != null && r.length ? /* @__PURE__ */ n(c, { ...t, children: r.map((e, a) => /* @__PURE__ */ n(
7
+ "a",
8
+ {
9
+ href: e.link,
10
+ target: "_blank",
11
+ "aria-label": `Social media icon${e.title ? ` for ${e.title}` : ""}`,
12
+ rel: "noreferrer",
13
+ children: /* @__PURE__ */ n(l, { icon: e.icon || e.title, size: 24, component: "span" })
14
+ },
15
+ a
16
+ )) }) : null;
22
17
  }
23
- SocialMedia.propTypes = {
24
- items: PropTypes.arrayOf(
25
- PropTypes.shape({
18
+ p.propTypes = {
19
+ items: o.arrayOf(
20
+ o.shape({
26
21
  // icon 对应 Icon#icon prop, 支持 iconify name 和 url 2 种形式:
27
- icon: PropTypes.string,
28
- link: PropTypes.string
22
+ icon: o.string,
23
+ link: o.string
29
24
  })
30
25
  )
31
26
  };
32
- SocialMedia.defaultProps = {
33
- items: null
34
- };
35
- const Root = styled("div")`
27
+ const c = i("div")`
36
28
  display: inline-flex;
37
29
  flex-wrap: wrap;
38
30
  align-items: center;
39
31
  justify-content: center;
40
32
  gap: 20px;
41
33
  a {
42
- color: ${(props) => props.theme.palette.text.secondary};
34
+ color: ${(r) => r.theme.palette.text.secondary};
43
35
  text-decoration: none;
44
36
  transition: color 0.2s ease-in-out;
45
37
  &:hover {
46
- color: ${({ theme }) => theme.palette.text.primary};
38
+ color: ${({ theme: r }) => r.palette.text.primary};
47
39
  }
48
40
  }
49
- ${(props) => props.theme.breakpoints.down("md")} {
41
+ ${(r) => r.theme.breakpoints.down("md")} {
50
42
  gap: 12px;
51
43
  }
52
44
  `;
45
+ export {
46
+ p as default
47
+ };
@@ -1,165 +1,143 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { useMemoizedFn } from "ahooks";
4
- import { withErrorBoundary } from "react-error-boundary";
5
- import { ErrorFallback } from "@arcblock/ux/lib/ErrorBoundary";
6
- import { styled, useTheme, deepmerge, ThemeProvider } from "@arcblock/ux/lib/Theme";
7
- import { ResponsiveHeader } from "@arcblock/ux/lib/Header";
8
- import NavMenu, { Products } from "@arcblock/ux/lib/NavMenu";
9
- import { useLocaleContext } from "@arcblock/ux/lib/Locale/context";
10
- import { translate } from "@arcblock/ux/lib/Locale/util";
11
- import useBlockletLogo from "@arcblock/ux/lib/hooks/use-blocklet-logo";
12
- import omit from "lodash/omit";
13
- import isFinite from "lodash/isFinite";
14
- import clsx from "clsx";
15
- import Icon from "../Icon/index.js";
16
- import { mapRecursive, flatRecursive, matchPaths } from "../utils.js";
17
- import { publicPath, formatBlockletInfo, getLocalizedNavigation } from "../blocklets.js";
18
- import HeaderAddons from "../common/header-addons.js";
19
- import { useWalletHiddenTopbar } from "../common/wallet-hidden-topbar.js";
20
- import withHideWhenEmbed from "../libs/with-hide-when-embed.js";
21
- const translations = {
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { useMemo as w } from "react";
3
+ import { useMemoizedFn as H } from "ahooks";
4
+ import { withErrorBoundary as y } from "react-error-boundary";
5
+ import { ErrorFallback as C } from "@arcblock/ux/lib/ErrorBoundary";
6
+ import { styled as T, useTheme as _, deepmerge as E, ThemeProvider as F } from "@arcblock/ux/lib/Theme";
7
+ import { ResponsiveHeader as L } from "@arcblock/ux/lib/Header";
8
+ import P, { Products as R } from "@arcblock/ux/lib/NavMenu";
9
+ import { useLocaleContext as z } from "@arcblock/ux/lib/Locale/context";
10
+ import { translate as A } from "@arcblock/ux/lib/Locale/util";
11
+ import M from "@arcblock/ux/lib/hooks/use-blocklet-logo";
12
+ import W from "lodash/omit";
13
+ import B from "lodash/isFinite";
14
+ import j from "clsx";
15
+ import S from "../Icon/index.js";
16
+ import { mapRecursive as U, flatRecursive as K, matchPaths as O } from "../utils.js";
17
+ import { formatBlockletInfo as q, getLocalizedNavigation as D, publicPath as G } from "../blocklets.js";
18
+ import J from "../common/header-addons.js";
19
+ import { useWalletHiddenTopbar as Q } from "../common/wallet-hidden-topbar.js";
20
+ import V from "../libs/with-hide-when-embed.js";
21
+ const X = {
22
22
  en: {
23
23
  products: "Products"
24
24
  },
25
25
  zh: {
26
- products: "\u4EA7\u54C1"
26
+ products: "产品"
27
27
  }
28
- };
29
- const parseNavigation = (navigation) => {
30
- if (!navigation?.length) {
28
+ }, Y = (e) => {
29
+ if (!(e != null && e.length))
31
30
  return { navItems: [], activeId: null };
32
- }
33
- let counter = 1;
34
- const parseItem = (item) => {
35
- const icon = item.icon ? /* @__PURE__ */ jsx(Icon, { icon: item.icon }) : null;
36
- if (item.items) {
31
+ let t = 1;
32
+ const m = U(e, (o) => {
33
+ var c, f;
34
+ const n = o.icon ? /* @__PURE__ */ l(S, { icon: o.icon }) : null;
35
+ if (o.items)
37
36
  return {
38
- id: `${counter++}`,
39
- label: item.title,
40
- icon,
41
- children: item.items
42
- };
43
- }
44
- let props = {};
45
- if (item.link?.startsWith("http") || item.link?.startsWith("//")) {
46
- props = {
47
- target: "_blank",
48
- rel: "noreferrer"
37
+ id: `${t++}`,
38
+ label: o.title,
39
+ icon: n,
40
+ children: o.items
49
41
  };
50
- }
51
- return {
52
- id: `${counter++}`,
53
- label: /* @__PURE__ */ jsx("a", { href: item.link, ...props, children: item.title }),
54
- icon,
55
- description: item.description,
56
- link: item.link
42
+ let i = {};
43
+ return ((c = o.link) != null && c.startsWith("http") || (f = o.link) != null && f.startsWith("//")) && (i = {
44
+ target: "_blank",
45
+ rel: "noreferrer"
46
+ }), {
47
+ id: `${t++}`,
48
+ label: /* @__PURE__ */ l("a", { href: o.link, ...i, children: o.title }),
49
+ icon: n,
50
+ description: o.description,
51
+ link: o.link
57
52
  };
58
- };
59
- const navItems = mapRecursive(navigation, parseItem, "items");
60
- const flattened = flatRecursive(navItems);
61
- const matchedIndex = matchPaths(flattened.map((item) => item.link));
62
- return { navItems, activeId: matchedIndex >= 0 ? flattened[matchedIndex].id : null };
53
+ }, "items"), a = K(m), p = O(a.map((o) => o.link));
54
+ return { navItems: m, activeId: p >= 0 ? a[p].id : null };
63
55
  };
64
- function Header({
65
- meta = {},
66
- addons,
67
- sessionManagerProps = {
68
- showRole: true
56
+ function Z({
57
+ meta: e = {},
58
+ addons: t,
59
+ sessionManagerProps: b = {
60
+ showRole: !0
69
61
  },
70
- homeLink = publicPath,
71
- theme: themeOverrides,
72
- hideNavMenu = false,
73
- showDomainWarningDialog = true,
74
- ...rest
62
+ homeLink: m = G,
63
+ theme: a,
64
+ hideNavMenu: p = !1,
65
+ showDomainWarningDialog: o = !0,
66
+ ...n
75
67
  }) {
76
- useWalletHiddenTopbar();
77
- const parentTheme = useTheme();
78
- const { locale } = useLocaleContext() || {};
79
- const t = useMemoizedFn((key, data = {}) => {
80
- return translate(translations, key, locale, "en", data);
81
- });
82
- const formattedBlocklet = useMemo(() => {
83
- const blocklet = Object.assign({}, window.blocklet, meta);
68
+ var v, x;
69
+ Q();
70
+ const i = _(), { locale: c } = z() || {}, f = H((r, h = {}) => A(X, r, c, "en", h)), s = w(() => {
71
+ const r = Object.assign({}, window.blocklet, e);
84
72
  try {
85
- return formatBlockletInfo(blocklet);
86
- } catch (e) {
87
- console.error("Failed to format blocklet info", e, blocklet);
88
- return blocklet;
73
+ return q(r);
74
+ } catch (h) {
75
+ return console.error("Failed to format blocklet info", h, r), r;
89
76
  }
90
- }, [meta]);
91
- const mergeTheme = useMemo(() => deepmerge(parentTheme, themeOverrides), [parentTheme, themeOverrides]);
92
- const appLogo = useBlockletLogo({
93
- meta,
94
- theme: themeOverrides
77
+ }, [e]), u = w(() => E(i, a), [i, a]), I = M({
78
+ meta: e,
79
+ theme: a
95
80
  });
96
- if (!formattedBlocklet.appName) {
81
+ if (!s.appName)
97
82
  return null;
98
- }
99
- const navigation = getLocalizedNavigation(formattedBlocklet?.navigation?.header, locale);
100
- const parsedNavigation = parseNavigation(navigation);
101
- const { navItems, activeId } = parsedNavigation;
102
- const productsNavOrder = parseInt(window.blocklet?.USE_ARCBLOCK_THEME, 10);
103
- if (isFinite(productsNavOrder)) {
104
- navItems.splice(productsNavOrder, 0, {
105
- label: t("products"),
106
- // eslint-disable-next-line react/no-unstable-nested-components
107
- children: ({ isOpen }) => /* @__PURE__ */ jsx(Products, { isOpen })
108
- });
109
- }
110
- const _addons = typeof addons === "function" ? (builtInAddons) => addons(builtInAddons, { navigation: parsedNavigation }) : addons;
111
- const headerAddons = (
112
- // @ts-ignore
113
- /* @__PURE__ */ jsx(
114
- HeaderAddons,
115
- {
116
- formattedBlocklet,
117
- addons: _addons,
118
- sessionManagerProps,
119
- showDomainWarningDialog
120
- }
121
- )
122
- );
123
- return /* @__PURE__ */ jsx(ThemeProvider, { theme: mergeTheme, children: /* @__PURE__ */ jsx(
124
- StyledUxHeader,
83
+ const $ = D((v = s == null ? void 0 : s.navigation) == null ? void 0 : v.header, c), g = Y($), { navItems: d, activeId: N } = g, k = parseInt((x = window.blocklet) == null ? void 0 : x.USE_ARCBLOCK_THEME, 10);
84
+ return B(k) && d.splice(k, 0, {
85
+ label: f("products"),
86
+ // eslint-disable-next-line react/no-unstable-nested-components
87
+ children: ({ isOpen: r }) => /* @__PURE__ */ l(R, { isOpen: r })
88
+ }), /* @__PURE__ */ l(F, { theme: u, children: /* @__PURE__ */ l(
89
+ oo,
125
90
  {
126
- homeLink,
127
- logo: /* @__PURE__ */ jsx("img", { src: appLogo, alt: "logo" }),
128
- addons: headerAddons,
129
- ...omit(rest, ["bordered"]),
130
- $bordered: rest?.bordered,
131
- $bgcolor: mergeTheme.palette.background.default,
132
- className: clsx("blocklet__header", rest.className),
133
- children: hideNavMenu || !navItems?.length ? null : ({ isMobile }) => (
91
+ homeLink: m,
92
+ logo: /* @__PURE__ */ l("img", { src: I, alt: "logo" }),
93
+ addons: (
94
+ // @ts-ignore
95
+ /* @__PURE__ */ l(
96
+ J,
97
+ {
98
+ formattedBlocklet: s,
99
+ addons: typeof t == "function" ? (r) => t(r, { navigation: g }) : t,
100
+ sessionManagerProps: b,
101
+ showDomainWarningDialog: o
102
+ }
103
+ )
104
+ ),
105
+ ...W(n, ["bordered"]),
106
+ $bordered: n == null ? void 0 : n.bordered,
107
+ $bgcolor: u.palette.background.default,
108
+ className: j("blocklet__header", n.className),
109
+ children: p || !(d != null && d.length) ? null : ({ isMobile: r }) => (
134
110
  // @ts-ignore
135
- /* @__PURE__ */ jsx(
136
- NavMenu,
111
+ /* @__PURE__ */ l(
112
+ P,
137
113
  {
138
- mode: isMobile ? "inline" : "horizontal",
139
- activeId,
140
- items: navItems,
114
+ mode: r ? "inline" : "horizontal",
115
+ activeId: N,
116
+ items: d,
141
117
  className: "header-nav",
142
118
  bgColor: "transparent",
143
- textColor: mergeTheme.palette.grey[500],
144
- activeTextColor: mergeTheme.palette.text.primary
119
+ textColor: u.palette.grey[500],
120
+ activeTextColor: u.palette.text.primary
145
121
  }
146
122
  )
147
123
  )
148
124
  }
149
125
  ) });
150
126
  }
151
- const StyledUxHeader = styled(ResponsiveHeader)`
152
- ${({ $bgcolor }) => `background-color: ${$bgcolor || "#fff"};`}
127
+ const oo = T(L)`
128
+ ${({ $bgcolor: e }) => `background-color: ${e || "#fff"};`}
153
129
  .header-logo {
154
130
  min-width: 44px;
155
131
  }
156
- ${({ $bordered, theme }) => $bordered ? `border-bottom: 1px solid ${theme.palette.divider};` : ""}
157
- ${(props) => props.theme.breakpoints.down("md")} {
132
+ ${({ $bordered: e, theme: t }) => e ? `border-bottom: 1px solid ${t.palette.divider};` : ""}
133
+ ${(e) => e.theme.breakpoints.down("md")} {
158
134
  .header-logo {
159
135
  min-width: 32px;
160
136
  }
161
137
  }
162
- `;
163
- export default withErrorBoundary(withHideWhenEmbed(Header), {
164
- FallbackComponent: ErrorFallback
138
+ `, No = y(V(Z), {
139
+ FallbackComponent: C
165
140
  });
141
+ export {
142
+ No as default
143
+ };