@adea-ai/ui 0.60.4 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (862) hide show
  1. package/README.md +108 -34
  2. package/dist/components/composites/account-menu/account-menu.d.ts +48 -0
  3. package/dist/components/composites/account-menu/account-menu.d.ts.map +1 -0
  4. package/dist/components/composites/account-menu/account-menu.js +119 -0
  5. package/dist/components/composites/account-menu/account-menu.js.map +1 -0
  6. package/dist/components/composites/account-menu/index.d.ts +2 -0
  7. package/dist/components/composites/account-menu/index.d.ts.map +1 -0
  8. package/dist/components/composites/list-row/index.d.ts +2 -0
  9. package/dist/components/composites/list-row/index.d.ts.map +1 -0
  10. package/dist/components/composites/list-row/list-row.d.ts +44 -0
  11. package/dist/components/composites/list-row/list-row.d.ts.map +1 -0
  12. package/dist/components/composites/list-row/list-row.js +124 -0
  13. package/dist/components/composites/list-row/list-row.js.map +1 -0
  14. package/dist/components/composites/settings/index.d.ts +2 -0
  15. package/dist/components/composites/settings/index.d.ts.map +1 -0
  16. package/dist/components/composites/settings/settings.d.ts +49 -0
  17. package/dist/components/composites/settings/settings.d.ts.map +1 -0
  18. package/dist/components/composites/settings/settings.js +148 -0
  19. package/dist/components/composites/settings/settings.js.map +1 -0
  20. package/dist/components/composites/stat/index.d.ts +2 -0
  21. package/dist/components/composites/stat/index.d.ts.map +1 -0
  22. package/dist/components/composites/stat/stat.d.ts +48 -0
  23. package/dist/components/composites/stat/stat.d.ts.map +1 -0
  24. package/dist/components/composites/stat/stat.js +148 -0
  25. package/dist/components/composites/stat/stat.js.map +1 -0
  26. package/dist/components/composites/update-dialog/index.d.ts +2 -0
  27. package/dist/components/composites/update-dialog/index.d.ts.map +1 -0
  28. package/dist/components/composites/update-dialog/update-dialog.d.ts +108 -0
  29. package/dist/components/composites/update-dialog/update-dialog.d.ts.map +1 -0
  30. package/dist/components/composites/update-dialog/update-dialog.js +452 -0
  31. package/dist/components/composites/update-dialog/update-dialog.js.map +1 -0
  32. package/dist/components/composites/workspace-mark/index.d.ts +2 -0
  33. package/dist/components/composites/workspace-mark/index.d.ts.map +1 -0
  34. package/dist/components/composites/workspace-mark/workspace-mark.d.ts +24 -0
  35. package/dist/components/composites/workspace-mark/workspace-mark.d.ts.map +1 -0
  36. package/dist/components/composites/workspace-mark/workspace-mark.js +76 -0
  37. package/dist/components/composites/workspace-mark/workspace-mark.js.map +1 -0
  38. package/dist/components/conversation/conversation-avatar.d.ts +21 -0
  39. package/dist/components/conversation/conversation-avatar.d.ts.map +1 -0
  40. package/dist/components/conversation/conversation-avatar.js +52 -0
  41. package/dist/components/conversation/conversation-avatar.js.map +1 -0
  42. package/dist/components/conversation/conversation-surface.d.ts +27 -0
  43. package/dist/components/conversation/conversation-surface.d.ts.map +1 -0
  44. package/dist/components/conversation/conversation-surface.js +118 -0
  45. package/dist/components/conversation/conversation-surface.js.map +1 -0
  46. package/dist/components/conversation/index.d.ts +6 -0
  47. package/dist/components/conversation/index.d.ts.map +1 -0
  48. package/dist/components/conversation/message-composer.d.ts +70 -0
  49. package/dist/components/conversation/message-composer.d.ts.map +1 -0
  50. package/dist/components/conversation/message-composer.js +235 -0
  51. package/dist/components/conversation/message-composer.js.map +1 -0
  52. package/dist/components/conversation/message-row.d.ts +101 -0
  53. package/dist/components/conversation/message-row.d.ts.map +1 -0
  54. package/dist/components/conversation/message-row.js +389 -0
  55. package/dist/components/conversation/message-row.js.map +1 -0
  56. package/dist/components/conversation/thread-panel.d.ts +45 -0
  57. package/dist/components/conversation/thread-panel.d.ts.map +1 -0
  58. package/dist/components/conversation/thread-panel.js +123 -0
  59. package/dist/components/conversation/thread-panel.js.map +1 -0
  60. package/dist/components/layout/app-shell/app-shell.d.ts +45 -0
  61. package/dist/components/layout/app-shell/app-shell.d.ts.map +1 -0
  62. package/dist/components/layout/app-shell/app-shell.js +89 -0
  63. package/dist/components/layout/app-shell/app-shell.js.map +1 -0
  64. package/dist/components/layout/app-shell/index.d.ts +2 -0
  65. package/dist/components/layout/app-shell/index.d.ts.map +1 -0
  66. package/dist/components/layout/page/index.d.ts +2 -0
  67. package/dist/components/layout/page/index.d.ts.map +1 -0
  68. package/dist/components/layout/page/page.d.ts +31 -0
  69. package/dist/components/layout/page/page.d.ts.map +1 -0
  70. package/dist/components/layout/page/page.js +143 -0
  71. package/dist/components/layout/page/page.js.map +1 -0
  72. package/dist/components/layout/panel/index.d.ts +2 -0
  73. package/dist/components/layout/panel/index.d.ts.map +1 -0
  74. package/dist/components/layout/panel/panel.d.ts +44 -0
  75. package/dist/components/layout/panel/panel.d.ts.map +1 -0
  76. package/dist/components/layout/panel/panel.js +151 -0
  77. package/dist/components/layout/panel/panel.js.map +1 -0
  78. package/dist/components/layout/side-rail/index.d.ts +3 -0
  79. package/dist/components/layout/side-rail/index.d.ts.map +1 -0
  80. package/dist/components/layout/side-rail/side-rail-context.d.ts +23 -0
  81. package/dist/components/layout/side-rail/side-rail-context.d.ts.map +1 -0
  82. package/dist/components/layout/side-rail/side-rail-context.js +18 -0
  83. package/dist/components/layout/side-rail/side-rail-context.js.map +1 -0
  84. package/dist/components/layout/side-rail/side-rail.d.ts +101 -0
  85. package/dist/components/layout/side-rail/side-rail.d.ts.map +1 -0
  86. package/dist/components/layout/side-rail/side-rail.js +336 -0
  87. package/dist/components/layout/side-rail/side-rail.js.map +1 -0
  88. package/dist/components/layout/sidebar-nav/index.d.ts +2 -0
  89. package/dist/components/layout/sidebar-nav/index.d.ts.map +1 -0
  90. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts +62 -0
  91. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts.map +1 -0
  92. package/dist/components/layout/sidebar-nav/sidebar-nav.js +231 -0
  93. package/dist/components/layout/sidebar-nav/sidebar-nav.js.map +1 -0
  94. package/dist/components/layout/status-bar/index.d.ts +2 -0
  95. package/dist/components/layout/status-bar/index.d.ts.map +1 -0
  96. package/dist/components/layout/status-bar/status-bar.d.ts +23 -0
  97. package/dist/components/layout/status-bar/status-bar.d.ts.map +1 -0
  98. package/dist/components/layout/status-bar/status-bar.js +68 -0
  99. package/dist/components/layout/status-bar/status-bar.js.map +1 -0
  100. package/dist/components/layout/top-bar/index.d.ts +2 -0
  101. package/dist/components/layout/top-bar/index.d.ts.map +1 -0
  102. package/dist/components/layout/top-bar/top-bar.d.ts +59 -0
  103. package/dist/components/layout/top-bar/top-bar.d.ts.map +1 -0
  104. package/dist/components/layout/top-bar/top-bar.js +118 -0
  105. package/dist/components/layout/top-bar/top-bar.js.map +1 -0
  106. package/dist/components/motion/index.d.ts +3 -0
  107. package/dist/components/motion/index.d.ts.map +1 -0
  108. package/dist/components/motion/index.js +3 -0
  109. package/dist/components/motion/presence.d.ts +29 -0
  110. package/dist/components/motion/presence.d.ts.map +1 -0
  111. package/dist/components/motion/presence.js +10 -0
  112. package/dist/components/motion/presence.js.map +1 -0
  113. package/dist/components/theme/appearance-panel.d.ts +25 -0
  114. package/dist/components/theme/appearance-panel.d.ts.map +1 -0
  115. package/dist/components/theme/appearance-panel.js +162 -0
  116. package/dist/components/theme/appearance-panel.js.map +1 -0
  117. package/dist/components/theme/index.d.ts +5 -0
  118. package/dist/components/theme/index.d.ts.map +1 -0
  119. package/dist/components/theme/theme-picker.d.ts +54 -0
  120. package/dist/components/theme/theme-picker.d.ts.map +1 -0
  121. package/dist/components/theme/theme-picker.js +156 -0
  122. package/dist/components/theme/theme-picker.js.map +1 -0
  123. package/dist/components/theme/theme-provider.d.ts +130 -0
  124. package/dist/components/theme/theme-provider.d.ts.map +1 -0
  125. package/dist/components/theme/theme-provider.js +164 -0
  126. package/dist/components/theme/theme-provider.js.map +1 -0
  127. package/dist/components/theme/theme-toggle.d.ts +19 -0
  128. package/dist/components/theme/theme-toggle.d.ts.map +1 -0
  129. package/dist/components/theme/theme-toggle.js +69 -0
  130. package/dist/components/theme/theme-toggle.js.map +1 -0
  131. package/dist/components/ui/accordion/accordion.d.ts +18 -0
  132. package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
  133. package/dist/components/ui/accordion/accordion.js +60 -0
  134. package/dist/components/ui/accordion/accordion.js.map +1 -0
  135. package/dist/components/ui/accordion/index.d.ts +2 -0
  136. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  137. package/dist/components/ui/alert/alert.d.ts +26 -0
  138. package/dist/components/ui/alert/alert.d.ts.map +1 -0
  139. package/dist/components/ui/alert/alert.js +89 -0
  140. package/dist/components/ui/alert/alert.js.map +1 -0
  141. package/dist/components/ui/alert/index.d.ts +2 -0
  142. package/dist/components/ui/alert/index.d.ts.map +1 -0
  143. package/dist/components/ui/alert-dialog/alert-dialog.d.ts +29 -0
  144. package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
  145. package/dist/components/ui/alert-dialog/alert-dialog.js +155 -0
  146. package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -0
  147. package/dist/components/ui/alert-dialog/index.d.ts +2 -0
  148. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  149. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts +22 -0
  150. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  151. package/dist/components/ui/aspect-ratio/aspect-ratio.js +29 -0
  152. package/dist/components/ui/aspect-ratio/aspect-ratio.js.map +1 -0
  153. package/dist/components/ui/aspect-ratio/index.d.ts +2 -0
  154. package/dist/components/ui/aspect-ratio/index.d.ts.map +1 -0
  155. package/dist/components/ui/avatar/avatar.d.ts +41 -0
  156. package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
  157. package/dist/components/ui/avatar/avatar.js +106 -0
  158. package/dist/components/ui/avatar/avatar.js.map +1 -0
  159. package/dist/components/ui/avatar/index.d.ts +2 -0
  160. package/dist/components/ui/avatar/index.d.ts.map +1 -0
  161. package/dist/components/ui/badge/badge.d.ts +22 -0
  162. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  163. package/dist/components/ui/badge/badge.js +58 -0
  164. package/dist/components/ui/badge/badge.js.map +1 -0
  165. package/dist/components/ui/badge/index.d.ts +2 -0
  166. package/dist/components/ui/badge/index.d.ts.map +1 -0
  167. package/dist/components/ui/board/board.d.ts +78 -0
  168. package/dist/components/ui/board/board.d.ts.map +1 -0
  169. package/dist/components/ui/board/board.js +200 -0
  170. package/dist/components/ui/board/board.js.map +1 -0
  171. package/dist/components/ui/board/index.d.ts +2 -0
  172. package/dist/components/ui/board/index.d.ts.map +1 -0
  173. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +24 -0
  174. package/dist/components/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
  175. package/dist/components/ui/breadcrumb/breadcrumb.js +109 -0
  176. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -0
  177. package/dist/components/ui/breadcrumb/index.d.ts +2 -0
  178. package/dist/components/ui/breadcrumb/index.d.ts.map +1 -0
  179. package/dist/components/ui/button/button.d.ts +30 -0
  180. package/dist/components/ui/button/button.d.ts.map +1 -0
  181. package/dist/components/ui/button/button.js +80 -0
  182. package/dist/components/ui/button/button.js.map +1 -0
  183. package/dist/components/ui/button/index.d.ts +2 -0
  184. package/dist/components/ui/button/index.d.ts.map +1 -0
  185. package/dist/components/ui/button-group/button-group.d.ts +39 -0
  186. package/dist/components/ui/button-group/button-group.d.ts.map +1 -0
  187. package/dist/components/ui/button-group/button-group.js +63 -0
  188. package/dist/components/ui/button-group/button-group.js.map +1 -0
  189. package/dist/components/ui/button-group/index.d.ts +2 -0
  190. package/dist/components/ui/button-group/index.d.ts.map +1 -0
  191. package/dist/components/ui/calendar/calendar.d.ts +93 -0
  192. package/dist/components/ui/calendar/calendar.d.ts.map +1 -0
  193. package/dist/components/ui/calendar/calendar.js +243 -0
  194. package/dist/components/ui/calendar/calendar.js.map +1 -0
  195. package/dist/components/ui/calendar/index.d.ts +2 -0
  196. package/dist/components/ui/calendar/index.d.ts.map +1 -0
  197. package/dist/components/ui/card/card.d.ts +23 -0
  198. package/dist/components/ui/card/card.d.ts.map +1 -0
  199. package/dist/components/ui/card/card.js +98 -0
  200. package/dist/components/ui/card/card.js.map +1 -0
  201. package/dist/components/ui/card/index.d.ts +2 -0
  202. package/dist/components/ui/card/index.d.ts.map +1 -0
  203. package/dist/components/ui/carousel/carousel.d.ts +66 -0
  204. package/dist/components/ui/carousel/carousel.d.ts.map +1 -0
  205. package/dist/components/ui/carousel/carousel.js +178 -0
  206. package/dist/components/ui/carousel/carousel.js.map +1 -0
  207. package/dist/components/ui/carousel/index.d.ts +2 -0
  208. package/dist/components/ui/carousel/index.d.ts.map +1 -0
  209. package/dist/components/ui/chart/chart.d.ts +154 -0
  210. package/dist/components/ui/chart/chart.d.ts.map +1 -0
  211. package/dist/components/ui/chart/chart.js +373 -0
  212. package/dist/components/ui/chart/chart.js.map +1 -0
  213. package/dist/components/ui/chart/index.d.ts +2 -0
  214. package/dist/components/ui/chart/index.d.ts.map +1 -0
  215. package/dist/components/ui/checkbox/checkbox.d.ts +33 -0
  216. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  217. package/dist/components/ui/checkbox/checkbox.js +76 -0
  218. package/dist/components/ui/checkbox/checkbox.js.map +1 -0
  219. package/dist/components/ui/checkbox/index.d.ts +2 -0
  220. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  221. package/dist/components/ui/code-block/code-block.d.ts +75 -0
  222. package/dist/components/ui/code-block/code-block.d.ts.map +1 -0
  223. package/dist/components/ui/code-block/code-block.js +186 -0
  224. package/dist/components/ui/code-block/code-block.js.map +1 -0
  225. package/dist/components/ui/code-block/index.d.ts +2 -0
  226. package/dist/components/ui/code-block/index.d.ts.map +1 -0
  227. package/dist/components/ui/collapsible/collapsible.d.ts +17 -0
  228. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
  229. package/dist/components/ui/collapsible/collapsible.js +38 -0
  230. package/dist/components/ui/collapsible/collapsible.js.map +1 -0
  231. package/dist/components/ui/collapsible/index.d.ts +2 -0
  232. package/dist/components/ui/collapsible/index.d.ts.map +1 -0
  233. package/dist/components/ui/combobox/combobox.d.ts +28 -0
  234. package/dist/components/ui/combobox/combobox.d.ts.map +1 -0
  235. package/dist/components/ui/combobox/combobox.js +102 -0
  236. package/dist/components/ui/combobox/combobox.js.map +1 -0
  237. package/dist/components/ui/combobox/index.d.ts +2 -0
  238. package/dist/components/ui/combobox/index.d.ts.map +1 -0
  239. package/dist/components/ui/command/command.d.ts +53 -0
  240. package/dist/components/ui/command/command.d.ts.map +1 -0
  241. package/dist/components/ui/command/command.js +137 -0
  242. package/dist/components/ui/command/command.js.map +1 -0
  243. package/dist/components/ui/command/index.d.ts +2 -0
  244. package/dist/components/ui/command/index.d.ts.map +1 -0
  245. package/dist/components/ui/context-menu/context-menu.d.ts +32 -0
  246. package/dist/components/ui/context-menu/context-menu.d.ts.map +1 -0
  247. package/dist/components/ui/context-menu/context-menu.js +119 -0
  248. package/dist/components/ui/context-menu/context-menu.js.map +1 -0
  249. package/dist/components/ui/context-menu/index.d.ts +2 -0
  250. package/dist/components/ui/context-menu/index.d.ts.map +1 -0
  251. package/dist/components/ui/detail-panel/detail-panel.d.ts +61 -0
  252. package/dist/components/ui/detail-panel/detail-panel.d.ts.map +1 -0
  253. package/dist/components/ui/detail-panel/detail-panel.js +132 -0
  254. package/dist/components/ui/detail-panel/detail-panel.js.map +1 -0
  255. package/dist/components/ui/detail-panel/index.d.ts +2 -0
  256. package/dist/components/ui/detail-panel/index.d.ts.map +1 -0
  257. package/dist/components/ui/dialog/dialog.d.ts +40 -0
  258. package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
  259. package/dist/components/ui/dialog/dialog.js +125 -0
  260. package/dist/components/ui/dialog/dialog.js.map +1 -0
  261. package/dist/components/ui/dialog/index.d.ts +2 -0
  262. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  263. package/dist/components/ui/diff-block/diff-block.d.ts +95 -0
  264. package/dist/components/ui/diff-block/diff-block.d.ts.map +1 -0
  265. package/dist/components/ui/diff-block/diff-block.js +230 -0
  266. package/dist/components/ui/diff-block/diff-block.js.map +1 -0
  267. package/dist/components/ui/diff-block/diff-block.test.d.ts +2 -0
  268. package/dist/components/ui/diff-block/diff-block.test.d.ts.map +1 -0
  269. package/dist/components/ui/diff-block/index.d.ts +2 -0
  270. package/dist/components/ui/diff-block/index.d.ts.map +1 -0
  271. package/dist/components/ui/drawer/drawer.d.ts +39 -0
  272. package/dist/components/ui/drawer/drawer.d.ts.map +1 -0
  273. package/dist/components/ui/drawer/drawer.js +106 -0
  274. package/dist/components/ui/drawer/drawer.js.map +1 -0
  275. package/dist/components/ui/drawer/index.d.ts +2 -0
  276. package/dist/components/ui/drawer/index.d.ts.map +1 -0
  277. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +48 -0
  278. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  279. package/dist/components/ui/dropdown-menu/dropdown-menu.js +151 -0
  280. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -0
  281. package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
  282. package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
  283. package/dist/components/ui/empty/empty.d.ts +27 -0
  284. package/dist/components/ui/empty/empty.d.ts.map +1 -0
  285. package/dist/components/ui/{empty.js → empty/empty.js} +28 -23
  286. package/dist/components/ui/empty/empty.js.map +1 -0
  287. package/dist/components/ui/empty/index.d.ts +2 -0
  288. package/dist/components/ui/empty/index.d.ts.map +1 -0
  289. package/dist/components/ui/entity-icon/entity-icon.d.ts +59 -0
  290. package/dist/components/ui/entity-icon/entity-icon.d.ts.map +1 -0
  291. package/dist/components/ui/entity-icon/entity-icon.js +145 -0
  292. package/dist/components/ui/entity-icon/entity-icon.js.map +1 -0
  293. package/dist/components/ui/entity-icon/index.d.ts +2 -0
  294. package/dist/components/ui/entity-icon/index.d.ts.map +1 -0
  295. package/dist/components/ui/field/field.d.ts +39 -0
  296. package/dist/components/ui/field/field.d.ts.map +1 -0
  297. package/dist/components/ui/field/field.js +111 -0
  298. package/dist/components/ui/field/field.js.map +1 -0
  299. package/dist/components/ui/field/index.d.ts +2 -0
  300. package/dist/components/ui/field/index.d.ts.map +1 -0
  301. package/dist/components/ui/hover-card/hover-card.d.ts +17 -0
  302. package/dist/components/ui/hover-card/hover-card.d.ts.map +1 -0
  303. package/dist/components/ui/hover-card/hover-card.js +40 -0
  304. package/dist/components/ui/hover-card/hover-card.js.map +1 -0
  305. package/dist/components/ui/hover-card/index.d.ts +2 -0
  306. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  307. package/dist/components/ui/input/index.d.ts +2 -0
  308. package/dist/components/ui/input/index.d.ts.map +1 -0
  309. package/dist/components/ui/input/input.d.ts +15 -0
  310. package/dist/components/ui/input/input.d.ts.map +1 -0
  311. package/dist/components/ui/input/input.js +36 -0
  312. package/dist/components/ui/input/input.js.map +1 -0
  313. package/dist/components/ui/input-group/index.d.ts +2 -0
  314. package/dist/components/ui/input-group/index.d.ts.map +1 -0
  315. package/dist/components/ui/input-group/input-group.d.ts +34 -0
  316. package/dist/components/ui/input-group/input-group.d.ts.map +1 -0
  317. package/dist/components/ui/input-group/input-group.js +93 -0
  318. package/dist/components/ui/input-group/input-group.js.map +1 -0
  319. package/dist/components/ui/input-otp/index.d.ts +2 -0
  320. package/dist/components/ui/input-otp/index.d.ts.map +1 -0
  321. package/dist/components/ui/input-otp/input-otp.d.ts +37 -0
  322. package/dist/components/ui/input-otp/input-otp.d.ts.map +1 -0
  323. package/dist/components/ui/input-otp/input-otp.js +92 -0
  324. package/dist/components/ui/input-otp/input-otp.js.map +1 -0
  325. package/dist/components/ui/item/index.d.ts +2 -0
  326. package/dist/components/ui/item/index.d.ts.map +1 -0
  327. package/dist/components/ui/item/item.d.ts +49 -0
  328. package/dist/components/ui/item/item.d.ts.map +1 -0
  329. package/dist/components/ui/item/item.js +163 -0
  330. package/dist/components/ui/item/item.js.map +1 -0
  331. package/dist/components/ui/kbd/index.d.ts +2 -0
  332. package/dist/components/ui/kbd/index.d.ts.map +1 -0
  333. package/dist/components/ui/kbd/kbd.d.ts +14 -0
  334. package/dist/components/ui/kbd/kbd.d.ts.map +1 -0
  335. package/dist/components/ui/kbd/kbd.js +40 -0
  336. package/dist/components/ui/kbd/kbd.js.map +1 -0
  337. package/dist/components/ui/label/index.d.ts +2 -0
  338. package/dist/components/ui/label/index.d.ts.map +1 -0
  339. package/dist/components/ui/label/label.d.ts +17 -0
  340. package/dist/components/ui/label/label.d.ts.map +1 -0
  341. package/dist/components/ui/label/label.js +33 -0
  342. package/dist/components/ui/label/label.js.map +1 -0
  343. package/dist/components/ui/menubar/index.d.ts +2 -0
  344. package/dist/components/ui/menubar/index.d.ts.map +1 -0
  345. package/dist/components/ui/menubar/menubar.d.ts +38 -0
  346. package/dist/components/ui/menubar/menubar.d.ts.map +1 -0
  347. package/dist/components/ui/menubar/menubar.js +138 -0
  348. package/dist/components/ui/menubar/menubar.js.map +1 -0
  349. package/dist/components/ui/modal-dialog/index.d.ts +2 -0
  350. package/dist/components/ui/modal-dialog/index.d.ts.map +1 -0
  351. package/dist/components/ui/modal-dialog/modal-dialog.d.ts +35 -0
  352. package/dist/components/ui/modal-dialog/modal-dialog.d.ts.map +1 -0
  353. package/dist/components/ui/modal-dialog/modal-dialog.js +78 -0
  354. package/dist/components/ui/modal-dialog/modal-dialog.js.map +1 -0
  355. package/dist/components/ui/navigation-menu/index.d.ts +2 -0
  356. package/dist/components/ui/navigation-menu/index.d.ts.map +1 -0
  357. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +77 -0
  358. package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -0
  359. package/dist/components/ui/navigation-menu/navigation-menu.js +116 -0
  360. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -0
  361. package/dist/components/ui/pagination/index.d.ts +2 -0
  362. package/dist/components/ui/pagination/index.d.ts.map +1 -0
  363. package/dist/components/ui/pagination/pagination.d.ts +33 -0
  364. package/dist/components/ui/pagination/pagination.d.ts.map +1 -0
  365. package/dist/components/ui/pagination/pagination.js +92 -0
  366. package/dist/components/ui/pagination/pagination.js.map +1 -0
  367. package/dist/components/ui/popover/index.d.ts +2 -0
  368. package/dist/components/ui/popover/index.d.ts.map +1 -0
  369. package/dist/components/ui/popover/popover.d.ts +26 -0
  370. package/dist/components/ui/popover/popover.d.ts.map +1 -0
  371. package/dist/components/ui/popover/popover.js +66 -0
  372. package/dist/components/ui/popover/popover.js.map +1 -0
  373. package/dist/components/ui/progress/index.d.ts +2 -0
  374. package/dist/components/ui/progress/index.d.ts.map +1 -0
  375. package/dist/components/ui/progress/progress.d.ts +29 -0
  376. package/dist/components/ui/progress/progress.d.ts.map +1 -0
  377. package/dist/components/ui/progress/progress.js +53 -0
  378. package/dist/components/ui/progress/progress.js.map +1 -0
  379. package/dist/components/ui/radio-group/index.d.ts +2 -0
  380. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  381. package/dist/components/ui/radio-group/radio-group.d.ts +26 -0
  382. package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
  383. package/dist/components/ui/radio-group/radio-group.js +77 -0
  384. package/dist/components/ui/radio-group/radio-group.js.map +1 -0
  385. package/dist/components/ui/resizable/index.d.ts +2 -0
  386. package/dist/components/ui/resizable/index.d.ts.map +1 -0
  387. package/dist/components/ui/resizable/resizable.d.ts +33 -0
  388. package/dist/components/ui/resizable/resizable.d.ts.map +1 -0
  389. package/dist/components/ui/resizable/resizable.js +57 -0
  390. package/dist/components/ui/resizable/resizable.js.map +1 -0
  391. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  392. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  393. package/dist/components/ui/scroll-area/scroll-area.d.ts +26 -0
  394. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
  395. package/dist/components/ui/scroll-area/scroll-area.js +36 -0
  396. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
  397. package/dist/components/ui/select/index.d.ts +2 -0
  398. package/dist/components/ui/select/index.d.ts.map +1 -0
  399. package/dist/components/ui/select/select.d.ts +63 -0
  400. package/dist/components/ui/select/select.d.ts.map +1 -0
  401. package/dist/components/ui/select/select.js +142 -0
  402. package/dist/components/ui/select/select.js.map +1 -0
  403. package/dist/components/ui/separator/index.d.ts +2 -0
  404. package/dist/components/ui/separator/index.d.ts.map +1 -0
  405. package/dist/components/ui/separator/separator.d.ts +17 -0
  406. package/dist/components/ui/separator/separator.d.ts.map +1 -0
  407. package/dist/components/ui/separator/separator.js +24 -0
  408. package/dist/components/ui/separator/separator.js.map +1 -0
  409. package/dist/components/ui/sheet/index.d.ts +2 -0
  410. package/dist/components/ui/sheet/index.d.ts.map +1 -0
  411. package/dist/components/ui/sheet/sheet.d.ts +32 -0
  412. package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
  413. package/dist/components/ui/sheet/sheet.js +118 -0
  414. package/dist/components/ui/sheet/sheet.js.map +1 -0
  415. package/dist/components/ui/skeleton/index.d.ts +2 -0
  416. package/dist/components/ui/skeleton/index.d.ts.map +1 -0
  417. package/dist/components/ui/skeleton/skeleton.d.ts +15 -0
  418. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
  419. package/dist/components/ui/skeleton/skeleton.js +31 -0
  420. package/dist/components/ui/skeleton/skeleton.js.map +1 -0
  421. package/dist/components/ui/slider/index.d.ts +2 -0
  422. package/dist/components/ui/slider/index.d.ts.map +1 -0
  423. package/dist/components/ui/slider/slider.d.ts +22 -0
  424. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  425. package/dist/components/ui/slider/slider.js +59 -0
  426. package/dist/components/ui/slider/slider.js.map +1 -0
  427. package/dist/components/ui/spinner/index.d.ts +2 -0
  428. package/dist/components/ui/spinner/index.d.ts.map +1 -0
  429. package/dist/components/ui/spinner/spinner.d.ts +25 -0
  430. package/dist/components/ui/spinner/spinner.d.ts.map +1 -0
  431. package/dist/components/ui/spinner/spinner.js +57 -0
  432. package/dist/components/ui/spinner/spinner.js.map +1 -0
  433. package/dist/components/ui/status-chip/index.d.ts +2 -0
  434. package/dist/components/ui/status-chip/index.d.ts.map +1 -0
  435. package/dist/components/ui/status-chip/status-chip.d.ts +70 -0
  436. package/dist/components/ui/status-chip/status-chip.d.ts.map +1 -0
  437. package/dist/components/ui/status-chip/status-chip.js +140 -0
  438. package/dist/components/ui/status-chip/status-chip.js.map +1 -0
  439. package/dist/components/ui/switch/index.d.ts +2 -0
  440. package/dist/components/ui/switch/index.d.ts.map +1 -0
  441. package/dist/components/ui/switch/switch.d.ts +36 -0
  442. package/dist/components/ui/switch/switch.d.ts.map +1 -0
  443. package/dist/components/ui/switch/switch.js +74 -0
  444. package/dist/components/ui/switch/switch.js.map +1 -0
  445. package/dist/components/ui/table/index.d.ts +2 -0
  446. package/dist/components/ui/table/index.d.ts.map +1 -0
  447. package/dist/components/ui/table/table.d.ts +29 -0
  448. package/dist/components/ui/table/table.d.ts.map +1 -0
  449. package/dist/components/ui/table/table.js +129 -0
  450. package/dist/components/ui/table/table.js.map +1 -0
  451. package/dist/components/ui/tabs/index.d.ts +2 -0
  452. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  453. package/dist/components/ui/tabs/tabs.d.ts +23 -0
  454. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  455. package/dist/components/ui/tabs/tabs.js +43 -0
  456. package/dist/components/ui/tabs/tabs.js.map +1 -0
  457. package/dist/components/ui/textarea/index.d.ts +2 -0
  458. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  459. package/dist/components/ui/textarea/textarea.d.ts +14 -0
  460. package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
  461. package/dist/components/ui/textarea/textarea.js +30 -0
  462. package/dist/components/ui/textarea/textarea.js.map +1 -0
  463. package/dist/components/ui/toast/index.d.ts +2 -0
  464. package/dist/components/ui/toast/index.d.ts.map +1 -0
  465. package/dist/components/ui/toast/toast.d.ts +68 -0
  466. package/dist/components/ui/toast/toast.d.ts.map +1 -0
  467. package/dist/components/ui/toast/toast.js +186 -0
  468. package/dist/components/ui/toast/toast.js.map +1 -0
  469. package/dist/components/ui/toggle/index.d.ts +2 -0
  470. package/dist/components/ui/toggle/index.d.ts.map +1 -0
  471. package/dist/components/ui/toggle/toggle.d.ts +22 -0
  472. package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
  473. package/dist/components/ui/toggle/toggle.js +64 -0
  474. package/dist/components/ui/toggle/toggle.js.map +1 -0
  475. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  476. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  477. package/dist/components/ui/toggle-group/toggle-group.d.ts +35 -0
  478. package/dist/components/ui/toggle-group/toggle-group.d.ts.map +1 -0
  479. package/dist/components/ui/toggle-group/toggle-group.js +38 -0
  480. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -0
  481. package/dist/components/ui/tooltip/index.d.ts +2 -0
  482. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  483. package/dist/components/ui/tooltip/tooltip.d.ts +18 -0
  484. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
  485. package/dist/components/ui/tooltip/tooltip.js +67 -0
  486. package/dist/components/ui/tooltip/tooltip.js.map +1 -0
  487. package/dist/index.d.ts +96 -19
  488. package/dist/index.d.ts.map +1 -0
  489. package/dist/index.js +90 -20
  490. package/dist/lib/keyed-rows.d.ts +36 -0
  491. package/dist/lib/keyed-rows.d.ts.map +1 -0
  492. package/dist/lib/keyed-rows.js +53 -0
  493. package/dist/lib/keyed-rows.js.map +1 -0
  494. package/dist/lib/keyed-rows.test.d.ts +2 -0
  495. package/dist/lib/keyed-rows.test.d.ts.map +1 -0
  496. package/dist/lib/overlay.d.ts +44 -0
  497. package/dist/lib/overlay.d.ts.map +1 -0
  498. package/dist/lib/overlay.js +57 -0
  499. package/dist/lib/overlay.js.map +1 -0
  500. package/dist/lib/themes.d.ts +197 -0
  501. package/dist/lib/themes.d.ts.map +1 -0
  502. package/dist/lib/themes.js +303 -0
  503. package/dist/lib/themes.js.map +1 -0
  504. package/dist/lib/tokens.d.ts +103 -0
  505. package/dist/lib/tokens.d.ts.map +1 -0
  506. package/dist/lib/tokens.js +805 -0
  507. package/dist/lib/tokens.js.map +1 -0
  508. package/dist/lib/utils.d.ts +27 -0
  509. package/dist/lib/utils.d.ts.map +1 -0
  510. package/dist/lib/utils.js +61 -3
  511. package/dist/lib/utils.js.map +1 -0
  512. package/dist/lib/variants.d.ts +57 -0
  513. package/dist/lib/variants.d.ts.map +1 -0
  514. package/dist/lib/variants.js +49 -0
  515. package/dist/lib/variants.js.map +1 -0
  516. package/dist/lib/version-notes.d.ts +24 -0
  517. package/dist/lib/version-notes.d.ts.map +1 -0
  518. package/dist/lib/version-notes.js +41 -1
  519. package/dist/lib/version-notes.js.map +1 -0
  520. package/dist/r/accordion.json +23 -0
  521. package/dist/r/account-menu.json +25 -0
  522. package/dist/r/alert-dialog.json +22 -0
  523. package/dist/r/alert.json +22 -0
  524. package/dist/r/app-shell.json +20 -0
  525. package/dist/r/aspect-ratio.json +20 -0
  526. package/dist/r/avatar.json +20 -0
  527. package/dist/r/badge.json +22 -0
  528. package/dist/r/board.json +20 -0
  529. package/dist/r/breadcrumb.json +22 -0
  530. package/dist/r/button-group.json +22 -0
  531. package/dist/r/button.json +22 -0
  532. package/dist/r/calendar.json +25 -0
  533. package/dist/r/card.json +20 -0
  534. package/dist/r/carousel.json +26 -0
  535. package/dist/r/chart.json +23 -0
  536. package/dist/r/checkbox.json +23 -0
  537. package/dist/r/code-block.json +24 -0
  538. package/dist/r/collapsible.json +22 -0
  539. package/dist/r/combobox.json +23 -0
  540. package/dist/r/command.json +23 -0
  541. package/dist/r/context-menu.json +23 -0
  542. package/dist/r/conversation.json +48 -0
  543. package/dist/r/detail-panel.json +24 -0
  544. package/dist/r/dialog.json +23 -0
  545. package/dist/r/diff-block.json +20 -0
  546. package/dist/r/drawer.json +22 -0
  547. package/dist/r/dropdown-menu.json +23 -0
  548. package/dist/r/empty.json +20 -0
  549. package/dist/r/entity-icon.json +20 -0
  550. package/dist/r/field.json +22 -0
  551. package/dist/r/hover-card.json +22 -0
  552. package/dist/r/input-group.json +20 -0
  553. package/dist/r/input-otp.json +22 -0
  554. package/dist/r/input.json +20 -0
  555. package/dist/r/item.json +20 -0
  556. package/dist/r/kbd.json +20 -0
  557. package/dist/r/label.json +20 -0
  558. package/dist/r/list-row.json +22 -0
  559. package/dist/r/menubar.json +23 -0
  560. package/dist/r/modal-dialog.json +22 -0
  561. package/dist/r/navigation-menu.json +23 -0
  562. package/dist/r/page.json +20 -0
  563. package/dist/r/pagination.json +23 -0
  564. package/dist/r/panel.json +20 -0
  565. package/dist/r/popover.json +22 -0
  566. package/dist/r/progress.json +22 -0
  567. package/dist/r/radio-group.json +23 -0
  568. package/dist/r/registry.json +1676 -0
  569. package/dist/r/resizable.json +23 -0
  570. package/dist/r/scroll-area.json +20 -0
  571. package/dist/r/select.json +23 -0
  572. package/dist/r/separator.json +22 -0
  573. package/dist/r/settings.json +20 -0
  574. package/dist/r/sheet.json +25 -0
  575. package/dist/r/side-rail.json +27 -0
  576. package/dist/r/sidebar-nav.json +23 -0
  577. package/dist/r/skeleton.json +20 -0
  578. package/dist/r/slider.json +22 -0
  579. package/dist/r/spinner.json +22 -0
  580. package/dist/r/stat.json +22 -0
  581. package/dist/r/status-bar.json +20 -0
  582. package/dist/r/status-chip.json +22 -0
  583. package/dist/r/switch.json +22 -0
  584. package/dist/r/table.json +20 -0
  585. package/dist/r/tabs.json +22 -0
  586. package/dist/r/textarea.json +20 -0
  587. package/dist/r/theme.json +36 -0
  588. package/dist/r/toast.json +23 -0
  589. package/dist/r/toggle-group.json +24 -0
  590. package/dist/r/toggle.json +22 -0
  591. package/dist/r/tooltip.json +22 -0
  592. package/dist/r/top-bar.json +20 -0
  593. package/dist/r/update-dialog.json +27 -0
  594. package/dist/r/workspace-mark.json +22 -0
  595. package/package.json +75 -21
  596. package/registry.json +1676 -0
  597. package/src/components/composites/account-menu/account-menu.tsx +150 -0
  598. package/src/components/composites/account-menu/index.ts +1 -0
  599. package/src/components/composites/list-row/index.ts +1 -0
  600. package/src/components/composites/list-row/list-row.tsx +116 -0
  601. package/src/components/composites/settings/index.ts +1 -0
  602. package/src/components/composites/settings/settings.tsx +142 -0
  603. package/src/components/composites/stat/index.ts +9 -0
  604. package/src/components/composites/stat/stat.tsx +155 -0
  605. package/src/components/composites/update-dialog/index.ts +7 -0
  606. package/src/components/composites/update-dialog/update-dialog.tsx +529 -0
  607. package/src/components/composites/workspace-mark/index.ts +1 -0
  608. package/src/components/composites/workspace-mark/workspace-mark.tsx +72 -0
  609. package/src/components/conversation/conversation-avatar.tsx +60 -0
  610. package/src/components/conversation/conversation-surface.tsx +107 -0
  611. package/src/components/conversation/index.ts +25 -0
  612. package/src/components/conversation/message-composer.tsx +239 -0
  613. package/src/components/conversation/message-row.tsx +387 -0
  614. package/src/components/conversation/thread-panel.tsx +141 -0
  615. package/src/components/layout/app-shell/app-shell.tsx +92 -0
  616. package/src/components/layout/app-shell/index.ts +1 -0
  617. package/src/components/layout/page/index.ts +9 -0
  618. package/src/components/layout/page/page.tsx +122 -0
  619. package/src/components/layout/panel/index.ts +12 -0
  620. package/src/components/layout/panel/panel.tsx +166 -0
  621. package/src/components/layout/side-rail/index.ts +12 -0
  622. package/src/components/layout/side-rail/side-rail-context.ts +42 -0
  623. package/src/components/layout/side-rail/side-rail.tsx +405 -0
  624. package/src/components/layout/sidebar-nav/index.ts +14 -0
  625. package/src/components/layout/sidebar-nav/sidebar-nav.tsx +244 -0
  626. package/src/components/layout/status-bar/index.ts +1 -0
  627. package/src/components/layout/status-bar/status-bar.tsx +73 -0
  628. package/src/components/layout/top-bar/index.ts +10 -0
  629. package/src/components/layout/top-bar/top-bar.tsx +166 -0
  630. package/src/components/motion/index.ts +2 -0
  631. package/src/components/motion/presence.tsx +32 -0
  632. package/src/components/theme/appearance-panel.tsx +179 -0
  633. package/src/components/theme/index.ts +22 -0
  634. package/src/components/theme/theme-picker.tsx +174 -0
  635. package/src/components/theme/theme-provider.tsx +309 -0
  636. package/src/components/theme/theme-toggle.tsx +64 -0
  637. package/src/components/ui/accordion/accordion.tsx +66 -0
  638. package/src/components/ui/accordion/index.ts +1 -0
  639. package/src/components/ui/alert/alert.tsx +95 -0
  640. package/src/components/ui/alert/index.ts +1 -0
  641. package/src/components/ui/alert-dialog/alert-dialog.tsx +176 -0
  642. package/src/components/ui/alert-dialog/index.ts +13 -0
  643. package/src/components/ui/aspect-ratio/aspect-ratio.tsx +38 -0
  644. package/src/components/ui/aspect-ratio/index.ts +1 -0
  645. package/src/components/ui/avatar/avatar.tsx +114 -0
  646. package/src/components/ui/avatar/index.ts +9 -0
  647. package/src/components/ui/badge/badge.tsx +59 -0
  648. package/src/components/ui/badge/index.ts +1 -0
  649. package/src/components/ui/board/board.tsx +254 -0
  650. package/src/components/ui/board/index.ts +10 -0
  651. package/src/components/ui/breadcrumb/breadcrumb.tsx +117 -0
  652. package/src/components/ui/breadcrumb/index.ts +9 -0
  653. package/src/components/ui/button/button.tsx +89 -0
  654. package/src/components/ui/button/index.ts +1 -0
  655. package/src/components/ui/button-group/button-group.tsx +92 -0
  656. package/src/components/ui/button-group/index.ts +6 -0
  657. package/src/components/ui/calendar/calendar.tsx +277 -0
  658. package/src/components/ui/calendar/index.ts +1 -0
  659. package/src/components/ui/card/card.tsx +82 -0
  660. package/src/components/ui/card/index.ts +10 -0
  661. package/src/components/ui/carousel/carousel.tsx +209 -0
  662. package/src/components/ui/carousel/index.ts +1 -0
  663. package/src/components/ui/chart/chart.tsx +413 -0
  664. package/src/components/ui/chart/index.ts +17 -0
  665. package/src/components/ui/checkbox/checkbox.tsx +99 -0
  666. package/src/components/ui/checkbox/index.ts +1 -0
  667. package/src/components/ui/code-block/code-block.tsx +238 -0
  668. package/src/components/ui/code-block/index.ts +1 -0
  669. package/src/components/ui/collapsible/collapsible.tsx +54 -0
  670. package/src/components/ui/collapsible/index.ts +1 -0
  671. package/src/components/ui/combobox/combobox.tsx +142 -0
  672. package/src/components/ui/combobox/index.ts +10 -0
  673. package/src/components/ui/command/command.tsx +214 -0
  674. package/src/components/ui/command/index.ts +12 -0
  675. package/src/components/ui/context-menu/context-menu.tsx +163 -0
  676. package/src/components/ui/context-menu/index.ts +15 -0
  677. package/src/components/ui/detail-panel/detail-panel.tsx +161 -0
  678. package/src/components/ui/detail-panel/index.ts +9 -0
  679. package/src/components/ui/dialog/dialog.tsx +138 -0
  680. package/src/components/ui/dialog/index.ts +14 -0
  681. package/src/components/ui/diff-block/diff-block.tsx +286 -0
  682. package/src/components/ui/diff-block/index.ts +11 -0
  683. package/src/components/ui/drawer/drawer.tsx +144 -0
  684. package/src/components/ui/drawer/index.ts +13 -0
  685. package/src/components/ui/dropdown-menu/dropdown-menu.tsx +203 -0
  686. package/src/components/ui/dropdown-menu/index.ts +18 -0
  687. package/src/components/ui/empty/empty.tsx +104 -0
  688. package/src/components/ui/empty/index.ts +10 -0
  689. package/src/components/ui/entity-icon/entity-icon.tsx +154 -0
  690. package/src/components/ui/entity-icon/index.ts +1 -0
  691. package/src/components/ui/field/field.tsx +131 -0
  692. package/src/components/ui/field/index.ts +11 -0
  693. package/src/components/ui/hover-card/hover-card.tsx +48 -0
  694. package/src/components/ui/hover-card/index.ts +1 -0
  695. package/src/components/ui/input/index.ts +1 -0
  696. package/src/components/ui/input/input.tsx +41 -0
  697. package/src/components/ui/input-group/index.ts +8 -0
  698. package/src/components/ui/input-group/input-group.tsx +111 -0
  699. package/src/components/ui/input-otp/index.ts +1 -0
  700. package/src/components/ui/input-otp/input-otp.tsx +108 -0
  701. package/src/components/ui/item/index.ts +10 -0
  702. package/src/components/ui/item/item.tsx +146 -0
  703. package/src/components/ui/kbd/index.ts +1 -0
  704. package/src/components/ui/kbd/kbd.tsx +42 -0
  705. package/src/components/ui/label/index.ts +1 -0
  706. package/src/components/ui/label/label.tsx +36 -0
  707. package/src/components/ui/menubar/index.ts +16 -0
  708. package/src/components/ui/menubar/menubar.tsx +190 -0
  709. package/src/components/ui/modal-dialog/index.ts +1 -0
  710. package/src/components/ui/modal-dialog/modal-dialog.tsx +95 -0
  711. package/src/components/ui/navigation-menu/index.ts +13 -0
  712. package/src/components/ui/navigation-menu/navigation-menu.tsx +229 -0
  713. package/src/components/ui/pagination/index.ts +8 -0
  714. package/src/components/ui/pagination/pagination.tsx +144 -0
  715. package/src/components/ui/popover/index.ts +10 -0
  716. package/src/components/ui/popover/popover.tsx +81 -0
  717. package/src/components/ui/progress/index.ts +1 -0
  718. package/src/components/ui/progress/progress.tsx +67 -0
  719. package/src/components/ui/radio-group/index.ts +1 -0
  720. package/src/components/ui/radio-group/radio-group.tsx +78 -0
  721. package/src/components/ui/resizable/index.ts +6 -0
  722. package/src/components/ui/resizable/resizable.tsx +74 -0
  723. package/src/components/ui/scroll-area/index.ts +1 -0
  724. package/src/components/ui/scroll-area/scroll-area.tsx +66 -0
  725. package/src/components/ui/select/index.ts +11 -0
  726. package/src/components/ui/select/select.tsx +188 -0
  727. package/src/components/ui/separator/index.ts +1 -0
  728. package/src/components/ui/separator/separator.tsx +40 -0
  729. package/src/components/ui/sheet/index.ts +13 -0
  730. package/src/components/ui/sheet/sheet.tsx +132 -0
  731. package/src/components/ui/skeleton/index.ts +1 -0
  732. package/src/components/ui/skeleton/skeleton.tsx +28 -0
  733. package/src/components/ui/slider/index.ts +1 -0
  734. package/src/components/ui/slider/slider.tsx +81 -0
  735. package/src/components/ui/spinner/index.ts +1 -0
  736. package/src/components/ui/spinner/spinner.tsx +58 -0
  737. package/src/components/ui/status-chip/index.ts +8 -0
  738. package/src/components/ui/status-chip/status-chip.tsx +142 -0
  739. package/src/components/ui/switch/index.ts +1 -0
  740. package/src/components/ui/switch/switch.tsx +100 -0
  741. package/src/components/ui/table/index.ts +11 -0
  742. package/src/components/ui/table/table.tsx +125 -0
  743. package/src/components/ui/tabs/index.ts +8 -0
  744. package/src/components/ui/tabs/tabs.tsx +77 -0
  745. package/src/components/ui/textarea/index.ts +1 -0
  746. package/src/components/ui/textarea/textarea.tsx +36 -0
  747. package/src/components/ui/toast/index.ts +1 -0
  748. package/src/components/ui/toast/toast.tsx +220 -0
  749. package/src/components/ui/toggle/index.ts +1 -0
  750. package/src/components/ui/toggle/toggle.tsx +60 -0
  751. package/src/components/ui/toggle-group/index.ts +6 -0
  752. package/src/components/ui/toggle-group/toggle-group.tsx +66 -0
  753. package/src/components/ui/tooltip/index.ts +9 -0
  754. package/src/components/ui/tooltip/tooltip.tsx +102 -0
  755. package/src/index.ts +154 -0
  756. package/src/lib/keyed-rows.ts +68 -0
  757. package/src/lib/overlay.ts +70 -0
  758. package/src/lib/themes.ts +490 -0
  759. package/src/lib/tokens.ts +688 -0
  760. package/src/lib/utils.ts +74 -4
  761. package/src/lib/variants.ts +62 -0
  762. package/src/lib/version-notes.ts +35 -0
  763. package/src/styles/base.css +489 -484
  764. package/src/styles/fonts.css +26 -0
  765. package/src/styles/globals.css +14 -3
  766. package/src/styles/theme.css +838 -229
  767. package/LICENSE +0 -201
  768. package/dist/components/account-drawer.d.ts +0 -11
  769. package/dist/components/account-drawer.js +0 -120
  770. package/dist/components/appearance.d.ts +0 -261
  771. package/dist/components/appearance.js +0 -802
  772. package/dist/components/on-screen-controls.d.ts +0 -8
  773. package/dist/components/on-screen-controls.js +0 -162
  774. package/dist/components/scene-settings.d.ts +0 -33
  775. package/dist/components/scene-settings.js +0 -253
  776. package/dist/components/theme-preview.d.ts +0 -40
  777. package/dist/components/theme-preview.js +0 -210
  778. package/dist/components/theme-provider.d.ts +0 -52
  779. package/dist/components/theme-provider.js +0 -128
  780. package/dist/components/theme-swatch.d.ts +0 -12
  781. package/dist/components/theme-swatch.js +0 -66
  782. package/dist/components/theme-toggle.d.ts +0 -7
  783. package/dist/components/theme-toggle.js +0 -64
  784. package/dist/components/ui/badge.d.ts +0 -8
  785. package/dist/components/ui/badge.js +0 -34
  786. package/dist/components/ui/button.d.ts +0 -9
  787. package/dist/components/ui/button.js +0 -52
  788. package/dist/components/ui/card.d.ts +0 -4
  789. package/dist/components/ui/card.js +0 -28
  790. package/dist/components/ui/dialog.d.ts +0 -15
  791. package/dist/components/ui/dialog.js +0 -104
  792. package/dist/components/ui/drawer.d.ts +0 -24
  793. package/dist/components/ui/drawer.js +0 -120
  794. package/dist/components/ui/dropdown-menu.d.ts +0 -35
  795. package/dist/components/ui/dropdown-menu.js +0 -180
  796. package/dist/components/ui/empty.d.ts +0 -12
  797. package/dist/components/ui/field.d.ts +0 -25
  798. package/dist/components/ui/field.js +0 -188
  799. package/dist/components/ui/input.d.ts +0 -3
  800. package/dist/components/ui/input.js +0 -22
  801. package/dist/components/ui/label.d.ts +0 -3
  802. package/dist/components/ui/label.js +0 -17
  803. package/dist/components/ui/radio-group.d.ts +0 -5
  804. package/dist/components/ui/radio-group.js +0 -39
  805. package/dist/components/ui/separator.d.ts +0 -7
  806. package/dist/components/ui/separator.js +0 -20
  807. package/dist/components/ui/skeleton.d.ts +0 -3
  808. package/dist/components/ui/skeleton.js +0 -17
  809. package/dist/components/ui/spinner.d.ts +0 -5
  810. package/dist/components/ui/spinner.js +0 -17
  811. package/dist/components/ui/switch.d.ts +0 -8
  812. package/dist/components/ui/switch.js +0 -59
  813. package/dist/components/ui/tabs.d.ts +0 -11
  814. package/dist/components/ui/tabs.js +0 -57
  815. package/dist/components/ui/toggle-group.d.ts +0 -13
  816. package/dist/components/ui/toggle-group.js +0 -95
  817. package/dist/components/ui/toggle.d.ts +0 -10
  818. package/dist/components/ui/toggle.js +0 -41
  819. package/dist/components/ui/tooltip.d.ts +0 -15
  820. package/dist/components/ui/tooltip.js +0 -55
  821. package/dist/components/version-dialog.d.ts +0 -25
  822. package/dist/components/version-dialog.js +0 -330
  823. package/dist/components/workspace-brand.d.ts +0 -5
  824. package/dist/components/workspace-brand.js +0 -13
  825. package/dist/components/workspace-logo.d.ts +0 -3
  826. package/dist/components/workspace-logo.js +0 -17
  827. package/src/components/account-drawer.tsx +0 -114
  828. package/src/components/appearance.ts +0 -1112
  829. package/src/components/on-screen-controls.tsx +0 -149
  830. package/src/components/scene-settings.tsx +0 -199
  831. package/src/components/theme-preview.tsx +0 -170
  832. package/src/components/theme-provider.tsx +0 -214
  833. package/src/components/theme-swatch.tsx +0 -49
  834. package/src/components/theme-toggle.tsx +0 -48
  835. package/src/components/ui/badge.tsx +0 -40
  836. package/src/components/ui/button.tsx +0 -58
  837. package/src/components/ui/card.tsx +0 -21
  838. package/src/components/ui/dialog.tsx +0 -132
  839. package/src/components/ui/drawer.tsx +0 -168
  840. package/src/components/ui/dropdown-menu.tsx +0 -235
  841. package/src/components/ui/empty.tsx +0 -97
  842. package/src/components/ui/field.tsx +0 -220
  843. package/src/components/ui/input.tsx +0 -20
  844. package/src/components/ui/label.tsx +0 -19
  845. package/src/components/ui/radio-group.tsx +0 -41
  846. package/src/components/ui/separator.tsx +0 -28
  847. package/src/components/ui/skeleton.tsx +0 -16
  848. package/src/components/ui/spinner.tsx +0 -20
  849. package/src/components/ui/switch.tsx +0 -59
  850. package/src/components/ui/tabs.tsx +0 -76
  851. package/src/components/ui/toggle-group.tsx +0 -98
  852. package/src/components/ui/toggle.tsx +0 -42
  853. package/src/components/ui/tooltip.tsx +0 -61
  854. package/src/components/version-dialog.tsx +0 -368
  855. package/src/components/workspace-brand.tsx +0 -18
  856. package/src/components/workspace-logo.tsx +0 -21
  857. package/src/index.tsx +0 -53
  858. package/src/styles/auth-shell.css +0 -167
  859. package/src/styles/conventional-workspace.css +0 -2858
  860. package/src/styles/dev-view.css +0 -899
  861. package/src/styles/workspace-shell.css +0 -82
  862. package/tsconfig.json +0 -11
