@moldable-ai/ui 0.2.18 → 0.2.20

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 (587) hide show
  1. package/dist/catalog/catalog-manifest.d.ts +6 -0
  2. package/dist/catalog/catalog-manifest.d.ts.map +1 -0
  3. package/dist/catalog/catalog-manifest.js +105 -0
  4. package/dist/catalog/catalog-types.d.ts +54 -0
  5. package/dist/catalog/catalog-types.d.ts.map +1 -0
  6. package/dist/catalog/catalog-types.js +14 -0
  7. package/dist/catalog/component-catalog.d.ts +14 -0
  8. package/dist/catalog/component-catalog.d.ts.map +1 -0
  9. package/dist/catalog/component-catalog.js +39 -0
  10. package/dist/catalog/core-catalog.d.ts +6 -0
  11. package/dist/catalog/core-catalog.d.ts.map +1 -0
  12. package/dist/catalog/core-catalog.js +105 -0
  13. package/dist/catalog/index.d.ts +5 -0
  14. package/dist/catalog/index.d.ts.map +1 -0
  15. package/dist/catalog/index.js +4 -0
  16. package/dist/components/app-error-boundary.d.ts +1 -0
  17. package/dist/components/app-error-boundary.d.ts.map +1 -1
  18. package/dist/components/app-error-boundary.js +13 -0
  19. package/dist/components/chat/chat-image-lightbox.d.ts +9 -0
  20. package/dist/components/chat/chat-image-lightbox.d.ts.map +1 -0
  21. package/dist/components/chat/chat-image-lightbox.js +9 -0
  22. package/dist/components/chat/chat-message.d.ts +19 -1
  23. package/dist/components/chat/chat-message.d.ts.map +1 -1
  24. package/dist/components/chat/chat-message.js +66 -16
  25. package/dist/components/chat/chat-messages.d.ts +5 -2
  26. package/dist/components/chat/chat-messages.d.ts.map +1 -1
  27. package/dist/components/chat/chat-messages.js +61 -6
  28. package/dist/components/chat/chat-panel.d.ts +67 -17
  29. package/dist/components/chat/chat-panel.d.ts.map +1 -1
  30. package/dist/components/chat/chat-panel.js +250 -159
  31. package/dist/components/chat/conversation-history.d.ts +39 -5
  32. package/dist/components/chat/conversation-history.d.ts.map +1 -1
  33. package/dist/components/chat/conversation-history.js +192 -26
  34. package/dist/components/chat/index.d.ts +3 -2
  35. package/dist/components/chat/index.d.ts.map +1 -1
  36. package/dist/components/chat/index.js +3 -2
  37. package/dist/components/chat/model-effort-power-effects.d.ts +7 -0
  38. package/dist/components/chat/model-effort-power-effects.d.ts.map +1 -0
  39. package/dist/components/chat/model-effort-power-effects.js +54 -0
  40. package/dist/components/chat/model-effort-selector.d.ts +26 -0
  41. package/dist/components/chat/model-effort-selector.d.ts.map +1 -0
  42. package/dist/components/chat/model-effort-selector.js +179 -0
  43. package/dist/components/chat/model-effort-ultra-effects.d.ts +5 -0
  44. package/dist/components/chat/model-effort-ultra-effects.d.ts.map +1 -0
  45. package/dist/components/chat/model-effort-ultra-effects.js +56 -0
  46. package/dist/components/chat/tool-handlers.d.ts.map +1 -1
  47. package/dist/components/chat/tool-handlers.js +40 -2
  48. package/dist/components/chat/vertical-scroll-fade.d.ts +6 -0
  49. package/dist/components/chat/vertical-scroll-fade.d.ts.map +1 -0
  50. package/dist/components/chat/vertical-scroll-fade.js +12 -0
  51. package/dist/components/hardware/bluetooth-panel-helpers.d.ts +9 -0
  52. package/dist/components/hardware/bluetooth-panel-helpers.d.ts.map +1 -0
  53. package/dist/components/hardware/bluetooth-panel-helpers.js +37 -0
  54. package/dist/components/hardware/bluetooth-panel.d.ts +56 -0
  55. package/dist/components/hardware/bluetooth-panel.d.ts.map +1 -0
  56. package/dist/components/hardware/bluetooth-panel.js +470 -0
  57. package/dist/components/hardware/camera-preview.d.ts +39 -0
  58. package/dist/components/hardware/camera-preview.d.ts.map +1 -0
  59. package/dist/components/hardware/camera-preview.js +228 -0
  60. package/dist/components/hardware/capability-badge.d.ts +23 -0
  61. package/dist/components/hardware/capability-badge.d.ts.map +1 -0
  62. package/dist/components/hardware/capability-badge.js +39 -0
  63. package/dist/components/hardware/capability-matrix.d.ts +14 -0
  64. package/dist/components/hardware/capability-matrix.d.ts.map +1 -0
  65. package/dist/components/hardware/capability-matrix.js +97 -0
  66. package/dist/components/hardware/clipboard-button.d.ts +26 -0
  67. package/dist/components/hardware/clipboard-button.d.ts.map +1 -0
  68. package/dist/components/hardware/clipboard-button.js +114 -0
  69. package/dist/components/hardware/device-io-controls.d.ts +4 -0
  70. package/dist/components/hardware/device-io-controls.d.ts.map +1 -0
  71. package/dist/components/hardware/device-io-controls.js +28 -0
  72. package/dist/components/hardware/device-list.d.ts +20 -0
  73. package/dist/components/hardware/device-list.d.ts.map +1 -0
  74. package/dist/components/hardware/device-list.js +14 -0
  75. package/dist/components/hardware/display-map.d.ts +23 -0
  76. package/dist/components/hardware/display-map.d.ts.map +1 -0
  77. package/dist/components/hardware/display-map.js +114 -0
  78. package/dist/components/hardware/haptic-button.d.ts +26 -0
  79. package/dist/components/hardware/haptic-button.d.ts.map +1 -0
  80. package/dist/components/hardware/haptic-button.js +94 -0
  81. package/dist/components/hardware/hardware-panel.d.ts +11 -0
  82. package/dist/components/hardware/hardware-panel.d.ts.map +1 -0
  83. package/dist/components/hardware/hardware-panel.js +28 -0
  84. package/dist/components/hardware/hid-panel.d.ts +40 -0
  85. package/dist/components/hardware/hid-panel.d.ts.map +1 -0
  86. package/dist/components/hardware/hid-panel.js +373 -0
  87. package/dist/components/hardware/index.d.ts +27 -0
  88. package/dist/components/hardware/index.d.ts.map +1 -0
  89. package/dist/components/hardware/index.js +26 -0
  90. package/dist/components/hardware/live-indicator.d.ts +15 -0
  91. package/dist/components/hardware/live-indicator.d.ts.map +1 -0
  92. package/dist/components/hardware/live-indicator.js +26 -0
  93. package/dist/components/hardware/local-auth-button.d.ts +33 -0
  94. package/dist/components/hardware/local-auth-button.d.ts.map +1 -0
  95. package/dist/components/hardware/local-auth-button.js +115 -0
  96. package/dist/components/hardware/location-panel.d.ts +29 -0
  97. package/dist/components/hardware/location-panel.d.ts.map +1 -0
  98. package/dist/components/hardware/location-panel.js +154 -0
  99. package/dist/components/hardware/microphone-meter.d.ts +35 -0
  100. package/dist/components/hardware/microphone-meter.d.ts.map +1 -0
  101. package/dist/components/hardware/microphone-meter.js +244 -0
  102. package/dist/components/hardware/midi-monitor.d.ts +54 -0
  103. package/dist/components/hardware/midi-monitor.d.ts.map +1 -0
  104. package/dist/components/hardware/midi-monitor.js +534 -0
  105. package/dist/components/hardware/notification-panel.d.ts +24 -0
  106. package/dist/components/hardware/notification-panel.d.ts.map +1 -0
  107. package/dist/components/hardware/notification-panel.js +124 -0
  108. package/dist/components/hardware/power-blocker-controller.d.ts +19 -0
  109. package/dist/components/hardware/power-blocker-controller.d.ts.map +1 -0
  110. package/dist/components/hardware/power-blocker-controller.js +83 -0
  111. package/dist/components/hardware/power-panel.d.ts +67 -0
  112. package/dist/components/hardware/power-panel.d.ts.map +1 -0
  113. package/dist/components/hardware/power-panel.js +309 -0
  114. package/dist/components/hardware/readout.d.ts +10 -0
  115. package/dist/components/hardware/readout.d.ts.map +1 -0
  116. package/dist/components/hardware/readout.js +11 -0
  117. package/dist/components/hardware/screen-share-preview.d.ts +36 -0
  118. package/dist/components/hardware/screen-share-preview.d.ts.map +1 -0
  119. package/dist/components/hardware/screen-share-preview.js +191 -0
  120. package/dist/components/hardware/secure-storage-panel.d.ts +36 -0
  121. package/dist/components/hardware/secure-storage-panel.d.ts.map +1 -0
  122. package/dist/components/hardware/secure-storage-panel.js +193 -0
  123. package/dist/components/hardware/serial-console.d.ts +64 -0
  124. package/dist/components/hardware/serial-console.d.ts.map +1 -0
  125. package/dist/components/hardware/serial-console.js +399 -0
  126. package/dist/components/hardware/shortcut-recorder.d.ts +35 -0
  127. package/dist/components/hardware/shortcut-recorder.d.ts.map +1 -0
  128. package/dist/components/hardware/shortcut-recorder.js +217 -0
  129. package/dist/components/hardware/stream-log.d.ts +35 -0
  130. package/dist/components/hardware/stream-log.d.ts.map +1 -0
  131. package/dist/components/hardware/stream-log.js +65 -0
  132. package/dist/components/hardware/system-audio-monitor.d.ts +34 -0
  133. package/dist/components/hardware/system-audio-monitor.d.ts.map +1 -0
  134. package/dist/components/hardware/system-audio-monitor.js +275 -0
  135. package/dist/components/hardware/usb-panel.d.ts +54 -0
  136. package/dist/components/hardware/usb-panel.d.ts.map +1 -0
  137. package/dist/components/hardware/usb-panel.js +363 -0
  138. package/dist/components/hardware/use-capability.d.ts +20 -0
  139. package/dist/components/hardware/use-capability.d.ts.map +1 -0
  140. package/dist/components/hardware/use-capability.js +61 -0
  141. package/dist/components/native-capabilities/bluetooth-panel-helpers.d.ts +9 -0
  142. package/dist/components/native-capabilities/bluetooth-panel-helpers.d.ts.map +1 -0
  143. package/dist/components/native-capabilities/bluetooth-panel-helpers.js +37 -0
  144. package/dist/components/native-capabilities/bluetooth-panel.d.ts +56 -0
  145. package/dist/components/native-capabilities/bluetooth-panel.d.ts.map +1 -0
  146. package/dist/components/native-capabilities/bluetooth-panel.js +470 -0
  147. package/dist/components/native-capabilities/camera-preview.d.ts +39 -0
  148. package/dist/components/native-capabilities/camera-preview.d.ts.map +1 -0
  149. package/dist/components/native-capabilities/camera-preview.js +228 -0
  150. package/dist/components/native-capabilities/capability-badge.d.ts +23 -0
  151. package/dist/components/native-capabilities/capability-badge.d.ts.map +1 -0
  152. package/dist/components/native-capabilities/capability-badge.js +39 -0
  153. package/dist/components/native-capabilities/capability-matrix.d.ts +14 -0
  154. package/dist/components/native-capabilities/capability-matrix.d.ts.map +1 -0
  155. package/dist/components/native-capabilities/capability-matrix.js +97 -0
  156. package/dist/components/native-capabilities/clipboard-button.d.ts +26 -0
  157. package/dist/components/native-capabilities/clipboard-button.d.ts.map +1 -0
  158. package/dist/components/native-capabilities/clipboard-button.js +99 -0
  159. package/dist/components/native-capabilities/device-io-controls.d.ts +4 -0
  160. package/dist/components/native-capabilities/device-io-controls.d.ts.map +1 -0
  161. package/dist/components/native-capabilities/device-io-controls.js +28 -0
  162. package/dist/components/native-capabilities/device-list.d.ts +20 -0
  163. package/dist/components/native-capabilities/device-list.d.ts.map +1 -0
  164. package/dist/components/native-capabilities/device-list.js +14 -0
  165. package/dist/components/native-capabilities/display-map.d.ts +23 -0
  166. package/dist/components/native-capabilities/display-map.d.ts.map +1 -0
  167. package/dist/components/native-capabilities/display-map.js +114 -0
  168. package/dist/components/native-capabilities/haptic-button.d.ts +26 -0
  169. package/dist/components/native-capabilities/haptic-button.d.ts.map +1 -0
  170. package/dist/components/native-capabilities/haptic-button.js +94 -0
  171. package/dist/components/native-capabilities/hid-panel.d.ts +40 -0
  172. package/dist/components/native-capabilities/hid-panel.d.ts.map +1 -0
  173. package/dist/components/native-capabilities/hid-panel.js +373 -0
  174. package/dist/components/native-capabilities/index.d.ts +27 -0
  175. package/dist/components/native-capabilities/index.d.ts.map +1 -0
  176. package/dist/components/native-capabilities/index.js +26 -0
  177. package/dist/components/native-capabilities/live-indicator.d.ts +15 -0
  178. package/dist/components/native-capabilities/live-indicator.d.ts.map +1 -0
  179. package/dist/components/native-capabilities/live-indicator.js +26 -0
  180. package/dist/components/native-capabilities/local-auth-button.d.ts +33 -0
  181. package/dist/components/native-capabilities/local-auth-button.d.ts.map +1 -0
  182. package/dist/components/native-capabilities/local-auth-button.js +115 -0
  183. package/dist/components/native-capabilities/location-panel.d.ts +29 -0
  184. package/dist/components/native-capabilities/location-panel.d.ts.map +1 -0
  185. package/dist/components/native-capabilities/location-panel.js +146 -0
  186. package/dist/components/native-capabilities/microphone-meter.d.ts +35 -0
  187. package/dist/components/native-capabilities/microphone-meter.d.ts.map +1 -0
  188. package/dist/components/native-capabilities/microphone-meter.js +244 -0
  189. package/dist/components/native-capabilities/midi-monitor.d.ts +54 -0
  190. package/dist/components/native-capabilities/midi-monitor.d.ts.map +1 -0
  191. package/dist/components/native-capabilities/midi-monitor.js +534 -0
  192. package/dist/components/native-capabilities/native-capability-panel.d.ts +11 -0
  193. package/dist/components/native-capabilities/native-capability-panel.d.ts.map +1 -0
  194. package/dist/components/native-capabilities/native-capability-panel.js +28 -0
  195. package/dist/components/native-capabilities/notification-panel.d.ts +24 -0
  196. package/dist/components/native-capabilities/notification-panel.d.ts.map +1 -0
  197. package/dist/components/native-capabilities/notification-panel.js +124 -0
  198. package/dist/components/native-capabilities/power-blocker-controller.d.ts +19 -0
  199. package/dist/components/native-capabilities/power-blocker-controller.d.ts.map +1 -0
  200. package/dist/components/native-capabilities/power-blocker-controller.js +83 -0
  201. package/dist/components/native-capabilities/power-panel.d.ts +67 -0
  202. package/dist/components/native-capabilities/power-panel.d.ts.map +1 -0
  203. package/dist/components/native-capabilities/power-panel.js +309 -0
  204. package/dist/components/native-capabilities/readout.d.ts +10 -0
  205. package/dist/components/native-capabilities/readout.d.ts.map +1 -0
  206. package/dist/components/native-capabilities/readout.js +11 -0
  207. package/dist/components/native-capabilities/screen-share-preview.d.ts +36 -0
  208. package/dist/components/native-capabilities/screen-share-preview.d.ts.map +1 -0
  209. package/dist/components/native-capabilities/screen-share-preview.js +191 -0
  210. package/dist/components/native-capabilities/secure-storage-panel.d.ts +36 -0
  211. package/dist/components/native-capabilities/secure-storage-panel.d.ts.map +1 -0
  212. package/dist/components/native-capabilities/secure-storage-panel.js +193 -0
  213. package/dist/components/native-capabilities/serial-console.d.ts +64 -0
  214. package/dist/components/native-capabilities/serial-console.d.ts.map +1 -0
  215. package/dist/components/native-capabilities/serial-console.js +399 -0
  216. package/dist/components/native-capabilities/shortcut-recorder.d.ts +35 -0
  217. package/dist/components/native-capabilities/shortcut-recorder.d.ts.map +1 -0
  218. package/dist/components/native-capabilities/shortcut-recorder.js +217 -0
  219. package/dist/components/native-capabilities/stream-log.d.ts +35 -0
  220. package/dist/components/native-capabilities/stream-log.d.ts.map +1 -0
  221. package/dist/components/native-capabilities/stream-log.js +65 -0
  222. package/dist/components/native-capabilities/system-audio-monitor.d.ts +34 -0
  223. package/dist/components/native-capabilities/system-audio-monitor.d.ts.map +1 -0
  224. package/dist/components/native-capabilities/system-audio-monitor.js +275 -0
  225. package/dist/components/native-capabilities/usb-panel.d.ts +54 -0
  226. package/dist/components/native-capabilities/usb-panel.d.ts.map +1 -0
  227. package/dist/components/native-capabilities/usb-panel.js +363 -0
  228. package/dist/components/native-capabilities/use-capability.d.ts +20 -0
  229. package/dist/components/native-capabilities/use-capability.d.ts.map +1 -0
  230. package/dist/components/native-capabilities/use-capability.js +61 -0
  231. package/dist/components/ui/app-frame.d.ts +22 -0
  232. package/dist/components/ui/app-frame.d.ts.map +1 -0
  233. package/dist/components/ui/app-frame.js +56 -0
  234. package/dist/components/ui/button-group.d.ts +1 -1
  235. package/dist/components/ui/button.js +1 -1
  236. package/dist/components/ui/color-well.d.ts +13 -0
  237. package/dist/components/ui/color-well.d.ts.map +1 -0
  238. package/dist/components/ui/color-well.js +30 -0
  239. package/dist/components/ui/date-field.d.ts +19 -0
  240. package/dist/components/ui/date-field.d.ts.map +1 -0
  241. package/dist/components/ui/date-field.js +54 -0
  242. package/dist/components/ui/edge-fade.d.ts +11 -0
  243. package/dist/components/ui/edge-fade.d.ts.map +1 -0
  244. package/dist/components/ui/edge-fade.js +41 -0
  245. package/dist/components/ui/empty.js +1 -1
  246. package/dist/components/ui/field.d.ts +1 -1
  247. package/dist/components/ui/grid.d.ts +24 -0
  248. package/dist/components/ui/grid.d.ts.map +1 -0
  249. package/dist/components/ui/grid.js +234 -0
  250. package/dist/components/ui/icon-button.d.ts +15 -0
  251. package/dist/components/ui/icon-button.d.ts.map +1 -0
  252. package/dist/components/ui/icon-button.js +15 -0
  253. package/dist/components/ui/index.d.ts +19 -0
  254. package/dist/components/ui/index.d.ts.map +1 -1
  255. package/dist/components/ui/index.js +19 -0
  256. package/dist/components/ui/inspector.d.ts +15 -0
  257. package/dist/components/ui/inspector.d.ts.map +1 -0
  258. package/dist/components/ui/inspector.js +26 -0
  259. package/dist/components/ui/kbd.d.ts +1 -1
  260. package/dist/components/ui/list.d.ts +24 -0
  261. package/dist/components/ui/list.d.ts.map +1 -0
  262. package/dist/components/ui/list.js +224 -0
  263. package/dist/components/ui/message-scroller-layout-stability.d.ts +33 -0
  264. package/dist/components/ui/message-scroller-layout-stability.d.ts.map +1 -0
  265. package/dist/components/ui/message-scroller-layout-stability.js +153 -0
  266. package/dist/components/ui/message-scroller.d.ts +11 -0
  267. package/dist/components/ui/message-scroller.d.ts.map +1 -0
  268. package/dist/components/ui/message-scroller.js +37 -0
  269. package/dist/components/ui/notification-dot.d.ts +4 -0
  270. package/dist/components/ui/notification-dot.d.ts.map +1 -0
  271. package/dist/components/ui/notification-dot.js +7 -0
  272. package/dist/components/ui/number-input.d.ts +16 -0
  273. package/dist/components/ui/number-input.d.ts.map +1 -0
  274. package/dist/components/ui/number-input.js +56 -0
  275. package/dist/components/ui/panel.d.ts +18 -0
  276. package/dist/components/ui/panel.d.ts.map +1 -0
  277. package/dist/components/ui/panel.js +40 -0
  278. package/dist/components/ui/popover.js +1 -1
  279. package/dist/components/ui/search-field.d.ts +19 -0
  280. package/dist/components/ui/search-field.d.ts.map +1 -0
  281. package/dist/components/ui/search-field.js +64 -0
  282. package/dist/components/ui/segmented-control.d.ts +21 -0
  283. package/dist/components/ui/segmented-control.d.ts.map +1 -0
  284. package/dist/components/ui/segmented-control.js +61 -0
  285. package/dist/components/ui/sidebar.js +1 -1
  286. package/dist/components/ui/slider.d.ts +4 -1
  287. package/dist/components/ui/slider.d.ts.map +1 -1
  288. package/dist/components/ui/slider.js +2 -2
  289. package/dist/components/ui/sonner.d.ts +4 -3
  290. package/dist/components/ui/sonner.d.ts.map +1 -1
  291. package/dist/components/ui/sonner.js +7 -6
  292. package/dist/components/ui/split-view.d.ts +11 -0
  293. package/dist/components/ui/split-view.d.ts.map +1 -0
  294. package/dist/components/ui/split-view.js +13 -0
  295. package/dist/components/ui/status.d.ts +13 -0
  296. package/dist/components/ui/status.d.ts.map +1 -0
  297. package/dist/components/ui/status.js +36 -0
  298. package/dist/components/ui/table.d.ts +11 -2
  299. package/dist/components/ui/table.d.ts.map +1 -1
  300. package/dist/components/ui/table.js +28 -6
  301. package/dist/components/ui/text.d.ts +17 -0
  302. package/dist/components/ui/text.d.ts.map +1 -0
  303. package/dist/components/ui/text.js +55 -0
  304. package/dist/components/ui/toggle.js +1 -1
  305. package/dist/components/ui/toolbar.d.ts +20 -0
  306. package/dist/components/ui/toolbar.d.ts.map +1 -0
  307. package/dist/components/ui/toolbar.js +52 -0
  308. package/dist/index.d.ts +2 -0
  309. package/dist/index.d.ts.map +1 -1
  310. package/dist/index.js +4 -0
  311. package/dist/lib/frame-lifecycle.d.ts +28 -0
  312. package/dist/lib/frame-lifecycle.d.ts.map +1 -1
  313. package/dist/lib/frame-lifecycle.js +84 -0
  314. package/dist/lib/native-capabilities/access.d.ts +13 -0
  315. package/dist/lib/native-capabilities/access.d.ts.map +1 -0
  316. package/dist/lib/native-capabilities/access.js +53 -0
  317. package/dist/lib/native-capabilities/bluetooth-access.d.ts +14 -0
  318. package/dist/lib/native-capabilities/bluetooth-access.d.ts.map +1 -0
  319. package/dist/lib/native-capabilities/bluetooth-access.js +43 -0
  320. package/dist/lib/native-capabilities/bluetooth-connection.d.ts +19 -0
  321. package/dist/lib/native-capabilities/bluetooth-connection.d.ts.map +1 -0
  322. package/dist/lib/native-capabilities/bluetooth-connection.js +88 -0
  323. package/dist/lib/native-capabilities/bluetooth-gatt.d.ts +7 -0
  324. package/dist/lib/native-capabilities/bluetooth-gatt.d.ts.map +1 -0
  325. package/dist/lib/native-capabilities/bluetooth-gatt.js +77 -0
  326. package/dist/lib/native-capabilities/bluetooth-internal.d.ts +10 -0
  327. package/dist/lib/native-capabilities/bluetooth-internal.d.ts.map +1 -0
  328. package/dist/lib/native-capabilities/bluetooth-internal.js +105 -0
  329. package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts +33 -0
  330. package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts.map +1 -0
  331. package/dist/lib/native-capabilities/bluetooth-native-fallback.js +214 -0
  332. package/dist/lib/native-capabilities/bluetooth-types.d.ts +85 -0
  333. package/dist/lib/native-capabilities/bluetooth-types.d.ts.map +1 -0
  334. package/dist/lib/native-capabilities/bluetooth-types.js +2 -0
  335. package/dist/lib/native-capabilities/bluetooth.d.ts +7 -0
  336. package/dist/lib/native-capabilities/bluetooth.d.ts.map +1 -0
  337. package/dist/lib/native-capabilities/bluetooth.js +4 -0
  338. package/dist/lib/native-capabilities/bridge.d.ts +23 -0
  339. package/dist/lib/native-capabilities/bridge.d.ts.map +1 -0
  340. package/dist/lib/native-capabilities/bridge.js +266 -0
  341. package/dist/lib/native-capabilities/capabilities.d.ts +7 -0
  342. package/dist/lib/native-capabilities/capabilities.d.ts.map +1 -0
  343. package/dist/lib/native-capabilities/capabilities.js +95 -0
  344. package/dist/lib/native-capabilities/clipboard.d.ts +11 -0
  345. package/dist/lib/native-capabilities/clipboard.d.ts.map +1 -0
  346. package/dist/lib/native-capabilities/clipboard.js +58 -0
  347. package/dist/lib/native-capabilities/device-io-errors.d.ts +11 -0
  348. package/dist/lib/native-capabilities/device-io-errors.d.ts.map +1 -0
  349. package/dist/lib/native-capabilities/device-io-errors.js +82 -0
  350. package/dist/lib/native-capabilities/displays.d.ts +38 -0
  351. package/dist/lib/native-capabilities/displays.d.ts.map +1 -0
  352. package/dist/lib/native-capabilities/displays.js +12 -0
  353. package/dist/lib/native-capabilities/global-shortcuts.d.ts +86 -0
  354. package/dist/lib/native-capabilities/global-shortcuts.d.ts.map +1 -0
  355. package/dist/lib/native-capabilities/global-shortcuts.js +351 -0
  356. package/dist/lib/native-capabilities/haptics.d.ts +25 -0
  357. package/dist/lib/native-capabilities/haptics.d.ts.map +1 -0
  358. package/dist/lib/native-capabilities/haptics.js +18 -0
  359. package/dist/lib/native-capabilities/hid-native.d.ts +26 -0
  360. package/dist/lib/native-capabilities/hid-native.d.ts.map +1 -0
  361. package/dist/lib/native-capabilities/hid-native.js +229 -0
  362. package/dist/lib/native-capabilities/hid.d.ts +52 -0
  363. package/dist/lib/native-capabilities/hid.d.ts.map +1 -0
  364. package/dist/lib/native-capabilities/hid.js +163 -0
  365. package/dist/lib/native-capabilities/index.d.ts +40 -0
  366. package/dist/lib/native-capabilities/index.d.ts.map +1 -0
  367. package/dist/lib/native-capabilities/index.js +21 -0
  368. package/dist/lib/native-capabilities/local-authentication.d.ts +32 -0
  369. package/dist/lib/native-capabilities/local-authentication.d.ts.map +1 -0
  370. package/dist/lib/native-capabilities/local-authentication.js +46 -0
  371. package/dist/lib/native-capabilities/location.d.ts +49 -0
  372. package/dist/lib/native-capabilities/location.d.ts.map +1 -0
  373. package/dist/lib/native-capabilities/location.js +114 -0
  374. package/dist/lib/native-capabilities/media-permissions.d.ts +28 -0
  375. package/dist/lib/native-capabilities/media-permissions.d.ts.map +1 -0
  376. package/dist/lib/native-capabilities/media-permissions.js +37 -0
  377. package/dist/lib/native-capabilities/media.d.ts +17 -0
  378. package/dist/lib/native-capabilities/media.d.ts.map +1 -0
  379. package/dist/lib/native-capabilities/media.js +104 -0
  380. package/dist/lib/native-capabilities/midi-access.d.ts +13 -0
  381. package/dist/lib/native-capabilities/midi-access.d.ts.map +1 -0
  382. package/dist/lib/native-capabilities/midi-access.js +68 -0
  383. package/dist/lib/native-capabilities/midi-internal.d.ts +12 -0
  384. package/dist/lib/native-capabilities/midi-internal.d.ts.map +1 -0
  385. package/dist/lib/native-capabilities/midi-internal.js +88 -0
  386. package/dist/lib/native-capabilities/midi-native-fallback.d.ts +27 -0
  387. package/dist/lib/native-capabilities/midi-native-fallback.d.ts.map +1 -0
  388. package/dist/lib/native-capabilities/midi-native-fallback.js +127 -0
  389. package/dist/lib/native-capabilities/midi-ports.d.ts +6 -0
  390. package/dist/lib/native-capabilities/midi-ports.d.ts.map +1 -0
  391. package/dist/lib/native-capabilities/midi-ports.js +115 -0
  392. package/dist/lib/native-capabilities/midi-types.d.ts +25 -0
  393. package/dist/lib/native-capabilities/midi-types.d.ts.map +1 -0
  394. package/dist/lib/native-capabilities/midi-types.js +1 -0
  395. package/dist/lib/native-capabilities/midi.d.ts +6 -0
  396. package/dist/lib/native-capabilities/midi.d.ts.map +1 -0
  397. package/dist/lib/native-capabilities/midi.js +3 -0
  398. package/dist/lib/native-capabilities/native-device-io.d.ts +28 -0
  399. package/dist/lib/native-capabilities/native-device-io.d.ts.map +1 -0
  400. package/dist/lib/native-capabilities/native-device-io.js +91 -0
  401. package/dist/lib/native-capabilities/native-device-lifecycle.d.ts +13 -0
  402. package/dist/lib/native-capabilities/native-device-lifecycle.d.ts.map +1 -0
  403. package/dist/lib/native-capabilities/native-device-lifecycle.js +40 -0
  404. package/dist/lib/native-capabilities/notifications.d.ts +38 -0
  405. package/dist/lib/native-capabilities/notifications.d.ts.map +1 -0
  406. package/dist/lib/native-capabilities/notifications.js +50 -0
  407. package/dist/lib/native-capabilities/power-session.d.ts +113 -0
  408. package/dist/lib/native-capabilities/power-session.d.ts.map +1 -0
  409. package/dist/lib/native-capabilities/power-session.js +264 -0
  410. package/dist/lib/native-capabilities/secure-storage.d.ts +36 -0
  411. package/dist/lib/native-capabilities/secure-storage.d.ts.map +1 -0
  412. package/dist/lib/native-capabilities/secure-storage.js +64 -0
  413. package/dist/lib/native-capabilities/serial-native.d.ts +23 -0
  414. package/dist/lib/native-capabilities/serial-native.d.ts.map +1 -0
  415. package/dist/lib/native-capabilities/serial-native.js +181 -0
  416. package/dist/lib/native-capabilities/serial.d.ts +76 -0
  417. package/dist/lib/native-capabilities/serial.d.ts.map +1 -0
  418. package/dist/lib/native-capabilities/serial.js +215 -0
  419. package/dist/lib/native-capabilities/system-audio.d.ts +127 -0
  420. package/dist/lib/native-capabilities/system-audio.d.ts.map +1 -0
  421. package/dist/lib/native-capabilities/system-audio.js +330 -0
  422. package/dist/lib/native-capabilities/types.d.ts +62 -0
  423. package/dist/lib/native-capabilities/types.d.ts.map +1 -0
  424. package/dist/lib/native-capabilities/types.js +27 -0
  425. package/dist/lib/native-capabilities/usb-native.d.ts +39 -0
  426. package/dist/lib/native-capabilities/usb-native.d.ts.map +1 -0
  427. package/dist/lib/native-capabilities/usb-native.js +217 -0
  428. package/dist/lib/native-capabilities/usb.d.ts +85 -0
  429. package/dist/lib/native-capabilities/usb.d.ts.map +1 -0
  430. package/dist/lib/native-capabilities/usb.js +225 -0
  431. package/dist/lib/native-hardware/bluetooth-access.d.ts +14 -0
  432. package/dist/lib/native-hardware/bluetooth-access.d.ts.map +1 -0
  433. package/dist/lib/native-hardware/bluetooth-access.js +40 -0
  434. package/dist/lib/native-hardware/bluetooth-connection.d.ts +19 -0
  435. package/dist/lib/native-hardware/bluetooth-connection.d.ts.map +1 -0
  436. package/dist/lib/native-hardware/bluetooth-connection.js +88 -0
  437. package/dist/lib/native-hardware/bluetooth-gatt.d.ts +7 -0
  438. package/dist/lib/native-hardware/bluetooth-gatt.d.ts.map +1 -0
  439. package/dist/lib/native-hardware/bluetooth-gatt.js +77 -0
  440. package/dist/lib/native-hardware/bluetooth-internal.d.ts +10 -0
  441. package/dist/lib/native-hardware/bluetooth-internal.d.ts.map +1 -0
  442. package/dist/lib/native-hardware/bluetooth-internal.js +105 -0
  443. package/dist/lib/native-hardware/bluetooth-native-fallback.d.ts +33 -0
  444. package/dist/lib/native-hardware/bluetooth-native-fallback.d.ts.map +1 -0
  445. package/dist/lib/native-hardware/bluetooth-native-fallback.js +214 -0
  446. package/dist/lib/native-hardware/bluetooth-types.d.ts +85 -0
  447. package/dist/lib/native-hardware/bluetooth-types.d.ts.map +1 -0
  448. package/dist/lib/native-hardware/bluetooth-types.js +2 -0
  449. package/dist/lib/native-hardware/bluetooth.d.ts +7 -0
  450. package/dist/lib/native-hardware/bluetooth.d.ts.map +1 -0
  451. package/dist/lib/native-hardware/bluetooth.js +4 -0
  452. package/dist/lib/native-hardware/bridge.d.ts +23 -0
  453. package/dist/lib/native-hardware/bridge.d.ts.map +1 -0
  454. package/dist/lib/native-hardware/bridge.js +266 -0
  455. package/dist/lib/native-hardware/capabilities.d.ts +7 -0
  456. package/dist/lib/native-hardware/capabilities.d.ts.map +1 -0
  457. package/dist/lib/native-hardware/capabilities.js +95 -0
  458. package/dist/lib/native-hardware/clipboard.d.ts +11 -0
  459. package/dist/lib/native-hardware/clipboard.d.ts.map +1 -0
  460. package/dist/lib/native-hardware/clipboard.js +55 -0
  461. package/dist/lib/native-hardware/device-io-errors.d.ts +11 -0
  462. package/dist/lib/native-hardware/device-io-errors.d.ts.map +1 -0
  463. package/dist/lib/native-hardware/device-io-errors.js +82 -0
  464. package/dist/lib/native-hardware/displays.d.ts +38 -0
  465. package/dist/lib/native-hardware/displays.d.ts.map +1 -0
  466. package/dist/lib/native-hardware/displays.js +12 -0
  467. package/dist/lib/native-hardware/global-shortcuts.d.ts +86 -0
  468. package/dist/lib/native-hardware/global-shortcuts.d.ts.map +1 -0
  469. package/dist/lib/native-hardware/global-shortcuts.js +351 -0
  470. package/dist/lib/native-hardware/haptics.d.ts +25 -0
  471. package/dist/lib/native-hardware/haptics.d.ts.map +1 -0
  472. package/dist/lib/native-hardware/haptics.js +18 -0
  473. package/dist/lib/native-hardware/hid-native.d.ts +26 -0
  474. package/dist/lib/native-hardware/hid-native.d.ts.map +1 -0
  475. package/dist/lib/native-hardware/hid-native.js +229 -0
  476. package/dist/lib/native-hardware/hid.d.ts +52 -0
  477. package/dist/lib/native-hardware/hid.d.ts.map +1 -0
  478. package/dist/lib/native-hardware/hid.js +160 -0
  479. package/dist/lib/native-hardware/index.d.ts +38 -0
  480. package/dist/lib/native-hardware/index.d.ts.map +1 -0
  481. package/dist/lib/native-hardware/index.js +20 -0
  482. package/dist/lib/native-hardware/local-authentication.d.ts +32 -0
  483. package/dist/lib/native-hardware/local-authentication.d.ts.map +1 -0
  484. package/dist/lib/native-hardware/local-authentication.js +46 -0
  485. package/dist/lib/native-hardware/location.d.ts +49 -0
  486. package/dist/lib/native-hardware/location.d.ts.map +1 -0
  487. package/dist/lib/native-hardware/location.js +114 -0
  488. package/dist/lib/native-hardware/media-permissions.d.ts +28 -0
  489. package/dist/lib/native-hardware/media-permissions.d.ts.map +1 -0
  490. package/dist/lib/native-hardware/media-permissions.js +37 -0
  491. package/dist/lib/native-hardware/media.d.ts +17 -0
  492. package/dist/lib/native-hardware/media.d.ts.map +1 -0
  493. package/dist/lib/native-hardware/media.js +99 -0
  494. package/dist/lib/native-hardware/midi-access.d.ts +13 -0
  495. package/dist/lib/native-hardware/midi-access.d.ts.map +1 -0
  496. package/dist/lib/native-hardware/midi-access.js +66 -0
  497. package/dist/lib/native-hardware/midi-internal.d.ts +12 -0
  498. package/dist/lib/native-hardware/midi-internal.d.ts.map +1 -0
  499. package/dist/lib/native-hardware/midi-internal.js +88 -0
  500. package/dist/lib/native-hardware/midi-native-fallback.d.ts +27 -0
  501. package/dist/lib/native-hardware/midi-native-fallback.d.ts.map +1 -0
  502. package/dist/lib/native-hardware/midi-native-fallback.js +127 -0
  503. package/dist/lib/native-hardware/midi-ports.d.ts +6 -0
  504. package/dist/lib/native-hardware/midi-ports.d.ts.map +1 -0
  505. package/dist/lib/native-hardware/midi-ports.js +115 -0
  506. package/dist/lib/native-hardware/midi-types.d.ts +25 -0
  507. package/dist/lib/native-hardware/midi-types.d.ts.map +1 -0
  508. package/dist/lib/native-hardware/midi-types.js +1 -0
  509. package/dist/lib/native-hardware/midi.d.ts +6 -0
  510. package/dist/lib/native-hardware/midi.d.ts.map +1 -0
  511. package/dist/lib/native-hardware/midi.js +3 -0
  512. package/dist/lib/native-hardware/native-device-io.d.ts +28 -0
  513. package/dist/lib/native-hardware/native-device-io.d.ts.map +1 -0
  514. package/dist/lib/native-hardware/native-device-io.js +91 -0
  515. package/dist/lib/native-hardware/native-device-lifecycle.d.ts +13 -0
  516. package/dist/lib/native-hardware/native-device-lifecycle.d.ts.map +1 -0
  517. package/dist/lib/native-hardware/native-device-lifecycle.js +40 -0
  518. package/dist/lib/native-hardware/notifications.d.ts +38 -0
  519. package/dist/lib/native-hardware/notifications.d.ts.map +1 -0
  520. package/dist/lib/native-hardware/notifications.js +50 -0
  521. package/dist/lib/native-hardware/power-session.d.ts +113 -0
  522. package/dist/lib/native-hardware/power-session.d.ts.map +1 -0
  523. package/dist/lib/native-hardware/power-session.js +264 -0
  524. package/dist/lib/native-hardware/secure-storage.d.ts +36 -0
  525. package/dist/lib/native-hardware/secure-storage.d.ts.map +1 -0
  526. package/dist/lib/native-hardware/secure-storage.js +64 -0
  527. package/dist/lib/native-hardware/serial-native.d.ts +23 -0
  528. package/dist/lib/native-hardware/serial-native.d.ts.map +1 -0
  529. package/dist/lib/native-hardware/serial-native.js +181 -0
  530. package/dist/lib/native-hardware/serial.d.ts +76 -0
  531. package/dist/lib/native-hardware/serial.d.ts.map +1 -0
  532. package/dist/lib/native-hardware/serial.js +212 -0
  533. package/dist/lib/native-hardware/system-audio.d.ts +127 -0
  534. package/dist/lib/native-hardware/system-audio.d.ts.map +1 -0
  535. package/dist/lib/native-hardware/system-audio.js +330 -0
  536. package/dist/lib/native-hardware/types.d.ts +62 -0
  537. package/dist/lib/native-hardware/types.d.ts.map +1 -0
  538. package/dist/lib/native-hardware/types.js +27 -0
  539. package/dist/lib/native-hardware/usb-native.d.ts +39 -0
  540. package/dist/lib/native-hardware/usb-native.d.ts.map +1 -0
  541. package/dist/lib/native-hardware/usb-native.js +217 -0
  542. package/dist/lib/native-hardware/usb.d.ts +85 -0
  543. package/dist/lib/native-hardware/usb.d.ts.map +1 -0
  544. package/dist/lib/native-hardware/usb.js +222 -0
  545. package/docs/README.md +37 -0
  546. package/docs/accessibility.md +32 -0
  547. package/docs/app-anatomy.md +72 -0
  548. package/docs/component-catalog.md +59 -0
  549. package/docs/component-guide-template.md +37 -0
  550. package/docs/design-tokens.md +172 -0
  551. package/docs/foundations.md +56 -0
  552. package/docs/native-integration.md +33 -0
  553. package/docs/standalone-app-windows.md +128 -0
  554. package/package.json +9 -3
  555. package/src/components/ui/alert.md +55 -0
  556. package/src/components/ui/app-frame.md +33 -0
  557. package/src/components/ui/badge.md +57 -0
  558. package/src/components/ui/button.md +76 -0
  559. package/src/components/ui/color-well.md +11 -0
  560. package/src/components/ui/combobox.md +43 -0
  561. package/src/components/ui/date-field.md +32 -0
  562. package/src/components/ui/edge-fade.md +7 -0
  563. package/src/components/ui/empty.md +82 -0
  564. package/src/components/ui/field.md +77 -0
  565. package/src/components/ui/grid.md +105 -0
  566. package/src/components/ui/icon-button.md +36 -0
  567. package/src/components/ui/inspector.md +11 -0
  568. package/src/components/ui/item.md +87 -0
  569. package/src/components/ui/list.md +107 -0
  570. package/src/components/ui/notification-dot.md +7 -0
  571. package/src/components/ui/number-input.md +19 -0
  572. package/src/components/ui/panel.md +11 -0
  573. package/src/components/ui/resizable.md +66 -0
  574. package/src/components/ui/scroll-area.md +68 -0
  575. package/src/components/ui/search-field.md +33 -0
  576. package/src/components/ui/segmented-control.md +39 -0
  577. package/src/components/ui/sidebar.md +113 -0
  578. package/src/components/ui/sonner.md +37 -0
  579. package/src/components/ui/split-view.md +15 -0
  580. package/src/components/ui/status.md +12 -0
  581. package/src/components/ui/table.md +35 -0
  582. package/src/components/ui/tabs.md +66 -0
  583. package/src/components/ui/text.md +17 -0
  584. package/src/components/ui/toggle-group.md +80 -0
  585. package/src/components/ui/toggle.md +73 -0
  586. package/src/components/ui/toolbar.md +21 -0
  587. package/src/styles/index.css +868 -3
