@arcblock/ux 2.10.35 → 2.10.37

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 (132) hide show
  1. package/lib/Address/compact-text.d.ts +27 -0
  2. package/lib/Address/did-address.d.ts +16 -0
  3. package/lib/Address/index.d.ts +15 -0
  4. package/lib/Address/responsive-did-address.d.ts +33 -0
  5. package/lib/AnimationWaiter/index.d.ts +54 -0
  6. package/lib/Async/index.d.ts +30 -0
  7. package/lib/BlockletContext/index.d.ts +31 -0
  8. package/lib/BlockletV2/blocklet.d.ts +18 -0
  9. package/lib/BlockletV2/blocklet.js +156 -0
  10. package/lib/BlockletV2/components/icon-text.d.ts +7 -0
  11. package/lib/BlockletV2/components/icon-text.js +30 -0
  12. package/lib/BlockletV2/index.d.ts +4 -0
  13. package/lib/BlockletV2/index.js +4 -0
  14. package/lib/BlockletV2/utils.d.ts +4 -0
  15. package/lib/BlockletV2/utils.js +71 -0
  16. package/lib/Button/wrap.js +2 -2
  17. package/lib/ButtonGroup/index.d.ts +2 -0
  18. package/lib/CardSelector/index.d.ts +34 -0
  19. package/lib/Center/index.d.ts +18 -0
  20. package/lib/ClickToCopy/copy-button.d.ts +27 -0
  21. package/lib/ClickToCopy/hook.d.ts +9 -0
  22. package/lib/ClickToCopy/index.d.ts +32 -0
  23. package/lib/CodeBlock/LightBox.d.ts +5 -0
  24. package/lib/CodeBlock/index.d.ts +27 -0
  25. package/lib/ContactForm/index.d.ts +41 -0
  26. package/lib/CookieConsent/index.d.ts +34 -0
  27. package/lib/CountDown/index.d.ts +30 -0
  28. package/lib/DID/index.d.ts +23 -0
  29. package/lib/DidLogo/index.d.ts +26 -0
  30. package/lib/DriftBot/index.d.ts +24 -0
  31. package/lib/Earth/index.d.ts +2 -0
  32. package/lib/Earth/util.d.ts +7 -0
  33. package/lib/ErrorBoundary/fallback.d.ts +21 -0
  34. package/lib/ErrorBoundary/index.d.ts +1 -0
  35. package/lib/Footer/index.d.ts +27 -0
  36. package/lib/Header/auto-hidden.d.ts +14 -0
  37. package/lib/Header/header.d.ts +55 -0
  38. package/lib/Header/index.d.ts +2 -0
  39. package/lib/Header/responsive-header.d.ts +29 -0
  40. package/lib/Icon/image.d.ts +37 -0
  41. package/lib/InfoRow/index.d.ts +33 -0
  42. package/lib/Layout/dashboard/external-link.d.ts +15 -0
  43. package/lib/Layout/dashboard/full-page.d.ts +12 -0
  44. package/lib/Layout/dashboard/index.d.ts +40 -0
  45. package/lib/Layout/dashboard/sidebar.d.ts +21 -0
  46. package/lib/Layout/dashboard-legacy/header.d.ts +37 -0
  47. package/lib/Layout/dashboard-legacy/index.d.ts +57 -0
  48. package/lib/Layout/dashboard-legacy/sidebar.d.ts +27 -0
  49. package/lib/Layout/index.d.ts +57 -0
  50. package/lib/LoadingMask/index.d.ts +32 -0
  51. package/lib/Locale/browser-lang.d.ts +2 -0
  52. package/lib/Locale/context.d.ts +39 -0
  53. package/lib/Locale/languages.d.ts +57 -0
  54. package/lib/Locale/selector.d.ts +27 -0
  55. package/lib/Locale/util.d.ts +3 -0
  56. package/lib/Metric/index.d.ts +32 -0
  57. package/lib/MuiWrap/index.d.ts +3 -2
  58. package/lib/NFTDisplay/aspect-ratio-container.d.ts +13 -0
  59. package/lib/NFTDisplay/broken.d.ts +14 -0
  60. package/lib/NFTDisplay/displayApi.d.ts +2 -0
  61. package/lib/NFTDisplay/index.d.ts +12 -0
  62. package/lib/NFTDisplay/loading.d.ts +1 -0
  63. package/lib/NFTDisplay/svg-embedder/img.d.ts +24 -0
  64. package/lib/NFTDisplay/svg-embedder/inline-svg.d.ts +14 -0
  65. package/lib/NavMenu/index.d.ts +1 -0
  66. package/lib/NavMenu/nav-menu.d.ts +56 -0
  67. package/lib/NavMenu/style.d.ts +2 -0
  68. package/lib/PageScroller/index.d.ts +2 -0
  69. package/lib/PageScroller/story/FifthComponent.d.ts +1 -0
  70. package/lib/PageScroller/story/FirstComponent.d.ts +1 -0
  71. package/lib/PageScroller/story/FourthComponent.d.ts +1 -0
  72. package/lib/PageScroller/story/FullPage.d.ts +1 -0
  73. package/lib/PageScroller/story/PageContain.d.ts +1 -0
  74. package/lib/PageScroller/story/SecondComponent.d.ts +1 -0
  75. package/lib/PageScroller/story/ThirdComponent.d.ts +1 -0
  76. package/lib/PageScroller/usePrevValue.d.ts +1 -0
  77. package/lib/Passport/index.d.ts +2 -0
  78. package/lib/Passport/passport.d.ts +31 -0
  79. package/lib/PoweredByArcBlock/index.d.ts +15 -0
  80. package/lib/PricingTable/PricingPlan.d.ts +10 -0
  81. package/lib/PricingTable/index.d.ts +2 -0
  82. package/lib/QRCode/index.d.ts +23 -0
  83. package/lib/RelativeTime/index.d.ts +41 -0
  84. package/lib/Result/common.d.ts +52 -0
  85. package/lib/Result/index.d.ts +19 -0
  86. package/lib/Result/result.d.ts +30 -0
  87. package/lib/Result/translations.d.ts +55 -0
  88. package/lib/Screenshot/BaseScreenshot/index.d.ts +25 -0
  89. package/lib/Screenshot/BaseScreenshot/shells/Macbook.d.ts +21 -0
  90. package/lib/Screenshot/BaseScreenshot/shells/Phone.d.ts +21 -0
  91. package/lib/Screenshot/index.d.ts +29 -0
  92. package/lib/SessionBlocklet/index.d.ts +20 -0
  93. package/lib/SessionManager/index.d.ts +2 -0
  94. package/lib/SessionPermission/index.d.ts +18 -0
  95. package/lib/SessionUser/components/logged-in.d.ts +32 -0
  96. package/lib/SessionUser/components/session-user-item.d.ts +2 -0
  97. package/lib/SessionUser/components/session-user-switch.d.ts +22 -0
  98. package/lib/SessionUser/components/un-login.d.ts +24 -0
  99. package/lib/SessionUser/components/user-info.d.ts +30 -0
  100. package/lib/SessionUser/index.d.ts +31 -0
  101. package/lib/SessionUser/libs/translation.d.ts +31 -0
  102. package/lib/SessionUser/libs/utils.d.ts +9 -0
  103. package/lib/Sparkline/index.d.ts +1 -0
  104. package/lib/Spinner/index.d.ts +2 -0
  105. package/lib/SplitButton/index.d.ts +2 -1
  106. package/lib/SplitButton/index.js +1 -1
  107. package/lib/Success/index.d.ts +22 -0
  108. package/lib/Tabs/index.d.ts +27 -0
  109. package/lib/TextCollapse/index.d.ts +2 -0
  110. package/lib/Typography/index.d.ts +25 -0
  111. package/lib/Util/federated.d.ts +61 -0
  112. package/lib/Util/passport.d.ts +33 -0
  113. package/lib/Util/wallet.d.ts +3 -0
  114. package/lib/Video/index.d.ts +19 -0
  115. package/lib/Wallet/Action.d.ts +21 -0
  116. package/lib/Wallet/Download.d.ts +33 -0
  117. package/lib/Wallet/Open.d.ts +16 -0
  118. package/lib/WalletOSIcon/index.d.ts +26 -0
  119. package/lib/WebWalletSWKeeper/index.d.ts +21 -0
  120. package/lib/WechatPrompt/index.d.ts +1 -0
  121. package/lib/index.d.ts +36 -0
  122. package/lib/withTheme/index.d.ts +7 -0
  123. package/lib/withTracker/error_boundary.d.ts +9 -0
  124. package/lib/withTracker/index.d.ts +2 -0
  125. package/package.json +10 -7
  126. package/src/BlockletV2/blocklet.tsx +130 -0
  127. package/src/BlockletV2/components/icon-text.tsx +29 -0
  128. package/src/BlockletV2/index.ts +5 -0
  129. package/src/BlockletV2/utils.js +75 -0
  130. package/src/Button/wrap.js +9 -5
  131. package/src/MuiWrap/index.tsx +3 -2
  132. package/src/SplitButton/index.tsx +2 -2
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 紧凑文本组件 (显示首尾, 中间截断显示省略号), 仅考虑等宽字体的情况
3
+ */
4
+ declare function CompactText({ startChars, endChars, children, showCopyButtonInTooltip }: {
5
+ startChars: any;
6
+ endChars: any;
7
+ children: any;
8
+ showCopyButtonInTooltip: any;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ declare namespace CompactText {
11
+ namespace propTypes {
12
+ let startChars: PropTypes.Requireable<number>;
13
+ let endChars: PropTypes.Requireable<number>;
14
+ let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
15
+ let showCopyButtonInTooltip: PropTypes.Requireable<boolean>;
16
+ }
17
+ namespace defaultProps {
18
+ let startChars_1: number;
19
+ export { startChars_1 as startChars };
20
+ let endChars_1: number;
21
+ export { endChars_1 as endChars };
22
+ let showCopyButtonInTooltip_1: boolean;
23
+ export { showCopyButtonInTooltip_1 as showCopyButtonInTooltip };
24
+ }
25
+ }
26
+ export default CompactText;
27
+ import PropTypes from 'prop-types';
@@ -0,0 +1,16 @@
1
+ export default DidAddress;
2
+ /**
3
+ * DidAddress 组件 (新版设计)
4
+ *
5
+ * - 样式调整
6
+ * - click-to-copy 调整
7
+ * - 长文本截断处理 (Ellipsis)
8
+ * - 支持 inline 或 block 的显示方式
9
+ * - 支持紧凑模式, 该模式下:
10
+ * - 占用宽度较小, 因此不考虑水平空间不够用的情况, 且忽略末尾省略号
11
+ * - 对于多层元素结构的 children, 保持元素结构, 将最内层 text 替换为 CompactText 组件
12
+ * - 为保证 copy 功能正常工作, 原 children 始终渲染, 但在紧凑式下会隐藏
13
+ * - 可配合 useMediaQuery 使用
14
+ */
15
+ declare const DidAddress: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
16
+ import React from 'react';
@@ -0,0 +1,15 @@
1
+ declare function DidAddressWrapper({ responsive, ...rest }: {
2
+ [x: string]: any;
3
+ responsive: any;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ declare namespace DidAddressWrapper {
6
+ namespace propTypes {
7
+ let responsive: PropTypes.Requireable<boolean>;
8
+ }
9
+ namespace defaultProps {
10
+ let responsive_1: boolean;
11
+ export { responsive_1 as responsive };
12
+ }
13
+ }
14
+ export default DidAddressWrapper;
15
+ import PropTypes from 'prop-types';
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 根据父容器宽度自动切换 compact 模式
3
+ *
4
+ * 实现逻辑:
5
+ * - DidAddress 外层包裹一个容器, 其宽度自动撑满父容器宽度 (即这个容器需要是块级元素或 100% 宽的 inline-block)
6
+ * - DidAddress 本身以 inline 形式渲染 (方便探测 did-address 的 full-width)
7
+ * - 组件 mounted 时记录 did address 的 full-width (非 compact 模式的宽度)
8
+ * - 监听容器宽度变化, 当容器宽度变化时, 对比容器宽度和 did address full-width, => 切换 compact 模式
9
+ * - TODO: 初始化时, 在确定是否应该以 compact 模式渲染前, 隐藏显示, 避免闪烁问题
10
+ */
11
+ declare function ResponsiveDidAddress({ style, className, component, ...rest }: {
12
+ [x: string]: any;
13
+ style: any;
14
+ className: any;
15
+ component: any;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace ResponsiveDidAddress {
18
+ namespace propTypes {
19
+ let style: PropTypes.Requireable<object>;
20
+ let className: PropTypes.Requireable<string>;
21
+ let component: PropTypes.Requireable<string>;
22
+ }
23
+ namespace defaultProps {
24
+ let style_1: {};
25
+ export { style_1 as style };
26
+ let className_1: string;
27
+ export { className_1 as className };
28
+ let component_1: string;
29
+ export { component_1 as component };
30
+ }
31
+ }
32
+ export default ResponsiveDidAddress;
33
+ import PropTypes from 'prop-types';
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 用于长时间等待的用的动画组件
3
+ * 动画会随着时间的变化而逐步加快播放速度,好适应用户的等待心理
4
+ * @param {Object} animationData lottie json 动画数据
5
+ * @param {Number} size 动画的尺寸,单位px
6
+ * @param {String|Array} message 动画下方的文字;数组情况下会在一定时间切换文案
7
+ * @param {Number} messageDuration 动画下方的文字为数组时,每个文案的持续时间;默认5000ms
8
+ * @param {Number} messageLoop 动画下方的文字为数组时,文案是否循环播放
9
+ * @param {Array} tips 底部的提示元素
10
+ * @param {Number} tipsDuration 底部提示的切换时间,单位毫秒,默认3000ms
11
+ * @param {Number} speed 动画默认的播放速度
12
+ * @param {Number} maybeDuration 整个动画大概的持续时间,单位毫秒,用于计算增量下的动画速度,默认两分钟(120000ms)
13
+ * @param {Number} increaseSpeed 在 maybeDuration 时间下增加的速度,默认为0(不增加速度)
14
+ * @returns element
15
+ */
16
+ declare function AnimationWaiter({ animationData, size, message, messageDuration, messageLoop, tips, tipsDuration, maybeDuration, speed, increaseSpeed, ...rest }: Object): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace AnimationWaiter {
18
+ namespace propTypes {
19
+ let animationData: PropTypes.Requireable<any>;
20
+ let size: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
21
+ let message: PropTypes.Requireable<any>;
22
+ let messageDuration: PropTypes.Requireable<number>;
23
+ let messageLoop: PropTypes.Requireable<boolean>;
24
+ let tips: PropTypes.Requireable<any[]>;
25
+ let tipsDuration: PropTypes.Requireable<number>;
26
+ let speed: PropTypes.Requireable<number>;
27
+ let maybeDuration: PropTypes.Requireable<number>;
28
+ let increaseSpeed: PropTypes.Requireable<number>;
29
+ }
30
+ namespace defaultProps {
31
+ let animationData_1: null;
32
+ export { animationData_1 as animationData };
33
+ let size_1: string;
34
+ export { size_1 as size };
35
+ let message_1: string;
36
+ export { message_1 as message };
37
+ let messageDuration_1: number;
38
+ export { messageDuration_1 as messageDuration };
39
+ let messageLoop_1: boolean;
40
+ export { messageLoop_1 as messageLoop };
41
+ let tips_1: never[];
42
+ export { tips_1 as tips };
43
+ let tipsDuration_1: number;
44
+ export { tipsDuration_1 as tipsDuration };
45
+ let speed_1: number;
46
+ export { speed_1 as speed };
47
+ let maybeDuration_1: number;
48
+ export { maybeDuration_1 as maybeDuration };
49
+ let increaseSpeed_1: number;
50
+ export { increaseSpeed_1 as increaseSpeed };
51
+ }
52
+ }
53
+ export default AnimationWaiter;
54
+ import PropTypes from 'prop-types';
@@ -0,0 +1,30 @@
1
+ export default function LoadAsyncComponent(importComponent: any, key?: string, showProgress?: boolean): {
2
+ new (props: any): {
3
+ state: {
4
+ Component: null;
5
+ error: null;
6
+ };
7
+ componentDidMount(): void;
8
+ render(): import("react/jsx-runtime").JSX.Element | null;
9
+ context: unknown;
10
+ setState<K extends string | number | symbol>(state: any, callback?: (() => void) | undefined): void;
11
+ forceUpdate(callback?: (() => void) | undefined): void;
12
+ readonly props: Readonly<any>;
13
+ refs: {
14
+ [key: string]: React.ReactInstance;
15
+ };
16
+ shouldComponentUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): boolean;
17
+ componentWillUnmount?(): void;
18
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
19
+ getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>): any;
20
+ componentDidUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>, snapshot?: any): void;
21
+ componentWillMount?(): void;
22
+ UNSAFE_componentWillMount?(): void;
23
+ componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
24
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
25
+ componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
26
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
27
+ };
28
+ contextType?: React.Context<any> | undefined;
29
+ };
30
+ import * as React from 'react';
@@ -0,0 +1,31 @@
1
+ export const BlockletContext: import("react").Context<any>;
2
+ /**
3
+ *
4
+ * @param {object} props
5
+ * @param {string} props.baseUrl baseUrl 为 blocklet origin + blocklet prefix
6
+ * @param {any} props.children
7
+ * @returns
8
+ */
9
+ export function BlockletProvider({ children, baseUrl, loading }: {
10
+ baseUrl: string;
11
+ children: any;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export namespace BlockletProvider {
14
+ namespace propTypes {
15
+ let baseUrl: PropTypes.Requireable<string>;
16
+ let children: PropTypes.Validator<any>;
17
+ let loading: PropTypes.Requireable<any>;
18
+ }
19
+ namespace defaultProps {
20
+ let baseUrl_1: string;
21
+ export { baseUrl_1 as baseUrl };
22
+ let loading_1: null;
23
+ export { loading_1 as loading };
24
+ }
25
+ }
26
+ declare const Consumer: import("react").Consumer<any>;
27
+ export function useBlockletContext(): {
28
+ blocklet: any;
29
+ };
30
+ import PropTypes from 'prop-types';
31
+ export { Consumer as BlockletConsumer };
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface IBlockletStore extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'title' | 'className'> {
3
+ did?: string;
4
+ title: string;
5
+ description?: string;
6
+ cover?: string;
7
+ avatar: string;
8
+ author: string;
9
+ download: string;
10
+ button?: React.ReactNode;
11
+ buttonText?: string;
12
+ buttonDisabled?: boolean;
13
+ buttonLoading?: boolean;
14
+ onButtonClick?: Function;
15
+ onMainClick?: Function;
16
+ className?: string;
17
+ }
18
+ export default function BlockletStore(props: IBlockletStore): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,156 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { isValidElement } from 'react';
3
+ import Download from '@iconify-icons/tabler/cloud-download';
4
+ import { Icon } from '@iconify/react';
5
+ import { Card, CardContent, CircularProgress, Stack, Typography } from '@mui/material';
6
+ import Avatar from '../Avatar';
7
+ import Button from '../Button';
8
+ import { useTheme } from '../Theme';
9
+ import IconText from './components/icon-text';
10
+ import { formatDownloadCount, strippedString } from './utils';
11
+ export default function BlockletStore(props) {
12
+ const {
13
+ title,
14
+ description = '',
15
+ cover = '',
16
+ avatar,
17
+ author,
18
+ download,
19
+ did,
20
+ buttonText = 'Install',
21
+ buttonDisabled,
22
+ buttonLoading,
23
+ button,
24
+ onButtonClick = () => {},
25
+ onMainClick,
26
+ className,
27
+ ref,
28
+ ...rest
29
+ } = props;
30
+ const theme = useTheme();
31
+ const wrapHandler = (handler, stopFn = () => false) => (e, ...args) => {
32
+ const isFunction = handler instanceof Function;
33
+ if (stopFn() || isFunction) {
34
+ e.preventDefault();
35
+ e.stopPropagation();
36
+ if (isFunction) {
37
+ handler(...args);
38
+ }
39
+ }
40
+ };
41
+ const handleMainClick = onMainClick && wrapHandler(onMainClick);
42
+ const handleButtonClick = wrapHandler(onButtonClick, () => {
43
+ // stop click while custom button or buttonDisabled or buttonLoading
44
+ return !!(button || buttonDisabled || buttonLoading);
45
+ });
46
+ const titleProps = /*#__PURE__*/isValidElement(title) ? {
47
+ children: title
48
+ } : {
49
+ title: strippedString(title),
50
+ dangerouslySetInnerHTML: {
51
+ __html: title
52
+ }
53
+ };
54
+ const descriptionProps = /*#__PURE__*/isValidElement(description) ? {
55
+ children: description
56
+ } : {
57
+ title: strippedString(description),
58
+ dangerouslySetInnerHTML: {
59
+ __html: description
60
+ }
61
+ };
62
+ return /*#__PURE__*/_jsxs(Card, {
63
+ variant: "outlined",
64
+ sx: {
65
+ borderRadius: 2
66
+ },
67
+ onClick: handleMainClick,
68
+ ...rest,
69
+ children: [/*#__PURE__*/_jsx(CardContent, {
70
+ sx: {
71
+ display: 'flex',
72
+ justifyContent: 'space-between'
73
+ },
74
+ children: /*#__PURE__*/_jsxs(Stack, {
75
+ flex: 1,
76
+ direction: "row",
77
+ gap: 2,
78
+ alignItems: "center",
79
+ overflow: "hidden",
80
+ children: [/*#__PURE__*/_jsx(Avatar, {
81
+ src: cover,
82
+ did: did,
83
+ size: 40,
84
+ variant: "rounded"
85
+ }), /*#__PURE__*/_jsx(Typography, {
86
+ flex: 1,
87
+ component: "h6",
88
+ variant: "h6",
89
+ sx: {
90
+ textOverflow: 'ellipsis',
91
+ whiteSpace: 'nowrap',
92
+ overflow: 'hidden'
93
+ },
94
+ ...titleProps
95
+ }), button || onButtonClick && /*#__PURE__*/_jsxs(Button, {
96
+ color: "reverse",
97
+ variant: "outlined",
98
+ size: "small",
99
+ disabled: buttonDisabled || buttonLoading,
100
+ style: {
101
+ borderColor: theme.palette.grey[300],
102
+ borderRadius: 8
103
+ },
104
+ onClick: handleButtonClick,
105
+ children: [buttonLoading && /*#__PURE__*/_jsx(CircularProgress, {
106
+ size: 15,
107
+ style: {
108
+ marginRight: 3,
109
+ color: 'inherit'
110
+ }
111
+ }), buttonText]
112
+ })]
113
+ })
114
+ }), /*#__PURE__*/_jsx(CardContent, {
115
+ sx: {
116
+ py: 0
117
+ },
118
+ children: /*#__PURE__*/_jsx(Typography, {
119
+ component: "div",
120
+ variant: "body2",
121
+ color: "text.secondary",
122
+ sx: {
123
+ lineClamp: 2,
124
+ display: '-webkit-box',
125
+ WebkitLineClamp: 2,
126
+ WebkitBoxOrient: 'vertical',
127
+ overflow: 'hidden',
128
+ height: 40
129
+ },
130
+ ...descriptionProps
131
+ })
132
+ }), /*#__PURE__*/_jsxs(CardContent, {
133
+ sx: {
134
+ display: 'flex',
135
+ alignItems: 'center',
136
+ gap: 4,
137
+ color: 'grey.800'
138
+ },
139
+ children: [/*#__PURE__*/_jsx(IconText, {
140
+ icon: /*#__PURE__*/_jsx(Avatar, {
141
+ src: avatar,
142
+ did: did,
143
+ size: 20,
144
+ variant: "circle"
145
+ }),
146
+ children: author
147
+ }), /*#__PURE__*/_jsx(IconText, {
148
+ icon: /*#__PURE__*/_jsx(Icon, {
149
+ icon: Download
150
+ }),
151
+ title: download,
152
+ children: formatDownloadCount(download)
153
+ })]
154
+ })]
155
+ });
156
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export default function IconText({ icon, children, maxWidth, title, }: {
3
+ icon?: React.ReactNode;
4
+ children?: React.ReactNode;
5
+ maxWidth?: number;
6
+ title?: string;
7
+ }): false | "" | 0 | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Stack, Typography } from '@mui/material';
3
+ import React from 'react';
4
+ export default function IconText({
5
+ icon,
6
+ children,
7
+ maxWidth = 100,
8
+ title
9
+ }) {
10
+ return children && /*#__PURE__*/_jsxs(Stack, {
11
+ direction: "row",
12
+ alignItems: "center",
13
+ gap: 1,
14
+ sx: {
15
+ maxWidth,
16
+ overflow: 'hidden'
17
+ },
18
+ children: [icon, /*#__PURE__*/_jsx(Typography, {
19
+ flex: 1,
20
+ variant: "body2",
21
+ sx: {
22
+ overflow: 'hidden',
23
+ textOverflow: 'ellipsis',
24
+ whiteSpace: 'nowrap'
25
+ },
26
+ title: title || (typeof children === 'string' ? children : undefined),
27
+ children: children
28
+ })]
29
+ });
30
+ }
@@ -0,0 +1,4 @@
1
+ import ActionButton, { strippedString } from './utils';
2
+ import Blocklet from './blocklet';
3
+ export { ActionButton, strippedString };
4
+ export default Blocklet;
@@ -0,0 +1,4 @@
1
+ import ActionButton, { strippedString } from './utils';
2
+ import Blocklet from './blocklet';
3
+ export { ActionButton, strippedString };
4
+ export default Blocklet;
@@ -0,0 +1,4 @@
1
+ export default ActionButton;
2
+ export function strippedString(originalString?: string): string;
3
+ export function formatDownloadCount(num?: string): string | number;
4
+ declare const ActionButton: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,71 @@
1
+ import { styled } from '../Theme';
2
+ const ActionButton = styled('div')`
3
+ background-color: transparent !important;
4
+ & > :not(.Mui-disabled) {
5
+ position: relative;
6
+ z-index: 1;
7
+ &::before {
8
+ content: '';
9
+ position: absolute;
10
+ height: 100%;
11
+ width: 100%;
12
+ left: 0;
13
+ top: 0;
14
+ transition: opacity 0.3s;
15
+ }
16
+ &:hover::before {
17
+ opacity: 0;
18
+ }
19
+ &::after {
20
+ content: '';
21
+ position: absolute;
22
+ height: 100%;
23
+ width: 100%;
24
+ top: 0;
25
+ left: 0;
26
+ border-radius: 2px;
27
+ background-color: ${props => props.theme.palette.primary.main};
28
+ transform: scale(0.1);
29
+ opacity: 0;
30
+ z-index: -1;
31
+ transition:
32
+ transform 0.3s,
33
+ opacity 0.3s,
34
+ background-color 0.3s;
35
+ }
36
+ &:hover::after {
37
+ opacity: 1;
38
+ transform-origin: center;
39
+ transform: scale(1);
40
+ }
41
+ }
42
+ & > :not(.Mui-disabled) {
43
+ background-color: transparent !important;
44
+ color: ${props => props.theme.palette.primary.main}!important;
45
+ }
46
+ & > :not(.Mui-disabled) {
47
+ &:hover {
48
+ color: ${props => props.theme.palette.common.white}!important;
49
+ }
50
+ }
51
+ `;
52
+ export default ActionButton;
53
+ export const strippedString = (originalString = '') => {
54
+ return originalString.replace(/(<([^>]+)>)/gi, '').trim();
55
+ };
56
+ export const formatDownloadCount = (num = '') => {
57
+ const n = parseInt(num, 10);
58
+ if (Number.isNaN(n)) {
59
+ return num;
60
+ }
61
+ if (n < 1000) {
62
+ return n;
63
+ }
64
+ if (n < 1000000) {
65
+ return `${(n / 1000).toFixed(1)}k`;
66
+ }
67
+ if (n < 1000000000) {
68
+ return `${(n / 1000000).toFixed(1)}m`;
69
+ }
70
+ return `${(n / 1000000000).toFixed(1)}b`;
71
+ };
@@ -90,11 +90,11 @@ export default function (BaseComponent) {
90
90
  /**
91
91
  * @type {import('react').CSSProperties}
92
92
  */
93
- const styles = Object.assign({}, style, {
93
+ const styles = Object.assign({}, {
94
94
  boxShadow: 'none',
95
95
  textTransform: 'capitalize',
96
96
  ...matched
97
- });
97
+ }, style);
98
98
  let _rest = rest;
99
99
  if (!matched) {
100
100
  // mui button 本身支持的 color 交由 mui 处理
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../Button/wrap").ButtonComponent;
2
+ export default _default;
@@ -0,0 +1,34 @@
1
+ declare function CardSelector({ list, width, height, cardSpace, onSelect, defaultIndex }: {
2
+ list: any;
3
+ width: any;
4
+ height: any;
5
+ cardSpace: any;
6
+ onSelect: any;
7
+ defaultIndex: any;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace CardSelector {
10
+ namespace propTypes {
11
+ let list: PropTypes.Requireable<any[]>;
12
+ let width: PropTypes.Requireable<number>;
13
+ let height: PropTypes.Requireable<number>;
14
+ let cardSpace: PropTypes.Requireable<number>;
15
+ let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
16
+ let defaultIndex: PropTypes.Requireable<number>;
17
+ }
18
+ namespace defaultProps {
19
+ let list_1: string;
20
+ export { list_1 as list };
21
+ let width_1: number;
22
+ export { width_1 as width };
23
+ let height_1: number;
24
+ export { height_1 as height };
25
+ let cardSpace_1: number;
26
+ export { cardSpace_1 as cardSpace };
27
+ export { noop as onSelect };
28
+ let defaultIndex_1: number;
29
+ export { defaultIndex_1 as defaultIndex };
30
+ }
31
+ }
32
+ export default CardSelector;
33
+ import PropTypes from 'prop-types';
34
+ import noop from 'lodash/noop';
@@ -0,0 +1,18 @@
1
+ /**
2
+ *
3
+ * @param {string} relative 容器相对尺寸,默认相对屏幕(screen),可设置为父容器(parent)
4
+ * @returns react component element
5
+ */
6
+ declare function Center({ children, relative }: string): import("react/jsx-runtime").JSX.Element;
7
+ declare namespace Center {
8
+ namespace propTypes {
9
+ let children: PropTypes.Validator<any>;
10
+ let relative: PropTypes.Requireable<string>;
11
+ }
12
+ namespace defaultProps {
13
+ let relative_1: string;
14
+ export { relative_1 as relative };
15
+ }
16
+ }
17
+ export default Center;
18
+ import PropTypes from 'prop-types';
@@ -0,0 +1,27 @@
1
+ declare function CopyButton({ content, locale, render, showTooltip, ...rest }: {
2
+ [x: string]: any;
3
+ content: any;
4
+ locale: any;
5
+ render: any;
6
+ showTooltip: any;
7
+ }): any;
8
+ declare namespace CopyButton {
9
+ namespace propTypes {
10
+ let content: PropTypes.Requireable<string>;
11
+ let locale: PropTypes.Requireable<string>;
12
+ let render: PropTypes.Requireable<(...args: any[]) => any>;
13
+ let showTooltip: PropTypes.Requireable<boolean>;
14
+ }
15
+ namespace defaultProps {
16
+ let content_1: string;
17
+ export { content_1 as content };
18
+ let locale_1: string;
19
+ export { locale_1 as locale };
20
+ let render_1: undefined;
21
+ export { render_1 as render };
22
+ let showTooltip_1: boolean;
23
+ export { showTooltip_1 as showTooltip };
24
+ }
25
+ }
26
+ export default CopyButton;
27
+ import PropTypes from 'prop-types';
@@ -0,0 +1,9 @@
1
+ export default function useCopy({ content, locale }: {
2
+ content: any;
3
+ locale?: string | undefined;
4
+ }): {
5
+ containerRef: import("react").MutableRefObject<undefined>;
6
+ copied: boolean;
7
+ copy: (e: any) => void;
8
+ texts: any;
9
+ };
@@ -0,0 +1,32 @@
1
+ declare function ClickToCopy(props: any): import("react/jsx-runtime").JSX.Element;
2
+ declare namespace ClickToCopy {
3
+ namespace propTypes {
4
+ let children: PropTypes.Validator<any>;
5
+ let content: PropTypes.Requireable<string>;
6
+ let tip: PropTypes.Requireable<string>;
7
+ let tipPlacement: PropTypes.Requireable<string>;
8
+ let copiedTip: PropTypes.Requireable<string>;
9
+ let locale: PropTypes.Requireable<string>;
10
+ let style: PropTypes.Requireable<object>;
11
+ let unstyled: PropTypes.Requireable<boolean>;
12
+ }
13
+ namespace defaultProps {
14
+ let content_1: string;
15
+ export { content_1 as content };
16
+ let tip_1: string;
17
+ export { tip_1 as tip };
18
+ let copiedTip_1: string;
19
+ export { copiedTip_1 as copiedTip };
20
+ let tipPlacement_1: string;
21
+ export { tipPlacement_1 as tipPlacement };
22
+ let locale_1: string;
23
+ export { locale_1 as locale };
24
+ let style_1: {};
25
+ export { style_1 as style };
26
+ let unstyled_1: boolean;
27
+ export { unstyled_1 as unstyled };
28
+ }
29
+ }
30
+ export default ClickToCopy;
31
+ export { default as CopyButton } from "./copy-button";
32
+ import PropTypes from 'prop-types';
@@ -0,0 +1,5 @@
1
+ export default LightBox;
2
+ declare const LightBox: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme;
4
+ as?: import("react").ElementType;
5
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;