@adea-ai/ui 0.60.3 → 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,93 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { insert, mergeProps, spread, template } from "solid-js/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/ui/input-group/input-group.tsx
5
+ var _tmpl$ = /*#__PURE__*/ template(`<div data-slot=input-group>`);
6
+ var _tmpl$2 = /*#__PURE__*/ template(`<input data-slot=input-group-input>`);
7
+ var _tmpl$3 = /*#__PURE__*/ template(`<span data-slot=input-group-addon>`);
8
+ var _tmpl$4 = /*#__PURE__*/ template(`<button type=button data-slot=input-group-button>`);
9
+ var _tmpl$5 = /*#__PURE__*/ template(`<span>`);
10
+ /**
11
+ * InputGroup.
12
+ *
13
+ * A field with attached chrome: a leading icon, a unit, a trailing button, a
14
+ * clear affordance. The point of the component is that the adornments and the
15
+ * input share *one* border and *one* focus ring, so the group reads as a single
16
+ * control. Two separate elements side by side always drift — the ring appears
17
+ * on the wrong box, or the border doubles where they meet.
18
+ *
19
+ * The focus ring therefore lives on the group and follows `focus-within`. A
20
+ * group containing several focusable things still reads as focused once, which
21
+ * is the correct affordance: the user is somewhere inside it.
22
+ */
23
+ function InputGroup(props) {
24
+ const [local, rest] = splitProps(props, ["class"]);
25
+ return (() => {
26
+ var _el$ = _tmpl$();
27
+ spread(_el$, mergeProps({ get ["class"]() {
28
+ return cn("border-input flex h-control-md w-full min-w-0 items-center gap-1.5 rounded-md border bg-transparent px-control-sm", "transition-[color,box-shadow,border-color] ease-out", "focus-within:border-ring focus-within:ring-3 focus-within:ring-primary-subtle", "has-[[aria-invalid=true]]:border-destructive has-[[aria-invalid=true]]:ring-3 has-[[aria-invalid=true]]:ring-destructive-subtle", "has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50", local.class);
29
+ } }, rest), false, false);
30
+ return _el$;
31
+ })();
32
+ }
33
+ function InputGroupInput(props) {
34
+ const [local, rest] = splitProps(props, ["class"]);
35
+ return (() => {
36
+ var _el$2 = _tmpl$2();
37
+ spread(_el$2, mergeProps({ get ["class"]() {
38
+ return cn("h-full min-w-0 flex-1 bg-transparent text-sm outline-none", "placeholder:text-muted-foreground", "disabled:cursor-not-allowed", local.class);
39
+ } }, rest), false, false);
40
+ return _el$2;
41
+ })();
42
+ }
43
+ /**
44
+ * A non-interactive adornment. `pointer-events-none` by default, because an
45
+ * adornment that swallows a click makes the whole control feel dead just to
46
+ * the left of the caret — the most annoying possible bug. Pass `align="end"`
47
+ * and a real element when the adornment must be clickable.
48
+ */
49
+ function InputGroupAddon(props) {
50
+ const [local, rest] = splitProps(props, [
51
+ "class",
52
+ "align",
53
+ "children"
54
+ ]);
55
+ return (() => {
56
+ var _el$3 = _tmpl$3();
57
+ spread(_el$3, mergeProps({ get ["class"]() {
58
+ return cn("text-muted-foreground flex shrink-0 items-center gap-1.5 text-sm select-none", "[&_svg]:pointer-events-none [&_svg]:size-4", {
59
+ "order-first": local.align !== "end",
60
+ "order-last": local.align === "end"
61
+ }, local.class);
62
+ } }, rest), false, true);
63
+ insert(_el$3, () => local.children);
64
+ return _el$3;
65
+ })();
66
+ }
67
+ /** A clickable trailing button, sized to the group's height. */
68
+ function InputGroupButton(props) {
69
+ const [local, rest] = splitProps(props, ["class", "children"]);
70
+ return (() => {
71
+ var _el$4 = _tmpl$4();
72
+ spread(_el$4, mergeProps({ get ["class"]() {
73
+ return cn("text-muted-foreground -me-1 flex size-6 shrink-0 items-center justify-center rounded-sm", "transition-colors ease-out outline-none hover:bg-surface-hover hover:text-foreground", "focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle", "disabled:pointer-events-none disabled:opacity-50", "[&_svg]:size-3.5", local.class);
74
+ } }, rest), false, true);
75
+ insert(_el$4, () => local.children);
76
+ return _el$4;
77
+ })();
78
+ }
79
+ /** Text that reads as a value but is not an input, e.g. a unit or a suffix. */
80
+ function InputGroupText(props) {
81
+ const [local, rest] = splitProps(props, ["class"]);
82
+ return (() => {
83
+ var _el$5 = _tmpl$5();
84
+ spread(_el$5, mergeProps({ get ["class"]() {
85
+ return cn("text-muted-foreground text-sm", local.class);
86
+ } }, rest), false, false);
87
+ return _el$5;
88
+ })();
89
+ }
90
+ //#endregion
91
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText };
92
+
93
+ //# sourceMappingURL=input-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.js","names":["ComponentProps","JSX","splitProps","cn","InputGroup","props","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","class","InputGroupInput","_el$2","_tmpl$2","InputGroupAddonProps","align","InputGroupAddon","_el$3","_tmpl$3","_$insert","children","InputGroupButton","_el$4","_tmpl$4","InputGroupText","Element","_el$5","_tmpl$5","_$mergeProps"],"sources":["../../../../src/components/ui/input-group/input-group.tsx"],"sourcesContent":["import type { ComponentProps, JSX } from 'solid-js'\nimport { splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * InputGroup.\n *\n * A field with attached chrome: a leading icon, a unit, a trailing button, a\n * clear affordance. The point of the component is that the adornments and the\n * input share *one* border and *one* focus ring, so the group reads as a single\n * control. Two separate elements side by side always drift — the ring appears\n * on the wrong box, or the border doubles where they meet.\n *\n * The focus ring therefore lives on the group and follows `focus-within`. A\n * group containing several focusable things still reads as focused once, which\n * is the correct affordance: the user is somewhere inside it.\n */\nexport function InputGroup(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <div\n data-slot=\"input-group\"\n class={cn(\n 'border-input flex h-control-md w-full min-w-0 items-center gap-1.5 rounded-md border bg-transparent px-control-sm',\n 'transition-[color,box-shadow,border-color] ease-out',\n 'focus-within:border-ring focus-within:ring-3 focus-within:ring-primary-subtle',\n 'has-[[aria-invalid=true]]:border-destructive has-[[aria-invalid=true]]:ring-3 has-[[aria-invalid=true]]:ring-destructive-subtle',\n 'has-[input:disabled]:pointer-events-none has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function InputGroupInput(props: ComponentProps<'input'>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <input\n data-slot=\"input-group-input\"\n class={cn(\n 'h-full min-w-0 flex-1 bg-transparent text-sm outline-none',\n 'placeholder:text-muted-foreground',\n 'disabled:cursor-not-allowed',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport type InputGroupAddonProps = ComponentProps<'span'> & {\n /** Which edge the adornment sits on; also sets the pointer-events rule. */\n align?: 'start' | 'end'\n}\n\n/**\n * A non-interactive adornment. `pointer-events-none` by default, because an\n * adornment that swallows a click makes the whole control feel dead just to\n * the left of the caret — the most annoying possible bug. Pass `align=\"end\"`\n * and a real element when the adornment must be clickable.\n */\nexport function InputGroupAddon(props: InputGroupAddonProps) {\n const [local, rest] = splitProps(props, ['class', 'align', 'children'])\n\n return (\n <span\n data-slot=\"input-group-addon\"\n class={cn(\n 'text-muted-foreground flex shrink-0 items-center gap-1.5 text-sm select-none',\n '[&_svg]:pointer-events-none [&_svg]:size-4',\n { 'order-first': local.align !== 'end', 'order-last': local.align === 'end' },\n local.class\n )}\n {...rest}\n >\n {local.children}\n </span>\n )\n}\n\n/** A clickable trailing button, sized to the group's height. */\nexport function InputGroupButton(props: ComponentProps<'button'>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <button\n type=\"button\"\n data-slot=\"input-group-button\"\n class={cn(\n 'text-muted-foreground -me-1 flex size-6 shrink-0 items-center justify-center rounded-sm',\n 'transition-colors ease-out outline-none hover:bg-surface-hover hover:text-foreground',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_svg]:size-3.5',\n local.class\n )}\n {...rest}\n >\n {local.children}\n </button>\n )\n}\n\n/** Text that reads as a value but is not an input, e.g. a unit or a suffix. */\nexport function InputGroupText(props: ComponentProps<'span'> & { children?: JSX.Element }) {\n const [local, rest] = splitProps(props, ['class'])\n return <span class={cn('text-muted-foreground text-sm', local.class)} {...rest} />\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiBA,SAAgBI,WAAWC,OAA8B;CACvD,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,OAAO,CAAC;CAEjD,cAAA;EAAA,IAAAG,OAAAC,OAAA;EAAAC,OAAAF,MAAAG,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWR,GACL,qHACA,uDACA,iFACA,mIACA,oHACAG,MAAMM,KACR;EAAC,EAAA,GACGL,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAC;CAAA,EAAA,CAAA;AAGd;AAEA,SAAgBK,gBAAgBR,OAAgC;CAC9D,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,OAAO,CAAC;CAEjD,cAAA;EAAA,IAAAS,QAAAC,QAAA;EAAAL,OAAAI,OAAAH,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWR,GACL,6DACA,qCACA,+BACAG,MAAMM,KACR;EAAC,EAAA,GACGL,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAO;CAAA,EAAA,CAAA;AAGd;;;;;;;AAaA,SAAgBI,gBAAgBb,OAA6B;CAC3D,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO;EAAC;EAAS;EAAS;CAAU,CAAC;CAEtE,cAAA;EAAA,IAAAc,QAAAC,QAAA;EAAAV,OAAAS,OAAAR,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWR,GACL,gFACA,8CACA;IAAE,eAAeG,MAAMW,UAAU;IAAO,cAAcX,MAAMW,UAAU;GAAM,GAC5EX,MAAMM,KACR;EAAC,EAAA,GACGL,IAAI,GAAA,OAAA,IAAA;EAAAc,OAAAF,aAEPb,MAAMgB,QAAQ;EAAA,OAAAH;CAAA,EAAA,CAAA;AAGrB;;AAGA,SAAgBI,iBAAiBlB,OAAiC;CAChE,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,SAAS,UAAU,CAAC;CAE7D,cAAA;EAAA,IAAAmB,QAAAC,QAAA;EAAAf,OAAAc,OAAAb,WAAA,EAAA,KAAA,WAAA;GAAA,OAIWR,GACL,2FACA,wFACA,oFACA,oDACA,oBACAG,MAAMM,KACR;EAAC,EAAA,GACGL,IAAI,GAAA,OAAA,IAAA;EAAAc,OAAAG,aAEPlB,MAAMgB,QAAQ;EAAA,OAAAE;CAAA,EAAA,CAAA;AAGrB;;AAGA,SAAgBE,eAAerB,OAA4D;CACzF,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAAuB,QAAAC,QAAA;EAAAnB,OAAAkB,OAAAjB,WAAA,EAAA,KAAA,WAAA;GAAA,OAAoBR,GAAG,iCAAiCG,MAAMM,KAAK;EAAC,EAAA,GAAML,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAqB;CAAA,EAAA,CAAA;AAChF"}
@@ -0,0 +1,2 @@
1
+ export { InputOtp, InputOtpCaret, type InputOtpProps } from './input-otp';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/input-otp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,37 @@
1
+ import OtpField from '@corvu/otp-field';
2
+ import type { ComponentProps } from 'solid-js';
3
+ /**
4
+ * InputOtp.
5
+ *
6
+ * A one-time code, entered into separate boxes. The boxes are the *paint*: the
7
+ * value lives in a single real input, so paste works, autofill works, and a
8
+ * password manager sees one field rather than six.
9
+ *
10
+ * That split is the whole reason to use a component rather than six inputs. Six
11
+ * inputs cannot be pasted into, cannot be autofilled, and announce as six unrelated
12
+ * fields — every one of which is a defect a user hits on the first try.
13
+ *
14
+ * corvu supplies the value handling, the caret movement, the paste split and the
15
+ * keyboard behaviour.
16
+ */
17
+ /**
18
+ * `maxLength` is omitted rather than exposed: corvu requires it, and a caller who
19
+ * has to set both it and `length` will eventually set them to different numbers.
20
+ * `length` is the one input and it drives the other.
21
+ */
22
+ export type InputOtpProps = Omit<ComponentProps<typeof OtpField>, 'maxLength'> & {
23
+ /** How many characters. */
24
+ length?: number;
25
+ /** Group the boxes into runs, e.g. `[3, 3]` for a six-character code. */
26
+ groups?: readonly number[];
27
+ };
28
+ export declare function InputOtp(props: InputOtpProps): import("solid-js").JSX.Element;
29
+ /**
30
+ * A caret drawn inside the active box.
31
+ *
32
+ * Exported for a caller building its own slot: the box above renders the character
33
+ * directly, and a blinking caret is the alternative when the field should look
34
+ * empty until something is typed.
35
+ */
36
+ export declare function InputOtpCaret(props: ComponentProps<'span'>): import("solid-js").JSX.Element;
37
+ //# sourceMappingURL=input-otp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/input-otp/input-otp.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9C;;;;;;;;;;;;;GAaG;AACH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,EAAE,WAAW,CAAC,GAAG;IAC/E,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3B,CAAA;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,kCA0D5C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,kCAS1D"}
@@ -0,0 +1,92 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { className, createComponent, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
3
+ import { For, Show, splitProps } from "solid-js";
4
+ import OtpField from "@corvu/otp-field";
5
+ //#region src/components/ui/input-otp/input-otp.tsx
6
+ var _tmpl$ = /*#__PURE__*/ template(`<span aria-hidden=true class="text-muted-foreground px-1">–`);
7
+ var _tmpl$2 = /*#__PURE__*/ template(`<span class="flex items-center gap-1.5">`);
8
+ var _tmpl$3 = /*#__PURE__*/ template(`<span>`);
9
+ var _tmpl$4 = /*#__PURE__*/ template(`<span aria-hidden=true>`);
10
+ function InputOtp(props) {
11
+ const [local, rest] = splitProps(props, [
12
+ "class",
13
+ "length",
14
+ "groups",
15
+ "children"
16
+ ]);
17
+ const length = () => local.length ?? 6;
18
+ const groups = () => local.groups ?? [length()];
19
+ return createComponent(OtpField, mergeProps({
20
+ get maxLength() {
21
+ return length();
22
+ },
23
+ get ["class"]() {
24
+ return cn("flex items-center gap-2", local.class);
25
+ }
26
+ }, rest, { children: (field) => [createComponent(OtpField.Input, {
27
+ get ["aria-label"]() {
28
+ return props["aria-label"] ?? "One-time code";
29
+ },
30
+ "class": "absolute inset-0 opacity-0"
31
+ }), createComponent(For, {
32
+ get each() {
33
+ return groups();
34
+ },
35
+ children: (size, groupIndex) => [createComponent(Show, {
36
+ get when() {
37
+ return groupIndex() > 0;
38
+ },
39
+ get children() {
40
+ return _tmpl$();
41
+ }
42
+ }), (() => {
43
+ var _el$2 = _tmpl$2();
44
+ insert(_el$2, createComponent(For, {
45
+ get each() {
46
+ return Array.from({ length: size });
47
+ },
48
+ children: (_, index) => {
49
+ const slot = groups().slice(0, groupIndex()).reduce((total, run) => total + run, 0) + index();
50
+ return (() => {
51
+ var _el$3 = _tmpl$3();
52
+ insert(_el$3, () => field.value[slot] ?? "");
53
+ effect((_p$) => {
54
+ var _v$ = cn("border-input bg-transparent flex size-10 items-center justify-center rounded-md border text-sm font-medium", "transition-[color,box-shadow,border-color] ease-out", "data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-primary-subtle", "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"), _v$2 = field.activeSlots.includes(slot), _v$3 = props.disabled;
55
+ _v$ !== _p$.e && className(_el$3, _p$.e = _v$);
56
+ _v$2 !== _p$.t && setAttribute(_el$3, "data-active", _p$.t = _v$2);
57
+ _v$3 !== _p$.a && setAttribute(_el$3, "data-disabled", _p$.a = _v$3);
58
+ return _p$;
59
+ }, {
60
+ e: void 0,
61
+ t: void 0,
62
+ a: void 0
63
+ });
64
+ return _el$3;
65
+ })();
66
+ }
67
+ }));
68
+ return _el$2;
69
+ })()]
70
+ })] }));
71
+ }
72
+ /**
73
+ * A caret drawn inside the active box.
74
+ *
75
+ * Exported for a caller building its own slot: the box above renders the character
76
+ * directly, and a blinking caret is the alternative when the field should look
77
+ * empty until something is typed.
78
+ */
79
+ function InputOtpCaret(props) {
80
+ const [local, rest] = splitProps(props, ["class"]);
81
+ return (() => {
82
+ var _el$4 = _tmpl$4();
83
+ spread(_el$4, mergeProps({ get ["class"]() {
84
+ return cn("animate-caret bg-foreground inline-block h-4 w-px", local.class);
85
+ } }, rest), false, false);
86
+ return _el$4;
87
+ })();
88
+ }
89
+ //#endregion
90
+ export { InputOtp, InputOtpCaret };
91
+
92
+ //# sourceMappingURL=input-otp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-otp.js","names":["OtpField","ComponentProps","For","Show","splitProps","cn","InputOtpProps","Omit","length","groups","InputOtp","props","local","rest","_$createComponent","_$mergeProps","maxLength","class","children","field","Input","aria-label","each","size","groupIndex","when","_tmpl$","_el$2","_tmpl$2","_$insert","Array","from","_","index","offset","slice","reduce","total","run","slot","_el$3","_tmpl$3","value","_$effect","_p$","_v$","_v$2","activeSlots","includes","_v$3","disabled","e","_$className","t","_$setAttribute","a","undefined","InputOtpCaret","_el$4","_tmpl$4","_$spread","_$createComponent","_$mergeProps","_$className","_$setAttribute"],"sources":["../../../../src/components/ui/input-otp/input-otp.tsx"],"sourcesContent":["import OtpField from '@corvu/otp-field'\nimport type { ComponentProps } from 'solid-js'\nimport { For, Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * InputOtp.\n *\n * A one-time code, entered into separate boxes. The boxes are the *paint*: the\n * value lives in a single real input, so paste works, autofill works, and a\n * password manager sees one field rather than six.\n *\n * That split is the whole reason to use a component rather than six inputs. Six\n * inputs cannot be pasted into, cannot be autofilled, and announce as six unrelated\n * fields — every one of which is a defect a user hits on the first try.\n *\n * corvu supplies the value handling, the caret movement, the paste split and the\n * keyboard behaviour.\n */\n/**\n * `maxLength` is omitted rather than exposed: corvu requires it, and a caller who\n * has to set both it and `length` will eventually set them to different numbers.\n * `length` is the one input and it drives the other.\n */\nexport type InputOtpProps = Omit<ComponentProps<typeof OtpField>, 'maxLength'> & {\n /** How many characters. */\n length?: number\n /** Group the boxes into runs, e.g. `[3, 3]` for a six-character code. */\n groups?: readonly number[]\n}\n\nexport function InputOtp(props: InputOtpProps) {\n const [local, rest] = splitProps(props, ['class', 'length', 'groups', 'children'])\n\n const length = () => local.length ?? 6\n const groups = () => local.groups ?? [length()]\n\n return (\n <OtpField\n maxLength={length()}\n class={cn('flex items-center gap-2', local.class)}\n {...rest}\n children={(field) => (\n <>\n <OtpField.Input\n aria-label={props['aria-label'] ?? 'One-time code'}\n class=\"absolute inset-0 opacity-0\"\n />\n <For each={groups()}>\n {(size, groupIndex) => (\n <>\n <Show when={groupIndex() > 0}>\n <span aria-hidden=\"true\" class=\"text-muted-foreground px-1\">\n –\n </span>\n </Show>\n <span class=\"flex items-center gap-1.5\">\n <For each={Array.from({ length: size })}>\n {(_, index) => {\n // The slot's index across the whole field, so the boxes after a\n // group boundary continue counting rather than restarting.\n const offset = groups()\n .slice(0, groupIndex())\n .reduce((total, run) => total + run, 0)\n const slot = offset + index()\n return (\n <span\n class={cn(\n 'border-input bg-transparent flex size-10 items-center justify-center rounded-md border text-sm font-medium',\n 'transition-[color,box-shadow,border-color] ease-out',\n 'data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-primary-subtle',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50'\n )}\n data-active={field.activeSlots.includes(slot)}\n data-disabled={props.disabled}\n >\n {field.value[slot] ?? ''}\n </span>\n )\n }}\n </For>\n </span>\n </>\n )}\n </For>\n </>\n )}\n />\n )\n}\n\n/**\n * A caret drawn inside the active box.\n *\n * Exported for a caller building its own slot: the box above renders the character\n * directly, and a blinking caret is the alternative when the field should look\n * empty until something is typed.\n */\nexport function InputOtpCaret(props: ComponentProps<'span'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <span\n aria-hidden=\"true\"\n class={cn('animate-caret bg-foreground inline-block h-4 w-px', local.class)}\n {...rest}\n />\n )\n}\n"],"mappings":";;;;;;;;;AA+BA,SAAgBU,SAASC,OAAsB;CAC7C,MAAM,CAACC,OAAOC,QAAQT,WAAWO,OAAO;EAAC;EAAS;EAAU;EAAU;CAAU,CAAC;CAEjF,MAAMH,eAAeI,MAAMJ,UAAU;CACrC,MAAMC,eAAeG,MAAMH,UAAU,CAACD,OAAO,CAAC;CAE9C,OAAAM,gBACGd,UAAQe,WAAA;EAAA,IACPC,YAAS;GAAA,OAAER,OAAO;EAAC;EAAA,KAAA,WAAA;GAAA,OACZH,GAAG,2BAA2BO,MAAMK,KAAK;EAAC;CAAA,GAC7CJ,MAAI,EACRK,WAAWC,UAAK,CAAAL,gBAEXd,SAASoB,OAAK;EAAA,KAAA,gBAAA;GAAA,OACDT,MAAM,iBAAiB;EAAe;EAAA,SAAA;CAAA,CAAA,GAAAG,gBAGnDZ,KAAG;EAAA,IAACoB,OAAI;GAAA,OAAEb,OAAO;EAAC;EAAAS,WACfK,MAAMC,eAAU,CAAAV,gBAEbX,MAAI;GAAA,IAACsB,OAAI;IAAA,OAAED,WAAW,IAAI;GAAC;GAAA,IAAAN,WAAA;IAAA,OAAAQ,OAAA;GAAA;EAAA,CAAA,UAAA;GAAA,IAAAC,QAAAC,QAAA;GAAAC,OAAAF,OAAAb,gBAMzBZ,KAAG;IAAA,IAACoB,OAAI;KAAA,OAAEQ,MAAMC,KAAK,EAAEvB,QAAQe,KAAK,CAAC;IAAC;IAAAL,WACnCc,GAAGC,UAAU;KAMb,MAAMM,OAHS9B,OAAO,CAAC,CACpB0B,MAAM,GAAGX,WAAW,CAAC,CAAC,CACtBY,QAAQC,OAAOC,QAAQD,QAAQC,KAAK,CAC1BJ,IAASD,MAAM;KAC5B,cAAA;MAAA,IAAAO,QAAAC,QAAA;MAAAZ,OAAAW,aAWKrB,MAAMuB,MAAMH,SAAS,EAAE;MAAAI,QAAAC,QAAA;OAAA,IAAAC,MATjBxC,GACL,8GACA,uDACA,mGACA,+DACF,GAACyC,OACY3B,MAAM4B,YAAYC,SAAST,IAAI,GAACU,OAC9BtC,MAAMuC;OAAQL,QAAAD,IAAAO,KAAAC,UAAAZ,OAAAI,IAAAO,IAAAN,GAAA;OAAAC,SAAAF,IAAAS,KAAAC,aAAAd,OAAA,eAAAI,IAAAS,IAAAP,IAAA;OAAAG,SAAAL,IAAAW,KAAAD,aAAAd,OAAA,iBAAAI,IAAAW,IAAAN,IAAA;OAAA,OAAAL;MAAA,GAAA;OAAAO,GAAAK,KAAAA;OAAAH,GAAAG,KAAAA;OAAAD,GAAAC,KAAAA;MAAA,CAAA;MAAA,OAAAhB;KAAA,EAAA,CAAA;IAKnC;GAAC,CAAA,CAAA;GAAA,OAAAb;EAAA,EAAA,CAAA,CAAA;CAIR,CAAA,CAAA,EAGN,CAAA,CAAA;AAGP;;;;;;;;AASA,SAAgB8B,cAAc9C,OAA+B;CAC3D,MAAM,CAACC,OAAOC,QAAQT,WAAWO,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAA+C,QAAAC,QAAA;EAAAC,OAAAF,OAAA3C,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWV,GAAG,qDAAqDO,MAAMK,KAAK;EAAC,EAAA,GACvEJ,IAAI,GAAA,OAAA,KAAA;EAAA,OAAA6C;CAAA,EAAA,CAAA;AAGd"}
@@ -0,0 +1,2 @@
1
+ export { Item, ItemDescription, ItemEmpty, ItemGroup, ItemGroupEntry, ItemTitle, itemVariants, type ItemProps, } from './item';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,SAAS,EACT,SAAS,EACT,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,49 @@
1
+ import type { ComponentProps, JSX } from 'solid-js';
2
+ import { type VariantProps } from '#lib/variants';
3
+ /**
4
+ * Item.
5
+ *
6
+ * The general row: a leading slot, a body, and a trailing slot. It is the shape
7
+ * almost every list in an application takes — a file, a member, a setting, a
8
+ * search result — and it exists as a component because a row is where inconsistency
9
+ * is most visible: twenty of them make any drift in height, padding or alignment
10
+ * obvious at a glance.
11
+ *
12
+ * The difference from `ListRow` is what it is *for*. `ListRow` is one row in a list
13
+ * of like things, sized by the row ladder and meant to be scanned down a column.
14
+ * `Item` is a self-contained block — it has a border, its own surface, an optional
15
+ * title and description — and is meant to stand alone or sit in a grid. A list uses
16
+ * `ListRow`; a search result or a settings card uses `Item`.
17
+ *
18
+ * `variant="outline"` and `"muted"` exist because the two questions a caller
19
+ * actually has are "does this need an edge" and "is it on the canvas or inset".
20
+ */
21
+ export declare const itemVariants: (props?: ({
22
+ variant?: "default" | "outline" | "muted" | null | undefined;
23
+ size?: "sm" | "md" | "lg" | null | undefined;
24
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
+ type ItemVariantProps = VariantProps<typeof itemVariants>;
26
+ export type ItemProps = ComponentProps<'div'> & ItemVariantProps & {
27
+ /** A media slot: an icon, an avatar, a thumbnail. */
28
+ media?: JSX.Element;
29
+ /** A trailing slot: a badge, a timestamp, a menu trigger. */
30
+ trailing?: JSX.Element;
31
+ };
32
+ export declare function Item(props: ItemProps): JSX.Element;
33
+ export declare function ItemTitle(props: ComponentProps<'div'>): JSX.Element;
34
+ export declare function ItemDescription(props: ComponentProps<'div'>): JSX.Element;
35
+ /**
36
+ * A group of items with an optional heading. It is a real `role="list"` with
37
+ * `role="listitem"` children, so a screen reader reports the count — which is how a
38
+ * user knows how many results there are without counting them.
39
+ */
40
+ export declare function ItemGroup(props: ComponentProps<'div'> & {
41
+ label?: string;
42
+ /** The list's accessible name. */ listLabel?: string;
43
+ }): JSX.Element;
44
+ /** An item inside an `ItemGroup`, which is what makes it a list item. */
45
+ export declare function ItemGroupEntry(props: ItemProps): JSX.Element;
46
+ /** A centred message for a group with nothing in it. */
47
+ export declare function ItemEmpty(props: ComponentProps<'div'>): JSX.Element;
48
+ export {};
49
+ //# sourceMappingURL=item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/item/item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAGtD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY;;;8EAgBvB,CAAA;AAEF,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAA;AAEzD,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAC3C,gBAAgB,GAAG;IACjB,qDAAqD;IACrD,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAEH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,eAkCpC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eAGrD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eAS3D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kCAAkC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CACtD,eAgBF;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,eAE9C;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eASrD"}
@@ -0,0 +1,163 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { cva } from "../../../lib/variants.js";
3
+ import { createComponent, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
4
+ import { Show, splitProps } from "solid-js";
5
+ //#region src/components/ui/item/item.tsx
6
+ var _tmpl$ = /*#__PURE__*/ template(`<span data-slot=item-media class="flex size-8 shrink-0 items-center justify-center [&amp;_svg]:size-4">`);
7
+ var _tmpl$2 = /*#__PURE__*/ template(`<span data-slot=item-trailing class="flex shrink-0 items-center gap-2">`);
8
+ var _tmpl$3 = /*#__PURE__*/ template(`<div data-slot=item><div data-slot=item-body class="flex min-w-0 flex-1 flex-col gap-0.5">`);
9
+ var _tmpl$4 = /*#__PURE__*/ template(`<div data-slot=item-title>`);
10
+ var _tmpl$5 = /*#__PURE__*/ template(`<div data-slot=item-description>`);
11
+ var _tmpl$6 = /*#__PURE__*/ template(`<div class="text-muted-foreground text-2xs font-medium tracking-wide uppercase">`);
12
+ var _tmpl$7 = /*#__PURE__*/ template(`<div data-slot=item-group><div role=list class="flex flex-col gap-2">`);
13
+ var _tmpl$8 = /*#__PURE__*/ template(`<div data-slot=item-empty>`);
14
+ /**
15
+ * Item.
16
+ *
17
+ * The general row: a leading slot, a body, and a trailing slot. It is the shape
18
+ * almost every list in an application takes — a file, a member, a setting, a
19
+ * search result — and it exists as a component because a row is where inconsistency
20
+ * is most visible: twenty of them make any drift in height, padding or alignment
21
+ * obvious at a glance.
22
+ *
23
+ * The difference from `ListRow` is what it is *for*. `ListRow` is one row in a list
24
+ * of like things, sized by the row ladder and meant to be scanned down a column.
25
+ * `Item` is a self-contained block — it has a border, its own surface, an optional
26
+ * title and description — and is meant to stand alone or sit in a grid. A list uses
27
+ * `ListRow`; a search result or a settings card uses `Item`.
28
+ *
29
+ * `variant="outline"` and `"muted"` exist because the two questions a caller
30
+ * actually has are "does this need an edge" and "is it on the canvas or inset".
31
+ */
32
+ var itemVariants = cva("flex w-full items-center gap-3 rounded-lg text-sm", {
33
+ variants: {
34
+ variant: {
35
+ default: "bg-transparent",
36
+ /** On the canvas, with an edge — the search-result shape. */
37
+ outline: "border border-border bg-card",
38
+ /** Inset: a code well, a disabled row, a quoted message. */
39
+ muted: "bg-muted"
40
+ },
41
+ size: {
42
+ sm: "min-h-row-sm px-3 py-1.5",
43
+ md: "min-h-row-md px-3 py-2",
44
+ lg: "min-h-row-lg px-4 py-2.5"
45
+ }
46
+ },
47
+ defaultVariants: {
48
+ variant: "default",
49
+ size: "md"
50
+ }
51
+ });
52
+ function Item(props) {
53
+ const [local, rest] = splitProps(props, [
54
+ "class",
55
+ "variant",
56
+ "size",
57
+ "media",
58
+ "trailing",
59
+ "children"
60
+ ]);
61
+ return (() => {
62
+ var _el$ = _tmpl$3(), _el$3 = _el$.firstChild;
63
+ spread(_el$, mergeProps({ get ["class"]() {
64
+ return cn(itemVariants({
65
+ variant: local.variant,
66
+ size: local.size
67
+ }), local.class);
68
+ } }, rest), false, true);
69
+ insert(_el$, createComponent(Show, {
70
+ get when() {
71
+ return local.media;
72
+ },
73
+ get children() {
74
+ var _el$2 = _tmpl$();
75
+ insert(_el$2, () => local.media);
76
+ return _el$2;
77
+ }
78
+ }), _el$3);
79
+ insert(_el$3, () => local.children);
80
+ insert(_el$, createComponent(Show, {
81
+ get when() {
82
+ return local.trailing;
83
+ },
84
+ get children() {
85
+ var _el$4 = _tmpl$2();
86
+ insert(_el$4, () => local.trailing);
87
+ return _el$4;
88
+ }
89
+ }), null);
90
+ return _el$;
91
+ })();
92
+ }
93
+ function ItemTitle(props) {
94
+ const [local, rest] = splitProps(props, ["class"]);
95
+ return (() => {
96
+ var _el$5 = _tmpl$4();
97
+ spread(_el$5, mergeProps({ get ["class"]() {
98
+ return cn("truncate font-medium", local.class);
99
+ } }, rest), false, false);
100
+ return _el$5;
101
+ })();
102
+ }
103
+ function ItemDescription(props) {
104
+ const [local, rest] = splitProps(props, ["class"]);
105
+ return (() => {
106
+ var _el$6 = _tmpl$5();
107
+ spread(_el$6, mergeProps({ get ["class"]() {
108
+ return cn("text-muted-foreground line-clamp-2 text-xs text-pretty", local.class);
109
+ } }, rest), false, false);
110
+ return _el$6;
111
+ })();
112
+ }
113
+ /**
114
+ * A group of items with an optional heading. It is a real `role="list"` with
115
+ * `role="listitem"` children, so a screen reader reports the count — which is how a
116
+ * user knows how many results there are without counting them.
117
+ */
118
+ function ItemGroup(props) {
119
+ const [local, rest] = splitProps(props, [
120
+ "class",
121
+ "label",
122
+ "listLabel",
123
+ "children"
124
+ ]);
125
+ return (() => {
126
+ var _el$7 = _tmpl$7(), _el$9 = _el$7.firstChild;
127
+ spread(_el$7, mergeProps({ get ["class"]() {
128
+ return cn("flex flex-col gap-2", local.class);
129
+ } }, rest), false, true);
130
+ insert(_el$7, createComponent(Show, {
131
+ get when() {
132
+ return local.label;
133
+ },
134
+ get children() {
135
+ var _el$8 = _tmpl$6();
136
+ insert(_el$8, () => local.label);
137
+ return _el$8;
138
+ }
139
+ }), _el$9);
140
+ insert(_el$9, () => local.children);
141
+ effect(() => setAttribute(_el$9, "aria-label", local.listLabel ?? local.label));
142
+ return _el$7;
143
+ })();
144
+ }
145
+ /** An item inside an `ItemGroup`, which is what makes it a list item. */
146
+ function ItemGroupEntry(props) {
147
+ return createComponent(Item, mergeProps({ role: "listitem" }, props));
148
+ }
149
+ /** A centred message for a group with nothing in it. */
150
+ function ItemEmpty(props) {
151
+ const [local, rest] = splitProps(props, ["class"]);
152
+ return (() => {
153
+ var _el$0 = _tmpl$8();
154
+ spread(_el$0, mergeProps({ get ["class"]() {
155
+ return cn("text-muted-foreground py-6 text-center text-sm", local.class);
156
+ } }, rest), false, false);
157
+ return _el$0;
158
+ })();
159
+ }
160
+ //#endregion
161
+ export { Item, ItemDescription, ItemEmpty, ItemGroup, ItemGroupEntry, ItemTitle, itemVariants };
162
+
163
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","names":["ComponentProps","JSX","Show","splitProps","cva","VariantProps","cn","itemVariants","variants","variant","default","outline","muted","size","sm","md","lg","defaultVariants","ItemVariantProps","ItemProps","media","Element","trailing","Item","props","local","rest","_el$","_tmpl$3","_el$3","firstChild","_$spread","_$mergeProps","class","_$insert","_$createComponent","when","children","_el$2","_tmpl$","_el$4","_tmpl$2","ItemTitle","_el$5","_tmpl$4","ItemDescription","_el$6","_tmpl$5","ItemGroup","label","listLabel","_el$7","_tmpl$7","_el$9","_el$8","_tmpl$6","_$effect","_$setAttribute","ItemGroupEntry","role","ItemEmpty","_el$0","_tmpl$8","_$mergeProps","_$createComponent","_$setAttribute"],"sources":["../../../../src/components/ui/item/item.tsx"],"sourcesContent":["import type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cva, type VariantProps } from '#lib/variants'\nimport { cn } from '#lib/utils'\n\n/**\n * Item.\n *\n * The general row: a leading slot, a body, and a trailing slot. It is the shape\n * almost every list in an application takes — a file, a member, a setting, a\n * search result — and it exists as a component because a row is where inconsistency\n * is most visible: twenty of them make any drift in height, padding or alignment\n * obvious at a glance.\n *\n * The difference from `ListRow` is what it is *for*. `ListRow` is one row in a list\n * of like things, sized by the row ladder and meant to be scanned down a column.\n * `Item` is a self-contained block — it has a border, its own surface, an optional\n * title and description — and is meant to stand alone or sit in a grid. A list uses\n * `ListRow`; a search result or a settings card uses `Item`.\n *\n * `variant=\"outline\"` and `\"muted\"` exist because the two questions a caller\n * actually has are \"does this need an edge\" and \"is it on the canvas or inset\".\n */\nexport const itemVariants = cva('flex w-full items-center gap-3 rounded-lg text-sm', {\n variants: {\n variant: {\n default: 'bg-transparent',\n /** On the canvas, with an edge — the search-result shape. */\n outline: 'border border-border bg-card',\n /** Inset: a code well, a disabled row, a quoted message. */\n muted: 'bg-muted',\n },\n size: {\n sm: 'min-h-row-sm px-3 py-1.5',\n md: 'min-h-row-md px-3 py-2',\n lg: 'min-h-row-lg px-4 py-2.5',\n },\n },\n defaultVariants: { variant: 'default', size: 'md' },\n})\n\ntype ItemVariantProps = VariantProps<typeof itemVariants>\n\nexport type ItemProps = ComponentProps<'div'> &\n ItemVariantProps & {\n /** A media slot: an icon, an avatar, a thumbnail. */\n media?: JSX.Element\n /** A trailing slot: a badge, a timestamp, a menu trigger. */\n trailing?: JSX.Element\n }\n\nexport function Item(props: ItemProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'variant',\n 'size',\n 'media',\n 'trailing',\n 'children',\n ])\n\n return (\n <div\n data-slot=\"item\"\n class={cn(itemVariants({ variant: local.variant, size: local.size }), local.class)}\n {...rest}\n >\n <Show when={local.media}>\n <span\n data-slot=\"item-media\"\n class=\"flex size-8 shrink-0 items-center justify-center [&_svg]:size-4\"\n >\n {local.media}\n </span>\n </Show>\n <div data-slot=\"item-body\" class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n {local.children}\n </div>\n <Show when={local.trailing}>\n <span data-slot=\"item-trailing\" class=\"flex shrink-0 items-center gap-2\">\n {local.trailing}\n </span>\n </Show>\n </div>\n )\n}\n\nexport function ItemTitle(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n return <div data-slot=\"item-title\" class={cn('truncate font-medium', local.class)} {...rest} />\n}\n\nexport function ItemDescription(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <div\n data-slot=\"item-description\"\n class={cn('text-muted-foreground line-clamp-2 text-xs text-pretty', local.class)}\n {...rest}\n />\n )\n}\n\n/**\n * A group of items with an optional heading. It is a real `role=\"list\"` with\n * `role=\"listitem\"` children, so a screen reader reports the count — which is how a\n * user knows how many results there are without counting them.\n */\nexport function ItemGroup(\n props: ComponentProps<'div'> & {\n label?: string\n /** The list's accessible name. */ listLabel?: string\n }\n) {\n const [local, rest] = splitProps(props, ['class', 'label', 'listLabel', 'children'])\n\n return (\n <div data-slot=\"item-group\" class={cn('flex flex-col gap-2', local.class)} {...rest}>\n <Show when={local.label}>\n <div class=\"text-muted-foreground text-2xs font-medium tracking-wide uppercase\">\n {local.label}\n </div>\n </Show>\n <div role=\"list\" aria-label={local.listLabel ?? local.label} class=\"flex flex-col gap-2\">\n {local.children}\n </div>\n </div>\n )\n}\n\n/** An item inside an `ItemGroup`, which is what makes it a list item. */\nexport function ItemGroupEntry(props: ItemProps) {\n return <Item role=\"listitem\" {...props} />\n}\n\n/** A centred message for a group with nothing in it. */\nexport function ItemEmpty(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <div\n data-slot=\"item-empty\"\n class={cn('text-muted-foreground py-6 text-center text-sm', local.class)}\n {...rest}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAaO,eAAeH,IAAI,qDAAqD;CACnFI,UAAU;EACRC,SAAS;GACPC,SAAS;;GAETC,SAAS;;GAETC,OAAO;EACT;EACAC,MAAM;GACJC,IAAI;GACJC,IAAI;GACJC,IAAI;EACN;CACF;CACAC,iBAAiB;EAAER,SAAS;EAAWI,MAAM;CAAK;AACpD,CAAC;AAYD,SAAgBU,KAAKC,OAAkB;CACrC,MAAM,CAACC,OAAOC,QAAQvB,WAAWqB,OAAO;EACtC;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,cAAA;EAAA,IAAAG,OAAAC,QAAA,GAAAC,QAAAF,KAAAG;EAAAC,OAAAJ,MAAAK,WAAA,EAAA,KAAA,WAAA;GAAA,OAGW1B,GAAGC,aAAa;IAAEE,SAASgB,MAAMhB;IAASI,MAAMY,MAAMZ;GAAK,CAAC,GAAGY,MAAMQ,KAAK;EAAC,EAAA,GAC9EP,IAAI,GAAA,OAAA,IAAA;EAAAQ,OAAAP,MAAAQ,gBAEPjC,MAAI;GAAA,IAACkC,OAAI;IAAA,OAAEX,MAAML;GAAK;GAAA,IAAAiB,WAAA;IAAA,IAAAC,QAAAC,OAAA;IAAAL,OAAAI,aAKlBb,MAAML,KAAK;IAAA,OAAAkB;GAAA;EAAA,CAAA,GAAAT,KAAA;EAAAK,OAAAL,aAIbJ,MAAMY,QAAQ;EAAAH,OAAAP,MAAAQ,gBAEhBjC,MAAI;GAAA,IAACkC,OAAI;IAAA,OAAEX,MAAMH;GAAQ;GAAA,IAAAe,WAAA;IAAA,IAAAG,QAAAC,QAAA;IAAAP,OAAAM,aAErBf,MAAMH,QAAQ;IAAA,OAAAkB;GAAA;EAAA,CAAA,GAAA,IAAA;EAAA,OAAAb;CAAA,EAAA,CAAA;AAKzB;AAEA,SAAgBe,UAAUlB,OAA8B;CACtD,MAAM,CAACC,OAAOC,QAAQvB,WAAWqB,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAAmB,QAAAC,QAAA;EAAAb,OAAAY,OAAAX,WAAA,EAAA,KAAA,WAAA;GAAA,OAA0C1B,GAAG,wBAAwBmB,MAAMQ,KAAK;EAAC,EAAA,GAAMP,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAiB;CAAA,EAAA,CAAA;AAC7F;AAEA,SAAgBE,gBAAgBrB,OAA8B;CAC5D,MAAM,CAACC,OAAOC,QAAQvB,WAAWqB,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAAsB,QAAAC,QAAA;EAAAhB,OAAAe,OAAAd,WAAA,EAAA,KAAA,WAAA;GAAA,OAGW1B,GAAG,0DAA0DmB,MAAMQ,KAAK;EAAC,EAAA,GAC5EP,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAoB;CAAA,EAAA,CAAA;AAGd;;;;;;AAOA,SAAgBE,UACdxB,OAIA;CACA,MAAM,CAACC,OAAOC,QAAQvB,WAAWqB,OAAO;EAAC;EAAS;EAAS;EAAa;CAAU,CAAC;CAEnF,cAAA;EAAA,IAAA2B,QAAAC,QAAA,GAAAC,QAAAF,MAAArB;EAAAC,OAAAoB,OAAAnB,WAAA,EAAA,KAAA,WAAA;GAAA,OACqC1B,GAAG,uBAAuBmB,MAAMQ,KAAK;EAAC,EAAA,GAAMP,IAAI,GAAA,OAAA,IAAA;EAAAQ,OAAAiB,OAAAhB,gBAChFjC,MAAI;GAAA,IAACkC,OAAI;IAAA,OAAEX,MAAMwB;GAAK;GAAA,IAAAZ,WAAA;IAAA,IAAAiB,QAAAC,QAAA;IAAArB,OAAAoB,aAElB7B,MAAMwB,KAAK;IAAA,OAAAK;GAAA;EAAA,CAAA,GAAAD,KAAA;EAAAnB,OAAAmB,aAIb5B,MAAMY,QAAQ;EAAAmB,aAAAC,aAAAJ,OAAA,cADY5B,MAAMyB,aAAazB,MAAMwB,KAAK,CAAA;EAAA,OAAAE;CAAA,EAAA,CAAA;AAKjE;;AAGA,SAAgBO,eAAelC,OAAkB;CAC/C,OAAAW,gBAAQZ,MAAIS,WAAA,EAAC2B,MAAI,WAAA,GAAgBnC,KAAK,CAAA;AACxC;;AAGA,SAAgBoC,UAAUpC,OAA8B;CACtD,MAAM,CAACC,OAAOC,QAAQvB,WAAWqB,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAAqC,QAAAC,QAAA;EAAA/B,OAAA8B,OAAA7B,WAAA,EAAA,KAAA,WAAA;GAAA,OAGW1B,GAAG,kDAAkDmB,MAAMQ,KAAK;EAAC,EAAA,GACpEP,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAmC;CAAA,EAAA,CAAA;AAGd"}
@@ -0,0 +1,2 @@
1
+ export { Kbd, KbdGroup } from './kbd';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/kbd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA"}
@@ -0,0 +1,14 @@
1
+ import type { ComponentProps } from 'solid-js';
2
+ /**
3
+ * Kbd.
4
+ *
5
+ * A keyboard key, in the order the user presses them. The element is a real
6
+ * `<kbd>` so the semantics survive copy-paste, and the mono face is what makes
7
+ * a shortcut visually distinct from the sentence around it.
8
+ *
9
+ * `KbdGroup` exists because a shortcut is a sequence: typing `⌘` then `K`
10
+ * needs a gap between them that is a layout concern, not punctuation.
11
+ */
12
+ export declare function Kbd(props: ComponentProps<'kbd'>): import("solid-js").JSX.Element;
13
+ export declare function KbdGroup(props: ComponentProps<'span'>): import("solid-js").JSX.Element;
14
+ //# sourceMappingURL=kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/kbd/kbd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9C;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,kCAe/C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,kCAUrD"}
@@ -0,0 +1,40 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { mergeProps, spread, template } from "solid-js/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/ui/kbd/kbd.tsx
5
+ var _tmpl$ = /*#__PURE__*/ template(`<kbd data-slot=kbd>`);
6
+ var _tmpl$2 = /*#__PURE__*/ template(`<span data-slot=kbd-group>`);
7
+ /**
8
+ * Kbd.
9
+ *
10
+ * A keyboard key, in the order the user presses them. The element is a real
11
+ * `<kbd>` so the semantics survive copy-paste, and the mono face is what makes
12
+ * a shortcut visually distinct from the sentence around it.
13
+ *
14
+ * `KbdGroup` exists because a shortcut is a sequence: typing `⌘` then `K`
15
+ * needs a gap between them that is a layout concern, not punctuation.
16
+ */
17
+ function Kbd(props) {
18
+ const [local, rest] = splitProps(props, ["class"]);
19
+ return (() => {
20
+ var _el$ = _tmpl$();
21
+ spread(_el$, mergeProps({ get ["class"]() {
22
+ return cn("bg-muted text-muted-foreground pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm border border-border px-1 font-mono text-2xs font-medium select-none", "in-data-[slot=br-tooltip-content]:bg-background/20 in-data-[slot=br-tooltip-content]:text-scrim-foreground in-data-[slot=br-tooltip-content]:border-transparent", local.class);
23
+ } }, rest), false, false);
24
+ return _el$;
25
+ })();
26
+ }
27
+ function KbdGroup(props) {
28
+ const [local, rest] = splitProps(props, ["class"]);
29
+ return (() => {
30
+ var _el$2 = _tmpl$2();
31
+ spread(_el$2, mergeProps({ get ["class"]() {
32
+ return cn("inline-flex items-center gap-1", local.class);
33
+ } }, rest), false, false);
34
+ return _el$2;
35
+ })();
36
+ }
37
+ //#endregion
38
+ export { Kbd, KbdGroup };
39
+
40
+ //# sourceMappingURL=kbd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.js","names":["ComponentProps","splitProps","cn","Kbd","props","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","class","KbdGroup","_el$2","_tmpl$2","_$mergeProps"],"sources":["../../../../src/components/ui/kbd/kbd.tsx"],"sourcesContent":["import type { ComponentProps } from 'solid-js'\nimport { splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Kbd.\n *\n * A keyboard key, in the order the user presses them. The element is a real\n * `<kbd>` so the semantics survive copy-paste, and the mono face is what makes\n * a shortcut visually distinct from the sentence around it.\n *\n * `KbdGroup` exists because a shortcut is a sequence: typing `⌘` then `K`\n * needs a gap between them that is a layout concern, not punctuation.\n */\nexport function Kbd(props: ComponentProps<'kbd'>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <kbd\n data-slot=\"kbd\"\n class={cn(\n 'bg-muted text-muted-foreground pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-sm border border-border px-1 font-mono text-2xs font-medium select-none',\n /* Inside a hover/selected row the key needs to recede with the row. */\n 'in-data-[slot=br-tooltip-content]:bg-background/20 in-data-[slot=br-tooltip-content]:text-scrim-foreground in-data-[slot=br-tooltip-content]:border-transparent',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function KbdGroup(props: ComponentProps<'span'>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <span\n data-slot=\"kbd-group\"\n class={cn('inline-flex items-center gap-1', local.class)}\n {...rest}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAcA,SAAgBG,IAAIC,OAA8B;CAChD,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,OAAO,CAAC;CAEjD,cAAA;EAAA,IAAAG,OAAAC,OAAA;EAAAC,OAAAF,MAAAG,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWR,GACL,gMAEA,mKACAG,MAAMM,KACR;EAAC,EAAA,GACGL,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAC;CAAA,EAAA,CAAA;AAGd;AAEA,SAAgBK,SAASR,OAA+B;CACtD,MAAM,CAACC,OAAOC,QAAQL,WAAWG,OAAO,CAAC,OAAO,CAAC;CAEjD,cAAA;EAAA,IAAAS,QAAAC,QAAA;EAAAL,OAAAI,OAAAH,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWR,GAAG,kCAAkCG,MAAMM,KAAK;EAAC,EAAA,GACpDL,IAAI,GAAA,OAAA,KAAA;EAAA,OAAAO;CAAA,EAAA,CAAA;AAGd"}
@@ -0,0 +1,2 @@
1
+ export { Label } from './label';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/label/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { ComponentProps } from 'solid-js';
2
+ /**
3
+ * Label.
4
+ *
5
+ * A plain `<label>` rather than a Kobalte control. Kobalte has no standalone
6
+ * label primitive — its labels are parts of `TextField`, `Checkbox` and
7
+ * friends, and those parts carry the association wiring for *their* control.
8
+ * A free-standing label has to be the real element so the browser's native
9
+ * `for` → control association, click-to-focus, and `aria-labelledby` all keep
10
+ * working.
11
+ *
12
+ * Use the compound controls' own labels (`Switch.Label`, `Checkbox.Label`) when
13
+ * the label belongs to one of them; use this one for an `Input` or `Textarea`,
14
+ * which are plain elements with no wrapper.
15
+ */
16
+ export declare function Label(props: ComponentProps<'label'>): import("solid-js").JSX.Element;
17
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/label/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,kCAiBnD"}