@@ -5,20 +5,260 @@
5
5
 
6
6
  @custom-variant dark (&:is(.dark *));
7
7
 
8
+ /* Keep Sonner notifications visually aligned with Moldable's local-update notice. */
9
+ [data-sonner-toaster].toaster [data-sonner-toast][data-styled='true'] {
10
+ gap: 0.75rem;
11
+ padding: 0.75rem 1rem;
12
+ border-radius: var(--radius);
13
+ box-shadow: var(--material-shadow-overlay);
14
+ font-size: 0.875rem;
15
+ -webkit-backdrop-filter: blur(var(--material-blur-overlay));
16
+ backdrop-filter: blur(var(--material-blur-overlay));
17
+ }
18
+
19
+ [data-sonner-toaster].toaster
20
+ [data-sonner-toast][data-styled='true']
21
+ [data-button] {
22
+ height: 1.75rem;
23
+ padding-inline: 0.75rem;
24
+ border-radius: calc(var(--radius) - 2px);
25
+ background: var(--primary);
26
+ color: var(--primary-foreground);
27
+ font-size: 0.75rem;
28
+ transition: background-color var(--motion-duration-fast)
29
+ var(--motion-ease-standard);
30
+ }
31
+
32
+ [data-sonner-toaster].toaster
33
+ [data-sonner-toast][data-styled='true']
34
+ [data-button]:hover {
35
+ background: color-mix(in oklch, var(--primary) 90%, transparent);
36
+ }
37
+
38
+ .message-scroller-viewport {
39
+ -webkit-mask-image: none;
40
+ mask-image: none;
41
+ }
42
+
43
+ .message-scroller-viewport[data-scrollable='end'] {
44
+ -webkit-mask-image: linear-gradient(
45
+ to bottom,
46
+ black 0%,
47
+ black calc(100% - 4rem),
48
+ transparent 100%
49
+ );
50
+ mask-image: linear-gradient(
51
+ to bottom,
52
+ black 0%,
53
+ black calc(100% - 4rem),
54
+ transparent 100%
55
+ );
56
+ }
57
+
58
+ .message-scroller-viewport[data-scrollable='start'] {
59
+ -webkit-mask-image: linear-gradient(
60
+ to bottom,
61
+ transparent 0%,
62
+ black 4rem,
63
+ black 100%
64
+ );
65
+ mask-image: linear-gradient(
66
+ to bottom,
67
+ transparent 0%,
68
+ black 4rem,
69
+ black 100%
70
+ );
71
+ }
72
+
73
+ .message-scroller-viewport[data-scrollable='start end'] {
74
+ -webkit-mask-image: linear-gradient(
75
+ to bottom,
76
+ transparent 0%,
77
+ black 4rem,
78
+ black calc(100% - 4rem),
79
+ transparent 100%
80
+ );
81
+ mask-image: linear-gradient(
82
+ to bottom,
83
+ transparent 0%,
84
+ black 4rem,
85
+ black calc(100% - 4rem),
86
+ transparent 100%
87
+ );
88
+ }
89
+
90
+ /* ChatGPT-style user-message rail: compact at rest, expanding around hover. */
91
+ [data-message-navigation-marker] {
92
+ --message-navigation-progress: 0;
93
+ transform: scaleX(calc(0.2308 + 0.7692 * var(--message-navigation-progress)));
94
+ transition:
95
+ transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
96
+ background-color 150ms ease,
97
+ opacity 150ms ease;
98
+ }
99
+
100
+ :is(
101
+ [data-message-navigation-row]:hover,
102
+ [data-message-navigation-row]:focus-visible
103
+ )
104
+ [data-message-navigation-marker] {
105
+ --message-navigation-progress: 1;
106
+ background-color: var(--foreground);
107
+ opacity: 1;
108
+ }
109
+
110
+ :is(
111
+ [data-message-navigation-row]:has(
112
+ + [data-message-navigation-row]:is(:hover, :focus-visible)
113
+ ),
114
+ [data-message-navigation-row]:is(:hover, :focus-visible)
115
+ + [data-message-navigation-row]
116
+ )
117
+ [data-message-navigation-marker] {
118
+ --message-navigation-progress: 0.7;
119
+ }
120
+
121
+ :is(
122
+ [data-message-navigation-row]:has(
123
+ + [data-message-navigation-row]
124
+ + [data-message-navigation-row]:is(:hover, :focus-visible)
125
+ ),
126
+ [data-message-navigation-row]:is(:hover, :focus-visible)
127
+ + [data-message-navigation-row]
128
+ + [data-message-navigation-row]
129
+ )
130
+ [data-message-navigation-marker] {
131
+ --message-navigation-progress: 0.4;
132
+ }
133
+
134
+ :is(
135
+ [data-message-navigation-row]:has(
136
+ + [data-message-navigation-row]
137
+ + [data-message-navigation-row]
138
+ + [data-message-navigation-row]:is(:hover, :focus-visible)
139
+ ),
140
+ [data-message-navigation-row]:is(:hover, :focus-visible)
141
+ + [data-message-navigation-row]
142
+ + [data-message-navigation-row]
143
+ + [data-message-navigation-row]
144
+ )
145
+ [data-message-navigation-marker] {
146
+ --message-navigation-progress: 0.2;
147
+ }
148
+
149
+ @media (prefers-reduced-motion: reduce) {
150
+ [data-message-navigation-marker] {
151
+ transition-duration: 0s;
152
+ }
153
+ }
154
+
155
+ @keyframes moldable-chat-fullscreen-enter {
156
+ from {
157
+ opacity: 0;
158
+ transform: translateY(1.5rem) scale(0.96);
159
+ }
160
+ to {
161
+ opacity: 1;
162
+ transform: translateY(0) scale(1);
163
+ }
164
+ }
165
+
166
+ [data-moldable-chat-fullscreen][data-state='open'] {
167
+ animation: moldable-chat-fullscreen-enter 280ms cubic-bezier(0.22, 1, 0.36, 1);
168
+ transform-origin: bottom center;
169
+ }
170
+
171
+ @media (prefers-reduced-motion: reduce) {
172
+ [data-moldable-chat-fullscreen][data-state='open'] {
173
+ animation-duration: 0s;
174
+ }
175
+ }
176
+
8
177
  /* Ensure Tailwind scans UI component class strings */
