@langchain/macaw-components 1.0.0-beta.0

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 (566) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/dist/_chunks/ErrorState-CmPX01HV.js +13361 -0
  4. package/dist/_chunks/ErrorState-CmPX01HV.js.map +1 -0
  5. package/dist/_chunks/LoadingIndicator-DgtU9aqD.js +80 -0
  6. package/dist/_chunks/LoadingIndicator-DgtU9aqD.js.map +1 -0
  7. package/dist/base.css +305 -0
  8. package/dist/catalog.json +1675 -0
  9. package/dist/components/Avatar/Avatar.d.ts +28 -0
  10. package/dist/components/Avatar/Avatar.js +47 -0
  11. package/dist/components/Avatar/Avatar.js.map +1 -0
  12. package/dist/components/Avatar/index.d.ts +2 -0
  13. package/dist/components/Avatar/index.js +2 -0
  14. package/dist/components/Badge/Badge.d.ts +25 -0
  15. package/dist/components/Badge/Badge.js +82 -0
  16. package/dist/components/Badge/Badge.js.map +1 -0
  17. package/dist/components/Badge/index.d.ts +2 -0
  18. package/dist/components/Badge/index.js +2 -0
  19. package/dist/components/Banner/Banner.d.ts +15 -0
  20. package/dist/components/Banner/Banner.js +102 -0
  21. package/dist/components/Banner/Banner.js.map +1 -0
  22. package/dist/components/Banner/index.d.ts +2 -0
  23. package/dist/components/Banner/index.js +2 -0
  24. package/dist/components/BarChart/AnimatedBar.d.ts +20 -0
  25. package/dist/components/BarChart/AnimatedBar.js +65 -0
  26. package/dist/components/BarChart/AnimatedBar.js.map +1 -0
  27. package/dist/components/BarChart/BarChart.d.ts +25 -0
  28. package/dist/components/BarChart/BarChart.js +248 -0
  29. package/dist/components/BarChart/BarChart.js.map +1 -0
  30. package/dist/components/BarChart/BarChart.types.d.ts +239 -0
  31. package/dist/components/BarChart/BarChart.types.js +0 -0
  32. package/dist/components/BarChart/BarChart.utils.d.ts +51 -0
  33. package/dist/components/BarChart/BarChart.utils.js +215 -0
  34. package/dist/components/BarChart/BarChart.utils.js.map +1 -0
  35. package/dist/components/BarChart/BarChartAxes.d.ts +22 -0
  36. package/dist/components/BarChart/BarChartAxes.js +144 -0
  37. package/dist/components/BarChart/BarChartAxes.js.map +1 -0
  38. package/dist/components/BarChart/BarChartGuides.d.ts +22 -0
  39. package/dist/components/BarChart/BarChartGuides.js +83 -0
  40. package/dist/components/BarChart/BarChartGuides.js.map +1 -0
  41. package/dist/components/BarChart/BarChartPlot.d.ts +40 -0
  42. package/dist/components/BarChart/BarChartPlot.js +262 -0
  43. package/dist/components/BarChart/BarChartPlot.js.map +1 -0
  44. package/dist/components/BarChart/constants.d.ts +21 -0
  45. package/dist/components/BarChart/constants.js +26 -0
  46. package/dist/components/BarChart/constants.js.map +1 -0
  47. package/dist/components/BarChart/index.d.ts +3 -0
  48. package/dist/components/BarChart/index.js +3 -0
  49. package/dist/components/Button/Button.d.ts +36 -0
  50. package/dist/components/Button/Button.js +99 -0
  51. package/dist/components/Button/Button.js.map +1 -0
  52. package/dist/components/Button/constants.d.ts +26 -0
  53. package/dist/components/Button/constants.js +31 -0
  54. package/dist/components/Button/constants.js.map +1 -0
  55. package/dist/components/Button/index.d.ts +2 -0
  56. package/dist/components/Button/index.js +2 -0
  57. package/dist/components/ButtonGroup/ButtonGroup.d.ts +30 -0
  58. package/dist/components/ButtonGroup/ButtonGroup.js +26 -0
  59. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -0
  60. package/dist/components/ButtonGroup/index.d.ts +2 -0
  61. package/dist/components/ButtonGroup/index.js +2 -0
  62. package/dist/components/Card/Card.d.ts +10 -0
  63. package/dist/components/Card/Card.js +23 -0
  64. package/dist/components/Card/Card.js.map +1 -0
  65. package/dist/components/Card/index.d.ts +2 -0
  66. package/dist/components/Card/index.js +2 -0
  67. package/dist/components/ChartCard/ChartCard.d.ts +53 -0
  68. package/dist/components/ChartCard/ChartCard.js +172 -0
  69. package/dist/components/ChartCard/ChartCard.js.map +1 -0
  70. package/dist/components/ChartCard/ChartCardSkeleton.d.ts +7 -0
  71. package/dist/components/ChartCard/ChartCardSkeleton.js +61 -0
  72. package/dist/components/ChartCard/ChartCardSkeleton.js.map +1 -0
  73. package/dist/components/ChartCard/index.d.ts +4 -0
  74. package/dist/components/ChartCard/index.js +3 -0
  75. package/dist/components/ChartLegend/ChartLegend.d.ts +19 -0
  76. package/dist/components/ChartLegend/ChartLegend.js +195 -0
  77. package/dist/components/ChartLegend/ChartLegend.js.map +1 -0
  78. package/dist/components/ChartLegend/ChartLegendItemRenderer.d.ts +14 -0
  79. package/dist/components/ChartLegend/ChartLegendItemRenderer.js +90 -0
  80. package/dist/components/ChartLegend/ChartLegendItemRenderer.js.map +1 -0
  81. package/dist/components/ChartLegend/index.d.ts +3 -0
  82. package/dist/components/ChartLegend/index.js +3 -0
  83. package/dist/components/ChartLegend/useChartLegendActiveItem.d.ts +7 -0
  84. package/dist/components/ChartLegend/useChartLegendActiveItem.js +35 -0
  85. package/dist/components/ChartLegend/useChartLegendActiveItem.js.map +1 -0
  86. package/dist/components/ChartLegend/utils.d.ts +20 -0
  87. package/dist/components/ChartLegend/utils.js +33 -0
  88. package/dist/components/ChartLegend/utils.js.map +1 -0
  89. package/dist/components/ChartTooltip/ChartTooltip.d.ts +23 -0
  90. package/dist/components/ChartTooltip/ChartTooltip.js +83 -0
  91. package/dist/components/ChartTooltip/ChartTooltip.js.map +1 -0
  92. package/dist/components/ChartTooltip/index.d.ts +2 -0
  93. package/dist/components/ChartTooltip/index.js +2 -0
  94. package/dist/components/Checkbox/Checkbox.d.ts +58 -0
  95. package/dist/components/Checkbox/Checkbox.js +50 -0
  96. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  97. package/dist/components/Checkbox/constants.d.ts +28 -0
  98. package/dist/components/Checkbox/constants.js +57 -0
  99. package/dist/components/Checkbox/constants.js.map +1 -0
  100. package/dist/components/Checkbox/getCheckedState.d.ts +6 -0
  101. package/dist/components/Checkbox/getCheckedState.js +14 -0
  102. package/dist/components/Checkbox/getCheckedState.js.map +1 -0
  103. package/dist/components/Checkbox/index.d.ts +3 -0
  104. package/dist/components/Checkbox/index.js +3 -0
  105. package/dist/components/CircularProgress/CircularProgress.d.ts +54 -0
  106. package/dist/components/CircularProgress/CircularProgress.js +85 -0
  107. package/dist/components/CircularProgress/CircularProgress.js.map +1 -0
  108. package/dist/components/CircularProgress/index.d.ts +2 -0
  109. package/dist/components/CircularProgress/index.js +2 -0
  110. package/dist/components/Code/Code.utils.d.ts +24 -0
  111. package/dist/components/Code/Code.utils.js +160 -0
  112. package/dist/components/Code/Code.utils.js.map +1 -0
  113. package/dist/components/Code/CodeLite.d.ts +19 -0
  114. package/dist/components/Code/CodeLite.js +146 -0
  115. package/dist/components/Code/CodeLite.js.map +1 -0
  116. package/dist/components/Code/CodeLite.utils.d.ts +24 -0
  117. package/dist/components/Code/CodeLite.utils.js +273 -0
  118. package/dist/components/Code/CodeLite.utils.js.map +1 -0
  119. package/dist/components/Code/ImageReplacerExtension.d.ts +9 -0
  120. package/dist/components/Code/ImageReplacerExtension.js +227 -0
  121. package/dist/components/Code/ImageReplacerExtension.js.map +1 -0
  122. package/dist/components/Code/JsonHighlighterExtension.d.ts +4 -0
  123. package/dist/components/Code/JsonHighlighterExtension.js +172 -0
  124. package/dist/components/Code/JsonHighlighterExtension.js.map +1 -0
  125. package/dist/components/Code/constants.d.ts +6 -0
  126. package/dist/components/Code/constants.js +11 -0
  127. package/dist/components/Code/constants.js.map +1 -0
  128. package/dist/components/Code/index.d.ts +30 -0
  129. package/dist/components/Code/index.js +140 -0
  130. package/dist/components/Code/index.js.map +1 -0
  131. package/dist/components/Code/languages/json.d.ts +1 -0
  132. package/dist/components/Code/languages/json.js +7 -0
  133. package/dist/components/Code/languages/json.js.map +1 -0
  134. package/dist/components/Code/languages/languages.d.ts +7 -0
  135. package/dist/components/Code/languages/languages.js +12 -0
  136. package/dist/components/Code/languages/languages.js.map +1 -0
  137. package/dist/components/Code/languages/python.d.ts +1 -0
  138. package/dist/components/Code/languages/python.js +7 -0
  139. package/dist/components/Code/languages/python.js.map +1 -0
  140. package/dist/components/Code/languages/shell.d.ts +7 -0
  141. package/dist/components/Code/languages/shell.js +241 -0
  142. package/dist/components/Code/languages/shell.js.map +1 -0
  143. package/dist/components/Code/languages/typescript.d.ts +1 -0
  144. package/dist/components/Code/languages/typescript.js +7 -0
  145. package/dist/components/Code/languages/typescript.js.map +1 -0
  146. package/dist/components/Code/languages/yaml.d.ts +2 -0
  147. package/dist/components/Code/languages/yaml.js +44 -0
  148. package/dist/components/Code/languages/yaml.js.map +1 -0
  149. package/dist/components/Code/types.d.ts +8 -0
  150. package/dist/components/Code/types.js +0 -0
  151. package/dist/components/Code/utils.d.ts +4 -0
  152. package/dist/components/Code/utils.js +27 -0
  153. package/dist/components/Code/utils.js.map +1 -0
  154. package/dist/components/Command/Command.d.ts +78 -0
  155. package/dist/components/Command/Command.js +78 -0
  156. package/dist/components/Command/Command.js.map +1 -0
  157. package/dist/components/Command/CommandMenu.d.ts +65 -0
  158. package/dist/components/Command/CommandMenu.js +101 -0
  159. package/dist/components/Command/CommandMenu.js.map +1 -0
  160. package/dist/components/Command/index.d.ts +4 -0
  161. package/dist/components/Command/index.js +3 -0
  162. package/dist/components/ContextMenu/ContextMenu.d.ts +9 -0
  163. package/dist/components/ContextMenu/ContextMenu.js +43 -0
  164. package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
  165. package/dist/components/ContextMenu/index.d.ts +1 -0
  166. package/dist/components/ContextMenu/index.js +2 -0
  167. package/dist/components/CopyButton/CopyButton.d.ts +24 -0
  168. package/dist/components/CopyButton/CopyButton.js +121 -0
  169. package/dist/components/CopyButton/CopyButton.js.map +1 -0
  170. package/dist/components/CopyButton/copyToClipboard.d.ts +1 -0
  171. package/dist/components/CopyButton/copyToClipboard.js +29 -0
  172. package/dist/components/CopyButton/copyToClipboard.js.map +1 -0
  173. package/dist/components/CopyButton/index.d.ts +4 -0
  174. package/dist/components/CopyButton/index.js +4 -0
  175. package/dist/components/CopyButton/useCopy.d.ts +10 -0
  176. package/dist/components/CopyButton/useCopy.js +46 -0
  177. package/dist/components/CopyButton/useCopy.js.map +1 -0
  178. package/dist/components/Dialog/index.d.ts +49 -0
  179. package/dist/components/Dialog/index.js +130 -0
  180. package/dist/components/Dialog/index.js.map +1 -0
  181. package/dist/components/Divider/Divider.d.ts +9 -0
  182. package/dist/components/Divider/Divider.js +27 -0
  183. package/dist/components/Divider/Divider.js.map +1 -0
  184. package/dist/components/Divider/index.d.ts +2 -0
  185. package/dist/components/Divider/index.js +2 -0
  186. package/dist/components/DonutChart/DonutChart.d.ts +101 -0
  187. package/dist/components/DonutChart/DonutChart.js +197 -0
  188. package/dist/components/DonutChart/DonutChart.js.map +1 -0
  189. package/dist/components/DonutChart/DonutChart.utils.d.ts +38 -0
  190. package/dist/components/DonutChart/DonutChart.utils.js +93 -0
  191. package/dist/components/DonutChart/DonutChart.utils.js.map +1 -0
  192. package/dist/components/DonutChart/constants.d.ts +7 -0
  193. package/dist/components/DonutChart/constants.js +12 -0
  194. package/dist/components/DonutChart/constants.js.map +1 -0
  195. package/dist/components/DonutChart/index.d.ts +4 -0
  196. package/dist/components/DonutChart/index.js +4 -0
  197. package/dist/components/DropdownMenu/DropdownMenu.d.ts +24 -0
  198. package/dist/components/DropdownMenu/DropdownMenu.js +149 -0
  199. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
  200. package/dist/components/DropdownMenu/index.d.ts +1 -0
  201. package/dist/components/DropdownMenu/index.js +2 -0
  202. package/dist/components/EmptyState/EmptyState.d.ts +26 -0
  203. package/dist/components/EmptyState/EmptyState.js +85 -0
  204. package/dist/components/EmptyState/EmptyState.js.map +1 -0
  205. package/dist/components/EmptyState/index.d.ts +2 -0
  206. package/dist/components/EmptyState/index.js +2 -0
  207. package/dist/components/ErrorBoundary.d.ts +35 -0
  208. package/dist/components/ErrorBoundary.js +41 -0
  209. package/dist/components/ErrorBoundary.js.map +1 -0
  210. package/dist/components/ErrorMessage/ErrorMessage.d.ts +17 -0
  211. package/dist/components/ErrorMessage/ErrorMessage.js +146 -0
  212. package/dist/components/ErrorMessage/ErrorMessage.js.map +1 -0
  213. package/dist/components/ErrorMessage/index.d.ts +2 -0
  214. package/dist/components/ErrorMessage/index.js +2 -0
  215. package/dist/components/ErrorState/ErrorState.d.ts +23 -0
  216. package/dist/components/ErrorState/ErrorState.js +2 -0
  217. package/dist/components/ErrorState/index.d.ts +2 -0
  218. package/dist/components/ErrorState/index.js +2 -0
  219. package/dist/components/GroupedTabs/GroupedTabs.d.ts +31 -0
  220. package/dist/components/GroupedTabs/GroupedTabs.js +92 -0
  221. package/dist/components/GroupedTabs/GroupedTabs.js.map +1 -0
  222. package/dist/components/GroupedTabs/index.d.ts +2 -0
  223. package/dist/components/GroupedTabs/index.js +2 -0
  224. package/dist/components/HoverCard.d.ts +4 -0
  225. package/dist/components/HoverCard.js +34 -0
  226. package/dist/components/HoverCard.js.map +1 -0
  227. package/dist/components/Icon/Icon.d.ts +25 -0
  228. package/dist/components/Icon/Icon.js +57 -0
  229. package/dist/components/Icon/Icon.js.map +1 -0
  230. package/dist/components/Icon/index.d.ts +2 -0
  231. package/dist/components/Icon/index.js +2 -0
  232. package/dist/components/IconButton/IconButton.d.ts +35 -0
  233. package/dist/components/IconButton/IconButton.js +73 -0
  234. package/dist/components/IconButton/IconButton.js.map +1 -0
  235. package/dist/components/IconButton/index.d.ts +2 -0
  236. package/dist/components/IconButton/index.js +2 -0
  237. package/dist/components/Input/Input.d.ts +72 -0
  238. package/dist/components/Input/Input.js +221 -0
  239. package/dist/components/Input/Input.js.map +1 -0
  240. package/dist/components/Input/index.d.ts +2 -0
  241. package/dist/components/Input/index.js +2 -0
  242. package/dist/components/Input/inputStyles.d.ts +28 -0
  243. package/dist/components/Input/inputStyles.js +45 -0
  244. package/dist/components/Input/inputStyles.js.map +1 -0
  245. package/dist/components/Kbd/Kbd.d.ts +15 -0
  246. package/dist/components/Kbd/Kbd.js +30 -0
  247. package/dist/components/Kbd/Kbd.js.map +1 -0
  248. package/dist/components/Kbd/index.d.ts +2 -0
  249. package/dist/components/Kbd/index.js +2 -0
  250. package/dist/components/LineChart/LineChart.d.ts +8 -0
  251. package/dist/components/LineChart/LineChart.js +194 -0
  252. package/dist/components/LineChart/LineChart.js.map +1 -0
  253. package/dist/components/LineChart/LineChart.types.d.ts +138 -0
  254. package/dist/components/LineChart/LineChart.types.js +0 -0
  255. package/dist/components/LineChart/LineChart.utils.d.ts +29 -0
  256. package/dist/components/LineChart/LineChart.utils.js +123 -0
  257. package/dist/components/LineChart/LineChart.utils.js.map +1 -0
  258. package/dist/components/LineChart/LineChartPlot.d.ts +43 -0
  259. package/dist/components/LineChart/LineChartPlot.js +306 -0
  260. package/dist/components/LineChart/LineChartPlot.js.map +1 -0
  261. package/dist/components/LineChart/constants.d.ts +3 -0
  262. package/dist/components/LineChart/constants.js +8 -0
  263. package/dist/components/LineChart/constants.js.map +1 -0
  264. package/dist/components/LineChart/index.d.ts +2 -0
  265. package/dist/components/LineChart/index.js +2 -0
  266. package/dist/components/LinearProgress/LinearProgress.d.ts +16 -0
  267. package/dist/components/LinearProgress/LinearProgress.js +42 -0
  268. package/dist/components/LinearProgress/LinearProgress.js.map +1 -0
  269. package/dist/components/LinearProgress/index.d.ts +2 -0
  270. package/dist/components/LinearProgress/index.js +2 -0
  271. package/dist/components/Link/Link.d.ts +30 -0
  272. package/dist/components/Link/Link.js +51 -0
  273. package/dist/components/Link/Link.js.map +1 -0
  274. package/dist/components/Link/index.d.ts +2 -0
  275. package/dist/components/Link/index.js +2 -0
  276. package/dist/components/Logo/index.d.ts +17 -0
  277. package/dist/components/Logo/index.js +705 -0
  278. package/dist/components/Logo/index.js.map +1 -0
  279. package/dist/components/MetricChart/MetricChart.d.ts +9 -0
  280. package/dist/components/MetricChart/MetricChart.js +42 -0
  281. package/dist/components/MetricChart/MetricChart.js.map +1 -0
  282. package/dist/components/MetricChart/formatters.d.ts +18 -0
  283. package/dist/components/MetricChart/formatters.js +34 -0
  284. package/dist/components/MetricChart/formatters.js.map +1 -0
  285. package/dist/components/MetricChart/index.d.ts +4 -0
  286. package/dist/components/MetricChart/index.js +3 -0
  287. package/dist/components/Pane/Pane.d.ts +29 -0
  288. package/dist/components/Pane/Pane.js +171 -0
  289. package/dist/components/Pane/Pane.js.map +1 -0
  290. package/dist/components/Pane/Pane.utils.d.ts +10 -0
  291. package/dist/components/Pane/Pane.utils.js +7 -0
  292. package/dist/components/Pane/Pane.utils.js.map +1 -0
  293. package/dist/components/Pane/index.d.ts +3 -0
  294. package/dist/components/Pane/index.js +3 -0
  295. package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.d.ts +9 -0
  296. package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.js +76 -0
  297. package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.js.map +1 -0
  298. package/dist/components/PlainTextEditor/index.d.ts +18 -0
  299. package/dist/components/PlainTextEditor/index.js +71 -0
  300. package/dist/components/PlainTextEditor/index.js.map +1 -0
  301. package/dist/components/Popover/Popover.d.ts +13 -0
  302. package/dist/components/Popover/Popover.js +48 -0
  303. package/dist/components/Popover/Popover.js.map +1 -0
  304. package/dist/components/Popover/constants.d.ts +1 -0
  305. package/dist/components/Popover/constants.js +6 -0
  306. package/dist/components/Popover/constants.js.map +1 -0
  307. package/dist/components/Popover/index.d.ts +1 -0
  308. package/dist/components/Popover/index.js +2 -0
  309. package/dist/components/PortalSlot.d.ts +11 -0
  310. package/dist/components/PortalSlot.js +41 -0
  311. package/dist/components/PortalSlot.js.map +1 -0
  312. package/dist/components/ProgressBar/ProgressBar.d.ts +38 -0
  313. package/dist/components/ProgressBar/ProgressBar.js +82 -0
  314. package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
  315. package/dist/components/ProgressBar/index.d.ts +2 -0
  316. package/dist/components/ProgressBar/index.js +2 -0
  317. package/dist/components/RadioButton/RadioButton.d.ts +62 -0
  318. package/dist/components/RadioButton/RadioButton.js +38 -0
  319. package/dist/components/RadioButton/RadioButton.js.map +1 -0
  320. package/dist/components/RadioButton/constants.d.ts +30 -0
  321. package/dist/components/RadioButton/constants.js +55 -0
  322. package/dist/components/RadioButton/constants.js.map +1 -0
  323. package/dist/components/RadioButton/index.d.ts +2 -0
  324. package/dist/components/RadioButton/index.js +2 -0
  325. package/dist/components/RadioCard/RadioCard.d.ts +26 -0
  326. package/dist/components/RadioCard/RadioCard.js +43 -0
  327. package/dist/components/RadioCard/RadioCard.js.map +1 -0
  328. package/dist/components/RadioCard/index.d.ts +2 -0
  329. package/dist/components/RadioCard/index.js +2 -0
  330. package/dist/components/RadioGroup/RadioGroup.d.ts +5 -0
  331. package/dist/components/RadioGroup/RadioGroup.js +17 -0
  332. package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
  333. package/dist/components/RadioGroup/RadioGroupItem.d.ts +5 -0
  334. package/dist/components/RadioGroup/RadioGroupItem.js +22 -0
  335. package/dist/components/RadioGroup/RadioGroupItem.js.map +1 -0
  336. package/dist/components/RadioGroup/index.d.ts +4 -0
  337. package/dist/components/RadioGroup/index.js +3 -0
  338. package/dist/components/Select/Select.d.ts +84 -0
  339. package/dist/components/Select/Select.js +120 -0
  340. package/dist/components/Select/Select.js.map +1 -0
  341. package/dist/components/Select/SelectPrimitive.d.ts +17 -0
  342. package/dist/components/Select/SelectPrimitive.js +126 -0
  343. package/dist/components/Select/SelectPrimitive.js.map +1 -0
  344. package/dist/components/Select/index.d.ts +4 -0
  345. package/dist/components/Select/index.js +3 -0
  346. package/dist/components/Skeleton/Skeleton.d.ts +13 -0
  347. package/dist/components/Skeleton/Skeleton.js +25 -0
  348. package/dist/components/Skeleton/Skeleton.js.map +1 -0
  349. package/dist/components/Skeleton/index.d.ts +1 -0
  350. package/dist/components/Skeleton/index.js +2 -0
  351. package/dist/components/Slider/Slider.d.ts +33 -0
  352. package/dist/components/Slider/Slider.js +64 -0
  353. package/dist/components/Slider/Slider.js.map +1 -0
  354. package/dist/components/Slider/index.d.ts +2 -0
  355. package/dist/components/Slider/index.js +2 -0
  356. package/dist/components/SparkLineChart/SparkLineChart.d.ts +14 -0
  357. package/dist/components/SparkLineChart/SparkLineChart.js +112 -0
  358. package/dist/components/SparkLineChart/SparkLineChart.js.map +1 -0
  359. package/dist/components/SparkLineChart/index.d.ts +2 -0
  360. package/dist/components/SparkLineChart/index.js +2 -0
  361. package/dist/components/Spinner/Spinner.d.ts +12 -0
  362. package/dist/components/Spinner/Spinner.js +33 -0
  363. package/dist/components/Spinner/Spinner.js.map +1 -0
  364. package/dist/components/Spinner/index.d.ts +1 -0
  365. package/dist/components/Spinner/index.js +2 -0
  366. package/dist/components/SplitViewPane/SplitViewPane.d.ts +41 -0
  367. package/dist/components/SplitViewPane/SplitViewPane.js +314 -0
  368. package/dist/components/SplitViewPane/SplitViewPane.js.map +1 -0
  369. package/dist/components/SplitViewPane/SplitViewPaneHeader.d.ts +22 -0
  370. package/dist/components/SplitViewPane/SplitViewPaneHeader.js +105 -0
  371. package/dist/components/SplitViewPane/SplitViewPaneHeader.js.map +1 -0
  372. package/dist/components/SplitViewPane/index.d.ts +2 -0
  373. package/dist/components/SplitViewPane/index.js +3 -0
  374. package/dist/components/SplitViewPane/openPaneRegistry.d.ts +2 -0
  375. package/dist/components/SplitViewPane/openPaneRegistry.js +49 -0
  376. package/dist/components/SplitViewPane/openPaneRegistry.js.map +1 -0
  377. package/dist/components/Switch/Switch.d.ts +35 -0
  378. package/dist/components/Switch/Switch.js +65 -0
  379. package/dist/components/Switch/Switch.js.map +1 -0
  380. package/dist/components/Switch/index.d.ts +2 -0
  381. package/dist/components/Switch/index.js +2 -0
  382. package/dist/components/Tabs/index.d.ts +27 -0
  383. package/dist/components/Tabs/index.js +45 -0
  384. package/dist/components/Tabs/index.js.map +1 -0
  385. package/dist/components/Text/Text.d.ts +13 -0
  386. package/dist/components/Text/Text.js +58 -0
  387. package/dist/components/Text/Text.js.map +1 -0
  388. package/dist/components/Text/index.d.ts +2 -0
  389. package/dist/components/Text/index.js +2 -0
  390. package/dist/components/TextVirtualizer.d.ts +8 -0
  391. package/dist/components/TextVirtualizer.js +53 -0
  392. package/dist/components/TextVirtualizer.js.map +1 -0
  393. package/dist/components/TextWithLinks.d.ts +6 -0
  394. package/dist/components/TextWithLinks.js +61 -0
  395. package/dist/components/TextWithLinks.js.map +1 -0
  396. package/dist/components/Textarea/Textarea.d.ts +47 -0
  397. package/dist/components/Textarea/Textarea.js +150 -0
  398. package/dist/components/Textarea/Textarea.js.map +1 -0
  399. package/dist/components/Textarea/index.d.ts +2 -0
  400. package/dist/components/Textarea/index.js +2 -0
  401. package/dist/components/ThinkingState/LoadingIndicator.d.ts +19 -0
  402. package/dist/components/ThinkingState/LoadingIndicator.js +2 -0
  403. package/dist/components/ThinkingState/NOTICE +25 -0
  404. package/dist/components/ThinkingState/ThinkingState.d.ts +21 -0
  405. package/dist/components/ThinkingState/ThinkingState.js +42 -0
  406. package/dist/components/ThinkingState/ThinkingState.js.map +1 -0
  407. package/dist/components/ThinkingState/ThinkingStateTimer.d.ts +9 -0
  408. package/dist/components/ThinkingState/ThinkingStateTimer.js +43 -0
  409. package/dist/components/ThinkingState/ThinkingStateTimer.js.map +1 -0
  410. package/dist/components/ThinkingState/index.d.ts +4 -0
  411. package/dist/components/ThinkingState/index.js +3 -0
  412. package/dist/components/Toast/ToastContext.d.ts +5 -0
  413. package/dist/components/Toast/ToastContext.js +9 -0
  414. package/dist/components/Toast/ToastContext.js.map +1 -0
  415. package/dist/components/Toast/index.d.ts +13 -0
  416. package/dist/components/Toast/index.js +166 -0
  417. package/dist/components/Toast/index.js.map +1 -0
  418. package/dist/components/Toast/useToast.d.ts +3 -0
  419. package/dist/components/Toast/useToast.js +11 -0
  420. package/dist/components/Toast/useToast.js.map +1 -0
  421. package/dist/components/Tooltip/Tooltip.d.ts +19 -0
  422. package/dist/components/Tooltip/Tooltip.js +57 -0
  423. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  424. package/dist/components/Tooltip/index.d.ts +3 -0
  425. package/dist/components/Tooltip/index.js +3 -0
  426. package/dist/components/TopList/TopList.d.ts +3 -0
  427. package/dist/components/TopList/TopList.js +186 -0
  428. package/dist/components/TopList/TopList.js.map +1 -0
  429. package/dist/components/TopList/TopList.types.d.ts +34 -0
  430. package/dist/components/TopList/TopList.types.js +0 -0
  431. package/dist/components/TopList/TopList.utils.d.ts +3 -0
  432. package/dist/components/TopList/TopList.utils.js +16 -0
  433. package/dist/components/TopList/TopList.utils.js.map +1 -0
  434. package/dist/components/TopList/index.d.ts +2 -0
  435. package/dist/components/TopList/index.js +2 -0
  436. package/dist/components/Typeahead/Typeahead.d.ts +5 -0
  437. package/dist/components/Typeahead/Typeahead.js +305 -0
  438. package/dist/components/Typeahead/Typeahead.js.map +1 -0
  439. package/dist/components/Typeahead/Typeahead.types.d.ts +99 -0
  440. package/dist/components/Typeahead/Typeahead.types.js +0 -0
  441. package/dist/components/Typeahead/Typeahead.utils.d.ts +25 -0
  442. package/dist/components/Typeahead/Typeahead.utils.js +73 -0
  443. package/dist/components/Typeahead/Typeahead.utils.js.map +1 -0
  444. package/dist/components/Typeahead/TypeaheadParts.d.ts +25 -0
  445. package/dist/components/Typeahead/TypeaheadParts.js +109 -0
  446. package/dist/components/Typeahead/TypeaheadParts.js.map +1 -0
  447. package/dist/components/Typeahead/TypeaheadView.d.ts +81 -0
  448. package/dist/components/Typeahead/TypeaheadView.js +228 -0
  449. package/dist/components/Typeahead/TypeaheadView.js.map +1 -0
  450. package/dist/components/Typeahead/index.d.ts +2 -0
  451. package/dist/components/Typeahead/index.js +2 -0
  452. package/dist/components/Typeahead/useTypeaheadDomSync.d.ts +15 -0
  453. package/dist/components/Typeahead/useTypeaheadDomSync.js +43 -0
  454. package/dist/components/Typeahead/useTypeaheadDomSync.js.map +1 -0
  455. package/dist/components/Typeahead/useTypeaheadUncontrolledInput.d.ts +11 -0
  456. package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js +32 -0
  457. package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js.map +1 -0
  458. package/dist/components/UnsavedChangesDialog.d.ts +14 -0
  459. package/dist/components/UnsavedChangesDialog.js +67 -0
  460. package/dist/components/UnsavedChangesDialog.js.map +1 -0
  461. package/dist/components/index.d.ts +58 -0
  462. package/dist/components/index.js +35 -0
  463. package/dist/components.css +102 -0
  464. package/dist/contexts/ErrorReporterContext.d.ts +6 -0
  465. package/dist/contexts/ErrorReporterContext.js +7 -0
  466. package/dist/contexts/ErrorReporterContext.js.map +1 -0
  467. package/dist/hooks/AppThemeProvider.d.ts +8 -0
  468. package/dist/hooks/AppThemeProvider.js +52 -0
  469. package/dist/hooks/AppThemeProvider.js.map +1 -0
  470. package/dist/hooks/useColorScheme.d.ts +20 -0
  471. package/dist/hooks/useColorScheme.js +50 -0
  472. package/dist/hooks/useColorScheme.js.map +1 -0
  473. package/dist/icons/LongTailPhosphorIcons.d.ts +51 -0
  474. package/dist/icons/LongTailPhosphorIcons.js +102 -0
  475. package/dist/icons/LongTailPhosphorIcons.js.map +1 -0
  476. package/dist/icons/PaddedPhosphorIcons.d.ts +17 -0
  477. package/dist/icons/PaddedPhosphorIcons.js +55 -0
  478. package/dist/icons/PaddedPhosphorIcons.js.map +1 -0
  479. package/dist/icons/WeightedPhosphorIcons.d.ts +45 -0
  480. package/dist/icons/WeightedPhosphorIcons.js +96 -0
  481. package/dist/icons/WeightedPhosphorIcons.js.map +1 -0
  482. package/dist/icons/index.d.ts +2 -0
  483. package/dist/icons/index.js +4 -0
  484. package/dist/index.d.ts +1 -0
  485. package/dist/index.js +36 -0
  486. package/dist/styles.css +10 -0
  487. package/dist/utilities.css +2 -0
  488. package/dist/utils/VirtuosoCustomScrollParentContext/index.d.ts +7 -0
  489. package/dist/utils/VirtuosoCustomScrollParentContext/index.js +15 -0
  490. package/dist/utils/VirtuosoCustomScrollParentContext/index.js.map +1 -0
  491. package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.d.ts +4 -0
  492. package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.js +10 -0
  493. package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.js.map +1 -0
  494. package/dist/utils/ZIndexContext.d.ts +5 -0
  495. package/dist/utils/ZIndexContext.js +13 -0
  496. package/dist/utils/ZIndexContext.js.map +1 -0
  497. package/dist/utils/animation.d.ts +37 -0
  498. package/dist/utils/animation.js +42 -0
  499. package/dist/utils/animation.js.map +1 -0
  500. package/dist/utils/chartAxisLayout.d.ts +6 -0
  501. package/dist/utils/chartAxisLayout.js +8 -0
  502. package/dist/utils/chartAxisLayout.js.map +1 -0
  503. package/dist/utils/chartColors.d.ts +38 -0
  504. package/dist/utils/chartColors.js +78 -0
  505. package/dist/utils/chartColors.js.map +1 -0
  506. package/dist/utils/chartConstants.d.ts +10 -0
  507. package/dist/utils/chartConstants.js +15 -0
  508. package/dist/utils/chartConstants.js.map +1 -0
  509. package/dist/utils/chartValues.d.ts +2 -0
  510. package/dist/utils/chartValues.js +36 -0
  511. package/dist/utils/chartValues.js.map +1 -0
  512. package/dist/utils/clamp.d.ts +2 -0
  513. package/dist/utils/clamp.js +7 -0
  514. package/dist/utils/clamp.js.map +1 -0
  515. package/dist/utils/cn.d.ts +2 -0
  516. package/dist/utils/cn.js +191 -0
  517. package/dist/utils/cn.js.map +1 -0
  518. package/dist/utils/componentSizes.d.ts +104 -0
  519. package/dist/utils/componentSizes.js +104 -0
  520. package/dist/utils/componentSizes.js.map +1 -0
  521. package/dist/utils/controlIconSizes.d.ts +10 -0
  522. package/dist/utils/controlIconSizes.js +32 -0
  523. package/dist/utils/controlIconSizes.js.map +1 -0
  524. package/dist/utils/csp-nonce.d.ts +11 -0
  525. package/dist/utils/csp-nonce.js +17 -0
  526. package/dist/utils/csp-nonce.js.map +1 -0
  527. package/dist/utils/get-closest-scroll-parent.d.ts +1 -0
  528. package/dist/utils/get-closest-scroll-parent.js +16 -0
  529. package/dist/utils/get-closest-scroll-parent.js.map +1 -0
  530. package/dist/utils/get-color-by-string.d.ts +1 -0
  531. package/dist/utils/get-color-by-string.js +10 -0
  532. package/dist/utils/get-color-by-string.js.map +1 -0
  533. package/dist/utils/getYAxisLeftMargin.d.ts +10 -0
  534. package/dist/utils/getYAxisLeftMargin.js +20 -0
  535. package/dist/utils/getYAxisLeftMargin.js.map +1 -0
  536. package/dist/utils/icon-types.d.ts +8 -0
  537. package/dist/utils/icon-types.js +0 -0
  538. package/dist/utils/lazy-codemirror-loader.d.ts +70 -0
  539. package/dist/utils/lazy-codemirror-loader.js +79 -0
  540. package/dist/utils/lazy-codemirror-loader.js.map +1 -0
  541. package/dist/utils/merge-refs.d.ts +2 -0
  542. package/dist/utils/merge-refs.js +13 -0
  543. package/dist/utils/merge-refs.js.map +1 -0
  544. package/dist/utils/parseTextLinks.d.ts +7 -0
  545. package/dist/utils/parseTextLinks.js +46 -0
  546. package/dist/utils/parseTextLinks.js.map +1 -0
  547. package/dist/utils/prettify-error-payload.d.ts +7 -0
  548. package/dist/utils/prettify-error-payload.js +188 -0
  549. package/dist/utils/prettify-error-payload.js.map +1 -0
  550. package/dist/utils/spacing.d.ts +30 -0
  551. package/dist/utils/spacing.js +34 -0
  552. package/dist/utils/spacing.js.map +1 -0
  553. package/dist/utils/useCodeMirror.d.ts +7 -0
  554. package/dist/utils/useCodeMirror.js +28 -0
  555. package/dist/utils/useCodeMirror.js.map +1 -0
  556. package/dist/utils/useZIndex.d.ts +52 -0
  557. package/dist/utils/useZIndex.js +62 -0
  558. package/dist/utils/useZIndex.js.map +1 -0
  559. package/dist/utils/zIndices.d.ts +42 -0
  560. package/dist/utils/zIndices.js +46 -0
  561. package/dist/utils/zIndices.js.map +1 -0
  562. package/docs/DESIGN.md +134 -0
  563. package/docs/STYLES.md +568 -0
  564. package/package.json +619 -0
  565. package/tailwind.preset.cjs +738 -0
  566. package/tailwind.preset.d.cts +5 -0