@@ -1,10 +1,715 @@
1
- /* Shared tokens and component styling. Consumers provide the Tailwind and
2
- shadcn imports from their own app stylesheet. */
1
+ /* ============================================================================
2
+ * Adea design tokens
3
+ * ============================================================================
4
+ *
5
+ * This file is the single source of truth for the design system. Components
6
+ * reference only the semantic tokens declared here; no component may carry a
7
+ * literal colour, size, radius, or shadow.
8
+ *
9
+ * Three vocabularies meet here, and each is deliberate:
10
+ *
11
+ * - shadcn/ui supplies the *names* (background, primary, muted, accent,
12
+ * border, ring, sidebar-*). Keeping them means every shadcn convention,
13
+ * example, and migration guide applies unchanged, and @shadcn/lint reads the
14
+ * system without special configuration.
15
+ * - OKLCH supplies the *format*. Every colour is perceptually uniform, so a
16
+ * lightness step reads as the same step in every hue and a re-hue does not
17
+ * need its ramp re-derived by eye.
18
+ * - **`@adea-ai/themes` supplies the values.** The two default themes are composed
19
+ * there from upstream palettes — Aardvark Ink's canvas and greyscale for Adea
20
+ * Dark, Nord Light's for Adea Light, and GitHub's hues for both — and normalized
21
+ * against measured contrast floors. The colour declarations in sections 1 and 2
22
+ * are *generated* from that catalogue (`bun run theme:build`) rather than written
23
+ * here; everything else in this file is this system's own.
24
+ *
25
+ * ## The accent is a selection, not a constant
26
+ *
27
+ * Each default theme has one interactive colour of its own — the two are the same
28
+ * hue at different lightnesses, which is what makes them a pair — and a user can
29
+ * override it with an independently chosen **accent**, which replaces the primary, its
30
+ * label and the focus ring. That model is preserved here as the `[data-accent]` blocks
31
+ * below, and it is why nothing in this system should hard-code a hue.
32
+ *
33
+ * ## Provenance
34
+ *
35
+ * The *structure* — the surface ladder, the control and row ladders, the shell
36
+ * geometry, the focus treatment, the motion — is translated from KiroCrew
37
+ * (Apache-2.0; see NOTICE). The *palette* is adea's. An earlier revision of this
38
+ * file took KiroCrew's colours as well, which changed the product's appearance for
39
+ * no reason: the neutrals became blue-tinted, the primary became an emerald adea
40
+ * never had, and the destructive colour became a saturated red. Corrected.
41
+ * ========================================================================== */
3
42
 
