@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
@@ -1,62 +1,107 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from "lucide-react";
3
+ import * as React from "react";
2
4
  import { cn } from "../../lib/utils.js";
3
- function Table({ className, ...props }) {
4
- return /*#__PURE__*/ _jsx("div", {
5
- "data-slot": "table-container",
6
- className: "relative w-full overflow-x-auto",
7
- children: /*#__PURE__*/ _jsx("table", {
8
- "data-slot": "table",
9
- className: cn("w-full caption-bottom text-sm", className),
10
- ...props
5
+ // Table container
6
+ const tableContainerStyles = cn("relative", "h-full", "w-full", "overflow-auto");
7
+ // Table base
8
+ const tableStyles = cn("w-full", "caption-bottom", "text-sm", "border-collapse", "border-spacing-0");
9
+ // Table header
10
+ const tableHeaderStyles = cn("bg-bg-secondary", "[&_tr]:border-b", "[&_tr]:border-border-secondary", "[&_tr]:h-8");
11
+ // Table header sticky variant
12
+ const tableHeaderStickyStyles = cn("sticky", "top-0", "z-10");
13
+ // Table body
14
+ const tableBodyStyles = cn("[&_tr:last-child]:border-0", "[&_tr]:hover:bg-bg-hover");
15
+ // Table footer
16
+ const tableFooterStyles = cn("bg-bg-secondary", "border-t", "border-border-secondary", "font-medium", "[&>tr]:last:border-b-0");
17
+ // Table row
18
+ const tableRowStyles = cn("h-7", "transition-colors", "duration-150");
19
+ // Table head cell
20
+ const tableHeadStyles = cn("group/head", "text-text-secondary", "h-8", "px-4", "py-2", "text-left", "align-middle", "typo-body-xs", "whitespace-nowrap", "transition-colors", "duration-150", "hover:bg-bg-tertiary", "[&:has([role=checkbox])]:pr-0");
21
+ // Table head sort icon
22
+ const tableSortIconStyles = cn("size-3.5", "shrink-0", "transition-opacity", "duration-150");
23
+ // Table cell
24
+ const tableCellStyles = cn("px-4", "py-1", "align-middle", "whitespace-nowrap", "text-sm", "text-grey-700", "[&:has([role=checkbox])]:pr-0");
25
+ // Table cell link variant
26
+ const tableCellLinkStyles = cn("text-text-link", "cursor-pointer", "hover:underline");
27
+ // Table caption
28
+ const tableCaptionStyles = cn("text-text-secondary", "mt-4", "text-xs", "text-left");
29
+ // Context for sticky header
30
+ const TableStickyContext = /*#__PURE__*/ React.createContext(false);
31
+ function Table({ className, zebra = false, stickyHeader = false, ...props }) {
32
+ return /*#__PURE__*/ _jsx(TableStickyContext.Provider, {
33
+ value: stickyHeader,
34
+ children: /*#__PURE__*/ _jsx("div", {
35
+ "data-slot": "table-container",
36
+ className: tableContainerStyles,
37
+ children: /*#__PURE__*/ _jsx("table", {
38
+ "data-slot": "table",
39
+ "data-zebra": zebra,
40
+ className: cn(tableStyles, className),
41
+ ...props
42
+ })
11
43
  })
12
44
  });
13
45
  }
14
46
  function TableHeader({ className, ...props }) {
47
+ const stickyHeader = React.useContext(TableStickyContext);
15
48
  return /*#__PURE__*/ _jsx("thead", {
16
49
  "data-slot": "table-header",
17
- className: cn("[&_tr]:border-b", className),
50
+ className: cn(tableHeaderStyles, stickyHeader && tableHeaderStickyStyles, className),
18
51
  ...props
19
52
  });
20
53
  }
21
54
  function TableBody({ className, ...props }) {
22
55
  return /*#__PURE__*/ _jsx("tbody", {
23
56
  "data-slot": "table-body",
24
- className: cn("[&_tr:last-child]:border-0", className),
57
+ className: cn(tableBodyStyles, className),
25
58
  ...props
26
59
  });
27
60
  }
28
61
  function TableFooter({ className, ...props }) {
29
62
  return /*#__PURE__*/ _jsx("tfoot", {
30
63
  "data-slot": "table-footer",
31
- className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
64
+ className: cn(tableFooterStyles, className),
32
65
  ...props
33
66
  });
34
67
  }
35
- function TableRow({ className, ...props }) {
68
+ function TableRow({ className, zebra = false, index = 0, selected = false, ...props }) {
69
+ const isOdd = index % 2 === 1;
36
70
  return /*#__PURE__*/ _jsx("tr", {
37
71
  "data-slot": "table-row",
38
- className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
72
+ className: cn(tableRowStyles, !zebra && "border-b", !zebra && "border-border-secondary", zebra && isOdd && "bg-bg-secondary", selected && "bg-bg-hover", className),
39
73
  ...props
40
74
  });
41
75
  }
42
- function TableHead({ className, ...props }) {
76
+ function TableHead({ className, sortable = false, sorted = false, children, ...props }) {
77
+ const SortIcon = sorted === "asc" ? ArrowUpIcon : sorted === "desc" ? ArrowDownIcon : ArrowUpDownIcon;
43
78
  return /*#__PURE__*/ _jsx("th", {
44
79
  "data-slot": "table-head",
45
- className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
46
- ...props
80
+ className: cn(tableHeadStyles, sortable && "cursor-pointer select-none", className),
81
+ ...props,
82
+ children: sortable ? /*#__PURE__*/ _jsxs("div", {
83
+ className: "flex items-center gap-1",
84
+ children: [
85
+ children,
86
+ /*#__PURE__*/ _jsx(SortIcon, {
87
+ className: cn(tableSortIconStyles, sorted ? "opacity-100" : "opacity-0 group-hover/head:opacity-30")
88
+ })
89
+ ]
90
+ }) : children
47
91
  });
48
92
  }
49
- function TableCell({ className, ...props }) {
93
+ function TableCell({ className, type = "text", ...props }) {
50
94
  return /*#__PURE__*/ _jsx("td", {
51
95
  "data-slot": "table-cell",
52
- className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
96
+ "data-type": type,
97
+ className: cn(tableCellStyles, type === "link" && tableCellLinkStyles, className),
53
98
  ...props
54
99
  });
55
100
  }
56
101
  function TableCaption({ className, ...props }) {
57
102
  return /*#__PURE__*/ _jsx("caption", {
58
103
  "data-slot": "table-caption",
59
- className: cn("text-muted-foreground mt-4 text-sm", className),
104
+ className: cn(tableCaptionStyles, className),
60
105
  ...props
61
106
  });
62
107
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"table-container\"\n\t\t\tclassName=\"relative w-full overflow-x-auto\"\n\t\t>\n\t\t\t<table\n\t\t\t\tdata-slot=\"table\"\n\t\t\t\tclassName={cn(\"w-full caption-bottom text-sm\", className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n\treturn (\n\t\t<thead\n\t\t\tdata-slot=\"table-header\"\n\t\t\tclassName={cn(\"[&_tr]:border-b\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n\treturn (\n\t\t<tbody\n\t\t\tdata-slot=\"table-body\"\n\t\t\tclassName={cn(\"[&_tr:last-child]:border-0\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n\treturn (\n\t\t<tfoot\n\t\t\tdata-slot=\"table-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n\treturn (\n\t\t<tr\n\t\t\tdata-slot=\"table-row\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n\treturn (\n\t\t<th\n\t\t\tdata-slot=\"table-head\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n\treturn (\n\t\t<td\n\t\t\tdata-slot=\"table-cell\"\n\t\t\tclassName={cn(\n\t\t\t\t\"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableCaption({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"caption\">) {\n\treturn (\n\t\t<caption\n\t\t\tdata-slot=\"table-caption\"\n\t\t\tclassName={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tTable,\n\tTableHeader,\n\tTableBody,\n\tTableFooter,\n\tTableHead,\n\tTableRow,\n\tTableCell,\n\tTableCaption,\n};\n"],"names":["cn","Table","className","props","div","data-slot","table","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption"],"mappings":";AAEA,SAASA,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,MAAM,EAAEC,SAAS,EAAE,GAAGC,OAAsC;IACpE,qBACC,KAACC;QACAC,aAAU;QACVH,WAAU;kBAEV,cAAA,KAACI;YACAD,aAAU;YACVH,WAAWF,GAAG,iCAAiCE;YAC9C,GAAGC,KAAK;;;AAIb;AAEA,SAASI,YAAY,EAAEL,SAAS,EAAE,GAAGC,OAAsC;IAC1E,qBACC,KAACK;QACAH,aAAU;QACVH,WAAWF,GAAG,mBAAmBE;QAChC,GAAGC,KAAK;;AAGZ;AAEA,SAASM,UAAU,EAAEP,SAAS,EAAE,GAAGC,OAAsC;IACxE,qBACC,KAACO;QACAL,aAAU;QACVH,WAAWF,GAAG,8BAA8BE;QAC3C,GAAGC,KAAK;;AAGZ;AAEA,SAASQ,YAAY,EAAET,SAAS,EAAE,GAAGC,OAAsC;IAC1E,qBACC,KAACS;QACAP,aAAU;QACVH,WAAWF,GACV,2DACAE;QAEA,GAAGC,KAAK;;AAGZ;AAEA,SAASU,SAAS,EAAEX,SAAS,EAAE,GAAGC,OAAmC;IACpE,qBACC,KAACW;QACAT,aAAU;QACVH,WAAWF,GACV,+EACAE;QAEA,GAAGC,KAAK;;AAGZ;AAEA,SAASY,UAAU,EAAEb,SAAS,EAAE,GAAGC,OAAmC;IACrE,qBACC,KAACa;QACAX,aAAU;QACVH,WAAWF,GACV,sJACAE;QAEA,GAAGC,KAAK;;AAGZ;AAEA,SAASc,UAAU,EAAEf,SAAS,EAAE,GAAGC,OAAmC;IACrE,qBACC,KAACe;QACAb,aAAU;QACVH,WAAWF,GACV,0GACAE;QAEA,GAAGC,KAAK;;AAGZ;AAEA,SAASgB,aAAa,EACrBjB,SAAS,EACT,GAAGC,OAC8B;IACjC,qBACC,KAACiB;QACAf,aAAU;QACVH,WAAWF,GAAG,sCAAsCE;QACnD,GAAGC,KAAK;;AAGZ;AAEA,SACCF,KAAK,EACLM,WAAW,EACXE,SAAS,EACTE,WAAW,EACXI,SAAS,EACTF,QAAQ,EACRI,SAAS,EACTE,YAAY,GACX"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.tsx"],"sourcesContent":["import { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Table container\nconst tableContainerStyles = cn(\n\t\"relative\",\n\t\"h-full\",\n\t\"w-full\",\n\t\"overflow-auto\",\n);\n\n// Table base\nconst tableStyles = cn(\n\t\"w-full\",\n\t\"caption-bottom\",\n\t\"text-sm\",\n\t\"border-collapse\",\n\t\"border-spacing-0\",\n);\n\n// Table header\nconst tableHeaderStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"[&_tr]:border-b\",\n\t\"[&_tr]:border-border-secondary\",\n\t\"[&_tr]:h-8\",\n);\n\n// Table header sticky variant\nconst tableHeaderStickyStyles = cn(\"sticky\", \"top-0\", \"z-10\");\n\n// Table body\nconst tableBodyStyles = cn(\n\t\"[&_tr:last-child]:border-0\",\n\t\"[&_tr]:hover:bg-bg-hover\",\n);\n\n// Table footer\nconst tableFooterStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"border-t\",\n\t\"border-border-secondary\",\n\t\"font-medium\",\n\t\"[&>tr]:last:border-b-0\",\n);\n\n// Table row\nconst tableRowStyles = cn(\"h-7\", \"transition-colors\", \"duration-150\");\n\n// Table head cell\nconst tableHeadStyles = cn(\n\t\"group/head\",\n\t\"text-text-secondary\",\n\t\"h-8\",\n\t\"px-4\",\n\t\"py-2\",\n\t\"text-left\",\n\t\"align-middle\",\n\t\"typo-body-xs\",\n\t\"whitespace-nowrap\",\n\t\"transition-colors\",\n\t\"duration-150\",\n\t\"hover:bg-bg-tertiary\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table head sort icon\nconst tableSortIconStyles = cn(\n\t\"size-3.5\",\n\t\"shrink-0\",\n\t\"transition-opacity\",\n\t\"duration-150\",\n);\n\n// Table cell\nconst tableCellStyles = cn(\n\t\"px-4\",\n\t\"py-1\",\n\t\"align-middle\",\n\t\"whitespace-nowrap\",\n\t\"text-sm\",\n\t\"text-grey-700\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table cell link variant\nconst tableCellLinkStyles = cn(\n\t\"text-text-link\",\n\t\"cursor-pointer\",\n\t\"hover:underline\",\n);\n\n// Table caption\nconst tableCaptionStyles = cn(\n\t\"text-text-secondary\",\n\t\"mt-4\",\n\t\"text-xs\",\n\t\"text-left\",\n);\n\n// Context for sticky header\nconst TableStickyContext = React.createContext(false);\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n\tzebra?: boolean | undefined;\n\tstickyHeader?: boolean | undefined;\n};\n\nfunction Table({\n\tclassName,\n\tzebra = false,\n\tstickyHeader = false,\n\t...props\n}: TableProps) {\n\treturn (\n\t\t<TableStickyContext.Provider value={stickyHeader}>\n\t\t\t<div data-slot=\"table-container\" className={tableContainerStyles}>\n\t\t\t\t<table\n\t\t\t\t\tdata-slot=\"table\"\n\t\t\t\t\tdata-zebra={zebra}\n\t\t\t\t\tclassName={cn(tableStyles, className)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</TableStickyContext.Provider>\n\t);\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n\tconst stickyHeader = React.useContext(TableStickyContext);\n\n\treturn (\n\t\t<thead\n\t\t\tdata-slot=\"table-header\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeaderStyles,\n\t\t\t\tstickyHeader && tableHeaderStickyStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n\treturn (\n\t\t<tbody\n\t\t\tdata-slot=\"table-body\"\n\t\t\tclassName={cn(tableBodyStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n\treturn (\n\t\t<tfoot\n\t\t\tdata-slot=\"table-footer\"\n\t\t\tclassName={cn(tableFooterStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & {\n\tzebra?: boolean | undefined;\n\tindex?: number | undefined;\n\tselected?: boolean | undefined;\n};\n\nfunction TableRow({\n\tclassName,\n\tzebra = false,\n\tindex = 0,\n\tselected = false,\n\t...props\n}: TableRowProps) {\n\tconst isOdd = index % 2 === 1;\n\n\treturn (\n\t\t<tr\n\t\t\tdata-slot=\"table-row\"\n\t\t\tclassName={cn(\n\t\t\t\ttableRowStyles,\n\t\t\t\t!zebra && \"border-b\",\n\t\t\t\t!zebra && \"border-border-secondary\",\n\t\t\t\tzebra && isOdd && \"bg-bg-secondary\",\n\t\t\t\tselected && \"bg-bg-hover\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> & {\n\tsortable?: boolean | undefined;\n\tsorted?: \"asc\" | \"desc\" | false | undefined;\n};\n\nfunction TableHead({\n\tclassName,\n\tsortable = false,\n\tsorted = false,\n\tchildren,\n\t...props\n}: TableHeadProps) {\n\tconst SortIcon =\n\t\tsorted === \"asc\"\n\t\t\t? ArrowUpIcon\n\t\t\t: sorted === \"desc\"\n\t\t\t\t? ArrowDownIcon\n\t\t\t\t: ArrowUpDownIcon;\n\n\treturn (\n\t\t<th\n\t\t\tdata-slot=\"table-head\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeadStyles,\n\t\t\t\tsortable && \"cursor-pointer select-none\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{sortable ? (\n\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t{children}\n\t\t\t\t\t<SortIcon\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\ttableSortIconStyles,\n\t\t\t\t\t\t\tsorted ? \"opacity-100\" : \"opacity-0 group-hover/head:opacity-30\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</th>\n\t);\n}\n\ntype CellType = \"text\" | \"link\";\n\ntype TableCellProps = React.ComponentProps<\"td\"> & {\n\ttype?: CellType | undefined;\n};\n\nfunction TableCell({ className, type = \"text\", ...props }: TableCellProps) {\n\treturn (\n\t\t<td\n\t\t\tdata-slot=\"table-cell\"\n\t\t\tdata-type={type}\n\t\t\tclassName={cn(\n\t\t\t\ttableCellStyles,\n\t\t\t\ttype === \"link\" && tableCellLinkStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableCaption({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"caption\">) {\n\treturn (\n\t\t<caption\n\t\t\tdata-slot=\"table-caption\"\n\t\t\tclassName={cn(tableCaptionStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tTable,\n\tTableHeader,\n\tTableBody,\n\tTableFooter,\n\tTableHead,\n\tTableRow,\n\tTableCell,\n\tTableCaption,\n\ttype TableProps,\n\ttype TableRowProps,\n\ttype TableHeadProps,\n\ttype TableCellProps,\n\ttype CellType,\n};\n"],"names":["ArrowDownIcon","ArrowUpDownIcon","ArrowUpIcon","React","cn","tableContainerStyles","tableStyles","tableHeaderStyles","tableHeaderStickyStyles","tableBodyStyles","tableFooterStyles","tableRowStyles","tableHeadStyles","tableSortIconStyles","tableCellStyles","tableCellLinkStyles","tableCaptionStyles","TableStickyContext","createContext","Table","className","zebra","stickyHeader","props","Provider","value","div","data-slot","table","data-zebra","TableHeader","useContext","thead","TableBody","tbody","TableFooter","tfoot","TableRow","index","selected","isOdd","tr","TableHead","sortable","sorted","children","SortIcon","th","TableCell","type","td","data-type","TableCaption","caption"],"mappings":"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"}
@@ -1,112 +1,232 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table.js";
3
- const invoices = [
4
- {
5
- invoice: "INV001",
6
- paymentStatus: "Paid",
7
- totalAmount: "$250.00",
8
- paymentMethod: "Credit Card"
9
- },
10
- {
11
- invoice: "INV002",
12
- paymentStatus: "Pending",
13
- totalAmount: "$150.00",
14
- paymentMethod: "PayPal"
15
- },
16
- {
17
- invoice: "INV003",
18
- paymentStatus: "Unpaid",
19
- totalAmount: "$350.00",
20
- paymentMethod: "Bank Transfer"
21
- },
22
- {
23
- invoice: "INV004",
24
- paymentStatus: "Paid",
25
- totalAmount: "$450.00",
26
- paymentMethod: "Credit Card"
27
- },
28
- {
29
- invoice: "INV005",
30
- paymentStatus: "Paid",
31
- totalAmount: "$550.00",
32
- paymentMethod: "PayPal"
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Controls, Primary, Title } from "@storybook/addon-docs/blocks";
4
+ import { createColumnHelper, flexRender, getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
5
+ import { useState } from "react";
6
+ import { Checkbox } from "./checkbox.js";
7
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table.js";
8
+ const statuses = [
9
+ "Paid",
10
+ "Pending",
11
+ "Unpaid"
12
+ ];
13
+ const methods = [
14
+ "Credit Card",
15
+ "PayPal",
16
+ "Bank Transfer"
17
+ ];
18
+ const invoiceData = Array.from({
19
+ length: 50
20
+ }, (_, i)=>({
21
+ invoice: `INV${String(i + 1).padStart(3, "0")}`,
22
+ paymentStatus: statuses[i % statuses.length],
23
+ totalAmount: 100 + i * 73 % 900,
24
+ paymentMethod: methods[i % methods.length]
25
+ }));
26
+ const columnHelper = createColumnHelper();
27
+ const columns = [
28
+ columnHelper.accessor("invoice", {
29
+ header: "Invoice",
30
+ cell: (info)=>String(info.getValue()),
31
+ enableSorting: true
32
+ }),
33
+ columnHelper.accessor("paymentStatus", {
34
+ header: "Status",
35
+ cell: (info)=>String(info.getValue()),
36
+ enableSorting: true
37
+ }),
38
+ columnHelper.accessor("paymentMethod", {
39
+ header: "Method",
40
+ cell: (info)=>String(info.getValue()),
41
+ enableSorting: true
42
+ }),
43
+ columnHelper.accessor("totalAmount", {
44
+ header: "Amount",
45
+ cell: (info)=>{
46
+ const value = info.getValue();
47
+ return `$${value.toFixed(2)}`;
48
+ },
49
+ enableSorting: true
50
+ })
51
+ ];
52
+ const selectColumn = {
53
+ id: "select",
54
+ header: ({ table })=>/*#__PURE__*/ _jsx(Checkbox, {
55
+ size: "small",
56
+ checked: table.getIsAllPageRowsSelected() ? true : table.getIsSomePageRowsSelected() ? "indeterminate" : false,
57
+ onCheckedChange: (value)=>table.toggleAllPageRowsSelected(!!value),
58
+ "aria-label": "Select all"
59
+ }),
60
+ cell: ({ row })=>/*#__PURE__*/ _jsx(Checkbox, {
61
+ size: "small",
62
+ checked: row.getIsSelected(),
63
+ onCheckedChange: (value)=>row.toggleSelected(!!value),
64
+ "aria-label": "Select row"
65
+ }),
66
+ enableSorting: false
67
+ };
68
+ function TableWithSorting({ zebra = false, selectable = false, stickyHeader = false } = {}) {
69
+ const [sorting, setSorting] = useState([]);
70
+ const [rowSelection, setRowSelection] = useState({});
71
+ const tableColumns = selectable ? [
72
+ selectColumn,
73
+ ...columns
74
+ ] : columns;
75
+ const table = useReactTable({
76
+ data: invoiceData,
77
+ columns: tableColumns,
78
+ state: {
79
+ sorting,
80
+ rowSelection
81
+ },
82
+ onSortingChange: setSorting,
83
+ onRowSelectionChange: setRowSelection,
84
+ getCoreRowModel: getCoreRowModel(),
85
+ getSortedRowModel: getSortedRowModel()
86
+ });
87
+ return /*#__PURE__*/ _jsxs(Table, {
88
+ zebra: zebra,
89
+ stickyHeader: stickyHeader,
90
+ children: [
91
+ /*#__PURE__*/ _jsx(TableHeader, {
92
+ children: table.getHeaderGroups().map((headerGroup)=>/*#__PURE__*/ _jsx(TableRow, {
93
+ children: headerGroup.headers.map((header)=>/*#__PURE__*/ _jsx(TableHead, {
94
+ onClick: header.column.getToggleSortingHandler(),
95
+ sortable: header.column.getCanSort(),
96
+ sorted: header.column.getIsSorted() || false,
97
+ children: flexRender(header.column.columnDef.header, header.getContext())
98
+ }, header.id))
99
+ }, headerGroup.id))
100
+ }),
101
+ /*#__PURE__*/ _jsx(TableBody, {
102
+ children: table.getRowModel().rows.map((row, index)=>/*#__PURE__*/ _jsx(TableRow, {
103
+ zebra: zebra,
104
+ index: index,
105
+ selected: row.getIsSelected(),
106
+ children: row.getVisibleCells().map((cell)=>/*#__PURE__*/ _jsx(TableCell, {
107
+ type: cell.column.id === "invoice" ? "link" : "text",
108
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
109
+ }, cell.id))
110
+ }, row.id))
111
+ })
112
+ ]
113
+ });
114
+ }
115
+ const meta = {
116
+ title: "Component/Table",
117
+ component: TableWithSorting,
118
+ parameters: {
119
+ docs: {
120
+ page: ()=>/*#__PURE__*/ _jsxs(_Fragment, {
121
+ children: [
122
+ /*#__PURE__*/ _jsx(Title, {}),
123
+ /*#__PURE__*/ _jsx(Primary, {}),
124
+ /*#__PURE__*/ _jsx(Controls, {})
125
+ ]
126
+ })
127
+ }
33
128
  },
34
- {
35
- invoice: "INV006",
36
- paymentStatus: "Pending",
37
- totalAmount: "$200.00",
38
- paymentMethod: "Bank Transfer"
129
+ argTypes: {
130
+ zebra: {
131
+ control: "boolean",
132
+ description: "Enable alternating row background colors"
133
+ },
134
+ selectable: {
135
+ control: "boolean",
136
+ description: "Enable row selection with checkboxes"
137
+ },
138
+ stickyHeader: {
139
+ control: "boolean",
140
+ description: "Keep header fixed while scrolling"
141
+ }
39
142
  },
40
- {
41
- invoice: "INV007",
42
- paymentStatus: "Unpaid",
43
- totalAmount: "$300.00",
44
- paymentMethod: "Credit Card"
143
+ args: {
144
+ zebra: false,
145
+ selectable: false,
146
+ stickyHeader: false
45
147
  }
46
- ];
47
- const meta = {
48
- title: "Component/Table"
49
148
  };
50
149
  export default meta;
150
+ export const Default = {
151
+ tags: [
152
+ "!dev"
153
+ ],
154
+ render: ({ zebra = false, selectable = false, stickyHeader = false } = {})=>/*#__PURE__*/ _jsx("div", {
155
+ className: "h-80",
156
+ children: /*#__PURE__*/ _jsx(TableWithSorting, {
157
+ zebra: zebra,
158
+ selectable: selectable,
159
+ stickyHeader: stickyHeader
160
+ })
161
+ })
162
+ };
51
163
  export const Demo = {
52
- render: ()=>/*#__PURE__*/ _jsxs(Table, {
164
+ tags: [
165
+ "!autodocs"
166
+ ],
167
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
168
+ className: "space-y-8 p-6",
53
169
  children: [
54
- /*#__PURE__*/ _jsx(TableCaption, {
55
- children: "A list of your recent invoices."
170
+ /*#__PURE__*/ _jsxs("div", {
171
+ children: [
172
+ /*#__PURE__*/ _jsx("h3", {
173
+ className: "text-lg font-semibold mb-4 text-text-primary",
174
+ children: "Without Zebra Striping"
175
+ }),
176
+ /*#__PURE__*/ _jsx("div", {
177
+ className: "h-80",
178
+ children: /*#__PURE__*/ _jsx(TableWithSorting, {
179
+ zebra: false,
180
+ stickyHeader: true
181
+ })
182
+ })
183
+ ]
56
184
  }),
57
- /*#__PURE__*/ _jsx(TableHeader, {
58
- children: /*#__PURE__*/ _jsxs(TableRow, {
59
- children: [
60
- /*#__PURE__*/ _jsx(TableHead, {
61
- className: "w-[100px]",
62
- children: "Invoice"
63
- }),
64
- /*#__PURE__*/ _jsx(TableHead, {
65
- children: "Status"
66
- }),
67
- /*#__PURE__*/ _jsx(TableHead, {
68
- children: "Method"
69
- }),
70
- /*#__PURE__*/ _jsx(TableHead, {
71
- className: "text-right",
72
- children: "Amount"
185
+ /*#__PURE__*/ _jsxs("div", {
186
+ children: [
187
+ /*#__PURE__*/ _jsx("h3", {
188
+ className: "text-lg font-semibold mb-4 text-text-primary",
189
+ children: "With Zebra Striping"
190
+ }),
191
+ /*#__PURE__*/ _jsx("div", {
192
+ className: "h-80",
193
+ children: /*#__PURE__*/ _jsx(TableWithSorting, {
194
+ zebra: true,
195
+ stickyHeader: true
73
196
  })
74
- ]
75
- })
197
+ })
198
+ ]
76
199
  }),
77
- /*#__PURE__*/ _jsx(TableBody, {
78
- children: invoices.map((invoice)=>/*#__PURE__*/ _jsxs(TableRow, {
79
- children: [
80
- /*#__PURE__*/ _jsx(TableCell, {
81
- className: "font-medium",
82
- children: invoice.invoice
83
- }),
84
- /*#__PURE__*/ _jsx(TableCell, {
85
- children: invoice.paymentStatus
86
- }),
87
- /*#__PURE__*/ _jsx(TableCell, {
88
- children: invoice.paymentMethod
89
- }),
90
- /*#__PURE__*/ _jsx(TableCell, {
91
- className: "text-right",
92
- children: invoice.totalAmount
93
- })
94
- ]
95
- }, invoice.invoice))
200
+ /*#__PURE__*/ _jsxs("div", {
201
+ children: [
202
+ /*#__PURE__*/ _jsx("h3", {
203
+ className: "text-lg font-semibold mb-4 text-text-primary",
204
+ children: "Selectable"
205
+ }),
206
+ /*#__PURE__*/ _jsx("div", {
207
+ className: "h-80",
208
+ children: /*#__PURE__*/ _jsx(TableWithSorting, {
209
+ selectable: true,
210
+ stickyHeader: true
211
+ })
212
+ })
213
+ ]
96
214
  }),
97
- /*#__PURE__*/ _jsx(TableFooter, {
98
- children: /*#__PURE__*/ _jsxs(TableRow, {
99
- children: [
100
- /*#__PURE__*/ _jsx(TableCell, {
101
- colSpan: 3,
102
- children: "Total"
103
- }),
104
- /*#__PURE__*/ _jsx(TableCell, {
105
- className: "text-right",
106
- children: "$2,500.00"
215
+ /*#__PURE__*/ _jsxs("div", {
216
+ children: [
217
+ /*#__PURE__*/ _jsx("h3", {
218
+ className: "text-lg font-semibold mb-4 text-text-primary",
219
+ children: "Selectable + Zebra"
220
+ }),
221
+ /*#__PURE__*/ _jsx("div", {
222
+ className: "h-80",
223
+ children: /*#__PURE__*/ _jsx(TableWithSorting, {
224
+ selectable: true,
225
+ zebra: true,
226
+ stickyHeader: true
107
227
  })
108
- ]
109
- })
228
+ })
229
+ ]
110
230
  })
111
231
  ]
112
232
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tTable,\n\tTableBody,\n\tTableCaption,\n\tTableCell,\n\tTableFooter,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"#shadcn/components/ui/table\";\n\nconst invoices = [\n\t{\n\t\tinvoice: \"INV001\",\n\t\tpaymentStatus: \"Paid\",\n\t\ttotalAmount: \"$250.00\",\n\t\tpaymentMethod: \"Credit Card\",\n\t},\n\t{\n\t\tinvoice: \"INV002\",\n\t\tpaymentStatus: \"Pending\",\n\t\ttotalAmount: \"$150.00\",\n\t\tpaymentMethod: \"PayPal\",\n\t},\n\t{\n\t\tinvoice: \"INV003\",\n\t\tpaymentStatus: \"Unpaid\",\n\t\ttotalAmount: \"$350.00\",\n\t\tpaymentMethod: \"Bank Transfer\",\n\t},\n\t{\n\t\tinvoice: \"INV004\",\n\t\tpaymentStatus: \"Paid\",\n\t\ttotalAmount: \"$450.00\",\n\t\tpaymentMethod: \"Credit Card\",\n\t},\n\t{\n\t\tinvoice: \"INV005\",\n\t\tpaymentStatus: \"Paid\",\n\t\ttotalAmount: \"$550.00\",\n\t\tpaymentMethod: \"PayPal\",\n\t},\n\t{\n\t\tinvoice: \"INV006\",\n\t\tpaymentStatus: \"Pending\",\n\t\ttotalAmount: \"$200.00\",\n\t\tpaymentMethod: \"Bank Transfer\",\n\t},\n\t{\n\t\tinvoice: \"INV007\",\n\t\tpaymentStatus: \"Unpaid\",\n\t\ttotalAmount: \"$300.00\",\n\t\tpaymentMethod: \"Credit Card\",\n\t},\n];\n\nconst meta = {\n\ttitle: \"Component/Table\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<Table>\n\t\t\t<TableCaption>A list of your recent invoices.</TableCaption>\n\t\t\t<TableHeader>\n\t\t\t\t<TableRow>\n\t\t\t\t\t<TableHead className=\"w-[100px]\">Invoice</TableHead>\n\t\t\t\t\t<TableHead>Status</TableHead>\n\t\t\t\t\t<TableHead>Method</TableHead>\n\t\t\t\t\t<TableHead className=\"text-right\">Amount</TableHead>\n\t\t\t\t</TableRow>\n\t\t\t</TableHeader>\n\t\t\t<TableBody>\n\t\t\t\t{invoices.map((invoice) => (\n\t\t\t\t\t<TableRow key={invoice.invoice}>\n\t\t\t\t\t\t<TableCell className=\"font-medium\">{invoice.invoice}</TableCell>\n\t\t\t\t\t\t<TableCell>{invoice.paymentStatus}</TableCell>\n\t\t\t\t\t\t<TableCell>{invoice.paymentMethod}</TableCell>\n\t\t\t\t\t\t<TableCell className=\"text-right\">{invoice.totalAmount}</TableCell>\n\t\t\t\t\t</TableRow>\n\t\t\t\t))}\n\t\t\t</TableBody>\n\t\t\t<TableFooter>\n\t\t\t\t<TableRow>\n\t\t\t\t\t<TableCell colSpan={3}>Total</TableCell>\n\t\t\t\t\t<TableCell className=\"text-right\">$2,500.00</TableCell>\n\t\t\t\t</TableRow>\n\t\t\t</TableFooter>\n\t\t</Table>\n\t),\n} satisfies Story;\n"],"names":["Table","TableBody","TableCaption","TableCell","TableFooter","TableHead","TableHeader","TableRow","invoices","invoice","paymentStatus","totalAmount","paymentMethod","meta","title","Demo","render","className","map","colSpan"],"mappings":";AACA,SACCA,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,SAAS,EACTC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,QAAQ,QACF,aAA8B;AAErC,MAAMC,WAAW;IAChB;QACCC,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;IACA;QACCH,SAAS;QACTC,eAAe;QACfC,aAAa;QACbC,eAAe;IAChB;CACA;AAED,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAAChB;;8BACA,KAACE;8BAAa;;8BACd,KAACI;8BACA,cAAA,MAACC;;0CACA,KAACF;gCAAUY,WAAU;0CAAY;;0CACjC,KAACZ;0CAAU;;0CACX,KAACA;0CAAU;;0CACX,KAACA;gCAAUY,WAAU;0CAAa;;;;;8BAGpC,KAAChB;8BACCO,SAASU,GAAG,CAAC,CAACT,wBACd,MAACF;;8CACA,KAACJ;oCAAUc,WAAU;8CAAeR,QAAQA,OAAO;;8CACnD,KAACN;8CAAWM,QAAQC,aAAa;;8CACjC,KAACP;8CAAWM,QAAQG,aAAa;;8CACjC,KAACT;oCAAUc,WAAU;8CAAcR,QAAQE,WAAW;;;2BAJxCF,QAAQA,OAAO;;8BAQhC,KAACL;8BACA,cAAA,MAACG;;0CACA,KAACJ;gCAAUgB,SAAS;0CAAG;;0CACvB,KAAChB;gCAAUc,WAAU;0CAAa;;;;;;;AAKvC,EAAkB"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.stories.tsx"],"sourcesContent":["\"use client\";\n\nimport { Controls, Primary, Title } from \"@storybook/addon-docs/blocks\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\ttype ColumnDef,\n\tcreateColumnHelper,\n\tflexRender,\n\tgetCoreRowModel,\n\tgetSortedRowModel,\n\ttype RowSelectionState,\n\ttype SortingState,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\nimport { useState } from \"react\";\n\nimport { Checkbox } from \"#shadcn/components/ui/checkbox\";\nimport {\n\tTable,\n\tTableBody,\n\tTableCell,\n\tTableHead,\n\tTableHeader,\n\tTableRow,\n} from \"#shadcn/components/ui/table\";\n\ntype Invoice = {\n\tinvoice: string;\n\tpaymentStatus: \"Paid\" | \"Pending\" | \"Unpaid\";\n\ttotalAmount: number;\n\tpaymentMethod: string;\n};\n\nconst statuses: Invoice[\"paymentStatus\"][] = [\"Paid\", \"Pending\", \"Unpaid\"];\nconst methods: Invoice[\"paymentMethod\"][] = [\n\t\"Credit Card\",\n\t\"PayPal\",\n\t\"Bank Transfer\",\n];\n\nconst invoiceData: Invoice[] = Array.from({ length: 50 }, (_, i) => ({\n\tinvoice: `INV${String(i + 1).padStart(3, \"0\")}`,\n\tpaymentStatus: statuses[i % statuses.length] as string,\n\ttotalAmount: 100 + ((i * 73) % 900),\n\tpaymentMethod: methods[i % methods.length] as string,\n}));\n\nconst columnHelper = createColumnHelper<Invoice>();\n\nconst columns = [\n\tcolumnHelper.accessor(\"invoice\", {\n\t\theader: \"Invoice\",\n\t\tcell: (info) => String(info.getValue()),\n\t\tenableSorting: true,\n\t}),\n\tcolumnHelper.accessor(\"paymentStatus\", {\n\t\theader: \"Status\",\n\t\tcell: (info) => String(info.getValue()),\n\t\tenableSorting: true,\n\t}),\n\tcolumnHelper.accessor(\"paymentMethod\", {\n\t\theader: \"Method\",\n\t\tcell: (info) => String(info.getValue()),\n\t\tenableSorting: true,\n\t}),\n\tcolumnHelper.accessor(\"totalAmount\", {\n\t\theader: \"Amount\",\n\t\tcell: (info) => {\n\t\t\tconst value = info.getValue();\n\t\t\treturn `$${value.toFixed(2)}`;\n\t\t},\n\t\tenableSorting: true,\n\t}),\n];\n\nconst selectColumn: ColumnDef<Invoice, unknown> = {\n\tid: \"select\",\n\theader: ({ table }) => (\n\t\t<Checkbox\n\t\t\tsize=\"small\"\n\t\t\tchecked={\n\t\t\t\ttable.getIsAllPageRowsSelected()\n\t\t\t\t\t? true\n\t\t\t\t\t: table.getIsSomePageRowsSelected()\n\t\t\t\t\t\t? \"indeterminate\"\n\t\t\t\t\t\t: false\n\t\t\t}\n\t\t\tonCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n\t\t\taria-label=\"Select all\"\n\t\t/>\n\t),\n\tcell: ({ row }) => (\n\t\t<Checkbox\n\t\t\tsize=\"small\"\n\t\t\tchecked={row.getIsSelected()}\n\t\t\tonCheckedChange={(value) => row.toggleSelected(!!value)}\n\t\t\taria-label=\"Select row\"\n\t\t/>\n\t),\n\tenableSorting: false,\n};\n\nfunction TableWithSorting({\n\tzebra = false,\n\tselectable = false,\n\tstickyHeader = false,\n}: {\n\tzebra?: boolean;\n\tselectable?: boolean;\n\tstickyHeader?: boolean;\n} = {}) {\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n\n\tconst tableColumns = selectable ? [selectColumn, ...columns] : columns;\n\n\tconst table = useReactTable({\n\t\tdata: invoiceData,\n\t\tcolumns: tableColumns,\n\t\tstate: {\n\t\t\tsorting,\n\t\t\trowSelection,\n\t\t},\n\t\tonSortingChange: setSorting,\n\t\tonRowSelectionChange: setRowSelection,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t});\n\n\treturn (\n\t\t<Table zebra={zebra} stickyHeader={stickyHeader}>\n\t\t\t<TableHeader>\n\t\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t\t<TableRow key={headerGroup.id}>\n\t\t\t\t\t\t{headerGroup.headers.map((header) => (\n\t\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\tonClick={header.column.getToggleSortingHandler()}\n\t\t\t\t\t\t\t\tsortable={header.column.getCanSort()}\n\t\t\t\t\t\t\t\tsorted={header.column.getIsSorted() || false}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</TableRow>\n\t\t\t\t))}\n\t\t\t</TableHeader>\n\t\t\t<TableBody>\n\t\t\t\t{table.getRowModel().rows.map((row, index) => (\n\t\t\t\t\t<TableRow\n\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\tzebra={zebra}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\tselected={row.getIsSelected()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{row.getVisibleCells().map((cell) => (\n\t\t\t\t\t\t\t<TableCell\n\t\t\t\t\t\t\t\tkey={cell.id}\n\t\t\t\t\t\t\t\ttype={cell.column.id === \"invoice\" ? \"link\" : \"text\"}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\n\t\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</TableRow>\n\t\t\t\t))}\n\t\t\t</TableBody>\n\t\t</Table>\n\t);\n}\n\nconst meta = {\n\ttitle: \"Component/Table\",\n\tcomponent: TableWithSorting,\n\tparameters: {\n\t\tdocs: {\n\t\t\tpage: () => (\n\t\t\t\t<>\n\t\t\t\t\t<Title />\n\t\t\t\t\t<Primary />\n\t\t\t\t\t<Controls />\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t},\n\targTypes: {\n\t\tzebra: {\n\t\t\tcontrol: \"boolean\",\n\t\t\tdescription: \"Enable alternating row background colors\",\n\t\t},\n\t\tselectable: {\n\t\t\tcontrol: \"boolean\",\n\t\t\tdescription: \"Enable row selection with checkboxes\",\n\t\t},\n\t\tstickyHeader: {\n\t\t\tcontrol: \"boolean\",\n\t\t\tdescription: \"Keep header fixed while scrolling\",\n\t\t},\n\t},\n\targs: {\n\t\tzebra: false,\n\t\tselectable: false,\n\t\tstickyHeader: false,\n\t},\n} satisfies Meta<typeof TableWithSorting>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default = {\n\ttags: [\"!dev\"],\n\trender: ({\n\t\tzebra = false,\n\t\tselectable = false,\n\t\tstickyHeader = false,\n\t}: {\n\t\tzebra?: boolean;\n\t\tselectable?: boolean;\n\t\tstickyHeader?: boolean;\n\t} = {}) => (\n\t\t<div className=\"h-80\">\n\t\t\t<TableWithSorting\n\t\t\t\tzebra={zebra}\n\t\t\t\tselectable={selectable}\n\t\t\t\tstickyHeader={stickyHeader}\n\t\t\t/>\n\t\t</div>\n\t),\n} satisfies Story;\n\nexport const Demo = {\n\ttags: [\"!autodocs\"],\n\trender: () => (\n\t\t<div className=\"space-y-8 p-6\">\n\t\t\t<div>\n\t\t\t\t<h3 className=\"text-lg font-semibold mb-4 text-text-primary\">\n\t\t\t\t\tWithout Zebra Striping\n\t\t\t\t</h3>\n\t\t\t\t<div className=\"h-80\">\n\t\t\t\t\t<TableWithSorting zebra={false} stickyHeader={true} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h3 className=\"text-lg font-semibold mb-4 text-text-primary\">\n\t\t\t\t\tWith Zebra Striping\n\t\t\t\t</h3>\n\t\t\t\t<div className=\"h-80\">\n\t\t\t\t\t<TableWithSorting zebra={true} stickyHeader={true} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h3 className=\"text-lg font-semibold mb-4 text-text-primary\">\n\t\t\t\t\tSelectable\n\t\t\t\t</h3>\n\t\t\t\t<div className=\"h-80\">\n\t\t\t\t\t<TableWithSorting selectable={true} stickyHeader={true} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<h3 className=\"text-lg font-semibold mb-4 text-text-primary\">\n\t\t\t\t\tSelectable + Zebra\n\t\t\t\t</h3>\n\t\t\t\t<div className=\"h-80\">\n\t\t\t\t\t<TableWithSorting\n\t\t\t\t\t\tselectable={true}\n\t\t\t\t\t\tzebra={true}\n\t\t\t\t\t\tstickyHeader={true}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t),\n} satisfies Story;\n"],"names":["Controls","Primary","Title","createColumnHelper","flexRender","getCoreRowModel","getSortedRowModel","useReactTable","useState","Checkbox","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","statuses","methods","invoiceData","Array","from","length","_","i","invoice","String","padStart","paymentStatus","totalAmount","paymentMethod","columnHelper","columns","accessor","header","cell","info","getValue","enableSorting","value","toFixed","selectColumn","id","table","size","checked","getIsAllPageRowsSelected","getIsSomePageRowsSelected","onCheckedChange","toggleAllPageRowsSelected","aria-label","row","getIsSelected","toggleSelected","TableWithSorting","zebra","selectable","stickyHeader","sorting","setSorting","rowSelection","setRowSelection","tableColumns","data","state","onSortingChange","onRowSelectionChange","getHeaderGroups","map","headerGroup","headers","onClick","column","getToggleSortingHandler","sortable","getCanSort","sorted","getIsSorted","columnDef","getContext","getRowModel","rows","index","selected","getVisibleCells","type","meta","title","component","parameters","docs","page","argTypes","control","description","args","Default","tags","render","div","className","Demo","h3"],"mappings":"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"}
@@ -1,16 +1,41 @@
1
1
  import * as TabsPrimitive from "@radix-ui/react-tabs";
2
2
  import { type VariantProps } from "class-variance-authority";
3
- import type * as React from "react";
3
+ import * as React from "react";
4
4
  import { Button } from "./button";
5
5
  declare const tabsVariants: (props?: ({
6
- variant?: "browser" | null | undefined;
6
+ variant?: "secondary" | "browser" | "tertiary" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- declare function Tabs({ className, variant, ...props }: React.ComponentProps<typeof TabsPrimitive.Root> & VariantProps<typeof tabsVariants>): import("react/jsx-runtime").JSX.Element;
8
+ type TabsProps<T extends string> = Omit<React.ComponentProps<typeof TabsPrimitive.Root> & VariantProps<typeof tabsVariants>, "value" | "defaultValue" | "onValueChange"> & {
9
+ value?: T;
10
+ defaultValue?: T;
11
+ onValueChange?: (value: T) => void;
12
+ };
13
+ declare function Tabs<T extends string = string>({ className, variant, ...props }: TabsProps<T>): import("react/jsx-runtime").JSX.Element;
9
14
  export declare function TabsAddButton(props: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
10
- declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
15
+ type EdgeScrollPosition = "touch" | "depart";
16
+ type FlowType = "overflow" | "underflow";
17
+ type TabsListProps = {
18
+ onLeftEdge?: (position: EdgeScrollPosition) => void;
19
+ onRightEdge?: (position: EdgeScrollPosition) => void;
20
+ onFlow?: (flow: FlowType) => void;
21
+ onResize?: (entries: ResizeObserverEntry[]) => void;
22
+ onTabChange?: (mutationRecords: MutationRecord[]) => void;
23
+ } & React.ComponentProps<typeof TabsPrimitive.List>;
24
+ declare function TabsList({ className, onLeftEdge, onRightEdge, onResize, onFlow, onTabChange, ...props }: TabsListProps): import("react/jsx-runtime").JSX.Element;
25
+ declare function TabsBrowserList({ className, children, onReorder, ...props }: React.ComponentProps<typeof TabsPrimitive.List> & {
26
+ onReorder?: (fromIndex: number, toIndex: number) => void;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ export declare function TabsListDropdown({ tabs, handleTabSelect, handleCloseTab, }: {
29
+ tabs: {
30
+ id: string;
31
+ content: React.ReactNode;
32
+ }[];
33
+ handleTabSelect?: (tabId: string) => void;
34
+ handleCloseTab?: (tabId: string) => void;
35
+ }): import("react/jsx-runtime").JSX.Element;
11
36
  declare function TabsTrigger({ className, onClose, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger> & {
12
37
  onClose?: (value: string) => void;
13
38
  }): import("react/jsx-runtime").JSX.Element;
14
39
  declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
15
- export { Tabs, TabsList, TabsTrigger, TabsContent };
40
+ export { Tabs, TabsList, TabsTrigger, TabsContent, TabsBrowserList };
16
41
  //# sourceMappingURL=tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,YAAY;;8EAsBhB,CAAC;AAEH,iBAAS,IAAI,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,GACjD,YAAY,CAAC,OAAO,YAAY,CAAC,2CAQjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAavE;AAED,iBAAS,QAAQ,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED,iBAAS,WAAW,CAAC,EACpB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,2CAsCA;AAED,iBAAS,WAAW,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/tabs.tsx"],"names":[],"mappings":"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"}