@health-samurai/react-components 0.0.0-alpha.2 → 0.0.0-alpha.21

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 (571) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +102 -1
  3. package/dist/bundle.css +2349 -754
  4. package/dist/src/components/button-dropdown.d.ts +10 -0
  5. package/dist/src/components/button-dropdown.d.ts.map +1 -0
  6. package/dist/src/components/button-dropdown.js +70 -0
  7. package/dist/src/components/button-dropdown.js.map +1 -0
  8. package/dist/src/components/button-dropdown.stories.js +48 -0
  9. package/dist/src/components/button-dropdown.stories.js.map +1 -0
  10. package/dist/src/components/code-editor/fhir-autocomplete.d.ts +70 -0
  11. package/dist/src/components/code-editor/fhir-autocomplete.d.ts.map +1 -0
  12. package/dist/src/components/code-editor/fhir-autocomplete.js +1850 -0
  13. package/dist/src/components/code-editor/fhir-autocomplete.js.map +1 -0
  14. package/dist/src/components/code-editor/fhir-autocomplete.test.js +1099 -0
  15. package/dist/src/components/code-editor/fhir-autocomplete.test.js.map +1 -0
  16. package/dist/src/components/code-editor/http/grammar/http.d.ts +3 -0
  17. package/dist/src/components/code-editor/http/grammar/http.d.ts.map +1 -0
  18. package/dist/src/components/code-editor/http/grammar/http.grammar +74 -0
  19. package/dist/src/components/code-editor/http/grammar/http.js +38 -0
  20. package/dist/src/components/code-editor/http/grammar/http.js.map +1 -0
  21. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts +2 -0
  22. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts.map +1 -0
  23. package/dist/src/components/code-editor/http/grammar/http.terms.js +4 -0
  24. package/dist/src/components/code-editor/http/grammar/http.terms.js.map +1 -0
  25. package/dist/src/components/code-editor/http/grammar/http.test.js +80 -0
  26. package/dist/src/components/code-editor/http/grammar/http.test.js.map +1 -0
  27. package/dist/src/components/code-editor/http/index.d.ts +12 -0
  28. package/dist/src/components/code-editor/http/index.d.ts.map +1 -0
  29. package/dist/src/components/code-editor/http/index.js +486 -0
  30. package/dist/src/components/code-editor/http/index.js.map +1 -0
  31. package/dist/src/components/code-editor/index.d.ts +39 -1
  32. package/dist/src/components/code-editor/index.d.ts.map +1 -1
  33. package/dist/src/components/code-editor/index.js +1792 -45
  34. package/dist/src/components/code-editor/index.js.map +1 -1
  35. package/dist/src/components/code-editor/json-ast.d.ts +46 -0
  36. package/dist/src/components/code-editor/json-ast.d.ts.map +1 -0
  37. package/dist/src/components/code-editor/json-ast.js +465 -0
  38. package/dist/src/components/code-editor/json-ast.js.map +1 -0
  39. package/dist/src/components/code-editor/json-ast.test.js +206 -0
  40. package/dist/src/components/code-editor/json-ast.test.js.map +1 -0
  41. package/dist/src/components/code-editor/sql-completion.d.ts +22 -0
  42. package/dist/src/components/code-editor/sql-completion.d.ts.map +1 -0
  43. package/dist/src/components/code-editor/sql-completion.js +897 -0
  44. package/dist/src/components/code-editor/sql-completion.js.map +1 -0
  45. package/dist/src/components/code-editor.stories.js +280 -3
  46. package/dist/src/components/code-editor.stories.js.map +1 -1
  47. package/dist/src/components/copy-icon.d.ts +5 -1
  48. package/dist/src/components/copy-icon.d.ts.map +1 -1
  49. package/dist/src/components/copy-icon.js +41 -3
  50. package/dist/src/components/copy-icon.js.map +1 -1
  51. package/dist/src/components/data-table.d.ts +9 -0
  52. package/dist/src/components/data-table.d.ts.map +1 -0
  53. package/dist/src/components/data-table.js +66 -0
  54. package/dist/src/components/data-table.js.map +1 -0
  55. package/dist/src/components/data-table.stories.js +240 -0
  56. package/dist/src/components/data-table.stories.js.map +1 -0
  57. package/dist/src/components/date-picker-input.d.ts +10 -0
  58. package/dist/src/components/date-picker-input.d.ts.map +1 -0
  59. package/dist/src/components/date-picker-input.js +90 -0
  60. package/dist/src/components/date-picker-input.js.map +1 -0
  61. package/dist/src/components/date-picker-input.stories.js +76 -0
  62. package/dist/src/components/date-picker-input.stories.js.map +1 -0
  63. package/dist/src/components/fhir-structure-view.d.ts +34 -0
  64. package/dist/src/components/fhir-structure-view.d.ts.map +1 -0
  65. package/dist/src/components/fhir-structure-view.js +230 -0
  66. package/dist/src/components/fhir-structure-view.js.map +1 -0
  67. package/dist/src/components/fhir-structure-view.stories.js +447 -0
  68. package/dist/src/components/fhir-structure-view.stories.js.map +1 -0
  69. package/dist/src/components/icon-button.d.ts +12 -0
  70. package/dist/src/components/icon-button.d.ts.map +1 -0
  71. package/dist/src/components/icon-button.js +41 -0
  72. package/dist/src/components/icon-button.js.map +1 -0
  73. package/dist/src/components/icon-button.stories.js +157 -0
  74. package/dist/src/components/icon-button.stories.js.map +1 -0
  75. package/dist/src/components/operation-outcome-view.d.ts +27 -0
  76. package/dist/src/components/operation-outcome-view.d.ts.map +1 -0
  77. package/dist/src/components/operation-outcome-view.js +198 -0
  78. package/dist/src/components/operation-outcome-view.js.map +1 -0
  79. package/dist/src/components/operation-outcome-view.stories.js +207 -0
  80. package/dist/src/components/operation-outcome-view.stories.js.map +1 -0
  81. package/dist/src/components/request-line-editor.d.ts +13 -35
  82. package/dist/src/components/request-line-editor.d.ts.map +1 -1
  83. package/dist/src/components/request-line-editor.js +73 -49
  84. package/dist/src/components/request-line-editor.js.map +1 -1
  85. package/dist/src/components/request-line-editor.stories.js +17 -53
  86. package/dist/src/components/request-line-editor.stories.js.map +1 -1
  87. package/dist/src/components/sandbox.d.ts +13 -0
  88. package/dist/src/components/sandbox.d.ts.map +1 -0
  89. package/dist/src/components/sandbox.js +107 -0
  90. package/dist/src/components/sandbox.js.map +1 -0
  91. package/dist/src/components/sandbox.stories.js +126 -0
  92. package/dist/src/components/sandbox.stories.js.map +1 -0
  93. package/dist/src/components/segment-control.d.ts +13 -0
  94. package/dist/src/components/segment-control.d.ts.map +1 -0
  95. package/dist/src/components/segment-control.js +33 -0
  96. package/dist/src/components/segment-control.js.map +1 -0
  97. package/dist/src/components/segment-control.stories.js +68 -0
  98. package/dist/src/components/segment-control.stories.js.map +1 -0
  99. package/dist/src/components/split-button.d.ts +12 -0
  100. package/dist/src/components/split-button.d.ts.map +1 -0
  101. package/dist/src/components/split-button.js +33 -0
  102. package/dist/src/components/split-button.js.map +1 -0
  103. package/dist/src/components/split-button.stories.js +84 -0
  104. package/dist/src/components/split-button.stories.js.map +1 -0
  105. package/dist/src/components/tag.d.ts +16 -0
  106. package/dist/src/components/tag.d.ts.map +1 -0
  107. package/dist/src/components/tag.js +198 -0
  108. package/dist/src/components/tag.js.map +1 -0
  109. package/dist/src/components/tag.stories.js +459 -0
  110. package/dist/src/components/tag.stories.js.map +1 -0
  111. package/dist/src/components/tile.d.ts +15 -0
  112. package/dist/src/components/tile.d.ts.map +1 -0
  113. package/dist/src/components/tile.js +76 -0
  114. package/dist/src/components/tile.js.map +1 -0
  115. package/dist/src/components/tile.stories.js +167 -0
  116. package/dist/src/components/tile.stories.js.map +1 -0
  117. package/dist/src/components/toolbar.d.ts +18 -0
  118. package/dist/src/components/toolbar.d.ts.map +1 -0
  119. package/dist/src/components/toolbar.js +61 -0
  120. package/dist/src/components/toolbar.js.map +1 -0
  121. package/dist/src/components/toolbar.stories.js +69 -0
  122. package/dist/src/components/toolbar.stories.js.map +1 -0
  123. package/dist/src/components/tree-view.d.ts +47 -0
  124. package/dist/src/components/tree-view.d.ts.map +1 -0
  125. package/dist/src/components/tree-view.js +122 -0
  126. package/dist/src/components/tree-view.js.map +1 -0
  127. package/dist/src/components/tree-view.stories.js +283 -0
  128. package/dist/src/components/tree-view.stories.js.map +1 -0
  129. package/dist/src/icons.d.ts +11 -0
  130. package/dist/src/icons.d.ts.map +1 -0
  131. package/dist/src/icons.js +328 -0
  132. package/dist/src/icons.js.map +1 -0
  133. package/dist/src/index.css +358 -74
  134. package/dist/src/index.d.ts +17 -1
  135. package/dist/src/index.d.ts.map +1 -1
  136. package/dist/src/index.js +17 -1
  137. package/dist/src/index.js.map +1 -1
  138. package/dist/src/shadcn/components/ui/accordion.d.ts +2 -2
  139. package/dist/src/shadcn/components/ui/accordion.d.ts.map +1 -1
  140. package/dist/src/shadcn/components/ui/accordion.js +35 -9
  141. package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
  142. package/dist/src/shadcn/components/ui/alert-dialog.d.ts +12 -4
  143. package/dist/src/shadcn/components/ui/alert-dialog.d.ts.map +1 -1
  144. package/dist/src/shadcn/components/ui/alert-dialog.js +128 -18
  145. package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
  146. package/dist/src/shadcn/components/ui/alert-dialog.stories.js +269 -19
  147. package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
  148. package/dist/src/shadcn/components/ui/alert.d.ts +29 -6
  149. package/dist/src/shadcn/components/ui/alert.d.ts.map +1 -1
  150. package/dist/src/shadcn/components/ui/alert.js +50 -19
  151. package/dist/src/shadcn/components/ui/alert.js.map +1 -1
  152. package/dist/src/shadcn/components/ui/alert.stories.js +140 -36
  153. package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
  154. package/dist/src/shadcn/components/ui/aspect-ratio.d.ts.map +1 -1
  155. package/dist/src/shadcn/components/ui/aspect-ratio.js +1 -0
  156. package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
  157. package/dist/src/shadcn/components/ui/avatar.d.ts.map +1 -1
  158. package/dist/src/shadcn/components/ui/avatar.js +4 -3
  159. package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
  160. package/dist/src/shadcn/components/ui/avatar.stories.js +68 -2
  161. package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
  162. package/dist/src/shadcn/components/ui/badge.d.ts +1 -1
  163. package/dist/src/shadcn/components/ui/badge.d.ts.map +1 -1
  164. package/dist/src/shadcn/components/ui/badge.js +16 -5
  165. package/dist/src/shadcn/components/ui/badge.js.map +1 -1
  166. package/dist/src/shadcn/components/ui/breadcrumb.d.ts +5 -2
  167. package/dist/src/shadcn/components/ui/breadcrumb.d.ts.map +1 -1
  168. package/dist/src/shadcn/components/ui/breadcrumb.js +98 -13
  169. package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
  170. package/dist/src/shadcn/components/ui/breadcrumb.stories.js +205 -45
  171. package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
  172. package/dist/src/shadcn/components/ui/button.d.ts.map +1 -1
  173. package/dist/src/shadcn/components/ui/button.js +65 -11
  174. package/dist/src/shadcn/components/ui/button.js.map +1 -1
  175. package/dist/src/shadcn/components/ui/button.stories.js +99 -17
  176. package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
  177. package/dist/src/shadcn/components/ui/calendar.d.ts +1 -1
  178. package/dist/src/shadcn/components/ui/calendar.d.ts.map +1 -1
  179. package/dist/src/shadcn/components/ui/calendar.js +1 -0
  180. package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
  181. package/dist/src/shadcn/components/ui/card.d.ts +5 -1
  182. package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
  183. package/dist/src/shadcn/components/ui/card.js +28 -7
  184. package/dist/src/shadcn/components/ui/card.js.map +1 -1
  185. package/dist/src/shadcn/components/ui/card.stories.js +23 -2
  186. package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
  187. package/dist/src/shadcn/components/ui/carousel.d.ts +1 -1
  188. package/dist/src/shadcn/components/ui/carousel.d.ts.map +1 -1
  189. package/dist/src/shadcn/components/ui/carousel.js +1 -0
  190. package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
  191. package/dist/src/shadcn/components/ui/chart.d.ts +5 -5
  192. package/dist/src/shadcn/components/ui/chart.d.ts.map +1 -1
  193. package/dist/src/shadcn/components/ui/chart.js +4 -3
  194. package/dist/src/shadcn/components/ui/chart.js.map +1 -1
  195. package/dist/src/shadcn/components/ui/checkbox.d.ts +5 -1
  196. package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
  197. package/dist/src/shadcn/components/ui/checkbox.js +46 -6
  198. package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
  199. package/dist/src/shadcn/components/ui/checkbox.stories.js +156 -46
  200. package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
  201. package/dist/src/shadcn/components/ui/combobox.d.ts +29 -0
  202. package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -0
  203. package/dist/src/shadcn/components/ui/combobox.js +226 -0
  204. package/dist/src/shadcn/components/ui/combobox.js.map +1 -0
  205. package/dist/src/shadcn/components/ui/combobox.stories.js +167 -0
  206. package/dist/src/shadcn/components/ui/combobox.stories.js.map +1 -0
  207. package/dist/src/shadcn/components/ui/command.d.ts +4 -2
  208. package/dist/src/shadcn/components/ui/command.d.ts.map +1 -1
  209. package/dist/src/shadcn/components/ui/command.js +75 -13
  210. package/dist/src/shadcn/components/ui/command.js.map +1 -1
  211. package/dist/src/shadcn/components/ui/command.stories.js +277 -57
  212. package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
  213. package/dist/src/shadcn/components/ui/context-menu.d.ts +7 -3
  214. package/dist/src/shadcn/components/ui/context-menu.d.ts.map +1 -1
  215. package/dist/src/shadcn/components/ui/context-menu.js +120 -13
  216. package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
  217. package/dist/src/shadcn/components/ui/dialog.d.ts.map +1 -1
  218. package/dist/src/shadcn/components/ui/dialog.js +35 -7
  219. package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
  220. package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
  221. package/dist/src/shadcn/components/ui/drawer.js +27 -5
  222. package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
  223. package/dist/src/shadcn/components/ui/dropdown-menu.d.ts +7 -3
  224. package/dist/src/shadcn/components/ui/dropdown-menu.d.ts.map +1 -1
  225. package/dist/src/shadcn/components/ui/dropdown-menu.js +122 -14
  226. package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
  227. package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +22 -5
  228. package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
  229. package/dist/src/shadcn/components/ui/form.d.ts +2 -2
  230. package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
  231. package/dist/src/shadcn/components/ui/form.js +17 -8
  232. package/dist/src/shadcn/components/ui/form.js.map +1 -1
  233. package/dist/src/shadcn/components/ui/hover-card.d.ts.map +1 -1
  234. package/dist/src/shadcn/components/ui/hover-card.js +2 -1
  235. package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
  236. package/dist/src/shadcn/components/ui/input-otp.d.ts.map +1 -1
  237. package/dist/src/shadcn/components/ui/input-otp.js +1 -0
  238. package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
  239. package/dist/src/shadcn/components/ui/input.d.ts +3 -1
  240. package/dist/src/shadcn/components/ui/input.d.ts.map +1 -1
  241. package/dist/src/shadcn/components/ui/input.js +126 -17
  242. package/dist/src/shadcn/components/ui/input.js.map +1 -1
  243. package/dist/src/shadcn/components/ui/input.stories.js +218 -29
  244. package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
  245. package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
  246. package/dist/src/shadcn/components/ui/label.js +9 -1
  247. package/dist/src/shadcn/components/ui/label.js.map +1 -1
  248. package/dist/src/shadcn/components/ui/menubar.d.ts.map +1 -1
  249. package/dist/src/shadcn/components/ui/menubar.js +35 -13
  250. package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
  251. package/dist/src/shadcn/components/ui/pagination.d.ts +9 -2
  252. package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
  253. package/dist/src/shadcn/components/ui/pagination.js +41 -24
  254. package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
  255. package/dist/src/shadcn/components/ui/pagination.stories.js +44 -37
  256. package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
  257. package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
  258. package/dist/src/shadcn/components/ui/popover.js +13 -1
  259. package/dist/src/shadcn/components/ui/popover.js.map +1 -1
  260. package/dist/src/shadcn/components/ui/progress.d.ts.map +1 -1
  261. package/dist/src/shadcn/components/ui/progress.js +6 -2
  262. package/dist/src/shadcn/components/ui/progress.js.map +1 -1
  263. package/dist/src/shadcn/components/ui/radio-button-group.d.ts +21 -0
  264. package/dist/src/shadcn/components/ui/radio-button-group.d.ts.map +1 -0
  265. package/dist/src/shadcn/components/ui/radio-button-group.js +148 -0
  266. package/dist/src/shadcn/components/ui/radio-button-group.js.map +1 -0
  267. package/dist/src/shadcn/components/ui/radio-button-group.stories.js +283 -0
  268. package/dist/src/shadcn/components/ui/radio-button-group.stories.js.map +1 -0
  269. package/dist/src/shadcn/components/ui/radio-group.d.ts +5 -1
  270. package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
  271. package/dist/src/shadcn/components/ui/radio-group.js +40 -7
  272. package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
  273. package/dist/src/shadcn/components/ui/radio-group.stories.js +107 -32
  274. package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
  275. package/dist/src/shadcn/components/ui/resizable.d.ts.map +1 -1
  276. package/dist/src/shadcn/components/ui/resizable.js +2 -1
  277. package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
  278. package/dist/src/shadcn/components/ui/resizable.stories.js +2 -2
  279. package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
  280. package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
  281. package/dist/src/shadcn/components/ui/scroll-area.js +10 -3
  282. package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
  283. package/dist/src/shadcn/components/ui/select.d.ts +1 -2
  284. package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
  285. package/dist/src/shadcn/components/ui/select.js +49 -19
  286. package/dist/src/shadcn/components/ui/select.js.map +1 -1
  287. package/dist/src/shadcn/components/ui/select.stories.js +193 -70
  288. package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
  289. package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
  290. package/dist/src/shadcn/components/ui/separator.js +8 -1
  291. package/dist/src/shadcn/components/ui/separator.js.map +1 -1
  292. package/dist/src/shadcn/components/ui/sheet.js +1 -1
  293. package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
  294. package/dist/src/shadcn/components/ui/sidebar.d.ts +4 -4
  295. package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
  296. package/dist/src/shadcn/components/ui/sidebar.js +21 -6
  297. package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
  298. package/dist/src/shadcn/components/ui/skeleton.d.ts.map +1 -1
  299. package/dist/src/shadcn/components/ui/skeleton.js +3 -1
  300. package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
  301. package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
  302. package/dist/src/shadcn/components/ui/slider.js +35 -4
  303. package/dist/src/shadcn/components/ui/slider.js.map +1 -1
  304. package/dist/src/shadcn/components/ui/sonner.d.ts +24 -2
  305. package/dist/src/shadcn/components/ui/sonner.d.ts.map +1 -1
  306. package/dist/src/shadcn/components/ui/sonner.js +127 -9
  307. package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
  308. package/dist/src/shadcn/components/ui/sonner.stories.js +251 -12
  309. package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
  310. package/dist/src/shadcn/components/ui/switch.d.ts +7 -1
  311. package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
  312. package/dist/src/shadcn/components/ui/switch.js +55 -3
  313. package/dist/src/shadcn/components/ui/switch.js.map +1 -1
  314. package/dist/src/shadcn/components/ui/switch.stories.js +84 -9
  315. package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
  316. package/dist/src/shadcn/components/ui/table.d.ts +23 -6
  317. package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
  318. package/dist/src/shadcn/components/ui/table.js +65 -20
  319. package/dist/src/shadcn/components/ui/table.js.map +1 -1
  320. package/dist/src/shadcn/components/ui/table.stories.js +217 -97
  321. package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
  322. package/dist/src/shadcn/components/ui/tabs.d.ts +30 -5
  323. package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
  324. package/dist/src/shadcn/components/ui/tabs.js +470 -23
  325. package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
  326. package/dist/src/shadcn/components/ui/tabs.stories.js +405 -181
  327. package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
  328. package/dist/src/shadcn/components/ui/textarea.d.ts +8 -1
  329. package/dist/src/shadcn/components/ui/textarea.d.ts.map +1 -1
  330. package/dist/src/shadcn/components/ui/textarea.js +30 -2
  331. package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
  332. package/dist/src/shadcn/components/ui/textarea.stories.js +85 -4
  333. package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
  334. package/dist/src/shadcn/components/ui/toggle-group.d.ts +3 -3
  335. package/dist/src/shadcn/components/ui/toggle-group.d.ts.map +1 -1
  336. package/dist/src/shadcn/components/ui/toggle-group.js +14 -12
  337. package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
  338. package/dist/src/shadcn/components/ui/toggle.d.ts +3 -4
  339. package/dist/src/shadcn/components/ui/toggle.d.ts.map +1 -1
  340. package/dist/src/shadcn/components/ui/toggle.js +44 -16
  341. package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
  342. package/dist/src/shadcn/components/ui/toggle.stories.js +130 -7
  343. package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
  344. package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
  345. package/dist/src/shadcn/components/ui/tooltip.js +12 -1
  346. package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
  347. package/dist/src/shadcn/components/ui/tree.d.ts +29 -0
  348. package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -0
  349. package/dist/src/shadcn/components/ui/tree.js +135 -0
  350. package/dist/src/shadcn/components/ui/tree.js.map +1 -0
  351. package/dist/src/shadcn/shadcn.css +4 -4
  352. package/dist/src/tokens.css +50 -20
  353. package/dist/src/typography.css +78 -15
  354. package/package.json +84 -64
  355. package/src/components/button-dropdown.stories.tsx +41 -0
  356. package/src/components/button-dropdown.tsx +97 -0
  357. package/src/components/code-editor/fhir-autocomplete.test.ts +993 -0
  358. package/src/components/code-editor/fhir-autocomplete.ts +2322 -0
  359. package/src/components/code-editor/http/grammar/http.grammar +74 -0
  360. package/src/components/code-editor/http/grammar/http.terms.ts +9 -0
  361. package/src/components/code-editor/http/grammar/http.test.ts +110 -0
  362. package/src/components/code-editor/http/grammar/http.ts +21 -0
  363. package/src/components/code-editor/http/index.ts +424 -0
  364. package/src/components/code-editor/index.tsx +1944 -42
  365. package/src/components/code-editor/json-ast.test.ts +230 -0
  366. package/src/components/code-editor/json-ast.ts +590 -0
  367. package/src/components/code-editor/sql-completion.ts +1112 -0
  368. package/src/components/code-editor.stories.tsx +325 -2
  369. package/src/components/copy-icon.tsx +57 -3
  370. package/src/components/data-table.stories.tsx +91 -0
  371. package/src/components/data-table.tsx +126 -0
  372. package/src/components/date-picker-input.stories.tsx +79 -0
  373. package/src/components/date-picker-input.tsx +104 -0
  374. package/src/components/fhir-structure-view.stories.tsx +439 -0
  375. package/src/components/fhir-structure-view.tsx +233 -0
  376. package/src/components/icon-button.stories.tsx +86 -0
  377. package/src/components/icon-button.tsx +57 -0
  378. package/src/components/operation-outcome-view.stories.tsx +163 -0
  379. package/src/components/operation-outcome-view.tsx +254 -0
  380. package/src/components/request-line-editor.stories.tsx +17 -27
  381. package/src/components/request-line-editor.tsx +103 -61
  382. package/src/components/sandbox.stories.tsx +131 -0
  383. package/src/components/sandbox.tsx +191 -0
  384. package/src/components/segment-control.stories.tsx +61 -0
  385. package/src/components/segment-control.tsx +83 -0
  386. package/src/components/split-button.stories.tsx +68 -0
  387. package/src/components/split-button.tsx +74 -0
  388. package/src/components/tag.stories.tsx +371 -0
  389. package/src/components/tag.tsx +236 -0
  390. package/src/components/tile.stories.tsx +149 -0
  391. package/src/components/tile.tsx +105 -0
  392. package/src/components/toolbar.stories.tsx +64 -0
  393. package/src/components/toolbar.tsx +98 -0
  394. package/src/components/tree-view.stories.tsx +265 -0
  395. package/src/components/tree-view.tsx +246 -0
  396. package/src/icons.tsx +331 -0
  397. package/src/index.css +358 -74
  398. package/src/index.tsx +17 -3
  399. package/src/shadcn/components/ui/accordion.tsx +91 -10
  400. package/src/shadcn/components/ui/alert-dialog.stories.tsx +209 -15
  401. package/src/shadcn/components/ui/alert-dialog.tsx +236 -26
  402. package/src/shadcn/components/ui/alert.stories.tsx +120 -21
  403. package/src/shadcn/components/ui/alert.tsx +125 -28
  404. package/src/shadcn/components/ui/aspect-ratio.tsx +1 -0
  405. package/src/shadcn/components/ui/avatar.stories.tsx +74 -1
  406. package/src/shadcn/components/ui/avatar.tsx +22 -6
  407. package/src/shadcn/components/ui/badge.tsx +67 -18
  408. package/src/shadcn/components/ui/breadcrumb.stories.tsx +161 -41
  409. package/src/shadcn/components/ui/breadcrumb.tsx +172 -23
  410. package/src/shadcn/components/ui/button.stories.tsx +106 -18
  411. package/src/shadcn/components/ui/button.tsx +151 -55
  412. package/src/shadcn/components/ui/calendar.tsx +1 -0
  413. package/src/shadcn/components/ui/card.stories.tsx +17 -3
  414. package/src/shadcn/components/ui/card.tsx +89 -14
  415. package/src/shadcn/components/ui/carousel.tsx +1 -0
  416. package/src/shadcn/components/ui/chart.tsx +9 -5
  417. package/src/shadcn/components/ui/checkbox.stories.tsx +78 -30
  418. package/src/shadcn/components/ui/checkbox.tsx +91 -8
  419. package/src/shadcn/components/ui/combobox.stories.tsx +148 -0
  420. package/src/shadcn/components/ui/combobox.tsx +324 -0
  421. package/src/shadcn/components/ui/command.stories.tsx +184 -39
  422. package/src/shadcn/components/ui/command.tsx +218 -37
  423. package/src/shadcn/components/ui/context-menu.tsx +333 -40
  424. package/src/shadcn/components/ui/dialog.tsx +101 -13
  425. package/src/shadcn/components/ui/drawer.tsx +94 -18
  426. package/src/shadcn/components/ui/dropdown-menu.stories.tsx +18 -2
  427. package/src/shadcn/components/ui/dropdown-menu.tsx +334 -68
  428. package/src/shadcn/components/ui/form.tsx +22 -11
  429. package/src/shadcn/components/ui/hover-card.tsx +2 -1
  430. package/src/shadcn/components/ui/input-otp.tsx +1 -0
  431. package/src/shadcn/components/ui/input.stories.tsx +235 -27
  432. package/src/shadcn/components/ui/input.tsx +400 -29
  433. package/src/shadcn/components/ui/label.tsx +22 -4
  434. package/src/shadcn/components/ui/menubar.tsx +188 -43
  435. package/src/shadcn/components/ui/pagination.stories.tsx +8 -2
  436. package/src/shadcn/components/ui/pagination.tsx +65 -8
  437. package/src/shadcn/components/ui/popover.tsx +36 -4
  438. package/src/shadcn/components/ui/progress.tsx +21 -5
  439. package/src/shadcn/components/ui/radio-button-group.stories.tsx +247 -0
  440. package/src/shadcn/components/ui/radio-button-group.tsx +188 -0
  441. package/src/shadcn/components/ui/radio-group.stories.tsx +70 -14
  442. package/src/shadcn/components/ui/radio-group.tsx +85 -9
  443. package/src/shadcn/components/ui/resizable.stories.tsx +2 -2
  444. package/src/shadcn/components/ui/resizable.tsx +2 -1
  445. package/src/shadcn/components/ui/scroll-area.tsx +34 -5
  446. package/src/shadcn/components/ui/select.stories.tsx +108 -32
  447. package/src/shadcn/components/ui/select.tsx +182 -36
  448. package/src/shadcn/components/ui/separator.tsx +16 -5
  449. package/src/shadcn/components/ui/sheet.tsx +1 -1
  450. package/src/shadcn/components/ui/sidebar.tsx +69 -26
  451. package/src/shadcn/components/ui/skeleton.tsx +4 -1
  452. package/src/shadcn/components/ui/slider.tsx +83 -11
  453. package/src/shadcn/components/ui/sonner.stories.tsx +238 -17
  454. package/src/shadcn/components/ui/sonner.tsx +254 -11
  455. package/src/shadcn/components/ui/switch.stories.tsx +52 -5
  456. package/src/shadcn/components/ui/switch.tsx +92 -7
  457. package/src/shadcn/components/ui/table.stories.tsx +252 -72
  458. package/src/shadcn/components/ui/table.tsx +204 -26
  459. package/src/shadcn/components/ui/tabs.stories.tsx +235 -123
  460. package/src/shadcn/components/ui/tabs.tsx +694 -36
  461. package/src/shadcn/components/ui/textarea.stories.tsx +94 -2
  462. package/src/shadcn/components/ui/textarea.tsx +70 -5
  463. package/src/shadcn/components/ui/toggle-group.tsx +35 -13
  464. package/src/shadcn/components/ui/toggle.stories.tsx +92 -5
  465. package/src/shadcn/components/ui/toggle.tsx +96 -23
  466. package/src/shadcn/components/ui/tooltip.tsx +34 -8
  467. package/src/shadcn/components/ui/tree.tsx +257 -0
  468. package/src/shadcn/shadcn.css +4 -4
  469. package/src/tokens.css +50 -20
  470. package/src/typography.css +78 -15
  471. package/dist/src/components/code-editor.stories.d.ts +0 -7
  472. package/dist/src/components/code-editor.stories.d.ts.map +0 -1
  473. package/dist/src/components/request-line-editor.stories.d.ts +0 -11
  474. package/dist/src/components/request-line-editor.stories.d.ts.map +0 -1
  475. package/dist/src/index.stories.d.ts +0 -14
  476. package/dist/src/index.stories.d.ts.map +0 -1
  477. package/dist/src/index.stories.js +0 -19
  478. package/dist/src/index.stories.js.map +0 -1
  479. package/dist/src/shadcn/components/ui/accordion.stories.d.ts +0 -8
  480. package/dist/src/shadcn/components/ui/accordion.stories.d.ts.map +0 -1
  481. package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts +0 -8
  482. package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts.map +0 -1
  483. package/dist/src/shadcn/components/ui/alert.stories.d.ts +0 -8
  484. package/dist/src/shadcn/components/ui/alert.stories.d.ts.map +0 -1
  485. package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts +0 -8
  486. package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts.map +0 -1
  487. package/dist/src/shadcn/components/ui/avatar.stories.d.ts +0 -8
  488. package/dist/src/shadcn/components/ui/avatar.stories.d.ts.map +0 -1
  489. package/dist/src/shadcn/components/ui/badge.stories.d.ts +0 -8
  490. package/dist/src/shadcn/components/ui/badge.stories.d.ts.map +0 -1
  491. package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts +0 -8
  492. package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts.map +0 -1
  493. package/dist/src/shadcn/components/ui/button.stories.d.ts +0 -23
  494. package/dist/src/shadcn/components/ui/button.stories.d.ts.map +0 -1
  495. package/dist/src/shadcn/components/ui/calendar.stories.d.ts +0 -8
  496. package/dist/src/shadcn/components/ui/calendar.stories.d.ts.map +0 -1
  497. package/dist/src/shadcn/components/ui/card.stories.d.ts +0 -8
  498. package/dist/src/shadcn/components/ui/card.stories.d.ts.map +0 -1
  499. package/dist/src/shadcn/components/ui/carousel.stories.d.ts +0 -8
  500. package/dist/src/shadcn/components/ui/carousel.stories.d.ts.map +0 -1
  501. package/dist/src/shadcn/components/ui/chart.stories.d.ts +0 -8
  502. package/dist/src/shadcn/components/ui/chart.stories.d.ts.map +0 -1
  503. package/dist/src/shadcn/components/ui/checkbox.stories.d.ts +0 -8
  504. package/dist/src/shadcn/components/ui/checkbox.stories.d.ts.map +0 -1
  505. package/dist/src/shadcn/components/ui/collapsible.stories.d.ts +0 -8
  506. package/dist/src/shadcn/components/ui/collapsible.stories.d.ts.map +0 -1
  507. package/dist/src/shadcn/components/ui/command.stories.d.ts +0 -8
  508. package/dist/src/shadcn/components/ui/command.stories.d.ts.map +0 -1
  509. package/dist/src/shadcn/components/ui/context-menu.stories.d.ts +0 -8
  510. package/dist/src/shadcn/components/ui/context-menu.stories.d.ts.map +0 -1
  511. package/dist/src/shadcn/components/ui/dialog.stories.d.ts +0 -8
  512. package/dist/src/shadcn/components/ui/dialog.stories.d.ts.map +0 -1
  513. package/dist/src/shadcn/components/ui/drawer.stories.d.ts +0 -8
  514. package/dist/src/shadcn/components/ui/drawer.stories.d.ts.map +0 -1
  515. package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts +0 -8
  516. package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts.map +0 -1
  517. package/dist/src/shadcn/components/ui/form.stories.d.ts +0 -8
  518. package/dist/src/shadcn/components/ui/form.stories.d.ts.map +0 -1
  519. package/dist/src/shadcn/components/ui/hover-card.stories.d.ts +0 -8
  520. package/dist/src/shadcn/components/ui/hover-card.stories.d.ts.map +0 -1
  521. package/dist/src/shadcn/components/ui/input-otp.stories.d.ts +0 -8
  522. package/dist/src/shadcn/components/ui/input-otp.stories.d.ts.map +0 -1
  523. package/dist/src/shadcn/components/ui/input.stories.d.ts +0 -18
  524. package/dist/src/shadcn/components/ui/input.stories.d.ts.map +0 -1
  525. package/dist/src/shadcn/components/ui/label.stories.d.ts +0 -8
  526. package/dist/src/shadcn/components/ui/label.stories.d.ts.map +0 -1
  527. package/dist/src/shadcn/components/ui/menubar.stories.d.ts +0 -8
  528. package/dist/src/shadcn/components/ui/menubar.stories.d.ts.map +0 -1
  529. package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts +0 -8
  530. package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts.map +0 -1
  531. package/dist/src/shadcn/components/ui/pagination.stories.d.ts +0 -8
  532. package/dist/src/shadcn/components/ui/pagination.stories.d.ts.map +0 -1
  533. package/dist/src/shadcn/components/ui/popover.stories.d.ts +0 -8
  534. package/dist/src/shadcn/components/ui/popover.stories.d.ts.map +0 -1
  535. package/dist/src/shadcn/components/ui/progress.stories.d.ts +0 -8
  536. package/dist/src/shadcn/components/ui/progress.stories.d.ts.map +0 -1
  537. package/dist/src/shadcn/components/ui/radio-group.stories.d.ts +0 -8
  538. package/dist/src/shadcn/components/ui/radio-group.stories.d.ts.map +0 -1
  539. package/dist/src/shadcn/components/ui/resizable.stories.d.ts +0 -8
  540. package/dist/src/shadcn/components/ui/resizable.stories.d.ts.map +0 -1
  541. package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts +0 -8
  542. package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts.map +0 -1
  543. package/dist/src/shadcn/components/ui/select.stories.d.ts +0 -11
  544. package/dist/src/shadcn/components/ui/select.stories.d.ts.map +0 -1
  545. package/dist/src/shadcn/components/ui/separator.stories.d.ts +0 -8
  546. package/dist/src/shadcn/components/ui/separator.stories.d.ts.map +0 -1
  547. package/dist/src/shadcn/components/ui/sheet.stories.d.ts +0 -8
  548. package/dist/src/shadcn/components/ui/sheet.stories.d.ts.map +0 -1
  549. package/dist/src/shadcn/components/ui/sidebar.stories.d.ts +0 -11
  550. package/dist/src/shadcn/components/ui/sidebar.stories.d.ts.map +0 -1
  551. package/dist/src/shadcn/components/ui/skeleton.stories.d.ts +0 -8
  552. package/dist/src/shadcn/components/ui/skeleton.stories.d.ts.map +0 -1
  553. package/dist/src/shadcn/components/ui/slider.stories.d.ts +0 -8
  554. package/dist/src/shadcn/components/ui/slider.stories.d.ts.map +0 -1
  555. package/dist/src/shadcn/components/ui/sonner.stories.d.ts +0 -8
  556. package/dist/src/shadcn/components/ui/sonner.stories.d.ts.map +0 -1
  557. package/dist/src/shadcn/components/ui/switch.stories.d.ts +0 -8
  558. package/dist/src/shadcn/components/ui/switch.stories.d.ts.map +0 -1
  559. package/dist/src/shadcn/components/ui/table.stories.d.ts +0 -8
  560. package/dist/src/shadcn/components/ui/table.stories.d.ts.map +0 -1
  561. package/dist/src/shadcn/components/ui/tabs.stories.d.ts +0 -32
  562. package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +0 -1
  563. package/dist/src/shadcn/components/ui/textarea.stories.d.ts +0 -8
  564. package/dist/src/shadcn/components/ui/textarea.stories.d.ts.map +0 -1
  565. package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts +0 -8
  566. package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts.map +0 -1
  567. package/dist/src/shadcn/components/ui/toggle.stories.d.ts +0 -8
  568. package/dist/src/shadcn/components/ui/toggle.stories.d.ts.map +0 -1
  569. package/dist/src/shadcn/components/ui/tooltip.stories.d.ts +0 -8
  570. package/dist/src/shadcn/components/ui/tooltip.stories.d.ts.map +0 -1
  571. package/src/index.stories.tsx +0 -21
