musae 0.3.3 → 0.3.6

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 (158) hide show
  1. package/dist/components/avatar/avatar.cjs +10 -2
  2. package/dist/components/avatar/avatar.mjs +10 -2
  3. package/dist/components/button/button.cjs +11 -10
  4. package/dist/components/button/button.mjs +7 -6
  5. package/dist/components/calendar/contribution.cjs +251 -0
  6. package/dist/components/calendar/contribution.d.ts +13 -0
  7. package/dist/components/calendar/contribution.mjs +249 -0
  8. package/dist/components/calendar/index.d.ts +2 -1
  9. package/dist/components/config/provider.cjs +2 -2
  10. package/dist/components/config/provider.mjs +2 -2
  11. package/dist/components/drawer/popup.cjs +51 -17
  12. package/dist/components/drawer/popup.d.ts +1 -1
  13. package/dist/components/drawer/popup.mjs +51 -17
  14. package/dist/components/fab/floatable.d.ts +1 -1
  15. package/dist/components/icon/icons/action/delete.cjs +20 -0
  16. package/dist/components/icon/icons/action/delete.d.ts +3 -0
  17. package/dist/components/icon/icons/action/delete.mjs +18 -0
  18. package/dist/components/icon/icons/action/index.cjs +7 -1
  19. package/dist/components/icon/icons/action/index.d.ts +5 -1
  20. package/dist/components/icon/icons/action/index.mjs +6 -2
  21. package/dist/components/icon/icons/action/three-d-rotation.cjs +28 -0
  22. package/dist/components/icon/icons/action/three-d-rotation.d.ts +3 -0
  23. package/dist/components/icon/icons/action/three-d-rotation.mjs +26 -0
  24. package/dist/components/icon/icons/editor/attch-file.cjs +20 -0
  25. package/dist/components/icon/icons/editor/attch-file.d.ts +3 -0
  26. package/dist/components/icon/icons/editor/attch-file.mjs +18 -0
  27. package/dist/components/icon/icons/editor/index.cjs +4 -1
  28. package/dist/components/icon/icons/editor/index.d.ts +3 -1
  29. package/dist/components/icon/icons/editor/index.mjs +4 -2
  30. package/dist/components/icon/icons/index.cjs +6 -0
  31. package/dist/components/icon/icons/index.mjs +3 -0
  32. package/dist/components/image/image.cjs +49 -2
  33. package/dist/components/image/image.d.ts +1 -1
  34. package/dist/components/image/image.mjs +50 -3
  35. package/dist/components/image/index.d.ts +1 -1
  36. package/dist/components/image/preview/preview.cjs +8 -3
  37. package/dist/components/image/preview/preview.mjs +8 -3
  38. package/dist/components/menu/hooks.d.ts +1 -2
  39. package/dist/components/menu/item.d.ts +2 -3
  40. package/dist/components/pagination/pagination.cjs +1 -1
  41. package/dist/components/pagination/pagination.mjs +2 -2
  42. package/dist/components/popover/popover.cjs +1 -1
  43. package/dist/components/popover/popover.mjs +1 -1
  44. package/dist/components/popper/dropdown.cjs +44 -19
  45. package/dist/components/popper/dropdown.mjs +46 -21
  46. package/dist/components/popper/hooks.cjs +88 -89
  47. package/dist/components/popper/hooks.d.ts +7 -13
  48. package/dist/components/popper/hooks.mjs +91 -91
  49. package/dist/components/rich-text-editor/plugins/controlled-state/index.cjs +1 -2
  50. package/dist/components/rich-text-editor/plugins/controlled-state/index.mjs +1 -2
  51. package/dist/components/rich-text-editor/plugins/markdown-shortcut/index.cjs +5 -4
  52. package/dist/components/rich-text-editor/plugins/markdown-shortcut/index.d.ts +3 -3
  53. package/dist/components/rich-text-editor/plugins/markdown-shortcut/index.mjs +3 -4
  54. package/dist/components/rich-text-editor/rich-text-editor.cjs +5 -5
  55. package/dist/components/rich-text-editor/rich-text-editor.mjs +3 -3
  56. package/dist/components/select/utils.cjs +1 -3
  57. package/dist/components/select/utils.d.ts +1 -1
  58. package/dist/components/select/utils.mjs +2 -4
  59. package/dist/components/skeleton/skeleton.cjs +5 -48
  60. package/dist/components/skeleton/skeleton.d.ts +1 -1
  61. package/dist/components/skeleton/skeleton.mjs +5 -48
  62. package/dist/components/steps/context.d.ts +1 -1
  63. package/dist/components/steps/item.d.ts +1 -1
  64. package/dist/components/steps/steps.d.ts +1 -1
  65. package/dist/components/switch/switch.cjs +7 -6
  66. package/dist/components/switch/switch.d.ts +1 -1
  67. package/dist/components/switch/switch.mjs +8 -7
  68. package/dist/components/table/body.cjs +3 -1
  69. package/dist/components/table/body.mjs +3 -1
  70. package/dist/components/tabs/context.d.ts +1 -1
  71. package/dist/components/tabs/hooks.d.ts +2 -2
  72. package/dist/components/tabs/navigation.d.ts +1 -1
  73. package/dist/components/tabs/panels.d.ts +1 -1
  74. package/dist/components/tabs/tab.d.ts +1 -1
  75. package/dist/components/tabs/tabs.d.ts +1 -1
  76. package/dist/components/tag/tag.d.ts +1 -1
  77. package/dist/components/theme/hooks.cjs +6 -6
  78. package/dist/components/theme/hooks.d.ts +1 -1
  79. package/dist/components/theme/hooks.mjs +6 -6
  80. package/dist/components/theme/theme-provider.cjs +12 -6
  81. package/dist/components/theme/theme-provider.d.ts +2 -2
  82. package/dist/components/theme/theme-provider.mjs +12 -6
  83. package/dist/components/time-picker/hooks.d.ts +1 -1
  84. package/dist/components/time-picker/panel.d.ts +1 -1
  85. package/dist/components/time-picker/time-picker.d.ts +1 -1
  86. package/dist/components/timeline/context.d.ts +1 -1
  87. package/dist/components/timeline/item.d.ts +1 -1
  88. package/dist/components/timeline/timeline.d.ts +1 -1
  89. package/dist/components/tooltip/tooltip.d.ts +1 -1
  90. package/dist/components/transfer/context.d.ts +1 -1
  91. package/dist/components/transfer/hooks.d.ts +1 -1
  92. package/dist/components/transfer/item.d.ts +1 -1
  93. package/dist/components/transfer/list.d.ts +1 -1
  94. package/dist/components/transfer/transfer.d.ts +1 -1
  95. package/dist/components/upload/upload.cjs +31 -6
  96. package/dist/components/upload/upload.d.ts +2 -2
  97. package/dist/components/upload/upload.mjs +31 -6
  98. package/dist/components/upload/uploadeds.cjs +119 -55
  99. package/dist/components/upload/uploadeds.d.ts +1 -1
  100. package/dist/components/upload/uploadeds.mjs +121 -57
  101. package/dist/components/upload/utils.cjs +9 -0
  102. package/dist/components/upload/utils.d.ts +6 -0
  103. package/dist/components/upload/utils.mjs +9 -0
  104. package/dist/components/visually-hidden/visually-hidden.d.ts +1 -1
  105. package/dist/components/waterfall/sequential.d.ts +1 -1
  106. package/dist/components/waterfall/waterfall.d.ts +1 -1
  107. package/dist/components/watermark/hooks.d.ts +1 -1
  108. package/dist/components/watermark/watermark.d.ts +1 -1
  109. package/dist/hooks/use-class-names.d.ts +4 -0
  110. package/dist/hooks/use-closable.cjs +0 -8
  111. package/dist/hooks/use-closable.mjs +0 -8
  112. package/dist/hooks/use-container.d.ts +1 -1
  113. package/dist/hooks/use-lazy-boolean.cjs +2 -2
  114. package/dist/hooks/use-lazy-boolean.mjs +2 -2
  115. package/dist/index.cjs +2 -0
  116. package/dist/index.d.ts +1 -1
  117. package/dist/index.mjs +1 -0
  118. package/dist/locale/locales/en_US.cjs +5 -1
  119. package/dist/locale/locales/en_US.mjs +5 -1
  120. package/dist/locale/locales/zh_CN.cjs +5 -1
  121. package/dist/locale/locales/zh_CN.mjs +5 -1
  122. package/dist/styles.css +16 -7
  123. package/dist/types/drawer.d.ts +5 -0
  124. package/dist/types/element.d.ts +1 -56
  125. package/dist/types/form.d.ts +39 -1
  126. package/dist/types/image.d.ts +1 -0
  127. package/dist/types/locale.d.ts +6 -0
  128. package/dist/types/menu.d.ts +8 -3
  129. package/dist/types/popper.d.ts +1 -1
  130. package/dist/types/skeleton.d.ts +0 -7
  131. package/dist/{components/theme/types.d.ts → types/theme.d.ts} +1 -1
  132. package/dist/types/tree.d.ts +7 -2
  133. package/dist/{components/upload/types.d.ts → types/upload.d.ts} +59 -22
  134. package/dist/{components/waterfall/types.d.ts → types/waterfall.d.ts} +3 -3
  135. package/dist/utils/class-name.cjs +5 -1
  136. package/dist/utils/class-name.d.ts +12 -1
  137. package/dist/utils/class-name.mjs +6 -2
  138. package/dist/utils/colors.cjs +0 -10
  139. package/dist/utils/colors.d.ts +1 -4
  140. package/dist/utils/colors.mjs +1 -10
  141. package/dist/utils/component-token.cjs +2 -0
  142. package/dist/utils/component-token.d.ts +3 -1
  143. package/dist/utils/component-token.mjs +2 -0
  144. package/dist/utils/date.cjs +13 -0
  145. package/dist/utils/date.d.ts +6 -0
  146. package/dist/utils/date.mjs +13 -0
  147. package/package.json +25 -25
  148. package/dist/components/icon/icons/three-dimension-rotation.d.ts +0 -3
  149. /package/dist/{components/steps/types.d.ts → types/steps.d.ts} +0 -0
  150. /package/dist/{components/switch/types.d.ts → types/switch.d.ts} +0 -0
  151. /package/dist/{components/tabs/types.d.ts → types/tabs.d.ts} +0 -0
  152. /package/dist/{components/tag/types.d.ts → types/tag.d.ts} +0 -0
  153. /package/dist/{components/time-picker/types.d.ts → types/time-picker.d.ts} +0 -0
  154. /package/dist/{components/timeline/types.d.ts → types/timeline.d.ts} +0 -0
  155. /package/dist/{components/tooltip/types.d.ts → types/tooltip.d.ts} +0 -0
  156. /package/dist/{components/transfer/types.d.ts → types/transfer.d.ts} +0 -0
  157. /package/dist/{components/visually-hidden/types.d.ts → types/visually-hidden.d.ts} +0 -0
  158. /package/dist/{components/watermark/types.d.ts → types/watermark.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import type { TimePickerProps } from "./types";
1
+ import type { TimePickerProps } from "musae/types/time-picker";
2
2
  import dayjs from "dayjs";
3
3
  import { type RefObject } from "react";
4
4
  import type { PickerRef } from "musae/types/picker";
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { PanelProps, PanelRef } from "./types";
2
+ import type { PanelProps, PanelRef } from "musae/types/time-picker";
3
3
  declare const Panel: React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<PanelRef>>;
4
4
  export default Panel;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { TimePickerProps } from "./types";
2
+ import type { TimePickerProps } from "musae/types/time-picker";
3
3
  declare const TimePicker: ({ className, ...props }: TimePickerProps) => React.JSX.Element;
4
4
  export default TimePicker;
@@ -1,2 +1,2 @@
1
- import { ContextValue } from "./types";
1
+ import type { ContextValue } from "musae/types/timeline";
2
2
  export declare const Context: import("react").Context<ContextValue>;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import { TimelineItemProps } from "./types";
2
+ import type { TimelineItemProps } from "musae/types/timeline";
3
3
  declare const Item: ({ description, label, value, dot }: TimelineItemProps) => React.JSX.Element;
4
4
  export default Item;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { TimelineProps } from "./types";
2
+ import type { TimelineProps } from "musae/types/timeline";
3
3
  declare const Timeline: ({ items, mode, size }: TimelineProps) => React.JSX.Element;
4
4
  export default Timeline;
@@ -1,4 +1,4 @@
1
- import { TooltipProps } from "./types";
1
+ import type { TooltipProps } from "musae/types/tooltip";
2
2
  import React from "react";
3
3
  declare const Tooltip: ({ children, className, style, title }: TooltipProps) => React.JSX.Element;
4
4
  export default Tooltip;
@@ -1,4 +1,4 @@
1
- import { ContextValue } from "./types";
1
+ import type { ContextValue } from "musae/types/transfer";
2
2
  /**
3
3
  * @description
4
4
  * transfer context
@@ -1,5 +1,5 @@
1
1
  import { type Key } from "react";
2
- import type { TransferOption } from "./types";
2
+ import type { TransferOption } from "musae/types/transfer";
3
3
  /**
4
4
  * @description
5
5
  * options
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { TransferItemProps } from "./types";
2
+ import type { TransferItemProps } from "musae/types/transfer";
3
3
  declare const Item: ({ value, label }: TransferItemProps) => React.JSX.Element;
4
4
  export default Item;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { TransferListProps } from "./types";
2
+ import type { TransferListProps } from "musae/types/transfer";
3
3
  declare const List: ({ options, title, onChange, value }: TransferListProps) => React.JSX.Element;
4
4
  export default List;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { TransferProps } from "./types";
2
+ import type { TransferProps } from "musae/types/transfer";
3
3
  declare const Transfer: ({ options, value, titles, disabled, className, style, }: TransferProps) => React.JSX.Element;
4
4
  export default Transfer;
@@ -1,10 +1,14 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
2
 
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
5
  var React = require('react');
5
6
  var relax = require('@aiszlab/relax');
6
7
  var keyboard = require('../../utils/keyboard.cjs');
7
8
  var uploadeds = require('./uploadeds.cjs');
9
+ var button = require('../button/button.cjs');
10
+ var useLocale = require('../../locale/use-locale.cjs');
11
+ var componentToken = require('../../utils/component-token.cjs');
8
12
 
9
13
  var Upload = function Upload(_ref) {
10
14
  var _onClick = _ref.onClick,
@@ -12,9 +16,15 @@ var Upload = function Upload(_ref) {
12
16
  multiple = _ref.multiple,
13
17
  _children = _ref.children,
14
18
  uploader = _ref.uploader,
15
- onError = _ref.onError;
19
+ onError = _ref.onError,
20
+ value = _ref.value,
21
+ onChange = _ref.onChange,
22
+ limit = _ref.limit;
16
23
  var inputRef = React.useRef(null);
17
24
  var uploadedsRef = React.useRef(null);
25
+ var _useLocale = useLocale.useLocale(componentToken.ComponentToken.Upload),
26
+ _useLocale2 = _slicedToArray(_useLocale, 1),
27
+ _locale = _useLocale2[0];
18
28
  // file upload
19
29
  var upload = relax.useEvent(function (files) {
20
30
  files.forEach(function (file) {
@@ -22,7 +32,7 @@ var Upload = function Upload(_ref) {
22
32
  (_uploadedsRef$current = uploadedsRef.current) === null || _uploadedsRef$current === void 0 || _uploadedsRef$current.add(file);
23
33
  });
24
34
  });
25
- var onChange = relax.useEvent(function (e) {
35
+ var _onChange = relax.useEvent(function (e) {
26
36
  var files = e.target.files;
27
37
  if (!files) return;
28
38
  upload(Array.from(files));
@@ -45,17 +55,28 @@ var Upload = function Upload(_ref) {
45
55
  upload(files);
46
56
  };
47
57
  var styled = {
58
+ upload: {
59
+ className: "musaex-78zum5 musaex-dt5ytf musaex-1lsrmdg"
60
+ },
48
61
  input: {
49
62
  className: "musaex-1s85apg"
50
63
  }
51
64
  };
52
65
  var children = React.useMemo(function () {
66
+ if (!_children) {
67
+ return /*#__PURE__*/React.createElement(button.Button, {
68
+ disabled: disabled
69
+ }, _locale.upload);
70
+ }
53
71
  // @ts-ignore
