@aceshooting/lyra-ui 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +11 -0
  2. package/custom-elements.json +23341 -11202
  3. package/dist/components/app-rail/app-rail.d.ts +171 -0
  4. package/dist/components/app-rail/app-rail.js +483 -0
  5. package/dist/components/app-rail/app-rail.styles.d.ts +1 -0
  6. package/dist/components/app-rail/app-rail.styles.js +125 -0
  7. package/dist/components/attachment-chip/attachment-chip.d.ts +114 -0
  8. package/dist/components/attachment-chip/attachment-chip.js +312 -0
  9. package/dist/components/attachment-chip/attachment-chip.styles.d.ts +1 -0
  10. package/dist/components/attachment-chip/attachment-chip.styles.js +184 -0
  11. package/dist/components/attachment-trigger/attachment-trigger.d.ts +83 -0
  12. package/dist/components/attachment-trigger/attachment-trigger.js +258 -0
  13. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts +1 -0
  14. package/dist/components/attachment-trigger/attachment-trigger.styles.js +68 -0
  15. package/dist/components/chart/box-plot.js +11 -1
  16. package/dist/components/chart/chart-loader.d.ts +44 -13
  17. package/dist/components/chart/chart-loader.js +65 -18
  18. package/dist/components/chart/chart.d.ts +1 -2
  19. package/dist/components/chart/chart.js +67 -12
  20. package/dist/components/chart/histogram-bin.d.ts +4 -1
  21. package/dist/components/chart/histogram-bin.js +24 -14
  22. package/dist/components/chart/lite-chart.d.ts +54 -0
  23. package/dist/components/chart/lite-chart.js +140 -22
  24. package/dist/components/chart/lite-chart.styles.js +9 -0
  25. package/dist/components/chat-composer/chat-composer.d.ts +92 -0
  26. package/dist/components/chat-composer/chat-composer.js +285 -0
  27. package/dist/components/chat-composer/chat-composer.styles.d.ts +1 -0
  28. package/dist/components/chat-composer/chat-composer.styles.js +135 -0
  29. package/dist/components/chat-message/chat-message.d.ts +113 -0
  30. package/dist/components/chat-message/chat-message.js +291 -0
  31. package/dist/components/chat-message/chat-message.styles.d.ts +1 -0
  32. package/dist/components/chat-message/chat-message.styles.js +203 -0
  33. package/dist/components/checkbox/checkbox.d.ts +59 -0
  34. package/dist/components/checkbox/checkbox.js +230 -0
  35. package/dist/components/checkbox/checkbox.styles.d.ts +1 -0
  36. package/dist/components/checkbox/checkbox.styles.js +70 -0
  37. package/dist/components/chip/chip-group.d.ts +56 -0
  38. package/dist/components/chip/chip-group.js +124 -0
  39. package/dist/components/chip/chip-group.styles.d.ts +1 -0
  40. package/dist/components/chip/chip-group.styles.js +57 -0
  41. package/dist/components/chip/chip.d.ts +64 -0
  42. package/dist/components/chip/chip.js +115 -0
  43. package/dist/components/chip/chip.styles.d.ts +1 -0
  44. package/dist/components/chip/chip.styles.js +115 -0
  45. package/dist/components/citation-badge/citation-badge.d.ts +113 -0
  46. package/dist/components/citation-badge/citation-badge.js +300 -0
  47. package/dist/components/citation-badge/citation-badge.styles.d.ts +1 -0
  48. package/dist/components/citation-badge/citation-badge.styles.js +96 -0
  49. package/dist/components/code-block/code-block.d.ts +89 -0
  50. package/dist/components/code-block/code-block.js +317 -0
  51. package/dist/components/code-block/code-block.styles.d.ts +1 -0
  52. package/dist/components/code-block/code-block.styles.js +187 -0
  53. package/dist/components/code-block/code-loader.d.ts +44 -0
  54. package/dist/components/code-block/code-loader.js +79 -0
  55. package/dist/components/combobox/combobox.d.ts +19 -1
  56. package/dist/components/combobox/combobox.js +84 -14
  57. package/dist/components/combobox/option.d.ts +5 -1
  58. package/dist/components/combobox/option.js +35 -0
  59. package/dist/components/context-meter/context-meter.d.ts +53 -0
  60. package/dist/components/context-meter/context-meter.js +150 -0
  61. package/dist/components/context-meter/context-meter.styles.d.ts +1 -0
  62. package/dist/components/context-meter/context-meter.styles.js +120 -0
  63. package/dist/components/conversation-item/conversation-item.d.ts +128 -0
  64. package/dist/components/conversation-item/conversation-item.js +322 -0
  65. package/dist/components/conversation-item/conversation-item.styles.d.ts +1 -0
  66. package/dist/components/conversation-item/conversation-item.styles.js +155 -0
  67. package/dist/components/date-picker/date-input.d.ts +24 -0
  68. package/dist/components/date-picker/date-input.js +134 -22
  69. package/dist/components/date-picker/date-picker.d.ts +7 -0
  70. package/dist/components/date-picker/date-picker.js +85 -16
  71. package/dist/components/dialog/confirm.d.ts +40 -0
  72. package/dist/components/dialog/confirm.js +79 -0
  73. package/dist/components/dialog/dialog.d.ts +85 -0
  74. package/dist/components/dialog/dialog.js +272 -0
  75. package/dist/components/dialog/dialog.styles.d.ts +1 -0
  76. package/dist/components/dialog/dialog.styles.js +52 -0
  77. package/dist/components/dock-panel/dock-panel.d.ts +134 -0
  78. package/dist/components/dock-panel/dock-panel.js +345 -0
  79. package/dist/components/dock-panel/dock-panel.styles.d.ts +1 -0
  80. package/dist/components/dock-panel/dock-panel.styles.js +145 -0
  81. package/dist/components/document-preview/document-preview.d.ts +135 -0
  82. package/dist/components/document-preview/document-preview.js +372 -0
  83. package/dist/components/document-preview/document-preview.styles.d.ts +1 -0
  84. package/dist/components/document-preview/document-preview.styles.js +191 -0
  85. package/dist/components/export-button/csv.js +1 -1
  86. package/dist/components/export-button/export-button.js +2 -0
  87. package/dist/components/flag/flag.d.ts +29 -13
  88. package/dist/components/flag/flag.js +39 -13
  89. package/dist/components/gauge/gauge.js +19 -10
  90. package/dist/components/generation-status/generation-status.d.ts +109 -0
  91. package/dist/components/generation-status/generation-status.js +273 -0
  92. package/dist/components/generation-status/generation-status.styles.d.ts +1 -0
  93. package/dist/components/generation-status/generation-status.styles.js +84 -0
  94. package/dist/components/heatmap/calendar-grid.d.ts +4 -1
  95. package/dist/components/heatmap/calendar-grid.js +25 -12
  96. package/dist/components/heatmap/heatmap-scale.d.ts +6 -0
  97. package/dist/components/heatmap/heatmap-scale.js +7 -1
  98. package/dist/components/heatmap/heatmap.d.ts +74 -0
  99. package/dist/components/heatmap/heatmap.js +135 -23
  100. package/dist/components/json-viewer/json-viewer.d.ts +53 -0
  101. package/dist/components/json-viewer/json-viewer.js +283 -0
  102. package/dist/components/json-viewer/json-viewer.styles.d.ts +1 -0
  103. package/dist/components/json-viewer/json-viewer.styles.js +176 -0
  104. package/dist/components/kbd/kbd.d.ts +77 -0
  105. package/dist/components/kbd/kbd.js +214 -0
  106. package/dist/components/kbd/kbd.styles.d.ts +1 -0
  107. package/dist/components/kbd/kbd.styles.js +52 -0
  108. package/dist/components/live-region/live-region.d.ts +81 -0
  109. package/dist/components/live-region/live-region.js +153 -0
  110. package/dist/components/live-region/live-region.styles.d.ts +1 -0
  111. package/dist/components/live-region/live-region.styles.js +10 -0
  112. package/dist/components/map/map.d.ts +8 -6
  113. package/dist/components/map/map.js +44 -8
  114. package/dist/components/markdown/markdown-loader.d.ts +34 -0
  115. package/dist/components/markdown/markdown-loader.js +43 -0
  116. package/dist/components/markdown/markdown.d.ts +81 -0
  117. package/dist/components/markdown/markdown.js +284 -0
  118. package/dist/components/markdown/markdown.styles.d.ts +1 -0
  119. package/dist/components/markdown/markdown.styles.js +82 -0
  120. package/dist/components/media-card/media-card.d.ts +122 -0
  121. package/dist/components/media-card/media-card.js +295 -0
  122. package/dist/components/media-card/media-card.styles.d.ts +1 -0
  123. package/dist/components/media-card/media-card.styles.js +132 -0
  124. package/dist/components/mention-popover/mention-popover.d.ts +200 -0
  125. package/dist/components/mention-popover/mention-popover.js +475 -0
  126. package/dist/components/mention-popover/mention-popover.styles.d.ts +1 -0
  127. package/dist/components/mention-popover/mention-popover.styles.js +101 -0
  128. package/dist/components/menu/menu-item.d.ts +62 -0
  129. package/dist/components/menu/menu-item.js +119 -0
  130. package/dist/components/menu/menu-item.styles.d.ts +1 -0
  131. package/dist/components/menu/menu-item.styles.js +67 -0
  132. package/dist/components/menu/menu.d.ts +143 -0
  133. package/dist/components/menu/menu.js +365 -0
  134. package/dist/components/menu/menu.styles.d.ts +1 -0
  135. package/dist/components/menu/menu.styles.js +66 -0
  136. package/dist/components/model-select/model-select.d.ts +125 -0
  137. package/dist/components/model-select/model-select.js +490 -0
  138. package/dist/components/model-select/model-select.styles.d.ts +1 -0
  139. package/dist/components/model-select/model-select.styles.js +189 -0
  140. package/dist/components/model-settings-panel/model-settings-panel.d.ts +69 -0
  141. package/dist/components/model-settings-panel/model-settings-panel.js +145 -0
  142. package/dist/components/model-settings-panel/model-settings-panel.styles.d.ts +1 -0
  143. package/dist/components/model-settings-panel/model-settings-panel.styles.js +82 -0
  144. package/dist/components/playback/playback.d.ts +13 -1
  145. package/dist/components/playback/playback.js +47 -14
  146. package/dist/components/responsive-panel/responsive-panel.d.ts +150 -0
  147. package/dist/components/responsive-panel/responsive-panel.js +365 -0
  148. package/dist/components/responsive-panel/responsive-panel.styles.d.ts +1 -0
  149. package/dist/components/responsive-panel/responsive-panel.styles.js +103 -0
  150. package/dist/components/result-card/result-card.d.ts +44 -0
  151. package/dist/components/result-card/result-card.js +83 -0
  152. package/dist/components/result-card/result-card.styles.d.ts +1 -0
  153. package/dist/components/result-card/result-card.styles.js +50 -0
  154. package/dist/components/result-card/result-field.d.ts +36 -0
  155. package/dist/components/result-card/result-field.js +87 -0
  156. package/dist/components/result-card/result-field.styles.d.ts +1 -0
  157. package/dist/components/result-card/result-field.styles.js +32 -0
  158. package/dist/components/select/select.d.ts +43 -2
  159. package/dist/components/select/select.js +150 -17
  160. package/dist/components/slider/slider.d.ts +89 -0
  161. package/dist/components/slider/slider.js +352 -0
  162. package/dist/components/slider/slider.styles.d.ts +1 -0
  163. package/dist/components/slider/slider.styles.js +87 -0
  164. package/dist/components/source-card/source-card.d.ts +92 -0
  165. package/dist/components/source-card/source-card.js +148 -0
  166. package/dist/components/source-card/source-card.styles.d.ts +1 -0
  167. package/dist/components/source-card/source-card.styles.js +69 -0
  168. package/dist/components/source-list/source-list.d.ts +63 -0
  169. package/dist/components/source-list/source-list.js +122 -0
  170. package/dist/components/source-list/source-list.styles.d.ts +1 -0
  171. package/dist/components/source-list/source-list.styles.js +59 -0
  172. package/dist/components/sparkline/sparkline.js +27 -13
  173. package/dist/components/split/split.d.ts +93 -1
  174. package/dist/components/split/split.js +284 -15
  175. package/dist/components/split/split.styles.js +30 -0
  176. package/dist/components/stat/stat.d.ts +6 -1
  177. package/dist/components/stat/stat.js +8 -2
  178. package/dist/components/stream-status/stream-status.d.ts +110 -0
  179. package/dist/components/stream-status/stream-status.js +210 -0
  180. package/dist/components/stream-status/stream-status.styles.d.ts +1 -0
  181. package/dist/components/stream-status/stream-status.styles.js +103 -0
  182. package/dist/components/streaming-text/streaming-text.d.ts +98 -0
  183. package/dist/components/streaming-text/streaming-text.js +209 -0
  184. package/dist/components/streaming-text/streaming-text.styles.d.ts +1 -0
  185. package/dist/components/streaming-text/streaming-text.styles.js +62 -0
  186. package/dist/components/switch/switch.d.ts +58 -0
  187. package/dist/components/switch/switch.js +179 -0
  188. package/dist/components/switch/switch.styles.d.ts +1 -0
  189. package/dist/components/switch/switch.styles.js +75 -0
  190. package/dist/components/table/table.d.ts +73 -4
  191. package/dist/components/table/table.js +169 -20
  192. package/dist/components/table/table.styles.js +6 -1
  193. package/dist/components/tabs/tabs.d.ts +51 -0
  194. package/dist/components/tabs/tabs.js +190 -0
  195. package/dist/components/tabs/tabs.styles.d.ts +1 -0
  196. package/dist/components/tabs/tabs.styles.js +63 -0
  197. package/dist/components/thinking-panel/thinking-panel.d.ts +121 -0
  198. package/dist/components/thinking-panel/thinking-panel.js +235 -0
  199. package/dist/components/thinking-panel/thinking-panel.styles.d.ts +1 -0
  200. package/dist/components/thinking-panel/thinking-panel.styles.js +117 -0
  201. package/dist/components/toast/toast-item.d.ts +1 -0
  202. package/dist/components/toast/toast-item.js +31 -6
  203. package/dist/components/tool-approval-dialog/tool-approval-dialog.d.ts +130 -0
  204. package/dist/components/tool-approval-dialog/tool-approval-dialog.js +403 -0
  205. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.d.ts +1 -0
  206. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js +160 -0
  207. package/dist/components/tool-call-chip/tool-call-chip.d.ts +89 -0
  208. package/dist/components/tool-call-chip/tool-call-chip.js +288 -0
  209. package/dist/components/tool-call-chip/tool-call-chip.styles.d.ts +1 -0
  210. package/dist/components/tool-call-chip/tool-call-chip.styles.js +203 -0
  211. package/dist/components/tool-param-form/tool-param-form.d.ts +145 -0
  212. package/dist/components/tool-param-form/tool-param-form.js +366 -0
  213. package/dist/components/tool-param-form/tool-param-form.styles.d.ts +1 -0
  214. package/dist/components/tool-param-form/tool-param-form.styles.js +75 -0
  215. package/dist/components/tool-result-dialog/tool-result-dialog.d.ts +102 -0
  216. package/dist/components/tool-result-dialog/tool-result-dialog.js +393 -0
  217. package/dist/components/tool-result-dialog/tool-result-dialog.styles.d.ts +1 -0
  218. package/dist/components/tool-result-dialog/tool-result-dialog.styles.js +176 -0
  219. package/dist/components/tool-result-view/registry.d.ts +81 -0
  220. package/dist/components/tool-result-view/registry.js +84 -0
  221. package/dist/components/tool-result-view/tool-result-view.d.ts +55 -0
  222. package/dist/components/tool-result-view/tool-result-view.js +138 -0
  223. package/dist/components/tool-result-view/tool-result-view.styles.d.ts +1 -0
  224. package/dist/components/tool-result-view/tool-result-view.styles.js +13 -0
  225. package/dist/components/tool-select-dialog/tool-select-dialog.d.ts +151 -0
  226. package/dist/components/tool-select-dialog/tool-select-dialog.js +439 -0
  227. package/dist/components/tool-select-dialog/tool-select-dialog.styles.d.ts +1 -0
  228. package/dist/components/tool-select-dialog/tool-select-dialog.styles.js +182 -0
  229. package/dist/components/tree/tree-node.d.ts +11 -2
  230. package/dist/components/tree/tree-node.js +16 -6
  231. package/dist/components/tree/tree.d.ts +8 -2
  232. package/dist/components/tree/tree.js +18 -11
  233. package/dist/components/typing-indicator/typing-indicator.d.ts +60 -0
  234. package/dist/components/typing-indicator/typing-indicator.js +96 -0
  235. package/dist/components/typing-indicator/typing-indicator.styles.d.ts +1 -0
  236. package/dist/components/typing-indicator/typing-indicator.styles.js +132 -0
  237. package/dist/components/virtual-list/virtual-list.d.ts +173 -0
  238. package/dist/components/virtual-list/virtual-list.js +461 -0
  239. package/dist/components/virtual-list/virtual-list.styles.d.ts +1 -0
  240. package/dist/components/virtual-list/virtual-list.styles.js +44 -0
  241. package/dist/components/word-cloud/word-cloud-layout.js +14 -1
  242. package/dist/components/word-cloud/word-cloud.d.ts +6 -0
  243. package/dist/components/word-cloud/word-cloud.js +25 -14
  244. package/dist/components/word-cloud/word-cloud.styles.js +3 -2
  245. package/dist/internal/announcer.d.ts +57 -0
  246. package/dist/internal/announcer.js +71 -0
  247. package/dist/internal/form-associated.d.ts +1 -0
  248. package/dist/internal/form-associated.js +55 -11
  249. package/dist/internal/group-by-recency.d.ts +50 -0
  250. package/dist/internal/group-by-recency.js +80 -0
  251. package/dist/internal/rtl.d.ts +23 -0
  252. package/dist/internal/rtl.js +28 -0
  253. package/dist/internal/scroll-lock.d.ts +10 -5
  254. package/dist/internal/scroll-lock.js +30 -14
  255. package/dist/internal/tokens.styles.js +6 -0
  256. package/dist/lyra.d.ts +130 -31
  257. package/dist/lyra.js +94 -26
  258. package/llms-full.txt +3836 -17
  259. package/llms.txt +16 -1
  260. package/package.json +23 -5
  261. package/dist/components/chart/bar-chart.stories.d.ts +0 -5
  262. package/dist/components/chart/bar-chart.stories.js +0 -20
  263. package/dist/components/chart/box-plot.stories.d.ts +0 -5
  264. package/dist/components/chart/box-plot.stories.js +0 -29
  265. package/dist/components/chart/bubble-chart.stories.d.ts +0 -5
  266. package/dist/components/chart/bubble-chart.stories.js +0 -26
  267. package/dist/components/chart/chart.stories.d.ts +0 -32
  268. package/dist/components/chart/chart.stories.js +0 -141
  269. package/dist/components/chart/doughnut-chart.stories.d.ts +0 -5
  270. package/dist/components/chart/doughnut-chart.stories.js +0 -26
  271. package/dist/components/chart/histogram.stories.d.ts +0 -5
  272. package/dist/components/chart/histogram.stories.js +0 -17
  273. package/dist/components/chart/line-chart.stories.d.ts +0 -22
  274. package/dist/components/chart/line-chart.stories.js +0 -99
  275. package/dist/components/chart/lite-chart.stories.d.ts +0 -14
  276. package/dist/components/chart/lite-chart.stories.js +0 -114
  277. package/dist/components/chart/pie-chart.stories.d.ts +0 -5
  278. package/dist/components/chart/pie-chart.stories.js +0 -26
  279. package/dist/components/chart/polar-area-chart.stories.d.ts +0 -5
  280. package/dist/components/chart/polar-area-chart.stories.js +0 -20
  281. package/dist/components/chart/radar-chart.stories.d.ts +0 -5
  282. package/dist/components/chart/radar-chart.stories.js +0 -20
  283. package/dist/components/chart/scatter-chart.stories.d.ts +0 -5
  284. package/dist/components/chart/scatter-chart.stories.js +0 -31
  285. package/dist/components/combobox/combobox.stories.d.ts +0 -24
  286. package/dist/components/combobox/combobox.stories.js +0 -102
  287. package/dist/components/date-picker/date-input.stories.d.ts +0 -10
  288. package/dist/components/date-picker/date-input.stories.js +0 -48
  289. package/dist/components/date-picker/date-picker.stories.d.ts +0 -10
  290. package/dist/components/date-picker/date-picker.stories.js +0 -25
  291. package/dist/components/empty/empty.stories.d.ts +0 -7
  292. package/dist/components/empty/empty.stories.js +0 -34
  293. package/dist/components/export-button/export-button.stories.d.ts +0 -7
  294. package/dist/components/export-button/export-button.stories.js +0 -37
  295. package/dist/components/file-input/file-input.stories.d.ts +0 -7
  296. package/dist/components/file-input/file-input.stories.js +0 -19
  297. package/dist/components/flag/flag.stories.d.ts +0 -6
  298. package/dist/components/flag/flag.stories.js +0 -31
  299. package/dist/components/gauge/gauge.stories.d.ts +0 -8
  300. package/dist/components/gauge/gauge.stories.js +0 -19
  301. package/dist/components/graph/graph.stories.d.ts +0 -8
  302. package/dist/components/graph/graph.stories.js +0 -68
  303. package/dist/components/heatmap/heatmap.stories.d.ts +0 -27
  304. package/dist/components/heatmap/heatmap.stories.js +0 -179
  305. package/dist/components/map/map.stories.d.ts +0 -15
  306. package/dist/components/map/map.stories.js +0 -135
  307. package/dist/components/playback/playback.stories.d.ts +0 -7
  308. package/dist/components/playback/playback.stories.js +0 -16
  309. package/dist/components/select/select.stories.d.ts +0 -21
  310. package/dist/components/select/select.stories.js +0 -91
  311. package/dist/components/skeleton/skeleton.stories.d.ts +0 -5
  312. package/dist/components/skeleton/skeleton.stories.js +0 -16
  313. package/dist/components/sparkline/sparkline.stories.d.ts +0 -11
  314. package/dist/components/sparkline/sparkline.stories.js +0 -39
  315. package/dist/components/split/split.stories.d.ts +0 -7
  316. package/dist/components/split/split.stories.js +0 -36
  317. package/dist/components/stat/stat.stories.d.ts +0 -9
  318. package/dist/components/stat/stat.stories.js +0 -81
  319. package/dist/components/table/table.stories.d.ts +0 -12
  320. package/dist/components/table/table.stories.js +0 -67
  321. package/dist/components/time-range/time-range.stories.d.ts +0 -8
  322. package/dist/components/time-range/time-range.stories.js +0 -26
  323. package/dist/components/toast/toast.stories.d.ts +0 -8
  324. package/dist/components/toast/toast.stories.js +0 -72
  325. package/dist/components/tree/tree.stories.d.ts +0 -9
  326. package/dist/components/tree/tree.stories.js +0 -52
  327. package/dist/components/widget/widget.stories.d.ts +0 -9
  328. package/dist/components/widget/widget.stories.js +0 -74
  329. package/dist/components/word-cloud/word-cloud.stories.d.ts +0 -10
  330. package/dist/components/word-cloud/word-cloud.stories.js +0 -55
