@moldable-ai/ui 0.2.19 → 0.2.21

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 (464) hide show
  1. package/dist/catalog/catalog-coverage.d.ts +15 -0
  2. package/dist/catalog/catalog-coverage.d.ts.map +1 -0
  3. package/dist/catalog/catalog-coverage.js +44 -0
  4. package/dist/catalog/catalog-manifest.d.ts +6 -0
  5. package/dist/catalog/catalog-manifest.d.ts.map +1 -0
  6. package/dist/catalog/catalog-manifest.js +117 -0
  7. package/dist/catalog/catalog-types.d.ts +64 -0
  8. package/dist/catalog/catalog-types.d.ts.map +1 -0
  9. package/dist/catalog/catalog-types.js +20 -0
  10. package/dist/catalog/component-catalog.d.ts +14 -0
  11. package/dist/catalog/component-catalog.d.ts.map +1 -0
  12. package/dist/catalog/component-catalog.js +49 -0
  13. package/dist/catalog/core-catalog-exclusions.d.ts +8 -0
  14. package/dist/catalog/core-catalog-exclusions.d.ts.map +1 -0
  15. package/dist/catalog/core-catalog-exclusions.js +151 -0
  16. package/dist/catalog/core-catalog.d.ts +2 -0
  17. package/dist/catalog/core-catalog.d.ts.map +1 -0
  18. package/dist/catalog/core-catalog.js +19 -0
  19. package/dist/catalog/core-collection-stories.d.ts +3 -0
  20. package/dist/catalog/core-collection-stories.d.ts.map +1 -0
  21. package/dist/catalog/core-collection-stories.js +42 -0
  22. package/dist/catalog/core-control-stories.d.ts +3 -0
  23. package/dist/catalog/core-control-stories.d.ts.map +1 -0
  24. package/dist/catalog/core-control-stories.js +94 -0
  25. package/dist/catalog/core-feedback-stories.d.ts +3 -0
  26. package/dist/catalog/core-feedback-stories.d.ts.map +1 -0
  27. package/dist/catalog/core-feedback-stories.js +50 -0
  28. package/dist/catalog/core-foundation-stories.d.ts +3 -0
  29. package/dist/catalog/core-foundation-stories.d.ts.map +1 -0
  30. package/dist/catalog/core-foundation-stories.js +53 -0
  31. package/dist/catalog/core-navigation-stories.d.ts +3 -0
  32. package/dist/catalog/core-navigation-stories.d.ts.map +1 -0
  33. package/dist/catalog/core-navigation-stories.js +25 -0
  34. package/dist/catalog/core-overlay-stories.d.ts +3 -0
  35. package/dist/catalog/core-overlay-stories.d.ts.map +1 -0
  36. package/dist/catalog/core-overlay-stories.js +20 -0
  37. package/dist/catalog/index.d.ts +7 -0
  38. package/dist/catalog/index.d.ts.map +1 -0
  39. package/dist/catalog/index.js +6 -0
  40. package/dist/components/app-error-boundary.d.ts +1 -0
  41. package/dist/components/app-error-boundary.d.ts.map +1 -1
  42. package/dist/components/app-error-boundary.js +13 -0
  43. package/dist/components/chat/chat-image-lightbox.d.ts +9 -0
  44. package/dist/components/chat/chat-image-lightbox.d.ts.map +1 -0
  45. package/dist/components/chat/chat-image-lightbox.js +9 -0
  46. package/dist/components/chat/chat-message.d.ts +19 -1
  47. package/dist/components/chat/chat-message.d.ts.map +1 -1
  48. package/dist/components/chat/chat-message.js +66 -16
  49. package/dist/components/chat/chat-messages.d.ts +5 -2
  50. package/dist/components/chat/chat-messages.d.ts.map +1 -1
  51. package/dist/components/chat/chat-messages.js +61 -6
  52. package/dist/components/chat/chat-panel.d.ts +49 -6
  53. package/dist/components/chat/chat-panel.d.ts.map +1 -1
  54. package/dist/components/chat/chat-panel.js +196 -163
  55. package/dist/components/chat/conversation-history.d.ts +39 -5
  56. package/dist/components/chat/conversation-history.d.ts.map +1 -1
  57. package/dist/components/chat/conversation-history.js +192 -26
  58. package/dist/components/chat/index.d.ts +2 -2
  59. package/dist/components/chat/index.d.ts.map +1 -1
  60. package/dist/components/chat/index.js +1 -1
  61. package/dist/components/chat/tool-handlers.d.ts.map +1 -1
  62. package/dist/components/chat/tool-handlers.js +40 -2
  63. package/dist/components/chat/vertical-scroll-fade.d.ts +6 -0
  64. package/dist/components/chat/vertical-scroll-fade.d.ts.map +1 -0
  65. package/dist/components/chat/vertical-scroll-fade.js +12 -0
  66. package/dist/components/native-capabilities/bluetooth-panel-helpers.d.ts +9 -0
  67. package/dist/components/native-capabilities/bluetooth-panel-helpers.d.ts.map +1 -0
  68. package/dist/components/native-capabilities/bluetooth-panel-helpers.js +37 -0
  69. package/dist/components/native-capabilities/bluetooth-panel.d.ts +56 -0
  70. package/dist/components/native-capabilities/bluetooth-panel.d.ts.map +1 -0
  71. package/dist/components/native-capabilities/bluetooth-panel.js +470 -0
  72. package/dist/components/native-capabilities/camera-preview.d.ts +39 -0
  73. package/dist/components/native-capabilities/camera-preview.d.ts.map +1 -0
  74. package/dist/components/native-capabilities/camera-preview.js +228 -0
  75. package/dist/components/native-capabilities/capability-badge.d.ts +23 -0
  76. package/dist/components/native-capabilities/capability-badge.d.ts.map +1 -0
  77. package/dist/components/native-capabilities/capability-badge.js +39 -0
  78. package/dist/components/native-capabilities/capability-matrix.d.ts +14 -0
  79. package/dist/components/native-capabilities/capability-matrix.d.ts.map +1 -0
  80. package/dist/components/native-capabilities/capability-matrix.js +97 -0
  81. package/dist/components/native-capabilities/clipboard-button.d.ts +26 -0
  82. package/dist/components/native-capabilities/clipboard-button.d.ts.map +1 -0
  83. package/dist/components/native-capabilities/clipboard-button.js +99 -0
  84. package/dist/components/native-capabilities/device-io-controls.d.ts +4 -0
  85. package/dist/components/native-capabilities/device-io-controls.d.ts.map +1 -0
  86. package/dist/components/native-capabilities/device-io-controls.js +28 -0
  87. package/dist/components/native-capabilities/device-list.d.ts +20 -0
  88. package/dist/components/native-capabilities/device-list.d.ts.map +1 -0
  89. package/dist/components/native-capabilities/device-list.js +14 -0
  90. package/dist/components/native-capabilities/display-map.d.ts +23 -0
  91. package/dist/components/native-capabilities/display-map.d.ts.map +1 -0
  92. package/dist/components/native-capabilities/display-map.js +114 -0
  93. package/dist/components/native-capabilities/haptic-button.d.ts +26 -0
  94. package/dist/components/native-capabilities/haptic-button.d.ts.map +1 -0
  95. package/dist/components/native-capabilities/haptic-button.js +94 -0
  96. package/dist/components/native-capabilities/hid-panel.d.ts +40 -0
  97. package/dist/components/native-capabilities/hid-panel.d.ts.map +1 -0
  98. package/dist/components/native-capabilities/hid-panel.js +373 -0
  99. package/dist/components/native-capabilities/index.d.ts +27 -0
  100. package/dist/components/native-capabilities/index.d.ts.map +1 -0
  101. package/dist/components/native-capabilities/index.js +26 -0
  102. package/dist/components/native-capabilities/live-indicator.d.ts +15 -0
  103. package/dist/components/native-capabilities/live-indicator.d.ts.map +1 -0
  104. package/dist/components/native-capabilities/live-indicator.js +26 -0
  105. package/dist/components/native-capabilities/local-auth-button.d.ts +33 -0
  106. package/dist/components/native-capabilities/local-auth-button.d.ts.map +1 -0
  107. package/dist/components/native-capabilities/local-auth-button.js +115 -0
  108. package/dist/components/native-capabilities/location-panel.d.ts +29 -0
  109. package/dist/components/native-capabilities/location-panel.d.ts.map +1 -0
  110. package/dist/components/native-capabilities/location-panel.js +146 -0
  111. package/dist/components/native-capabilities/microphone-meter.d.ts +35 -0
  112. package/dist/components/native-capabilities/microphone-meter.d.ts.map +1 -0
  113. package/dist/components/native-capabilities/microphone-meter.js +244 -0
  114. package/dist/components/native-capabilities/midi-monitor.d.ts +54 -0
  115. package/dist/components/native-capabilities/midi-monitor.d.ts.map +1 -0
  116. package/dist/components/native-capabilities/midi-monitor.js +534 -0
  117. package/dist/components/native-capabilities/native-capability-panel.d.ts +11 -0
  118. package/dist/components/native-capabilities/native-capability-panel.d.ts.map +1 -0
  119. package/dist/components/native-capabilities/native-capability-panel.js +28 -0
  120. package/dist/components/native-capabilities/notification-panel.d.ts +24 -0
  121. package/dist/components/native-capabilities/notification-panel.d.ts.map +1 -0
  122. package/dist/components/native-capabilities/notification-panel.js +124 -0
  123. package/dist/components/native-capabilities/power-blocker-controller.d.ts +19 -0
  124. package/dist/components/native-capabilities/power-blocker-controller.d.ts.map +1 -0
  125. package/dist/components/native-capabilities/power-blocker-controller.js +83 -0
  126. package/dist/components/native-capabilities/power-panel.d.ts +67 -0
  127. package/dist/components/native-capabilities/power-panel.d.ts.map +1 -0
  128. package/dist/components/native-capabilities/power-panel.js +309 -0
  129. package/dist/components/native-capabilities/readout.d.ts +10 -0
  130. package/dist/components/native-capabilities/readout.d.ts.map +1 -0
  131. package/dist/components/native-capabilities/readout.js +11 -0
  132. package/dist/components/native-capabilities/screen-share-preview.d.ts +36 -0
  133. package/dist/components/native-capabilities/screen-share-preview.d.ts.map +1 -0
  134. package/dist/components/native-capabilities/screen-share-preview.js +191 -0
  135. package/dist/components/native-capabilities/secure-storage-panel.d.ts +36 -0
  136. package/dist/components/native-capabilities/secure-storage-panel.d.ts.map +1 -0
  137. package/dist/components/native-capabilities/secure-storage-panel.js +193 -0
  138. package/dist/components/native-capabilities/serial-console.d.ts +64 -0
  139. package/dist/components/native-capabilities/serial-console.d.ts.map +1 -0
  140. package/dist/components/native-capabilities/serial-console.js +399 -0
  141. package/dist/components/native-capabilities/shortcut-recorder.d.ts +35 -0
  142. package/dist/components/native-capabilities/shortcut-recorder.d.ts.map +1 -0
  143. package/dist/components/native-capabilities/shortcut-recorder.js +217 -0
  144. package/dist/components/native-capabilities/stream-log.d.ts +35 -0
  145. package/dist/components/native-capabilities/stream-log.d.ts.map +1 -0
  146. package/dist/components/native-capabilities/stream-log.js +65 -0
  147. package/dist/components/native-capabilities/system-audio-monitor.d.ts +34 -0
  148. package/dist/components/native-capabilities/system-audio-monitor.d.ts.map +1 -0
  149. package/dist/components/native-capabilities/system-audio-monitor.js +275 -0
  150. package/dist/components/native-capabilities/usb-panel.d.ts +54 -0
  151. package/dist/components/native-capabilities/usb-panel.d.ts.map +1 -0
  152. package/dist/components/native-capabilities/usb-panel.js +363 -0
  153. package/dist/components/native-capabilities/use-capability.d.ts +20 -0
  154. package/dist/components/native-capabilities/use-capability.d.ts.map +1 -0
  155. package/dist/components/native-capabilities/use-capability.js +61 -0
  156. package/dist/components/ui/alert-dialog.d.ts +7 -3
  157. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  158. package/dist/components/ui/alert-dialog.js +9 -5
  159. package/dist/components/ui/alert.d.ts +19 -3
  160. package/dist/components/ui/alert.d.ts.map +1 -1
  161. package/dist/components/ui/alert.js +25 -8
  162. package/dist/components/ui/app-frame.d.ts +28 -0
  163. package/dist/components/ui/app-frame.d.ts.map +1 -0
  164. package/dist/components/ui/app-frame.js +95 -0
  165. package/dist/components/ui/button-group.d.ts +1 -1
  166. package/dist/components/ui/button.js +1 -1
  167. package/dist/components/ui/collapsible.d.ts +9 -1
  168. package/dist/components/ui/collapsible.d.ts.map +1 -1
  169. package/dist/components/ui/collapsible.js +13 -2
  170. package/dist/components/ui/collection-navigation.d.ts +8 -0
  171. package/dist/components/ui/collection-navigation.d.ts.map +1 -0
  172. package/dist/components/ui/collection-navigation.js +19 -0
  173. package/dist/components/ui/color-well.d.ts +13 -0
  174. package/dist/components/ui/color-well.d.ts.map +1 -0
  175. package/dist/components/ui/color-well.js +30 -0
  176. package/dist/components/ui/command.d.ts +5 -1
  177. package/dist/components/ui/command.d.ts.map +1 -1
  178. package/dist/components/ui/command.js +13 -1
  179. package/dist/components/ui/confirm-dialog.d.ts +19 -0
  180. package/dist/components/ui/confirm-dialog.d.ts.map +1 -0
  181. package/dist/components/ui/confirm-dialog.js +45 -0
  182. package/dist/components/ui/date-field.d.ts +19 -0
  183. package/dist/components/ui/date-field.d.ts.map +1 -0
  184. package/dist/components/ui/date-field.js +54 -0
  185. package/dist/components/ui/date-picker.d.ts +24 -0
  186. package/dist/components/ui/date-picker.d.ts.map +1 -0
  187. package/dist/components/ui/date-picker.js +92 -0
  188. package/dist/components/ui/dialog.d.ts +4 -2
  189. package/dist/components/ui/dialog.d.ts.map +1 -1
  190. package/dist/components/ui/dialog.js +8 -5
  191. package/dist/components/ui/edge-fade.d.ts +11 -0
  192. package/dist/components/ui/edge-fade.d.ts.map +1 -0
  193. package/dist/components/ui/edge-fade.js +41 -0
  194. package/dist/components/ui/empty.d.ts +7 -2
  195. package/dist/components/ui/empty.d.ts.map +1 -1
  196. package/dist/components/ui/empty.js +20 -7
  197. package/dist/components/ui/field.d.ts +1 -1
  198. package/dist/components/ui/grid.d.ts +24 -0
  199. package/dist/components/ui/grid.d.ts.map +1 -0
  200. package/dist/components/ui/grid.js +258 -0
  201. package/dist/components/ui/icon-button.d.ts +15 -0
  202. package/dist/components/ui/icon-button.d.ts.map +1 -0
  203. package/dist/components/ui/icon-button.js +15 -0
  204. package/dist/components/ui/index.d.ts +23 -0
  205. package/dist/components/ui/index.d.ts.map +1 -1
  206. package/dist/components/ui/index.js +23 -0
  207. package/dist/components/ui/input-group.d.ts +1 -1
  208. package/dist/components/ui/inspector.d.ts +15 -0
  209. package/dist/components/ui/inspector.d.ts.map +1 -0
  210. package/dist/components/ui/inspector.js +26 -0
  211. package/dist/components/ui/kbd.d.ts +1 -1
  212. package/dist/components/ui/list.d.ts +28 -0
  213. package/dist/components/ui/list.d.ts.map +1 -0
  214. package/dist/components/ui/list.js +235 -0
  215. package/dist/components/ui/material.d.ts +34 -0
  216. package/dist/components/ui/material.d.ts.map +1 -0
  217. package/dist/components/ui/material.js +34 -0
  218. package/dist/components/ui/message-scroller-controller.d.ts +162 -0
  219. package/dist/components/ui/message-scroller-controller.d.ts.map +1 -0
  220. package/dist/components/ui/message-scroller-controller.js +888 -0
  221. package/dist/components/ui/message-scroller-layout-stability.d.ts +33 -0
  222. package/dist/components/ui/message-scroller-layout-stability.d.ts.map +1 -0
  223. package/dist/components/ui/message-scroller-layout-stability.js +153 -0
  224. package/dist/components/ui/message-scroller-policy.d.ts +74 -0
  225. package/dist/components/ui/message-scroller-policy.d.ts.map +1 -0
  226. package/dist/components/ui/message-scroller-policy.js +129 -0
  227. package/dist/components/ui/message-scroller-primitive.d.ts +55 -0
  228. package/dist/components/ui/message-scroller-primitive.d.ts.map +1 -0
  229. package/dist/components/ui/message-scroller-primitive.js +226 -0
  230. package/dist/components/ui/message-scroller.d.ts +11 -0
  231. package/dist/components/ui/message-scroller.d.ts.map +1 -0
  232. package/dist/components/ui/message-scroller.js +25 -0
  233. package/dist/components/ui/navigation-button-group.d.ts +16 -0
  234. package/dist/components/ui/navigation-button-group.d.ts.map +1 -0
  235. package/dist/components/ui/navigation-button-group.js +9 -0
  236. package/dist/components/ui/notification-dot.d.ts +4 -0
  237. package/dist/components/ui/notification-dot.d.ts.map +1 -0
  238. package/dist/components/ui/notification-dot.js +7 -0
  239. package/dist/components/ui/number-input.d.ts +16 -0
  240. package/dist/components/ui/number-input.d.ts.map +1 -0
  241. package/dist/components/ui/number-input.js +56 -0
  242. package/dist/components/ui/panel.d.ts +18 -0
  243. package/dist/components/ui/panel.d.ts.map +1 -0
  244. package/dist/components/ui/panel.js +40 -0
  245. package/dist/components/ui/popover.d.ts +9 -2
  246. package/dist/components/ui/popover.d.ts.map +1 -1
  247. package/dist/components/ui/popover.js +14 -4
  248. package/dist/components/ui/scroll-area.d.ts +8 -2
  249. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  250. package/dist/components/ui/scroll-area.js +6 -3
  251. package/dist/components/ui/search-field.d.ts +19 -0
  252. package/dist/components/ui/search-field.d.ts.map +1 -0
  253. package/dist/components/ui/search-field.js +64 -0
  254. package/dist/components/ui/segmented-control.d.ts +21 -0
  255. package/dist/components/ui/segmented-control.d.ts.map +1 -0
  256. package/dist/components/ui/segmented-control.js +62 -0
  257. package/dist/components/ui/sheet.d.ts +4 -2
  258. package/dist/components/ui/sheet.d.ts.map +1 -1
  259. package/dist/components/ui/sheet.js +12 -9
  260. package/dist/components/ui/sidebar.js +1 -1
  261. package/dist/components/ui/sonner.d.ts +4 -3
  262. package/dist/components/ui/sonner.d.ts.map +1 -1
  263. package/dist/components/ui/sonner.js +7 -6
  264. package/dist/components/ui/split-view.d.ts +11 -0
  265. package/dist/components/ui/split-view.d.ts.map +1 -0
  266. package/dist/components/ui/split-view.js +13 -0
  267. package/dist/components/ui/status.d.ts +13 -0
  268. package/dist/components/ui/status.d.ts.map +1 -0
  269. package/dist/components/ui/status.js +36 -0
  270. package/dist/components/ui/table.d.ts +11 -2
  271. package/dist/components/ui/table.d.ts.map +1 -1
  272. package/dist/components/ui/table.js +33 -6
  273. package/dist/components/ui/text.d.ts +17 -0
  274. package/dist/components/ui/text.d.ts.map +1 -0
  275. package/dist/components/ui/text.js +55 -0
  276. package/dist/components/ui/toggle.d.ts +12 -4
  277. package/dist/components/ui/toggle.d.ts.map +1 -1
  278. package/dist/components/ui/toggle.js +13 -2
  279. package/dist/components/ui/toolbar.d.ts +27 -0
  280. package/dist/components/ui/toolbar.d.ts.map +1 -0
  281. package/dist/components/ui/toolbar.js +71 -0
  282. package/dist/components/ui/tooltip.d.ts +8 -3
  283. package/dist/components/ui/tooltip.d.ts.map +1 -1
  284. package/dist/components/ui/tooltip.js +11 -6
  285. package/dist/index.d.ts +2 -2
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +4 -4
  288. package/dist/lib/frame-lifecycle.d.ts +29 -0
  289. package/dist/lib/frame-lifecycle.d.ts.map +1 -1
  290. package/dist/lib/frame-lifecycle.js +85 -0
  291. package/dist/lib/native-capabilities/access.d.ts +13 -0
  292. package/dist/lib/native-capabilities/access.d.ts.map +1 -0
  293. package/dist/lib/native-capabilities/access.js +53 -0
  294. package/dist/lib/native-capabilities/bluetooth-access.d.ts +14 -0
  295. package/dist/lib/native-capabilities/bluetooth-access.d.ts.map +1 -0
  296. package/dist/lib/native-capabilities/bluetooth-access.js +43 -0
  297. package/dist/lib/native-capabilities/bluetooth-connection.d.ts +19 -0
  298. package/dist/lib/native-capabilities/bluetooth-connection.d.ts.map +1 -0
  299. package/dist/lib/native-capabilities/bluetooth-connection.js +88 -0
  300. package/dist/lib/native-capabilities/bluetooth-gatt.d.ts +7 -0
  301. package/dist/lib/native-capabilities/bluetooth-gatt.d.ts.map +1 -0
  302. package/dist/lib/native-capabilities/bluetooth-gatt.js +77 -0
  303. package/dist/lib/native-capabilities/bluetooth-internal.d.ts +10 -0
  304. package/dist/lib/native-capabilities/bluetooth-internal.d.ts.map +1 -0
  305. package/dist/lib/native-capabilities/bluetooth-internal.js +105 -0
  306. package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts +33 -0
  307. package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts.map +1 -0
  308. package/dist/lib/native-capabilities/bluetooth-native-fallback.js +214 -0
  309. package/dist/lib/native-capabilities/bluetooth-types.d.ts +85 -0
  310. package/dist/lib/native-capabilities/bluetooth-types.d.ts.map +1 -0
  311. package/dist/lib/native-capabilities/bluetooth-types.js +2 -0
  312. package/dist/lib/native-capabilities/bluetooth.d.ts +7 -0
  313. package/dist/lib/native-capabilities/bluetooth.d.ts.map +1 -0
  314. package/dist/lib/native-capabilities/bluetooth.js +4 -0
  315. package/dist/lib/native-capabilities/bridge.d.ts +23 -0
  316. package/dist/lib/native-capabilities/bridge.d.ts.map +1 -0
  317. package/dist/lib/native-capabilities/bridge.js +266 -0
  318. package/dist/lib/native-capabilities/capabilities.d.ts +7 -0
  319. package/dist/lib/native-capabilities/capabilities.d.ts.map +1 -0
  320. package/dist/lib/native-capabilities/capabilities.js +95 -0
  321. package/dist/lib/native-capabilities/clipboard.d.ts +11 -0
  322. package/dist/lib/native-capabilities/clipboard.d.ts.map +1 -0
  323. package/dist/lib/native-capabilities/clipboard.js +58 -0
  324. package/dist/lib/native-capabilities/device-io-errors.d.ts +11 -0
  325. package/dist/lib/native-capabilities/device-io-errors.d.ts.map +1 -0
  326. package/dist/lib/native-capabilities/device-io-errors.js +82 -0
  327. package/dist/lib/native-capabilities/displays.d.ts +38 -0
  328. package/dist/lib/native-capabilities/displays.d.ts.map +1 -0
  329. package/dist/lib/native-capabilities/displays.js +12 -0
  330. package/dist/lib/native-capabilities/global-shortcuts.d.ts +86 -0
  331. package/dist/lib/native-capabilities/global-shortcuts.d.ts.map +1 -0
  332. package/dist/lib/native-capabilities/global-shortcuts.js +351 -0
  333. package/dist/lib/native-capabilities/haptics.d.ts +25 -0
  334. package/dist/lib/native-capabilities/haptics.d.ts.map +1 -0
  335. package/dist/lib/native-capabilities/haptics.js +18 -0
  336. package/dist/lib/native-capabilities/hid-native.d.ts +26 -0
  337. package/dist/lib/native-capabilities/hid-native.d.ts.map +1 -0
  338. package/dist/lib/native-capabilities/hid-native.js +229 -0
  339. package/dist/lib/native-capabilities/hid.d.ts +52 -0
  340. package/dist/lib/native-capabilities/hid.d.ts.map +1 -0
  341. package/dist/lib/native-capabilities/hid.js +163 -0
  342. package/dist/lib/native-capabilities/index.d.ts +40 -0
  343. package/dist/lib/native-capabilities/index.d.ts.map +1 -0
  344. package/dist/lib/native-capabilities/index.js +21 -0
  345. package/dist/lib/native-capabilities/local-authentication.d.ts +32 -0
  346. package/dist/lib/native-capabilities/local-authentication.d.ts.map +1 -0
  347. package/dist/lib/native-capabilities/local-authentication.js +46 -0
  348. package/dist/lib/native-capabilities/location.d.ts +49 -0
  349. package/dist/lib/native-capabilities/location.d.ts.map +1 -0
  350. package/dist/lib/native-capabilities/location.js +114 -0
  351. package/dist/lib/native-capabilities/media-permissions.d.ts +28 -0
  352. package/dist/lib/native-capabilities/media-permissions.d.ts.map +1 -0
  353. package/dist/lib/native-capabilities/media-permissions.js +37 -0
  354. package/dist/lib/native-capabilities/media.d.ts +17 -0
  355. package/dist/lib/native-capabilities/media.d.ts.map +1 -0
  356. package/dist/lib/native-capabilities/media.js +104 -0
  357. package/dist/lib/native-capabilities/midi-access.d.ts +13 -0
  358. package/dist/lib/native-capabilities/midi-access.d.ts.map +1 -0
  359. package/dist/lib/native-capabilities/midi-access.js +68 -0
  360. package/dist/lib/native-capabilities/midi-internal.d.ts +12 -0
  361. package/dist/lib/native-capabilities/midi-internal.d.ts.map +1 -0
  362. package/dist/lib/native-capabilities/midi-internal.js +88 -0
  363. package/dist/lib/native-capabilities/midi-native-fallback.d.ts +27 -0
  364. package/dist/lib/native-capabilities/midi-native-fallback.d.ts.map +1 -0
  365. package/dist/lib/native-capabilities/midi-native-fallback.js +127 -0
  366. package/dist/lib/native-capabilities/midi-ports.d.ts +6 -0
  367. package/dist/lib/native-capabilities/midi-ports.d.ts.map +1 -0
  368. package/dist/lib/native-capabilities/midi-ports.js +115 -0
  369. package/dist/lib/native-capabilities/midi-types.d.ts +25 -0
  370. package/dist/lib/native-capabilities/midi-types.d.ts.map +1 -0
  371. package/dist/lib/native-capabilities/midi-types.js +1 -0
  372. package/dist/lib/native-capabilities/midi.d.ts +6 -0
  373. package/dist/lib/native-capabilities/midi.d.ts.map +1 -0
  374. package/dist/lib/native-capabilities/midi.js +3 -0
  375. package/dist/lib/native-capabilities/native-device-io.d.ts +28 -0
  376. package/dist/lib/native-capabilities/native-device-io.d.ts.map +1 -0
  377. package/dist/lib/native-capabilities/native-device-io.js +91 -0
  378. package/dist/lib/native-capabilities/native-device-lifecycle.d.ts +13 -0
  379. package/dist/lib/native-capabilities/native-device-lifecycle.d.ts.map +1 -0
  380. package/dist/lib/native-capabilities/native-device-lifecycle.js +40 -0
  381. package/dist/lib/native-capabilities/notifications.d.ts +38 -0
  382. package/dist/lib/native-capabilities/notifications.d.ts.map +1 -0
  383. package/dist/lib/native-capabilities/notifications.js +50 -0
  384. package/dist/lib/native-capabilities/power-session.d.ts +113 -0
  385. package/dist/lib/native-capabilities/power-session.d.ts.map +1 -0
  386. package/dist/lib/native-capabilities/power-session.js +264 -0
  387. package/dist/lib/native-capabilities/secure-storage.d.ts +36 -0
  388. package/dist/lib/native-capabilities/secure-storage.d.ts.map +1 -0
  389. package/dist/lib/native-capabilities/secure-storage.js +64 -0
  390. package/dist/lib/native-capabilities/serial-native.d.ts +23 -0
  391. package/dist/lib/native-capabilities/serial-native.d.ts.map +1 -0
  392. package/dist/lib/native-capabilities/serial-native.js +181 -0
  393. package/dist/lib/native-capabilities/serial.d.ts +76 -0
  394. package/dist/lib/native-capabilities/serial.d.ts.map +1 -0
  395. package/dist/lib/native-capabilities/serial.js +215 -0
  396. package/dist/lib/native-capabilities/system-audio.d.ts +127 -0
  397. package/dist/lib/native-capabilities/system-audio.d.ts.map +1 -0
  398. package/dist/lib/native-capabilities/system-audio.js +330 -0
  399. package/dist/lib/native-capabilities/types.d.ts +62 -0
  400. package/dist/lib/native-capabilities/types.d.ts.map +1 -0
  401. package/dist/lib/native-capabilities/types.js +27 -0
  402. package/dist/lib/native-capabilities/usb-native.d.ts +39 -0
  403. package/dist/lib/native-capabilities/usb-native.d.ts.map +1 -0
  404. package/dist/lib/native-capabilities/usb-native.js +217 -0
  405. package/dist/lib/native-capabilities/usb.d.ts +85 -0
  406. package/dist/lib/native-capabilities/usb.d.ts.map +1 -0
  407. package/dist/lib/native-capabilities/usb.js +225 -0
  408. package/dist/lib/theme.d.ts.map +1 -1
  409. package/dist/lib/theme.js +2 -1
  410. package/docs/README.md +39 -0
  411. package/docs/accessibility.md +32 -0
  412. package/docs/adaptive-materials.md +79 -0
  413. package/docs/app-anatomy.md +74 -0
  414. package/docs/component-catalog.md +82 -0
  415. package/docs/component-guide-template.md +37 -0
  416. package/docs/design-tokens.md +185 -0
  417. package/docs/foundations.md +58 -0
  418. package/docs/native-integration.md +33 -0
  419. package/docs/standalone-app-windows.md +136 -0
  420. package/package.json +8 -3
  421. package/src/components/ui/alert-dialog.md +31 -0
  422. package/src/components/ui/alert.md +77 -0
  423. package/src/components/ui/app-frame.md +38 -0
  424. package/src/components/ui/badge.md +57 -0
  425. package/src/components/ui/button.md +76 -0
  426. package/src/components/ui/collapsible.md +52 -0
  427. package/src/components/ui/color-well.md +11 -0
  428. package/src/components/ui/combobox.md +42 -0
  429. package/src/components/ui/command.md +54 -0
  430. package/src/components/ui/date-field.md +32 -0
  431. package/src/components/ui/date-picker.md +55 -0
  432. package/src/components/ui/dialog.md +40 -0
  433. package/src/components/ui/edge-fade.md +7 -0
  434. package/src/components/ui/empty.md +87 -0
  435. package/src/components/ui/field.md +77 -0
  436. package/src/components/ui/grid.md +109 -0
  437. package/src/components/ui/icon-button.md +36 -0
  438. package/src/components/ui/inspector.md +11 -0
  439. package/src/components/ui/item.md +87 -0
  440. package/src/components/ui/list.md +140 -0
  441. package/src/components/ui/material.md +51 -0
  442. package/src/components/ui/navigation-button-group.md +46 -0
  443. package/src/components/ui/notification-dot.md +7 -0
  444. package/src/components/ui/number-input.md +19 -0
  445. package/src/components/ui/panel.md +11 -0
  446. package/src/components/ui/popover.md +31 -0
  447. package/src/components/ui/resizable.md +66 -0
  448. package/src/components/ui/scroll-area.md +72 -0
  449. package/src/components/ui/search-field.md +33 -0
  450. package/src/components/ui/segmented-control.md +36 -0
  451. package/src/components/ui/sheet.md +30 -0
  452. package/src/components/ui/sidebar.md +113 -0
  453. package/src/components/ui/sonner.md +37 -0
  454. package/src/components/ui/split-view.md +15 -0
  455. package/src/components/ui/status.md +12 -0
  456. package/src/components/ui/table.md +37 -0
  457. package/src/components/ui/tabs.md +66 -0
  458. package/src/components/ui/text.md +17 -0
  459. package/src/components/ui/toggle-button.md +48 -0
  460. package/src/components/ui/toggle-group.md +80 -0
  461. package/src/components/ui/toggle.md +73 -0
  462. package/src/components/ui/toolbar.md +26 -0
  463. package/src/components/ui/tooltip.md +31 -0
  464. package/src/styles/index.css +704 -3