54
72
  return /*#__PURE__*/React.cloneElement(_children, {
55
73
  disabled: disabled
56
74
  });
57
- }, [_children, disabled]);
58
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", _objectSpread({}, !disabled && {
75
+ }, [_children, disabled, _locale]);
76
+ return /*#__PURE__*/React.createElement("div", {
77
+ className: styled.upload.className,
78
+ style: styled.upload.style
79
+ }, /*#__PURE__*/React.createElement("div", _objectSpread({}, !disabled && {
59
80
  onClick: onClick,
60
81
  onKeyDown: onKeyDown,
61
82
  onDrop: onDrop,
@@ -63,17 +84,21 @@ var Upload = function Upload(_ref) {
63
84
  }), /*#__PURE__*/React.createElement("input", {
64
85
  ref: inputRef,
65
86
  type: "file",
87
+ value: "",
66
88
  onClick: function onClick(e) {
67
89
  return e.stopPropagation();
68
90
  },
69
91
  className: styled.input.className,
70
92
  style: styled.input.style,
71
93
  multiple: multiple,
72
- onChange: onChange
94
+ onChange: _onChange
73
95
  }), children), /*#__PURE__*/React.createElement(uploadeds.default, {
74
96
  ref: uploadedsRef,
97
+ value: value,
75
98
  uploader: uploader,
76
- onError: onError
99
+ onError: onError,
100
+ onChange: onChange,
101
+ limit: limit
77
102
  }));
78
103
  };
