@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.20.1 → 0.5.0-beta.21.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 (472) hide show
  1. package/dist/components/charts/AreaGraph/AreaGraph.cjs +2 -0
  2. package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +1 -0
  3. package/dist/components/charts/AreaGraph/AreaGraph.js +209 -0
  4. package/dist/components/charts/AreaGraph/AreaGraph.js.map +1 -0
  5. package/dist/components/charts/BarGraph/BarGraph.cjs +2 -0
  6. package/dist/components/charts/BarGraph/BarGraph.cjs.map +1 -0
  7. package/dist/components/charts/BarGraph/BarGraph.js +175 -0
  8. package/dist/components/charts/BarGraph/BarGraph.js.map +1 -0
  9. package/dist/components/charts/Boxplot/Boxplot.cjs +2 -0
  10. package/dist/components/charts/Boxplot/Boxplot.cjs.map +1 -0
  11. package/dist/components/charts/Boxplot/Boxplot.js +171 -0
  12. package/dist/components/charts/Boxplot/Boxplot.js.map +1 -0
  13. package/dist/components/charts/Chromatogram/Chromatogram.cjs +2 -0
  14. package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -0
  15. package/dist/components/charts/Chromatogram/Chromatogram.js +164 -0
  16. package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -0
  17. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +2 -0
  18. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +1 -0
  19. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +219 -0
  20. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +1 -0
  21. package/dist/components/charts/ChromatogramChart/annotations.cjs +2 -0
  22. package/dist/components/charts/ChromatogramChart/annotations.cjs.map +1 -0
  23. package/dist/components/charts/ChromatogramChart/annotations.js +73 -0
  24. package/dist/components/charts/ChromatogramChart/annotations.js.map +1 -0
  25. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs +2 -0
  26. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +1 -0
  27. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js +34 -0
  28. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +1 -0
  29. package/dist/components/charts/ChromatogramChart/constants.cjs +2 -0
  30. package/dist/components/charts/ChromatogramChart/constants.cjs.map +1 -0
  31. package/dist/components/charts/ChromatogramChart/constants.js +24 -0
  32. package/dist/components/charts/ChromatogramChart/constants.js.map +1 -0
  33. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs +2 -0
  34. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +1 -0
  35. package/dist/components/charts/ChromatogramChart/dataProcessing.js +90 -0
  36. package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +1 -0
  37. package/dist/components/charts/ChromatogramChart/peakDetection.cjs +2 -0
  38. package/dist/components/charts/ChromatogramChart/peakDetection.cjs.map +1 -0
  39. package/dist/components/charts/ChromatogramChart/peakDetection.js +89 -0
  40. package/dist/components/charts/ChromatogramChart/peakDetection.js.map +1 -0
  41. package/dist/components/charts/DotPlot/DotPlot.cjs +2 -0
  42. package/dist/components/charts/DotPlot/DotPlot.cjs.map +1 -0
  43. package/dist/components/charts/DotPlot/DotPlot.js +184 -0
  44. package/dist/components/charts/DotPlot/DotPlot.js.map +1 -0
  45. package/dist/components/charts/Heatmap/Heatmap.cjs +2 -0
  46. package/dist/components/charts/Heatmap/Heatmap.cjs.map +1 -0
  47. package/dist/components/charts/Heatmap/Heatmap.js +67 -0
  48. package/dist/components/charts/Heatmap/Heatmap.js.map +1 -0
  49. package/dist/components/charts/Histogram/Histogram.cjs +2 -0
  50. package/dist/components/charts/Histogram/Histogram.cjs.map +1 -0
  51. package/dist/components/charts/Histogram/Histogram.js +209 -0
  52. package/dist/components/charts/Histogram/Histogram.js.map +1 -0
  53. package/dist/components/charts/LineGraph/LineGraph.cjs +2 -0
  54. package/dist/components/charts/LineGraph/LineGraph.cjs.map +1 -0
  55. package/dist/components/charts/LineGraph/LineGraph.js +185 -0
  56. package/dist/components/charts/LineGraph/LineGraph.js.map +1 -0
  57. package/dist/components/charts/PieChart/PieChart.cjs +2 -0
  58. package/dist/components/charts/PieChart/PieChart.cjs.map +1 -0
  59. package/dist/components/charts/PieChart/PieChart.js +106 -0
  60. package/dist/components/charts/PieChart/PieChart.js.map +1 -0
  61. package/dist/components/charts/PlateMap/PlateMap.cjs +2 -0
  62. package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -0
  63. package/dist/components/charts/PlateMap/PlateMap.js +450 -0
  64. package/dist/components/charts/PlateMap/PlateMap.js.map +1 -0
  65. package/dist/components/charts/PlateMap/constants.cjs +2 -0
  66. package/dist/components/charts/PlateMap/constants.cjs.map +1 -0
  67. package/dist/components/charts/PlateMap/constants.js +137 -0
  68. package/dist/components/charts/PlateMap/constants.js.map +1 -0
  69. package/dist/components/charts/PlateMap/types.cjs +2 -0
  70. package/dist/components/charts/PlateMap/types.cjs.map +1 -0
  71. package/dist/components/charts/PlateMap/types.js +8 -0
  72. package/dist/components/charts/PlateMap/types.js.map +1 -0
  73. package/dist/components/charts/PlateMap/utils.cjs +2 -0
  74. package/dist/components/charts/PlateMap/utils.cjs.map +1 -0
  75. package/dist/components/charts/PlateMap/utils.js +235 -0
  76. package/dist/components/charts/PlateMap/utils.js.map +1 -0
  77. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +2 -0
  78. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +1 -0
  79. package/dist/components/charts/ScatterGraph/ScatterGraph.js +186 -0
  80. package/dist/components/charts/ScatterGraph/ScatterGraph.js.map +1 -0
  81. package/dist/components/composed/AppHeader/AppHeader.cjs +2 -0
  82. package/dist/components/composed/AppHeader/AppHeader.cjs.map +1 -0
  83. package/dist/components/composed/AppHeader/AppHeader.js +35 -0
  84. package/dist/components/composed/AppHeader/AppHeader.js.map +1 -0
  85. package/dist/components/composed/AppLayout/AppLayout.cjs +2 -0
  86. package/dist/components/composed/AppLayout/AppLayout.cjs.map +1 -0
  87. package/dist/components/composed/AppLayout/AppLayout.js +65 -0
  88. package/dist/components/composed/AppLayout/AppLayout.js.map +1 -0
  89. package/dist/components/composed/AssistantModal/AssistantModal.cjs +2 -0
  90. package/dist/components/composed/AssistantModal/AssistantModal.cjs.map +1 -0
  91. package/dist/components/composed/AssistantModal/AssistantModal.js +75 -0
  92. package/dist/components/composed/AssistantModal/AssistantModal.js.map +1 -0
  93. package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.cjs +3 -0
  94. package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.cjs.map +1 -0
  95. package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.js +74 -0
  96. package/dist/components/composed/CodeScriptEditorButton/CodeScriptEditorButton.js.map +1 -0
  97. package/dist/components/composed/LaunchContent/LaunchContent.cjs +6 -0
  98. package/dist/components/composed/LaunchContent/LaunchContent.cjs.map +1 -0
  99. package/dist/components/composed/LaunchContent/LaunchContent.js +66 -0
  100. package/dist/components/composed/LaunchContent/LaunchContent.js.map +1 -0
  101. package/dist/components/composed/Main/LaunchContentPanel.cjs +6 -0
  102. package/dist/components/composed/Main/LaunchContentPanel.cjs.map +1 -0
  103. package/dist/components/composed/Main/LaunchContentPanel.js +63 -0
  104. package/dist/components/composed/Main/LaunchContentPanel.js.map +1 -0
  105. package/dist/components/composed/Main/Main.cjs +2 -0
  106. package/dist/components/composed/Main/Main.cjs.map +1 -0
  107. package/dist/components/composed/Main/Main.js +276 -0
  108. package/dist/components/composed/Main/Main.js.map +1 -0
  109. package/dist/components/composed/Main/MainHeader.cjs +2 -0
  110. package/dist/components/composed/Main/MainHeader.cjs.map +1 -0
  111. package/dist/components/composed/Main/MainHeader.js +36 -0
  112. package/dist/components/composed/Main/MainHeader.js.map +1 -0
  113. package/dist/components/composed/Main/MainNavbar.cjs +2 -0
  114. package/dist/components/composed/Main/MainNavbar.cjs.map +1 -0
  115. package/dist/components/composed/Main/MainNavbar.js +25 -0
  116. package/dist/components/composed/Main/MainNavbar.js.map +1 -0
  117. package/dist/components/composed/Main/MainSidebar.cjs +2 -0
  118. package/dist/components/composed/Main/MainSidebar.cjs.map +1 -0
  119. package/dist/components/composed/Main/MainSidebar.js +12 -0
  120. package/dist/components/composed/Main/MainSidebar.js.map +1 -0
  121. package/dist/components/composed/Main/MainTabBar.cjs +2 -0
  122. package/dist/components/composed/Main/MainTabBar.cjs.map +1 -0
  123. package/dist/components/composed/Main/MainTabBar.js +7 -0
  124. package/dist/components/composed/Main/MainTabBar.js.map +1 -0
  125. package/dist/components/composed/Main/ProtocolConfigurationPanel.cjs +2 -0
  126. package/dist/components/composed/Main/ProtocolConfigurationPanel.cjs.map +1 -0
  127. package/dist/components/composed/Main/ProtocolConfigurationPanel.js +30 -0
  128. package/dist/components/composed/Main/ProtocolConfigurationPanel.js.map +1 -0
  129. package/dist/components/composed/Main/TemplateSidebarCard.cjs +2 -0
  130. package/dist/components/composed/Main/TemplateSidebarCard.cjs.map +1 -0
  131. package/dist/components/composed/Main/TemplateSidebarCard.js +71 -0
  132. package/dist/components/composed/Main/TemplateSidebarCard.js.map +1 -0
  133. package/dist/components/composed/Navbar/Navbar.cjs +2 -0
  134. package/dist/components/composed/Navbar/Navbar.cjs.map +1 -0
  135. package/dist/components/composed/Navbar/Navbar.js +25 -0
  136. package/dist/components/composed/Navbar/Navbar.js.map +1 -0
  137. package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.cjs +2 -0
  138. package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.cjs.map +1 -0
  139. package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.js +44 -0
  140. package/dist/components/composed/ProtocolConfiguration/ProtocolConfiguration.js.map +1 -0
  141. package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.cjs +2 -0
  142. package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.cjs.map +1 -0
  143. package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.js +53 -0
  144. package/dist/components/composed/ProtocolYamlCard/ProtocolYamlCard.js.map +1 -0
  145. package/dist/components/composed/PythonEditorModal/PythonEditorModal.cjs +2 -0
  146. package/dist/components/composed/PythonEditorModal/PythonEditorModal.cjs.map +1 -0
  147. package/dist/components/composed/PythonEditorModal/PythonEditorModal.js +51 -0
  148. package/dist/components/composed/PythonEditorModal/PythonEditorModal.js.map +1 -0
  149. package/dist/components/composed/Sidebar/Sidebar.cjs +2 -0
  150. package/dist/components/composed/Sidebar/Sidebar.cjs.map +1 -0
  151. package/dist/components/composed/Sidebar/Sidebar.js +46 -0
  152. package/dist/components/composed/Sidebar/Sidebar.js.map +1 -0
  153. package/dist/components/composed/TdpSearch/TdpSearch.cjs +2 -0
  154. package/dist/components/composed/TdpSearch/TdpSearch.cjs.map +1 -0
  155. package/dist/components/composed/TdpSearch/TdpSearch.js +97 -0
  156. package/dist/components/composed/TdpSearch/TdpSearch.js.map +1 -0
  157. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +2 -0
  158. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -0
  159. package/dist/components/composed/TdpSearch/components/DefaultFilters.js +31 -0
  160. package/dist/components/composed/TdpSearch/components/DefaultFilters.js.map +1 -0
  161. package/dist/components/composed/TdpSearch/components/DefaultResults.cjs +2 -0
  162. package/dist/components/composed/TdpSearch/components/DefaultResults.cjs.map +1 -0
  163. package/dist/components/composed/TdpSearch/components/DefaultResults.js +107 -0
  164. package/dist/components/composed/TdpSearch/components/DefaultResults.js.map +1 -0
  165. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs +2 -0
  166. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs.map +1 -0
  167. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.js +32 -0
  168. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.js.map +1 -0
  169. package/dist/components/composed/TdpSearch/constants.cjs +2 -0
  170. package/dist/components/composed/TdpSearch/constants.cjs.map +1 -0
  171. package/dist/components/composed/TdpSearch/constants.js +7 -0
  172. package/dist/components/composed/TdpSearch/constants.js.map +1 -0
  173. package/dist/components/composed/TdpSearch/hooks/useSearch.cjs +2 -0
  174. package/dist/components/composed/TdpSearch/hooks/useSearch.cjs.map +1 -0
  175. package/dist/components/composed/TdpSearch/hooks/useSearch.js +52 -0
  176. package/dist/components/composed/TdpSearch/hooks/useSearch.js.map +1 -0
  177. package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.cjs +2 -0
  178. package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.cjs.map +1 -0
  179. package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.js +29 -0
  180. package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.js.map +1 -0
  181. package/dist/components/composed/TdpSearch/utils.cjs +2 -0
  182. package/dist/components/composed/TdpSearch/utils.cjs.map +1 -0
  183. package/dist/components/composed/TdpSearch/utils.js +15 -0
  184. package/dist/components/composed/TdpSearch/utils.js.map +1 -0
  185. package/dist/components/composed/tdp-link.cjs +2 -0
  186. package/dist/components/composed/tdp-link.cjs.map +1 -0
  187. package/dist/components/composed/tdp-link.js +84 -0
  188. package/dist/components/composed/tdp-link.js.map +1 -0
  189. package/dist/components/composed/tdp-url.cjs +2 -0
  190. package/dist/components/composed/tdp-url.cjs.map +1 -0
  191. package/dist/components/composed/tdp-url.js +76 -0
  192. package/dist/components/composed/tdp-url.js.map +1 -0
  193. package/dist/components/ui/accordion.cjs +2 -0
  194. package/dist/components/ui/accordion.cjs.map +1 -0
  195. package/dist/components/ui/accordion.js +83 -0
  196. package/dist/components/ui/accordion.js.map +1 -0
  197. package/dist/components/ui/alert-dialog.cjs +2 -0
  198. package/dist/components/ui/alert-dialog.cjs.map +1 -0
  199. package/dist/components/ui/alert-dialog.js +181 -0
  200. package/dist/components/ui/alert-dialog.js.map +1 -0
  201. package/dist/components/ui/alert.cjs +2 -0
  202. package/dist/components/ui/alert.cjs.map +1 -0
  203. package/dist/components/ui/alert.js +78 -0
  204. package/dist/components/ui/alert.js.map +1 -0
  205. package/dist/components/ui/aspect-ratio.cjs +2 -0
  206. package/dist/components/ui/aspect-ratio.cjs.map +1 -0
  207. package/dist/components/ui/aspect-ratio.js +11 -0
  208. package/dist/components/ui/aspect-ratio.js.map +1 -0
  209. package/dist/components/ui/avatar.cjs +2 -0
  210. package/dist/components/ui/avatar.cjs.map +1 -0
  211. package/dist/components/ui/avatar.js +107 -0
  212. package/dist/components/ui/avatar.js.map +1 -0
  213. package/dist/components/ui/badge.cjs +2 -0
  214. package/dist/components/ui/badge.cjs.map +1 -0
  215. package/dist/components/ui/badge.js +44 -0
  216. package/dist/components/ui/badge.js.map +1 -0
  217. package/dist/components/ui/breadcrumb.cjs +2 -0
  218. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  219. package/dist/components/ui/breadcrumb.js +118 -0
  220. package/dist/components/ui/breadcrumb.js.map +1 -0
  221. package/dist/components/ui/button-group.cjs +2 -0
  222. package/dist/components/ui/button-group.cjs.map +1 -0
  223. package/dist/components/ui/button-group.js +77 -0
  224. package/dist/components/ui/button-group.js.map +1 -0
  225. package/dist/components/ui/button.cjs +2 -0
  226. package/dist/components/ui/button.cjs.map +1 -0
  227. package/dist/components/ui/button.js +57 -0
  228. package/dist/components/ui/button.js.map +1 -0
  229. package/dist/components/ui/calendar.cjs +2 -0
  230. package/dist/components/ui/calendar.cjs.map +1 -0
  231. package/dist/components/ui/calendar.js +174 -0
  232. package/dist/components/ui/calendar.js.map +1 -0
  233. package/dist/components/ui/card.cjs +2 -0
  234. package/dist/components/ui/card.cjs.map +1 -0
  235. package/dist/components/ui/card.js +102 -0
  236. package/dist/components/ui/card.js.map +1 -0
  237. package/dist/components/ui/carousel.cjs +2 -0
  238. package/dist/components/ui/carousel.cjs.map +1 -0
  239. package/dist/components/ui/carousel.js +179 -0
  240. package/dist/components/ui/carousel.js.map +1 -0
  241. package/dist/components/ui/checkbox.cjs +2 -0
  242. package/dist/components/ui/checkbox.cjs.map +1 -0
  243. package/dist/components/ui/checkbox.js +35 -0
  244. package/dist/components/ui/checkbox.js.map +1 -0
  245. package/dist/components/ui/code-editor.cjs +2 -0
  246. package/dist/components/ui/code-editor.cjs.map +1 -0
  247. package/dist/components/ui/code-editor.js +103 -0
  248. package/dist/components/ui/code-editor.js.map +1 -0
  249. package/dist/components/ui/collapsible.cjs +2 -0
  250. package/dist/components/ui/collapsible.cjs.map +1 -0
  251. package/dist/components/ui/collapsible.js +35 -0
  252. package/dist/components/ui/collapsible.js.map +1 -0
  253. package/dist/components/ui/combobox.cjs +2 -0
  254. package/dist/components/ui/combobox.cjs.map +1 -0
  255. package/dist/components/ui/combobox.js +278 -0
  256. package/dist/components/ui/combobox.js.map +1 -0
  257. package/dist/components/ui/command.cjs +2 -0
  258. package/dist/components/ui/command.cjs.map +1 -0
  259. package/dist/components/ui/command.js +174 -0
  260. package/dist/components/ui/command.js.map +1 -0
  261. package/dist/components/ui/context-menu.cjs +2 -0
  262. package/dist/components/ui/context-menu.cjs.map +1 -0
  263. package/dist/components/ui/context-menu.js +236 -0
  264. package/dist/components/ui/context-menu.js.map +1 -0
  265. package/dist/components/ui/dialog.cjs +2 -0
  266. package/dist/components/ui/dialog.cjs.map +1 -0
  267. package/dist/components/ui/dialog.js +154 -0
  268. package/dist/components/ui/dialog.js.map +1 -0
  269. package/dist/components/ui/drawer.cjs +2 -0
  270. package/dist/components/ui/drawer.cjs.map +1 -0
  271. package/dist/components/ui/drawer.js +125 -0
  272. package/dist/components/ui/drawer.js.map +1 -0
  273. package/dist/components/ui/dropdown-menu.cjs +2 -0
  274. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  275. package/dist/components/ui/dropdown-menu.js +252 -0
  276. package/dist/components/ui/dropdown-menu.js.map +1 -0
  277. package/dist/components/ui/field.cjs +2 -0
  278. package/dist/components/ui/field.cjs.map +1 -0
  279. package/dist/components/ui/field.js +210 -0
  280. package/dist/components/ui/field.js.map +1 -0
  281. package/dist/components/ui/hover-card.cjs +2 -0
  282. package/dist/components/ui/hover-card.cjs.map +1 -0
  283. package/dist/components/ui/hover-card.js +39 -0
  284. package/dist/components/ui/hover-card.js.map +1 -0
  285. package/dist/components/ui/input-group.cjs +2 -0
  286. package/dist/components/ui/input-group.cjs.map +1 -0
  287. package/dist/components/ui/input-group.js +145 -0
  288. package/dist/components/ui/input-group.js.map +1 -0
  289. package/dist/components/ui/input-otp.cjs +2 -0
  290. package/dist/components/ui/input-otp.cjs.map +1 -0
  291. package/dist/components/ui/input-otp.js +82 -0
  292. package/dist/components/ui/input-otp.js.map +1 -0
  293. package/dist/components/ui/input.cjs +2 -0
  294. package/dist/components/ui/input.cjs.map +1 -0
  295. package/dist/components/ui/input.js +20 -0
  296. package/dist/components/ui/input.js.map +1 -0
  297. package/dist/components/ui/item.cjs +2 -0
  298. package/dist/components/ui/item.cjs.map +1 -0
  299. package/dist/components/ui/item.js +191 -0
  300. package/dist/components/ui/item.js.map +1 -0
  301. package/dist/components/ui/kbd.cjs +2 -0
  302. package/dist/components/ui/kbd.cjs.map +1 -0
  303. package/dist/components/ui/kbd.js +30 -0
  304. package/dist/components/ui/kbd.js.map +1 -0
  305. package/dist/components/ui/label.cjs +2 -0
  306. package/dist/components/ui/label.cjs.map +1 -0
  307. package/dist/components/ui/label.js +23 -0
  308. package/dist/components/ui/label.js.map +1 -0
  309. package/dist/components/ui/menubar.cjs +2 -0
  310. package/dist/components/ui/menubar.cjs.map +1 -0
  311. package/dist/components/ui/menubar.js +256 -0
  312. package/dist/components/ui/menubar.js.map +1 -0
  313. package/dist/components/ui/navigation-menu.cjs +2 -0
  314. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  315. package/dist/components/ui/navigation-menu.js +164 -0
  316. package/dist/components/ui/navigation-menu.js.map +1 -0
  317. package/dist/components/ui/radio-group.cjs +2 -0
  318. package/dist/components/ui/radio-group.cjs.map +1 -0
  319. package/dist/components/ui/radio-group.js +45 -0
  320. package/dist/components/ui/radio-group.js.map +1 -0
  321. package/dist/components/ui/resizable.cjs +2 -0
  322. package/dist/components/ui/resizable.cjs.map +1 -0
  323. package/dist/components/ui/resizable.js +46 -0
  324. package/dist/components/ui/resizable.js.map +1 -0
  325. package/dist/components/ui/scroll-area.cjs +2 -0
  326. package/dist/components/ui/scroll-area.cjs.map +1 -0
  327. package/dist/components/ui/scroll-area.js +60 -0
  328. package/dist/components/ui/scroll-area.js.map +1 -0
  329. package/dist/components/ui/select.cjs +2 -0
  330. package/dist/components/ui/select.cjs.map +1 -0
  331. package/dist/components/ui/select.js +184 -0
  332. package/dist/components/ui/select.js.map +1 -0
  333. package/dist/components/ui/separator.cjs +2 -0
  334. package/dist/components/ui/separator.cjs.map +1 -0
  335. package/dist/components/ui/separator.js +27 -0
  336. package/dist/components/ui/separator.js.map +1 -0
  337. package/dist/components/ui/sheet.cjs +2 -0
  338. package/dist/components/ui/sheet.cjs.map +1 -0
  339. package/dist/components/ui/sheet.js +137 -0
  340. package/dist/components/ui/sheet.js.map +1 -0
  341. package/dist/components/ui/sidebar.cjs +2 -0
  342. package/dist/components/ui/sidebar.cjs.map +1 -0
  343. package/dist/components/ui/sidebar.js +579 -0
  344. package/dist/components/ui/sidebar.js.map +1 -0
  345. package/dist/components/ui/skeleton.cjs +2 -0
  346. package/dist/components/ui/skeleton.cjs.map +1 -0
  347. package/dist/components/ui/skeleton.js +16 -0
  348. package/dist/components/ui/skeleton.js.map +1 -0
  349. package/dist/components/ui/slider.cjs +2 -0
  350. package/dist/components/ui/slider.cjs.map +1 -0
  351. package/dist/components/ui/slider.js +60 -0
  352. package/dist/components/ui/slider.js.map +1 -0
  353. package/dist/components/ui/sonner.cjs +2 -0
  354. package/dist/components/ui/sonner.cjs.map +1 -0
  355. package/dist/components/ui/sonner.js +37 -0
  356. package/dist/components/ui/sonner.js.map +1 -0
  357. package/dist/components/ui/spinner.cjs +2 -0
  358. package/dist/components/ui/spinner.cjs.map +1 -0
  359. package/dist/components/ui/spinner.js +10 -0
  360. package/dist/components/ui/spinner.js.map +1 -0
  361. package/dist/components/ui/switch.cjs +2 -0
  362. package/dist/components/ui/switch.cjs.map +1 -0
  363. package/dist/components/ui/switch.js +32 -0
  364. package/dist/components/ui/switch.js.map +1 -0
  365. package/dist/components/ui/table.cjs +2 -0
  366. package/dist/components/ui/table.cjs.map +1 -0
  367. package/dist/components/ui/table.js +115 -0
  368. package/dist/components/ui/table.js.map +1 -0
  369. package/dist/components/ui/tabs.cjs +2 -0
  370. package/dist/components/ui/tabs.cjs.map +1 -0
  371. package/dist/components/ui/tabs.js +91 -0
  372. package/dist/components/ui/tabs.js.map +1 -0
  373. package/dist/components/ui/tetrascience-icon.cjs +2 -0
  374. package/dist/components/ui/tetrascience-icon.cjs.map +1 -0
  375. package/dist/components/ui/tetrascience-icon.js +46 -0
  376. package/dist/components/ui/tetrascience-icon.js.map +1 -0
  377. package/dist/components/ui/textarea.cjs +2 -0
  378. package/dist/components/ui/textarea.cjs.map +1 -0
  379. package/dist/components/ui/textarea.js +19 -0
  380. package/dist/components/ui/textarea.js.map +1 -0
  381. package/dist/components/ui/toggle-group.cjs +2 -0
  382. package/dist/components/ui/toggle-group.cjs.map +1 -0
  383. package/dist/components/ui/toggle-group.js +77 -0
  384. package/dist/components/ui/toggle-group.js.map +1 -0
  385. package/dist/components/ui/toggle.cjs +2 -0
  386. package/dist/components/ui/toggle.cjs.map +1 -0
  387. package/dist/components/ui/toggle.js +44 -0
  388. package/dist/components/ui/toggle.js.map +1 -0
  389. package/dist/components/ui/tooltip.cjs +2 -0
  390. package/dist/components/ui/tooltip.cjs.map +1 -0
  391. package/dist/components/ui/tooltip.js +56 -0
  392. package/dist/components/ui/tooltip.js.map +1 -0
  393. package/dist/hooks/use-code-editor-theme.cjs +2 -0
  394. package/dist/hooks/use-code-editor-theme.cjs.map +1 -0
  395. package/dist/hooks/use-code-editor-theme.js +31 -0
  396. package/dist/hooks/use-code-editor-theme.js.map +1 -0
  397. package/dist/hooks/use-is-dark.cjs +2 -0
  398. package/dist/hooks/use-is-dark.cjs.map +1 -0
  399. package/dist/hooks/use-is-dark.js +18 -0
  400. package/dist/hooks/use-is-dark.js.map +1 -0
  401. package/dist/hooks/use-mobile.cjs +2 -0
  402. package/dist/hooks/use-mobile.cjs.map +1 -0
  403. package/dist/hooks/use-mobile.js +15 -0
  404. package/dist/hooks/use-mobile.js.map +1 -0
  405. package/dist/hooks/use-plotly-theme.cjs +2 -0
  406. package/dist/hooks/use-plotly-theme.cjs.map +1 -0
  407. package/dist/hooks/use-plotly-theme.js +33 -0
  408. package/dist/hooks/use-plotly-theme.js.map +1 -0
  409. package/dist/index.cjs +1 -10
  410. package/dist/index.cjs.map +1 -1
  411. package/dist/index.js +389 -9435
  412. package/dist/index.js.map +1 -1
  413. package/dist/lib/utils.cjs +2 -0
  414. package/dist/lib/utils.cjs.map +1 -0
  415. package/dist/lib/utils.js +9 -0
  416. package/dist/lib/utils.js.map +1 -0
  417. package/dist/providers/athena.cjs +1 -1
  418. package/dist/providers/athena.cjs.map +1 -1
  419. package/dist/providers/athena.js +9 -157
  420. package/dist/providers/athena.js.map +1 -1
  421. package/dist/providers/databricks.cjs +1 -1
  422. package/dist/providers/databricks.cjs.map +1 -1
  423. package/dist/providers/databricks.js +9 -82
  424. package/dist/providers/databricks.js.map +1 -1
  425. package/dist/providers/snowflake.cjs +1 -1
  426. package/dist/providers/snowflake.cjs.map +1 -1
  427. package/dist/providers/snowflake.js +8 -118
  428. package/dist/providers/snowflake.js.map +1 -1
  429. package/dist/server/auth/JwtTokenManager.cjs +2 -0
  430. package/dist/server/auth/JwtTokenManager.cjs.map +1 -0
  431. package/dist/server/auth/JwtTokenManager.js +134 -0
  432. package/dist/server/auth/JwtTokenManager.js.map +1 -0
  433. package/dist/server/providers/AthenaProvider.cjs +2 -0
  434. package/dist/server/providers/AthenaProvider.cjs.map +1 -0
  435. package/dist/server/providers/AthenaProvider.js +154 -0
  436. package/dist/server/providers/AthenaProvider.js.map +1 -0
  437. package/dist/server/providers/DatabricksProvider.cjs +2 -0
  438. package/dist/server/providers/DatabricksProvider.cjs.map +1 -0
  439. package/dist/server/providers/DatabricksProvider.js +79 -0
  440. package/dist/server/providers/DatabricksProvider.js.map +1 -0
  441. package/dist/server/providers/SnowflakeProvider.cjs +2 -0
  442. package/dist/server/providers/SnowflakeProvider.cjs.map +1 -0
  443. package/dist/server/providers/SnowflakeProvider.js +116 -0
  444. package/dist/server/providers/SnowflakeProvider.js.map +1 -0
  445. package/dist/server/providers/buildProvider.cjs +2 -0
  446. package/dist/server/providers/buildProvider.cjs.map +1 -0
  447. package/dist/server/providers/buildProvider.js +22 -0
  448. package/dist/server/providers/buildProvider.js.map +1 -0
  449. package/dist/server/providers/exceptions.cjs +2 -0
  450. package/dist/server/providers/exceptions.cjs.map +1 -0
  451. package/dist/{exceptions-jCQ6h5C8.js → server/providers/exceptions.js} +11 -11
  452. package/dist/server/providers/exceptions.js.map +1 -0
  453. package/dist/server/providers/getProviderConfigurations.cjs +2 -0
  454. package/dist/server/providers/getProviderConfigurations.cjs.map +1 -0
  455. package/dist/server/providers/getProviderConfigurations.js +78 -0
  456. package/dist/server/providers/getProviderConfigurations.js.map +1 -0
  457. package/dist/server/providers/providerDiscovery.cjs +2 -0
  458. package/dist/server/providers/providerDiscovery.cjs.map +1 -0
  459. package/dist/server/providers/providerDiscovery.js +28 -0
  460. package/dist/server/providers/providerDiscovery.js.map +1 -0
  461. package/dist/server.cjs +1 -1
  462. package/dist/server.cjs.map +1 -1
  463. package/dist/server.js +27 -262
  464. package/dist/server.js.map +1 -1
  465. package/dist/utils/colors.cjs +2 -0
  466. package/dist/utils/colors.cjs.map +1 -0
  467. package/dist/utils/colors.js +98 -0
  468. package/dist/utils/colors.js.map +1 -0
  469. package/package.json +4 -1
  470. package/dist/exceptions-DN25pCDi.cjs +0 -2
  471. package/dist/exceptions-DN25pCDi.cjs.map +0 -1
  472. package/dist/exceptions-jCQ6h5C8.js.map +0 -1