@@ -0,0 +1,160 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ /* Backdrop scrim color -- component-specific so a host can retheme it
5
+ without a raw literal leaking into the public API (no shared
6
+ --wa-*-overlay token exists in the design system to resolve through,
7
+ same rationale as lyra-dialog's --lyra-dialog-overlay-color and
8
+ lyra-tool-select-dialog's --lyra-tool-select-dialog-overlay-color). */
9
+ --lyra-tool-approval-dialog-overlay-color: rgb(0 0 0 / 0.5);
10
+ /* Contained here (rather than a bare font-family literal on the
11
+ textarea) so a host page can retheme it -- same rationale as
12
+ lyra-json-viewer's --lyra-json-viewer-font; raw args are code, not
13
+ prose, so the editor gets the same monospace treatment as that
14
+ viewer's own tree rendering. */
15
+ --lyra-tool-approval-dialog-mono-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
16
+ display: none;
17
+ position: fixed;
18
+ inset: 0;
19
+ z-index: 1000;
20
+ align-items: center;
21
+ justify-content: center;
22
+ padding: var(--lyra-space-l);
23
+ }
24
+ :host([open]) {
25
+ display: flex;
26
+ }
27
+ [part='backdrop'] {
28
+ position: absolute;
29
+ inset: 0;
30
+ background: var(--lyra-tool-approval-dialog-overlay-color);
31
+ }
32
+ [part='panel'] {
33
+ position: relative;
34
+ display: flex;
35
+ flex-direction: column;
36
+ inline-size: min(32rem, 100%);
37
+ max-block-size: min(36rem, 100%);
38
+ background: var(--lyra-color-surface);
39
+ border: 1px solid var(--lyra-color-border);
40
+ border-radius: var(--lyra-radius);
41
+ box-shadow: var(--lyra-shadow);
42
+ overflow: hidden;
43
+ }
44
+ [part='header'] {
45
+ padding: var(--lyra-space-l) var(--lyra-space-l) 0;
46
+ }
47
+ [part='header'] h2 {
48
+ margin: 0;
49
+ font-size: 1.0625rem;
50
+ font-weight: 600;
51
+ }
52
+ [part='tool-name'] {
53
+ font-family: var(--lyra-tool-approval-dialog-mono-font);
54
+ font-weight: 700;
55
+ color: var(--lyra-color-brand);
56
+ word-break: break-word;
57
+ }
58
+
59
+ [part='body'] {
60
+ flex: 1 1 auto;
61
+ min-block-size: 0;
62
+ display: flex;
63
+ flex-direction: column;
64
+ gap: var(--lyra-space-xs);
65
+ padding: var(--lyra-space-m) var(--lyra-space-l) var(--lyra-space-l);
66
+ overflow: auto;
67
+ }
68
+ [part='args-view'] {
69
+ /* lyra-json-viewer grows with its content by default (its own
70
+ max-height is 'none'); this component's [part='body'] is what caps
71
+ and scrolls it instead, so it stays consistent with the plain
72
+ [part='args-editor'] textarea below, which has no scroll cap of its
73
+ own either. */
74
+ flex: 1 1 auto;
75
+ min-block-size: 0;
76
+ }
77
+ [part='args-editor'] {
78
+ flex: 1 1 auto;
79
+ min-block-size: 10rem;
80
+ box-sizing: border-box;
81
+ resize: vertical;
82
+ padding: var(--lyra-space-s) var(--lyra-space-m);
83
+ border: 1px solid var(--lyra-color-border);
84
+ border-radius: var(--lyra-radius);
85
+ background: var(--lyra-color-surface);
86
+ color: inherit;
87
+ font-family: var(--lyra-tool-approval-dialog-mono-font);
88
+ font-size: 0.8125rem;
89
+ line-height: 1.5;
90
+ }
91
+ [part='args-editor']:focus-visible {
92
+ outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
93
+ outline-offset: var(--lyra-focus-ring-offset);
94
+ }
95
+ [part='args-editor'][aria-invalid='true'] {
96
+ border-color: var(--lyra-color-danger);
97
+ }
98
+ [part='error'] {
99
+ margin: 0;
100
+ font-size: 0.8125rem;
101
+ color: var(--lyra-color-danger);
102
+ }
103
+ [part='error'][hidden] {
104
+ display: none;
105
+ }
106
+
107
+ [part='footer'] {
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: flex-end;
111
+ gap: var(--lyra-space-s);
112
+ padding: var(--lyra-space-m) var(--lyra-space-l);
113
+ border-block-start: 1px solid var(--lyra-color-border);
114
+ }
115
+ [part='footer'] ::slotted(*) {
116
+ /* Any consumer-supplied footer content sits ahead of the built-in
117
+ buttons and soaks up the row's remaining space, so it reads as
118
+ start-aligned while Deny/Edit/Approve stay pinned to the end (the
119
+ row itself is justify-content: flex-end for the empty-slot case). */
120
+ margin-inline-end: auto;
121
+ }
122
+
123
+ [part='deny-button'],
124
+ [part='edit-button'],
125
+ [part='approve-button'] {
126
+ font: inherit;
127
+ font-size: 0.875rem;
128
+ padding: var(--lyra-space-xs) var(--lyra-space-m);
129
+ border-radius: var(--lyra-radius);
130
+ cursor: pointer;
131
+ border: 1px solid var(--lyra-color-border);
132
+ }
133
+ [part='deny-button'],
134
+ [part='edit-button'] {
135
+ background: var(--lyra-color-surface);
136
+ color: var(--lyra-color-text);
137
+ }
138
+ [part='deny-button']:hover,
139
+ [part='edit-button']:hover {
140
+ background: var(--lyra-color-brand-quiet);
141
+ }
142
+ [part='approve-button'] {
143
+ background: var(--lyra-color-brand);
144
+ color: var(--lyra-color-on-brand);
145
+ border-color: var(--lyra-color-brand);
146
+ }
147
+ [part='approve-button']:hover:not(:disabled) {
148
+ filter: brightness(1.1);
149
+ }
150
+ [part='approve-button']:disabled {
151
+ cursor: not-allowed;
152
+ opacity: var(--lyra-opacity-disabled);
153
+ }
154
+ [part='deny-button']:focus-visible,
155
+ [part='edit-button']:focus-visible,
156
+ [part='approve-button']:focus-visible {
157
+ outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
158
+ outline-offset: var(--lyra-focus-ring-offset);
159
+ }
160
+ `;
@@ -0,0 +1,89 @@
1
+ import { type TemplateResult, type PropertyValues } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ /** Same status vocabulary as `<lyra-tool-result-dialog>`, so a call's chip
4
+ * and its detail dialog always agree on icon/label/tone. */
5
+ export type ToolCallStatus = 'pending' | 'running' | 'success' | 'error' | 'denied';
6
+ export interface ToolChipSelectDetail {
7
+ name: string;
8
+ callId: string;
9
+ }
10
+ /**
11
+ * `<lyra-tool-call-chip>` — a compact inline pill representing one tool/
12
+ * function call an agent made mid-conversation, e.g.
13
+ * `web_search: Searching web…` with a `running` spinner. It owns no detail
14
+ * surface of its own: clicking (or Enter/Space-activating) it only fires
15
+ * `lyra-tool-chip-select` — a consumer wires that to opening a
16
+ * `<lyra-tool-result-dialog>` (or anything else) at the call site. Keeping
17
+ * the two decoupled means a chip can be reused wherever a compact call
18
+ * summary is useful, with or without a detail surface behind it.
19
+ *
20
+ * The default slot is *not* the chip's visible content — the chip's own
21
+ * label is always built from `name`/`summary`/`status`/`duration-ms`. It's
22
+ * reserved for optional rich detail content (e.g. the tool's raw arguments,
23
+ * a short preview) shown in a floating tooltip on hover/focus, positioned
24
+ * with `internal/positioner.js`'s `place()` the same way `<lyra-combobox>`
25
+ * positions its listbox. No tooltip is shown at all when the slot carries no
26
+ * content — hovering an empty chip does nothing.
27
+ *
28
+ * The `icon` slot overrides the built-in per-status glyph entirely via the
29
+ * platform's own slot-fallback-content mechanism (`<slot
30
+ * name="icon">${fallback}</slot>` — the same pattern `<lyra-stat>`'s
31
+ * `caption` slot and `<lyra-file-input>`'s default slot already use):
32
+ * whatever is assigned to `slot="icon"` wins; otherwise the `icon` prop is
33
+ * rendered as a literal hint (e.g. an emoji); otherwise the built-in glyph
34
+ * for the current `status` is used.
35
+ *
36
+ * @customElement lyra-tool-call-chip
37
+ * @slot - Rich tooltip/detail content, shown on hover/focus. Nothing renders
38
+ * (no hover affordance at all) when this slot is empty.
39
+ * @slot icon - Overrides the built-in status glyph entirely.
40
+ * @event lyra-tool-chip-select - The chip was activated (click or Enter/Space
41
+ * while focused). `detail: { name, callId }`.
42
+ * @csspart base - The clickable pill (`<button>`).
43
+ * @csspart icon - Wrapper around the status glyph / `icon` slot.
44
+ * @csspart label - Wrapper around `category`, `name` and `summary`.
45
+ * @csspart category - The optional grouping label.
46
+ * @csspart name - The tool/function name.
47
+ * @csspart summary - The short status text.
48
+ * @csspart meta - Wrapper around `status-text` and `duration`.
49
+ * @csspart status-text - The visible text twin of the status glyph/color — carries the state in text, not just color.
50
+ * @csspart duration - The formatted `duration-ms`, when set.
51
+ * @csspart tooltip - The floating detail popup (only meaningful while open).
52
+ */
53
+ export declare class LyraToolCallChip extends LyraElement {
54
+ static styles: import("lit").CSSResultGroup[];
55
+ /** The tool/function name, e.g. `web_search`. */
56
+ name: string;
57
+ /** Optional grouping label, e.g. `research`. */
58
+ category: string;
59
+ /** The call's current lifecycle state — drives the glyph, color, and `status-text`. */
60
+ status: ToolCallStatus;
61
+ /** Short human-readable status text, e.g. `Searching web…`. */
62
+ summary: string;
63
+ /** How long the call took, in milliseconds. Omitted from the chip entirely when unset. */
64
+ durationMs?: number;
65
+ /** Literal icon hint (e.g. an emoji) used when the `icon` slot is empty — see the class doc's
66
+ * icon-precedence note. Ignored once anything is assigned to `slot="icon"`. */
67
+ icon: string;
68
+ /** Unique identifier for this specific invocation — echoed back in `lyra-tool-chip-select`'s
69
+ * detail so a listener can correlate the click with the call it fired for. */
70
+ callId: string;
71
+ private hasDetailSlot;
72
+ private tooltipOpen;
73
+ private cleanupPositioner?;
74
+ protected willUpdate(): void;
75
+ protected updated(changed: PropertyValues): void;
76
+ disconnectedCallback(): void;
77
+ private onDetailSlotChange;
78
+ private showTooltip;
79
+ private hideTooltip;
80
+ private onKeyDown;
81
+ private onClick;
82
+ private get accessibleLabel();
83
+ render(): TemplateResult;
84
+ }
85
+ declare global {
86
+ interface HTMLElementTagNameMap {
87
+ 'lyra-tool-call-chip': LyraToolCallChip;
88
+ }
89
+ }
@@ -0,0 +1,288 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, svg, nothing } from 'lit';
8
+ import { property, state } from 'lit/decorators.js';
9
+ import { LyraElement } from '../../internal/lyra-element.js';
10
+ import { defineElement } from '../../internal/prefix.js';
11
+ import { place } from '../../internal/positioner.js';
12
+ import { styles } from './tool-call-chip.styles.js';
13
+ // Mirrors the shared icon set's viewBox/stroke conventions
14
+ // (internal/icons.ts's chevronIcon()/closeIcon()/etc.) without adding
15
+ // tool-call-specific glyphs to that module -- it's off limits here -- so
16
+ // these still read as part of the same visual language as the rest of the
17
+ // library's inline icons. Same approach lyra-checkbox's/lyra-chat-message's
18
+ // own local glyphs take for the identical reason, and deliberately the same
19
+ // shapes lyra-tool-result-dialog's own local glyphs use, so a call reads
20
+ // identically whether it's shown as this inline chip or in that dialog.
21
+ const ICON_VIEW_BOX = '0 0 24 24';
22
+ const ICON_STROKE_WIDTH = '1.75';
23
+ function icon(paths) {
24
+ return svg `
25
+ <svg
26
+ width="1em"
27
+ height="1em"
28
+ viewBox=${ICON_VIEW_BOX}
29
+ fill="none"
30
+ stroke="currentColor"
31
+ stroke-width=${ICON_STROKE_WIDTH}
32
+ stroke-linecap="round"
33
+ stroke-linejoin="round"
34
+ aria-hidden="true"
35
+ focusable="false"
36
+ >${paths}</svg>
37
+ `;
38
+ }
39
+ function pendingIcon() {
40
+ return icon(svg `<circle cx="12" cy="12" r="9"></circle><polyline points="12 7 12 12 15 14"></polyline>`);
41
+ }
42
+ /** A three-quarter arc, spun by the `:host([status="running"]) [part="icon"] svg`
43
+ * CSS animation -- a full circle wouldn't visibly convey rotation. */
44
+ function runningIcon() {
45
+ return icon(svg `<path d="M21 12a9 9 0 1 1-9-9"></path>`);
46
+ }
47
+ function successIcon() {
48
+ return icon(svg `<circle cx="12" cy="12" r="9"></circle><polyline points="8 12.5 11 15.5 16 9.5"></polyline>`);
49
+ }
50
+ function errorIcon() {
51
+ return icon(svg `
52
+ <circle cx="12" cy="12" r="9"></circle>
53
+ <line x1="9" y1="9" x2="15" y2="15"></line>
54
+ <line x1="15" y1="9" x2="9" y2="15"></line>
55
+ `);
56
+ }
57
+ /** A "blocked" glyph (circle + diagonal slash) -- distinct from `errorIcon()`
58
+ * since a denial is a policy rejection, not a runtime failure. */
59
+ function deniedIcon() {
60
+ return icon(svg `<circle cx="12" cy="12" r="9"></circle><line x1="6" y1="18" x2="18" y2="6"></line>`);
61
+ }
62
+ const STATUS_ICON = {
63
+ pending: pendingIcon,
64
+ running: runningIcon,
65
+ success: successIcon,
66
+ error: errorIcon,
67
+ denied: deniedIcon,
68
+ };
69
+ /** Visible (not just color-coded) text for every status. */
70
+ const STATUS_LABEL = {
71
+ pending: 'Pending',
72
+ running: 'Running',
73
+ success: 'Success',
74
+ error: 'Error',
75
+ denied: 'Denied',
76
+ };
77
+ /** `820` -> `"820ms"`; `1500` -> `"1.5s"`; `2000` -> `"2s"`. Sub-second
78
+ * durations are the common case for a single tool call, so they get the
79
+ * more precise unit; once a call runs a full second or longer, trimming to
80
+ * (at most) one decimal place of seconds reads better than a 4-5 digit
81
+ * millisecond count. Identical algorithm to lyra-tool-result-dialog's own
82
+ * `formatDuration` -- duplicated rather than imported (these are two
83
+ * independent, separately-consumable components; see this file's header
84
+ * comment on the icon glyphs for the same rationale) but kept in lockstep
85
+ * so the same call reports the same duration text in both places. */
86
+ function formatDuration(ms) {
87
+ if (!Number.isFinite(ms) || ms < 1000) {
88
+ return `${Math.round(Math.max(0, ms))}ms`;
89
+ }
90
+ const seconds = ms / 1000;
91
+ const rounded = Math.round(seconds * 10) / 10;
92
+ return `${Number.isInteger(rounded) ? rounded.toFixed(0) : rounded.toFixed(1)}s`;
93
+ }
94
+ /**
95
+ * `<lyra-tool-call-chip>` — a compact inline pill representing one tool/
96
+ * function call an agent made mid-conversation, e.g.
97
+ * `web_search: Searching web…` with a `running` spinner. It owns no detail
98
+ * surface of its own: clicking (or Enter/Space-activating) it only fires
99
+ * `lyra-tool-chip-select` — a consumer wires that to opening a
100
+ * `<lyra-tool-result-dialog>` (or anything else) at the call site. Keeping
101
+ * the two decoupled means a chip can be reused wherever a compact call
102
+ * summary is useful, with or without a detail surface behind it.
103
+ *
104
+ * The default slot is *not* the chip's visible content — the chip's own
105
+ * label is always built from `name`/`summary`/`status`/`duration-ms`. It's
106
+ * reserved for optional rich detail content (e.g. the tool's raw arguments,
107
+ * a short preview) shown in a floating tooltip on hover/focus, positioned
108
+ * with `internal/positioner.js`'s `place()` the same way `<lyra-combobox>`
109
+ * positions its listbox. No tooltip is shown at all when the slot carries no
110
+ * content — hovering an empty chip does nothing.
111
+ *
112
+ * The `icon` slot overrides the built-in per-status glyph entirely via the
113
+ * platform's own slot-fallback-content mechanism (`<slot
114
+ * name="icon">${fallback}</slot>` — the same pattern `<lyra-stat>`'s
115
+ * `caption` slot and `<lyra-file-input>`'s default slot already use):
116
+ * whatever is assigned to `slot="icon"` wins; otherwise the `icon` prop is
117
+ * rendered as a literal hint (e.g. an emoji); otherwise the built-in glyph
118
+ * for the current `status` is used.
119
+ *
120
+ * @customElement lyra-tool-call-chip
121
+ * @slot - Rich tooltip/detail content, shown on hover/focus. Nothing renders
122
+ * (no hover affordance at all) when this slot is empty.
123
+ * @slot icon - Overrides the built-in status glyph entirely.
124
+ * @event lyra-tool-chip-select - The chip was activated (click or Enter/Space
125
+ * while focused). `detail: { name, callId }`.
126
+ * @csspart base - The clickable pill (`<button>`).
127
+ * @csspart icon - Wrapper around the status glyph / `icon` slot.
128
+ * @csspart label - Wrapper around `category`, `name` and `summary`.
129
+ * @csspart category - The optional grouping label.
130
+ * @csspart name - The tool/function name.
131
+ * @csspart summary - The short status text.
132
+ * @csspart meta - Wrapper around `status-text` and `duration`.
133
+ * @csspart status-text - The visible text twin of the status glyph/color — carries the state in text, not just color.
134
+ * @csspart duration - The formatted `duration-ms`, when set.
135
+ * @csspart tooltip - The floating detail popup (only meaningful while open).
136
+ */
137
+ export class LyraToolCallChip extends LyraElement {
138
+ constructor() {
139
+ super(...arguments);
140
+ /** The tool/function name, e.g. `web_search`. */
141
+ this.name = '';
142
+ /** Optional grouping label, e.g. `research`. */
143
+ this.category = '';
144
+ /** The call's current lifecycle state — drives the glyph, color, and `status-text`. */
145
+ this.status = 'pending';
146
+ /** Short human-readable status text, e.g. `Searching web…`. */
147
+ this.summary = '';
148
+ /** Literal icon hint (e.g. an emoji) used when the `icon` slot is empty — see the class doc's
149
+ * icon-precedence note. Ignored once anything is assigned to `slot="icon"`. */
150
+ this.icon = '';
151
+ /** Unique identifier for this specific invocation — echoed back in `lyra-tool-chip-select`'s
152
+ * detail so a listener can correlate the click with the call it fired for. */
153
+ this.callId = '';
154
+ // Same fix lyra-stat's hasIcon/lyra-combobox's hasHintSlot etc. already
155
+ // establish: a `[part]` always contains a literal `<slot>` child regardless
156
+ // of assigned content, so `:empty` never matches -- real emptiness is
157
+ // tracked in JS instead. Only element children count (mirrors lyra-stat's
158
+ // identical default-slot check) since the tooltip's rich content is
159
+ // expected to be markup, not a bare text node.
160
+ this.hasDetailSlot = false;
161
+ this.tooltipOpen = false;
162
+ this.onDetailSlotChange = (e) => {
163
+ this.hasDetailSlot = e.target.assignedElements({ flatten: true }).length > 0;
164
+ };
165
+ this.showTooltip = () => {
166
+ if (!this.hasDetailSlot || this.tooltipOpen)
167
+ return;
168
+ this.tooltipOpen = true;
169
+ };
170
+ // Unconditional on blur/mouseleave, with no "did the pointer move into the
171
+ // tooltip itself" check -- the default slot is documented as read-only
172
+ // preview content (raw args, a short snippet), not an interactive surface
173
+ // meant to retain focus/hover of its own, so this stays as simple as a
174
+ // native `title` attribute's show/hide instead of adding a second
175
+ // pointer-tracking region.
176
+ this.hideTooltip = () => {
177
+ if (!this.tooltipOpen)
178
+ return;
179
+ this.tooltipOpen = false;
180
+ };
181
+ this.onKeyDown = (e) => {
182
+ // The native <button> already handles Enter/Space activation on its
183
+ // own -- this only needs to cover dismissing the (non-native) tooltip,
184
+ // the same Escape-to-close convention every other popup in this library
185
+ // follows (see lyra-combobox's onKeyDown).
186
+ if (e.key === 'Escape' && this.tooltipOpen) {
187
+ e.stopPropagation();
188
+ this.hideTooltip();
189
+ }
190
+ };
191
+ this.onClick = () => {
192
+ this.emit('lyra-tool-chip-select', { name: this.name, callId: this.callId });
193
+ };
194
+ }
195
+ static { this.styles = [LyraElement.styles, styles]; }
196
+ willUpdate() {
197
+ if (!this.hasUpdated) {
198
+ this.hasDetailSlot = Array.from(this.children).some((el) => !el.hasAttribute('slot'));
199
+ }
200
+ }
201
+ updated(changed) {
202
+ if (changed.has('tooltipOpen')) {
203
+ this.cleanupPositioner?.();
204
+ this.cleanupPositioner = undefined;
205
+ if (this.tooltipOpen) {
206
+ const anchor = this.renderRoot.querySelector('[part="base"]');
207
+ const tooltip = this.renderRoot.querySelector('[part="tooltip"]');
208
+ if (anchor && tooltip)
209
+ this.cleanupPositioner = place(anchor, tooltip, { placement: 'top-start' });
210
+ }
211
+ }
212
+ }
213
+ disconnectedCallback() {
214
+ super.disconnectedCallback();
215
+ this.cleanupPositioner?.();
216
+ }
217
+ get accessibleLabel() {
218
+ const parts = [this.name || 'Tool call'];
219
+ if (this.summary)
220
+ parts.push(this.summary);
221
+ parts.push(STATUS_LABEL[this.status]);
222
+ if (this.durationMs != null && Number.isFinite(this.durationMs))
223
+ parts.push(formatDuration(this.durationMs));
224
+ return parts.join(' — ');
225
+ }
226
+ render() {
227
+ const hasCategory = this.category.length > 0;
228
+ const hasSummary = this.summary.length > 0;
229
+ const hasDuration = this.durationMs != null && Number.isFinite(this.durationMs);
230
+ return html `
231
+ <button
232
+ part="base"
233
+ type="button"
234
+ aria-label=${this.getAttribute('aria-label') || this.accessibleLabel}
235
+ @click=${this.onClick}
236
+ @mouseenter=${this.showTooltip}
237
+ @mouseleave=${this.hideTooltip}
238
+ @focus=${this.showTooltip}
239
+ @blur=${this.hideTooltip}
240
+ @keydown=${this.onKeyDown}
241
+ >
242
+ <span part="icon" aria-hidden="true">
243
+ <slot name="icon">${this.icon ? this.icon : STATUS_ICON[this.status]()}</slot>
244
+ </span>
245
+ <span part="label">
246
+ <span part="category" ?hidden=${!hasCategory}>${this.category}</span>
247
+ <span part="name">${this.name || 'Tool call'}</span>
248
+ <span part="summary" ?hidden=${!hasSummary}>${this.summary}</span>
249
+ </span>
250
+ <span part="meta">
251
+ <span part="status-text">${STATUS_LABEL[this.status]}</span>
252
+ <span part="duration" ?hidden=${!hasDuration}>${hasDuration ? formatDuration(this.durationMs) : nothing}</span>
253
+ </span>
254
+ </button>
255
+ <div part="tooltip" role="tooltip" ?hidden=${!this.tooltipOpen}>
256
+ <slot @slotchange=${this.onDetailSlotChange}></slot>
257
+ </div>
258
+ `;
259
+ }
260
+ }
261
+ __decorate([
262
+ property()
263
+ ], LyraToolCallChip.prototype, "name", void 0);
264
+ __decorate([
265
+ property()
266
+ ], LyraToolCallChip.prototype, "category", void 0);
267
+ __decorate([
268
+ property({ reflect: true })
269
+ ], LyraToolCallChip.prototype, "status", void 0);
270
+ __decorate([
271
+ property()
272
+ ], LyraToolCallChip.prototype, "summary", void 0);
273
+ __decorate([
274
+ property({ type: Number, attribute: 'duration-ms' })
275
+ ], LyraToolCallChip.prototype, "durationMs", void 0);
276
+ __decorate([
277
+ property()
278
+ ], LyraToolCallChip.prototype, "icon", void 0);
279
+ __decorate([
280
+ property({ attribute: 'call-id' })
281
+ ], LyraToolCallChip.prototype, "callId", void 0);
282
+ __decorate([
283
+ state()
284
+ ], LyraToolCallChip.prototype, "hasDetailSlot", void 0);
285
+ __decorate([
286
+ state()
287
+ ], LyraToolCallChip.prototype, "tooltipOpen", void 0);
288
+ defineElement('tool-call-chip', LyraToolCallChip);
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;