@health-samurai/react-components 0.0.0-alpha.4 → 0.0.0-alpha.6

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 (304) hide show
  1. package/dist/bundle.css +1375 -484
  2. package/dist/src/components/code-editor/http/grammar/http.d.ts +3 -0
  3. package/dist/src/components/code-editor/http/grammar/http.d.ts.map +1 -0
  4. package/dist/src/components/code-editor/http/grammar/http.grammar +74 -0
  5. package/dist/src/components/code-editor/http/grammar/http.js +38 -0
  6. package/dist/src/components/code-editor/http/grammar/http.js.map +1 -0
  7. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts +2 -0
  8. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts.map +1 -0
  9. package/dist/src/components/code-editor/http/grammar/http.terms.js +4 -0
  10. package/dist/src/components/code-editor/http/grammar/http.terms.js.map +1 -0
  11. package/dist/src/components/code-editor/http/grammar/http.test.d.ts +2 -0
  12. package/dist/src/components/code-editor/http/grammar/http.test.d.ts.map +1 -0
  13. package/dist/src/components/code-editor/http/grammar/http.test.js +80 -0
  14. package/dist/src/components/code-editor/http/grammar/http.test.js.map +1 -0
  15. package/dist/src/components/code-editor/http/index.d.ts +4 -0
  16. package/dist/src/components/code-editor/http/index.d.ts.map +1 -0
  17. package/dist/src/components/code-editor/http/index.js +66 -0
  18. package/dist/src/components/code-editor/http/index.js.map +1 -0
  19. package/dist/src/components/code-editor/index.d.ts +14 -2
  20. package/dist/src/components/code-editor/index.d.ts.map +1 -1
  21. package/dist/src/components/code-editor/index.js +309 -20
  22. package/dist/src/components/code-editor/index.js.map +1 -1
  23. package/dist/src/components/code-editor.stories.d.ts +1 -0
  24. package/dist/src/components/code-editor.stories.d.ts.map +1 -1
  25. package/dist/src/components/code-editor.stories.js +255 -2
  26. package/dist/src/components/code-editor.stories.js.map +1 -1
  27. package/dist/src/components/copy-icon.d.ts +5 -1
  28. package/dist/src/components/copy-icon.d.ts.map +1 -1
  29. package/dist/src/components/copy-icon.js +41 -3
  30. package/dist/src/components/copy-icon.js.map +1 -1
  31. package/dist/src/components/data-table.d.ts +8 -0
  32. package/dist/src/components/data-table.d.ts.map +1 -0
  33. package/dist/src/components/data-table.js +65 -0
  34. package/dist/src/components/data-table.js.map +1 -0
  35. package/dist/src/components/data-table.stories.d.ts +7 -0
  36. package/dist/src/components/data-table.stories.d.ts.map +1 -0
  37. package/dist/src/components/data-table.stories.js +44 -0
  38. package/dist/src/components/data-table.stories.js.map +1 -0
  39. package/dist/src/components/fhir-structure-view.d.ts +34 -0
  40. package/dist/src/components/fhir-structure-view.d.ts.map +1 -0
  41. package/dist/src/components/fhir-structure-view.js +229 -0
  42. package/dist/src/components/fhir-structure-view.js.map +1 -0
  43. package/dist/src/components/fhir-structure-view.stories.d.ts +7 -0
  44. package/dist/src/components/fhir-structure-view.stories.d.ts.map +1 -0
  45. package/dist/src/components/fhir-structure-view.stories.js +447 -0
  46. package/dist/src/components/fhir-structure-view.stories.js.map +1 -0
  47. package/dist/src/components/patient-table.d.ts +73 -0
  48. package/dist/src/components/patient-table.d.ts.map +1 -0
  49. package/dist/src/components/patient-table.js +921 -0
  50. package/dist/src/components/patient-table.js.map +1 -0
  51. package/dist/src/components/patient-table.stories.d.ts +111 -0
  52. package/dist/src/components/patient-table.stories.d.ts.map +1 -0
  53. package/dist/src/components/patient-table.stories.js +172 -0
  54. package/dist/src/components/patient-table.stories.js.map +1 -0
  55. package/dist/src/components/request-line-editor.d.ts +13 -35
  56. package/dist/src/components/request-line-editor.d.ts.map +1 -1
  57. package/dist/src/components/request-line-editor.js +72 -49
  58. package/dist/src/components/request-line-editor.js.map +1 -1
  59. package/dist/src/components/request-line-editor.stories.d.ts.map +1 -1
  60. package/dist/src/components/request-line-editor.stories.js +17 -53
  61. package/dist/src/components/request-line-editor.stories.js.map +1 -1
  62. package/dist/src/components/segment-control.d.ts +16 -0
  63. package/dist/src/components/segment-control.d.ts.map +1 -0
  64. package/dist/src/components/segment-control.js +48 -0
  65. package/dist/src/components/segment-control.js.map +1 -0
  66. package/dist/src/components/segment-control.stories.d.ts +15 -0
  67. package/dist/src/components/segment-control.stories.d.ts.map +1 -0
  68. package/dist/src/components/segment-control.stories.js +33 -0
  69. package/dist/src/components/segment-control.stories.js.map +1 -0
  70. package/dist/src/components/split-button.d.ts +5 -0
  71. package/dist/src/components/split-button.d.ts.map +1 -0
  72. package/dist/src/components/split-button.js +12 -0
  73. package/dist/src/components/split-button.js.map +1 -0
  74. package/dist/src/components/split-button.stories.d.ts +7 -0
  75. package/dist/src/components/split-button.stories.d.ts.map +1 -0
  76. package/dist/src/components/split-button.stories.js +57 -0
  77. package/dist/src/components/split-button.stories.js.map +1 -0
  78. package/dist/src/components/tree-view.d.ts +22 -0
  79. package/dist/src/components/tree-view.d.ts.map +1 -0
  80. package/dist/src/components/tree-view.js +101 -0
  81. package/dist/src/components/tree-view.js.map +1 -0
  82. package/dist/src/components/tree-view.stories.d.ts +13 -0
  83. package/dist/src/components/tree-view.stories.d.ts.map +1 -0
  84. package/dist/src/components/tree-view.stories.js +274 -0
  85. package/dist/src/components/tree-view.stories.js.map +1 -0
  86. package/dist/src/icons.d.ts +9 -0
  87. package/dist/src/icons.d.ts.map +1 -0
  88. package/dist/src/icons.js +279 -0
  89. package/dist/src/icons.js.map +1 -0
  90. package/dist/src/index.css +42 -3
  91. package/dist/src/index.d.ts +9 -1
  92. package/dist/src/index.d.ts.map +1 -1
  93. package/dist/src/index.js +9 -1
  94. package/dist/src/index.js.map +1 -1
  95. package/dist/src/shadcn/components/ui/accordion.d.ts.map +1 -1
  96. package/dist/src/shadcn/components/ui/accordion.js +23 -5
  97. package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
  98. package/dist/src/shadcn/components/ui/alert-dialog.d.ts +3 -1
  99. package/dist/src/shadcn/components/ui/alert-dialog.d.ts.map +1 -1
  100. package/dist/src/shadcn/components/ui/alert-dialog.js +5 -2
  101. package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
  102. package/dist/src/shadcn/components/ui/alert.d.ts.map +1 -1
  103. package/dist/src/shadcn/components/ui/alert.js +12 -5
  104. package/dist/src/shadcn/components/ui/alert.js.map +1 -1
  105. package/dist/src/shadcn/components/ui/avatar.d.ts.map +1 -1
  106. package/dist/src/shadcn/components/ui/avatar.js +4 -3
  107. package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
  108. package/dist/src/shadcn/components/ui/badge.d.ts.map +1 -1
  109. package/dist/src/shadcn/components/ui/badge.js +16 -5
  110. package/dist/src/shadcn/components/ui/badge.js.map +1 -1
  111. package/dist/src/shadcn/components/ui/breadcrumb.d.ts.map +1 -1
  112. package/dist/src/shadcn/components/ui/breadcrumb.js +6 -6
  113. package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
  114. package/dist/src/shadcn/components/ui/button.d.ts.map +1 -1
  115. package/dist/src/shadcn/components/ui/button.js +19 -11
  116. package/dist/src/shadcn/components/ui/button.js.map +1 -1
  117. package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
  118. package/dist/src/shadcn/components/ui/card.js +14 -6
  119. package/dist/src/shadcn/components/ui/card.js.map +1 -1
  120. package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
  121. package/dist/src/shadcn/components/ui/checkbox.js +20 -5
  122. package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
  123. package/dist/src/shadcn/components/ui/checkbox.stories.d.ts.map +1 -1
  124. package/dist/src/shadcn/components/ui/checkbox.stories.js +44 -35
  125. package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
  126. package/dist/src/shadcn/components/ui/combobox.d.ts +18 -0
  127. package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -0
  128. package/dist/src/shadcn/components/ui/combobox.js +121 -0
  129. package/dist/src/shadcn/components/ui/combobox.js.map +1 -0
  130. package/dist/src/shadcn/components/ui/combobox.stories.d.ts +11 -0
  131. package/dist/src/shadcn/components/ui/combobox.stories.d.ts.map +1 -0
  132. package/dist/src/shadcn/components/ui/combobox.stories.js +16 -0
  133. package/dist/src/shadcn/components/ui/combobox.stories.js.map +1 -0
  134. package/dist/src/shadcn/components/ui/command.d.ts.map +1 -1
  135. package/dist/src/shadcn/components/ui/command.js +73 -12
  136. package/dist/src/shadcn/components/ui/command.js.map +1 -1
  137. package/dist/src/shadcn/components/ui/command.stories.js +0 -1
  138. package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
  139. package/dist/src/shadcn/components/ui/dialog.d.ts.map +1 -1
  140. package/dist/src/shadcn/components/ui/dialog.js +35 -7
  141. package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
  142. package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
  143. package/dist/src/shadcn/components/ui/drawer.js +26 -5
  144. package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
  145. package/dist/src/shadcn/components/ui/dropdown-menu.d.ts.map +1 -1
  146. package/dist/src/shadcn/components/ui/dropdown-menu.js +12 -1
  147. package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
  148. package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
  149. package/dist/src/shadcn/components/ui/form.js +12 -4
  150. package/dist/src/shadcn/components/ui/form.js.map +1 -1
  151. package/dist/src/shadcn/components/ui/input.d.ts +3 -1
  152. package/dist/src/shadcn/components/ui/input.d.ts.map +1 -1
  153. package/dist/src/shadcn/components/ui/input.js +126 -17
  154. package/dist/src/shadcn/components/ui/input.js.map +1 -1
  155. package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
  156. package/dist/src/shadcn/components/ui/label.js +8 -1
  157. package/dist/src/shadcn/components/ui/label.js.map +1 -1
  158. package/dist/src/shadcn/components/ui/menubar.d.ts.map +1 -1
  159. package/dist/src/shadcn/components/ui/menubar.js +35 -13
  160. package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
  161. package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
  162. package/dist/src/shadcn/components/ui/pagination.js +6 -6
  163. package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
  164. package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
  165. package/dist/src/shadcn/components/ui/popover.js +12 -1
  166. package/dist/src/shadcn/components/ui/popover.js.map +1 -1
  167. package/dist/src/shadcn/components/ui/progress.d.ts.map +1 -1
  168. package/dist/src/shadcn/components/ui/progress.js +6 -2
  169. package/dist/src/shadcn/components/ui/progress.js.map +1 -1
  170. package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
  171. package/dist/src/shadcn/components/ui/radio-group.js +11 -6
  172. package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
  173. package/dist/src/shadcn/components/ui/radio-group.stories.d.ts.map +1 -1
  174. package/dist/src/shadcn/components/ui/radio-group.stories.js +57 -34
  175. package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
  176. package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
  177. package/dist/src/shadcn/components/ui/scroll-area.js +9 -3
  178. package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
  179. package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
  180. package/dist/src/shadcn/components/ui/select.js +49 -14
  181. package/dist/src/shadcn/components/ui/select.js.map +1 -1
  182. package/dist/src/shadcn/components/ui/select.stories.d.ts.map +1 -1
  183. package/dist/src/shadcn/components/ui/select.stories.js +1 -4
  184. package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
  185. package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
  186. package/dist/src/shadcn/components/ui/separator.js +7 -1
  187. package/dist/src/shadcn/components/ui/separator.js.map +1 -1
  188. package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
  189. package/dist/src/shadcn/components/ui/sidebar.js +20 -6
  190. package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
  191. package/dist/src/shadcn/components/ui/skeleton.d.ts.map +1 -1
  192. package/dist/src/shadcn/components/ui/skeleton.js +3 -1
  193. package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
  194. package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
  195. package/dist/src/shadcn/components/ui/slider.js +34 -4
  196. package/dist/src/shadcn/components/ui/slider.js.map +1 -1
  197. package/dist/src/shadcn/components/ui/sonner.d.ts +16 -1
  198. package/dist/src/shadcn/components/ui/sonner.d.ts.map +1 -1
  199. package/dist/src/shadcn/components/ui/sonner.js +23 -3
  200. package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
  201. package/dist/src/shadcn/components/ui/sonner.stories.d.ts.map +1 -1
  202. package/dist/src/shadcn/components/ui/sonner.stories.js +19 -11
  203. package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
  204. package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
  205. package/dist/src/shadcn/components/ui/switch.js +18 -2
  206. package/dist/src/shadcn/components/ui/switch.js.map +1 -1
  207. package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
  208. package/dist/src/shadcn/components/ui/table.js +12 -8
  209. package/dist/src/shadcn/components/ui/table.js.map +1 -1
  210. package/dist/src/shadcn/components/ui/tabs.d.ts +21 -3
  211. package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
  212. package/dist/src/shadcn/components/ui/tabs.js +315 -9
  213. package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
  214. package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +1 -1
  215. package/dist/src/shadcn/components/ui/tabs.stories.js +50 -1
  216. package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
  217. package/dist/src/shadcn/components/ui/textarea.d.ts.map +1 -1
  218. package/dist/src/shadcn/components/ui/textarea.js +15 -1
  219. package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
  220. package/dist/src/shadcn/components/ui/toggle-group.d.ts.map +1 -1
  221. package/dist/src/shadcn/components/ui/toggle-group.js +6 -2
  222. package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
  223. package/dist/src/shadcn/components/ui/toggle.d.ts.map +1 -1
  224. package/dist/src/shadcn/components/ui/toggle.js +18 -6
  225. package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
  226. package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
  227. package/dist/src/shadcn/components/ui/tooltip.js +11 -1
  228. package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
  229. package/dist/src/shadcn/components/ui/tree.d.ts +28 -0
  230. package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -0
  231. package/dist/src/shadcn/components/ui/tree.js +122 -0
  232. package/dist/src/shadcn/components/ui/tree.js.map +1 -0
  233. package/dist/src/typography.css +12 -0
  234. package/package.json +13 -2
  235. package/src/components/code-editor/http/grammar/http.grammar +74 -0
  236. package/src/components/code-editor/http/grammar/http.terms.ts +9 -0
  237. package/src/components/code-editor/http/grammar/http.test.ts +110 -0
  238. package/src/components/code-editor/http/grammar/http.ts +21 -0
  239. package/src/components/code-editor/http/index.ts +87 -0
  240. package/src/components/code-editor/index.tsx +307 -21
  241. package/src/components/code-editor.stories.tsx +295 -1
  242. package/src/components/copy-icon.tsx +57 -3
  243. package/src/components/data-table.stories.tsx +38 -0
  244. package/src/components/data-table.tsx +117 -0
  245. package/src/components/fhir-structure-view.stories.tsx +439 -0
  246. package/src/components/fhir-structure-view.tsx +231 -0
  247. package/src/components/patient-table.stories.tsx +111 -0
  248. package/src/components/patient-table.tsx +1301 -0
  249. package/src/components/request-line-editor.stories.tsx +17 -27
  250. package/src/components/request-line-editor.tsx +98 -61
  251. package/src/components/segment-control.stories.tsx +29 -0
  252. package/src/components/segment-control.tsx +80 -0
  253. package/src/components/split-button.stories.tsx +49 -0
  254. package/src/components/split-button.tsx +17 -0
  255. package/src/components/tree-view.stories.tsx +259 -0
  256. package/src/components/tree-view.tsx +172 -0
  257. package/src/icons.tsx +287 -0
  258. package/src/index.css +42 -3
  259. package/src/index.tsx +9 -2
  260. package/src/shadcn/components/ui/accordion.tsx +66 -8
  261. package/src/shadcn/components/ui/alert-dialog.tsx +6 -2
  262. package/src/shadcn/components/ui/alert.tsx +53 -15
  263. package/src/shadcn/components/ui/avatar.tsx +17 -6
  264. package/src/shadcn/components/ui/badge.tsx +67 -18
  265. package/src/shadcn/components/ui/breadcrumb.tsx +35 -7
  266. package/src/shadcn/components/ui/button.tsx +118 -57
  267. package/src/shadcn/components/ui/card.tsx +44 -13
  268. package/src/shadcn/components/ui/checkbox.stories.tsx +20 -24
  269. package/src/shadcn/components/ui/checkbox.tsx +45 -4
  270. package/src/shadcn/components/ui/combobox.stories.tsx +19 -0
  271. package/src/shadcn/components/ui/combobox.tsx +142 -0
  272. package/src/shadcn/components/ui/command.stories.tsx +1 -1
  273. package/src/shadcn/components/ui/command.tsx +192 -36
  274. package/src/shadcn/components/ui/dialog.tsx +101 -13
  275. package/src/shadcn/components/ui/drawer.tsx +93 -18
  276. package/src/shadcn/components/ui/dropdown-menu.tsx +37 -9
  277. package/src/shadcn/components/ui/form.tsx +16 -4
  278. package/src/shadcn/components/ui/input.tsx +400 -29
  279. package/src/shadcn/components/ui/label.tsx +21 -4
  280. package/src/shadcn/components/ui/menubar.tsx +188 -43
  281. package/src/shadcn/components/ui/pagination.tsx +12 -6
  282. package/src/shadcn/components/ui/popover.tsx +35 -4
  283. package/src/shadcn/components/ui/progress.tsx +21 -5
  284. package/src/shadcn/components/ui/radio-group.stories.tsx +22 -14
  285. package/src/shadcn/components/ui/radio-group.tsx +42 -5
  286. package/src/shadcn/components/ui/scroll-area.tsx +33 -5
  287. package/src/shadcn/components/ui/select.stories.tsx +0 -2
  288. package/src/shadcn/components/ui/select.tsx +184 -33
  289. package/src/shadcn/components/ui/separator.tsx +15 -5
  290. package/src/shadcn/components/ui/sidebar.tsx +68 -26
  291. package/src/shadcn/components/ui/skeleton.tsx +4 -1
  292. package/src/shadcn/components/ui/slider.tsx +82 -11
  293. package/src/shadcn/components/ui/sonner.stories.tsx +19 -15
  294. package/src/shadcn/components/ui/sonner.tsx +53 -3
  295. package/src/shadcn/components/ui/switch.tsx +53 -7
  296. package/src/shadcn/components/ui/table.tsx +38 -11
  297. package/src/shadcn/components/ui/tabs.stories.tsx +32 -0
  298. package/src/shadcn/components/ui/tabs.tsx +456 -17
  299. package/src/shadcn/components/ui/textarea.tsx +42 -4
  300. package/src/shadcn/components/ui/toggle-group.tsx +27 -5
  301. package/src/shadcn/components/ui/toggle.tsx +59 -18
  302. package/src/shadcn/components/ui/tooltip.tsx +33 -8
  303. package/src/shadcn/components/ui/tree.tsx +233 -0
  304. package/src/typography.css +12 -0