9
178
  @source "../../dist/**/*.{js,jsx,ts,tsx}";
179
+ @source "../catalog/**/*.{js,jsx,ts,tsx}";
10
180
  @source "../components/**/*.{js,jsx,ts,tsx}";
11
181
  @source "../lib/**/*.{js,jsx,ts,tsx}";
12
182
  @source "../hooks/**/*.{js,jsx,ts,tsx}";
13
183
  @source "../index.{js,jsx,ts,tsx}";
14
184
 
15
185
  @theme inline {
186
+ --font-sans: var(--font-family-ui);
187
+ --font-mono: var(--font-family-mono);
188
+
189
+ --text-ui-display: var(--type-display-size);
190
+ --text-ui-display--line-height: var(--type-display-line-height);
191
+ --text-ui-display--font-weight: var(--type-display-weight);
192
+ --text-ui-display--letter-spacing: var(--type-display-tracking);
193
+ --text-ui-heading: var(--type-heading-size);
194
+ --text-ui-heading--line-height: var(--type-heading-line-height);
195
+ --text-ui-heading--font-weight: var(--type-heading-weight);
196
+ --text-ui-heading--letter-spacing: var(--type-heading-tracking);
197
+ --text-ui-title: var(--type-title-size);
198
+ --text-ui-title--line-height: var(--type-title-line-height);
199
+ --text-ui-title--font-weight: var(--type-title-weight);
200
+ --text-ui-title--letter-spacing: var(--type-title-tracking);
201
+ --text-ui-body: var(--type-body-size);
202
+ --text-ui-body--line-height: var(--type-body-line-height);
203
+ --text-ui-label: var(--type-label-size);
204
+ --text-ui-label--line-height: var(--type-label-line-height);
205
+ --text-ui-caption: var(--type-caption-size);
206
+ --text-ui-caption--line-height: var(--type-caption-line-height);
207
+
16
208
  --radius-sm: calc(var(--radius) - 4px);
17
209
  --radius-md: calc(var(--radius) - 2px);
18
210
  --radius-lg: var(--radius);
19
211
  --radius-xl: calc(var(--radius) + 4px);
212
+ --radius-control: var(--shape-control);
213
+ --radius-container: var(--shape-container);
214
+ --radius-overlay: var(--shape-overlay);
215
+ --radius-window: var(--window-corner-radius);
216
+
217
+ --spacing-control-gap: var(--density-control-gap);
218
+ --spacing-control-inline: var(--density-control-padding-inline);
219
+ --spacing-control-xs: var(--density-control-height-xs);
220
+ --spacing-control-sm: var(--density-control-height-sm);
221
+ --spacing-control-md: var(--density-control-height-md);
222
+ --spacing-control-lg: var(--density-control-height-lg);
223
+ --spacing-row: var(--density-row-height);
224
+ --spacing-toolbar: var(--density-toolbar-height);
225
+ --spacing-pane: var(--density-pane-padding);
226
+ --spacing-section: var(--density-section-gap);
227
+
228
+ --ease-standard: var(--motion-ease-standard);
229
+ --ease-enter: var(--motion-ease-enter);
230
+ --ease-exit: var(--motion-ease-exit);
231
+ --ease-spring: var(--motion-ease-spring);
232
+ --shadow-panel: var(--material-shadow-panel);
233
+ --shadow-overlay: var(--material-shadow-overlay);
234
+ --shadow-window: var(--material-shadow-window);
235
+
20
236
  --color-background: var(--background);
21
237
  --color-foreground: var(--foreground);
238
+ --color-text-primary: var(--text-primary);
239
+ --color-text-secondary: var(--text-secondary);
240
+ --color-text-tertiary: var(--text-tertiary);
241
+ --color-text-disabled: var(--text-disabled);
242
+ --color-surface-canvas: var(--surface-canvas);
243
+ --color-surface-raised: var(--surface-raised);
244
+ --color-surface-recessed: var(--surface-recessed);
245
+ --color-surface-sidebar: var(--surface-sidebar);
246
+ --color-surface-toolbar: var(--surface-toolbar);
247
+ --color-surface-overlay: var(--surface-overlay);
248
+ --color-surface-selected: var(--surface-selected);
249
+ --color-separator: var(--separator);
250
+ --color-separator-strong: var(--separator-strong);
251
+ --color-control-hover: var(--control-hover);
252
+ --color-control-pressed: var(--control-pressed);
253
+ --color-control-selected: var(--control-selected);
254
+ --color-control-selected-foreground: var(--control-selected-foreground);
255
+ --color-control-disabled: var(--control-disabled);
256
+ --color-control-focus: var(--control-focus);
257
+ --color-control-invalid: var(--control-invalid);
258
+ --color-window-chrome: var(--window-chrome-background);
259
+ --color-window-chrome-foreground: var(--window-chrome-foreground);
260
+ --color-window-chrome-muted: var(--window-chrome-muted-foreground);
261
+ --color-window-border: var(--window-border);
22
262
  --color-card: var(--card);
23
263
  --color-card-foreground: var(--card-foreground);
24
264
  --color-popover: var(--popover);
@@ -57,6 +297,8 @@
57
297
  --color-status-stopped: var(--status-stopped);
58
298
  --color-status-pending: var(--status-pending);
59
299
  --color-status-error: var(--status-error);
300
+ --color-model-effort-blue: var(--model-effort-blue);
301
+ --color-model-effort-purple: var(--model-effort-purple);
60
302
  --color-terminal: var(--terminal);
61
303
  --color-terminal-header: var(--terminal-header);
62
304
  --color-terminal-foreground: var(--terminal-foreground);
@@ -65,7 +307,7 @@
65
307
  --color-terminal-stdout: var(--terminal-stdout);
66
308
  --color-terminal-stderr: var(--terminal-stderr);
67
309
  --color-terminal-error: var(--terminal-error);
68
- --chat-safe-padding: var(--chat-safe-padding);
310
+ --spacing-chat-safe: var(--chat-safe-padding);
69
311
  }
