@arcblock/ux 2.10.65 → 2.10.67

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 (121) hide show
  1. package/lib/ActionButton/index.d.ts +1 -1
  2. package/lib/Alert/index.d.ts +1 -1
  3. package/lib/AnimationWaiter/index.d.ts +27 -15
  4. package/lib/AnimationWaiter/index.js +15 -14
  5. package/lib/Async/index.d.ts +50 -17
  6. package/lib/Badge/index.d.ts +1 -1
  7. package/lib/Badge/index.js +7 -1
  8. package/lib/BlockletContext/index.d.ts +12 -28
  9. package/lib/BlockletContext/index.js +3 -21
  10. package/lib/Button/wrap.d.ts +5 -3
  11. package/lib/Button/wrap.js +2 -1
  12. package/lib/ButtonGroup/index.d.ts +12 -2
  13. package/lib/ButtonGroup/index.js +13 -3
  14. package/lib/CardSelector/index.d.ts +11 -33
  15. package/lib/CardSelector/index.js +16 -32
  16. package/lib/Center/index.d.ts +6 -21
  17. package/lib/Center/index.js +2 -17
  18. package/lib/ClickToCopy/copy-button.d.ts +9 -26
  19. package/lib/ClickToCopy/copy-button.js +5 -17
  20. package/lib/ClickToCopy/hook.d.ts +11 -5
  21. package/lib/ClickToCopy/hook.js +3 -3
  22. package/lib/ClickToCopy/index.d.ts +18 -29
  23. package/lib/ClickToCopy/index.js +0 -13
  24. package/lib/CodeBlock/LightBox.d.ts +1 -1
  25. package/lib/CodeBlock/index.d.ts +7 -26
  26. package/lib/CodeBlock/index.js +4 -17
  27. package/lib/Colors/index.d.ts +2 -2
  28. package/lib/Colors/themes/default.d.ts +54 -61
  29. package/lib/Colors/themes/temp.d.ts +35 -35
  30. package/lib/ContactForm/index.d.ts +26 -30
  31. package/lib/ContactForm/index.js +7 -17
  32. package/lib/Dialog/confirm.d.ts +3 -3
  33. package/lib/Dialog/confirm.js +2 -2
  34. package/lib/Earth/index.d.ts +10 -1
  35. package/lib/Header/auto-hidden.d.ts +6 -11
  36. package/lib/Header/auto-hidden.js +0 -5
  37. package/lib/Header/header.d.ts +20 -51
  38. package/lib/Header/header.js +10 -42
  39. package/lib/Header/index.d.ts +2 -2
  40. package/lib/Header/responsive-header.d.ts +10 -22
  41. package/lib/Header/responsive-header.js +1 -13
  42. package/lib/Icon/image.d.ts +8 -36
  43. package/lib/Icon/image.js +6 -24
  44. package/lib/Icon/index.d.ts +9 -1
  45. package/lib/Icon/index.js +6 -25
  46. package/lib/NavMenu/index.d.ts +1 -1
  47. package/lib/NavMenu/nav-menu.d.ts +37 -51
  48. package/lib/NavMenu/nav-menu.js +47 -102
  49. package/lib/NavMenu/style.d.ts +8 -2
  50. package/lib/NavMenu/style.js +3 -1
  51. package/lib/PageScroller/index.d.ts +13 -1
  52. package/lib/Passport/passport.js +1 -1
  53. package/lib/PricingTable/index.d.ts +3 -1
  54. package/lib/RelativeTime/index.d.ts +1 -1
  55. package/lib/Screenshot/BaseScreenshot/index.js +1 -1
  56. package/lib/SplitButton/index.d.ts +0 -19
  57. package/lib/SplitButton/index.js +7 -27
  58. package/lib/TextCollapse/index.d.ts +10 -1
  59. package/lib/Theme/index.d.ts +5 -13
  60. package/lib/Theme/index.js +4 -11
  61. package/lib/Theme/theme-provider.d.ts +16 -18
  62. package/lib/Theme/theme.d.ts +37 -11
  63. package/lib/Theme/theme.js +13 -22
  64. package/lib/Util/constant.d.ts +31 -31
  65. package/lib/Util/deprecate.d.ts +7 -5
  66. package/lib/Util/federated.d.ts +21 -21
  67. package/lib/Util/federated.js +1 -1
  68. package/lib/Util/index.d.ts +59 -60
  69. package/lib/Util/index.js +16 -43
  70. package/lib/Util/passport.d.ts +6 -6
  71. package/lib/Util/wallet.d.ts +15 -3
  72. package/lib/WebWalletSWKeeper/index.js +1 -1
  73. package/lib/global.d.ts +13 -0
  74. package/lib/index.d.ts +4 -2
  75. package/lib/index.js +2 -2
  76. package/lib/type.d.ts +31 -1
  77. package/package.json +5 -5
  78. package/src/AnimationWaiter/index.jsx +15 -14
  79. package/src/Async/{index.jsx → index.tsx} +13 -4
  80. package/src/Badge/index.jsx +8 -1
  81. package/src/BlockletContext/{index.jsx → index.tsx} +17 -22
  82. package/src/Button/wrap.jsx +2 -1
  83. package/src/ButtonGroup/index.js +13 -3
  84. package/src/CardSelector/{index.jsx → index.tsx} +32 -33
  85. package/src/Center/index.tsx +33 -0
  86. package/src/ClickToCopy/{copy-button.jsx → copy-button.tsx} +15 -16
  87. package/src/ClickToCopy/{hook.js → hook.ts} +5 -5
  88. package/src/ClickToCopy/{index.jsx → index.tsx} +12 -17
  89. package/src/CodeBlock/{index.jsx → index.tsx} +15 -17
  90. package/src/ContactForm/{index.jsx → index.tsx} +47 -29
  91. package/src/Dialog/confirm.jsx +2 -2
  92. package/src/Header/{auto-hidden.jsx → auto-hidden.tsx} +6 -7
  93. package/src/Header/{header.jsx → header.tsx} +32 -46
  94. package/src/Header/{responsive-header.jsx → responsive-header.tsx} +9 -15
  95. package/src/Icon/{image.jsx → image.tsx} +19 -22
  96. package/src/Icon/{index.jsx → index.tsx} +22 -24
  97. package/src/NavMenu/{nav-menu.jsx → nav-menu.tsx} +161 -144
  98. package/src/NavMenu/{style.js → style.ts} +9 -1
  99. package/src/Passport/passport.jsx +1 -1
  100. package/src/Screenshot/BaseScreenshot/index.jsx +1 -1
  101. package/src/SplitButton/index.tsx +10 -23
  102. package/src/Theme/{index.js → index.ts} +6 -12
  103. package/src/Theme/{theme-provider.jsx → theme-provider.tsx} +10 -2
  104. package/src/Theme/{theme.js → theme.ts} +54 -23
  105. package/src/Util/{deprecate.jsx → deprecate.tsx} +8 -4
  106. package/src/Util/{federated.js → federated.ts} +3 -3
  107. package/src/Util/{index.js → index.ts} +85 -59
  108. package/src/Util/{passport.js → passport.ts} +2 -2
  109. package/src/Util/{wallet.js → wallet.ts} +1 -1
  110. package/src/WebWalletSWKeeper/index.jsx +1 -1
  111. package/src/global.d.ts +13 -0
  112. package/src/{index.js → index.ts} +2 -2
  113. package/src/type.d.ts +31 -1
  114. package/src/Center/index.jsx +0 -41
  115. /package/src/CodeBlock/{LightBox.jsx → LightBox.tsx} +0 -0
  116. /package/src/Colors/{index.js → index.ts} +0 -0
  117. /package/src/Colors/themes/{default.js → default.ts} +0 -0
  118. /package/src/Colors/themes/{temp.js → temp.ts} +0 -0
  119. /package/src/Header/{index.js → index.ts} +0 -0
  120. /package/src/NavMenu/{index.js → index.ts} +0 -0
  121. /package/src/Util/{constant.js → constant.ts} +0 -0
