@arcblock/ux 3.4.14 → 3.5.0

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 (335) hide show
  1. package/lib/Util/constant.d.ts +6 -0
  2. package/lib/Util/constant.js +25 -16
  3. package/lib/package.json.js +1 -1
  4. package/package.json +12 -9
  5. package/src/ActionButton/ActionButton.stories.jsx +0 -61
  6. package/src/ActionButton/index.jsx +0 -106
  7. package/src/ActivityIndicator/ActivityIndicator.stories.jsx +0 -9
  8. package/src/ActivityIndicator/index.jsx +0 -140
  9. package/src/Address/Address.stories.jsx +0 -38
  10. package/src/Address/compact-text.jsx +0 -76
  11. package/src/Address/did-address.tsx +0 -223
  12. package/src/Address/index.tsx +0 -21
  13. package/src/Address/responsive-did-address.tsx +0 -154
  14. package/src/Alert/Alert.stories.jsx +0 -100
  15. package/src/Alert/index.jsx +0 -130
  16. package/src/AnimationWaiter/AnimationWaiter.stories.jsx +0 -35
  17. package/src/AnimationWaiter/dark-animation.json +0 -1
  18. package/src/AnimationWaiter/default-animation.json +0 -1
  19. package/src/AnimationWaiter/index.jsx +0 -296
  20. package/src/Async/index.tsx +0 -44
  21. package/src/Avatar/Avatar.stories.jsx +0 -11
  22. package/src/Avatar/did-motif.jsx +0 -38
  23. package/src/Avatar/etherscan-blockies.js +0 -81
  24. package/src/Avatar/index.jsx +0 -195
  25. package/src/Badge/Badge.stories.jsx +0 -41
  26. package/src/Badge/index.jsx +0 -101
  27. package/src/Blocklet/Blocklet.stories.jsx +0 -21
  28. package/src/Blocklet/blocklet.jsx +0 -276
  29. package/src/Blocklet/index.js +0 -5
  30. package/src/Blocklet/utils.jsx +0 -58
  31. package/src/BlockletContext/index.tsx +0 -72
  32. package/src/BlockletNFT/BlockletNFT.stories.jsx +0 -21
  33. package/src/BlockletNFT/index.jsx +0 -378
  34. package/src/BlockletV2/Blocklet.stories.jsx +0 -34
  35. package/src/BlockletV2/blocklet.tsx +0 -247
  36. package/src/BlockletV2/components/icon-text.tsx +0 -47
  37. package/src/BlockletV2/components/tooltip-icon.tsx +0 -52
  38. package/src/BlockletV2/index.ts +0 -6
  39. package/src/BlockletV2/utils.js +0 -75
  40. package/src/Button/Button.stories.jsx +0 -24
  41. package/src/Button/index.js +0 -9
  42. package/src/Button/wrap.jsx +0 -126
  43. package/src/ButtonGroup/index.js +0 -16
  44. package/src/CardSelector/index.tsx +0 -136
  45. package/src/Center/Center.stories.jsx +0 -20
  46. package/src/Center/index.tsx +0 -33
  47. package/src/ClickToCopy/ClickToCopy.stories.jsx +0 -24
  48. package/src/ClickToCopy/copy-button.tsx +0 -43
  49. package/src/ClickToCopy/hook.ts +0 -42
  50. package/src/ClickToCopy/index.tsx +0 -96
  51. package/src/CloseButton/index.tsx +0 -37
  52. package/src/CodeBlock/CodeBlock.stories.jsx +0 -22
  53. package/src/CodeBlock/LightBox.tsx +0 -87
  54. package/src/CodeBlock/index.tsx +0 -217
  55. package/src/Colors/Colors.stories.jsx +0 -211
  56. package/src/Colors/index.ts +0 -4
  57. package/src/Colors/themes/default.ts +0 -8
  58. package/src/Colors/themes/did-connect.ts +0 -64
  59. package/src/Colors/themes/temp.ts +0 -52
  60. package/src/Config/Config.stories.jsx +0 -16
  61. package/src/Config/config-provider.tsx +0 -62
  62. package/src/Config/index.ts +0 -2
  63. package/src/Config/theme-mode-toggle.tsx +0 -38
  64. package/src/ContactForm/ContactForm.stories.jsx +0 -32
  65. package/src/ContactForm/index.tsx +0 -264
  66. package/src/CookieConsent/CookieConsent.stories.jsx +0 -33
  67. package/src/CookieConsent/index.tsx +0 -104
  68. package/src/CountDown/CountDown.stories.jsx +0 -15
  69. package/src/CountDown/index.tsx +0 -170
  70. package/src/DID/DID.stories.jsx +0 -37
  71. package/src/DID/index.tsx +0 -393
  72. package/src/DIDConnect/app-icon.tsx +0 -37
  73. package/src/DIDConnect/app-info-item.tsx +0 -93
  74. package/src/DIDConnect/auth-apps/auth-apps-info.tsx +0 -77
  75. package/src/DIDConnect/auth-apps/index.tsx +0 -278
  76. package/src/DIDConnect/auth-apps/switch-role.tsx +0 -47
  77. package/src/DIDConnect/did-connect-container.tsx +0 -326
  78. package/src/DIDConnect/did-connect-footer.tsx +0 -76
  79. package/src/DIDConnect/did-connect-logo.tsx +0 -8
  80. package/src/DIDConnect/icons/did-wallet-logo.tsx +0 -18
  81. package/src/DIDConnect/icons/github-logo.tsx +0 -17
  82. package/src/DIDConnect/index.ts +0 -11
  83. package/src/DIDConnect/landing-page.tsx +0 -218
  84. package/src/DIDConnect/powered-by.tsx +0 -48
  85. package/src/DIDConnect/provider-icon.tsx +0 -62
  86. package/src/DIDConnect/request-storage-access-api-dialog.tsx +0 -304
  87. package/src/DIDConnect/with-container.tsx +0 -323
  88. package/src/DIDConnect/with-ux-theme.tsx +0 -22
  89. package/src/DIDLogo/Logo.stories.jsx +0 -11
  90. package/src/DIDLogo/index.tsx +0 -168
  91. package/src/Datatable/CustomToolbar.jsx +0 -415
  92. package/src/Datatable/Datatable.stories.jsx +0 -92
  93. package/src/Datatable/DatatableContext.jsx +0 -35
  94. package/src/Datatable/TableSearch.jsx +0 -166
  95. package/src/Datatable/index.jsx +0 -652
  96. package/src/Datatable/utils.js +0 -161
  97. package/src/Dialog/Dialog.stories.jsx +0 -21
  98. package/src/Dialog/confirm.jsx +0 -143
  99. package/src/Dialog/dialog.jsx +0 -199
  100. package/src/Dialog/index.js +0 -4
  101. package/src/Dialog/types.d.ts +0 -20
  102. package/src/Dialog/use-confirm.jsx +0 -188
  103. package/src/DriftBot/index.tsx +0 -81
  104. package/src/Earth/Earth.stories.jsx +0 -39
  105. package/src/Earth/countries.json +0 -8057
  106. package/src/Earth/index.tsx +0 -515
  107. package/src/Earth/util.ts +0 -72
  108. package/src/Empty/Empty.stories.jsx +0 -23
  109. package/src/Empty/index.jsx +0 -48
  110. package/src/ErrorBoundary/ErrorBoundary.stories.jsx +0 -13
  111. package/src/ErrorBoundary/fallback.tsx +0 -85
  112. package/src/ErrorBoundary/index.ts +0 -1
  113. package/src/Footer/Footer.stories.jsx +0 -13
  114. package/src/Footer/index.tsx +0 -130
  115. package/src/Header/Header.stories.jsx +0 -30
  116. package/src/Header/addon-button.tsx +0 -41
  117. package/src/Header/auto-hidden.tsx +0 -31
  118. package/src/Header/header-addons.tsx +0 -37
  119. package/src/Header/header.tsx +0 -214
  120. package/src/Header/index.ts +0 -3
  121. package/src/Header/responsive-header.tsx +0 -145
  122. package/src/Icon/Icon.stories.jsx +0 -45
  123. package/src/Icon/image.tsx +0 -53
  124. package/src/Icon/index.tsx +0 -63
  125. package/src/Img/Img.stories.jsx +0 -17
  126. package/src/Img/index.jsx +0 -258
  127. package/src/InfoRow/InfoRow.stories.jsx +0 -14
  128. package/src/InfoRow/index.tsx +0 -91
  129. package/src/Layout/Layout.stories.jsx +0 -24
  130. package/src/Layout/dashboard/external-link.tsx +0 -59
  131. package/src/Layout/dashboard/full-page.tsx +0 -58
  132. package/src/Layout/dashboard/index.tsx +0 -260
  133. package/src/Layout/dashboard/sidebar.tsx +0 -198
  134. package/src/Layout/dashboard-legacy/header.tsx +0 -156
  135. package/src/Layout/dashboard-legacy/index.tsx +0 -127
  136. package/src/Layout/dashboard-legacy/sidebar.tsx +0 -129
  137. package/src/Layout/index.tsx +0 -310
  138. package/src/LoadingMask/index.tsx +0 -108
  139. package/src/Locale/LocaleSelector.stories.jsx +0 -44
  140. package/src/Locale/browser-lang.ts +0 -65
  141. package/src/Locale/context.tsx +0 -162
  142. package/src/Locale/languages.ts +0 -58
  143. package/src/Locale/selector.tsx +0 -174
  144. package/src/Locale/util.ts +0 -38
  145. package/src/Logo/Logo.stories.jsx +0 -23
  146. package/src/Logo/images/logo-dark-text.svg +0 -3
  147. package/src/Logo/images/logo-dark-top.svg +0 -6
  148. package/src/Logo/images/logo-light-text.svg +0 -3
  149. package/src/Logo/images/logo-light-top.svg +0 -6
  150. package/src/Logo/index.tsx +0 -58
  151. package/src/Metric/Metric.stories.jsx +0 -29
  152. package/src/Metric/index.tsx +0 -130
  153. package/src/MuiWrap/index.tsx +0 -10
  154. package/src/NFTDisplay/NFTBroken.svg +0 -34
  155. package/src/NFTDisplay/NFTDisplay.stories.jsx +0 -30
  156. package/src/NFTDisplay/README.md +0 -59
  157. package/src/NFTDisplay/aspect-ratio-container.tsx +0 -36
  158. package/src/NFTDisplay/broken.tsx +0 -51
  159. package/src/NFTDisplay/displayApi.ts +0 -43
  160. package/src/NFTDisplay/index.tsx +0 -393
  161. package/src/NFTDisplay/loading.tsx +0 -16
  162. package/src/NFTDisplay/preview.tsx +0 -84
  163. package/src/NFTDisplay/render-svg.tsx +0 -21
  164. package/src/NFTDisplay/svg-embedder/img.tsx +0 -27
  165. package/src/NFTDisplay/svg-embedder/inline-svg.tsx +0 -36
  166. package/src/NavMenu/NavMenu.stories.jsx +0 -17
  167. package/src/NavMenu/images/OCAP.svg +0 -1
  168. package/src/NavMenu/images/abt-network.svg +0 -1
  169. package/src/NavMenu/images/ai-kit.svg +0 -1
  170. package/src/NavMenu/images/aigne-image-smith.svg +0 -1
  171. package/src/NavMenu/images/aigne.svg +0 -1
  172. package/src/NavMenu/images/aistro.png +0 -0
  173. package/src/NavMenu/images/arcsphere.svg +0 -1
  174. package/src/NavMenu/images/blocklet-framework.svg +0 -1
  175. package/src/NavMenu/images/blocklet-launcher.svg +0 -1
  176. package/src/NavMenu/images/blocklet-server.svg +0 -1
  177. package/src/NavMenu/images/blocklet-store.svg +0 -1
  178. package/src/NavMenu/images/creator-studio.svg +0 -1
  179. package/src/NavMenu/images/did-wallet.svg +0 -1
  180. package/src/NavMenu/images/did.svg +0 -1
  181. package/src/NavMenu/images/nft-studio.svg +0 -1
  182. package/src/NavMenu/images/payment-kit.png +0 -0
  183. package/src/NavMenu/images/vc.svg +0 -1
  184. package/src/NavMenu/images/web3-kit.svg +0 -1
  185. package/src/NavMenu/index.ts +0 -3
  186. package/src/NavMenu/nav-menu-context.tsx +0 -30
  187. package/src/NavMenu/nav-menu.tsx +0 -441
  188. package/src/NavMenu/products.tsx +0 -830
  189. package/src/NavMenu/style.ts +0 -258
  190. package/src/NavMenu/sub-container.tsx +0 -125
  191. package/src/NavMenu/sub-item-group.tsx +0 -42
  192. package/src/OrgTransfer/index.tsx +0 -53
  193. package/src/OrgTransfer/locales.ts +0 -25
  194. package/src/OrgTransfer/selector.tsx +0 -252
  195. package/src/OrgTransfer/type.ts +0 -31
  196. package/src/PageScroller/index.tsx +0 -316
  197. package/src/PageScroller/story/FifthComponent.jsx +0 -7
  198. package/src/PageScroller/story/FirstComponent.jsx +0 -7
  199. package/src/PageScroller/story/FourthComponent.jsx +0 -7
  200. package/src/PageScroller/story/FullPage.jsx +0 -55
  201. package/src/PageScroller/story/PageContain.jsx +0 -59
  202. package/src/PageScroller/story/PageScroller.stories.jsx +0 -18
  203. package/src/PageScroller/story/SecondComponent.jsx +0 -7
  204. package/src/PageScroller/story/ThirdComponent.jsx +0 -7
  205. package/src/PageScroller/story/index.css +0 -115
  206. package/src/PageScroller/usePrevValue.ts +0 -11
  207. package/src/Passport/index.ts +0 -3
  208. package/src/Passport/passport.tsx +0 -118
  209. package/src/PhoneInput/PhoneInput.stories.jsx +0 -12
  210. package/src/PhoneInput/country-select.tsx +0 -148
  211. package/src/PhoneInput/index.tsx +0 -269
  212. package/src/PoweredByArcBlock/index.tsx +0 -27
  213. package/src/PricingTable/PricingPlan.tsx +0 -120
  214. package/src/PricingTable/PricingTable.stories.jsx +0 -38
  215. package/src/PricingTable/index.tsx +0 -59
  216. package/src/QRCode/QRCode.stories.jsx +0 -13
  217. package/src/QRCode/index.tsx +0 -66
  218. package/src/RelativeTime/RelativeTime.stories.jsx +0 -20
  219. package/src/RelativeTime/index.tsx +0 -334
  220. package/src/Result/Result.stories.jsx +0 -61
  221. package/src/Result/common.tsx +0 -119
  222. package/src/Result/index.tsx +0 -30
  223. package/src/Result/result.tsx +0 -65
  224. package/src/Result/translations.ts +0 -57
  225. package/src/Screenshot/BaseScreenshot/index.tsx +0 -73
  226. package/src/Screenshot/BaseScreenshot/shells/Macbook.tsx +0 -38
  227. package/src/Screenshot/BaseScreenshot/shells/Phone.tsx +0 -35
  228. package/src/Screenshot/Screenshot.stories.jsx +0 -44
  229. package/src/Screenshot/devices.css +0 -1366
  230. package/src/Screenshot/index.tsx +0 -300
  231. package/src/SessionBlocklet/index.tsx +0 -178
  232. package/src/SessionManager/SessionManager.stories.jsx +0 -9
  233. package/src/SessionManager/index.tsx +0 -3
  234. package/src/SessionPermission/index.tsx +0 -26
  235. package/src/SessionUser/components/did-space.tsx +0 -68
  236. package/src/SessionUser/components/logged-in.tsx +0 -338
  237. package/src/SessionUser/components/quick-login-item.tsx +0 -132
  238. package/src/SessionUser/components/session-user-item.tsx +0 -93
  239. package/src/SessionUser/components/session-user-switch.tsx +0 -240
  240. package/src/SessionUser/components/un-login.tsx +0 -257
  241. package/src/SessionUser/components/user-info.tsx +0 -201
  242. package/src/SessionUser/index.tsx +0 -68
  243. package/src/SessionUser/libs/translation.ts +0 -30
  244. package/src/SessionUser/libs/utils.ts +0 -39
  245. package/src/SharedBridge/index.tsx +0 -126
  246. package/src/SocialShare/index.tsx +0 -194
  247. package/src/Sparkline/Sparkline.stories.jsx +0 -13
  248. package/src/Sparkline/index.tsx +0 -231
  249. package/src/Spinner/Spinner.stories.jsx +0 -98
  250. package/src/Spinner/index.tsx +0 -20
  251. package/src/SplitButton/SplitButton.stories.jsx +0 -32
  252. package/src/SplitButton/index.tsx +0 -116
  253. package/src/SplitButton/useClickAway.tsx +0 -24
  254. package/src/Success/index.tsx +0 -175
  255. package/src/Switch/Switch.stories.jsx +0 -16
  256. package/src/Switch/index.jsx +0 -79
  257. package/src/Tabs/Tabs.stories.jsx +0 -18
  258. package/src/Tabs/index.tsx +0 -255
  259. package/src/Tag/Tag.stories.jsx +0 -15
  260. package/src/Tag/index.jsx +0 -106
  261. package/src/TextCollapse/TextCollapse.stories.jsx +0 -73
  262. package/src/TextCollapse/index.tsx +0 -85
  263. package/src/Theme/Theme.stories.jsx +0 -11
  264. package/src/Theme/index.ts +0 -21
  265. package/src/Theme/theme-provider.tsx +0 -374
  266. package/src/Theme/theme.ts +0 -229
  267. package/src/Toast/Toast.stories.jsx +0 -28
  268. package/src/Toast/index.tsx +0 -80
  269. package/src/Typography/index.tsx +0 -124
  270. package/src/UserCard/Cards/avatar-only.tsx +0 -27
  271. package/src/UserCard/Cards/basic-info.tsx +0 -43
  272. package/src/UserCard/Cards/index.tsx +0 -16
  273. package/src/UserCard/Cards/social-actions.tsx +0 -196
  274. package/src/UserCard/Container/card.tsx +0 -63
  275. package/src/UserCard/Container/dialog.tsx +0 -37
  276. package/src/UserCard/Content/basic.tsx +0 -330
  277. package/src/UserCard/Content/clock.tsx +0 -82
  278. package/src/UserCard/Content/minimal.tsx +0 -113
  279. package/src/UserCard/Content/shorten-label.tsx +0 -32
  280. package/src/UserCard/Content/tooltip-avatar.tsx +0 -80
  281. package/src/UserCard/UserCard.stories.jsx +0 -19
  282. package/src/UserCard/components.tsx +0 -81
  283. package/src/UserCard/index.tsx +0 -132
  284. package/src/UserCard/types.ts +0 -165
  285. package/src/UserCard/use-follow.tsx +0 -111
  286. package/src/UserCard/utils.ts +0 -155
  287. package/src/Util/WebWalletOpener.stories.jsx +0 -5
  288. package/src/Util/client.ts +0 -4
  289. package/src/Util/constant.ts +0 -60
  290. package/src/Util/deprecate.tsx +0 -29
  291. package/src/Util/federated.ts +0 -125
  292. package/src/Util/iframe.ts +0 -19
  293. package/src/Util/index.ts +0 -760
  294. package/src/Util/logger.ts +0 -44
  295. package/src/Util/passport.ts +0 -127
  296. package/src/Util/security.ts +0 -72
  297. package/src/Util/style.ts +0 -17
  298. package/src/Util/wallet.ts +0 -35
  299. package/src/VerificationCode/index.tsx +0 -83
  300. package/src/Video/Video.stories.jsx +0 -6
  301. package/src/Video/index.tsx +0 -70
  302. package/src/Wallet/Action.stories.jsx +0 -8
  303. package/src/Wallet/Action.tsx +0 -118
  304. package/src/Wallet/Download.stories.jsx +0 -9
  305. package/src/Wallet/Download.tsx +0 -157
  306. package/src/Wallet/Open.tsx +0 -47
  307. package/src/Wallet/OpenInWallet.stories.jsx +0 -5
  308. package/src/Wallet/images/abtwallet.png +0 -0
  309. package/src/Wallet/images/android_download.svg +0 -22
  310. package/src/Wallet/images/app-store.svg +0 -30
  311. package/src/Wallet/images/google-play.svg +0 -69
  312. package/src/WalletOSIcon/index.tsx +0 -47
  313. package/src/WebWalletSWKeeper/index.tsx +0 -117
  314. package/src/WechatPrompt/images/android.png +0 -0
  315. package/src/WechatPrompt/images/ios.png +0 -0
  316. package/src/WechatPrompt/index.tsx +0 -75
  317. package/src/global.d.ts +0 -28
  318. package/src/hooks/use-blocklet-logo.tsx +0 -32
  319. package/src/hooks/use-clock.tsx +0 -62
  320. package/src/hooks/use-location-state.tsx +0 -117
  321. package/src/hooks/use-mobile.tsx +0 -6
  322. package/src/index.ts +0 -79
  323. package/src/type.d.ts +0 -44
  324. package/src/withTheme/index.tsx +0 -72
  325. package/src/withTracker/README.md +0 -37
  326. package/src/withTracker/action/bind-wallet.tsx +0 -17
  327. package/src/withTracker/action/login.tsx +0 -18
  328. package/src/withTracker/action/pay.tsx +0 -14
  329. package/src/withTracker/action/switch-passport.tsx +0 -20
  330. package/src/withTracker/constant/index.tsx +0 -3
  331. package/src/withTracker/env.tsx +0 -1
  332. package/src/withTracker/error_boundary.jsx +0 -34
  333. package/src/withTracker/index.tsx +0 -50
  334. package/src/withTracker/libs/utm.ts +0 -46
  335. package/vite.config.mjs +0 -37