@@ -0,0 +1,140 @@
1
+ import { cn } from "../../utils/cn.js";
2
+ import zIndices from "../../utils/zIndices.js";
3
+ import { useZIndex } from "../../utils/useZIndex.js";
4
+ import { Banner } from "../Banner/Banner.js";
5
+ import "../Banner/index.js";
6
+ import { useColorScheme } from "../../hooks/useColorScheme.js";
7
+ import { Button } from "../Button/Button.js";
8
+ import { getLanguageExtension, getSyntaxTheme, useEditorTheme } from "./Code.utils.js";
9
+ import { useCodeMirror } from "../../utils/useCodeMirror.js";
10
+ import "./constants.js";
11
+ import { getImageReplacerExtensions } from "./ImageReplacerExtension.js";
12
+ import { getNonce } from "../../utils/csp-nonce.js";
13
+ import { CopyButton } from "../CopyButton/CopyButton.js";
14
+ import { ErrorBoundary } from "../ErrorBoundary.js";
15
+ import { PlainTextEditor } from "../PlainTextEditor/index.js";
16
+ import { useMemo, useState } from "react";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
18
+ //#region packages/components/src/components/Code/index.tsx
19
+ /**
20
+ * Renders syntax-highlighted code with optional editing and copy support.
21
+ *
22
+ * Import directly from `@langchain/macaw-components/Code` so the CodeMirror
23
+ * dependency is only loaded by surfaces that use it.
24
+ */
25
+ var Code = ({ value, readOnly, onChange, autoFocus, placeholder, language, extensions, converterExtensions, height, maxHeight, omitMaxHeight, width, fontSize, onCreateEditor, variant = "full", testId, showCopyButton }) => {
26
+ const cm = useCodeMirror();
27
+ const { isDarkMode } = useColorScheme();
28
+ const copyButtonZIndex = useZIndex(zIndices.floatingBar);
29
+ const [ignoreWarning, setIgnoreWarning] = useState(false);
30
+ const lineCount = value?.split("\n").length ?? 0;
31
+ const imageReplacerExtensions = useMemo(() => cm ? getImageReplacerExtensions(cm) : null, [cm]);
32
+ const editorTheme = useEditorTheme(cm, { variant });
33
+ const langExt = useMemo(() => cm ? getLanguageExtension(cm, language) : null, [cm, language]);
34
+ const syntaxTheme = useMemo(() => cm ? getSyntaxTheme(cm, isDarkMode) : null, [cm, isDarkMode]);
35
+ const nonce = getNonce();
36
+ const mExtensions = useMemo(() => {
37
+ if (!cm || !imageReplacerExtensions || !langExt || !editorTheme) return [];
38
+ const { keymap, defaultKeymap, EditorView } = cm;
39
+ const { decorationStateField, imageReplacerPlugin } = imageReplacerExtensions;
40
+ return [
41
+ keymap.of([{
42
+ key: "Mod-Enter",
43
+ run: () => true
44
+ }, ...defaultKeymap]),
45
+ langExt.language,
46
+ ...extensions ?? [],
47
+ ...lineCount <= 500 ? converterExtensions ?? langExt.extensions ?? [] : [],
48
+ imageReplacerPlugin,
49
+ decorationStateField,
50
+ EditorView.lineWrapping,
51
+ editorTheme,
52
+ ...readOnly ? [EditorView.editable.of(false)] : [],
53
+ ...nonce ? [EditorView.cspNonce.of(nonce)] : []
54
+ ];
55
+ }, [
56
+ cm,
57
+ imageReplacerExtensions,
58
+ langExt,
59
+ editorTheme,
60
+ extensions,
61
+ converterExtensions,
62
+ lineCount,
63
+ readOnly,
64
+ nonce
65
+ ]);
66
+ if (value == null) return null;
67
+ if (lineCount > 5e3 && !ignoreWarning) return /* @__PURE__ */ jsx(Banner, {
68
+ intent: "warning",
69
+ action: /* @__PURE__ */ jsx(Button, {
70
+ variant: "underlined",
71
+ color: "secondary",
72
+ size: "sm",
73
+ onClick: () => setIgnoreWarning(true),
74
+ children: "Open anyway"
75
+ }),
76
+ children: "This content might be too long to display in the editor."
77
+ });
78
+ if (!cm || !syntaxTheme) return /* @__PURE__ */ jsx("div", {
79
+ "data-testid": testId,
80
+ className: cn("group relative text-xs", height && "h-full"),
81
+ children: /* @__PURE__ */ jsx(PlainTextEditor, {
82
+ value,
83
+ readOnly: true,
84
+ placeholder,
85
+ className: cn("font-mono text-xs", height && "h-full overflow-auto", maxHeight && !omitMaxHeight && `max-h-[${maxHeight}]`)
86
+ })
87
+ });
88
+ const { CodeMirror } = cm;
89
+ return /* @__PURE__ */ jsxs("div", {
90
+ "data-testid": testId,
91
+ className: cn("group relative text-xs", height && "h-full"),
92
+ children: [/* @__PURE__ */ jsx(ErrorBoundary, {
93
+ fallback: () => /* @__PURE__ */ jsx("div", { children: "Error showing code" }),
94
+ children: /* @__PURE__ */ jsx(CodeMirror, {
95
+ value,
96
+ readOnly,
97
+ autoFocus,
98
+ placeholder,
99
+ height,
100
+ maxHeight: omitMaxHeight ? void 0 : maxHeight ?? "50vh",
101
+ width,
102
+ style: {
103
+ fontSize,
104
+ backgroundColor: "var(--bg-surface-level-2)",
105
+ borderRadius: "8px",
106
+ cursor: readOnly ? "default" : "text",
107
+ ...height ? { height } : {},
108
+ ...width ? { width } : {}
109
+ },
110
+ extensions: mExtensions,
111
+ onCreateEditor,
112
+ onChange: (code) => {
113
+ if (!readOnly) onChange?.(code);
114
+ },
115
+ theme: syntaxTheme,
116
+ basicSetup: {
117
+ highlightActiveLine: false,
118
+ highlightActiveLineGutter: false,
119
+ defaultKeymap: false,
120
+ ...variant === "plain" && {
121
+ lineNumbers: false,
122
+ highlightSelectionMatches: false
123
+ }
124
+ }
125
+ })
126
+ }), showCopyButton && value && /* @__PURE__ */ jsx("div", {
127
+ onMouseDown: (e) => e.preventDefault(),
128
+ className: "absolute right-1 top-1 opacity-0 transition-opacity duration-300 group-hover:opacity-100",
129
+ style: { zIndex: copyButtonZIndex },
130
+ children: /* @__PURE__ */ jsx(CopyButton, {
131
+ copy: value,
132
+ variant: "icon"
133
+ })
134
+ })]
135
+ });
136
+ };
137
+ //#endregion
138
+ export { Code };
139
+
140
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Code/index.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\n\nimport type { Extension } from '@codemirror/state';\nimport type { EditorView } from '@codemirror/view';\n\nimport { useColorScheme } from '../../hooks/useColorScheme';\nimport { cn } from '../../utils/cn';\nimport { getNonce } from '../../utils/csp-nonce';\nimport { useCodeMirror } from '../../utils/useCodeMirror';\nimport { useZIndex } from '../../utils/useZIndex';\nimport zIndices from '../../utils/zIndices';\nimport { Banner } from '../Banner';\nimport { Button } from '../Button';\nimport { CopyButton } from '../CopyButton';\nimport { ErrorBoundary } from '../ErrorBoundary';\nimport { PlainTextEditor } from '../PlainTextEditor';\nimport {\n getLanguageExtension,\n getSyntaxTheme,\n useEditorTheme,\n} from './Code.utils';\nimport { MAX_CODE_LENGTH } from './constants';\nimport { getImageReplacerExtensions } from './ImageReplacerExtension';\nimport type { CodeLanguageType } from './types';\n\n/** Props for the syntax-highlighted CodeMirror block. */\nexport interface CodeProps {\n language: CodeLanguageType;\n extensions?: Extension[];\n value: string | undefined;\n onChange?: (code: string) => void;\n readOnly?: boolean;\n autoFocus?: boolean;\n height?: string;\n maxHeight?: string;\n omitMaxHeight?: boolean;\n width?: string;\n fontSize?: string;\n placeholder?: string;\n showCopyButton?: boolean;\n testId?: string;\n variant?: 'plain' | 'full';\n onCreateEditor?: (view: EditorView) => void;\n converterExtensions?: Extension[];\n}\n\n/**\n * Renders syntax-highlighted code with optional editing and copy support.\n *\n * Import directly from `@langchain/macaw-components/Code` so the CodeMirror\n * dependency is only loaded by surfaces that use it.\n */\nexport const Code = ({\n value,\n readOnly,\n onChange,\n autoFocus,\n placeholder,\n language,\n extensions,\n converterExtensions,\n height,\n maxHeight,\n omitMaxHeight,\n width,\n fontSize,\n onCreateEditor,\n variant = 'full',\n testId,\n showCopyButton,\n}: CodeProps) => {\n const cm = useCodeMirror();\n const { isDarkMode } = useColorScheme();\n const copyButtonZIndex = useZIndex(zIndices.floatingBar);\n\n const [ignoreWarning, setIgnoreWarning] = useState(false);\n\n const lineCount = value?.split('\\n').length ?? 0;\n\n // Stable CM-derived values — memoized so StateField/ViewPlugin instances are\n // created once and not recreated on every render (which resets editor state).\n const imageReplacerExtensions = useMemo(\n () => (cm ? getImageReplacerExtensions(cm) : null),\n [cm]\n );\n const editorTheme = useEditorTheme(cm, { variant });\n const langExt = useMemo(\n () => (cm ? getLanguageExtension(cm, language) : null),\n [cm, language]\n );\n const syntaxTheme = useMemo(\n () => (cm ? getSyntaxTheme(cm, isDarkMode) : null),\n [cm, isDarkMode]\n );\n\n const nonce = getNonce();\n\n const mExtensions = useMemo(() => {\n if (!cm || !imageReplacerExtensions || !langExt || !editorTheme) return [];\n const { keymap, defaultKeymap, EditorView } = cm;\n const { decorationStateField, imageReplacerPlugin } =\n imageReplacerExtensions;\n return [\n keymap.of([{ key: 'Mod-Enter', run: () => true }, ...defaultKeymap]),\n langExt.language,\n ...(extensions ?? []),\n // YAML folding blocks rendering for large files, so cap it at 500 lines.\n ...(lineCount <= 500\n ? (converterExtensions ?? langExt.extensions ?? [])\n : []),\n imageReplacerPlugin,\n decorationStateField,\n EditorView.lineWrapping,\n editorTheme,\n ...(readOnly ? [EditorView.editable.of(false)] : []),\n ...(nonce ? [EditorView.cspNonce.of(nonce)] : []),\n ];\n // extensions/converterExtensions are caller-provided arrays. Include them\n // directly so changes propagate.\n }, [\n cm,\n imageReplacerExtensions,\n langExt,\n editorTheme,\n extensions,\n converterExtensions,\n lineCount,\n readOnly,\n nonce,\n ]);\n\n if (value == null) return null;\n\n // Avoid mounting CodeMirror by default when style recomputation could block rendering.\n if (lineCount > MAX_CODE_LENGTH && !ignoreWarning)\n return (\n <Banner\n intent=\"warning\"\n action={\n <Button\n variant=\"underlined\"\n color=\"secondary\"\n size=\"sm\"\n onClick={() => setIgnoreWarning(true)}\n >\n Open anyway\n </Button>\n }\n >\n This content might be too long to display in the editor.\n </Banner>\n );\n\n if (!cm || !syntaxTheme) {\n return (\n <div\n data-testid={testId}\n className={cn('group relative text-xs', height && 'h-full')}\n >\n <PlainTextEditor\n value={value}\n readOnly={true}\n placeholder={placeholder}\n className={cn(\n 'font-mono text-xs',\n height && 'h-full overflow-auto',\n maxHeight && !omitMaxHeight && `max-h-[${maxHeight}]`\n )}\n />\n </div>\n );\n }\n\n const { CodeMirror } = cm;\n\n return (\n <div\n data-testid={testId}\n className={cn('group relative text-xs', height && 'h-full')}\n >\n <ErrorBoundary fallback={() => <div>Error showing code</div>}>\n <CodeMirror\n value={value}\n readOnly={readOnly}\n autoFocus={autoFocus}\n placeholder={placeholder}\n height={height}\n maxHeight={omitMaxHeight ? undefined : (maxHeight ?? '50vh')}\n width={width}\n style={{\n fontSize,\n backgroundColor: 'var(--bg-surface-level-2)',\n borderRadius: '8px',\n cursor: readOnly ? 'default' : 'text',\n ...(height ? { height } : {}),\n ...(width ? { width } : {}),\n }}\n extensions={mExtensions}\n onCreateEditor={onCreateEditor}\n onChange={(code) => {\n if (!readOnly) {\n onChange?.(code);\n }\n }}\n theme={syntaxTheme}\n basicSetup={{\n highlightActiveLine: false,\n highlightActiveLineGutter: false,\n defaultKeymap: false,\n ...(variant === 'plain' && {\n lineNumbers: false,\n highlightSelectionMatches: false,\n }),\n }}\n />\n </ErrorBoundary>\n {showCopyButton && value && (\n <div\n onMouseDown={(e) => e.preventDefault()}\n className=\"absolute right-1 top-1 opacity-0 transition-opacity duration-300 group-hover:opacity-100\"\n style={{ zIndex: copyButtonZIndex }}\n >\n <CopyButton copy={value} variant=\"icon\" />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const jsonLanguage: import("@codemirror/language").LanguageSupport;
@@ -0,0 +1,7 @@
1
+ import { json } from "@codemirror/lang-json";
2
+ //#region packages/components/src/components/Code/languages/json.tsx
3
+ var jsonLanguage = json();
4
+ //#endregion
5
+ export { jsonLanguage };
6
+
7
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","names":[],"sources":["../../../../src/components/Code/languages/json.tsx"],"sourcesContent":["import { json as jsonFn } from '@codemirror/lang-json';\n\nexport const jsonLanguage = jsonFn();\n"],"mappings":";;AAEA,IAAa,eAAe,KAAO"}
@@ -0,0 +1,7 @@
1
+ export declare const LANGUAGES: {
2
+ readonly typescript: Promise<import("@codemirror/language").LanguageSupport>;
3
+ readonly python: Promise<import("@codemirror/language").LanguageSupport>;
4
+ readonly shell: Promise<import("@codemirror/language").StreamLanguage<import("./shell.js").ShellState>>;
5
+ readonly yaml: Promise<import("@codemirror/language").LanguageSupport>;
6
+ readonly json: Promise<import("@codemirror/language").LanguageSupport>;
7
+ };
@@ -0,0 +1,12 @@
1
+ //#region packages/components/src/components/Code/languages/languages.tsx
2
+ var LANGUAGES = {
3
+ typescript: import("./typescript.js").then((module) => module.typescriptLanguage),
4
+ python: import("./python.js").then((module) => module.pythonLanguage),
5
+ shell: import("./shell.js").then((module) => module.shellLanguage),
6
+ yaml: import("./yaml.js").then((module) => module.yamlLanguage),
7
+ json: import("./json.js").then((module) => module.jsonLanguage)
8
+ };
9
+ //#endregion
10
+ export { LANGUAGES };
11
+
12
+ //# sourceMappingURL=languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.js","names":[],"sources":["../../../../src/components/Code/languages/languages.tsx"],"sourcesContent":["export const LANGUAGES = {\n typescript: import('./typescript').then(\n (module) => module.typescriptLanguage\n ),\n python: import('./python').then((module) => module.pythonLanguage),\n shell: import('./shell').then((module) => module.shellLanguage),\n yaml: import('./yaml').then((module) => module.yamlLanguage),\n json: import('./json').then((module) => module.jsonLanguage),\n} as const;\n"],"mappings":";AAAA,IAAa,YAAY;CACvB,YAAY,OAAO,kBAAe,CAAC,MAChC,WAAW,OAAO,kBACrB;CACA,QAAQ,OAAO,cAAW,CAAC,MAAM,WAAW,OAAO,cAAc;CACjE,OAAO,OAAO,aAAU,CAAC,MAAM,WAAW,OAAO,aAAa;CAC9D,MAAM,OAAO,YAAS,CAAC,MAAM,WAAW,OAAO,YAAY;CAC3D,MAAM,OAAO,YAAS,CAAC,MAAM,WAAW,OAAO,YAAY;AAC7D"}
@@ -0,0 +1 @@
1
+ export declare const pythonLanguage: import("@codemirror/language").LanguageSupport;
@@ -0,0 +1,7 @@
1
+ import { python } from "@codemirror/lang-python";
2
+ //#region packages/components/src/components/Code/languages/python.tsx
3
+ var pythonLanguage = python();
4
+ //#endregion
5
+ export { pythonLanguage };
6
+
7
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","names":[],"sources":["../../../../src/components/Code/languages/python.tsx"],"sourcesContent":["import { python as pythonFn } from '@codemirror/lang-python';\n\nexport const pythonLanguage = pythonFn();\n"],"mappings":";;AAEA,IAAa,iBAAiB,OAAS"}
@@ -0,0 +1,7 @@
1
+ import { StreamLanguage, type StringStream } from '@codemirror/language';
2
+ export type ShellState = {
3
+ tokens: Tokenizer[];
4
+ };
5
+ type Tokenizer = (stream: StringStream, state: ShellState) => string | null;
6
+ export declare const shellLanguage: StreamLanguage<ShellState>;
7
+ export {};
@@ -0,0 +1,241 @@
1
+ import { StreamLanguage } from "@codemirror/language";
2
+ //#region packages/components/src/components/Code/languages/shell.tsx
3
+ var words = {};
4
+ function define(style, dict) {
5
+ for (let i = 0; i < dict.length; i++) words[dict[i]] = style;
6
+ }
7
+ var commonAtoms = ["true", "false"];
8
+ var commonKeywords = [
9
+ "if",
10
+ "then",
11
+ "do",
12
+ "else",
13
+ "elif",
14
+ "while",
15
+ "until",
16
+ "for",
17
+ "in",
18
+ "esac",
19
+ "fi",
20
+ "fin",
21
+ "fil",
22
+ "done",
23
+ "exit",
24
+ "set",
25
+ "unset",
26
+ "export",
27
+ "function"
28
+ ];
29
+ var commonCommands = [
30
+ "ab",
31
+ "awk",
32
+ "bash",
33
+ "beep",
34
+ "cat",
35
+ "cc",
36
+ "cd",
37
+ "chown",
38
+ "chmod",
39
+ "chroot",
40
+ "clear",
41
+ "cp",
42
+ "curl",
43
+ "cut",
44
+ "diff",
45
+ "echo",
46
+ "find",
47
+ "gawk",
48
+ "gcc",
49
+ "get",
50
+ "git",
51
+ "grep",
52
+ "hg",
53
+ "kill",
54
+ "killall",
55
+ "ln",
56
+ "ls",
57
+ "make",
58
+ "mkdir",
59
+ "openssl",
60
+ "mv",
61
+ "nc",
62
+ "nl",
63
+ "node",
64
+ "npm",
65
+ "ping",
66
+ "ps",
67
+ "restart",
68
+ "rm",
69
+ "rmdir",
70
+ "sed",
71
+ "service",
72
+ "sh",
73
+ "shopt",
74
+ "shred",
75
+ "source",
76
+ "sort",
77
+ "sleep",
78
+ "ssh",
79
+ "start",
80
+ "stop",
81
+ "su",
82
+ "sudo",
83
+ "svn",
84
+ "tee",
85
+ "telnet",
86
+ "top",
87
+ "touch",
88
+ "vi",
89
+ "vim",
90
+ "wall",
91
+ "wc",
92
+ "wget",
93
+ "who",
94
+ "write",
95
+ "yes",
96
+ "zsh",
97
+ "uv",
98
+ "poetry",
99
+ "pip",
100
+ "pipenv",
101
+ "pipx",
102
+ "pnpm",
103
+ "bun",
104
+ "yarn",
105
+ "deno"
106
+ ];
107
+ define("atom", commonAtoms);
108
+ define("keyword", commonKeywords);
109
+ define("builtin", commonCommands);
110
+ function tokenBase(stream, state) {
111
+ if (stream.eatSpace()) return null;
112
+ const sol = stream.sol();
113
+ const ch = stream.next();
114
+ if (ch == null) return null;
115
+ if (ch === "\\") {
116
+ stream.next();
117
+ return null;
118
+ }
119
+ if (ch === "'" || ch === "\"" || ch === "`") {
120
+ state.tokens.unshift(tokenString(ch, ch === "`" ? "quote" : "string"));
121
+ return tokenize(stream, state);
122
+ }
123
+ if (ch === "#") {
124
+ if (sol && stream.eat("!")) {
125
+ stream.skipToEnd();
126
+ return "meta";
127
+ }
128
+ stream.skipToEnd();
129
+ return "comment";
130
+ }
131
+ if (ch === "$") {
132
+ state.tokens.unshift(tokenDollar);
133
+ return tokenize(stream, state);
134
+ }
135
+ if (ch === "+" || ch === "=") return "operator";
136
+ if (ch === "-") {
137
+ stream.eat("-");
138
+ stream.eatWhile(/\w/);
139
+ return "attribute";
140
+ }
141
+ if (ch == "<") {
142
+ if (stream.match("<<")) return "operator";
143
+ const heredoc = stream.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);
144
+ if (Array.isArray(heredoc)) {
145
+ state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]));
146
+ return "string.special";
147
+ }
148
+ }
149
+ if (/\d/.test(ch)) {
150
+ stream.eatWhile(/\d/);
151
+ const next = stream.peek();
152
+ if (stream.eol() || next === void 0 || !/\w/.test(next)) return "number";
153
+ }
154
+ stream.eatWhile(/[\w-]/);
155
+ const cur = stream.current();
156
+ if (stream.peek() === "=" && /\w+/.test(cur)) return "def";
157
+ return Object.prototype.hasOwnProperty.call(words, cur) ? words[cur] : null;
158
+ }
159
+ function tokenString(quote, style) {
160
+ const close = quote === "(" ? ")" : quote === "{" ? "}" : quote;
161
+ return function(stream, state) {
162
+ let next, escaped = false;
163
+ while ((next = stream.next()) != null) {
164
+ if (next === close && !escaped) {
165
+ state.tokens.shift();
166
+ break;
167
+ } else if (next === "$" && !escaped && quote !== "'" && stream.peek() != close) {
168
+ escaped = true;
169
+ stream.backUp(1);
170
+ state.tokens.unshift(tokenDollar);
171
+ break;
172
+ } else if (!escaped && quote !== close && next === quote) {
173
+ state.tokens.unshift(tokenString(quote, style));
174
+ return tokenize(stream, state);
175
+ } else if (!escaped && /['"]/.test(next) && !/['"]/.test(quote)) {
176
+ state.tokens.unshift(tokenStringStart(next, "string"));
177
+ stream.backUp(1);
178
+ break;
179
+ }
180
+ escaped = !escaped && next === "\\";
181
+ }
182
+ return style;
183
+ };
184
+ }
185
+ function tokenStringStart(quote, style) {
186
+ return function(stream, state) {
187
+ state.tokens[0] = tokenString(quote, style);
188
+ stream.next();
189
+ return tokenize(stream, state);
190
+ };
191
+ }
192
+ var tokenDollar = function(stream, state) {
193
+ if (state.tokens.length > 1) stream.eat("$");
194
+ const ch = stream.next();
195
+ if (ch == null) {
196
+ state.tokens.shift();
197
+ return "def";
198
+ }
199
+ if (/['"({]/.test(ch)) {
200
+ state.tokens[0] = tokenString(ch, ch === "(" ? "quote" : ch === "{" ? "def" : "string");
201
+ return tokenize(stream, state);
202
+ }
203
+ if (!/\d/.test(ch)) stream.eatWhile(/\w/);
204
+ state.tokens.shift();
205
+ return "def";
206
+ };
207
+ function tokenHeredoc(delim) {
208
+ return function(stream, state) {
209
+ if (stream.sol() && stream.string === delim) state.tokens.shift();
210
+ stream.skipToEnd();
211
+ return "string.special";
212
+ };
213
+ }
214
+ function tokenize(stream, state) {
215
+ return (state.tokens[0] || tokenBase)(stream, state);
216
+ }
217
+ var shellLanguage = StreamLanguage.define({
218
+ name: "shell",
219
+ startState() {
220
+ return { tokens: [] };
221
+ },
222
+ token(stream, state) {
223
+ return tokenize(stream, state);
224
+ },
225
+ languageData: {
226
+ autocomplete: commonAtoms.concat(commonKeywords, commonCommands),
227
+ closeBrackets: { brackets: [
228
+ "(",
229
+ "[",
230
+ "{",
231
+ "'",
232
+ "\"",
233
+ "`"
234
+ ] },
235
+ commentTokens: { line: "#" }
236
+ }
237
+ });
238
+ //#endregion
239
+ export { shellLanguage };
240
+
241
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","names":[],"sources":["../../../../src/components/Code/languages/shell.tsx"],"sourcesContent":["// Inline of `@codemirror/legacy-modes/mode/shell` to add additional common commands\nimport { StreamLanguage, type StringStream } from '@codemirror/language';\n\nexport type ShellState = {\n tokens: Tokenizer[];\n};\n\ntype Tokenizer = (stream: StringStream, state: ShellState) => string | null;\n\nconst words: Record<string, string> = {};\nfunction define(style: string, dict: readonly string[]) {\n for (let i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n}\n\nconst commonAtoms = ['true', 'false'];\nconst commonKeywords = [\n 'if',\n 'then',\n 'do',\n 'else',\n 'elif',\n 'while',\n 'until',\n 'for',\n 'in',\n 'esac',\n 'fi',\n 'fin',\n 'fil',\n 'done',\n 'exit',\n 'set',\n 'unset',\n 'export',\n 'function',\n];\nconst commonCommands = [\n 'ab',\n 'awk',\n 'bash',\n 'beep',\n 'cat',\n 'cc',\n 'cd',\n 'chown',\n 'chmod',\n 'chroot',\n 'clear',\n 'cp',\n 'curl',\n 'cut',\n 'diff',\n 'echo',\n 'find',\n 'gawk',\n 'gcc',\n 'get',\n 'git',\n 'grep',\n 'hg',\n 'kill',\n 'killall',\n 'ln',\n 'ls',\n 'make',\n 'mkdir',\n 'openssl',\n 'mv',\n 'nc',\n 'nl',\n 'node',\n 'npm',\n 'ping',\n 'ps',\n 'restart',\n 'rm',\n 'rmdir',\n 'sed',\n 'service',\n 'sh',\n 'shopt',\n 'shred',\n 'source',\n 'sort',\n 'sleep',\n 'ssh',\n 'start',\n 'stop',\n 'su',\n 'sudo',\n 'svn',\n 'tee',\n 'telnet',\n 'top',\n 'touch',\n 'vi',\n 'vim',\n 'wall',\n 'wc',\n 'wget',\n 'who',\n 'write',\n 'yes',\n 'zsh',\n\n 'uv',\n 'poetry',\n 'pip',\n 'pipenv',\n 'pipx',\n\n 'pnpm',\n 'bun',\n 'yarn',\n 'deno',\n];\n\ndefine('atom', commonAtoms);\ndefine('keyword', commonKeywords);\ndefine('builtin', commonCommands);\n\nfunction tokenBase(stream: StringStream, state: ShellState): string | null {\n if (stream.eatSpace()) return null;\n\n const sol = stream.sol();\n const ch = stream.next();\n if (ch == null) return null;\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === \"'\" || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === '`' ? 'quote' : 'string'));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta';\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == '<') {\n if (stream.match('<<')) return 'operator';\n const heredoc = stream.match(/^<-?\\s*(?:['\"]([^'\"]*)['\"]|([^'\"\\s]*))/);\n if (Array.isArray(heredoc)) {\n state.tokens.unshift(tokenHeredoc(heredoc[1] || heredoc[2]));\n return 'string.special';\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n const next = stream.peek();\n if (stream.eol() || next === undefined || !/\\w/.test(next)) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n const cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return Object.prototype.hasOwnProperty.call(words, cur) ? words[cur] : null;\n}\n\nfunction tokenString(quote: string, style: string): Tokenizer {\n const close = quote === '(' ? ')' : quote === '{' ? '}' : quote;\n return function (stream: StringStream, state: ShellState) {\n let next,\n escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (\n next === '$' &&\n !escaped &&\n quote !== \"'\" &&\n stream.peek() != close\n ) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style));\n return tokenize(stream, state);\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, 'string'));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n}\n\nfunction tokenStringStart(quote: string, style: string): Tokenizer {\n return function (stream: StringStream, state: ShellState) {\n state.tokens[0] = tokenString(quote, style);\n stream.next();\n return tokenize(stream, state);\n };\n}\n\nconst tokenDollar: Tokenizer = function (stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n const ch = stream.next();\n if (ch == null) {\n state.tokens.shift();\n return 'def';\n }\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(\n ch,\n ch === '(' ? 'quote' : ch === '{' ? 'def' : 'string'\n );\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n};\n\nfunction tokenHeredoc(delim: string | undefined): Tokenizer {\n return function (stream: StringStream, state: ShellState) {\n if (stream.sol() && stream.string === delim) state.tokens.shift();\n stream.skipToEnd();\n return 'string.special';\n };\n}\n\nfunction tokenize(stream: StringStream, state: ShellState): string | null {\n return (state.tokens[0] || tokenBase)(stream, state);\n}\n\nexport const shellLanguage = StreamLanguage.define<ShellState>({\n name: 'shell',\n startState() {\n return { tokens: [] };\n },\n token(stream, state) {\n return tokenize(stream, state);\n },\n languageData: {\n autocomplete: commonAtoms.concat(commonKeywords, commonCommands),\n closeBrackets: { brackets: ['(', '[', '{', \"'\", '\"', '`'] },\n commentTokens: { line: '#' },\n },\n});\n"],"mappings":";;AASA,IAAM,QAAgC,CAAC;AACvC,SAAS,OAAO,OAAe,MAAyB;CACtD,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAC/B,MAAM,KAAK,MAAM;AAErB;AAEA,IAAM,cAAc,CAAC,QAAQ,OAAO;AACpC,IAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,IAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;AACF;AAEA,OAAO,QAAQ,WAAW;AAC1B,OAAO,WAAW,cAAc;AAChC,OAAO,WAAW,cAAc;AAEhC,SAAS,UAAU,QAAsB,OAAkC;CACzE,IAAI,OAAO,SAAS,GAAG,OAAO;CAE9B,MAAM,MAAM,OAAO,IAAI;CACvB,MAAM,KAAK,OAAO,KAAK;CACvB,IAAI,MAAM,MAAM,OAAO;CAEvB,IAAI,OAAO,MAAM;EACf,OAAO,KAAK;EACZ,OAAO;CACT;CACA,IAAI,OAAO,OAAO,OAAO,QAAO,OAAO,KAAK;EAC1C,MAAM,OAAO,QAAQ,YAAY,IAAI,OAAO,MAAM,UAAU,QAAQ,CAAC;EACrE,OAAO,SAAS,QAAQ,KAAK;CAC/B;CACA,IAAI,OAAO,KAAK;EACd,IAAI,OAAO,OAAO,IAAI,GAAG,GAAG;GAC1B,OAAO,UAAU;GACjB,OAAO;EACT;EACA,OAAO,UAAU;EACjB,OAAO;CACT;CACA,IAAI,OAAO,KAAK;EACd,MAAM,OAAO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"}
@@ -0,0 +1 @@
1
+ export declare const typescriptLanguage: import("@codemirror/language").LanguageSupport;
@@ -0,0 +1,7 @@
1
+ import { javascript } from "@codemirror/lang-javascript";
2
+ //#region packages/components/src/components/Code/languages/typescript.tsx
3
+ var typescriptLanguage = javascript({ typescript: true });
4
+ //#endregion
5
+ export { typescriptLanguage };
6
+
7
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","names":[],"sources":["../../../../src/components/Code/languages/typescript.tsx"],"sourcesContent":["import { javascript as javascriptFn } from '@codemirror/lang-javascript';\n\nexport const typescriptLanguage = javascriptFn({ typescript: true });\n"],"mappings":";;AAEA,IAAa,qBAAqB,WAAa,EAAE,YAAY,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { LanguageSupport } from '@codemirror/language';
2
+ export declare const yamlLanguage: LanguageSupport;
@@ -0,0 +1,44 @@
1
+ import { LRLanguage, LanguageSupport, delimitedIndent, foldInside, foldNodeProp, indentNodeProp } from "@codemirror/language";
2
+ import { parser } from "@lezer/yaml";
3
+ //#region packages/components/src/components/Code/languages/yaml.tsx
4
+ var yamlLanguage = new LanguageSupport(LRLanguage.define({
5
+ name: "yaml",
6
+ parser: parser.configure({ props: [indentNodeProp.add({
7
+ Stream: (cx) => {
8
+ for (let before = cx.node.resolve(cx.pos, -1); before && before.to >= cx.pos; before = before.parent) {
9
+ if (before.name == "BlockLiteralContent" && before.from < before.to) return cx.baseIndentFor(before);
10
+ if (before.name == "BlockLiteral") return cx.baseIndentFor(before) + cx.unit;
11
+ if (before.name == "BlockSequence" || before.name == "BlockMapping") return cx.column(before.from, 1);
12
+ if (before.name == "QuotedLiteral") return null;
13
+ if (before.name == "Literal") {
14
+ const col = cx.column(before.from, 1);
15
+ if (col == cx.lineIndent(before.from, 1)) return col;
16
+ if (before.to > cx.pos) return null;
17
+ }
18
+ }
19
+ return null;
20
+ },
21
+ FlowMapping: delimitedIndent({ closing: "}" }),
22
+ FlowSequence: delimitedIndent({ closing: "]" })
23
+ }), foldNodeProp.add({
24
+ "FlowMapping FlowSequence": foldInside,
25
+ "Item Pair BlockLiteral": (node, state) => {
26
+ if (state == null) return {
27
+ from: node.from,
28
+ to: node.to
29
+ };
30
+ return {
31
+ from: state.doc.lineAt(node.from).to,
32
+ to: node.to
33
+ };
34
+ }
35
+ })] }),
36
+ languageData: {
37
+ commentTokens: { line: "#" },
38
+ indentOnInput: /^\s*[\]}]$/
39
+ }
40
+ }));
41
+ //#endregion
42
+ export { yamlLanguage };
43
+
44
+ //# sourceMappingURL=yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.js","names":[],"sources":["../../../../src/components/Code/languages/yaml.tsx"],"sourcesContent":["import {\n LRLanguage,\n LanguageSupport,\n delimitedIndent,\n foldInside,\n foldNodeProp,\n indentNodeProp,\n} from '@codemirror/language';\nimport type { SyntaxNode } from '@lezer/common';\nimport { parser as yamlParser } from '@lezer/yaml';\n\nexport const yamlLanguage = new LanguageSupport(\n LRLanguage.define({\n name: 'yaml',\n parser: yamlParser.configure({\n props: [\n indentNodeProp.add({\n Stream: (cx) => {\n for (\n let before = cx.node.resolve(cx.pos, -1) as SyntaxNode | null;\n before && before.to >= cx.pos;\n before = before.parent\n ) {\n if (\n before.name == 'BlockLiteralContent' &&\n before.from < before.to\n )\n return cx.baseIndentFor(before);\n if (before.name == 'BlockLiteral')\n return cx.baseIndentFor(before) + cx.unit;\n if (\n before.name == 'BlockSequence' ||\n before.name == 'BlockMapping'\n )\n return cx.column(before.from, 1);\n if (before.name == 'QuotedLiteral') return null;\n if (before.name == 'Literal') {\n const col = cx.column(before.from, 1);\n if (col == cx.lineIndent(before.from, 1)) return col; // Start on own line\n if (before.to > cx.pos) return null;\n }\n }\n return null;\n },\n FlowMapping: delimitedIndent({ closing: '}' }),\n FlowSequence: delimitedIndent({ closing: ']' }),\n }),\n foldNodeProp.add({\n 'FlowMapping FlowSequence': foldInside,\n 'Item Pair BlockLiteral': (node, state) => {\n // Only applies when running with EditorLite\n if (state == null) return { from: node.from, to: node.to };\n return { from: state.doc.lineAt(node.from).to, to: node.to };\n },\n }),\n ],\n }),\n languageData: {\n commentTokens: { line: '#' },\n indentOnInput: /^\\s*[\\]}]$/,\n },\n })\n);\n"],"mappings":";;;AAWA,IAAa,eAAe,IAAI,gBAC9B,WAAW,OAAO;CAChB,MAAM;CACN,QAAQ,OAAW,UAAU,EAC3B,OAAO,CACL,eAAe,IAAI;EACjB,SAAS,OAAO;GACd,KACE,IAAI,SAAS,GAAG,KAAK,QAAQ,GAAG,KAAK,EAAE,GACvC,UAAU,OAAO,MAAM,GAAG,KAC1B,SAAS,OAAO,QAChB;IACA,IACE,OAAO,QAAQ,yBACf,OAAO,OAAO,OAAO,IAErB,OAAO,GAAG,cAAc,MAAM;IAChC,IAAI,OAAO,QAAQ,gBACjB,OAAO,GAAG,cAAc,MAAM,IAAI,GAAG;IACvC,IACE,OAAO,QAAQ,mBACf,OAAO,QAAQ,gBAEf,OAAO,GAAG,OAAO,OAAO,MAAM,CAAC;IACjC,IAAI,OAAO,QAAQ,iBAAiB,OAAO;IAC3C,IAAI,OAAO,QAAQ,WAAW;KAC5B,MAAM,MAAM,GAAG,OAAO,OAAO,MAAM,CAAC;KACpC,IAAI,OAAO,GAAG,WAAW,OAAO,MAAM,CAAC,GAAG,OAAO;KACjD,IAAI,OAAO,KAAK,GAAG,KAAK,OAAO;IACjC;GACF;GACA,OAAO;EACT;EACA,aAAa,gBAAgB,EAAE,SAAS,IAAI,CAAC;EAC7C,cAAc,gBAAgB,EAAE,SAAS,IAAI,CAAC;CAChD,CAAC,GACD,aAAa,IAAI;EACf,4BAA4B;EAC5B,2BAA2B,MAAM,UAAU;GAEzC,IAAI,SAAS,MAAM,OAAO;IAAE,MAAM,KAAK;IAAM,IAAI,KAAK;GAAG;GACzD,OAAO;IAAE,MAAM,MAAM,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;IAAI,IAAI,KAAK;GAAG;EAC7D;CACF,CAAC,CACH,EACF,CAAC;CACD,cAAc;EACZ,eAAe,EAAE,MAAM,IAAI;EAC3B,eAAe;CACjB;AACF,CAAC,CACH"}
@@ -0,0 +1,8 @@
1
+ export type CodeLanguageType = 'yaml' | 'json' | 'javascript' | 'typescript' | 'python' | 'shell' | 'markdown';
2
+ export type SyntaxHighlighterRow = {
3
+ type: string;
4
+ tagName: string;
5
+ children: SyntaxHighlighterRow[];
6
+ properties: Record<string, unknown>;
7
+ value?: string;
8
+ };
File without changes
@@ -0,0 +1,4 @@
1
+ import type { SyntaxHighlighterRow } from './types.js';
2
+ export declare function isValidUrl(string: string): boolean;
3
+ export declare function getMimeTypeFromDataUrl(string: string): string | null;
4
+ export declare function calculateTotalHeight(rows: SyntaxHighlighterRow[], containerWidth?: number): number;
@@ -0,0 +1,27 @@
1
+ import "./constants.js";
2
+ //#region packages/components/src/components/Code/utils.tsx
3
+ var DATA_URL_BASE64_REGEX = /^data:([^;,]+);base64,/i;
4
+ function isValidUrl(string) {
5
+ try {
6
+ const path = new URL(string).pathname.toLowerCase();
7
+ return /\/[^/]+\.(jpg|jpeg|png|gif|svg|webp)$/i.test(path);
8
+ } catch {
9
+ return false;
10
+ }
11
+ }
12
+ function getMimeTypeFromDataUrl(string) {
13
+ return string.match(DATA_URL_BASE64_REGEX)?.[1] ?? null;
14
+ }
15
+ function calculateTotalHeight(rows, containerWidth) {
16
+ const height = rows.reduce((sum, row) => {
17
+ const text = row.children.map((child) => child.children?.[0]?.value || "").join("");
18
+ const charsPerLine = containerWidth ? Math.floor(containerWidth / 8) : 80;
19
+ const additionalRows = Math.floor(text.length / charsPerLine);
20
+ return sum + 1 + additionalRows;
21
+ }, 0) * 20;
22
+ return Math.min(height, 450);
23
+ }
24
+ //#endregion
25
+ export { calculateTotalHeight, getMimeTypeFromDataUrl, isValidUrl };
26
+
27
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/Code/utils.tsx"],"sourcesContent":["import { MAX_CODE_HEIGHT, ROW_HEIGHT, ROW_WIDTH } from './constants';\nimport type { SyntaxHighlighterRow } from './types';\n\nconst DATA_URL_BASE64_REGEX = /^data:([^;,]+);base64,/i;\n\nexport function isValidUrl(string: string) {\n try {\n const url = new URL(string);\n const path = url.pathname.toLowerCase();\n return /\\/[^/]+\\.(jpg|jpeg|png|gif|svg|webp)$/i.test(path);\n } catch {\n return false;\n }\n}\n\nexport function getMimeTypeFromDataUrl(string: string): string | null {\n const match = string.match(DATA_URL_BASE64_REGEX);\n return match?.[1] ?? null;\n}\n\nexport function calculateTotalHeight(\n rows: SyntaxHighlighterRow[],\n containerWidth?: number\n) {\n const totalRows = rows.reduce((sum, row) => {\n const text = row.children\n .map((child) => child.children?.[0]?.value || '')\n .join('');\n\n const charsPerLine = containerWidth\n ? Math.floor(containerWidth / 8)\n : ROW_WIDTH;\n const additionalRows = Math.floor(text.length / charsPerLine);\n return sum + 1 + additionalRows;\n }, 0);\n\n const height = totalRows * ROW_HEIGHT;\n\n return Math.min(height, MAX_CODE_HEIGHT);\n}\n"],"mappings":";;AAGA,IAAM,wBAAwB;AAE9B,SAAgB,WAAW,QAAgB;CACzC,IAAI;EAEF,MAAM,OAAO,IADG,IAAI,MACP,CAAA,CAAI,SAAS,YAAY;EACtC,OAAO,yCAAyC,KAAK,IAAI;CAC3D,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,uBAAuB,QAA+B;CAEpE,OADc,OAAO,MAAM,qBACpB,CAAA,GAAQ,MAAM;AACvB;AAEA,SAAgB,qBACd,MACA,gBACA;CAaA,MAAM,SAZY,KAAK,QAAQ,KAAK,QAAQ;EAC1C,MAAM,OAAO,IAAI,SACd,KAAK,UAAU,MAAM,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAChD,KAAK,EAAE;EAEV,MAAM,eAAe,iBACjB,KAAK,MAAM,iBAAiB,CAAC,IAAA;EAEjC,MAAM,iBAAiB,KAAK,MAAM,KAAK,SAAS,YAAY;EAC5D,OAAO,MAAM,IAAI;CACnB,GAAG,CAEY,IAAA;CAEf,OAAO,KAAK,IAAI,QAAA,GAAuB;AACzC"}