@arcblock/ux 3.4.15 → 3.5.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 (333) hide show
  1. package/lib/package.json.js +1 -1
  2. package/package.json +10 -7
  3. package/src/ActionButton/ActionButton.stories.jsx +0 -61
  4. package/src/ActionButton/index.jsx +0 -106
  5. package/src/ActivityIndicator/ActivityIndicator.stories.jsx +0 -9
  6. package/src/ActivityIndicator/index.jsx +0 -140
  7. package/src/Address/Address.stories.jsx +0 -38
  8. package/src/Address/compact-text.jsx +0 -76
  9. package/src/Address/did-address.tsx +0 -223
  10. package/src/Address/index.tsx +0 -21
  11. package/src/Address/responsive-did-address.tsx +0 -154
  12. package/src/Alert/Alert.stories.jsx +0 -100
  13. package/src/Alert/index.jsx +0 -130
  14. package/src/AnimationWaiter/AnimationWaiter.stories.jsx +0 -35
  15. package/src/AnimationWaiter/dark-animation.json +0 -1
  16. package/src/AnimationWaiter/default-animation.json +0 -1
  17. package/src/AnimationWaiter/index.jsx +0 -296
  18. package/src/Async/index.tsx +0 -44
  19. package/src/Avatar/Avatar.stories.jsx +0 -11
  20. package/src/Avatar/did-motif.jsx +0 -38
  21. package/src/Avatar/etherscan-blockies.js +0 -81
  22. package/src/Avatar/index.jsx +0 -195
  23. package/src/Badge/Badge.stories.jsx +0 -41
  24. package/src/Badge/index.jsx +0 -101
  25. package/src/Blocklet/Blocklet.stories.jsx +0 -21
  26. package/src/Blocklet/blocklet.jsx +0 -276
  27. package/src/Blocklet/index.js +0 -5
  28. package/src/Blocklet/utils.jsx +0 -58
  29. package/src/BlockletContext/index.tsx +0 -72
  30. package/src/BlockletNFT/BlockletNFT.stories.jsx +0 -21
  31. package/src/BlockletNFT/index.jsx +0 -378
  32. package/src/BlockletV2/Blocklet.stories.jsx +0 -34
  33. package/src/BlockletV2/blocklet.tsx +0 -247
  34. package/src/BlockletV2/components/icon-text.tsx +0 -47
  35. package/src/BlockletV2/components/tooltip-icon.tsx +0 -52
  36. package/src/BlockletV2/index.ts +0 -6
  37. package/src/BlockletV2/utils.js +0 -75
  38. package/src/Button/Button.stories.jsx +0 -24
  39. package/src/Button/index.js +0 -9
  40. package/src/Button/wrap.jsx +0 -126
  41. package/src/ButtonGroup/index.js +0 -16
  42. package/src/CardSelector/index.tsx +0 -136
  43. package/src/Center/Center.stories.jsx +0 -20
  44. package/src/Center/index.tsx +0 -33
  45. package/src/ClickToCopy/ClickToCopy.stories.jsx +0 -24
  46. package/src/ClickToCopy/copy-button.tsx +0 -43
  47. package/src/ClickToCopy/hook.ts +0 -42
  48. package/src/ClickToCopy/index.tsx +0 -96
  49. package/src/CloseButton/index.tsx +0 -37
  50. package/src/CodeBlock/CodeBlock.stories.jsx +0 -22
  51. package/src/CodeBlock/LightBox.tsx +0 -87
  52. package/src/CodeBlock/index.tsx +0 -217
  53. package/src/Colors/Colors.stories.jsx +0 -211
  54. package/src/Colors/index.ts +0 -4
  55. package/src/Colors/themes/default.ts +0 -8
  56. package/src/Colors/themes/did-connect.ts +0 -64
  57. package/src/Colors/themes/temp.ts +0 -52
  58. package/src/Config/Config.stories.jsx +0 -16
  59. package/src/Config/config-provider.tsx +0 -62
  60. package/src/Config/index.ts +0 -2
  61. package/src/Config/theme-mode-toggle.tsx +0 -38
  62. package/src/ContactForm/ContactForm.stories.jsx +0 -32
  63. package/src/ContactForm/index.tsx +0 -264
  64. package/src/CookieConsent/CookieConsent.stories.jsx +0 -33
  65. package/src/CookieConsent/index.tsx +0 -104
  66. package/src/CountDown/CountDown.stories.jsx +0 -15
  67. package/src/CountDown/index.tsx +0 -170
  68. package/src/DID/DID.stories.jsx +0 -37
  69. package/src/DID/index.tsx +0 -393
  70. package/src/DIDConnect/app-icon.tsx +0 -37
  71. package/src/DIDConnect/app-info-item.tsx +0 -93
  72. package/src/DIDConnect/auth-apps/auth-apps-info.tsx +0 -77
  73. package/src/DIDConnect/auth-apps/index.tsx +0 -278
  74. package/src/DIDConnect/auth-apps/switch-role.tsx +0 -47
  75. package/src/DIDConnect/did-connect-container.tsx +0 -326
  76. package/src/DIDConnect/did-connect-footer.tsx +0 -76
  77. package/src/DIDConnect/did-connect-logo.tsx +0 -8
  78. package/src/DIDConnect/icons/did-wallet-logo.tsx +0 -18
  79. package/src/DIDConnect/icons/github-logo.tsx +0 -17
  80. package/src/DIDConnect/index.ts +0 -11
  81. package/src/DIDConnect/landing-page.tsx +0 -218
  82. package/src/DIDConnect/powered-by.tsx +0 -48
  83. package/src/DIDConnect/provider-icon.tsx +0 -62
  84. package/src/DIDConnect/request-storage-access-api-dialog.tsx +0 -304
  85. package/src/DIDConnect/with-container.tsx +0 -323
  86. package/src/DIDConnect/with-ux-theme.tsx +0 -22
  87. package/src/DIDLogo/Logo.stories.jsx +0 -11
  88. package/src/DIDLogo/index.tsx +0 -168
  89. package/src/Datatable/CustomToolbar.jsx +0 -415
  90. package/src/Datatable/Datatable.stories.jsx +0 -92
  91. package/src/Datatable/DatatableContext.jsx +0 -35
  92. package/src/Datatable/TableSearch.jsx +0 -166
  93. package/src/Datatable/index.jsx +0 -652
  94. package/src/Datatable/utils.js +0 -161
  95. package/src/Dialog/Dialog.stories.jsx +0 -21
  96. package/src/Dialog/confirm.jsx +0 -143
  97. package/src/Dialog/dialog.jsx +0 -199
  98. package/src/Dialog/index.js +0 -4
  99. package/src/Dialog/types.d.ts +0 -20
  100. package/src/Dialog/use-confirm.jsx +0 -188
  101. package/src/DriftBot/index.tsx +0 -81
  102. package/src/Earth/Earth.stories.jsx +0 -39
  103. package/src/Earth/countries.json +0 -8057
  104. package/src/Earth/index.tsx +0 -515
  105. package/src/Earth/util.ts +0 -72
  106. package/src/Empty/Empty.stories.jsx +0 -23
  107. package/src/Empty/index.jsx +0 -48
  108. package/src/ErrorBoundary/ErrorBoundary.stories.jsx +0 -13
  109. package/src/ErrorBoundary/fallback.tsx +0 -85
  110. package/src/ErrorBoundary/index.ts +0 -1
  111. package/src/Footer/Footer.stories.jsx +0 -13
  112. package/src/Footer/index.tsx +0 -130
  113. package/src/Header/Header.stories.jsx +0 -30
  114. package/src/Header/addon-button.tsx +0 -41
  115. package/src/Header/auto-hidden.tsx +0 -31
  116. package/src/Header/header-addons.tsx +0 -37
  117. package/src/Header/header.tsx +0 -214
  118. package/src/Header/index.ts +0 -3
  119. package/src/Header/responsive-header.tsx +0 -145
  120. package/src/Icon/Icon.stories.jsx +0 -45
  121. package/src/Icon/image.tsx +0 -53
  122. package/src/Icon/index.tsx +0 -63
  123. package/src/Img/Img.stories.jsx +0 -17
  124. package/src/Img/index.jsx +0 -258
  125. package/src/InfoRow/InfoRow.stories.jsx +0 -14
  126. package/src/InfoRow/index.tsx +0 -91
  127. package/src/Layout/Layout.stories.jsx +0 -24
  128. package/src/Layout/dashboard/external-link.tsx +0 -59
  129. package/src/Layout/dashboard/full-page.tsx +0 -58
  130. package/src/Layout/dashboard/index.tsx +0 -260
  131. package/src/Layout/dashboard/sidebar.tsx +0 -198
  132. package/src/Layout/dashboard-legacy/header.tsx +0 -156
  133. package/src/Layout/dashboard-legacy/index.tsx +0 -127
  134. package/src/Layout/dashboard-legacy/sidebar.tsx +0 -129
  135. package/src/Layout/index.tsx +0 -310
  136. package/src/LoadingMask/index.tsx +0 -108
  137. package/src/Locale/LocaleSelector.stories.jsx +0 -44
  138. package/src/Locale/browser-lang.ts +0 -65
  139. package/src/Locale/context.tsx +0 -162
  140. package/src/Locale/languages.ts +0 -58
  141. package/src/Locale/selector.tsx +0 -174
  142. package/src/Locale/util.ts +0 -38
  143. package/src/Logo/Logo.stories.jsx +0 -23
  144. package/src/Logo/images/logo-dark-text.svg +0 -3
  145. package/src/Logo/images/logo-dark-top.svg +0 -6
  146. package/src/Logo/images/logo-light-text.svg +0 -3
  147. package/src/Logo/images/logo-light-top.svg +0 -6
  148. package/src/Logo/index.tsx +0 -58
  149. package/src/Metric/Metric.stories.jsx +0 -29
  150. package/src/Metric/index.tsx +0 -130
  151. package/src/MuiWrap/index.tsx +0 -10
  152. package/src/NFTDisplay/NFTBroken.svg +0 -34
  153. package/src/NFTDisplay/NFTDisplay.stories.jsx +0 -30
  154. package/src/NFTDisplay/README.md +0 -59
  155. package/src/NFTDisplay/aspect-ratio-container.tsx +0 -36
  156. package/src/NFTDisplay/broken.tsx +0 -51
  157. package/src/NFTDisplay/displayApi.ts +0 -43
  158. package/src/NFTDisplay/index.tsx +0 -393
  159. package/src/NFTDisplay/loading.tsx +0 -16
  160. package/src/NFTDisplay/preview.tsx +0 -84
  161. package/src/NFTDisplay/render-svg.tsx +0 -21
  162. package/src/NFTDisplay/svg-embedder/img.tsx +0 -27
  163. package/src/NFTDisplay/svg-embedder/inline-svg.tsx +0 -36
  164. package/src/NavMenu/NavMenu.stories.jsx +0 -17
  165. package/src/NavMenu/images/OCAP.svg +0 -1
  166. package/src/NavMenu/images/abt-network.svg +0 -1
  167. package/src/NavMenu/images/ai-kit.svg +0 -1
  168. package/src/NavMenu/images/aigne-image-smith.svg +0 -1
  169. package/src/NavMenu/images/aigne.svg +0 -1
  170. package/src/NavMenu/images/aistro.png +0 -0
  171. package/src/NavMenu/images/arcsphere.svg +0 -1
  172. package/src/NavMenu/images/blocklet-framework.svg +0 -1
  173. package/src/NavMenu/images/blocklet-launcher.svg +0 -1
  174. package/src/NavMenu/images/blocklet-server.svg +0 -1
  175. package/src/NavMenu/images/blocklet-store.svg +0 -1
  176. package/src/NavMenu/images/creator-studio.svg +0 -1
  177. package/src/NavMenu/images/did-wallet.svg +0 -1
  178. package/src/NavMenu/images/did.svg +0 -1
  179. package/src/NavMenu/images/nft-studio.svg +0 -1
  180. package/src/NavMenu/images/payment-kit.png +0 -0
  181. package/src/NavMenu/images/vc.svg +0 -1
  182. package/src/NavMenu/images/web3-kit.svg +0 -1
  183. package/src/NavMenu/index.ts +0 -3
  184. package/src/NavMenu/nav-menu-context.tsx +0 -30
  185. package/src/NavMenu/nav-menu.tsx +0 -441
  186. package/src/NavMenu/products.tsx +0 -830
  187. package/src/NavMenu/style.ts +0 -258
  188. package/src/NavMenu/sub-container.tsx +0 -125
  189. package/src/NavMenu/sub-item-group.tsx +0 -42
  190. package/src/OrgTransfer/index.tsx +0 -53
  191. package/src/OrgTransfer/locales.ts +0 -25
  192. package/src/OrgTransfer/selector.tsx +0 -252
  193. package/src/OrgTransfer/type.ts +0 -31
  194. package/src/PageScroller/index.tsx +0 -316
  195. package/src/PageScroller/story/FifthComponent.jsx +0 -7
  196. package/src/PageScroller/story/FirstComponent.jsx +0 -7
  197. package/src/PageScroller/story/FourthComponent.jsx +0 -7
  198. package/src/PageScroller/story/FullPage.jsx +0 -55
  199. package/src/PageScroller/story/PageContain.jsx +0 -59
  200. package/src/PageScroller/story/PageScroller.stories.jsx +0 -18
  201. package/src/PageScroller/story/SecondComponent.jsx +0 -7
  202. package/src/PageScroller/story/ThirdComponent.jsx +0 -7
  203. package/src/PageScroller/story/index.css +0 -115
  204. package/src/PageScroller/usePrevValue.ts +0 -11
  205. package/src/Passport/index.ts +0 -3
  206. package/src/Passport/passport.tsx +0 -118
  207. package/src/PhoneInput/PhoneInput.stories.jsx +0 -12
  208. package/src/PhoneInput/country-select.tsx +0 -148
  209. package/src/PhoneInput/index.tsx +0 -269
  210. package/src/PoweredByArcBlock/index.tsx +0 -27
  211. package/src/PricingTable/PricingPlan.tsx +0 -120
  212. package/src/PricingTable/PricingTable.stories.jsx +0 -38
  213. package/src/PricingTable/index.tsx +0 -59
  214. package/src/QRCode/QRCode.stories.jsx +0 -13
  215. package/src/QRCode/index.tsx +0 -66
  216. package/src/RelativeTime/RelativeTime.stories.jsx +0 -20
  217. package/src/RelativeTime/index.tsx +0 -334
  218. package/src/Result/Result.stories.jsx +0 -61
  219. package/src/Result/common.tsx +0 -119
  220. package/src/Result/index.tsx +0 -30
  221. package/src/Result/result.tsx +0 -65
  222. package/src/Result/translations.ts +0 -57
  223. package/src/Screenshot/BaseScreenshot/index.tsx +0 -73
  224. package/src/Screenshot/BaseScreenshot/shells/Macbook.tsx +0 -38
  225. package/src/Screenshot/BaseScreenshot/shells/Phone.tsx +0 -35
  226. package/src/Screenshot/Screenshot.stories.jsx +0 -44
  227. package/src/Screenshot/devices.css +0 -1366
  228. package/src/Screenshot/index.tsx +0 -300
  229. package/src/SessionBlocklet/index.tsx +0 -178
  230. package/src/SessionManager/SessionManager.stories.jsx +0 -9
  231. package/src/SessionManager/index.tsx +0 -3
  232. package/src/SessionPermission/index.tsx +0 -26
  233. package/src/SessionUser/components/did-space.tsx +0 -68
  234. package/src/SessionUser/components/logged-in.tsx +0 -338
  235. package/src/SessionUser/components/quick-login-item.tsx +0 -132
  236. package/src/SessionUser/components/session-user-item.tsx +0 -93
  237. package/src/SessionUser/components/session-user-switch.tsx +0 -240
  238. package/src/SessionUser/components/un-login.tsx +0 -257
  239. package/src/SessionUser/components/user-info.tsx +0 -201
  240. package/src/SessionUser/index.tsx +0 -68
  241. package/src/SessionUser/libs/translation.ts +0 -30
  242. package/src/SessionUser/libs/utils.ts +0 -39
  243. package/src/SharedBridge/index.tsx +0 -126
  244. package/src/SocialShare/index.tsx +0 -194
  245. package/src/Sparkline/Sparkline.stories.jsx +0 -13
  246. package/src/Sparkline/index.tsx +0 -231
  247. package/src/Spinner/Spinner.stories.jsx +0 -98
  248. package/src/Spinner/index.tsx +0 -20
  249. package/src/SplitButton/SplitButton.stories.jsx +0 -32
  250. package/src/SplitButton/index.tsx +0 -116
  251. package/src/SplitButton/useClickAway.tsx +0 -24
  252. package/src/Success/index.tsx +0 -175
  253. package/src/Switch/Switch.stories.jsx +0 -16
  254. package/src/Switch/index.jsx +0 -79
  255. package/src/Tabs/Tabs.stories.jsx +0 -18
  256. package/src/Tabs/index.tsx +0 -255
  257. package/src/Tag/Tag.stories.jsx +0 -15
  258. package/src/Tag/index.jsx +0 -106
  259. package/src/TextCollapse/TextCollapse.stories.jsx +0 -73
  260. package/src/TextCollapse/index.tsx +0 -85
  261. package/src/Theme/Theme.stories.jsx +0 -11
  262. package/src/Theme/index.ts +0 -21
  263. package/src/Theme/theme-provider.tsx +0 -374
  264. package/src/Theme/theme.ts +0 -229
  265. package/src/Toast/Toast.stories.jsx +0 -28
  266. package/src/Toast/index.tsx +0 -80
  267. package/src/Typography/index.tsx +0 -124
  268. package/src/UserCard/Cards/avatar-only.tsx +0 -27
  269. package/src/UserCard/Cards/basic-info.tsx +0 -43
  270. package/src/UserCard/Cards/index.tsx +0 -16
  271. package/src/UserCard/Cards/social-actions.tsx +0 -196
  272. package/src/UserCard/Container/card.tsx +0 -63
  273. package/src/UserCard/Container/dialog.tsx +0 -37
  274. package/src/UserCard/Content/basic.tsx +0 -330
  275. package/src/UserCard/Content/clock.tsx +0 -82
  276. package/src/UserCard/Content/minimal.tsx +0 -113
  277. package/src/UserCard/Content/shorten-label.tsx +0 -32
  278. package/src/UserCard/Content/tooltip-avatar.tsx +0 -80
  279. package/src/UserCard/UserCard.stories.jsx +0 -19
  280. package/src/UserCard/components.tsx +0 -81
  281. package/src/UserCard/index.tsx +0 -132
  282. package/src/UserCard/types.ts +0 -165
  283. package/src/UserCard/use-follow.tsx +0 -111
  284. package/src/UserCard/utils.ts +0 -155
  285. package/src/Util/WebWalletOpener.stories.jsx +0 -5
  286. package/src/Util/client.ts +0 -4
  287. package/src/Util/constant.ts +0 -70
  288. package/src/Util/deprecate.tsx +0 -29
  289. package/src/Util/federated.ts +0 -125
  290. package/src/Util/iframe.ts +0 -19
  291. package/src/Util/index.ts +0 -760
  292. package/src/Util/logger.ts +0 -44
  293. package/src/Util/passport.ts +0 -127
  294. package/src/Util/security.ts +0 -72
  295. package/src/Util/style.ts +0 -17
  296. package/src/Util/wallet.ts +0 -35
  297. package/src/VerificationCode/index.tsx +0 -83
  298. package/src/Video/Video.stories.jsx +0 -6
  299. package/src/Video/index.tsx +0 -70
  300. package/src/Wallet/Action.stories.jsx +0 -8
  301. package/src/Wallet/Action.tsx +0 -118
  302. package/src/Wallet/Download.stories.jsx +0 -9
  303. package/src/Wallet/Download.tsx +0 -157
  304. package/src/Wallet/Open.tsx +0 -47
  305. package/src/Wallet/OpenInWallet.stories.jsx +0 -5
  306. package/src/Wallet/images/abtwallet.png +0 -0
  307. package/src/Wallet/images/android_download.svg +0 -22
  308. package/src/Wallet/images/app-store.svg +0 -30
  309. package/src/Wallet/images/google-play.svg +0 -69
  310. package/src/WalletOSIcon/index.tsx +0 -47
  311. package/src/WebWalletSWKeeper/index.tsx +0 -117
  312. package/src/WechatPrompt/images/android.png +0 -0
  313. package/src/WechatPrompt/images/ios.png +0 -0
  314. package/src/WechatPrompt/index.tsx +0 -75
  315. package/src/global.d.ts +0 -28
  316. package/src/hooks/use-blocklet-logo.tsx +0 -32
  317. package/src/hooks/use-clock.tsx +0 -62
  318. package/src/hooks/use-location-state.tsx +0 -117
  319. package/src/hooks/use-mobile.tsx +0 -6
  320. package/src/index.ts +0 -79
  321. package/src/type.d.ts +0 -44
  322. package/src/withTheme/index.tsx +0 -72
  323. package/src/withTracker/README.md +0 -37
  324. package/src/withTracker/action/bind-wallet.tsx +0 -17
  325. package/src/withTracker/action/login.tsx +0 -18
  326. package/src/withTracker/action/pay.tsx +0 -14
  327. package/src/withTracker/action/switch-passport.tsx +0 -20
  328. package/src/withTracker/constant/index.tsx +0 -3
  329. package/src/withTracker/env.tsx +0 -1
  330. package/src/withTracker/error_boundary.jsx +0 -34
  331. package/src/withTracker/index.tsx +0 -50
  332. package/src/withTracker/libs/utm.ts +0 -46
  333. 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
- };