@bioturing/components 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +91 -0
  3. package/dist/Badge.js +41 -0
  4. package/dist/Breadcrumb.js +92 -0
  5. package/dist/Checkbox.js +13 -0
  6. package/dist/CodeBlock.js +497 -0
  7. package/dist/Collapse.js +50 -0
  8. package/dist/DSRoot.js +1024 -0
  9. package/dist/DropdownMenu.js +206 -0
  10. package/dist/Empty.js +53 -0
  11. package/dist/Field.js +69 -0
  12. package/dist/Form.js +126 -0
  13. package/dist/IconButton.js +83 -0
  14. package/dist/Input.js +49 -0
  15. package/dist/Modal.js +430 -0
  16. package/dist/Popover.js +10 -0
  17. package/dist/Radio.js +24 -0
  18. package/dist/ScrollArea.js +47 -0
  19. package/dist/Segmented.js +10 -0
  20. package/dist/Select.js +41 -0
  21. package/dist/Slider.js +39 -0
  22. package/dist/Spin.js +33 -0
  23. package/dist/Splitter.js +47 -0
  24. package/dist/Switch.js +10 -0
  25. package/dist/Table.js +125 -0
  26. package/dist/Tag.js +24 -0
  27. package/dist/ThemeProvider.js +261 -0
  28. package/dist/Toast.js +1009 -0
  29. package/dist/Tooltip.js +36 -0
  30. package/dist/Tour.js +54 -0
  31. package/dist/Tree.js +318 -0
  32. package/dist/Truncate.js +160 -0
  33. package/dist/Upload.js +419 -0
  34. package/dist/VerticalCollapsiblePanel.js +414 -0
  35. package/dist/assets/src/icons/ANOVAAnalysis.d.ts +7 -0
  36. package/dist/assets/src/icons/AUCell.d.ts +7 -0
  37. package/dist/assets/src/icons/Alphabet.d.ts +7 -0
  38. package/dist/assets/src/icons/BarChart.d.ts +7 -0
  39. package/dist/assets/src/icons/BoxPlot.d.ts +7 -0
  40. package/dist/assets/src/icons/BubbleHeatmap.d.ts +7 -0
  41. package/dist/assets/src/icons/CDR3Spectratyping.d.ts +7 -0
  42. package/dist/assets/src/icons/CancerPrediction.d.ts +7 -0
  43. package/dist/assets/src/icons/Cell.d.ts +7 -0
  44. package/dist/assets/src/icons/CellCellCommunication.d.ts +7 -0
  45. package/dist/assets/src/icons/CellSearch.d.ts +7 -0
  46. package/dist/assets/src/icons/CellTypePrediction.d.ts +7 -0
  47. package/dist/assets/src/icons/Cells.d.ts +7 -0
  48. package/dist/assets/src/icons/Circos.d.ts +7 -0
  49. package/dist/assets/src/icons/Clonotype.d.ts +7 -0
  50. package/dist/assets/src/icons/CoexpressionPlot.d.ts +7 -0
  51. package/dist/assets/src/icons/Composition.d.ts +7 -0
  52. package/dist/assets/src/icons/DEG.d.ts +7 -0
  53. package/dist/assets/src/icons/Digits.d.ts +7 -0
  54. package/dist/assets/src/icons/DiversityAnalysis.d.ts +7 -0
  55. package/dist/assets/src/icons/Embedding.d.ts +7 -0
  56. package/dist/assets/src/icons/EnrichmentTest.d.ts +7 -0
  57. package/dist/assets/src/icons/Eppendorf.d.ts +7 -0
  58. package/dist/assets/src/icons/FileArrowRight.d.ts +7 -0
  59. package/dist/assets/src/icons/FolderArrowRight.d.ts +7 -0
  60. package/dist/assets/src/icons/Heatmap.d.ts +7 -0
  61. package/dist/assets/src/icons/ImageSegmentation.d.ts +7 -0
  62. package/dist/assets/src/icons/IntersectionPlot.d.ts +7 -0
  63. package/dist/assets/src/icons/LouvainClustering.d.ts +7 -0
  64. package/dist/assets/src/icons/MarkerGenes.d.ts +7 -0
  65. package/dist/assets/src/icons/MixedView.d.ts +7 -0
  66. package/dist/assets/src/icons/NeighborhoodAnalysis.d.ts +7 -0
  67. package/dist/assets/src/icons/PenSize.d.ts +7 -0
  68. package/dist/assets/src/icons/Pertubation.d.ts +7 -0
  69. package/dist/assets/src/icons/Pseudotime.d.ts +7 -0
  70. package/dist/assets/src/icons/RegionSegmentation.d.ts +7 -0
  71. package/dist/assets/src/icons/ScatterPlotTissueImageView.d.ts +7 -0
  72. package/dist/assets/src/icons/ScatterPlotView.d.ts +7 -0
  73. package/dist/assets/src/icons/SegmentSelection.d.ts +7 -0
  74. package/dist/assets/src/icons/SpatialCellProportion.d.ts +7 -0
  75. package/dist/assets/src/icons/Species.d.ts +7 -0
  76. package/dist/assets/src/icons/SubClustering.d.ts +7 -0
  77. package/dist/assets/src/icons/TSNEUMAP.d.ts +7 -0
  78. package/dist/assets/src/icons/TissueImageScatterPlotView.d.ts +7 -0
  79. package/dist/assets/src/icons/TissueImageView.d.ts +7 -0
  80. package/dist/assets/src/icons/TwoD.d.ts +7 -0
  81. package/dist/assets/src/icons/VennDiagramAnalysis.d.ts +7 -0
  82. package/dist/assets/src/icons/ViolinPlot.d.ts +7 -0
  83. package/dist/assets/src/icons/custom.d.ts +48 -0
  84. package/dist/assets/src/icons/index.d.ts +2 -0
  85. package/dist/assets/src/icons/phosphor.d.ts +1 -0
  86. package/dist/assets/src/index.d.ts +2 -0
  87. package/dist/assets/src/logos/BBrowserX.d.ts +9 -0
  88. package/dist/assets/src/logos/BioStudio.d.ts +9 -0
  89. package/dist/assets/src/logos/BioTuring.d.ts +9 -0
  90. package/dist/assets/src/logos/BioTuringAlpha.d.ts +9 -0
  91. package/dist/assets/src/logos/Lens.d.ts +9 -0
  92. package/dist/assets/src/logos/Pixel.d.ts +9 -0
  93. package/dist/assets/src/logos/SmartBulk.d.ts +9 -0
  94. package/dist/assets/src/logos/SpatialX.d.ts +9 -0
  95. package/dist/assets/src/logos/Talk2Data.d.ts +9 -0
  96. package/dist/assets/src/logos/Vinci.d.ts +9 -0
  97. package/dist/assets/src/logos/index.d.ts +10 -0
  98. package/dist/components/src/components/Badge/component.d.ts +3 -0
  99. package/dist/components/src/components/Badge/index.d.ts +1 -0
  100. package/dist/components/src/components/Breadcrumb/component.d.ts +5 -0
  101. package/dist/components/src/components/Breadcrumb/index.d.ts +2 -0
  102. package/dist/components/src/components/Breadcrumb/types.d.ts +18 -0
  103. package/dist/components/src/components/Breadcrumb/useItemRender.d.ts +6 -0
  104. package/dist/components/src/components/Button/component.d.ts +7 -0
  105. package/dist/components/src/components/Button/index.d.ts +1 -0
  106. package/dist/components/src/components/Checkbox/component.d.ts +10 -0
  107. package/dist/components/src/components/Checkbox/index.d.ts +1 -0
  108. package/dist/components/src/components/CodeBlock/component.d.ts +2 -0
  109. package/dist/components/src/components/CodeBlock/index.d.ts +2 -0
  110. package/dist/components/src/components/CodeBlock/types.d.ts +47 -0
  111. package/dist/components/src/components/Collapse/component.d.ts +13 -0
  112. package/dist/components/src/components/Collapse/index.d.ts +1 -0
  113. package/dist/components/src/components/DSRoot/component.d.ts +13 -0
  114. package/dist/components/src/components/DSRoot/index.d.ts +1 -0
  115. package/dist/components/src/components/DropdownMenu/component.d.ts +25 -0
  116. package/dist/components/src/components/DropdownMenu/index.d.ts +2 -0
  117. package/dist/components/src/components/DropdownMenu/utils.d.ts +5 -0
  118. package/dist/components/src/components/Empty/component.d.ts +12 -0
  119. package/dist/components/src/components/Empty/index.d.ts +1 -0
  120. package/dist/components/src/components/Field/component.d.ts +41 -0
  121. package/dist/components/src/components/Field/index.d.ts +1 -0
  122. package/dist/components/src/components/Form/component.d.ts +18 -0
  123. package/dist/components/src/components/Form/index.d.ts +1 -0
  124. package/dist/components/src/components/Form/item.d.ts +5 -0
  125. package/dist/components/src/components/IconButton/component.d.ts +29 -0
  126. package/dist/components/src/components/IconButton/index.d.ts +1 -0
  127. package/dist/components/src/components/Input/component.d.ts +30 -0
  128. package/dist/components/src/components/Input/index.d.ts +1 -0
  129. package/dist/components/src/components/Modal/Modal.d.ts +69 -0
  130. package/dist/components/src/components/Modal/ModalProvider.d.ts +5 -0
  131. package/dist/components/src/components/Modal/ModalService.d.ts +33 -0
  132. package/dist/components/src/components/Modal/constants.d.ts +9 -0
  133. package/dist/components/src/components/Modal/functions.d.ts +27 -0
  134. package/dist/components/src/components/Modal/index.d.ts +14 -0
  135. package/dist/components/src/components/Popover/component.d.ts +9 -0
  136. package/dist/components/src/components/Popover/index.d.ts +1 -0
  137. package/dist/components/src/components/Radio/component.d.ts +7 -0
  138. package/dist/components/src/components/Radio/index.d.ts +2 -0
  139. package/dist/components/src/components/Radio/interface.d.ts +5 -0
  140. package/dist/components/src/components/ScrollArea/component.d.ts +10 -0
  141. package/dist/components/src/components/ScrollArea/index.d.ts +1 -0
  142. package/dist/components/src/components/Segmented/component.d.ts +9 -0
  143. package/dist/components/src/components/Segmented/index.d.ts +1 -0
  144. package/dist/components/src/components/Select/component.d.ts +11 -0
  145. package/dist/components/src/components/Select/index.d.ts +1 -0
  146. package/dist/components/src/components/Slider/component.d.ts +5 -0
  147. package/dist/components/src/components/Slider/index.d.ts +1 -0
  148. package/dist/components/src/components/Spin/component.d.ts +3 -0
  149. package/dist/components/src/components/Spin/index.d.ts +1 -0
  150. package/dist/components/src/components/Splitter/component.d.ts +12 -0
  151. package/dist/components/src/components/Splitter/index.d.ts +1 -0
  152. package/dist/components/src/components/Switch/component.d.ts +8 -0
  153. package/dist/components/src/components/Switch/index.d.ts +1 -0
  154. package/dist/components/src/components/Table/component.d.ts +19 -0
  155. package/dist/components/src/components/Table/index.d.ts +1 -0
  156. package/dist/components/src/components/Tag/component.d.ts +11 -0
  157. package/dist/components/src/components/Tag/index.d.ts +1 -0
  158. package/dist/components/src/components/ThemeProvider/component.d.ts +6 -0
  159. package/dist/components/src/components/ThemeProvider/index.d.ts +1 -0
  160. package/dist/components/src/components/Toast/component.d.ts +14 -0
  161. package/dist/components/src/components/Toast/function.d.ts +10 -0
  162. package/dist/components/src/components/Toast/index.d.ts +3 -0
  163. package/dist/components/src/components/Toast/types.d.ts +3 -0
  164. package/dist/components/src/components/Tooltip/component.d.ts +9 -0
  165. package/dist/components/src/components/Tooltip/index.d.ts +1 -0
  166. package/dist/components/src/components/Tour/component.d.ts +7 -0
  167. package/dist/components/src/components/Tour/index.d.ts +1 -0
  168. package/dist/components/src/components/Transition/component.d.ts +17 -0
  169. package/dist/components/src/components/Transition/index.d.ts +1 -0
  170. package/dist/components/src/components/Tree/components.d.ts +13 -0
  171. package/dist/components/src/components/Tree/helpers.d.ts +4 -0
  172. package/dist/components/src/components/Tree/index.d.ts +4 -0
  173. package/dist/components/src/components/Tree/types.d.ts +55 -0
  174. package/dist/components/src/components/Tree/useTreeCommon.d.ts +178 -0
  175. package/dist/components/src/components/Tree/useUniqueKeysTree.d.ts +33 -0
  176. package/dist/components/src/components/Truncate/component.d.ts +12 -0
  177. package/dist/components/src/components/Truncate/helpers.d.ts +5 -0
  178. package/dist/components/src/components/Truncate/index.d.ts +1 -0
  179. package/dist/components/src/components/Upload/component.d.ts +16 -0
  180. package/dist/components/src/components/Upload/dragger.d.ts +13 -0
  181. package/dist/components/src/components/Upload/hooks.d.ts +5 -0
  182. package/dist/components/src/components/Upload/index.d.ts +3 -0
  183. package/dist/components/src/components/Upload/item.d.ts +11 -0
  184. package/dist/components/src/components/Upload/utils.d.ts +1 -0
  185. package/dist/components/src/components/VerticalCollapsiblePanel/component.d.ts +64 -0
  186. package/dist/components/src/components/VerticalCollapsiblePanel/index.d.ts +1 -0
  187. package/dist/components/src/components/hooks/antd.d.ts +11 -0
  188. package/dist/components/src/components/hooks/base-ui.d.ts +7 -0
  189. package/dist/components/src/components/hooks/index.d.ts +3 -0
  190. package/dist/components/src/components/hooks/useControlledState.d.ts +1 -0
  191. package/dist/components/src/components/index.d.ts +39 -0
  192. package/dist/components/src/components/utils/WithAntdTokens.d.ts +7 -0
  193. package/dist/components/src/components/utils/antdUtils.d.ts +10 -0
  194. package/dist/components/src/components/utils/client.d.ts +2 -0
  195. package/dist/components/src/components/utils/cn.d.ts +4 -0
  196. package/dist/components/src/components/utils/index.d.ts +3 -0
  197. package/dist/components/src/components/utils/isTracebackError.d.ts +1 -0
  198. package/dist/components/src/components/utils/main.d.ts +3 -0
  199. package/dist/components/src/components/utils/reactToString.d.ts +2 -0
  200. package/dist/components/src/components/utils/types.d.ts +9 -0
  201. package/dist/components/src/index.d.ts +2 -0
  202. package/dist/components/src/tokens/index.d.ts +3 -0
  203. package/dist/index.js +2430 -0
  204. package/dist/style.css +1242 -0
  205. package/dist/style.js +0 -0
  206. package/dist/tailwind.css +4 -0
  207. package/dist/tailwind.js +0 -0
  208. package/dist/utils.js +78 -0
  209. package/package.json +153 -0
