@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
package/src/icons.tsx ADDED
@@ -0,0 +1,287 @@
1
+ export const PlayIcon = () => {
2
+ return (
3
+ <svg
4
+ width="16"
5
+ height="16"
6
+ viewBox="0 0 16 16"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ aria-label="Play"
10
+ role="img"
11
+ >
12
+ <title>Play</title>
13
+ <path
14
+ d="M3.76074 1.56153C3.92124 1.47395 4.11669 1.48025 4.27051 1.57911L13.6035 7.57911C13.7466 7.67111 13.833 7.82988 13.833 8.00001C13.833 8.17014 13.7466 8.32891 13.6035 8.42091L4.27051 14.4209C4.11669 14.5198 3.92124 14.5261 3.76074 14.4385C3.60021 14.3508 3.5 14.1829 3.5 14V2.00001C3.5 1.81711 3.60021 1.64918 3.76074 1.56153Z"
15
+ fill="white"
16
+ />
17
+ </svg>
18
+ );
19
+ };
20
+
21
+ export const PinIcon = () => {
22
+ return (
23
+ <svg
24
+ width="16"
25
+ height="16"
26
+ viewBox="0 0 16 16"
27
+ fill="none"
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ aria-label="Pin"
30
+ role="img"
31
+ >
32
+ <path
33
+ d="M8 11.3334V14.6667"
34
+ stroke="#717684"
35
+ stroke-width="1.25"
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ />
39
+ <path
40
+ d="M5.9987 7.17337C5.99857 7.42143 5.92924 7.66453 5.79851 7.87534C5.66778 8.08616 5.48084 8.25632 5.2587 8.36671L4.07203 8.96671C3.84989 9.07709 3.66295 9.24726 3.53222 9.45807C3.40149 9.66888 3.33216 9.91198 3.33203 10.16V10.6667C3.33203 10.8435 3.40227 11.0131 3.52729 11.1381C3.65232 11.2631 3.82189 11.3334 3.9987 11.3334H11.9987C12.1755 11.3334 12.3451 11.2631 12.4701 11.1381C12.5951 11.0131 12.6654 10.8435 12.6654 10.6667V10.16C12.6652 9.91198 12.5959 9.66888 12.4652 9.45807C12.3345 9.24726 12.1475 9.07709 11.9254 8.96671L10.7387 8.36671C10.5166 8.25632 10.3296 8.08616 10.1989 7.87534C10.0682 7.66453 9.99883 7.42143 9.9987 7.17337V4.66671C9.9987 4.4899 10.0689 4.32033 10.194 4.1953C10.319 4.07028 10.4886 4.00004 10.6654 4.00004C11.019 4.00004 11.3581 3.85957 11.6082 3.60952C11.8582 3.35947 11.9987 3.02033 11.9987 2.66671C11.9987 2.31309 11.8582 1.97395 11.6082 1.7239C11.3581 1.47385 11.019 1.33337 10.6654 1.33337H5.33203C4.97841 1.33337 4.63927 1.47385 4.38922 1.7239C4.13917 1.97395 3.9987 2.31309 3.9987 2.66671C3.9987 3.02033 4.13917 3.35947 4.38922 3.60952C4.63927 3.85957 4.97841 4.00004 5.33203 4.00004C5.50884 4.00004 5.67841 4.07028 5.80344 4.1953C5.92846 4.32033 5.9987 4.4899 5.9987 4.66671V7.17337Z"
41
+ fill="#717684"
42
+ />
43
+ </svg>
44
+ );
45
+ };
46
+
47
+ export const ResourceIcon = () => {
48
+ return (
49
+ <svg
50
+ width="16"
51
+ height="17"
52
+ viewBox="0 0 16 17"
53
+ fill="none"
54
+ xmlns="http://www.w3.org/2000/svg"
55
+ aria-label="Resource"
56
+ role="img"
57
+ >
58
+ <path
59
+ d="M13.9974 11.167H11.3307C10.9625 11.167 10.6641 11.4655 10.6641 11.8337V14.5003C10.6641 14.8685 10.9625 15.167 11.3307 15.167H13.9974C14.3656 15.167 14.6641 14.8685 14.6641 14.5003V11.8337C14.6641 11.4655 14.3656 11.167 13.9974 11.167Z"
60
+ stroke="#717684"
61
+ stroke-width="1.25"
62
+ stroke-linecap="round"
63
+ stroke-linejoin="round"
64
+ />
65
+ <path
66
+ d="M4.66927 11.167H2.0026C1.63441 11.167 1.33594 11.4655 1.33594 11.8337V14.5003C1.33594 14.8685 1.63441 15.167 2.0026 15.167H4.66927C5.03746 15.167 5.33594 14.8685 5.33594 14.5003V11.8337C5.33594 11.4655 5.03746 11.167 4.66927 11.167Z"
67
+ stroke="#717684"
68
+ stroke-width="1.25"
69
+ stroke-linecap="round"
70
+ stroke-linejoin="round"
71
+ />
72
+ <path
73
+ d="M9.33333 1.83301H6.66667C6.29848 1.83301 6 2.13148 6 2.49967V5.16634C6 5.53453 6.29848 5.83301 6.66667 5.83301H9.33333C9.70152 5.83301 10 5.53453 10 5.16634V2.49967C10 2.13148 9.70152 1.83301 9.33333 1.83301Z"
74
+ stroke="#717684"
75
+ stroke-width="1.25"
76
+ stroke-linecap="round"
77
+ stroke-linejoin="round"
78
+ />
79
+ <path
80
+ d="M3.33594 11.1667V9.16667C3.33594 8.98986 3.40618 8.82029 3.5312 8.69526C3.65622 8.57024 3.82579 8.5 4.0026 8.5H12.0026C12.1794 8.5 12.349 8.57024 12.474 8.69526C12.599 8.82029 12.6693 8.98986 12.6693 9.16667V11.1667"
81
+ stroke="#717684"
82
+ stroke-width="1.25"
83
+ stroke-linecap="round"
84
+ stroke-linejoin="round"
85
+ />
86
+ <path
87
+ d="M8 8.49967V5.83301"
88
+ stroke="#717684"
89
+ stroke-width="1.25"
90
+ stroke-linecap="round"
91
+ stroke-linejoin="round"
92
+ />
93
+ </svg>
94
+ );
95
+ };
96
+
97
+ export const BackoneElementIcon = () => {
98
+ return (
99
+ <svg
100
+ width="16"
101
+ height="17"
102
+ viewBox="0 0 16 17"
103
+ fill="none"
104
+ xmlns="http://www.w3.org/2000/svg"
105
+ aria-label="BackoneElement"
106
+ role="img"
107
+ >
108
+ <path
109
+ d="M4.0026 9.83333L4.96927 7.9C5.08058 7.6791 5.25114 7.49353 5.46189 7.36402C5.67263 7.23451 5.91525 7.16618 6.1626 7.16667H13.3359M13.3359 7.16667C13.5396 7.16631 13.7407 7.21262 13.9237 7.30206C14.1067 7.39149 14.2668 7.52166 14.3917 7.68258C14.5165 7.8435 14.6029 8.03089 14.6441 8.23037C14.6853 8.42985 14.6802 8.63611 14.6293 8.83333L13.5959 12.8333C13.5219 13.1199 13.3547 13.3738 13.1205 13.5548C12.8864 13.7359 12.5986 13.8339 12.3026 13.8333H2.66927C2.31565 13.8333 1.97651 13.6929 1.72646 13.4428C1.47641 13.1928 1.33594 12.8536 1.33594 12.5V3.83333C1.33594 3.1 1.93594 2.5 2.66927 2.5H5.28927C5.50888 2.50114 5.72481 2.5565 5.91787 2.66117C6.11094 2.76585 6.27515 2.91659 6.39594 3.1L6.9426 3.9C7.06339 4.08341 7.22761 4.23415 7.42067 4.33883C7.61373 4.4435 7.82966 4.49886 8.04927 4.5H12.0026C12.3562 4.5 12.6954 4.64048 12.9454 4.89052C13.1955 5.14057 13.3359 5.47971 13.3359 5.83333V7.16667Z"
110
+ stroke="#717684"
111
+ stroke-width="1.25"
112
+ stroke-linecap="round"
113
+ stroke-linejoin="round"
114
+ />
115
+ </svg>
116
+ );
117
+ };
118
+
119
+ export const TypCodeIcon = () => {
120
+ return (
121
+ <svg
122
+ width="16"
123
+ height="17"
124
+ viewBox="0 0 16 17"
125
+ fill="none"
126
+ xmlns="http://www.w3.org/2000/svg"
127
+ aria-label="Code"
128
+ role="img"
129
+ >
130
+ <path
131
+ d="M3.33594 2.74969H4.0026C4.53304 2.74969 5.04175 2.96041 5.41682 3.33548C5.79189 3.71055 6.0026 4.21926 6.0026 4.74969C6.0026 4.21926 6.21332 3.71055 6.58839 3.33548C6.96346 2.96041 7.47217 2.74969 8.0026 2.74969H8.66927"
132
+ stroke="#717684"
133
+ stroke-width="1.25"
134
+ stroke-linecap="round"
135
+ stroke-linejoin="round"
136
+ />
137
+ <path
138
+ d="M8.66927 13.4163H8.0026C7.47217 13.4163 6.96346 13.2056 6.58839 12.8305C6.21332 12.4555 6.0026 11.9468 6.0026 11.4163C6.0026 11.9468 5.79189 12.4555 5.41682 12.8305C5.04175 13.2056 4.53304 13.4163 4.0026 13.4163H3.33594"
139
+ stroke="#717684"
140
+ stroke-width="1.25"
141
+ stroke-linecap="round"
142
+ stroke-linejoin="round"
143
+ />
144
+ <path
145
+ d="M3.33594 10.7497H2.66927C2.31565 10.7497 1.97651 10.6092 1.72646 10.3591C1.47641 10.1091 1.33594 9.76994 1.33594 9.41632V6.74965C1.33594 6.39603 1.47641 6.05689 1.72646 5.80685C1.97651 5.5568 2.31565 5.41632 2.66927 5.41632H3.33594"
146
+ stroke="#717684"
147
+ stroke-width="1.25"
148
+ stroke-linecap="round"
149
+ stroke-linejoin="round"
150
+ />
151
+ <path
152
+ d="M8.66406 5.41632H13.3307C13.6844 5.41632 14.0235 5.5568 14.2735 5.80685C14.5236 6.05689 14.6641 6.39603 14.6641 6.74965V9.41632C14.6641 9.76994 14.5236 10.1091 14.2735 10.3591C14.0235 10.6092 13.6844 10.7497 13.3307 10.7497H8.66406"
153
+ stroke="#717684"
154
+ stroke-width="1.25"
155
+ stroke-linecap="round"
156
+ stroke-linejoin="round"
157
+ />
158
+ <path
159
+ d="M6 4.74969V11.4164"
160
+ stroke="#717684"
161
+ stroke-width="1.25"
162
+ stroke-linecap="round"
163
+ stroke-linejoin="round"
164
+ />
165
+ </svg>
166
+ );
167
+ };
168
+
169
+ export const ReferenceIcon = () => {
170
+ return (
171
+ <svg
172
+ width="16"
173
+ height="17"
174
+ viewBox="0 0 16 17"
175
+ fill="none"
176
+ xmlns="http://www.w3.org/2000/svg"
177
+ aria-label="Reference"
178
+ role="img"
179
+ >
180
+ <path
181
+ d="M10 2.08301H14V6.08301"
182
+ stroke="#2278E1"
183
+ stroke-width="1.25"
184
+ stroke-linecap="round"
185
+ stroke-linejoin="round"
186
+ />
187
+ <path
188
+ d="M6.66406 9.41634L13.9974 2.08301"
189
+ stroke="#2278E1"
190
+ stroke-width="1.25"
191
+ stroke-linecap="round"
192
+ stroke-linejoin="round"
193
+ />
194
+ <path
195
+ d="M12 8.74967V12.7497C12 13.1033 11.8595 13.4424 11.6095 13.6925C11.3594 13.9425 11.0203 14.083 10.6667 14.083H3.33333C2.97971 14.083 2.64057 13.9425 2.39052 13.6925C2.14048 13.4424 2 13.1033 2 12.7497V5.41634C2 5.06272 2.14048 4.72358 2.39052 4.47353C2.64057 4.22348 2.97971 4.08301 3.33333 4.08301H7.33333"
196
+ stroke="#2278E1"
197
+ stroke-width="1.25"
198
+ stroke-linecap="round"
199
+ stroke-linejoin="round"
200
+ />
201
+ </svg>
202
+ );
203
+ };
204
+
205
+ export const ComplexTypeIcon = () => {
206
+ return (
207
+ <svg
208
+ width="16"
209
+ height="17"
210
+ viewBox="0 0 16 17"
211
+ fill="none"
212
+ xmlns="http://www.w3.org/2000/svg"
213
+ aria-label="ComplexType"
214
+ role="img"
215
+ >
216
+ <g clip-path="url(#clip0_858_18924)">
217
+ <path
218
+ d="M3.91406 5.77679L8.00281 8.08304L12.0793 5.77691"
219
+ stroke="#717684"
220
+ stroke-width="1.25"
221
+ stroke-linecap="round"
222
+ stroke-linejoin="round"
223
+ />
224
+ <path
225
+ d="M8 12.6996V8.08301"
226
+ stroke="#717684"
227
+ stroke-width="1.25"
228
+ stroke-linecap="round"
229
+ stroke-linejoin="round"
230
+ />
231
+ <path
232
+ d="M14 5.41636C13.9998 5.18254 13.938 4.9529 13.821 4.75047C13.704 4.54803 13.5358 4.37993 13.3333 4.26302L8.66667 1.59636C8.46397 1.47933 8.23405 1.41772 8 1.41772C7.76595 1.41772 7.53603 1.47933 7.33333 1.59636L2.66667 4.26302C2.46418 4.37993 2.29599 4.54803 2.17897 4.75047C2.06196 4.9529 2.00024 5.18254 2 5.41636V10.7497C2.00024 10.9835 2.06196 11.2132 2.17897 11.4156C2.29599 11.618 2.46418 11.7861 2.66667 11.903L7.33333 14.5697C7.53603 14.6867 7.76595 14.7483 8 14.7483C8.23405 14.7483 8.46397 14.6867 8.66667 14.5697L13.3333 11.903C13.5358 11.7861 13.704 11.618 13.821 11.4156C13.938 11.2132 13.9998 10.9835 14 10.7497V5.41636Z"
233
+ stroke="#717684"
234
+ stroke-width="1.25"
235
+ stroke-linecap="round"
236
+ stroke-linejoin="round"
237
+ />
238
+ </g>
239
+ <defs>
240
+ <clipPath id="clip0_858_18924">
241
+ <rect
242
+ width="16"
243
+ height="16"
244
+ fill="white"
245
+ transform="translate(0 0.0830078)"
246
+ />
247
+ </clipPath>
248
+ </defs>
249
+ </svg>
250
+ );
251
+ };
252
+
253
+ export const UnionIcon = () => {
254
+ return (
255
+ <svg
256
+ width="16"
257
+ height="17"
258
+ viewBox="0 0 16 17"
259
+ fill="none"
260
+ xmlns="http://www.w3.org/2000/svg"
261
+ aria-label="Union"
262
+ role="img"
263
+ >
264
+ <g>
265
+ <path
266
+ d="M1.21109 6.84206C1.04758 7.0054 0.917866 7.19937 0.829365 7.41287C0.740865 7.62638 0.695313 7.85523 0.695312 8.08635C0.695313 8.31747 0.740865 8.54632 0.829365 8.75983C0.917866 8.97333 1.04758 9.1673 1.21109 9.33064L6.7502 14.8698C6.91354 15.0333 7.10751 15.163 7.32101 15.2515C7.53452 15.34 7.76337 15.3855 7.99449 15.3855C8.22561 15.3855 8.45446 15.34 8.66797 15.2515C8.88147 15.163 9.07544 15.0333 9.23878 14.8698L14.7779 9.33064C14.9414 9.1673 15.0711 8.97333 15.1596 8.75983C15.2481 8.54632 15.2937 8.31747 15.2937 8.08635C15.2937 7.85523 15.2481 7.62638 15.1596 7.41287C15.0711 7.19937 14.9414 7.0054 14.7779 6.84206L9.23878 1.30295C9.07544 1.13944 8.88147 1.00972 8.66797 0.921223C8.45446 0.832723 8.22561 0.78717 7.99449 0.78717C7.76337 0.78717 7.53452 0.832723 7.32101 0.921223C7.10751 1.00972 6.91354 1.13944 6.7502 1.30295L1.21109 6.84206Z"
267
+ stroke="#2278E1"
268
+ stroke-width="1.25"
269
+ stroke-linecap="round"
270
+ stroke-linejoin="round"
271
+ ></path>
272
+ <path
273
+ fill-rule="evenodd"
274
+ clip-rule="evenodd"
275
+ d="M8.18179 5.7278C7.86175 5.67291 7.5326 5.73305 7.25265 5.89758C6.9727 6.06211 6.76001 6.32041 6.65225 6.62673C6.53771 6.95235 6.18089 7.12346 5.85527 7.00891C5.52965 6.89437 5.35854 6.53754 5.47309 6.21192C5.6788 5.62713 6.08484 5.13402 6.6193 4.81992C7.15375 4.50581 7.78212 4.391 8.39312 4.4958C9.00411 4.6006 9.5583 4.91826 9.95753 5.39251C10.3567 5.8667 10.5752 6.46684 10.5743 7.08667C10.574 8.08475 9.83365 8.74761 9.29602 9.10602C9.00813 9.29795 8.72468 9.43923 8.51567 9.53213C8.41028 9.57897 8.32158 9.61449 8.25777 9.6388C8.08575 9.70433 8.22306 9.66463 8.14777 9.67866C8.20338 9.66012 8.22643 9.6509 8.14777 9.67866C7.8203 9.78781 7.46556 9.6111 7.35641 9.28364C7.2474 8.9566 7.42377 8.60314 7.75042 8.49349L7.75172 8.49305L7.76242 8.4893C7.77295 8.48555 7.79005 8.47935 7.81278 8.47069C7.85834 8.45333 7.92589 8.42635 8.008 8.38986C8.17399 8.31609 8.39054 8.20737 8.60265 8.06596C9.0649 7.7578 9.32434 7.42087 9.32434 7.08599C9.32482 6.76127 9.21037 6.44593 9.00125 6.19751C8.79213 5.94909 8.50184 5.7827 8.18179 5.7278Z"
276
+ fill="#2278E1"
277
+ ></path>
278
+ <path
279
+ fill-rule="evenodd"
280
+ clip-rule="evenodd"
281
+ d="M7.375 11.7526C7.375 11.4074 7.65482 11.1276 8 11.1276H8.00667C8.35184 11.1276 8.63167 11.4074 8.63167 11.7526C8.63167 12.0978 8.35184 12.3776 8.00667 12.3776H8C7.65482 12.3776 7.375 12.0978 7.375 11.7526Z"
282
+ fill="#2278E1"
283
+ ></path>
284
+ </g>
285
+ </svg>
286
+ );
287
+ };
package/src/index.css CHANGED
@@ -3,6 +3,11 @@
3
3
  @import "./tokens.css";