@@ -0,0 +1,179 @@
1
+ import { jsx as n, jsxs as x } from "react/jsx-runtime";
2
+ import k from "embla-carousel-react";
3
+ import { ChevronRightIcon as z, ChevronLeftIcon as g } from "lucide-react";
4
+ import * as l from "react";
5
+ import { Button as v } from "./button.js";
6
+ import { cn as d } from "../../lib/utils.js";
7
+ const p = l.createContext(null);
8
+ function m() {
9
+ const o = l.useContext(p);
10
+ if (!o)
11
+ throw new Error("useCarousel must be used within a <Carousel />");
12
+ return o;
13
+ }
14
+ function K({
15
+ orientation: o = "horizontal",
16
+ opts: t,
17
+ setApi: r,
18
+ plugins: s,
19
+ className: c,
20
+ children: i,
21
+ ...u
22
+ }) {
23
+ const [N, e] = k(
24
+ {
25
+ ...t,
26
+ axis: o === "horizontal" ? "x" : "y"
27
+ },
28
+ s
29
+ ), [b, S] = l.useState(!1), [w, y] = l.useState(!1), f = l.useCallback((a) => {
30
+ a && (S(a.canScrollPrev()), y(a.canScrollNext()));
31
+ }, []), h = l.useCallback(() => {
32
+ e?.scrollPrev();
33
+ }, [e]), C = l.useCallback(() => {
34
+ e?.scrollNext();
35
+ }, [e]), P = l.useCallback(
36
+ (a) => {
37
+ a.key === "ArrowLeft" ? (a.preventDefault(), h()) : a.key === "ArrowRight" && (a.preventDefault(), C());
38
+ },
39
+ [h, C]
40
+ );
41
+ return l.useEffect(() => {
42
+ !e || !r || r(e);
43
+ }, [e, r]), l.useEffect(() => {
44
+ if (e)
45
+ return f(e), e.on("reInit", f), e.on("select", f), () => {
46
+ e?.off("select", f);
47
+ };
48
+ }, [e, f]), /* @__PURE__ */ n(
49
+ p.Provider,
50
+ {
51
+ value: {
52
+ carouselRef: N,
53
+ api: e,
54
+ opts: t,
55
+ orientation: o || (t?.axis === "y" ? "vertical" : "horizontal"),
56
+ scrollPrev: h,
57
+ scrollNext: C,
58
+ canScrollPrev: b,
59
+ canScrollNext: w
60
+ },
61
+ children: /* @__PURE__ */ n(
62
+ "div",
63
+ {
64
+ onKeyDownCapture: P,
65
+ className: d("relative", c),
66
+ role: "region",
67
+ "aria-roledescription": "carousel",
68
+ "data-slot": "carousel",
69
+ ...u,
70
+ children: i
71
+ }
72
+ )
73
+ }
74
+ );
75
+ }
76
+ function L({ className: o, ...t }) {
77
+ const { carouselRef: r, orientation: s } = m();
78
+ return /* @__PURE__ */ n(
79
+ "div",
80
+ {
81
+ ref: r,
82
+ className: "overflow-hidden",
83
+ "data-slot": "carousel-content",
84
+ children: /* @__PURE__ */ n(
85
+ "div",
86
+ {
87
+ className: d(
88
+ "flex",
89
+ s === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
90
+ o
91
+ ),
92
+ ...t
93
+ }
94
+ )
95
+ }
96
+ );
97
+ }
98
+ function B({ className: o, ...t }) {
99
+ const { orientation: r } = m();
100
+ return /* @__PURE__ */ n(
101
+ "div",
102
+ {
103
+ role: "group",
104
+ "aria-roledescription": "slide",
105
+ "data-slot": "carousel-item",
106
+ className: d(
107
+ "min-w-0 shrink-0 grow-0 basis-full",
108
+ r === "horizontal" ? "pl-4" : "pt-4",
109
+ o
110
+ ),
111
+ ...t
112
+ }
113
+ );
114
+ }
115
+ function q({
116
+ className: o,
117
+ variant: t = "outline",
118
+ size: r = "icon-sm",
119
+ ...s
120
+ }) {
121
+ const { orientation: c, scrollPrev: i, canScrollPrev: u } = m();
122
+ return /* @__PURE__ */ x(
123
+ v,
124
+ {
125
+ "data-slot": "carousel-previous",
126
+ variant: t,
127
+ size: r,
128
+ className: d(
129
+ "absolute touch-manipulation rounded-full",
130
+ c === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
131
+ o
132
+ ),
133
+ disabled: !u,
134
+ onClick: i,
135
+ ...s,
136
+ children: [
137
+ /* @__PURE__ */ n(g, {}),
138
+ /* @__PURE__ */ n("span", { className: "sr-only", children: "Previous slide" })
139
+ ]
140
+ }
141
+ );
142
+ }
143
+ function A({
144
+ className: o,
145
+ variant: t = "outline",
146
+ size: r = "icon-sm",
147
+ ...s
148
+ }) {
149
+ const { orientation: c, scrollNext: i, canScrollNext: u } = m();
150
+ return /* @__PURE__ */ x(
151
+ v,
152
+ {
153
+ "data-slot": "carousel-next",
154
+ variant: t,
155
+ size: r,
156
+ className: d(
157
+ "absolute touch-manipulation rounded-full",
158
+ c === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
159
+ o
160
+ ),
161
+ disabled: !u,
162
+ onClick: i,
163
+ ...s,
164
+ children: [
165
+ /* @__PURE__ */ n(z, {}),
166
+ /* @__PURE__ */ n("span", { className: "sr-only", children: "Next slide" })
167
+ ]
168
+ }
169
+ );
170
+ }
171
+ export {
172
+ K as Carousel,
173
+ L as CarouselContent,
174
+ B as CarouselItem,
175
+ A as CarouselNext,
176
+ q as CarouselPrevious,
177
+ m as useCarousel
178
+ };
179
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["\"use client\"\n\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n useCarousel,\n}\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ChevronLeftIcon","CarouselNext","ChevronRightIcon"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("lucide-react"),r=require("radix-ui"),c=require("../../lib/utils.cjs");function d({className:i,...a}){return e.jsx(r.Checkbox.Root,{"data-slot":"checkbox",className:c.cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",i),...a,children:e.jsx(r.Checkbox.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:e.jsx(t.CheckIcon,{})})})}exports.Checkbox=d;
2
+ //# sourceMappingURL=checkbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.cjs","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import { CheckIcon } from \"lucide-react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"names":["Checkbox","className","props","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":"sMAOA,SAASA,EAAS,CAChB,UAAAC,EACA,GAAGC,CACL,EAAwD,CACtD,OACEC,EAAAA,IAACC,EAAAA,SAAkB,KAAlB,CACC,YAAU,WACV,UAAWC,EAAAA,GACT,oqBACAJ,CAAA,EAED,GAAGC,EAEJ,SAAAC,EAAAA,IAACC,EAAAA,SAAkB,UAAlB,CACC,YAAU,qBACV,UAAU,0EAEV,SAAAD,EAAAA,IAACG,EAAAA,UAAA,CAAA,CAAA,CACD,CAAA,CACF,CAAA,CAGN"}
@@ -0,0 +1,35 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { CheckIcon as t } from "lucide-react";
3
+ import { Checkbox as e } from "radix-ui";
4
+ import { cn as o } from "../../lib/utils.js";
5
+ function l({
6
+ className: i,
7
+ ...a
8
+ }) {
9
+ return /* @__PURE__ */ r(
10
+ e.Root,
11
+ {
12
+ "data-slot": "checkbox",
13
+ className: o(
14
+ "peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
15
+ i
16
+ ),
17
+ ...a,
18
+ children: /* @__PURE__ */ r(
19
+ e.Indicator,
20
+ {
21
+ "data-slot": "checkbox-indicator",
22
+ className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
23
+ children: /* @__PURE__ */ r(
24
+ t,
25
+ {}
26
+ )
27
+ }
28
+ )
29
+ }
30
+ );
31
+ }
32
+ export {
33
+ l as Checkbox
34
+ };
35
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sources":["../../../src/components/ui/checkbox.tsx"],"sourcesContent":["import { CheckIcon } from \"lucide-react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"names":["Checkbox","className","props","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;AAOA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAwD;AACtD,SACE,gBAAAC;AAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACC,EAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,UAAA,gBAAAD;AAAA,YAACG;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QACD;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("@monaco-editor/react"),h=require("lucide-react"),i=require("react"),m=require("./button.cjs"),o=require("./tooltip.cjs"),M=require("../../hooks/use-code-editor-theme.cjs"),N=require("../../lib/utils.cjs"),R={light:"vs",dark:"vs-dark"},w=({value:l,onChange:p,language:f="python",theme:c,height:x=400,width:j="100%",options:T={},onCopy:n,onLaunch:r,disabled:t=!1})=>{const C=M.useCodeEditorTheme(),y=i.useRef(null),[E,a]=i.useState("Copy"),[S,u]=i.useState("Launch"),d=1e3,g=i.useCallback(s=>{n&&!t&&(n(s),a("Copied"),setTimeout(()=>{a("Copy")},d))},[n,t]),v=i.useCallback(s=>{r&&!t&&(r(s),u("Launched"),setTimeout(()=>{u("Launch")},d))},[r,t]),b=async s=>{y.current=s},q={minimap:{enabled:!1},scrollBeyondLastLine:!1,lineNumbers:"on",padding:{top:12,bottom:12,left:20,right:20},scrollbar:{vertical:"hidden",verticalScrollbarSize:0},readOnly:t,...T};return e.jsxs("div",{className:N.cn("rounded-2xl overflow-hidden relative border",t&&"opacity-60 cursor-not-allowed"),children:[e.jsxs("div",{className:"ml-auto flex gap-2 px-4 py-2 absolute top-0 right-0 z-[1]",children:[n&&e.jsxs(o.Tooltip,{children:[e.jsx(o.TooltipTrigger,{asChild:!0,children:e.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:e.jsx(m.Button,{className:"w-full h-full",variant:"outline",size:"icon-sm",onClick:()=>g(l),disabled:t,children:e.jsx(h.Copy,{})})})}),e.jsx(o.TooltipContent,{side:"bottom",children:E})]}),r&&e.jsxs(o.Tooltip,{children:[e.jsx(o.TooltipTrigger,{asChild:!0,children:e.jsx("div",{className:"w-8 h-8 flex items-center justify-center",children:e.jsx(m.Button,{className:"w-full h-full",variant:"outline",size:"icon-sm",onClick:()=>v(l),disabled:t,children:e.jsx(h.Rocket,{})})})}),e.jsx(o.TooltipContent,{side:"bottom",children:S})]})]}),e.jsx(k,{value:l,onChange:p,language:f,theme:c?R[c]:C.monacoTheme,height:x,width:j,options:q,beforeMount:b})]})};exports.CodeEditor=w;
2
+ //# sourceMappingURL=code-editor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-editor.cjs","sources":["../../../src/components/ui/code-editor.tsx"],"sourcesContent":["import MonacoEditor from \"@monaco-editor/react\";\nimport { Copy, Rocket } from \"lucide-react\";\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport type { Monaco, OnChange } from \"@monaco-editor/react\";\nimport type { editor } from \"monaco-editor\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { useCodeEditorTheme } from \"@/hooks/use-code-editor-theme\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface CodeEditorProps {\n value: string;\n onChange: OnChange;\n language?: string;\n theme?: \"light\" | \"dark\";\n height?: string | number;\n width?: string | number;\n options?: Record<string, unknown>;\n label?: string;\n onCopy?: (code: string) => void;\n onLaunch?: (code: string) => void;\n disabled?: boolean;\n}\n\n// Theme mapping for explicit theme prop overrides\nconst THEME_MAP = {\n light: \"vs\" as const,\n dark: \"vs-dark\" as const,\n};\n\nconst CodeEditor: React.FC<CodeEditorProps> = ({\n value,\n onChange,\n language = \"python\",\n theme: themeProp,\n height = 400,\n width = \"100%\",\n options = {},\n onCopy,\n onLaunch,\n disabled = false,\n}) => {\n const editorTheme = useCodeEditorTheme();\n\n const monacoRef = useRef<Monaco | null>(null);\n const [copyState, setCopyState] = useState<\"Copy\" | \"Copied\">(\"Copy\");\n const [launchState, setLaunchState] = useState<\"Launch\" | \"Launched\">(\n \"Launch\"\n );\n /** Feedback reset delay in milliseconds */\n const FEEDBACK_RESET_DELAY_MS = 1000;\n\n const handleCopy = useCallback(\n (code: string) => {\n if (onCopy && !disabled) {\n onCopy(code);\n setCopyState(\"Copied\");\n setTimeout(() => {\n setCopyState(\"Copy\");\n }, FEEDBACK_RESET_DELAY_MS);\n }\n },\n [onCopy, disabled]\n );\n\n const handleLaunch = useCallback(\n (code: string) => {\n if (onLaunch && !disabled) {\n onLaunch(code);\n setLaunchState(\"Launched\");\n setTimeout(() => {\n setLaunchState(\"Launch\");\n }, FEEDBACK_RESET_DELAY_MS);\n }\n },\n [onLaunch, disabled]\n );\n\n const handleEditorWillMount = async (monaco: Monaco) => {\n monacoRef.current = monaco;\n };\n\n const defaultOptions = {\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n lineNumbers: \"on\" as editor.LineNumbersType,\n padding: { top: 12, bottom: 12, left: 20, right: 20 },\n scrollbar: {\n vertical: \"hidden\" as const,\n verticalScrollbarSize: 0,\n },\n readOnly: disabled,\n ...options,\n };\n\n\n\n return (\n <div className={cn(\"rounded-2xl overflow-hidden relative border\", disabled && \"opacity-60 cursor-not-allowed\")}>\n <div className=\"ml-auto flex gap-2 px-4 py-2 absolute top-0 right-0 z-[1]\">\n {onCopy && (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"w-8 h-8 flex items-center justify-center\">\n <Button\n className=\"w-full h-full\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => handleCopy(value)}\n disabled={disabled}\n >\n <Copy />\n </Button>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {copyState}\n </TooltipContent>\n </Tooltip>\n )}\n {onLaunch && (\n <Tooltip >\n <TooltipTrigger asChild>\n <div className=\"w-8 h-8 flex items-center justify-center\">\n <Button\n className=\"w-full h-full\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => handleLaunch(value)}\n disabled={disabled}\n >\n <Rocket />\n </Button>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {launchState}\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n <MonacoEditor\n value={value}\n onChange={onChange}\n language={language}\n theme={themeProp ? THEME_MAP[themeProp] : editorTheme.monacoTheme}\n height={height}\n width={width}\n options={defaultOptions}\n beforeMount={handleEditorWillMount}\n />\n </div>\n );\n};\n\nexport { CodeEditor };\nexport default CodeEditor;\n"],"names":["THEME_MAP","CodeEditor","value","onChange","language","themeProp","height","width","options","onCopy","onLaunch","disabled","editorTheme","useCodeEditorTheme","monacoRef","useRef","copyState","setCopyState","useState","launchState","setLaunchState","FEEDBACK_RESET_DELAY_MS","handleCopy","useCallback","code","handleLaunch","handleEditorWillMount","monaco","defaultOptions","cn","jsxs","Tooltip","jsx","TooltipTrigger","Button","Copy","TooltipContent","Rocket","MonacoEditor"],"mappings":"6UA2BMA,EAAY,CAChB,MAAO,KACP,KAAM,SACR,EAEMC,EAAwC,CAAC,CAC7C,MAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,SACX,MAAOC,EACP,OAAAC,EAAS,IACT,MAAAC,EAAQ,OACR,QAAAC,EAAU,CAAA,EACV,OAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,EACb,IAAM,CACJ,MAAMC,EAAcC,EAAAA,mBAAA,EAEdC,EAAYC,EAAAA,OAAsB,IAAI,EACtC,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAA4B,MAAM,EAC9D,CAACC,EAAaC,CAAc,EAAIF,EAAAA,SACpC,QAAA,EAGIG,EAA0B,IAE1BC,EAAaC,EAAAA,YAChBC,GAAiB,CACZf,GAAU,CAACE,IACbF,EAAOe,CAAI,EACXP,EAAa,QAAQ,EACrB,WAAW,IAAM,CACfA,EAAa,MAAM,CACrB,EAAGI,CAAuB,EAE9B,EACA,CAACZ,EAAQE,CAAQ,CAAA,EAGbc,EAAeF,EAAAA,YAClBC,GAAiB,CACZd,GAAY,CAACC,IACfD,EAASc,CAAI,EACbJ,EAAe,UAAU,EACzB,WAAW,IAAM,CACfA,EAAe,QAAQ,CACzB,EAAGC,CAAuB,EAE9B,EACA,CAACX,EAAUC,CAAQ,CAAA,EAGfe,EAAwB,MAAOC,GAAmB,CACtDb,EAAU,QAAUa,CACtB,EAEMC,EAAiB,CACrB,QAAS,CAAE,QAAS,EAAA,EACpB,qBAAsB,GACtB,YAAa,KACb,QAAS,CAAE,IAAK,GAAI,OAAQ,GAAI,KAAM,GAAI,MAAO,EAAA,EACjD,UAAW,CACT,SAAU,SACV,sBAAuB,CAAA,EAEzB,SAAUjB,EACV,GAAGH,CAAA,EAKL,cACG,MAAA,CAAI,UAAWqB,EAAAA,GAAG,8CAA+ClB,GAAY,+BAA+B,EAC3G,SAAA,CAAAmB,EAAAA,KAAC,MAAA,CAAI,UAAU,4DACZ,SAAA,CAAArB,UACEsB,UAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,gBAAe,QAAO,GACrB,SAAAD,MAAC,MAAA,CAAI,UAAU,2CACb,SAAAA,EAAAA,IAACE,EAAAA,OAAA,CACC,UAAU,gBACV,QAAQ,UACR,KAAK,UACL,QAAS,IAAMZ,EAAWpB,CAAK,EAC/B,SAAAS,EAEA,eAACwB,EAAAA,KAAA,CAAA,CAAK,CAAA,CAAA,EAEV,CAAA,CACF,EACAH,EAAAA,IAACI,EAAAA,eAAA,CAAe,KAAK,SAClB,SAAApB,CAAA,CACH,CAAA,EACF,EAEDN,UACEqB,UAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAAA,gBAAe,QAAO,GACrB,SAAAD,MAAC,MAAA,CAAI,UAAU,2CACb,SAAAA,EAAAA,IAACE,EAAAA,OAAA,CACC,UAAU,gBACV,QAAQ,UACR,KAAK,UACL,QAAS,IAAMT,EAAavB,CAAK,EACjC,SAAAS,EAEA,eAAC0B,EAAAA,OAAA,CAAA,CAAO,CAAA,CAAA,EAEZ,CAAA,CACF,EACAL,EAAAA,IAACI,EAAAA,eAAA,CAAe,KAAK,SAClB,SAAAjB,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EAEJ,EACAa,EAAAA,IAACM,EAAA,CACC,MAAApC,EACA,SAAAC,EACA,SAAAC,EACA,MAAOC,EAAYL,EAAUK,CAAS,EAAIO,EAAY,YACtD,OAAAN,EACA,MAAAC,EACA,QAASqB,EACT,YAAaF,CAAA,CAAA,CACf,EACF,CAEJ"}
@@ -0,0 +1,103 @@
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import j from "@monaco-editor/react";
3
+ import { Copy as z, Rocket as R } from "lucide-react";
4
+ import { useRef as _, useState as d, useCallback as h } from "react";
5
+ import { Button as u } from "./button.js";
6
+ import { Tooltip as f, TooltipTrigger as p, TooltipContent as C } from "./tooltip.js";
7
+ import { useCodeEditorTheme as A } from "../../hooks/use-code-editor-theme.js";
8
+ import { cn as B } from "../../lib/utils.js";
9
+ const D = {
10
+ light: "vs",
11
+ dark: "vs-dark"
12
+ }, I = ({
13
+ value: n,
14
+ onChange: y,
15
+ language: E = "python",
16
+ theme: c,
17
+ height: T = 400,
18
+ width: v = "100%",
19
+ options: S = {},
20
+ onCopy: r,
21
+ onLaunch: i,
22
+ disabled: t = !1
23
+ }) => {
24
+ const x = A(), g = _(null), [N, s] = d("Copy"), [k, a] = d(
25
+ "Launch"
26
+ ), m = 1e3, w = h(
27
+ (o) => {
28
+ r && !t && (r(o), s("Copied"), setTimeout(() => {
29
+ s("Copy");
30
+ }, m));
31
+ },
32
+ [r, t]
33
+ ), M = h(
34
+ (o) => {
35
+ i && !t && (i(o), a("Launched"), setTimeout(() => {
36
+ a("Launch");
37
+ }, m));
38
+ },
39
+ [i, t]
40
+ ), L = async (o) => {
41
+ g.current = o;
42
+ }, b = {
43
+ minimap: { enabled: !1 },
44
+ scrollBeyondLastLine: !1,
45
+ lineNumbers: "on",
46
+ padding: { top: 12, bottom: 12, left: 20, right: 20 },
47
+ scrollbar: {
48
+ vertical: "hidden",
49
+ verticalScrollbarSize: 0
50
+ },
51
+ readOnly: t,
52
+ ...S
53
+ };
54
+ return /* @__PURE__ */ l("div", { className: B("rounded-2xl overflow-hidden relative border", t && "opacity-60 cursor-not-allowed"), children: [
55
+ /* @__PURE__ */ l("div", { className: "ml-auto flex gap-2 px-4 py-2 absolute top-0 right-0 z-[1]", children: [
56
+ r && /* @__PURE__ */ l(f, { children: [
57
+ /* @__PURE__ */ e(p, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "w-8 h-8 flex items-center justify-center", children: /* @__PURE__ */ e(
58
+ u,
59
+ {
60
+ className: "w-full h-full",
61
+ variant: "outline",
62
+ size: "icon-sm",
63
+ onClick: () => w(n),
64
+ disabled: t,
65
+ children: /* @__PURE__ */ e(z, {})
66
+ }
67
+ ) }) }),
68
+ /* @__PURE__ */ e(C, { side: "bottom", children: N })
69
+ ] }),
70
+ i && /* @__PURE__ */ l(f, { children: [
71
+ /* @__PURE__ */ e(p, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "w-8 h-8 flex items-center justify-center", children: /* @__PURE__ */ e(
72
+ u,
73
+ {
74
+ className: "w-full h-full",
75
+ variant: "outline",
76
+ size: "icon-sm",
77
+ onClick: () => M(n),
78
+ disabled: t,
79
+ children: /* @__PURE__ */ e(R, {})
80
+ }
81
+ ) }) }),
82
+ /* @__PURE__ */ e(C, { side: "bottom", children: k })
83
+ ] })
84
+ ] }),
85
+ /* @__PURE__ */ e(
86
+ j,
87
+ {
88
+ value: n,
89
+ onChange: y,
90
+ language: E,
91
+ theme: c ? D[c] : x.monacoTheme,
92
+ height: T,
93
+ width: v,
94
+ options: b,
95
+ beforeMount: L
96
+ }
97
+ )
98
+ ] });
99
+ };
100
+ export {
101
+ I as CodeEditor
102
+ };
103
+ //# sourceMappingURL=code-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-editor.js","sources":["../../../src/components/ui/code-editor.tsx"],"sourcesContent":["import MonacoEditor from \"@monaco-editor/react\";\nimport { Copy, Rocket } from \"lucide-react\";\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport type { Monaco, OnChange } from \"@monaco-editor/react\";\nimport type { editor } from \"monaco-editor\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/ui/tooltip\";\nimport { useCodeEditorTheme } from \"@/hooks/use-code-editor-theme\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface CodeEditorProps {\n value: string;\n onChange: OnChange;\n language?: string;\n theme?: \"light\" | \"dark\";\n height?: string | number;\n width?: string | number;\n options?: Record<string, unknown>;\n label?: string;\n onCopy?: (code: string) => void;\n onLaunch?: (code: string) => void;\n disabled?: boolean;\n}\n\n// Theme mapping for explicit theme prop overrides\nconst THEME_MAP = {\n light: \"vs\" as const,\n dark: \"vs-dark\" as const,\n};\n\nconst CodeEditor: React.FC<CodeEditorProps> = ({\n value,\n onChange,\n language = \"python\",\n theme: themeProp,\n height = 400,\n width = \"100%\",\n options = {},\n onCopy,\n onLaunch,\n disabled = false,\n}) => {\n const editorTheme = useCodeEditorTheme();\n\n const monacoRef = useRef<Monaco | null>(null);\n const [copyState, setCopyState] = useState<\"Copy\" | \"Copied\">(\"Copy\");\n const [launchState, setLaunchState] = useState<\"Launch\" | \"Launched\">(\n \"Launch\"\n );\n /** Feedback reset delay in milliseconds */\n const FEEDBACK_RESET_DELAY_MS = 1000;\n\n const handleCopy = useCallback(\n (code: string) => {\n if (onCopy && !disabled) {\n onCopy(code);\n setCopyState(\"Copied\");\n setTimeout(() => {\n setCopyState(\"Copy\");\n }, FEEDBACK_RESET_DELAY_MS);\n }\n },\n [onCopy, disabled]\n );\n\n const handleLaunch = useCallback(\n (code: string) => {\n if (onLaunch && !disabled) {\n onLaunch(code);\n setLaunchState(\"Launched\");\n setTimeout(() => {\n setLaunchState(\"Launch\");\n }, FEEDBACK_RESET_DELAY_MS);\n }\n },\n [onLaunch, disabled]\n );\n\n const handleEditorWillMount = async (monaco: Monaco) => {\n monacoRef.current = monaco;\n };\n\n const defaultOptions = {\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n lineNumbers: \"on\" as editor.LineNumbersType,\n padding: { top: 12, bottom: 12, left: 20, right: 20 },\n scrollbar: {\n vertical: \"hidden\" as const,\n verticalScrollbarSize: 0,\n },\n readOnly: disabled,\n ...options,\n };\n\n\n\n return (\n <div className={cn(\"rounded-2xl overflow-hidden relative border\", disabled && \"opacity-60 cursor-not-allowed\")}>\n <div className=\"ml-auto flex gap-2 px-4 py-2 absolute top-0 right-0 z-[1]\">\n {onCopy && (\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"w-8 h-8 flex items-center justify-center\">\n <Button\n className=\"w-full h-full\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => handleCopy(value)}\n disabled={disabled}\n >\n <Copy />\n </Button>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {copyState}\n </TooltipContent>\n </Tooltip>\n )}\n {onLaunch && (\n <Tooltip >\n <TooltipTrigger asChild>\n <div className=\"w-8 h-8 flex items-center justify-center\">\n <Button\n className=\"w-full h-full\"\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => handleLaunch(value)}\n disabled={disabled}\n >\n <Rocket />\n </Button>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {launchState}\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n <MonacoEditor\n value={value}\n onChange={onChange}\n language={language}\n theme={themeProp ? THEME_MAP[themeProp] : editorTheme.monacoTheme}\n height={height}\n width={width}\n options={defaultOptions}\n beforeMount={handleEditorWillMount}\n />\n </div>\n );\n};\n\nexport { CodeEditor };\nexport default CodeEditor;\n"],"names":["THEME_MAP","CodeEditor","value","onChange","language","themeProp","height","width","options","onCopy","onLaunch","disabled","editorTheme","useCodeEditorTheme","monacoRef","useRef","copyState","setCopyState","useState","launchState","setLaunchState","FEEDBACK_RESET_DELAY_MS","handleCopy","useCallback","code","handleLaunch","handleEditorWillMount","monaco","defaultOptions","cn","jsxs","Tooltip","jsx","TooltipTrigger","Button","Copy","TooltipContent","Rocket","MonacoEditor"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("radix-ui");function t({...l}){return e.jsx(o.Collapsible.Root,{"data-slot":"collapsible",...l})}function i({...l}){return e.jsx(o.Collapsible.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...l})}function s({...l}){return e.jsx(o.Collapsible.CollapsibleContent,{"data-slot":"collapsible-content",...l})}exports.Collapsible=t;exports.CollapsibleContent=s;exports.CollapsibleTrigger=i;
2
+ //# sourceMappingURL=collapsible.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.cjs","sources":["../../../src/components/ui/collapsible.tsx"],"sourcesContent":["\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\"\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"names":["Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","jsx","CollapsibleContent"],"mappings":"2IAIA,SAASA,EAAY,CACnB,GAAGC,CACL,EAA2D,CACzD,aAAQC,EAAAA,YAAqB,KAArB,CAA0B,YAAU,cAAe,GAAGD,EAAO,CACvE,CAEA,SAASE,EAAmB,CAC1B,GAAGF,CACL,EAAyE,CACvE,OACEG,EAAAA,IAACF,EAAAA,YAAqB,mBAArB,CACC,YAAU,sBACT,GAAGD,CAAA,CAAA,CAGV,CAEA,SAASI,EAAmB,CAC1B,GAAGJ,CACL,EAAyE,CACvE,OACEG,EAAAA,IAACF,EAAAA,YAAqB,mBAArB,CACC,YAAU,sBACT,GAAGD,CAAA,CAAA,CAGV"}
@@ -0,0 +1,35 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { Collapsible as t } from "radix-ui";
3
+ function a({
4
+ ...l
5
+ }) {
6
+ return /* @__PURE__ */ o(t.Root, { "data-slot": "collapsible", ...l });
7
+ }
8
+ function r({
9
+ ...l
10
+ }) {
11
+ return /* @__PURE__ */ o(
12
+ t.CollapsibleTrigger,
13
+ {
14
+ "data-slot": "collapsible-trigger",
15
+ ...l
16
+ }
17
+ );
18
+ }
19
+ function n({
20
+ ...l
21
+ }) {
22
+ return /* @__PURE__ */ o(
23
+ t.CollapsibleContent,
24
+ {
25
+ "data-slot": "collapsible-content",
26
+ ...l
27
+ }
28
+ );
29
+ }
30
+ export {
31
+ a as Collapsible,
32
+ n as CollapsibleContent,
33
+ r as CollapsibleTrigger
34
+ };
35
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","sources":["../../../src/components/ui/collapsible.tsx"],"sourcesContent":["\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\"\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"],"names":["Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","jsx","CollapsibleContent"],"mappings":";;AAIA,SAASA,EAAY;AAAA,EACnB,GAAGC;AACL,GAA2D;AACzD,2BAAQC,EAAqB,MAArB,EAA0B,aAAU,eAAe,GAAGD,GAAO;AACvE;AAEA,SAASE,EAAmB;AAAA,EAC1B,GAAGF;AACL,GAAyE;AACvE,SACE,gBAAAG;AAAA,IAACF,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACT,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAmB;AAAA,EAC1B,GAAGJ;AACL,GAAyE;AACvE,SACE,gBAAAG;AAAA,IAACF,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACT,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("@base-ui/react"),b=require("lucide-react"),m=require("react"),x=require("./button.cjs"),s=require("./input-group.cjs"),r=require("../../lib/utils.cjs");function p(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>o[a]})}}return e.default=o,Object.freeze(e)}const h=p(m),g=n.Combobox.Root;function C({...o}){return t.jsx(n.Combobox.Value,{"data-slot":"combobox-value",...o})}function d({className:o,children:e,...a}){return t.jsxs(n.Combobox.Trigger,{"data-slot":"combobox-trigger",className:r.cn("[&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(b.ChevronDownIcon,{className:"pointer-events-none size-4 text-muted-foreground"})]})}function f({className:o,...e}){return t.jsx(n.Combobox.Clear,{"data-slot":"combobox-clear",render:t.jsx(s.InputGroupButton,{variant:"ghost",size:"icon-xs"}),className:r.cn(o),...e,children:t.jsx(b.XIcon,{className:"pointer-events-none"})})}function v({className:o,children:e,disabled:a=!1,showTrigger:i=!0,showClear:l=!1,...c}){return t.jsxs(s.InputGroup,{className:r.cn("w-auto",o),children:[t.jsx(n.Combobox.Input,{render:t.jsx(s.InputGroupInput,{disabled:a}),...c}),t.jsxs(s.InputGroupAddon,{align:"inline-end",children:[i&&t.jsx(s.InputGroupButton,{size:"icon-xs",variant:"ghost",asChild:!0,"data-slot":"input-group-button",className:"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",disabled:a,children:t.jsx(d,{})}),l&&t.jsx(f,{disabled:a})]}),e]})}function j({className:o,side:e="bottom",sideOffset:a=6,align:i="start",alignOffset:l=0,anchor:c,...u}){return t.jsx(n.Combobox.Portal,{children:t.jsx(n.Combobox.Positioner,{side:e,sideOffset:a,align:i,alignOffset:l,anchor:c,className:"isolate z-50",children:t.jsx(n.Combobox.Popup,{"data-slot":"combobox-content","data-chips":!!c,className:r.cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",o),...u})})})}function w({className:o,...e}){return t.jsx(n.Combobox.List,{"data-slot":"combobox-list",className:r.cn("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0",o),...e})}function y({className:o,children:e,...a}){return t.jsxs(n.Combobox.Item,{"data-slot":"combobox-item",className:r.cn("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(n.Combobox.ItemIndicator,{render:t.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:t.jsx(b.CheckIcon,{className:"pointer-events-none"})})]})}function N({className:o,...e}){return t.jsx(n.Combobox.Group,{"data-slot":"combobox-group",className:r.cn(o),...e})}function I({className:o,...e}){return t.jsx(n.Combobox.GroupLabel,{"data-slot":"combobox-label",className:r.cn("px-2 py-1.5 text-xs text-muted-foreground",o),...e})}function z({...o}){return t.jsx(n.Combobox.Collection,{"data-slot":"combobox-collection",...o})}function G({className:o,...e}){return t.jsx(n.Combobox.Empty,{"data-slot":"combobox-empty",className:r.cn("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex",o),...e})}function q({className:o,...e}){return t.jsx(n.Combobox.Separator,{"data-slot":"combobox-separator",className:r.cn("-mx-1 my-1 h-px bg-border",o),...e})}function R({className:o,...e}){return t.jsx(n.Combobox.Chips,{"data-slot":"combobox-chips",className:r.cn("flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40",o),...e})}function S({className:o,children:e,showRemove:a=!0,...i}){return t.jsxs(n.Combobox.Chip,{"data-slot":"combobox-chip",className:r.cn("flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0",o),...i,children:[e,a&&t.jsx(n.Combobox.ChipRemove,{render:t.jsx(x.Button,{variant:"ghost",size:"icon-xs"}),className:"-ml-1 opacity-50 hover:opacity-100","data-slot":"combobox-chip-remove",children:t.jsx(b.XIcon,{className:"pointer-events-none"})})]})}function _({className:o,...e}){return t.jsx(n.Combobox.Input,{"data-slot":"combobox-chip-input",className:r.cn("min-w-16 flex-1 outline-none",o),...e})}function k(){return h.useRef(null)}exports.Combobox=g;exports.ComboboxChip=S;exports.ComboboxChips=R;exports.ComboboxChipsInput=_;exports.ComboboxCollection=z;exports.ComboboxContent=j;exports.ComboboxEmpty=G;exports.ComboboxGroup=N;exports.ComboboxInput=v;exports.ComboboxItem=y;exports.ComboboxLabel=I;exports.ComboboxList=w;exports.ComboboxSeparator=q;exports.ComboboxTrigger=d;exports.ComboboxValue=C;exports.useComboboxAnchor=k;
2
+ //# sourceMappingURL=combobox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.cjs","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@/components/ui/input-group\"\nimport { cn } from \"@/lib/utils\"\n\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"names":["Combobox","ComboboxPrimitive","ComboboxValue","props","ComboboxTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","ComboboxClear","InputGroupButton","XIcon","ComboboxInput","disabled","showTrigger","showClear","InputGroup","InputGroupInput","InputGroupAddon","ComboboxContent","side","sideOffset","align","alignOffset","anchor","ComboboxList","ComboboxItem","CheckIcon","ComboboxGroup","ComboboxLabel","ComboboxCollection","ComboboxEmpty","ComboboxSeparator","ComboboxChips","ComboboxChip","showRemove","Button","ComboboxChipsInput","useComboboxAnchor","React"],"mappings":"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"}