package/dist/Upload.js ADDED
@@ -0,0 +1,419 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_upload_29096ddd__ from "antd/es/upload";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_button_8f463bb4__ from "antd/es/button";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__ from "@bioturing/assets";
6
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__ from "antd/es/config-provider";
7
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_theme_useToken_e8911485__ from "antd/es/theme/useToken";
8
+ import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
9
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__ from "antd/es/flex";
10
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_progress_da1757d8__ from "antd/es/progress";
11
+ import "antd/es/tooltip/style/css";
12
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_tooltip_1091cc47__ from "antd/es/tooltip";
13
+ import * as __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__ from "@base-ui-components/react";
14
+ const ButtonInner = ({ style, ...rest }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_button_8f463bb4__["default"], {
15
+ ref: ref,
16
+ style: style,
17
+ ...rest
18
+ });
19
+ const Button = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(ButtonInner);
20
+ function cx(...args) {
21
+ const classes = [];
22
+ for (const arg of args)if (arg) {
23
+ if ("string" == typeof arg || "number" == typeof arg) classes.push(String(arg));
24
+ else if (Array.isArray(arg)) classes.push(...cx(...arg));
25
+ else if ("object" == typeof arg) {
26
+ for (const [key, value] of Object.entries(arg))if (value) classes.push(key);
27
+ }
28
+ }
29
+ return classes;
30
+ }
31
+ function clsx(...args) {
32
+ return cx(...args).join(" ");
33
+ }
34
+ function cn(...args) {
35
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(cx(...args));
36
+ }
37
+ "use client";
38
+ const useGetPrefixCls = ()=>{
39
+ const { getPrefixCls } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__["default"].ConfigContext);
40
+ return {
41
+ getPrefixCls
42
+ };
43
+ };
44
+ const useAntdCssVarClassname = ()=>{
45
+ var _token_;
46
+ const token = (0, __WEBPACK_EXTERNAL_MODULE_antd_es_theme_useToken_e8911485__["default"])();
47
+ return null == (_token_ = token[4]) ? void 0 : _token_.key;
48
+ };
49
+ const useCls = ()=>{
50
+ const { getPrefixCls } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__["default"].ConfigContext);
51
+ return (...args)=>cx(...args).map((cls)=>getPrefixCls(cls)).join(" ");
52
+ };
53
+ "use client";
54
+ const IconButtonImpl = (props, ref)=>{
55
+ const { label, size = "medium", negativeMargin = true, children, className, tooltipProps = {}, as, href, target, rel, download, hrefLang, referrerPolicy, ...rest } = props;
56
+ const cls = useCls();
57
+ const antdCssVarClassname = useAntdCssVarClassname();
58
+ const buttonClasses = [
59
+ cls("icon-button"),
60
+ cls(`icon-button-${size}`),
61
+ cls(negativeMargin ? "icon-button-negative-margin" : ""),
62
+ antdCssVarClassname,
63
+ className
64
+ ].filter(Boolean).join(" ");
65
+ const Component = as || (href ? "a" : "button");
66
+ const anchorProps = "a" === Component ? {
67
+ ...void 0 !== target && {
68
+ target
69
+ },
70
+ ...void 0 !== rel && {
71
+ rel
72
+ },
73
+ ...void 0 !== download && {
74
+ download
75
+ },
76
+ ...void 0 !== hrefLang && {
77
+ hrefLang
78
+ },
79
+ ...void 0 !== referrerPolicy && {
80
+ referrerPolicy
81
+ }
82
+ } : {};
83
+ const elementProps = {
84
+ ref,
85
+ className: buttonClasses,
86
+ ..."button" === Component && {
87
+ type: "button"
88
+ },
89
+ ...href && {
90
+ href
91
+ },
92
+ ...anchorProps,
93
+ ...rest
94
+ };
95
+ const element = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Component, {
96
+ ...elementProps,
97
+ children: children
98
+ });
99
+ return label ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_tooltip_1091cc47__["default"], {
100
+ title: label,
101
+ arrow: false,
102
+ ...tooltipProps,
103
+ children: element
104
+ }) : element;
105
+ };
106
+ const IconButton = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(IconButtonImpl);
107
+ const measureText = (container)=>{
108
+ const span = document.createElement("span");
109
+ span.style.opacity = "0";
110
+ span.style.position = "absolute";
111
+ span.style.top = "-1000px";
112
+ span.style.left = "-1000px";
113
+ span.style.whiteSpace = "nowrap";
114
+ span.style.pointerEvents = "none";
115
+ container.appendChild(span);
116
+ return {
117
+ measure: (text)=>{
118
+ span.innerText = text;
119
+ return span.clientWidth;
120
+ },
121
+ destroy: ()=>{
122
+ container.removeChild(span);
123
+ }
124
+ };
125
+ };
126
+ const getMiddleTruncatedString = (text, ellipsis, container)=>{
127
+ var _Object_values_reverse_find;
128
+ if (!text) return text;
129
+ const { measure: getTextWidth, destroy: destroyMeasure } = measureText(container);
130
+ const textWidth = getTextWidth(text);
131
+ const containerWidth = container.clientWidth;
132
+ const initialOffset = Math.floor(containerWidth / textWidth * text.length);
133
+ if (textWidth <= containerWidth) {
134
+ destroyMeasure();
135
+ return text;
136
+ }
137
+ let offset = initialOffset;
138
+ const attempts = {};
139
+ const maxAttempts = 20;
140
+ const buffer = 10;
141
+ while(Object.values(attempts).length <= maxAttempts){
142
+ if (attempts[offset]) break;
143
+ if (offset <= 1) {
144
+ attempts[0] = [
145
+ 0,
146
+ ellipsis
147
+ ];
148
+ break;
149
+ }
150
+ const start = text.slice(0, Math.ceil((offset - ellipsis.length) / 2 - 1)).trimEnd();
151
+ const end = text.slice(Math.floor((offset - ellipsis.length) / 2) - offset).trimStart();
152
+ const truncatedStr = start + ellipsis + end;
153
+ const width = getTextWidth(truncatedStr);
154
+ attempts[offset] = [
155
+ width,
156
+ truncatedStr
157
+ ];
158
+ if (width >= containerWidth) offset -= 2;
159
+ else {
160
+ if (containerWidth - width < buffer) break;
161
+ offset += 2;
162
+ }
163
+ }
164
+ destroyMeasure();
165
+ return (null == (_Object_values_reverse_find = Object.values(attempts).reverse().find(([width])=>width < containerWidth)) ? void 0 : _Object_values_reverse_find[1]) ?? Object.values(attempts)[0][1];
166
+ };
167
+ "use client";
168
+ const Truncate = ({ children, position = "end", className, style, ...rest })=>{
169
+ const cls = useCls();
170
+ const containerRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
171
+ const [isTruncated, setIsTruncated] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
172
+ const [truncatedText, setTruncatedText] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(children);
173
+ const text = children;
174
+ const getContainerStyles = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(()=>{
175
+ const baseStyles = {
176
+ overflow: "hidden",
177
+ whiteSpace: "nowrap",
178
+ textOverflow: "clip",
179
+ flexGrow: 1,
180
+ minWidth: 0,
181
+ maxWidth: "100%",
182
+ display: "block",
183
+ ...style
184
+ };
185
+ if ("end" === position) return {
186
+ ...baseStyles,
187
+ textOverflow: "ellipsis"
188
+ };
189
+ return baseStyles;
190
+ }, [
191
+ position,
192
+ style
193
+ ]);
194
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect)(()=>{
195
+ const container = containerRef.current;
196
+ if (!container) return;
197
+ let cancellationToken = {
198
+ cancelled: false
199
+ };
200
+ const calculateTruncatedString = ()=>{
201
+ if (cancellationToken) cancellationToken.cancelled = true;
202
+ const requestCancellationToken = {
203
+ cancelled: false
204
+ };
205
+ cancellationToken = requestCancellationToken;
206
+ const truncated = getMiddleTruncatedString(text, "\u2026", container);
207
+ if (requestCancellationToken.cancelled) return;
208
+ setTruncatedText(truncated);
209
+ };
210
+ if ("middle" == position) {
211
+ var _window_document_fonts_ready, _window_document_fonts;
212
+ null == (_window_document_fonts = window.document.fonts) || null == (_window_document_fonts_ready = _window_document_fonts.ready) || _window_document_fonts_ready.then(calculateTruncatedString);
213
+ }
214
+ if ("end" == position) setTruncatedText(text);
215
+ const observer = new ResizeObserver(()=>{
216
+ if ("middle" == position) window.requestAnimationFrame(calculateTruncatedString);
217
+ if ("end" == position) {
218
+ const isOverflowing = container.scrollWidth > container.clientWidth;
219
+ if (isOverflowing) setIsTruncated(true);
220
+ }
221
+ });
222
+ observer.observe(container);
223
+ return ()=>{
224
+ cancellationToken.cancelled = true;
225
+ observer.disconnect();
226
+ };
227
+ }, [
228
+ text,
229
+ position
230
+ ]);
231
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
232
+ ref: containerRef,
233
+ style: getContainerStyles(),
234
+ className: clsx(cls("truncate"), className),
235
+ title: isTruncated ? text : void 0,
236
+ ...rest,
237
+ children: text === truncatedText ? text : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
238
+ children: truncatedText
239
+ })
240
+ });
241
+ };
242
+ const getUploadFileIcon = (fileType)=>"folder" === fileType ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.Folder, {
243
+ size: 20,
244
+ weight: "fill"
245
+ }) : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.File, {
246
+ size: 20,
247
+ weight: "fill"
248
+ });
249
+ const UploadItem = ({ fileName, fileType, status = "pending", percent, removable = true, onRemove, extraActions })=>{
250
+ const cls = useCls();
251
+ const showPercent = Math.round(percent || 0);
252
+ const statusWithProgress = {
253
+ done: "success",
254
+ error: "exception",
255
+ uploading: "active",
256
+ removed: "normal",
257
+ pending: "normal"
258
+ };
259
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__["default"], {
260
+ className: clsx(cls("upload-item")),
261
+ justify: "space-between",
262
+ align: "center",
263
+ "data-error": "error" === status,
264
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__["default"], {
265
+ align: "center",
266
+ gap: 16,
267
+ flex: 1,
268
+ className: cls("upload-item-content"),
269
+ children: [
270
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
271
+ className: cls("upload-item-icon"),
272
+ children: getUploadFileIcon(fileType)
273
+ }),
274
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__["default"], {
275
+ align: "start",
276
+ vertical: true,
277
+ flex: 1,
278
+ className: cls("upload-item-name-progress"),
279
+ children: [
280
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Truncate, {
281
+ position: "middle",
282
+ children: fileName
283
+ }),
284
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_progress_da1757d8__["default"], {
285
+ percent: showPercent,
286
+ size: "small",
287
+ className: cls("upload-item-progress"),
288
+ status: status && status in statusWithProgress ? statusWithProgress[status] : "normal"
289
+ })
290
+ ]
291
+ }),
292
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__["default"], {
293
+ gap: 8,
294
+ align: "center",
295
+ children: [
296
+ extraActions,
297
+ removable && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(IconButton, {
298
+ label: "Remove",
299
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.Trash, {
300
+ size: 16
301
+ }),
302
+ onClick: onRemove,
303
+ size: "small"
304
+ })
305
+ ]
306
+ })
307
+ ]
308
+ })
309
+ });
310
+ };
311
+ "use client";
312
+ const useUploadItemRender = ({ showRemoveButton = true })=>{
313
+ const itemRender = (_originNode, file, _fileList, actions)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(UploadItem, {
314
+ fileName: file.name,
315
+ fileType: file.type,
316
+ status: file.status,
317
+ percent: file.percent,
318
+ removable: showRemoveButton,
319
+ onRemove: ()=>actions.remove()
320
+ });
321
+ return (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)(itemRender, [
322
+ showRemoveButton
323
+ ]);
324
+ };
325
+ "use client";
326
+ const Dragger = ({ children, uploadTitle = "Click or drag file to this area to upload", uploadDescription = "Support for a single or bulk upload.", itemRender, ...rest })=>{
327
+ const cls = useCls();
328
+ const renderChildren = ()=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
329
+ children: [
330
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("p", {
331
+ className: cls("upload-drag-icon"),
332
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.CloudArrowUp, {
333
+ size: 40
334
+ })
335
+ }),
336
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("p", {
337
+ className: cls("upload-text"),
338
+ children: uploadTitle
339
+ }),
340
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("p", {
341
+ className: cls("upload-hint"),
342
+ children: uploadDescription
343
+ })
344
+ ]
345
+ });
346
+ const defaultItemRender = useUploadItemRender({
347
+ showRemoveButton: true
348
+ });
349
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_upload_29096ddd__["default"].Dragger, {
350
+ itemRender: itemRender || defaultItemRender,
351
+ ...rest,
352
+ children: children ? children : renderChildren()
353
+ });
354
+ };
355
+ "use client";
356
+ const DefaultUpload = ({ showRemoveButton = true, className, fileList, children, ...restProps })=>{
357
+ const cls = useCls();
358
+ const icon = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.CloudArrowUp, {
359
+ size: 24
360
+ });
361
+ const defaultChildren = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Button, {
362
+ icon: icon,
363
+ type: "default",
364
+ children: "Upload Files"
365
+ });
366
+ const itemRender = useUploadItemRender({
367
+ showRemoveButton
368
+ });
369
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_upload_29096ddd__["default"], {
370
+ className: clsx(cls("upload"), className),
371
+ ...restProps,
372
+ fileList: fileList,
373
+ itemRender: itemRender,
374
+ children: children || defaultChildren
375
+ });
376
+ };
377
+ const Upload = Object.assign(DefaultUpload, {
378
+ Dragger: Dragger,
379
+ Item: UploadItem
380
+ });
381
+ function reactNodeToString(node) {
382
+ if (null == node) return "";
383
+ if ("string" == typeof node) return node;
384
+ if ("number" == typeof node || "boolean" == typeof node) return node.toString();
385
+ if (Array.isArray(node)) return node.map(reactNodeToString).join("");
386
+ if ((0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(node) && "props" in node && node.props && "object" == typeof node.props && "children" in node.props && node.props.children) {
387
+ if ("br" === node.type) return "\n";
388
+ if (node.props.children) return reactNodeToString(node.props.children);
389
+ }
390
+ return "";
391
+ }
392
+ function isTracebackError(error) {
393
+ if (!error || "string" != typeof error && !error.toString) return false;
394
+ const errorString = "string" == typeof error ? error : error.toString();
395
+ const pythonTracebackRegex = /Traceback \(most recent call last\):/;
396
+ const pythonStackFrameRegex = /File ".*?", line \d+, in/;
397
+ const goStackTraceRegex = /goroutine \d+ \[.*\]:|panic: /;
398
+ const goStackFrameRegex = /\/.*\.go:\d+/;
399
+ const isPythonTraceback = pythonTracebackRegex.test(errorString) || pythonStackFrameRegex.test(errorString);
400
+ const isGoStackTrace = goStackTraceRegex.test(errorString) || goStackFrameRegex.test(errorString);
401
+ return isPythonTraceback || isGoStackTrace;
402
+ }
403
+ "use client";
404
+ const WithAntdTokens = ({ as: Tag = "div", ref, className, ...rest })=>{
405
+ const Component = Tag;
406
+ const cssVar = useAntdCssVarClassname();
407
+ const { renderElement } = (0, __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.useRender)({
408
+ render: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Component, {}),
409
+ refs: [
410
+ ref
411
+ ],
412
+ props: {
413
+ ...rest,
414
+ className: clsx(className, cssVar)
415
+ }
416
+ });
417
+ return renderElement();
418
+ };
419
+ export { DefaultUpload, Upload, WithAntdTokens, clsx, cn, cx, isTracebackError, reactNodeToString, useAntdCssVarClassname, useCls, useGetPrefixCls, useUploadItemRender };