@signalcore/ui 0.1.0 → 1.0.0-beta.1

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 (611) hide show
  1. package/README.md +896 -513
  2. package/dist/AgentAbout.d.ts +186 -0
  3. package/dist/AgentAbout.js +1020 -0
  4. package/dist/AgentAbout.js.map +1 -0
  5. package/dist/AgentCard.d.ts +49 -0
  6. package/dist/AgentCard.js +77 -0
  7. package/dist/AgentCard.js.map +1 -0
  8. package/dist/AgentChat.d.ts +233 -0
  9. package/dist/AgentChat.js +1127 -0
  10. package/dist/AgentChat.js.map +1 -0
  11. package/dist/AgentSpace.d.ts +112 -0
  12. package/dist/AgentSpace.js +339 -0
  13. package/dist/AgentSpace.js.map +1 -0
  14. package/dist/AgentTasks.d.ts +48 -0
  15. package/dist/AgentTasks.js +120 -0
  16. package/dist/AgentTasks.js.map +1 -0
  17. package/dist/BrowserView.d.ts +52 -0
  18. package/dist/BrowserView.js +328 -0
  19. package/dist/BrowserView.js.map +1 -0
  20. package/dist/FileView.d.ts +63 -0
  21. package/dist/FileView.js +449 -0
  22. package/dist/FileView.js.map +1 -0
  23. package/dist/Modes.d.ts +13 -0
  24. package/dist/Modes.js +75 -0
  25. package/dist/Modes.js.map +1 -0
  26. package/dist/VoiceCall.d.ts +91 -0
  27. package/dist/VoiceCall.js +302 -0
  28. package/dist/VoiceCall.js.map +1 -0
  29. package/dist/about.d.ts +212 -0
  30. package/dist/about.js +136 -0
  31. package/dist/about.js.map +1 -0
  32. package/dist/agentIcons.d.ts +33 -0
  33. package/dist/agentIcons.js +36 -0
  34. package/dist/agentIcons.js.map +1 -0
  35. package/dist/automation/Automation.d.ts +35 -0
  36. package/dist/automation/Automation.js +268 -0
  37. package/dist/automation/Automation.js.map +1 -0
  38. package/dist/automation/RunView.d.ts +25 -0
  39. package/dist/automation/RunView.js +187 -0
  40. package/dist/automation/RunView.js.map +1 -0
  41. package/dist/automation/cron.d.ts +41 -0
  42. package/dist/automation/cron.js +169 -0
  43. package/dist/automation/cron.js.map +1 -0
  44. package/dist/automation/marks.js +121 -0
  45. package/dist/automation/marks.js.map +1 -0
  46. package/dist/automation/messages.d.ts +113 -0
  47. package/dist/automation/messages.js +113 -0
  48. package/dist/automation/messages.js.map +1 -0
  49. package/dist/automation/record.d.ts +47 -0
  50. package/dist/automation/record.js +177 -0
  51. package/dist/automation/record.js.map +1 -0
  52. package/dist/automation/types.d.ts +143 -0
  53. package/dist/automation/when.d.ts +36 -0
  54. package/dist/automation/when.js +168 -0
  55. package/dist/automation/when.js.map +1 -0
  56. package/dist/blocks.d.ts +185 -0
  57. package/dist/browser.js +292 -0
  58. package/dist/browser.js.map +1 -0
  59. package/dist/call.d.ts +89 -0
  60. package/dist/call.js +218 -0
  61. package/dist/call.js.map +1 -0
  62. package/dist/channelParts.js +26 -0
  63. package/dist/channelParts.js.map +1 -0
  64. package/dist/classes.js +8 -3
  65. package/dist/classes.js.map +1 -0
  66. package/dist/client.d.ts +146 -54
  67. package/dist/client.js +204 -1
  68. package/dist/client.js.map +1 -0
  69. package/dist/conversationFiles.js +46 -0
  70. package/dist/conversationFiles.js.map +1 -0
  71. package/dist/credentials.d.ts +45 -0
  72. package/dist/credentials.js +98 -0
  73. package/dist/credentials.js.map +1 -0
  74. package/dist/dev.js +17 -0
  75. package/dist/dev.js.map +1 -0
  76. package/dist/es.d.ts +17 -0
  77. package/dist/es.js +382 -0
  78. package/dist/es.js.map +1 -0
  79. package/dist/files.d.ts +21 -0
  80. package/dist/files.js +214 -0
  81. package/dist/files.js.map +1 -0
  82. package/dist/frames.d.ts +115 -0
  83. package/dist/frames.js +219 -0
  84. package/dist/frames.js.map +1 -0
  85. package/dist/icons.js +29 -0
  86. package/dist/icons.js.map +1 -0
  87. package/dist/index.d.ts +63 -60
  88. package/dist/index.js +59 -45
  89. package/dist/kit/AudioPlayer.d.ts +20 -0
  90. package/dist/kit/AudioPlayer.js +116 -0
  91. package/dist/kit/AudioPlayer.js.map +1 -0
  92. package/dist/kit/Button.d.ts +29 -0
  93. package/dist/kit/Button.js +59 -0
  94. package/dist/kit/Button.js.map +1 -0
  95. package/dist/kit/Card.d.ts +16 -0
  96. package/dist/kit/Card.js +36 -0
  97. package/dist/kit/Card.js.map +1 -0
  98. package/dist/kit/Chart.js +152 -0
  99. package/dist/kit/Chart.js.map +1 -0
  100. package/dist/kit/Choices.d.ts +21 -0
  101. package/dist/kit/Choices.js +99 -0
  102. package/dist/kit/Choices.js.map +1 -0
  103. package/dist/kit/Combobox.d.ts +26 -0
  104. package/dist/kit/Combobox.js +190 -0
  105. package/dist/kit/Combobox.js.map +1 -0
  106. package/dist/kit/DateField.d.ts +17 -0
  107. package/dist/kit/DateField.js +133 -0
  108. package/dist/kit/DateField.js.map +1 -0
  109. package/dist/kit/Field.d.ts +40 -0
  110. package/dist/kit/Field.js +98 -0
  111. package/dist/kit/Field.js.map +1 -0
  112. package/dist/kit/FileField.d.ts +113 -0
  113. package/dist/kit/FileField.js +341 -0
  114. package/dist/kit/FileField.js.map +1 -0
  115. package/dist/kit/FileMark.d.ts +15 -0
  116. package/dist/kit/FileMark.js +39 -0
  117. package/dist/kit/FileMark.js.map +1 -0
  118. package/dist/kit/Inputs.d.ts +59 -0
  119. package/dist/kit/Inputs.js +205 -0
  120. package/dist/kit/Inputs.js.map +1 -0
  121. package/dist/kit/List.d.ts +47 -0
  122. package/dist/kit/List.js +85 -0
  123. package/dist/kit/List.js.map +1 -0
  124. package/dist/kit/Mark.d.ts +30 -0
  125. package/dist/kit/Mark.js +27 -0
  126. package/dist/kit/Mark.js.map +1 -0
  127. package/dist/kit/MarkStack.d.ts +15 -0
  128. package/dist/kit/MarkStack.js +26 -0
  129. package/dist/kit/MarkStack.js.map +1 -0
  130. package/dist/kit/Note.d.ts +11 -0
  131. package/dist/kit/Note.js +31 -0
  132. package/dist/kit/Note.js.map +1 -0
  133. package/dist/kit/Popover.js +90 -0
  134. package/dist/kit/Popover.js.map +1 -0
  135. package/dist/kit/RangeField.d.ts +14 -0
  136. package/dist/kit/RangeField.js +47 -0
  137. package/dist/kit/RangeField.js.map +1 -0
  138. package/dist/kit/RatingField.d.ts +14 -0
  139. package/dist/kit/RatingField.js +50 -0
  140. package/dist/kit/RatingField.js.map +1 -0
  141. package/dist/kit/Stat.d.ts +26 -0
  142. package/dist/kit/Stat.js +46 -0
  143. package/dist/kit/Stat.js.map +1 -0
  144. package/dist/kit/Switch.d.ts +14 -0
  145. package/dist/kit/Switch.js +21 -0
  146. package/dist/kit/Switch.js.map +1 -0
  147. package/dist/kit/Tag.d.ts +16 -0
  148. package/dist/kit/Tag.js +20 -0
  149. package/dist/kit/Tag.js.map +1 -0
  150. package/dist/kit/Tile.d.ts +34 -0
  151. package/dist/kit/Tile.js +52 -0
  152. package/dist/kit/Tile.js.map +1 -0
  153. package/dist/kit/TimeField.d.ts +31 -0
  154. package/dist/kit/TimeField.js +109 -0
  155. package/dist/kit/TimeField.js.map +1 -0
  156. package/dist/kit/context.d.ts +22 -0
  157. package/dist/kit/context.js +46 -0
  158. package/dist/kit/context.js.map +1 -0
  159. package/dist/kit/dates.d.ts +14 -0
  160. package/dist/kit/dates.js +129 -0
  161. package/dist/kit/dates.js.map +1 -0
  162. package/dist/kit/messages.d.ts +99 -0
  163. package/dist/kit/messages.js +66 -0
  164. package/dist/kit/messages.js.map +1 -0
  165. package/dist/kit/numbers.d.ts +12 -0
  166. package/dist/kit/numbers.js +40 -0
  167. package/dist/kit/numbers.js.map +1 -0
  168. package/dist/kit/options.d.ts +10 -0
  169. package/dist/kit/options.js +23 -0
  170. package/dist/kit/options.js.map +1 -0
  171. package/dist/kit/uploads.d.ts +42 -0
  172. package/dist/kit/uploads.js +165 -0
  173. package/dist/kit/uploads.js.map +1 -0
  174. package/dist/kit/waveform.js +76 -0
  175. package/dist/kit/waveform.js.map +1 -0
  176. package/dist/locale.d.ts +1 -0
  177. package/dist/locale.js +1 -0
  178. package/dist/markdown.js +84 -0
  179. package/dist/markdown.js.map +1 -0
  180. package/dist/marks.js +217 -0
  181. package/dist/marks.js.map +1 -0
  182. package/dist/reveal.js +48 -0
  183. package/dist/reveal.js.map +1 -0
  184. package/dist/stepGlyphs.js +62 -0
  185. package/dist/stepGlyphs.js.map +1 -0
  186. package/dist/surface/Form.js +264 -0
  187. package/dist/surface/Form.js.map +1 -0
  188. package/dist/surface/Markdown.js +42 -0
  189. package/dist/surface/Markdown.js.map +1 -0
  190. package/dist/surface/Surface.d.ts +31 -17
  191. package/dist/surface/Surface.js +480 -57
  192. package/dist/surface/Surface.js.map +1 -0
  193. package/dist/surface/scope.d.ts +32 -0
  194. package/dist/surface/scope.js +23 -0
  195. package/dist/surface/scope.js.map +1 -0
  196. package/dist/surface/values.d.ts +44 -0
  197. package/dist/surface/values.js +237 -0
  198. package/dist/surface/values.js.map +1 -0
  199. package/dist/tint.d.ts +10 -0
  200. package/dist/tint.js +19 -0
  201. package/dist/tint.js.map +1 -0
  202. package/dist/types.d.ts +541 -0
  203. package/dist/types.js +16 -0
  204. package/dist/types.js.map +1 -0
  205. package/dist/useAgentFace.d.ts +18 -0
  206. package/dist/useAgentFace.js +45 -0
  207. package/dist/useAgentFace.js.map +1 -0
  208. package/dist/useCall.d.ts +39 -0
  209. package/dist/useCall.js +273 -0
  210. package/dist/useCall.js.map +1 -0
  211. package/dist/useConversation.d.ts +77 -0
  212. package/dist/useConversation.js +523 -0
  213. package/dist/useConversation.js.map +1 -0
  214. package/dist/useDictation.d.ts +17 -0
  215. package/dist/useDictation.js +68 -0
  216. package/dist/useDictation.js.map +1 -0
  217. package/dist/useLive.d.ts +26 -0
  218. package/dist/useLive.js +88 -0
  219. package/dist/useLive.js.map +1 -0
  220. package/dist/usePolled.js +68 -0
  221. package/dist/usePolled.js.map +1 -0
  222. package/dist/voice/Orb.d.ts +10 -9
  223. package/dist/voice/Orb.js +43 -39
  224. package/dist/voice/Orb.js.map +1 -0
  225. package/dist/voice/StillOrb.js +33 -0
  226. package/dist/voice/StillOrb.js.map +1 -0
  227. package/dist/voice/WebGLOrb.js +98 -0
  228. package/dist/voice/WebGLOrb.js.map +1 -0
  229. package/dist/voice/fluidDots.js +161 -0
  230. package/dist/voice/fluidDots.js.map +1 -0
  231. package/dist/voice/motion.js +84 -0
  232. package/dist/voice/motion.js.map +1 -0
  233. package/dist/voice/orbs.d.ts +32 -0
  234. package/dist/voice/orbs.js +16 -0
  235. package/dist/voice/orbs.js.map +1 -0
  236. package/dist/voice/useReducedMotion.js +16 -16
  237. package/dist/voice/useReducedMotion.js.map +1 -0
  238. package/dist/voice/wave.js +116 -0
  239. package/dist/voice/wave.js.map +1 -0
  240. package/dist/voice/webgl.js +177 -0
  241. package/dist/voice/webgl.js.map +1 -0
  242. package/dist/widget.js +284 -8
  243. package/package.json +49 -39
  244. package/src/AgentAbout.tsx +1621 -0
  245. package/src/AgentCard.tsx +123 -0
  246. package/src/AgentChat.tsx +1812 -0
  247. package/src/AgentSpace.tsx +540 -0
  248. package/src/AgentTasks.tsx +163 -0
  249. package/src/BrowserView.tsx +442 -0
  250. package/src/FileView.tsx +620 -0
  251. package/src/Modes.tsx +112 -0
  252. package/src/VoiceCall.tsx +411 -0
  253. package/src/about.ts +355 -0
  254. package/src/agentIcons.ts +56 -0
  255. package/src/automation/Automation.tsx +308 -0
  256. package/src/automation/RunView.tsx +213 -0
  257. package/src/automation/cron.ts +196 -0
  258. package/src/automation/marks.tsx +144 -0
  259. package/src/automation/messages.ts +231 -0
  260. package/src/automation/record.ts +206 -0
  261. package/src/automation/types.ts +146 -0
  262. package/src/automation/when.ts +195 -0
  263. package/src/blocks.ts +249 -0
  264. package/src/browser.ts +334 -0
  265. package/src/call.ts +300 -0
  266. package/src/channelParts.ts +17 -0
  267. package/src/classes.ts +10 -0
  268. package/src/client.ts +397 -0
  269. package/src/conversationFiles.ts +54 -0
  270. package/src/credentials.ts +158 -0
  271. package/src/dev.ts +20 -0
  272. package/src/es.ts +423 -0
  273. package/src/files.ts +238 -0
  274. package/src/frames.ts +291 -0
  275. package/src/icons.tsx +49 -0
  276. package/src/index.ts +271 -0
  277. package/src/kit/AudioPlayer.tsx +129 -0
  278. package/src/kit/Button.tsx +97 -0
  279. package/src/kit/Card.tsx +47 -0
  280. package/src/kit/Chart.tsx +129 -0
  281. package/src/kit/Choices.tsx +131 -0
  282. package/src/kit/Combobox.tsx +247 -0
  283. package/src/kit/DateField.tsx +156 -0
  284. package/src/kit/Field.tsx +137 -0
  285. package/src/kit/FileField.tsx +492 -0
  286. package/src/kit/FileMark.tsx +56 -0
  287. package/src/kit/Inputs.tsx +250 -0
  288. package/src/kit/List.tsx +135 -0
  289. package/src/kit/Mark.tsx +64 -0
  290. package/src/kit/MarkStack.tsx +29 -0
  291. package/src/kit/Note.tsx +42 -0
  292. package/src/kit/Popover.tsx +121 -0
  293. package/src/kit/RangeField.tsx +53 -0
  294. package/src/kit/RatingField.tsx +62 -0
  295. package/src/kit/Stat.tsx +60 -0
  296. package/src/kit/Switch.tsx +28 -0
  297. package/src/kit/Tag.tsx +32 -0
  298. package/src/kit/Tile.tsx +74 -0
  299. package/src/kit/TimeField.tsx +157 -0
  300. package/src/kit/context.tsx +246 -0
  301. package/src/kit/dates.ts +150 -0
  302. package/src/kit/messages.ts +160 -0
  303. package/src/kit/numbers.ts +44 -0
  304. package/src/kit/options.ts +30 -0
  305. package/src/kit/uploads.ts +244 -0
  306. package/src/kit/waveform.ts +84 -0
  307. package/src/locale.ts +6 -0
  308. package/src/markdown.ts +69 -0
  309. package/src/marks.tsx +328 -0
  310. package/src/reveal.ts +52 -0
  311. package/src/stepGlyphs.ts +83 -0
  312. package/src/styles.css +6970 -0
  313. package/src/surface/Form.tsx +299 -0
  314. package/src/surface/Markdown.tsx +55 -0
  315. package/src/surface/Surface.tsx +605 -0
  316. package/src/surface/scope.ts +82 -0
  317. package/src/surface/values.ts +361 -0
  318. package/src/tint.ts +14 -0
  319. package/src/types.ts +604 -0
  320. package/src/useAgentFace.ts +47 -0
  321. package/src/useCall.ts +292 -0
  322. package/src/useConversation.ts +627 -0
  323. package/src/useDictation.ts +83 -0
  324. package/src/useLive.ts +115 -0
  325. package/src/usePolled.ts +60 -0
  326. package/src/voice/Orb.tsx +45 -0
  327. package/src/voice/StillOrb.tsx +29 -0
  328. package/src/voice/WebGLOrb.tsx +98 -0
  329. package/src/voice/fluidDots.tsx +171 -0
  330. package/src/voice/motion.ts +112 -0
  331. package/src/voice/orbs.ts +39 -0
  332. package/src/voice/useReducedMotion.ts +24 -0
  333. package/src/voice/wave.tsx +129 -0
  334. package/src/voice/webgl.ts +209 -0
  335. package/src/widget/css.d.ts +5 -0
  336. package/src/widget/element.tsx +535 -0
  337. package/src/widget/index.ts +10 -0
  338. package/src/widget/mount.ts +27 -0
  339. package/src/widget/widget.css +253 -0
  340. package/dist/SignalcoreProvider.d.ts +0 -113
  341. package/dist/SignalcoreProvider.js +0 -84
  342. package/dist/automations/AppMarks.d.ts +0 -11
  343. package/dist/automations/AppMarks.js +0 -18
  344. package/dist/automations/AutomationCard.d.ts +0 -27
  345. package/dist/automations/AutomationCard.js +0 -53
  346. package/dist/automations/AutomationsWindow.d.ts +0 -38
  347. package/dist/automations/AutomationsWindow.js +0 -57
  348. package/dist/automations/Card.d.ts +0 -46
  349. package/dist/automations/Card.js +0 -45
  350. package/dist/automations/ScheduleMarks.d.ts +0 -13
  351. package/dist/automations/ScheduleMarks.js +0 -24
  352. package/dist/automations/presentationIcons.d.ts +0 -7
  353. package/dist/automations/presentationIcons.js +0 -67
  354. package/dist/automations/schedule.d.ts +0 -25
  355. package/dist/automations/schedule.js +0 -59
  356. package/dist/automations/time.d.ts +0 -3
  357. package/dist/automations/time.js +0 -25
  358. package/dist/browser/BrowserView.d.ts +0 -43
  359. package/dist/browser/BrowserView.js +0 -94
  360. package/dist/browser/room.d.ts +0 -21
  361. package/dist/browser/room.js +0 -33
  362. package/dist/browser/useBrowserSession.d.ts +0 -17
  363. package/dist/browser/useBrowserSession.js +0 -67
  364. package/dist/builder/BuilderChat.d.ts +0 -32
  365. package/dist/builder/BuilderChat.js +0 -41
  366. package/dist/builder/BuilderTranscript.d.ts +0 -49
  367. package/dist/builder/BuilderTranscript.js +0 -62
  368. package/dist/builder/StatusLine.d.ts +0 -8
  369. package/dist/builder/StatusLine.js +0 -17
  370. package/dist/builder/answer.d.ts +0 -7
  371. package/dist/builder/answer.js +0 -8
  372. package/dist/builder/blocks.d.ts +0 -31
  373. package/dist/builder/blocks.js +0 -74
  374. package/dist/builder/items.d.ts +0 -15
  375. package/dist/builder/items.js +0 -21
  376. package/dist/builder/steps.d.ts +0 -20
  377. package/dist/builder/steps.js +0 -120
  378. package/dist/builder/time.d.ts +0 -4
  379. package/dist/builder/time.js +0 -24
  380. package/dist/builder/useBuildSession.d.ts +0 -36
  381. package/dist/builder/useBuildSession.js +0 -130
  382. package/dist/builder/workingOn.d.ts +0 -7
  383. package/dist/builder/workingOn.js +0 -15
  384. package/dist/chat/AgentChat.d.ts +0 -37
  385. package/dist/chat/AgentChat.js +0 -21
  386. package/dist/chat/ChatView.d.ts +0 -25
  387. package/dist/chat/ChatView.js +0 -34
  388. package/dist/chat/Composer.d.ts +0 -20
  389. package/dist/chat/Composer.js +0 -22
  390. package/dist/chat/MessageRow.d.ts +0 -22
  391. package/dist/chat/MessageRow.js +0 -32
  392. package/dist/chat/arrival.d.ts +0 -15
  393. package/dist/chat/arrival.js +0 -25
  394. package/dist/chat/history.d.ts +0 -24
  395. package/dist/chat/history.js +0 -45
  396. package/dist/chat/moments.d.ts +0 -25
  397. package/dist/chat/moments.js +0 -72
  398. package/dist/chat/types.d.ts +0 -12
  399. package/dist/chat/types.js +0 -1
  400. package/dist/chat/useComposer.d.ts +0 -46
  401. package/dist/chat/useComposer.js +0 -62
  402. package/dist/chat/useConversation.d.ts +0 -35
  403. package/dist/chat/useConversation.js +0 -71
  404. package/dist/chat/useStickToBottom.d.ts +0 -9
  405. package/dist/chat/useStickToBottom.js +0 -33
  406. package/dist/chat/useTurns.d.ts +0 -49
  407. package/dist/chat/useTurns.js +0 -111
  408. package/dist/classes.d.ts +0 -2
  409. package/dist/development.d.ts +0 -5
  410. package/dist/development.js +0 -8
  411. package/dist/flow/FlowWindow.d.ts +0 -42
  412. package/dist/flow/FlowWindow.js +0 -126
  413. package/dist/flow/index.d.ts +0 -16
  414. package/dist/flow/index.js +0 -16
  415. package/dist/flow/kinds.d.ts +0 -23
  416. package/dist/flow/kinds.js +0 -48
  417. package/dist/flow/map.d.ts +0 -44
  418. package/dist/flow/map.js +0 -225
  419. package/dist/flow/nodePaths.d.ts +0 -7
  420. package/dist/flow/nodePaths.js +0 -17
  421. package/dist/flow/relations.d.ts +0 -42
  422. package/dist/flow/relations.js +0 -174
  423. package/dist/host.d.ts +0 -124
  424. package/dist/host.js +0 -1
  425. package/dist/live/LiveView.d.ts +0 -28
  426. package/dist/live/LiveView.js +0 -55
  427. package/dist/live/capture.d.ts +0 -20
  428. package/dist/live/capture.js +0 -100
  429. package/dist/live/follow.d.ts +0 -26
  430. package/dist/live/follow.js +0 -72
  431. package/dist/live/paint.d.ts +0 -13
  432. package/dist/live/paint.js +0 -77
  433. package/dist/live/useLiveStream.d.ts +0 -16
  434. package/dist/live/useLiveStream.js +0 -57
  435. package/dist/look.d.ts +0 -33
  436. package/dist/look.js +0 -241
  437. package/dist/messages/en.d.ts +0 -3
  438. package/dist/messages/en.js +0 -251
  439. package/dist/messages/es.d.ts +0 -3
  440. package/dist/messages/es.js +0 -251
  441. package/dist/messages/index.d.ts +0 -16
  442. package/dist/messages/index.js +0 -33
  443. package/dist/messages/types.d.ts +0 -246
  444. package/dist/messages/types.js +0 -1
  445. package/dist/parts/Button.d.ts +0 -18
  446. package/dist/parts/Button.js +0 -17
  447. package/dist/parts/Icon.d.ts +0 -39
  448. package/dist/parts/Icon.js +0 -37
  449. package/dist/parts/Input.d.ts +0 -6
  450. package/dist/parts/Input.js +0 -11
  451. package/dist/parts/Spinner.d.ts +0 -2
  452. package/dist/parts/Spinner.js +0 -7
  453. package/dist/patterns.d.ts +0 -15
  454. package/dist/patterns.js +0 -5
  455. package/dist/presets.d.ts +0 -82
  456. package/dist/presets.js +0 -81
  457. package/dist/primitives.d.ts +0 -22
  458. package/dist/primitives.js +0 -58
  459. package/dist/request/RequestCard.d.ts +0 -34
  460. package/dist/request/RequestCard.js +0 -101
  461. package/dist/request/approval/ApprovalPreview.d.ts +0 -5
  462. package/dist/request/approval/ApprovalPreview.js +0 -27
  463. package/dist/request/approval/shapes.d.ts +0 -32
  464. package/dist/request/approval/shapes.js +0 -68
  465. package/dist/request/apps.d.ts +0 -11
  466. package/dist/request/apps.js +0 -27
  467. package/dist/request/cards.d.ts +0 -12
  468. package/dist/request/cards.js +0 -24
  469. package/dist/request/deliver.d.ts +0 -12
  470. package/dist/request/deliver.js +0 -21
  471. package/dist/request/handOver.d.ts +0 -18
  472. package/dist/request/handOver.js +0 -33
  473. package/dist/request/kinds/Approval.d.ts +0 -3
  474. package/dist/request/kinds/Approval.js +0 -9
  475. package/dist/request/kinds/Choice.d.ts +0 -3
  476. package/dist/request/kinds/Choice.js +0 -8
  477. package/dist/request/kinds/Connect.d.ts +0 -9
  478. package/dist/request/kinds/Connect.js +0 -119
  479. package/dist/request/kinds/FreeText.d.ts +0 -3
  480. package/dist/request/kinds/FreeText.js +0 -20
  481. package/dist/request/kinds/HandOver.d.ts +0 -13
  482. package/dist/request/kinds/HandOver.js +0 -20
  483. package/dist/request/kinds/Secret.d.ts +0 -7
  484. package/dist/request/kinds/Secret.js +0 -49
  485. package/dist/request/kinds/Upload.d.ts +0 -6
  486. package/dist/request/kinds/Upload.js +0 -47
  487. package/dist/request/types.d.ts +0 -83
  488. package/dist/request/types.js +0 -1
  489. package/dist/safeUrl.d.ts +0 -6
  490. package/dist/safeUrl.js +0 -8
  491. package/dist/stream/builder.d.ts +0 -176
  492. package/dist/stream/builder.js +0 -202
  493. package/dist/stream/reduce.d.ts +0 -51
  494. package/dist/stream/reduce.js +0 -58
  495. package/dist/stream/untilAborted.d.ts +0 -7
  496. package/dist/stream/untilAborted.js +0 -32
  497. package/dist/stream/useRunStream.d.ts +0 -26
  498. package/dist/stream/useRunStream.js +0 -137
  499. package/dist/styles.css +0 -2318
  500. package/dist/surface/HostNode.d.ts +0 -14
  501. package/dist/surface/HostNode.js +0 -30
  502. package/dist/surface/Node.d.ts +0 -7
  503. package/dist/surface/Node.js +0 -49
  504. package/dist/surface/SurfaceBoundary.d.ts +0 -26
  505. package/dist/surface/SurfaceBoundary.js +0 -20
  506. package/dist/surface/bindings.d.ts +0 -14
  507. package/dist/surface/bindings.js +0 -37
  508. package/dist/surface/check.d.ts +0 -27
  509. package/dist/surface/check.js +0 -102
  510. package/dist/surface/format.d.ts +0 -10
  511. package/dist/surface/format.js +0 -32
  512. package/dist/surface/hosts.d.ts +0 -6
  513. package/dist/surface/hosts.js +0 -11
  514. package/dist/surface/scene.d.ts +0 -21
  515. package/dist/surface/scene.js +0 -8
  516. package/dist/surface/templates/Browser.d.ts +0 -6
  517. package/dist/surface/templates/Browser.js +0 -11
  518. package/dist/surface/templates/Chart.d.ts +0 -6
  519. package/dist/surface/templates/Chart.js +0 -13
  520. package/dist/surface/templates/Choices.d.ts +0 -3
  521. package/dist/surface/templates/Choices.js +0 -12
  522. package/dist/surface/templates/Form.d.ts +0 -3
  523. package/dist/surface/templates/Form.js +0 -44
  524. package/dist/surface/templates/KeyValue.d.ts +0 -3
  525. package/dist/surface/templates/KeyValue.js +0 -7
  526. package/dist/surface/templates/Layout.d.ts +0 -5
  527. package/dist/surface/templates/Layout.js +0 -16
  528. package/dist/surface/templates/Live.d.ts +0 -6
  529. package/dist/surface/templates/Live.js +0 -9
  530. package/dist/surface/templates/Media.d.ts +0 -5
  531. package/dist/surface/templates/Media.js +0 -13
  532. package/dist/surface/templates/Slots.d.ts +0 -3
  533. package/dist/surface/templates/Slots.js +0 -19
  534. package/dist/surface/templates/Table.d.ts +0 -3
  535. package/dist/surface/templates/Table.js +0 -12
  536. package/dist/surface/templates/Text.d.ts +0 -4
  537. package/dist/surface/templates/Text.js +0 -15
  538. package/dist/surface/templates/index.d.ts +0 -7
  539. package/dist/surface/templates/index.js +0 -32
  540. package/dist/surface/types.d.ts +0 -68
  541. package/dist/surface/types.js +0 -6
  542. package/dist/theme.d.ts +0 -62
  543. package/dist/theme.js +0 -9
  544. package/dist/useTokens.d.ts +0 -7
  545. package/dist/useTokens.js +0 -41
  546. package/dist/voice/VoiceWindow.d.ts +0 -18
  547. package/dist/voice/VoiceWindow.js +0 -35
  548. package/dist/voice/index.d.ts +0 -13
  549. package/dist/voice/index.js +0 -12
  550. package/dist/voice/meter.d.ts +0 -16
  551. package/dist/voice/meter.js +0 -52
  552. package/dist/voice/orbColors.d.ts +0 -16
  553. package/dist/voice/orbColors.js +0 -75
  554. package/dist/voice/pushable.d.ts +0 -16
  555. package/dist/voice/pushable.js +0 -56
  556. package/dist/voice/useDictation.d.ts +0 -24
  557. package/dist/voice/useDictation.js +0 -60
  558. package/dist/voice/useReducedMotion.d.ts +0 -5
  559. package/dist/voice/useVoice.d.ts +0 -70
  560. package/dist/voice/useVoice.js +0 -197
  561. package/dist/voice/useVoicePrimitives.d.ts +0 -7
  562. package/dist/voice/useVoicePrimitives.js +0 -11
  563. package/dist/voice/voice.d.ts +0 -55
  564. package/dist/voice/voice.js +0 -9
  565. package/dist/voice/webSpeech.d.ts +0 -33
  566. package/dist/voice/webSpeech.js +0 -258
  567. package/dist/widget.js.map +0 -1
  568. package/dist/windows/AgentSpace.d.ts +0 -78
  569. package/dist/windows/AgentSpace.js +0 -135
  570. package/dist/windows/Captions.d.ts +0 -13
  571. package/dist/windows/Captions.js +0 -22
  572. package/dist/windows/Dock.d.ts +0 -37
  573. package/dist/windows/Dock.js +0 -22
  574. package/dist/windows/Journal.d.ts +0 -15
  575. package/dist/windows/Journal.js +0 -19
  576. package/dist/windows/KindMark.d.ts +0 -7
  577. package/dist/windows/KindMark.js +0 -31
  578. package/dist/windows/Pending.d.ts +0 -8
  579. package/dist/windows/Pending.js +0 -17
  580. package/dist/windows/Stage.d.ts +0 -18
  581. package/dist/windows/Stage.js +0 -21
  582. package/dist/windows/StatusLabel.d.ts +0 -9
  583. package/dist/windows/StatusLabel.js +0 -7
  584. package/dist/windows/Strip.d.ts +0 -17
  585. package/dist/windows/Strip.js +0 -42
  586. package/dist/windows/SurfaceWindow.d.ts +0 -20
  587. package/dist/windows/SurfaceWindow.js +0 -12
  588. package/dist/windows/WindowFrame.d.ts +0 -23
  589. package/dist/windows/WindowFrame.js +0 -22
  590. package/dist/windows/hearing.d.ts +0 -11
  591. package/dist/windows/hearing.js +0 -26
  592. package/dist/windows/kinds.d.ts +0 -47
  593. package/dist/windows/kinds.js +0 -28
  594. package/dist/windows/reduce.d.ts +0 -98
  595. package/dist/windows/reduce.js +0 -151
  596. package/dist/windows/registry.d.ts +0 -18
  597. package/dist/windows/registry.js +0 -61
  598. package/dist/windows/reveal.d.ts +0 -9
  599. package/dist/windows/reveal.js +0 -6
  600. package/dist/windows/space.d.ts +0 -21
  601. package/dist/windows/space.js +0 -6
  602. package/dist/windows/status.d.ts +0 -11
  603. package/dist/windows/status.js +0 -30
  604. package/dist/windows/types.d.ts +0 -15
  605. package/dist/windows/types.js +0 -1
  606. package/dist/windows/useLoaded.d.ts +0 -44
  607. package/dist/windows/useLoaded.js +0 -58
  608. package/dist/windows/useUnread.d.ts +0 -7
  609. package/dist/windows/useUnread.js +0 -21
  610. package/dist/windows/useWindows.d.ts +0 -70
  611. package/dist/windows/useWindows.js +0 -60