@@ -1,17 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Children, cloneElement, useEffect, createContext, useContext, useRef, forwardRef, useLayoutEffect } from 'react';
3
- import PropTypes from 'prop-types';
2
+ /* eslint-disable no-unused-vars */
3
+ import { Children, cloneElement, useEffect, createContext, useContext, useRef, forwardRef, useLayoutEffect, isValidElement } from 'react';
4
4
  import clsx from 'clsx';
5
5
  import { MoreHoriz as MoreHorizIcon, ExpandMore as ExpandMoreIcon, Menu as MenuIcon } from '@mui/icons-material';
6
6
  import { useCreation, useMemoizedFn, useReactive, useSize, useThrottleFn } from 'ahooks';
7
7
  import { HorizontalStyle, InlineStyle } from './style';
8
- const NavMenuContext = /*#__PURE__*/createContext();
8
+ const NavMenuContext = /*#__PURE__*/createContext(null);
9
9
 
10
10
  // 过滤 children 中的 Item/Sub, 忽略其它类型的 element
11
11
  function filterItems(children) {
12
12
  if (children) {
13
13
  // eslint-disable-next-line no-use-before-define
14
- return Children.toArray(children).filter(child => child.type === Item || child.type === Sub);
14
+ return Children.toArray(children).filter(child => {
15
+ if (! /*#__PURE__*/isValidElement(child)) {
16
+ return false;
17
+ }
18
+ return child.type === Item || child.type === Sub;
19
+ });
15
20
  }
16
21
  return null;
17
22
  }
