@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/Toast.js ADDED
@@ -0,0 +1,1009 @@
1
+ "use client";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__ from "antd/es/config-provider";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_theme_useToken_e8911485__ from "antd/es/theme/useToken";
5
+ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
6
+ import "tailwind-merge";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__ from "@bioturing/assets";
8
+ import * as __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__ from "@base-ui-components/react";
9
+ import "antd/es/tooltip/style/css";
10
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_tooltip_1091cc47__ from "antd/es/tooltip";
11
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_button_8f463bb4__ from "antd/es/button";
12
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_app_useApp_90d95086__ from "antd/es/app/useApp";
13
+ import "antd/es/flex/style/css";
14
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__ from "antd/es/flex";
15
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_modal_52965d33__ from "antd/es/modal";
16
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_modal_context_bc73863f__ from "antd/es/modal/context";
17
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalCancelBtn_54ff398c__ from "antd/es/modal/components/NormalCancelBtn";
18
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalOkBtn_897b50c4__ from "antd/es/modal/components/NormalOkBtn";
19
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_modal_locale_f16c0933__ from "antd/es/modal/locale";
20
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_locale_31079002__ from "antd/es/locale";
21
+ import * as __WEBPACK_EXTERNAL_MODULE_antd_es_segmented_6dbdbe23__ from "antd/es/segmented";
22
+ import * as __WEBPACK_EXTERNAL_MODULE__ant_design_cssinjs_c619260f__ from "@ant-design/cssinjs";
23
+ import * as __WEBPACK_EXTERNAL_MODULE_prism_react_renderer_be33806e__ from "prism-react-renderer";
24
+ function cx(...args) {
25
+ const classes = [];
26
+ for (const arg of args)if (arg) {
27
+ if ("string" == typeof arg || "number" == typeof arg) classes.push(String(arg));
28
+ else if (Array.isArray(arg)) classes.push(...cx(...arg));
29
+ else if ("object" == typeof arg) {
30
+ for (const [key, value] of Object.entries(arg))if (value) classes.push(key);
31
+ }
32
+ }
33
+ return classes;
34
+ }
35
+ function clsx(...args) {
36
+ return cx(...args).join(" ");
37
+ }
38
+ "use client";
39
+ const useAntdCssVarClassname = ()=>{
40
+ var _token_;
41
+ const token = (0, __WEBPACK_EXTERNAL_MODULE_antd_es_theme_useToken_e8911485__["default"])();
42
+ return null == (_token_ = token[4]) ? void 0 : _token_.key;
43
+ };
44
+ const useCls = ()=>{
45
+ const { getPrefixCls } = (0, __WEBPACK_EXTERNAL_MODULE_react__.useContext)(__WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__["default"].ConfigContext);
46
+ return (...args)=>cx(...args).map((cls)=>getPrefixCls(cls)).join(" ");
47
+ };
48
+ "use client";
49
+ const IconButtonImpl = (props, ref)=>{
50
+ const { label, size = "medium", negativeMargin = true, children, className, tooltipProps = {}, as, href, target, rel, download, hrefLang, referrerPolicy, ...rest } = props;
51
+ const cls = useCls();
52
+ const antdCssVarClassname = useAntdCssVarClassname();
53
+ const buttonClasses = [
54
+ cls("icon-button"),
55
+ cls(`icon-button-${size}`),
56
+ cls(negativeMargin ? "icon-button-negative-margin" : ""),
57
+ antdCssVarClassname,
58
+ className
59
+ ].filter(Boolean).join(" ");
60
+ const Component = as || (href ? "a" : "button");
61
+ const anchorProps = "a" === Component ? {
62
+ ...void 0 !== target && {
63
+ target
64
+ },
65
+ ...void 0 !== rel && {
66
+ rel
67
+ },
68
+ ...void 0 !== download && {
69
+ download
70
+ },
71
+ ...void 0 !== hrefLang && {
72
+ hrefLang
73
+ },
74
+ ...void 0 !== referrerPolicy && {
75
+ referrerPolicy
76
+ }
77
+ } : {};
78
+ const elementProps = {
79
+ ref,
80
+ className: buttonClasses,
81
+ ..."button" === Component && {
82
+ type: "button"
83
+ },
84
+ ...href && {
85
+ href
86
+ },
87
+ ...anchorProps,
88
+ ...rest
89
+ };
90
+ const element = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Component, {
91
+ ...elementProps,
92
+ children: children
93
+ });
94
+ return label ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_tooltip_1091cc47__["default"], {
95
+ title: label,
96
+ arrow: false,
97
+ ...tooltipProps,
98
+ children: element
99
+ }) : element;
100
+ };
101
+ const IconButton = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(IconButtonImpl);
102
+ "use client";
103
+ const toastManager = __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.createToastManager();
104
+ function createToastTypeFunction(type) {
105
+ return (message, options)=>{
106
+ const toastId = toastManager.add({
107
+ description: message,
108
+ data: {
109
+ type: type
110
+ },
111
+ ..."progress" === type || "error" === type ? {
112
+ timeout: 0
113
+ } : {},
114
+ ...options
115
+ });
116
+ return toastId;
117
+ };
118
+ }
119
+ const function_toast = Object.assign(createToastTypeFunction("info"), {
120
+ info: createToastTypeFunction("info"),
121
+ success: createToastTypeFunction("success"),
122
+ error: createToastTypeFunction("error"),
123
+ warning: createToastTypeFunction("warning"),
124
+ progress: createToastTypeFunction("progress")
125
+ });
126
+ function isTracebackError(error) {
127
+ if (!error || "string" != typeof error && !error.toString) return false;
128
+ const errorString = "string" == typeof error ? error : error.toString();
129
+ const pythonTracebackRegex = /Traceback \(most recent call last\):/;
130
+ const pythonStackFrameRegex = /File ".*?", line \d+, in/;
131
+ const goStackTraceRegex = /goroutine \d+ \[.*\]:|panic: /;
132
+ const goStackFrameRegex = /\/.*\.go:\d+/;
133
+ const isPythonTraceback = pythonTracebackRegex.test(errorString) || pythonStackFrameRegex.test(errorString);
134
+ const isGoStackTrace = goStackTraceRegex.test(errorString) || goStackFrameRegex.test(errorString);
135
+ return isPythonTraceback || isGoStackTrace;
136
+ }
137
+ const ButtonInner = ({ style, ...rest }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_button_8f463bb4__["default"], {
138
+ ref: ref,
139
+ style: style,
140
+ ...rest
141
+ });
142
+ const Button = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(ButtonInner);
143
+ var constants_ModalSize = /*#__PURE__*/ function(ModalSize) {
144
+ ModalSize["xsmall"] = "400px";
145
+ ModalSize["small"] = "520px";
146
+ ModalSize["medium"] = "640px";
147
+ ModalSize["large"] = "840px";
148
+ ModalSize["xlarge"] = "1024px";
149
+ ModalSize["xxlarge"] = "1280px";
150
+ ModalSize["fullscreen"] = "100%";
151
+ return ModalSize;
152
+ }({});
153
+ "use client";
154
+ const Modal = ({ open: externalOpen, closeIcon, children, size, footer, width, style, styles, classNames, okButtonProps, cancelButtonProps, loading, onOk, onCancel, onClose, okText, okType = "primary", confirmLoading, cancelText = "Close", hideOkButton = false, hideCancelButton = false, contentPadding, title, afterTitle, beforeCloseButton, afterCloseButton, defaultFixedHeaderFooter = false, centered = true, type = "default", defaultOpen = true, ...rest })=>{
155
+ const defaultCloseIcon = void 0 === closeIcon ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.X, {
156
+ size: 16,
157
+ weight: "bold"
158
+ }) : closeIcon;
159
+ const defaultModalSize = "default" === type ? "medium" : "xsmall";
160
+ const modalWidth = width || size && size in constants_ModalSize ? constants_ModalSize[size] : constants_ModalSize[defaultModalSize];
161
+ const modalStyle = {
162
+ ...style,
163
+ ..."fullscreen" === size ? {
164
+ top: 0,
165
+ maxWidth: "100%",
166
+ height: "100%"
167
+ } : {}
168
+ };
169
+ const modalStyles = {
170
+ ...styles,
171
+ body: {
172
+ ...void 0 !== contentPadding ? {
173
+ "--ds-modal-content-padding": false === contentPadding || 0 === contentPadding ? "0" : "number" == typeof contentPadding ? `${contentPadding}px` : contentPadding
174
+ } : {},
175
+ ...null == styles ? void 0 : styles.body
176
+ }
177
+ };
178
+ const [scrollable, setScrollable] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
179
+ const cls = useCls();
180
+ const resizeObserverRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
181
+ const modalInnerRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((node)=>{
182
+ if (!node) return;
183
+ const modalBody = node.querySelector("." + cls("modal-body"));
184
+ if (!(modalBody instanceof HTMLElement)) return;
185
+ const resizeObserver = new ResizeObserver(()=>{
186
+ const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;
187
+ setScrollable(hasOverflow);
188
+ });
189
+ resizeObserverRef.current = resizeObserver;
190
+ resizeObserver.observe(modalBody);
191
+ const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;
192
+ setScrollable(hasOverflow);
193
+ }, [
194
+ cls
195
+ ]);
196
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>()=>{
197
+ if (resizeObserverRef.current) {
198
+ resizeObserverRef.current.disconnect();
199
+ resizeObserverRef.current = null;
200
+ }
201
+ }, []);
202
+ const [locale] = (0, __WEBPACK_EXTERNAL_MODULE_antd_es_locale_31079002__.useLocale)("Modal", (0, __WEBPACK_EXTERNAL_MODULE_antd_es_modal_locale_f16c0933__.getConfirmLocale)());
203
+ const okTextLocale = okText || (null == locale ? void 0 : locale.okText);
204
+ const cancelTextLocale = cancelText || (null == locale ? void 0 : locale.cancelText);
205
+ const modalOkButtonProps = {
206
+ loading: loading,
207
+ ...okButtonProps
208
+ };
209
+ const modalCancelButtonProps = {
210
+ ...cancelButtonProps
211
+ };
212
+ const [internalOpen, setInternalOpen] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(defaultOpen);
213
+ const uncontrolledOpen = void 0 === externalOpen;
214
+ const open = uncontrolledOpen ? internalOpen : externalOpen;
215
+ const defaultFooter = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_context_bc73863f__.ModalContextProvider, {
216
+ value: {
217
+ okButtonProps: modalOkButtonProps,
218
+ cancelButtonProps: modalCancelButtonProps,
219
+ onCancel,
220
+ onOk,
221
+ okType,
222
+ confirmLoading,
223
+ okTextLocale,
224
+ cancelTextLocale
225
+ },
226
+ children: hideOkButton ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalCancelBtn_54ff398c__["default"], {}) : hideCancelButton ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalOkBtn_897b50c4__["default"], {}) : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
227
+ children: [
228
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalCancelBtn_54ff398c__["default"], {}),
229
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_components_NormalOkBtn_897b50c4__["default"], {})
230
+ ]
231
+ })
232
+ });
233
+ const renderTitle = ()=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
234
+ children: [
235
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_antd_es_flex_86593150__["default"], {
236
+ align: "center",
237
+ gap: 8,
238
+ className: cls("modal-title-wrapper"),
239
+ children: [
240
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
241
+ className: cls("grow", "truncate"),
242
+ children: title
243
+ }),
244
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
245
+ className: "flex items-center gap-2",
246
+ children: [
247
+ beforeCloseButton,
248
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(IconButton, {
249
+ onClick: (e)=>null == onCancel ? void 0 : onCancel(e),
250
+ children: defaultCloseIcon
251
+ }),
252
+ afterCloseButton
253
+ ]
254
+ })
255
+ ]
256
+ }),
257
+ afterTitle ? afterTitle : null
258
+ ]
259
+ });
260
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_modal_52965d33__["default"], {
261
+ closeIcon: false,
262
+ open: open,
263
+ width: modalWidth,
264
+ style: modalStyle,
265
+ title: renderTitle(),
266
+ classNames: {
267
+ ...classNames,
268
+ wrapper: cls("modal-wrap", "fullscreen" == size && "modal-fullscreen", scrollable && "modal-scrollable", (defaultFixedHeaderFooter || scrollable || "fullscreen" == size) && "modal-fixed")
269
+ },
270
+ styles: modalStyles,
271
+ modalRender: (modal)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
272
+ ref: modalInnerRef,
273
+ className: cls("modal-inner"),
274
+ children: modal
275
+ }),
276
+ okButtonProps: modalOkButtonProps,
277
+ cancelButtonProps: modalCancelButtonProps,
278
+ onOk: (e)=>{
279
+ if (uncontrolledOpen) setInternalOpen(false);
280
+ null == onOk || onOk(e);
281
+ },
282
+ onCancel: (e)=>{
283
+ if (uncontrolledOpen) setInternalOpen(false);
284
+ null == onCancel || onCancel(e);
285
+ },
286
+ okText: okText,
287
+ cancelText: cancelText,
288
+ okType: "primary",
289
+ confirmLoading: confirmLoading,
290
+ footer: void 0 === footer ? hideOkButton && hideCancelButton ? null : defaultFooter : footer,
291
+ centered: centered,
292
+ ...rest,
293
+ children: children
294
+ });
295
+ };
296
+ function _define_property(obj, key, value) {
297
+ if (key in obj) Object.defineProperty(obj, key, {
298
+ value: value,
299
+ enumerable: true,
300
+ configurable: true,
301
+ writable: true
302
+ });
303
+ else obj[key] = value;
304
+ return obj;
305
+ }
306
+ class ModalManager {
307
+ subscribe(listener) {
308
+ this.listeners.push(listener);
309
+ return ()=>{
310
+ this.listeners = this.listeners.filter((l)=>l !== listener);
311
+ };
312
+ }
313
+ emit(event) {
314
+ this.listeners.forEach((l)=>l(event));
315
+ }
316
+ generateId() {
317
+ this.counter += 1;
318
+ return `modal_${this.counter}_${Date.now()}`;
319
+ }
320
+ constructor(){
321
+ _define_property(this, "listeners", []);
322
+ _define_property(this, "counter", 0);
323
+ }
324
+ }
325
+ const modalManager = new ModalManager();
326
+ function createModal(config) {
327
+ const trigger = document.activeElement instanceof HTMLElement ? document.activeElement : void 0;
328
+ const { type = "default", ...restConfig } = config;
329
+ const id = modalManager.generateId();
330
+ modalManager.emit({
331
+ type: "add",
332
+ payload: {
333
+ id,
334
+ type,
335
+ trigger,
336
+ ...restConfig
337
+ }
338
+ });
339
+ return {
340
+ update: (cfg)=>modalManager.emit({
341
+ type: "update",
342
+ payload: {
343
+ id,
344
+ config: cfg
345
+ }
346
+ }),
347
+ destroy: ()=>modalManager.emit({
348
+ type: "destroy",
349
+ payload: {
350
+ id
351
+ }
352
+ })
353
+ };
354
+ }
355
+ const functions_confirm = (config)=>createModal({
356
+ ...config,
357
+ type: "confirm"
358
+ });
359
+ const info = (config)=>createModal({
360
+ ...config,
361
+ type: "info"
362
+ });
363
+ const success = (config)=>createModal({
364
+ ...config,
365
+ type: "success"
366
+ });
367
+ const functions_error = (config)=>createModal({
368
+ ...config,
369
+ type: "error"
370
+ });
371
+ const warning = (config)=>createModal({
372
+ ...config,
373
+ type: "warning"
374
+ });
375
+ const functions_open = (config)=>createModal({
376
+ ...config,
377
+ type: "default"
378
+ });
379
+ const destroyAll = ()=>modalManager.emit({
380
+ type: "destroyAll"
381
+ });
382
+ "use client";
383
+ const ModalProvider = ({ children })=>{
384
+ const [modals, setModals] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)([]);
385
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
386
+ const unsubscribe = modalManager.subscribe((event)=>{
387
+ setModals((prev)=>{
388
+ switch(event.type){
389
+ case "add":
390
+ return [
391
+ ...prev,
392
+ event.payload
393
+ ];
394
+ case "update":
395
+ return prev.map((m)=>{
396
+ if (m.id === event.payload.id) {
397
+ const cfg = event.payload.config;
398
+ const merged = "function" == typeof cfg ? cfg(m) : {
399
+ ...m,
400
+ ...cfg
401
+ };
402
+ return {
403
+ ...m,
404
+ ...merged
405
+ };
406
+ }
407
+ return m;
408
+ });
409
+ case "destroy":
410
+ return prev.filter((m)=>m.id !== event.payload.id);
411
+ case "destroyAll":
412
+ return [];
413
+ default:
414
+ return prev;
415
+ }
416
+ });
417
+ });
418
+ return unsubscribe;
419
+ }, []);
420
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
421
+ children: [
422
+ children,
423
+ modals.map((modal)=>{
424
+ const { id, content, children, onOk, onCancel, trigger, ...modalProps } = modal;
425
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createElement)(Modal, {
426
+ ...modalProps,
427
+ key: id,
428
+ open: modalProps.open,
429
+ onOk: (e)=>{
430
+ null == onOk || onOk(e);
431
+ modalManager.emit({
432
+ type: "update",
433
+ payload: {
434
+ id,
435
+ config: {
436
+ open: false
437
+ }
438
+ }
439
+ });
440
+ },
441
+ onCancel: (e)=>{
442
+ null == onCancel || onCancel(e);
443
+ modalManager.emit({
444
+ type: "update",
445
+ payload: {
446
+ id,
447
+ config: {
448
+ open: false
449
+ }
450
+ }
451
+ });
452
+ },
453
+ afterClose: ()=>{
454
+ modalManager.emit({
455
+ type: "destroy",
456
+ payload: {
457
+ id
458
+ }
459
+ });
460
+ if (trigger instanceof HTMLElement) trigger.focus();
461
+ }
462
+ }, content || children);
463
+ })
464
+ ]
465
+ });
466
+ };
467
+ "use client";
468
+ const useModal = ()=>(0, __WEBPACK_EXTERNAL_MODULE_antd_es_app_useApp_90d95086__["default"])().modal;
469
+ const Modal_Modal = Object.assign(Modal, {
470
+ Provider: ModalProvider,
471
+ open: functions_open,
472
+ info: info,
473
+ success: success,
474
+ error: functions_error,
475
+ warning: warning,
476
+ confirm: functions_confirm,
477
+ destroyAll: destroyAll,
478
+ useModal
479
+ });
480
+ "use client";
481
+ const ScrollArea = ({ children, className, viewportClassName, thumbClassName, scrollbarClassName, orientation = "vertical" })=>{
482
+ const cls = useCls();
483
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.ScrollArea.Root, {
484
+ className: clsx(cls("scroll-area"), className),
485
+ children: [
486
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.ScrollArea.Viewport, {
487
+ className: clsx(cls("scroll-area-viewport"), viewportClassName),
488
+ children: children
489
+ }),
490
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.ScrollArea.Scrollbar, {
491
+ className: clsx(cls("scroll-area-scrollbar"), scrollbarClassName),
492
+ orientation: orientation,
493
+ "data-orientation": orientation,
494
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.ScrollArea.Thumb, {
495
+ className: clsx(cls("scroll-area-thumb", thumbClassName))
496
+ })
497
+ })
498
+ ]
499
+ });
500
+ };
501
+ const MainSegmentedInner = ({ className, ...rest }, ref)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_segmented_6dbdbe23__["default"], {
502
+ ref: ref,
503
+ ...rest
504
+ });
505
+ const MainSegmented = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(MainSegmentedInner);
506
+ const Segmented = MainSegmented;
507
+ const figmaToAntDesignTokens = {
508
+ lightMode: {
509
+ colorText: "rgba(0, 0, 0, 0.88)",
510
+ colorTextSecondary: "rgba(0, 0, 0, 0.65)",
511
+ colorTextTertiary: "rgba(0, 0, 0, 0.45)",
512
+ colorTextQuaternary: "rgba(0, 0, 0, 0.25)",
513
+ colorPrimary: "#175CD3",
514
+ colorPrimaryBg: "#E9F2FF",
515
+ colorPrimaryBgHover: "#D1E9FF",
516
+ colorPrimaryBorder: "#84CAFF",
517
+ colorPrimaryBorderHover: "#53B1FD",
518
+ colorPrimaryHover: "#1570EF",
519
+ colorPrimaryActive: "#175CD3",
520
+ colorPrimaryTextHover: "#1570EF",
521
+ colorPrimaryTextActive: "#175CD3",
522
+ colorInfo: "#175CD3",
523
+ colorInfoBg: "#E9F2FF",
524
+ colorInfoBgHover: "#D1E9FF",
525
+ colorInfoBorder: "#84CAFF",
526
+ colorInfoBorderHover: "#53B1FD",
527
+ colorInfoHover: "#1570EF",
528
+ colorInfoActive: "#175CD3",
529
+ colorInfoTextHover: "#1570EF",
530
+ colorInfoTextActive: "#175CD3",
531
+ colorSuccess: "#4CB200",
532
+ colorSuccessBg: "#F6FFF0",
533
+ colorSuccessBgHover: "#D9F7BE",
534
+ colorSuccessBorder: "#B7EB8F",
535
+ colorSuccessBorderHover: "#95DE64",
536
+ colorSuccessHover: "#73D13D",
537
+ colorSuccessActive: "#389E0D",
538
+ colorSuccessTextHover: "#237804",
539
+ colorSuccessTextActive: "#092B00",
540
+ colorWarning: "#FA8C16",
541
+ colorWarningBg: "#FFF7E6",
542
+ colorWarningBgHover: "#FFE7BA",
543
+ colorWarningBorder: "#FFD591",
544
+ colorWarningBorderHover: "#FFC069",
545
+ colorWarningHover: "#FFA940",
546
+ colorWarningActive: "#D46B08",
547
+ colorWarningTextHover: "#AD4E00",
548
+ colorWarningTextActive: "#873800",
549
+ colorError: "#D92D20",
550
+ colorErrorBg: "#FEF3F2",
551
+ colorErrorBgHover: "#FEE4E2",
552
+ colorErrorBorder: "#FDA29B",
553
+ colorErrorBorderHover: "#F97066",
554
+ colorErrorHover: "#F04438",
555
+ colorErrorActive: "#D92D20",
556
+ colorErrorTextHover: "#F04438",
557
+ colorErrorTextActive: "#D92D20",
558
+ colorFill: "rgba(0, 0, 0, 0.15)",
559
+ colorFillSecondary: "rgba(0, 0, 0, 0.06)",
560
+ colorFillTertiary: "rgba(0, 0, 0, 0.04)",
561
+ colorFillQuaternary: "rgba(0, 0, 0, 0.02)",
562
+ colorFillAlter: "rgba(0, 0, 0, 0.02)",
563
+ colorBorder: "rgba(0, 0, 0, 0.16)",
564
+ colorBorderSecondary: "rgba(0, 0, 0, 0.06)",
565
+ colorIcon: "rgba(0, 0, 0, 0.58)",
566
+ colorIconHover: "rgba(0, 0, 0, 0.88)",
567
+ controlOutline: "rgba(0, 0, 0, 0.12)"
568
+ },
569
+ darkMode: {
570
+ colorText: "rgba(255, 255, 255, 0.85)",
571
+ colorTextSecondary: "rgba(255, 255, 255, 0.65)",
572
+ colorTextTertiary: "rgba(255, 255, 255, 0.45)",
573
+ colorTextQuaternary: "rgba(255, 255, 255, 0.25)",
574
+ colorBgContainer: "#26262C",
575
+ colorBgElevated: "#2F2F37",
576
+ colorBgLayout: "#1A1A1E",
577
+ colorBgSpotlight: "#505D5D",
578
+ colorBgMask: "rgba(0, 0, 0, 0.45)",
579
+ colorBgBase: "#13131A",
580
+ colorFill: "rgba(255, 255, 255, 0.15)",
581
+ colorFillSecondary: "rgba(255, 255, 255, 0.06)",
582
+ colorFillTertiary: "rgba(255, 255, 255, 0.04)",
583
+ colorFillQuaternary: "rgba(255, 255, 255, 0.02)",
584
+ colorFillAlter: "rgba(255, 255, 255, 0.02)",
585
+ colorBorder: "rgba(255, 255, 255, 0.16)",
586
+ colorBorderSecondary: "rgba(255, 255, 255, 0.06)",
587
+ colorPrimary: "#2E90FA",
588
+ colorPrimaryBg: "#152137",
589
+ colorPrimaryBgHover: "#112545",
590
+ colorPrimaryBorder: "#1C3959",
591
+ colorPrimaryBorderHover: "#204C7C",
592
+ colorPrimaryHover: "#50A0E8",
593
+ colorPrimaryActive: "#2565AB",
594
+ colorPrimaryTextHover: "#50A0E8",
595
+ colorPrimaryTextActive: "#2565AB",
596
+ colorInfo: "#2E90FA",
597
+ colorInfoBg: "#152137",
598
+ colorInfoBgHover: "#112545",
599
+ colorInfoBorder: "#1C3959",
600
+ colorInfoBorderHover: "#204C7C",
601
+ colorInfoHover: "#50A0E8",
602
+ colorInfoActive: "#2565AB",
603
+ colorInfoTextHover: "#50A0E8",
604
+ colorInfoTextActive: "#2565AB",
605
+ colorSuccess: "#389E0D",
606
+ colorSuccessBg: "#162100",
607
+ colorSuccessBgHover: "#1D2B00",
608
+ colorSuccessBorder: "#274916",
609
+ colorSuccessBorderHover: "#306317",
610
+ colorSuccessHover: "#52C41A",
611
+ colorSuccessActive: "#237804",
612
+ colorSuccessTextHover: "#52C41A",
613
+ colorSuccessTextActive: "#237804",
614
+ colorWarning: "#D48806",
615
+ colorWarningBg: "#281800",
616
+ colorWarningBgHover: "#3D2200",
617
+ colorWarningBorder: "#443B16",
618
+ colorWarningBorderHover: "#594E1A",
619
+ colorWarningHover: "#E8B339",
620
+ colorWarningActive: "#AA7714",
621
+ colorWarningTextHover: "#E8B339",
622
+ colorWarningTextActive: "#AA7714",
623
+ colorError: "#CF3D33",
624
+ colorErrorBg: "#291414",
625
+ colorErrorBgHover: "#411A18",
626
+ colorErrorBorder: "#562222",
627
+ colorErrorBorderHover: "#772A24",
628
+ colorErrorHover: "#E5695A",
629
+ colorErrorActive: "#A3332B",
630
+ colorErrorTextHover: "#E5695A",
631
+ colorErrorTextActive: "#A3332B",
632
+ colorIcon: "rgba(255, 255, 255, 0.58)",
633
+ colorIconHover: "rgba(255, 255, 255, 0.88)",
634
+ controlOutline: "rgba(255, 255, 255, 0.12)"
635
+ }
636
+ };
637
+ const sharedTokens = {
638
+ fontFamily: "var(--ds-inter)",
639
+ fontFamilyCode: "var(--ds-roboto-mono)",
640
+ fontSizeHeading1: 36,
641
+ fontSizeHeading2: 30,
642
+ fontSizeHeading3: 24,
643
+ fontSizeHeading4: 20,
644
+ fontSizeHeading5: 16,
645
+ lineHeightHeading1: 40 / 36,
646
+ lineHeightHeading2: 1.2,
647
+ lineHeightHeading3: 32 / 24,
648
+ lineHeightHeading4: 1.4,
649
+ lineHeightHeading5: 1.5,
650
+ lineHeight: 20 / 14,
651
+ lineHeightLG: 1.5,
652
+ lineHeightSM: 16 / 12,
653
+ fontWeightStrong: 600,
654
+ boxShadow: "0px 1px 2px rgba(0, 0, 0, 0.06), 0px 1px 6px rgba(0, 0, 0, 0.04), 0px 2px 10px rgba(0, 0, 0, 0.04)",
655
+ boxShadowSecondary: "0px 0px 1px rgba(0, 0, 0, 0.24), 0px 3px 6px 1px rgba(0, 0, 0, 0.08), 0px 6px 26px 2px rgba(0, 0, 0, 0.08), 0px 4px 52px rgba(0, 0, 0, 0.05)",
656
+ colorBgSpotlight: "rgba(0, 0, 0, 0.85)"
657
+ };
658
+ const sharedThemeConfig = {
659
+ cssVar: true,
660
+ components: {
661
+ Input: {},
662
+ InputNumber: {},
663
+ Button: {
664
+ defaultShadow: void 0,
665
+ primaryShadow: void 0,
666
+ dangerShadow: void 0
667
+ },
668
+ Select: {},
669
+ Segmented: {
670
+ controlHeightLG: 36,
671
+ controlHeightSM: 24
672
+ },
673
+ Breadcrumb: {
674
+ separatorColor: "var(--ds-color-border)"
675
+ },
676
+ Slider: {
677
+ trackBg: "var(--ds-color-primary)",
678
+ trackHoverBg: "var(--ds-color-primary-hover)",
679
+ trackBgDisabled: "var(--ds-color-text-disabled)",
680
+ railBg: "var(--ds-control-outline)",
681
+ railHoverBg: "var(--ds-color-border)",
682
+ handleColor: "var(--ds-color-primary)",
683
+ handleActiveColor: "var(--ds-color-primary-active)",
684
+ handleColorDisabled: "var(--ds-color-text-disabled)",
685
+ dotBorderColor: "var(--ds-color-primary)",
686
+ dotActiveBorderColor: "var(--ds-color-primary-active)"
687
+ },
688
+ Form: {
689
+ itemMarginBottom: 16,
690
+ labelColor: "var(--ds-color-text)"
691
+ }
692
+ }
693
+ };
694
+ const lightTheme = {
695
+ token: {
696
+ ...figmaToAntDesignTokens.lightMode,
697
+ ...sharedTokens
698
+ },
699
+ ...sharedThemeConfig
700
+ };
701
+ const darkTheme = {
702
+ token: {
703
+ ...figmaToAntDesignTokens.darkMode,
704
+ ...sharedTokens
705
+ },
706
+ ...sharedThemeConfig
707
+ };
708
+ "use client";
709
+ const DSWrapper = ({ children, theme, appendClassesTo })=>{
710
+ const cls = useCls();
711
+ const className = clsx(cls("theme-provider"), theme.toString());
712
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect)(()=>{
713
+ const classes = className.split(" ");
714
+ const el = "string" == typeof appendClassesTo ? document.querySelector(appendClassesTo) : appendClassesTo;
715
+ if (el) el.classList.add(...classes);
716
+ return ()=>{
717
+ if (el) el.classList.remove(...classes);
718
+ };
719
+ }, [
720
+ appendClassesTo,
721
+ className
722
+ ]);
723
+ return void 0 === appendClassesTo ? __WEBPACK_EXTERNAL_MODULE_react__.Children.map(children, (child)=>{
724
+ if (/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(child)) return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.cloneElement)(child, {
725
+ className: clsx(child.props.className, className)
726
+ });
727
+ return child;
728
+ }) : children;
729
+ };
730
+ const ThemeProvider = ({ theme, appendClassesTo, children })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__ant_design_cssinjs_c619260f__.StyleProvider, {
731
+ layer: true,
732
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_antd_es_config_provider_6a57beb3__["default"], {
733
+ theme: "light" == theme ? lightTheme : darkTheme,
734
+ prefixCls: "ds",
735
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(DSWrapper, {
736
+ theme: theme,
737
+ appendClassesTo: appendClassesTo,
738
+ children: children
739
+ })
740
+ })
741
+ });
742
+ "use client";
743
+ function useControlledState(value, onChange, defaultValue) {
744
+ const [internalState, setInternalState] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(defaultValue);
745
+ const isControlled = void 0 !== value;
746
+ const setState = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((next)=>{
747
+ const nextValue = "function" == typeof next ? next(value) : next;
748
+ if ("function" == typeof onChange) onChange(nextValue);
749
+ if (!isControlled) setInternalState(next);
750
+ }, [
751
+ value,
752
+ onChange,
753
+ isControlled
754
+ ]);
755
+ const state = isControlled ? value : internalState;
756
+ return [
757
+ state,
758
+ setState
759
+ ];
760
+ }
761
+ "use client";
762
+ const WithAntdTokens = ({ as: Tag = "div", ref, className, ...rest })=>{
763
+ const Component = Tag;
764
+ const cssVar = useAntdCssVarClassname();
765
+ const { renderElement } = (0, __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.useRender)({
766
+ render: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Component, {}),
767
+ refs: [
768
+ ref
769
+ ],
770
+ props: {
771
+ ...rest,
772
+ className: clsx(className, cssVar)
773
+ }
774
+ });
775
+ return renderElement();
776
+ };
777
+ function reactNodeToString(node) {
778
+ if (null == node) return "";
779
+ if ("string" == typeof node) return node;
780
+ if ("number" == typeof node || "boolean" == typeof node) return node.toString();
781
+ if (Array.isArray(node)) return node.map(reactNodeToString).join("");
782
+ if ((0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(node) && "props" in node && node.props && "object" == typeof node.props && "children" in node.props && node.props.children) {
783
+ if ("br" === node.type) return "\n";
784
+ if (node.props.children) return reactNodeToString(node.props.children);
785
+ }
786
+ return "";
787
+ }
788
+ "use client";
789
+ const CodeBlock = ({ code, children, lang: defaultLang = "tsx", className, options, activeOption: controlledActiveOption, defaultActiveOption = 0, onActiveOptionChange, copyText = "Copy", copySuccessText = "Copied", ...rest })=>{
790
+ const [activeOption, setActiveOption] = useControlledState(controlledActiveOption, onActiveOptionChange, defaultActiveOption);
791
+ const [currentCode, setCurrentCode] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(code || "");
792
+ const [lang, setLang] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(defaultLang);
793
+ const hasOptions = options && options.length > 0;
794
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
795
+ if (hasOptions) {
796
+ var _options_activeOption, _options_activeOption1;
797
+ const newCode = (null == (_options_activeOption = options[activeOption]) ? void 0 : _options_activeOption.code) || "";
798
+ const newLang = (null == (_options_activeOption1 = options[activeOption]) ? void 0 : _options_activeOption1.lang) || defaultLang;
799
+ setCurrentCode(newCode);
800
+ setLang(newLang);
801
+ }
802
+ }, [
803
+ code,
804
+ activeOption,
805
+ defaultActiveOption,
806
+ options,
807
+ defaultLang,
808
+ hasOptions,
809
+ setActiveOption
810
+ ]);
811
+ const [tooltipContent, setTooltipContent] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(copyText);
812
+ const [copySuccess, setCopySuccess] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
813
+ const handleCopy = ()=>{
814
+ const codeContent = currentCode ? currentCode : reactNodeToString(children);
815
+ try {
816
+ navigator.clipboard.writeText(codeContent).then(()=>{
817
+ setTooltipContent(copySuccessText);
818
+ setCopySuccess(true);
819
+ });
820
+ } catch (_) {
821
+ setTooltipContent("Failed to copy");
822
+ }
823
+ };
824
+ const handleMouseLeave = ()=>{
825
+ setTooltipContent(copyText);
826
+ setCopySuccess(false);
827
+ };
828
+ const cls = useCls();
829
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ThemeProvider, {
830
+ theme: "dark",
831
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(WithAntdTokens, {
832
+ className: clsx(cls("code-block"), className),
833
+ ...rest,
834
+ children: [
835
+ hasOptions && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
836
+ className: cls("code-block-header"),
837
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Segmented, {
838
+ value: activeOption,
839
+ onChange: setActiveOption,
840
+ options: options.map((opt, index)=>({
841
+ label: opt.label,
842
+ value: index
843
+ }))
844
+ })
845
+ }),
846
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
847
+ className: cls("code-block-copy"),
848
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(IconButton, {
849
+ onClick: handleCopy,
850
+ label: tooltipContent,
851
+ onMouseLeave: handleMouseLeave,
852
+ children: copySuccess ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.Check, {}) : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.Copy, {})
853
+ })
854
+ }),
855
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
856
+ className: cls("code-block-content"),
857
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(ScrollArea, {
858
+ children: currentCode ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_prism_react_renderer_be33806e__.Highlight, {
859
+ language: lang,
860
+ code: currentCode,
861
+ theme: __WEBPACK_EXTERNAL_MODULE_prism_react_renderer_be33806e__.themes.vsDark,
862
+ children: ({ className, style, tokens, getLineProps, getTokenProps })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("pre", {
863
+ style: {
864
+ ...style,
865
+ backgroundColor: "transparent"
866
+ },
867
+ className: className,
868
+ children: tokens.map((line, i)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
869
+ ...getLineProps({
870
+ line
871
+ }),
872
+ children: line.map((token, key)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
873
+ ...getTokenProps({
874
+ token
875
+ })
876
+ }, key))
877
+ }, i))
878
+ })
879
+ }) : children
880
+ })
881
+ })
882
+ ]
883
+ })
884
+ });
885
+ };
886
+ "use client";
887
+ function InnerToast({ toast }) {
888
+ var _toast_data;
889
+ const cls = useCls();
890
+ const toastIconMap = {
891
+ info: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.Info, {
892
+ weight: "fill"
893
+ }),
894
+ warning: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.WarningCircle, {
895
+ weight: "fill"
896
+ }),
897
+ error: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.XCircle, {
898
+ weight: "fill"
899
+ }),
900
+ success: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.CheckCircle, {
901
+ weight: "fill"
902
+ }),
903
+ progress: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.CircleNotch, {})
904
+ };
905
+ const type = (null == (_toast_data = toast.data) ? void 0 : _toast_data.type) || "info";
906
+ const isTraceback = isTracebackError(null == toast ? void 0 : toast.description);
907
+ (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
908
+ if (isTraceback) toastManager.update(toast.id, {
909
+ timeout: 0
910
+ });
911
+ }, [
912
+ isTraceback,
913
+ toast.id
914
+ ]);
915
+ const renderDescription = (0, __WEBPACK_EXTERNAL_MODULE_react__.useCallback)((props)=>{
916
+ const { children, className, ...rest } = props;
917
+ if (isTraceback) return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
918
+ ...rest,
919
+ className: cls("toast-description", isTraceback ? "toast-description-traceback" : "", className),
920
+ children: [
921
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("p", {
922
+ children: [
923
+ "An unexpected error occurred.",
924
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("br", {}),
925
+ "Please contact us with error details for support."
926
+ ]
927
+ }),
928
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("p", {
929
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Button, {
930
+ size: "small",
931
+ onClick: ()=>{
932
+ Modal_Modal.open({
933
+ title: "Error details",
934
+ content: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(CodeBlock, {
935
+ children: children
936
+ }),
937
+ hideOkButton: true
938
+ });
939
+ toastManager.close(toast.id);
940
+ },
941
+ children: "View error details"
942
+ })
943
+ })
944
+ ]
945
+ });
946
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("p", {
947
+ ...rest,
948
+ className: cls("toast-description", className),
949
+ children: children
950
+ });
951
+ }, [
952
+ isTraceback,
953
+ cls,
954
+ toast.id
955
+ ]);
956
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Root, {
957
+ toast: toast,
958
+ className: cls("toast"),
959
+ children: [
960
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
961
+ className: cls("toast-icon-wrap"),
962
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("span", {
963
+ className: cls("toast-icon", `toast-icon-${type}`),
964
+ children: toastIconMap[type]
965
+ })
966
+ }),
967
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
968
+ className: cls("toast-content"),
969
+ children: [
970
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Title, {
971
+ className: cls("toast-title")
972
+ }),
973
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Description, {
974
+ render: renderDescription
975
+ })
976
+ ]
977
+ }),
978
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Close, {
979
+ className: cls("toast-close"),
980
+ render: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(IconButton, {
981
+ size: "small",
982
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__bioturing_assets_dd0c210d__.X, {})
983
+ })
984
+ })
985
+ ]
986
+ });
987
+ }
988
+ function ToastList({ className }) {
989
+ const { toasts } = __WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.useToastManager();
990
+ const cls = useCls();
991
+ const cssVars = useAntdCssVarClassname();
992
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Viewport, {
993
+ className: clsx(cls("toast-viewport"), cssVars, className),
994
+ children: toasts.map((toast)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(InnerToast, {
995
+ toast: toast
996
+ }, toast.id))
997
+ });
998
+ }
999
+ function ToastProvider(props) {
1000
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__base_ui_components_react_5aaa6934__.Toast.Provider, {
1001
+ toastManager: toastManager,
1002
+ ...props
1003
+ });
1004
+ }
1005
+ const Toast = Object.assign(InnerToast, {
1006
+ List: ToastList,
1007
+ Provider: ToastProvider
1008
+ });
1009
+ export { Toast, function_toast as toast, toastManager };