@bioturing/components 0.15.0 → 0.15.2

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 (356) hide show
  1. package/dist/components/Badge/component.js +21 -0
  2. package/dist/components/Badge/component.js.map +1 -0
  3. package/dist/components/Badge/style.css +1 -0
  4. package/dist/components/Breadcrumb/component.js +46 -0
  5. package/dist/components/Breadcrumb/component.js.map +1 -0
  6. package/dist/components/Breadcrumb/style.css +1 -0
  7. package/dist/components/Breadcrumb/useItemRender.js +27 -0
  8. package/dist/components/Breadcrumb/useItemRender.js.map +1 -0
  9. package/dist/components/Button/component.js +9 -0
  10. package/dist/components/Button/component.js.map +1 -0
  11. package/dist/components/Button/style.css +1 -0
  12. package/dist/components/Checkbox/component.js +11 -0
  13. package/dist/components/Checkbox/component.js.map +1 -0
  14. package/dist/components/Checkbox/style.css +1 -0
  15. package/dist/components/CodeBlock/component.js +127 -0
  16. package/dist/components/CodeBlock/component.js.map +1 -0
  17. package/dist/components/CodeBlock/style.css +1 -0
  18. package/dist/components/DSRoot/component.js +21 -0
  19. package/dist/components/DSRoot/component.js.map +1 -0
  20. package/dist/components/DSRoot/context.js +9 -0
  21. package/dist/components/DSRoot/context.js.map +1 -0
  22. package/dist/components/DSRoot/style.css +1 -0
  23. package/dist/components/DropdownMenu/component.js +103 -0
  24. package/dist/components/DropdownMenu/component.js.map +1 -0
  25. package/dist/components/DropdownMenu/style.css +1 -0
  26. package/dist/components/Empty/component.js +48 -0
  27. package/dist/components/Empty/component.js.map +1 -0
  28. package/dist/components/Empty/style.css +1 -0
  29. package/dist/components/Field/component.js +30 -0
  30. package/dist/components/Field/component.js.map +1 -0
  31. package/dist/components/Field/style.css +1 -0
  32. package/dist/components/Form/component.js +23 -0
  33. package/dist/components/Form/component.js.map +1 -0
  34. package/dist/components/Form/item.js +30 -0
  35. package/dist/components/Form/item.js.map +1 -0
  36. package/dist/components/Form/style.css +1 -0
  37. package/dist/components/IconButton/component.js +49 -0
  38. package/dist/components/IconButton/component.js.map +1 -0
  39. package/dist/components/IconButton/style.css +1 -0
  40. package/dist/components/Input/component.js +25 -0
  41. package/dist/components/Input/component.js.map +1 -0
  42. package/dist/components/Modal/Modal.js +161 -0
  43. package/dist/components/Modal/Modal.js.map +1 -0
  44. package/dist/components/Modal/ModalProvider.js +70 -0
  45. package/dist/components/Modal/ModalProvider.js.map +1 -0
  46. package/dist/components/Modal/ModalService.js +25 -0
  47. package/dist/components/Modal/ModalService.js.map +1 -0
  48. package/dist/components/Modal/constants.js +5 -0
  49. package/dist/components/Modal/constants.js.map +1 -0
  50. package/dist/components/Modal/functions.js +27 -0
  51. package/dist/components/Modal/functions.js.map +1 -0
  52. package/dist/components/Modal/index.js +20 -0
  53. package/dist/components/Modal/index.js.map +1 -0
  54. package/dist/components/Modal/style.css +1 -0
  55. package/dist/components/Popover/component.js +12 -0
  56. package/dist/components/Popover/component.js.map +1 -0
  57. package/dist/components/PopupPanel/component.js +190 -0
  58. package/dist/components/PopupPanel/component.js.map +1 -0
  59. package/dist/components/PopupPanel/constants.js +5 -0
  60. package/dist/components/PopupPanel/constants.js.map +1 -0
  61. package/dist/components/PopupPanel/style.css +1 -0
  62. package/dist/components/Radio/component.js +22 -0
  63. package/dist/components/Radio/component.js.map +1 -0
  64. package/dist/components/Radio/style.css +1 -0
  65. package/dist/components/ScrollArea/component.js +40 -0
  66. package/dist/components/ScrollArea/component.js.map +1 -0
  67. package/dist/components/ScrollArea/style.css +1 -0
  68. package/dist/components/Segmented/component.js +9 -0
  69. package/dist/components/Segmented/component.js.map +1 -0
  70. package/dist/components/Segmented/style.css +1 -0
  71. package/dist/components/Select/component.js +135 -0
  72. package/dist/components/Select/component.js.map +1 -0
  73. package/dist/components/Select/style.css +1 -0
  74. package/dist/components/Slider/component.js +23 -0
  75. package/dist/components/Slider/component.js.map +1 -0
  76. package/dist/components/Spin/component.js +12 -0
  77. package/dist/components/Spin/component.js.map +1 -0
  78. package/dist/components/Spin/style.css +1 -0
  79. package/dist/components/Splitter/component.js +40 -0
  80. package/dist/components/Splitter/component.js.map +1 -0
  81. package/dist/components/Splitter/style.css +1 -0
  82. package/dist/components/Stack/Stack.js +37 -0
  83. package/dist/components/Stack/Stack.js.map +1 -0
  84. package/dist/components/Stack/StackChild.js +57 -0
  85. package/dist/components/Stack/StackChild.js.map +1 -0
  86. package/dist/components/Stack/index.js +9 -0
  87. package/dist/components/Stack/index.js.map +1 -0
  88. package/dist/components/Stack/style.css +1 -0
  89. package/dist/components/Switch/component.js +9 -0
  90. package/dist/components/Switch/component.js.map +1 -0
  91. package/dist/components/Switch/style.css +1 -0
  92. package/dist/components/Table/component.js +68 -0
  93. package/dist/components/Table/component.js.map +1 -0
  94. package/dist/components/Table/style.css +1 -0
  95. package/dist/components/Tag/component.js +30 -0
  96. package/dist/components/Tag/component.js.map +1 -0
  97. package/dist/components/Tag/style.css +1 -0
  98. package/dist/components/ThemeProvider/component.js +41 -0
  99. package/dist/components/ThemeProvider/component.js.map +1 -0
  100. package/dist/components/ThemeProvider/style.css +1 -0
  101. package/dist/components/Toast/component.js +101 -0
  102. package/dist/components/Toast/component.js.map +1 -0
  103. package/dist/components/Toast/function.js +25 -0
  104. package/dist/components/Toast/function.js.map +1 -0
  105. package/dist/components/Toast/style.css +1 -0
  106. package/dist/components/Tooltip/component.js +26 -0
  107. package/dist/components/Tooltip/component.js.map +1 -0
  108. package/dist/components/Tooltip/style.css +1 -0
  109. package/dist/components/Tour/component.js +35 -0
  110. package/dist/components/Tour/component.js.map +1 -0
  111. package/dist/components/Tour/style.css +1 -0
  112. package/dist/components/Transition/component.js +44 -0
  113. package/dist/components/Transition/component.js.map +1 -0
  114. package/dist/components/Tree/components.js +68 -0
  115. package/dist/components/Tree/components.js.map +1 -0
  116. package/dist/components/Tree/helpers.js +53 -0
  117. package/dist/components/Tree/helpers.js.map +1 -0
  118. package/dist/components/Tree/style.css +1 -0
  119. package/dist/components/Tree/useTreeCommon.js +86 -0
  120. package/dist/components/Tree/useTreeCommon.js.map +1 -0
  121. package/dist/components/Tree/useUniqueKeysTree.js +142 -0
  122. package/dist/components/Tree/useUniqueKeysTree.js.map +1 -0
  123. package/dist/components/Truncate/component.js +93 -0
  124. package/dist/components/Truncate/component.js.map +1 -0
  125. package/dist/components/Truncate/helpers.js +36 -0
  126. package/dist/components/Truncate/helpers.js.map +1 -0
  127. package/dist/components/Truncate/style.css +1 -0
  128. package/dist/components/Upload/component.js +39 -0
  129. package/dist/components/Upload/component.js.map +1 -0
  130. package/dist/components/Upload/dragger.js +23 -0
  131. package/dist/components/Upload/dragger.js.map +1 -0
  132. package/dist/components/Upload/hooks.js +18 -0
  133. package/dist/components/Upload/hooks.js.map +1 -0
  134. package/dist/components/Upload/item.js +84 -0
  135. package/dist/components/Upload/item.js.map +1 -0
  136. package/dist/components/Upload/utils.js +7 -0
  137. package/dist/components/Upload/utils.js.map +1 -0
  138. package/dist/components/VerticalCollapsiblePanel/component.js +125 -0
  139. package/dist/components/VerticalCollapsiblePanel/component.js.map +1 -0
  140. package/dist/components/VerticalCollapsiblePanel/style.css +1 -0
  141. package/dist/components/hooks/antd.js +22 -0
  142. package/dist/components/hooks/antd.js.map +1 -0
  143. package/dist/components/hooks/base-ui.js +47 -0
  144. package/dist/components/hooks/base-ui.js.map +1 -0
  145. package/dist/components/hooks/useCharts.js +28 -0
  146. package/dist/components/hooks/useCharts.js.map +1 -0
  147. package/dist/components/hooks/useControlledState.js +15 -0
  148. package/dist/components/hooks/useControlledState.js.map +1 -0
  149. package/dist/components/utils/WithAntdTokens.js +24 -0
  150. package/dist/components/utils/WithAntdTokens.js.map +1 -0
  151. package/dist/components/utils/antdUtils.js +58 -0
  152. package/dist/components/utils/antdUtils.js.map +1 -0
  153. package/dist/components/utils/cn.js +27 -0
  154. package/dist/components/utils/cn.js.map +1 -0
  155. package/dist/components/utils/isTracebackError.js +10 -0
  156. package/dist/components/utils/isTracebackError.js.map +1 -0
  157. package/dist/components/utils/reactToString.js +23 -0
  158. package/dist/components/utils/reactToString.js.map +1 -0
  159. package/dist/index.d.ts +2497 -3
  160. package/dist/index.js +188 -4004
  161. package/dist/index.js.map +1 -0
  162. package/dist/metadata.js +513 -0
  163. package/dist/metadata.js.map +1 -0
  164. package/dist/tailwind.css +1 -121
  165. package/dist/tailwind.d.ts +1 -0
  166. package/dist/tokens/and-theme/tokens.js +351 -0
  167. package/dist/tokens/and-theme/tokens.js.map +1 -0
  168. package/dist/tokens/charts/index.js +18 -0
  169. package/dist/tokens/charts/index.js.map +1 -0
  170. package/dist/tokens/charts/tokens.js +208 -0
  171. package/dist/tokens/charts/tokens.js.map +1 -0
  172. package/dist/tokens/utils.js +37 -0
  173. package/dist/tokens/utils.js.map +1 -0
  174. package/package.json +10 -108
  175. package/dist/Badge.css +0 -6
  176. package/dist/Badge.js +0 -41
  177. package/dist/Breadcrumb.css +0 -83
  178. package/dist/Breadcrumb.js +0 -92
  179. package/dist/Checkbox.css +0 -13
  180. package/dist/Checkbox.js +0 -12
  181. package/dist/CodeBlock.css +0 -213
  182. package/dist/CodeBlock.js +0 -644
  183. package/dist/Collapse.css +0 -21
  184. package/dist/Collapse.js +0 -49
  185. package/dist/DSRoot.css +0 -667
  186. package/dist/DSRoot.js +0 -1428
  187. package/dist/DropdownMenu.css +0 -95
  188. package/dist/DropdownMenu.js +0 -211
  189. package/dist/Empty.css +0 -19
  190. package/dist/Empty.js +0 -53
  191. package/dist/Field.css +0 -14
  192. package/dist/Field.js +0 -66
  193. package/dist/Form.css +0 -64
  194. package/dist/Form.js +0 -125
  195. package/dist/IconButton.css +0 -52
  196. package/dist/IconButton.js +0 -82
  197. package/dist/Input.js +0 -48
  198. package/dist/Modal.css +0 -317
  199. package/dist/Modal.js +0 -677
  200. package/dist/Popover.js +0 -10
  201. package/dist/PopupPanel.css +0 -170
  202. package/dist/PopupPanel.js +0 -333
  203. package/dist/Radio.css +0 -14
  204. package/dist/Radio.js +0 -24
  205. package/dist/ScrollArea.css +0 -64
  206. package/dist/ScrollArea.js +0 -50
  207. package/dist/Segmented.css +0 -16
  208. package/dist/Segmented.js +0 -10
  209. package/dist/Select.css +0 -24
  210. package/dist/Select.js +0 -157
  211. package/dist/Slider.js +0 -39
  212. package/dist/Spin.css +0 -36
  213. package/dist/Spin.js +0 -33
  214. package/dist/Splitter.css +0 -6
  215. package/dist/Splitter.js +0 -47
  216. package/dist/Switch.css +0 -7
  217. package/dist/Switch.js +0 -10
  218. package/dist/Table.css +0 -116
  219. package/dist/Table.js +0 -126
  220. package/dist/Tag.css +0 -17
  221. package/dist/Tag.js +0 -24
  222. package/dist/ThemeProvider.css +0 -39
  223. package/dist/ThemeProvider.js +0 -403
  224. package/dist/Toast.css +0 -622
  225. package/dist/Toast.js +0 -1401
  226. package/dist/Tooltip.css +0 -6
  227. package/dist/Tooltip.js +0 -36
  228. package/dist/Tour.css +0 -73
  229. package/dist/Tour.js +0 -54
  230. package/dist/Tree.js +0 -318
  231. package/dist/Truncate.css +0 -31
  232. package/dist/Truncate.js +0 -216
  233. package/dist/Upload.css +0 -144
  234. package/dist/Upload.js +0 -516
  235. package/dist/VerticalCollapsiblePanel.css +0 -193
  236. package/dist/VerticalCollapsiblePanel.js +0 -469
  237. package/dist/components/Badge/component.d.ts +0 -4
  238. package/dist/components/Badge/index.d.ts +0 -1
  239. package/dist/components/Breadcrumb/component.d.ts +0 -6
  240. package/dist/components/Breadcrumb/index.d.ts +0 -2
  241. package/dist/components/Breadcrumb/types.d.ts +0 -18
  242. package/dist/components/Breadcrumb/useItemRender.d.ts +0 -6
  243. package/dist/components/Button/component.d.ts +0 -8
  244. package/dist/components/Button/index.d.ts +0 -1
  245. package/dist/components/Checkbox/component.d.ts +0 -11
  246. package/dist/components/Checkbox/index.d.ts +0 -1
  247. package/dist/components/CodeBlock/component.d.ts +0 -3
  248. package/dist/components/CodeBlock/index.d.ts +0 -2
  249. package/dist/components/CodeBlock/types.d.ts +0 -59
  250. package/dist/components/Collapse/component.d.ts +0 -14
  251. package/dist/components/Collapse/index.d.ts +0 -1
  252. package/dist/components/DSRoot/component.d.ts +0 -14
  253. package/dist/components/DSRoot/context.d.ts +0 -7
  254. package/dist/components/DSRoot/index.d.ts +0 -1
  255. package/dist/components/DropdownMenu/component.d.ts +0 -31
  256. package/dist/components/DropdownMenu/index.d.ts +0 -2
  257. package/dist/components/Empty/component.d.ts +0 -13
  258. package/dist/components/Empty/index.d.ts +0 -1
  259. package/dist/components/Field/component.d.ts +0 -42
  260. package/dist/components/Field/index.d.ts +0 -1
  261. package/dist/components/Form/component.d.ts +0 -19
  262. package/dist/components/Form/index.d.ts +0 -1
  263. package/dist/components/Form/item.d.ts +0 -5
  264. package/dist/components/IconButton/component.d.ts +0 -30
  265. package/dist/components/IconButton/index.d.ts +0 -1
  266. package/dist/components/Input/component.d.ts +0 -30
  267. package/dist/components/Input/index.d.ts +0 -1
  268. package/dist/components/Modal/Modal.d.ts +0 -84
  269. package/dist/components/Modal/ModalProvider.d.ts +0 -5
  270. package/dist/components/Modal/ModalService.d.ts +0 -33
  271. package/dist/components/Modal/constants.d.ts +0 -9
  272. package/dist/components/Modal/functions.d.ts +0 -27
  273. package/dist/components/Modal/index.d.ts +0 -15
  274. package/dist/components/Popover/component.d.ts +0 -9
  275. package/dist/components/Popover/index.d.ts +0 -1
  276. package/dist/components/PopupPanel/component.d.ts +0 -61
  277. package/dist/components/PopupPanel/constants.d.ts +0 -7
  278. package/dist/components/PopupPanel/index.d.ts +0 -1
  279. package/dist/components/Radio/component.d.ts +0 -8
  280. package/dist/components/Radio/index.d.ts +0 -2
  281. package/dist/components/Radio/interface.d.ts +0 -5
  282. package/dist/components/ScrollArea/component.d.ts +0 -32
  283. package/dist/components/ScrollArea/index.d.ts +0 -1
  284. package/dist/components/Segmented/component.d.ts +0 -10
  285. package/dist/components/Segmented/index.d.ts +0 -1
  286. package/dist/components/Select/component.d.ts +0 -24
  287. package/dist/components/Select/index.d.ts +0 -1
  288. package/dist/components/Slider/component.d.ts +0 -5
  289. package/dist/components/Slider/index.d.ts +0 -1
  290. package/dist/components/Spin/component.d.ts +0 -4
  291. package/dist/components/Spin/index.d.ts +0 -1
  292. package/dist/components/Splitter/component.d.ts +0 -13
  293. package/dist/components/Splitter/index.d.ts +0 -1
  294. package/dist/components/Stack/Stack.d.ts +0 -39
  295. package/dist/components/Stack/StackChild.d.ts +0 -30
  296. package/dist/components/Stack/index.d.ts +0 -8
  297. package/dist/components/Switch/component.d.ts +0 -9
  298. package/dist/components/Switch/index.d.ts +0 -1
  299. package/dist/components/Table/component.d.ts +0 -20
  300. package/dist/components/Table/index.d.ts +0 -1
  301. package/dist/components/Tag/component.d.ts +0 -12
  302. package/dist/components/Tag/index.d.ts +0 -1
  303. package/dist/components/ThemeProvider/component.d.ts +0 -7
  304. package/dist/components/ThemeProvider/index.d.ts +0 -1
  305. package/dist/components/Toast/component.d.ts +0 -15
  306. package/dist/components/Toast/function.d.ts +0 -10
  307. package/dist/components/Toast/index.d.ts +0 -3
  308. package/dist/components/Toast/types.d.ts +0 -3
  309. package/dist/components/Tooltip/component.d.ts +0 -10
  310. package/dist/components/Tooltip/index.d.ts +0 -1
  311. package/dist/components/Tour/component.d.ts +0 -8
  312. package/dist/components/Tour/index.d.ts +0 -1
  313. package/dist/components/Transition/component.d.ts +0 -17
  314. package/dist/components/Transition/index.d.ts +0 -1
  315. package/dist/components/Tree/components.d.ts +0 -13
  316. package/dist/components/Tree/helpers.d.ts +0 -4
  317. package/dist/components/Tree/index.d.ts +0 -4
  318. package/dist/components/Tree/types.d.ts +0 -55
  319. package/dist/components/Tree/useTreeCommon.d.ts +0 -178
  320. package/dist/components/Tree/useUniqueKeysTree.d.ts +0 -33
  321. package/dist/components/Truncate/component.d.ts +0 -15
  322. package/dist/components/Truncate/helpers.d.ts +0 -5
  323. package/dist/components/Truncate/index.d.ts +0 -1
  324. package/dist/components/Upload/component.d.ts +0 -16
  325. package/dist/components/Upload/dragger.d.ts +0 -13
  326. package/dist/components/Upload/hooks.d.ts +0 -5
  327. package/dist/components/Upload/index.d.ts +0 -4
  328. package/dist/components/Upload/item.d.ts +0 -11
  329. package/dist/components/Upload/utils.d.ts +0 -1
  330. package/dist/components/VerticalCollapsiblePanel/component.d.ts +0 -65
  331. package/dist/components/VerticalCollapsiblePanel/index.d.ts +0 -1
  332. package/dist/components/hooks/antd.d.ts +0 -11
  333. package/dist/components/hooks/base-ui.d.ts +0 -7
  334. package/dist/components/hooks/index.d.ts +0 -4
  335. package/dist/components/hooks/useCharts.d.ts +0 -22
  336. package/dist/components/hooks/useControlledState.d.ts +0 -1
  337. package/dist/components/index.d.ts +0 -41
  338. package/dist/components/utils/WithAntdTokens.d.ts +0 -7
  339. package/dist/components/utils/antdUtils.d.ts +0 -15
  340. package/dist/components/utils/client.d.ts +0 -2
  341. package/dist/components/utils/cn.d.ts +0 -4
  342. package/dist/components/utils/index.d.ts +0 -3
  343. package/dist/components/utils/isTracebackError.d.ts +0 -1
  344. package/dist/components/utils/main.d.ts +0 -3
  345. package/dist/components/utils/reactToString.d.ts +0 -2
  346. package/dist/components/utils/types.d.ts +0 -9
  347. package/dist/hooks.js +0 -961
  348. package/dist/index.css +0 -1471
  349. package/dist/metadata.d.ts +0 -363
  350. package/dist/tokens/and-theme/index.d.ts +0 -1
  351. package/dist/tokens/and-theme/tokens.d.ts +0 -5
  352. package/dist/tokens/charts/index.d.ts +0 -6
  353. package/dist/tokens/charts/tokens.d.ts +0 -455
  354. package/dist/tokens/index.d.ts +0 -2
  355. package/dist/tokens/utils.d.ts +0 -16
  356. package/dist/utils.js +0 -120