70
312
 
71
313
  @keyframes moldable-chat-shimmer {
@@ -77,6 +319,361 @@
77
319
  }
78
320
  }
79
321
 
322
+ @property --model-effort-mask-position {
323
+ syntax: '<percentage>';
324
+ inherits: false;
325
+ initial-value: 0%;
326
+ }
327
+
328
+ @keyframes model-effort-power-reveal {
329
+ from {
330
+ --model-effort-mask-position: 100%;
331
+ }
332
+ to {
333
+ --model-effort-mask-position: 0%;
334
+ }
335
+ }
336
+
337
+ @keyframes model-effort-power-field {
338
+ 0% {
339
+ transform: translate3d(-7%, -3%, 0) scale(1.02);
340
+ }
341
+ 45% {
342
+ transform: translate3d(6%, 4%, 0) scale(1.12);
343
+ }
344
+ 100% {
345
+ transform: translate3d(-1%, -6%, 0) scale(1.06);
346
+ }
347
+ }
348
+
349
+ @keyframes model-effort-power-particle-stream {
350
+ 0% {
351
+ opacity: 0;
352
+ transform: translate3d(102%, -50%, 0);
353
+ }
354
+ 10% {
355
+ opacity: calc(var(--particle-opacity) * 0.55);
356
+ transform: translate3d(98%, -50%, 0);
357
+ }
358
+ 45% {
359
+ opacity: var(--particle-opacity);
360
+ transform: translate3d(75%, -50%, 0);
361
+ }
362
+ 75% {
363
+ opacity: var(--particle-opacity);
364
+ transform: translate3d(38%, -50%, 0);
365
+ }
366
+ 100% {
367
+ opacity: 0;
368
+ transform: translate3d(-6%, -50%, 0);
369
+ }
370
+ }
371
+
372
+ @keyframes model-effort-max-burst {
373
+ 0% {
374
+ opacity: 0;
375
+ transform: translate(-50%, -50%) scale(0.35);
376
+ }
377
+ 18% {
378
+ opacity: 0.95;
379
+ }
380
+ 100% {
381
+ opacity: 0;
382
+ transform: translate(
383
+ calc(-50% + var(--burst-x)),
384
+ calc(-50% + var(--burst-y))
385
+ )
386
+ scale(0.12);
387
+ }
388
+ }
389
+
390
+ @keyframes model-effort-popover-in {
391
+ from {
392
+ opacity: 0;
393
+ transform: scale(0.98);
394
+ }
395
+ to {
396
+ opacity: 1;
397
+ transform: scale(1);
398
+ }
399
+ }
400
+
401
+ @keyframes model-effort-popover-out {
402
+ from {
403
+ opacity: 1;
404
+ transform: scale(1);
405
+ }
406
+ to {
407
+ opacity: 0;
408
+ transform: scale(0.98);
409
+ }
410
+ }
411
+
412
+ .model-effort-popover {
413
+ transform-origin: var(--radix-popover-content-transform-origin);
414
+ will-change: opacity, transform;
415
+ }
416
+
417
+ .model-effort-popover[data-state='open'] {
418
+ animation: model-effort-popover-in 320ms cubic-bezier(0.23, 1, 0.32, 1) 30ms
419
+ both;
420
+ }
421
+
422
+ .model-effort-popover[data-state='closed'] {
423
+ visibility: visible;
424
+ pointer-events: none;
425
+ animation: model-effort-popover-out 320ms cubic-bezier(0.23, 1, 0.32, 1) both;
426
+ }
427
+
428
+ .model-effort-power-fill {
429
+ position: absolute;
430
+ z-index: 1;
431
+ inset: 0;
432
+ overflow: hidden;
433
+ border-radius: inherit;
434
+ }
435
+
436
+ .model-effort-power-fill[data-level='light'] {
437
+ background: linear-gradient(
438
+ 90deg,
439
+ color-mix(
440
+ in srgb,
441
+ var(--model-effort-sparkle) 94%,
442
+ var(--model-effort-blue)
443
+ )
444
+ 0%,
445
+ color-mix(
446
+ in srgb,
447
+ var(--model-effort-sparkle) 80%,
448
+ var(--model-effort-blue)
449
+ )
450
+ 100%
451
+ );
452
+ }
453
+
454
+ .model-effort-power-fill[data-level='medium'] {
455
+ background: linear-gradient(
456
+ 90deg,
457
+ color-mix(
458
+ in srgb,
459
+ var(--model-effort-sparkle) 76%,
460
+ var(--model-effort-blue)
461
+ )
462
+ 0%,
463
+ color-mix(
464
+ in srgb,
465
+ var(--model-effort-sparkle) 48%,
466
+ var(--model-effort-blue)
467
+ )
468
+ 100%
469
+ );
470
+ }
471
+
472
+ .model-effort-power-fill[data-level='high'] {
473
+ background: linear-gradient(
474
+ 90deg,
475
+ color-mix(
476
+ in srgb,
477
+ var(--model-effort-sparkle) 42%,
478
+ var(--model-effort-blue)
479
+ )
480
+ 0%,
481
+ color-mix(
482
+ in srgb,
483
+ var(--model-effort-sparkle) 12%,
484
+ var(--model-effort-blue)
485
+ )
486
+ 100%
487
+ );
488
+ }
489
+
490
+ .model-effort-power-fill[data-level='xhigh'] {
491
+ background: linear-gradient(
492
+ 90deg,
493
+ color-mix(
494
+ in srgb,
495
+ var(--model-effort-sparkle) 16%,
496
+ var(--model-effort-blue)
497
+ )
498
+ 0%,
499
+ color-mix(in srgb, var(--model-effort-blue) 76%, var(--model-effort-purple))
500
+ 58%,
501
+ color-mix(in srgb, var(--model-effort-blue) 54%, var(--model-effort-purple))
502
+ 100%
503
+ );
504
+ }
505
+
506
+ .model-effort-power-fill[data-level='max'] {
507
+ --model-effort-mask-position: 0%;
508
+ background: linear-gradient(
509
+ 90deg,
510
+ color-mix(in srgb, var(--model-effort-blue) 60%, var(--model-effort-purple))
511
+ 0%,
512
+ var(--model-effort-purple) 55%,
513
+ color-mix(in srgb, var(--model-effort-purple) 72%, var(--model-effort-blue))
514
+ 100%
515
+ );
516
+ --model-effort-reveal-mask: linear-gradient(
517
+ 90deg,
518
+ transparent calc(var(--model-effort-mask-position) - 120px),
519
+ black var(--model-effort-mask-position),
520
+ black 100%
521
+ );
522
+ -webkit-mask-image: var(--model-effort-reveal-mask);
523
+ mask-image: var(--model-effort-reveal-mask);
524
+ }
525
+
526
+ .model-effort-power-fill[data-level='max'][data-reveal='true'] {
527
+ animation: model-effort-power-reveal 2s both;
528
+ }
529
+
530
+ .model-effort-power-field {
531
+ position: absolute;
532
+ inset: -90% -24%;
533
+ background:
534
+ radial-gradient(
535
+ circle at 18% 35%,
536
+ color-mix(
537
+ in srgb,
538
+ var(--model-effort-blue) 90%,
539
+ var(--model-effort-sparkle)
540
+ )
541
+ 0 8%,
542
+ transparent 34%
543
+ ),
544
+ radial-gradient(
545
+ circle at 47% 60%,
546
+ color-mix(
547
+ in srgb,
548
+ var(--model-effort-purple) 78%,
549
+ var(--model-effort-sparkle)
550
+ )
551
+ 0 11%,
552
+ transparent 38%
553
+ ),
554
+ radial-gradient(
555
+ circle at 78% 34%,
556
+ color-mix(in srgb, var(--model-effort-purple) 70%, var(--background)) 0
557
+ 10%,
558
+ transparent 36%
559
+ ),
560
+ radial-gradient(
561
+ circle at 63% 72%,
562
+ color-mix(
563
+ in srgb,
564
+ var(--model-effort-purple) 84%,
565
+ var(--model-effort-blue)
566
+ )
567
+ 0 9%,
568
+ transparent 34%
569
+ );
570
+ mix-blend-mode: luminosity;
571
+ animation: model-effort-power-field 4.8s ease-in-out infinite alternate;
572
+ will-change: transform;
573
+ }
574
+
575
+ .model-effort-power-fill[data-level='xhigh'] .model-effort-power-field {
576
+ opacity: 0.46;
577
+ animation-duration: 6.4s;
578
+ }
579
+
580
+ .model-effort-power-fill[data-level='light'] .model-effort-power-field {
581
+ opacity: 0.12;
582
+ animation-duration: 9s;
583
+ }
584
+
585
+ .model-effort-power-fill[data-level='medium'] .model-effort-power-field {
586
+ opacity: 0.22;
587
+ animation-duration: 8s;
588
+ }
589
+
590
+ .model-effort-power-fill[data-level='high'] .model-effort-power-field {
591
+ opacity: 0.34;
592
+ animation-duration: 7.1s;
593
+ }
594
+
595
+ .model-effort-power-fill[data-level='max'] .model-effort-power-field {
596
+ opacity: 0.9;
597
+ }
598
+
599
+ .model-effort-power-particles {
600
+ position: absolute;
601
+ z-index: 2;
602
+ inset: 0;
603
+ }
604
+
605
+ .model-effort-power-fill[data-level='xhigh'] .model-effort-power-particles {
606
+ opacity: 0.42;
607
+ }
608
+
609
+ .model-effort-power-fill[data-level='light'] .model-effort-power-particles {
610
+ opacity: 0.12;
611
+ }
612
+
613
+ .model-effort-power-fill[data-level='medium'] .model-effort-power-particles {
614
+ opacity: 0.2;
615
+ }
616
+
617
+ .model-effort-power-fill[data-level='high'] .model-effort-power-particles {
618
+ opacity: 0.3;
619
+ }
620
+
621
+ .model-effort-power-fill[data-level='light']
622
+ .model-effort-power-particle:not(:nth-child(4n + 1)),
623
+ .model-effort-power-fill[data-level='medium']
624
+ .model-effort-power-particle:nth-child(even) {
625
+ display: none;
626
+ }
627
+
628
+ .model-effort-power-fill[data-level='xhigh']
629
+ .model-effort-power-particle:nth-child(even) {
630
+ display: none;
631
+ }
632
+
633
+ .model-effort-power-particle {
634
+ position: absolute;
635
+ right: 0;
636
+ left: 0;
637
+ height: 3px;
638
+ animation-name: model-effort-power-particle-stream;
639
+ animation-timing-function: linear;
640
+ animation-iteration-count: infinite;
641
+ will-change: opacity, transform;
642
+ }
643
+
644
+ .model-effort-power-particle::before {
645
+ display: block;
646
+ width: 3px;
647
+ height: 3px;
648
+ border-radius: 999px;
649
+ background: color-mix(in srgb, var(--model-effort-sparkle) 72%, transparent);
650
+ box-shadow: 0 0 5px
651
+ color-mix(in srgb, var(--model-effort-sparkle) 34%, transparent);
652
+ content: '';
653
+ transform: scale(var(--particle-scale));
654
+ }
655
+
656
+ .model-effort-max-burst {
657
+ position: absolute;
658
+ z-index: -1;
659
+ top: 50%;
660
+ left: 50%;
661
+ width: 76px;
662
+ height: 76px;
663
+ pointer-events: none;
664
+ transform: translate(-50%, -50%);
665
+ }
666
+
667
+ .model-effort-max-burst-particle {
668
+ position: absolute;
669
+ top: 50%;
670
+ left: 50%;
671
+ width: 5px;
672
+ height: 5px;
673
+ border-radius: 999px;
674
+ animation: model-effort-max-burst 620ms cubic-bezier(0.25, 1, 0.5, 1) both;
675
+ }
676
+
80
677
  .moldable-chat-shimmer {
81
678
  color: transparent;
82
679
  background: linear-gradient(
@@ -94,6 +691,57 @@
94
691
  }
95
692
 
96
693
  :root {
694
+ /*
695
+ * Stable design decisions. Components and applications should consume these
696
+ * semantic roles instead of deriving their own grays, sizes, or timings.
697
+ */
698
+ --font-family-ui:
699
+ system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
700
+ --font-family-mono: ui-monospace, Menlo, Consolas, monospace;
701
+
702
+ --type-display-size: 2rem;
703
+ --type-display-line-height: 2.25rem;
704
+ --type-display-weight: 650;
705
+ --type-display-tracking: -0.035em;
706
+ --type-heading-size: 1.5rem;
707
+ --type-heading-line-height: 1.75rem;
708
+ --type-heading-weight: 650;
709
+ --type-heading-tracking: -0.025em;
710
+ --type-title-size: 1.125rem;
711
+ --type-title-line-height: 1.5rem;
712
+ --type-title-weight: 600;
713
+ --type-title-tracking: -0.015em;
714
+ --type-body-size: 0.8125rem;
715
+ --type-body-line-height: 1.25rem;
716
+ --type-label-size: 0.75rem;
717
+ --type-label-line-height: 1rem;
718
+ --type-caption-size: 0.625rem;
719
+ --type-caption-line-height: 0.75rem;
720
+
721
+ --density-control-height-xs: 1.5rem;
722
+ --density-control-height-sm: 2rem;
723
+ --density-control-height-md: 2.25rem;
724
+ --density-control-height-lg: 2.5rem;
725
+ --density-control-gap: 0.375rem;
726
+ --density-control-padding-inline: 0.75rem;
727
+ --density-row-height: 2.25rem;
728
+ --density-toolbar-height: 2.5rem;
729
+ --density-pane-padding: 0.75rem;
730
+ --density-section-gap: 1rem;
731
+
732
+ --shape-control: 0.5rem;
733
+ --shape-container: 0.65rem;
734
+ --shape-overlay: 0.75rem;
735
+
736
+ --motion-duration-instant: 80ms;
737
+ --motion-duration-fast: 120ms;
738
+ --motion-duration-normal: 180ms;
739
+ --motion-duration-slow: 280ms;
740
+ --motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
741
+ --motion-ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
742
+ --motion-ease-exit: cubic-bezier(0.4, 0, 1, 1);
743
+ --motion-ease-spring: cubic-bezier(0.22, 1.15, 0.36, 1);
744
+
97
745
  --radius: 0.65rem;
98
746
  --background: oklch(1 0 0);
99
747
  --foreground: oklch(0.141 0.005 285.823);
@@ -114,6 +762,9 @@
114
762
  --border: oklch(0.92 0.004 286.32);
115
763
  --input: oklch(0.92 0.004 286.32);
116
764
  --ring: oklch(0.7145 0.185 45.03);
765
+ --model-effort-blue: #339cff;
766
+ --model-effort-purple: #924ff7;
767
+ --model-effort-sparkle: #fff;
117
768
  --chart-1: oklch(0.646 0.222 41.116);
118
769
  --chart-2: oklch(0.6 0.118 184.704);
119
770
  --chart-3: oklch(0.398 0.07 227.392);
@@ -135,6 +786,81 @@
135
786
  --status-stopped: oklch(0.552 0.016 285.938);
136
787
  --status-pending: oklch(0.75 0.15 75);
137
788
  --status-error: oklch(0.5866 0.1994 31.76);
789
+
790
+ --text-primary: var(--foreground);
791
+ --text-secondary: var(--muted-foreground);
792
+ --text-tertiary: color-mix(
793
+ in oklch,
794
+ var(--muted-foreground) 72%,
795
+ transparent
796
+ );
797
+ --text-disabled: color-mix(
798
+ in oklch,
799
+ var(--muted-foreground) 50%,
800
+ transparent
801
+ );
802
+ --surface-canvas: var(--background);
803
+ --surface-raised: var(--card);
804
+ --surface-recessed: color-mix(in oklch, var(--muted) 52%, var(--background));
805
+ --surface-sidebar: var(--sidebar);
806
+ --surface-toolbar: color-mix(in oklch, var(--background) 82%, transparent);
807
+ --surface-overlay: color-mix(in oklch, var(--popover) 92%, transparent);
808
+ --surface-selected: var(--accent);
809
+ --separator: color-mix(in oklch, var(--border) 78%, transparent);
810
+ --separator-strong: var(--border);
811
+ --control-hover: color-mix(in oklch, var(--foreground) 6%, transparent);
812
+ --control-pressed: color-mix(in oklch, var(--foreground) 10%, transparent);
813
+ --control-selected: var(--accent);
814
+ --control-selected-foreground: var(--accent-foreground);
815
+ --control-disabled: color-mix(
816
+ in oklch,
817
+ var(--muted-foreground) 10%,
818
+ transparent
819
+ );
820
+ --control-focus: var(--ring);
821
+ --control-invalid: var(--destructive);
822
+
823
+ --material-blur-toolbar: 16px;
824
+ --material-blur-overlay: 20px;
825
+ --material-saturation: 1.12;
826
+ --material-shadow-panel:
827
+ 0 1px 2px oklch(0.15 0.005 285 / 6%), 0 4px 12px oklch(0.15 0.005 285 / 4%);
828
+ --material-shadow-overlay:
829
+ 0 8px 24px oklch(0.15 0.005 285 / 12%), 0 2px 6px oklch(0.15 0.005 285 / 8%);
830
+ --material-shadow-window: 0 24px 80px oklch(0.1 0.005 285 / 22%);
831
+
832
+ /*
833
+ * Renderer boundary for embedded and standalone windows. The host may set
834
+ * these properties on the document root; zero-value defaults are safe in a
835
+ * normal browser or embedded webview.
836
+ */
837
+ --window-safe-area-top: env(safe-area-inset-top, 0px);
838
+ --window-safe-area-inline-end: env(safe-area-inset-right, 0px);
839
+ --window-safe-area-bottom: env(safe-area-inset-bottom, 0px);
840
+ --window-safe-area-inline-start: env(safe-area-inset-left, 0px);
841
+ --window-titlebar-height: env(titlebar-area-height, 0px);
842
+ --window-drag-region-height: var(--window-titlebar-height);
843
+ --window-control-inset-inline-start: 0px;
844
+ --window-control-inset-inline-end: 0px;
845
+ --window-content-inset-top: max(
846
+ var(--window-safe-area-top),
847
+ var(--window-titlebar-height)
848
+ );
849
+ --window-content-inset-inline-end: max(
850
+ var(--window-safe-area-inline-end),
851
+ var(--window-control-inset-inline-end)
852
+ );
853
+ --window-content-inset-bottom: var(--window-safe-area-bottom);
854
+ --window-content-inset-inline-start: max(
855
+ var(--window-safe-area-inline-start),
856
+ var(--window-control-inset-inline-start)
857
+ );
858
+ --window-corner-radius: 0px;
859
+ --window-chrome-background: var(--surface-toolbar);
860
+ --window-chrome-foreground: var(--text-primary);
861
+ --window-chrome-muted-foreground: var(--text-secondary);
862
+ --window-border: var(--separator);
863
+
138
864
  /* Terminal - stays dark in both modes */
139
865
  --terminal: oklch(0.16 0 0);
140
866
  --terminal-header: oklch(0.22 0 0);
@@ -144,7 +870,33 @@
144
870
  --terminal-stdout: oklch(0.75 0 0);
145
871
  --terminal-stderr: oklch(0.78 0.12 75);
146
872
  --terminal-error: oklch(0.7 0.16 25);
147
- --chat-safe-padding: 104px;
873
+ --chat-safe-padding: 0px;
874
+ }
875
+
876
+ :where([data-density='compact']) {
877
+ --density-control-height-xs: 1.375rem;
878
+ --density-control-height-sm: 1.75rem;
879
+ --density-control-height-md: 2rem;
880
+ --density-control-height-lg: 2.25rem;
881
+ --density-control-gap: 0.25rem;
882
+ --density-control-padding-inline: 0.625rem;
883
+ --density-row-height: 1.875rem;
884
+ --density-toolbar-height: 2rem;
885
+ --density-pane-padding: 0.625rem;
886
+ --density-section-gap: 0.75rem;
887
+ }
888
+
889
+ :where([data-density='comfortable']) {
890
+ --density-control-height-xs: 1.75rem;
891
+ --density-control-height-sm: 2.25rem;
892
+ --density-control-height-md: 2.5rem;
893
+ --density-control-height-lg: 2.75rem;
894
+ --density-control-gap: 0.5rem;
895
+ --density-control-padding-inline: 1rem;
896
+ --density-row-height: 2.75rem;
897
+ --density-toolbar-height: 3rem;
898
+ --density-pane-padding: 1rem;
899
+ --density-section-gap: 1.5rem;
148
900
  }
149
901
 
150
902
  .dark {
@@ -167,6 +919,9 @@
167
919
  --border: oklch(1 0 0 / 10%);
168
920
  --input: oklch(1 0 0 / 15%);
169
921
  --ring: oklch(0.7145 0.185 45.03);
922
+ --model-effort-blue: #339cff;
923
+ --model-effort-purple: #ad7bf9;
924
+ --model-effort-sparkle: #fff;
170
925
  --chart-1: oklch(0.7145 0.185 45.03);
171
926
  --chart-2: oklch(0.696 0.17 162.48);
172
927
  --chart-3: oklch(0.769 0.188 70.08);
@@ -188,6 +943,11 @@
188
943
  --status-stopped: oklch(0.705 0.015 286.067);
189
944
  --status-pending: oklch(0.8 0.12 75);
190
945
  --status-error: oklch(0.704 0.191 22.216);
946
+ --material-shadow-panel:
947
+ 0 1px 2px oklch(0 0 0 / 24%), 0 6px 16px oklch(0 0 0 / 16%);
948
+ --material-shadow-overlay:
949
+ 0 12px 32px oklch(0 0 0 / 34%), 0 2px 8px oklch(0 0 0 / 24%);
950
+ --material-shadow-window: 0 28px 96px oklch(0 0 0 / 48%);
191
951
  /* Terminal - same dark look in dark mode */
192
952
  --terminal: oklch(0.16 0 0);
193
953
  --terminal-header: oklch(0.22 0 0);
@@ -197,7 +957,76 @@
197
957
  --terminal-stdout: oklch(0.75 0 0);
198
958
  --terminal-stderr: oklch(0.78 0.12 75);
199
959
  --terminal-error: oklch(0.7 0.16 25);
200
- --chat-safe-padding: 104px;
960
+ --chat-safe-padding: 0px;
961
+ }
962
+
963
+ @media (prefers-contrast: more) {
964
+ :root {
965
+ --text-tertiary: color-mix(
966
+ in oklch,
967
+ var(--muted-foreground) 92%,
968
+ var(--foreground)
969
+ );
970
+ --text-disabled: color-mix(
971
+ in oklch,
972
+ var(--muted-foreground) 72%,
973
+ transparent
974
+ );
975
+ --separator: color-mix(in oklch, var(--foreground) 32%, transparent);
976
+ --separator-strong: color-mix(in oklch, var(--foreground) 54%, transparent);
977
+ --control-hover: color-mix(in oklch, var(--foreground) 12%, transparent);
978
+ --control-pressed: color-mix(in oklch, var(--foreground) 18%, transparent);
979
+ --window-border: var(--separator-strong);
980
+ }
981
+ }
982
+
983
+ @media (forced-colors: active) {
984
+ :root {
985
+ --text-primary: CanvasText;
986
+ --text-secondary: CanvasText;
987
+ --text-tertiary: CanvasText;
988
+ --text-disabled: GrayText;
989
+ --surface-canvas: Canvas;
990
+ --surface-raised: Canvas;
991
+ --surface-recessed: Canvas;
992
+ --surface-sidebar: Canvas;
993
+ --surface-toolbar: Canvas;
994
+ --surface-overlay: Canvas;
995
+ --surface-selected: Highlight;
996
+ --separator: ButtonBorder;
997
+ --separator-strong: CanvasText;
998
+ --control-hover: transparent;
999
+ --control-pressed: transparent;
1000
+ --control-selected: Highlight;
1001
+ --control-selected-foreground: HighlightText;
1002
+ --control-disabled: transparent;
1003
+ --control-focus: Highlight;
1004
+ --control-invalid: Mark;
1005
+ --material-blur-toolbar: 0px;
1006
+ --material-blur-overlay: 0px;
1007
+ --material-saturation: 1;
1008
+ --material-shadow-panel: none;
1009
+ --material-shadow-overlay: none;
1010
+ --material-shadow-window: none;
1011
+ }
1012
+ }
1013
+
1014
+ :where([data-transparency='reduced']) {
1015
+ --surface-toolbar: var(--background);
1016
+ --surface-overlay: var(--popover);
1017
+ --material-blur-toolbar: 0px;
1018
+ --material-blur-overlay: 0px;
1019
+ --material-saturation: 1;
1020
+ }
1021
+
1022
+ @media (prefers-reduced-transparency: reduce) {
1023
+ :root {
1024
+ --surface-toolbar: var(--background);
1025
+ --surface-overlay: var(--popover);
1026
+ --material-blur-toolbar: 0px;
1027
+ --material-blur-overlay: 0px;
1028
+ --material-saturation: 1;
1029
+ }
201
1030
  }
202
1031
 
203
1032
  @layer base {
@@ -223,6 +1052,42 @@
223
1052
  }
224
1053
  }