4
- @source "../";
43
+ /* ---------------------------------------------------------------------------
44
+ * 1. Colour — light theme (the default)
45
+ *
46
+ * Contrast: body text 8.6:1 on the canvas and 7.7:1 on a card, `--muted-foreground`
47
+ * 5.5:1 on the canvas and 5.0:1 on a card, `--primary-foreground` on `--primary`
48
+ * 5.9:1. Measured rather than estimated; `tests/tokens.test.ts` asserts each pairing.
49
+ * ------------------------------------------------------------------------- */
50
+ :root {
51
+ /* @generated theme:root — run `bun run theme:build` after changing the catalogue */
52
+ /* The canvas and its text */
53
+ --background: oklch(0.933 0.016 261.79);
54
+ --foreground: oklch(0.3697 0.0285 266.52);
55
+
56
+ /* Raised surfaces */
57
+ --card: oklch(0.898 0.0108 261.79);
58
+ --card-foreground: oklch(0.3697 0.0285 266.52);
59
+ --popover: oklch(0.868 0.0151 261.79);
60
+ --popover-foreground: oklch(0.3697 0.0285 266.52);
61
+ --surface-hover: oklch(0.833 0.0209 261.79);
62
+ --surface-active: oklch(0.783 0.0144 261.79);
63
+
64
+ --surface: var(--background);
65
+ --surface-raised: var(--card);
66
+ --surface-overlay: var(--popover);
67
+
68
+ /* The interactive colour */
69
+ --primary: oklch(0.4513 0.1518 253.31);
70
+ --primary-foreground: oklch(0.9513 0.0074 260.73);
71
+ --ring: oklch(0.4513 0.1518 253.31);
72
+ --accent: oklch(0.833 0.0209 261.79);
73
+ --accent-foreground: oklch(0.3697 0.0285 266.52);
74
+
75
+ /* Neutral fills and secondary text */
76
+ --secondary: oklch(0.898 0.0108 261.79);
77
+ --secondary-foreground: oklch(0.3697 0.0285 266.52);
78
+ --muted: oklch(0.898 0.0108 261.79);
79
+ --muted-foreground: oklch(0.474 0.0245 265.01);
80
+
81
+ /* Status. The fills are catalogue roles; the labels are measured. */
82
+ --destructive: oklch(0.4705 0.1626 25.78);
83
+ --destructive-foreground: oklch(0.933 0.016 261.79);
84
+ --success: oklch(0.4311 0.1809 145.62);
85
+ --success-foreground: oklch(0.933 0.016 261.79);
86
+ --warning: oklch(0.4556 0.1401 79.91);
87
+ --warning-foreground: oklch(0.933 0.016 261.79);
88
+ --info: oklch(0.4915 0.1155 202.14);
89
+ --info-foreground: oklch(0.933 0.016 261.79);
90
+ --destructive-subtle: color-mix(in oklch, var(--destructive) 16%, transparent);
91
+ --success-subtle: color-mix(in oklch, var(--success) 16%, transparent);
92
+ --warning-subtle: color-mix(in oklch, var(--warning) 16%, transparent);
93
+ --info-subtle: color-mix(in oklch, var(--info) 16%, transparent);
94
+
95
+ /* Lines */
96
+ --border: oklch(0.783 0.0144 261.79);
97
+ --input: oklch(0.783 0.0144 261.79);
98
+
99
+ /* The primary, so a focus ring is the interactive colour. */
100
+ --ring: var(--primary);
101
+
102
+ /* The sidebar */
103
+ --sidebar: oklch(0.898 0.0108 261.79);
104
+ --sidebar-foreground: oklch(0.3697 0.0285 266.52);
105
+ --sidebar-accent: oklch(0.833 0.0209 261.79);
106
+ --sidebar-border: oklch(0.783 0.0144 261.79);
107
+ --sidebar-muted-foreground: oklch(0.474 0.0245 265.01);
108
+
109
+ --sidebar-primary: var(--primary);
110
+ --sidebar-primary-foreground: var(--primary-foreground);
111
+ --sidebar-accent-foreground: var(--accent-foreground);
112
+ --sidebar-ring: var(--ring);
113
+
114
+ /* Charts */
115
+ --chart-1: oklch(0.4513 0.1518 253.31);
116
+ --chart-2: oklch(0.4683 0.1668 301.69);
117
+ --chart-3: oklch(0.4915 0.1155 202.14);
118
+ --chart-4: oklch(0.4311 0.1809 145.62);
119
+ --chart-5: oklch(0.4556 0.1401 79.91);
120
+ --chart-6: oklch(0.4705 0.1626 25.78);
121
+
122
+ /* Diff surfaces, over the status roles. */
123
+ --diff-add: color-mix(in oklch, var(--success) 18%, transparent);
124
+ --diff-add-foreground: var(--success);
125
+ --diff-delete: color-mix(in oklch, var(--destructive) 18%, transparent);
126
+ --diff-delete-foreground: var(--destructive);
127
+ --diff-hunk: color-mix(in oklch, var(--info) 14%, transparent);
128
+ --diff-hunk-foreground: var(--info);
129
+ --diff-meta-foreground: var(--muted-foreground);
130
+
131
+ /*
132
+ * The modal veil. One value in both appearances because a scrim sits over
133
+ * media rather than over the application — a video, a screenshot — and a veil
134
+ * that changed with the theme would be a veil that is wrong half the time.
135
+ */
136
+ --scrim: oklch(0.1919 0.025 264.7);
137
+ --scrim-foreground: oklch(1 0 0);
138
+ --scrim-edge: oklch(1 0 0);
139
+
140
+ /*
141
+ * A uniform step away from the canvas, so a hovered primary button reads as
142
+ * hovered rather than as a second, slightly different colour.
143
+ *
144
+ * Resolved rather than a `color-mix()`, because a uniform step cannot be
145
+ * expressed as one: mixing a fixed share toward white or black moves an accent
146
+ * by a share of its headroom, which gives the light appearance a step twice the
147
+ * dark one's and nearly none at all on the palest accent.
148
+ *
149
+ * Both values come from @adea-ai/themes, so the accent blocks below are the same
150
+ * rule rather than a matching one — which is what they were not, before.
151
+ */
152
+ --primary-hover: oklch(0.4013 0.1518 253.31);
153
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
154
+ /* The window chrome, one step off the canvas. */
155
+ --chrome: var(--surface);
156
+ /*
157
+ * Below the canvas: a code well, an inset panel. Not a catalogue role, because
158
+ * the catalogue's ladder only goes *up* from the canvas — the four rungs it
159
+ * derives are all surfaces something sits on. This is the one value in the
160
+ * ladder that runs the other way, so it is computed rather than mapped.
161
+ *
162
+ * Darker in both appearances, which is the rule the ladder does not follow: a
163
+ * raised surface is lighter than the canvas on a dark theme and darker on a
164
+ * light one, but a sunken one is *always* darker, because the metaphor is a
165
+ * well cut into the page rather than a panel laid on it.
166
+ */
167
+ --surface-sunken: oklch(0.913 0.008 261.79);
168
+ --chrome-alpha: 0.9;
169
+
170
+ color-scheme: light;
171
+ /* @end generated theme:root */
172
+ }
173
+
174
+ /* ---------------------------------------------------------------------------
175
+ * 2. Colour — dark theme
176
+ *
177
+ * adea's dark theme is a *soft* neutral rather than a near-black: the canvas is a
178
+ * light grey and the primary is near-white. That is the product's existing look,
179
+ * and it is deliberately not the near-black blue-tinted dark of the donor this
180
+ * system's structure came from.
181
+ *
182
+ * Contrast: body text 14.9:1, `--muted-foreground` 6.1:1 on the canvas and 4.9:1
183
+ * on a card, `--primary-foreground` on `--primary` 10.4:1.
184
+ * ------------------------------------------------------------------------- */
185
+ .dark {
186
+ /* @generated theme:dark — run `bun run theme:build` after changing the catalogue */
187
+ /* The canvas and its text */
188
+ --background: oklch(0.1918 0.0238 265.37);
189
+ --foreground: oklch(0.7933 0.0217 261.76);
190
+
191
+ /* Raised surfaces */
192
+ --card: oklch(0.2268 0.0288 265.37);
193
+ --card-foreground: oklch(0.7933 0.0217 261.76);
194
+ --popover: oklch(0.2568 0.033 265.37);
195
+ --popover-foreground: oklch(0.7933 0.0217 261.76);
196
+ --surface-hover: oklch(0.2918 0.038 265.37);
197
+ --surface-active: oklch(0.3418 0.0214 265.37);
198
+
199
+ --surface: var(--background);
200
+ --surface-raised: var(--card);
201
+ --surface-overlay: var(--popover);
202
+
203
+ /* The interactive colour */
204
+ --primary: oklch(0.7153 0.1518 253.31);
205
+ --primary-foreground: oklch(0.1918 0.0238 265.37);
206
+ --ring: oklch(0.7153 0.1518 253.31);
207
+ --accent: oklch(0.2918 0.038 265.37);
208
+ --accent-foreground: oklch(0.7933 0.0217 261.76);
209
+
210
+ /* Neutral fills and secondary text */
211
+ --secondary: oklch(0.2268 0.0288 265.37);
212
+ --secondary-foreground: oklch(0.7933 0.0217 261.76);
213
+ --muted: oklch(0.2268 0.0288 265.37);
214
+ --muted-foreground: oklch(0.6308 0.0224 262.91);
215
+
216
+ /* Status. The fills are catalogue roles; the labels are measured. */
217
+ --destructive: oklch(0.7345 0.1626 25.78);
218
+ --destructive-foreground: oklch(0.1918 0.0238 265.37);
219
+ --success: oklch(0.6951 0.1809 145.62);
220
+ --success-foreground: oklch(0.1918 0.0238 265.37);
221
+ --warning: oklch(0.7196 0.1401 79.91);
222
+ --warning-foreground: oklch(0.1918 0.0238 265.37);
223
+ --info: oklch(0.7555 0.1155 202.14);
224
+ --info-foreground: oklch(0.1918 0.0238 265.37);
225
+ --destructive-subtle: color-mix(in oklch, var(--destructive) 16%, transparent);
226
+ --success-subtle: color-mix(in oklch, var(--success) 16%, transparent);
227
+ --warning-subtle: color-mix(in oklch, var(--warning) 16%, transparent);
228
+ --info-subtle: color-mix(in oklch, var(--info) 16%, transparent);
229
+
230
+ /* Lines */
231
+ --border: oklch(0.3418 0.0214 265.37);
232
+ --input: oklch(0.3418 0.0214 265.37);
233
+
234
+ /* The primary, so a focus ring is the interactive colour. */
235
+ --ring: var(--primary);
236
+
237
+ /* The sidebar */
238
+ --sidebar: oklch(0.2268 0.0288 265.37);
239
+ --sidebar-foreground: oklch(0.7933 0.0217 261.76);
240
+ --sidebar-accent: oklch(0.2918 0.038 265.37);
241
+ --sidebar-border: oklch(0.3418 0.0214 265.37);
242
+ --sidebar-muted-foreground: oklch(0.6308 0.0224 262.91);
243
+
244
+ --sidebar-primary: var(--primary);
245
+ --sidebar-primary-foreground: var(--primary-foreground);
246
+ --sidebar-accent-foreground: var(--accent-foreground);
247
+ --sidebar-ring: var(--ring);
248
+
249
+ /* Charts */
250
+ --chart-1: oklch(0.7153 0.1518 253.31);
251
+ --chart-2: oklch(0.7323 0.1668 301.69);
252
+ --chart-3: oklch(0.7555 0.1155 202.14);
253
+ --chart-4: oklch(0.6951 0.1809 145.62);
254
+ --chart-5: oklch(0.7196 0.1401 79.91);
255
+ --chart-6: oklch(0.7345 0.1626 25.78);
256
+
257
+ /* Diff surfaces, over the status roles. */
258
+ --diff-add: color-mix(in oklch, var(--success) 18%, transparent);
259
+ --diff-add-foreground: var(--success);
260
+ --diff-delete: color-mix(in oklch, var(--destructive) 18%, transparent);
261
+ --diff-delete-foreground: var(--destructive);
262
+ --diff-hunk: color-mix(in oklch, var(--info) 14%, transparent);
263
+ --diff-hunk-foreground: var(--info);
264
+ --diff-meta-foreground: var(--muted-foreground);
5
265
 
6
- @custom-variant dark (&:is(.dark *));
266
+ /*
267
+ * A uniform step away from the canvas, so a hovered primary button reads as
268
+ * hovered rather than as a second, slightly different colour.
269
+ *
270
+ * Resolved rather than a `color-mix()`, because a uniform step cannot be
271
+ * expressed as one: mixing a fixed share toward white or black moves an accent
272
+ * by a share of its headroom, which gives the light appearance a step twice the
273
+ * dark one's and nearly none at all on the palest accent.
274
+ *
275
+ * Both values come from @adea-ai/themes, so the accent blocks below are the same
276
+ * rule rather than a matching one — which is what they were not, before.
277
+ */
278
+ --primary-hover: oklch(0.7653 0.1518 253.31);
279
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
280
+ /* The window chrome, one step off the canvas. */
281
+ --chrome: var(--surface);
282
+ /*
283
+ * Below the canvas: a code well, an inset panel. Not a catalogue role, because
284
+ * the catalogue's ladder only goes *up* from the canvas — the four rungs it
285
+ * derives are all surfaces something sits on. This is the one value in the
286
+ * ladder that runs the other way, so it is computed rather than mapped.
287
+ *
288
+ * Darker in both appearances, which is the rule the ladder does not follow: a
289
+ * raised surface is lighter than the canvas on a dark theme and darker on a
290
+ * light one, but a sunken one is *always* darker, because the metaphor is a
291
+ * well cut into the page rather than a panel laid on it.
292
+ */
293
+ --surface-sunken: oklch(0.1718 0.0199 265.37);
294
+ --chrome-alpha: 0.9;
7
295
 
296
+ color-scheme: dark;
297
+ /* @end generated theme:dark */
298
+ }
299
+
300
+ /* ---------------------------------------------------------------------------
301
+ * 3. The accent axis
302
+ *
303
+ * adea's six accents, as a selection rather than a constant. `data-accent` sits on
304
+ * the same element as `dark` — in both applications that is `<html>` — and each
305
+ * block overrides the roles an accent owns: the interactive primary, its label,
306
+ * its hover rung, its tint and the focus ring.
307
+ *
308
+ * The values are adea's accent presets, passed through the same two rules
309
+ * `deriveAccentRoles` applies in the product:
310
+ *
311
+ * 1. **A 3:1 interaction minimum against the surface the accent is drawn on**,
312
+ * so an accent can never ship unreadable on its own background.
313
+ * 2. **A label chosen by measurement, not convention** — black or white,
314
+ * whichever wins on contrast. The accent flips polarity between the themes
315
+ * for exactly this reason: a bright violet in dark mode carries a black
316
+ * label, and the same accent's deep light-mode form carries a white one.
317
+ *
318
+ * `theme` (the default) is the monochrome primary above and needs no block.
319
+ * ------------------------------------------------------------------------- */
320
+
321
+ /* @generated accents — run `bun run theme:build` after changing the catalogue */
322
+ [data-accent='violet'] {
323
+ --primary: oklch(0.4907 0.2412 292.58);
324
+ --primary-foreground: oklch(1 0 0);
325
+ --primary-hover: oklch(0.4407 0.2412 292.58);
326
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
327
+ --ring: oklch(0.4907 0.2412 292.58);
328
+ }
329
+ .dark[data-accent='violet'] {
330
+ --primary: oklch(0.709 0.1592 293.54);
331
+ --primary-foreground: oklch(0 0 0);
332
+ --primary-hover: oklch(0.759 0.1592 293.54);
333
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
334
+ --ring: oklch(0.709 0.1592 293.54);
335
+ }
336
+
337
+ [data-accent='blue'] {
338
+ --primary: oklch(0.5461 0.2152 262.88);
339
+ --primary-foreground: oklch(1 0 0);
340
+ --primary-hover: oklch(0.4961 0.2152 262.88);
341
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
342
+ --ring: oklch(0.5461 0.2152 262.88);
343
+ }
344
+ .dark[data-accent='blue'] {
345
+ --primary: oklch(0.7137 0.1434 254.62);
346
+ --primary-foreground: oklch(0 0 0);
347
+ --primary-hover: oklch(0.7637 0.1434 254.62);
348
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
349
+ --ring: oklch(0.7137 0.1434 254.62);
350
+ }
351
+
352
+ [data-accent='green'] {
353
+ --primary: oklch(0.5273 0.1371 150.07);
354
+ --primary-foreground: oklch(1 0 0);
355
+ --primary-hover: oklch(0.4773 0.1371 150.07);
356
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
357
+ --ring: oklch(0.5273 0.1371 150.07);
358
+ }
359
+ .dark[data-accent='green'] {
360
+ --primary: oklch(0.8003 0.1821 151.71);
361
+ --primary-foreground: oklch(0 0 0);
362
+ --primary-hover: oklch(0.8503 0.1363 151.71);
363
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
364
+ --ring: oklch(0.8003 0.1821 151.71);
365
+ }
366
+
367
+ [data-accent='amber'] {
368
+ --primary: oklch(0.5553 0.1455 49);
369
+ --primary-foreground: oklch(1 0 0);
370
+ --primary-hover: oklch(0.5053 0.1455 49);
371
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
372
+ --ring: oklch(0.5553 0.1455 49);
373
+ }
374
+ .dark[data-accent='amber'] {
375
+ --primary: oklch(0.8369 0.1644 84.43);
376
+ --primary-foreground: oklch(0 0 0);
377
+ --primary-hover: oklch(0.8869 0.0991 84.43);
378
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
379
+ --ring: oklch(0.8369 0.1644 84.43);
380
+ }
381
+
382
+ [data-accent='cyan'] {
383
+ --primary: oklch(0.5198 0.0936 223.13);
384
+ --primary-foreground: oklch(1 0 0);
385
+ --primary-hover: oklch(0.4698 0.0936 223.13);
386
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
387
+ --ring: oklch(0.5198 0.0936 223.13);
388
+ }
389
+ .dark[data-accent='cyan'] {
390
+ --primary: oklch(0.7971 0.1339 211.53);
391
+ --primary-foreground: oklch(0 0 0);
392
+ --primary-hover: oklch(0.8471 0.102 211.53);
393
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
394
+ --ring: oklch(0.7971 0.1339 211.53);
395
+ }
396
+
397
+ [data-accent='pink'] {
398
+ --primary: oklch(0.5246 0.199 3.96);
399
+ --primary-foreground: oklch(1 0 0);
400
+ --primary-hover: oklch(0.4746 0.199 3.96);
401
+ --primary-subtle: color-mix(in oklch, var(--primary) 10%, transparent);
402
+ --ring: oklch(0.5246 0.199 3.96);
403
+ }
404
+ .dark[data-accent='pink'] {
405
+ --primary: oklch(0.7253 0.1752 349.76);
406
+ --primary-foreground: oklch(0 0 0);
407
+ --primary-hover: oklch(0.7753 0.1752 349.76);
408
+ --primary-subtle: color-mix(in oklch, var(--primary) 16%, transparent);
409
+ --ring: oklch(0.7253 0.1752 349.76);
410
+ }
411
+ /* @end generated accents */
412
+
413
+ /* ---------------------------------------------------------------------------
414
+ * 3b. The font axis
415
+ *
416
+ * A selection, like the accent. `data-font` sits on the same element as `dark` and
417
+ * `data-accent`; the default (absent) is Space Grotesk, which is what the visual
418
+ * language was drawn against.
419
+ *
420
+ * `system` is deliberately first-class rather than a fallback: an application that
421
+ * wants the platform's own face — which is what a terminal and a code editor
422
+ * usually look best in — should be able to say so without losing the rest of the
423
+ * system.
424
+ *
425
+ * ## Width compensation
426
+ *
427
+ * A monospace face is roughly 20% wider than Space Grotesk at the same size, and
428
+ * every measurement in this library — control heights, a rail's label budget, a
429
+ * button's padding — was drawn against the proportional face. Switching the UI
430
+ * font to mono without compensating therefore overflows exactly the tight places:
431
+ * a rail label truncates, a two-word button wraps, a status pill clips.
432
+ *
433
+ * `--ui-tracking` and `--ui-word-spacing` are the remedy, and they are tokens
434
+ * rather than one blanket rule because the two families want *opposite*
435
+ * treatment. Mono's space character is a full advance-width cell — three times
436
+ * Space Grotesk's — so a two-word label reads as two floating words and needs
437
+ * negative word spacing; its glyphs also carry more sidebearing, so a tighter
438
+ * track is safe. Neither correction is wanted on a proportional face, which is
439
+ * why the defaults are `normal`.
440
+ *
441
+ * Apply them where chrome is measured: `tracking-(--ui-tracking)
442
+ * word-spacing-(--ui-word-spacing)`. Body copy does not need them — it wraps.
443
+ * ------------------------------------------------------------------------- */
444
+
445
+ /* The default, and it has to be declared *before* the blocks below.
446
+ *
447
+ * `:root` and `[data-font='…']` have the same specificity, so the later one wins
448
+ * outright — there is no cascade subtlety here, only a position in the file. Written
449
+ * after them, where it naturally belongs next to the `--font-family-*` stacks it
450
+ * references, the default shadowed all five selections: every typeface resolved to
451
+ * Space Grotesk while the toolbar reported something else.
452
+ *
453
+ * So the default lives here instead, in its own two-line block, and the stacks stay
454
+ * where they are. The references resolve fine even though `--font-family-*` is
455
+ * declared further down, because a custom property is resolved where it is used
456
+ * rather than where it is declared. What matters is the order of two declarations of
457
+ * the *same* property, and this is the only one.
458
+ *
459
+ * `tests/appearance-axes.test.ts` asserts both the order and that there is exactly
460
+ * one such default, because "a block above the default is doing nothing" is invisible
461
+ * to review and to every behavioural test.
462
+ */
463
+ :root {
464
+ --font-sans: var(--font-family-space-grotesk);
465
+ --font-mono: var(--font-family-jetbrains-mono);
466
+ }
467
+
468
+ [data-font='system'] {
469
+ --font-sans: var(--font-family-system);
470
+ --font-mono: var(--font-family-system-mono);
471
+ }
472
+ [data-font='geist'] {
473
+ --font-sans: var(--font-family-geist);
474
+ --font-mono: var(--font-family-geist-mono);
475
+ }
476
+ [data-font='geist-mono'] {
477
+ --font-sans: var(--font-family-geist-mono);
478
+ --font-mono: var(--font-family-geist-mono);
479
+ --ui-tracking: -0.03em;
480
+ --ui-word-spacing: -1.5px;
481
+ }
482
+ [data-font='jetbrains-mono'] {
483
+ --font-sans: var(--font-family-jetbrains-mono);
484
+ --font-mono: var(--font-family-jetbrains-mono);
485
+ --ui-tracking: -0.04em;
486
+ --ui-word-spacing: -2.5px;
487
+ }
488
+
489
+ /* The default, and it has to be declared *above* the blocks above.
490
+ *
491
+ * `:root` and `[data-font='…']` have the same specificity, so the later one wins
492
+ * outright. With the default written after them — which is where it naturally
493
+ * belongs, next to the stacks it references — every `[data-font]` block was
494
+ * dead: all five typefaces resolved to Space Grotesk while the toolbar reported a
495
+ * different selection.
496
+ *
497
+ * The references resolve fine from here even though `--font-family-*` is declared
498
+ * further down, because a custom property is resolved where it is used rather than
499
+ * where it is declared. The ordering that matters is between two declarations of
500
+ * the *same* property, and there is only one of those below.
501
+ *
502
+ * `tests/appearance-axes.test.ts` asserts this order, because "the block is above
503
+ * the default" is invisible to review and to every behavioural test.
504
+ */
505
+
506
+ /* ---------------------------------------------------------------------------
507
+ * 4. Non-colour scales
508
+ *
509
+ * Outside the theme blocks because they do not change with polarity — only with a
510
+ * deliberate density or shape decision.
511
+ * ------------------------------------------------------------------------- */
512
+ :root {
513
+ /* Radius. `--radius-lg` is the knob; `--radius` is an alias kept because shadcn
514
+ components and @shadcn/lint both expect it. */
515
+ --radius-lg: 0.625rem; /* 10px */
516
+ --radius-sm: 0.375rem; /* 6px */
517
+ --radius-md: 0.5rem; /* 8px */
518
+ --radius-xl: 0.875rem; /* 14px */
519
+ --radius-2xl: 1.125rem; /* 18px */
520
+ --radius: var(--radius-lg);
521
+
522
+ /* --- Type ---------------------------------------------------------------
523
+ * The families are declared once, and `--font-sans`/`--font-mono` resolve from
524
+ * a *selection* rather than naming one face directly. That is what makes the
525
+ * family a user preference — the same shape as the accent axis — instead of a
526
+ * hard-coded choice an application cannot override without restating the
527
+ * stacks.
528
+ *
529
+ * Every stack ends in the generic family, so a consumer that skips the font
530
+ * import still renders correctly, just in another face.
531
+ */
532
+ --font-family-space-grotesk: 'Space Grotesk Variable', 'Space Grotesk', sans-serif;
533
+ --font-family-jetbrains-mono: 'JetBrains Mono Variable', 'JetBrains Mono', monospace;
534
+ --font-family-geist: 'Geist Variable', 'Geist', sans-serif;
535
+ --font-family-geist-mono: 'Geist Mono Variable', 'Geist Mono', monospace;
536
+ --font-family-system: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
537
+ --font-family-system-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
538
+
539
+ /* Width compensation for the mono UI fonts. `normal` on the proportional face,
540
+ tightened by the `[data-font]` blocks above when the UI font is monospace. */
541
+ --ui-tracking: normal;
542
+ --ui-word-spacing: normal;
543
+
544
+ /* Space Grotesk is the default because it is the face the visual language was
545
+ drawn against: the donor this system's structure comes from sets it, and its
546
+ slightly narrow, geometric forms are part of the look. The declaration of that
547
+ default is not here but in the small `:root` block above the `[data-font]`
548
+ blocks, because it has to precede them; `tests/appearance-axes.test.ts` holds
549
+ that ordering, and it is why this comment points elsewhere rather than
550
+ restating a value. */
551
+
552
+ /* Type scale. Each rung carries its own line-height because the ratio is not
553
+ constant: small text needs more leading to stay readable, display text needs
554
+ less to stay coherent. */
555
+ --text-2xs: 0.6875rem; /* 11px */
556
+ --text-2xs--line-height: 1.45;
557
+ --text-xs: 0.75rem; /* 12px */
558
+ --text-xs--line-height: 1.5;
559
+ --text-sm: 0.875rem; /* 14px — the interface default */
560
+ --text-sm--line-height: 1.55;
561
+ --text-base: 1rem;
562
+ --text-base--line-height: 1.5;
563
+ --text-lg: 1.125rem;
564
+ --text-lg--line-height: 1.4;
565
+ --text-xl: 1.25rem;
566
+ --text-xl--line-height: 1.35;
567
+ --text-2xl: 1.5rem;
568
+ --text-2xl--line-height: 1.25;
569
+ --text-3xl: 1.875rem;
570
+ --text-3xl--line-height: 1.2;
571
+
572
+ /* Control density. KiroCrew's centre of gravity — a 28px control in toolbars and
573
+ a 32px control in forms — is kept, because the density is the structural half
574
+ of the design language even though the palette is adea's. */
575
+ --control-height-2xs: 1.25rem; /* 20px */
576
+ --control-height-xs: 1.5rem; /* 24px */
577
+ --control-height-sm: 1.75rem; /* 28px — toolbar default */
578
+ --control-height-md: 2rem; /* 32px — form default */
579
+ --control-height-lg: 2.25rem; /* 36px */
580
+ --control-height-xl: 2.5rem; /* 40px */
581
+
582
+ --control-padding-2xs: 0.375rem;
583
+ --control-padding-xs: 0.5rem;
584
+ --control-padding-sm: 0.625rem;
585
+ --control-padding-md: 0.75rem;
586
+ --control-padding-lg: 0.875rem;
587
+ --control-padding-xl: 1rem;
588
+
589
+ --row-height-sm: 1.75rem;
590
+ --row-height-md: 2rem;
591
+ --row-height-lg: 2.25rem;
592
+
593
+ /* Space Grotesk is the default because it is the face the visual language was
594
+ drawn against: the donor this system's structure comes from sets it, and its
595
+ slightly narrow, geometric forms are part of the look. The *selection* that
596
+ picks between it and the other four is the `:root` block above, which has to
597
+ precede every `[data-font]` block for the reason given there. */
598
+
599
+ /* Shell geometry. One place to change how wide a rail or sidebar is, so the two
600
+ consumer apps cannot disagree. 74px is the figure KiroCrew's own layout hook
601
+ publishes as `RAIL_W_COLLAPSED`; an older comment in that codebase names 58px,
602
+ which its shipped behaviour does not use. */
603
+ --rail-width: 4.625rem; /* 74px */
604
+ --rail-width-expanded: 14.75rem; /* 236px */
605
+ --rail-item-height: 2.25rem;
606
+ --sidebar-width: 16rem; /* 256px */
607
+ --sidebar-width-compact: 3rem;
608
+ --topbar-height: 3rem;
609
+ --statusbar-height: 1.75rem;
610
+
611
+ /* Shadows. Two parts on purpose: a tinted spread that reads as elevation, plus a
612
+ hairline that keeps an edge visible when the surface behind a panel is the
613
+ same colour as the panel — which is the light theme, where `--card` and
614
+ `--background` are both white. */
615
+ --shadow-2xs: 0 1px 2px 0 oklch(0 0 0 / 0.05);
616
+ --shadow-xs: 0 1px 2px 0 oklch(0 0 0 / 0.06);
617
+ --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.06), 0 0 0 1px oklch(0 0 0 / 0.04);
618
+ --shadow-md: 0 4px 12px oklch(0 0 0 / 0.08), 0 0 0 1px oklch(0 0 0 / 0.04);
619
+ --shadow-lg: 0 12px 28px oklch(0 0 0 / 0.12);
620
+ --shadow-xl: 0 20px 44px oklch(0 0 0 / 0.16);
621
+
622
+ /* Motion. Two durations cover the system: `fast` for a state change the user is
623
+ already watching, `normal` for an entrance. The easing is KiroCrew's entrance
624
+ curve — a fast start and a long settle, which reads as decisive rather than
625
+ floaty. */
626
+ --duration-fast: 120ms;
627
+ --duration-normal: 200ms;
628
+ --duration-slow: 320ms;
629
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
630
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
631
+
632
+ /* Overlay stacking scale. Every overlay names a rung; a one-off z-index is how
633
+ two overlays end up fighting, so none exist. */
634
+ --z-base: 0;
635
+ --z-docked: 10;
636
+ --z-sticky: 20;
637
+ --z-drawer: 110;
638
+ --z-dialog: 120;
639
+ --z-menu: 140;
640
+ --z-tooltip: 160;
641
+ --z-toast: 180;
642
+ }
643
+
644
+ /* Compact density: the whole control ladder one rung tighter.
645
+ *
646
+ * It is a *shift* rather than a second set of numbers chosen by eye, so the
647
+ * relationship between the rungs is identical at either density and a control keeps
648
+ * its place in the ladder. Height moves by 4px per rung and padding by 2px, which is
649
+ * the step each already uses, and the row heights move by the same 4px. A `sm`
650
+ * control goes from 28px to 24px — the `xs` control's comfortable height. That is the
651
+ * intended meaning, not an oversight.
652
+ *
653
+ * 16px at `2xs` is the floor. One rung below it would be 12px, under the minimum
654
+ * comfortable touch target, so the ladder compresses from the bottom rather than
655
+ * overflowing.
656
+ *
657
+ * `comfortable` is the *absence* of this attribute, so a document that ships no
658
+ * `data-density` at all renders exactly as it did before density was selectable.
659
+ * That is what makes this additive: the ladder in `:root` is never overridden, only
660
+ * shadowed, and nothing outside this block declares these properties.
661
+ */
662
+ [data-density='compact'] {
663
+ --control-height-2xs: 1rem; /* 16px — the floor */
664
+ --control-height-xs: 1.25rem; /* 20px */
665
+ --control-height-sm: 1.5rem; /* 24px */
666
+ --control-height-md: 1.75rem; /* 28px */
667
+ --control-height-lg: 2rem; /* 32px */
668
+ --control-height-xl: 2.25rem; /* 36px */
669
+
670
+ --control-padding-2xs: 0.25rem;
671
+ --control-padding-xs: 0.375rem;
672
+ --control-padding-sm: 0.5rem;
673
+ --control-padding-md: 0.625rem;
674
+ --control-padding-lg: 0.75rem;
675
+ --control-padding-xl: 0.875rem;
676
+
677
+ --row-height-sm: 1.5rem;
678
+ --row-height-md: 1.75rem;
679
+ --row-height-lg: 2rem;
680
+ }
681
+
682
+ .dark {
683
+ --shadow-2xs: 0 1px 2px 0 oklch(0 0 0 / 0.2);
684
+ --shadow-xs: 0 1px 2px oklch(0 0 0 / 0.2);
685
+ --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.2);
686
+ --shadow-md: 0 4px 12px oklch(0 0 0 / 0.25), 0 0 0 1px oklch(1 0 0 / 0.03);
687
+ --shadow-lg: 0 12px 28px oklch(0 0 0 / 0.35);
688
+ --shadow-xl: 0 20px 44px oklch(0 0 0 / 0.45);
689
+ }
690
+
691
+ /* ---------------------------------------------------------------------------
692
+ * 4b. Named CSS hooks
693
+ *
694
+ * The sanctioned escape hatch for values that are *data* rather than design
695
+ * decisions: a theme preview paints another variant's colours, and those are not
696
+ * tokens of the active theme. A hook takes the value through a custom property so
697
+ * the component never writes a literal colour and the linter can still see that
698
+ * nothing raw is being styled.
699
+ * ------------------------------------------------------------------------- */
700
+
701
+ .theme-preview-edge {
702
+ border-color: var(--preview-edge, var(--border));
703
+ }
704
+
705
+ /* ---------------------------------------------------------------------------
706
+ * 5. Tailwind namespace mapping
707
+ *
708
+ * `@theme inline` publishes the tokens above as Tailwind utilities. Every
709
+ * declaration is an `inline` reference to the runtime variable, never a copy: that
710
+ * is what lets a `.dark` class or a `[data-accent]` selection take effect without
711
+ * a rebuild.
712
+ * ------------------------------------------------------------------------- */
8
713
  @theme inline {
9
714
  --color-background: var(--background);
10
715
  --color-foreground: var(--foreground);
@@ -14,6 +719,8 @@
14
719
  --color-popover-foreground: var(--popover-foreground);
15
720
  --color-primary: var(--primary);
16
721
  --color-primary-foreground: var(--primary-foreground);
722
+ --color-primary-hover: var(--primary-hover);
723
+ --color-primary-subtle: var(--primary-subtle);
17
724
  --color-secondary: var(--secondary);
18
725
  --color-secondary-foreground: var(--secondary-foreground);
19
726
  --color-muted: var(--muted);
@@ -21,235 +728,137 @@
21
728
  --color-accent: var(--accent);
22
729
  --color-accent-foreground: var(--accent-foreground);
23
730
  --color-destructive: var(--destructive);
731
+ --color-destructive-foreground: var(--destructive-foreground);
732
+ --color-destructive-subtle: var(--destructive-subtle);
24
733
  --color-success: var(--success);
25
- --color-scrim: var(--scrim);
26
- --color-scrim-foreground: var(--scrim-foreground);
27
- --color-scrim-edge: var(--scrim-edge);
734
+ --color-success-foreground: var(--success-foreground);
735
+ --color-success-subtle: var(--success-subtle);
736
+ --color-warning: var(--warning);
737
+ --color-warning-foreground: var(--warning-foreground);
738
+ --color-warning-subtle: var(--warning-subtle);
739
+ --color-info: var(--info);
740
+ --color-info-foreground: var(--info-foreground);
741
+ --color-info-subtle: var(--info-subtle);
28
742
  --color-border: var(--border);
29
743
  --color-input: var(--input);
30
744
  --color-ring: var(--ring);
31
- --radius-sm: calc(var(--radius) - 4px);
32
- --radius-md: calc(var(--radius) - 2px);
33
- --radius-lg: var(--radius);
34
- --radius-xl: calc(var(--radius) + 4px);
35
- }
745
+ --color-scrim: var(--scrim);
746
+ --color-scrim-foreground: var(--scrim-foreground);
747
+ --color-scrim-edge: var(--scrim-edge);
36
748
 