@@ -0,0 +1,190 @@
1
+ import { jsx as t, jsxs as o, Fragment as L } from "react/jsx-runtime";
2
+ import { Popover as r } from "@base-ui-components/react/popover";
3
+ import { useRef as Q, useState as c, useCallback as y, useEffect as C, useMemo as Y } from "react";
4
+ import Z from "antd/es/flex";
5
+ import { X as _ } from "@bioturing/assets";
6
+ import { PopupPanelSize as B } from "./constants.js";
7
+ import { useResizable as ee } from "react-use-resizable";
8
+ import './style.css';/* empty css */
9
+ import { useControlledState as te } from "../hooks/useControlledState.js";
10
+ import { useCls as ne, useAntdCssVarClassname as re, parseAntdPlacement as se } from "../utils/antdUtils.js";
11
+ import { IconButton as oe } from "../IconButton/component.js";
12
+ import { clsx as le } from "../utils/cn.js";
13
+ const ze = ({
14
+ children: H,
15
+ placement: b,
16
+ openOnHover: x = !1,
17
+ open: k,
18
+ onOpenChange: w,
19
+ content: O,
20
+ title: p,
21
+ trigger: S = "click",
22
+ className: I,
23
+ anchor: V,
24
+ beforeCloseButton: f,
25
+ afterCloseButton: h,
26
+ afterTitle: d,
27
+ size: g = "medium",
28
+ footer: i,
29
+ defaultOpen: D,
30
+ resizable: j = !1
31
+ }) => {
32
+ const [A, v] = te(
33
+ k,
34
+ w,
35
+ D ?? !1
36
+ // Always provide a default value to prevent undefined
37
+ ), n = ne(), E = re(), R = se(b), F = Q(null), [u, W] = c(null), [$, M] = c(), [T, U] = c(), X = y((e) => {
38
+ W(e);
39
+ }, []);
40
+ C(() => {
41
+ if (!u) return;
42
+ const e = new ResizeObserver((l) => {
43
+ for (const s of l)
44
+ M(s.contentRect.width), U(s.contentRect.height);
45
+ });
46
+ return e.observe(u), () => {
47
+ e.disconnect();
48
+ };
49
+ }, [u]);
50
+ const z = Y(() => /* @__PURE__ */ t(_, { size: 16 }), []), q = y(() => /* @__PURE__ */ o("div", { className: n("popup-panel-header"), children: [
51
+ /* @__PURE__ */ o(
52
+ Z,
53
+ {
54
+ align: "center",
55
+ gap: 8,
56
+ className: n("popup-panel-title-wrapper"),
57
+ children: [
58
+ /* @__PURE__ */ t(
59
+ r.Title,
60
+ {
61
+ render: /* @__PURE__ */ t("div", { className: n("grow", "truncate"), children: p })
62
+ }
63
+ ),
64
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-2", children: [
65
+ f,
66
+ /* @__PURE__ */ t(
67
+ r.Close,
68
+ {
69
+ render: /* @__PURE__ */ t(oe, { children: z })
70
+ }
71
+ ),
72
+ h
73
+ ] })
74
+ ]
75
+ }
76
+ ),
77
+ d || null
78
+ ] }), [
79
+ h,
80
+ d,
81
+ f,
82
+ n,
83
+ z,
84
+ p
85
+ ]), [m, N] = c(!1), { getRootProps: G, getHandleProps: a, rootRef: P } = ee({
86
+ initialWidth: $,
87
+ initialHeight: T,
88
+ onDragStart: () => N(!0),
89
+ onDragEnd: () => N(!1)
90
+ });
91
+ C(() => {
92
+ m ? document.body.style.userSelect = "none" : document.body.style.userSelect = "";
93
+ }, [m]);
94
+ const J = (e, l) => {
95
+ if (!e.current) return;
96
+ const { heightDiff: s } = l;
97
+ e.current.style.top = `${parseInt(e.current.style.top || "0") - s}px`;
98
+ }, K = (e, l) => {
99
+ if (!e.current) return;
100
+ const { widthDiff: s } = l;
101
+ e.current.style.left = `${parseInt(e.current.style.left || "0") - s}px`;
102
+ };
103
+ return /* @__PURE__ */ o(
104
+ r.Root,
105
+ {
106
+ openOnHover: S === "hover" ? !0 : x,
107
+ open: A,
108
+ onOpenChange: (e) => {
109
+ v(e);
110
+ },
111
+ delay: 100,
112
+ children: [
113
+ /* @__PURE__ */ t(r.Trigger, { render: H, ref: F }),
114
+ /* @__PURE__ */ t(r.Portal, { children: /* @__PURE__ */ t(
115
+ r.Positioner,
116
+ {
117
+ className: n("popup-panel-root"),
118
+ side: R.placement,
119
+ align: R.align,
120
+ sideOffset: 4,
121
+ anchor: V,
122
+ style: {
123
+ "--size-width": g ? B[g] : void 0
124
+ },
125
+ ref: X,
126
+ children: /* @__PURE__ */ o(
127
+ r.Popup,
128
+ {
129
+ className: le(n("popup-panel"), E, I),
130
+ ...G(),
131
+ ...m ? { "data-resizing": !0 } : {},
132
+ children: [
133
+ p && q(),
134
+ /* @__PURE__ */ t("div", { className: n("popup-panel-content"), children: /* @__PURE__ */ t("div", { className: n("popup-panel-content-inner"), children: O }) }),
135
+ i && /* @__PURE__ */ t("div", { className: n("popup-panel-footer"), children: typeof i == "function" ? i({ close: () => v(!1) }) : i }),
136
+ j && /* @__PURE__ */ o(L, { children: [
137
+ /* @__PURE__ */ t(
138
+ "div",
139
+ {
140
+ className: n("resize-handle-top"),
141
+ ...a({
142
+ reverse: !0,
143
+ lockHorizontal: !0,
144
+ onResize: (e) => J(P, e)
145
+ })
146
+ }
147
+ ),
148
+ /* @__PURE__ */ t(
149
+ "div",
150
+ {
151
+ className: n("resize-handle-bottom"),
152
+ ...a({
153
+ lockHorizontal: !0
154
+ })
155
+ }
156
+ ),
157
+ /* @__PURE__ */ t(
158
+ "div",
159
+ {
160
+ className: n("resize-handle-left"),
161
+ ...a({
162
+ reverse: !0,
163
+ lockVertical: !0,
164
+ onResize: (e) => K(P, e)
165
+ })
166
+ }
167
+ ),
168
+ /* @__PURE__ */ t(
169
+ "div",
170
+ {
171
+ className: n("resize-handle-right"),
172
+ ...a({
173
+ lockVertical: !0
174
+ })
175
+ }
176
+ )
177
+ ] })
178
+ ]
179
+ }
180
+ )
181
+ }
182
+ ) })
183
+ ]
184
+ }
185
+ );
186
+ };
187
+ export {
188
+ ze as PopupPanel
189
+ };
190
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/PopupPanel/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n useCls,\n clsx,\n useAntdCssVarClassname,\n parseAntdPlacement,\n} from \"../utils\";\nimport { Popover } from \"@base-ui-components/react/popover\";\n\nimport { type PopoverProps } from \"antd/es/popover\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport Flex from \"antd/es/flex\";\nimport { IconButton } from \"../IconButton\";\nimport { X } from \"@bioturing/assets\";\nimport { PopupPanelSize } from \"./constants\";\nimport { useControlledState } from \"../hooks\";\nimport { useResizable, type MoveValues } from \"react-use-resizable\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface PopupPanelProps\n extends Omit<\n React.ComponentPropsWithRef<\"div\">,\n \"title\" | \"content\" | \"children\"\n > {\n /** The trigger element that opens the popup panel */\n children?: React.ComponentProps<typeof Popover.Trigger>[\"render\"];\n /** Placement of the popup panel relative to its trigger */\n placement?: PopoverProps[\"placement\"];\n /** Whether to open the popup panel on hover */\n openOnHover?: boolean;\n /** Controls the open state of the popup panel */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Content to display inside the popup panel */\n content?: React.ReactNode;\n /** Title text or element to display in the panel header */\n title?: React.ReactNode;\n /** The event that triggers the popup panel */\n /**\n * @default \"click\"\n */\n trigger?: \"click\" | \"hover\";\n /** Custom anchor element for positioning the panel */\n anchor?: Popover.Positioner.Props[\"anchor\"];\n /** Content to display before the close button */\n beforeCloseButton?: React.ReactNode;\n /** Content to display after the close button */\n afterCloseButton?: React.ReactNode;\n /** Content to display after the title */\n afterTitle?: React.ReactNode;\n /**\n * Predefined sizes for the popup panel\n * - xsmall: 320px\n * - small: 400px\n * - medium: 480px (default)\n * - large: 640px\n * - xlarge: 840px\n * @default \"medium\" for default type, \"xsmall\" for other types\n */\n size?: keyof typeof PopupPanelSize;\n /**\n * Footer content for the popup panel\n * Can be a React node or a function that returns a React node\n */\n footer?:\n | React.ReactNode\n | ((props: { close: () => void }) => React.ReactNode);\n /**\n * Whether the panel should be open by default when uncontrolled\n * @default false\n */\n defaultOpen?: boolean;\n /**\n * Whether the panel should be resizable\n * @default false\n */\n resizable?: boolean;\n}\n\nexport const PopupPanel = ({\n children,\n placement,\n openOnHover = false,\n open: outsideOpen,\n onOpenChange: outsideOnOpenChange,\n content,\n title,\n trigger = \"click\",\n className,\n anchor,\n beforeCloseButton,\n afterCloseButton,\n afterTitle,\n size = \"medium\",\n footer,\n defaultOpen,\n resizable = false,\n}: PopupPanelProps) => {\n // Use controlled state with proper initialization to prevent switching between controlled/uncontrolled\n const [open, setOpen] = useControlledState(\n outsideOpen,\n outsideOnOpenChange,\n defaultOpen ?? false // Always provide a default value to prevent undefined\n );\n\n const cls = useCls();\n const antdCssVarClassname = useAntdCssVarClassname();\n const headlessUIPlacement = parseAntdPlacement(placement);\n const triggerRef = useRef<HTMLElement>(null);\n const [popupRef, setPopupRef] = useState<HTMLDivElement | null>(null);\n const [width, setWidth] = useState<number>();\n const [height, setHeight] = useState<number>();\n const callbackRef = useCallback((node: HTMLDivElement) => {\n setPopupRef(node);\n }, []);\n useEffect(() => {\n if (!popupRef) return;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setWidth(entry.contentRect.width);\n setHeight(entry.contentRect.height);\n }\n });\n observer.observe(popupRef);\n return () => {\n observer.disconnect();\n };\n }, [popupRef]);\n\n const defaultCloseIcon = useMemo(() => <X size={16} />, []);\n const renderTitle = useCallback(() => {\n return (\n <div className={cls(\"popup-panel-header\")}>\n <Flex\n align=\"center\"\n gap={8}\n className={cls(\"popup-panel-title-wrapper\")}\n >\n <Popover.Title\n render={<div className={cls(\"grow\", \"truncate\")}>{title}</div>}\n ></Popover.Title>\n <div className=\"flex items-center gap-2\">\n {beforeCloseButton}\n <Popover.Close\n render={<IconButton>{defaultCloseIcon}</IconButton>}\n />\n {afterCloseButton}\n </div>\n </Flex>\n {afterTitle ? afterTitle : null}\n </div>\n );\n }, [\n afterCloseButton,\n afterTitle,\n beforeCloseButton,\n cls,\n defaultCloseIcon,\n title,\n ]);\n const [resizing, setResizing] = useState(false);\n const { getRootProps, getHandleProps, rootRef } = useResizable({\n initialWidth: width,\n initialHeight: height,\n onDragStart: () => setResizing(true),\n onDragEnd: () => setResizing(false),\n });\n useEffect(() => {\n if (resizing) {\n document.body.style.userSelect = \"none\";\n } else {\n document.body.style.userSelect = \"\";\n }\n }, [resizing]);\n // Handle reverse handle change\n const onReverseHandleChangeVertical = (\n parent: React.RefObject<HTMLDivElement>,\n values: MoveValues\n ) => {\n if (!parent.current) return;\n const { heightDiff } = values;\n parent.current.style.top = `${\n parseInt(parent.current.style.top || \"0\") - heightDiff\n }px`;\n };\n\n // Handle reverse handle change\n const onReverseHandleChangeHorizontal = (\n parent: React.RefObject<HTMLDivElement>,\n values: MoveValues\n ) => {\n if (!parent.current) return;\n const { widthDiff } = values;\n parent.current.style.left = `${\n parseInt(parent.current.style.left || \"0\") - widthDiff\n }px`;\n };\n\n return (\n <Popover.Root\n openOnHover={trigger === \"hover\" ? true : openOnHover}\n open={open}\n onOpenChange={(newOpen) => {\n // Ensure we're properly handling the state change\n setOpen(newOpen);\n }}\n delay={100}\n >\n <Popover.Trigger render={children} ref={triggerRef}></Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner\n className={cls(\"popup-panel-root\")}\n side={headlessUIPlacement.placement}\n align={headlessUIPlacement.align}\n sideOffset={4}\n anchor={anchor}\n style={\n {\n \"--size-width\": size ? PopupPanelSize[size] : undefined,\n } as React.CSSProperties\n }\n ref={callbackRef}\n >\n <Popover.Popup\n className={clsx(cls(\"popup-panel\"), antdCssVarClassname, className)}\n {...getRootProps()}\n {...(resizing ? { \"data-resizing\": true } : {})}\n >\n {/* <div ref={popupRef}> */}\n {title && renderTitle()}\n <div className={cls(\"popup-panel-content\")}>\n <div className={cls(\"popup-panel-content-inner\")}>{content}</div>\n </div>\n {footer && (\n <div className={cls(\"popup-panel-footer\")}>\n {typeof footer === \"function\"\n ? footer({ close: () => setOpen(false) })\n : footer}\n </div>\n )}\n {resizable && (\n <>\n <div\n className={cls(\"resize-handle-top\")}\n {...getHandleProps({\n reverse: true,\n lockHorizontal: true,\n onResize: (values) =>\n onReverseHandleChangeVertical(rootRef, values),\n })}\n />\n <div\n className={cls(\"resize-handle-bottom\")}\n {...getHandleProps({\n lockHorizontal: true,\n })}\n />\n <div\n className={cls(\"resize-handle-left\")}\n {...getHandleProps({\n reverse: true,\n lockVertical: true,\n onResize: (values) =>\n onReverseHandleChangeHorizontal(rootRef, values),\n })}\n />\n <div\n className={cls(\"resize-handle-right\")}\n {...getHandleProps({\n lockVertical: true,\n })}\n />\n </>\n )}\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n"],"names":["PopupPanel","children","placement","openOnHover","outsideOpen","outsideOnOpenChange","content","title","trigger","className","anchor","beforeCloseButton","afterCloseButton","afterTitle","size","footer","defaultOpen","resizable","open","setOpen","useControlledState","cls","useCls","antdCssVarClassname","useAntdCssVarClassname","headlessUIPlacement","parseAntdPlacement","triggerRef","useRef","popupRef","setPopupRef","useState","width","setWidth","height","setHeight","callbackRef","useCallback","node","useEffect","observer","entries","entry","defaultCloseIcon","useMemo","jsx","X","renderTitle","jsxs","Flex","Popover","IconButton","resizing","setResizing","getRootProps","getHandleProps","rootRef","useResizable","onReverseHandleChangeVertical","parent","values","heightDiff","onReverseHandleChangeHorizontal","widthDiff","newOpen","PopupPanelSize","clsx","Fragment"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ var r = /* @__PURE__ */ ((x) => (x.xsmall = "320px", x.small = "400px", x.medium = "480px", x.large = "640px", x.xlarge = "840px", x))(r || {});
2
+ export {
3
+ r as PopupPanelSize
4
+ };
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/components/PopupPanel/constants.ts"],"sourcesContent":["// Size map for predefined modal sizes\nexport enum PopupPanelSize {\n xsmall = \"320px\",\n small = \"400px\",\n medium = \"480px\",\n large = \"640px\",\n xlarge = \"840px\",\n}\n"],"names":["PopupPanelSize"],"mappings":"AACY,IAAAA,sBAAAA,OACVA,EAAA,SAAS,SACTA,EAAA,QAAQ,SACRA,EAAA,SAAS,SACTA,EAAA,QAAQ,SACRA,EAAA,SAAS,SALCA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-popup-panel{box-shadow:var(--ds-box-shadow-secondary);border-radius:var(--ds-border-radius);background:var(--ds-color-bg-elevated);list-style:none;color:var(--ds-color-text);font-size:var(--ds-font-size);font-family:var(--ds-font-family);transition-property:transform,scale,opacity;transition-duration:.2s;transition-timing-function:var(--ds-motion-ease-out);transform-origin:var(--transform-origin);width:min(var(--size-width),var(--available-width));max-width:var(--available-width);max-height:var(--available-height);height:max-content;display:flex;flex-direction:column}.ds-popup-panel[data-ending-style],.ds-popup-panel[data-starting-style]{transform:scale(.9);opacity:0}.ds-popup-panel:focus{outline:none}.ds-popup-panel-header{border-bottom:1px solid var(--ds-color-split);margin-bottom:0;padding:calc(var(--ds-popup-panel-padding) / 2) var(--ds-popup-panel-padding);flex:0}.ds-popup-panel-header .ds-popup-panel-title-wrapper{font-weight:500;font-size:var(--ds-font-size);line-height:var(--ds-line-height);color:var(--ds-color-text)}.ds-popup-panel-footer{border-top:1px solid var(--ds-color-split);margin-top:0;padding:calc(var(--ds-popup-panel-padding) / 2) var(--ds-popup-panel-padding);flex:0}.ds-popup-panel-content{display:flex;flex-direction:column;flex:1;overflow:auto}.ds-popup-panel-content .ds-popup-panel-content-inner{flex:1;padding:var(--ds-popup-panel-padding)}.ds-resize-handle-top{position:absolute;top:0;width:100%;padding:.5rem;height:4px;border-top-left-radius:.5rem;border-top-right-radius:.5rem;color:#fff;display:block;justify-content:center}.ds-resize-handle-bottom{position:absolute;bottom:0;width:100%;height:4px;padding:.5rem;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;color:#fff;display:block;justify-content:center}.ds-resize-handle-left{position:absolute;left:0;top:0;width:4px;height:100%;padding:.5rem;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;color:#fff;display:block;align-items:center}.ds-resize-handle-right{position:absolute;right:0;top:0;width:4px;height:100%;padding:.5rem;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;color:#fff;display:block;align-items:center}}
@@ -0,0 +1,22 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import a, { Button as u, Group as e } from "antd/es/radio";
3
+ import { forwardRef as d } from "react";
4
+ import './style.css';/* empty css */
5
+ const p = ({ className: o, style: r, ...t }, n) => /* @__PURE__ */ i(a, { ref: n, className: o, style: r, ...t }), s = (o) => /* @__PURE__ */ i(e, { ...o }), m = d(
6
+ ({ className: o, style: r, ...t }, n) => /* @__PURE__ */ i(
7
+ u,
8
+ {
9
+ ref: n,
10
+ className: o,
11
+ style: r,
12
+ ...t
13
+ }
14
+ )
15
+ ), R = d(p), j = Object.assign(R, {
16
+ Group: s,
17
+ Button: m
18
+ });
19
+ export {
20
+ j as Radio
21
+ };
22
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Radio/component.tsx"],"sourcesContent":["import {\n default as AntdRadio,\n Group as AntdRadioGroup,\n Button as AntdRadioButton,\n} from \"antd/es/radio\";\nimport { forwardRef } from \"react\";\nimport type { RadioProps, RadioRef, RadioGroupProps } from \"./interface\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nconst RadioInner = (\n { className, style, ...rest }: RadioProps,\n ref: React.Ref<RadioRef>\n) => {\n return <AntdRadio ref={ref} className={className} style={style} {...rest} />;\n};\n\nconst RadioGroup = (\n props: RadioGroupProps & { ref?: React.Ref<HTMLDivElement> }\n) => {\n return <AntdRadioGroup {...props} />;\n};\n\nconst RadioButton = forwardRef<RadioRef, RadioProps>(\n ({ className, style, ...rest }, ref) => {\n return (\n <AntdRadioButton\n ref={ref}\n className={className}\n style={style}\n {...rest}\n />\n );\n }\n);\n\nconst ForwardedRadio = forwardRef<RadioRef, RadioProps>(RadioInner);\n\nexport const Radio = Object.assign(ForwardedRadio, {\n Group: RadioGroup,\n Button: RadioButton,\n});\n"],"names":["RadioInner","className","style","rest","ref","AntdRadio","RadioGroup","props","jsx","AntdRadioGroup","RadioButton","forwardRef","AntdRadioButton","ForwardedRadio","Radio"],"mappings":";;;;AAWA,MAAMA,IAAa,CACjB,EAAE,WAAAC,GAAW,OAAAC,GAAO,GAAGC,KACvBC,wBAEQC,GAAU,EAAA,KAAAD,GAAU,WAAAH,GAAsB,OAAAC,GAAe,GAAGC,GAAM,GAGtEG,IAAa,CACjBC,MAEO,gBAAAC,EAACC,GAAgB,EAAA,GAAGF,EAAO,CAAA,GAG9BG,IAAcC;AAAA,EAClB,CAAC,EAAE,WAAAV,GAAW,OAAAC,GAAO,GAAGC,EAAA,GAAQC,MAE5B,gBAAAI;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,WAAAH;AAAA,MACA,OAAAC;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EACN;AAGN,GAEMU,IAAiBF,EAAiCX,CAAU,GAErDc,IAAQ,OAAO,OAAOD,GAAgB;AAAA,EACjD,OAAOP;AAAA,EACP,QAAQI;AACV,CAAC;"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-radio{align-self:unset}.ds-radio-wrapper{display:inline-flex}.ds-radio-wrapper .ds-radio{transform:translateY(.1875rem)}}
@@ -0,0 +1,40 @@
1
+ import { jsxs as p, jsx as i } from "react/jsx-runtime";
2
+ import { ScrollArea as t } from "@base-ui-components/react";
3
+ import './style.css';/* empty css */
4
+ import { useCls as b } from "../utils/antdUtils.js";
5
+ import { clsx as l } from "../utils/cn.js";
6
+ const S = ({
7
+ children: e,
8
+ className: n,
9
+ classNames: r = {},
10
+ orientation: c = "vertical"
11
+ }) => {
12
+ const o = b();
13
+ return /* @__PURE__ */ p(t.Root, { className: l(o("scroll-area"), n), children: [
14
+ /* @__PURE__ */ i(
15
+ t.Viewport,
16
+ {
17
+ className: l(o("scroll-area-viewport"), r == null ? void 0 : r.viewport),
18
+ children: /* @__PURE__ */ i(t.Content, { className: l(o("scroll-area-content")), children: e })
19
+ }
20
+ ),
21
+ /* @__PURE__ */ i(
22
+ t.Scrollbar,
23
+ {
24
+ className: l(o("scroll-area-scrollbar"), r == null ? void 0 : r.scrollbar),
25
+ orientation: c,
26
+ "data-orientation": c,
27
+ children: /* @__PURE__ */ i(
28
+ t.Thumb,
29
+ {
30
+ className: l(o("scroll-area-thumb"), r == null ? void 0 : r.thumb)
31
+ }
32
+ )
33
+ }
34
+ )
35
+ ] });
36
+ };
37
+ export {
38
+ S as ScrollArea
39
+ };
40
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/ScrollArea/component.tsx"],"sourcesContent":["\"use client\";\nimport { type ReactNode } from \"react\";\nimport { ScrollArea as BaseScrollArea } from \"@base-ui-components/react\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ScrollAreaProps {\n children: ReactNode;\n /**\n * Additional class name for the root component\n */\n className?: string;\n /**\n * Custom class names for each part of the scroll area\n */\n classNames?: {\n /**\n * Class name for the viewport element\n */\n viewport?: string;\n /**\n * Class name for the scrollbar element\n */\n scrollbar?: string;\n /**\n * Class name for the thumb element\n */\n thumb?: string;\n };\n /**\n * Orientation of the scrollbar\n * @default \"vertical\"\n */\n orientation?: \"vertical\" | \"horizontal\";\n}\n\nexport const ScrollArea = ({\n children,\n className,\n classNames = {},\n orientation = \"vertical\",\n}: ScrollAreaProps) => {\n const cls = useCls();\n return (\n <BaseScrollArea.Root className={clsx(cls(\"scroll-area\"), className)}>\n <BaseScrollArea.Viewport\n className={clsx(cls(\"scroll-area-viewport\"), classNames?.viewport)}\n >\n <BaseScrollArea.Content className={clsx(cls(\"scroll-area-content\"))}>\n {children}\n </BaseScrollArea.Content>\n </BaseScrollArea.Viewport>\n <BaseScrollArea.Scrollbar\n className={clsx(cls(\"scroll-area-scrollbar\"), classNames?.scrollbar)}\n orientation={orientation}\n data-orientation={orientation}\n >\n <BaseScrollArea.Thumb\n className={clsx(cls(\"scroll-area-thumb\"), classNames?.thumb)}\n />\n </BaseScrollArea.Scrollbar>\n </BaseScrollArea.Root>\n );\n};\n"],"names":["ScrollArea","children","className","classNames","orientation","cls","useCls","jsxs","BaseScrollArea","clsx","jsx"],"mappings":";;;;;AAsCO,MAAMA,IAAa,CAAC;AAAA,EACzB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC,IAAa,CAAC;AAAA,EACd,aAAAC,IAAc;AAChB,MAAuB;AACrB,QAAMC,IAAMC,EAAO;AAEjB,SAAA,gBAAAC,EAACC,EAAe,MAAf,EAAoB,WAAWC,EAAKJ,EAAI,aAAa,GAAGH,CAAS,GAChE,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAACF,EAAe;AAAA,MAAf;AAAA,QACC,WAAWC,EAAKJ,EAAI,sBAAsB,GAAGF,KAAA,gBAAAA,EAAY,QAAQ;AAAA,QAEjE,UAAA,gBAAAO,EAACF,EAAe,SAAf,EAAuB,WAAWC,EAAKJ,EAAI,qBAAqB,CAAC,GAC/D,UAAAJ,EACH,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAS;AAAA,MAACF,EAAe;AAAA,MAAf;AAAA,QACC,WAAWC,EAAKJ,EAAI,uBAAuB,GAAGF,KAAA,gBAAAA,EAAY,SAAS;AAAA,QACnE,aAAAC;AAAA,QACA,oBAAkBA;AAAA,QAElB,UAAA,gBAAAM;AAAA,UAACF,EAAe;AAAA,UAAf;AAAA,YACC,WAAWC,EAAKJ,EAAI,mBAAmB,GAAGF,KAAA,gBAAAA,EAAY,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAC7D;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-scroll-area{display:flex;flex-direction:column;height:100%;min-height:0;flex:1}.ds-scroll-area .ds-scroll-area-viewport{flex-shrink:1;height:100%;max-height:100%;overflow:hidden;overscroll-behavior:contain}:is(.ds-scroll-area .ds-scroll-area-viewport):focus-visible{outline-width:2px;outline-offset:4px;outline-color:var(--ds-color-primary)}.ds-scroll-area .ds-scroll-area-scrollbar{padding:.25rem;display:flex;justify-content:center;background-color:transparent;opacity:0;transition-property:opacity;transition-delay:.1s}:is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb{border-radius:9999px;background-color:var(--ds-color-bg-fill-tertiary);border:1px solid var(--ds-color-border)}[data-orientation=vertical]:is(.ds-scroll-area .ds-scroll-area-scrollbar){width:.875rem}[data-orientation=vertical]:is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb{width:100%}[data-orientation=horizontal]:is(.ds-scroll-area .ds-scroll-area-scrollbar){width:100%;height:.875rem;flex-direction:column}[data-orientation=horizontal]:is(.ds-scroll-area .ds-scroll-area-scrollbar) .ds-scroll-area-thumb{height:100%}[data-hovering]:is(.ds-scroll-area .ds-scroll-area-scrollbar){opacity:1;transition-delay:0ms;transition-duration:.2s}[data-scrolling]:is(.ds-scroll-area .ds-scroll-area-scrollbar){opacity:1;transition-delay:0ms;transition-duration:.2s}}
@@ -0,0 +1,9 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import r from "antd/es/segmented";
3
+ import { forwardRef as m } from "react";
4
+ import './style.css';/* empty css */
5
+ const o = ({ className: s, ...e }, t) => /* @__PURE__ */ n(r, { ref: t, ...e }), i = m(o), c = i;
6
+ export {
7
+ c as Segmented
8
+ };
9
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Segmented/component.tsx"],"sourcesContent":["import {\n default as AntSegmented,\n type SegmentedProps as AntSegmentedProps,\n} from \"antd/es/segmented\";\n\nimport { forwardRef } from \"react\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type RcSegmentedValue = string | number;\n\n// Define props interface with default type parameter\nexport interface SegmentedProps<T = RcSegmentedValue>\n extends AntSegmentedProps<T> {}\n\n// Create inner function with default type parameter\nconst MainSegmentedInner = <T,>(\n { className, ...rest }: SegmentedProps<T>,\n ref: React.Ref<React.ComponentRef<typeof AntSegmented>>\n) => {\n return <AntSegmented ref={ref} {...rest} />;\n};\n\n// Use forwardRef with type assertion\nconst MainSegmented = forwardRef(MainSegmentedInner) as <T = RcSegmentedValue>(\n props: SegmentedProps<T> & {\n ref?: React.Ref<React.ComponentRef<typeof AntSegmented>>;\n }\n) => ReturnType<typeof MainSegmentedInner>;\n\nexport const Segmented = MainSegmented;\n"],"names":["MainSegmentedInner","className","rest","ref","jsx","AntSegmented","MainSegmented","forwardRef","Segmented"],"mappings":";;;;AAiBA,MAAMA,IAAqB,CACzB,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAChBC,MAEQ,gBAAAC,EAAAC,GAAA,EAAa,KAAAF,GAAW,GAAGD,EAAM,CAAA,GAIrCI,IAAgBC,EAAWP,CAAkB,GAMtCQ,IAAYF;"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-segmented .ds-segmented-item-label{display:flex;align-items:center;justify-content:center}.ds-segmented .ds-segmented-item-icon{display:flex;align-items:center;justify-content:center;height:100%;font-size:1rem}}
@@ -0,0 +1,135 @@
1
+ import { jsx as o, jsxs as N, Fragment as D } from "react/jsx-runtime";
2
+ import { CaretDown as R } from "@bioturing/assets";
3
+ import a from "antd/es/select";
4
+ import y from "antd/es/checkbox";
5
+ import { forwardRef as U } from "react";
6
+ import { useFloatingPortalNode as W, useFloating as q, autoUpdate as B, offset as H, autoPlacement as J, shift as K, size as L, FloatingOverlay as Q } from "@floating-ui/react";
7
+ import { PopupPanelSize as w } from "../PopupPanel/constants.js";
8
+ import { toMerged as T } from "es-toolkit";
9
+ import './style.css';/* empty css */
10
+ import { useControlledState as V } from "../hooks/useControlledState.js";
11
+ import { clsx as C } from "../utils/cn.js";
12
+ const X = ({
13
+ mode: i,
14
+ className: O,
15
+ open: k,
16
+ defaultOpen: v,
17
+ onOpenChange: M,
18
+ popupClassName: F,
19
+ onDropdownVisibleChange: P,
20
+ enhancePositioner: r,
21
+ getPopupContainer: I,
22
+ popupSize: e,
23
+ popupRender: c,
24
+ dropdownRender: f,
25
+ classNames: n,
26
+ styles: m = {},
27
+ ...j
28
+ }, p) => {
29
+ var x;
30
+ const E = W({}), d = i === "multiple" || i === "tags", [u, g] = V(
31
+ k,
32
+ M || P,
33
+ v
34
+ ), { floatingStyles: S, refs: h } = q({
35
+ placement: "bottom-start",
36
+ transform: !1,
37
+ open: r && u,
38
+ middleware: [
39
+ H({
40
+ mainAxis: 4
41
+ }),
42
+ J({
43
+ allowedPlacements: [
44
+ "bottom-start",
45
+ "bottom-end",
46
+ "bottom",
47
+ "top-start",
48
+ "top-end",
49
+ "top"
50
+ ]
51
+ }),
52
+ K({
53
+ padding: 8
54
+ }),
55
+ L({
56
+ padding: 8,
57
+ apply({ availableHeight: t, availableWidth: s, elements: l }) {
58
+ l.floating.style.setProperty(
59
+ "--available-width",
60
+ s + "px"
61
+ ), l.floating.style.setProperty(
62
+ "--available-height",
63
+ t + "px"
64
+ );
65
+ }
66
+ })
67
+ ],
68
+ whileElementsMounted: B
69
+ }), b = C(
70
+ "ds-select-popup",
71
+ d && "ds-select-multiple",
72
+ ((x = n == null ? void 0 : n.popup) == null ? void 0 : x.root) || F,
73
+ r && "ds-select-popup-enhanced"
74
+ ), A = e && typeof e == "string" && e in w ? w[e] : typeof e == "number" ? e + "px" : e || "fit-content";
75
+ return /* @__PURE__ */ o(
76
+ a,
77
+ {
78
+ ref: (t) => {
79
+ p && (typeof p == "function" ? p(t) : p.current = t), t && h.setReference(t == null ? void 0 : t.nativeElement);
80
+ },
81
+ suffixIcon: /* @__PURE__ */ o(R, { weight: "bold" }),
82
+ open: u,
83
+ onOpenChange: g,
84
+ popupClassName: b,
85
+ classNames: {
86
+ popup: {
87
+ root: b
88
+ },
89
+ ...n
90
+ },
91
+ ...d ? {
92
+ menuItemSelectedIcon: ({ isSelected: t }) => /* @__PURE__ */ o("span", { className: "ant-select-checkbox-indicator", children: t ? /* @__PURE__ */ o(y, { checked: !0 }) : /* @__PURE__ */ o(y, { checked: !1 }) })
93
+ } : {},
94
+ mode: i,
95
+ className: C("ds-select", O),
96
+ styles: r ? T(m, {
97
+ popup: {
98
+ root: {
99
+ transition: "none",
100
+ ...S,
101
+ "--ds-select-popup-width": A
102
+ }
103
+ }
104
+ }) : m,
105
+ getPopupContainer: I || (r ? () => E || document.body : void 0),
106
+ popupRender: (t) => {
107
+ const s = () => c ? c(t) : f ? f(t) : t;
108
+ return r ? /* @__PURE__ */ N(D, { children: [
109
+ /* @__PURE__ */ o(Q, { lockScroll: !0, onClick: () => g(!1) }),
110
+ /* @__PURE__ */ o(
111
+ "div",
112
+ {
113
+ ref: (l) => {
114
+ if (!l) return;
115
+ const G = l.closest(
116
+ ".ds-select-dropdown"
117
+ );
118
+ h.setFloating(G);
119
+ },
120
+ children: s()
121
+ }
122
+ )
123
+ ] }) : s();
124
+ },
125
+ ...j
126
+ }
127
+ );
128
+ }, Y = U(X), st = Object.assign(Y, {
129
+ Option: a.Option,
130
+ OptGroup: a.OptGroup
131
+ });
132
+ export {
133
+ st as Select
134
+ };
135
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Select/component.tsx"],"sourcesContent":["import { CaretDown } from \"@bioturing/assets\";\nimport {\n default as AntSelect,\n type BaseOptionType,\n type DefaultOptionType,\n type SelectProps as AntSelectProps,\n} from \"antd/es/select\";\nimport { default as Checkbox } from \"antd/es/checkbox\";\nimport { CSSProperties, forwardRef } from \"react\";\nimport {\n useFloating,\n offset,\n autoPlacement,\n shift,\n size,\n autoUpdate,\n useFloatingPortalNode,\n FloatingOverlay,\n} from \"@floating-ui/react\";\nimport { useControlledState } from \"../hooks\";\nimport React from \"react\";\nimport { clsx } from \"../utils\";\nimport { PopupPanelSize } from \"../PopupPanel/constants\";\nimport { toMerged } from \"es-toolkit\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define props interface extending Ant Design's SelectProps\nexport interface SelectProps<\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n> extends AntSelectProps<ValueType, OptionType> {\n /**\n * Whether to enhance the positioner using floating-ui\n * @default false\n */\n enhancePositioner?: boolean;\n /**\n * Size of the popup panel\n * Will be ignored if enhancePositioner is false\n */\n popupSize?: string | number | PopupPanelSize;\n}\n\nexport type {\n BaseOptionType as SelectBaseOptionType,\n DefaultOptionType as SelectDefaultOptionType,\n};\n\n// Create inner function\nconst MainSelectInner = <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n {\n mode,\n className,\n open: openProp,\n defaultOpen,\n onOpenChange,\n popupClassName,\n onDropdownVisibleChange,\n enhancePositioner,\n getPopupContainer,\n popupSize,\n popupRender,\n dropdownRender,\n classNames,\n styles = {},\n ...rest\n }: SelectProps<ValueType, OptionType>,\n ref: React.Ref<React.ComponentRef<typeof AntSelect>>\n) => {\n const portalNode = useFloatingPortalNode({});\n const isMultiple = mode === \"multiple\" || mode === \"tags\";\n const [open, setOpen] = useControlledState(\n openProp,\n onOpenChange || onDropdownVisibleChange,\n defaultOpen\n );\n // enhancePositioner\n const { floatingStyles, refs } = useFloating({\n placement: \"bottom-start\",\n transform: false,\n open: enhancePositioner && open,\n middleware: [\n offset({\n mainAxis: 4,\n }),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"bottom\",\n \"top-start\",\n \"top-end\",\n \"top\",\n ],\n }),\n shift({\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ availableHeight, availableWidth, elements }) {\n // 2. Or, use a CSS variable:\n elements.floating.style.setProperty(\n \"--available-width\",\n availableWidth + \"px\"\n );\n elements.floating.style.setProperty(\n \"--available-height\",\n availableHeight + \"px\"\n );\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n const dsPopupClassName = clsx(\n \"ds-select-popup\",\n isMultiple && \"ds-select-multiple\",\n classNames?.popup?.root || popupClassName,\n enhancePositioner && \"ds-select-popup-enhanced\"\n );\n const popupWidth =\n popupSize && typeof popupSize === \"string\" && popupSize in PopupPanelSize\n ? PopupPanelSize[popupSize as keyof typeof PopupPanelSize]\n : typeof popupSize === \"number\"\n ? popupSize + \"px\"\n : popupSize || \"fit-content\";\n return (\n <AntSelect\n // ref={ref}\n ref={(node) => {\n if (ref) {\n if (typeof ref == \"function\") {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n if (!node) return;\n refs.setReference(node?.nativeElement as HTMLElement);\n }}\n suffixIcon={<CaretDown weight=\"bold\" />}\n open={open}\n onOpenChange={setOpen}\n // for old version\n popupClassName={dsPopupClassName}\n classNames={{\n popup: {\n root: dsPopupClassName,\n },\n ...classNames,\n }}\n {...(isMultiple\n ? {\n menuItemSelectedIcon: ({ isSelected }) => (\n <span className=\"ant-select-checkbox-indicator\">\n {isSelected ? (\n <Checkbox checked />\n ) : (\n <Checkbox checked={false} />\n )}\n </span>\n ),\n }\n : {})}\n mode={mode}\n className={clsx(\"ds-select\", className)}\n styles={\n enhancePositioner\n ? toMerged(styles, {\n popup: {\n root: {\n transition: \"none\",\n ...floatingStyles,\n \"--ds-select-popup-width\": popupWidth,\n } as CSSProperties,\n },\n })\n : styles\n }\n getPopupContainer={\n getPopupContainer ||\n (enhancePositioner ? () => portalNode || document.body : undefined)\n }\n popupRender={(menu) => {\n // Use a more specific type that includes both style and ref properties\n const renderMenu = () =>\n popupRender\n ? popupRender(menu)\n : dropdownRender\n ? dropdownRender(menu)\n : menu;\n if (!enhancePositioner) {\n return renderMenu();\n }\n return (\n <>\n <FloatingOverlay lockScroll onClick={() => setOpen(false)} />\n <div\n ref={(node) => {\n if (!node) return;\n const popupEl = node.closest(\n \".ds-select-dropdown\"\n ) as HTMLDivElement;\n refs.setFloating(popupEl);\n }}\n >\n {renderMenu()}\n </div>\n </>\n );\n }}\n {...rest}\n />\n );\n};\n\n// Use forwardRef with type assertion\nconst MainSelect = forwardRef(MainSelectInner) as <\n ValueType = unknown,\n OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType\n>(\n props: SelectProps<ValueType, OptionType> & {\n ref?: React.ForwardedRef<React.ComponentRef<typeof AntSelect>>;\n }\n) => ReturnType<typeof MainSelectInner>;\n\nexport const Select = Object.assign(MainSelect, {\n Option: AntSelect.Option,\n OptGroup: AntSelect.OptGroup,\n});\n"],"names":["MainSelectInner","mode","className","openProp","defaultOpen","onOpenChange","popupClassName","onDropdownVisibleChange","enhancePositioner","getPopupContainer","popupSize","popupRender","dropdownRender","classNames","styles","rest","ref","portalNode","useFloatingPortalNode","isMultiple","open","setOpen","useControlledState","floatingStyles","refs","useFloating","offset","autoPlacement","shift","size","availableHeight","availableWidth","elements","autoUpdate","dsPopupClassName","clsx","_a","popupWidth","PopupPanelSize","jsx","AntSelect","node","CaretDown","isSelected","Checkbox","toMerged","menu","renderMenu","jsxs","Fragment","FloatingOverlay","popupEl","MainSelect","forwardRef","Select"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-select-popup .ds-select-item-option-state{order:-1}.ds-select-popup .ds-select-checkbox-indicator,.ds-select-popup .ant-select-checkbox-indicator{margin-right:.5rem}.ds-select-multiple .ds-select-item-option-selected:not(.ds-select-item-option-disabled):not(:hover){background:transparent}.ds-select-popup-enhanced{z-index:1000;transition:none;width:var(--ds-select-popup-width);height:fit-content;max-width:calc(var(--available-width) - 16px);max-height:calc(var(--available-height) - 16px)}}
@@ -0,0 +1,23 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import e from "antd/es/slider";
3
+ import { useCls as i } from "../utils/antdUtils.js";
4
+ import { clsx as p } from "../utils/cn.js";
5
+ const d = ({ className: r, tooltip: o = {}, style: s, ...t }) => {
6
+ const l = i();
7
+ return /* @__PURE__ */ m(
8
+ e,
9
+ {
10
+ className: p(l("slider"), r),
11
+ style: s,
12
+ ...t,
13
+ tooltip: {
14
+ arrow: !1,
15
+ ...o
16
+ }
17
+ }
18
+ );
19
+ };
20
+ export {
21
+ d as Slider
22
+ };
23
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Slider/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntSlider,\n type SliderSingleProps,\n type SliderRangeProps,\n} from \"antd/es/slider\";\nimport { useCls, clsx } from \"../utils\";\n\n// Define props interface extending Ant Design's SliderProps\nexport type SliderProps = SliderSingleProps | SliderRangeProps;\n\nexport type { SliderSingleProps, SliderRangeProps };\n\n// Create Slider component\nconst Slider = ({ className, tooltip = {}, style, ...rest }: SliderProps) => {\n const cls = useCls();\n return (\n <AntSlider\n className={clsx(cls(\"slider\"), className)}\n style={style}\n {...rest}\n tooltip={{\n arrow: false,\n ...tooltip,\n }}\n />\n );\n};\n\nexport { Slider };\n"],"names":["Slider","className","tooltip","style","rest","cls","useCls","jsx","AntSlider","clsx"],"mappings":";;;;AAcM,MAAAA,IAAS,CAAC,EAAE,WAAAC,GAAW,SAAAC,IAAU,CAAA,GAAI,OAAAC,GAAO,GAAGC,QAAwB;AAC3E,QAAMC,IAAMC,EAAO;AAEjB,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKJ,EAAI,QAAQ,GAAGJ,CAAS;AAAA,MACxC,OAAAE;AAAA,MACC,GAAGC;AAAA,MACJ,SAAS;AAAA,QACP,OAAO;AAAA,QACP,GAAGF;AAAA,MAAA;AAAA,IACL;AAAA,EACF;AAEJ;"}
@@ -0,0 +1,12 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import i from "antd/es/spin";
3
+ import './style.css';/* empty css */
4
+ import { useCls as p } from "../utils/antdUtils.js";
5
+ const d = ({ indicator: r, ...n }) => {
6
+ const s = p(), t = r || /* @__PURE__ */ o("span", { className: s("spin-loader") });
7
+ return /* @__PURE__ */ o(i, { indicator: t, ...n });
8
+ };
9
+ export {
10
+ d as Spin
11
+ };
12
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Spin/component.tsx"],"sourcesContent":["import { useCls } from \"../utils\";\nimport { default as AntdSpin, SpinProps as AntdSpinProps } from \"antd/es/spin\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type SpinProps = AntdSpinProps;\n\nexport const Spin = ({ indicator, ...rest }: SpinProps) => {\n const cls = useCls();\n const spinIndicator = indicator || <span className={cls(\"spin-loader\")} />;\n return <AntdSpin indicator={spinIndicator} {...rest} />;\n};\n"],"names":["Spin","indicator","rest","cls","useCls","spinIndicator","jsx","AntdSpin"],"mappings":";;;;AAQO,MAAMA,IAAO,CAAC,EAAE,WAAAC,GAAW,GAAGC,QAAsB;AACzD,QAAMC,IAAMC,EAAO,GACbC,IAAgBJ,KAAa,gBAAAK,EAAC,UAAK,WAAWH,EAAI,aAAa,GAAG;AACxE,SAAQ,gBAAAG,EAAAC,GAAA,EAAS,WAAWF,GAAgB,GAAGH,GAAM;AACvD;"}
@@ -0,0 +1 @@
1
+ @layer components{:root{--ds-animate-spin: ds-spin 1s linear infinite}@keyframes ds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ds-spin .ds-spin-icon{animation:var(--ds-animate-spin);color:var(--ds-color-icon)}.ds-spin .ds-spin-text{color:var(--ds-color-icon)}.ds-spin-loader{width:1em;height:1em;border:max(2px,.12em) solid var(--ds-color-border);border-bottom-color:var(--ds-color-icon);border-radius:50%;display:inline-block;box-sizing:border-box;animation:spin 1s linear infinite}}
@@ -0,0 +1,40 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import p from "antd/es/splitter/Splitter";
3
+ import n from "antd/es/splitter/Panel";
4
+ import './style.css';/* empty css */
5
+ import { useCls as m } from "../utils/antdUtils.js";
6
+ import { clsx as c } from "../utils/cn.js";
7
+ const a = ({
8
+ children: t,
9
+ className: r,
10
+ style: e,
11
+ ...i
12
+ }) => /* @__PURE__ */ s(n, { className: r, style: e, ...i, children: t }), S = ({
13
+ children: t,
14
+ className: r = "",
15
+ style: e = {},
16
+ showSplitBar: i = !0,
17
+ ...l
18
+ }) => {
19
+ const o = m();
20
+ return /* @__PURE__ */ s(
21
+ p,
22
+ {
23
+ className: c(
24
+ o("splitter"),
25
+ !i && o("splitter-hidden-split-bar"),
26
+ r
27
+ ),
28
+ style: e,
29
+ ...l,
30
+ children: t
31
+ }
32
+ );
33
+ }, f = Object.assign(S, {
34
+ Panel: a
35
+ }), A = f;
36
+ export {
37
+ A as Split,
38
+ f as Splitter
39
+ };
40
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Splitter/component.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { default as AntdSplitter } from \"antd/es/splitter/Splitter\";\nimport { default as AntdSplitterPanel } from \"antd/es/splitter/Panel\";\nimport type {\n SplitterProps as AntdSplitterProps,\n PanelProps as AntdSplitterPanelProps,\n} from \"antd/es/splitter/interface\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type SplitterProps = React.PropsWithChildren<AntdSplitterProps> & {\n showSplitBar?: boolean;\n};\n\nexport type SplitterPanelProps =\n React.PropsWithChildren<AntdSplitterPanelProps>;\n\nconst SplitterPanel: React.FC<SplitterPanelProps> = ({\n children,\n className,\n style,\n ...rest\n}) => {\n return (\n <AntdSplitterPanel className={className} style={style} {...rest}>\n {children}\n </AntdSplitterPanel>\n );\n};\n\nconst MainSplitter: React.FC<SplitterProps> = ({\n children,\n className = \"\",\n style = {},\n showSplitBar = true,\n ...rest\n}) => {\n const cls = useCls();\n return (\n <AntdSplitter\n className={clsx(\n cls(\"splitter\"),\n !showSplitBar && cls(\"splitter-hidden-split-bar\"),\n className\n )}\n style={style}\n {...rest}\n >\n {children}\n </AntdSplitter>\n );\n};\n\nexport const Splitter = Object.assign(MainSplitter, {\n Panel: SplitterPanel,\n});\n\n// For backward compatibility\nexport const Split = Splitter;\n"],"names":["SplitterPanel","children","className","style","rest","AntdSplitterPanel","MainSplitter","showSplitBar","cls","useCls","jsx","AntdSplitter","clsx","Splitter","Split"],"mappings":";;;;;;AAoBA,MAAMA,IAA8C,CAAC;AAAA,EACnD,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,wBAEKC,GAAkB,EAAA,WAAAH,GAAsB,OAAAC,GAAe,GAAGC,GACxD,UAAAH,GACH,GAIEK,IAAwC,CAAC;AAAA,EAC7C,UAAAL;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ,CAAC;AAAA,EACT,cAAAI,IAAe;AAAA,EACf,GAAGH;AACL,MAAM;AACJ,QAAMI,IAAMC,EAAO;AAEjB,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTJ,EAAI,UAAU;AAAA,QACd,CAACD,KAAgBC,EAAI,2BAA2B;AAAA,QAChDN;AAAA,MACF;AAAA,MACA,OAAAC;AAAA,MACC,GAAGC;AAAA,MAEH,UAAAH;AAAA,IAAA;AAAA,EACH;AAEJ,GAEaY,IAAW,OAAO,OAAOP,GAAc;AAAA,EAClD,OAAON;AACT,CAAC,GAGYc,IAAQD;"}
@@ -0,0 +1 @@
1
+ @layer components{.ds-splitter>.ds-splitter-bar .ds-splitter-bar-collapse-bar.ds-splitter-bar-collapse-bar-start{opacity:1}}