@arcblock/ux 2.10.24 → 2.10.25
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.
- package/babel.config.es.js +1 -0
- package/lib/ActionButton/index.js +1 -1
- package/lib/ActivityIndicator/index.d.ts +34 -0
- package/lib/ActivityIndicator/index.js +1 -1
- package/lib/Address/compact-text.js +1 -1
- package/lib/Address/did-address.js +1 -1
- package/lib/Address/index.js +1 -1
- package/lib/Address/responsive-did-address.js +1 -1
- package/lib/Alert/index.d.ts +12 -0
- package/lib/Alert/index.js +1 -1
- package/lib/AnimationWaiter/index.js +1 -1
- package/lib/Async/index.js +1 -1
- package/lib/Avatar/did-motif.d.ts +29 -0
- package/lib/Avatar/did-motif.js +1 -1
- package/lib/Avatar/etherscan-blockies.d.ts +5 -0
- package/lib/Avatar/index.d.ts +64 -0
- package/lib/Avatar/index.js +1 -1
- package/lib/Badge/index.d.ts +12 -0
- package/lib/Badge/index.js +1 -1
- package/lib/Blocklet/blocklet.d.ts +84 -0
- package/lib/Blocklet/blocklet.js +1 -1
- package/lib/Blocklet/index.d.ts +5 -0
- package/lib/Blocklet/utils.d.ts +3 -0
- package/lib/BlockletContext/index.js +1 -1
- package/lib/BlockletNFT/index.js +1 -1
- package/lib/Button/index.d.ts +3 -0
- package/lib/Button/wrap.d.ts +27 -0
- package/lib/Button/wrap.js +4 -3
- package/lib/CardSelector/index.js +1 -1
- package/lib/Center/index.js +1 -1
- package/lib/ClickToCopy/copy-button.js +1 -1
- package/lib/ClickToCopy/index.js +1 -1
- package/lib/CodeBlock/index.js +1 -1
- package/lib/Colors/index.d.ts +2 -0
- package/lib/Colors/themes/default.d.ts +76 -0
- package/lib/Colors/themes/temp.d.ts +36 -0
- package/lib/ContactForm/index.js +1 -1
- package/lib/CookieConsent/index.js +1 -1
- package/lib/CountDown/index.js +1 -1
- package/lib/DID/index.js +1 -1
- package/lib/Datatable/CustomToolbar.d.ts +37 -0
- package/lib/Datatable/CustomToolbar.js +1 -1
- package/lib/Datatable/DatatableContext.d.ts +4 -0
- package/lib/Datatable/DatatableContext.js +1 -1
- package/lib/Datatable/TableSearch.d.ts +28 -0
- package/lib/Datatable/TableSearch.js +1 -1
- package/lib/Datatable/index.d.ts +53 -0
- package/lib/Datatable/index.js +11 -3
- package/lib/Datatable/utils.d.ts +5 -0
- package/lib/Dialog/confirm.d.ts +86 -0
- package/lib/Dialog/confirm.js +23 -13
- package/lib/Dialog/dialog.d.ts +115 -0
- package/lib/Dialog/dialog.js +12 -7
- package/lib/Dialog/index.d.ts +3 -0
- package/lib/Dialog/use-confirm.d.ts +8 -0
- package/lib/Dialog/use-confirm.js +1 -1
- package/lib/DidLogo/index.js +1 -1
- package/lib/Earth/index.js +1 -1
- package/lib/Empty/index.d.ts +39 -0
- package/lib/Empty/index.js +1 -1
- package/lib/ErrorBoundary/fallback.js +1 -1
- package/lib/Footer/index.js +1 -1
- package/lib/Header/auto-hidden.js +1 -1
- package/lib/Header/header.js +1 -1
- package/lib/Header/responsive-header.js +1 -1
- package/lib/Icon/image.js +1 -1
- package/lib/Icon/index.d.ts +2 -0
- package/lib/Icon/index.js +1 -1
- package/lib/Img/index.d.ts +77 -0
- package/lib/Img/index.js +2 -1
- package/lib/InfoRow/index.js +1 -1
- package/lib/Layout/dashboard/external-link.js +1 -1
- package/lib/Layout/dashboard/full-page.js +1 -1
- package/lib/Layout/dashboard/index.js +1 -1
- package/lib/Layout/dashboard/sidebar.js +1 -1
- package/lib/Layout/dashboard-legacy/header.js +1 -1
- package/lib/Layout/dashboard-legacy/index.js +1 -1
- package/lib/Layout/dashboard-legacy/sidebar.js +1 -1
- package/lib/Layout/index.js +1 -1
- package/lib/LoadingMask/index.js +1 -1
- package/lib/Locale/context.js +1 -1
- package/lib/Locale/selector.js +1 -1
- package/lib/Logo/index.d.ts +42 -0
- package/lib/Logo/index.js +1 -1
- package/lib/Metric/index.js +1 -1
- package/lib/NFTDisplay/aspect-ratio-container.js +1 -1
- package/lib/NFTDisplay/broken.js +1 -1
- package/lib/NFTDisplay/index.js +1 -1
- package/lib/NFTDisplay/loading.js +1 -1
- package/lib/NFTDisplay/svg-embedder/img.js +1 -1
- package/lib/NFTDisplay/svg-embedder/inline-svg.js +1 -1
- package/lib/NavMenu/nav-menu.js +1 -1
- package/lib/PageScroller/index.js +1 -1
- package/lib/PageScroller/story/FullPage.js +1 -1
- package/lib/PageScroller/story/PageContain.js +1 -1
- package/lib/Passport/passport.js +1 -1
- package/lib/PoweredByArcBlock/index.js +1 -1
- package/lib/PricingTable/PricingPlan.js +1 -1
- package/lib/PricingTable/index.js +1 -1
- package/lib/QRCode/index.js +1 -1
- package/lib/RelativeTime/index.js +1 -1
- package/lib/Result/common.js +1 -1
- package/lib/Result/index.js +1 -1
- package/lib/Result/result.js +1 -1
- package/lib/Screenshot/BaseScreenshot/index.js +1 -1
- package/lib/Screenshot/index.js +1 -1
- package/lib/SessionBlocklet/index.js +1 -1
- package/lib/SessionUser/components/logged-in.js +1 -1
- package/lib/SessionUser/components/session-user-item.js +1 -1
- package/lib/SessionUser/components/session-user-switch.js +1 -1
- package/lib/SessionUser/components/un-login.js +1 -1
- package/lib/SessionUser/components/user-info.js +1 -1
- package/lib/SessionUser/index.js +1 -1
- package/lib/Spinner/index.js +1 -1
- package/lib/SplitButton/index.js +8 -8
- package/lib/Success/index.js +1 -1
- package/lib/Switch/index.d.ts +31 -0
- package/lib/Switch/index.js +1 -1
- package/lib/Tabs/index.js +1 -1
- package/lib/Tag/index.d.ts +14 -0
- package/lib/Tag/index.js +11 -7
- package/lib/TextCollapse/index.js +1 -1
- package/lib/Theme/index.d.ts +14 -0
- package/lib/Theme/index.js +9 -0
- package/lib/Theme/theme-provider.d.ts +25 -0
- package/lib/Theme/theme-provider.js +1 -1
- package/lib/Theme/theme.d.ts +17 -0
- package/lib/Theme/theme.js +21 -3
- package/lib/Toast/index.d.ts +11 -0
- package/lib/Toast/index.js +2 -1
- package/lib/Typography/index.js +1 -1
- package/lib/Util/constant.d.ts +33 -0
- package/lib/Util/deprecate.d.ts +5 -0
- package/lib/Util/deprecate.js +1 -1
- package/lib/Util/index.d.ts +81 -0
- package/lib/Video/index.js +1 -1
- package/lib/Wallet/Action.js +1 -1
- package/lib/Wallet/Download.js +1 -1
- package/lib/Wallet/Open.js +1 -1
- package/lib/WalletOSIcon/index.js +1 -1
- package/lib/WebWalletSWKeeper/index.js +1 -1
- package/lib/WechatPrompt/index.js +1 -1
- package/lib/withTheme/index.js +1 -1
- package/lib/withTracker/error_boundary.js +1 -1
- package/lib/withTracker/index.js +1 -1
- package/package.json +13 -7
- package/src/Button/wrap.js +3 -2
- package/src/Datatable/index.jsx +9 -2
- package/src/Dialog/confirm.jsx +22 -12
- package/src/Dialog/dialog.jsx +11 -6
- package/src/SplitButton/index.js +7 -7
- package/src/Tag/index.js +10 -6
- package/src/Theme/index.js +8 -0
- package/src/Theme/theme.js +20 -3
@@ -0,0 +1,33 @@
|
|
1
|
+
export const DEFAULT_TIMEOUT: number;
|
2
|
+
export const DEFAULT_WINDOW_TIMEOUT: number;
|
3
|
+
export const WELLKNOWN_SERVICE_PATH_PREFIX: "/.well-known/service";
|
4
|
+
export const AUTH_SERVICE_PREFIX: "/.well-known/service";
|
5
|
+
export const SESSION_TOKEN_STORAGE_KEY: "login_token";
|
6
|
+
export const REFRESH_TOKEN_STORAGE_KEY: "refresh_token";
|
7
|
+
export const RELAY_SOCKET_PREFIX: "/.well-known/service";
|
8
|
+
export const API_DID_PREFIX: "/api/did";
|
9
|
+
export const DASHBOARD_URL: "/.well-known/service/admin";
|
10
|
+
export const PROFILE_URL: "/.well-known/service/user";
|
11
|
+
export const NAVIGATION_URL: "/.well-known/service/admin/navigation";
|
12
|
+
export const DID_PREFIX: "did:abt:";
|
13
|
+
export namespace PASSPORT_STATUS {
|
14
|
+
let VALID: string;
|
15
|
+
let REVOKED: string;
|
16
|
+
}
|
17
|
+
export namespace LOGIN_PROVIDER {
|
18
|
+
let AUTH0: string;
|
19
|
+
let APPLE: string;
|
20
|
+
let GITHUB: string;
|
21
|
+
let GOOGLE: string;
|
22
|
+
let WALLET: string;
|
23
|
+
let NFT: string;
|
24
|
+
}
|
25
|
+
export const LOGIN_PROVIDER_NAME: {
|
26
|
+
[x: string]: string;
|
27
|
+
};
|
28
|
+
export namespace OAUTH_PROVIDER {
|
29
|
+
let auth0: string;
|
30
|
+
let apple: string;
|
31
|
+
let github: string;
|
32
|
+
let google: string;
|
33
|
+
}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export function warn(name: any, alternative: any): void;
|
2
|
+
export function withDeprecated(Component: any, { name, alternative }: {
|
3
|
+
name: any;
|
4
|
+
alternative: any;
|
5
|
+
}): (props: any) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
package/lib/Util/deprecate.js
CHANGED
@@ -0,0 +1,81 @@
|
|
1
|
+
export function parseQuery(str: any): any;
|
2
|
+
export function stringifyQuery(params?: {}): string;
|
3
|
+
/**
|
4
|
+
* @param {number} opts.expireInDays
|
5
|
+
* @param {string} opts.path
|
6
|
+
* @param {domain} opts.domain
|
7
|
+
* @param {boolean} opts.returnDomain if === false, opts.domain will be skipped
|
8
|
+
*/
|
9
|
+
export function getCookieOptions(expireInDays?: number): {
|
10
|
+
expires: number;
|
11
|
+
path: any;
|
12
|
+
domain: any;
|
13
|
+
sameSite: any;
|
14
|
+
secure: boolean;
|
15
|
+
};
|
16
|
+
export function mergeProps(props: any, component: any, jsonAttrs?: any[]): any;
|
17
|
+
export function getCopyright(startYear?: number): string;
|
18
|
+
/**
|
19
|
+
* Set the date tool library which support for format() and locale() functions,
|
20
|
+
* moment and dayjs are recommended.
|
21
|
+
* @param {object} the date tool library
|
22
|
+
*/
|
23
|
+
export function setDateTool(tool: any): void;
|
24
|
+
export function getDateTool(): any;
|
25
|
+
/**
|
26
|
+
* Format the time string as `ll` format: MMM D, YYYY
|
27
|
+
* Ensure that the setDateTool() function is called first to set the time tool library.
|
28
|
+
* @param {string} date date string
|
29
|
+
* @param {object} option
|
30
|
+
* @param {string} option.locale, default: en
|
31
|
+
* @param {string} option.tz, default: timzone
|
32
|
+
* @returns formatted date string
|
33
|
+
*/
|
34
|
+
export function formatToDate(date: string, { locale, tz }?: {
|
35
|
+
locale: string;
|
36
|
+
tz: string;
|
37
|
+
}): any;
|
38
|
+
/**
|
39
|
+
* Format the time string as `lll` format: MMM D, YYYY h:mm A
|
40
|
+
* Ensure that the setDateTool() function is called first to set the time tool library.
|
41
|
+
* @param {string} date date string
|
42
|
+
* @param {object} option
|
43
|
+
* @param {string} option.locale, default: en
|
44
|
+
* @param {string} option.tz, default: timzone
|
45
|
+
* @returns formatted date string
|
46
|
+
*/
|
47
|
+
export function formatToDatetime(date: string, { locale, tz }?: {
|
48
|
+
locale: string;
|
49
|
+
tz: string;
|
50
|
+
}): any;
|
51
|
+
export function detectWalletExtension(): any;
|
52
|
+
export function openWebWallet({ webWalletUrl, action, locale, url, windowFeatures }: {
|
53
|
+
webWalletUrl: any;
|
54
|
+
action?: string;
|
55
|
+
locale?: string;
|
56
|
+
url: any;
|
57
|
+
windowFeatures: any;
|
58
|
+
}): void;
|
59
|
+
export function getColor(props: any): any;
|
60
|
+
export function getBackground(props: any): any;
|
61
|
+
export function getTimezone(): string;
|
62
|
+
export function str2color(str: any): string;
|
63
|
+
export function formatUptime(uptime: any): string;
|
64
|
+
export function getFontSize(size: any): string;
|
65
|
+
export function isEthereumDid(did: any): boolean;
|
66
|
+
export function appendParams(url: string, params: {
|
67
|
+
imageFilter: "crop" | "resize";
|
68
|
+
w?: number;
|
69
|
+
h?: number;
|
70
|
+
r?: 0 | 90 | 180 | 270;
|
71
|
+
}): string;
|
72
|
+
export function getUserAvatar(avatar: any, size?: number): any;
|
73
|
+
export function sleep(time?: number): Promise<any>;
|
74
|
+
export function isUrl(str: any): boolean;
|
75
|
+
export function getVisitorId(): string;
|
76
|
+
export function setVisitorId(value: any): void;
|
77
|
+
export function getDIDColor(did: any): any;
|
78
|
+
export function getTranslation(translations: any | string, locale: string, { fallbackLocale, defaultValue }?: {
|
79
|
+
fallbackLocale?: string;
|
80
|
+
defaultValue?: string;
|
81
|
+
}): string;
|
package/lib/Video/index.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import { useState } from 'react';
|
2
3
|
import PropTypes from 'prop-types';
|
3
4
|
import Player from 'react-player';
|
4
5
|
import CircularProgress from '@mui/material/CircularProgress';
|
5
6
|
import { mergeProps } from '../Util';
|
6
7
|
import { styled } from '../Theme';
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
8
8
|
const {
|
9
9
|
string,
|
10
10
|
number,
|
package/lib/Wallet/Action.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import PropTypes from 'prop-types';
|
2
3
|
import Typography from '@mui/material/Typography';
|
3
4
|
import logo from './images/abtwallet.png';
|
@@ -5,7 +6,6 @@ import { mergeProps } from '../Util';
|
|
5
6
|
import colors from '../Colors';
|
6
7
|
import Button from '../Button';
|
7
8
|
import { styled } from '../Theme';
|
8
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
9
9
|
export default function WalletAction(props) {
|
10
10
|
const newProps = mergeProps(props, WalletAction, ['style']);
|
11
11
|
const {
|
package/lib/Wallet/Download.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import React from "react";
|
2
3
|
import PropTypes from 'prop-types';
|
3
4
|
import Typography from '@mui/material/Typography';
|
@@ -205,7 +206,6 @@ AndroidDownloadIcon.defaultProps = {
|
|
205
206
|
import Button from '../Button';
|
206
207
|
import { mergeProps } from '../Util';
|
207
208
|
import { styled } from '../Theme';
|
208
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
209
209
|
export default function WalletDownload(props) {
|
210
210
|
const browser = useBrowser();
|
211
211
|
const newProps = mergeProps(props, WalletDownload, ['style']);
|
package/lib/Wallet/Open.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
1
2
|
import PropTypes from 'prop-types';
|
2
3
|
import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
|
3
4
|
import Fab from '@mui/material/Fab';
|
4
5
|
import { styled } from '../Theme';
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
6
6
|
export default function OpenInWallet({
|
7
7
|
locale,
|
8
8
|
link
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
1
2
|
import PropTypes from 'prop-types';
|
2
3
|
import { Icon } from '@iconify/react';
|
3
4
|
import ApiIcon from '@iconify-icons/mdi/api';
|
@@ -8,7 +9,6 @@ import QuestionMarkRoundedIcon from '@iconify-icons/material-symbols/question-ma
|
|
8
9
|
// import Auth0Icon from '@iconify-icons/logos/auth0-icon';
|
9
10
|
import MailOutlineRoundedIcon from '@iconify-icons/material-symbols/mail-outline-rounded';
|
10
11
|
import { LOGIN_PROVIDER } from '../Util/constant';
|
11
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
12
12
|
export default function WalletOSIcon({
|
13
13
|
loading,
|
14
14
|
walletOS,
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import { useEffect, useRef } from 'react';
|
2
3
|
import PropTypes from 'prop-types';
|
3
4
|
import useIdle from 'react-use/lib/useIdle';
|
@@ -7,7 +8,6 @@ import { detectWalletExtension } from '@arcblock/ux/lib/Util';
|
|
7
8
|
import { getWebWalletUrl, checkSameProtocol } from '../Util/wallet';
|
8
9
|
|
9
10
|
// 默认最大空闲时间: 30min
|
10
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
11
11
|
const DEFAULT_MAX_IDLE_TIME = 1000 * 60 * 30;
|
12
12
|
// 可使用 localStorage.setItem('wallet_sw_keeper_disabled', 1) 来禁用嵌入 wallet iframe
|
13
13
|
const STORAGE_KEY_DISABLED = 'wallet_sw_keeper_disabled';
|
@@ -1,10 +1,10 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import Typography from '@mui/material/Typography';
|
2
3
|
import Dialog from '@mui/material/Dialog';
|
3
4
|
import useBrowser from '@arcblock/react-hooks/lib/useBrowser';
|
4
5
|
import IosImage from './images/ios.png';
|
5
6
|
import AndroidImage from './images/android.png';
|
6
7
|
import { styled } from '../Theme';
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
8
8
|
export default function WechatPrompt() {
|
9
9
|
const browser = useBrowser();
|
10
10
|
if (!browser.mobile.any) {
|
package/lib/withTheme/index.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
2
|
import { useEffect } from 'react';
|
2
3
|
import { Global, css } from '@emotion/react';
|
3
4
|
import CssBaseline from '@mui/material/CssBaseline';
|
4
5
|
import { createTheme, ThemeProvider } from '../Theme';
|
5
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
6
6
|
function withTheme(Component, {
|
7
7
|
mode = 'light',
|
8
8
|
pageWidth = 'md',
|
@@ -1,8 +1,8 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
1
2
|
/* eslint-disable import/no-unresolved */
|
2
3
|
import { Component } from 'react';
|
3
4
|
import * as Sentry from '@sentry/browser';
|
4
5
|
import Alert from '../Alert';
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
6
6
|
export default class ErrorBoundary extends Component {
|
7
7
|
constructor(props) {
|
8
8
|
super(props);
|
package/lib/withTracker/index.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
1
2
|
/* eslint-disable import/no-unresolved */
|
2
3
|
import ReactGA from 'react-ga';
|
3
4
|
import * as Sentry from '@sentry/browser';
|
4
5
|
import { useMount, useDeepCompareEffect } from 'ahooks';
|
5
6
|
import { useLocation } from 'react-router-dom';
|
6
7
|
import ErrorBoundary from './error_boundary';
|
7
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
8
8
|
export default ((WrappedComponent, options = {}) => {
|
9
9
|
const {
|
10
10
|
appVersion,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@arcblock/ux",
|
3
|
-
"version": "2.10.
|
3
|
+
"version": "2.10.25",
|
4
4
|
"description": "Common used react components for arcblock products",
|
5
5
|
"keywords": [
|
6
6
|
"react",
|
@@ -19,7 +19,10 @@
|
|
19
19
|
"scripts": {
|
20
20
|
"lint": "eslint src tests --ext js --ext jsx",
|
21
21
|
"lint:fix": "npm run lint -- --fix",
|
22
|
-
"build": "
|
22
|
+
"build": "npm run build:clean && npm run build:lib && npm run build:types",
|
23
|
+
"build:clean": "rm -rf lib",
|
24
|
+
"build:lib": "babel --config-file ./babel.config.es.js src --out-dir lib --copy-files --no-copy-ignored",
|
25
|
+
"build:types": "tsc",
|
23
26
|
"watch": "babel --config-file ./babel.config.es.js src --out-dir lib -w --copy-files --no-copy-ignored",
|
24
27
|
"precommit": "CI=1 npm run lint",
|
25
28
|
"prepush": "CI=1 npm run lint",
|
@@ -39,12 +42,14 @@
|
|
39
42
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
40
43
|
"@babel/preset-env": "^7.19.3",
|
41
44
|
"@babel/preset-react": "^7.18.6",
|
45
|
+
"@types/react": "^18.3.4",
|
42
46
|
"babel-plugin-inline-react-svg": "^1.1.2",
|
43
47
|
"eslint-plugin-react-hooks": "^4.6.0",
|
44
48
|
"glob": "^10.3.3",
|
45
49
|
"jest": "^28.1.3",
|
46
50
|
"jest-environment-jsdom": "^29.5.0",
|
47
|
-
"moment-timezone": "^0.5.37"
|
51
|
+
"moment-timezone": "^0.5.37",
|
52
|
+
"typescript": "^5.5.4"
|
48
53
|
},
|
49
54
|
"peerDependencies": {
|
50
55
|
"@emotion/react": "^11.10.4",
|
@@ -54,12 +59,12 @@
|
|
54
59
|
"react": ">=18.2.0",
|
55
60
|
"react-router-dom": ">=6.22.3"
|
56
61
|
},
|
57
|
-
"gitHead": "
|
62
|
+
"gitHead": "c08068e4f1992102d89bc2fc54c93a864453bf24",
|
58
63
|
"dependencies": {
|
59
64
|
"@arcblock/did-motif": "^1.1.13",
|
60
|
-
"@arcblock/icons": "^2.10.
|
61
|
-
"@arcblock/nft-display": "^2.10.
|
62
|
-
"@arcblock/react-hooks": "^2.10.
|
65
|
+
"@arcblock/icons": "^2.10.25",
|
66
|
+
"@arcblock/nft-display": "^2.10.25",
|
67
|
+
"@arcblock/react-hooks": "^2.10.25",
|
63
68
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
64
69
|
"@fontsource/inter": "^5.0.16",
|
65
70
|
"@fontsource/ubuntu-mono": "^5.0.18",
|
@@ -69,6 +74,7 @@
|
|
69
74
|
"@iconify/react": "^4.1.1",
|
70
75
|
"@solana/qr-code-styling": "^1.6.0-beta.0",
|
71
76
|
"@testing-library/react": "^14.0.0",
|
77
|
+
"@types/mui-datatables": "^4.3.12",
|
72
78
|
"ahooks": "^3.7.10",
|
73
79
|
"axios": "^1.7.2",
|
74
80
|
"base64-url": "^2.3.3",
|
package/src/Button/wrap.js
CHANGED
@@ -19,12 +19,13 @@ const extendedColors = {
|
|
19
19
|
};
|
20
20
|
|
21
21
|
/**
|
22
|
+
* @typedef {import('@mui/material').ButtonProps} MuiButtonProps
|
22
23
|
* @typedef {{
|
23
24
|
* rounded?: boolean,
|
24
25
|
* loading?: boolean,
|
25
26
|
* forwardedRef?: import('react').ForwardedRef<any>,
|
26
|
-
* color?: '
|
27
|
-
* } &
|
27
|
+
* color?: MuiButtonProps['color'] | 'reverse' | 'did'
|
28
|
+
* } & Omit<MuiButtonProps, 'color'>} ButtonProps
|
28
29
|
*/
|
29
30
|
|
30
31
|
/**
|
package/src/Datatable/index.jsx
CHANGED
@@ -17,6 +17,7 @@ import { styled } from '../Theme';
|
|
17
17
|
* @typedef {{
|
18
18
|
* icon: import('react').ReactElement,
|
19
19
|
* title: string,
|
20
|
+
* onClick?: () => void
|
20
21
|
* }} DataTableCustomButton
|
21
22
|
*/
|
22
23
|
|
@@ -38,6 +39,12 @@ import { styled } from '../Theme';
|
|
38
39
|
* @typedef {Pick<import('mui-datatables').MUIDataTableState, 'count' | 'page' | 'rowsPerPage' | 'searchText' | 'sortOrder' | 'filterList'>} DataTableState
|
39
40
|
*/
|
40
41
|
|
42
|
+
/**
|
43
|
+
* @typedef {Object} ModifiedMUIDataTableProps
|
44
|
+
* @property {string} [title] - The title of the table (optional).
|
45
|
+
* @property {...import('mui-datatables').MUIDataTableProps} [rest] - Other props from MUIDataTableProps.
|
46
|
+
*/
|
47
|
+
|
41
48
|
/**
|
42
49
|
* @typedef {{
|
43
50
|
* data: Array<object | number[] | string[]>,
|
@@ -53,10 +60,10 @@ import { styled } from '../Theme';
|
|
53
60
|
* verticalKeyWidth?: number | string,
|
54
61
|
* hideTableHeader?: boolean,
|
55
62
|
* components?: import('react').ReactElement,
|
56
|
-
* emptyNode?: import('react').
|
63
|
+
* emptyNode?: import('react').ReactNode,
|
57
64
|
* durable?: string,
|
58
65
|
* durableKeys?: 'page' | 'rowsPerPage' | 'searchText' | 'sortOrder'
|
59
|
-
* } &
|
66
|
+
* } & ModifiedMUIDataTableProps} DataTableProps
|
60
67
|
*/
|
61
68
|
|
62
69
|
const FilterLine = styled('div')`
|
package/src/Dialog/confirm.jsx
CHANGED
@@ -5,17 +5,22 @@ import Button from '../Button';
|
|
5
5
|
import Dialog from './dialog';
|
6
6
|
|
7
7
|
/**
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
8
|
+
* @typedef {import('../Button/wrap').ButtonProps} ButtonProps
|
9
|
+
* @typedef {import('@mui/material').PaperProps} PaperProps
|
10
|
+
* @typedef {{
|
11
|
+
* title: React.ReactNode,
|
12
|
+
* open: boolean,
|
13
|
+
* children: React.ReactNode,
|
14
|
+
* onConfirm: () => void | Promise<void>,
|
15
|
+
* onCancel: () => void | Promise<void>,
|
16
|
+
* showCancelButton?: boolean,
|
17
|
+
* showCloseButton?: boolean,
|
18
|
+
* fullScreen?: boolean,
|
19
|
+
* confirmButton?: {text: string, props?: ButtonProps}
|
20
|
+
* cancelButton?: {text: string, props?: ButtonProps}
|
21
|
+
* PaperProps?: PaperProps
|
22
|
+
* }} ConfirmProps
|
23
|
+
*/
|
19
24
|
|
20
25
|
// 注意排在 {...rest} 之后的 props 优先级更高
|
21
26
|
/**
|
@@ -30,6 +35,7 @@ export default function Confirm({
|
|
30
35
|
onCancel,
|
31
36
|
showCloseButton,
|
32
37
|
showCancelButton,
|
38
|
+
fullScreen,
|
33
39
|
confirmButton,
|
34
40
|
cancelButton,
|
35
41
|
PaperProps,
|
@@ -58,6 +64,7 @@ export default function Confirm({
|
|
58
64
|
{...rest}
|
59
65
|
onClose={handleClose}
|
60
66
|
showCloseButton={showCloseButton}
|
67
|
+
fullScreen={fullScreen}
|
61
68
|
slotProps={{
|
62
69
|
header: {
|
63
70
|
sx: {
|
@@ -105,11 +112,13 @@ export default function Confirm({
|
|
105
112
|
|
106
113
|
Confirm.propTypes = {
|
107
114
|
title: PropTypes.node.isRequired,
|
115
|
+
open: PropTypes.bool.isRequired,
|
108
116
|
children: PropTypes.node.isRequired,
|
109
117
|
onConfirm: PropTypes.func.isRequired,
|
110
118
|
onCancel: PropTypes.func.isRequired,
|
111
119
|
showCancelButton: PropTypes.bool,
|
112
120
|
showCloseButton: PropTypes.bool,
|
121
|
+
fullScreen: PropTypes.bool,
|
113
122
|
// 可以传入 {text: ..., props: ...}
|
114
123
|
confirmButton: PropTypes.shape({
|
115
124
|
text: PropTypes.string.isRequired,
|
@@ -123,8 +132,9 @@ Confirm.propTypes = {
|
|
123
132
|
};
|
124
133
|
|
125
134
|
Confirm.defaultProps = {
|
126
|
-
showCloseButton: true,
|
127
135
|
showCancelButton: true,
|
136
|
+
showCloseButton: true,
|
137
|
+
fullScreen: false,
|
128
138
|
confirmButton: {
|
129
139
|
text: 'Confirm',
|
130
140
|
},
|
package/src/Dialog/dialog.jsx
CHANGED
@@ -13,14 +13,15 @@ import {
|
|
13
13
|
import { styled, useTheme } from '../Theme';
|
14
14
|
|
15
15
|
/**
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
* @typedef {import('@mui/material').DialogProps} MuiDialogProps
|
17
|
+
* @typedef {import('@mui/material').PaperProps & {
|
18
|
+
* minWidth?: number | string,
|
19
|
+
* minHeight?: number | string,
|
20
|
+
* }} PaperStyle
|
21
|
+
*/
|
21
22
|
|
22
23
|
/**
|
23
|
-
@typedef
|
24
|
+
@typedef {Object} UxDialogProps
|
24
25
|
@property {React.ReactNode} children - The content of the dialog.
|
25
26
|
@property {React.ReactNode} [title] - The title of the dialog.
|
26
27
|
@property {React.ReactNode} [prepend] - Content to be displayed before the dialog title.
|
@@ -32,6 +33,10 @@ import { styled, useTheme } from '../Theme';
|
|
32
33
|
@property {(event: React.SyntheticEvent, reason: string) => void} [onClose] - Callback function fired when the dialog is closed.
|
33
34
|
*/
|
34
35
|
|
36
|
+
/**
|
37
|
+
* @typedef {MuiDialogProps & UxDialogProps} DialogProps
|
38
|
+
*/
|
39
|
+
|
35
40
|
/**
|
36
41
|
* Dialog
|
37
42
|
*
|
package/src/SplitButton/index.js
CHANGED
@@ -13,13 +13,12 @@ import noop from 'lodash/noop';
|
|
13
13
|
import { styled } from '../Theme';
|
14
14
|
|
15
15
|
/**
|
16
|
+
* @typedef {import('@mui/material').MenuItem} MenuItem
|
17
|
+
* @typedef {import('@mui/material').MenuItemProps} MenuItemProps
|
16
18
|
* SplitButton 组件 Props
|
17
19
|
* @typedef {{
|
18
|
-
*
|
19
|
-
* color?: 'primary' | 'secondary' | 'inherit';
|
20
|
-
* menu?: Array<import('@mui/material').MenuItem> | import('@mui/material').MenuItem;
|
20
|
+
* menu?: React.ReactElement<MenuItemProps, MenuItem>[] | React.ReactElement<MenuItemProps, MenuItem>;
|
21
21
|
* children?: JSX.Element | (() => JSX.Element);
|
22
|
-
* variant?: 'outlined' | 'contained';
|
23
22
|
* onClick?: () => void;
|
24
23
|
* menuButtonProps?: import('@mui/material').ButtonProps;
|
25
24
|
* } & import('@mui/material').ButtonGroupProps } SplitButtonProps
|
@@ -84,8 +83,8 @@ export default function SplitButton(props) {
|
|
84
83
|
}
|
85
84
|
|
86
85
|
SplitButton.propTypes = {
|
87
|
-
size: PropTypes.
|
88
|
-
color: PropTypes.
|
86
|
+
size: PropTypes.string,
|
87
|
+
color: PropTypes.string,
|
89
88
|
menu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
|
90
89
|
// 也可以是用于渲染主按钮的 function
|
91
90
|
children: PropTypes.node,
|
@@ -103,8 +102,9 @@ SplitButton.defaultProps = {
|
|
103
102
|
onClick: noop,
|
104
103
|
menuButtonProps: {},
|
105
104
|
};
|
105
|
+
|
106
106
|
/**
|
107
|
-
* @type {
|
107
|
+
* @type {MenuItem}
|
108
108
|
*/
|
109
109
|
SplitButton.Item = MenuItem;
|
110
110
|
|
package/src/Tag/index.js
CHANGED
@@ -30,13 +30,15 @@ const types = {
|
|
30
30
|
};
|
31
31
|
|
32
32
|
/**
|
33
|
+
* @typedef {import('@mui/material/Typography').TypographyProps} TypographyProps
|
33
34
|
* @typedef {{
|
34
|
-
* type
|
35
|
-
* content
|
36
|
-
* className
|
35
|
+
* type?: 'error' | 'warning' | 'success' | 'primary' | 'reverse',
|
36
|
+
* content?: string,
|
37
|
+
* className?: string;
|
37
38
|
* children: import('react').ReactNode,
|
38
|
-
* style
|
39
|
-
* }}
|
39
|
+
* style?: import('react').CSSProperties
|
40
|
+
* }} TagOwnProps
|
41
|
+
* @typedef { TypographyProps & TagOwnProps} TagProps
|
40
42
|
*/
|
41
43
|
|
42
44
|
/**
|
@@ -81,7 +83,9 @@ Tag.defaultProps = {
|
|
81
83
|
style: {},
|
82
84
|
};
|
83
85
|
|
84
|
-
/**
|
86
|
+
/**
|
87
|
+
* @type {React.ForwardRefExoticComponent<React.PropsWithoutRef<TagProps> & React.RefAttributes<HTMLSpanElement>>}
|
88
|
+
*/
|
85
89
|
const TagComponent = forwardRef((props, ref) => <Tag {...props} forwardedRef={ref} />);
|
86
90
|
export default TagComponent;
|
87
91
|
|
package/src/Theme/index.js
CHANGED
@@ -6,6 +6,14 @@ export { useTheme };
|
|
6
6
|
|
7
7
|
const isTransientProp = (prop) => prop.startsWith('$');
|
8
8
|
|
9
|
+
/**
|
10
|
+
* @typedef {import('@mui/material/styles').Theme} Theme
|
11
|
+
* @typedef {import('@mui/material/styles').CreateMUIStyled<Theme>} Styled
|
12
|
+
*/
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @type {Styled}
|
16
|
+
*/
|
9
17
|
export const styled = (component, options = {}) => {
|
10
18
|
return muiStyled(component, {
|
11
19
|
...options,
|
package/src/Theme/theme.js
CHANGED
@@ -12,11 +12,28 @@ import '@fontsource/inter/latin-ext-700.css';
|
|
12
12
|
|
13
13
|
import colors from '../Colors';
|
14
14
|
|
15
|
+
/**
|
16
|
+
* @typedef {import('@mui/material/styles').Theme} Theme
|
17
|
+
* @typedef {import('@mui/material/styles').TypographyVariantsOptions} TypographyVariantsOptions
|
18
|
+
* @typedef {import('@mui/material/styles').Components} Components
|
19
|
+
*/
|
20
|
+
|
15
21
|
const muiDarkTheme = _createTheme({ palette: { mode: 'dark' } });
|
16
22
|
|
17
23
|
// https://material-ui.com/customization/default-theme/
|
18
|
-
|
19
|
-
|
24
|
+
/**
|
25
|
+
* @description
|
26
|
+
* @export
|
27
|
+
* @param {{
|
28
|
+
* mode?: string,
|
29
|
+
* pageWidth?: string,
|
30
|
+
* palette?: import('@mui/material/styles').PaletteOptions,
|
31
|
+
* typography?: TypographyVariantsOptions,
|
32
|
+
* overrides?: Components<Omit<Theme, 'components'>>,
|
33
|
+
* }} options
|
34
|
+
* @return {Theme}
|
35
|
+
*/
|
36
|
+
export const create = ({ mode = 'light', pageWidth = 'md', palette, typography, overrides = {}, ...rest } = {}) => {
|
20
37
|
// palette 考虑 light & dark mode, dark mode 需要持续完善
|
21
38
|
// - 能配合 ColorModeContext 使用
|
22
39
|
// - 为 dark mode 系统的设计整个 palette, 不要单个 color 设置
|
@@ -78,7 +95,7 @@ export const create = ({ mode = 'light', pageWidth = 'md', palette, typography,
|
|
78
95
|
fontWeight: 700,
|
79
96
|
},
|
80
97
|
},
|
81
|
-
typography
|
98
|
+
typography
|
82
99
|
),
|
83
100
|
components: {
|
84
101
|
MuiButton: {
|