@@ -0,0 +1,253 @@
1
+ /*
2
+ * The widget's own, beside the package's stylesheet: in its shadow root, or (`shadow="none"`) in
3
+ * the page, where the `signalcore-chat[shadow="none"]` rules stand for the `:host` ones. In its
4
+ * shadow root the page's styles stay out but its type and ink come in (the element reads them and
5
+ * gives them as `--_host-*`, which stand in for our defaults), and so do the `--sc-*` tokens set
6
+ * on the page or on the element. It takes the page's `color-scheme` (light on a page that names
7
+ * none, unless its text is light: then dark) unless `theme` names one. Its parts for the page are
8
+ * `::part(…)` (README, Make it yours).
9
+ */
10
+ :host {
11
+ all: initial;
12
+ display: block;
13
+ color: inherit;
14
+ color-scheme: inherit;
15
+ font-family: inherit;
16
+ font-size: inherit;
17
+ }
18
+
19
+ :host([theme="light"]),
20
+ signalcore-chat[shadow="none"][theme="light"] {
21
+ color-scheme: light;
22
+ }
23
+
24
+ :host([theme="dark"]),
25
+ signalcore-chat[shadow="none"][theme="dark"],
26
+ [data-sc-widget][data-scheme="dark"] {
27
+ color-scheme: dark;
28
+ }
29
+
30
+ :host([hidden]) {
31
+ display: none;
32
+ }
33
+
34
+ signalcore-chat[shadow="none"] {
35
+ display: block;
36
+ }
37
+
38
+ signalcore-chat[shadow="none"][hidden] {
39
+ display: none;
40
+ }
41
+
42
+ /* Inline, it fills the element, which the page sizes (560px tall unless it says). */
43
+ :host([mode="inline"]),
44
+ signalcore-chat[shadow="none"][mode="inline"] {
45
+ height: 560px;
46
+ }
47
+
48
+ [data-sc-widget],
49
+ .sc-widget--inline {
50
+ height: 100%;
51
+ }
52
+
53
+ /* The widget's measures: the floating panel's size, the launcher's, and how far from the
54
+ page's corner they sit. */
55
+ .sc-widget {
56
+ --_panel-width: var(--sc-panel-width, 400px);
57
+ --_panel-height: var(--sc-panel-height, 640px);
58
+ --_launcher: var(--sc-launcher-size, 56px);
59
+ --_offset: var(--sc-launcher-offset, 20px);
60
+ }
61
+
62
+ .sc-widget__panel {
63
+ overflow: hidden;
64
+ border: 1px solid var(--_line);
65
+ border-radius: calc(var(--_radius) + 4px);
66
+ background: var(--_surface);
67
+ }
68
+
69
+ .sc-widget--inline > .sc-widget__panel {
70
+ height: 100%;
71
+ }
72
+
73
+ /* Floating: a round button at the page's corner, the panel opening over it. */
74
+ .sc-widget__launcher {
75
+ position: fixed;
76
+ right: var(--_offset);
77
+ bottom: var(--_offset);
78
+ z-index: 2147483000;
79
+ display: grid;
80
+ place-items: center;
81
+ width: var(--_launcher);
82
+ height: var(--_launcher);
83
+ padding: 0;
84
+ border: 0;
85
+ border-radius: var(--_radius-full);
86
+ background: var(--_accent);
87
+ color: var(--_accent-fg);
88
+ box-shadow: var(--_shadow-overlay);
89
+ cursor: pointer;
90
+ transition: transform 0.15s ease;
91
+ }
92
+
93
+ .sc-widget__launcher:hover {
94
+ transform: scale(1.05);
95
+ }
96
+
97
+ .sc-widget__launcher:focus-visible {
98
+ outline: 3px solid var(--_focus);
99
+ outline-offset: 3px;
100
+ }
101
+
102
+ .sc-widget__launcher > svg {
103
+ width: 46%;
104
+ height: 46%;
105
+ }
106
+
107
+ .sc-widget--floating > .sc-widget__panel {
108
+ position: fixed;
109
+ right: var(--_offset);
110
+ bottom: calc(var(--_offset) + var(--_launcher) + 12px);
111
+ z-index: 2147483000;
112
+ width: min(var(--_panel-width), calc(100vw - 2 * var(--_offset)));
113
+ height: min(var(--_panel-height), calc(100dvh - 3 * var(--_offset) - var(--_launcher) - 12px));
114
+ box-shadow: var(--_shadow-overlay);
115
+ animation: sc-pop 0.18s cubic-bezier(0.22, 1, 0.36, 1) both;
116
+ }
117
+
118
+ /* Floating on a wide screen (or in a wide box), the launcher is the panel's close: the space
119
+ draws none of its own. */
120
+ @media (min-width: 481px) {
121
+ .sc-widget--floating:not(.sc-widget--contained) .sc-space > .sc-space__close {
122
+ display: none;
123
+ }
124
+ .sc-widget--floating:not(.sc-widget--contained)
125
+ .sc-space
126
+ > .sc-space__close
127
+ ~ .sc-space__body
128
+ > .sc-chat
129
+ > .sc-chat__log {
130
+ padding-top: calc(var(--_space) * 4);
131
+ }
132
+ }
133
+
134
+ @container (min-width: 481px) {
135
+ .sc-widget--contained .sc-space > .sc-space__close {
136
+ display: none;
137
+ }
138
+ .sc-widget--contained .sc-space > .sc-space__close ~ .sc-space__body > .sc-chat > .sc-chat__log {
139
+ padding-top: calc(var(--_space) * 4);
140
+ }
141
+ }
142
+
143
+ /* A phone: the panel takes the screen, and its own close is the way out. */
144
+ @media (max-width: 480px) {
145
+ .sc-widget--floating > .sc-widget__panel {
146
+ inset: 0;
147
+ width: auto;
148
+ height: auto;
149
+ border: 0;
150
+ border-radius: 0;
151
+ }
152
+ .sc-widget--open > .sc-widget__launcher {
153
+ display: none;
154
+ }
155
+ }
156
+
157
+ @media (prefers-reduced-motion: reduce) {
158
+ .sc-widget__launcher {
159
+ transition: none;
160
+ }
161
+ .sc-widget--floating > .sc-widget__panel {
162
+ animation: none;
163
+ }
164
+ }
165
+
166
+ /* Its look may put it at the page's left corner. */
167
+ .sc-widget--left > .sc-widget__launcher,
168
+ .sc-widget--left.sc-widget--floating > .sc-widget__panel {
169
+ right: auto;
170
+ left: var(--_offset);
171
+ }
172
+
173
+ /*
174
+ * `contained`: floating within the element's own box, which the page sizes, instead of at the
175
+ * page's corner (a preview of the widget on a site). Its box is the container the phone's rules
176
+ * read, so a narrow box shows the widget as a phone does.
177
+ */
178
+ :host([contained]),
179
+ signalcore-chat[shadow="none"][contained] {
180
+ position: relative;
181
+ height: 100%;
182
+ }
183
+
184
+ :host([contained]) [data-sc-widget],
185
+ signalcore-chat[shadow="none"][contained] [data-sc-widget] {
186
+ container-type: size;
187
+ }
188
+
189
+ .sc-widget--contained > .sc-widget__launcher,
190
+ .sc-widget--contained.sc-widget--floating > .sc-widget__panel {
191
+ position: absolute;
192
+ z-index: 1;
193
+ }
194
+
195
+ .sc-widget--contained.sc-widget--floating > .sc-widget__panel {
196
+ width: min(var(--_panel-width), calc(100% - 2 * var(--_offset)));
197
+ height: min(var(--_panel-height), calc(100% - 3 * var(--_offset) - var(--_launcher) - 12px));
198
+ }
199
+
200
+ @container (max-width: 480px) {
201
+ .sc-widget--contained.sc-widget--floating > .sc-widget__panel {
202
+ inset: 0;
203
+ width: auto;
204
+ height: auto;
205
+ border: 0;
206
+ border-radius: 0;
207
+ }
208
+ .sc-widget--contained.sc-widget--open > .sc-widget__launcher {
209
+ display: none;
210
+ }
211
+ }
212
+
213
+ /*
214
+ * `unstyled`: our look's defaults drop away (the host's tokens still apply): no grounds but the
215
+ * system's under a floating panel, no lines, no shadows, no corners, every ink the page's text.
216
+ * The layout stays, for the host's own stylesheet to dress.
217
+ */
218
+ [data-sc-unstyled] .sc {
219
+ --_muted: var(--sc-muted, var(--_fg));
220
+ --_subtle: var(--sc-subtle, var(--_fg));
221
+ --_bg: var(--sc-bg, transparent);
222
+ --_surface: var(--sc-surface, transparent);
223
+ --_sunken: var(--sc-sunken, transparent);
224
+ --_line: var(--sc-line, transparent);
225
+ --_line-hover: var(--_line);
226
+ --_wash: transparent;
227
+ --_accent: var(--sc-accent, var(--_fg));
228
+ --_accent-fg: var(--sc-accent-fg, Canvas);
229
+ --_bubble: var(--sc-bubble, transparent);
230
+ --_primary: var(--sc-primary, transparent);
231
+ --_on-primary: var(--sc-on-primary, var(--_fg));
232
+ --_success: var(--sc-success, var(--_fg));
233
+ --_warning: var(--sc-warning, var(--_fg));
234
+ --_danger: var(--sc-danger, var(--_fg));
235
+ --_danger-fg: var(--sc-danger-fg, Canvas);
236
+ --_sky: var(--sc-sky, var(--_fg));
237
+ --_sand: var(--sc-sand, var(--_fg));
238
+ --_rose: var(--sc-rose, var(--_fg));
239
+ --_radius: var(--sc-radius, 0px);
240
+ --_radius-full: var(--sc-radius-full, 0px);
241
+ --_shadow: var(--sc-shadow, none);
242
+ --_shadow-raised: var(--sc-shadow-raised, none);
243
+ --_shadow-overlay: var(--sc-shadow-overlay, none);
244
+ --_focus: var(--sc-focus, currentColor);
245
+ }
246
+
247
+ [data-sc-unstyled] .sc-widget__panel {
248
+ border-radius: var(--_radius);
249
+ }
250
+
251
+ [data-sc-unstyled] .sc-widget--floating > .sc-widget__panel {
252
+ background: var(--sc-surface, Canvas);
253
+ }
@@ -1,113 +0,0 @@
1
- import { type ReactNode } from "react";
2
- import type { UiClient } from "./client.js";
3
- import type { HostComponents } from "./host.js";
4
- import { type ClassNames, type Part } from "./look.js";
5
- import { type Language, type Locale, type MessageOverrides, type Messages } from "./messages/index.js";
6
- import { type Patterns } from "./patterns.js";
7
- import { type ThemeOption } from "./theme.js";
8
- import type { DefaultWindowComponents, Viewer } from "./windows/kinds.js";
9
- /** What every component below the provider can use. */
10
- export interface Scope {
11
- client: UiClient | undefined;
12
- components: HostComponents;
13
- classNames: ClassNames | undefined;
14
- patterns: Patterns;
15
- language: Language;
16
- /** The host's components for the default windows, laid over the package's own. */
17
- windows: DefaultWindowComponents;
18
- viewer: Viewer;
19
- }
20
- export interface SignalcoreProviderProps {
21
- /** The API, for what the user does on a card and for streams. Without one, hosts answer. */
22
- client?: UiClient | undefined;
23
- /**
24
- * The host's own components by name: the primitives surfaces are built from (`Button`, `Card`,
25
- * `Table`, `Input`, `Select`) and the catalog's components (see `HostComponents`). Never the
26
- * cards that ask the owner to decide (`RequestCard`).
27
- */
28
- components?: HostComponents | undefined;
29
- /**
30
- * How it looks. By default (`"auto"`) the design system the page uses is found and followed
31
- * (shadcn, Radix Themes, Material), and a page that uses none keeps its own font, color and
32
- * scheme with our defaults. Name a system (`"shadcn"`) to skip the search, or pass tokens to
33
- * lay over whichever system there is (`{ accent: "var(--brand)" }`; `preset` picks the system).
34
- * Written as custom properties on the wrapper element, never on the page's root.
35
- */
36
- theme?: ThemeOption | undefined;
37
- /** Classes to add to the package's elements, by slot. */
38
- classNames?: ClassNames | undefined;
39
- /** Which layout our components take where they have two (see `Patterns`). */
40
- patterns?: Partial<Patterns> | undefined;
41
- /**
42
- * The language of the words the components say, and of the dates they write: `"es"` (the
43
- * default) or `"en"`.
44
- */
45
- locale?: Locale | undefined;
46
- /**
47
- * Words to change, laid over the locale's dictionary: `{ send: "Post", verbs: { read: "Open" } }`.
48
- * Hoist the object (or memoize it), so the components are not drawn again for nothing.
49
- */
50
- messages?: MessageOverrides | undefined;
51
- /**
52
- * Leave out the shipped styles: the elements and their classes are the same, but the
53
- * stylesheet does not apply to them, so a host styles them through `classNames` alone.
54
- */
55
- unstyled?: boolean | undefined;
56
- /**
57
- * The components that draw the app's default windows (ADR 0011), by kind: `chat`,
58
- * `automations`, `flow`, `voice`, `browser` and `live`. They are laid over the package's own
59
- * (the chat, the browser and the live stream), so a host replaces one by naming its kind, and
60
- * adds the ones that live in other entries (`FlowWindow` from `@signalcore/ui/flow`,
61
- * `VoiceWindow` from `@signalcore/ui/voice`). A kind with no component shows its text twin.
62
- * Hoist the object (or memoize it), so the shell is not drawn again for nothing.
63
- */
64
- windows?: DefaultWindowComponents | undefined;
65
- /**
66
- * Who is looking: `"owner"` (the default) for the business's owner and team, `"end_user"` for
67
- * a person the business serves (ADR 0009). The shell only opens the windows that viewer may
68
- * see: an end user gets `chat` and `voice`, never `automations`, `flow` or the browser. The
69
- * client does not say which credential it holds, so the host does; the API refuses an end
70
- * user's credential the owner's calls whatever this says.
71
- */
72
- viewer?: Viewer | undefined;
73
- children: ReactNode;
74
- }
75
- /**
76
- * The one place a host says how SignalCore is reached and how it looks. It wraps its children in
77
- * an element that carries the tokens (`display: contents` in styles.css, so it takes no room),
78
- * which is why the styles reach everything below it and nothing else.
79
- */
80
- export declare function SignalcoreProvider({ client, components, theme, classNames, patterns, locale, messages, unstyled, windows, viewer, children, }: SignalcoreProviderProps): import("react").JSX.Element;
81
- /** The client, components and classes of the nearest provider; nothing set when there is none. */
82
- export declare function useSignalcore(): Scope;
83
- /** The words the components say, in the provider's language, with the host's own laid over. */
84
- export declare function useMessages(): Messages;
85
- /** The provider's language: its words, and the locale that dates are written in. */
86
- export declare function useLanguage(): Language;
87
- /** The props of the slots, with the host's classes: spread them onto the elements. */
88
- export declare function useParts(): Part;
89
- /**
90
- * A component used outside any provider still gets the tokens: it brings a default one of its
91
- * own. Inside a provider it adds nothing, so a host's theme is never overridden by a nested one.
92
- */
93
- export declare function Scoped({ children }: {
94
- children: ReactNode;
95
- }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
96
- /**
97
- * What the platform draws itself. The host's components do not reach below it: the cards that
98
- * ask the owner to decide (approve, connect, enter a secret, take the controls) are built from
99
- * our own primitives only, so no replacement can change what an "Aprobar" button does or says.
100
- * The host's tokens and classes still apply.
101
- */
102
- export declare function Platform({ children }: {
103
- children: ReactNode;
104
- }): import("react").JSX.Element;
105
- /**
106
- * The same scope with another client, for what is drawn below it. A shell uses it to hear the
107
- * answers its windows get, wherever a turn is sent from (the chat, a voice window), without any
108
- * of them knowing it is there.
109
- */
110
- export declare function WithClient({ client, children, }: {
111
- client: UiClient | undefined;
112
- children: ReactNode;
113
- }): import("react").JSX.Element;
@@ -1,84 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useMemo } from "react";
3
- import { partsOf } from "./look.js";
4
- import { languageOf, } from "./messages/index.js";
5
- import { DEFAULT_PATTERNS } from "./patterns.js";
6
- import { themeStyle } from "./theme.js";
7
- import { useTokens } from "./useTokens.js";
8
- const NO_COMPONENTS = {};
9
- const NO_WINDOWS = {};
10
- const NOTHING = {
11
- client: undefined,
12
- components: NO_COMPONENTS,
13
- classNames: undefined,
14
- patterns: DEFAULT_PATTERNS,
15
- language: languageOf(),
16
- windows: NO_WINDOWS,
17
- viewer: "owner",
18
- };
19
- const Context = createContext(null);
20
- /**
21
- * The one place a host says how SignalCore is reached and how it looks. It wraps its children in
22
- * an element that carries the tokens (`display: contents` in styles.css, so it takes no room),
23
- * which is why the styles reach everything below it and nothing else.
24
- */
25
- export function SignalcoreProvider({ client, components, theme, classNames, patterns, locale, messages, unstyled = false, windows, viewer = "owner", children, }) {
26
- const tokens = useTokens(theme);
27
- const scope = useMemo(() => ({
28
- client,
29
- components: components ?? NO_COMPONENTS,
30
- classNames,
31
- patterns: { ...DEFAULT_PATTERNS, ...patterns },
32
- language: languageOf(locale, messages),
33
- windows: windows ?? NO_WINDOWS,
34
- viewer,
35
- }), [client, components, classNames, patterns, locale, messages, windows, viewer]);
36
- const part = partsOf(classNames);
37
- return (_jsx(Context, { value: scope, children: _jsx("div", { ...part("ui"), "data-sc-unstyled": unstyled ? "" : undefined, style: themeStyle(tokens), children: children }) }));
38
- }
39
- /** The client, components and classes of the nearest provider; nothing set when there is none. */
40
- export function useSignalcore() {
41
- return useContext(Context) ?? NOTHING;
42
- }
43
- /** The words the components say, in the provider's language, with the host's own laid over. */
44
- export function useMessages() {
45
- return useSignalcore().language.messages;
46
- }
47
- /** The provider's language: its words, and the locale that dates are written in. */
48
- export function useLanguage() {
49
- return useSignalcore().language;
50
- }
51
- /** The props of the slots, with the host's classes: spread them onto the elements. */
52
- export function useParts() {
53
- const { classNames } = useSignalcore();
54
- return useMemo(() => partsOf(classNames), [classNames]);
55
- }
56
- /**
57
- * A component used outside any provider still gets the tokens: it brings a default one of its
58
- * own. Inside a provider it adds nothing, so a host's theme is never overridden by a nested one.
59
- */
60
- export function Scoped({ children }) {
61
- const inside = useContext(Context) !== null;
62
- return inside ? children : _jsx(SignalcoreProvider, { children: children });
63
- }
64
- /**
65
- * What the platform draws itself. The host's components do not reach below it: the cards that
66
- * ask the owner to decide (approve, connect, enter a secret, take the controls) are built from
67
- * our own primitives only, so no replacement can change what an "Aprobar" button does or says.
68
- * The host's tokens and classes still apply.
69
- */
70
- export function Platform({ children }) {
71
- const scope = useSignalcore();
72
- const platform = useMemo(() => ({ ...scope, components: NO_COMPONENTS }), [scope]);
73
- return _jsx(Context, { value: platform, children: children });
74
- }
75
- /**
76
- * The same scope with another client, for what is drawn below it. A shell uses it to hear the
77
- * answers its windows get, wherever a turn is sent from (the chat, a voice window), without any
78
- * of them knowing it is there.
79
- */
80
- export function WithClient({ client, children, }) {
81
- const scope = useSignalcore();
82
- const next = useMemo(() => ({ ...scope, client }), [scope, client]);
83
- return _jsx(Context, { value: next, children: children });
84
- }
@@ -1,11 +0,0 @@
1
- import type { AppDirectory } from "../request/types.js";
2
- import type { AppChip } from "../windows/types.js";
3
- export interface AppMarksProps {
4
- /** The apps a part uses (`apps` of an automation or a skill in the overview). */
5
- chips: AppChip[];
6
- /** How the host knows its apps (names and logos); without it an app is a monogram. */
7
- apps?: AppDirectory | undefined;
8
- className?: string | undefined;
9
- }
10
- /** The apps a part uses, as their logos with names; dimmed, and said so, until connected. */
11
- export declare function AppMarks(props: AppMarksProps): import("react").JSX.Element;
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AppLogo } from "../request/apps.js";
3
- import { Scoped, useMessages, useParts } from "../SignalcoreProvider.js";
4
- /** The apps a part uses, as their logos with names; dimmed, and said so, until connected. */
5
- export function AppMarks(props) {
6
- return (_jsx(Scoped, { children: _jsx(Marks, { ...props }) }));
7
- }
8
- function Marks({ chips, apps, className }) {
9
- const part = useParts();
10
- const copy = useMessages().automations;
11
- return (_jsx("span", { ...part("app-marks", [], className), children: chips.map((chip) => (_jsxs("span", { ...part("app-marks__item", [!chip.connected && "off"]), title: chip.connected ? undefined : `${chip.name} ${copy.notConnected}`, children: [_jsx(AppLogo, { apps: apps, mark: {
12
- provider: chip.provider,
13
- name: chip.name,
14
- icon: chip.icon,
15
- website: chip.website,
16
- size: 14,
17
- } }), chip.name, !chip.connected && ` (${copy.notConnected})`] }, chip.alias))) }));
18
- }
@@ -1,27 +0,0 @@
1
- import type { AppDirectory } from "../request/types.js";
2
- import type { Automation, Presentation } from "../windows/types.js";
3
- export interface AutomationCardProps {
4
- automation: Automation;
5
- /** What a model wrote about it (`presentations["automation:<id>"]` of the overview). */
6
- presentation?: Presentation | undefined;
7
- /** The builder is working on this automation: its state reads "building". */
8
- building?: boolean | undefined;
9
- /** It is the one the owner's eye should find: it comes into view and is washed once. */
10
- focused?: boolean | undefined;
11
- /** Changes each time the focus is pressed on again, replaying the wash. */
12
- attention?: number | null | undefined;
13
- /** Called with the automation's id when the owner asks to see its steps. */
14
- onOpenFlow?: ((id: string) => void) | undefined;
15
- /** Called with a line to say to the builder, as the owner. */
16
- onAsk?: ((prompt: string) => void) | undefined;
17
- /** How the host knows its apps (names and logos); without it an app is a monogram. */
18
- apps?: AppDirectory | undefined;
19
- className?: string | undefined;
20
- }
21
- /**
22
- * One automation as the owner reads it: what it is called and when it runs, its state, the
23
- * apps it uses and how the last run went, with the model's own words over them when it has
24
- * written some. It opens to the rest. `AutomationsWindow` is a list of these; a host that lays
25
- * its page out by hand can use the card on its own.
26
- */
27
- export declare function AutomationCard(props: AutomationCardProps): import("react").JSX.Element;
@@ -1,53 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Scoped, useLanguage, useMessages, useParts } from "../SignalcoreProvider.js";
3
- import { automationStatus } from "../windows/status.js";
4
- import { StatusLabel } from "../windows/StatusLabel.js";
5
- import { AppMarks } from "./AppMarks.js";
6
- import { Card } from "./Card.js";
7
- import { ScheduleMarks } from "./ScheduleMarks.js";
8
- import { timeAgo } from "./time.js";
9
- /** How an automation starts, as the catalog names the glyph that says it. */
10
- const TRIGGER_GLYPH = {
11
- cron: "clock",
12
- webhook: "link",
13
- event: "zap",
14
- };
15
- /**
16
- * One automation as the owner reads it: what it is called and when it runs, its state, the
17
- * apps it uses and how the last run went, with the model's own words over them when it has
18
- * written some. It opens to the rest. `AutomationsWindow` is a list of these; a host that lays
19
- * its page out by hand can use the card on its own.
20
- */
21
- export function AutomationCard(props) {
22
- return (_jsx(Scoped, { children: _jsx(Entry, { ...props }) }));
23
- }
24
- function Entry({ automation, presentation, building = false, focused = false, attention = null, onOpenFlow, onAsk, apps, className, }) {
25
- const part = useParts();
26
- const copy = useMessages();
27
- const { locale } = useLanguage();
28
- const words = copy.automations;
29
- const status = automationStatus(automation.status, copy);
30
- const last = automation.activity?.last;
31
- const failed = last?.status === "failed";
32
- const runs = automation.activity?.runs_7d ?? 0;
33
- const failures = automation.activity?.failed_7d ?? 0;
34
- const approvals = automation.apps.flatMap((app) => app.needs_approval.map((action) => words.approvalIn(action, app.name)));
35
- return (_jsx(Card, { kind: automation.kind, className: className, presentation: presentation, glyph: TRIGGER_GLYPH[automation.kind], tint: "signal", building: building, focused: focused, attention: attention, meta: _jsx(ScheduleMarks, { cron: automation.cron, tone: building ? "signal" : "accent" }), fallback: {
36
- title: automation.title,
37
- tagline: (_jsxs(_Fragment, { children: [automation.when, automation.apps.length > 0 && _jsx(AppMarks, { chips: automation.apps, apps: apps })] })),
38
- description: automation.summary ?? automation.reaches.join(". "),
39
- facts: [
40
- ...(automation.cron ? [] : [{ label: words.when, value: automation.when }]),
41
- ...(approvals.length > 0
42
- ? [{ label: words.needsApproval, value: approvals.join(", ") }]
43
- : []),
44
- ],
45
- }, status: building ? (_jsx(StatusLabel, { tone: "signal", live: true, children: words.building })) : (_jsx(StatusLabel, { tone: status.tone, children: status.word })), extra: _jsxs("p", { ...part("automation__activity", [failed && "failed"]), children: [last
46
- ? failed
47
- ? words.failedLast(timeAgo(last.at, locale), last.error ?? null)
48
- : words.ranLast(timeAgo(last.at, locale))
49
- : words.neverRan, runs > 0 && `. ${words.thisWeek(runs, failures)}`] }), onOpen: onOpenFlow &&
50
- (() => {
51
- onOpenFlow(automation.id);
52
- }), onAsk: onAsk }));
53
- }
@@ -1,38 +0,0 @@
1
- import type { AppDirectory } from "../request/types.js";
2
- import type { Overview } from "../windows/types.js";
3
- export interface AutomationsWindowProps {
4
- /**
5
- * The agent as its owner sees it: its channels, its automations and what was written about
6
- * them. It is what is drawn when given. Without it, the window asks for the overview of
7
- * `agentId` through the provider's client (`agents.overview`).
8
- */
9
- overview?: Overview | undefined;
10
- /** The agent to ask about when there is no `overview`. */
11
- agentId?: string | undefined;
12
- /** The automation the builder is working on (its `id`): it comes into view and is washed once. */
13
- focusedId?: string | null | undefined;
14
- /** Changes each time the builder touches the focused automation again, replaying the wash. */
15
- attention?: number | null | undefined;
16
- /** The builder is working: the focused automation reads "building". */
17
- building?: boolean | undefined;
18
- /** The owner asked to see the steps of an automation or a channel (its `id`). */
19
- onOpenFlow?: ((id: string) => void) | undefined;
20
- /** A line to say to the builder as the owner: a change they may want. */
21
- onAsk?: ((prompt: string) => void) | undefined;
22
- /** How the host knows its apps (names and logos); without it an app is a monogram. */
23
- apps?: AppDirectory | undefined;
24
- /** What the window is called to someone who cannot see it. */
25
- label?: string | undefined;
26
- className?: string | undefined;
27
- }
28
- /**
29
- * What the agent does, as the cards the owner reads (ADR 0011's `automations` window): split the
30
- * way the engine runs it, in conversations with customers (one card per channel it answers on,
31
- * with the platform's reading of how it stands) and on its own (its automations: when they run,
32
- * how the last time went, a way to see their steps). Each card shows what a model wrote about
33
- * the part, in the owner's words, and the platform's own reading until it has.
34
- *
35
- * It is drawn from facts and never generated, and it is a window of the owner: the overview
36
- * names their apps and runs, so it needs an owner's credential.
37
- */
38
- export declare function AutomationsWindow(props: AutomationsWindowProps): import("react").JSX.Element;
@@ -1,57 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { AppLogo } from "../request/apps.js";
3
- import { Scoped, useMessages, useParts } from "../SignalcoreProvider.js";
4
- import { Pending } from "../windows/Pending.js";
5
- import { channelStatus } from "../windows/status.js";
6
- import { StatusLabel } from "../windows/StatusLabel.js";
7
- import { useOverview } from "../windows/useLoaded.js";
8
- import { AutomationCard } from "./AutomationCard.js";
9
- import { Card } from "./Card.js";
10
- /**
11
- * What the agent does, as the cards the owner reads (ADR 0011's `automations` window): split the
12
- * way the engine runs it, in conversations with customers (one card per channel it answers on,
13
- * with the platform's reading of how it stands) and on its own (its automations: when they run,
14
- * how the last time went, a way to see their steps). Each card shows what a model wrote about
15
- * the part, in the owner's words, and the platform's own reading until it has.
16
- *
17
- * It is drawn from facts and never generated, and it is a window of the owner: the overview
18
- * names their apps and runs, so it needs an owner's credential.
19
- */
20
- export function AutomationsWindow(props) {
21
- return (_jsx(Scoped, { children: _jsx(Frame, { ...props }) }));
22
- }
23
- function Frame({ overview, agentId, label, className, ...rest }) {
24
- const part = useParts();
25
- const copy = useMessages();
26
- const loaded = useOverview(overview, agentId);
27
- return (_jsx("section", { ...part("automations", [], className), "aria-label": label ?? copy.automations.label, "aria-busy": loaded.state === "loading", children: loaded.state === "ready" ? (_jsx(Cards, { overview: loaded.value, ...rest })) : (_jsx(Pending, { state: loaded.state, failed: copy.automations.cannotLoad })) }));
28
- }
29
- function Cards({ overview, focusedId = null, attention = null, building = false, onOpenFlow, onAsk, apps, }) {
30
- const part = useParts();
31
- const copy = useMessages();
32
- const words = copy.automations;
33
- const shown = overview.presentations ?? {};
34
- return (_jsxs(_Fragment, { children: [_jsxs("div", { ...part("automations__group"), children: [_jsx("h3", { ...part("automations__title"), children: words.withCustomers }), _jsxs("ul", { ...part("automations__list"), children: [overview.channels.length === 0 && (_jsx("li", { ...part("automations__item"), children: _jsx(Card, { kind: "channel", presentation: undefined, glyph: "message-circle", fallback: {
35
- title: words.noChannelTitle,
36
- tagline: words.noChannelTagline,
37
- description: words.noChannelBody,
38
- } }) })), overview.channels.map((channel) => {
39
- const status = channelStatus(channel.status, copy);
40
- return (_jsx("li", { ...part("automations__item"), children: _jsx(Card, { kind: "channel", presentation: shown[channel.id] ?? shown[`channel:${channel.connection_id}`], glyph: "message-circle", mark: _jsx(AppLogo, { apps: apps, mark: {
41
- provider: channel.provider,
42
- name: channel.name,
43
- icon: null,
44
- size: 26,
45
- } }), fallback: {
46
- title: channel.title,
47
- tagline: channel.name,
48
- description: channel.summary,
49
- }, status: _jsx(StatusLabel, { tone: status.tone, children: status.word }), onOpen: onOpenFlow &&
50
- (() => {
51
- onOpenFlow(channel.id);
52
- }), onAsk: onAsk }) }, channel.id));
53
- })] })] }), _jsxs("div", { ...part("automations__group"), children: [_jsx("h3", { ...part("automations__title"), children: words.onItsOwn }), overview.automations.length === 0 ? (_jsx("p", { ...part("automations__empty"), children: words.noAutomations })) : (_jsx("ul", { ...part("automations__list"), children: overview.automations.map((automation) => {
54
- const focused = automation.id === focusedId;
55
- return (_jsx("li", { ...part("automations__item"), children: _jsx(AutomationCard, { automation: automation, presentation: shown[`automation:${automation.id}`], building: building && focused, focused: focused, attention: focused ? attention : null, onOpenFlow: onOpenFlow, onAsk: onAsk, apps: apps }) }, automation.id));
56
- }) }))] })] }));
57
- }