37
- :root {
38
- --radius: 0.75rem;
39
- --background: oklch(1 0 0);
40
- --foreground: oklch(0.145 0 0);
41
- --card: oklch(1 0 0);
42
- --card-foreground: oklch(0.145 0 0);
43
- --popover: oklch(1 0 0);
44
- --popover-foreground: oklch(0.145 0 0);
45
- --primary: oklch(0.205 0 0);
46
- --primary-foreground: oklch(0.985 0 0);
47
- --secondary: oklch(0.97 0 0);
48
- --secondary-foreground: oklch(0.205 0 0);
49
- --muted: oklch(0.97 0 0);
50
- /* Muted text meets 4.5:1 on the muted surface it most often pairs with
51
- (#f5f5f5 at 4.95:1; #737373 measured 4.34:1 there — WCAG audit #599). */
52
- --muted-foreground: oklch(0.525 0 0);
53
- --accent: oklch(0.97 0 0);
54
- --accent-foreground: oklch(0.205 0 0);
55
- --destructive: oklch(0.577 0.245 27.325);
56
- /* Mirrors the literals the success button variant used to carry. */
57
- --success: #1a7f37;
58
- /* Theme-invariant dark glass for overlays and on-screen controls
59
- (Tailwind slate-950). Same value in light and dark themes; the
60
- foreground/edge tokens are the text and hairline drawn on it. */
61
- --scrim: oklch(0.129 0.042 264.695);
62
- --scrim-foreground: #fff;
63
- --scrim-edge: #fff;
64
- --border: oklch(0.922 0 0);
65
- --input: oklch(0.922 0 0);
66
- --ring: oklch(0.708 0 0);
67
- /* The Adea mark keeps its own pairing in both themes; these are the two
68
- values the logo used to hardcode. */
69
- --workspace-logo-surface: #111827;
70
- --workspace-logo-foreground: #f8fafc;
71
- /* Overlay stacking scale — reference it as z-(--z-drawer) etc. in
72
- components; do not add one-off z-[N] values. */
73
- --z-drawer: 110;
74
- --z-dialog: 120;
75
- --z-menu: 140;
76
- --z-tooltip: 160;
77
- /* Surface glass. The appearance provider resolves the effective surface
78
- (opaque/frosted/translucent) and reduced-transparency policy; these
79
- declarations are the opaque defaults plus the frost amounts the resolved
80
- values modulate. */
81
- --surface-alpha: 1;
82
- --surface-frost: 0.92;
83
- --surface-translucent: 0.8;
84
- /* Terminal roles for the default light variant (xterm ANSI, cursor,
85
- selection). Non-default variants apply their manifest values inline; the
86
- terminal consumes the custom properties so a theme switch updates a live
87
- session without remounting. */
88
- --terminal-background: #ffffff;
89
- --terminal-foreground: #1b1f24;
90
- --terminal-cursor: #24292f;
91
- --terminal-selection: #b6c7ff;
92
- --terminal-ansi-black: #1b1f24;
93
- --terminal-ansi-red: #b91c1c;
94
- --terminal-ansi-green: #116a2e;
95
- --terminal-ansi-yellow: #8a5a1b;
96
- --terminal-ansi-blue: #0b57d0;
97
- --terminal-ansi-magenta: #a0186f;
98
- --terminal-ansi-cyan: #0e7490;
99
- --terminal-ansi-white: #57606a;
100
- --terminal-ansi-bright-black: #57606a;
101
- --terminal-ansi-bright-red: #c94d4d;
102
- --terminal-ansi-bright-green: #1f9d4f;
103
- --terminal-ansi-bright-yellow: #a9752c;
104
- --terminal-ansi-bright-blue: #3b82f6;
105
- --terminal-ansi-bright-magenta: #c04a92;
106
- --terminal-ansi-bright-cyan: #0891b2;
107
- --terminal-ansi-bright-white: #24292f;
108
- /* Editor roles (CodeMirror syntax/diff/search) for the default light
109
- variant. */
110
- --editor-keyword: #0b57d0;
111
- --editor-string: #116a2e;
112
- --editor-number: #8a5a1b;
113
- --editor-comment: #57606a;
114
- --editor-function: #a0186f;
115
- --editor-variable: #1b1f24;
116
- --editor-type: #0e7490;
117
- --editor-tag: #b91c1c;
118
- --editor-attribute: #8a5a1b;
119
- --editor-operator: #1b1f24;
120
- --editor-heading: #1b1f24;
121
- --editor-link: #0b57d0;
122
- --editor-diff-add: #116a2e;
123
- --editor-diff-delete: #b91c1c;
124
- --editor-diff-hunk: #57606a;
125
- --editor-search-match: #8a5a1b;
126
- /* Chart series roles. */
127
- --chart-1: #0b57d0;
128
- --chart-2: #116a2e;
129
- --chart-3: #8a5a1b;
130
- --chart-4: #a0186f;
131
- --chart-5: #0e7490;
132
- --chart-6: #57606a;
133
- }
749
+ --color-surface-sunken: var(--surface-sunken);
750
+ --color-surface: var(--surface);
751
+ --color-surface-raised: var(--surface-raised);
752
+ --color-surface-overlay: var(--surface-overlay);
753
+ --color-surface-hover: var(--surface-hover);
754
+ --color-surface-active: var(--surface-active);
755
+ --color-chrome: var(--chrome);
134
756
 
