@bioturing/components 0.19.0 → 0.20.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 (228) hide show
  1. package/dist/components/{Badge → badge}/component.js.map +1 -1
  2. package/dist/components/{Breadcrumb → breadcrumb}/component.js.map +1 -1
  3. package/dist/components/{Breadcrumb → breadcrumb}/useItemRender.js +6 -5
  4. package/dist/components/breadcrumb/useItemRender.js.map +1 -0
  5. package/dist/components/{Button → button}/component.js.map +1 -1
  6. package/dist/components/{Checkbox → checkbox}/component.js +1 -0
  7. package/dist/components/checkbox/component.js.map +1 -0
  8. package/dist/components/choice-list/component.js +54 -0
  9. package/dist/components/choice-list/component.js.map +1 -0
  10. package/dist/components/choice-list/style.css +1 -0
  11. package/dist/components/cmdk/command-score.js +48 -0
  12. package/dist/components/cmdk/command-score.js.map +1 -0
  13. package/dist/components/cmdk/index.js +611 -0
  14. package/dist/components/cmdk/index.js.map +1 -0
  15. package/dist/components/{CodeBlock → code-block}/component.js +4 -4
  16. package/dist/components/code-block/component.js.map +1 -0
  17. package/dist/components/{Collapse → collapse}/component.js.map +1 -1
  18. package/dist/components/{ColorSelect → color-select}/component.js +10 -10
  19. package/dist/components/color-select/component.js.map +1 -0
  20. package/dist/components/drag-drop/context.js.map +1 -0
  21. package/dist/components/drag-drop/draggable.js.map +1 -0
  22. package/dist/components/drag-drop/droppable.js.map +1 -0
  23. package/dist/components/{DragDrop → drag-drop}/hooks.js +1 -0
  24. package/dist/components/drag-drop/hooks.js.map +1 -0
  25. package/dist/components/drag-drop/index.js.map +1 -0
  26. package/dist/components/{DragDrop → drag-drop}/value.js +4 -4
  27. package/dist/components/drag-drop/value.js.map +1 -0
  28. package/dist/components/dropdown-menu/component.js +214 -0
  29. package/dist/components/dropdown-menu/component.js.map +1 -0
  30. package/dist/components/dropdown-menu/style.css +1 -0
  31. package/dist/components/{DSRoot → ds-root}/component.js +3 -3
  32. package/dist/components/ds-root/component.js.map +1 -0
  33. package/dist/components/ds-root/context.js.map +1 -0
  34. package/dist/components/{Empty → empty}/component.js +6 -5
  35. package/dist/components/empty/component.js.map +1 -0
  36. package/dist/components/{Field → field}/component.js.map +1 -1
  37. package/dist/components/{Form → form}/component.js.map +1 -1
  38. package/dist/components/{Form → form}/item.js +1 -1
  39. package/dist/components/form/item.js.map +1 -0
  40. package/dist/components/hooks/useCharts.js +1 -1
  41. package/dist/components/hooks/useCharts.js.map +1 -1
  42. package/dist/components/icon-button/component.js +65 -0
  43. package/dist/components/icon-button/component.js.map +1 -0
  44. package/dist/components/input/component.js +26 -0
  45. package/dist/components/input/component.js.map +1 -0
  46. package/dist/components/{Modal → modal}/Modal.js +3 -3
  47. package/dist/components/modal/Modal.js.map +1 -0
  48. package/dist/components/{Modal → modal}/ModalProvider.js.map +1 -1
  49. package/dist/components/{Modal → modal}/ModalService.js +3 -2
  50. package/dist/components/modal/ModalService.js.map +1 -0
  51. package/dist/components/{Modal → modal}/constants.js.map +1 -1
  52. package/dist/components/{Modal → modal}/functions.js +8 -7
  53. package/dist/components/modal/functions.js.map +1 -0
  54. package/dist/components/{Modal → modal}/index.js.map +1 -1
  55. package/dist/components/{Nav → nav}/context.js.map +1 -1
  56. package/dist/components/{Nav → nav}/group.js.map +1 -1
  57. package/dist/components/{Nav → nav}/heading.js.map +1 -1
  58. package/dist/components/{Nav → nav}/index.js +3 -2
  59. package/dist/components/nav/index.js.map +1 -0
  60. package/dist/components/{Nav → nav}/item.js +0 -1
  61. package/dist/components/nav/item.js.map +1 -0
  62. package/dist/components/{Popover → popover}/component.js.map +1 -1
  63. package/dist/components/{PopupPanel → popup-panel}/component.js +47 -47
  64. package/dist/components/popup-panel/component.js.map +1 -0
  65. package/dist/components/popup-panel/constants.js.map +1 -0
  66. package/dist/components/{Radio → radio}/component.js +6 -5
  67. package/dist/components/radio/component.js.map +1 -0
  68. package/dist/components/scroll-area/component.js.map +1 -0
  69. package/dist/components/{Segmented → segmented}/component.js +3 -2
  70. package/dist/components/segmented/component.js.map +1 -0
  71. package/dist/components/{Select → select}/component.js +7 -6
  72. package/dist/components/select/component.js.map +1 -0
  73. package/dist/components/{Slider → slider}/component.js.map +1 -1
  74. package/dist/components/{Spin → spin}/component.js +5 -4
  75. package/dist/components/spin/component.js.map +1 -0
  76. package/dist/components/{Splitter → splitter}/component.js.map +1 -1
  77. package/dist/components/{Stack → stack}/Stack.js.map +1 -1
  78. package/dist/components/{Stack → stack}/StackChild.js.map +1 -1
  79. package/dist/components/{Stack → stack}/index.js.map +1 -1
  80. package/dist/components/{Switch → switch}/component.js +3 -2
  81. package/dist/components/switch/component.js.map +1 -0
  82. package/dist/components/{Table → table}/component.js +1 -1
  83. package/dist/components/{Table → table}/component.js.map +1 -1
  84. package/dist/components/{Tag → tag}/component.js.map +1 -1
  85. package/dist/components/theme-provider/component.js.map +1 -0
  86. package/dist/components/{Toast → toast}/component.js +4 -4
  87. package/dist/components/toast/component.js.map +1 -0
  88. package/dist/components/{Toast → toast}/function.js.map +1 -1
  89. package/dist/components/{Tooltip → tooltip}/component.js.map +1 -1
  90. package/dist/components/{Tour → tour}/component.js.map +1 -1
  91. package/dist/components/{Transition → transition}/component.js.map +1 -1
  92. package/dist/components/{Tree → tree}/components.js.map +1 -1
  93. package/dist/components/{Tree → tree}/helpers.js.map +1 -1
  94. package/dist/components/{Tree → tree}/useTreeCommon.js.map +1 -1
  95. package/dist/components/{Tree → tree}/useUniqueKeysTree.js.map +1 -1
  96. package/dist/components/{Truncate → truncate}/component.js.map +1 -1
  97. package/dist/components/{Truncate → truncate}/helpers.js.map +1 -1
  98. package/dist/components/{Upload → upload}/component.js +1 -1
  99. package/dist/components/{Upload → upload}/component.js.map +1 -1
  100. package/dist/components/{Upload → upload}/dragger.js.map +1 -1
  101. package/dist/components/{Upload → upload}/hooks.js.map +1 -1
  102. package/dist/components/{Upload → upload}/item.js +7 -6
  103. package/dist/components/upload/item.js.map +1 -0
  104. package/dist/components/{Upload → upload}/utils.js.map +1 -1
  105. package/dist/components/utils/WithRenderProp.js +16 -0
  106. package/dist/components/utils/WithRenderProp.js.map +1 -0
  107. package/dist/components/utils/constants.js +10 -0
  108. package/dist/components/utils/constants.js.map +1 -0
  109. package/dist/components/{VerticalCollapsiblePanel → vertical-collapsible-panel}/component.js +9 -9
  110. package/dist/components/vertical-collapsible-panel/component.js.map +1 -0
  111. package/dist/index.d.ts +254 -33
  112. package/dist/index.js +194 -187
  113. package/dist/index.js.map +1 -1
  114. package/dist/metadata.js +14 -0
  115. package/dist/metadata.js.map +1 -1
  116. package/package.json +2 -1
  117. package/dist/components/Breadcrumb/useItemRender.js.map +0 -1
  118. package/dist/components/Checkbox/component.js.map +0 -1
  119. package/dist/components/CodeBlock/component.js.map +0 -1
  120. package/dist/components/ColorSelect/component.js.map +0 -1
  121. package/dist/components/DSRoot/component.js.map +0 -1
  122. package/dist/components/DSRoot/context.js.map +0 -1
  123. package/dist/components/DragDrop/context.js.map +0 -1
  124. package/dist/components/DragDrop/draggable.js.map +0 -1
  125. package/dist/components/DragDrop/droppable.js.map +0 -1
  126. package/dist/components/DragDrop/hooks.js.map +0 -1
  127. package/dist/components/DragDrop/index.js.map +0 -1
  128. package/dist/components/DragDrop/value.js.map +0 -1
  129. package/dist/components/DropdownMenu/component.js +0 -156
  130. package/dist/components/DropdownMenu/component.js.map +0 -1
  131. package/dist/components/DropdownMenu/style.css +0 -1
  132. package/dist/components/Empty/component.js.map +0 -1
  133. package/dist/components/Form/item.js.map +0 -1
  134. package/dist/components/IconButton/component.js +0 -62
  135. package/dist/components/IconButton/component.js.map +0 -1
  136. package/dist/components/Input/component.js +0 -25
  137. package/dist/components/Input/component.js.map +0 -1
  138. package/dist/components/Modal/Modal.js.map +0 -1
  139. package/dist/components/Modal/ModalService.js.map +0 -1
  140. package/dist/components/Modal/functions.js.map +0 -1
  141. package/dist/components/Nav/index.js.map +0 -1
  142. package/dist/components/Nav/item.js.map +0 -1
  143. package/dist/components/PopupPanel/component.js.map +0 -1
  144. package/dist/components/PopupPanel/constants.js.map +0 -1
  145. package/dist/components/Radio/component.js.map +0 -1
  146. package/dist/components/ScrollArea/component.js.map +0 -1
  147. package/dist/components/Segmented/component.js.map +0 -1
  148. package/dist/components/Select/component.js.map +0 -1
  149. package/dist/components/Spin/component.js.map +0 -1
  150. package/dist/components/Switch/component.js.map +0 -1
  151. package/dist/components/ThemeProvider/component.js.map +0 -1
  152. package/dist/components/Toast/component.js.map +0 -1
  153. package/dist/components/Upload/item.js.map +0 -1
  154. package/dist/components/VerticalCollapsiblePanel/component.js.map +0 -1
  155. /package/dist/components/{Badge → badge}/component.js +0 -0
  156. /package/dist/components/{Badge → badge}/style.css +0 -0
  157. /package/dist/components/{Breadcrumb → breadcrumb}/component.js +0 -0
  158. /package/dist/components/{Breadcrumb → breadcrumb}/style.css +0 -0
  159. /package/dist/components/{Button → button}/component.js +0 -0
  160. /package/dist/components/{Button → button}/style.css +0 -0
  161. /package/dist/components/{Checkbox → checkbox}/style.css +0 -0
  162. /package/dist/components/{CodeBlock → code-block}/style.css +0 -0
  163. /package/dist/components/{Collapse → collapse}/component.js +0 -0
  164. /package/dist/components/{Collapse → collapse}/style.css +0 -0
  165. /package/dist/components/{ColorSelect → color-select}/style.css +0 -0
  166. /package/dist/components/{DragDrop → drag-drop}/context.js +0 -0
  167. /package/dist/components/{DragDrop → drag-drop}/draggable.js +0 -0
  168. /package/dist/components/{DragDrop → drag-drop}/droppable.js +0 -0
  169. /package/dist/components/{DragDrop → drag-drop}/index.js +0 -0
  170. /package/dist/components/{DragDrop → drag-drop}/style.css +0 -0
  171. /package/dist/components/{DSRoot → ds-root}/context.js +0 -0
  172. /package/dist/components/{DSRoot → ds-root}/style.css +0 -0
  173. /package/dist/components/{Empty → empty}/style.css +0 -0
  174. /package/dist/components/{Field → field}/component.js +0 -0
  175. /package/dist/components/{Field → field}/style.css +0 -0
  176. /package/dist/components/{Form → form}/component.js +0 -0
  177. /package/dist/components/{Form → form}/style.css +0 -0
  178. /package/dist/components/{IconButton → icon-button}/style.css +0 -0
  179. /package/dist/components/{Modal → modal}/ModalProvider.js +0 -0
  180. /package/dist/components/{Modal → modal}/constants.js +0 -0
  181. /package/dist/components/{Modal → modal}/index.js +0 -0
  182. /package/dist/components/{Modal → modal}/style.css +0 -0
  183. /package/dist/components/{Nav → nav}/context.js +0 -0
  184. /package/dist/components/{Nav → nav}/group.js +0 -0
  185. /package/dist/components/{Nav → nav}/heading.js +0 -0
  186. /package/dist/components/{Nav → nav}/style.css +0 -0
  187. /package/dist/components/{Popover → popover}/component.js +0 -0
  188. /package/dist/components/{PopupPanel → popup-panel}/constants.js +0 -0
  189. /package/dist/components/{PopupPanel → popup-panel}/style.css +0 -0
  190. /package/dist/components/{Radio → radio}/style.css +0 -0
  191. /package/dist/components/{ScrollArea → scroll-area}/component.js +0 -0
  192. /package/dist/components/{ScrollArea → scroll-area}/style.css +0 -0
  193. /package/dist/components/{Segmented → segmented}/style.css +0 -0
  194. /package/dist/components/{Select → select}/style.css +0 -0
  195. /package/dist/components/{Slider → slider}/component.js +0 -0
  196. /package/dist/components/{Spin → spin}/style.css +0 -0
  197. /package/dist/components/{Splitter → splitter}/component.js +0 -0
  198. /package/dist/components/{Splitter → splitter}/style.css +0 -0
  199. /package/dist/components/{Stack → stack}/Stack.js +0 -0
  200. /package/dist/components/{Stack → stack}/StackChild.js +0 -0
  201. /package/dist/components/{Stack → stack}/index.js +0 -0
  202. /package/dist/components/{Stack → stack}/style.css +0 -0
  203. /package/dist/components/{Switch → switch}/style.css +0 -0
  204. /package/dist/components/{Table → table}/style.css +0 -0
  205. /package/dist/components/{Tag → tag}/component.js +0 -0
  206. /package/dist/components/{Tag → tag}/style.css +0 -0
  207. /package/dist/components/{ThemeProvider → theme-provider}/component.js +0 -0
  208. /package/dist/components/{ThemeProvider → theme-provider}/style.css +0 -0
  209. /package/dist/components/{Toast → toast}/function.js +0 -0
  210. /package/dist/components/{Toast → toast}/style.css +0 -0
  211. /package/dist/components/{Tooltip → tooltip}/component.js +0 -0
  212. /package/dist/components/{Tooltip → tooltip}/style.css +0 -0
  213. /package/dist/components/{Tour → tour}/component.js +0 -0
  214. /package/dist/components/{Tour → tour}/style.css +0 -0
  215. /package/dist/components/{Transition → transition}/component.js +0 -0
  216. /package/dist/components/{Tree → tree}/components.js +0 -0
  217. /package/dist/components/{Tree → tree}/helpers.js +0 -0
  218. /package/dist/components/{Tree → tree}/style.css +0 -0
  219. /package/dist/components/{Tree → tree}/useTreeCommon.js +0 -0
  220. /package/dist/components/{Tree → tree}/useUniqueKeysTree.js +0 -0
  221. /package/dist/components/{Truncate → truncate}/component.js +0 -0
  222. /package/dist/components/{Truncate → truncate}/helpers.js +0 -0
  223. /package/dist/components/{Truncate → truncate}/style.css +0 -0
  224. /package/dist/components/{Upload → upload}/dragger.js +0 -0
  225. /package/dist/components/{Upload → upload}/hooks.js +0 -0
  226. /package/dist/components/{Upload → upload}/style.css +0 -0
  227. /package/dist/components/{Upload → upload}/utils.js +0 -0
  228. /package/dist/components/{VerticalCollapsiblePanel → vertical-collapsible-panel}/style.css +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Empty/component.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n default as AntEmpty,\n type EmptyProps as AntEmptyProps,\n} from \"antd/es/empty\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface EmptyProps extends AntEmptyProps {\n /**\n * Empty icon size\n * @default 'medium'\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nexport const EmptyIcon: React.FC<React.ComponentPropsWithRef<\"svg\">> = (\n props\n) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n viewBox=\"0 0 32 32\"\n {...props}\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeOpacity={\"0.3\"}\n strokeWidth=\"0.05em\"\n d=\"m4 26 3.773-11.316A1 1 0 0 1 8.72 14H29a1 1 0 0 1 .949 1.316L26.386 26zm0 0V8a1 1 0 0 1 1-1h6.666a1 1 0 0 1 .6.2L16 10h9a1 1 0 0 1 1 1v3\"\n ></path>\n </svg>\n);\n\nexport const Empty = ({\n image,\n size = \"medium\",\n className,\n ...rest\n}: EmptyProps) => {\n const cls = useCls();\n const emptyImage = image || <EmptyIcon className={cls(\"empty-icon\")} />;\n return (\n <AntEmpty\n image={emptyImage}\n className={clsx(cls(\"empty\", `empty-${size}`), className)}\n {...rest}\n />\n );\n};\n\nexport default Empty;\n"],"names":["EmptyIcon","props","jsx","Empty","image","size","className","rest","cls","useCls","emptyImage","AntEmpty","clsx"],"mappings":";;;;;AAkBa,MAAAA,IAA0D,CACrEC,MAEA,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,MAAK;AAAA,IACL,SAAQ;AAAA,IACP,GAAGD;AAAA,IAEJ,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,eAAe;AAAA,QACf,aAAY;AAAA,QACZ,GAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AACH,GAGWC,IAAQ,CAAC;AAAA,EACpB,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,GAAGC;AACL,MAAkB;AAChB,QAAMC,IAAMC,EAAO,GACbC,IAAaN,KAAS,gBAAAF,EAACF,KAAU,WAAWQ,EAAI,YAAY,GAAG;AAEnE,SAAA,gBAAAN;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,OAAOD;AAAA,MACP,WAAWE,EAAKJ,EAAI,SAAS,SAASH,CAAI,EAAE,GAAGC,CAAS;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EACN;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","sources":["../../../src/components/Form/item.tsx"],"sourcesContent":["\"use client\";\nimport { isValidElement } from \"react\";\nimport {\n default as AntdFormItem,\n type FormItemProps as AntdFormItemProps,\n} from \"antd/es/form/FormItem\";\nimport { Question } from \"@bioturing/assets\";\nimport { IconButton } from \"../IconButton\";\nimport { useCls } from \"../utils\";\n\nexport interface FormItemProps<Values = unknown>\n extends AntdFormItemProps<Values> {\n // tooltip?: React.ReactNode | TooltipProps;\n optionalMark?: boolean | React.ReactNode;\n}\n\nexport const FormItem = <Values = unknown,>({\n tooltip,\n label,\n optionalMark,\n ...rest\n}: FormItemProps<Values>) => {\n const cls = useCls();\n const renderedLabel =\n tooltip || optionalMark ? (\n <span className={cls(\"form-item-label-inner\")}>\n {label}\n {tooltip && (\n <IconButton\n className={cls(\"form-item-explaination-icon\")}\n label={\n typeof tooltip == \"string\" || isValidElement(tooltip)\n ? tooltip\n : undefined\n }\n >\n <Question />\n </IconButton>\n )}\n {optionalMark && (\n <span className={cls(\"form-item-label-optional-mark\")}>\n {typeof optionalMark == \"boolean\" ? \"(optional)\" : optionalMark}\n </span>\n )}\n </span>\n ) : (\n label\n );\n return <AntdFormItem label={renderedLabel} {...rest} />;\n};\n"],"names":["FormItem","tooltip","label","optionalMark","rest","cls","useCls","renderedLabel","jsxs","jsx","IconButton","isValidElement","Question","AntdFormItem"],"mappings":";;;;;;;AAgBO,MAAMA,IAAW,CAAoB;AAAA,EAC1C,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAA6B;AAC3B,QAAMC,IAAMC,EAAO,GACbC,IACJN,KAAWE,IACT,gBAAAK,EAAC,UAAK,WAAWH,EAAI,uBAAuB,GACzC,UAAA;AAAA,IAAAH;AAAA,IACAD,KACC,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWL,EAAI,6BAA6B;AAAA,QAC5C,OACE,OAAOJ,KAAW,YAAYU,EAAeV,CAAO,IAChDA,IACA;AAAA,QAGN,4BAACW,GAAS,CAAA,CAAA;AAAA,MAAA;AAAA,IACZ;AAAA,IAEDT,KACE,gBAAAM,EAAA,QAAA,EAAK,WAAWJ,EAAI,+BAA+B,GACjD,UAAO,OAAAF,KAAgB,YAAY,eAAeA,EACrD,CAAA;AAAA,EAAA,EAAA,CAEJ,IAEAD;AAEJ,SAAQ,gBAAAO,EAAAI,GAAA,EAAa,OAAON,GAAgB,GAAGH,GAAM;AACvD;"}