4
4
  @import "./typography.css";
5
5
 
6
+ .lucide {
7
+ /* Change this! */
8
+ stroke-width: 1.5px;
9
+ }
10
+
6
11
  @theme {
7
12
  --color-selection: var(--color-blue-300);
8
13
  --color-ring-red: var(--color-red-200);
@@ -11,7 +16,7 @@
11
16
  --color-ring-purple: var(--color-purple-200);
12
17
  --color-ring-orange: var(--color-orange-200);
13
18
  --color-ring-pink: var(--color-pink-200);
14
- --color-ring-blue: var(--color-blue-300);
19
+ --color-ring-blue: var(--color-blue-200);
15
20
  --color-ring-red: var(--color-red-200);
16
21
  --color-text-primary: var(--color-neutral-900);
17
22
  --color-text-secondary: var(--color-neutral-500);
@@ -19,12 +24,13 @@
19
24
  --color-text-primary_on-brand: var(--color-neutral-50);
20
25
  --color-text-secondary_on-brand: var(--color-neutral-100);
21
26
  --color-text-tertiary: var(--color-neutral-400);
27
+ --color-text-tertiary_hover: var(--color-neutral-500);
22
28
  --color-text-quternary: var(--color-neutral-400);
23
29
  --color-text-quternary_hover: var(--color-neutral-500);
24
30
  --color-text-quternary_on-brand: var(--color-neutral-200);
25
31
  --color-text-disabled: var(--color-neutral-300);
26
32
  --color-text-link: var(--color-blue-500);
27
- --color-text-link_hover: var(--color-blue-600);
33
+ --color-text-link_hover: var(--color-blue-700);
28
34
  --color-text-link_disabled: var(--color-blue-400);
29
35
  --color-text-brand-primary: var(--color-brand-500);
30
36
  --color-text-brand-secondary: var(--color-brand-300);
@@ -39,6 +45,7 @@
39
45
  --color-border-secondary: var(--color-neutral-200);
40
46
  --color-border-separator: var(--color-neutral-200);
41
47
  --color-border-disabled: var(--color-neutral-100);
48
+ --color-border-dark: var(--color-neutral-500);
42
49
  --color-border-brand: var(--color-brand-500);
43
50
  --color-border-link: var(--color-blue-500);
44
51
  --color-border-error: var(--color-red-500);
@@ -90,7 +97,6 @@
90
97
  --color-fg-success-secondary: var(--color-green-400);
91
98
  --color-fg-warning-primary: var(--color-yellow-500);
92
99
  --color-fg-warning-secondary: var(--color-yellow-400);
93
-
94
100
  --color-utility-green: var(--color-green-500);
95
101
  --color-utility-yellow: var(--color-yellow-600);
96
102
  --color-utility-blue: var(--color-blue-500);
@@ -102,3 +108,36 @@
102
108
  --font-family-sans: "Inter", system-ui, sans-serif;
103
109
  --font-family-mono: "JetBrains Mono", monospace;
104
110
  }