225
1054
 
1055
+ @media (prefers-reduced-motion: reduce) {
1056
+ :root {
1057
+ --motion-duration-instant: 1ms;
1058
+ --motion-duration-fast: 1ms;
1059
+ --motion-duration-normal: 1ms;
1060
+ --motion-duration-slow: 1ms;
1061
+ --motion-ease-standard: linear;
1062
+ --motion-ease-enter: linear;
1063
+ --motion-ease-exit: linear;
1064
+ --motion-ease-spring: linear;
1065
+ }
1066
+
1067
+ .model-effort-power-fill,
1068
+ .model-effort-power-field,
1069
+ .model-effort-power-particle,
1070
+ .model-effort-max-burst-particle,
1071
+ .model-effort-popover {
1072
+ animation: none;
1073
+ }
1074
+
1075
+ .model-effort-max-burst {
1076
+ display: none;
1077
+ }
1078
+ }
1079
+
1080
+ :where([data-motion='reduced']) {
1081
+ --motion-duration-instant: 1ms;
1082
+ --motion-duration-fast: 1ms;
1083
+ --motion-duration-normal: 1ms;
1084
+ --motion-duration-slow: 1ms;
1085
+ --motion-ease-standard: linear;
1086
+ --motion-ease-enter: linear;
1087
+ --motion-ease-exit: linear;
1088
+ --motion-ease-spring: linear;
1089
+ }
1090
+
226
1091
  /* Shiki dual-theme support: override inline styles in dark mode */
227
1092
  .dark .shiki,
228
1093
  .dark .shiki span {