79
104
 
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import { UploadProps } from "./types";
3
- declare const Upload: ({ onClick: _onClick, disabled, multiple, children: _children, uploader, onError }: UploadProps) => React.JSX.Element;
2
+ import type { UploadProps } from "musae/types/upload";
3
+ declare const Upload: ({ onClick: _onClick, disabled, multiple, children: _children, uploader, onError, value, onChange, limit, }: UploadProps) => React.JSX.Element;
4
4
  export default Upload;
@@ -1,8 +1,12 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
3
  import React, { useRef, useMemo, cloneElement } from 'react';
3
4
  import { useEvent } from '@aiszlab/relax';
4
5
  import { Keyboard } from '../../utils/keyboard.mjs';
5
6
  import Uploadeds from './uploadeds.mjs';
7
+ import { Button } from '../button/button.mjs';
8
+ import { useLocale } from '../../locale/use-locale.mjs';
9
+ import { ComponentToken } from '../../utils/component-token.mjs';
6
10
 
7
11
  var Upload = function Upload(_ref) {
8
12
  var _onClick = _ref.onClick,
@@ -10,9 +14,15 @@ var Upload = function Upload(_ref) {
10
14
  multiple = _ref.multiple,
11
15
  _children = _ref.children,
12
16
  uploader = _ref.uploader,
13
- onError = _ref.onError;
17
+ onError = _ref.onError,
18
+ value = _ref.value,
19
+ onChange = _ref.onChange,
20
+ limit = _ref.limit;
14
21
  var inputRef = useRef(null);
15
22
  var uploadedsRef = useRef(null);
23
+ var _useLocale = useLocale(ComponentToken.Upload),
24
+ _useLocale2 = _slicedToArray(_useLocale, 1),
25
+ _locale = _useLocale2[0];
16
26
  // file upload
17
27
  var upload = useEvent(function (files) {
18
28
  files.forEach(function (file) {
@@ -20,7 +30,7 @@ var Upload = function Upload(_ref) {
20
30
  (_uploadedsRef$current = uploadedsRef.current) === null || _uploadedsRef$current === void 0 || _uploadedsRef$current.add(file);
21
31
  });
22
32
  });
23
- var onChange = useEvent(function (e) {
33
+ var _onChange = useEvent(function (e) {
24
34
  var files = e.target.files;
25
35
  if (!files) return;
26
36
  upload(Array.from(files));
@@ -43,17 +53,28 @@ var Upload = function Upload(_ref) {
43
53
  upload(files);
44
54
  };
45
55
  var styled = {
56
+ upload: {
57
+ className: "musaex-78zum5 musaex-dt5ytf musaex-1lsrmdg"
58
+ },
46
59
  input: {
47
60
  className: "musaex-1s85apg"
48
61
  }
49
62
  };
50
63
  var children = useMemo(function () {
64
+ if (!_children) {
65
+ return /*#__PURE__*/React.createElement(Button, {
66
+ disabled: disabled
67
+ }, _locale.upload);
68
+ }
51
69
  // @ts-ignore
52
70
  return /*#__PURE__*/cloneElement(_children, {
53
71
  disabled: disabled
54
72
  });
55
- }, [_children, disabled]);
56
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", _objectSpread({}, !disabled && {
73
+ }, [_children, disabled, _locale]);
74
+ return /*#__PURE__*/React.createElement("div", {
75
+ className: styled.upload.className,
76
+ style: styled.upload.style
77
+ }, /*#__PURE__*/React.createElement("div", _objectSpread({}, !disabled && {
57
78
  onClick: onClick,
58
79
  onKeyDown: onKeyDown,
59
80
  onDrop: onDrop,
@@ -61,17 +82,21 @@ var Upload = function Upload(_ref) {
61
82
  }), /*#__PURE__*/React.createElement("input", {
62
83
  ref: inputRef,
63
84
  type: "file",
85
+ value: "",
64
86
  onClick: function onClick(e) {
65
87
  return e.stopPropagation();
66
88
  },
67
89
  className: styled.input.className,
68
90
  style: styled.input.style,
69
91
  multiple: multiple,
70
- onChange: onChange
92
+ onChange: _onChange
71
93
  }), children), /*#__PURE__*/React.createElement(Uploadeds, {
72
94
  ref: uploadedsRef,
95
+ value: value,
73
96
  uploader: uploader,
74
- onError: onError
97
+ onError: onError,
98
+ onChange: onChange,
99
+ limit: limit
75
100
  }));
76
101
  };
77
102
 
@@ -1,72 +1,132 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
2
 
3
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
3
4
  var _regeneratorRuntime = require('@babel/runtime/helpers/regeneratorRuntime');
4
5
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
6
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
6
7
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
8
  var React = require('react');
9
+ var stylex = require('../../node_modules/.pnpm/@stylexjs_stylex@0.7.5/node_modules/@stylexjs/stylex/lib/es/stylex.cjs');
8
10
  var relax = require('@aiszlab/relax');
11
+ var theme = require('../theme/theme.cjs');
12
+ var utils = require('./utils.cjs');
13
+ var path = require('@aiszlab/fuzzy/path');
9
14
  var loading = require('../icon/icons/mock/loading.cjs');
10
- var clear = require('../icon/icons/content/clear.cjs');
15
+ var attchFile = require('../icon/icons/editor/attch-file.cjs');
16
+ var _delete = require('../icon/icons/action/delete.cjs');
11
17
 
18
+ var _excluded = ["key"];
19
+ var styles = {
20
+ item: {
21
+ display: "musaex-78zum5",
22
+ alignItems: "musaex-6s0dn4",
23
+ gap: "musaex-1lsrmdg",
24
+ $$css: true
25
+ }
26
+ };
12
27
  var Uploadeds = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
13
28
  var uploader = _ref.uploader,
14
- onError = _ref.onError;
15
- var _useState = React.useState(new Map()),
16
- _useState2 = _slicedToArray(_useState, 2),
17
- items = _useState2[0],
18
- setItems = _useState2[1];
19
- var _counter = React.useRef(0);
20
- var loaded = relax.useEvent(function (id, status) {
21
- // update uploaded list status
22
- setItems(function (_items) {
23
- var current = _items.get(id);
24
- if (!current) return _items;
25
- return new Map(_items).set(id, _objectSpread(_objectSpread({}, current), {}, {
26
- status: status
27
- }));
28
- });
29
+ onError = _ref.onError,
30
+ value = _ref.value,
31
+ onChange = _ref.onChange,
32
+ _ref$limit = _ref.limit,
33
+ limit = _ref$limit === void 0 ? Infinity : _ref$limit;
34
+ var _useControlledState = relax.useControlledState(value, {
35
+ defaultState: []
36
+ }),
37
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
38
+ values = _useControlledState2[0],
39
+ setValues = _useControlledState2[1];
40
+ var _useIdentity = relax.useIdentity(),
41
+ _useIdentity2 = _slicedToArray(_useIdentity, 2),
42
+ identity = _useIdentity2[1];
43
+ // convert to map, for performance
44
+ var items = React.useMemo(function () {
45
+ return values.reduce(function (prev, _item) {
46
+ var _isControlled = utils.isControlled(_item);
47
+ if (_isControlled) {
48
+ var _item$key;
49
+ var _id = (_item$key = _item.key) !== null && _item$key !== void 0 ? _item$key : _item.url;
50
+ prev.set(_id, {
51
+ key: _id,
52
+ status: "success",
53
+ url: _item.url
54
+ });
55
+ return prev;
56
+ }
57
+ prev.set(_item.key, _item);
58
+ return prev;
59
+ }, new Map());
60
+ }, [values]);
61
+ // when loading status changed
62
+ // use this func to set new status & callback
63
+ var onLoaded = relax.useEvent(function (id, status, _ref2) {
64
+ var url = _ref2.url,
65
+ error = _ref2.error;
66
+ if (!items.has(id)) return;
67
+ var _items = new Map(items);
68
+ var _values = Array.from(_items.set(id, _objectSpread(_objectSpread({}, _items.get(id)), {}, {
69
+ status: status,
70
+ url: url,
71
+ error: error
72
+ })).values());
73
+ setValues(_values);
74
+ // change handler
75
+ onChange === null || onChange === void 0 || onChange(_values);
29
76
  });
30
77
  React.useImperativeHandle(ref, function () {
31
78
  return {
32
79
  add: function () {
33
80
  var _add = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
34
- var hasUploader, status, id, url;
81
+ var _hasUploader, _isOnlyOne, _isOverLimit, _key, _values, _url;
35
82
  return _regeneratorRuntime().wrap(function _callee$(_context) {
36
83
  while (1) switch (_context.prev = _context.next) {
37
84
  case 0:
38
- hasUploader = !!uploader;
39
- status = hasUploader ? "loading" : "success"; // push current file
40
- id = _counter.current++;
41
- setItems(function (items) {
42
- return new Map(items).set(id, {
43
- file: file,
44
- status: status
45
- });
46
- });
47
- // call request by user provided
48
- if (hasUploader) {
49
- _context.next = 6;
85
+ _hasUploader = !!uploader;
86
+ _isOnlyOne = limit === 1;
87
+ _isOverLimit = items.size >= limit; // over `limit`
88
+ if (!(_isOverLimit && !_isOnlyOne)) {
89
+ _context.next = 5;
50
90
  break;
51
91
  }
52
92
  return _context.abrupt("return");
53
- case 6:
54
- _context.next = 8;
55
- return uploader(file)["catch"](function (error) {
56
- loaded(id, "error");
57
- onError === null || onError === void 0 || onError(error);
58
- return null;
59
- });
60
- case 8:
61
- url = _context.sent;
62
- if (url) {
93
+ case 5:
94
+ // show loading in `add` trigger
95
+ _key = identity();
96
+ _values = Array.from(new Map(_isOnlyOne ? [] : items).set(_key, {
97
+ key: _key,
98
+ file: file,
99
+ status: _hasUploader ? "loading" : "success"
100
+ }).values());
101
+ setValues(_values);
102
+ onChange === null || onChange === void 0 || onChange(_values);
103
+ // when no uploader, use original file
104
+ if (_hasUploader) {
63
105
  _context.next = 11;
64
106
  break;
65
107
  }
66
108
  return _context.abrupt("return");
67
109
  case 11:
68
- loaded(id, "success");
69
- case 12:
110
+ _context.next = 13;
111
+ return uploader(file)["catch"](function (error) {
112
+ return new Error(error.message);
113
+ });
114
+ case 13:
115
+ _url = _context.sent;
116
+ if (!(_url instanceof Error)) {
117
+ _context.next = 18;
118
+ break;
119
+ }
120
+ onLoaded(_key, "error", {
121
+ error: _url
122
+ });
123
+ onError === null || onError === void 0 || onError(_url);
124
+ return _context.abrupt("return");
125
+ case 18:
126
+ onLoaded(_key, "success", {
127
+ url: _url
128
+ });
129
+ case 19:
70
130
  case "end":
71
131
  return _context.stop();
72
132
  }
@@ -79,33 +139,37 @@ var Uploadeds = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
79
139
  }()
80
140
  };
81
141
  });
82
- var remove = relax.useEvent(function (id) {
83
- setItems(function (_items) {
84
- var next = new Map(_items);
85
- next["delete"](id);
86
- return next;
87
- });
142
+ var remove = relax.useEvent(function (key) {
143
+ var _items = new Map(items);
144
+ _items["delete"](key);
145
+ var _values = Array.from(_items.values());
146
+ setValues(_values);
147
+ onChange === null || onChange === void 0 || onChange(_values);
88
148
  });
89
149
  var styled = {
90
150
  uploadeds: {
91
- className: "musaex-78zum5 musaex-dt5ytf musaex-4ttznp"
151
+ className: "musaex-78zum5 musaex-dt5ytf musaex-1lsrmdg"
92
152
  },
93
- item: {
94
- className: "musaex-78zum5 musaex-6s0dn4 musaex-1lsrmdg"
153
+ item: stylex.default.props(styles.item, theme.typography.body.small),
154
+ filename: {
155
+ className: "musaex-98rzlu musaex-b3r6kr musaex-lyipyv"
95
156
  }
96
157
  };
97
158
  return /*#__PURE__*/React.createElement("div", {
98
159
  className: styled.uploadeds.className,
99
160
  style: styled.uploadeds.style
100
- }, Array.from(items.entries()).map(function (_ref2) {
101
- var _ref3 = _slicedToArray(_ref2, 2),
102
- key = _ref3[0],
103
- item = _ref3[1];
161
+ }, Array.from(items.values()).map(function (_ref3) {
162
+ var _item$file$name, _item$file, _item$url;
163
+ var key = _ref3.key,
164
+ item = _objectWithoutProperties(_ref3, _excluded);
104
165
  return /*#__PURE__*/React.createElement("div", {
105
166
  key: key,
106
167
  className: styled.item.className,
107
168
  style: styled.item.style
108
- }, /*#__PURE__*/React.createElement(loading.default, null), item.file.name, /*#__PURE__*/React.createElement(clear.default, {
169
+ }, item.status === "loading" && /*#__PURE__*/React.createElement(loading.default, null), item.status !== "loading" && /*#__PURE__*/React.createElement(attchFile.default, null), /*#__PURE__*/React.createElement("span", {
170
+ className: styled.filename.className,
171
+ style: styled.filename.style
172
+ }, (_item$file$name = (_item$file = item.file) === null || _item$file === void 0 ? void 0 : _item$file.name) !== null && _item$file$name !== void 0 ? _item$file$name : path.leaf((_item$url = item.url) !== null && _item$url !== void 0 ? _item$url : "")), /*#__PURE__*/React.createElement(_delete.default, {
109
173
  onClick: function onClick() {
110
174
  return remove(key);
111
175
  }
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import type { UploadedsProps, UploadedsRef } from "./types";
2
+ import type { UploadedsProps, UploadedsRef } from "musae/types/upload";
3
3
  declare const Uploadeds: React.ForwardRefExoticComponent<UploadedsProps & React.RefAttributes<UploadedsRef>>;
4
4
  export default Uploadeds;