111
+
112
+ .no-scrollbar::-webkit-scrollbar {
113
+ display: none;
114
+ }
115
+
116
+ .no-scrollbar {
117
+ -ms-overflow-style: none;
118
+ scrollbar-width: none;
119
+ }
120
+
121
+ body ::-webkit-scrollbar {
122
+ width: 6px;
123
+ height: 6px;
124
+ }
125
+
126
+ body ::-webkit-scrollbar-track {
127
+ background: transparent;
128
+ }
129
+
130
+ body ::-webkit-scrollbar-thumb {
131
+ background-color: var(--color-elements-disabled);
132
+ border-radius: 4px;
133
+ }
134
+
135
+ body ::-webkit-scrollbar-thumb:hover {
136
+ background-color: var(--color-elements-assistive);
137
+ }
138
+ @supports not selector(::-webkit-scrollbar) {
139
+ body {
140
+ scrollbar-color: var(--color-elements-disabled) rgba(0, 0, 0, 0);
141
+ scrollbar-width: thin;
142
+ }
143
+ }
package/src/index.tsx CHANGED
@@ -1,9 +1,14 @@
1
1
  // Shadcn Components
2
-
3
- export * from "./components/code-editor";
2
+ export { toast } from "sonner";
4
3
  export * from "./components/code-editor";