@@ -1,255 +0,0 @@
1
- import { Tabs as MuiTabs, Tab as MuiTab, type TabsProps as MuiTabsProps, type TabProps } from '@mui/material';
2
-
3
- import { styled } from '../Theme';
4
-
5
- const PREFIX = 'index';
6
-
7
- const classes = {
8
- tabs: `${PREFIX}-tabs`,
9
- tab: `${PREFIX}-tab`,
10
- };
11
-
12
- const StyledMuiTabs = styled(MuiTabs)(({ theme }) => ({
13
- [`& .${classes.tabs}`]: {},
14
-
15
- [`& .${classes.tab}`]: {
16
- fontSize: '0.875rem',
17
- [theme.breakpoints.up('md')]: {
18
- fontSize: '1rem',
19
- },
20
- },
21
- }));
22
-
23
- interface CardTabsProps extends Omit<MuiTabsProps, 'onChange'> {
24
- tabs: { value: any; label: React.ReactNode; icon?: string | React.ReactElement<any> }[];
25
- current: any;
26
- onChange: (value: string) => void;
27
- iconPosition?: TabProps['iconPosition'];
28
- enableTabClick?: boolean;
29
- }
30
-
31
- function CardTabs({
32
- tabs,
33
- current,
34
- onChange,
35
- iconPosition = undefined,
36
- enableTabClick = false,
37
- ...rest
38
- }: CardTabsProps) {
39
- return (
40
- <MuiTabs
41
- scrollButtons="auto"
42
- value={current}
43
- onChange={(_, newValue) => !enableTabClick && onChange(newValue)}
44
- {...rest}
45
- variant="scrollable"
46
- sx={{
47
- minHeight: 'auto',
48
- '.MuiTabs-scrollButtons.Mui-disabled': {
49
- opacity: 0.3,
50
- cursor: 'not-allowed',
51
- pointerEvents: 'auto',
52
- },
53
- '.MuiTabs-scroller': {
54
- borderRadius: '100vw',
55
- },
56
- '.MuiTabs-flexContainer': {
57
- borderRadius: '100vw',
58
- backgroundColor: 'grey.100',
59
- padding: 0.5,
60
- display: 'inline-flex',
61
- columnGap: 0.25,
62
- maxWidth: '100%',
63
- overflowX: 'auto',
64
- },
65
- '.MuiTab-root': {
66
- borderRadius: '100vw',
67
- border: '1px solid transparent',
68
- minHeight: 'auto',
69
- lineHeight: 1,
70
- py: 1,
71
- color: 'text.secondary',
72
- fontSize: '13px',
73
- fontWeight: 'normal',
74
- textTransform: 'capitalize',
75
- transition: 'background-color 0.2s ease',
76
- '&.Mui-selected, &:hover': {
77
- backgroundColor: 'action.selected',
78
- borderColor: 'grey.100',
79
- color: 'grey.A700',
80
- },
81
- },
82
- '.MuiTabs-indicator': {
83
- display: 'none',
84
- },
85
- ...rest.sx,
86
- }}>
87
- {tabs.map((x) => (
88
- <MuiTab
89
- className={classes.tab}
90
- key={x.value}
91
- value={x.value}
92
- label={x.label}
93
- icon={x.icon}
94
- iconPosition={iconPosition}
95
- onClick={() => enableTabClick && onChange(x.value)}
96
- />
97
- ))}
98
- </MuiTabs>
99
- );
100
- }
101
-
102
- interface LineTabsProps extends Omit<MuiTabsProps, 'onChange'> {
103
- tabs: { value: any; label: React.ReactNode; icon?: string | React.ReactElement<any> }[];
104
- current: any;
105
- onChange: (value: string) => void;
106
- iconPosition?: TabProps['iconPosition'];
107
- enableTabClick?: boolean;
108
- }
109
-
110
- function LineTabs({
111
- tabs,
112
- current,
113
- onChange,
114
- iconPosition = undefined,
115
- enableTabClick = false,
116
- ...rest
117
- }: LineTabsProps) {
118
- return (
119
- <MuiTabs
120
- scrollButtons="auto"
121
- value={current}
122
- onChange={(_, newValue) => !enableTabClick && onChange(newValue)}
123
- {...rest}
124
- variant="scrollable"
125
- sx={{
126
- minHeight: 'auto',
127
- '.MuiTabs-scrollButtons.Mui-disabled': {
128
- opacity: 0.3,
129
- cursor: 'not-allowed',
130
- pointerEvents: 'auto',
131
- },
132
- '.MuiTabs-scroller':
133
- rest.orientation !== 'vertical'
134
- ? {
135
- '&::after': {
136
- content: '""',
137
- display: 'block',
138
- position: 'sticky',
139
- left: 0,
140
- zIndex: -1,
141
- width: '100%',
142
- height: '1px',
143
- backgroundColor: 'grey.300',
144
- },
145
- }
146
- : {},
147
- '.MuiTabs-flexContainer': {
148
- display: 'inline-flex',
149
- columnGap: 2.5,
150
- px: 0,
151
- pb: 0.5,
152
- },
153
- '.MuiTab-root': {
154
- border: '1px solid transparent',
155
- minHeight: 'auto',
156
- lineHeight: 1,
157
- py: 1,
158
- px: 0,
159
- color: 'text.secondary',
160
- fontSize: '14px',
161
- fontWeight: 500,
162
- textTransform: 'capitalize',
163
- minWidth: 'auto',
164
- '&.Mui-selected, &:hover': {
165
- color: 'primary.main',
166
- },
167
- },
168
- '.MuiTabs-indicator': {
169
- height: '1px',
170
- backgroundColor: 'primary.main',
171
- },
172
- ...rest.sx,
173
- }}>
174
- {tabs.map((x) => (
175
- <MuiTab
176
- className={classes.tab}
177
- key={x.value}
178
- value={x.value}
179
- label={x.label}
180
- icon={x.icon}
181
- iconPosition={iconPosition}
182
- onClick={() => enableTabClick && onChange(x.value)}
183
- />
184
- ))}
185
- </MuiTabs>
186
- );
187
- }
188
-
189
- interface TabsProps extends Omit<MuiTabsProps, 'variant' | 'onChange'> {
190
- tabs: { value: any; label: React.ReactNode; icon?: string | React.ReactElement<any> }[];
191
- current: any;
192
- onChange: (value: string) => void;
193
- variant?: 'card' | 'line' | MuiTabsProps['variant'];
194
- iconPosition?: TabProps['iconPosition'];
195
- enableTabClick?: boolean; // 是否启用点击切换 tab,默认不启用,启用后,当前 tab 处于活跃状态下点击 tab 也会触发 onChange 事件,
196
- }
197
-
198
- export default function Tabs({
199
- tabs,
200
- current,
201
- onChange,
202
- variant = undefined,
203
- iconPosition = undefined,
204
- enableTabClick = false,
205
- ...rest
206
- }: TabsProps) {
207
- if (variant === 'card') {
208
- return (
209
- <CardTabs
210
- {...rest}
211
- tabs={tabs}
212
- current={current}
213
- enableTabClick={enableTabClick}
214
- onChange={onChange}
215
- iconPosition={iconPosition}
216
- />
217
- );
218
- }
219
-
220
- if (variant === 'line') {
221
- return (
222
- <LineTabs
223
- {...rest}
224
- tabs={tabs}
225
- current={current}
226
- enableTabClick={enableTabClick}
227
- onChange={onChange}
228
- iconPosition={iconPosition}
229
- />
230
- );
231
- }
232
-
233
- return (
234
- <StyledMuiTabs
235
- scrollButtons="auto"
236
- variant="scrollable"
237
- value={current}
238
- onChange={(_, newValue) => !enableTabClick && onChange(newValue)}
239
- indicatorColor="primary"
240
- {...rest}
241
- className={[classes.tabs, rest.className || ''].join(' ')}>
242
- {tabs.map((x) => (
243
- <MuiTab
244
- className={classes.tab}
245
- key={x.value}
246
- value={x.value}
247
- label={x.label}
248
- icon={x.icon}
249
- iconPosition={iconPosition}
250
- onClick={() => enableTabClick && onChange(x.value)}
251
- />
252
- ))}
253
- </StyledMuiTabs>
254
- );
255
- }
@@ -1,15 +0,0 @@
1
- import Basic from './demo/basic';
2
-
3
- export default {
4
- title: 'Data Display/Tag',
5
- parameters: {
6
- docs: {
7
- description: {
8
- component: 'Used for categorizing or marking up.',
9
- },
10
- },
11
- },
12
- };
13
- Basic.storyName = 'Tag';
14
-
15
- export { Basic };
package/src/Tag/index.jsx DELETED
@@ -1,106 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Typography } from '@mui/material';
3
- import isUndefined from 'lodash/isUndefined';
4
-
5
- import { mergeProps } from '../Util';
6
- import colors from '../Colors';
7
- import { useTheme, styled } from '../Theme';
8
-
9
- const types = {
10
- error: {
11
- color: colors.common.white,
12
- backgroundColor: colors.error.main,
13
- },
14
- warning: {
15
- color: colors.common.white,
16
- backgroundColor: colors.warning.main,
17
- },
18
- success: {
19
- color: colors.common.white,
20
- backgroundColor: colors.success.main,
21
- },
22
- primary: {
23
- color: colors.common.white,
24
- backgroundColor: colors.primary.main,
25
- },
26
- reverse: {
27
- color: '#fff',
28
- backgroundColor: '#222',
29
- },
30
- };
31
-
32
- /**
33
- * @typedef {import('@mui/material/Typography').TypographyProps} TypographyProps
34
- * @typedef {{
35
- * type?: 'error' | 'warning' | 'success' | 'primary' | 'reverse',
36
- * content?: string,
37
- * className?: string;
38
- * children: import('react').ReactNode,
39
- * style?: import('react').CSSProperties
40
- * }} TagOwnProps
41
- * @typedef { TypographyProps & TagOwnProps} TagProps
42
- */
43
-
44
- /**
45
- * @description
46
- * @param {TagProps} props
47
- * @return {JSX.Element}
48
- */
49
- function Tag({ ...rawProps }) {
50
- const props = Object.assign({}, rawProps);
51
- if (isUndefined(props.type)) {
52
- props.type = 'primary';
53
- }
54
- if (isUndefined(props.content)) {
55
- props.content = '';
56
- }
57
- if (isUndefined(props.style)) {
58
- props.style = {};
59
- }
60
- if (isUndefined(props.className)) {
61
- props.className = '';
62
- }
63
- const newProps = mergeProps(props, Tag, ['style']);
64
- const { type, content, children, style, className, ...rest } = newProps;
65
-
66
- const { palette } = useTheme();
67
-
68
- const styles = Object.assign({}, types[type] || types.primary, style);
69
-
70
- if (palette[type]) {
71
- Object.assign(styles, {
72
- color: palette[type].contrastText || colors.common.white,
73
- backgroundColor: palette[type].main,
74
- });
75
- }
76
-
77
- return (
78
- <Span component="span" className={className} style={styles} {...rest}>
79
- {content || children}
80
- </Span>
81
- );
82
- }
83
-
84
- Tag.propTypes = {
85
- children: PropTypes.any.isRequired,
86
- type: PropTypes.oneOf(Object.keys(types)),
87
- content: PropTypes.string,
88
- className: PropTypes.string,
89
- style: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
90
- };
91
-
92
- export default Tag;
93
-
94
- const Span = styled(Typography)`
95
- && {
96
- display: inline-flex;
97
- justify-content: center;
98
- align-items: center;
99
- padding: 2px 10px;
100
- height: 20px;
101
- line-height: 20px;
102
- font-size: 12px;
103
- font-weight: 500;
104
- border-radius: ${({ theme }) => theme.shape.borderRadius * 0.5}px;
105
- }
106
- `;
@@ -1,73 +0,0 @@
1
- import TextCollapse from '.';
2
-
3
- export default {
4
- title: 'Deprecated/TextCollapse',
5
-
6
- parameters: {
7
- readme: {
8
- sidebar: '<!-- PROPS -->',
9
- },
10
- },
11
- };
12
-
13
- export function WithDefaultOptions() {
14
- return (
15
- <>
16
- <TextCollapse maxWidth={180}>this text will collapse from middle</TextCollapse>
17
- <hr />
18
- <TextCollapse maxWidth={180} fontType="monospace">
19
- this text will collapse from middle
20
- </TextCollapse>
21
- </>
22
- );
23
- }
24
-
25
- WithDefaultOptions.storyName = 'with default options';
26
-
27
- export function WithSmallerEndChars() {
28
- return (
29
- <>
30
- <TextCollapse maxWidth={180} endChars={4}>
31
- this text will collapse from middle
32
- </TextCollapse>
33
- <hr />
34
- <TextCollapse maxWidth={180} endChars={4} fontType="monospace">
35
- this text will collapse from middle
36
- </TextCollapse>
37
- </>
38
- );
39
- }
40
-
41
- WithSmallerEndChars.storyName = 'with smaller end chars';
42
-
43
- export function WithLargerStartChars() {
44
- return (
45
- <div style={{ color: 'red' }}>
46
- <TextCollapse maxWidth={120} startChars={18} endChars={4}>
47
- this text will collapse from middle
48
- </TextCollapse>
49
- <hr />
50
- <TextCollapse maxWidth={120} startChars={18} endChars={4} fontType="monospace">
51
- this text will collapse from middle
52
- </TextCollapse>
53
- </div>
54
- );
55
- }
56
-
57
- WithLargerStartChars.storyName = 'with larger start chars';
58
-
59
- export function WithLargerFontSize() {
60
- return (
61
- <div style={{ fontSize: 30 }}>
62
- <TextCollapse maxWidth={360} startChars={('startChars', 8)} endChars={4}>
63
- this text will collapse from middle
64
- </TextCollapse>
65
- <hr />
66
- <TextCollapse maxWidth={360} startChars={8} endChars={4} fontType="monospace">
67
- this text will collapse from middle
68
- </TextCollapse>
69
- </div>
70
- );
71
- }
72
-
73
- WithLargerFontSize.storyName = 'with larger font size';
@@ -1,85 +0,0 @@
1
- import { Typography, type TypographyProps } from '@mui/material';
2
-
3
- import { styled } from '../Theme';
4
- import { withDeprecated } from '../Util/deprecate';
5
-
6
- export interface TextCollapseProps {
7
- children: string;
8
- maxWidth: string | number;
9
- startChars?: number;
10
- endChars?: number;
11
- scaleFactor?: number;
12
- style?: React.CSSProperties;
13
- fontType?: 'monospace' | 'normal';
14
- }
15
-
16
- function TextCollapse({
17
- children,
18
- maxWidth,
19
- startChars = 5,
20
- endChars = 5,
21
- scaleFactor = 0.45,
22
- style = undefined,
23
- fontType = 'normal',
24
- ...rest
25
- }: TextCollapseProps) {
26
- if (typeof children !== 'string') {
27
- return null;
28
- }
29
-
30
- const isMonospace = fontType === 'monospace';
31
-
32
- // 由于 css 样式产生的省略号长度是不确定的,所以目前 startChars 的长度只能让开发者自己去加上‘省略号’的宽度去设置这个值,要想完美的实现目标功能,最好是改用 js 动态修改文本内容来实现
33
- const startWidth = isMonospace ? `${startChars}ch` : `${scaleFactor * (startChars + 3)}em`;
34
- const endWidth = isMonospace ? `${endChars}ch` : `${scaleFactor * endChars}em`;
35
- const styles = Object.assign(
36
- isMonospace ? { fontFamily: '"Courier New", Courier, monospace' } : {},
37
- { fontSize: 'inherit', color: 'inherit', fontWeight: 'inherit', maxWidth },
38
- style
39
- );
40
-
41
- const [startPart, endPart] = [
42
- children.slice(0, children.length - endChars),
43
- children.slice(children.length - endChars),
44
- ];
45
-
46
- return (
47
- <Container component="span" style={styles} startwidth={startWidth} endwidth={endWidth} {...rest}>
48
- <span className="start-part">{startPart}</span>
49
- <span className="end-part">{endPart}</span>
50
- </Container>
51
- );
52
- }
53
-
54
- export default withDeprecated(TextCollapse, { name: 'TextCollapse' });
55
-
56
- type ContainerProps = {
57
- startwidth: string;
58
- endwidth: string;
59
- };
60
-
61
- const Container = styled(Typography)<ContainerProps & TypographyProps>`
62
- display: inline-flex;
63
- align-items: center;
64
- justify-content: start;
65
- cursor: pointer;
66
- white-space: nowrap;
67
- overflow: hidden;
68
-
69
- .start-part,
70
- .end-part {
71
- display: inline-block;
72
- vertical-align: bottom;
73
- white-space: nowrap;
74
- overflow: hidden;
75
- }
76
- .start-part {
77
- max-width: calc(100% - ${(props) => props.endwidth});
78
- min-width: ${(props) => props.startwidth};
79
- text-overflow: ellipsis;
80
- }
81
- .end-part {
82
- max-width: calc(100% - ${(props) => props.startwidth});
83
- direction: rtl;
84
- }
85
- `;
@@ -1,11 +0,0 @@
1
- export { default as Palette } from './demo/palette';
2
- export { default as Typography } from './demo/typography';
3
- export { default as Shadows } from './demo/shadows';
4
- export { default as WithCustomKey } from './demo/with-custom-key';
5
- export { default as CustomFonts } from './demo/custom-fonts';
6
- export { default as UrlTheme } from './demo/url-theme';
7
- export { default as CodeBlock } from './demo/code-block';
8
-
9
- export default {
10
- title: 'Theme/Theme',
11
- };
@@ -1,21 +0,0 @@
1
- import type { CreateMUIStyled, Theme } from '@mui/material';
2
- import { styled as muiStyled, useTheme } from '@mui/material';
3
-
4
- export * from './theme';
5
- export * from './theme-provider';
6
- export { default as ThemeProvider } from './theme-provider';
7
- export { useTheme };
8
-
9
- const isTransientProp = (prop: string) => prop.startsWith('$');
10
-
11
- export const styled: CreateMUIStyled<Theme> = (component: any, options?: any) => {
12
- return muiStyled(component, {
13
- ...options,
14
- shouldForwardProp: (prop: string) => {
15
- if (options?.shouldForwardProp) {
16
- return options.shouldForwardProp(prop) && !isTransientProp(prop);
17
- }
18
- return !isTransientProp(prop);
19
- },
20
- });
21
- };