@@ -2,13 +2,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { autocompletion, closeBrackets, closeBracketsKeymap, completionKeymap } from "@codemirror/autocomplete";
3
3
  import { defaultKeymap, history, historyKeymap } from "@codemirror/commands";
4
4
  import { json, jsonParseLinter } from "@codemirror/lang-json";
5
+ import { SQLDialect, sql } from "@codemirror/lang-sql";
6
+ import { yaml } from "@codemirror/lang-yaml";
5
7
  import { bracketMatching, foldGutter, foldKeymap, HighlightStyle, indentOnInput, syntaxHighlighting } from "@codemirror/language";
6
8
  import { linter, lintGutter, lintKeymap } from "@codemirror/lint";
7
9
  import { highlightSelectionMatches, searchKeymap } from "@codemirror/search";
8
- import { EditorState } from "@codemirror/state";
10
+ import { Compartment, EditorState } from "@codemirror/state";
9
11
  import { crosshairCursor, drawSelection, dropCursor, EditorView, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, keymap, lineNumbers, rectangularSelection } from "@codemirror/view";
10
12
  import { tags } from "@lezer/highlight";
11
13
  import * as React from "react";
14
+ import { http } from "./http/index.js";
12
15
  const baseTheme = EditorView.baseTheme({
13
16
  "&": {
14
17
  backgroundColor: "var(--color-bg-primary)",
@@ -46,6 +49,43 @@ const baseTheme = EditorView.baseTheme({
46
49
  backgroundColor: "rgba(255, 255, 255, 0)"
47
50
  }
48
51
  });
52
+ const readOnlyTheme = EditorView.theme({
53
+ "&": {
54
+ backgroundColor: "var(--color-bg-secondary)",
55
+ height: "100%",
56
+ width: "100%",
57
+ fontSize: "14px",
58
+ paddingTop: "8px",
59
+ paddingBottom: "8px"
60
+ },
61
+ ".cm-scroller": {
62
+ overflow: "auto"
63
+ },
64
+ ".cm-content": {
65
+ fontFamily: "var(--font-family-mono)",
66
+ padding: "0"
67
+ },
68
+ "&.cm-focused": {
69
+ outline: "none"
70
+ },
71
+ ".cm-gutter": {
72
+ fontFamily: "var(--font-family-mono)"
73
+ },
74
+ ".cm-gutters": {
75
+ backgroundColor: "var(--color-bg-secondary)",
76
+ border: "none"
77
+ },
78
+ ".cm-lineNumbers": {
79
+ paddingLeft: "16px"
80
+ },
81
+ ".cm-activeLineGutter": {
82
+ backgroundColor: "var(--color-bg-secondary)",
83
+ color: "var(--color-text-primary)"
84
+ },
85
+ ".cm-activeLine": {
86
+ backgroundColor: "rgba(255, 255, 255, 0)"
87
+ }
88
+ });
49
89
  const customHighlightStyle = HighlightStyle.define([
50
90
  {
51
91
  tag: tags.propertyName,
@@ -66,19 +106,181 @@ const customHighlightStyle = HighlightStyle.define([
66
106
  {
67
107
  tag: tags.null,
68
108
  color: "#569cd6"
109
+ },
110
+ {
111
+ tag: tags.keyword,
112
+ color: "#569cd6"
113
+ },
114
+ {
115
+ tag: tags.operatorKeyword,
116
+ color: "#405CBF"
117
+ },
118
+ {
119
+ tag: tags.controlKeyword,
120
+ color: "#EA4A35"
121
+ },
122
+ {
123
+ tag: tags.typeName,
124
+ color: "#00A984"
125
+ },
126
+ {
127
+ tag: tags.variableName,
128
+ color: "#EA4A35"
129
+ },
130
+ {
131
+ tag: tags.operator,
132
+ color: "#405CBF"
133
+ },
134
+ {
135
+ tag: tags.comment,
136
+ color: "#00A984"
137
+ },
138
+ {
139
+ tag: tags.lineComment,
140
+ color: "#00A984"
141
+ },
142
+ {
143
+ tag: tags.blockComment,
144
+ color: "#00A984"
69
145
  }
70
146
  ]);
71
- export function CodeEditor({ defaultValue, onChange }) {
72
- const editorRef = React.useRef(null);
147
+ const SQL_KEYWORDS = [
148
+ "select",
149
+ "from",
150
+ "where",
151
+ "and",
152
+ "or",
153
+ "not",
154
+ "in",
155
+ "between",
156
+ "like",
157
+ "insert",
158
+ "update",
159
+ "delete",
160
+ "create",
161
+ "drop",
162
+ "alter",
163
+ "table",
164
+ "index",
165
+ "join",
166
+ "inner",
167
+ "left",
168
+ "right",
169
+ "outer",
170
+ "on",
171
+ "as",
172
+ "order",
173
+ "by",
174
+ "group",
175
+ "having",
176
+ "limit",
177
+ "offset",
178
+ "union",
179
+ "intersect",
180
+ "except",
181
+ "distinct",
182
+ "all",
183
+ "exists",
184
+ "case",
185
+ "when",
186
+ "then",
187
+ "else",
188
+ "end",
189
+ "null",
190
+ "true",
191
+ "false",
192
+ "is",
193
+ "asc",
194
+ "desc"
195
+ ];
196
+ const SQL_BUILTIN = [
197
+ "varchar",
198
+ "char",
199
+ "text",
200
+ "integer",
201
+ "int",
202
+ "bigint",
203
+ "decimal",
204
+ "numeric",
205
+ "float",
206
+ "real",
207
+ "boolean",
208
+ "date",
209
+ "time",
210
+ "timestamp",
211
+ "uuid",
212
+ "count",
213
+ "sum",
214
+ "avg",
215
+ "min",
216
+ "max",
217
+ "coalesce",
218
+ "concat",
219
+ "substring",
220
+ "upper",
221
+ "lower",
222
+ "trim",
223
+ "length",
224
+ "now",
225
+ "current_date",
226
+ "current_time"
227
+ ];
228
+ const customSQLDialect = SQLDialect.define({
229
+ keywords: SQL_KEYWORDS.join(" "),
230
+ builtin: SQL_BUILTIN.join(" ")
231
+ });
232
+ function languageExtensions(mode) {
233
+ if (mode === "http") {
234
+ const jsonLang = json();
235
+ const yamlLang = yaml();
236
+ return [
237
+ http((ct)=>ct === "application/json" ? jsonLang.language : ct === "text/yaml" ? yamlLang.language : null),
238
+ syntaxHighlighting(customHighlightStyle)
239
+ ];
240
+ } else if (mode === "sql") {
241
+ return [
242
+ sql({
243
+ dialect: customSQLDialect
244
+ }),
245
+ syntaxHighlighting(customHighlightStyle)
246
+ ];
247
+ } else if (mode === "yaml") {
248
+ return [
249
+ yaml(),
250
+ syntaxHighlighting(customHighlightStyle)
251
+ ];
252
+ } else {
253
+ return [
254
+ json(),
255
+ linter(jsonParseLinter(), {
256
+ delay: 300
257
+ }),
258
+ syntaxHighlighting(customHighlightStyle)
259
+ ];
260
+ }
261
+ }
262
+ export function CodeEditor({ defaultValue, currentValue, onChange, onUpdate, viewCallback, readOnly = false, id, mode = "json", isReadOnlyTheme = false }) {
263
+ const domRef = React.useRef(null);
264
+ const [view, setView] = React.useState(null);
265
+ const initialValue = React.useRef(defaultValue ?? "");
266
+ const onChangeComparment = React.useRef(new Compartment());
267
+ const onUpdateComparment = React.useRef(new Compartment());
268
+ const languageCompartment = React.useRef(new Compartment());
269
+ const readOnlyCompartment = React.useRef(new Compartment());
270
+ const themeCompartment = React.useRef(new Compartment());
73
271
  React.useEffect(()=>{
74
- if (!editorRef.current) {
272
+ if (!domRef.current) {
75
273
  return;
76
274
  }
77
275
  const view = new EditorView({
78
- parent: editorRef.current,
276
+ parent: domRef.current,
79
277
  state: EditorState.create({
80
- doc: defaultValue ?? "",
278
+ doc: initialValue.current,
81
279
  extensions: [
280
+ EditorView.contentAttributes.of({
281
+ "data-gramm": "false"
282
+ }),
283
+ readOnlyCompartment.current.of(EditorState.readOnly.of(false)),
82
284
  lineNumbers(),
83
285
  foldGutter(),
84
286
  highlightSpecialChars(),
@@ -87,8 +289,7 @@ export function CodeEditor({ defaultValue, onChange }) {
87
289
  dropCursor(),
88
290
  EditorState.allowMultipleSelections.of(true),
89
291
  indentOnInput(),
90
- json(),
91
- syntaxHighlighting(customHighlightStyle),
292
+ languageCompartment.current.of([]),
92
293
  bracketMatching(),
93
294
  closeBrackets(),
94
295
  autocompletion(),
@@ -97,7 +298,7 @@ export function CodeEditor({ defaultValue, onChange }) {
97
298
  highlightActiveLine(),
98
299
  highlightActiveLineGutter(),
99
300
  highlightSelectionMatches(),
100
- baseTheme,
301
+ themeCompartment.current.of(baseTheme),
101
302
  keymap.of([
102
303
  ...closeBracketsKeymap,
103
304
  ...defaultKeymap,
@@ -107,26 +308,114 @@ export function CodeEditor({ defaultValue, onChange }) {
107
308
  ...completionKeymap,
108
309
  ...lintKeymap
109
310
  ]),
110
- linter(jsonParseLinter(), {
111
- delay: 300
112
- }),
113
311
  lintGutter(),
114
- EditorView.updateListener.of((update)=>{
115
- if (update.docChanged && onChange) {
116
- onChange(update.view.state.doc.toString());
117
- }
118
- })
312
+ onChangeComparment.current.of([]),
313
+ onUpdateComparment.current.of([])
119
314
  ]
120
315
  })
121
316
  });
122
- return ()=>view.destroy();
317
+ setView(()=>view);
318
+ return ()=>{
319
+ view.destroy();
320
+ setView(()=>null);
321
+ };
322
+ }, []);
323
+ React.useEffect(()=>{
324
+ if (viewCallback && view) {
325
+ viewCallback(view);
326
+ }
327
+ }, [
328
+ view,
329
+ viewCallback
330
+ ]);
331
+ React.useEffect(()=>{
332
+ view?.dispatch({
333
+ effects: onChangeComparment.current.reconfigure([
334
+ EditorView.updateListener.of((update)=>{
335
+ if (update.docChanged && onChange) {
336
+ onChange(update.view.state.doc.toString());
337
+ }
338
+ })
339
+ ])
340
+ });
123
341
  }, [
124
- defaultValue,
342
+ view,
125
343
  onChange
126
344
  ]);
345
+ React.useEffect(()=>{
346
+ view?.dispatch({
347
+ effects: onUpdateComparment.current.reconfigure([
348
+ EditorView.updateListener.of((update)=>{
349
+ if (onUpdate) {
350
+ onUpdate(update);
351
+ }
352
+ })
353
+ ])
354
+ });
355
+ }, [
356
+ view,
357
+ onUpdate
358
+ ]);
359
+ // FIXME: it is probably better to have CM manage its state.
360
+ React.useEffect(()=>{
361
+ if (!view || currentValue === undefined) {
362
+ return;
363
+ }
364
+ const currentDoc = view.state.doc.toString();
365
+ if (currentDoc !== currentValue) {
366
+ view.dispatch({
367
+ changes: {
368
+ from: 0,
369
+ to: currentDoc.length,
370
+ insert: currentValue
371
+ }
372
+ });
373
+ }
374
+ }, [
375
+ currentValue,
376
+ view
377
+ ]);
378
+ React.useEffect(()=>{
379
+ if (view === null) {
380
+ return;
381
+ }
382
+ view.dispatch({
383
+ effects: languageCompartment.current.reconfigure(languageExtensions(mode))
384
+ });
385
+ }, [
386
+ mode,
387
+ view
388
+ ]);
389
+ React.useEffect(()=>{
390
+ if (view === null) {
391
+ return;
392
+ }
393
+ view.dispatch({
394
+ effects: [
395
+ readOnlyCompartment.current.reconfigure(EditorState.readOnly.of(readOnly))
396
+ ]
397
+ });
398
+ }, [
399
+ readOnly,
400
+ view
401
+ ]);
402
+ React.useEffect(()=>{
403
+ if (view === null) {
404
+ return;
405
+ }
406
+ view.dispatch({
407
+ effects: [
408
+ themeCompartment.current.reconfigure(isReadOnlyTheme ? readOnlyTheme : baseTheme)
409
+ ]
410
+ });
411
+ }, [
412
+ isReadOnlyTheme,
413
+ view
414
+ ]);
127
415
  return /*#__PURE__*/ _jsx("div", {
128
416
  className: "h-full w-full",
129
- ref: editorRef
417
+ ref: domRef,
418
+ id: id
130
419
  });
131
420
  }
132
421
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/code-editor/index.tsx"],"sourcesContent":["import {\n\tautocompletion,\n\tcloseBrackets,\n\tcloseBracketsKeymap,\n\tcompletionKeymap,\n} from \"@codemirror/autocomplete\";\nimport { defaultKeymap, history, historyKeymap } from \"@codemirror/commands\";\nimport { json, jsonParseLinter } from \"@codemirror/lang-json\";\nimport {\n\tbracketMatching,\n\tfoldGutter,\n\tfoldKeymap,\n\tHighlightStyle,\n\tindentOnInput,\n\tsyntaxHighlighting,\n} from \"@codemirror/language\";\nimport { linter, lintGutter, lintKeymap } from \"@codemirror/lint\";\nimport { highlightSelectionMatches, searchKeymap } from \"@codemirror/search\";\nimport { EditorState } from \"@codemirror/state\";\nimport {\n\tcrosshairCursor,\n\tdrawSelection,\n\tdropCursor,\n\tEditorView,\n\thighlightActiveLine,\n\thighlightActiveLineGutter,\n\thighlightSpecialChars,\n\tkeymap,\n\tlineNumbers,\n\trectangularSelection,\n} from \"@codemirror/view\";\nimport { tags } from \"@lezer/highlight\";\nimport * as React from \"react\";\n\nconst baseTheme = EditorView.baseTheme({\n\t\"&\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t\tfontSize: \"14px\",\n\t\tpaddingTop: \"8px\",\n\t\tpaddingBottom: \"8px\",\n\t},\n\t\".cm-scroller\": {\n\t\toverflow: \"auto\",\n\t},\n\t\".cm-content\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t\tpadding: \"0\",\n\t},\n\t\"&.cm-focused\": {\n\t\toutline: \"none\",\n\t},\n\t\".cm-gutter\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t},\n\t\".cm-gutters\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\tborder: \"none\",\n\t},\n\t\".cm-lineNumbers\": {\n\t\tpaddingLeft: \"16px\",\n\t},\n\t\".cm-activeLineGutter\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\tcolor: \"var(--color-text-primary)\",\n\t},\n\t\".cm-activeLine\": {\n\t\tbackgroundColor: \"rgba(255, 255, 255, 0)\",\n\t},\n});\n\nconst customHighlightStyle = HighlightStyle.define([\n\t{ tag: tags.propertyName, color: \"#EA4A35\" },\n\t{ tag: tags.string, color: \"#405CBF\" },\n\t{ tag: tags.number, color: \"#00A984\" },\n\t{ tag: tags.bool, color: \"#569cd6\" },\n\t{ tag: tags.null, color: \"#569cd6\" },\n]);\n\nexport function CodeEditor({\n\tdefaultValue,\n\tonChange,\n}: {\n\tdefaultValue?: string;\n\tonChange?: (value: string) => void;\n}) {\n\tconst editorRef = React.useRef(null);\n\n\tReact.useEffect(() => {\n\t\tif (!editorRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst view = new EditorView({\n\t\t\tparent: editorRef.current,\n\t\t\tstate: EditorState.create({\n\t\t\t\tdoc: defaultValue ?? \"\",\n\t\t\t\textensions: [\n\t\t\t\t\tlineNumbers(),\n\t\t\t\t\tfoldGutter(),\n\t\t\t\t\thighlightSpecialChars(),\n\t\t\t\t\thistory(),\n\t\t\t\t\tdrawSelection(),\n\t\t\t\t\tdropCursor(),\n\t\t\t\t\tEditorState.allowMultipleSelections.of(true),\n\t\t\t\t\tindentOnInput(),\n\t\t\t\t\tjson(),\n\t\t\t\t\tsyntaxHighlighting(customHighlightStyle),\n\t\t\t\t\tbracketMatching(),\n\t\t\t\t\tcloseBrackets(),\n\t\t\t\t\tautocompletion(),\n\t\t\t\t\trectangularSelection(),\n\t\t\t\t\tcrosshairCursor(),\n\t\t\t\t\thighlightActiveLine(),\n\t\t\t\t\thighlightActiveLineGutter(),\n\t\t\t\t\thighlightSelectionMatches(),\n\t\t\t\t\tbaseTheme,\n\t\t\t\t\tkeymap.of([\n\t\t\t\t\t\t...closeBracketsKeymap,\n\t\t\t\t\t\t...defaultKeymap,\n\t\t\t\t\t\t...searchKeymap,\n\t\t\t\t\t\t...historyKeymap,\n\t\t\t\t\t\t...foldKeymap,\n\t\t\t\t\t\t...completionKeymap,\n\t\t\t\t\t\t...lintKeymap,\n\t\t\t\t\t]),\n\t\t\t\t\tlinter(jsonParseLinter(), { delay: 300 }),\n\t\t\t\t\tlintGutter(),\n\t\t\t\t\tEditorView.updateListener.of((update) => {\n\t\t\t\t\t\tif (update.docChanged && onChange) {\n\t\t\t\t\t\t\tonChange(update.view.state.doc.toString());\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}),\n\t\t});\n\n\t\treturn () => view.destroy();\n\t}, [defaultValue, onChange]);\n\n\treturn <div className=\"h-full w-full\" ref={editorRef} />;\n}\n"],"names":["autocompletion","closeBrackets","closeBracketsKeymap","completionKeymap","defaultKeymap","history","historyKeymap","json","jsonParseLinter","bracketMatching","foldGutter","foldKeymap","HighlightStyle","indentOnInput","syntaxHighlighting","linter","lintGutter","lintKeymap","highlightSelectionMatches","searchKeymap","EditorState","crosshairCursor","drawSelection","dropCursor","EditorView","highlightActiveLine","highlightActiveLineGutter","highlightSpecialChars","keymap","lineNumbers","rectangularSelection","tags","React","baseTheme","backgroundColor","height","width","fontSize","paddingTop","paddingBottom","overflow","fontFamily","padding","outline","border","paddingLeft","color","customHighlightStyle","define","tag","propertyName","string","number","bool","null","CodeEditor","defaultValue","onChange","editorRef","useRef","useEffect","current","view","parent","state","create","doc","extensions","allowMultipleSelections","of","delay","updateListener","update","docChanged","toString","destroy","div","className","ref"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/code-editor/index.tsx"],"sourcesContent":["import {\n\tautocompletion,\n\tcloseBrackets,\n\tcloseBracketsKeymap,\n\tcompletionKeymap,\n} from \"@codemirror/autocomplete\";\nimport { defaultKeymap, history, historyKeymap } from \"@codemirror/commands\";\nimport { json, jsonParseLinter } from \"@codemirror/lang-json\";\nimport { SQLDialect, sql } from \"@codemirror/lang-sql\";\nimport { yaml } from \"@codemirror/lang-yaml\";\nimport {\n\tbracketMatching,\n\tfoldGutter,\n\tfoldKeymap,\n\tHighlightStyle,\n\tindentOnInput,\n\tsyntaxHighlighting,\n} from \"@codemirror/language\";\nimport { linter, lintGutter, lintKeymap } from \"@codemirror/lint\";\nimport { highlightSelectionMatches, searchKeymap } from \"@codemirror/search\";\nimport { Compartment, EditorState } from \"@codemirror/state\";\nimport {\n\tcrosshairCursor,\n\tdrawSelection,\n\tdropCursor,\n\tEditorView,\n\thighlightActiveLine,\n\thighlightActiveLineGutter,\n\thighlightSpecialChars,\n\tkeymap,\n\tlineNumbers,\n\trectangularSelection,\n\ttype ViewUpdate,\n} from \"@codemirror/view\";\nimport { tags } from \"@lezer/highlight\";\nimport * as React from \"react\";\n\nimport { http } from \"./http\";\n\nconst baseTheme = EditorView.baseTheme({\n\t\"&\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t\tfontSize: \"14px\",\n\t\tpaddingTop: \"8px\",\n\t\tpaddingBottom: \"8px\",\n\t},\n\t\".cm-scroller\": {\n\t\toverflow: \"auto\",\n\t},\n\t\".cm-content\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t\tpadding: \"0\",\n\t},\n\t\"&.cm-focused\": {\n\t\toutline: \"none\",\n\t},\n\t\".cm-gutter\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t},\n\t\".cm-gutters\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\tborder: \"none\",\n\t},\n\t\".cm-lineNumbers\": {\n\t\tpaddingLeft: \"16px\",\n\t},\n\t\".cm-activeLineGutter\": {\n\t\tbackgroundColor: \"var(--color-bg-primary)\",\n\t\tcolor: \"var(--color-text-primary)\",\n\t},\n\t\".cm-activeLine\": {\n\t\tbackgroundColor: \"rgba(255, 255, 255, 0)\",\n\t},\n});\n\nconst readOnlyTheme = EditorView.theme({\n\t\"&\": {\n\t\tbackgroundColor: \"var(--color-bg-secondary)\",\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t\tfontSize: \"14px\",\n\t\tpaddingTop: \"8px\",\n\t\tpaddingBottom: \"8px\",\n\t},\n\t\".cm-scroller\": {\n\t\toverflow: \"auto\",\n\t},\n\t\".cm-content\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t\tpadding: \"0\",\n\t},\n\t\"&.cm-focused\": {\n\t\toutline: \"none\",\n\t},\n\t\".cm-gutter\": {\n\t\tfontFamily: \"var(--font-family-mono)\",\n\t},\n\t\".cm-gutters\": {\n\t\tbackgroundColor: \"var(--color-bg-secondary)\",\n\t\tborder: \"none\",\n\t},\n\t\".cm-lineNumbers\": {\n\t\tpaddingLeft: \"16px\",\n\t},\n\t\".cm-activeLineGutter\": {\n\t\tbackgroundColor: \"var(--color-bg-secondary)\",\n\t\tcolor: \"var(--color-text-primary)\",\n\t},\n\t\".cm-activeLine\": {\n\t\tbackgroundColor: \"rgba(255, 255, 255, 0)\",\n\t},\n});\n\nconst customHighlightStyle = HighlightStyle.define([\n\t{ tag: tags.propertyName, color: \"#EA4A35\" },\n\t{ tag: tags.string, color: \"#405CBF\" },\n\t{ tag: tags.number, color: \"#00A984\" },\n\t{ tag: tags.bool, color: \"#569cd6\" },\n\t{ tag: tags.null, color: \"#569cd6\" },\n\t{ tag: tags.keyword, color: \"#569cd6\" },\n\t{ tag: tags.operatorKeyword, color: \"#405CBF\" },\n\t{ tag: tags.controlKeyword, color: \"#EA4A35\" },\n\t{ tag: tags.typeName, color: \"#00A984\" },\n\t{ tag: tags.variableName, color: \"#EA4A35\" },\n\t{ tag: tags.operator, color: \"#405CBF\" },\n\t{ tag: tags.comment, color: \"#00A984\" },\n\t{ tag: tags.lineComment, color: \"#00A984\" },\n\t{ tag: tags.blockComment, color: \"#00A984\" },\n]);\n\nconst SQL_KEYWORDS = [\n\t\"select\",\n\t\"from\",\n\t\"where\",\n\t\"and\",\n\t\"or\",\n\t\"not\",\n\t\"in\",\n\t\"between\",\n\t\"like\",\n\t\"insert\",\n\t\"update\",\n\t\"delete\",\n\t\"create\",\n\t\"drop\",\n\t\"alter\",\n\t\"table\",\n\t\"index\",\n\t\"join\",\n\t\"inner\",\n\t\"left\",\n\t\"right\",\n\t\"outer\",\n\t\"on\",\n\t\"as\",\n\t\"order\",\n\t\"by\",\n\t\"group\",\n\t\"having\",\n\t\"limit\",\n\t\"offset\",\n\t\"union\",\n\t\"intersect\",\n\t\"except\",\n\t\"distinct\",\n\t\"all\",\n\t\"exists\",\n\t\"case\",\n\t\"when\",\n\t\"then\",\n\t\"else\",\n\t\"end\",\n\t\"null\",\n\t\"true\",\n\t\"false\",\n\t\"is\",\n\t\"asc\",\n\t\"desc\",\n];\n\nconst SQL_BUILTIN = [\n\t\"varchar\",\n\t\"char\",\n\t\"text\",\n\t\"integer\",\n\t\"int\",\n\t\"bigint\",\n\t\"decimal\",\n\t\"numeric\",\n\t\"float\",\n\t\"real\",\n\t\"boolean\",\n\t\"date\",\n\t\"time\",\n\t\"timestamp\",\n\t\"uuid\",\n\t\"count\",\n\t\"sum\",\n\t\"avg\",\n\t\"min\",\n\t\"max\",\n\t\"coalesce\",\n\t\"concat\",\n\t\"substring\",\n\t\"upper\",\n\t\"lower\",\n\t\"trim\",\n\t\"length\",\n\t\"now\",\n\t\"current_date\",\n\t\"current_time\",\n];\n\nconst customSQLDialect = SQLDialect.define({\n\tkeywords: SQL_KEYWORDS.join(\" \"),\n\tbuiltin: SQL_BUILTIN.join(\" \"),\n});\n\ntype LanguageMode = \"json\" | \"http\" | \"sql\" | \"yaml\";\n\nfunction languageExtensions(mode: LanguageMode) {\n\tif (mode === \"http\") {\n\t\tconst jsonLang = json();\n\t\tconst yamlLang = yaml();\n\t\treturn [\n\t\t\thttp((ct) =>\n\t\t\t\tct === \"application/json\"\n\t\t\t\t\t? jsonLang.language\n\t\t\t\t\t: ct === \"text/yaml\"\n\t\t\t\t\t\t? yamlLang.language\n\t\t\t\t\t\t: null,\n\t\t\t),\n\t\t\tsyntaxHighlighting(customHighlightStyle),\n\t\t];\n\t} else if (mode === \"sql\") {\n\t\treturn [\n\t\t\tsql({ dialect: customSQLDialect }),\n\t\t\tsyntaxHighlighting(customHighlightStyle),\n\t\t];\n\t} else if (mode === \"yaml\") {\n\t\treturn [yaml(), syntaxHighlighting(customHighlightStyle)];\n\t} else {\n\t\treturn [\n\t\t\tjson(),\n\t\t\tlinter(jsonParseLinter(), { delay: 300 }),\n\t\t\tsyntaxHighlighting(customHighlightStyle),\n\t\t];\n\t}\n}\n\ntype CodeEditorProps = {\n\treadOnly?: boolean;\n\tisReadOnlyTheme?: boolean;\n\tdefaultValue?: string;\n\tcurrentValue?: string;\n\tonChange?: (value: string) => void;\n\tonUpdate?: (update: ViewUpdate) => void;\n\tid?: string;\n\tmode?: LanguageMode;\n\tviewCallback?: (view: EditorView) => void;\n};\n\nexport type CodeEditorView = EditorView;\n\nexport function CodeEditor({\n\tdefaultValue,\n\tcurrentValue,\n\tonChange,\n\tonUpdate,\n\tviewCallback,\n\treadOnly = false,\n\tid,\n\tmode = \"json\",\n\tisReadOnlyTheme = false,\n}: CodeEditorProps) {\n\tconst domRef = React.useRef(null);\n\tconst [view, setView] = React.useState<EditorView | null>(null);\n\n\tconst initialValue = React.useRef(defaultValue ?? \"\");\n\n\tconst onChangeComparment = React.useRef(new Compartment());\n\tconst onUpdateComparment = React.useRef(new Compartment());\n\tconst languageCompartment = React.useRef(new Compartment());\n\tconst readOnlyCompartment = React.useRef(new Compartment());\n\tconst themeCompartment = React.useRef(new Compartment());\n\n\tReact.useEffect(() => {\n\t\tif (!domRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst view = new EditorView({\n\t\t\tparent: domRef.current,\n\t\t\tstate: EditorState.create({\n\t\t\t\tdoc: initialValue.current,\n\t\t\t\textensions: [\n\t\t\t\t\tEditorView.contentAttributes.of({ \"data-gramm\": \"false\" }),\n\t\t\t\t\treadOnlyCompartment.current.of(EditorState.readOnly.of(false)),\n\t\t\t\t\tlineNumbers(),\n\t\t\t\t\tfoldGutter(),\n\t\t\t\t\thighlightSpecialChars(),\n\t\t\t\t\thistory(),\n\t\t\t\t\tdrawSelection(),\n\t\t\t\t\tdropCursor(),\n\t\t\t\t\tEditorState.allowMultipleSelections.of(true),\n\t\t\t\t\tindentOnInput(),\n\t\t\t\t\tlanguageCompartment.current.of([]),\n\t\t\t\t\tbracketMatching(),\n\t\t\t\t\tcloseBrackets(),\n\t\t\t\t\tautocompletion(),\n\t\t\t\t\trectangularSelection(),\n\t\t\t\t\tcrosshairCursor(),\n\t\t\t\t\thighlightActiveLine(),\n\t\t\t\t\thighlightActiveLineGutter(),\n\t\t\t\t\thighlightSelectionMatches(),\n\t\t\t\t\tthemeCompartment.current.of(baseTheme),\n\t\t\t\t\tkeymap.of([\n\t\t\t\t\t\t...closeBracketsKeymap,\n\t\t\t\t\t\t...defaultKeymap,\n\t\t\t\t\t\t...searchKeymap,\n\t\t\t\t\t\t...historyKeymap,\n\t\t\t\t\t\t...foldKeymap,\n\t\t\t\t\t\t...completionKeymap,\n\t\t\t\t\t\t...lintKeymap,\n\t\t\t\t\t]),\n\t\t\t\t\tlintGutter(),\n\t\t\t\t\tonChangeComparment.current.of([]),\n\t\t\t\t\tonUpdateComparment.current.of([]),\n\t\t\t\t],\n\t\t\t}),\n\t\t});\n\n\t\tsetView(() => view);\n\n\t\treturn () => {\n\t\t\tview.destroy();\n\t\t\tsetView(() => null);\n\t\t};\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (viewCallback && view) {\n\t\t\tviewCallback(view);\n\t\t}\n\t}, [view, viewCallback]);\n\n\tReact.useEffect(() => {\n\t\tview?.dispatch({\n\t\t\teffects: onChangeComparment.current.reconfigure([\n\t\t\t\tEditorView.updateListener.of((update) => {\n\t\t\t\t\tif (update.docChanged && onChange) {\n\t\t\t\t\t\tonChange(update.view.state.doc.toString());\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t]),\n\t\t});\n\t}, [view, onChange]);\n\n\tReact.useEffect(() => {\n\t\tview?.dispatch({\n\t\t\teffects: onUpdateComparment.current.reconfigure([\n\t\t\t\tEditorView.updateListener.of((update) => {\n\t\t\t\t\tif (onUpdate) {\n\t\t\t\t\t\tonUpdate(update);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t]),\n\t\t});\n\t}, [view, onUpdate]);\n\n\t// FIXME: it is probably better to have CM manage its state.\n\tReact.useEffect(() => {\n\t\tif (!view || currentValue === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentDoc = view.state.doc.toString();\n\t\tif (currentDoc !== currentValue) {\n\t\t\tview.dispatch({\n\t\t\t\tchanges: {\n\t\t\t\t\tfrom: 0,\n\t\t\t\t\tto: currentDoc.length,\n\t\t\t\t\tinsert: currentValue,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}, [currentValue, view]);\n\n\tReact.useEffect(() => {\n\t\tif (view === null) {\n\t\t\treturn;\n\t\t}\n\t\tview.dispatch({\n\t\t\teffects: languageCompartment.current.reconfigure(\n\t\t\t\tlanguageExtensions(mode),\n\t\t\t),\n\t\t});\n\t}, [mode, view]);\n\n\tReact.useEffect(() => {\n\t\tif (view === null) {\n\t\t\treturn;\n\t\t}\n\t\tview.dispatch({\n\t\t\teffects: [\n\t\t\t\treadOnlyCompartment.current.reconfigure(\n\t\t\t\t\tEditorState.readOnly.of(readOnly),\n\t\t\t\t),\n\t\t\t],\n\t\t});\n\t}, [readOnly, view]);\n\n\tReact.useEffect(() => {\n\t\tif (view === null) {\n\t\t\treturn;\n\t\t}\n\t\tview.dispatch({\n\t\t\teffects: [\n\t\t\t\tthemeCompartment.current.reconfigure(\n\t\t\t\t\tisReadOnlyTheme ? readOnlyTheme : baseTheme,\n\t\t\t\t),\n\t\t\t],\n\t\t});\n\t}, [isReadOnlyTheme, view]);\n\n\treturn <div className=\"h-full w-full\" ref={domRef} id={id} />;\n}\n"],"names":["autocompletion","closeBrackets","closeBracketsKeymap","completionKeymap","defaultKeymap","history","historyKeymap","json","jsonParseLinter","SQLDialect","sql","yaml","bracketMatching","foldGutter","foldKeymap","HighlightStyle","indentOnInput","syntaxHighlighting","linter","lintGutter","lintKeymap","highlightSelectionMatches","searchKeymap","Compartment","EditorState","crosshairCursor","drawSelection","dropCursor","EditorView","highlightActiveLine","highlightActiveLineGutter","highlightSpecialChars","keymap","lineNumbers","rectangularSelection","tags","React","http","baseTheme","backgroundColor","height","width","fontSize","paddingTop","paddingBottom","overflow","fontFamily","padding","outline","border","paddingLeft","color","readOnlyTheme","theme","customHighlightStyle","define","tag","propertyName","string","number","bool","null","keyword","operatorKeyword","controlKeyword","typeName","variableName","operator","comment","lineComment","blockComment","SQL_KEYWORDS","SQL_BUILTIN","customSQLDialect","keywords","join","builtin","languageExtensions","mode","jsonLang","yamlLang","ct","language","dialect","delay","CodeEditor","defaultValue","currentValue","onChange","onUpdate","viewCallback","readOnly","id","isReadOnlyTheme","domRef","useRef","view","setView","useState","initialValue","onChangeComparment","onUpdateComparment","languageCompartment","readOnlyCompartment","themeCompartment","useEffect","current","parent","state","create","doc","extensions","contentAttributes","of","allowMultipleSelections","destroy","dispatch","effects","reconfigure","updateListener","update","docChanged","toString","undefined","currentDoc","changes","from","to","length","insert","div","className","ref"],"mappings":"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"}
@@ -4,4 +4,5 @@ declare const meta: Meta<typeof CodeEditor>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof CodeEditor>;
6
6
  export declare const Default: Story;
7
+ export declare const Complex: Story;
7
8
  //# sourceMappingURL=code-editor.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-editor.stories.d.ts","sourceRoot":"","sources":["../../../src/components/code-editor.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAOjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAC"}
1
+ {"version":3,"file":"code-editor.stories.d.ts","sourceRoot":"","sources":["../../../src/components/code-editor.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAOjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAC;AAiSF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}