@adea-ai/ui 0.60.4 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (862) hide show
  1. package/README.md +108 -34
  2. package/dist/components/composites/account-menu/account-menu.d.ts +48 -0
  3. package/dist/components/composites/account-menu/account-menu.d.ts.map +1 -0
  4. package/dist/components/composites/account-menu/account-menu.js +119 -0
  5. package/dist/components/composites/account-menu/account-menu.js.map +1 -0
  6. package/dist/components/composites/account-menu/index.d.ts +2 -0
  7. package/dist/components/composites/account-menu/index.d.ts.map +1 -0
  8. package/dist/components/composites/list-row/index.d.ts +2 -0
  9. package/dist/components/composites/list-row/index.d.ts.map +1 -0
  10. package/dist/components/composites/list-row/list-row.d.ts +44 -0
  11. package/dist/components/composites/list-row/list-row.d.ts.map +1 -0
  12. package/dist/components/composites/list-row/list-row.js +124 -0
  13. package/dist/components/composites/list-row/list-row.js.map +1 -0
  14. package/dist/components/composites/settings/index.d.ts +2 -0
  15. package/dist/components/composites/settings/index.d.ts.map +1 -0
  16. package/dist/components/composites/settings/settings.d.ts +49 -0
  17. package/dist/components/composites/settings/settings.d.ts.map +1 -0
  18. package/dist/components/composites/settings/settings.js +148 -0
  19. package/dist/components/composites/settings/settings.js.map +1 -0
  20. package/dist/components/composites/stat/index.d.ts +2 -0
  21. package/dist/components/composites/stat/index.d.ts.map +1 -0
  22. package/dist/components/composites/stat/stat.d.ts +48 -0
  23. package/dist/components/composites/stat/stat.d.ts.map +1 -0
  24. package/dist/components/composites/stat/stat.js +148 -0
  25. package/dist/components/composites/stat/stat.js.map +1 -0
  26. package/dist/components/composites/update-dialog/index.d.ts +2 -0
  27. package/dist/components/composites/update-dialog/index.d.ts.map +1 -0
  28. package/dist/components/composites/update-dialog/update-dialog.d.ts +108 -0
  29. package/dist/components/composites/update-dialog/update-dialog.d.ts.map +1 -0
  30. package/dist/components/composites/update-dialog/update-dialog.js +452 -0
  31. package/dist/components/composites/update-dialog/update-dialog.js.map +1 -0
  32. package/dist/components/composites/workspace-mark/index.d.ts +2 -0
  33. package/dist/components/composites/workspace-mark/index.d.ts.map +1 -0
  34. package/dist/components/composites/workspace-mark/workspace-mark.d.ts +24 -0
  35. package/dist/components/composites/workspace-mark/workspace-mark.d.ts.map +1 -0
  36. package/dist/components/composites/workspace-mark/workspace-mark.js +76 -0
  37. package/dist/components/composites/workspace-mark/workspace-mark.js.map +1 -0
  38. package/dist/components/conversation/conversation-avatar.d.ts +21 -0
  39. package/dist/components/conversation/conversation-avatar.d.ts.map +1 -0
  40. package/dist/components/conversation/conversation-avatar.js +52 -0
  41. package/dist/components/conversation/conversation-avatar.js.map +1 -0
  42. package/dist/components/conversation/conversation-surface.d.ts +27 -0
  43. package/dist/components/conversation/conversation-surface.d.ts.map +1 -0
  44. package/dist/components/conversation/conversation-surface.js +118 -0
  45. package/dist/components/conversation/conversation-surface.js.map +1 -0
  46. package/dist/components/conversation/index.d.ts +6 -0
  47. package/dist/components/conversation/index.d.ts.map +1 -0
  48. package/dist/components/conversation/message-composer.d.ts +70 -0
  49. package/dist/components/conversation/message-composer.d.ts.map +1 -0
  50. package/dist/components/conversation/message-composer.js +235 -0
  51. package/dist/components/conversation/message-composer.js.map +1 -0
  52. package/dist/components/conversation/message-row.d.ts +101 -0
  53. package/dist/components/conversation/message-row.d.ts.map +1 -0
  54. package/dist/components/conversation/message-row.js +389 -0
  55. package/dist/components/conversation/message-row.js.map +1 -0
  56. package/dist/components/conversation/thread-panel.d.ts +45 -0
  57. package/dist/components/conversation/thread-panel.d.ts.map +1 -0
  58. package/dist/components/conversation/thread-panel.js +123 -0
  59. package/dist/components/conversation/thread-panel.js.map +1 -0
  60. package/dist/components/layout/app-shell/app-shell.d.ts +45 -0
  61. package/dist/components/layout/app-shell/app-shell.d.ts.map +1 -0
  62. package/dist/components/layout/app-shell/app-shell.js +89 -0
  63. package/dist/components/layout/app-shell/app-shell.js.map +1 -0
  64. package/dist/components/layout/app-shell/index.d.ts +2 -0
  65. package/dist/components/layout/app-shell/index.d.ts.map +1 -0
  66. package/dist/components/layout/page/index.d.ts +2 -0
  67. package/dist/components/layout/page/index.d.ts.map +1 -0
  68. package/dist/components/layout/page/page.d.ts +31 -0
  69. package/dist/components/layout/page/page.d.ts.map +1 -0
  70. package/dist/components/layout/page/page.js +143 -0
  71. package/dist/components/layout/page/page.js.map +1 -0
  72. package/dist/components/layout/panel/index.d.ts +2 -0
  73. package/dist/components/layout/panel/index.d.ts.map +1 -0
  74. package/dist/components/layout/panel/panel.d.ts +44 -0
  75. package/dist/components/layout/panel/panel.d.ts.map +1 -0
  76. package/dist/components/layout/panel/panel.js +151 -0
  77. package/dist/components/layout/panel/panel.js.map +1 -0
  78. package/dist/components/layout/side-rail/index.d.ts +3 -0
  79. package/dist/components/layout/side-rail/index.d.ts.map +1 -0
  80. package/dist/components/layout/side-rail/side-rail-context.d.ts +23 -0
  81. package/dist/components/layout/side-rail/side-rail-context.d.ts.map +1 -0
  82. package/dist/components/layout/side-rail/side-rail-context.js +18 -0
  83. package/dist/components/layout/side-rail/side-rail-context.js.map +1 -0
  84. package/dist/components/layout/side-rail/side-rail.d.ts +101 -0
  85. package/dist/components/layout/side-rail/side-rail.d.ts.map +1 -0
  86. package/dist/components/layout/side-rail/side-rail.js +336 -0
  87. package/dist/components/layout/side-rail/side-rail.js.map +1 -0
  88. package/dist/components/layout/sidebar-nav/index.d.ts +2 -0
  89. package/dist/components/layout/sidebar-nav/index.d.ts.map +1 -0
  90. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts +62 -0
  91. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts.map +1 -0
  92. package/dist/components/layout/sidebar-nav/sidebar-nav.js +231 -0
  93. package/dist/components/layout/sidebar-nav/sidebar-nav.js.map +1 -0
  94. package/dist/components/layout/status-bar/index.d.ts +2 -0
  95. package/dist/components/layout/status-bar/index.d.ts.map +1 -0
  96. package/dist/components/layout/status-bar/status-bar.d.ts +23 -0
  97. package/dist/components/layout/status-bar/status-bar.d.ts.map +1 -0
  98. package/dist/components/layout/status-bar/status-bar.js +68 -0
  99. package/dist/components/layout/status-bar/status-bar.js.map +1 -0
  100. package/dist/components/layout/top-bar/index.d.ts +2 -0
  101. package/dist/components/layout/top-bar/index.d.ts.map +1 -0
  102. package/dist/components/layout/top-bar/top-bar.d.ts +59 -0
  103. package/dist/components/layout/top-bar/top-bar.d.ts.map +1 -0
  104. package/dist/components/layout/top-bar/top-bar.js +118 -0
  105. package/dist/components/layout/top-bar/top-bar.js.map +1 -0
  106. package/dist/components/motion/index.d.ts +3 -0
  107. package/dist/components/motion/index.d.ts.map +1 -0
  108. package/dist/components/motion/index.js +3 -0
  109. package/dist/components/motion/presence.d.ts +29 -0
  110. package/dist/components/motion/presence.d.ts.map +1 -0
  111. package/dist/components/motion/presence.js +10 -0
  112. package/dist/components/motion/presence.js.map +1 -0
  113. package/dist/components/theme/appearance-panel.d.ts +25 -0
  114. package/dist/components/theme/appearance-panel.d.ts.map +1 -0
  115. package/dist/components/theme/appearance-panel.js +162 -0
  116. package/dist/components/theme/appearance-panel.js.map +1 -0
  117. package/dist/components/theme/index.d.ts +5 -0
  118. package/dist/components/theme/index.d.ts.map +1 -0
  119. package/dist/components/theme/theme-picker.d.ts +54 -0
  120. package/dist/components/theme/theme-picker.d.ts.map +1 -0
  121. package/dist/components/theme/theme-picker.js +156 -0
  122. package/dist/components/theme/theme-picker.js.map +1 -0
  123. package/dist/components/theme/theme-provider.d.ts +130 -0
  124. package/dist/components/theme/theme-provider.d.ts.map +1 -0
  125. package/dist/components/theme/theme-provider.js +164 -0
  126. package/dist/components/theme/theme-provider.js.map +1 -0
  127. package/dist/components/theme/theme-toggle.d.ts +19 -0
  128. package/dist/components/theme/theme-toggle.d.ts.map +1 -0
  129. package/dist/components/theme/theme-toggle.js +69 -0
  130. package/dist/components/theme/theme-toggle.js.map +1 -0
  131. package/dist/components/ui/accordion/accordion.d.ts +18 -0
  132. package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
  133. package/dist/components/ui/accordion/accordion.js +60 -0
  134. package/dist/components/ui/accordion/accordion.js.map +1 -0
  135. package/dist/components/ui/accordion/index.d.ts +2 -0
  136. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  137. package/dist/components/ui/alert/alert.d.ts +26 -0
  138. package/dist/components/ui/alert/alert.d.ts.map +1 -0
  139. package/dist/components/ui/alert/alert.js +89 -0
  140. package/dist/components/ui/alert/alert.js.map +1 -0
  141. package/dist/components/ui/alert/index.d.ts +2 -0
  142. package/dist/components/ui/alert/index.d.ts.map +1 -0
  143. package/dist/components/ui/alert-dialog/alert-dialog.d.ts +29 -0
  144. package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
  145. package/dist/components/ui/alert-dialog/alert-dialog.js +155 -0
  146. package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -0
  147. package/dist/components/ui/alert-dialog/index.d.ts +2 -0
  148. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  149. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts +22 -0
  150. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  151. package/dist/components/ui/aspect-ratio/aspect-ratio.js +29 -0
  152. package/dist/components/ui/aspect-ratio/aspect-ratio.js.map +1 -0
  153. package/dist/components/ui/aspect-ratio/index.d.ts +2 -0
  154. package/dist/components/ui/aspect-ratio/index.d.ts.map +1 -0
  155. package/dist/components/ui/avatar/avatar.d.ts +41 -0
  156. package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
  157. package/dist/components/ui/avatar/avatar.js +106 -0
  158. package/dist/components/ui/avatar/avatar.js.map +1 -0
  159. package/dist/components/ui/avatar/index.d.ts +2 -0
  160. package/dist/components/ui/avatar/index.d.ts.map +1 -0
  161. package/dist/components/ui/badge/badge.d.ts +22 -0
  162. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  163. package/dist/components/ui/badge/badge.js +58 -0
  164. package/dist/components/ui/badge/badge.js.map +1 -0
  165. package/dist/components/ui/badge/index.d.ts +2 -0
  166. package/dist/components/ui/badge/index.d.ts.map +1 -0
  167. package/dist/components/ui/board/board.d.ts +78 -0
  168. package/dist/components/ui/board/board.d.ts.map +1 -0
  169. package/dist/components/ui/board/board.js +200 -0
  170. package/dist/components/ui/board/board.js.map +1 -0
  171. package/dist/components/ui/board/index.d.ts +2 -0
  172. package/dist/components/ui/board/index.d.ts.map +1 -0
  173. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +24 -0
  174. package/dist/components/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
  175. package/dist/components/ui/breadcrumb/breadcrumb.js +109 -0
  176. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -0
  177. package/dist/components/ui/breadcrumb/index.d.ts +2 -0
  178. package/dist/components/ui/breadcrumb/index.d.ts.map +1 -0
  179. package/dist/components/ui/button/button.d.ts +30 -0
  180. package/dist/components/ui/button/button.d.ts.map +1 -0
  181. package/dist/components/ui/button/button.js +80 -0
  182. package/dist/components/ui/button/button.js.map +1 -0
  183. package/dist/components/ui/button/index.d.ts +2 -0
  184. package/dist/components/ui/button/index.d.ts.map +1 -0
  185. package/dist/components/ui/button-group/button-group.d.ts +39 -0
  186. package/dist/components/ui/button-group/button-group.d.ts.map +1 -0
  187. package/dist/components/ui/button-group/button-group.js +63 -0
  188. package/dist/components/ui/button-group/button-group.js.map +1 -0
  189. package/dist/components/ui/button-group/index.d.ts +2 -0
  190. package/dist/components/ui/button-group/index.d.ts.map +1 -0
  191. package/dist/components/ui/calendar/calendar.d.ts +93 -0
  192. package/dist/components/ui/calendar/calendar.d.ts.map +1 -0
  193. package/dist/components/ui/calendar/calendar.js +243 -0
  194. package/dist/components/ui/calendar/calendar.js.map +1 -0
  195. package/dist/components/ui/calendar/index.d.ts +2 -0
  196. package/dist/components/ui/calendar/index.d.ts.map +1 -0
  197. package/dist/components/ui/card/card.d.ts +23 -0
  198. package/dist/components/ui/card/card.d.ts.map +1 -0
  199. package/dist/components/ui/card/card.js +98 -0
  200. package/dist/components/ui/card/card.js.map +1 -0
  201. package/dist/components/ui/card/index.d.ts +2 -0
  202. package/dist/components/ui/card/index.d.ts.map +1 -0
  203. package/dist/components/ui/carousel/carousel.d.ts +66 -0
  204. package/dist/components/ui/carousel/carousel.d.ts.map +1 -0
  205. package/dist/components/ui/carousel/carousel.js +178 -0
  206. package/dist/components/ui/carousel/carousel.js.map +1 -0
  207. package/dist/components/ui/carousel/index.d.ts +2 -0
  208. package/dist/components/ui/carousel/index.d.ts.map +1 -0
  209. package/dist/components/ui/chart/chart.d.ts +154 -0
  210. package/dist/components/ui/chart/chart.d.ts.map +1 -0
  211. package/dist/components/ui/chart/chart.js +373 -0
  212. package/dist/components/ui/chart/chart.js.map +1 -0
  213. package/dist/components/ui/chart/index.d.ts +2 -0
  214. package/dist/components/ui/chart/index.d.ts.map +1 -0
  215. package/dist/components/ui/checkbox/checkbox.d.ts +33 -0
  216. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  217. package/dist/components/ui/checkbox/checkbox.js +76 -0
  218. package/dist/components/ui/checkbox/checkbox.js.map +1 -0
  219. package/dist/components/ui/checkbox/index.d.ts +2 -0
  220. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  221. package/dist/components/ui/code-block/code-block.d.ts +75 -0
  222. package/dist/components/ui/code-block/code-block.d.ts.map +1 -0
  223. package/dist/components/ui/code-block/code-block.js +186 -0
  224. package/dist/components/ui/code-block/code-block.js.map +1 -0
  225. package/dist/components/ui/code-block/index.d.ts +2 -0
  226. package/dist/components/ui/code-block/index.d.ts.map +1 -0
  227. package/dist/components/ui/collapsible/collapsible.d.ts +17 -0
  228. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
  229. package/dist/components/ui/collapsible/collapsible.js +38 -0
  230. package/dist/components/ui/collapsible/collapsible.js.map +1 -0
  231. package/dist/components/ui/collapsible/index.d.ts +2 -0
  232. package/dist/components/ui/collapsible/index.d.ts.map +1 -0
  233. package/dist/components/ui/combobox/combobox.d.ts +28 -0
  234. package/dist/components/ui/combobox/combobox.d.ts.map +1 -0
  235. package/dist/components/ui/combobox/combobox.js +102 -0
  236. package/dist/components/ui/combobox/combobox.js.map +1 -0
  237. package/dist/components/ui/combobox/index.d.ts +2 -0
  238. package/dist/components/ui/combobox/index.d.ts.map +1 -0
  239. package/dist/components/ui/command/command.d.ts +53 -0
  240. package/dist/components/ui/command/command.d.ts.map +1 -0
  241. package/dist/components/ui/command/command.js +137 -0
  242. package/dist/components/ui/command/command.js.map +1 -0
  243. package/dist/components/ui/command/index.d.ts +2 -0
  244. package/dist/components/ui/command/index.d.ts.map +1 -0
  245. package/dist/components/ui/context-menu/context-menu.d.ts +32 -0
  246. package/dist/components/ui/context-menu/context-menu.d.ts.map +1 -0
  247. package/dist/components/ui/context-menu/context-menu.js +119 -0
  248. package/dist/components/ui/context-menu/context-menu.js.map +1 -0
  249. package/dist/components/ui/context-menu/index.d.ts +2 -0
  250. package/dist/components/ui/context-menu/index.d.ts.map +1 -0
  251. package/dist/components/ui/detail-panel/detail-panel.d.ts +61 -0
  252. package/dist/components/ui/detail-panel/detail-panel.d.ts.map +1 -0
  253. package/dist/components/ui/detail-panel/detail-panel.js +132 -0
  254. package/dist/components/ui/detail-panel/detail-panel.js.map +1 -0
  255. package/dist/components/ui/detail-panel/index.d.ts +2 -0
  256. package/dist/components/ui/detail-panel/index.d.ts.map +1 -0
  257. package/dist/components/ui/dialog/dialog.d.ts +40 -0
  258. package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
  259. package/dist/components/ui/dialog/dialog.js +125 -0
  260. package/dist/components/ui/dialog/dialog.js.map +1 -0
  261. package/dist/components/ui/dialog/index.d.ts +2 -0
  262. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  263. package/dist/components/ui/diff-block/diff-block.d.ts +95 -0
  264. package/dist/components/ui/diff-block/diff-block.d.ts.map +1 -0
  265. package/dist/components/ui/diff-block/diff-block.js +230 -0
  266. package/dist/components/ui/diff-block/diff-block.js.map +1 -0
  267. package/dist/components/ui/diff-block/diff-block.test.d.ts +2 -0
  268. package/dist/components/ui/diff-block/diff-block.test.d.ts.map +1 -0
  269. package/dist/components/ui/diff-block/index.d.ts +2 -0
  270. package/dist/components/ui/diff-block/index.d.ts.map +1 -0
  271. package/dist/components/ui/drawer/drawer.d.ts +39 -0
  272. package/dist/components/ui/drawer/drawer.d.ts.map +1 -0
  273. package/dist/components/ui/drawer/drawer.js +106 -0
  274. package/dist/components/ui/drawer/drawer.js.map +1 -0
  275. package/dist/components/ui/drawer/index.d.ts +2 -0
  276. package/dist/components/ui/drawer/index.d.ts.map +1 -0
  277. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +48 -0
  278. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  279. package/dist/components/ui/dropdown-menu/dropdown-menu.js +151 -0
  280. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -0
  281. package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
  282. package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
  283. package/dist/components/ui/empty/empty.d.ts +27 -0
  284. package/dist/components/ui/empty/empty.d.ts.map +1 -0
  285. package/dist/components/ui/{empty.js → empty/empty.js} +28 -23
  286. package/dist/components/ui/empty/empty.js.map +1 -0
  287. package/dist/components/ui/empty/index.d.ts +2 -0
  288. package/dist/components/ui/empty/index.d.ts.map +1 -0
  289. package/dist/components/ui/entity-icon/entity-icon.d.ts +59 -0
  290. package/dist/components/ui/entity-icon/entity-icon.d.ts.map +1 -0
  291. package/dist/components/ui/entity-icon/entity-icon.js +145 -0
  292. package/dist/components/ui/entity-icon/entity-icon.js.map +1 -0
  293. package/dist/components/ui/entity-icon/index.d.ts +2 -0
  294. package/dist/components/ui/entity-icon/index.d.ts.map +1 -0
  295. package/dist/components/ui/field/field.d.ts +39 -0
  296. package/dist/components/ui/field/field.d.ts.map +1 -0
  297. package/dist/components/ui/field/field.js +111 -0
  298. package/dist/components/ui/field/field.js.map +1 -0
  299. package/dist/components/ui/field/index.d.ts +2 -0
  300. package/dist/components/ui/field/index.d.ts.map +1 -0
  301. package/dist/components/ui/hover-card/hover-card.d.ts +17 -0
  302. package/dist/components/ui/hover-card/hover-card.d.ts.map +1 -0
  303. package/dist/components/ui/hover-card/hover-card.js +40 -0
  304. package/dist/components/ui/hover-card/hover-card.js.map +1 -0
  305. package/dist/components/ui/hover-card/index.d.ts +2 -0
  306. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  307. package/dist/components/ui/input/index.d.ts +2 -0
  308. package/dist/components/ui/input/index.d.ts.map +1 -0
  309. package/dist/components/ui/input/input.d.ts +15 -0
  310. package/dist/components/ui/input/input.d.ts.map +1 -0
  311. package/dist/components/ui/input/input.js +36 -0
  312. package/dist/components/ui/input/input.js.map +1 -0
  313. package/dist/components/ui/input-group/index.d.ts +2 -0
  314. package/dist/components/ui/input-group/index.d.ts.map +1 -0
  315. package/dist/components/ui/input-group/input-group.d.ts +34 -0
  316. package/dist/components/ui/input-group/input-group.d.ts.map +1 -0
  317. package/dist/components/ui/input-group/input-group.js +93 -0
  318. package/dist/components/ui/input-group/input-group.js.map +1 -0
  319. package/dist/components/ui/input-otp/index.d.ts +2 -0
  320. package/dist/components/ui/input-otp/index.d.ts.map +1 -0
  321. package/dist/components/ui/input-otp/input-otp.d.ts +37 -0
  322. package/dist/components/ui/input-otp/input-otp.d.ts.map +1 -0
  323. package/dist/components/ui/input-otp/input-otp.js +92 -0
  324. package/dist/components/ui/input-otp/input-otp.js.map +1 -0
  325. package/dist/components/ui/item/index.d.ts +2 -0
  326. package/dist/components/ui/item/index.d.ts.map +1 -0
  327. package/dist/components/ui/item/item.d.ts +49 -0
  328. package/dist/components/ui/item/item.d.ts.map +1 -0
  329. package/dist/components/ui/item/item.js +163 -0
  330. package/dist/components/ui/item/item.js.map +1 -0
  331. package/dist/components/ui/kbd/index.d.ts +2 -0
  332. package/dist/components/ui/kbd/index.d.ts.map +1 -0
  333. package/dist/components/ui/kbd/kbd.d.ts +14 -0
  334. package/dist/components/ui/kbd/kbd.d.ts.map +1 -0
  335. package/dist/components/ui/kbd/kbd.js +40 -0
  336. package/dist/components/ui/kbd/kbd.js.map +1 -0
  337. package/dist/components/ui/label/index.d.ts +2 -0
  338. package/dist/components/ui/label/index.d.ts.map +1 -0
  339. package/dist/components/ui/label/label.d.ts +17 -0
  340. package/dist/components/ui/label/label.d.ts.map +1 -0
  341. package/dist/components/ui/label/label.js +33 -0
  342. package/dist/components/ui/label/label.js.map +1 -0
  343. package/dist/components/ui/menubar/index.d.ts +2 -0
  344. package/dist/components/ui/menubar/index.d.ts.map +1 -0
  345. package/dist/components/ui/menubar/menubar.d.ts +38 -0
  346. package/dist/components/ui/menubar/menubar.d.ts.map +1 -0
  347. package/dist/components/ui/menubar/menubar.js +138 -0
  348. package/dist/components/ui/menubar/menubar.js.map +1 -0
  349. package/dist/components/ui/modal-dialog/index.d.ts +2 -0
  350. package/dist/components/ui/modal-dialog/index.d.ts.map +1 -0
  351. package/dist/components/ui/modal-dialog/modal-dialog.d.ts +35 -0
  352. package/dist/components/ui/modal-dialog/modal-dialog.d.ts.map +1 -0
  353. package/dist/components/ui/modal-dialog/modal-dialog.js +78 -0
  354. package/dist/components/ui/modal-dialog/modal-dialog.js.map +1 -0
  355. package/dist/components/ui/navigation-menu/index.d.ts +2 -0
  356. package/dist/components/ui/navigation-menu/index.d.ts.map +1 -0
  357. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +77 -0
  358. package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -0
  359. package/dist/components/ui/navigation-menu/navigation-menu.js +116 -0
  360. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -0
  361. package/dist/components/ui/pagination/index.d.ts +2 -0
  362. package/dist/components/ui/pagination/index.d.ts.map +1 -0
  363. package/dist/components/ui/pagination/pagination.d.ts +33 -0
  364. package/dist/components/ui/pagination/pagination.d.ts.map +1 -0
  365. package/dist/components/ui/pagination/pagination.js +92 -0
  366. package/dist/components/ui/pagination/pagination.js.map +1 -0
  367. package/dist/components/ui/popover/index.d.ts +2 -0
  368. package/dist/components/ui/popover/index.d.ts.map +1 -0
  369. package/dist/components/ui/popover/popover.d.ts +26 -0
  370. package/dist/components/ui/popover/popover.d.ts.map +1 -0
  371. package/dist/components/ui/popover/popover.js +66 -0
  372. package/dist/components/ui/popover/popover.js.map +1 -0
  373. package/dist/components/ui/progress/index.d.ts +2 -0
  374. package/dist/components/ui/progress/index.d.ts.map +1 -0
  375. package/dist/components/ui/progress/progress.d.ts +29 -0
  376. package/dist/components/ui/progress/progress.d.ts.map +1 -0
  377. package/dist/components/ui/progress/progress.js +53 -0
  378. package/dist/components/ui/progress/progress.js.map +1 -0
  379. package/dist/components/ui/radio-group/index.d.ts +2 -0
  380. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  381. package/dist/components/ui/radio-group/radio-group.d.ts +26 -0
  382. package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
  383. package/dist/components/ui/radio-group/radio-group.js +77 -0
  384. package/dist/components/ui/radio-group/radio-group.js.map +1 -0
  385. package/dist/components/ui/resizable/index.d.ts +2 -0
  386. package/dist/components/ui/resizable/index.d.ts.map +1 -0
  387. package/dist/components/ui/resizable/resizable.d.ts +33 -0
  388. package/dist/components/ui/resizable/resizable.d.ts.map +1 -0
  389. package/dist/components/ui/resizable/resizable.js +57 -0
  390. package/dist/components/ui/resizable/resizable.js.map +1 -0
  391. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  392. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  393. package/dist/components/ui/scroll-area/scroll-area.d.ts +26 -0
  394. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
  395. package/dist/components/ui/scroll-area/scroll-area.js +36 -0
  396. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
  397. package/dist/components/ui/select/index.d.ts +2 -0
  398. package/dist/components/ui/select/index.d.ts.map +1 -0
  399. package/dist/components/ui/select/select.d.ts +63 -0
  400. package/dist/components/ui/select/select.d.ts.map +1 -0
  401. package/dist/components/ui/select/select.js +142 -0
  402. package/dist/components/ui/select/select.js.map +1 -0
  403. package/dist/components/ui/separator/index.d.ts +2 -0
  404. package/dist/components/ui/separator/index.d.ts.map +1 -0
  405. package/dist/components/ui/separator/separator.d.ts +17 -0
  406. package/dist/components/ui/separator/separator.d.ts.map +1 -0
  407. package/dist/components/ui/separator/separator.js +24 -0
  408. package/dist/components/ui/separator/separator.js.map +1 -0
  409. package/dist/components/ui/sheet/index.d.ts +2 -0
  410. package/dist/components/ui/sheet/index.d.ts.map +1 -0
  411. package/dist/components/ui/sheet/sheet.d.ts +32 -0
  412. package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
  413. package/dist/components/ui/sheet/sheet.js +118 -0
  414. package/dist/components/ui/sheet/sheet.js.map +1 -0
  415. package/dist/components/ui/skeleton/index.d.ts +2 -0
  416. package/dist/components/ui/skeleton/index.d.ts.map +1 -0
  417. package/dist/components/ui/skeleton/skeleton.d.ts +15 -0
  418. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
  419. package/dist/components/ui/skeleton/skeleton.js +31 -0
  420. package/dist/components/ui/skeleton/skeleton.js.map +1 -0
  421. package/dist/components/ui/slider/index.d.ts +2 -0
  422. package/dist/components/ui/slider/index.d.ts.map +1 -0
  423. package/dist/components/ui/slider/slider.d.ts +22 -0
  424. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  425. package/dist/components/ui/slider/slider.js +59 -0
  426. package/dist/components/ui/slider/slider.js.map +1 -0
  427. package/dist/components/ui/spinner/index.d.ts +2 -0
  428. package/dist/components/ui/spinner/index.d.ts.map +1 -0
  429. package/dist/components/ui/spinner/spinner.d.ts +25 -0
  430. package/dist/components/ui/spinner/spinner.d.ts.map +1 -0
  431. package/dist/components/ui/spinner/spinner.js +57 -0
  432. package/dist/components/ui/spinner/spinner.js.map +1 -0
  433. package/dist/components/ui/status-chip/index.d.ts +2 -0
  434. package/dist/components/ui/status-chip/index.d.ts.map +1 -0
  435. package/dist/components/ui/status-chip/status-chip.d.ts +70 -0
  436. package/dist/components/ui/status-chip/status-chip.d.ts.map +1 -0
  437. package/dist/components/ui/status-chip/status-chip.js +140 -0
  438. package/dist/components/ui/status-chip/status-chip.js.map +1 -0
  439. package/dist/components/ui/switch/index.d.ts +2 -0
  440. package/dist/components/ui/switch/index.d.ts.map +1 -0
  441. package/dist/components/ui/switch/switch.d.ts +36 -0
  442. package/dist/components/ui/switch/switch.d.ts.map +1 -0
  443. package/dist/components/ui/switch/switch.js +74 -0
  444. package/dist/components/ui/switch/switch.js.map +1 -0
  445. package/dist/components/ui/table/index.d.ts +2 -0
  446. package/dist/components/ui/table/index.d.ts.map +1 -0
  447. package/dist/components/ui/table/table.d.ts +29 -0
  448. package/dist/components/ui/table/table.d.ts.map +1 -0
  449. package/dist/components/ui/table/table.js +129 -0
  450. package/dist/components/ui/table/table.js.map +1 -0
  451. package/dist/components/ui/tabs/index.d.ts +2 -0
  452. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  453. package/dist/components/ui/tabs/tabs.d.ts +23 -0
  454. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  455. package/dist/components/ui/tabs/tabs.js +43 -0
  456. package/dist/components/ui/tabs/tabs.js.map +1 -0
  457. package/dist/components/ui/textarea/index.d.ts +2 -0
  458. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  459. package/dist/components/ui/textarea/textarea.d.ts +14 -0
  460. package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
  461. package/dist/components/ui/textarea/textarea.js +30 -0
  462. package/dist/components/ui/textarea/textarea.js.map +1 -0
  463. package/dist/components/ui/toast/index.d.ts +2 -0
  464. package/dist/components/ui/toast/index.d.ts.map +1 -0
  465. package/dist/components/ui/toast/toast.d.ts +68 -0
  466. package/dist/components/ui/toast/toast.d.ts.map +1 -0
  467. package/dist/components/ui/toast/toast.js +186 -0
  468. package/dist/components/ui/toast/toast.js.map +1 -0
  469. package/dist/components/ui/toggle/index.d.ts +2 -0
  470. package/dist/components/ui/toggle/index.d.ts.map +1 -0
  471. package/dist/components/ui/toggle/toggle.d.ts +22 -0
  472. package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
  473. package/dist/components/ui/toggle/toggle.js +64 -0
  474. package/dist/components/ui/toggle/toggle.js.map +1 -0
  475. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  476. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  477. package/dist/components/ui/toggle-group/toggle-group.d.ts +35 -0
  478. package/dist/components/ui/toggle-group/toggle-group.d.ts.map +1 -0
  479. package/dist/components/ui/toggle-group/toggle-group.js +38 -0
  480. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -0
  481. package/dist/components/ui/tooltip/index.d.ts +2 -0
  482. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  483. package/dist/components/ui/tooltip/tooltip.d.ts +18 -0
  484. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
  485. package/dist/components/ui/tooltip/tooltip.js +67 -0
  486. package/dist/components/ui/tooltip/tooltip.js.map +1 -0
  487. package/dist/index.d.ts +96 -19
  488. package/dist/index.d.ts.map +1 -0
  489. package/dist/index.js +90 -20
  490. package/dist/lib/keyed-rows.d.ts +36 -0
  491. package/dist/lib/keyed-rows.d.ts.map +1 -0
  492. package/dist/lib/keyed-rows.js +53 -0
  493. package/dist/lib/keyed-rows.js.map +1 -0
  494. package/dist/lib/keyed-rows.test.d.ts +2 -0
  495. package/dist/lib/keyed-rows.test.d.ts.map +1 -0
  496. package/dist/lib/overlay.d.ts +44 -0
  497. package/dist/lib/overlay.d.ts.map +1 -0
  498. package/dist/lib/overlay.js +57 -0
  499. package/dist/lib/overlay.js.map +1 -0
  500. package/dist/lib/themes.d.ts +197 -0
  501. package/dist/lib/themes.d.ts.map +1 -0
  502. package/dist/lib/themes.js +303 -0
  503. package/dist/lib/themes.js.map +1 -0
  504. package/dist/lib/tokens.d.ts +103 -0
  505. package/dist/lib/tokens.d.ts.map +1 -0
  506. package/dist/lib/tokens.js +805 -0
  507. package/dist/lib/tokens.js.map +1 -0
  508. package/dist/lib/utils.d.ts +27 -0
  509. package/dist/lib/utils.d.ts.map +1 -0
  510. package/dist/lib/utils.js +61 -3
  511. package/dist/lib/utils.js.map +1 -0
  512. package/dist/lib/variants.d.ts +57 -0
  513. package/dist/lib/variants.d.ts.map +1 -0
  514. package/dist/lib/variants.js +49 -0
  515. package/dist/lib/variants.js.map +1 -0
  516. package/dist/lib/version-notes.d.ts +24 -0
  517. package/dist/lib/version-notes.d.ts.map +1 -0
  518. package/dist/lib/version-notes.js +41 -1
  519. package/dist/lib/version-notes.js.map +1 -0
  520. package/dist/r/accordion.json +23 -0
  521. package/dist/r/account-menu.json +25 -0
  522. package/dist/r/alert-dialog.json +22 -0
  523. package/dist/r/alert.json +22 -0
  524. package/dist/r/app-shell.json +20 -0
  525. package/dist/r/aspect-ratio.json +20 -0
  526. package/dist/r/avatar.json +20 -0
  527. package/dist/r/badge.json +22 -0
  528. package/dist/r/board.json +20 -0
  529. package/dist/r/breadcrumb.json +22 -0
  530. package/dist/r/button-group.json +22 -0
  531. package/dist/r/button.json +22 -0
  532. package/dist/r/calendar.json +25 -0
  533. package/dist/r/card.json +20 -0
  534. package/dist/r/carousel.json +26 -0
  535. package/dist/r/chart.json +23 -0
  536. package/dist/r/checkbox.json +23 -0
  537. package/dist/r/code-block.json +24 -0
  538. package/dist/r/collapsible.json +22 -0
  539. package/dist/r/combobox.json +23 -0
  540. package/dist/r/command.json +23 -0
  541. package/dist/r/context-menu.json +23 -0
  542. package/dist/r/conversation.json +48 -0
  543. package/dist/r/detail-panel.json +24 -0
  544. package/dist/r/dialog.json +23 -0
  545. package/dist/r/diff-block.json +20 -0
  546. package/dist/r/drawer.json +22 -0
  547. package/dist/r/dropdown-menu.json +23 -0
  548. package/dist/r/empty.json +20 -0
  549. package/dist/r/entity-icon.json +20 -0
  550. package/dist/r/field.json +22 -0
  551. package/dist/r/hover-card.json +22 -0
  552. package/dist/r/input-group.json +20 -0
  553. package/dist/r/input-otp.json +22 -0
  554. package/dist/r/input.json +20 -0
  555. package/dist/r/item.json +20 -0
  556. package/dist/r/kbd.json +20 -0
  557. package/dist/r/label.json +20 -0
  558. package/dist/r/list-row.json +22 -0
  559. package/dist/r/menubar.json +23 -0
  560. package/dist/r/modal-dialog.json +22 -0
  561. package/dist/r/navigation-menu.json +23 -0
  562. package/dist/r/page.json +20 -0
  563. package/dist/r/pagination.json +23 -0
  564. package/dist/r/panel.json +20 -0
  565. package/dist/r/popover.json +22 -0
  566. package/dist/r/progress.json +22 -0
  567. package/dist/r/radio-group.json +23 -0
  568. package/dist/r/registry.json +1676 -0
  569. package/dist/r/resizable.json +23 -0
  570. package/dist/r/scroll-area.json +20 -0
  571. package/dist/r/select.json +23 -0
  572. package/dist/r/separator.json +22 -0
  573. package/dist/r/settings.json +20 -0
  574. package/dist/r/sheet.json +25 -0
  575. package/dist/r/side-rail.json +27 -0
  576. package/dist/r/sidebar-nav.json +23 -0
  577. package/dist/r/skeleton.json +20 -0
  578. package/dist/r/slider.json +22 -0
  579. package/dist/r/spinner.json +22 -0
  580. package/dist/r/stat.json +22 -0
  581. package/dist/r/status-bar.json +20 -0
  582. package/dist/r/status-chip.json +22 -0
  583. package/dist/r/switch.json +22 -0
  584. package/dist/r/table.json +20 -0
  585. package/dist/r/tabs.json +22 -0
  586. package/dist/r/textarea.json +20 -0
  587. package/dist/r/theme.json +36 -0
  588. package/dist/r/toast.json +23 -0
  589. package/dist/r/toggle-group.json +24 -0
  590. package/dist/r/toggle.json +22 -0
  591. package/dist/r/tooltip.json +22 -0
  592. package/dist/r/top-bar.json +20 -0
  593. package/dist/r/update-dialog.json +27 -0
  594. package/dist/r/workspace-mark.json +22 -0
  595. package/package.json +75 -21
  596. package/registry.json +1676 -0
  597. package/src/components/composites/account-menu/account-menu.tsx +150 -0
  598. package/src/components/composites/account-menu/index.ts +1 -0
  599. package/src/components/composites/list-row/index.ts +1 -0
  600. package/src/components/composites/list-row/list-row.tsx +116 -0
  601. package/src/components/composites/settings/index.ts +1 -0
  602. package/src/components/composites/settings/settings.tsx +142 -0
  603. package/src/components/composites/stat/index.ts +9 -0
  604. package/src/components/composites/stat/stat.tsx +155 -0
  605. package/src/components/composites/update-dialog/index.ts +7 -0
  606. package/src/components/composites/update-dialog/update-dialog.tsx +529 -0
  607. package/src/components/composites/workspace-mark/index.ts +1 -0
  608. package/src/components/composites/workspace-mark/workspace-mark.tsx +72 -0
  609. package/src/components/conversation/conversation-avatar.tsx +60 -0
  610. package/src/components/conversation/conversation-surface.tsx +107 -0
  611. package/src/components/conversation/index.ts +25 -0
  612. package/src/components/conversation/message-composer.tsx +239 -0
  613. package/src/components/conversation/message-row.tsx +387 -0
  614. package/src/components/conversation/thread-panel.tsx +141 -0
  615. package/src/components/layout/app-shell/app-shell.tsx +92 -0
  616. package/src/components/layout/app-shell/index.ts +1 -0
  617. package/src/components/layout/page/index.ts +9 -0
  618. package/src/components/layout/page/page.tsx +122 -0
  619. package/src/components/layout/panel/index.ts +12 -0
  620. package/src/components/layout/panel/panel.tsx +166 -0
  621. package/src/components/layout/side-rail/index.ts +12 -0
  622. package/src/components/layout/side-rail/side-rail-context.ts +42 -0
  623. package/src/components/layout/side-rail/side-rail.tsx +405 -0
  624. package/src/components/layout/sidebar-nav/index.ts +14 -0
  625. package/src/components/layout/sidebar-nav/sidebar-nav.tsx +244 -0
  626. package/src/components/layout/status-bar/index.ts +1 -0
  627. package/src/components/layout/status-bar/status-bar.tsx +73 -0
  628. package/src/components/layout/top-bar/index.ts +10 -0
  629. package/src/components/layout/top-bar/top-bar.tsx +166 -0
  630. package/src/components/motion/index.ts +2 -0
  631. package/src/components/motion/presence.tsx +32 -0
  632. package/src/components/theme/appearance-panel.tsx +179 -0
  633. package/src/components/theme/index.ts +22 -0
  634. package/src/components/theme/theme-picker.tsx +174 -0
  635. package/src/components/theme/theme-provider.tsx +309 -0
  636. package/src/components/theme/theme-toggle.tsx +64 -0
  637. package/src/components/ui/accordion/accordion.tsx +66 -0
  638. package/src/components/ui/accordion/index.ts +1 -0
  639. package/src/components/ui/alert/alert.tsx +95 -0
  640. package/src/components/ui/alert/index.ts +1 -0
  641. package/src/components/ui/alert-dialog/alert-dialog.tsx +176 -0
  642. package/src/components/ui/alert-dialog/index.ts +13 -0
  643. package/src/components/ui/aspect-ratio/aspect-ratio.tsx +38 -0
  644. package/src/components/ui/aspect-ratio/index.ts +1 -0
  645. package/src/components/ui/avatar/avatar.tsx +114 -0
  646. package/src/components/ui/avatar/index.ts +9 -0
  647. package/src/components/ui/badge/badge.tsx +59 -0
  648. package/src/components/ui/badge/index.ts +1 -0
  649. package/src/components/ui/board/board.tsx +254 -0
  650. package/src/components/ui/board/index.ts +10 -0
  651. package/src/components/ui/breadcrumb/breadcrumb.tsx +117 -0
  652. package/src/components/ui/breadcrumb/index.ts +9 -0
  653. package/src/components/ui/button/button.tsx +89 -0
  654. package/src/components/ui/button/index.ts +1 -0
  655. package/src/components/ui/button-group/button-group.tsx +92 -0
  656. package/src/components/ui/button-group/index.ts +6 -0
  657. package/src/components/ui/calendar/calendar.tsx +277 -0
  658. package/src/components/ui/calendar/index.ts +1 -0
  659. package/src/components/ui/card/card.tsx +82 -0
  660. package/src/components/ui/card/index.ts +10 -0
  661. package/src/components/ui/carousel/carousel.tsx +209 -0
  662. package/src/components/ui/carousel/index.ts +1 -0
  663. package/src/components/ui/chart/chart.tsx +413 -0
  664. package/src/components/ui/chart/index.ts +17 -0
  665. package/src/components/ui/checkbox/checkbox.tsx +99 -0
  666. package/src/components/ui/checkbox/index.ts +1 -0
  667. package/src/components/ui/code-block/code-block.tsx +238 -0
  668. package/src/components/ui/code-block/index.ts +1 -0
  669. package/src/components/ui/collapsible/collapsible.tsx +54 -0
  670. package/src/components/ui/collapsible/index.ts +1 -0
  671. package/src/components/ui/combobox/combobox.tsx +142 -0
  672. package/src/components/ui/combobox/index.ts +10 -0
  673. package/src/components/ui/command/command.tsx +214 -0
  674. package/src/components/ui/command/index.ts +12 -0
  675. package/src/components/ui/context-menu/context-menu.tsx +163 -0
  676. package/src/components/ui/context-menu/index.ts +15 -0
  677. package/src/components/ui/detail-panel/detail-panel.tsx +161 -0
  678. package/src/components/ui/detail-panel/index.ts +9 -0
  679. package/src/components/ui/dialog/dialog.tsx +138 -0
  680. package/src/components/ui/dialog/index.ts +14 -0
  681. package/src/components/ui/diff-block/diff-block.tsx +286 -0
  682. package/src/components/ui/diff-block/index.ts +11 -0
  683. package/src/components/ui/drawer/drawer.tsx +144 -0
  684. package/src/components/ui/drawer/index.ts +13 -0
  685. package/src/components/ui/dropdown-menu/dropdown-menu.tsx +203 -0
  686. package/src/components/ui/dropdown-menu/index.ts +18 -0
  687. package/src/components/ui/empty/empty.tsx +104 -0
  688. package/src/components/ui/empty/index.ts +10 -0
  689. package/src/components/ui/entity-icon/entity-icon.tsx +154 -0
  690. package/src/components/ui/entity-icon/index.ts +1 -0
  691. package/src/components/ui/field/field.tsx +131 -0
  692. package/src/components/ui/field/index.ts +11 -0
  693. package/src/components/ui/hover-card/hover-card.tsx +48 -0
  694. package/src/components/ui/hover-card/index.ts +1 -0
  695. package/src/components/ui/input/index.ts +1 -0
  696. package/src/components/ui/input/input.tsx +41 -0
  697. package/src/components/ui/input-group/index.ts +8 -0
  698. package/src/components/ui/input-group/input-group.tsx +111 -0
  699. package/src/components/ui/input-otp/index.ts +1 -0
  700. package/src/components/ui/input-otp/input-otp.tsx +108 -0
  701. package/src/components/ui/item/index.ts +10 -0
  702. package/src/components/ui/item/item.tsx +146 -0
  703. package/src/components/ui/kbd/index.ts +1 -0
  704. package/src/components/ui/kbd/kbd.tsx +42 -0
  705. package/src/components/ui/label/index.ts +1 -0
  706. package/src/components/ui/label/label.tsx +36 -0
  707. package/src/components/ui/menubar/index.ts +16 -0
  708. package/src/components/ui/menubar/menubar.tsx +190 -0
  709. package/src/components/ui/modal-dialog/index.ts +1 -0
  710. package/src/components/ui/modal-dialog/modal-dialog.tsx +95 -0
  711. package/src/components/ui/navigation-menu/index.ts +13 -0
  712. package/src/components/ui/navigation-menu/navigation-menu.tsx +229 -0
  713. package/src/components/ui/pagination/index.ts +8 -0
  714. package/src/components/ui/pagination/pagination.tsx +144 -0
  715. package/src/components/ui/popover/index.ts +10 -0
  716. package/src/components/ui/popover/popover.tsx +81 -0
  717. package/src/components/ui/progress/index.ts +1 -0
  718. package/src/components/ui/progress/progress.tsx +67 -0
  719. package/src/components/ui/radio-group/index.ts +1 -0
  720. package/src/components/ui/radio-group/radio-group.tsx +78 -0
  721. package/src/components/ui/resizable/index.ts +6 -0
  722. package/src/components/ui/resizable/resizable.tsx +74 -0
  723. package/src/components/ui/scroll-area/index.ts +1 -0
  724. package/src/components/ui/scroll-area/scroll-area.tsx +66 -0
  725. package/src/components/ui/select/index.ts +11 -0
  726. package/src/components/ui/select/select.tsx +188 -0
  727. package/src/components/ui/separator/index.ts +1 -0
  728. package/src/components/ui/separator/separator.tsx +40 -0
  729. package/src/components/ui/sheet/index.ts +13 -0
  730. package/src/components/ui/sheet/sheet.tsx +132 -0
  731. package/src/components/ui/skeleton/index.ts +1 -0
  732. package/src/components/ui/skeleton/skeleton.tsx +28 -0
  733. package/src/components/ui/slider/index.ts +1 -0
  734. package/src/components/ui/slider/slider.tsx +81 -0
  735. package/src/components/ui/spinner/index.ts +1 -0
  736. package/src/components/ui/spinner/spinner.tsx +58 -0
  737. package/src/components/ui/status-chip/index.ts +8 -0
  738. package/src/components/ui/status-chip/status-chip.tsx +142 -0
  739. package/src/components/ui/switch/index.ts +1 -0
  740. package/src/components/ui/switch/switch.tsx +100 -0
  741. package/src/components/ui/table/index.ts +11 -0
  742. package/src/components/ui/table/table.tsx +125 -0
  743. package/src/components/ui/tabs/index.ts +8 -0
  744. package/src/components/ui/tabs/tabs.tsx +77 -0
  745. package/src/components/ui/textarea/index.ts +1 -0
  746. package/src/components/ui/textarea/textarea.tsx +36 -0
  747. package/src/components/ui/toast/index.ts +1 -0
  748. package/src/components/ui/toast/toast.tsx +220 -0
  749. package/src/components/ui/toggle/index.ts +1 -0
  750. package/src/components/ui/toggle/toggle.tsx +60 -0
  751. package/src/components/ui/toggle-group/index.ts +6 -0
  752. package/src/components/ui/toggle-group/toggle-group.tsx +66 -0
  753. package/src/components/ui/tooltip/index.ts +9 -0
  754. package/src/components/ui/tooltip/tooltip.tsx +102 -0
  755. package/src/index.ts +154 -0
  756. package/src/lib/keyed-rows.ts +68 -0
  757. package/src/lib/overlay.ts +70 -0
  758. package/src/lib/themes.ts +490 -0
  759. package/src/lib/tokens.ts +688 -0
  760. package/src/lib/utils.ts +74 -4
  761. package/src/lib/variants.ts +62 -0
  762. package/src/lib/version-notes.ts +35 -0
  763. package/src/styles/base.css +489 -484
  764. package/src/styles/fonts.css +26 -0
  765. package/src/styles/globals.css +14 -3
  766. package/src/styles/theme.css +838 -229
  767. package/LICENSE +0 -201
  768. package/dist/components/account-drawer.d.ts +0 -11
  769. package/dist/components/account-drawer.js +0 -120
  770. package/dist/components/appearance.d.ts +0 -261
  771. package/dist/components/appearance.js +0 -802
  772. package/dist/components/on-screen-controls.d.ts +0 -8
  773. package/dist/components/on-screen-controls.js +0 -162
  774. package/dist/components/scene-settings.d.ts +0 -33
  775. package/dist/components/scene-settings.js +0 -253
  776. package/dist/components/theme-preview.d.ts +0 -40
  777. package/dist/components/theme-preview.js +0 -210
  778. package/dist/components/theme-provider.d.ts +0 -52
  779. package/dist/components/theme-provider.js +0 -128
  780. package/dist/components/theme-swatch.d.ts +0 -12
  781. package/dist/components/theme-swatch.js +0 -66
  782. package/dist/components/theme-toggle.d.ts +0 -7
  783. package/dist/components/theme-toggle.js +0 -64
  784. package/dist/components/ui/badge.d.ts +0 -8
  785. package/dist/components/ui/badge.js +0 -34
  786. package/dist/components/ui/button.d.ts +0 -9
  787. package/dist/components/ui/button.js +0 -52
  788. package/dist/components/ui/card.d.ts +0 -4
  789. package/dist/components/ui/card.js +0 -28
  790. package/dist/components/ui/dialog.d.ts +0 -15
  791. package/dist/components/ui/dialog.js +0 -104
  792. package/dist/components/ui/drawer.d.ts +0 -24
  793. package/dist/components/ui/drawer.js +0 -120
  794. package/dist/components/ui/dropdown-menu.d.ts +0 -35
  795. package/dist/components/ui/dropdown-menu.js +0 -180
  796. package/dist/components/ui/empty.d.ts +0 -12
  797. package/dist/components/ui/field.d.ts +0 -25
  798. package/dist/components/ui/field.js +0 -188
  799. package/dist/components/ui/input.d.ts +0 -3
  800. package/dist/components/ui/input.js +0 -22
  801. package/dist/components/ui/label.d.ts +0 -3
  802. package/dist/components/ui/label.js +0 -17
  803. package/dist/components/ui/radio-group.d.ts +0 -5
  804. package/dist/components/ui/radio-group.js +0 -39
  805. package/dist/components/ui/separator.d.ts +0 -7
  806. package/dist/components/ui/separator.js +0 -20
  807. package/dist/components/ui/skeleton.d.ts +0 -3
  808. package/dist/components/ui/skeleton.js +0 -17
  809. package/dist/components/ui/spinner.d.ts +0 -5
  810. package/dist/components/ui/spinner.js +0 -17
  811. package/dist/components/ui/switch.d.ts +0 -8
  812. package/dist/components/ui/switch.js +0 -59
  813. package/dist/components/ui/tabs.d.ts +0 -11
  814. package/dist/components/ui/tabs.js +0 -57
  815. package/dist/components/ui/toggle-group.d.ts +0 -13
  816. package/dist/components/ui/toggle-group.js +0 -95
  817. package/dist/components/ui/toggle.d.ts +0 -10
  818. package/dist/components/ui/toggle.js +0 -41
  819. package/dist/components/ui/tooltip.d.ts +0 -15
  820. package/dist/components/ui/tooltip.js +0 -55
  821. package/dist/components/version-dialog.d.ts +0 -25
  822. package/dist/components/version-dialog.js +0 -330
  823. package/dist/components/workspace-brand.d.ts +0 -5
  824. package/dist/components/workspace-brand.js +0 -13
  825. package/dist/components/workspace-logo.d.ts +0 -3
  826. package/dist/components/workspace-logo.js +0 -17
  827. package/src/components/account-drawer.tsx +0 -114
  828. package/src/components/appearance.ts +0 -1112
  829. package/src/components/on-screen-controls.tsx +0 -149
  830. package/src/components/scene-settings.tsx +0 -199
  831. package/src/components/theme-preview.tsx +0 -170
  832. package/src/components/theme-provider.tsx +0 -214
  833. package/src/components/theme-swatch.tsx +0 -49
  834. package/src/components/theme-toggle.tsx +0 -48
  835. package/src/components/ui/badge.tsx +0 -40
  836. package/src/components/ui/button.tsx +0 -58
  837. package/src/components/ui/card.tsx +0 -21
  838. package/src/components/ui/dialog.tsx +0 -132
  839. package/src/components/ui/drawer.tsx +0 -168
  840. package/src/components/ui/dropdown-menu.tsx +0 -235
  841. package/src/components/ui/empty.tsx +0 -97
  842. package/src/components/ui/field.tsx +0 -220
  843. package/src/components/ui/input.tsx +0 -20
  844. package/src/components/ui/label.tsx +0 -19
  845. package/src/components/ui/radio-group.tsx +0 -41
  846. package/src/components/ui/separator.tsx +0 -28
  847. package/src/components/ui/skeleton.tsx +0 -16
  848. package/src/components/ui/spinner.tsx +0 -20
  849. package/src/components/ui/switch.tsx +0 -59
  850. package/src/components/ui/tabs.tsx +0 -76
  851. package/src/components/ui/toggle-group.tsx +0 -98
  852. package/src/components/ui/toggle.tsx +0 -42
  853. package/src/components/ui/tooltip.tsx +0 -61
  854. package/src/components/version-dialog.tsx +0 -368
  855. package/src/components/workspace-brand.tsx +0 -18
  856. package/src/components/workspace-logo.tsx +0 -21
  857. package/src/index.tsx +0 -53
  858. package/src/styles/auth-shell.css +0 -167
  859. package/src/styles/conventional-workspace.css +0 -2858
  860. package/src/styles/dev-view.css +0 -899
  861. package/src/styles/workspace-shell.css +0 -82
  862. package/tsconfig.json +0 -11