5
4
  export * from "./components/copy-icon";
5
+ export * from "./components/data-table";
6
+ export * from "./components/fhir-structure-view";
6
7
  export * from "./components/request-line-editor";
8
+ export * from "./components/segment-control";
9
+ export * from "./components/split-button";
10
+ export * from "./components/tree-view";
11
+ export * from "./icons";
7
12
  export * from "./shadcn/components/ui/accordion";
8
13
  export * from "./shadcn/components/ui/alert";
9
14
  export * from "./shadcn/components/ui/alert-dialog";
@@ -18,6 +23,7 @@ export * from "./shadcn/components/ui/carousel";
18
23
  export * from "./shadcn/components/ui/chart";
19
24
  export * from "./shadcn/components/ui/checkbox";
20
25
  export * from "./shadcn/components/ui/collapsible";
26
+ export * from "./shadcn/components/ui/combobox";
21
27
  export * from "./shadcn/components/ui/command";
22
28
  export * from "./shadcn/components/ui/context-menu";
23
29
  export * from "./shadcn/components/ui/dialog";
@@ -50,6 +56,7 @@ export * from "./shadcn/components/ui/textarea";
50
56
  export * from "./shadcn/components/ui/toggle";
51
57
  export * from "./shadcn/components/ui/toggle-group";