@@ -19,23 +24,22 @@ function useUniqueId(id) {
19
24
  const _id = useRef(id || `navmenu-item-id-${Math.random().toString(36).slice(2)}`);
20
25
  return _id.current;
21
26
  }
22
-
23
27
  /**
24
28
  * NavMenu, 导航组件, 可用于 header/footer/sidebar
25
29
  */
26
30
  function NavMenu({
27
- items,
28
- mode,
29
- children,
30
- activeId,
31
- textColor,
32
- activeTextColor,
33
- bgColor,
31
+ items = [],
32
+ mode = 'horizontal',
33
+ children: _childs = null,
34
+ activeId = null,
35
+ textColor = '#9397a1',
36
+ activeTextColor = '#25292f',
37
+ bgColor = '#fff',
34
38
  onSelected,
35
39
  ...rest
36
40
  }) {
37
41
  // eslint-disable-next-line no-param-reassign
38
- children = filterItems(children);
42
+ const children = filterItems(_childs);
39
43
  if (!items?.length && !children?.length) {
40
44
  throw new Error("One of 'items' or 'children' is required by NavMenu component.");
41
45
  }
@@ -63,9 +67,9 @@ function NavMenu({
63
67
  close
64
68
  };
65
69
  }, [currentState.activeId, currentState.hiddenItemCount, currentState.openedIds, mode, activate, open, close]);
66
- const navMenuRef = useRef();
70
+ const navMenuRef = useRef(null);
67
71
  const itemRefs = useRef([]);
68
- const moreIconRef = useRef();
72
+ const moreIconRef = useRef(null);
69
73
  const isAllItemsHidden = currentState.hiddenItemCount === itemRefs.current?.length;