135
- .dark {
136
- --background: oklch(0.145 0 0);
137
- --foreground: oklch(0.985 0 0);
138
- --card: oklch(0.205 0 0);
139
- --card-foreground: oklch(0.985 0 0);
140
- --popover: oklch(0.205 0 0);
141
- --popover-foreground: oklch(0.985 0 0);
142
- --primary: oklch(0.922 0 0);
143
- --primary-foreground: oklch(0.205 0 0);
144
- --secondary: oklch(0.269 0 0);
145
- --secondary-foreground: oklch(0.985 0 0);
146
- --muted: oklch(0.269 0 0);
147
- --muted-foreground: oklch(0.708 0 0);
148
- --accent: oklch(0.269 0 0);
149
- --accent-foreground: oklch(0.985 0 0);
150
- --destructive: oklch(0.704 0.191 22.216);
151
- --success: #3fb950;
152
- --border: oklch(1 0 0 / 10%);
153
- --input: oklch(1 0 0 / 15%);
154
- --ring: oklch(0.556 0 0);
155
- /* Terminal/editor/chart roles for the default dark variant. */
156
- --terminal-background: #0d1117;
157
- --terminal-foreground: #e6edf3;
158
- --terminal-cursor: #e6edf3;
159
- --terminal-selection: #264f78;
160
- --terminal-ansi-black: #2f3742;
161
- --terminal-ansi-red: #ff8183;
162
- --terminal-ansi-green: #56d364;
163
- --terminal-ansi-yellow: #e3b341;
164
- --terminal-ansi-blue: #6ca4f8;
165
- --terminal-ansi-magenta: #db61a2;
166
- --terminal-ansi-cyan: #39c5cf;
167
- --terminal-ansi-white: #d5dde5;
168
- --terminal-ansi-bright-black: #57606a;
169
- --terminal-ansi-bright-red: #ff9494;
170
- --terminal-ansi-bright-green: #79dd8a;
171
- --terminal-ansi-bright-yellow: #f0c264;
172
- --terminal-ansi-bright-blue: #8db9ff;
173
- --terminal-ansi-bright-magenta: #e87cb4;
174
- --terminal-ansi-bright-cyan: #66d3dc;
175
- --terminal-ansi-bright-white: #eef2f6;
176
- --editor-keyword: #6ca4f8;
177
- --editor-string: #56d364;
178
- --editor-number: #e3b341;
179
- --editor-comment: #8b949e;
180
- --editor-function: #db61a2;
181
- --editor-variable: #e6edf3;
182
- --editor-type: #39c5cf;
183
- --editor-tag: #ff8183;
184
- --editor-attribute: #e3b341;
185
- --editor-operator: #e6edf3;
186
- --editor-heading: #e6edf3;
187
- --editor-link: #6ca4f8;
188
- --editor-diff-add: #56d364;
189
- --editor-diff-delete: #ff8183;
190
- --editor-diff-hunk: #8b949e;
191
- --editor-search-match: #e3b341;
192
- --chart-1: #6ca4f8;
193
- --chart-2: #56d364;
194
- --chart-3: #e3b341;
195
- --chart-4: #db61a2;
196
- --chart-5: #39c5cf;
197
- --chart-6: #8b949e;
198
- }
199
-
200
- /* Surface glass amounts. The provider resolves the effective surface and the
201
- reduced-transparency policy; this media query is the OS-level backstop so a
202
- frost amount can never outlive a system Reduce Transparency setting. */
203
- @media (prefers-reduced-transparency: reduce) {
204
- :root {
205
- --surface-alpha: 1;
206
- }
207
- }
208
-
209
- /* Appearance picker swatches (see components/theme-swatch.tsx). The dot
210
- color itself is runtime token data applied by the component. */
211
- .theme-swatch {
212
- display: inline-flex;
213
- gap: 0.25rem;
214
- }
215
- .theme-swatch__dot {
216
- display: inline-block;
217
- width: 0.875rem;
218
- height: 0.875rem;
219
- border-radius: calc(infinity * 1px);
220
- border: 1px solid var(--border);
221
- }
222
-
223
- /* Appearance preview painters (see components/theme-preview.tsx). The
224
- previewed variant's own border color is runtime token data, passed
225
- through this hook's custom property instead of the live theme border. */
226
- .theme-preview-border {
227
- border-color: var(--preview-border, var(--border));
228
- }
229
-
230
- @layer base {
231
- *,
232
- *::before,
233
- *::after {
234
- border-color: var(--border);
235
- }
236
-
237
- /* Product expectation (see cursor-check.spec.ts): every enabled button
238
- shows the pointer cursor regardless of Tailwind preflight defaults. */
239
- button:not(:disabled),
240
- [role='button']:not([aria-disabled='true']) {
241
- cursor: pointer;
242
- }
243
-
244
- html,
245
- body {
246
- min-height: 100%;
247
- }
248
-
249
- body {
250
- position: relative;
251
- margin: 0;
252
- background: var(--background);
253
- color: var(--foreground);
254
- }
757
+ --color-diff-add: var(--diff-add);
758
+ --color-diff-add-foreground: var(--diff-add-foreground);
759
+ --color-diff-delete: var(--diff-delete);
760
+ --color-diff-delete-foreground: var(--diff-delete-foreground);
761
+ --color-diff-hunk: var(--diff-hunk);
762
+ --color-diff-hunk-foreground: var(--diff-hunk-foreground);
763
+ --color-diff-meta-foreground: var(--diff-meta-foreground);
764
+
765
+ --color-chart-1: var(--chart-1);
766
+ --color-chart-2: var(--chart-2);
767
+ --color-chart-3: var(--chart-3);
768
+ --color-chart-4: var(--chart-4);
769
+ --color-chart-5: var(--chart-5);
770
+ --color-chart-6: var(--chart-6);
771
+
772
+ --color-sidebar: var(--sidebar);
773
+ --color-sidebar-foreground: var(--sidebar-foreground);
774
+ --color-sidebar-primary: var(--sidebar-primary);
775
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
776
+ --color-sidebar-accent: var(--sidebar-accent);
777
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
778
+ --color-sidebar-border: var(--sidebar-border);
779
+ --color-sidebar-ring: var(--sidebar-ring);
780
+ --color-sidebar-muted-foreground: var(--sidebar-muted-foreground);
781
+
782
+ --font-sans: var(--font-sans);
783
+ --font-mono: var(--font-mono);
784
+ --font-family-space-grotesk: var(--font-family-space-grotesk);
785
+ --font-family-jetbrains-mono: var(--font-family-jetbrains-mono);
786
+ --font-family-geist: var(--font-family-geist);
787
+ --font-family-geist-mono: var(--font-family-geist-mono);
788
+ --font-family-system: var(--font-family-system);
789
+ --font-family-system-mono: var(--font-family-system-mono);
790
+
791
+ --text-2xs: var(--text-2xs);
792
+ --text-2xs--line-height: var(--text-2xs--line-height);
793
+ --text-xs: var(--text-xs);
794
+ --text-xs--line-height: var(--text-xs--line-height);
795
+ --text-sm: var(--text-sm);
796
+ --text-sm--line-height: var(--text-sm--line-height);
797
+ --text-base: var(--text-base);
798
+ --text-base--line-height: var(--text-base--line-height);
799
+ --text-lg: var(--text-lg);
800
+ --text-lg--line-height: var(--text-lg--line-height);
801
+ --text-xl: var(--text-xl);
802
+ --text-xl--line-height: var(--text-xl--line-height);
803
+ --text-2xl: var(--text-2xl);
804
+ --text-2xl--line-height: var(--text-2xl--line-height);
805
+ --text-3xl: var(--text-3xl);
806
+ --text-3xl--line-height: var(--text-3xl--line-height);
807
+
808
+ --radius-sm: var(--radius-sm);
809
+ --radius-md: var(--radius-md);
810
+ --radius-lg: var(--radius-lg);
811
+ --radius-xl: var(--radius-xl);
812
+ --radius-2xl: var(--radius-2xl);
813
+
814
+ --shadow-2xs: var(--shadow-2xs);
815
+ --shadow-xs: var(--shadow-xs);
816
+ --shadow-sm: var(--shadow-sm);
817
+ --shadow-md: var(--shadow-md);
818
+ --shadow-lg: var(--shadow-lg);
819
+ --shadow-xl: var(--shadow-xl);
820
+
821
+ /* Control and row heights become real utilities (`h-control-md`, `h-row-md`), so a
822
+ component never writes a pixel height. */
823
+ --height-control-2xs: var(--control-height-2xs);
824
+ --height-control-xs: var(--control-height-xs);
825
+ --height-control-sm: var(--control-height-sm);
826
+ --height-control-md: var(--control-height-md);
827
+ --height-control-lg: var(--control-height-lg);
828
+ --height-control-xl: var(--control-height-xl);
829
+ --height-row-sm: var(--row-height-sm);
830
+ --height-row-md: var(--row-height-md);
831
+ --height-row-lg: var(--row-height-lg);
832
+ --height-rail-item: var(--rail-item-height);
833
+ --height-topbar: var(--topbar-height);
834
+ --height-statusbar: var(--statusbar-height);
835
+
836
+ --spacing-control-2xs: var(--control-padding-2xs);
837
+ --spacing-control-xs: var(--control-padding-xs);
838
+ --spacing-control-sm: var(--control-padding-sm);
839
+ --spacing-control-md: var(--control-padding-md);
840
+ --spacing-control-lg: var(--control-padding-lg);
841
+ --spacing-control-xl: var(--control-padding-xl);
842
+
843
+ --width-rail: var(--rail-width);
844
+ --width-rail-expanded: var(--rail-width-expanded);
845
+ --width-sidebar: var(--sidebar-width);
846
+ --width-sidebar-compact: var(--sidebar-width-compact);
847
+
848
+ --z-docked: var(--z-docked);
849
+ --z-sticky: var(--z-sticky);
850
+ --z-drawer: var(--z-drawer);
851
+ --z-dialog: var(--z-dialog);
852
+ --z-menu: var(--z-menu);
853
+ --z-tooltip: var(--z-tooltip);
854
+ --z-toast: var(--z-toast);
855
+
856
+ --ease-out: var(--ease-out);
857
+ --ease-in-out: var(--ease-in-out);
858
+
859
+ /* Make the system's motion the default for every `transition-*` utility, so a
860
+ component that forgets an explicit duration still moves at the design-system
861
+ speed rather than Tailwind's stock 150ms/ease-in-out. */
862
+ --default-transition-duration: var(--duration-fast);
863
+ --default-transition-timing-function: var(--ease-out);
255
864
  }