@@ -0,0 +1,206 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildJsonDocumentContext } from "./json-ast.js";
3
+ // Helpers
4
+ const at = (doc, marker = "|")=>{
5
+ const pos = doc.indexOf(marker);
6
+ return {
7
+ doc: doc.slice(0, pos) + doc.slice(pos + 1),
8
+ pos
9
+ };
10
+ };
11
+ describe("buildJsonDocumentContext", ()=>{
12
+ describe("fullPath", ()=>{
13
+ it("empty object root", ()=>{
14
+ const { doc, pos } = at("{\n |\n}");
15
+ const ctx = buildJsonDocumentContext(doc, pos);
16
+ expect(ctx.fullPath).toEqual([]);
17
+ });
18
+ it("one level deep", ()=>{
19
+ const { doc, pos } = at('{\n "name": [\n {\n |\n }\n ]\n}');
20
+ const ctx = buildJsonDocumentContext(doc, pos);
21
+ expect(ctx.fullPath).toEqual([
22
+ "name"
23
+ ]);
24
+ });
25
+ it("two levels deep", ()=>{
26
+ const { doc, pos } = at('{\n "address": [\n {\n "period": {\n |\n }\n }\n ]\n}');
27
+ const ctx = buildJsonDocumentContext(doc, pos);
28
+ expect(ctx.fullPath).toEqual([
29
+ "address",
30
+ "period"
31
+ ]);
32
+ });
33
+ it("second object in array has correct path", ()=>{
34
+ const { doc, pos } = at('{\n "parameter": [\n {"name": "a"},\n {\n |\n }\n ]\n}');
35
+ const ctx = buildJsonDocumentContext(doc, pos);
36
+ expect(ctx.fullPath).toEqual([
37
+ "parameter"
38
+ ]);
39
+ });
40
+ it("third object in array has correct path", ()=>{
41
+ const { doc, pos } = at('{\n "parameter": [\n {"name": "a"},\n {"name": "b"},\n {\n |\n }\n ]\n}');
42
+ const ctx = buildJsonDocumentContext(doc, pos);
43
+ expect(ctx.fullPath).toEqual([
44
+ "parameter"
45
+ ]);
46
+ });
47
+ it("nested array second item", ()=>{
48
+ const { doc, pos } = at('{\n "entry": [\n {"resource": {}},\n {\n "resource": {\n |\n }\n }\n ]\n}');
49
+ const ctx = buildJsonDocumentContext(doc, pos);
50
+ expect(ctx.fullPath).toEqual([
51
+ "entry",
52
+ "resource"
53
+ ]);
54
+ });
55
+ it("inside contained resource", ()=>{
56
+ const { doc, pos } = at('{\n "resourceType": "Bundle",\n "entry": [\n {\n "resource": {\n "resourceType": "Patient",\n |\n }\n }\n ]\n}');
57
+ const ctx = buildJsonDocumentContext(doc, pos);
58
+ expect(ctx.fullPath).toEqual([
59
+ "entry",
60
+ "resource"
61
+ ]);
62
+ });
63
+ });
64
+ describe("fullPath in HTTP mode", ()=>{
65
+ it("skips HTTP header", ()=>{
66
+ const { doc, pos } = at("POST /fhir/Patient\nContent-Type: application/json\n\n{\n |\n}");
67
+ const ctx = buildJsonDocumentContext(doc, pos);
68
+ expect(ctx.fullPath).toEqual([]);
69
+ });
70
+ it("nested path in HTTP mode", ()=>{
71
+ const { doc, pos } = at('PUT /fhir/Patient/1\n\n{\n "name": [\n {\n |\n }\n ]\n}');
72
+ const ctx = buildJsonDocumentContext(doc, pos);
73
+ expect(ctx.fullPath).toEqual([
74
+ "name"
75
+ ]);
76
+ });
77
+ });
78
+ describe("cursorPosition", ()=>{
79
+ it("property on empty line", ()=>{
80
+ const { doc, pos } = at("{\n |\n}");
81
+ const ctx = buildJsonDocumentContext(doc, pos);
82
+ expect(ctx.cursorPosition.kind).toBe("property");
83
+ });
84
+ it("property with partial word", ()=>{
85
+ const { doc, pos } = at('{\n "nam|\n}');
86
+ const ctx = buildJsonDocumentContext(doc, pos);
87
+ expect(ctx.cursorPosition.kind).toBe("property");
88
+ });
89
+ it("value after colon with string", ()=>{
90
+ const { doc, pos } = at('{\n "gender": "|\n}');
91
+ const ctx = buildJsonDocumentContext(doc, pos);
92
+ expect(ctx.cursorPosition).toEqual({
93
+ kind: "value",
94
+ key: "gender",
95
+ prefix: ""
96
+ });
97
+ });
98
+ it("value with partial text", ()=>{
99
+ const { doc, pos } = at('{\n "gender": "mal|\n}');
100
+ const ctx = buildJsonDocumentContext(doc, pos);
101
+ expect(ctx.cursorPosition).toEqual({
102
+ kind: "value",
103
+ key: "gender",
104
+ prefix: "mal"
105
+ });
106
+ });
107
+ it("value for resourceType", ()=>{
108
+ const { doc, pos } = at('{\n "resourceType": "|\n}');
109
+ const ctx = buildJsonDocumentContext(doc, pos);
110
+ expect(ctx.cursorPosition).toEqual({
111
+ kind: "value",
112
+ key: "resourceType",
113
+ prefix: ""
114
+ });
115
+ });
116
+ it("array-item inside canonical array", ()=>{
117
+ const { doc, pos } = at('{\n "profile": [\n "|\n ]\n}');
118
+ const ctx = buildJsonDocumentContext(doc, pos);
119
+ expect(ctx.cursorPosition.kind).toBe("array-item");
120
+ if (ctx.cursorPosition.kind === "array-item") {
121
+ expect(ctx.cursorPosition.parentKey).toBe("profile");
122
+ }
123
+ });
124
+ it("property after comma in object", ()=>{
125
+ const { doc, pos } = at('{\n "a": 1,\n |\n}');
126
+ const ctx = buildJsonDocumentContext(doc, pos);
127
+ expect(ctx.cursorPosition.kind).toBe("property");
128
+ });
129
+ it("property position after boolean value with comma on same line", ()=>{
130
+ const { doc, pos } = at('{\n "resourceType": "Patient",\n "active": true, |\n}');
131
+ const ctx = buildJsonDocumentContext(doc, pos);
132
+ expect(ctx.cursorPosition.kind).toBe("property");
133
+ });
134
+ });
135
+ describe("isInsideArray", ()=>{
136
+ it("false at object root", ()=>{
137
+ const { doc, pos } = at("{\n |\n}");
138
+ const ctx = buildJsonDocumentContext(doc, pos);
139
+ expect(ctx.isInsideArray()).toBe(false);
140
+ });
141
+ it("true inside array", ()=>{
142
+ const { doc, pos } = at('{\n "name": [\n |\n ]\n}');
143
+ const ctx = buildJsonDocumentContext(doc, pos);
144
+ expect(ctx.isInsideArray()).toBe(true);
145
+ });
146
+ it("false inside object inside array", ()=>{
147
+ const { doc, pos } = at('{\n "name": [\n {\n |\n }\n ]\n}');
148
+ const ctx = buildJsonDocumentContext(doc, pos);
149
+ expect(ctx.isInsideArray()).toBe(false);
150
+ });
151
+ });
152
+ describe("getScope", ()=>{
153
+ it("getString finds resourceType at level 0", ()=>{
154
+ const { doc, pos } = at('{\n "resourceType": "Patient",\n |\n}');
155
+ const ctx = buildJsonDocumentContext(doc, pos);
156
+ expect(ctx.getScope(0).getString("resourceType")).toBe("Patient");
157
+ });
158
+ it("getString finds resourceType in parent object (levelsUp=1)", ()=>{
159
+ const { doc, pos } = at('{\n "resourceType": "Patient",\n "name": [\n {\n |\n }\n ]\n}');
160
+ const ctx = buildJsonDocumentContext(doc, pos);
161
+ // level 0 is the inner {} (no resourceType)
162
+ expect(ctx.getScope(0).getString("resourceType")).toBe(null);
163
+ // level 1 is the outer {} with "Patient"
164
+ expect(ctx.getScope(1).getString("resourceType")).toBe("Patient");
165
+ });
166
+ it("getString finds inner resourceType for contained", ()=>{
167
+ const doc = [
168
+ "{",
169
+ ' "resourceType": "Bundle",',
170
+ ' "entry": [',
171
+ " {",
172
+ ' "resource": {',
173
+ ' "resourceType": "Patient",',
174
+ ' "name": [',
175
+ " {",
176
+ " |",
177
+ " }",
178
+ " ]",
179
+ " }",
180
+ " }",
181
+ " ]",
182
+ "}"
183
+ ].join("\n");
184
+ const { doc: d, pos } = at(doc);
185
+ const ctx = buildJsonDocumentContext(d, pos);
186
+ // level 0 = inner { } (name array item)
187
+ expect(ctx.getScope(0).getString("resourceType")).toBe(null);
188
+ // level 1 = resource { "resourceType": "Patient" }
189
+ expect(ctx.getScope(1).getString("resourceType")).toBe("Patient");
190
+ });
191
+ it("getStringArray finds meta.profile", ()=>{
192
+ const { doc, pos } = at('{\n "resourceType": "Patient",\n "meta": {\n "profile": ["http://example.com/Patient"]\n },\n |\n}');
193
+ const ctx = buildJsonDocumentContext(doc, pos);
194
+ expect(ctx.getScope(0).getStringArray("meta", "profile")).toEqual([
195
+ "http://example.com/Patient"
196
+ ]);
197
+ });
198
+ it("getStringArray returns empty for missing profile", ()=>{
199
+ const { doc, pos } = at('{\n "resourceType": "Patient",\n |\n}');
200
+ const ctx = buildJsonDocumentContext(doc, pos);
201
+ expect(ctx.getScope(0).getStringArray("meta", "profile")).toEqual([]);
202
+ });
203
+ });
204
+ });
205
+
206
+ //# sourceMappingURL=json-ast.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/code-editor/json-ast.test.ts"],"sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { buildJsonDocumentContext } from \"./json-ast\";\n\n// Helpers\nconst at = (doc: string, marker = \"|\") => {\n\tconst pos = doc.indexOf(marker);\n\treturn { doc: doc.slice(0, pos) + doc.slice(pos + 1), pos };\n};\n\ndescribe(\"buildJsonDocumentContext\", () => {\n\tdescribe(\"fullPath\", () => {\n\t\tit(\"empty object root\", () => {\n\t\t\tconst { doc, pos } = at(\"{\\n |\\n}\");\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([]);\n\t\t});\n\n\t\tit(\"one level deep\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"name\": [\\n {\\n |\\n }\\n ]\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"name\"]);\n\t\t});\n\n\t\tit(\"two levels deep\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"address\": [\\n {\\n \"period\": {\\n |\\n }\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"address\", \"period\"]);\n\t\t});\n\n\t\tit(\"second object in array has correct path\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"parameter\": [\\n {\"name\": \"a\"},\\n {\\n |\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"parameter\"]);\n\t\t});\n\n\t\tit(\"third object in array has correct path\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"parameter\": [\\n {\"name\": \"a\"},\\n {\"name\": \"b\"},\\n {\\n |\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"parameter\"]);\n\t\t});\n\n\t\tit(\"nested array second item\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"entry\": [\\n {\"resource\": {}},\\n {\\n \"resource\": {\\n |\\n }\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"entry\", \"resource\"]);\n\t\t});\n\n\t\tit(\"inside contained resource\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"resourceType\": \"Bundle\",\\n \"entry\": [\\n {\\n \"resource\": {\\n \"resourceType\": \"Patient\",\\n |\\n }\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"entry\", \"resource\"]);\n\t\t});\n\t});\n\n\tdescribe(\"fullPath in HTTP mode\", () => {\n\t\tit(\"skips HTTP header\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t\"POST /fhir/Patient\\nContent-Type: application/json\\n\\n{\\n |\\n}\",\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([]);\n\t\t});\n\n\t\tit(\"nested path in HTTP mode\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'PUT /fhir/Patient/1\\n\\n{\\n \"name\": [\\n {\\n |\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.fullPath).toEqual([\"name\"]);\n\t\t});\n\t});\n\n\tdescribe(\"cursorPosition\", () => {\n\t\tit(\"property on empty line\", () => {\n\t\t\tconst { doc, pos } = at(\"{\\n |\\n}\");\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition.kind).toBe(\"property\");\n\t\t});\n\n\t\tit(\"property with partial word\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"nam|\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition.kind).toBe(\"property\");\n\t\t});\n\n\t\tit(\"value after colon with string\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"gender\": \"|\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition).toEqual({\n\t\t\t\tkind: \"value\",\n\t\t\t\tkey: \"gender\",\n\t\t\t\tprefix: \"\",\n\t\t\t});\n\t\t});\n\n\t\tit(\"value with partial text\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"gender\": \"mal|\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition).toEqual({\n\t\t\t\tkind: \"value\",\n\t\t\t\tkey: \"gender\",\n\t\t\t\tprefix: \"mal\",\n\t\t\t});\n\t\t});\n\n\t\tit(\"value for resourceType\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"resourceType\": \"|\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition).toEqual({\n\t\t\t\tkind: \"value\",\n\t\t\t\tkey: \"resourceType\",\n\t\t\t\tprefix: \"\",\n\t\t\t});\n\t\t});\n\n\t\tit(\"array-item inside canonical array\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"profile\": [\\n \"|\\n ]\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition.kind).toBe(\"array-item\");\n\t\t\tif (ctx.cursorPosition.kind === \"array-item\") {\n\t\t\t\texpect(ctx.cursorPosition.parentKey).toBe(\"profile\");\n\t\t\t}\n\t\t});\n\n\t\tit(\"property after comma in object\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"a\": 1,\\n |\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition.kind).toBe(\"property\");\n\t\t});\n\n\t\tit(\"property position after boolean value with comma on same line\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"resourceType\": \"Patient\",\\n \"active\": true, |\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.cursorPosition.kind).toBe(\"property\");\n\t\t});\n\t});\n\n\tdescribe(\"isInsideArray\", () => {\n\t\tit(\"false at object root\", () => {\n\t\t\tconst { doc, pos } = at(\"{\\n |\\n}\");\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.isInsideArray()).toBe(false);\n\t\t});\n\n\t\tit(\"true inside array\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"name\": [\\n |\\n ]\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.isInsideArray()).toBe(true);\n\t\t});\n\n\t\tit(\"false inside object inside array\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"name\": [\\n {\\n |\\n }\\n ]\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.isInsideArray()).toBe(false);\n\t\t});\n\t});\n\n\tdescribe(\"getScope\", () => {\n\t\tit(\"getString finds resourceType at level 0\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"resourceType\": \"Patient\",\\n |\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.getScope(0).getString(\"resourceType\")).toBe(\"Patient\");\n\t\t});\n\n\t\tit(\"getString finds resourceType in parent object (levelsUp=1)\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"resourceType\": \"Patient\",\\n \"name\": [\\n {\\n |\\n }\\n ]\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\t// level 0 is the inner {} (no resourceType)\n\t\t\texpect(ctx.getScope(0).getString(\"resourceType\")).toBe(null);\n\t\t\t// level 1 is the outer {} with \"Patient\"\n\t\t\texpect(ctx.getScope(1).getString(\"resourceType\")).toBe(\"Patient\");\n\t\t});\n\n\t\tit(\"getString finds inner resourceType for contained\", () => {\n\t\t\tconst doc = [\n\t\t\t\t\"{\",\n\t\t\t\t' \"resourceType\": \"Bundle\",',\n\t\t\t\t' \"entry\": [',\n\t\t\t\t\" {\",\n\t\t\t\t' \"resource\": {',\n\t\t\t\t' \"resourceType\": \"Patient\",',\n\t\t\t\t' \"name\": [',\n\t\t\t\t\" {\",\n\t\t\t\t\" |\",\n\t\t\t\t\" }\",\n\t\t\t\t\" ]\",\n\t\t\t\t\" }\",\n\t\t\t\t\" }\",\n\t\t\t\t\" ]\",\n\t\t\t\t\"}\",\n\t\t\t].join(\"\\n\");\n\t\t\tconst { doc: d, pos } = at(doc);\n\t\t\tconst ctx = buildJsonDocumentContext(d, pos);\n\t\t\t// level 0 = inner { } (name array item)\n\t\t\texpect(ctx.getScope(0).getString(\"resourceType\")).toBe(null);\n\t\t\t// level 1 = resource { \"resourceType\": \"Patient\" }\n\t\t\texpect(ctx.getScope(1).getString(\"resourceType\")).toBe(\"Patient\");\n\t\t});\n\n\t\tit(\"getStringArray finds meta.profile\", () => {\n\t\t\tconst { doc, pos } = at(\n\t\t\t\t'{\\n \"resourceType\": \"Patient\",\\n \"meta\": {\\n \"profile\": [\"http://example.com/Patient\"]\\n },\\n |\\n}',\n\t\t\t);\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.getScope(0).getStringArray(\"meta\", \"profile\")).toEqual([\n\t\t\t\t\"http://example.com/Patient\",\n\t\t\t]);\n\t\t});\n\n\t\tit(\"getStringArray returns empty for missing profile\", () => {\n\t\t\tconst { doc, pos } = at('{\\n \"resourceType\": \"Patient\",\\n |\\n}');\n\t\t\tconst ctx = buildJsonDocumentContext(doc, pos);\n\t\t\texpect(ctx.getScope(0).getStringArray(\"meta\", \"profile\")).toEqual([]);\n\t\t});\n\t});\n});\n"],"names":["describe","expect","it","buildJsonDocumentContext","at","doc","marker","pos","indexOf","slice","ctx","fullPath","toEqual","cursorPosition","kind","toBe","key","prefix","parentKey","isInsideArray","getScope","getString","join","d","getStringArray"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type Extension } from "@codemirror/state";
2
+ export type SqlQueryType = "tables" | "columns" | "functions" | "jsonb_columns" | "structure_definition";
3
+ export interface SqlConfig {
4
+ executeSql: (query: string, type: SqlQueryType) => Promise<Record<string, unknown>[]>;
5
+ }
6
+ type SchemaMap = Record<string, string[]>;
7
+ type JsonbColumnMap = Record<string, string[]>;
8
+ type ColumnInfo = {
9
+ name: string;
10
+ dataType: string;
11
+ };
12
+ type ColumnMap = Record<string, ColumnInfo[]>;
13
+ export interface SqlMetadata {
14
+ schemas: SchemaMap;
15
+ jsonbColumns: JsonbColumnMap;
16
+ functions: string[];
17
+ columns: ColumnMap;
18
+ }
19
+ export declare function fetchSqlMetadata(executeSql: SqlConfig["executeSql"]): Promise<SqlMetadata>;
20
+ export declare function buildSqlCompletionExtensions(metadata: SqlMetadata, executeSql: SqlConfig["executeSql"]): Extension[];
21
+ export {};
22
+ //# sourceMappingURL=sql-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-completion.d.ts","sourceRoot":"","sources":["../../../../src/components/code-editor/sql-completion.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKhE,MAAM,MAAM,YAAY,GACrB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,eAAe,GACf,sBAAsB,CAAC;AAqB1B,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,CACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,YAAY,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;CACxC;AAID,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1C,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAuB9C,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,cAAc,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;CACnB;AAk2BD,wBAAsB,gBAAgB,CACrC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAqCtB;AAED,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,GACjC,SAAS,EAAE,CA0Hb"}