@@ -0,0 +1,330 @@
1
+ import { NativeCapabilityBridgeError, callNativeCapabilityBridge, resolveNativeCapabilityParentOrigin, } from './bridge';
2
+ const NATIVE_SYSTEM_AUDIO_REQUEST_TYPE = 'moldable:system-audio-request';
3
+ const NATIVE_SYSTEM_AUDIO_RESULT_TYPE = 'moldable:system-audio-response';
4
+ const NATIVE_SYSTEM_AUDIO_EVENT_TYPE = 'moldable:system-audio-event';
5
+ export const NATIVE_SYSTEM_AUDIO_MAX_REPLAY_FRAMES = 500;
6
+ export const NATIVE_SYSTEM_AUDIO_PERMISSION_REQUEST_TIMEOUT_MS = 125_000;
7
+ function isRecord(value) {
8
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
9
+ }
10
+ function invalidRequest(message) {
11
+ return new NativeCapabilityBridgeError({
12
+ code: 'invalid_request',
13
+ message,
14
+ retryable: false,
15
+ });
16
+ }
17
+ function invalidResponse(message, details) {
18
+ throw new NativeCapabilityBridgeError({
19
+ code: 'invalid_response',
20
+ message,
21
+ details,
22
+ retryable: false,
23
+ });
24
+ }
25
+ function isOptionalString(value) {
26
+ return value === undefined || value === null || typeof value === 'string';
27
+ }
28
+ function isOptionalFiniteNumber(value) {
29
+ return value === undefined || value === null || Number.isFinite(value);
30
+ }
31
+ function isCapabilities(value) {
32
+ if (!isRecord(value))
33
+ return false;
34
+ const strings = [
35
+ value.osVersion,
36
+ value.microphonePermission,
37
+ value.screenCapturePermission,
38
+ value.systemAudioPermission,
39
+ value.systemAudioPermissionPreflight,
40
+ value.systemAudioPermissionRequest,
41
+ value.systemAudioPermissionGuidance,
42
+ ];
43
+ const booleans = [
44
+ value.osSupported,
45
+ value.canCaptureMicrophone,
46
+ value.screenCaptureKitAvailable,
47
+ value.coreAudioProcessTapAvailable,
48
+ value.defaultInputDeviceAvailable,
49
+ value.defaultOutputDeviceAvailable,
50
+ value.canRequestSystemAudioPermission,
51
+ value.systemAudioPermissionRequired,
52
+ value.canCaptureSystemAudio,
53
+ ];
54
+ return (strings.every((item) => typeof item === 'string') &&
55
+ booleans.every((item) => typeof item === 'boolean') &&
56
+ isOptionalString(value.defaultInputDevice) &&
57
+ isOptionalString(value.defaultOutputDevice) &&
58
+ isOptionalString(value.degradedReason) &&
59
+ isRecord(value.architecture));
60
+ }
61
+ function isCapabilityResult(value) {
62
+ return (isRecord(value) &&
63
+ typeof value.available === 'boolean' &&
64
+ isCapabilities(value.capabilities) &&
65
+ (value.requested === undefined || typeof value.requested === 'boolean'));
66
+ }
67
+ function isSourceState(value) {
68
+ return (isRecord(value) &&
69
+ typeof value.active === 'boolean' &&
70
+ Number.isSafeInteger(value.frameCount) &&
71
+ Number(value.frameCount) >= 0 &&
72
+ isOptionalFiniteNumber(value.lastAudioAtMs) &&
73
+ isOptionalFiniteNumber(value.peak) &&
74
+ isOptionalFiniteNumber(value.rms));
75
+ }
76
+ function isStatus(value) {
77
+ if (!isRecord(value) ||
78
+ typeof value.active !== 'boolean' ||
79
+ !Number.isSafeInteger(value.restartCount) ||
80
+ Number(value.restartCount) < 0 ||
81
+ !Number.isSafeInteger(value.restartLimit) ||
82
+ Number(value.restartLimit) < 0 ||
83
+ !Number.isSafeInteger(value.memoryLimitBytes) ||
84
+ Number(value.memoryLimitBytes) < 0) {
85
+ return false;
86
+ }
87
+ if (!isOptionalString(value.sessionId) ||
88
+ !isOptionalString(value.mode) ||
89
+ !isOptionalString(value.desiredState) ||
90
+ !isOptionalString(value.actualState) ||
91
+ !isOptionalString(value.lastCrashReason) ||
92
+ !isOptionalString(value.degradedReason) ||
93
+ !isOptionalString(value.stopReason) ||
94
+ !isOptionalFiniteNumber(value.startedAtMs) ||
95
+ !isOptionalFiniteNumber(value.lastHeartbeatAtMs) ||
96
+ !isOptionalFiniteNumber(value.restartWindowStartedAtMs) ||
97
+ !isOptionalFiniteNumber(value.sidecarPid) ||
98
+ !isOptionalFiniteNumber(value.sidecarMemoryBytes) ||
99
+ !isOptionalFiniteNumber(value.stopRequestedAtMs)) {
100
+ return false;
101
+ }
102
+ if (value.sources !== undefined &&
103
+ value.sources !== null &&
104
+ (!isRecord(value.sources) ||
105
+ !isSourceState(value.sources.microphone) ||
106
+ !isSourceState(value.sources.system))) {
107
+ return false;
108
+ }
109
+ return value.aec === undefined || value.aec === null || isRecord(value.aec);
110
+ }
111
+ function isOptionalPositiveNumber(value) {
112
+ return value === undefined || (Number.isFinite(value) && Number(value) >= 0);
113
+ }
114
+ function isNativeSystemAudioEvent(value) {
115
+ if (!isRecord(value) || value.type !== NATIVE_SYSTEM_AUDIO_EVENT_TYPE) {
116
+ return false;
117
+ }
118
+ if (value.event === 'started') {
119
+ return value.sessionId === undefined || typeof value.sessionId === 'string';
120
+ }
121
+ if (value.event === 'stopped' || value.event === 'error') {
122
+ return ((value.payload === undefined || typeof value.payload === 'string') &&
123
+ (value.recoverable === undefined ||
124
+ typeof value.recoverable === 'boolean') &&
125
+ (value.sessionId === undefined || typeof value.sessionId === 'string'));
126
+ }
127
+ return (value.event === 'data' &&
128
+ value.data instanceof ArrayBuffer &&
129
+ typeof value.sessionId === 'string' &&
130
+ value.sessionId.length > 0 &&
131
+ Number.isSafeInteger(value.sequence) &&
132
+ Number(value.sequence) >= 0 &&
133
+ (value.source === 'microphone' || value.source === 'system') &&
134
+ isOptionalPositiveNumber(value.sampleRate) &&
135
+ isOptionalPositiveNumber(value.channels) &&
136
+ isOptionalPositiveNumber(value.frameCount) &&
137
+ isOptionalFiniteNumber(value.peak) &&
138
+ isOptionalFiniteNumber(value.rms));
139
+ }
140
+ function toPublicEvent(event) {
141
+ if (event.event === 'started') {
142
+ return { kind: 'started', sessionId: event.sessionId };
143
+ }
144
+ if (event.event === 'stopped') {
145
+ return {
146
+ kind: 'stopped',
147
+ sessionId: event.sessionId,
148
+ reason: event.payload,
149
+ };
150
+ }
151
+ if (event.event === 'error') {
152
+ return {
153
+ kind: 'error',
154
+ sessionId: event.sessionId,
155
+ message: event.payload,
156
+ recoverable: event.recoverable === true,
157
+ };
158
+ }
159
+ return {
160
+ kind: 'data',
161
+ sessionId: event.sessionId,
162
+ sequence: event.sequence,
163
+ source: event.source,
164
+ data: event.data,
165
+ sampleRate: event.sampleRate,
166
+ channels: event.channels,
167
+ frameCount: event.frameCount,
168
+ peak: event.peak,
169
+ rms: event.rms,
170
+ };
171
+ }
172
+ function validateStartOptions(options) {
173
+ const sampleRate = options.sampleRate ?? 48_000;
174
+ const channels = options.channels ?? 1;
175
+ if ((options.captureMode !== undefined &&
176
+ options.captureMode !== 'systemAudio' &&
177
+ options.captureMode !== 'systemMicrophone') ||
178
+ !Number.isSafeInteger(sampleRate) ||
179
+ sampleRate < 8_000 ||
180
+ sampleRate > 192_000 ||
181
+ !Number.isSafeInteger(channels) ||
182
+ channels < 1 ||
183
+ channels > 2) {
184
+ throw invalidRequest('System audio capture requires a supported mode, an 8,000–192,000 Hz sample rate, and one or two channels.');
185
+ }
186
+ }
187
+ /** Reads capture support and permission diagnostics without opening audio input. */
188
+ export async function getMoldableSystemAudioCapabilities(options = {}) {
189
+ const result = await callNativeCapabilityBridge({ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE, action: 'availability' }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, options);
190
+ if (!isCapabilityResult(result)) {
191
+ invalidResponse('Moldable returned invalid system audio capabilities.', result);
192
+ }
193
+ return result;
194
+ }
195
+ /** Requests system-audio permission. Call this only from a direct user action. */
196
+ export async function requestMoldableSystemAudioPermission(options = {}) {
197
+ const result = await callNativeCapabilityBridge({ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE, action: 'requestPermission' }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, {
198
+ ...options,
199
+ timeoutMs: options.timeoutMs ??
200
+ NATIVE_SYSTEM_AUDIO_PERMISSION_REQUEST_TIMEOUT_MS,
201
+ });
202
+ if (!isCapabilityResult(result) || result.requested !== true) {
203
+ invalidResponse('Moldable returned an invalid system audio permission result.', result);
204
+ }
205
+ return result;
206
+ }
207
+ /** Starts an owner-scoped capture session from a direct user action. */
208
+ export async function startMoldableSystemAudioCapture(options = {}) {
209
+ validateStartOptions(options);
210
+ const result = await callNativeCapabilityBridge({
211
+ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE,
212
+ action: 'start',
213
+ captureMode: options.captureMode ?? 'systemAudio',
214
+ sampleRate: options.sampleRate ?? 48_000,
215
+ channels: options.channels ?? 1,
216
+ }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, options);
217
+ if (!isRecord(result) ||
218
+ result.started !== true ||
219
+ typeof result.sessionId !== 'string' ||
220
+ result.sessionId.length === 0) {
221
+ invalidResponse('Moldable returned an invalid capture session.', result);
222
+ }
223
+ return result;
224
+ }
225
+ /** Reads the status of the capture session owned by this app view. */
226
+ export async function getMoldableSystemAudioStatus(options = {}) {
227
+ const result = await callNativeCapabilityBridge({ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE, action: 'status' }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, options);
228
+ if (!isRecord(result) || !isStatus(result.status)) {
229
+ invalidResponse('Moldable returned an invalid capture status.', result);
230
+ }
231
+ return result.status;
232
+ }
233
+ /** Stops only the capture session owned by this app view. */
234
+ export async function stopMoldableSystemAudioCapture(options = {}) {
235
+ if (options.reason !== undefined &&
236
+ (typeof options.reason !== 'string' ||
237
+ options.reason.length > 256 ||
238
+ [...options.reason].some((character) => {
239
+ const code = character.charCodeAt(0);
240
+ return code <= 31 || code === 127;
241
+ }))) {
242
+ throw invalidRequest('A system audio stop reason must be at most 256 characters without control characters.');
243
+ }
244
+ const result = await callNativeCapabilityBridge({
245
+ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE,
246
+ action: 'stop',
247
+ ...(options.reason === undefined ? {} : { reason: options.reason }),
248
+ }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, options);
249
+ if (!isRecord(result) || typeof result.stopped !== 'boolean') {
250
+ invalidResponse('Moldable returned an invalid capture stop result.', result);
251
+ }
252
+ return result.stopped;
253
+ }
254
+ /** Replays recent frames through active event subscriptions after a sequence gap. */
255
+ export async function replayMoldableSystemAudioFrames(options = {}) {
256
+ if ((options.afterSequence !== undefined &&
257
+ (!Number.isSafeInteger(options.afterSequence) ||
258
+ options.afterSequence < 0)) ||
259
+ (options.limit !== undefined &&
260
+ (!Number.isSafeInteger(options.limit) ||
261
+ options.limit < 1 ||
262
+ options.limit > NATIVE_SYSTEM_AUDIO_MAX_REPLAY_FRAMES))) {
263
+ throw invalidRequest(`Replay requires a non-negative sequence and a limit from 1 to ${NATIVE_SYSTEM_AUDIO_MAX_REPLAY_FRAMES}.`);
264
+ }
265
+ const result = await callNativeCapabilityBridge({
266
+ type: NATIVE_SYSTEM_AUDIO_REQUEST_TYPE,
267
+ action: 'replay',
268
+ ...(options.afterSequence === undefined
269
+ ? {}
270
+ : { afterSequence: options.afterSequence }),
271
+ ...(options.limit === undefined ? {} : { limit: options.limit }),
272
+ }, NATIVE_SYSTEM_AUDIO_RESULT_TYPE, options);
273
+ if (!isRecord(result) ||
274
+ !Number.isSafeInteger(result.replayed) ||
275
+ result.replayed < 0) {
276
+ invalidResponse('Moldable returned an invalid replay result.', result);
277
+ }
278
+ return result.replayed;
279
+ }
280
+ /**
281
+ * Subscribes to lifecycle and source-separated PCM frames for this app view.
282
+ * Subscribe before starting capture so the first lifecycle event is observable.
283
+ */
284
+ export function subscribeMoldableSystemAudioEvents(listener, options = {}) {
285
+ if (typeof listener !== 'function') {
286
+ throw invalidRequest('A system audio event listener is required.');
287
+ }
288
+ if (typeof window === 'undefined' || window.parent === window) {
289
+ throw new NativeCapabilityBridgeError({
290
+ code: 'not_in_moldable',
291
+ message: 'System audio events are only available inside Moldable.',
292
+ retryable: false,
293
+ });
294
+ }
295
+ const parentOrigin = resolveNativeCapabilityParentOrigin(document.referrer);
296
+ if (!parentOrigin) {
297
+ throw new NativeCapabilityBridgeError({
298
+ code: 'not_in_moldable',
299
+ message: 'The system audio event parent could not be verified.',
300
+ retryable: false,
301
+ });
302
+ }
303
+ let active = !options.signal?.aborted;
304
+ const handleMessage = (event) => {
305
+ if (!active ||
306
+ event.source !== window.parent ||
307
+ event.origin !== parentOrigin ||
308
+ !isNativeSystemAudioEvent(event.data)) {
309
+ return;
310
+ }
311
+ try {
312
+ listener(toPublicEvent(event.data));
313
+ }
314
+ catch {
315
+ // One app callback must not break native event delivery.
316
+ }
317
+ };
318
+ const unsubscribe = () => {
319
+ if (!active)
320
+ return;
321
+ active = false;
322
+ window.removeEventListener('message', handleMessage);
323
+ options.signal?.removeEventListener('abort', unsubscribe);
324
+ };
325
+ if (active) {
326
+ window.addEventListener('message', handleMessage);
327
+ options.signal?.addEventListener('abort', unsubscribe, { once: true });
328
+ }
329
+ return unsubscribe;
330
+ }
@@ -0,0 +1,62 @@
1
+ export declare const NATIVE_CAPABILITY_IDS: readonly ["camera", "microphone", "screen-capture", "system-audio", "location", "clipboard-read", "clipboard-write", "notifications", "displays", "global-shortcuts", "power-monitor", "idle-state", "session-events", "sleep-blocker", "local-authentication", "haptics", "secure-storage", "usb", "hid", "serial", "midi", "bluetooth"];
2
+ export type NativeCapabilityId = (typeof NATIVE_CAPABILITY_IDS)[number];
3
+ export type NativeCapabilityPlatform = 'macos' | 'windows' | 'linux' | 'unknown';
4
+ export type NativeCapabilitySupport = 'supported' | 'partial' | 'unsupported';
5
+ export type NativeCapabilityTransportKind = 'web-api' | 'desktop-bridge' | 'tauri-command' | 'hybrid' | 'unavailable';
6
+ export interface NativeCapabilityTransportMetadata {
7
+ kind: NativeCapabilityTransportKind;
8
+ /** Stable API or bridge name that an app can use for diagnostics. */
9
+ name: string;
10
+ }
11
+ export type NativeCapabilityPermissionName = 'camera' | 'microphone' | 'screen-recording' | 'location' | 'clipboard-read' | 'clipboard-write' | 'notifications' | 'global-shortcuts' | 'local-authentication' | 'secure-storage' | 'usb' | 'hid' | 'serial' | 'midi' | 'bluetooth' | 'none';
12
+ export type NativeCapabilityPermissionAuthority = 'webview' | 'operating-system' | 'both' | 'none';
13
+ export type NativeCapabilityPermissionRequest = 'on-use' | 'explicit' | 'system-settings' | 'none';
14
+ export interface NativeCapabilityPermissionMetadata {
15
+ name: NativeCapabilityPermissionName;
16
+ required: boolean;
17
+ authority: NativeCapabilityPermissionAuthority;
18
+ request: NativeCapabilityPermissionRequest;
19
+ }
20
+ export interface NativeCapabilityDescriptor {
21
+ id: NativeCapabilityId;
22
+ support: NativeCapabilitySupport;
23
+ transport: NativeCapabilityTransportMetadata;
24
+ permission: NativeCapabilityPermissionMetadata;
25
+ /** Explains a platform limitation or why support is only partial. */
26
+ reason?: string;
27
+ }
28
+ export declare const NATIVE_CAPABILITY_MANIFEST_SCHEMA_VERSION: 2;
29
+ export interface NativeCapabilityManifest {
30
+ schemaVersion: typeof NATIVE_CAPABILITY_MANIFEST_SCHEMA_VERSION;
31
+ platform: NativeCapabilityPlatform;
32
+ capabilities: Record<NativeCapabilityId, NativeCapabilityDescriptor>;
33
+ }
34
+ export type NativeCapabilityErrorCode = 'invalid_request' | 'not_in_moldable' | 'timeout' | 'aborted' | 'invalid_response' | 'unsupported' | 'unavailable' | 'permission_denied' | 'cancelled' | 'host_error';
35
+ export interface NativeCapabilityErrorPayload {
36
+ code: NativeCapabilityErrorCode;
37
+ message: string;
38
+ details?: unknown;
39
+ retryable?: boolean;
40
+ }
41
+ export type NativeCapabilityRequestEnvelope<TType extends string = string, TPayload extends object = Record<string, never>> = {
42
+ type: TType;
43
+ requestId: string;
44
+ } & TPayload;
45
+ export type NativeCapabilityResultEnvelope<TType extends string = string, TResult = unknown> = {
46
+ type: TType;
47
+ requestId: string;
48
+ ok: true;
49
+ result: TResult;
50
+ error?: never;
51
+ } | {
52
+ type: TType;
53
+ requestId: string;
54
+ ok: false;
55
+ result?: never;
56
+ error: NativeCapabilityErrorPayload;
57
+ };
58
+ export declare const NATIVE_CAPABILITIES_REQUEST_TYPE: "moldable:native-capabilities-request";
59
+ export declare const NATIVE_CAPABILITIES_RESULT_TYPE: "moldable:native-capabilities-result";
60
+ export type NativeCapabilitiesRequest = NativeCapabilityRequestEnvelope<typeof NATIVE_CAPABILITIES_REQUEST_TYPE>;
61
+ export type NativeCapabilitiesResult = NativeCapabilityResultEnvelope<typeof NATIVE_CAPABILITIES_RESULT_TYPE, NativeCapabilityManifest>;
62
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/native-capabilities/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export const NATIVE_CAPABILITY_IDS = [
2
+ 'camera',
3
+ 'microphone',
4
+ 'screen-capture',
5
+ 'system-audio',
6
+ 'location',
7
+ 'clipboard-read',
8
+ 'clipboard-write',
9
+ 'notifications',
10
+ 'displays',
11
+ 'global-shortcuts',
12
+ 'power-monitor',
13
+ 'idle-state',
14
+ 'session-events',
15
+ 'sleep-blocker',
16
+ 'local-authentication',
17
+ 'haptics',
18
+ 'secure-storage',
19
+ 'usb',
20
+ 'hid',
21
+ 'serial',
22
+ 'midi',
23
+ 'bluetooth',
24
+ ];
25
+ export const NATIVE_CAPABILITY_MANIFEST_SCHEMA_VERSION = 2;
26
+ export const NATIVE_CAPABILITIES_REQUEST_TYPE = 'moldable:native-capabilities-request';
27
+ export const NATIVE_CAPABILITIES_RESULT_TYPE = 'moldable:native-capabilities-result';
@@ -0,0 +1,39 @@
1
+ import { type MoldableNativeDeviceDescriptor } from './native-device-io';
2
+ import type { MoldableUsbControlTransferParameters, MoldableUsbDevice, MoldableUsbInTransferResult, MoldableUsbOpenOptions, MoldableUsbOperationOptions, MoldableUsbOutTransferResult } from './usb';
3
+ export declare class NativeMoldableUsbDevice extends EventTarget implements MoldableUsbDevice {
4
+ readonly descriptor: MoldableNativeDeviceDescriptor;
5
+ readonly vendorId: number;
6
+ readonly productId: number;
7
+ readonly productName: string;
8
+ readonly manufacturerName: null;
9
+ readonly serialNumber: null;
10
+ configuration: {
11
+ configurationValue: number;
12
+ } | null;
13
+ private handle?;
14
+ private closing?;
15
+ private readonly lifecycle;
16
+ constructor(descriptor: MoldableNativeDeviceDescriptor);
17
+ get opened(): boolean;
18
+ openWithOptions(options: MoldableUsbOpenOptions): Promise<void>;
19
+ open(): Promise<void>;
20
+ close(): Promise<void>;
21
+ forget(): Promise<void>;
22
+ selectConfiguration(): Promise<void>;
23
+ claimInterface(): Promise<void>;
24
+ releaseInterface(): Promise<void>;
25
+ transferIn(endpointNumber: number, length: number): Promise<MoldableUsbInTransferResult>;
26
+ transferInWithOptions(endpointNumber: number, length: number, options?: MoldableUsbOperationOptions): Promise<MoldableUsbInTransferResult>;
27
+ transferOut(endpointNumber: number, data: BufferSource): Promise<MoldableUsbOutTransferResult>;
28
+ transferOutWithOptions(endpointNumber: number, data: BufferSource, options?: MoldableUsbOperationOptions): Promise<MoldableUsbOutTransferResult>;
29
+ controlTransferIn(setup: MoldableUsbControlTransferParameters, length: number): Promise<MoldableUsbInTransferResult>;
30
+ controlTransferInWithOptions(setup: MoldableUsbControlTransferParameters, length: number, options?: MoldableUsbOperationOptions): Promise<MoldableUsbInTransferResult>;
31
+ controlTransferOut(setup: MoldableUsbControlTransferParameters, data?: BufferSource): Promise<MoldableUsbOutTransferResult>;
32
+ controlTransferOutWithOptions(setup: MoldableUsbControlTransferParameters, data?: BufferSource, options?: MoldableUsbOperationOptions): Promise<MoldableUsbOutTransferResult>;
33
+ clearHalt(direction: 'in' | 'out', endpointNumber: number): Promise<void>;
34
+ reset(): Promise<void>;
35
+ private execute;
36
+ private reopenRequired;
37
+ }
38
+ export declare function isNativeMoldableUsbDevice(device: MoldableUsbDevice): device is NativeMoldableUsbDevice;
39
+ //# sourceMappingURL=usb-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usb-native.d.ts","sourceRoot":"","sources":["../../../src/lib/native-capabilities/usb-native.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,8BAA8B,EAMpC,MAAM,oBAAoB,CAAA;AAK3B,OAAO,KAAK,EACV,oCAAoC,EACpC,iBAAiB,EACjB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,OAAO,CAAA;AAId,qBAAa,uBACX,SAAQ,WACR,YAAW,iBAAiB;IAYhB,QAAQ,CAAC,UAAU,EAAE,8BAA8B;IAV/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,OAAO;IAChC,QAAQ,CAAC,YAAY,OAAO;IAC5B,aAAa,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAO;IAC3D,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAEnC,UAAU,EAAE,8BAA8B;IAO/D,IAAI,MAAM,IAAI,OAAO,CAEpB;IAEK,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,2BAA2B,CAAC;IAIjC,qBAAqB,CACzB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,2BAA2B,CAAC;IAkBjC,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,4BAA4B,CAAC;IAIlC,sBAAsB,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,4BAA4B,CAAC;IAiBlC,iBAAiB,CACrB,KAAK,EAAE,oCAAoC,EAC3C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,2BAA2B,CAAC;IAIjC,4BAA4B,CAChC,KAAK,EAAE,oCAAoC,EAC3C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,2BAA2B,CAAC;IAoBjC,kBAAkB,CACtB,KAAK,EAAE,oCAAoC,EAC3C,IAAI,GAAE,YAA+B,GACpC,OAAO,CAAC,4BAA4B,CAAC;IAIlC,6BAA6B,CACjC,KAAK,EAAE,oCAAoC,EAC3C,IAAI,GAAE,YAA+B,EACrC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,4BAA4B,CAAC;IAmBlC,SAAS,CACb,SAAS,EAAE,IAAI,GAAG,KAAK,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAOV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,OAAO;IAgCrB,OAAO,CAAC,cAAc;CAMvB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,GACxB,MAAM,IAAI,uBAAuB,CAEnC"}