52
58
  export * from "./shadcn/components/ui/tooltip";
59
+ export * from "./shadcn/components/ui/tree";
53
60
 
54
61
  // Hooks
55
62
  export * from "./shadcn/hooks/use-mobile";
@@ -4,6 +4,65 @@ import type * as React from "react";
4
4
 
5
5
  import { cn } from "#shadcn/lib/utils";
6
6
 
7
+ // Accordion item styles
8
+ const accordionItemStyles = cn(
9
+ "border-b",
10
+ "border-border-primary",
11
+ "last:border-b-0",
12
+ );
13
+
14
+ // Accordion trigger styles
15
+ const accordionTriggerStyles = cn(
16
+ // Layout
17
+ "flex",
18
+ "flex-1",
19
+ "items-start",
20
+ "justify-between",
21
+ "gap-4",
22
+ // Shape
23
+ "rounded-md",
24
+ // Spacing
25
+ "py-4",
26
+ // Typography
27
+ "text-left",
28
+ "text-sm",
29
+ "font-medium",
30
+ // Interaction
31
+ "transition-all",
32
+ "outline-none",
33
+ "hover:underline",
34
+ // Focus
35
+ "focus-visible:ring-2",
36
+ "focus-visible:ring-utility-blue/70",
37
+ // Disabled
38
+ "disabled:pointer-events-none",
39
+ "disabled:opacity-50",
40
+ // Icon rotation
41
+ "[&[data-state=open]>svg]:rotate-180",
42
+ );
43
+
44
+ // Accordion content styles
45
+ const accordionContentStyles = cn(
46
+ "data-[state=closed]:animate-accordion-up",
47
+ "data-[state=open]:animate-accordion-down",
48
+ "overflow-hidden",
49
+ "text-sm",
50
+ );
51
+
52
+ // Accordion content inner styles
53
+ const accordionContentInnerStyles = cn("pt-0", "pb-4");
54
+
55
+ // Accordion chevron styles
56
+ const accordionChevronStyles = cn(
57
+ "text-text-secondary",
58
+ "pointer-events-none",
59
+ "size-4",
60
+ "shrink-0",
61
+ "translate-y-0.5",
62
+ "transition-transform",
63
+ "duration-200",
64
+ );
65
+
7
66
  function Accordion({
8
67
  ...props
9
68
  }: React.ComponentProps<typeof AccordionPrimitive.Root>) {
@@ -17,7 +76,7 @@ function AccordionItem({
17
76
  return (
18
77
  <AccordionPrimitive.Item
19
78
  data-slot="accordion-item"
20
- className={cn("border-b last:border-b-0", className)}
79
+ className={cn(accordionItemStyles, className)}
21
80
  {...props}
22
81
  />
23
82
  );
@@ -32,14 +91,11 @@ function AccordionTrigger({
32
91
  <AccordionPrimitive.Header className="flex">
33
92
  <AccordionPrimitive.Trigger
34
93
  data-slot="accordion-trigger"
35
- className={cn(
36
- "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
37
- className,
38
- )}
94
+ className={cn(accordionTriggerStyles, className)}
39
95
  {...props}
40
96
  >
41
97
  {children}
42
- <ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />
98
+ <ChevronDownIcon className={accordionChevronStyles} />
43
99
  </AccordionPrimitive.Trigger>
44
100
  </AccordionPrimitive.Header>
45
101
  );
@@ -53,10 +109,12 @@ function AccordionContent({
53
109
  return (
54
110
  <AccordionPrimitive.Content
55
111
  data-slot="accordion-content"
56
- className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
112
+ className={accordionContentStyles}
57
113
  {...props}
58
114
  >
59
- <div className={cn("pt-0 pb-4", className)}>{children}</div>
115
+ <div className={cn(accordionContentInnerStyles, className)}>
116
+ {children}
117
+ </div>
60
118
  </AccordionPrimitive.Content>
61
119
  );
62
120
  }
@@ -1,4 +1,5 @@
1
1
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
2
+ import type { VariantProps } from "class-variance-authority";
2
3
  import type * as React from "react";
3
4
  import { buttonVariants } from "#shadcn/components/ui/button";
4
5
  import { cn } from "#shadcn/lib/utils";
@@ -117,11 +118,14 @@ function AlertDialogDescription({
117
118
 
118
119
  function AlertDialogAction({
119
120
  className,
121
+ variant,
122
+ danger,
120
123
  ...props
121
- }: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {
124
+ }: React.ComponentProps<typeof AlertDialogPrimitive.Action> &
125
+ VariantProps<typeof buttonVariants>) {
122
126
  return (
123
127
  <AlertDialogPrimitive.Action
124
- className={cn(buttonVariants(), className)}
128
+ className={cn(buttonVariants({ variant, danger }), className)}
125
129
  {...props}
126
130
  />
127
131
  );
@@ -3,21 +3,49 @@ import type * as React from "react";
3
3
 
4
4
  import { cn } from "#shadcn/lib/utils";
5
5
 
6
- const alertVariants = cva(
7
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
8
- {
9
- variants: {
10
- variant: {
11
- default: "bg-card text-card-foreground",
12
- destructive:
13
- "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",
14
- },
15
- },
16
- defaultVariants: {
17
- variant: "default",
6
+ const baseAlertStyles = cn(
7
+ // Layout
8
+ "relative",
9
+ "w-full",
10
+ "grid",
11
+ "items-start",
12
+ "grid-cols-[0_1fr]",
13
+ "has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr]",
14
+ "gap-y-0.5",
15
+ "has-[>svg]:gap-x-3",
16
+ // Shape
17
+ "rounded-lg",
18
+ // Borders
19
+ "border",
20
+ "border-border-primary",
21
+ // Spacing
22
+ "px-4",
23
+ "py-3",
24
+ // Typography
25
+ "text-sm",
26
+ // SVG styles
27
+ "[&>svg]:size-4",
28
+ "[&>svg]:translate-y-0.5",
29
+ "[&>svg]:text-current",
30
+ );
31
+
32
+ const alertVariants = cva(baseAlertStyles, {
33
+ variants: {
34
+ variant: {
35
+ default: cn("bg-bg-primary", "text-text-primary"),
36
+ destructive: cn(
37
+ "text-text-error-primary",
38
+ "bg-bg-error-primary",
39
+ "border-border-error",
40
+ "[&>svg]:text-current",
41
+ "*:data-[slot=alert-description]:text-fg-error-secondary",
42
+ ),
18
43
  },
19
44
  },
20
- );
45
+ defaultVariants: {
46
+ variant: "default",
47
+ },
48
+ });
21
49
 
22
50
  function Alert({
23
51
  className,
@@ -39,7 +67,11 @@ function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
39
67
  <div
40
68
  data-slot="alert-title"
41
69
  className={cn(
42
- "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
70
+ "col-start-2",
71
+ "line-clamp-1",
72
+ "min-h-4",
73
+ "font-medium",
74
+ "tracking-tight",
43
75
  className,
44
76
  )}
45
77
  {...props}
@@ -55,7 +87,13 @@ function AlertDescription({
55
87
  <div
56
88
  data-slot="alert-description"
57
89
  className={cn(
58
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
90
+ "text-text-secondary",
91
+ "col-start-2",
92
+ "grid",
93
+ "justify-items-start",
94
+ "gap-1",
95
+ "text-sm",
96
+ "[&_p]:leading-relaxed",
59
97
  className,
60
98
  )}
61
99
  {...props}
@@ -3,6 +3,15 @@ import type * as React from "react";
3
3
 
4
4
  import { cn } from "#shadcn/lib/utils";
5
5
 
6
+ const avatarStyles = cn(
7
+ "relative",
8
+ "flex",
9
+ "size-8",
10
+ "shrink-0",
11
+ "overflow-hidden",
12
+ "rounded-full",
13
+ );
14
+
6
15
  function Avatar({
7
16
  className,
8
17
  ...props
@@ -10,10 +19,7 @@ function Avatar({
10
19
  return (
11
20
  <AvatarPrimitive.Root
12
21
  data-slot="avatar"
13
- className={cn(
14
- "relative flex size-8 shrink-0 overflow-hidden rounded-full",
15
- className,
16
- )}
22
+ className={cn(avatarStyles, className)}
17
23
  {...props}
18
24
  />
19
25
  );
@@ -26,7 +32,7 @@ function AvatarImage({
26
32
  return (
27
33
  <AvatarPrimitive.Image
28
34
  data-slot="avatar-image"
29
- className={cn("aspect-square size-full", className)}
35
+ className={cn("aspect-square", "size-full", className)}
30
36
  {...props}
31
37
  />
32
38
  );
@@ -40,7 +46,12 @@ function AvatarFallback({
40
46
  <AvatarPrimitive.Fallback
41
47
  data-slot="avatar-fallback"
42
48
  className={cn(
43
- "bg-muted flex size-full items-center justify-center rounded-full",
49
+ "bg-bg-tertiary",
50
+ "flex",
51
+ "size-full",
52
+ "items-center",
53
+ "justify-center",
54
+ "rounded-full",
44
55
  className,
45
56
  )}
46
57
  {...props}