@@ -1,62 +0,0 @@
1
- "use client";
2
- import { jsx as m } from "react/jsx-runtime";
3
- import { forwardRef as w } from "react";
4
- import { useRender as N } from "@base-ui-components/react/use-render";
5
- import './style.css';/* empty css */
6
- import { Tooltip as S } from "../Tooltip/component.js";
7
- import { Spin as T } from "../Spin/component.js";
8
- import { useCls as $ } from "../utils/antdUtils.js";
9
- import { clsx as k } from "../utils/cn.js";
10
- const q = ({
11
- label: s,
12
- size: l = "medium",
13
- negativeMargin: b = !0,
14
- children: v,
15
- className: f,
16
- tooltipProps: x = {},
17
- as: C,
18
- href: o,
19
- // Extract anchor-specific props
20
- target: r,
21
- rel: e,
22
- download: c,
23
- hrefLang: p,
24
- referrerPolicy: u,
25
- loading: t,
26
- render: I,
27
- ...B
28
- }, d) => {
29
- const n = $(), R = k(
30
- n("icon-button"),
31
- n(`icon-button-${l}`),
32
- n(b ? "icon-button-negative-margin" : ""),
33
- f
34
- ), i = C || (o ? "a" : "button"), j = {
35
- ref: d,
36
- className: R,
37
- ...i === "button" && { type: "button" },
38
- ...i === "a" ? {
39
- ...o && { href: o },
40
- ...r !== void 0 && { target: r },
41
- ...e !== void 0 && { rel: e },
42
- ...c !== void 0 && { download: c },
43
- ...p !== void 0 && { hrefLang: p },
44
- ...u !== void 0 && { referrerPolicy: u }
45
- } : {},
46
- "data-loading": t,
47
- children: t ? /* @__PURE__ */ m(T, {}) : v,
48
- ...B
49
- }, a = N({
50
- ref: d,
51
- render: I || /* @__PURE__ */ m(i, {}),
52
- props: j,
53
- state: {
54
- loading: t
55
- }
56
- });
57
- return s ? /* @__PURE__ */ m(S, { title: s, arrow: !1, ...x, children: a }) : a;
58
- }, J = w(q);
59
- export {
60
- J as IconButton
61
- };
62
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/IconButton/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n type ElementType,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type Ref,\n type AnchorHTMLAttributes,\n ComponentPropsWithRef,\n} from \"react\";\nimport { Tooltip, TooltipProps } from \"../Tooltip\";\nimport { useCls, clsx } from \"../utils\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\n\n// Import component-specific styles\nimport \"./style.css\";\nimport { Spin } from \"../Spin\";\n\n// Base props without href/as handling\ntype IconButtonBaseProps = {\n /**\n * Label text or element to display within tooltip\n * @default undefined\n */\n label?: React.ReactNode;\n /**\n * Size of the icon button: small (1.25rem) or medium (1.5rem)\n * @default medium\n */\n size?: \"small\" | \"medium\";\n /**\n * Whether to apply negative margin for better visual alignment\n * @default true\n */\n negativeMargin?: boolean;\n /**\n * Whether to show loading state\n * @default false\n */\n loading?: boolean;\n /**\n * Props to pass to the Tooltip component when wrapping the button\n */\n tooltipProps?: TooltipProps;\n /**\n * Custom render function for the button\n */\n render?: useRender.RenderProp<{ loading: boolean }>;\n};\n\n// Extract anchor-specific props we want to automatically handle\ntype AnchorSpecificProps = Pick<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n \"target\" | \"rel\" | \"download\" | \"hrefLang\" | \"referrerPolicy\"\n>;\n\n// Props when href is provided - as defaults to 'a' and includes anchor-specific props\ntype WithHrefProps<E extends ElementType = \"a\"> = IconButtonBaseProps & {\n href: string;\n as?: E;\n} & AnchorSpecificProps;\n\n// Props when href is not provided - as defaults to 'button'\ntype WithoutHrefProps<E extends ElementType = \"button\"> =\n IconButtonBaseProps & {\n href?: undefined;\n as?: E;\n } & {\n [K in keyof AnchorSpecificProps]?: never;\n };\n\n// Combined props type with conditional behavior\ntype IconButtonOwnProps<E extends ElementType = ElementType> =\n | WithHrefProps<E>\n | WithoutHrefProps<E>;\n\nexport type IconButtonProps<E extends ElementType = \"button\"> =\n IconButtonOwnProps<E> &\n Omit<ComponentPropsWithoutRef<E>, keyof IconButtonOwnProps<E>>;\n\n/**\n * A type-safe polymorphic component pattern\n */\ninterface PolymorphicComponentProps<E extends ElementType = \"button\"> {\n as?: E;\n href?: string;\n}\n\n/**\n * Type for wrapping the forwardRef implementation\n */\ntype IconButtonComponent = <E extends ElementType = \"button\">(\n props: IconButtonProps<E> & { ref?: ComponentPropsWithRef<E>[\"ref\"] }\n) => ReactElement;\n\n/**\n * Implementation of the IconButton component\n */\nconst IconButtonImpl = <E extends ElementType = \"button\">(\n {\n label,\n size = \"medium\",\n negativeMargin = true,\n children,\n className,\n tooltipProps = {},\n as,\n href,\n // Extract anchor-specific props\n target,\n rel,\n download,\n hrefLang,\n referrerPolicy,\n loading,\n render,\n ...rest\n }: IconButtonProps<E> & PolymorphicComponentProps<E>,\n ref: Ref<Element>\n) => {\n const cls = useCls();\n const buttonClasses = clsx(\n cls(\"icon-button\"),\n cls(`icon-button-${size}`),\n cls(negativeMargin ? \"icon-button-negative-margin\" : \"\"),\n className\n );\n\n // Use a type assertion for the component to avoid TypeScript errors\n const Component = (as || (href ? \"a\" : \"button\")) as ElementType;\n\n const elementProps = {\n ref,\n className: buttonClasses,\n ...(Component === \"button\" && { type: \"button\" }),\n ...(Component === \"a\"\n ? {\n ...(href && { href }),\n ...(target !== undefined && { target }),\n ...(rel !== undefined && { rel }),\n ...(download !== undefined && { download }),\n ...(hrefLang !== undefined && { hrefLang }),\n ...(referrerPolicy !== undefined && { referrerPolicy }),\n }\n : {}),\n \"data-loading\": loading,\n children: loading ? <Spin /> : children,\n ...rest,\n };\n\n const element = useRender({\n ref,\n render: render || <Component />,\n props: elementProps,\n state: {\n loading,\n },\n });\n\n return label ? (\n <Tooltip title={label} arrow={false} {...tooltipProps}>\n {element}\n </Tooltip>\n ) : (\n element\n );\n};\n\n// Export with correct typing\nexport const IconButton = forwardRef(IconButtonImpl) as IconButtonComponent;\n"],"names":["IconButtonImpl","label","size","negativeMargin","children","className","tooltipProps","as","href","target","rel","download","hrefLang","referrerPolicy","loading","render","rest","ref","cls","useCls","buttonClasses","clsx","Component","elementProps","jsx","Spin","element","useRender","Tooltip","IconButton","forwardRef"],"mappings":";;;;;;;;;AAkGA,MAAMA,IAAiB,CACrB;AAAA,EACE,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,gBAAAC,IAAiB;AAAA,EACjB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC,IAAe,CAAC;AAAA,EAChB,IAAAC;AAAA,EACA,MAAAC;AAAA;AAAA,EAEA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAO,GACbC,IAAgBC;AAAA,IACpBH,EAAI,aAAa;AAAA,IACjBA,EAAI,eAAehB,CAAI,EAAE;AAAA,IACzBgB,EAAIf,IAAiB,gCAAgC,EAAE;AAAA,IACvDE;AAAA,EACF,GAGMiB,IAAaf,MAAOC,IAAO,MAAM,WAEjCe,IAAe;AAAA,IACnB,KAAAN;AAAA,IACA,WAAWG;AAAA,IACX,GAAIE,MAAc,YAAY,EAAE,MAAM,SAAS;AAAA,IAC/C,GAAIA,MAAc,MACd;AAAA,MACE,GAAId,KAAQ,EAAE,MAAAA,EAAK;AAAA,MACnB,GAAIC,MAAW,UAAa,EAAE,QAAAA,EAAO;AAAA,MACrC,GAAIC,MAAQ,UAAa,EAAE,KAAAA,EAAI;AAAA,MAC/B,GAAIC,MAAa,UAAa,EAAE,UAAAA,EAAS;AAAA,MACzC,GAAIC,MAAa,UAAa,EAAE,UAAAA,EAAS;AAAA,MACzC,GAAIC,MAAmB,UAAa,EAAE,gBAAAA,EAAe;AAAA,IAAA,IAEvD,CAAC;AAAA,IACL,gBAAgBC;AAAA,IAChB,UAAUA,IAAW,gBAAAU,EAAAC,GAAA,CAAA,CAAK,IAAKrB;AAAA,IAC/B,GAAGY;AAAA,EACL,GAEMU,IAAUC,EAAU;AAAA,IACxB,KAAAV;AAAA,IACA,QAAQF,KAAU,gBAAAS,EAACF,GAAU,CAAA,CAAA;AAAA,IAC7B,OAAOC;AAAA,IACP,OAAO;AAAA,MACL,SAAAT;AAAA,IAAA;AAAA,EACF,CACD;AAEM,SAAAb,IACJ,gBAAAuB,EAAAI,GAAA,EAAQ,OAAO3B,GAAO,OAAO,IAAQ,GAAGK,GACtC,UAAAoB,EAAA,CACH,IAEAA;AAEJ,GAGaG,IAAaC,EAAW9B,CAAc;"}
@@ -1,25 +0,0 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { MagnifyingGlass as c, Eye as i, EyeClosed as u } from "@bioturing/assets";
3
- import { Input as t } from "antd";
4
- import { forwardRef as o } from "react";
5
- const m = (n, e) => /* @__PURE__ */ r(t, { ref: e, ...n }), I = (n, e) => {
6
- const s = {
7
- iconRender: (a) => a ? /* @__PURE__ */ r(i, { size: 16 }) : /* @__PURE__ */ r(u, { size: 16 }),
8
- ...n
9
- };
10
- return /* @__PURE__ */ r(t.Password, { ref: e, ...s });
11
- }, d = (n, e) => {
12
- const s = {
13
- enterButton: n.enterButton === !0 ? /* @__PURE__ */ r(c, { size: 16 }) : n.enterButton,
14
- ...n
15
- };
16
- return /* @__PURE__ */ r(t.Search, { ref: e, ...s });
17
- }, p = (n, e) => /* @__PURE__ */ r(t.TextArea, { ref: e, ...n }), f = o(m), g = o(I), x = o(d), P = o(p), A = Object.assign(f, {
18
- Password: g,
19
- Search: x,
20
- TextArea: P
21
- });
22
- export {
23
- A as Input
24
- };
25
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Input/component.tsx"],"sourcesContent":["import { Eye, EyeClosed, MagnifyingGlass } from \"@bioturing/assets\";\nimport {\n Input as AntInput,\n type InputProps as AntInputProps,\n type InputRef,\n} from \"antd\";\nimport { type PasswordProps as AntPasswordProps } from \"antd/es/input\";\nimport { type SearchProps as AntSearchProps } from \"antd/es/input\";\nimport { type TextAreaProps as AntTextAreaProps } from \"antd/es/input\";\nimport { forwardRef } from \"react\";\n\n// Define props interfaces\nexport interface InputProps extends AntInputProps {}\nexport interface PasswordProps extends AntPasswordProps {}\nexport interface TextAreaProps extends AntTextAreaProps {}\nexport interface SearchProps extends AntSearchProps {}\n\n// Create inner function for main Input\nconst MainInputInner = (props: InputProps, ref: React.Ref<InputRef>) => {\n return <AntInput ref={ref} {...props} />;\n};\n\n// Create inner function for Password\nconst PasswordInner = (props: PasswordProps, ref: React.Ref<InputRef>) => {\n // Apply default iconRender unless overridden by props\n const mergedProps = {\n iconRender: (visible: boolean) =>\n visible ? <Eye size={16} /> : <EyeClosed size={16} />,\n ...props,\n };\n\n return <AntInput.Password ref={ref} {...mergedProps} />;\n};\n\n// Create inner function for Search\nconst SearchInner = (props: SearchProps, ref: React.Ref<InputRef>) => {\n // Apply default enterButton unless overridden\n const mergedProps = {\n enterButton:\n props.enterButton === true ? (\n <MagnifyingGlass size={16} />\n ) : (\n props.enterButton\n ),\n ...props,\n };\n\n return <AntInput.Search ref={ref} {...mergedProps} />;\n};\n\n// Create inner function for TextArea\nconst TextAreaInner = (\n props: TextAreaProps,\n ref: React.Ref<HTMLTextAreaElement>\n) => {\n return <AntInput.TextArea ref={ref} {...props} />;\n};\n\n// Use forwardRef with type assertion for main Input\nconst MainInput = forwardRef(MainInputInner) as (\n props: InputProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof MainInputInner>;\n\n// Use forwardRef with type assertion for Password\nconst Password = forwardRef(PasswordInner) as (\n props: PasswordProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof PasswordInner>;\n\n// Use forwardRef with type assertion for Search\nconst Search = forwardRef(SearchInner) as (\n props: SearchProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof SearchInner>;\n\n// Use forwardRef with type assertion for TextArea\nconst TextArea = forwardRef(TextAreaInner) as (\n props: TextAreaProps & {\n ref?: React.ForwardedRef<HTMLTextAreaElement>;\n }\n) => ReturnType<typeof TextAreaInner>;\n\n// Export the final composed component\nexport const Input = Object.assign(MainInput, {\n Password,\n Search,\n TextArea,\n});\n"],"names":["MainInputInner","props","ref","jsx","AntInput","PasswordInner","mergedProps","visible","Eye","EyeClosed","SearchInner","MagnifyingGlass","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;AAkBA,MAAMA,IAAiB,CAACC,GAAmBC,MACjC,gBAAAC,EAAAC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAO,CAAA,GAIlCI,IAAgB,CAACJ,GAAsBC,MAA6B;AAExE,QAAMI,IAAc;AAAA,IAClB,YAAY,CAACC,MACXA,IAAW,gBAAAJ,EAAAK,GAAA,EAAI,MAAM,GAAI,CAAA,IAAK,gBAAAL,EAACM,GAAU,EAAA,MAAM,GAAI,CAAA;AAAA,IACrD,GAAGR;AAAA,EACL;AAEA,2BAAQG,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGI,GAAa;AACvD,GAGMI,IAAc,CAACT,GAAoBC,MAA6B;AAEpE,QAAMI,IAAc;AAAA,IAClB,aACEL,EAAM,gBAAgB,uBACnBU,GAAgB,EAAA,MAAM,IAAI,IAE3BV,EAAM;AAAA,IAEV,GAAGA;AAAA,EACL;AAEA,2BAAQG,EAAS,QAAT,EAAgB,KAAAF,GAAW,GAAGI,GAAa;AACrD,GAGMM,IAAgB,CACpBX,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3CY,IAAYC,EAAWd,CAAc,GAOrCe,IAAWD,EAAWT,CAAa,GAOnCW,IAASF,EAAWJ,CAAW,GAO/BO,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntModal,\n type ModalProps as AntModalProps,\n} from \"antd/es/modal\";\nimport { XIcon } from \"@bioturing/assets\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useCls } from \"../utils\";\nimport { ModalContextProvider } from \"antd/es/modal/context\";\nimport NormalCancelBtn from \"antd/es/modal/components/NormalCancelBtn\";\nimport NormalOkBtn from \"antd/es/modal/components/NormalOkBtn\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport { IconButton } from \"../IconButton\";\nimport { ModalSize } from \"./constants\";\nimport { ModalType } from \"./functions\";\nimport { Truncate } from \"../Truncate\";\nimport { Stack } from \"../Stack\";\n\n// Define props interface extending Ant Design's ModalProps\nexport interface ModalProps extends Omit<AntModalProps, \"centered\"> {\n /**\n * Predefined sizes for the modal\n * - xsmall: 400px\n * - small: 520px\n * - medium: 640px (default)\n * - large: 840px\n * - xlarge: 1024px\n * - fullscreen: 100vw (takes full screen width with margins)\n * @default \"medium\" for default type, \"xsmall\" for other types\n */\n size?:\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"fullscreen\";\n /**\n * Mark modal as loading\n * @default false\n */\n loading?: boolean;\n /**\n * Hide Ok button\n * @default false\n */\n hideOkButton?: boolean;\n /**\n * Hide Cancel button\n * @default false\n */\n hideCancelButton?: boolean;\n /**\n * Custom Content Padding\n * @default \"24px\"\n */\n contentPadding?: number | string | boolean;\n /**\n * Add more content below the title\n */\n afterTitle?: React.ReactNode;\n /**\n * Add more actions before close button\n */\n beforeCloseButton?: React.ReactNode;\n /**\n * Add more actions after close button\n */\n afterCloseButton?: React.ReactNode;\n /**\n * Set header and footer to fixed position\n * @default false\n */\n defaultFixedHeaderFooter?: boolean;\n /**\n * Centered Modal\n * @default true\n */\n centered?: boolean;\n /**\n * Modal type\n * @default \"default\"\n */\n type?: ModalType;\n /**\n * Default open state for uncontrolled modal\n * @default true\n */\n defaultOpen?: boolean;\n /**\n * Modal background\n * @default \"elevated\" if size smaller than \"medium\", otherwise \"container\"\n */\n background?: \"elevated\" | \"container\";\n /**\n * Modal old close callback\n * @deprecated use onCancel instead\n */\n onClose?: () => void;\n /**\n * Make modal body scrollable\n * @default true\n */\n bodyScrollable?: boolean;\n}\n\n// Create Modal component\nexport const Modal = ({\n open: externalOpen,\n closeIcon,\n children,\n size: sizeProp,\n footer,\n width,\n style,\n styles,\n classNames,\n okButtonProps,\n cancelButtonProps,\n loading,\n onOk,\n onCancel,\n okText,\n okType = \"primary\",\n confirmLoading,\n cancelText = \"Close\",\n hideOkButton = false,\n hideCancelButton = false,\n contentPadding,\n title,\n afterTitle,\n beforeCloseButton,\n afterCloseButton,\n defaultFixedHeaderFooter = false,\n centered = true,\n type = \"default\",\n defaultOpen = true,\n background: backgroundProp,\n bodyScrollable = true,\n ...rest\n}: ModalProps) => {\n // Default close icon with Phosphor icon\n const defaultCloseIcon =\n closeIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n\n // Use custom width if provided, otherwise use the size from the map\n const defaultModalSize = type === \"default\" ? \"medium\" : \"xsmall\";\n\n const size: keyof typeof ModalSize = sizeProp || defaultModalSize;\n const modalWidth = width || ModalSize[size];\n\n const background =\n backgroundProp ||\n (size &&\n size in ModalSize &&\n parseInt(ModalSize[size]) <= parseInt(ModalSize.medium)\n ? \"elevated\"\n : \"container\");\n\n // Apply additional styles for fullscreen mode\n const modalStyle = {\n \"--ds-modal-bg\": `var(--ds-color-bg-${background})`,\n ...style,\n ...(size === \"fullscreen\"\n ? { top: 0, maxWidth: \"100%\", height: \"100%\" }\n : {}),\n };\n\n const modalStyles = {\n ...styles,\n body: {\n ...((typeof contentPadding != \"undefined\"\n ? {\n \"--ds-modal-content-padding\":\n contentPadding === false || contentPadding === 0\n ? \"0\"\n : typeof contentPadding == \"number\"\n ? `${contentPadding}px`\n : contentPadding,\n }\n : {}) as React.CSSProperties),\n ...styles?.body,\n },\n };\n\n const [isContentOverflow, setIsContentOverflow] = useState(false);\n\n const cls = useCls();\n\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const modalInnerRef = useCallback(\n (node: HTMLElement | null) => {\n // If the node is null (component unmounting), just return\n if (!node) return;\n\n const modalBody = node.querySelector(\".\" + cls(\"modal-body\"));\n if (!(modalBody instanceof HTMLElement)) return;\n\n // Create ResizeObserver to detect overflow\n const resizeObserver = new ResizeObserver(() => {\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n });\n\n // Store reference to the observer\n resizeObserverRef.current = resizeObserver;\n\n // Start observing\n resizeObserver.observe(modalBody);\n\n // Initial check\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n },\n [cls]\n );\n\n // clean up resize observer\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, []);\n\n const [locale] = useLocale(\"Modal\", getConfirmLocale());\n\n const okTextLocale: React.ReactNode = okText || locale?.okText;\n const cancelTextLocale = cancelText || locale?.cancelText;\n\n const modalOkButtonProps = {\n loading: loading,\n ...okButtonProps,\n };\n\n const modalCancelButtonProps = {\n ...cancelButtonProps,\n };\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n const uncontrolledOpen = typeof externalOpen === \"undefined\";\n\n const open = uncontrolledOpen ? internalOpen : externalOpen;\n\n const defaultFooter = (\n <ModalContextProvider\n value={{\n okButtonProps: modalOkButtonProps,\n cancelButtonProps: modalCancelButtonProps,\n onCancel,\n onOk,\n okType,\n confirmLoading,\n okTextLocale,\n cancelTextLocale,\n }}\n >\n {hideOkButton ? (\n <NormalCancelBtn />\n ) : hideCancelButton ? (\n <NormalOkBtn />\n ) : (\n <>\n <NormalCancelBtn />\n <NormalOkBtn />\n </>\n )}\n </ModalContextProvider>\n );\n const renderTitle = () => {\n return (\n <>\n <Stack align=\"center\" gap={8} className={cls(\"modal-title-wrapper\")}>\n <Stack.Child grow>\n {typeof title === \"string\" ? <Truncate>{title}</Truncate> : title}\n </Stack.Child>\n <Stack.Child stack hug align=\"center\" gap={8}>\n {beforeCloseButton}\n <IconButton\n onClick={(e: React.MouseEvent<HTMLButtonElement>) =>\n onCancel?.(e)\n }\n >\n {defaultCloseIcon}\n </IconButton>\n {afterCloseButton}\n </Stack.Child>\n {}\n </Stack>\n {afterTitle ? afterTitle : null}\n </>\n );\n };\n return (\n <AntModal\n closeIcon={false}\n open={open}\n width={modalWidth}\n style={modalStyle}\n title={renderTitle()}\n classNames={{\n ...classNames,\n wrapper: cls(\n \"modal-wrap\",\n size == \"fullscreen\" && \"modal-fullscreen\",\n isContentOverflow && \"modal-content-overflow\",\n bodyScrollable === false && \"modal-no-body-scroll\",\n defaultFixedHeaderFooter || isContentOverflow || size == \"fullscreen\"\n ? \"modal-fixed\"\n : \"\"\n ),\n }}\n styles={modalStyles}\n modalRender={(modal) => (\n <div ref={modalInnerRef} className={cls(\"modal-inner\")}>\n {modal}\n </div>\n )}\n okButtonProps={modalOkButtonProps}\n cancelButtonProps={modalCancelButtonProps}\n onOk={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onOk?.(e);\n }}\n onCancel={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onCancel?.(e);\n }}\n okText={okText}\n cancelText={cancelText}\n okType=\"primary\"\n confirmLoading={confirmLoading}\n footer={\n typeof footer === \"undefined\"\n ? hideOkButton && hideCancelButton\n ? null\n : defaultFooter\n : footer\n }\n centered={centered}\n {...rest}\n >\n {children}\n </AntModal>\n );\n};\n"],"names":["Modal","externalOpen","closeIcon","children","sizeProp","footer","width","style","styles","classNames","okButtonProps","cancelButtonProps","loading","onOk","onCancel","okText","okType","confirmLoading","cancelText","hideOkButton","hideCancelButton","contentPadding","title","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","type","defaultOpen","backgroundProp","bodyScrollable","rest","defaultCloseIcon","jsx","XIcon","size","modalWidth","ModalSize","modalStyle","modalStyles","isContentOverflow","setIsContentOverflow","useState","cls","useCls","resizeObserverRef","useRef","modalInnerRef","useCallback","node","modalBody","resizeObserver","hasOverflow","useEffect","locale","useLocale","getConfirmLocale","okTextLocale","cancelTextLocale","modalOkButtonProps","modalCancelButtonProps","internalOpen","setInternalOpen","uncontrolledOpen","open","defaultFooter","ModalContextProvider","NormalCancelBtn","NormalOkBtn","jsxs","Fragment","AntModal","Stack","Truncate","IconButton","e","modal"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalService.js","sources":["../../../src/components/Modal/ModalService.ts"],"sourcesContent":["import type { ModalFuncProps } from \"./functions\";\n\nexport type ModalConfig = ModalFuncProps & {\n id: string;\n trigger?: HTMLElement;\n};\n\nexport type UpdateConfig =\n | Partial<ModalFuncProps>\n | ((prev: ModalFuncProps) => ModalFuncProps);\n\nexport type ModalEvent =\n | { type: \"add\"; payload: ModalConfig }\n | { type: \"update\"; payload: { id: string; config: UpdateConfig } }\n | { type: \"destroy\"; payload: { id: string } }\n | { type: \"destroyAll\" };\n\ntype Listener = (event: ModalEvent) => void;\n\nclass ModalManager {\n private listeners: Listener[] = [];\n private counter = 0;\n\n subscribe(listener: Listener) {\n this.listeners.push(listener);\n return () => {\n this.listeners = this.listeners.filter((l) => l !== listener);\n };\n }\n\n emit(event: ModalEvent) {\n this.listeners.forEach((l) => l(event));\n }\n\n generateId() {\n this.counter += 1;\n return `modal_${this.counter}_${Date.now()}`;\n }\n}\n\nexport const modalManager = new ModalManager();\n"],"names":["ModalManager","__publicField","listener","l","event","modalManager"],"mappings":";;;AAmBA,MAAMA,EAAa;AAAA,EAAnB;AACU,IAAAC,EAAA,mBAAwB,CAAC;AACzB,IAAAA,EAAA,iBAAU;AAAA;AAAA,EAElB,UAAUC,GAAoB;AACvB,gBAAA,UAAU,KAAKA,CAAQ,GACrB,MAAM;AACX,WAAK,YAAY,KAAK,UAAU,OAAO,CAACC,MAAMA,MAAMD,CAAQ;AAAA,IAC9D;AAAA,EAAA;AAAA,EAGF,KAAKE,GAAmB;AACtB,SAAK,UAAU,QAAQ,CAACD,MAAMA,EAAEC,CAAK,CAAC;AAAA,EAAA;AAAA,EAGxC,aAAa;AACX,gBAAK,WAAW,GACT,SAAS,KAAK,OAAO,IAAI,KAAK,KAAK;AAAA,EAAA;AAE9C;AAEa,MAAAC,IAAe,IAAIL,EAAa;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sources":["../../../src/components/Modal/functions.tsx"],"sourcesContent":["import React, { JSX } from \"react\";\nimport type { ModalFuncProps as AntModalFuncProps } from \"antd\";\nimport { modalManager } from \"./ModalService\";\nimport { ModalProps } from \"./Modal\";\n\n// Extend Ant ModalFuncProps to include 'default'\nexport type ModalType = NonNullable<AntModalFuncProps[\"type\"]> | \"default\";\n\n// export type ModalFuncProps = Omit<AntModalFuncProps, \"type\"> & {\n// type?: ModalType;\n// };\n\nexport type ModalFuncProps = ModalProps & {\n /**\n * Content to be displayed in the modal\n * Similar to children prop in Modal component\n * Keep this to be compatible with antd ModalFuncProps\n */\n content?: React.ReactNode;\n};\n\nexport type ModalUpdateConfig =\n | Partial<ModalFuncProps>\n | ((prev: ModalFuncProps) => ModalFuncProps);\n\nexport interface ModalRef {\n update: (config: ModalUpdateConfig) => void;\n destroy: () => void;\n}\n\nfunction createModal(config: ModalFuncProps): ModalRef {\n // capture trigger element for focus restoration\n const trigger =\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined;\n const { type = \"default\", ...restConfig } = config;\n\n const id = modalManager.generateId();\n // initialize modal as open\n modalManager.emit({\n type: \"add\",\n payload: {\n id,\n type,\n trigger,\n ...restConfig,\n },\n });\n return {\n update: (cfg: ModalUpdateConfig) =>\n modalManager.emit({ type: \"update\", payload: { id, config: cfg } }),\n destroy: () => modalManager.emit({ type: \"destroy\", payload: { id } }),\n };\n}\n\nexport const confirm = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"confirm\" });\nexport const info = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"info\" });\nexport const success = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"success\" });\nexport const error = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"error\" });\nexport const warning = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"warning\" });\n\n/**\n * Open a default (normal) modal\n */\nexport const open = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"default\" });\n\nexport const destroyAll = (): void => modalManager.emit({ type: \"destroyAll\" });\n"],"names":["createModal","config","trigger","type","restConfig","id","modalManager","cfg","confirm","info","success","error","warning","open","destroyAll"],"mappings":";AA8BA,SAASA,EAAYC,GAAkC;AAErD,QAAMC,IACJ,SAAS,yBAAyB,cAC9B,SAAS,gBACT,QACA,EAAE,MAAAC,IAAO,WAAW,GAAGC,EAAe,IAAAH,GAEtCI,IAAKC,EAAa,WAAW;AAEnC,SAAAA,EAAa,KAAK;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,IAAAD;AAAA,MACA,MAAAF;AAAA,MACA,SAAAD;AAAA,MACA,GAAGE;AAAA,IAAA;AAAA,EACL,CACD,GACM;AAAA,IACL,QAAQ,CAACG,MACPD,EAAa,KAAK,EAAE,MAAM,UAAU,SAAS,EAAE,IAAAD,GAAI,QAAQE,KAAO;AAAA,IACpE,SAAS,MAAMD,EAAa,KAAK,EAAE,MAAM,WAAW,SAAS,EAAE,IAAAD,IAAM,CAAA;AAAA,EACvE;AACF;AAEa,MAAAG,IAAU,CAACP,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAC/BQ,IAAO,CAACR,MACnBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,OAAQ,CAAA,GAC5BS,IAAU,CAACT,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAC/BU,IAAQ,CAACV,MACpBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,QAAS,CAAA,GAC7BW,IAAU,CAACX,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAK/BY,IAAO,CAACZ,MACnBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAE/Ba,IAAa,MAAYR,EAAa,KAAK,EAAE,MAAM,aAAc,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Nav/index.tsx"],"sourcesContent":["import { NavItem, NavItemProps } from \"./item\";\nimport { NavHeading, NavHeadingProps } from \"./heading\";\nimport { NavGroup, NavGroupProps } from \"./group\";\n\nimport \"./style.css\";\n\nexport const Nav = {\n Item: NavItem,\n Heading: NavHeading,\n Group: NavGroup,\n};\n\nexport type { NavItemProps, NavHeadingProps, NavGroupProps };\n"],"names":["Nav","NavItem","NavHeading","NavGroup"],"mappings":";;;;AAMO,MAAMA,IAAM;AAAA,EACjB,MAAMC;AAAA,EACN,SAASC;AAAA,EACT,OAAOC;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","sources":["../../../src/components/Nav/item.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n useState,\n type MouseEvent,\n forwardRef,\n isValidElement,\n useMemo,\n} from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { Transition } from \"../Transition\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\n\nexport interface NavItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * The icon to display in the nav item\n */\n icon?: React.ReactNode;\n /**\n * Whether the nav item is active\n */\n active?: boolean;\n /**\n * The render prop to render the nav item\n */\n render?: useRender.RenderProp<{\n active: boolean;\n icon?: React.ReactNode;\n }>;\n /**\n * The size of the nav item\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to change the icon weight on active state\n * @default true\n */\n changeIconWeightOnActive?: boolean;\n}\n\n// Define a type for elements that can have a weight prop\ntype ElementWithWeight = React.ReactElement<{ weight?: string }>;\n\n// Type guard to check if an element can accept a weight prop\nconst canHaveWeightProp = (el: React.ReactNode): el is ElementWithWeight => {\n return isValidElement(el);\n};\n\nconst NavItemImpl = <T extends HTMLElement>(\n {\n icon,\n active = false,\n render,\n onClick,\n className,\n children,\n changeIconWeightOnActive = true,\n ...rest\n }: NavItemProps,\n ref: React.Ref<T>\n) => {\n const cls = useCls();\n\n // Apply weight prop only if the element can accept it\n const renderedIcon = useMemo(() => {\n if (!changeIconWeightOnActive || !active || !canHaveWeightProp(icon)) {\n return icon;\n }\n return React.cloneElement(icon, { weight: \"fill\" });\n }, [icon, changeIconWeightOnActive, active]);\n\n return useRender({\n render: render ?? <button className={clsx(cls(\"nav-item\"), className)} />,\n ref,\n props: {\n \"data-active\": active || undefined,\n \"aria-expanded\": rest[\"aria-expanded\"],\n className: undefined,\n ...rest,\n children: (\n <>\n <span className={cls(\"nav-item-icon\")}>{renderedIcon}</span>\n {/* <Transition\n starting=\"opacity-0 max-w-[0]\"\n ending=\"opacity-0 max-w-[0]\"\n className={cls(\"nav-item-transition\")}\n > */}\n <span className={cls(\"nav-item-content\")}>{children}</span>\n {/* </Transition> */}\n </>\n ),\n },\n state: { active, icon },\n });\n};\n\nconst NavItem = forwardRef(NavItemImpl) as <T extends HTMLElement>(\n props: NavItemProps & { ref?: React.Ref<T> }\n) => ReturnType<typeof NavItemImpl>;\n\nexport { NavItem };\n"],"names":["canHaveWeightProp","el","isValidElement","NavItemImpl","icon","active","render","onClick","className","children","changeIconWeightOnActive","rest","ref","cls","useCls","renderedIcon","useMemo","React","useRender","jsx","clsx","jsxs","Fragment","NavItem","forwardRef"],"mappings":";;;;;;AA6CA,MAAMA,IAAoB,CAACC,MAClBC,EAAeD,CAAE,GAGpBE,IAAc,CAClB;AAAA,EACE,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,0BAAAC,IAA2B;AAAA,EAC3B,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAO,GAGbC,IAAeC,EAAQ,MACvB,CAACN,KAA4B,CAACL,KAAU,CAACL,EAAkBI,CAAI,IAC1DA,IAEFa,EAAM,aAAab,GAAM,EAAE,QAAQ,QAAQ,GACjD,CAACA,GAAMM,GAA0BL,CAAM,CAAC;AAE3C,SAAOa,EAAU;AAAA,IACf,QAAQZ,KAAU,gBAAAa,EAAC,UAAO,EAAA,WAAWC,EAAKP,EAAI,UAAU,GAAGL,CAAS,EAAG,CAAA;AAAA,IACvE,KAAAI;AAAA,IACA,OAAO;AAAA,MACL,eAAeP,KAAU;AAAA,MACzB,iBAAiBM,EAAK,eAAe;AAAA,MACrC,WAAW;AAAA,MACX,GAAGA;AAAA,MACH,UAEI,gBAAAU,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAAH,EAAC,QAAK,EAAA,WAAWN,EAAI,eAAe,GAAI,UAAaE,GAAA;AAAA,0BAMpD,QAAK,EAAA,WAAWF,EAAI,kBAAkB,GAAI,UAAAJ,EAAS,CAAA;AAAA,MAAA,EAEtD,CAAA;AAAA,IAEJ;AAAA,IACA,OAAO,EAAE,QAAAJ,GAAQ,MAAAD,EAAK;AAAA,EAAA,CACvB;AACH,GAEMmB,IAAUC,EAAWrB,CAAW;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/PopupPanel/component.tsx"],"sourcesContent":["\"use client\";\nimport { useCls, clsx, parseAntdPlacement } from \"../utils\";\nimport { Popover } from \"@base-ui-components/react/popover\";\n\nimport { type PopoverProps } from \"antd/es/popover\";\nimport { useCallback, useEffect, useMemo, 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\";\nimport mergeRefs from \"merge-refs\";\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?: Popover.Root.Props[\"onOpenChange\"];\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 * Custom class names for different parts of the popup panel\n * @default {}\n */\n classNames?: {\n root?: string;\n trigger?: string;\n popup?: string;\n header?: string;\n title?: string;\n content?: string;\n footer?: string;\n resizeHandle?: string;\n };\n /**\n * Whether to close the panel when clicking outside\n * @default true\n */\n closeOnClickOutside?: boolean;\n /**\n * Whether to use modal mode\n * @default false\n */\n modal?: Popover.Root.Props[\"modal\"];\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 classNames,\n modal = false,\n closeOnClickOutside = true,\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 headlessUIPlacement = parseAntdPlacement(placement);\n // We don't need triggerRef since we're using callbackRef for the popup\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={clsx(cls(\"popup-panel-header\"), classNames?.header)}>\n <Flex\n align=\"center\"\n gap={8}\n className={cls(\"popup-panel-title-wrapper\")}\n >\n <Popover.Title\n render={\n <div className={clsx(cls(\"grow\", \"truncate\"), classNames?.title)}>\n {title}\n </div>\n }\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 classNames?.header,\n classNames?.title,\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 const { ref: rootRefProp, ...rootPropsWithoutRef } = getRootProps();\n // Handle reverse handle change for vertical resizing\n // Currently not used but kept for future implementation\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={(open, event, reason) => {\n if (reason === \"outside-press\" && !closeOnClickOutside) return;\n setOpen(open, event, reason);\n }}\n modal={modal}\n >\n <Popover.Trigger\n render={children}\n className={clsx(cls(\"popup-panel-trigger\"), classNames?.trigger)}\n ></Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner\n className={clsx(cls(\"popup-panel-root\"), classNames?.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 >\n <Popover.Popup\n className={clsx(\n cls(\"popup-panel\"),\n cls(`popup-panel-size-${size}`),\n className,\n classNames?.popup\n )}\n ref={mergeRefs(rootRefProp, callbackRef)}\n {...rootPropsWithoutRef}\n {...(resizing ? { \"data-resizing\": true } : {})}\n >\n {/* <div ref={popupRef}> */}\n {title && renderTitle()}\n <div\n className={clsx(cls(\"popup-panel-content\"), classNames?.content)}\n >\n <div className={cls(\"popup-panel-content-inner\")}>{content}</div>\n </div>\n {footer && (\n <div\n className={clsx(cls(\"popup-panel-footer\"), classNames?.footer)}\n >\n {typeof footer === \"function\"\n ? footer({ close: () => setOpen(false) })\n : footer}\n </div>\n )}\n {resizable && (\n <>\n <div\n className={clsx(\n cls(\"popup-panel-resize-handle\"),\n classNames?.resizeHandle\n )}\n data-placement=\"bottom-left\"\n {...getHandleProps({\n lockHorizontal: true,\n })}\n />\n <div\n className={clsx(\n cls(\"popup-panel-resize-handle\"),\n classNames?.resizeHandle\n )}\n data-placement=\"top-left\"\n {...getHandleProps({\n reverse: true,\n lockVertical: true,\n onResize: (values) =>\n onReverseHandleChangeHorizontal(rootRef, values),\n })}\n />\n <div\n className={clsx(\n cls(\"popup-panel-resize-handle\"),\n classNames?.resizeHandle\n )}\n data-placement=\"top-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","classNames","modal","closeOnClickOutside","open","setOpen","useControlledState","cls","useCls","headlessUIPlacement","parseAntdPlacement","popupRef","setPopupRef","useState","width","setWidth","height","setHeight","callbackRef","useCallback","node","useEffect","observer","entries","entry","defaultCloseIcon","useMemo","jsx","X","renderTitle","jsxs","clsx","Flex","Popover","IconButton","resizing","setResizing","getRootProps","getHandleProps","rootRef","useResizable","rootRefProp","rootPropsWithoutRef","onReverseHandleChangeHorizontal","parent","values","widthDiff","event","reason","PopupPanelSize","mergeRefs","Fragment"],"mappings":"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"}
@@ -1 +0,0 @@
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;"}
@@ -1 +0,0 @@
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;"}
@@ -1 +0,0 @@
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;"}
@@ -1 +0,0 @@
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;"}
@@ -1 +0,0 @@
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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"}
@@ -1 +0,0 @@
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;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Switch/component.tsx"],"sourcesContent":["import {\n default as AntSwitch,\n type SwitchProps as AntSwitchProps,\n} from \"antd/es/switch\";\nimport { forwardRef } from \"react\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define props interface extending Ant Design's SwitchProps\nexport interface SwitchProps extends AntSwitchProps {}\n\n// Create inner function\nconst MainSwitchInner = (\n { ...rest }: SwitchProps,\n ref: React.Ref<React.ComponentRef<typeof AntSwitch>>\n) => {\n return <AntSwitch ref={ref} {...rest} />;\n};\n\n// Use forwardRef with type assertion\nconst MainSwitch = forwardRef(MainSwitchInner) as (\n props: SwitchProps & {\n ref?: React.ForwardedRef<React.ComponentRef<typeof AntSwitch>>;\n }\n) => ReturnType<typeof MainSwitchInner>;\n\nexport const Switch = MainSwitch;\n"],"names":["MainSwitchInner","rest","ref","jsx","AntSwitch","MainSwitch","forwardRef","Switch"],"mappings":";;;;AAaA,MAAMA,IAAkB,CACtB,EAAE,GAAGC,EAAA,GACLC,MAEQ,gBAAAC,EAAAC,GAAA,EAAU,KAAAF,GAAW,GAAGD,EAAM,CAAA,GAIlCI,IAAaC,EAAWN,CAAe,GAMhCO,IAASF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/ThemeProvider/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as ConfigProvider,\n type ConfigProviderProps,\n} from \"antd/es/config-provider\";\nimport { Children, cloneElement, isValidElement, useLayoutEffect } from \"react\";\nimport { darkTheme, lightTheme } from \"../../tokens/and-theme/tokens\";\nimport { useCls, clsx, useAntdCssVarClassname } from \"../utils\";\nimport { StyleProvider } from \"@ant-design/cssinjs\";\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ThemeProviderProps\n extends Omit<ConfigProviderProps, \"theme\" | \"prefixCls\"> {\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}\n\nconst DSWrapper = ({\n children,\n theme,\n appendClassesTo,\n}: {\n children: React.ReactNode;\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}) => {\n const cls = useCls();\n const cssVars = useAntdCssVarClassname();\n const className = clsx(cls(\"theme-provider\"), theme.toString(), cssVars);\n useLayoutEffect(() => {\n const classes = className.split(\" \");\n const el =\n typeof appendClassesTo === \"string\"\n ? document.querySelector(appendClassesTo)\n : appendClassesTo;\n if (el) {\n el.classList.add(...classes);\n }\n return () => {\n if (el) {\n el.classList.remove(...classes);\n }\n };\n }, [appendClassesTo, className]);\n return appendClassesTo === undefined\n ? Children.map(children, (child) => {\n if (isValidElement(child))\n return cloneElement(child, {\n className: clsx(\n (child.props as { className?: string }).className,\n className\n ),\n } as { className: string });\n return child;\n })\n : children;\n};\n\nexport const ThemeProvider = ({\n theme,\n appendClassesTo,\n children,\n}: ThemeProviderProps) => {\n return (\n <StyleProvider layer>\n <ConfigProvider\n theme={theme == \"light\" ? lightTheme : darkTheme}\n prefixCls=\"ds\"\n >\n <DSWrapper theme={theme} appendClassesTo={appendClassesTo}>\n {children}\n </DSWrapper>\n </ConfigProvider>\n </StyleProvider>\n );\n};\n"],"names":["DSWrapper","children","theme","appendClassesTo","cls","useCls","cssVars","useAntdCssVarClassname","className","clsx","useLayoutEffect","classes","el","Children","child","isValidElement","cloneElement","ThemeProvider","jsx","StyleProvider","ConfigProvider","lightTheme","darkTheme"],"mappings":";;;;;;;;;AAkBA,MAAMA,IAAY,CAAC;AAAA,EACjB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC;AACF,MAIM;AACJ,QAAMC,IAAMC,EAAO,GACbC,IAAUC,EAAuB,GACjCC,IAAYC,EAAKL,EAAI,gBAAgB,GAAGF,EAAM,YAAYI,CAAO;AACvE,SAAAI,EAAgB,MAAM;AACd,UAAAC,IAAUH,EAAU,MAAM,GAAG,GAC7BI,IACJ,OAAOT,KAAoB,WACvB,SAAS,cAAcA,CAAe,IACtCA;AACN,WAAIS,KACCA,EAAA,UAAU,IAAI,GAAGD,CAAO,GAEtB,MAAM;AACX,MAAIC,KACCA,EAAA,UAAU,OAAO,GAAGD,CAAO;AAAA,IAElC;AAAA,EAAA,GACC,CAACR,GAAiBK,CAAS,CAAC,GACxBL,MAAoB,SACvBU,EAAS,IAAIZ,GAAU,CAACa,MAClBC,EAAeD,CAAK,IACfE,EAAaF,GAAO;AAAA,IACzB,WAAWL;AAAA,MACRK,EAAM,MAAiC;AAAA,MACxCN;AAAA,IAAA;AAAA,EACF,CACwB,IACrBM,CACR,IACDb;AACN,GAEagB,IAAgB,CAAC;AAAA,EAC5B,OAAAf;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAF;AACF,MAEI,gBAAAiB,EAACC,GAAc,EAAA,OAAK,IAClB,UAAA,gBAAAD;AAAA,EAACE;AAAA,EAAA;AAAA,IACC,OAAOlB,KAAS,UAAUmB,IAAaC;AAAA,IACvC,WAAU;AAAA,IAEV,UAAC,gBAAAJ,EAAAlB,GAAA,EAAU,OAAAE,GAAc,iBAAAC,GACtB,UAAAF,EACH,CAAA;AAAA,EAAA;AAAA,GAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Toast/component.tsx"],"sourcesContent":["\"use client\";\nimport { useCls, clsx } from \"../utils\";\nimport {\n CheckCircle,\n CircleNotch,\n Info,\n WarningCircle,\n X,\n XCircle,\n} from \"@bioturing/assets\";\nimport { Toast as BaseToast } from \"@base-ui-components/react\";\nimport { IconButton } from \"../IconButton\";\nimport { ToastData } from \"./types\";\nimport { toastManager } from \"./function\";\nimport { isTracebackError, type GenericHTMLProps } from \"../utils\";\nimport { useCallback, useEffect } from \"react\";\nimport { Button } from \"../Button/component\";\nimport { Modal } from \"../Modal\";\nimport { CodeBlock } from \"../CodeBlock\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nfunction InnerToast({\n toast,\n}: {\n toast: BaseToast.Root.ToastObject<ToastData>;\n}) {\n const cls = useCls();\n const toastIconMap = {\n info: <Info weight=\"fill\" />,\n warning: <WarningCircle weight=\"fill\" />,\n error: <XCircle weight=\"fill\" />,\n success: <CheckCircle weight=\"fill\" />,\n progress: <CircleNotch />,\n };\n const type = toast.data?.type || \"info\";\n const isTraceback = isTracebackError(toast?.description);\n\n // Update manager timeout for traceback to disable auto-dismiss\n useEffect(() => {\n if (isTraceback) {\n toastManager.update(toast.id, { timeout: 0 });\n }\n }, [isTraceback, toast.id]);\n // console.log(toast);\n const renderDescription: BaseToast.Description.Props[\"render\"] = useCallback(\n (props: GenericHTMLProps) => {\n const { children, className, ...rest } = props;\n if (isTraceback) {\n return (\n <div\n {...rest}\n className={cls(\n \"toast-description\",\n isTraceback ? \"toast-description-traceback\" : \"\",\n className\n )}\n >\n <p>\n An unexpected error occurred.\n <br />\n Please contact us with error details for support.\n </p>\n <p>\n <Button\n size=\"small\"\n onClick={() => {\n Modal.open({\n title: \"Error details\",\n content: <CodeBlock>{children}</CodeBlock>,\n hideOkButton: true,\n });\n toastManager.close(toast.id);\n }}\n >\n View error details\n </Button>\n </p>\n </div>\n );\n }\n return (\n <p {...rest} className={cls(\"toast-description\", className)}>\n {children}\n </p>\n );\n },\n [isTraceback, cls, toast.id]\n );\n return (\n <BaseToast.Root toast={toast} className={cls(\"toast\")}>\n <span className={cls(\"toast-icon-wrap\")}>\n <span className={cls(\"toast-icon\", `toast-icon-${type}`)}>\n {toastIconMap[type]}\n </span>\n </span>\n <div className={cls(\"toast-content\")}>\n <BaseToast.Title className={cls(\"toast-title\")} />\n <BaseToast.Description render={renderDescription} />\n </div>\n <BaseToast.Close\n className={cls(\"toast-close\")}\n render={\n <span>\n <IconButton size=\"small\">\n <X />\n </IconButton>\n </span>\n }\n ></BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction ToastList({ className }: { className?: string }) {\n const { toasts } = BaseToast.useToastManager();\n const cls = useCls();\n\n return (\n <BaseToast.Portal>\n <BaseToast.Viewport className={clsx(cls(\"toast-viewport\"), className)}>\n {toasts.map((toast) => (\n <InnerToast key={toast.id} toast={toast} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nfunction ToastProvider(props: BaseToast.Provider.Props) {\n return <BaseToast.Provider toastManager={toastManager} {...props} />;\n}\n\nexport const Toast = Object.assign(InnerToast, {\n List: ToastList,\n Provider: ToastProvider,\n});\n"],"names":["InnerToast","toast","cls","useCls","toastIconMap","jsx","Info","WarningCircle","XCircle","CheckCircle","CircleNotch","type","_a","isTraceback","isTracebackError","useEffect","toastManager","renderDescription","useCallback","props","children","className","rest","jsxs","Button","Modal","CodeBlock","BaseToast","IconButton","X","ToastList","toasts","clsx","ToastProvider","Toast"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"item.js","sources":["../../../src/components/Upload/item.tsx"],"sourcesContent":["import Flex from \"antd/es/flex\";\nimport Progress from \"antd/es/progress\";\nimport { type ProgressProps } from \"antd/es/progress\";\nimport { Trash } from \"@bioturing/assets\";\nimport { IconButton } from \"../IconButton\";\nimport { Truncate } from \"../Truncate/component\";\nimport { clsx, useCls } from \"../utils\";\nimport { getUploadFileIcon } from \"./utils\";\n\nexport type UploadFileStatus =\n | \"error\"\n | \"done\"\n | \"uploading\"\n | \"removed\"\n | \"pending\";\n\nexport interface UploadItemProps {\n fileName: string;\n fileType?: string;\n status?: UploadFileStatus;\n percent?: number;\n removable?: boolean;\n onRemove?: () => void;\n extraActions?: React.ReactNode;\n}\n\nexport const UploadItem = ({\n fileName,\n fileType,\n status = \"pending\",\n percent,\n removable = true,\n onRemove,\n extraActions,\n}: UploadItemProps) => {\n const cls = useCls();\n const showPercent = Math.round(percent || 0);\n const statusWithProgress: Record<UploadFileStatus, ProgressProps[\"status\"]> =\n {\n done: \"success\",\n error: \"exception\",\n uploading: \"active\",\n removed: \"normal\",\n pending: \"normal\",\n };\n return (\n <Flex\n className={clsx(cls(\"upload-item\"))}\n justify=\"space-between\"\n align=\"center\"\n data-error={status === \"error\"}\n >\n <Flex\n align=\"center\"\n gap={16}\n flex={1}\n className={cls(\"upload-item-content\")}\n >\n <span className={cls(\"upload-item-icon\")}>\n {getUploadFileIcon(fileType)}\n </span>\n <Flex\n align=\"start\"\n vertical\n flex={1}\n className={cls(\"upload-item-name-progress\")}\n >\n <Truncate position=\"middle\">{fileName}</Truncate>\n <Progress\n percent={showPercent}\n size=\"small\"\n className={cls(\"upload-item-progress\")}\n status={\n status && status in statusWithProgress\n ? statusWithProgress[status]\n : \"normal\"\n }\n />\n </Flex>\n <Flex gap={8} align=\"center\">\n {extraActions}\n {removable && (\n <IconButton\n label=\"Remove\"\n children={<Trash size={16} />}\n onClick={onRemove}\n size=\"small\"\n />\n )}\n </Flex>\n </Flex>\n </Flex>\n );\n};\n"],"names":["UploadItem","fileName","fileType","status","percent","removable","onRemove","extraActions","cls","useCls","showPercent","statusWithProgress","jsx","Flex","clsx","jsxs","getUploadFileIcon","Truncate","Progress","IconButton","Trash"],"mappings":";;;;;;;;;AA0BO,MAAMA,IAAa,CAAC;AAAA,EACzB,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,cAAAC;AACF,MAAuB;AACrB,QAAMC,IAAMC,EAAO,GACbC,IAAc,KAAK,MAAMN,KAAW,CAAC,GACrCO,IACJ;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAEA,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKN,EAAI,aAAa,CAAC;AAAA,MAClC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,cAAYL,MAAW;AAAA,MAEvB,UAAA,gBAAAY;AAAA,QAACF;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,UACN,WAAWL,EAAI,qBAAqB;AAAA,UAEpC,UAAA;AAAA,YAAA,gBAAAI,EAAC,UAAK,WAAWJ,EAAI,kBAAkB,GACpC,UAAAQ,EAAkBd,CAAQ,GAC7B;AAAA,YACA,gBAAAa;AAAA,cAACF;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,UAAQ;AAAA,gBACR,MAAM;AAAA,gBACN,WAAWL,EAAI,2BAA2B;AAAA,gBAE1C,UAAA;AAAA,kBAAC,gBAAAI,EAAAK,GAAA,EAAS,UAAS,UAAU,UAAShB,GAAA;AAAA,kBACtC,gBAAAW;AAAA,oBAACM;AAAA,oBAAA;AAAA,sBACC,SAASR;AAAA,sBACT,MAAK;AAAA,sBACL,WAAWF,EAAI,sBAAsB;AAAA,sBACrC,QACEL,KAAUA,KAAUQ,IAChBA,EAAmBR,CAAM,IACzB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAER;AAAA,cAAA;AAAA,YACF;AAAA,YACC,gBAAAY,EAAAF,GAAA,EAAK,KAAK,GAAG,OAAM,UACjB,UAAA;AAAA,cAAAN;AAAA,cACAF,KACC,gBAAAO;AAAA,gBAACO;AAAA,gBAAA;AAAA,kBACC,OAAM;AAAA,kBACN,UAAU,gBAAAP,EAACQ,GAAM,EAAA,MAAM,GAAI,CAAA;AAAA,kBAC3B,SAASd;AAAA,kBACT,MAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YACP,EAEJ,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/VerticalCollapsiblePanel/component.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Collapsible } from \"@base-ui-components/react\";\nimport { MinusCircle, PlusCircle } from \"@bioturing/assets\";\nimport { useCls, clsx } from \"../utils\";\nimport { useControlledState } from \"../hooks/useControlledState\";\nimport { Transition } from \"../Transition\";\nimport { useAnimationsFinished } from \"../hooks\";\nimport { IconButton } from \"../IconButton\";\nimport { Truncate } from \"../Truncate/component\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface VerticalCollapsiblePanelProps {\n /**\n * The content of the panel that will be toggled\n */\n children: React.ReactNode;\n /**\n * The header of the panel\n */\n title?: React.ReactNode;\n /**\n * Indicate if the title should be used as a trigger\n * @default true\n */\n useTitleAsTrigger?: boolean;\n /**\n * Custom Content Padding\n * @default \"24px\"\n */\n contentPadding?: number | string | boolean;\n /**\n * Add more content below the title\n * Only show when panel is open\n */\n afterTitle?: React.ReactNode;\n\n /**\n * Whether the panel is expanded by default\n */\n defaultOpen?: boolean;\n /**\n * Control the open state (makes the component controlled)\n */\n open?: boolean;\n /**\n * Callback when the open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Additional class name for the component\n */\n className?: string;\n /**\n * Addtional class name for the header\n */\n headerClassName?: string;\n /**\n * Addtional class name for the header\n */\n headerInnerClassName?: string;\n /**\n * Addtional class name for the body\n * */\n bodyClassName?: string;\n /**\n * Actions to be displayed in the header\n * Only show when panel is open\n */\n actions?: React.ReactNode;\n /**\n * Keeping it as mounted, just hide the content\n */\n keepMounted?: boolean;\n}\n\nexport const VerticalCollapsiblePanel: React.FC<\n VerticalCollapsiblePanelProps\n> = ({\n children,\n title,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n className,\n headerClassName,\n headerInnerClassName,\n bodyClassName,\n contentPadding = \"16px\",\n afterTitle,\n actions,\n useTitleAsTrigger = true,\n keepMounted = false,\n}) => {\n const cls = useCls();\n // Use useControlledState for open state\n const [isOpen, setIsOpen] = useControlledState(\n controlledOpen,\n onOpenChange,\n defaultOpen\n );\n const [isBodyOpen, setIsBodyOpen] = useState(isOpen);\n const ref = useRef<HTMLDivElement>(null);\n const runOnceAnimationsFinish = useAnimationsFinished(ref, {\n waitForNextTick: isOpen,\n });\n useEffect(() => {\n runOnceAnimationsFinish(() => {\n setIsBodyOpen(isOpen);\n });\n }, [isOpen, runOnceAnimationsFinish]);\n return (\n <Collapsible.Root\n className={clsx(cls(\"collapsible-panel\"), className)}\n open={isOpen}\n onOpenChange={setIsOpen}\n ref={ref}\n >\n <div className={clsx(cls(\"collapsible-panel-header\"), headerClassName)}>\n <div\n className={clsx(\n cls(\"collapsible-panel-header-inner\"),\n headerInnerClassName\n )}\n >\n <div\n className={cls(\"collapsible-panel-header-text\")}\n onClick={\n useTitleAsTrigger ? () => setIsOpen((open) => !open) : undefined\n }\n style={\n useTitleAsTrigger\n ? {\n cursor: \"pointer\",\n }\n : {}\n }\n >\n {typeof title == \"string\" ? <Truncate>{title}</Truncate> : title}\n </div>\n <div className={cls(\"collapsible-panel-header-actions\")}>\n {isOpen && actions}\n <Collapsible.Trigger\n className={cls(\"collapsible-panel-trigger\")}\n render={\n isOpen ? (\n <IconButton>\n <MinusCircle\n weight=\"bold\"\n className={clsx(\n cls(\"collapsible-panel-caret\"),\n isOpen && cls(\"collapsible-panel-caret-open\")\n )}\n />\n </IconButton>\n ) : (\n <IconButton>\n <PlusCircle\n weight=\"bold\"\n className={clsx(\n cls(\"collapsible-panel-caret\"),\n isOpen && cls(\"collapsible-panel-caret-open\")\n )}\n />\n </IconButton>\n )\n }\n ></Collapsible.Trigger>\n </div>\n </div>\n {isOpen && afterTitle && (\n <div className={cls(\"collapsible-panel-header-after\")}>\n {afterTitle}\n </div>\n )}\n </div>\n <Collapsible.Panel\n className={cls(\"collapsible-panel-content\")}\n style={\n (typeof contentPadding != \"undefined\"\n ? {\n \"--ds-content-padding\":\n contentPadding === false || contentPadding === 0\n ? \"0\"\n : typeof contentPadding == \"number\"\n ? `${contentPadding}px`\n : contentPadding,\n }\n : {}) as React.CSSProperties\n }\n keepMounted={keepMounted}\n >\n <Transition\n show={isBodyOpen}\n className={clsx(cls(\"collapsible-panel-body\"), bodyClassName)}\n keepMounted\n >\n <div>{children}</div>\n </Transition>\n </Collapsible.Panel>\n </Collapsible.Root>\n );\n};\n"],"names":["VerticalCollapsiblePanel","children","title","defaultOpen","controlledOpen","onOpenChange","className","headerClassName","headerInnerClassName","bodyClassName","contentPadding","afterTitle","actions","useTitleAsTrigger","keepMounted","cls","useCls","isOpen","setIsOpen","useControlledState","isBodyOpen","setIsBodyOpen","useState","ref","useRef","runOnceAnimationsFinish","useAnimationsFinished","useEffect","jsxs","Collapsible","clsx","jsx","open","Truncate","IconButton","MinusCircle","PlusCircle","Transition"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes