@adea-ai/ui 0.60.4 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (862) hide show
  1. package/README.md +108 -34
  2. package/dist/components/composites/account-menu/account-menu.d.ts +48 -0
  3. package/dist/components/composites/account-menu/account-menu.d.ts.map +1 -0
  4. package/dist/components/composites/account-menu/account-menu.js +119 -0
  5. package/dist/components/composites/account-menu/account-menu.js.map +1 -0
  6. package/dist/components/composites/account-menu/index.d.ts +2 -0
  7. package/dist/components/composites/account-menu/index.d.ts.map +1 -0
  8. package/dist/components/composites/list-row/index.d.ts +2 -0
  9. package/dist/components/composites/list-row/index.d.ts.map +1 -0
  10. package/dist/components/composites/list-row/list-row.d.ts +44 -0
  11. package/dist/components/composites/list-row/list-row.d.ts.map +1 -0
  12. package/dist/components/composites/list-row/list-row.js +124 -0
  13. package/dist/components/composites/list-row/list-row.js.map +1 -0
  14. package/dist/components/composites/settings/index.d.ts +2 -0
  15. package/dist/components/composites/settings/index.d.ts.map +1 -0
  16. package/dist/components/composites/settings/settings.d.ts +49 -0
  17. package/dist/components/composites/settings/settings.d.ts.map +1 -0
  18. package/dist/components/composites/settings/settings.js +148 -0
  19. package/dist/components/composites/settings/settings.js.map +1 -0
  20. package/dist/components/composites/stat/index.d.ts +2 -0
  21. package/dist/components/composites/stat/index.d.ts.map +1 -0
  22. package/dist/components/composites/stat/stat.d.ts +48 -0
  23. package/dist/components/composites/stat/stat.d.ts.map +1 -0
  24. package/dist/components/composites/stat/stat.js +148 -0
  25. package/dist/components/composites/stat/stat.js.map +1 -0
  26. package/dist/components/composites/update-dialog/index.d.ts +2 -0
  27. package/dist/components/composites/update-dialog/index.d.ts.map +1 -0
  28. package/dist/components/composites/update-dialog/update-dialog.d.ts +108 -0
  29. package/dist/components/composites/update-dialog/update-dialog.d.ts.map +1 -0
  30. package/dist/components/composites/update-dialog/update-dialog.js +452 -0
  31. package/dist/components/composites/update-dialog/update-dialog.js.map +1 -0
  32. package/dist/components/composites/workspace-mark/index.d.ts +2 -0
  33. package/dist/components/composites/workspace-mark/index.d.ts.map +1 -0
  34. package/dist/components/composites/workspace-mark/workspace-mark.d.ts +24 -0
  35. package/dist/components/composites/workspace-mark/workspace-mark.d.ts.map +1 -0
  36. package/dist/components/composites/workspace-mark/workspace-mark.js +76 -0
  37. package/dist/components/composites/workspace-mark/workspace-mark.js.map +1 -0
  38. package/dist/components/conversation/conversation-avatar.d.ts +21 -0
  39. package/dist/components/conversation/conversation-avatar.d.ts.map +1 -0
  40. package/dist/components/conversation/conversation-avatar.js +52 -0
  41. package/dist/components/conversation/conversation-avatar.js.map +1 -0
  42. package/dist/components/conversation/conversation-surface.d.ts +27 -0
  43. package/dist/components/conversation/conversation-surface.d.ts.map +1 -0
  44. package/dist/components/conversation/conversation-surface.js +118 -0
  45. package/dist/components/conversation/conversation-surface.js.map +1 -0
  46. package/dist/components/conversation/index.d.ts +6 -0
  47. package/dist/components/conversation/index.d.ts.map +1 -0
  48. package/dist/components/conversation/message-composer.d.ts +70 -0
  49. package/dist/components/conversation/message-composer.d.ts.map +1 -0
  50. package/dist/components/conversation/message-composer.js +235 -0
  51. package/dist/components/conversation/message-composer.js.map +1 -0
  52. package/dist/components/conversation/message-row.d.ts +101 -0
  53. package/dist/components/conversation/message-row.d.ts.map +1 -0
  54. package/dist/components/conversation/message-row.js +389 -0
  55. package/dist/components/conversation/message-row.js.map +1 -0
  56. package/dist/components/conversation/thread-panel.d.ts +45 -0
  57. package/dist/components/conversation/thread-panel.d.ts.map +1 -0
  58. package/dist/components/conversation/thread-panel.js +123 -0
  59. package/dist/components/conversation/thread-panel.js.map +1 -0
  60. package/dist/components/layout/app-shell/app-shell.d.ts +45 -0
  61. package/dist/components/layout/app-shell/app-shell.d.ts.map +1 -0
  62. package/dist/components/layout/app-shell/app-shell.js +89 -0
  63. package/dist/components/layout/app-shell/app-shell.js.map +1 -0
  64. package/dist/components/layout/app-shell/index.d.ts +2 -0
  65. package/dist/components/layout/app-shell/index.d.ts.map +1 -0
  66. package/dist/components/layout/page/index.d.ts +2 -0
  67. package/dist/components/layout/page/index.d.ts.map +1 -0
  68. package/dist/components/layout/page/page.d.ts +31 -0
  69. package/dist/components/layout/page/page.d.ts.map +1 -0
  70. package/dist/components/layout/page/page.js +143 -0
  71. package/dist/components/layout/page/page.js.map +1 -0
  72. package/dist/components/layout/panel/index.d.ts +2 -0
  73. package/dist/components/layout/panel/index.d.ts.map +1 -0
  74. package/dist/components/layout/panel/panel.d.ts +44 -0
  75. package/dist/components/layout/panel/panel.d.ts.map +1 -0
  76. package/dist/components/layout/panel/panel.js +151 -0
  77. package/dist/components/layout/panel/panel.js.map +1 -0
  78. package/dist/components/layout/side-rail/index.d.ts +3 -0
  79. package/dist/components/layout/side-rail/index.d.ts.map +1 -0
  80. package/dist/components/layout/side-rail/side-rail-context.d.ts +23 -0
  81. package/dist/components/layout/side-rail/side-rail-context.d.ts.map +1 -0
  82. package/dist/components/layout/side-rail/side-rail-context.js +18 -0
  83. package/dist/components/layout/side-rail/side-rail-context.js.map +1 -0
  84. package/dist/components/layout/side-rail/side-rail.d.ts +101 -0
  85. package/dist/components/layout/side-rail/side-rail.d.ts.map +1 -0
  86. package/dist/components/layout/side-rail/side-rail.js +336 -0
  87. package/dist/components/layout/side-rail/side-rail.js.map +1 -0
  88. package/dist/components/layout/sidebar-nav/index.d.ts +2 -0
  89. package/dist/components/layout/sidebar-nav/index.d.ts.map +1 -0
  90. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts +62 -0
  91. package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts.map +1 -0
  92. package/dist/components/layout/sidebar-nav/sidebar-nav.js +231 -0
  93. package/dist/components/layout/sidebar-nav/sidebar-nav.js.map +1 -0
  94. package/dist/components/layout/status-bar/index.d.ts +2 -0
  95. package/dist/components/layout/status-bar/index.d.ts.map +1 -0
  96. package/dist/components/layout/status-bar/status-bar.d.ts +23 -0
  97. package/dist/components/layout/status-bar/status-bar.d.ts.map +1 -0
  98. package/dist/components/layout/status-bar/status-bar.js +68 -0
  99. package/dist/components/layout/status-bar/status-bar.js.map +1 -0
  100. package/dist/components/layout/top-bar/index.d.ts +2 -0
  101. package/dist/components/layout/top-bar/index.d.ts.map +1 -0
  102. package/dist/components/layout/top-bar/top-bar.d.ts +59 -0
  103. package/dist/components/layout/top-bar/top-bar.d.ts.map +1 -0
  104. package/dist/components/layout/top-bar/top-bar.js +118 -0
  105. package/dist/components/layout/top-bar/top-bar.js.map +1 -0
  106. package/dist/components/motion/index.d.ts +3 -0
  107. package/dist/components/motion/index.d.ts.map +1 -0
  108. package/dist/components/motion/index.js +3 -0
  109. package/dist/components/motion/presence.d.ts +29 -0
  110. package/dist/components/motion/presence.d.ts.map +1 -0
  111. package/dist/components/motion/presence.js +10 -0
  112. package/dist/components/motion/presence.js.map +1 -0
  113. package/dist/components/theme/appearance-panel.d.ts +25 -0
  114. package/dist/components/theme/appearance-panel.d.ts.map +1 -0
  115. package/dist/components/theme/appearance-panel.js +162 -0
  116. package/dist/components/theme/appearance-panel.js.map +1 -0
  117. package/dist/components/theme/index.d.ts +5 -0
  118. package/dist/components/theme/index.d.ts.map +1 -0
  119. package/dist/components/theme/theme-picker.d.ts +54 -0
  120. package/dist/components/theme/theme-picker.d.ts.map +1 -0
  121. package/dist/components/theme/theme-picker.js +156 -0
  122. package/dist/components/theme/theme-picker.js.map +1 -0
  123. package/dist/components/theme/theme-provider.d.ts +130 -0
  124. package/dist/components/theme/theme-provider.d.ts.map +1 -0
  125. package/dist/components/theme/theme-provider.js +164 -0
  126. package/dist/components/theme/theme-provider.js.map +1 -0
  127. package/dist/components/theme/theme-toggle.d.ts +19 -0
  128. package/dist/components/theme/theme-toggle.d.ts.map +1 -0
  129. package/dist/components/theme/theme-toggle.js +69 -0
  130. package/dist/components/theme/theme-toggle.js.map +1 -0
  131. package/dist/components/ui/accordion/accordion.d.ts +18 -0
  132. package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
  133. package/dist/components/ui/accordion/accordion.js +60 -0
  134. package/dist/components/ui/accordion/accordion.js.map +1 -0
  135. package/dist/components/ui/accordion/index.d.ts +2 -0
  136. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  137. package/dist/components/ui/alert/alert.d.ts +26 -0
  138. package/dist/components/ui/alert/alert.d.ts.map +1 -0
  139. package/dist/components/ui/alert/alert.js +89 -0
  140. package/dist/components/ui/alert/alert.js.map +1 -0
  141. package/dist/components/ui/alert/index.d.ts +2 -0
  142. package/dist/components/ui/alert/index.d.ts.map +1 -0
  143. package/dist/components/ui/alert-dialog/alert-dialog.d.ts +29 -0
  144. package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
  145. package/dist/components/ui/alert-dialog/alert-dialog.js +155 -0
  146. package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -0
  147. package/dist/components/ui/alert-dialog/index.d.ts +2 -0
  148. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  149. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts +22 -0
  150. package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  151. package/dist/components/ui/aspect-ratio/aspect-ratio.js +29 -0
  152. package/dist/components/ui/aspect-ratio/aspect-ratio.js.map +1 -0
  153. package/dist/components/ui/aspect-ratio/index.d.ts +2 -0
  154. package/dist/components/ui/aspect-ratio/index.d.ts.map +1 -0
  155. package/dist/components/ui/avatar/avatar.d.ts +41 -0
  156. package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
  157. package/dist/components/ui/avatar/avatar.js +106 -0
  158. package/dist/components/ui/avatar/avatar.js.map +1 -0
  159. package/dist/components/ui/avatar/index.d.ts +2 -0
  160. package/dist/components/ui/avatar/index.d.ts.map +1 -0
  161. package/dist/components/ui/badge/badge.d.ts +22 -0
  162. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  163. package/dist/components/ui/badge/badge.js +58 -0
  164. package/dist/components/ui/badge/badge.js.map +1 -0
  165. package/dist/components/ui/badge/index.d.ts +2 -0
  166. package/dist/components/ui/badge/index.d.ts.map +1 -0
  167. package/dist/components/ui/board/board.d.ts +78 -0
  168. package/dist/components/ui/board/board.d.ts.map +1 -0
  169. package/dist/components/ui/board/board.js +200 -0
  170. package/dist/components/ui/board/board.js.map +1 -0
  171. package/dist/components/ui/board/index.d.ts +2 -0
  172. package/dist/components/ui/board/index.d.ts.map +1 -0
  173. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +24 -0
  174. package/dist/components/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
  175. package/dist/components/ui/breadcrumb/breadcrumb.js +109 -0
  176. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -0
  177. package/dist/components/ui/breadcrumb/index.d.ts +2 -0
  178. package/dist/components/ui/breadcrumb/index.d.ts.map +1 -0
  179. package/dist/components/ui/button/button.d.ts +30 -0
  180. package/dist/components/ui/button/button.d.ts.map +1 -0
  181. package/dist/components/ui/button/button.js +80 -0
  182. package/dist/components/ui/button/button.js.map +1 -0
  183. package/dist/components/ui/button/index.d.ts +2 -0
  184. package/dist/components/ui/button/index.d.ts.map +1 -0
  185. package/dist/components/ui/button-group/button-group.d.ts +39 -0
  186. package/dist/components/ui/button-group/button-group.d.ts.map +1 -0
  187. package/dist/components/ui/button-group/button-group.js +63 -0
  188. package/dist/components/ui/button-group/button-group.js.map +1 -0
  189. package/dist/components/ui/button-group/index.d.ts +2 -0
  190. package/dist/components/ui/button-group/index.d.ts.map +1 -0
  191. package/dist/components/ui/calendar/calendar.d.ts +93 -0
  192. package/dist/components/ui/calendar/calendar.d.ts.map +1 -0
  193. package/dist/components/ui/calendar/calendar.js +243 -0
  194. package/dist/components/ui/calendar/calendar.js.map +1 -0
  195. package/dist/components/ui/calendar/index.d.ts +2 -0
  196. package/dist/components/ui/calendar/index.d.ts.map +1 -0
  197. package/dist/components/ui/card/card.d.ts +23 -0
  198. package/dist/components/ui/card/card.d.ts.map +1 -0
  199. package/dist/components/ui/card/card.js +98 -0
  200. package/dist/components/ui/card/card.js.map +1 -0
  201. package/dist/components/ui/card/index.d.ts +2 -0
  202. package/dist/components/ui/card/index.d.ts.map +1 -0
  203. package/dist/components/ui/carousel/carousel.d.ts +66 -0
  204. package/dist/components/ui/carousel/carousel.d.ts.map +1 -0
  205. package/dist/components/ui/carousel/carousel.js +178 -0
  206. package/dist/components/ui/carousel/carousel.js.map +1 -0
  207. package/dist/components/ui/carousel/index.d.ts +2 -0
  208. package/dist/components/ui/carousel/index.d.ts.map +1 -0
  209. package/dist/components/ui/chart/chart.d.ts +154 -0
  210. package/dist/components/ui/chart/chart.d.ts.map +1 -0
  211. package/dist/components/ui/chart/chart.js +373 -0
  212. package/dist/components/ui/chart/chart.js.map +1 -0
  213. package/dist/components/ui/chart/index.d.ts +2 -0
  214. package/dist/components/ui/chart/index.d.ts.map +1 -0
  215. package/dist/components/ui/checkbox/checkbox.d.ts +33 -0
  216. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  217. package/dist/components/ui/checkbox/checkbox.js +76 -0
  218. package/dist/components/ui/checkbox/checkbox.js.map +1 -0
  219. package/dist/components/ui/checkbox/index.d.ts +2 -0
  220. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  221. package/dist/components/ui/code-block/code-block.d.ts +75 -0
  222. package/dist/components/ui/code-block/code-block.d.ts.map +1 -0
  223. package/dist/components/ui/code-block/code-block.js +186 -0
  224. package/dist/components/ui/code-block/code-block.js.map +1 -0
  225. package/dist/components/ui/code-block/index.d.ts +2 -0
  226. package/dist/components/ui/code-block/index.d.ts.map +1 -0
  227. package/dist/components/ui/collapsible/collapsible.d.ts +17 -0
  228. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
  229. package/dist/components/ui/collapsible/collapsible.js +38 -0
  230. package/dist/components/ui/collapsible/collapsible.js.map +1 -0
  231. package/dist/components/ui/collapsible/index.d.ts +2 -0
  232. package/dist/components/ui/collapsible/index.d.ts.map +1 -0
  233. package/dist/components/ui/combobox/combobox.d.ts +28 -0
  234. package/dist/components/ui/combobox/combobox.d.ts.map +1 -0
  235. package/dist/components/ui/combobox/combobox.js +102 -0
  236. package/dist/components/ui/combobox/combobox.js.map +1 -0
  237. package/dist/components/ui/combobox/index.d.ts +2 -0
  238. package/dist/components/ui/combobox/index.d.ts.map +1 -0
  239. package/dist/components/ui/command/command.d.ts +53 -0
  240. package/dist/components/ui/command/command.d.ts.map +1 -0
  241. package/dist/components/ui/command/command.js +137 -0
  242. package/dist/components/ui/command/command.js.map +1 -0
  243. package/dist/components/ui/command/index.d.ts +2 -0
  244. package/dist/components/ui/command/index.d.ts.map +1 -0
  245. package/dist/components/ui/context-menu/context-menu.d.ts +32 -0
  246. package/dist/components/ui/context-menu/context-menu.d.ts.map +1 -0
  247. package/dist/components/ui/context-menu/context-menu.js +119 -0
  248. package/dist/components/ui/context-menu/context-menu.js.map +1 -0
  249. package/dist/components/ui/context-menu/index.d.ts +2 -0
  250. package/dist/components/ui/context-menu/index.d.ts.map +1 -0
  251. package/dist/components/ui/detail-panel/detail-panel.d.ts +61 -0
  252. package/dist/components/ui/detail-panel/detail-panel.d.ts.map +1 -0
  253. package/dist/components/ui/detail-panel/detail-panel.js +132 -0
  254. package/dist/components/ui/detail-panel/detail-panel.js.map +1 -0
  255. package/dist/components/ui/detail-panel/index.d.ts +2 -0
  256. package/dist/components/ui/detail-panel/index.d.ts.map +1 -0
  257. package/dist/components/ui/dialog/dialog.d.ts +40 -0
  258. package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
  259. package/dist/components/ui/dialog/dialog.js +125 -0
  260. package/dist/components/ui/dialog/dialog.js.map +1 -0
  261. package/dist/components/ui/dialog/index.d.ts +2 -0
  262. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  263. package/dist/components/ui/diff-block/diff-block.d.ts +95 -0
  264. package/dist/components/ui/diff-block/diff-block.d.ts.map +1 -0
  265. package/dist/components/ui/diff-block/diff-block.js +230 -0
  266. package/dist/components/ui/diff-block/diff-block.js.map +1 -0
  267. package/dist/components/ui/diff-block/diff-block.test.d.ts +2 -0
  268. package/dist/components/ui/diff-block/diff-block.test.d.ts.map +1 -0
  269. package/dist/components/ui/diff-block/index.d.ts +2 -0
  270. package/dist/components/ui/diff-block/index.d.ts.map +1 -0
  271. package/dist/components/ui/drawer/drawer.d.ts +39 -0
  272. package/dist/components/ui/drawer/drawer.d.ts.map +1 -0
  273. package/dist/components/ui/drawer/drawer.js +106 -0
  274. package/dist/components/ui/drawer/drawer.js.map +1 -0
  275. package/dist/components/ui/drawer/index.d.ts +2 -0
  276. package/dist/components/ui/drawer/index.d.ts.map +1 -0
  277. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +48 -0
  278. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  279. package/dist/components/ui/dropdown-menu/dropdown-menu.js +151 -0
  280. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -0
  281. package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
  282. package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
  283. package/dist/components/ui/empty/empty.d.ts +27 -0
  284. package/dist/components/ui/empty/empty.d.ts.map +1 -0
  285. package/dist/components/ui/{empty.js → empty/empty.js} +28 -23
  286. package/dist/components/ui/empty/empty.js.map +1 -0
  287. package/dist/components/ui/empty/index.d.ts +2 -0
  288. package/dist/components/ui/empty/index.d.ts.map +1 -0
  289. package/dist/components/ui/entity-icon/entity-icon.d.ts +59 -0
  290. package/dist/components/ui/entity-icon/entity-icon.d.ts.map +1 -0
  291. package/dist/components/ui/entity-icon/entity-icon.js +145 -0
  292. package/dist/components/ui/entity-icon/entity-icon.js.map +1 -0
  293. package/dist/components/ui/entity-icon/index.d.ts +2 -0
  294. package/dist/components/ui/entity-icon/index.d.ts.map +1 -0
  295. package/dist/components/ui/field/field.d.ts +39 -0
  296. package/dist/components/ui/field/field.d.ts.map +1 -0
  297. package/dist/components/ui/field/field.js +111 -0
  298. package/dist/components/ui/field/field.js.map +1 -0
  299. package/dist/components/ui/field/index.d.ts +2 -0
  300. package/dist/components/ui/field/index.d.ts.map +1 -0
  301. package/dist/components/ui/hover-card/hover-card.d.ts +17 -0
  302. package/dist/components/ui/hover-card/hover-card.d.ts.map +1 -0
  303. package/dist/components/ui/hover-card/hover-card.js +40 -0
  304. package/dist/components/ui/hover-card/hover-card.js.map +1 -0
  305. package/dist/components/ui/hover-card/index.d.ts +2 -0
  306. package/dist/components/ui/hover-card/index.d.ts.map +1 -0
  307. package/dist/components/ui/input/index.d.ts +2 -0
  308. package/dist/components/ui/input/index.d.ts.map +1 -0
  309. package/dist/components/ui/input/input.d.ts +15 -0
  310. package/dist/components/ui/input/input.d.ts.map +1 -0
  311. package/dist/components/ui/input/input.js +36 -0
  312. package/dist/components/ui/input/input.js.map +1 -0
  313. package/dist/components/ui/input-group/index.d.ts +2 -0
  314. package/dist/components/ui/input-group/index.d.ts.map +1 -0
  315. package/dist/components/ui/input-group/input-group.d.ts +34 -0
  316. package/dist/components/ui/input-group/input-group.d.ts.map +1 -0
  317. package/dist/components/ui/input-group/input-group.js +93 -0
  318. package/dist/components/ui/input-group/input-group.js.map +1 -0
  319. package/dist/components/ui/input-otp/index.d.ts +2 -0
  320. package/dist/components/ui/input-otp/index.d.ts.map +1 -0
  321. package/dist/components/ui/input-otp/input-otp.d.ts +37 -0
  322. package/dist/components/ui/input-otp/input-otp.d.ts.map +1 -0
  323. package/dist/components/ui/input-otp/input-otp.js +92 -0
  324. package/dist/components/ui/input-otp/input-otp.js.map +1 -0
  325. package/dist/components/ui/item/index.d.ts +2 -0
  326. package/dist/components/ui/item/index.d.ts.map +1 -0
  327. package/dist/components/ui/item/item.d.ts +49 -0
  328. package/dist/components/ui/item/item.d.ts.map +1 -0
  329. package/dist/components/ui/item/item.js +163 -0
  330. package/dist/components/ui/item/item.js.map +1 -0
  331. package/dist/components/ui/kbd/index.d.ts +2 -0
  332. package/dist/components/ui/kbd/index.d.ts.map +1 -0
  333. package/dist/components/ui/kbd/kbd.d.ts +14 -0
  334. package/dist/components/ui/kbd/kbd.d.ts.map +1 -0
  335. package/dist/components/ui/kbd/kbd.js +40 -0
  336. package/dist/components/ui/kbd/kbd.js.map +1 -0
  337. package/dist/components/ui/label/index.d.ts +2 -0
  338. package/dist/components/ui/label/index.d.ts.map +1 -0
  339. package/dist/components/ui/label/label.d.ts +17 -0
  340. package/dist/components/ui/label/label.d.ts.map +1 -0
  341. package/dist/components/ui/label/label.js +33 -0
  342. package/dist/components/ui/label/label.js.map +1 -0
  343. package/dist/components/ui/menubar/index.d.ts +2 -0
  344. package/dist/components/ui/menubar/index.d.ts.map +1 -0
  345. package/dist/components/ui/menubar/menubar.d.ts +38 -0
  346. package/dist/components/ui/menubar/menubar.d.ts.map +1 -0
  347. package/dist/components/ui/menubar/menubar.js +138 -0
  348. package/dist/components/ui/menubar/menubar.js.map +1 -0
  349. package/dist/components/ui/modal-dialog/index.d.ts +2 -0
  350. package/dist/components/ui/modal-dialog/index.d.ts.map +1 -0
  351. package/dist/components/ui/modal-dialog/modal-dialog.d.ts +35 -0
  352. package/dist/components/ui/modal-dialog/modal-dialog.d.ts.map +1 -0
  353. package/dist/components/ui/modal-dialog/modal-dialog.js +78 -0
  354. package/dist/components/ui/modal-dialog/modal-dialog.js.map +1 -0
  355. package/dist/components/ui/navigation-menu/index.d.ts +2 -0
  356. package/dist/components/ui/navigation-menu/index.d.ts.map +1 -0
  357. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +77 -0
  358. package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -0
  359. package/dist/components/ui/navigation-menu/navigation-menu.js +116 -0
  360. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -0
  361. package/dist/components/ui/pagination/index.d.ts +2 -0
  362. package/dist/components/ui/pagination/index.d.ts.map +1 -0
  363. package/dist/components/ui/pagination/pagination.d.ts +33 -0
  364. package/dist/components/ui/pagination/pagination.d.ts.map +1 -0
  365. package/dist/components/ui/pagination/pagination.js +92 -0
  366. package/dist/components/ui/pagination/pagination.js.map +1 -0
  367. package/dist/components/ui/popover/index.d.ts +2 -0
  368. package/dist/components/ui/popover/index.d.ts.map +1 -0
  369. package/dist/components/ui/popover/popover.d.ts +26 -0
  370. package/dist/components/ui/popover/popover.d.ts.map +1 -0
  371. package/dist/components/ui/popover/popover.js +66 -0
  372. package/dist/components/ui/popover/popover.js.map +1 -0
  373. package/dist/components/ui/progress/index.d.ts +2 -0
  374. package/dist/components/ui/progress/index.d.ts.map +1 -0
  375. package/dist/components/ui/progress/progress.d.ts +29 -0
  376. package/dist/components/ui/progress/progress.d.ts.map +1 -0
  377. package/dist/components/ui/progress/progress.js +53 -0
  378. package/dist/components/ui/progress/progress.js.map +1 -0
  379. package/dist/components/ui/radio-group/index.d.ts +2 -0
  380. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  381. package/dist/components/ui/radio-group/radio-group.d.ts +26 -0
  382. package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
  383. package/dist/components/ui/radio-group/radio-group.js +77 -0
  384. package/dist/components/ui/radio-group/radio-group.js.map +1 -0
  385. package/dist/components/ui/resizable/index.d.ts +2 -0
  386. package/dist/components/ui/resizable/index.d.ts.map +1 -0
  387. package/dist/components/ui/resizable/resizable.d.ts +33 -0
  388. package/dist/components/ui/resizable/resizable.d.ts.map +1 -0
  389. package/dist/components/ui/resizable/resizable.js +57 -0
  390. package/dist/components/ui/resizable/resizable.js.map +1 -0
  391. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  392. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  393. package/dist/components/ui/scroll-area/scroll-area.d.ts +26 -0
  394. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
  395. package/dist/components/ui/scroll-area/scroll-area.js +36 -0
  396. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
  397. package/dist/components/ui/select/index.d.ts +2 -0
  398. package/dist/components/ui/select/index.d.ts.map +1 -0
  399. package/dist/components/ui/select/select.d.ts +63 -0
  400. package/dist/components/ui/select/select.d.ts.map +1 -0
  401. package/dist/components/ui/select/select.js +142 -0
  402. package/dist/components/ui/select/select.js.map +1 -0
  403. package/dist/components/ui/separator/index.d.ts +2 -0
  404. package/dist/components/ui/separator/index.d.ts.map +1 -0
  405. package/dist/components/ui/separator/separator.d.ts +17 -0
  406. package/dist/components/ui/separator/separator.d.ts.map +1 -0
  407. package/dist/components/ui/separator/separator.js +24 -0
  408. package/dist/components/ui/separator/separator.js.map +1 -0
  409. package/dist/components/ui/sheet/index.d.ts +2 -0
  410. package/dist/components/ui/sheet/index.d.ts.map +1 -0
  411. package/dist/components/ui/sheet/sheet.d.ts +32 -0
  412. package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
  413. package/dist/components/ui/sheet/sheet.js +118 -0
  414. package/dist/components/ui/sheet/sheet.js.map +1 -0
  415. package/dist/components/ui/skeleton/index.d.ts +2 -0
  416. package/dist/components/ui/skeleton/index.d.ts.map +1 -0
  417. package/dist/components/ui/skeleton/skeleton.d.ts +15 -0
  418. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
  419. package/dist/components/ui/skeleton/skeleton.js +31 -0
  420. package/dist/components/ui/skeleton/skeleton.js.map +1 -0
  421. package/dist/components/ui/slider/index.d.ts +2 -0
  422. package/dist/components/ui/slider/index.d.ts.map +1 -0
  423. package/dist/components/ui/slider/slider.d.ts +22 -0
  424. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  425. package/dist/components/ui/slider/slider.js +59 -0
  426. package/dist/components/ui/slider/slider.js.map +1 -0
  427. package/dist/components/ui/spinner/index.d.ts +2 -0
  428. package/dist/components/ui/spinner/index.d.ts.map +1 -0
  429. package/dist/components/ui/spinner/spinner.d.ts +25 -0
  430. package/dist/components/ui/spinner/spinner.d.ts.map +1 -0
  431. package/dist/components/ui/spinner/spinner.js +57 -0
  432. package/dist/components/ui/spinner/spinner.js.map +1 -0
  433. package/dist/components/ui/status-chip/index.d.ts +2 -0
  434. package/dist/components/ui/status-chip/index.d.ts.map +1 -0
  435. package/dist/components/ui/status-chip/status-chip.d.ts +70 -0
  436. package/dist/components/ui/status-chip/status-chip.d.ts.map +1 -0
  437. package/dist/components/ui/status-chip/status-chip.js +140 -0
  438. package/dist/components/ui/status-chip/status-chip.js.map +1 -0
  439. package/dist/components/ui/switch/index.d.ts +2 -0
  440. package/dist/components/ui/switch/index.d.ts.map +1 -0
  441. package/dist/components/ui/switch/switch.d.ts +36 -0
  442. package/dist/components/ui/switch/switch.d.ts.map +1 -0
  443. package/dist/components/ui/switch/switch.js +74 -0
  444. package/dist/components/ui/switch/switch.js.map +1 -0
  445. package/dist/components/ui/table/index.d.ts +2 -0
  446. package/dist/components/ui/table/index.d.ts.map +1 -0
  447. package/dist/components/ui/table/table.d.ts +29 -0
  448. package/dist/components/ui/table/table.d.ts.map +1 -0
  449. package/dist/components/ui/table/table.js +129 -0
  450. package/dist/components/ui/table/table.js.map +1 -0
  451. package/dist/components/ui/tabs/index.d.ts +2 -0
  452. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  453. package/dist/components/ui/tabs/tabs.d.ts +23 -0
  454. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  455. package/dist/components/ui/tabs/tabs.js +43 -0
  456. package/dist/components/ui/tabs/tabs.js.map +1 -0
  457. package/dist/components/ui/textarea/index.d.ts +2 -0
  458. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  459. package/dist/components/ui/textarea/textarea.d.ts +14 -0
  460. package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
  461. package/dist/components/ui/textarea/textarea.js +30 -0
  462. package/dist/components/ui/textarea/textarea.js.map +1 -0
  463. package/dist/components/ui/toast/index.d.ts +2 -0
  464. package/dist/components/ui/toast/index.d.ts.map +1 -0
  465. package/dist/components/ui/toast/toast.d.ts +68 -0
  466. package/dist/components/ui/toast/toast.d.ts.map +1 -0
  467. package/dist/components/ui/toast/toast.js +186 -0
  468. package/dist/components/ui/toast/toast.js.map +1 -0
  469. package/dist/components/ui/toggle/index.d.ts +2 -0
  470. package/dist/components/ui/toggle/index.d.ts.map +1 -0
  471. package/dist/components/ui/toggle/toggle.d.ts +22 -0
  472. package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
  473. package/dist/components/ui/toggle/toggle.js +64 -0
  474. package/dist/components/ui/toggle/toggle.js.map +1 -0
  475. package/dist/components/ui/toggle-group/index.d.ts +2 -0
  476. package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
  477. package/dist/components/ui/toggle-group/toggle-group.d.ts +35 -0
  478. package/dist/components/ui/toggle-group/toggle-group.d.ts.map +1 -0
  479. package/dist/components/ui/toggle-group/toggle-group.js +38 -0
  480. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -0
  481. package/dist/components/ui/tooltip/index.d.ts +2 -0
  482. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  483. package/dist/components/ui/tooltip/tooltip.d.ts +18 -0
  484. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
  485. package/dist/components/ui/tooltip/tooltip.js +67 -0
  486. package/dist/components/ui/tooltip/tooltip.js.map +1 -0
  487. package/dist/index.d.ts +96 -19
  488. package/dist/index.d.ts.map +1 -0
  489. package/dist/index.js +90 -20
  490. package/dist/lib/keyed-rows.d.ts +36 -0
  491. package/dist/lib/keyed-rows.d.ts.map +1 -0
  492. package/dist/lib/keyed-rows.js +53 -0
  493. package/dist/lib/keyed-rows.js.map +1 -0
  494. package/dist/lib/keyed-rows.test.d.ts +2 -0
  495. package/dist/lib/keyed-rows.test.d.ts.map +1 -0
  496. package/dist/lib/overlay.d.ts +44 -0
  497. package/dist/lib/overlay.d.ts.map +1 -0
  498. package/dist/lib/overlay.js +57 -0
  499. package/dist/lib/overlay.js.map +1 -0
  500. package/dist/lib/themes.d.ts +197 -0
  501. package/dist/lib/themes.d.ts.map +1 -0
  502. package/dist/lib/themes.js +303 -0
  503. package/dist/lib/themes.js.map +1 -0
  504. package/dist/lib/tokens.d.ts +103 -0
  505. package/dist/lib/tokens.d.ts.map +1 -0
  506. package/dist/lib/tokens.js +805 -0
  507. package/dist/lib/tokens.js.map +1 -0
  508. package/dist/lib/utils.d.ts +27 -0
  509. package/dist/lib/utils.d.ts.map +1 -0
  510. package/dist/lib/utils.js +61 -3
  511. package/dist/lib/utils.js.map +1 -0
  512. package/dist/lib/variants.d.ts +57 -0
  513. package/dist/lib/variants.d.ts.map +1 -0
  514. package/dist/lib/variants.js +49 -0
  515. package/dist/lib/variants.js.map +1 -0
  516. package/dist/lib/version-notes.d.ts +24 -0
  517. package/dist/lib/version-notes.d.ts.map +1 -0
  518. package/dist/lib/version-notes.js +41 -1
  519. package/dist/lib/version-notes.js.map +1 -0
  520. package/dist/r/accordion.json +23 -0
  521. package/dist/r/account-menu.json +25 -0
  522. package/dist/r/alert-dialog.json +22 -0
  523. package/dist/r/alert.json +22 -0
  524. package/dist/r/app-shell.json +20 -0
  525. package/dist/r/aspect-ratio.json +20 -0
  526. package/dist/r/avatar.json +20 -0
  527. package/dist/r/badge.json +22 -0
  528. package/dist/r/board.json +20 -0
  529. package/dist/r/breadcrumb.json +22 -0
  530. package/dist/r/button-group.json +22 -0
  531. package/dist/r/button.json +22 -0
  532. package/dist/r/calendar.json +25 -0
  533. package/dist/r/card.json +20 -0
  534. package/dist/r/carousel.json +26 -0
  535. package/dist/r/chart.json +23 -0
  536. package/dist/r/checkbox.json +23 -0
  537. package/dist/r/code-block.json +24 -0
  538. package/dist/r/collapsible.json +22 -0
  539. package/dist/r/combobox.json +23 -0
  540. package/dist/r/command.json +23 -0
  541. package/dist/r/context-menu.json +23 -0
  542. package/dist/r/conversation.json +48 -0
  543. package/dist/r/detail-panel.json +24 -0
  544. package/dist/r/dialog.json +23 -0
  545. package/dist/r/diff-block.json +20 -0
  546. package/dist/r/drawer.json +22 -0
  547. package/dist/r/dropdown-menu.json +23 -0
  548. package/dist/r/empty.json +20 -0
  549. package/dist/r/entity-icon.json +20 -0
  550. package/dist/r/field.json +22 -0
  551. package/dist/r/hover-card.json +22 -0
  552. package/dist/r/input-group.json +20 -0
  553. package/dist/r/input-otp.json +22 -0
  554. package/dist/r/input.json +20 -0
  555. package/dist/r/item.json +20 -0
  556. package/dist/r/kbd.json +20 -0
  557. package/dist/r/label.json +20 -0
  558. package/dist/r/list-row.json +22 -0
  559. package/dist/r/menubar.json +23 -0
  560. package/dist/r/modal-dialog.json +22 -0
  561. package/dist/r/navigation-menu.json +23 -0
  562. package/dist/r/page.json +20 -0
  563. package/dist/r/pagination.json +23 -0
  564. package/dist/r/panel.json +20 -0
  565. package/dist/r/popover.json +22 -0
  566. package/dist/r/progress.json +22 -0
  567. package/dist/r/radio-group.json +23 -0
  568. package/dist/r/registry.json +1676 -0
  569. package/dist/r/resizable.json +23 -0
  570. package/dist/r/scroll-area.json +20 -0
  571. package/dist/r/select.json +23 -0
  572. package/dist/r/separator.json +22 -0
  573. package/dist/r/settings.json +20 -0
  574. package/dist/r/sheet.json +25 -0
  575. package/dist/r/side-rail.json +27 -0
  576. package/dist/r/sidebar-nav.json +23 -0
  577. package/dist/r/skeleton.json +20 -0
  578. package/dist/r/slider.json +22 -0
  579. package/dist/r/spinner.json +22 -0
  580. package/dist/r/stat.json +22 -0
  581. package/dist/r/status-bar.json +20 -0
  582. package/dist/r/status-chip.json +22 -0
  583. package/dist/r/switch.json +22 -0
  584. package/dist/r/table.json +20 -0
  585. package/dist/r/tabs.json +22 -0
  586. package/dist/r/textarea.json +20 -0
  587. package/dist/r/theme.json +36 -0
  588. package/dist/r/toast.json +23 -0
  589. package/dist/r/toggle-group.json +24 -0
  590. package/dist/r/toggle.json +22 -0
  591. package/dist/r/tooltip.json +22 -0
  592. package/dist/r/top-bar.json +20 -0
  593. package/dist/r/update-dialog.json +27 -0
  594. package/dist/r/workspace-mark.json +22 -0
  595. package/package.json +75 -21
  596. package/registry.json +1676 -0
  597. package/src/components/composites/account-menu/account-menu.tsx +150 -0
  598. package/src/components/composites/account-menu/index.ts +1 -0
  599. package/src/components/composites/list-row/index.ts +1 -0
  600. package/src/components/composites/list-row/list-row.tsx +116 -0
  601. package/src/components/composites/settings/index.ts +1 -0
  602. package/src/components/composites/settings/settings.tsx +142 -0
  603. package/src/components/composites/stat/index.ts +9 -0
  604. package/src/components/composites/stat/stat.tsx +155 -0
  605. package/src/components/composites/update-dialog/index.ts +7 -0
  606. package/src/components/composites/update-dialog/update-dialog.tsx +529 -0
  607. package/src/components/composites/workspace-mark/index.ts +1 -0
  608. package/src/components/composites/workspace-mark/workspace-mark.tsx +72 -0
  609. package/src/components/conversation/conversation-avatar.tsx +60 -0
  610. package/src/components/conversation/conversation-surface.tsx +107 -0
  611. package/src/components/conversation/index.ts +25 -0
  612. package/src/components/conversation/message-composer.tsx +239 -0
  613. package/src/components/conversation/message-row.tsx +387 -0
  614. package/src/components/conversation/thread-panel.tsx +141 -0
  615. package/src/components/layout/app-shell/app-shell.tsx +92 -0
  616. package/src/components/layout/app-shell/index.ts +1 -0
  617. package/src/components/layout/page/index.ts +9 -0
  618. package/src/components/layout/page/page.tsx +122 -0
  619. package/src/components/layout/panel/index.ts +12 -0
  620. package/src/components/layout/panel/panel.tsx +166 -0
  621. package/src/components/layout/side-rail/index.ts +12 -0
  622. package/src/components/layout/side-rail/side-rail-context.ts +42 -0
  623. package/src/components/layout/side-rail/side-rail.tsx +405 -0
  624. package/src/components/layout/sidebar-nav/index.ts +14 -0
  625. package/src/components/layout/sidebar-nav/sidebar-nav.tsx +244 -0
  626. package/src/components/layout/status-bar/index.ts +1 -0
  627. package/src/components/layout/status-bar/status-bar.tsx +73 -0
  628. package/src/components/layout/top-bar/index.ts +10 -0
  629. package/src/components/layout/top-bar/top-bar.tsx +166 -0
  630. package/src/components/motion/index.ts +2 -0
  631. package/src/components/motion/presence.tsx +32 -0
  632. package/src/components/theme/appearance-panel.tsx +179 -0
  633. package/src/components/theme/index.ts +22 -0
  634. package/src/components/theme/theme-picker.tsx +174 -0
  635. package/src/components/theme/theme-provider.tsx +309 -0
  636. package/src/components/theme/theme-toggle.tsx +64 -0
  637. package/src/components/ui/accordion/accordion.tsx +66 -0
  638. package/src/components/ui/accordion/index.ts +1 -0
  639. package/src/components/ui/alert/alert.tsx +95 -0
  640. package/src/components/ui/alert/index.ts +1 -0
  641. package/src/components/ui/alert-dialog/alert-dialog.tsx +176 -0
  642. package/src/components/ui/alert-dialog/index.ts +13 -0
  643. package/src/components/ui/aspect-ratio/aspect-ratio.tsx +38 -0
  644. package/src/components/ui/aspect-ratio/index.ts +1 -0
  645. package/src/components/ui/avatar/avatar.tsx +114 -0
  646. package/src/components/ui/avatar/index.ts +9 -0
  647. package/src/components/ui/badge/badge.tsx +59 -0
  648. package/src/components/ui/badge/index.ts +1 -0
  649. package/src/components/ui/board/board.tsx +254 -0
  650. package/src/components/ui/board/index.ts +10 -0
  651. package/src/components/ui/breadcrumb/breadcrumb.tsx +117 -0
  652. package/src/components/ui/breadcrumb/index.ts +9 -0
  653. package/src/components/ui/button/button.tsx +89 -0
  654. package/src/components/ui/button/index.ts +1 -0
  655. package/src/components/ui/button-group/button-group.tsx +92 -0
  656. package/src/components/ui/button-group/index.ts +6 -0
  657. package/src/components/ui/calendar/calendar.tsx +277 -0
  658. package/src/components/ui/calendar/index.ts +1 -0
  659. package/src/components/ui/card/card.tsx +82 -0
  660. package/src/components/ui/card/index.ts +10 -0
  661. package/src/components/ui/carousel/carousel.tsx +209 -0
  662. package/src/components/ui/carousel/index.ts +1 -0
  663. package/src/components/ui/chart/chart.tsx +413 -0
  664. package/src/components/ui/chart/index.ts +17 -0
  665. package/src/components/ui/checkbox/checkbox.tsx +99 -0
  666. package/src/components/ui/checkbox/index.ts +1 -0
  667. package/src/components/ui/code-block/code-block.tsx +238 -0
  668. package/src/components/ui/code-block/index.ts +1 -0
  669. package/src/components/ui/collapsible/collapsible.tsx +54 -0
  670. package/src/components/ui/collapsible/index.ts +1 -0
  671. package/src/components/ui/combobox/combobox.tsx +142 -0
  672. package/src/components/ui/combobox/index.ts +10 -0
  673. package/src/components/ui/command/command.tsx +214 -0
  674. package/src/components/ui/command/index.ts +12 -0
  675. package/src/components/ui/context-menu/context-menu.tsx +163 -0
  676. package/src/components/ui/context-menu/index.ts +15 -0
  677. package/src/components/ui/detail-panel/detail-panel.tsx +161 -0
  678. package/src/components/ui/detail-panel/index.ts +9 -0
  679. package/src/components/ui/dialog/dialog.tsx +138 -0
  680. package/src/components/ui/dialog/index.ts +14 -0
  681. package/src/components/ui/diff-block/diff-block.tsx +286 -0
  682. package/src/components/ui/diff-block/index.ts +11 -0
  683. package/src/components/ui/drawer/drawer.tsx +144 -0
  684. package/src/components/ui/drawer/index.ts +13 -0
  685. package/src/components/ui/dropdown-menu/dropdown-menu.tsx +203 -0
  686. package/src/components/ui/dropdown-menu/index.ts +18 -0
  687. package/src/components/ui/empty/empty.tsx +104 -0
  688. package/src/components/ui/empty/index.ts +10 -0
  689. package/src/components/ui/entity-icon/entity-icon.tsx +154 -0
  690. package/src/components/ui/entity-icon/index.ts +1 -0
  691. package/src/components/ui/field/field.tsx +131 -0
  692. package/src/components/ui/field/index.ts +11 -0
  693. package/src/components/ui/hover-card/hover-card.tsx +48 -0
  694. package/src/components/ui/hover-card/index.ts +1 -0
  695. package/src/components/ui/input/index.ts +1 -0
  696. package/src/components/ui/input/input.tsx +41 -0
  697. package/src/components/ui/input-group/index.ts +8 -0
  698. package/src/components/ui/input-group/input-group.tsx +111 -0
  699. package/src/components/ui/input-otp/index.ts +1 -0
  700. package/src/components/ui/input-otp/input-otp.tsx +108 -0
  701. package/src/components/ui/item/index.ts +10 -0
  702. package/src/components/ui/item/item.tsx +146 -0
  703. package/src/components/ui/kbd/index.ts +1 -0
  704. package/src/components/ui/kbd/kbd.tsx +42 -0
  705. package/src/components/ui/label/index.ts +1 -0
  706. package/src/components/ui/label/label.tsx +36 -0
  707. package/src/components/ui/menubar/index.ts +16 -0
  708. package/src/components/ui/menubar/menubar.tsx +190 -0
  709. package/src/components/ui/modal-dialog/index.ts +1 -0
  710. package/src/components/ui/modal-dialog/modal-dialog.tsx +95 -0
  711. package/src/components/ui/navigation-menu/index.ts +13 -0
  712. package/src/components/ui/navigation-menu/navigation-menu.tsx +229 -0
  713. package/src/components/ui/pagination/index.ts +8 -0
  714. package/src/components/ui/pagination/pagination.tsx +144 -0
  715. package/src/components/ui/popover/index.ts +10 -0
  716. package/src/components/ui/popover/popover.tsx +81 -0
  717. package/src/components/ui/progress/index.ts +1 -0
  718. package/src/components/ui/progress/progress.tsx +67 -0
  719. package/src/components/ui/radio-group/index.ts +1 -0
  720. package/src/components/ui/radio-group/radio-group.tsx +78 -0
  721. package/src/components/ui/resizable/index.ts +6 -0
  722. package/src/components/ui/resizable/resizable.tsx +74 -0
  723. package/src/components/ui/scroll-area/index.ts +1 -0
  724. package/src/components/ui/scroll-area/scroll-area.tsx +66 -0
  725. package/src/components/ui/select/index.ts +11 -0
  726. package/src/components/ui/select/select.tsx +188 -0
  727. package/src/components/ui/separator/index.ts +1 -0
  728. package/src/components/ui/separator/separator.tsx +40 -0
  729. package/src/components/ui/sheet/index.ts +13 -0
  730. package/src/components/ui/sheet/sheet.tsx +132 -0
  731. package/src/components/ui/skeleton/index.ts +1 -0
  732. package/src/components/ui/skeleton/skeleton.tsx +28 -0
  733. package/src/components/ui/slider/index.ts +1 -0
  734. package/src/components/ui/slider/slider.tsx +81 -0
  735. package/src/components/ui/spinner/index.ts +1 -0
  736. package/src/components/ui/spinner/spinner.tsx +58 -0
  737. package/src/components/ui/status-chip/index.ts +8 -0
  738. package/src/components/ui/status-chip/status-chip.tsx +142 -0
  739. package/src/components/ui/switch/index.ts +1 -0
  740. package/src/components/ui/switch/switch.tsx +100 -0
  741. package/src/components/ui/table/index.ts +11 -0
  742. package/src/components/ui/table/table.tsx +125 -0
  743. package/src/components/ui/tabs/index.ts +8 -0
  744. package/src/components/ui/tabs/tabs.tsx +77 -0
  745. package/src/components/ui/textarea/index.ts +1 -0
  746. package/src/components/ui/textarea/textarea.tsx +36 -0
  747. package/src/components/ui/toast/index.ts +1 -0
  748. package/src/components/ui/toast/toast.tsx +220 -0
  749. package/src/components/ui/toggle/index.ts +1 -0
  750. package/src/components/ui/toggle/toggle.tsx +60 -0
  751. package/src/components/ui/toggle-group/index.ts +6 -0
  752. package/src/components/ui/toggle-group/toggle-group.tsx +66 -0
  753. package/src/components/ui/tooltip/index.ts +9 -0
  754. package/src/components/ui/tooltip/tooltip.tsx +102 -0
  755. package/src/index.ts +154 -0
  756. package/src/lib/keyed-rows.ts +68 -0
  757. package/src/lib/overlay.ts +70 -0
  758. package/src/lib/themes.ts +490 -0
  759. package/src/lib/tokens.ts +688 -0
  760. package/src/lib/utils.ts +74 -4
  761. package/src/lib/variants.ts +62 -0
  762. package/src/lib/version-notes.ts +35 -0
  763. package/src/styles/base.css +489 -484
  764. package/src/styles/fonts.css +26 -0
  765. package/src/styles/globals.css +14 -3
  766. package/src/styles/theme.css +838 -229
  767. package/LICENSE +0 -201
  768. package/dist/components/account-drawer.d.ts +0 -11
  769. package/dist/components/account-drawer.js +0 -120
  770. package/dist/components/appearance.d.ts +0 -261
  771. package/dist/components/appearance.js +0 -802
  772. package/dist/components/on-screen-controls.d.ts +0 -8
  773. package/dist/components/on-screen-controls.js +0 -162
  774. package/dist/components/scene-settings.d.ts +0 -33
  775. package/dist/components/scene-settings.js +0 -253
  776. package/dist/components/theme-preview.d.ts +0 -40
  777. package/dist/components/theme-preview.js +0 -210
  778. package/dist/components/theme-provider.d.ts +0 -52
  779. package/dist/components/theme-provider.js +0 -128
  780. package/dist/components/theme-swatch.d.ts +0 -12
  781. package/dist/components/theme-swatch.js +0 -66
  782. package/dist/components/theme-toggle.d.ts +0 -7
  783. package/dist/components/theme-toggle.js +0 -64
  784. package/dist/components/ui/badge.d.ts +0 -8
  785. package/dist/components/ui/badge.js +0 -34
  786. package/dist/components/ui/button.d.ts +0 -9
  787. package/dist/components/ui/button.js +0 -52
  788. package/dist/components/ui/card.d.ts +0 -4
  789. package/dist/components/ui/card.js +0 -28
  790. package/dist/components/ui/dialog.d.ts +0 -15
  791. package/dist/components/ui/dialog.js +0 -104
  792. package/dist/components/ui/drawer.d.ts +0 -24
  793. package/dist/components/ui/drawer.js +0 -120
  794. package/dist/components/ui/dropdown-menu.d.ts +0 -35
  795. package/dist/components/ui/dropdown-menu.js +0 -180
  796. package/dist/components/ui/empty.d.ts +0 -12
  797. package/dist/components/ui/field.d.ts +0 -25
  798. package/dist/components/ui/field.js +0 -188
  799. package/dist/components/ui/input.d.ts +0 -3
  800. package/dist/components/ui/input.js +0 -22
  801. package/dist/components/ui/label.d.ts +0 -3
  802. package/dist/components/ui/label.js +0 -17
  803. package/dist/components/ui/radio-group.d.ts +0 -5
  804. package/dist/components/ui/radio-group.js +0 -39
  805. package/dist/components/ui/separator.d.ts +0 -7
  806. package/dist/components/ui/separator.js +0 -20
  807. package/dist/components/ui/skeleton.d.ts +0 -3
  808. package/dist/components/ui/skeleton.js +0 -17
  809. package/dist/components/ui/spinner.d.ts +0 -5
  810. package/dist/components/ui/spinner.js +0 -17
  811. package/dist/components/ui/switch.d.ts +0 -8
  812. package/dist/components/ui/switch.js +0 -59
  813. package/dist/components/ui/tabs.d.ts +0 -11
  814. package/dist/components/ui/tabs.js +0 -57
  815. package/dist/components/ui/toggle-group.d.ts +0 -13
  816. package/dist/components/ui/toggle-group.js +0 -95
  817. package/dist/components/ui/toggle.d.ts +0 -10
  818. package/dist/components/ui/toggle.js +0 -41
  819. package/dist/components/ui/tooltip.d.ts +0 -15
  820. package/dist/components/ui/tooltip.js +0 -55
  821. package/dist/components/version-dialog.d.ts +0 -25
  822. package/dist/components/version-dialog.js +0 -330
  823. package/dist/components/workspace-brand.d.ts +0 -5
  824. package/dist/components/workspace-brand.js +0 -13
  825. package/dist/components/workspace-logo.d.ts +0 -3
  826. package/dist/components/workspace-logo.js +0 -17
  827. package/src/components/account-drawer.tsx +0 -114
  828. package/src/components/appearance.ts +0 -1112
  829. package/src/components/on-screen-controls.tsx +0 -149
  830. package/src/components/scene-settings.tsx +0 -199
  831. package/src/components/theme-preview.tsx +0 -170
  832. package/src/components/theme-provider.tsx +0 -214
  833. package/src/components/theme-swatch.tsx +0 -49
  834. package/src/components/theme-toggle.tsx +0 -48
  835. package/src/components/ui/badge.tsx +0 -40
  836. package/src/components/ui/button.tsx +0 -58
  837. package/src/components/ui/card.tsx +0 -21
  838. package/src/components/ui/dialog.tsx +0 -132
  839. package/src/components/ui/drawer.tsx +0 -168
  840. package/src/components/ui/dropdown-menu.tsx +0 -235
  841. package/src/components/ui/empty.tsx +0 -97
  842. package/src/components/ui/field.tsx +0 -220
  843. package/src/components/ui/input.tsx +0 -20
  844. package/src/components/ui/label.tsx +0 -19
  845. package/src/components/ui/radio-group.tsx +0 -41
  846. package/src/components/ui/separator.tsx +0 -28
  847. package/src/components/ui/skeleton.tsx +0 -16
  848. package/src/components/ui/spinner.tsx +0 -20
  849. package/src/components/ui/switch.tsx +0 -59
  850. package/src/components/ui/tabs.tsx +0 -76
  851. package/src/components/ui/toggle-group.tsx +0 -98
  852. package/src/components/ui/toggle.tsx +0 -42
  853. package/src/components/ui/tooltip.tsx +0 -61
  854. package/src/components/version-dialog.tsx +0 -368
  855. package/src/components/workspace-brand.tsx +0 -18
  856. package/src/components/workspace-logo.tsx +0 -21
  857. package/src/index.tsx +0 -53
  858. package/src/styles/auth-shell.css +0 -167
  859. package/src/styles/conventional-workspace.css +0 -2858
  860. package/src/styles/dev-view.css +0 -899
  861. package/src/styles/workspace-shell.css +0 -82
  862. package/tsconfig.json +0 -11
@@ -0,0 +1,148 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { className, createComponent, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
3
+ import { Show, splitProps } from "solid-js";
4
+ //#region src/components/composites/settings/settings.tsx
5
+ var _tmpl$ = /*#__PURE__*/ template(`<p class="max-w-prose text-sm text-muted-foreground text-pretty">`);
6
+ var _tmpl$2 = /*#__PURE__*/ template(`<div class="flex shrink-0 items-center gap-2">`);
7
+ var _tmpl$3 = /*#__PURE__*/ template(`<section data-slot=settings-section><div class="flex items-start justify-between gap-4"><div class="flex min-w-0 flex-col gap-0.5"><h2 class="text-base font-semibold tracking-tight"></h2></div></div><div class="divide-y divide-border rounded-xl border border-border">`);
8
+ var _tmpl$4 = /*#__PURE__*/ template(`<div data-slot=settings-row><div class="flex min-w-0 flex-col gap-0.5"><div data-slot=settings-row-label class="text-sm font-medium"></div></div><div data-slot=settings-row-control>`);
9
+ var _tmpl$5 = /*#__PURE__*/ template(`<div data-slot=settings-field><div class="flex flex-col gap-0.5"><label class="text-sm font-medium"></label></div><div>`);
10
+ var _tmpl$6 = /*#__PURE__*/ template(`<div data-slot=settings-page>`);
11
+ /**
12
+ * SettingsSection and SettingsRow.
13
+ *
14
+ * A settings page is the most repetitive surface in any application, and the
15
+ * one where drift is most visible: label sizes, control widths and description
16
+ * placement all wander unless something fixes them.
17
+ *
18
+ * The row is a two-column layout at a fixed label width, so controls line up
19
+ * down the page regardless of how long the labels are. That alignment is the
20
+ * difference between a settings page that reads as designed and one that reads
21
+ * as a form.
22
+ *
23
+ * `SettingsRow` puts the control on the trailing side and the label leading;
24
+ * `SettingsField` stacks them for a control too wide for a row (a textarea, a
25
+ * list). Both share the same label and description treatment.
26
+ */
27
+ function SettingsSection(props) {
28
+ const [local, rest] = splitProps(props, [
29
+ "class",
30
+ "title",
31
+ "description",
32
+ "action",
33
+ "children"
34
+ ]);
35
+ return (() => {
36
+ var _el$ = _tmpl$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$7 = _el$2.nextSibling;
37
+ spread(_el$, mergeProps({ get ["class"]() {
38
+ return cn("flex flex-col gap-4 px-5 py-5", local.class);
39
+ } }, rest), false, true);
40
+ insert(_el$4, () => local.title);
41
+ insert(_el$3, createComponent(Show, {
42
+ get when() {
43
+ return local.description;
44
+ },
45
+ get children() {
46
+ var _el$5 = _tmpl$();
47
+ insert(_el$5, () => local.description);
48
+ return _el$5;
49
+ }
50
+ }), null);
51
+ insert(_el$2, createComponent(Show, {
52
+ get when() {
53
+ return local.action;
54
+ },
55
+ get children() {
56
+ var _el$6 = _tmpl$2();
57
+ insert(_el$6, () => local.action);
58
+ return _el$6;
59
+ }
60
+ }), null);
61
+ insert(_el$7, () => local.children);
62
+ return _el$;
63
+ })();
64
+ }
65
+ /**
66
+ * One setting: a label and description on the leading side, a control on the
67
+ * trailing side.
68
+ *
69
+ * `label` is wired to the control through `aria-labelledby` when the control is
70
+ * not already labelled, so a caller can pass a bare `Switch` and still get an
71
+ * accessible name. The row does not invent an id per render — it derives one
72
+ * from the label, which is stable across renders and readable in a snapshot.
73
+ */
74
+ function SettingsRow(props) {
75
+ const [local, rest] = splitProps(props, [
76
+ "class",
77
+ "label",
78
+ "description",
79
+ "orientation",
80
+ "bare",
81
+ "children"
82
+ ]);
83
+ return (() => {
84
+ var _el$8 = _tmpl$4(), _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$10 = _el$9.nextSibling;
85
+ spread(_el$8, mergeProps({ get ["class"]() {
86
+ return cn("flex gap-4 p-4", local.orientation === "vertical" ? "flex-col" : "flex-col sm:flex-row sm:items-center sm:justify-between", local.class);
87
+ } }, rest), false, true);
88
+ insert(_el$0, () => local.label);
89
+ insert(_el$9, createComponent(Show, {
90
+ get when() {
91
+ return local.description;
92
+ },
93
+ get children() {
94
+ var _el$1 = _tmpl$();
95
+ insert(_el$1, () => local.description);
96
+ return _el$1;
97
+ }
98
+ }), null);
99
+ insert(_el$10, () => local.children);
100
+ effect(() => className(_el$10, cn("shrink-0", local.orientation === "vertical" && "w-full")));
101
+ return _el$8;
102
+ })();
103
+ }
104
+ /** A stacked label-and-control pair, for a control too wide for a row. */
105
+ function SettingsField(props) {
106
+ const [local, rest] = splitProps(props, [
107
+ "class",
108
+ "label",
109
+ "description",
110
+ "htmlFor",
111
+ "children"
112
+ ]);
113
+ return (() => {
114
+ var _el$11 = _tmpl$5(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$15 = _el$12.nextSibling;
115
+ spread(_el$11, mergeProps({ get ["class"]() {
116
+ return cn("flex flex-col gap-2 p-4", local.class);
117
+ } }, rest), false, true);
118
+ insert(_el$13, () => local.label);
119
+ insert(_el$12, createComponent(Show, {
120
+ get when() {
121
+ return local.description;
122
+ },
123
+ get children() {
124
+ var _el$14 = _tmpl$();
125
+ insert(_el$14, () => local.description);
126
+ return _el$14;
127
+ }
128
+ }), null);
129
+ insert(_el$15, () => local.children);
130
+ effect(() => setAttribute(_el$13, "for", local.htmlFor));
131
+ return _el$11;
132
+ })();
133
+ }
134
+ /** A settings page's scrolling body, with the header sticky at the top. */
135
+ function SettingsPage(props) {
136
+ const [local, rest] = splitProps(props, ["class"]);
137
+ return (() => {
138
+ var _el$16 = _tmpl$6();
139
+ spread(_el$16, mergeProps({ get ["class"]() {
140
+ return cn("flex min-h-0 flex-1 flex-col overflow-y-auto", local.class);
141
+ } }, rest), false, false);
142
+ return _el$16;
143
+ })();
144
+ }
145
+ //#endregion
146
+ export { SettingsField, SettingsPage, SettingsRow, SettingsSection };
147
+
148
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","names":["ComponentProps","JSX","Show","splitProps","cn","SettingsSection","props","title","description","action","Element","local","rest","_el$","_tmpl$3","_el$2","firstChild","_el$3","_el$4","_el$7","nextSibling","_$spread","_$mergeProps","class","_$insert","_$createComponent","when","children","_el$5","_tmpl$","_el$6","_tmpl$2","SettingsRow","label","orientation","bare","_el$8","_tmpl$4","_el$9","_el$0","_el$10","_el$1","_$effect","_$className","SettingsField","htmlFor","_el$11","_tmpl$5","_el$12","_el$13","_el$15","_el$14","_$setAttribute","SettingsPage","_el$16","_tmpl$6","_$mergeProps","_$createComponent","_$className","_$setAttribute"],"sources":["../../../../src/components/composites/settings/settings.tsx"],"sourcesContent":["import type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * SettingsSection and SettingsRow.\n *\n * A settings page is the most repetitive surface in any application, and the\n * one where drift is most visible: label sizes, control widths and description\n * placement all wander unless something fixes them.\n *\n * The row is a two-column layout at a fixed label width, so controls line up\n * down the page regardless of how long the labels are. That alignment is the\n * difference between a settings page that reads as designed and one that reads\n * as a form.\n *\n * `SettingsRow` puts the control on the trailing side and the label leading;\n * `SettingsField` stacks them for a control too wide for a row (a textarea, a\n * list). Both share the same label and description treatment.\n */\nexport function SettingsSection(\n props: ComponentProps<'section'> & {\n title: string\n description?: string\n /** A control for the section as a whole, e.g. a master toggle. */\n action?: JSX.Element\n }\n) {\n const [local, rest] = splitProps(props, ['class', 'title', 'description', 'action', 'children'])\n\n return (\n <section\n data-slot=\"settings-section\"\n class={cn('flex flex-col gap-4 px-5 py-5', local.class)}\n {...rest}\n >\n <div class=\"flex items-start justify-between gap-4\">\n <div class=\"flex min-w-0 flex-col gap-0.5\">\n <h2 class=\"text-base font-semibold tracking-tight\">{local.title}</h2>\n <Show when={local.description}>\n <p class=\"max-w-prose text-sm text-muted-foreground text-pretty\">{local.description}</p>\n </Show>\n </div>\n <Show when={local.action}>\n <div class=\"flex shrink-0 items-center gap-2\">{local.action}</div>\n </Show>\n </div>\n <div class=\"divide-y divide-border rounded-xl border border-border\">{local.children}</div>\n </section>\n )\n}\n\n/**\n * One setting: a label and description on the leading side, a control on the\n * trailing side.\n *\n * `label` is wired to the control through `aria-labelledby` when the control is\n * not already labelled, so a caller can pass a bare `Switch` and still get an\n * accessible name. The row does not invent an id per render — it derives one\n * from the label, which is stable across renders and readable in a snapshot.\n */\nexport function SettingsRow(\n props: ComponentProps<'div'> & {\n label: string\n description?: string\n /** Render a vertical stack when the control needs the full width. */\n orientation?: 'horizontal' | 'vertical'\n /** Hide the divider this row would otherwise contribute. */\n bare?: boolean\n }\n) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'label',\n 'description',\n 'orientation',\n 'bare',\n 'children',\n ])\n\n return (\n <div\n data-slot=\"settings-row\"\n class={cn(\n 'flex gap-4 p-4',\n local.orientation === 'vertical'\n ? 'flex-col'\n : 'flex-col sm:flex-row sm:items-center sm:justify-between',\n local.class\n )}\n {...rest}\n >\n <div class=\"flex min-w-0 flex-col gap-0.5\">\n <div data-slot=\"settings-row-label\" class=\"text-sm font-medium\">\n {local.label}\n </div>\n <Show when={local.description}>\n <p class=\"max-w-prose text-sm text-muted-foreground text-pretty\">{local.description}</p>\n </Show>\n </div>\n <div\n data-slot=\"settings-row-control\"\n class={cn('shrink-0', local.orientation === 'vertical' && 'w-full')}\n >\n {local.children}\n </div>\n </div>\n )\n}\n\n/** A stacked label-and-control pair, for a control too wide for a row. */\nexport function SettingsField(\n props: ComponentProps<'div'> & { label: string; description?: string; htmlFor?: string }\n) {\n const [local, rest] = splitProps(props, ['class', 'label', 'description', 'htmlFor', 'children'])\n\n return (\n <div data-slot=\"settings-field\" class={cn('flex flex-col gap-2 p-4', local.class)} {...rest}>\n <div class=\"flex flex-col gap-0.5\">\n <label for={local.htmlFor} class=\"text-sm font-medium\">\n {local.label}\n </label>\n <Show when={local.description}>\n <p class=\"max-w-prose text-sm text-muted-foreground text-pretty\">{local.description}</p>\n </Show>\n </div>\n <div>{local.children}</div>\n </div>\n )\n}\n\n/** A settings page's scrolling body, with the header sticky at the top. */\nexport function SettingsPage(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <div\n data-slot=\"settings-page\"\n class={cn('flex min-h-0 flex-1 flex-col overflow-y-auto', local.class)}\n {...rest}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAAgBK,gBACdC,OAMA;CACA,MAAM,CAACK,OAAOC,QAAQT,WAAWG,OAAO;EAAC;EAAS;EAAS;EAAe;EAAU;CAAU,CAAC;CAE/F,cAAA;EAAA,IAAAO,OAAAC,QAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAD,YAAAG,QAAAJ,MAAAK;EAAAC,OAAAR,MAAAS,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWlB,GAAG,iCAAiCO,MAAMY,KAAK;EAAC,EAAA,GACnDX,IAAI,GAAA,OAAA,IAAA;EAAAY,OAAAN,aAIgDP,MAAMJ,KAAK;EAAAiB,OAAAP,OAAAQ,gBAC9DvB,MAAI;GAAA,IAACwB,OAAI;IAAA,OAAEf,MAAMH;GAAW;GAAA,IAAAmB,WAAA;IAAA,IAAAC,QAAAC,OAAA;IAAAL,OAAAI,aACuCjB,MAAMH,WAAW;IAAA,OAAAoB;GAAA;EAAA,CAAA,GAAA,IAAA;EAAAJ,OAAAT,OAAAU,gBAGtFvB,MAAI;GAAA,IAACwB,OAAI;IAAA,OAAEf,MAAMF;GAAM;GAAA,IAAAkB,WAAA;IAAA,IAAAG,QAAAC,QAAA;IAAAP,OAAAM,aACyBnB,MAAMF,MAAM;IAAA,OAAAqB;GAAA;EAAA,CAAA,GAAA,IAAA;EAAAN,OAAAL,aAGMR,MAAMgB,QAAQ;EAAA,OAAAd;CAAA,EAAA,CAAA;AAGzF;;;;;;;;;;AAWA,SAAgBmB,YACd1B,OAQA;CACA,MAAM,CAACK,OAAOC,QAAQT,WAAWG,OAAO;EACtC;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,cAAA;EAAA,IAAA8B,QAAAC,QAAA,GAAAC,QAAAF,MAAApB,YAAAuB,QAAAD,MAAAtB,YAAAwB,SAAAF,MAAAlB;EAAAC,OAAAe,OAAAd,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWlB,GACL,kBACAO,MAAMuB,gBAAgB,aAClB,aACA,2DACJvB,MAAMY,KACR;EAAC,EAAA,GACGX,IAAI,GAAA,OAAA,IAAA;EAAAY,OAAAe,aAIH5B,MAAMsB,KAAK;EAAAT,OAAAc,OAAAb,gBAEbvB,MAAI;GAAA,IAACwB,OAAI;IAAA,OAAEf,MAAMH;GAAW;GAAA,IAAAmB,WAAA;IAAA,IAAAc,QAAAZ,OAAA;IAAAL,OAAAiB,aACuC9B,MAAMH,WAAW;IAAA,OAAAiC;GAAA;EAAA,CAAA,GAAA,IAAA;EAAAjB,OAAAgB,cAOpF7B,MAAMgB,QAAQ;EAAAe,aAAAC,UAAAH,QAFRpC,GAAG,YAAYO,MAAMuB,gBAAgB,cAAc,QAAQ,CAAC,CAAA;EAAA,OAAAE;CAAA,EAAA,CAAA;AAM3E;;AAGA,SAAgBQ,cACdtC,OACA;CACA,MAAM,CAACK,OAAOC,QAAQT,WAAWG,OAAO;EAAC;EAAS;EAAS;EAAe;EAAW;CAAU,CAAC;CAEhG,cAAA;EAAA,IAAAwC,SAAAC,QAAA,GAAAC,SAAAF,OAAA9B,YAAAiC,SAAAD,OAAAhC,YAAAkC,SAAAF,OAAA5B;EAAAC,OAAAyB,QAAAxB,WAAA,EAAA,KAAA,WAAA;GAAA,OACyClB,GAAG,2BAA2BO,MAAMY,KAAK;EAAC,EAAA,GAAMX,IAAI,GAAA,OAAA,IAAA;EAAAY,OAAAyB,cAGpFtC,MAAMsB,KAAK;EAAAT,OAAAwB,QAAAvB,gBAEbvB,MAAI;GAAA,IAACwB,OAAI;IAAA,OAAEf,MAAMH;GAAW;GAAA,IAAAmB,WAAA;IAAA,IAAAwB,SAAAtB,OAAA;IAAAL,OAAA2B,cACuCxC,MAAMH,WAAW;IAAA,OAAA2C;GAAA;EAAA,CAAA,GAAA,IAAA;EAAA3B,OAAA0B,cAGjFvC,MAAMgB,QAAQ;EAAAe,aAAAU,aAAAH,QAAA,OAPNtC,MAAMkC,OAAO,CAAA;EAAA,OAAAC;CAAA,EAAA,CAAA;AAUjC;;AAGA,SAAgBO,aAAa/C,OAA8B;CACzD,MAAM,CAACK,OAAOC,QAAQT,WAAWG,OAAO,CAAC,OAAO,CAAC;CACjD,cAAA;EAAA,IAAAgD,SAAAC,QAAA;EAAAlC,OAAAiC,QAAAhC,WAAA,EAAA,KAAA,WAAA;GAAA,OAGWlB,GAAG,gDAAgDO,MAAMY,KAAK;EAAC,EAAA,GAClEX,IAAI,GAAA,OAAA,KAAA;EAAA,OAAA0C;CAAA,EAAA,CAAA;AAGd"}
@@ -0,0 +1,2 @@
1
+ export { PropertyList, PropertyRow, PropertyTerm, PropertyValue, Stat, StatGroup, type StatProps, } from './stat';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/composites/stat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,EACT,KAAK,SAAS,GACf,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,48 @@
1
+ import type { ComponentProps, JSX } from 'solid-js';
2
+ /**
3
+ * Stat.
4
+ *
5
+ * A single measured number with its label and, optionally, its change. The
6
+ * whole component is a decision about honesty: a value shown without its
7
+ * comparison is not information, so `delta` carries the direction, the amount
8
+ * and — through `deltaTone` — whether the direction is *good*. A rising number
9
+ * is not always a rising outcome, and only the caller knows which way is which.
10
+ *
11
+ * `tabular-nums` on the value is what lets two stats in a row be compared
12
+ * without the digits shifting under the reader.
13
+ */
14
+ export type StatProps = ComponentProps<'div'> & {
15
+ label: string;
16
+ value: JSX.Element;
17
+ /** A unit or qualifier after the value, e.g. "ms", "of 10". */
18
+ unit?: string;
19
+ /** The change, e.g. "+12% from last week". */
20
+ delta?: string;
21
+ /** Whether the change is an improvement. Decides the arrow and the colour. */
22
+ deltaTone?: 'up' | 'down' | 'neutral';
23
+ /** Draws the leading accent rule used for a row of headline numbers. */
24
+ accent?: boolean;
25
+ };
26
+ export declare function Stat(props: StatProps): JSX.Element;
27
+ /** A row of stats that shares one gap and wraps as the window narrows. */
28
+ export declare function StatGroup(props: ComponentProps<'div'>): JSX.Element;
29
+ /**
30
+ * PropertyList.
31
+ *
32
+ * A definition list for read-only metadata: the details of a file, a session, a
33
+ * build. This is a `<dl>`, not a table and not a grid of divs, because the
34
+ * relationship being expressed is term-and-definition and the platform has an
35
+ * element for exactly that.
36
+ *
37
+ * Values are selectable by default. Metadata is the thing users copy most and
38
+ * get the least often: a commit hash behind a drag-to-select gesture is a small
39
+ * daily failure.
40
+ */
41
+ export declare function PropertyList(props: ComponentProps<'dl'>): JSX.Element;
42
+ export declare function PropertyTerm(props: ComponentProps<'dt'>): JSX.Element;
43
+ export declare function PropertyValue(props: ComponentProps<'dd'>): JSX.Element;
44
+ /** A single term/value pair, for a list built one row at a time. */
45
+ export declare function PropertyRow(props: ComponentProps<'div'> & {
46
+ term: string;
47
+ }): JSX.Element;
48
+ //# sourceMappingURL=stat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../../src/components/composites/stat/stat.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAKnD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,GAAG,CAAC,OAAO,CAAA;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,eAkDpC;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eASrD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,eASvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,eASvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,eASxD;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,eAa1E"}
@@ -0,0 +1,148 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { Dynamic, className, createComponent, effect, insert, mergeProps, spread, template } from "solid-js/web";
3
+ import { ArrowDownRight, ArrowUpRight } from "lucide-solid";
4
+ import { Show, splitProps } from "solid-js";
5
+ //#region src/components/composites/stat/stat.tsx
6
+ var _tmpl$ = /*#__PURE__*/ template(`<span class="text-muted-foreground text-xs">`);
7
+ var _tmpl$2 = /*#__PURE__*/ template(`<div><span class=tabular-nums>`);
8
+ var _tmpl$3 = /*#__PURE__*/ template(`<div data-slot=stat><div class="text-muted-foreground truncate text-xs font-medium"></div><div class="flex items-baseline gap-1"><span class="text-xl font-semibold tabular-nums tracking-tight">`);
9
+ var _tmpl$4 = /*#__PURE__*/ template(`<div data-slot=stat-group>`);
10
+ var _tmpl$5 = /*#__PURE__*/ template(`<dl data-slot=property-list>`);
11
+ var _tmpl$6 = /*#__PURE__*/ template(`<dt data-slot=property-term>`);
12
+ var _tmpl$7 = /*#__PURE__*/ template(`<dd data-slot=property-value>`);
13
+ var _tmpl$8 = /*#__PURE__*/ template(`<div data-slot=property-row><span class="text-muted-foreground shrink-0"></span><span class="min-w-0 truncate text-end select-text">`);
14
+ function Stat(props) {
15
+ const [local, rest] = splitProps(props, [
16
+ "class",
17
+ "label",
18
+ "value",
19
+ "unit",
20
+ "delta",
21
+ "deltaTone",
22
+ "accent",
23
+ "children"
24
+ ]);
25
+ return (() => {
26
+ var _el$ = _tmpl$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
27
+ spread(_el$, mergeProps({ get ["class"]() {
28
+ return cn("flex min-w-0 flex-col gap-1 rounded-lg border border-border bg-card p-3", { "border-t-2 border-t-primary": local.accent }, local.class);
29
+ } }, rest), false, true);
30
+ insert(_el$2, () => local.label);
31
+ insert(_el$4, () => local.value);
32
+ insert(_el$3, createComponent(Show, {
33
+ get when() {
34
+ return local.unit;
35
+ },
36
+ get children() {
37
+ var _el$5 = _tmpl$();
38
+ insert(_el$5, () => local.unit);
39
+ return _el$5;
40
+ }
41
+ }), null);
42
+ insert(_el$, createComponent(Show, {
43
+ get when() {
44
+ return local.delta;
45
+ },
46
+ get children() {
47
+ var _el$6 = _tmpl$2(), _el$7 = _el$6.firstChild;
48
+ insert(_el$6, createComponent(Show, {
49
+ get when() {
50
+ return local.deltaTone === "up" || local.deltaTone === "down";
51
+ },
52
+ get children() {
53
+ return createComponent(Dynamic, {
54
+ get component() {
55
+ return local.deltaTone === "down" ? ArrowDownRight : ArrowUpRight;
56
+ },
57
+ "aria-hidden": "true",
58
+ "class": "size-3"
59
+ });
60
+ }
61
+ }), _el$7);
62
+ insert(_el$7, () => local.delta);
63
+ effect(() => className(_el$6, cn("flex items-center gap-1 text-xs", {
64
+ "text-success": local.deltaTone === "up",
65
+ "text-destructive": local.deltaTone === "down",
66
+ "text-muted-foreground": local.deltaTone === void 0 || local.deltaTone === "neutral"
67
+ })));
68
+ return _el$6;
69
+ }
70
+ }), null);
71
+ insert(_el$, () => local.children, null);
72
+ return _el$;
73
+ })();
74
+ }
75
+ /** A row of stats that shares one gap and wraps as the window narrows. */
76
+ function StatGroup(props) {
77
+ const [local, rest] = splitProps(props, ["class"]);
78
+ return (() => {
79
+ var _el$8 = _tmpl$4();
80
+ spread(_el$8, mergeProps({ get ["class"]() {
81
+ return cn("grid gap-3 sm:grid-cols-2 lg:grid-cols-4", local.class);
82
+ } }, rest), false, false);
83
+ return _el$8;
84
+ })();
85
+ }
86
+ /**
87
+ * PropertyList.
88
+ *
89
+ * A definition list for read-only metadata: the details of a file, a session, a
90
+ * build. This is a `<dl>`, not a table and not a grid of divs, because the
91
+ * relationship being expressed is term-and-definition and the platform has an
92
+ * element for exactly that.
93
+ *
94
+ * Values are selectable by default. Metadata is the thing users copy most and
95
+ * get the least often: a commit hash behind a drag-to-select gesture is a small
96
+ * daily failure.
97
+ */
98
+ function PropertyList(props) {
99
+ const [local, rest] = splitProps(props, ["class"]);
100
+ return (() => {
101
+ var _el$9 = _tmpl$5();
102
+ spread(_el$9, mergeProps({ get ["class"]() {
103
+ return cn("grid grid-cols-[auto_1fr] items-baseline gap-x-4 gap-y-2 text-sm", local.class);
104
+ } }, rest), false, false);
105
+ return _el$9;
106
+ })();
107
+ }
108
+ function PropertyTerm(props) {
109
+ const [local, rest] = splitProps(props, ["class"]);
110
+ return (() => {
111
+ var _el$0 = _tmpl$6();
112
+ spread(_el$0, mergeProps({ get ["class"]() {
113
+ return cn("text-muted-foreground whitespace-nowrap", local.class);
114
+ } }, rest), false, false);
115
+ return _el$0;
116
+ })();
117
+ }
118
+ function PropertyValue(props) {
119
+ const [local, rest] = splitProps(props, ["class"]);
120
+ return (() => {
121
+ var _el$1 = _tmpl$7();
122
+ spread(_el$1, mergeProps({ get ["class"]() {
123
+ return cn("min-w-0 break-words select-text", local.class);
124
+ } }, rest), false, false);
125
+ return _el$1;
126
+ })();
127
+ }
128
+ /** A single term/value pair, for a list built one row at a time. */
129
+ function PropertyRow(props) {
130
+ const [local, rest] = splitProps(props, [
131
+ "class",
132
+ "term",
133
+ "children"
134
+ ]);
135
+ return (() => {
136
+ var _el$10 = _tmpl$8(), _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling;
137
+ spread(_el$10, mergeProps({ get ["class"]() {
138
+ return cn("flex items-baseline justify-between gap-4 text-sm", local.class);
139
+ } }, rest), false, true);
140
+ insert(_el$11, () => local.term);
141
+ insert(_el$12, () => local.children);
142
+ return _el$10;
143
+ })();
144
+ }
145
+ //#endregion
146
+ export { PropertyList, PropertyRow, PropertyTerm, PropertyValue, Stat, StatGroup };
147
+
148
+ //# sourceMappingURL=stat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.js","names":["ArrowDownRight","ArrowUpRight","ComponentProps","JSX","Show","splitProps","Dynamic","cn","StatProps","label","value","Element","unit","delta","deltaTone","accent","Stat","props","local","rest","_el$","_tmpl$3","_el$2","firstChild","_el$3","nextSibling","_el$4","_$spread","_$mergeProps","class","_$insert","_$createComponent","when","children","_el$5","_tmpl$","_el$6","_tmpl$2","_el$7","component","_$effect","_$className","undefined","StatGroup","_el$8","_tmpl$4","PropertyList","_el$9","_tmpl$5","PropertyTerm","_el$0","_tmpl$6","PropertyValue","_el$1","_tmpl$7","PropertyRow","term","_el$10","_tmpl$8","_el$11","_el$12","_$mergeProps","_$createComponent","_$className"],"sources":["../../../../src/components/composites/stat/stat.tsx"],"sourcesContent":["import { ArrowDownRight, ArrowUpRight } from 'lucide-solid'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { Dynamic } from 'solid-js/web'\nimport { cn } from '#lib/utils'\n\n/**\n * Stat.\n *\n * A single measured number with its label and, optionally, its change. The\n * whole component is a decision about honesty: a value shown without its\n * comparison is not information, so `delta` carries the direction, the amount\n * and — through `deltaTone` — whether the direction is *good*. A rising number\n * is not always a rising outcome, and only the caller knows which way is which.\n *\n * `tabular-nums` on the value is what lets two stats in a row be compared\n * without the digits shifting under the reader.\n */\nexport type StatProps = ComponentProps<'div'> & {\n label: string\n value: JSX.Element\n /** A unit or qualifier after the value, e.g. \"ms\", \"of 10\". */\n unit?: string\n /** The change, e.g. \"+12% from last week\". */\n delta?: string\n /** Whether the change is an improvement. Decides the arrow and the colour. */\n deltaTone?: 'up' | 'down' | 'neutral'\n /** Draws the leading accent rule used for a row of headline numbers. */\n accent?: boolean\n}\n\nexport function Stat(props: StatProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'label',\n 'value',\n 'unit',\n 'delta',\n 'deltaTone',\n 'accent',\n 'children',\n ])\n\n return (\n <div\n data-slot=\"stat\"\n class={cn(\n 'flex min-w-0 flex-col gap-1 rounded-lg border border-border bg-card p-3',\n { 'border-t-2 border-t-primary': local.accent },\n local.class\n )}\n {...rest}\n >\n <div class=\"text-muted-foreground truncate text-xs font-medium\">{local.label}</div>\n <div class=\"flex items-baseline gap-1\">\n <span class=\"text-xl font-semibold tabular-nums tracking-tight\">{local.value}</span>\n <Show when={local.unit}>\n <span class=\"text-muted-foreground text-xs\">{local.unit}</span>\n </Show>\n </div>\n <Show when={local.delta}>\n <div\n class={cn('flex items-center gap-1 text-xs', {\n 'text-success': local.deltaTone === 'up',\n 'text-destructive': local.deltaTone === 'down',\n 'text-muted-foreground': local.deltaTone === undefined || local.deltaTone === 'neutral',\n })}\n >\n <Show when={local.deltaTone === 'up' || local.deltaTone === 'down'}>\n <Dynamic\n component={local.deltaTone === 'down' ? ArrowDownRight : ArrowUpRight}\n aria-hidden=\"true\"\n class=\"size-3\"\n />\n </Show>\n <span class=\"tabular-nums\">{local.delta}</span>\n </div>\n </Show>\n {local.children}\n </div>\n )\n}\n\n/** A row of stats that shares one gap and wraps as the window narrows. */\nexport function StatGroup(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <div\n data-slot=\"stat-group\"\n class={cn('grid gap-3 sm:grid-cols-2 lg:grid-cols-4', local.class)}\n {...rest}\n />\n )\n}\n\n/**\n * PropertyList.\n *\n * A definition list for read-only metadata: the details of a file, a session, a\n * build. This is a `<dl>`, not a table and not a grid of divs, because the\n * relationship being expressed is term-and-definition and the platform has an\n * element for exactly that.\n *\n * Values are selectable by default. Metadata is the thing users copy most and\n * get the least often: a commit hash behind a drag-to-select gesture is a small\n * daily failure.\n */\nexport function PropertyList(props: ComponentProps<'dl'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <dl\n data-slot=\"property-list\"\n class={cn('grid grid-cols-[auto_1fr] items-baseline gap-x-4 gap-y-2 text-sm', local.class)}\n {...rest}\n />\n )\n}\n\nexport function PropertyTerm(props: ComponentProps<'dt'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <dt\n data-slot=\"property-term\"\n class={cn('text-muted-foreground whitespace-nowrap', local.class)}\n {...rest}\n />\n )\n}\n\nexport function PropertyValue(props: ComponentProps<'dd'>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <dd\n data-slot=\"property-value\"\n class={cn('min-w-0 break-words select-text', local.class)}\n {...rest}\n />\n )\n}\n\n/** A single term/value pair, for a list built one row at a time. */\nexport function PropertyRow(props: ComponentProps<'div'> & { term: string }) {\n const [local, rest] = splitProps(props, ['class', 'term', 'children'])\n\n return (\n <div\n data-slot=\"property-row\"\n class={cn('flex items-baseline justify-between gap-4 text-sm', local.class)}\n {...rest}\n >\n <span class=\"text-muted-foreground shrink-0\">{local.term}</span>\n <span class=\"min-w-0 truncate text-end select-text\">{local.children}</span>\n </div>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { UpdateDialog, type UpdateAdapter, type UpdateDialogProps, type UpdatePhase, type UpdateState, } from './update-dialog';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/composites/update-dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * UpdateDialog.
3
+ *
4
+ * A software-update surface: the installed version, whether a newer release
5
+ * exists, a download that shows its progress, and the release notes for what is
6
+ * about to arrive.
7
+ *
8
+ * The transport is an adapter, because an update is the one thing a component
9
+ * library genuinely cannot implement: it is signed, downloaded and applied by the
10
+ * application's own updater, and the mechanism differs per shell. What *is*
11
+ * general is the phase machine and the way each phase is presented — and that is
12
+ * where the hard-won detail lives:
13
+ *
14
+ * **A refused install answers with a normal payload, not a rejection.** adea's
15
+ * shell returns a status whose phase is `failed` when a download or an extract
16
+ * fails, rather than throwing. Without handling that, clicking install looked like
17
+ * nothing happened at all — the button spun, the phase never changed, and the
18
+ * error sat unread in a field nobody rendered. The `failed` phase after an install
19
+ * is therefore surfaced as an error, explicitly.
20
+ *
21
+ * **Busy is derived from the snapshot as well as from the click.** An update can
22
+ * be downloading while the dialog is open — started before it opened, or by the
23
+ * shell's own poll — so a local `busy` flag alone would offer an enabled Install
24
+ * button mid-download.
25
+ *
26
+ * **Opening the dialog loads status first, then checks.** Status paints the
27
+ * installed version immediately; the check is a network round trip. Doing them in
28
+ * the other order leaves the dialog blank for as long as the check takes, on a
29
+ * dialog whose first question is always "what am I running?".
30
+ *
31
+ * **Errors are not always `Error`s.** An adapter can reject with a string, and a
32
+ * shell can answer with an error field. Both are read, and a fallback is shown
33
+ * rather than an empty alert.
34
+ *
35
+ * The adapter's `isDesktopRuntime` gate exists because an update is a desktop
36
+ * concern: a browser build has no installer, and the honest thing to show is that
37
+ * updates are available in the desktop application rather than a disabled button
38
+ * with no reason.
39
+ */
40
+ /** The phase an update is in. The union is the state machine. */
41
+ export type UpdatePhase = 'idle' | 'checking' | 'current' | 'available' | 'downloading' | 'installing' | 'installed' | 'failed';
42
+ /** A snapshot of the updater. Every field the dialog renders, and nothing else. */
43
+ export type UpdateState = Readonly<{
44
+ phase: UpdatePhase;
45
+ /** The version currently installed. */
46
+ currentVersion: string;
47
+ /** The version that can be installed, when one can. */
48
+ availableVersion?: string | null;
49
+ /** A changelog for the installed channel, as markdown. */
50
+ changelog?: string;
51
+ /** Notes for the available release, as markdown. */
52
+ releaseNotes?: string | null;
53
+ /** The available release's date, as an ISO string. */
54
+ releaseDate?: string | null;
55
+ /** Bytes downloaded so far, during `downloading`. */
56
+ downloadedBytes?: number;
57
+ /** Total bytes, when the server sent a length. */
58
+ totalBytes?: number | null;
59
+ /** Set when `phase` is `failed`, and sometimes when it is not. */
60
+ error?: string | null;
61
+ /** A URL for the release's page. */
62
+ releaseUrl?: string | null;
63
+ /** True when the application must restart to finish. */
64
+ restartRequired?: boolean;
65
+ }>;
66
+ /**
67
+ * The updater, as the application exposes it. Three calls, each answering with a
68
+ * full snapshot rather than a delta — an updater's state is small, and a snapshot
69
+ * cannot drift from the shell's own view of it.
70
+ */
71
+ export type UpdateAdapter = Readonly<{
72
+ /** The current state, without contacting the release channel. */
73
+ getStatus(): Promise<UpdateState>;
74
+ /** Ask the release channel, and answer with what it found. */
75
+ check(): Promise<UpdateState>;
76
+ /**
77
+ * Download and apply `expectedVersion`.
78
+ *
79
+ * The argument is the version the caller believes is available, so the updater
80
+ * can refuse a request that raced a newer release rather than installing the
81
+ * wrong one.
82
+ */
83
+ install(expectedVersion: string): Promise<UpdateState>;
84
+ /** False in a browser build, where there is no installer to drive. */
85
+ isDesktopRuntime(): boolean;
86
+ }>;
87
+ export type UpdateDialogProps = {
88
+ adapter: UpdateAdapter;
89
+ /** The application's name, used in the title and the copy. */
90
+ appName?: string;
91
+ /** Shown before the first status arrives, so the dialog is never blank. */
92
+ fallbackVersion?: string;
93
+ /** Copy for the adapter's non-desktop case. */
94
+ desktopOnlyMessage?: string;
95
+ /** A controlled open state. Omit for the trigger to manage its own. */
96
+ open?: boolean;
97
+ /**
98
+ * Start open, uncontrolled — for a caller that opens the dialog because it found
99
+ * something ("an update is available") rather than because the user asked. The
100
+ * trigger is still rendered, so the dialog is reachable again after closing.
101
+ */
102
+ defaultOpen?: boolean;
103
+ onOpenChange?: (open: boolean) => void;
104
+ /** Render only the panel, for a caller that provides its own dialog. */
105
+ class?: string;
106
+ };
107
+ export declare function UpdateDialog(props: UpdateDialogProps): import("solid-js").JSX.Element;
108
+ //# sourceMappingURL=update-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/composites/update-dialog/update-dialog.tsx"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,iEAAiE;AACjE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,QAAQ,CAAA;AAEZ,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,KAAK,EAAE,WAAW,CAAA;IAClB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,iEAAiE;IACjE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACjC,8DAA8D;IAC9D,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACtD,sEAAsE;IACtE,gBAAgB,IAAI,OAAO,CAAA;CAC5B,CAAC,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,aAAa,CAAA;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAoBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,kCAqXpD"}