@@ -0,0 +1,81 @@
1
+ import { Popover as KobaltePopover } from '@kobalte/core/popover'
2
+ import type { ComponentProps } from 'solid-js'
3
+ import { splitProps } from 'solid-js'
4
+ import { menuContentPadding, popoverArrow, popoverMotion, overlaySurface } from '#lib/overlay'
5
+ import { cn } from '#lib/utils'
6
+
7
+ /**
8
+ * Popover.
9
+ *
10
+ * A floating surface with arbitrary content, anchored to a control. Use it for
11
+ * something interactive that would not fit in a menu: a small form, a colour
12
+ * picker, a filter panel. For a list of *actions* use DropdownMenu, which
13
+ * carries the menu keyboard contract; for a sentence of explanation use
14
+ * Tooltip, which is not focusable and cannot hold a control.
15
+ *
16
+ * Kobalte handles the anchoring, collision flipping, the focus trap for modal
17
+ * popovers, and dismissal on outside click and Escape.
18
+ */
19
+ export function Popover(props: ComponentProps<typeof KobaltePopover>) {
20
+ return <KobaltePopover {...props} />
21
+ }
22
+
23
+ export function PopoverTrigger(props: ComponentProps<typeof KobaltePopover.Trigger>) {
24
+ return <KobaltePopover.Trigger {...props} />
25
+ }
26
+
27
+ export function PopoverAnchor(props: ComponentProps<typeof KobaltePopover.Anchor>) {
28
+ return <KobaltePopover.Anchor {...props} />
29
+ }
30
+
31
+ export type PopoverContentProps = ComponentProps<typeof KobaltePopover.Content> & {
32
+ /** Hide the caret pointing at the trigger. */
33
+ hideArrow?: boolean
34
+ }
35
+
36
+ export function PopoverContent(props: PopoverContentProps) {
37
+ const [local, rest] = splitProps(props, ['class', 'hideArrow', 'children'])
38
+
39
+ return (
40
+ <KobaltePopover.Portal>
41
+ <KobaltePopover.Content
42
+ class={cn(
43
+ overlaySurface,
44
+ popoverMotion,
45
+ 'z-(--z-menu) w-72 origin-(--kb-popover-content-transform-origin)',
46
+ menuContentPadding,
47
+ local.class
48
+ )}
49
+ {...rest}
50
+ >
51
+ {local.children}
52
+ <KobaltePopover.Arrow aria-hidden="true" class={popoverArrow} />
53
+ </KobaltePopover.Content>
54
+ </KobaltePopover.Portal>
55
+ )
56
+ }
57
+
58
+ export function PopoverTitle(props: ComponentProps<typeof KobaltePopover.Title>) {
59
+ const [local, rest] = splitProps(props, ['class'])
60
+ return (
61
+ <KobaltePopover.Title
62
+ class={cn('px-2 pt-1 pb-1.5 text-sm font-medium', local.class)}
63
+ {...rest}
64
+ />
65
+ )
66
+ }
67
+
68
+ export function PopoverDescription(props: ComponentProps<typeof KobaltePopover.Description>) {
69
+ const [local, rest] = splitProps(props, ['class'])
70
+ return (
71
+ <KobaltePopover.Description
72
+ class={cn('text-muted-foreground px-2 pb-1.5 text-sm', local.class)}
73
+ {...rest}
74
+ />
75
+ )
76
+ }
77
+
78
+ export function PopoverCloseButton(props: ComponentProps<typeof KobaltePopover.CloseButton>) {
79
+ const [local, rest] = splitProps(props, ['class'])
80
+ return <KobaltePopover.CloseButton class={cn(local.class)} {...rest} />
81
+ }
@@ -0,0 +1 @@
1
+ export { Progress, type ProgressProps } from './progress'
@@ -0,0 +1,67 @@
1
+ import { Progress as KobalteProgress } from '@kobalte/core/progress'
2
+ import type { ComponentProps } from 'solid-js'
3
+ import { Show, splitProps } from 'solid-js'
4
+ import { cn } from '#lib/utils'
5
+
6
+ /**
7
+ * Progress.
8
+ *
9
+ * A determinate bar. Kobalte publishes the value as `aria-valuenow`, so a
10
+ * screen reader reports the percentage instead of just "progress bar" — which
11
+ * is why a caller must pass a real `value`, or use Spinner when there is none.
12
+ *
13
+ * `indeterminate` renders the sweeping bar for an operation that reports no
14
+ * progress at all. It is a visibly different treatment so the two states are
15
+ * never confused by someone glancing at the screen.
16
+ */
17
+ export type ProgressProps = ComponentProps<typeof KobalteProgress> & {
18
+ /**
19
+ * The visible label, which is also the bar's accessible name.
20
+ *
21
+ * Pass this, or `aria-label` when the label is drawn elsewhere. A progressbar
22
+ * with neither announces "progress bar, 64%" and no subject — the reader
23
+ * cannot tell whether it is a build, an upload or a download.
24
+ */
25
+ label?: string
26
+ trackClass?: string
27
+ indicatorClass?: string
28
+ /** Hide the numeric readout that otherwise sits beside the track. */
29
+ hideValue?: boolean
30
+ }
31
+
32
+ export function Progress(props: ProgressProps) {
33
+ const [local, rest] = splitProps(props, [
34
+ 'class',
35
+ 'trackClass',
36
+ 'indicatorClass',
37
+ 'hideValue',
38
+ 'label',
39
+ ])
40
+
41
+ return (
42
+ <KobalteProgress class={cn('flex w-full flex-col gap-1.5', local.class)} {...rest}>
43
+ <div class="flex items-center justify-between gap-3">
44
+ <KobalteProgress.Label class="text-muted-foreground text-sm">
45
+ {local.label}
46
+ </KobalteProgress.Label>
47
+ <Show when={!local.hideValue}>
48
+ <KobalteProgress.ValueLabel class="text-muted-foreground text-sm tabular-nums" />
49
+ </Show>
50
+ </div>
51
+ <KobalteProgress.Track
52
+ class={cn('bg-input relative h-1.5 w-full overflow-hidden rounded-full', local.trackClass)}
53
+ >
54
+ <KobalteProgress.Fill
55
+ class={cn(
56
+ 'bg-primary h-full rounded-full',
57
+ {
58
+ 'animate-indeterminate w-1/4': props.indeterminate,
59
+ 'w-(--kb-progress-fill-width)': !props.indeterminate,
60
+ },
61
+ local.indicatorClass
62
+ )}
63
+ />
64
+ </KobalteProgress.Track>
65
+ </KobalteProgress>
66
+ )
67
+ }
@@ -0,0 +1 @@
1
+ export { RadioGroup, RadioGroupItem, type RadioGroupItemProps } from './radio-group'
@@ -0,0 +1,78 @@
1
+ import { RadioGroup as KobalteRadioGroup } from '@kobalte/core/radio-group'
2
+ import { Circle } from 'lucide-solid'
3
+ import type { ComponentProps } from 'solid-js'
4
+ import { splitProps } from 'solid-js'
5
+ import { cn } from '#lib/utils'
6
+
7
+ /**
8
+ * RadioGroup.
9
+ *
10
+ * A single choice from a small, visible set. The group owns the value and the
11
+ * arrow-key navigation, so a caller sets `value` once instead of wiring a
12
+ * `name` and a handler onto every item.
13
+ *
14
+ * Below about five options a Select hides the choices behind a click, which is
15
+ * the wrong trade; above about seven, radios become a wall and the Select wins.
16
+ * That call belongs to the caller, and both controls are drawn from the same
17
+ * tokens so either choice sits correctly next to the other.
18
+ */
19
+ export function RadioGroup(props: ComponentProps<typeof KobalteRadioGroup>) {
20
+ const [local, rest] = splitProps(props, ['class'])
21
+ return <KobalteRadioGroup class={cn('grid gap-2', local.class)} {...rest} />
22
+ }
23
+
24
+ export type RadioGroupItemProps = ComponentProps<typeof KobalteRadioGroup.Item> & {
25
+ controlClass?: string
26
+ /**
27
+ * The option's visible label. A radio with no accessible name is unreachable
28
+ * by a screen reader and by voice control, so supply this or a child.
29
+ */
30
+ label?: string
31
+ description?: string
32
+ }
33
+
34
+ export function RadioGroupItem(props: RadioGroupItemProps) {
35
+ const [local, rest] = splitProps(props, [
36
+ 'class',
37
+ 'controlClass',
38
+ 'label',
39
+ 'description',
40
+ 'children',
41
+ ])
42
+
43
+ return (
44
+ <KobalteRadioGroup.Item
45
+ class={cn('group/radio flex items-start gap-2.5', local.class)}
46
+ {...rest}
47
+ >
48
+ <KobalteRadioGroup.ItemInput />
49
+ <KobalteRadioGroup.ItemControl
50
+ class={cn(
51
+ 'border-input bg-transparent flex size-4 shrink-0 items-center justify-center rounded-full border',
52
+ 'transition-[color,box-shadow,border-color,background-color] ease-out outline-none',
53
+ 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',
54
+ 'data-[checked]:border-primary data-[checked]:text-primary',
55
+ 'data-[invalid]:border-destructive data-[invalid]:ring-3 data-[invalid]:ring-destructive-subtle',
56
+ 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50',
57
+ local.controlClass
58
+ )}
59
+ >
60
+ <KobalteRadioGroup.ItemIndicator class="flex items-center justify-center">
61
+ <Circle class="size-2 fill-current" />
62
+ </KobalteRadioGroup.ItemIndicator>
63
+ </KobalteRadioGroup.ItemControl>
64
+ {local.children ?? (
65
+ <div class="grid gap-0.5 leading-none">
66
+ <KobalteRadioGroup.ItemLabel class="text-sm font-medium">
67
+ {local.label}
68
+ </KobalteRadioGroup.ItemLabel>
69
+ {local.description ? (
70
+ <KobalteRadioGroup.ItemDescription class="text-muted-foreground text-sm">
71
+ {local.description}
72
+ </KobalteRadioGroup.ItemDescription>
73
+ ) : null}
74
+ </div>
75
+ )}
76
+ </KobalteRadioGroup.Item>
77
+ )
78
+ }
@@ -0,0 +1,6 @@
1
+ export {
2
+ ResizableHandle,
3
+ ResizablePanel,
4
+ ResizablePanelGroup,
5
+ type ResizableHandleProps,
6
+ } from './resizable'
@@ -0,0 +1,74 @@
1
+ import Resizable from '@corvu/resizable'
2
+ import { GripVertical } from 'lucide-solid'
3
+ import type { ComponentProps } from 'solid-js'
4
+ import { splitProps } from 'solid-js'
5
+ import { cn } from '#lib/utils'
6
+
7
+ /**
8
+ * Resizable.
9
+ *
10
+ * A split layout: panels the user can resize, with a handle between them. This
11
+ * is the shape of every IDE-like surface — rail, file tree, editor, terminal —
12
+ * and the reason it is a primitive rather than something each view improvises.
13
+ *
14
+ * corvu supplies the pointer capture, the min/max constraints and the keyboard
15
+ * resizing, which is what makes a divider operable without a mouse. The handle
16
+ * is a real focusable element with an accessible role, so a split pane can be
17
+ * adjusted from the keyboard; a bare `cursor-col-resize` div cannot.
18
+ */
19
+ export function ResizablePanelGroup(props: ComponentProps<typeof Resizable> & { class?: string }) {
20
+ const [local, rest] = splitProps(props, ['class'])
21
+
22
+ return (
23
+ <Resizable
24
+ class={cn('flex size-full data-[orientation=vertical]:flex-col', local.class)}
25
+ {...rest}
26
+ />
27
+ )
28
+ }
29
+
30
+ export function ResizablePanel(props: ComponentProps<typeof Resizable.Panel> & { class?: string }) {
31
+ const [local, rest] = splitProps(props, ['class'])
32
+ return <Resizable.Panel class={cn('min-h-0 min-w-0 overflow-hidden', local.class)} {...rest} />
33
+ }
34
+
35
+ export type ResizableHandleProps = ComponentProps<typeof Resizable.Handle> & {
36
+ class?: string
37
+ /** Draw a visible grip in the middle of the divider. */
38
+ withHandle?: boolean
39
+ /**
40
+ * The divider's accessible name. It is a focusable control — arrow keys move
41
+ * the split — so it needs one; without it a screen reader announces an
42
+ * unlabelled button between the two panels.
43
+ */
44
+ label?: string
45
+ }
46
+
47
+ export function ResizableHandle(props: ResizableHandleProps) {
48
+ const [local, rest] = splitProps(props, ['class', 'withHandle', 'label'])
49
+
50
+ return (
51
+ <Resizable.Handle
52
+ aria-label={local.label ?? 'Resize panels'}
53
+ aria-orientation="vertical"
54
+ class={cn(
55
+ 'group/resize bg-border relative flex w-px shrink-0 items-center justify-center',
56
+ /* Widen the hit target without moving the visual line: the divider is
57
+ a hairline, but a hairline is far too small to grab. */
58
+ 'after:absolute after:inset-y-0 after:-inset-x-1 after:w-3',
59
+ 'transition-colors ease-out hover:bg-primary',
60
+ 'focus-visible:bg-primary focus-visible:outline-none',
61
+ 'data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full',
62
+ 'data-[orientation=vertical]:after:inset-x-0 data-[orientation=vertical]:after:-inset-y-1 data-[orientation=vertical]:after:h-3 data-[orientation=vertical]:after:w-full',
63
+ local.class
64
+ )}
65
+ {...rest}
66
+ >
67
+ {local.withHandle ? (
68
+ <div class="bg-border z-(--z-docked) flex h-4 w-2.5 items-center justify-center rounded-sm border border-border">
69
+ <GripVertical class="size-2.5 text-muted-foreground" />
70
+ </div>
71
+ ) : null}
72
+ </Resizable.Handle>
73
+ )
74
+ }
@@ -0,0 +1 @@
1
+ export { ScrollArea, type ScrollAreaProps } from './scroll-area'
@@ -0,0 +1,66 @@
1
+ import type { ComponentProps } from 'solid-js'
2
+ import { splitProps } from 'solid-js'
3
+ import { cn } from '#lib/utils'
4
+
5
+ /**
6
+ * ScrollArea.
7
+ *
8
+ * A scroll container with the design system's scrollbar treatment, plus an
9
+ * optional fade at each edge so a long list reads as continuing rather than
10
+ * ending at the fold.
11
+ *
12
+ * This is a styled native scroller, not a reimplementation of scrolling. The
13
+ * platform scroller already handles momentum, rubber-banding, keyboard paging,
14
+ * trackpad gestures, `scrollIntoView`, focus-into-view and find-in-page. A
15
+ * custom scrollbar over a transformed div gives up every one of those to gain
16
+ * nothing but the scrollbar's appearance, which CSS already controls.
17
+ *
18
+ * `orientation` only decides which edges the fade appears on; `overflow-auto`
19
+ * stays on both axes in `both` mode so a wide table can still be reached.
20
+ */
21
+ export type ScrollAreaProps = ComponentProps<'div'> & {
22
+ orientation?: 'vertical' | 'horizontal' | 'both'
23
+ /** Draw a fade at the leading and trailing edges of the scrolled axis. */
24
+ fade?: boolean
25
+ /** Replace the browser's scrollbar with the system's thin treatment. */
26
+ hideScrollbar?: boolean
27
+ }
28
+
29
+ export function ScrollArea(props: ScrollAreaProps) {
30
+ const [local, rest] = splitProps(props, [
31
+ 'class',
32
+ 'orientation',
33
+ 'fade',
34
+ 'hideScrollbar',
35
+ 'tabIndex',
36
+ ])
37
+
38
+ return (
39
+ <div
40
+ data-slot="scroll-area"
41
+ /*
42
+ * Focusable, because that is what makes a scroll region reachable from the
43
+ * keyboard. A `div` with `overflow: auto` scrolls with a mouse or a
44
+ * trackpad and not at all with the arrow keys until it can take focus, so
45
+ * a long list inside one is unreachable without a pointer. The cost is a
46
+ * focus ring around the region, which is correct: it *is* focusable, and
47
+ * `outline-none` keeps the ring to the drawn one.
48
+ */
49
+ tabIndex={local.tabIndex ?? 0}
50
+ class={cn(
51
+ 'relative min-h-0 min-w-0 outline-none focus-visible:ring-3 focus-visible:ring-primary-subtle',
52
+ {
53
+ 'overflow-y-auto overflow-x-hidden':
54
+ local.orientation === 'vertical' || local.orientation === undefined,
55
+ 'overflow-x-auto overflow-y-hidden': local.orientation === 'horizontal',
56
+ 'overflow-auto': local.orientation === 'both',
57
+ 'no-scrollbar': local.hideScrollbar,
58
+ 'scroll-shadow-y':
59
+ local.fade && (local.orientation === 'vertical' || local.orientation === undefined),
60
+ },
61
+ local.class
62
+ )}
63
+ {...rest}
64
+ />
65
+ )
66
+ }
@@ -0,0 +1,11 @@
1
+ export {
2
+ Select,
3
+ SelectChevronsUpDown,
4
+ SelectContent,
5
+ SelectItem,
6
+ SelectLabel,
7
+ SelectSection,
8
+ SelectTrigger,
9
+ SelectValue,
10
+ type SelectTriggerProps,
11
+ } from './select'
@@ -0,0 +1,188 @@
1
+ import { Select as KobalteSelect } from '@kobalte/core/select'
2
+ import { Check, ChevronDown, ChevronsUpDown } from 'lucide-solid'
3
+ import type { ComponentProps } from 'solid-js'
4
+ import { Show, splitProps } from 'solid-js'
5
+ import { menuContentPadding, menuItem, popoverArrow } from '#lib/overlay'
6
+ import { cn } from '#lib/utils'
7
+
8
+ /**
9
+ * Select.
10
+ *
11
+ * A single choice from a list that is too long to show, or whose options are
12
+ * only known at runtime. The distinction from RadioGroup is disclosure: a
13
+ * Select hides the choices behind a click, which is right above roughly seven
14
+ * options and wrong below it.
15
+ *
16
+ * `Select.Value` renders the human-readable label of the selection, not its
17
+ * value — the reason a Select takes both `options` and `optionValue`/`optionText`
18
+ * rather than a bare list of strings, and the reason the trigger never shows a
19
+ * raw id.
20
+ */
21
+ export function Select<Option, OptGroup = never>(
22
+ props: ComponentProps<typeof KobalteSelect<Option, OptGroup>>
23
+ ) {
24
+ return <KobalteSelect {...props} />
25
+ }
26
+
27
+ export type SelectTriggerProps = ComponentProps<typeof KobalteSelect.Trigger> & {
28
+ size?: 'sm' | 'md' | 'lg'
29
+ /** Hide the chevron, e.g. when a caller draws its own affordance. */
30
+ hideIcon?: boolean
31
+ }
32
+
33
+ export function SelectTrigger(props: SelectTriggerProps) {
34
+ const [local, rest] = splitProps(props, ['class', 'size', 'hideIcon', 'children'])
35
+
36
+ return (
37
+ <KobalteSelect.Trigger
38
+ class={cn(
39
+ 'border-input bg-transparent flex w-fit items-center justify-between gap-2 rounded-md border px-control-md',
40
+ 'whitespace-nowrap transition-[color,box-shadow,border-color] ease-out outline-none',
41
+ 'data-[placeholder-shown]:text-muted-foreground',
42
+ 'hover:border-input',
43
+ 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',
44
+ 'aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive-subtle',
45
+ 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
46
+ '*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2',
47
+ '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4',
48
+ {
49
+ 'h-control-sm text-xs': local.size === 'sm',
50
+ 'h-control-md text-sm': local.size === 'md' || local.size === undefined,
51
+ 'h-control-lg text-sm': local.size === 'lg',
52
+ },
53
+ local.class
54
+ )}
55
+ {...rest}
56
+ >
57
+ {local.children}
58
+ <Show when={!local.hideIcon}>
59
+ <KobalteSelect.Icon class="text-muted-foreground">
60
+ <ChevronDown />
61
+ </KobalteSelect.Icon>
62
+ </Show>
63
+ </KobalteSelect.Trigger>
64
+ )
65
+ }
66
+
67
+ /**
68
+ * What the trigger shows for the current selection.
69
+ *
70
+ * The default renderer is the reason a single-select needs no render prop at all.
71
+ * Kobalte's own `Value` draws *only* its children, so a bare `<SelectValue />`
72
+ * shows the placeholder and then goes blank the moment something is chosen: the
73
+ * value is there, nothing paints it.
74
+ *
75
+ * Kobalte cannot supply a default itself, because an option is the caller's type
76
+ * — it has no way to know which field is the label. So this reads a field by
77
+ * convention: `label`, then `name`, then `textValue`. An option shaped
78
+ * `{ value, label }` therefore needs nothing, and anything else passes
79
+ * `optionLabel`.
80
+ *
81
+ * A multiple-select still supplies its own renderer, because "3 selected" is a
82
+ * summary a caller has to phrase, not something a component can guess.
83
+ */
84
+ type SelectValueChildren = ComponentProps<typeof KobalteSelect.Value>['children']
85
+
86
+ export type SelectValueProps = ComponentProps<typeof KobalteSelect.Value> & {
87
+ /**
88
+ * Read the display text from the selected option. Supply this when the option's
89
+ * label does not live in a field called `label`, `name` or `textValue`.
90
+ */
91
+ optionLabel?: (option: unknown) => string
92
+ /** Replace the default readout entirely, for a multiple-select summary. */
93
+ children?: SelectValueChildren
94
+ }
95
+
96
+ /** Fields a label is read from, in order. See `SelectValueProps.optionLabel`. */
97
+ const LABEL_FIELDS = ['label', 'name', 'textValue'] as const
98
+
99
+ function labelFromOption(option: unknown): string {
100
+ if (option === null || typeof option !== 'object') {
101
+ return typeof option === 'string' ? option : ''
102
+ }
103
+
104
+ for (const field of LABEL_FIELDS) {
105
+ const value = (option as Record<string, unknown>)[field]
106
+ if (typeof value === 'string') return value
107
+ }
108
+
109
+ return ''
110
+ }
111
+
112
+ export function SelectValue(props: SelectValueProps) {
113
+ const [local, rest] = splitProps(props, ['class', 'children', 'optionLabel'])
114
+
115
+ const readLabel = (state: { selectedOption: () => unknown }): string => {
116
+ const option = state.selectedOption()
117
+ return local.optionLabel ? local.optionLabel(option) : labelFromOption(option)
118
+ }
119
+
120
+ return (
121
+ <KobalteSelect.Value data-slot="select-value" class={cn('truncate', local.class)} {...rest}>
122
+ {local.children ?? (readLabel as unknown as SelectValueChildren)}
123
+ </KobalteSelect.Value>
124
+ )
125
+ }
126
+
127
+ /**
128
+ * The option list. The items themselves come from the root's `itemComponent`,
129
+ * which is what makes a Select able to render a typed option rather than a
130
+ * string; `children` here is for content above the list, such as a filter hint.
131
+ */
132
+ export function SelectContent(props: ComponentProps<typeof KobalteSelect.Content>) {
133
+ const [local, rest] = splitProps(props, ['class', 'children'])
134
+
135
+ return (
136
+ <KobalteSelect.Portal>
137
+ <KobalteSelect.Content
138
+ class={cn(
139
+ 'bg-popover text-popover-foreground rounded-xl border border-border shadow-lg',
140
+ 'z-(--z-menu) max-h-(--kb-popper-content-available-height) min-w-[8rem] origin-(--kb-select-content-transform-origin) overflow-y-auto overflow-x-hidden',
141
+ menuContentPadding,
142
+ 'data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95',
143
+ 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',
144
+ 'data-expanded:duration-150 data-closed:duration-100',
145
+ local.class
146
+ )}
147
+ {...rest}
148
+ >
149
+ {local.children}
150
+ <KobalteSelect.Listbox class="flex flex-col" />
151
+ <KobalteSelect.Arrow aria-hidden="true" class={popoverArrow} />
152
+ </KobalteSelect.Content>
153
+ </KobalteSelect.Portal>
154
+ )
155
+ }
156
+
157
+ export function SelectItem(props: ComponentProps<typeof KobalteSelect.Item>) {
158
+ const [local, rest] = splitProps(props, ['class', 'children'])
159
+
160
+ return (
161
+ <KobalteSelect.Item class={cn(menuItem, 'pe-8', local.class)} {...rest}>
162
+ <KobalteSelect.ItemLabel>{local.children}</KobalteSelect.ItemLabel>
163
+ <KobalteSelect.ItemIndicator class="absolute end-2 flex size-4 items-center justify-center">
164
+ <Check class="size-4" />
165
+ </KobalteSelect.ItemIndicator>
166
+ </KobalteSelect.Item>
167
+ )
168
+ }
169
+
170
+ export function SelectSection(props: ComponentProps<typeof KobalteSelect.Section>) {
171
+ const [local, rest] = splitProps(props, ['class'])
172
+ return <KobalteSelect.Section class={cn('flex flex-col', local.class)} {...rest} />
173
+ }
174
+
175
+ export function SelectLabel(props: ComponentProps<typeof KobalteSelect.Label>) {
176
+ const [local, rest] = splitProps(props, ['class'])
177
+ return (
178
+ <KobalteSelect.Label
179
+ class={cn('text-muted-foreground px-2 py-1.5 text-2xs font-medium uppercase', local.class)}
180
+ {...rest}
181
+ />
182
+ )
183
+ }
184
+
185
+ /** The chevron pair used when a Select is composed by hand in a field. */
186
+ export function SelectChevronsUpDown(props: ComponentProps<'svg'>) {
187
+ return <ChevronsUpDown aria-hidden="true" {...props} />
188
+ }
@@ -0,0 +1 @@
1
+ export { Separator, type SeparatorProps } from './separator'
@@ -0,0 +1,40 @@
1
+ import { Separator as KobalteSeparator } from '@kobalte/core/separator'
2
+ import type { PolymorphicProps } from '@kobalte/core/polymorphic'
3
+ import { type ComponentProps, splitProps, type ValidComponent } from 'solid-js'
4
+ import { cn } from '#lib/utils'
5
+
6
+ /**
7
+ * Separator.
8
+ *
9
+ * Renders `role="separator"` with the right orientation, so a screen reader
10
+ * understands it as a boundary rather than as an empty element. A plain
11
+ * `<div>` with a border looks identical and announces nothing.
12
+ */
13
+ export type SeparatorProps<T extends ValidComponent = 'div'> = PolymorphicProps<
14
+ T,
15
+ {
16
+ class?: string
17
+ /** Draw the line as a dashed rule. For an "or" between alternative paths. */
18
+ variant?: 'solid' | 'dashed'
19
+ orientation?: 'horizontal' | 'vertical'
20
+ }
21
+ >
22
+
23
+ export function Separator<T extends ValidComponent = 'div'>(props: SeparatorProps<T>) {
24
+ const [local, rest] = splitProps(props as SeparatorProps, ['class', 'variant', 'orientation'])
25
+
26
+ return (
27
+ <KobalteSeparator
28
+ orientation={local.orientation ?? 'horizontal'}
29
+ class={cn(
30
+ 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',
31
+ {
32
+ 'border-t border-dashed border-border bg-transparent data-[orientation=horizontal]:h-0':
33
+ local.variant === 'dashed',
34
+ },
35
+ local.class
36
+ )}
37
+ {...(rest as ComponentProps<'div'>)}
38
+ />
39
+ )
40
+ }
@@ -0,0 +1,13 @@
1
+ export {
2
+ Sheet,
3
+ SheetBody,
4
+ SheetCloseButton,
5
+ SheetContent,
6
+ SheetDescription,
7
+ SheetFooter,
8
+ SheetHeader,
9
+ SheetTitle,
10
+ SheetTrigger,
11
+ sheetVariants,
12
+ type SheetContentProps,
13
+ } from './sheet'