70
74
  const style = isAllItemsHidden ? {
71
75
  marginLeft: '0px'
@@ -175,7 +179,7 @@ function NavMenu({
175
179
  children: /*#__PURE__*/_jsxs("ul", {
176
180
  className: "navmenu-root",
177
181
  ref: navMenuRef,
178
- children: [items ? items.map((item, index) => renderItem(item, index, true)) : renderChildrenWithRef(children), currentState.hiddenItemCount > 0 && /*#__PURE__*/_jsx(Sub, {
182
+ children: [items ? items.map((item, index) => renderItem(item, index, true)) : renderChildrenWithRef(children || []), currentState.hiddenItemCount > 0 && /*#__PURE__*/_jsx(Sub, {
179
183
  expandIcon: false,
180
184
  icon: icon,
181
185
  label: "",
@@ -187,57 +191,31 @@ function NavMenu({
187
191
  })
188
192
  });
189
193
  }
190
- NavMenu.propTypes = {
191
- items: PropTypes.array,
192
- // 默认水平方向布局,
193
- // inline 模式: 垂直布局, 且通过 click 事件来收缩/伸展子菜单, 适用于移动端
194
- mode: PropTypes.oneOf(['horizontal', 'vertical', 'inline']),
195
- children: PropTypes.array,
196
- activeId: PropTypes.string,
197
- textColor: PropTypes.string,
198
- activeTextColor: PropTypes.string,
199
- bgColor: PropTypes.string,
200
- onSelected: PropTypes.func
201
- };
202
- NavMenu.defaultProps = {
203
- items: null,
204
- mode: 'horizontal',
205
- children: null,
206
- activeId: null,
207
- textColor: '#9397a1',
208
- activeTextColor: '#25292f',
209
- bgColor: '#fff',
210
- onSelected: null
211
- };
212
-
213
- /**
214
- * Item
215
- */
216
194
  const Item = /*#__PURE__*/forwardRef(({
217
- id: _id,
218
- icon,
219
- label,
220
- active,
221
- onClick,
195
+ id: _id = '',
196
+ icon = null,
197
+ label = '',
198
+ active = false,
199
+ onClick = null,
222
200
  ...rest
223
201
  }, ref) => {
224
202
  const id = useUniqueId(_id);
225
203
  const {
226
204
  activeId,
227
205
  activate
228
- } = useContext(NavMenuContext);
206
+ } = useContext(NavMenuContext) || {};
229
207
  const classes = clsx('navmenu-item', {
230
208
  'navmenu-item--active': activeId === id
231
209
  }, rest.className);
232
210
  useEffect(() => {
233
211
  if (active) {
234
- activate(id);
212
+ activate?.(id);
235
213
  }
236
214
  // eslint-disable-next-line react-hooks/exhaustive-deps
237
215
  }, [active]);
238
216
  const handleClick = () => {
239
217
  onClick?.();
240
- activate(id);
218
+ activate?.(id);
241
219
  };
242
220
  return (
243
221
  /*#__PURE__*/
@@ -257,30 +235,18 @@ const Item = /*#__PURE__*/forwardRef(({
257
235
  })
258
236
  );
259
237
  });
260
- Item.propTypes = {
261
- id: PropTypes.string,
262
- icon: PropTypes.element,
263
- label: PropTypes.node,
264
- active: PropTypes.bool,
265
- onClick: PropTypes.func
266
- };
267
- Item.defaultProps = {
268
- id: null,
269
- icon: null,
270
- label: '',
271
- active: false,
272
- onClick: null
273
- };
274
-
275
- /**
276
- * Sub
277
- */
278
238
  const Sub = /*#__PURE__*/forwardRef(({
279
- id: _id,
280
- icon,
281
- label,
239
+ id: _id = '',
240
+ icon = null,
241
+ label = null,
282
242
  children,
283
- expandIcon,
243
+ expandIcon = ({
244
+ isOpen
245
+ }) => /*#__PURE__*/_jsx(ExpandMoreIcon, {
246
+ style: {
247
+ transform: `rotate(${isOpen ? 180 : 0}deg)`
248
+ }
249
+ }),
284
250
  ...rest
285
251
  }, ref) => {
286
252
  const id = useUniqueId(_id);
@@ -289,8 +255,8 @@ const Sub = /*#__PURE__*/forwardRef(({
289
255
  open,
290
256
  close,
291
257
  mode
292
- } = useContext(NavMenuContext);
293
- const isOpen = openedIds.includes(id);
258
+ } = useContext(NavMenuContext) || {};
259
+ const isOpen = openedIds?.includes(id) ?? false;
294
260
  const classes = clsx('navmenu-sub', {
295
261
  'navmenu-sub--opened': isOpen
296
262
  }, rest.className);
@@ -298,15 +264,15 @@ const Sub = /*#__PURE__*/forwardRef(({
298
264
  // inline mode 时使用 click 事件控制收缩/伸展子菜单
299
265
  const props = isInlineMode ? {
300
266
  onClick: () => {
301
- if (openedIds.includes(id)) {
302
- close(id);
267
+ if (openedIds?.includes(id)) {
268
+ close?.(id);
303
269
  } else {
304
- open(id);
270
+ open?.(id);
305
271
  }
306
272
  }
307
273
  } : {
308
- onMouseEnter: () => open(id),
309
- onMouseLeave: () => close(id)
274
+ onMouseEnter: () => open?.(id),
275
+ onMouseLeave: () => close?.(id)
310
276
  };
311
277
  // inline mode, 避免点击子菜单项时触发父菜单的 open/close
312
278
  const containerProps = isInlineMode ? {
@@ -325,9 +291,9 @@ const Sub = /*#__PURE__*/forwardRef(({
325
291
  children: label
326
292
  }), expandIcon && /*#__PURE__*/_jsx("span", {
327
293
  className: "navmenu-sub-expand-icon",
328
- children: expandIcon?.({
294
+ children: typeof expandIcon === 'function' ? expandIcon({
329
295
  isOpen
330
- }) || expandIcon
296
+ }) : expandIcon
331
297
  }), /*#__PURE__*/_jsx("div", {
332
298
  className: "navmenu-sub-container",
333
299
  ...containerProps,
@@ -338,27 +304,6 @@ const Sub = /*#__PURE__*/forwardRef(({
338
304
  })]
339
305
  });
340
306
  });
341
- Sub.propTypes = {
342
- id: PropTypes.string,
343
- icon: PropTypes.element,
344
- label: PropTypes.node.isRequired,
345
- children: PropTypes.array.isRequired,
346
- expandIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
347
- };
348
- Sub.defaultProps = {
349
- id: null,
350
- icon: null,
351
- // eslint-disable-next-line react/prop-types
352
- expandIcon: ({
353
- isOpen
354
- }) => {
355
- return /*#__PURE__*/_jsx(ExpandMoreIcon, {
356
- style: {
357
- transform: `rotate(${isOpen ? 180 : 0}deg)`
358
- }
359
- });
360
- }
361
- };
362
307
  NavMenu.Item = Item;
363
308
  NavMenu.Sub = Sub;
364
309
  export default NavMenu;
@@ -1,2 +1,8 @@
1
- export const HorizontalStyle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, {}, {}>;
2
- export const InlineStyle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, {}, {}>;
1
+ type NavMenuBaseProps = {
2
+ $bgColor: string;
3
+ $textColor: string;
4
+ $activeTextColor: string;
5
+ };
6
+ export declare const HorizontalStyle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & NavMenuBaseProps & import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, {}, {}>;
7
+ export declare const InlineStyle: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & NavMenuBaseProps & import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, {}, {}>;
8
+ export {};
@@ -1,5 +1,7 @@
1
1
  import { styled } from '../Theme';
2
- const NavMenuBase = styled('nav')`
2
+ const NavMenuBase = styled('nav', {
3
+ shouldForwardProp: prop => prop !== '$bgColor' && prop !== '$textColor' && prop !== '$activeTextColor'
4
+ })`
3
5
  background-color: ${props => props.$bgColor};
4
6
  font-size: 16px;
5
7
  // width: 100%;
@@ -1,2 +1,14 @@
1
- declare const _default: (props: any) => import("react/jsx-runtime").JSX.Element;
1
+ declare const _default: (props: {
2
+ animationTimer: any;
3
+ blockScrollDown: any;
4
+ blockScrollUp: any;
5
+ children: any;
6
+ height: any;
7
+ width: any;
8
+ customPageNumber: any;
9
+ onScrollUnavailable: any;
10
+ onChange: any;
11
+ renderAllPagesOnFirstRender: any;
12
+ transitionTimingFunction: any;
13
+ }) => import("react/jsx-runtime").JSX.Element;
2
14
  export default _default;
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import PropTypes from 'prop-types';
3
3
  import upperFirst from 'lodash/upperFirst';
4
4
  import { Box } from '@mui/material';
5
- import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
6
5
  import RevokeIcon from '@arcblock/icons/lib/RevokeIcon';
7
6
  import NFTDisplay from '../NFTDisplay';
7
+ import { useLocaleContext } from '../Locale/context';
8
8
  export default function Passport({
9
9
  passport,
10
10
  user,
@@ -1,2 +1,4 @@
1
- declare const _default: (props: any) => import("react/jsx-runtime").JSX.Element;
1
+ declare const _default: (props: {
2
+ plans: any;
3
+ }) => import("react/jsx-runtime").JSX.Element;
2
4
  export default _default;
@@ -8,7 +8,7 @@ declare function RelativeTime({ value, locale, withoutSuffix, from, to, type, tz
8
8
  type: any;
9
9
  tz: any;
10
10
  relativeRange: any;
11
- }): import("react/jsx-runtime").JSX.Element | "-";
11
+ }): "-" | import("react/jsx-runtime").JSX.Element;
12
12
  declare namespace RelativeTime {
13
13
  namespace propTypes {
14
14
  let value: PropTypes.Validator<NonNullable<NonNullable<string | number | null | undefined>>>;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { styled } from '@arcblock/ux/lib/Theme';
3
2
  import PropTypes from 'prop-types';
4
3
  import phone from './shells/Phone';
5
4
  import macbook from './shells/Macbook';
5
+ import { styled } from '../../Theme';
6
6
  const map = {
7
7
  phone,
8
8
  macbook
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import MenuItem, { MenuItemProps } from '@mui/material/MenuItem';
4
3
  import { ButtonGroupProps } from '@mui/material/ButtonGroup';
5
4
  import { ButtonProps } from '@mui/material/Button';
@@ -11,24 +10,6 @@ export interface SplitButtonProps extends Omit<ButtonGroupProps, 'children'> {
11
10
  }
12
11
  declare function SplitButton(props: SplitButtonProps): import("react/jsx-runtime").JSX.Element;
13
12
  declare namespace SplitButton {
14
- var propTypes: {
15
- size: PropTypes.Requireable<string>;
16
- color: PropTypes.Requireable<string>;
17
- menu: PropTypes.Requireable<NonNullable<any[] | PropTypes.ReactNodeLike>>;
18
- children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
- variant: PropTypes.Requireable<string>;
20
- onClick: PropTypes.Requireable<(...args: any[]) => any>;
21
- menuButtonProps: PropTypes.Requireable<object>;
22
- };
23
- var defaultProps: {
24
- size: string;
25
- color: string;
26
- menu: never[];
27
- children: null;
28
- variant: string;
29
- onClick: (...args: any[]) => void;
30
- menuButtonProps: {};
31
- };
32
13
  var Item: import("@mui/material").ExtendButtonBase<import("@mui/material/MenuItem").MenuItemTypeMap<{}, "li">>;
33
14
  }
34
15
  export default SplitButton;
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import React, { useState, useRef, isValidElement, createElement as _createElement } from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import ExpandMore from '@mui/icons-material/ExpandMore';
5
4
  import Popper from '@mui/material/Popper';
6
5
  import Paper from '@mui/material/Paper';
@@ -13,13 +12,13 @@ import noop from 'lodash/noop';
13
12
  import { styled } from '../Theme';
14
13
  export default function SplitButton(props) {
15
14
  const {
16
- size,
17
- color,
18
- menu,
19
- children,
20
- variant,
21
- onClick,
22
- menuButtonProps,
15
+ size = 'medium',
16
+ color = 'primary',
17
+ menu = [],
18
+ children = null,
19
+ variant = 'contained',
20
+ onClick = noop,
21
+ menuButtonProps = {},
23
22
  ...rest
24
23
  } = props;
25
24
  const [open, setOpen] = useState(false);
@@ -79,25 +78,6 @@ export default function SplitButton(props) {
79
78
  })]
80
79
  });
81
80
  }
82
- SplitButton.propTypes = {
83
- size: PropTypes.string,
84
- color: PropTypes.string,
85
- menu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
86
- // 也可以是用于渲染主按钮的 function
87
- children: PropTypes.node,
88
- variant: PropTypes.oneOf(['outlined', 'contained']),
89
- onClick: PropTypes.func,
90
- menuButtonProps: PropTypes.object
91
- };
92
- SplitButton.defaultProps = {
93
- size: 'medium',
94
- color: 'primary',
95
- menu: [],
96
- children: null,
97
- variant: 'contained',
98
- onClick: noop,
99
- menuButtonProps: {}
100
- };
101
81
  SplitButton.Item = MenuItem;
102
82
  const StyledButtonGroup = styled(ButtonGroup)`
103
83
  > .MuiButtonBase-root:last-of-type {
@@ -1,2 +1,11 @@
1
- declare const _default: (props: any) => import("react/jsx-runtime").JSX.Element;
1
+ declare const _default: (props: {
2
+ [x: string]: any;
3
+ children: any;
4
+ startChars: any;
5
+ endChars: any;
6
+ scaleFactor: any;
7
+ maxWidth: any;
8
+ style: any;
9
+ fontType: any;
10
+ }) => import("react/jsx-runtime").JSX.Element;
2
11
  export default _default;
@@ -1,14 +1,6 @@
1
- export * from "./theme";
2
- export { default as ThemeProvider } from "./theme-provider";
3
- export { useTheme };
4
- /**
5
- * @typedef {import('@mui/material/styles').Theme} Theme
6
- * @typedef {import('@mui/material/styles').CreateMUIStyled<Theme>} Styled
7
- */
8
- /**
9
- * @type {Styled}
10
- */
11
- export const styled: Styled;
12
- export type Theme = import("@mui/material/styles").Theme;
13
- export type Styled = import("@mui/material/styles").CreateMUIStyled<Theme>;
1
+ import { CreateMUIStyled, Theme } from '@mui/material';
14
2
  import { useTheme } from '@mui/material/styles';
3
+ export * from './theme';
4
+ export { default as ThemeProvider } from './theme-provider';
5
+ export { useTheme };
6
+ export declare const styled: CreateMUIStyled<Theme>;
@@ -1,22 +1,15 @@
1
+ /* eslint-disable no-unused-vars */
2
+
1
3
  import { styled as muiStyled, useTheme } from '@mui/material/styles';
2
4
  export * from './theme';
3
5
  export { default as ThemeProvider } from './theme-provider';
4
6
  export { useTheme };
5
7
  const isTransientProp = prop => prop.startsWith('$');
6
-
7
- /**
8
- * @typedef {import('@mui/material/styles').Theme} Theme
9
- * @typedef {import('@mui/material/styles').CreateMUIStyled<Theme>} Styled
10
- */
11
-
12
- /**
13
- * @type {Styled}
14
- */
15
- export const styled = (component, options = {}) => {
8
+ export const styled = (component, options) => {
16
9
  return muiStyled(component, {
17
10
  ...options,
18
11
  shouldForwardProp: prop => {
19
- if (options.shouldForwardProp) {
12
+ if (options?.shouldForwardProp) {
20
13
  return options.shouldForwardProp(prop) && !isTransientProp(prop);
21
14
  }
22
15
  return !isTransientProp(prop);
@@ -1,25 +1,23 @@
1
+ import PropTypes from 'prop-types';
2
+ import { Theme } from '@mui/material/styles';
1
3
  /**
2
4
  * 默认的 theme provider, 可以为 webapp/blocklet 快捷的配置好 mui theme provider
3
5
  */
4
- declare function ThemeProvider({ children, theme, injectFirst }: {
5
- children: any;
6
- theme: any;
7
- injectFirst: any;
6
+ declare function ThemeProvider({ children, theme, injectFirst, }: {
7
+ children: React.ReactNode;
8
+ theme: Theme;
9
+ injectFirst: boolean;
8
10
  }): import("react/jsx-runtime").JSX.Element;
9
11
  declare namespace ThemeProvider {
10
- namespace propTypes {
11
- let children: PropTypes.Requireable<any>;
12
- let theme: PropTypes.Requireable<any>;
13
- let injectFirst: PropTypes.Requireable<boolean>;
14
- }
15
- namespace defaultProps {
16
- let children_1: null;
17
- export { children_1 as children };
18
- export { defaultTheme as theme };
19
- let injectFirst_1: boolean;
20
- export { injectFirst_1 as injectFirst };
21
- }
12
+ var propTypes: {
13
+ children: PropTypes.Requireable<any>;
14
+ theme: PropTypes.Requireable<any>;
15
+ injectFirst: PropTypes.Requireable<boolean>;
16
+ };
17
+ var defaultProps: {
18
+ children: null;
19
+ theme: Theme;
20
+ injectFirst: boolean;
21
+ };
22
22
  }
23
23
  export default ThemeProvider;
24
- import PropTypes from 'prop-types';
25
- declare const defaultTheme: import("@mui/material/styles").Theme;
@@ -1,17 +1,43 @@
1
- export function create({ mode, pageWidth, palette, typography, overrides, ...rest }?: {
1
+ import { Components, type Theme, type ThemeOptions } from '@mui/material/styles';
2
+ import { Typography, TypographyOptions } from '@mui/material/styles/createTypography';
3
+ import '@fontsource/inter/latin-300.css';
4
+ import '@fontsource/inter/latin-400.css';
5
+ import '@fontsource/inter/latin-500.css';
6
+ import '@fontsource/inter/latin-700.css';
7
+ import '@fontsource/inter/latin-ext-300.css';
8
+ import '@fontsource/inter/latin-ext-400.css';
9
+ import '@fontsource/inter/latin-ext-500.css';
10
+ import '@fontsource/inter/latin-ext-700.css';
11
+ declare module '@mui/material/styles/createTheme' {
12
+ interface Theme {
13
+ mode?: string;
14
+ themeName?: string;
15
+ pageWidth?: string;
16
+ colors?: Record<string, string>;
17
+ typography: Typography & {
18
+ useNextVariants: boolean;
19
+ color: Record<string, string>;
20
+ button: {
21
+ fontWeight?: number;
22
+ };
23
+ };
24
+ }
25
+ interface ThemeOptions {
26
+ mode?: string;
27
+ themeName?: string;
28
+ pageWidth?: string;
29
+ colors?: Record<string, string>;
30
+ }
31
+ }
32
+ export declare const create: ({ mode, pageWidth, typography, overrides, palette, components, ...rest }?: {
2
33
  mode?: string;
3
34
  pageWidth?: string;
4
- palette?: import("@mui/material/styles").PaletteOptions;
5
- typography?: TypographyVariantsOptions;
35
+ typography?: TypographyOptions;
6
36
  overrides?: Components<Omit<Theme, "components">>;
7
- }): Theme;
8
- export function createTheme({ mode, pageWidth, palette, typography, overrides, ...rest }?: {
37
+ } & ThemeOptions) => Theme;
38
+ export declare const createTheme: ({ mode, pageWidth, typography, overrides, palette, components, ...rest }?: {
9
39
  mode?: string;
10
40
  pageWidth?: string;
11
- palette?: import("@mui/material/styles").PaletteOptions;
12
- typography?: TypographyVariantsOptions;
41
+ typography?: TypographyOptions;
13
42
  overrides?: Components<Omit<Theme, "components">>;
14
- }): Theme;
15
- export type Theme = import("@mui/material/styles").Theme;
16
- export type TypographyVariantsOptions = import("@mui/material/styles").TypographyVariantsOptions;
17
- export type Components = import("@mui/material/styles").Components;
43
+ } & ThemeOptions) => Theme;
@@ -1,3 +1,5 @@
1
+ /* eslint-disable no-unused-vars */
2
+ /* eslint-disable no-shadow */
1
3
  // https://app.zeplin.io/styleguide/5d1436f1e97c2156f49c0725/colors
2
4
  import { createTheme as _createTheme, responsiveFontSizes } from '@mui/material/styles';
3
5
  // 为了避免加载全量的字体导致打包后体积太大,目前只选择了 latin 语系的字体
@@ -11,11 +13,7 @@ import '@fontsource/inter/latin-ext-500.css';
11
13
  import '@fontsource/inter/latin-ext-700.css';
12
14
  import colors from '../Colors';
13
15
 
14
- /**
15
- * @typedef {import('@mui/material/styles').Theme} Theme
16
- * @typedef {import('@mui/material/styles').TypographyVariantsOptions} TypographyVariantsOptions
17
- * @typedef {import('@mui/material/styles').Components} Components
18
- */
16
+ // 扩展 Theme 和 ThemeOptions 接口
19
17
 
20
18
  const muiDarkTheme = _createTheme({
21
19
  palette: {
@@ -24,24 +22,15 @@ const muiDarkTheme = _createTheme({
24
22
  });
25
23
 
26
24
  // https://material-ui.com/customization/default-theme/
27
- /**
28
- * @description
29
- * @export
30
- * @param {{
31
- * mode?: string,
32
- * pageWidth?: string,
33
- * palette?: import('@mui/material/styles').PaletteOptions,
34
- * typography?: TypographyVariantsOptions,
35
- * overrides?: Components<Omit<Theme, 'components'>>,
36
- * }} options
37
- * @return {Theme}
38
- */
39
25
  export const create = ({
40
26
  mode = 'light',
41
27
  pageWidth = 'md',
42
- palette,
43
28
  typography,
44
- overrides = {},
29
+ /** @deprecated 使用 components 替代 */
30
+ overrides,
31
+ // original theme options
32
+ palette,
33
+ components,
45
34
  ...rest
46
35
  } = {}) => {
47
36
  // palette 考虑 light & dark mode, dark mode 需要持续完善
@@ -124,11 +113,13 @@ export const create = ({
124
113
  }
125
114
  }
126
115
  },
127
- ...overrides
116
+ ...overrides,
117
+ ...components
128
118
  },
129
119
  pageWidth,
130
- // TODO: 过时的 colors, 需要各项目负责人检查项目中是否使用 "theme.colors", 如果有需要清除,
131
- // 可以从 Colors 模块/theme.palette/mui colors 中取值
120
+ /**
121
+ * @deprecated 应使用 theme.palette 中的颜色
122
+ */
132
123
  colors: {
133
124
  white: '#FFFFFF',
134
125
  dark: '#4A707C',