@aceshooting/lyra-ui 26.0.0 → 28.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 (1677) hide show
  1. package/CHANGELOG.md +55 -675
  2. package/README.md +285 -1130
  3. package/design-tokens.json +1 -1
  4. package/dist/ai/types.d.ts +5 -5
  5. package/dist/autoloader.js +1 -1
  6. package/dist/cli/agent-registry.mjs +1 -0
  7. package/dist/cli/component-inventory.mjs +1 -1
  8. package/dist/cli/css-declarations.mjs +1 -0
  9. package/dist/cli/init-agents.mjs +40 -0
  10. package/dist/cli/is-main-module.mjs +1 -0
  11. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  12. package/dist/cli/lyra-ui.mjs +11 -0
  13. package/dist/cli/migrate-wa.mjs +12 -5
  14. package/dist/cli/migration-contract.json +1 -1
  15. package/dist/cli/migration-renames.mjs +2 -2
  16. package/dist/cli/migration-theme-scopes.mjs +3 -0
  17. package/dist/cli/theme-scope-vocabulary.generated.mjs +1 -0
  18. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  19. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  20. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  21. package/dist/components/agent-tools/agent-question/agent-question.class.js +1 -1
  22. package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -1
  23. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
  24. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  25. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +1 -1
  26. package/dist/components/agent-tools/background-runs/background-runs.class.js +1 -1
  27. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +1 -1
  28. package/dist/components/agent-tools/budget-meter/budget-meter.class.js +1 -1
  29. package/dist/components/agent-tools/change-review/change-review.class.js +1 -1
  30. package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
  31. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
  32. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  33. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  34. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  35. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  36. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  37. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  38. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  39. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  40. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  41. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  42. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  43. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  44. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  45. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  46. package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
  47. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  48. package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
  49. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  50. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  51. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  52. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  53. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  54. package/dist/components/agent-tools/permission-rules/permission-rules.class.js +1 -1
  55. package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
  56. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  57. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  58. package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
  59. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  60. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  61. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
  62. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  63. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  64. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  65. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  66. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  67. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  68. package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
  69. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -1
  70. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  71. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  72. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  73. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  74. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  75. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  76. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
  77. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  78. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  79. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  80. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  81. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  82. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
  83. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  84. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  85. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  86. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  87. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -1
  88. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  89. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  90. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  91. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  92. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  93. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  94. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  95. package/dist/components/charts/chart/box-plot.class.js +1 -1
  96. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  97. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  98. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  99. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  100. package/dist/components/charts/chart/chart-token-cache.js +2 -2
  101. package/dist/components/charts/chart/chart.class.d.ts +3 -3
  102. package/dist/components/charts/chart/chart.class.js +3 -3
  103. package/dist/components/charts/chart/chart.styles.js +1 -1
  104. package/dist/components/charts/chart/histogram.class.js +1 -1
  105. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  106. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  107. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +1 -1
  108. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
  109. package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
  110. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  111. package/dist/components/conversation/catalog-picker-element.js +1 -1
  112. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  113. package/dist/components/conversation/chat-composer/chat-composer.class.js +1 -1
  114. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  115. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  116. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  117. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  118. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  119. package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
  120. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  121. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  122. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  123. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  124. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  125. package/dist/components/conversation/handoff-divider/handoff-divider.class.js +1 -1
  126. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  127. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  128. package/dist/components/conversation/markdown/markdown-core.class.js +1 -1
  129. package/dist/components/conversation/markdown/markdown.class.js +1 -1
  130. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  131. package/dist/components/conversation/message-feedback/message-feedback.class.js +1 -1
  132. package/dist/components/conversation/message-parts/message-parts.class.js +1 -1
  133. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  134. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  135. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  136. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +1 -1
  137. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  138. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  139. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  140. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
  141. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  142. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  143. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  144. package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +1 -1
  145. package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
  146. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  147. package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
  148. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  149. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  150. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  151. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  152. package/dist/components/data/calendar/calendar.class.js +1 -1
  153. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  154. package/dist/components/data/context-meter/context-meter.class.js +1 -1
  155. package/dist/components/data/data-grid/data-grid.class.d.ts +2 -2
  156. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  157. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  158. package/dist/components/data/document-library/document-library.class.js +2 -2
  159. package/dist/components/data/env-list/env-list.class.js +1 -1
  160. package/dist/components/data/file-tree/file-tree.class.d.ts +2 -2
  161. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  162. package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
  163. package/dist/components/data/flow-controls/flow-controls.class.js +1 -1
  164. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  165. package/dist/components/data/flow-node/flow-node.class.js +1 -1
  166. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  167. package/dist/components/data/funnel/funnel.class.js +1 -1
  168. package/dist/components/data/gauge/gauge.class.js +1 -1
  169. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  170. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  171. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  172. package/dist/components/data/pagination/pagination.class.d.ts +2 -0
  173. package/dist/components/data/pagination/pagination.class.js +1 -1
  174. package/dist/components/data/pagination/pagination.styles.js +1 -1
  175. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  176. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  177. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  178. package/dist/components/data/stat/stat.class.js +1 -1
  179. package/dist/components/data/table/table.class.d.ts +33 -197
  180. package/dist/components/data/table/table.class.js +6 -4
  181. package/dist/components/data/table/table.styles.js +1 -1
  182. package/dist/components/data/timeline/timeline.class.js +1 -1
  183. package/dist/components/data/tree/tree.class.js +1 -1
  184. package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
  185. package/dist/components/forms/button/button.class.d.ts +3 -3
  186. package/dist/components/forms/button/button.class.js +1 -1
  187. package/dist/components/forms/catalog-picker-base.js +1 -1
  188. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  189. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  190. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  191. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  192. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  193. package/dist/components/forms/color-picker/color-picker.class.d.ts +8 -4
  194. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  195. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  196. package/dist/components/forms/combobox/combobox.class.js +3 -2
  197. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  198. package/dist/components/forms/combobox/option.class.js +2 -2
  199. package/dist/components/forms/country-picker/country-picker.class.js +1 -1
  200. package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
  201. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  202. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  203. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  204. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  205. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  206. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  207. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  208. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -4
  209. package/dist/components/forms/emoji-picker/emoji-picker.class.js +5 -5
  210. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
  211. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  212. package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
  213. package/dist/components/forms/input/input-shared.js +1 -1
  214. package/dist/components/forms/input/input.class.js +1 -1
  215. package/dist/components/forms/input/input.styles.js +1 -1
  216. package/dist/components/forms/input/native-time-input.class.js +1 -1
  217. package/dist/components/forms/input/number-input.class.js +1 -1
  218. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  219. package/dist/components/forms/input/time-input.class.js +1 -1
  220. package/dist/components/forms/input/time-input.styles.js +1 -1
  221. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  222. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  223. package/dist/components/forms/otp-input/otp-input.class.js +2 -1
  224. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  225. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  226. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  227. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  228. package/dist/components/forms/radio/radio-group.class.js +1 -1
  229. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  230. package/dist/components/forms/radio/radio.class.js +2 -2
  231. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  232. package/dist/components/forms/rubric-form/rubric-form.class.js +4 -4
  233. package/dist/components/forms/select/select.class.d.ts +5 -7
  234. package/dist/components/forms/select/select.class.js +3 -2
  235. package/dist/components/forms/signature-pad/signature-pad.class.js +1 -1
  236. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  237. package/dist/components/forms/slider/slider.class.js +1 -1
  238. package/dist/components/forms/slider/slider.styles.js +1 -1
  239. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  240. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  241. package/dist/components/forms/switch/switch.class.js +2 -2
  242. package/dist/components/forms/textarea/textarea.class.js +2 -1
  243. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  244. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  245. package/dist/components/forms/time-range/time-range.class.js +1 -1
  246. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  247. package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
  248. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  249. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  250. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  251. package/dist/components/forms/token-input/token-input.class.js +1 -1
  252. package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
  253. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  254. package/dist/components/layout/app-rail/app-rail.class.d.ts +71 -8
  255. package/dist/components/layout/app-rail/app-rail.class.js +16 -4
  256. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  257. package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
  258. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  259. package/dist/components/layout/breadcrumb/breadcrumb.class.js +1 -1
  260. package/dist/components/layout/card/card.class.js +1 -1
  261. package/dist/components/layout/carousel/carousel.class.js +1 -1
  262. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  263. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  264. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  265. package/dist/components/layout/details/accordion-item.class.js +1 -1
  266. package/dist/components/layout/details/accordion.class.js +1 -1
  267. package/dist/components/layout/details/details.class.js +1 -1
  268. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  269. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  270. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  271. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  272. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  273. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  274. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  275. package/dist/components/layout/menu/menu.class.js +1 -1
  276. package/dist/components/layout/menubar/menubar.class.js +1 -1
  277. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  278. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  279. package/dist/components/layout/navigation-menu/navigation-menu.class.js +1 -1
  280. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  281. package/dist/components/layout/page/page.class.d.ts +1 -1
  282. package/dist/components/layout/page/page.class.js +1 -1
  283. package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
  284. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  285. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  286. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  287. package/dist/components/layout/scroller/scroller.class.js +1 -1
  288. package/dist/components/layout/segmented/segmented.class.d.ts +7 -4
  289. package/dist/components/layout/segmented/segmented.class.js +1 -1
  290. package/dist/components/layout/segmented/segmented.styles.js +1 -1
  291. package/dist/components/layout/split-panel/split-panel.class.js +1 -1
  292. package/dist/components/layout/stepper/stepper.class.js +2 -2
  293. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  294. package/dist/components/layout/tab-group/tab.class.js +1 -1
  295. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  296. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  297. package/dist/components/layout/virtual-list/virtual-list.styles.js +1 -1
  298. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  299. package/dist/components/layout/widget/widget.class.js +3 -3
  300. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  301. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  302. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +2 -2
  303. package/dist/components/media/av-player/av-player.class.js +1 -1
  304. package/dist/components/media/avatar-group/avatar-group.class.js +1 -1
  305. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  306. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  307. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  308. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  309. package/dist/components/media/file-input/file-input.class.js +2 -2
  310. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  311. package/dist/components/media/file-input/file-intake.js +1 -1
  312. package/dist/components/media/flag/flag.class.js +1 -1
  313. package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
  314. package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
  315. package/dist/components/media/image-viewer/image-viewer.class.js +4 -2
  316. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  317. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  318. package/dist/components/media/map/map.class.js +2 -2
  319. package/dist/components/media/media-card/media-card.class.js +1 -1
  320. package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
  321. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  322. package/dist/components/media/qr-code/qr-code.class.d.ts +2 -2
  323. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  324. package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
  325. package/dist/components/media/video/video.class.js +3 -3
  326. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  327. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  328. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  329. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  330. package/dist/components/overlays/alert/alert.class.js +1 -1
  331. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  332. package/dist/components/overlays/badge/badge.class.js +1 -1
  333. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  334. package/dist/components/overlays/badge/tag.class.js +3 -2
  335. package/dist/components/overlays/badge/tag.styles.js +1 -1
  336. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  337. package/dist/components/overlays/callout/callout.class.js +1 -1
  338. package/dist/components/overlays/chip/chip-group.class.js +1 -1
  339. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  340. package/dist/components/overlays/chip/chip.class.js +2 -2
  341. package/dist/components/overlays/context-menu/context-menu.class.js +1 -1
  342. package/dist/components/overlays/dialog/confirm.js +1 -1
  343. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  344. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  345. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  346. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  347. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  348. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  349. package/dist/components/overlays/overlay/popover.class.js +1 -1
  350. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  351. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  352. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  353. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  354. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  355. package/dist/components/overlays/progress/progress-base.js +1 -0
  356. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  357. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  358. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  359. package/dist/components/overlays/rating/rating.class.js +1 -1
  360. package/dist/components/overlays/skeleton/skeleton.class.js +1 -1
  361. package/dist/components/overlays/spinner/spinner.class.js +1 -1
  362. package/dist/components/overlays/toast/toast-item.class.js +1 -1
  363. package/dist/components/overlays/toast/toast.class.js +1 -1
  364. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  365. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  366. package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
  367. package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +1 -1
  368. package/dist/components/retrieval/community-card/community-card.class.js +1 -1
  369. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  370. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  371. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  372. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  373. package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -1
  374. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  375. package/dist/components/retrieval/graph/graph-model.js +1 -1
  376. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  377. package/dist/components/retrieval/graph/graph.class.js +1 -1
  378. package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
  379. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  380. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  381. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
  382. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  383. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  384. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  385. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  386. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  387. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  388. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  389. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  390. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  391. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  392. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  393. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  394. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  395. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  396. package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
  397. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
  398. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  399. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  400. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  401. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  402. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  403. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  404. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  405. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  406. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  407. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  408. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  409. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  410. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  411. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  412. package/dist/components/retrieval/source-card/source-card.class.js +1 -1
  413. package/dist/components/retrieval/source-list/source-list.class.js +1 -1
  414. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  415. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  416. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  417. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  418. package/dist/components/utility/export-button/export-button.class.js +1 -1
  419. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  420. package/dist/components/utility/icon/icon.class.js +1 -1
  421. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  422. package/dist/components/utility/known-date/known-date.class.js +1 -1
  423. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  424. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  425. package/dist/components/utility/poll-status/poll-status.class.js +1 -1
  426. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  427. package/dist/components/utility/random-content/random-content.class.js +1 -1
  428. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  429. package/dist/components/utility/tour/tour.class.js +1 -1
  430. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  431. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  432. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  433. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  434. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  435. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +2 -2
  436. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  437. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  438. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  439. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  440. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  441. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  442. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  443. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  444. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  445. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  446. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  447. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  448. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  449. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  450. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  451. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  452. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  453. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  454. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  455. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  456. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  457. package/dist/components/viewers/geojson-view/geojson-view.class.js +1 -1
  458. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  459. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  460. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  461. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  462. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  463. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  464. package/dist/components/viewers/include/include.class.js +1 -1
  465. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  466. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
  467. package/dist/components/viewers/page-rail/page-rail.class.d.ts +1 -1
  468. package/dist/components/viewers/page-rail/page-rail.class.js +3 -3
  469. package/dist/components/viewers/passive-markup.js +1 -1
  470. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  471. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -3
  472. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  473. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  474. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  475. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  476. package/dist/components/viewers/region-highlight-layer.js +15 -2
  477. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  478. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  479. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  480. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  481. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  482. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  483. package/dist/components/viewers/table-viewer-shared.js +15 -1
  484. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  485. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
  486. package/dist/events.d.ts +25 -19
  487. package/dist/framework-types.d.ts +1 -1
  488. package/dist/internal/accessibility-visibility.d.ts +3 -1
  489. package/dist/internal/accessibility-visibility.js +1 -1
  490. package/dist/internal/accessible-text-controller.js +1 -1
  491. package/dist/internal/active-element.d.ts +11 -0
  492. package/dist/internal/active-element.js +1 -1
  493. package/dist/internal/adjacent-runs.js +1 -1
  494. package/dist/internal/approval-wait-until.d.ts +7 -0
  495. package/dist/internal/approval-wait-until.js +1 -0
  496. package/dist/internal/aria-controls.js +1 -1
  497. package/dist/internal/catalog-picker.d.ts +2 -2
  498. package/dist/internal/catalog-picker.js +1 -1
  499. package/dist/internal/collection-snapshot.js +1 -1
  500. package/dist/internal/composed-tree.d.ts +18 -0
  501. package/dist/internal/composed-tree.js +1 -1
  502. package/dist/internal/copy-feedback.js +1 -0
  503. package/dist/internal/css-length.js +1 -1
  504. package/dist/internal/css-motion-time.js +1 -1
  505. package/dist/internal/css-number.js +1 -0
  506. package/dist/internal/default-strings/agent-tools.generated.js +1 -0
  507. package/dist/internal/default-strings/charts.generated.js +1 -0
  508. package/dist/internal/default-strings/conversation.generated.js +1 -0
  509. package/dist/internal/default-strings/data.generated.js +1 -0
  510. package/dist/internal/default-strings/forms.generated.js +1 -0
  511. package/dist/internal/default-strings/layout.generated.js +1 -0
  512. package/dist/internal/default-strings/media.generated.js +1 -0
  513. package/dist/internal/default-strings/overlays.generated.js +1 -0
  514. package/dist/internal/default-strings/retrieval.generated.js +1 -0
  515. package/dist/internal/default-strings/shared.generated.js +1 -0
  516. package/dist/internal/default-strings/utility.generated.js +1 -0
  517. package/dist/internal/default-strings/viewers.generated.js +5 -0
  518. package/dist/internal/deferred-focus-return.d.ts +33 -0
  519. package/dist/internal/deferred-focus-return.js +1 -1
  520. package/dist/internal/dev-mode-attribute-warning.development.js +1 -1
  521. package/dist/internal/dev-mode-attribute-warning.production.js +1 -1
  522. package/dist/internal/document-tokens.d.ts +11 -0
  523. package/dist/internal/document-tokens.generated.js +15 -0
  524. package/dist/internal/document-tokens.js +3 -0
  525. package/dist/internal/fixed-containing-block.js +1 -1
  526. package/dist/internal/form-associated.d.ts +39 -3
  527. package/dist/internal/form-associated.js +1 -1
  528. package/dist/internal/form-control-element.d.ts +13 -0
  529. package/dist/internal/form-control-element.js +1 -0
  530. package/dist/internal/form-control.styles.js +1 -1
  531. package/dist/internal/glass-surface.styles.js +1 -1
  532. package/dist/internal/host-tokens.styles.js +1 -0
  533. package/dist/internal/image-zoom.js +1 -0
  534. package/dist/internal/inherited-attribute-hub.js +1 -1
  535. package/dist/internal/intl-cache.js +1 -1
  536. package/dist/internal/locale-loaders.generated.js +1 -1
  537. package/dist/internal/localization-types.d.ts +1 -1
  538. package/dist/internal/localization.js +2 -2
  539. package/dist/internal/lyra-element.d.ts +4 -2
  540. package/dist/internal/lyra-element.js +2 -2
  541. package/dist/internal/modal-surface-controller.js +1 -1
  542. package/dist/internal/object-guards.js +1 -1
  543. package/dist/internal/opaque-content-border.styles.js +1 -1
  544. package/dist/internal/open-overlay-raise.styles.js +1 -0
  545. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  546. package/dist/internal/optional-peer-capabilities.js +1 -1
  547. package/dist/internal/optional-peer-failure.js +1 -0
  548. package/dist/internal/orientation-breakpoint.js +1 -1
  549. package/dist/internal/overlay-manager.d.ts +6 -1
  550. package/dist/internal/overlay-manager.js +1 -1
  551. package/dist/internal/overlay-stack.d.ts +7 -3
  552. package/dist/internal/overlay-stack.js +1 -1
  553. package/dist/internal/package-metadata.js +1 -1
  554. package/dist/internal/persisted-restore.js +1 -1
  555. package/dist/internal/popup-controller.js +1 -0
  556. package/dist/internal/prefix.js +1 -1
  557. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  558. package/dist/internal/rendered-tree-traversal.js +1 -1
  559. package/dist/internal/retry-forwarder.js +1 -0
  560. package/dist/internal/roving-toolbar.js +1 -1
  561. package/dist/internal/scoped-definitions.generated.js +1 -1
  562. package/dist/internal/score-tiers.d.ts +4 -0
  563. package/dist/internal/score-tiers.js +1 -0
  564. package/dist/internal/semantic-variant.d.ts +7 -0
  565. package/dist/internal/semantic-variant.js +1 -0
  566. package/dist/internal/shared-unions.d.ts +1 -1
  567. package/dist/internal/specialist-host-tokens.styles.js +1 -0
  568. package/dist/internal/specialist-tokens.generated.js +2 -0
  569. package/dist/internal/step-value.js +1 -1
  570. package/dist/internal/theme-observation.js +1 -1
  571. package/dist/internal/theme-scopes.d.ts +11 -0
  572. package/dist/internal/theme-scopes.js +1 -0
  573. package/dist/internal/viewer-search.js +1 -1
  574. package/dist/looks/shadcn.css +1 -1
  575. package/dist/lyra.d.ts +1 -1
  576. package/dist/lyra.js +1 -1
  577. package/dist/styles/design-tokens.css +1 -1
  578. package/dist/styles/tokens-root.css +1 -1
  579. package/dist/surfaces/glass.css +1 -1
  580. package/dist/testing/happy-dom-shims.d.ts +37 -0
  581. package/dist/testing/happy-dom-shims.js +1 -1
  582. package/dist/testing/index.d.ts +1 -1
  583. package/dist/testing/index.js +1 -1
  584. package/dist/testing/interaction-drivers.d.ts +66 -7
  585. package/dist/testing/interaction-drivers.js +1 -1
  586. package/dist/testing/jsdom-shims.d.ts +70 -0
  587. package/dist/testing/jsdom-shims.js +1 -0
  588. package/dist/theme/look-inputs.d.ts +1 -1
  589. package/dist/theme/look-inputs.js +37 -41
  590. package/dist/theme/theme.d.ts +13 -0
  591. package/dist/theme/theme.js +1 -1
  592. package/dist/theme.css +1 -1
  593. package/dist/utilities/index.d.ts +1 -1
  594. package/dist/utilities/index.js +1 -1
  595. package/dist/utilities/scoped-registry.d.ts +3 -0
  596. package/dist/utilities/scoped-registry.js +1 -1
  597. package/dist/utilities/theme-scopes.d.ts +1 -0
  598. package/dist/utilities/theme-scopes.js +1 -0
  599. package/dist/utilities/tokens.d.ts +1 -0
  600. package/dist/utilities/tokens.js +1 -0
  601. package/llms/components/lr-accordion-item.md +1 -1
  602. package/llms/components/lr-accordion.md +1 -1
  603. package/llms/components/lr-alert.md +2 -2
  604. package/llms/components/lr-app-rail-group.md +1 -1
  605. package/llms/components/lr-app-rail-item.md +1 -1
  606. package/llms/components/lr-app-rail.md +52 -5
  607. package/llms/components/lr-attachment-chip.md +1 -10
  608. package/llms/components/lr-attachment-trigger.md +0 -10
  609. package/llms/components/lr-avatar.md +4 -8
  610. package/llms/components/lr-badge.md +16 -20
  611. package/llms/components/lr-box-plot.md +1 -1
  612. package/llms/components/lr-breadcrumb-item.md +1 -1
  613. package/llms/components/lr-breadcrumb.md +1 -1
  614. package/llms/components/lr-button-group.md +1 -1
  615. package/llms/components/lr-button.md +1 -1
  616. package/llms/components/lr-calendar.md +1 -1
  617. package/llms/components/lr-callout.md +3 -13
  618. package/llms/components/lr-card.md +1 -1
  619. package/llms/components/lr-carousel-item.md +1 -1
  620. package/llms/components/lr-carousel.md +1 -1
  621. package/llms/components/lr-chart.md +5 -7
  622. package/llms/components/lr-checkbox-group.md +1 -1
  623. package/llms/components/lr-checkbox.md +2 -1
  624. package/llms/components/lr-chip.md +3 -17
  625. package/llms/components/lr-chunk-inspector.md +2 -1
  626. package/llms/components/lr-citation-badge.md +2 -2
  627. package/llms/components/lr-code-block.md +0 -10
  628. package/llms/components/lr-code-editor.md +1 -1
  629. package/llms/components/lr-color-picker.md +1 -1
  630. package/llms/components/lr-combobox.md +6 -3
  631. package/llms/components/lr-command-palette.md +5 -2
  632. package/llms/components/lr-commit-card.md +1 -3
  633. package/llms/components/lr-condition-builder.md +1 -1
  634. package/llms/components/lr-confirm-bar.md +7 -13
  635. package/llms/components/lr-connector-manager.md +3 -1
  636. package/llms/components/lr-context-inspector.md +1 -1
  637. package/llms/components/lr-context-meter.md +1 -1
  638. package/llms/components/lr-control-group.md +1 -1
  639. package/llms/components/lr-copy-button.md +8 -10
  640. package/llms/components/lr-country-picker.md +1 -1
  641. package/llms/components/lr-currency-picker.md +1 -1
  642. package/llms/components/lr-dashboard-grid.md +1 -1
  643. package/llms/components/lr-data-grid.md +1 -1
  644. package/llms/components/lr-date-input.md +1 -1
  645. package/llms/components/lr-date-picker.md +11 -4
  646. package/llms/components/lr-details.md +1 -1
  647. package/llms/components/lr-dialog.md +8 -31
  648. package/llms/components/lr-diff-view.md +1 -1
  649. package/llms/components/lr-divider.md +1 -1
  650. package/llms/components/lr-dock-panel.md +1 -1
  651. package/llms/components/lr-document-library.md +1 -1
  652. package/llms/components/lr-drawer.md +1 -13
  653. package/llms/components/lr-drilldown-panel.md +1 -1
  654. package/llms/components/lr-drop-zone.md +4 -0
  655. package/llms/components/lr-dropdown-item.md +1 -1
  656. package/llms/components/lr-ebook-viewer.md +4 -3
  657. package/llms/components/lr-emoji-picker.md +14 -9
  658. package/llms/components/lr-entity-chip.md +2 -2
  659. package/llms/components/lr-env-list.md +1 -1
  660. package/llms/components/lr-eval-dataset.md +4 -19
  661. package/llms/components/lr-export-button.md +3 -3
  662. package/llms/components/lr-file-icon.md +0 -5
  663. package/llms/components/lr-file-input.md +3 -5
  664. package/llms/components/lr-file-tree.md +1 -1
  665. package/llms/components/lr-filter-bar.md +5 -1
  666. package/llms/components/lr-flag.md +1 -2
  667. package/llms/components/lr-flow-canvas.md +1 -1
  668. package/llms/components/lr-flow-controls.md +1 -1
  669. package/llms/components/lr-flow-minimap.md +2 -2
  670. package/llms/components/lr-flow-node.md +1 -1
  671. package/llms/components/lr-flow-run-status.md +1 -1
  672. package/llms/components/lr-format-bytes.md +2 -3
  673. package/llms/components/lr-format-date.md +2 -3
  674. package/llms/components/lr-format-number.md +1 -1
  675. package/llms/components/lr-funnel.md +1 -1
  676. package/llms/components/lr-gauge.md +1 -1
  677. package/llms/components/lr-generation-metrics.md +1 -1
  678. package/llms/components/lr-graph-query-builder.md +1 -1
  679. package/llms/components/lr-heatmap.md +1 -1
  680. package/llms/components/lr-icon-button.md +14 -2
  681. package/llms/components/lr-icon.md +1 -1
  682. package/llms/components/lr-image-viewer.md +8 -0
  683. package/llms/components/lr-input.md +1 -1
  684. package/llms/components/lr-intersection-observer.md +1 -1
  685. package/llms/components/lr-json-viewer.md +1 -1
  686. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  687. package/llms/components/lr-known-date.md +1 -1
  688. package/llms/components/lr-lite-chart.md +3 -4
  689. package/llms/components/lr-live-region.md +1 -1
  690. package/llms/components/lr-locale-picker.md +1 -1
  691. package/llms/components/lr-map.md +1 -3
  692. package/llms/components/lr-media-card.md +1 -10
  693. package/llms/components/lr-memory-panel.md +2 -0
  694. package/llms/components/lr-mention-popover.md +3 -3
  695. package/llms/components/lr-menu-item.md +1 -1
  696. package/llms/components/lr-menu-label.md +1 -1
  697. package/llms/components/lr-menu.md +1 -1
  698. package/llms/components/lr-menubar-item.md +1 -1
  699. package/llms/components/lr-menubar.md +1 -1
  700. package/llms/components/lr-message-actions.md +1 -11
  701. package/llms/components/lr-message-parts.md +3 -5
  702. package/llms/components/lr-model-select.md +2 -4
  703. package/llms/components/lr-multi-split.md +1 -1
  704. package/llms/components/lr-mutation-observer.md +2 -2
  705. package/llms/components/lr-native-time-input.md +1 -1
  706. package/llms/components/lr-navigation-menu-item.md +1 -1
  707. package/llms/components/lr-navigation-menu.md +1 -1
  708. package/llms/components/lr-number-input.md +1 -1
  709. package/llms/components/lr-option.md +1 -1
  710. package/llms/components/lr-otp-input.md +1 -1
  711. package/llms/components/lr-page.md +1 -1
  712. package/llms/components/lr-pagination.md +5 -3
  713. package/llms/components/lr-pan-zoom.md +1 -3
  714. package/llms/components/lr-permission-grant.md +3 -1
  715. package/llms/components/lr-phone-input.md +7 -5
  716. package/llms/components/lr-poll-status.md +1 -1
  717. package/llms/components/lr-popover.md +5 -9
  718. package/llms/components/lr-popup.md +1 -3
  719. package/llms/components/lr-progress-bar.md +2 -1
  720. package/llms/components/lr-progress-ring.md +4 -8
  721. package/llms/components/lr-prompt-input.md +3 -1
  722. package/llms/components/lr-prompt-studio.md +4 -4
  723. package/llms/components/lr-radio-button.md +2 -2
  724. package/llms/components/lr-radio-group.md +1 -1
  725. package/llms/components/lr-radio.md +3 -2
  726. package/llms/components/lr-random-content.md +1 -1
  727. package/llms/components/lr-rating.md +2 -3
  728. package/llms/components/lr-relative-time.md +2 -3
  729. package/llms/components/lr-reorder-item.md +1 -1
  730. package/llms/components/lr-reorder-list.md +1 -1
  731. package/llms/components/lr-research-progress.md +2 -0
  732. package/llms/components/lr-resize-observer.md +1 -1
  733. package/llms/components/lr-responsive-panel.md +1 -1
  734. package/llms/components/lr-retrieval-compare.md +2 -0
  735. package/llms/components/lr-retrieval-trace.md +2 -0
  736. package/llms/components/lr-rubric-form.md +1 -1
  737. package/llms/components/lr-scroller.md +1 -1
  738. package/llms/components/lr-segmented.md +8 -4
  739. package/llms/components/lr-select.md +1 -1
  740. package/llms/components/lr-sequence-playback.md +1 -2
  741. package/llms/components/lr-sequence-strip.md +1 -1
  742. package/llms/components/lr-signature-pad.md +1 -1
  743. package/llms/components/lr-skeleton.md +2 -4
  744. package/llms/components/lr-slider.md +1 -1
  745. package/llms/components/lr-sparkline.md +1 -1
  746. package/llms/components/lr-split-panel.md +1 -1
  747. package/llms/components/lr-stat.md +1 -1
  748. package/llms/components/lr-stepper.md +1 -1
  749. package/llms/components/lr-swatch-picker.md +1 -1
  750. package/llms/components/lr-switch.md +2 -1
  751. package/llms/components/lr-tab-group.md +1 -1
  752. package/llms/components/lr-tab-panel.md +1 -1
  753. package/llms/components/lr-tab.md +1 -1
  754. package/llms/components/lr-table.md +16 -14
  755. package/llms/components/lr-task-list.md +3 -3
  756. package/llms/components/lr-test-results.md +2 -4
  757. package/llms/components/lr-textarea.md +1 -1
  758. package/llms/components/lr-thread-list.md +4 -3
  759. package/llms/components/lr-time-input.md +1 -1
  760. package/llms/components/lr-time-range.md +5 -4
  761. package/llms/components/lr-time-zone-picker.md +1 -1
  762. package/llms/components/lr-timeline-item.md +1 -1
  763. package/llms/components/lr-timeline.md +1 -1
  764. package/llms/components/lr-toggle-group.md +1 -1
  765. package/llms/components/lr-toggle.md +1 -1
  766. package/llms/components/lr-token-input.md +1 -1
  767. package/llms/components/lr-tool-approval-dialog.md +12 -10
  768. package/llms/components/lr-tool-call-block.md +1 -1
  769. package/llms/components/lr-tool-call-chip.md +1 -3
  770. package/llms/components/lr-tool-result-view.md +3 -3
  771. package/llms/components/lr-tool-timeline.md +2 -2
  772. package/llms/components/lr-tooltip.md +8 -11
  773. package/llms/components/lr-tour.md +2 -2
  774. package/llms/components/lr-tree-item.md +1 -1
  775. package/llms/components/lr-tree.md +1 -1
  776. package/llms/components/lr-unit-picker.md +1 -1
  777. package/llms/components/lr-usage-badge.md +1 -3
  778. package/llms/components/lr-video.md +1 -2
  779. package/llms/components/lr-virtual-list.md +1 -1
  780. package/llms/components/lr-visually-hidden.md +1 -1
  781. package/llms/components/lr-voice-picker.md +1 -1
  782. package/llms/components/lr-widget.md +1 -1
  783. package/llms/components/lr-word-cloud.md +1 -1
  784. package/llms/components/lr-zoomable-frame.md +1 -6
  785. package/llms/migration.md +105 -2
  786. package/llms/peers.md +3 -2
  787. package/llms/shared/ai-and-peers.md +2 -2
  788. package/llms/shared/events-and-types.md +45 -1
  789. package/llms/shared/frameworks-and-ssr.md +16 -0
  790. package/llms/shared/imports-and-registration.md +6 -5
  791. package/llms/shared/localization-and-rtl.md +18 -18
  792. package/llms/shared/native-styles-and-utilities.md +38 -3
  793. package/llms/shared/styles-and-tokens.md +243 -103
  794. package/llms/shared/testing-and-utilities.md +134 -49
  795. package/llms/shared.md +502 -181
  796. package/llms/tokens.md +31 -49
  797. package/llms.txt +14 -12
  798. package/locales.json +1002 -1002
  799. package/package.json +28 -6884
  800. package/registrations.json +1 -1
  801. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  802. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  803. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  804. package/skills/lyra-ui/SKILL.md +145 -0
  805. package/skills/lyra-ui/commands/frontend.md +37 -0
  806. package/skills/lyra-ui/commands/migrate.md +44 -0
  807. package/skills/lyra-ui/commands/new-component.md +19 -0
  808. package/skills/lyra-ui/commands/review.md +247 -0
  809. package/skills/lyra-ui/commands/update.md +30 -0
  810. package/skills/lyra-ui/reporting.md +137 -0
  811. package/custom-elements.json +0 -1
  812. package/dist/internal/default-strings.generated.js +0 -5
  813. package/dist/internal/side-effect-only.d.ts +0 -1
  814. package/dist/internal/specialist-tokens.styles.js +0 -1
  815. package/dist/internal/tokens/palette.styles.js +0 -1
  816. package/dist/internal/tokens.styles.js +0 -1
  817. package/dist/translations/am/agent-tools.js +0 -1
  818. package/dist/translations/am/charts.js +0 -1
  819. package/dist/translations/am/conversation.js +0 -1
  820. package/dist/translations/am/data.js +0 -1
  821. package/dist/translations/am/forms.js +0 -1
  822. package/dist/translations/am/layout.js +0 -1
  823. package/dist/translations/am/media.js +0 -1
  824. package/dist/translations/am/overlays.js +0 -1
  825. package/dist/translations/am/retrieval.js +0 -1
  826. package/dist/translations/am/shared.js +0 -1
  827. package/dist/translations/am/utility.js +0 -1
  828. package/dist/translations/am/viewers.js +0 -5
  829. package/dist/translations/am.js +0 -1
  830. package/dist/translations/ar/agent-tools.js +0 -1
  831. package/dist/translations/ar/charts.js +0 -1
  832. package/dist/translations/ar/conversation.js +0 -1
  833. package/dist/translations/ar/data.js +0 -1
  834. package/dist/translations/ar/forms.js +0 -1
  835. package/dist/translations/ar/layout.js +0 -1
  836. package/dist/translations/ar/media.js +0 -1
  837. package/dist/translations/ar/overlays.js +0 -1
  838. package/dist/translations/ar/retrieval.js +0 -1
  839. package/dist/translations/ar/shared.js +0 -1
  840. package/dist/translations/ar/utility.js +0 -1
  841. package/dist/translations/ar/viewers.js +0 -5
  842. package/dist/translations/ar.js +0 -1
  843. package/dist/translations/bho/agent-tools.js +0 -1
  844. package/dist/translations/bho/charts.js +0 -1
  845. package/dist/translations/bho/conversation.js +0 -1
  846. package/dist/translations/bho/data.js +0 -1
  847. package/dist/translations/bho/forms.js +0 -1
  848. package/dist/translations/bho/layout.js +0 -1
  849. package/dist/translations/bho/media.js +0 -1
  850. package/dist/translations/bho/overlays.js +0 -1
  851. package/dist/translations/bho/retrieval.js +0 -1
  852. package/dist/translations/bho/shared.js +0 -1
  853. package/dist/translations/bho/utility.js +0 -1
  854. package/dist/translations/bho/viewers.js +0 -5
  855. package/dist/translations/bho.js +0 -1
  856. package/dist/translations/bn/agent-tools.js +0 -1
  857. package/dist/translations/bn/charts.js +0 -1
  858. package/dist/translations/bn/conversation.js +0 -1
  859. package/dist/translations/bn/data.js +0 -1
  860. package/dist/translations/bn/forms.js +0 -1
  861. package/dist/translations/bn/layout.js +0 -1
  862. package/dist/translations/bn/media.js +0 -1
  863. package/dist/translations/bn/overlays.js +0 -1
  864. package/dist/translations/bn/retrieval.js +0 -1
  865. package/dist/translations/bn/shared.js +0 -1
  866. package/dist/translations/bn/utility.js +0 -1
  867. package/dist/translations/bn/viewers.js +0 -5
  868. package/dist/translations/bn.js +0 -1
  869. package/dist/translations/cs/agent-tools.js +0 -1
  870. package/dist/translations/cs/charts.js +0 -1
  871. package/dist/translations/cs/conversation.js +0 -1
  872. package/dist/translations/cs/data.js +0 -1
  873. package/dist/translations/cs/forms.js +0 -1
  874. package/dist/translations/cs/layout.js +0 -1
  875. package/dist/translations/cs/media.js +0 -1
  876. package/dist/translations/cs/overlays.js +0 -1
  877. package/dist/translations/cs/retrieval.js +0 -1
  878. package/dist/translations/cs/shared.js +0 -1
  879. package/dist/translations/cs/utility.js +0 -1
  880. package/dist/translations/cs/viewers.js +0 -5
  881. package/dist/translations/cs.js +0 -1
  882. package/dist/translations/da/agent-tools.js +0 -1
  883. package/dist/translations/da/charts.js +0 -1
  884. package/dist/translations/da/conversation.js +0 -1
  885. package/dist/translations/da/data.js +0 -1
  886. package/dist/translations/da/forms.js +0 -1
  887. package/dist/translations/da/layout.js +0 -1
  888. package/dist/translations/da/media.js +0 -1
  889. package/dist/translations/da/overlays.js +0 -1
  890. package/dist/translations/da/retrieval.js +0 -1
  891. package/dist/translations/da/shared.js +0 -1
  892. package/dist/translations/da/utility.js +0 -1
  893. package/dist/translations/da/viewers.js +0 -5
  894. package/dist/translations/da.js +0 -1
  895. package/dist/translations/de/agent-tools.js +0 -1
  896. package/dist/translations/de/charts.js +0 -1
  897. package/dist/translations/de/conversation.js +0 -1
  898. package/dist/translations/de/data.js +0 -1
  899. package/dist/translations/de/forms.js +0 -1
  900. package/dist/translations/de/layout.js +0 -1
  901. package/dist/translations/de/media.js +0 -1
  902. package/dist/translations/de/overlays.js +0 -1
  903. package/dist/translations/de/retrieval.js +0 -1
  904. package/dist/translations/de/shared.js +0 -1
  905. package/dist/translations/de/utility.js +0 -1
  906. package/dist/translations/de/viewers.js +0 -5
  907. package/dist/translations/de-CH/agent-tools.js +0 -1
  908. package/dist/translations/de-CH/charts.js +0 -1
  909. package/dist/translations/de-CH/conversation.js +0 -1
  910. package/dist/translations/de-CH/data.js +0 -1
  911. package/dist/translations/de-CH/forms.js +0 -1
  912. package/dist/translations/de-CH/layout.js +0 -1
  913. package/dist/translations/de-CH/media.js +0 -1
  914. package/dist/translations/de-CH/overlays.js +0 -1
  915. package/dist/translations/de-CH/retrieval.js +0 -1
  916. package/dist/translations/de-CH/shared.js +0 -1
  917. package/dist/translations/de-CH/utility.js +0 -1
  918. package/dist/translations/de-CH/viewers.js +0 -1
  919. package/dist/translations/de-CH.js +0 -1
  920. package/dist/translations/de.js +0 -1
  921. package/dist/translations/el/agent-tools.js +0 -1
  922. package/dist/translations/el/charts.js +0 -1
  923. package/dist/translations/el/conversation.js +0 -1
  924. package/dist/translations/el/data.js +0 -1
  925. package/dist/translations/el/forms.js +0 -1
  926. package/dist/translations/el/layout.js +0 -1
  927. package/dist/translations/el/media.js +0 -1
  928. package/dist/translations/el/overlays.js +0 -1
  929. package/dist/translations/el/retrieval.js +0 -1
  930. package/dist/translations/el/shared.js +0 -1
  931. package/dist/translations/el/utility.js +0 -1
  932. package/dist/translations/el/viewers.js +0 -5
  933. package/dist/translations/el.js +0 -1
  934. package/dist/translations/es/agent-tools.js +0 -1
  935. package/dist/translations/es/charts.js +0 -1
  936. package/dist/translations/es/conversation.js +0 -1
  937. package/dist/translations/es/data.js +0 -1
  938. package/dist/translations/es/forms.js +0 -1
  939. package/dist/translations/es/layout.js +0 -1
  940. package/dist/translations/es/media.js +0 -1
  941. package/dist/translations/es/overlays.js +0 -1
  942. package/dist/translations/es/retrieval.js +0 -1
  943. package/dist/translations/es/shared.js +0 -1
  944. package/dist/translations/es/utility.js +0 -1
  945. package/dist/translations/es/viewers.js +0 -5
  946. package/dist/translations/es.js +0 -1
  947. package/dist/translations/fa/agent-tools.js +0 -1
  948. package/dist/translations/fa/charts.js +0 -1
  949. package/dist/translations/fa/conversation.js +0 -1
  950. package/dist/translations/fa/data.js +0 -1
  951. package/dist/translations/fa/forms.js +0 -1
  952. package/dist/translations/fa/layout.js +0 -1
  953. package/dist/translations/fa/media.js +0 -1
  954. package/dist/translations/fa/overlays.js +0 -1
  955. package/dist/translations/fa/retrieval.js +0 -1
  956. package/dist/translations/fa/shared.js +0 -1
  957. package/dist/translations/fa/utility.js +0 -1
  958. package/dist/translations/fa/viewers.js +0 -5
  959. package/dist/translations/fa-AF/agent-tools.js +0 -1
  960. package/dist/translations/fa-AF/charts.js +0 -1
  961. package/dist/translations/fa-AF/conversation.js +0 -1
  962. package/dist/translations/fa-AF/data.js +0 -1
  963. package/dist/translations/fa-AF/forms.js +0 -1
  964. package/dist/translations/fa-AF/layout.js +0 -1
  965. package/dist/translations/fa-AF/media.js +0 -1
  966. package/dist/translations/fa-AF/overlays.js +0 -1
  967. package/dist/translations/fa-AF/retrieval.js +0 -1
  968. package/dist/translations/fa-AF/shared.js +0 -1
  969. package/dist/translations/fa-AF/utility.js +0 -1
  970. package/dist/translations/fa-AF/viewers.js +0 -5
  971. package/dist/translations/fa-AF.js +0 -1
  972. package/dist/translations/fa.js +0 -1
  973. package/dist/translations/fi/agent-tools.js +0 -1
  974. package/dist/translations/fi/charts.js +0 -1
  975. package/dist/translations/fi/conversation.js +0 -1
  976. package/dist/translations/fi/data.js +0 -1
  977. package/dist/translations/fi/forms.js +0 -1
  978. package/dist/translations/fi/layout.js +0 -1
  979. package/dist/translations/fi/media.js +0 -1
  980. package/dist/translations/fi/overlays.js +0 -1
  981. package/dist/translations/fi/retrieval.js +0 -1
  982. package/dist/translations/fi/shared.js +0 -1
  983. package/dist/translations/fi/utility.js +0 -1
  984. package/dist/translations/fi/viewers.js +0 -5
  985. package/dist/translations/fi.js +0 -1
  986. package/dist/translations/fr/agent-tools.js +0 -1
  987. package/dist/translations/fr/charts.js +0 -1
  988. package/dist/translations/fr/conversation.js +0 -1
  989. package/dist/translations/fr/data.js +0 -1
  990. package/dist/translations/fr/forms.js +0 -1
  991. package/dist/translations/fr/layout.js +0 -1
  992. package/dist/translations/fr/media.js +0 -1
  993. package/dist/translations/fr/overlays.js +0 -1
  994. package/dist/translations/fr/retrieval.js +0 -1
  995. package/dist/translations/fr/shared.js +0 -1
  996. package/dist/translations/fr/utility.js +0 -1
  997. package/dist/translations/fr/viewers.js +0 -5
  998. package/dist/translations/fr.js +0 -1
  999. package/dist/translations/gu/agent-tools.js +0 -1
  1000. package/dist/translations/gu/charts.js +0 -1
  1001. package/dist/translations/gu/conversation.js +0 -1
  1002. package/dist/translations/gu/data.js +0 -1
  1003. package/dist/translations/gu/forms.js +0 -1
  1004. package/dist/translations/gu/layout.js +0 -1
  1005. package/dist/translations/gu/media.js +0 -1
  1006. package/dist/translations/gu/overlays.js +0 -1
  1007. package/dist/translations/gu/retrieval.js +0 -1
  1008. package/dist/translations/gu/shared.js +0 -1
  1009. package/dist/translations/gu/utility.js +0 -1
  1010. package/dist/translations/gu/viewers.js +0 -5
  1011. package/dist/translations/gu.js +0 -1
  1012. package/dist/translations/ha/agent-tools.js +0 -1
  1013. package/dist/translations/ha/charts.js +0 -1
  1014. package/dist/translations/ha/conversation.js +0 -1
  1015. package/dist/translations/ha/data.js +0 -1
  1016. package/dist/translations/ha/forms.js +0 -1
  1017. package/dist/translations/ha/layout.js +0 -1
  1018. package/dist/translations/ha/media.js +0 -1
  1019. package/dist/translations/ha/overlays.js +0 -1
  1020. package/dist/translations/ha/retrieval.js +0 -1
  1021. package/dist/translations/ha/shared.js +0 -1
  1022. package/dist/translations/ha/utility.js +0 -1
  1023. package/dist/translations/ha/viewers.js +0 -5
  1024. package/dist/translations/ha.js +0 -1
  1025. package/dist/translations/he/agent-tools.js +0 -1
  1026. package/dist/translations/he/charts.js +0 -1
  1027. package/dist/translations/he/conversation.js +0 -1
  1028. package/dist/translations/he/data.js +0 -1
  1029. package/dist/translations/he/forms.js +0 -1
  1030. package/dist/translations/he/layout.js +0 -1
  1031. package/dist/translations/he/media.js +0 -1
  1032. package/dist/translations/he/overlays.js +0 -1
  1033. package/dist/translations/he/retrieval.js +0 -1
  1034. package/dist/translations/he/shared.js +0 -1
  1035. package/dist/translations/he/utility.js +0 -1
  1036. package/dist/translations/he/viewers.js +0 -5
  1037. package/dist/translations/he.js +0 -1
  1038. package/dist/translations/hi/agent-tools.js +0 -1
  1039. package/dist/translations/hi/charts.js +0 -1
  1040. package/dist/translations/hi/conversation.js +0 -1
  1041. package/dist/translations/hi/data.js +0 -1
  1042. package/dist/translations/hi/forms.js +0 -1
  1043. package/dist/translations/hi/layout.js +0 -1
  1044. package/dist/translations/hi/media.js +0 -1
  1045. package/dist/translations/hi/overlays.js +0 -1
  1046. package/dist/translations/hi/retrieval.js +0 -1
  1047. package/dist/translations/hi/shared.js +0 -1
  1048. package/dist/translations/hi/utility.js +0 -1
  1049. package/dist/translations/hi/viewers.js +0 -5
  1050. package/dist/translations/hi.js +0 -1
  1051. package/dist/translations/hr/agent-tools.js +0 -1
  1052. package/dist/translations/hr/charts.js +0 -1
  1053. package/dist/translations/hr/conversation.js +0 -1
  1054. package/dist/translations/hr/data.js +0 -1
  1055. package/dist/translations/hr/forms.js +0 -1
  1056. package/dist/translations/hr/layout.js +0 -1
  1057. package/dist/translations/hr/media.js +0 -1
  1058. package/dist/translations/hr/overlays.js +0 -1
  1059. package/dist/translations/hr/retrieval.js +0 -1
  1060. package/dist/translations/hr/shared.js +0 -1
  1061. package/dist/translations/hr/utility.js +0 -1
  1062. package/dist/translations/hr/viewers.js +0 -5
  1063. package/dist/translations/hr.js +0 -1
  1064. package/dist/translations/hu/agent-tools.js +0 -1
  1065. package/dist/translations/hu/charts.js +0 -1
  1066. package/dist/translations/hu/conversation.js +0 -1
  1067. package/dist/translations/hu/data.js +0 -1
  1068. package/dist/translations/hu/forms.js +0 -1
  1069. package/dist/translations/hu/layout.js +0 -1
  1070. package/dist/translations/hu/media.js +0 -1
  1071. package/dist/translations/hu/overlays.js +0 -1
  1072. package/dist/translations/hu/retrieval.js +0 -1
  1073. package/dist/translations/hu/shared.js +0 -1
  1074. package/dist/translations/hu/utility.js +0 -1
  1075. package/dist/translations/hu/viewers.js +0 -5
  1076. package/dist/translations/hu.js +0 -1
  1077. package/dist/translations/id/agent-tools.js +0 -1
  1078. package/dist/translations/id/charts.js +0 -1
  1079. package/dist/translations/id/conversation.js +0 -1
  1080. package/dist/translations/id/data.js +0 -1
  1081. package/dist/translations/id/forms.js +0 -1
  1082. package/dist/translations/id/layout.js +0 -1
  1083. package/dist/translations/id/media.js +0 -1
  1084. package/dist/translations/id/overlays.js +0 -1
  1085. package/dist/translations/id/retrieval.js +0 -1
  1086. package/dist/translations/id/shared.js +0 -1
  1087. package/dist/translations/id/utility.js +0 -1
  1088. package/dist/translations/id/viewers.js +0 -5
  1089. package/dist/translations/id.js +0 -1
  1090. package/dist/translations/ig/agent-tools.js +0 -1
  1091. package/dist/translations/ig/charts.js +0 -1
  1092. package/dist/translations/ig/conversation.js +0 -1
  1093. package/dist/translations/ig/data.js +0 -1
  1094. package/dist/translations/ig/forms.js +0 -1
  1095. package/dist/translations/ig/layout.js +0 -1
  1096. package/dist/translations/ig/media.js +0 -1
  1097. package/dist/translations/ig/overlays.js +0 -1
  1098. package/dist/translations/ig/retrieval.js +0 -1
  1099. package/dist/translations/ig/shared.js +0 -1
  1100. package/dist/translations/ig/utility.js +0 -1
  1101. package/dist/translations/ig/viewers.js +0 -5
  1102. package/dist/translations/ig.js +0 -1
  1103. package/dist/translations/it/agent-tools.js +0 -1
  1104. package/dist/translations/it/charts.js +0 -1
  1105. package/dist/translations/it/conversation.js +0 -1
  1106. package/dist/translations/it/data.js +0 -1
  1107. package/dist/translations/it/forms.js +0 -1
  1108. package/dist/translations/it/layout.js +0 -1
  1109. package/dist/translations/it/media.js +0 -1
  1110. package/dist/translations/it/overlays.js +0 -1
  1111. package/dist/translations/it/retrieval.js +0 -1
  1112. package/dist/translations/it/shared.js +0 -1
  1113. package/dist/translations/it/utility.js +0 -1
  1114. package/dist/translations/it/viewers.js +0 -5
  1115. package/dist/translations/it.js +0 -1
  1116. package/dist/translations/ja/agent-tools.js +0 -1
  1117. package/dist/translations/ja/charts.js +0 -1
  1118. package/dist/translations/ja/conversation.js +0 -1
  1119. package/dist/translations/ja/data.js +0 -1
  1120. package/dist/translations/ja/forms.js +0 -1
  1121. package/dist/translations/ja/layout.js +0 -1
  1122. package/dist/translations/ja/media.js +0 -1
  1123. package/dist/translations/ja/overlays.js +0 -1
  1124. package/dist/translations/ja/retrieval.js +0 -1
  1125. package/dist/translations/ja/shared.js +0 -1
  1126. package/dist/translations/ja/utility.js +0 -1
  1127. package/dist/translations/ja/viewers.js +0 -4
  1128. package/dist/translations/ja.js +0 -1
  1129. package/dist/translations/jv/agent-tools.js +0 -1
  1130. package/dist/translations/jv/charts.js +0 -1
  1131. package/dist/translations/jv/conversation.js +0 -1
  1132. package/dist/translations/jv/data.js +0 -1
  1133. package/dist/translations/jv/forms.js +0 -1
  1134. package/dist/translations/jv/layout.js +0 -1
  1135. package/dist/translations/jv/media.js +0 -1
  1136. package/dist/translations/jv/overlays.js +0 -1
  1137. package/dist/translations/jv/retrieval.js +0 -1
  1138. package/dist/translations/jv/shared.js +0 -1
  1139. package/dist/translations/jv/utility.js +0 -1
  1140. package/dist/translations/jv/viewers.js +0 -5
  1141. package/dist/translations/jv.js +0 -1
  1142. package/dist/translations/kk/agent-tools.js +0 -1
  1143. package/dist/translations/kk/charts.js +0 -1
  1144. package/dist/translations/kk/conversation.js +0 -1
  1145. package/dist/translations/kk/data.js +0 -1
  1146. package/dist/translations/kk/forms.js +0 -1
  1147. package/dist/translations/kk/layout.js +0 -1
  1148. package/dist/translations/kk/media.js +0 -1
  1149. package/dist/translations/kk/overlays.js +0 -1
  1150. package/dist/translations/kk/retrieval.js +0 -1
  1151. package/dist/translations/kk/shared.js +0 -1
  1152. package/dist/translations/kk/utility.js +0 -1
  1153. package/dist/translations/kk/viewers.js +0 -5
  1154. package/dist/translations/kk.js +0 -1
  1155. package/dist/translations/kn/agent-tools.js +0 -1
  1156. package/dist/translations/kn/charts.js +0 -1
  1157. package/dist/translations/kn/conversation.js +0 -1
  1158. package/dist/translations/kn/data.js +0 -1
  1159. package/dist/translations/kn/forms.js +0 -1
  1160. package/dist/translations/kn/layout.js +0 -1
  1161. package/dist/translations/kn/media.js +0 -1
  1162. package/dist/translations/kn/overlays.js +0 -1
  1163. package/dist/translations/kn/retrieval.js +0 -1
  1164. package/dist/translations/kn/shared.js +0 -1
  1165. package/dist/translations/kn/utility.js +0 -1
  1166. package/dist/translations/kn/viewers.js +0 -5
  1167. package/dist/translations/kn.js +0 -1
  1168. package/dist/translations/ko/agent-tools.js +0 -1
  1169. package/dist/translations/ko/charts.js +0 -1
  1170. package/dist/translations/ko/conversation.js +0 -1
  1171. package/dist/translations/ko/data.js +0 -1
  1172. package/dist/translations/ko/forms.js +0 -1
  1173. package/dist/translations/ko/layout.js +0 -1
  1174. package/dist/translations/ko/media.js +0 -1
  1175. package/dist/translations/ko/overlays.js +0 -1
  1176. package/dist/translations/ko/retrieval.js +0 -1
  1177. package/dist/translations/ko/shared.js +0 -1
  1178. package/dist/translations/ko/utility.js +0 -1
  1179. package/dist/translations/ko/viewers.js +0 -5
  1180. package/dist/translations/ko.js +0 -1
  1181. package/dist/translations/ln/agent-tools.js +0 -1
  1182. package/dist/translations/ln/charts.js +0 -1
  1183. package/dist/translations/ln/conversation.js +0 -1
  1184. package/dist/translations/ln/data.js +0 -1
  1185. package/dist/translations/ln/forms.js +0 -1
  1186. package/dist/translations/ln/layout.js +0 -1
  1187. package/dist/translations/ln/media.js +0 -1
  1188. package/dist/translations/ln/overlays.js +0 -1
  1189. package/dist/translations/ln/retrieval.js +0 -1
  1190. package/dist/translations/ln/shared.js +0 -1
  1191. package/dist/translations/ln/utility.js +0 -1
  1192. package/dist/translations/ln/viewers.js +0 -5
  1193. package/dist/translations/ln.js +0 -1
  1194. package/dist/translations/ml/agent-tools.js +0 -1
  1195. package/dist/translations/ml/charts.js +0 -1
  1196. package/dist/translations/ml/conversation.js +0 -1
  1197. package/dist/translations/ml/data.js +0 -1
  1198. package/dist/translations/ml/forms.js +0 -1
  1199. package/dist/translations/ml/layout.js +0 -1
  1200. package/dist/translations/ml/media.js +0 -1
  1201. package/dist/translations/ml/overlays.js +0 -1
  1202. package/dist/translations/ml/retrieval.js +0 -1
  1203. package/dist/translations/ml/shared.js +0 -1
  1204. package/dist/translations/ml/utility.js +0 -1
  1205. package/dist/translations/ml/viewers.js +0 -5
  1206. package/dist/translations/ml.js +0 -1
  1207. package/dist/translations/mr/agent-tools.js +0 -1
  1208. package/dist/translations/mr/charts.js +0 -1
  1209. package/dist/translations/mr/conversation.js +0 -1
  1210. package/dist/translations/mr/data.js +0 -1
  1211. package/dist/translations/mr/forms.js +0 -1
  1212. package/dist/translations/mr/layout.js +0 -1
  1213. package/dist/translations/mr/media.js +0 -1
  1214. package/dist/translations/mr/overlays.js +0 -1
  1215. package/dist/translations/mr/retrieval.js +0 -1
  1216. package/dist/translations/mr/shared.js +0 -1
  1217. package/dist/translations/mr/utility.js +0 -1
  1218. package/dist/translations/mr/viewers.js +0 -5
  1219. package/dist/translations/mr.js +0 -1
  1220. package/dist/translations/ms/agent-tools.js +0 -1
  1221. package/dist/translations/ms/charts.js +0 -1
  1222. package/dist/translations/ms/conversation.js +0 -1
  1223. package/dist/translations/ms/data.js +0 -1
  1224. package/dist/translations/ms/forms.js +0 -1
  1225. package/dist/translations/ms/layout.js +0 -1
  1226. package/dist/translations/ms/media.js +0 -1
  1227. package/dist/translations/ms/overlays.js +0 -1
  1228. package/dist/translations/ms/retrieval.js +0 -1
  1229. package/dist/translations/ms/shared.js +0 -1
  1230. package/dist/translations/ms/utility.js +0 -1
  1231. package/dist/translations/ms/viewers.js +0 -5
  1232. package/dist/translations/ms.js +0 -1
  1233. package/dist/translations/my/agent-tools.js +0 -1
  1234. package/dist/translations/my/charts.js +0 -1
  1235. package/dist/translations/my/conversation.js +0 -1
  1236. package/dist/translations/my/data.js +0 -1
  1237. package/dist/translations/my/forms.js +0 -1
  1238. package/dist/translations/my/layout.js +0 -1
  1239. package/dist/translations/my/media.js +0 -1
  1240. package/dist/translations/my/overlays.js +0 -1
  1241. package/dist/translations/my/retrieval.js +0 -1
  1242. package/dist/translations/my/shared.js +0 -1
  1243. package/dist/translations/my/utility.js +0 -1
  1244. package/dist/translations/my/viewers.js +0 -5
  1245. package/dist/translations/my.js +0 -1
  1246. package/dist/translations/nb/agent-tools.js +0 -1
  1247. package/dist/translations/nb/charts.js +0 -1
  1248. package/dist/translations/nb/conversation.js +0 -1
  1249. package/dist/translations/nb/data.js +0 -1
  1250. package/dist/translations/nb/forms.js +0 -1
  1251. package/dist/translations/nb/layout.js +0 -1
  1252. package/dist/translations/nb/media.js +0 -1
  1253. package/dist/translations/nb/overlays.js +0 -1
  1254. package/dist/translations/nb/retrieval.js +0 -1
  1255. package/dist/translations/nb/shared.js +0 -1
  1256. package/dist/translations/nb/utility.js +0 -1
  1257. package/dist/translations/nb/viewers.js +0 -5
  1258. package/dist/translations/nb.js +0 -1
  1259. package/dist/translations/ne/agent-tools.js +0 -1
  1260. package/dist/translations/ne/charts.js +0 -1
  1261. package/dist/translations/ne/conversation.js +0 -1
  1262. package/dist/translations/ne/data.js +0 -1
  1263. package/dist/translations/ne/forms.js +0 -1
  1264. package/dist/translations/ne/layout.js +0 -1
  1265. package/dist/translations/ne/media.js +0 -1
  1266. package/dist/translations/ne/overlays.js +0 -1
  1267. package/dist/translations/ne/retrieval.js +0 -1
  1268. package/dist/translations/ne/shared.js +0 -1
  1269. package/dist/translations/ne/utility.js +0 -1
  1270. package/dist/translations/ne/viewers.js +0 -5
  1271. package/dist/translations/ne.js +0 -1
  1272. package/dist/translations/nl/agent-tools.js +0 -1
  1273. package/dist/translations/nl/charts.js +0 -1
  1274. package/dist/translations/nl/conversation.js +0 -1
  1275. package/dist/translations/nl/data.js +0 -1
  1276. package/dist/translations/nl/forms.js +0 -1
  1277. package/dist/translations/nl/layout.js +0 -1
  1278. package/dist/translations/nl/media.js +0 -1
  1279. package/dist/translations/nl/overlays.js +0 -1
  1280. package/dist/translations/nl/retrieval.js +0 -1
  1281. package/dist/translations/nl/shared.js +0 -1
  1282. package/dist/translations/nl/utility.js +0 -1
  1283. package/dist/translations/nl/viewers.js +0 -5
  1284. package/dist/translations/nl.js +0 -1
  1285. package/dist/translations/nn/agent-tools.js +0 -1
  1286. package/dist/translations/nn/charts.js +0 -1
  1287. package/dist/translations/nn/conversation.js +0 -1
  1288. package/dist/translations/nn/data.js +0 -1
  1289. package/dist/translations/nn/forms.js +0 -1
  1290. package/dist/translations/nn/layout.js +0 -1
  1291. package/dist/translations/nn/media.js +0 -1
  1292. package/dist/translations/nn/overlays.js +0 -1
  1293. package/dist/translations/nn/retrieval.js +0 -1
  1294. package/dist/translations/nn/shared.js +0 -1
  1295. package/dist/translations/nn/utility.js +0 -1
  1296. package/dist/translations/nn/viewers.js +0 -5
  1297. package/dist/translations/nn.js +0 -1
  1298. package/dist/translations/om/agent-tools.js +0 -1
  1299. package/dist/translations/om/charts.js +0 -1
  1300. package/dist/translations/om/conversation.js +0 -1
  1301. package/dist/translations/om/data.js +0 -1
  1302. package/dist/translations/om/forms.js +0 -1
  1303. package/dist/translations/om/layout.js +0 -1
  1304. package/dist/translations/om/media.js +0 -1
  1305. package/dist/translations/om/overlays.js +0 -1
  1306. package/dist/translations/om/retrieval.js +0 -1
  1307. package/dist/translations/om/shared.js +0 -1
  1308. package/dist/translations/om/utility.js +0 -1
  1309. package/dist/translations/om/viewers.js +0 -5
  1310. package/dist/translations/om.js +0 -1
  1311. package/dist/translations/or/agent-tools.js +0 -1
  1312. package/dist/translations/or/charts.js +0 -1
  1313. package/dist/translations/or/conversation.js +0 -1
  1314. package/dist/translations/or/data.js +0 -1
  1315. package/dist/translations/or/forms.js +0 -1
  1316. package/dist/translations/or/layout.js +0 -1
  1317. package/dist/translations/or/media.js +0 -1
  1318. package/dist/translations/or/overlays.js +0 -1
  1319. package/dist/translations/or/retrieval.js +0 -1
  1320. package/dist/translations/or/shared.js +0 -1
  1321. package/dist/translations/or/utility.js +0 -1
  1322. package/dist/translations/or/viewers.js +0 -5
  1323. package/dist/translations/or.js +0 -1
  1324. package/dist/translations/pa/agent-tools.js +0 -1
  1325. package/dist/translations/pa/charts.js +0 -1
  1326. package/dist/translations/pa/conversation.js +0 -1
  1327. package/dist/translations/pa/data.js +0 -1
  1328. package/dist/translations/pa/forms.js +0 -1
  1329. package/dist/translations/pa/layout.js +0 -1
  1330. package/dist/translations/pa/media.js +0 -1
  1331. package/dist/translations/pa/overlays.js +0 -1
  1332. package/dist/translations/pa/retrieval.js +0 -1
  1333. package/dist/translations/pa/shared.js +0 -1
  1334. package/dist/translations/pa/utility.js +0 -1
  1335. package/dist/translations/pa/viewers.js +0 -5
  1336. package/dist/translations/pa.js +0 -1
  1337. package/dist/translations/pcm/agent-tools.js +0 -1
  1338. package/dist/translations/pcm/charts.js +0 -1
  1339. package/dist/translations/pcm/conversation.js +0 -1
  1340. package/dist/translations/pcm/data.js +0 -1
  1341. package/dist/translations/pcm/forms.js +0 -1
  1342. package/dist/translations/pcm/layout.js +0 -1
  1343. package/dist/translations/pcm/media.js +0 -1
  1344. package/dist/translations/pcm/overlays.js +0 -1
  1345. package/dist/translations/pcm/retrieval.js +0 -1
  1346. package/dist/translations/pcm/shared.js +0 -1
  1347. package/dist/translations/pcm/utility.js +0 -1
  1348. package/dist/translations/pcm/viewers.js +0 -5
  1349. package/dist/translations/pcm.js +0 -1
  1350. package/dist/translations/pl/agent-tools.js +0 -1
  1351. package/dist/translations/pl/charts.js +0 -1
  1352. package/dist/translations/pl/conversation.js +0 -1
  1353. package/dist/translations/pl/data.js +0 -1
  1354. package/dist/translations/pl/forms.js +0 -1
  1355. package/dist/translations/pl/layout.js +0 -1
  1356. package/dist/translations/pl/media.js +0 -1
  1357. package/dist/translations/pl/overlays.js +0 -1
  1358. package/dist/translations/pl/retrieval.js +0 -1
  1359. package/dist/translations/pl/shared.js +0 -1
  1360. package/dist/translations/pl/utility.js +0 -1
  1361. package/dist/translations/pl/viewers.js +0 -5
  1362. package/dist/translations/pl.js +0 -1
  1363. package/dist/translations/pnb/agent-tools.js +0 -1
  1364. package/dist/translations/pnb/charts.js +0 -1
  1365. package/dist/translations/pnb/conversation.js +0 -1
  1366. package/dist/translations/pnb/data.js +0 -1
  1367. package/dist/translations/pnb/forms.js +0 -1
  1368. package/dist/translations/pnb/layout.js +0 -1
  1369. package/dist/translations/pnb/media.js +0 -1
  1370. package/dist/translations/pnb/overlays.js +0 -1
  1371. package/dist/translations/pnb/retrieval.js +0 -1
  1372. package/dist/translations/pnb/shared.js +0 -1
  1373. package/dist/translations/pnb/utility.js +0 -1
  1374. package/dist/translations/pnb/viewers.js +0 -5
  1375. package/dist/translations/pnb.js +0 -1
  1376. package/dist/translations/ps/agent-tools.js +0 -1
  1377. package/dist/translations/ps/charts.js +0 -1
  1378. package/dist/translations/ps/conversation.js +0 -1
  1379. package/dist/translations/ps/data.js +0 -1
  1380. package/dist/translations/ps/forms.js +0 -1
  1381. package/dist/translations/ps/layout.js +0 -1
  1382. package/dist/translations/ps/media.js +0 -1
  1383. package/dist/translations/ps/overlays.js +0 -1
  1384. package/dist/translations/ps/retrieval.js +0 -1
  1385. package/dist/translations/ps/shared.js +0 -1
  1386. package/dist/translations/ps/utility.js +0 -1
  1387. package/dist/translations/ps/viewers.js +0 -5
  1388. package/dist/translations/ps.js +0 -1
  1389. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1390. package/dist/translations/pt-BR/charts.js +0 -1
  1391. package/dist/translations/pt-BR/conversation.js +0 -1
  1392. package/dist/translations/pt-BR/data.js +0 -1
  1393. package/dist/translations/pt-BR/forms.js +0 -1
  1394. package/dist/translations/pt-BR/layout.js +0 -1
  1395. package/dist/translations/pt-BR/media.js +0 -1
  1396. package/dist/translations/pt-BR/overlays.js +0 -1
  1397. package/dist/translations/pt-BR/retrieval.js +0 -1
  1398. package/dist/translations/pt-BR/shared.js +0 -1
  1399. package/dist/translations/pt-BR/utility.js +0 -1
  1400. package/dist/translations/pt-BR/viewers.js +0 -5
  1401. package/dist/translations/pt-BR.js +0 -1
  1402. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1403. package/dist/translations/pt-PT/charts.js +0 -1
  1404. package/dist/translations/pt-PT/conversation.js +0 -1
  1405. package/dist/translations/pt-PT/data.js +0 -1
  1406. package/dist/translations/pt-PT/forms.js +0 -1
  1407. package/dist/translations/pt-PT/layout.js +0 -1
  1408. package/dist/translations/pt-PT/media.js +0 -1
  1409. package/dist/translations/pt-PT/overlays.js +0 -1
  1410. package/dist/translations/pt-PT/retrieval.js +0 -1
  1411. package/dist/translations/pt-PT/shared.js +0 -1
  1412. package/dist/translations/pt-PT/utility.js +0 -1
  1413. package/dist/translations/pt-PT/viewers.js +0 -5
  1414. package/dist/translations/pt-PT.js +0 -1
  1415. package/dist/translations/ro/agent-tools.js +0 -1
  1416. package/dist/translations/ro/charts.js +0 -1
  1417. package/dist/translations/ro/conversation.js +0 -1
  1418. package/dist/translations/ro/data.js +0 -1
  1419. package/dist/translations/ro/forms.js +0 -1
  1420. package/dist/translations/ro/layout.js +0 -1
  1421. package/dist/translations/ro/media.js +0 -1
  1422. package/dist/translations/ro/overlays.js +0 -1
  1423. package/dist/translations/ro/retrieval.js +0 -1
  1424. package/dist/translations/ro/shared.js +0 -1
  1425. package/dist/translations/ro/utility.js +0 -1
  1426. package/dist/translations/ro/viewers.js +0 -5
  1427. package/dist/translations/ro.js +0 -1
  1428. package/dist/translations/ru/agent-tools.js +0 -1
  1429. package/dist/translations/ru/charts.js +0 -1
  1430. package/dist/translations/ru/conversation.js +0 -1
  1431. package/dist/translations/ru/data.js +0 -1
  1432. package/dist/translations/ru/forms.js +0 -1
  1433. package/dist/translations/ru/layout.js +0 -1
  1434. package/dist/translations/ru/media.js +0 -1
  1435. package/dist/translations/ru/overlays.js +0 -1
  1436. package/dist/translations/ru/retrieval.js +0 -1
  1437. package/dist/translations/ru/shared.js +0 -1
  1438. package/dist/translations/ru/utility.js +0 -1
  1439. package/dist/translations/ru/viewers.js +0 -5
  1440. package/dist/translations/ru.js +0 -1
  1441. package/dist/translations/sd/agent-tools.js +0 -1
  1442. package/dist/translations/sd/charts.js +0 -1
  1443. package/dist/translations/sd/conversation.js +0 -1
  1444. package/dist/translations/sd/data.js +0 -1
  1445. package/dist/translations/sd/forms.js +0 -1
  1446. package/dist/translations/sd/layout.js +0 -1
  1447. package/dist/translations/sd/media.js +0 -1
  1448. package/dist/translations/sd/overlays.js +0 -1
  1449. package/dist/translations/sd/retrieval.js +0 -1
  1450. package/dist/translations/sd/shared.js +0 -1
  1451. package/dist/translations/sd/utility.js +0 -1
  1452. package/dist/translations/sd/viewers.js +0 -5
  1453. package/dist/translations/sd.js +0 -1
  1454. package/dist/translations/sl/agent-tools.js +0 -1
  1455. package/dist/translations/sl/charts.js +0 -1
  1456. package/dist/translations/sl/conversation.js +0 -1
  1457. package/dist/translations/sl/data.js +0 -1
  1458. package/dist/translations/sl/forms.js +0 -1
  1459. package/dist/translations/sl/layout.js +0 -1
  1460. package/dist/translations/sl/media.js +0 -1
  1461. package/dist/translations/sl/overlays.js +0 -1
  1462. package/dist/translations/sl/retrieval.js +0 -1
  1463. package/dist/translations/sl/shared.js +0 -1
  1464. package/dist/translations/sl/utility.js +0 -1
  1465. package/dist/translations/sl/viewers.js +0 -5
  1466. package/dist/translations/sl.js +0 -1
  1467. package/dist/translations/su/agent-tools.js +0 -1
  1468. package/dist/translations/su/charts.js +0 -1
  1469. package/dist/translations/su/conversation.js +0 -1
  1470. package/dist/translations/su/data.js +0 -1
  1471. package/dist/translations/su/forms.js +0 -1
  1472. package/dist/translations/su/layout.js +0 -1
  1473. package/dist/translations/su/media.js +0 -1
  1474. package/dist/translations/su/overlays.js +0 -1
  1475. package/dist/translations/su/retrieval.js +0 -1
  1476. package/dist/translations/su/shared.js +0 -1
  1477. package/dist/translations/su/utility.js +0 -1
  1478. package/dist/translations/su/viewers.js +0 -5
  1479. package/dist/translations/su.js +0 -1
  1480. package/dist/translations/sv/agent-tools.js +0 -1
  1481. package/dist/translations/sv/charts.js +0 -1
  1482. package/dist/translations/sv/conversation.js +0 -1
  1483. package/dist/translations/sv/data.js +0 -1
  1484. package/dist/translations/sv/forms.js +0 -1
  1485. package/dist/translations/sv/layout.js +0 -1
  1486. package/dist/translations/sv/media.js +0 -1
  1487. package/dist/translations/sv/overlays.js +0 -1
  1488. package/dist/translations/sv/retrieval.js +0 -1
  1489. package/dist/translations/sv/shared.js +0 -1
  1490. package/dist/translations/sv/utility.js +0 -1
  1491. package/dist/translations/sv/viewers.js +0 -5
  1492. package/dist/translations/sv.js +0 -1
  1493. package/dist/translations/sw/agent-tools.js +0 -1
  1494. package/dist/translations/sw/charts.js +0 -1
  1495. package/dist/translations/sw/conversation.js +0 -1
  1496. package/dist/translations/sw/data.js +0 -1
  1497. package/dist/translations/sw/forms.js +0 -1
  1498. package/dist/translations/sw/layout.js +0 -1
  1499. package/dist/translations/sw/media.js +0 -1
  1500. package/dist/translations/sw/overlays.js +0 -1
  1501. package/dist/translations/sw/retrieval.js +0 -1
  1502. package/dist/translations/sw/shared.js +0 -1
  1503. package/dist/translations/sw/utility.js +0 -1
  1504. package/dist/translations/sw/viewers.js +0 -5
  1505. package/dist/translations/sw.js +0 -1
  1506. package/dist/translations/ta/agent-tools.js +0 -1
  1507. package/dist/translations/ta/charts.js +0 -1
  1508. package/dist/translations/ta/conversation.js +0 -1
  1509. package/dist/translations/ta/data.js +0 -1
  1510. package/dist/translations/ta/forms.js +0 -1
  1511. package/dist/translations/ta/layout.js +0 -1
  1512. package/dist/translations/ta/media.js +0 -1
  1513. package/dist/translations/ta/overlays.js +0 -1
  1514. package/dist/translations/ta/retrieval.js +0 -1
  1515. package/dist/translations/ta/shared.js +0 -1
  1516. package/dist/translations/ta/utility.js +0 -1
  1517. package/dist/translations/ta/viewers.js +0 -5
  1518. package/dist/translations/ta.js +0 -1
  1519. package/dist/translations/te/agent-tools.js +0 -1
  1520. package/dist/translations/te/charts.js +0 -1
  1521. package/dist/translations/te/conversation.js +0 -1
  1522. package/dist/translations/te/data.js +0 -1
  1523. package/dist/translations/te/forms.js +0 -1
  1524. package/dist/translations/te/layout.js +0 -1
  1525. package/dist/translations/te/media.js +0 -1
  1526. package/dist/translations/te/overlays.js +0 -1
  1527. package/dist/translations/te/retrieval.js +0 -1
  1528. package/dist/translations/te/shared.js +0 -1
  1529. package/dist/translations/te/utility.js +0 -1
  1530. package/dist/translations/te/viewers.js +0 -5
  1531. package/dist/translations/te.js +0 -1
  1532. package/dist/translations/th/agent-tools.js +0 -1
  1533. package/dist/translations/th/charts.js +0 -1
  1534. package/dist/translations/th/conversation.js +0 -1
  1535. package/dist/translations/th/data.js +0 -1
  1536. package/dist/translations/th/forms.js +0 -1
  1537. package/dist/translations/th/layout.js +0 -1
  1538. package/dist/translations/th/media.js +0 -1
  1539. package/dist/translations/th/overlays.js +0 -1
  1540. package/dist/translations/th/retrieval.js +0 -1
  1541. package/dist/translations/th/shared.js +0 -1
  1542. package/dist/translations/th/utility.js +0 -1
  1543. package/dist/translations/th/viewers.js +0 -5
  1544. package/dist/translations/th.js +0 -1
  1545. package/dist/translations/tl/agent-tools.js +0 -1
  1546. package/dist/translations/tl/charts.js +0 -1
  1547. package/dist/translations/tl/conversation.js +0 -1
  1548. package/dist/translations/tl/data.js +0 -1
  1549. package/dist/translations/tl/forms.js +0 -1
  1550. package/dist/translations/tl/layout.js +0 -1
  1551. package/dist/translations/tl/media.js +0 -1
  1552. package/dist/translations/tl/overlays.js +0 -1
  1553. package/dist/translations/tl/retrieval.js +0 -1
  1554. package/dist/translations/tl/shared.js +0 -1
  1555. package/dist/translations/tl/utility.js +0 -1
  1556. package/dist/translations/tl/viewers.js +0 -5
  1557. package/dist/translations/tl.js +0 -1
  1558. package/dist/translations/tr/agent-tools.js +0 -1
  1559. package/dist/translations/tr/charts.js +0 -1
  1560. package/dist/translations/tr/conversation.js +0 -1
  1561. package/dist/translations/tr/data.js +0 -1
  1562. package/dist/translations/tr/forms.js +0 -1
  1563. package/dist/translations/tr/layout.js +0 -1
  1564. package/dist/translations/tr/media.js +0 -1
  1565. package/dist/translations/tr/overlays.js +0 -1
  1566. package/dist/translations/tr/retrieval.js +0 -1
  1567. package/dist/translations/tr/shared.js +0 -1
  1568. package/dist/translations/tr/utility.js +0 -1
  1569. package/dist/translations/tr/viewers.js +0 -5
  1570. package/dist/translations/tr.js +0 -1
  1571. package/dist/translations/uk/agent-tools.js +0 -1
  1572. package/dist/translations/uk/charts.js +0 -1
  1573. package/dist/translations/uk/conversation.js +0 -1
  1574. package/dist/translations/uk/data.js +0 -1
  1575. package/dist/translations/uk/forms.js +0 -1
  1576. package/dist/translations/uk/layout.js +0 -1
  1577. package/dist/translations/uk/media.js +0 -1
  1578. package/dist/translations/uk/overlays.js +0 -1
  1579. package/dist/translations/uk/retrieval.js +0 -1
  1580. package/dist/translations/uk/shared.js +0 -1
  1581. package/dist/translations/uk/utility.js +0 -1
  1582. package/dist/translations/uk/viewers.js +0 -5
  1583. package/dist/translations/uk.js +0 -1
  1584. package/dist/translations/ur/agent-tools.js +0 -1
  1585. package/dist/translations/ur/charts.js +0 -1
  1586. package/dist/translations/ur/conversation.js +0 -1
  1587. package/dist/translations/ur/data.js +0 -1
  1588. package/dist/translations/ur/forms.js +0 -1
  1589. package/dist/translations/ur/layout.js +0 -1
  1590. package/dist/translations/ur/media.js +0 -1
  1591. package/dist/translations/ur/overlays.js +0 -1
  1592. package/dist/translations/ur/retrieval.js +0 -1
  1593. package/dist/translations/ur/shared.js +0 -1
  1594. package/dist/translations/ur/utility.js +0 -1
  1595. package/dist/translations/ur/viewers.js +0 -5
  1596. package/dist/translations/ur.js +0 -1
  1597. package/dist/translations/uz/agent-tools.js +0 -1
  1598. package/dist/translations/uz/charts.js +0 -1
  1599. package/dist/translations/uz/conversation.js +0 -1
  1600. package/dist/translations/uz/data.js +0 -1
  1601. package/dist/translations/uz/forms.js +0 -1
  1602. package/dist/translations/uz/layout.js +0 -1
  1603. package/dist/translations/uz/media.js +0 -1
  1604. package/dist/translations/uz/overlays.js +0 -1
  1605. package/dist/translations/uz/retrieval.js +0 -1
  1606. package/dist/translations/uz/shared.js +0 -1
  1607. package/dist/translations/uz/utility.js +0 -1
  1608. package/dist/translations/uz/viewers.js +0 -5
  1609. package/dist/translations/uz.js +0 -1
  1610. package/dist/translations/vi/agent-tools.js +0 -1
  1611. package/dist/translations/vi/charts.js +0 -1
  1612. package/dist/translations/vi/conversation.js +0 -1
  1613. package/dist/translations/vi/data.js +0 -1
  1614. package/dist/translations/vi/forms.js +0 -1
  1615. package/dist/translations/vi/layout.js +0 -1
  1616. package/dist/translations/vi/media.js +0 -1
  1617. package/dist/translations/vi/overlays.js +0 -1
  1618. package/dist/translations/vi/retrieval.js +0 -1
  1619. package/dist/translations/vi/shared.js +0 -1
  1620. package/dist/translations/vi/utility.js +0 -1
  1621. package/dist/translations/vi/viewers.js +0 -5
  1622. package/dist/translations/vi.js +0 -1
  1623. package/dist/translations/yo/agent-tools.js +0 -1
  1624. package/dist/translations/yo/charts.js +0 -1
  1625. package/dist/translations/yo/conversation.js +0 -1
  1626. package/dist/translations/yo/data.js +0 -1
  1627. package/dist/translations/yo/forms.js +0 -1
  1628. package/dist/translations/yo/layout.js +0 -1
  1629. package/dist/translations/yo/media.js +0 -1
  1630. package/dist/translations/yo/overlays.js +0 -1
  1631. package/dist/translations/yo/retrieval.js +0 -1
  1632. package/dist/translations/yo/shared.js +0 -1
  1633. package/dist/translations/yo/utility.js +0 -1
  1634. package/dist/translations/yo/viewers.js +0 -5
  1635. package/dist/translations/yo.js +0 -1
  1636. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1637. package/dist/translations/zh-CN/charts.js +0 -1
  1638. package/dist/translations/zh-CN/conversation.js +0 -1
  1639. package/dist/translations/zh-CN/data.js +0 -1
  1640. package/dist/translations/zh-CN/forms.js +0 -1
  1641. package/dist/translations/zh-CN/layout.js +0 -1
  1642. package/dist/translations/zh-CN/media.js +0 -1
  1643. package/dist/translations/zh-CN/overlays.js +0 -1
  1644. package/dist/translations/zh-CN/retrieval.js +0 -1
  1645. package/dist/translations/zh-CN/shared.js +0 -1
  1646. package/dist/translations/zh-CN/utility.js +0 -1
  1647. package/dist/translations/zh-CN/viewers.js +0 -5
  1648. package/dist/translations/zh-CN.js +0 -1
  1649. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1650. package/dist/translations/zh-TW/charts.js +0 -1
  1651. package/dist/translations/zh-TW/conversation.js +0 -1
  1652. package/dist/translations/zh-TW/data.js +0 -1
  1653. package/dist/translations/zh-TW/forms.js +0 -1
  1654. package/dist/translations/zh-TW/layout.js +0 -1
  1655. package/dist/translations/zh-TW/media.js +0 -1
  1656. package/dist/translations/zh-TW/overlays.js +0 -1
  1657. package/dist/translations/zh-TW/retrieval.js +0 -1
  1658. package/dist/translations/zh-TW/shared.js +0 -1
  1659. package/dist/translations/zh-TW/utility.js +0 -1
  1660. package/dist/translations/zh-TW/viewers.js +0 -5
  1661. package/dist/translations/zh-TW.js +0 -1
  1662. package/dist/translations/zu/agent-tools.js +0 -1
  1663. package/dist/translations/zu/charts.js +0 -1
  1664. package/dist/translations/zu/conversation.js +0 -1
  1665. package/dist/translations/zu/data.js +0 -1
  1666. package/dist/translations/zu/forms.js +0 -1
  1667. package/dist/translations/zu/layout.js +0 -1
  1668. package/dist/translations/zu/media.js +0 -1
  1669. package/dist/translations/zu/overlays.js +0 -1
  1670. package/dist/translations/zu/retrieval.js +0 -1
  1671. package/dist/translations/zu/shared.js +0 -1
  1672. package/dist/translations/zu/utility.js +0 -1
  1673. package/dist/translations/zu/viewers.js +0 -5
  1674. package/dist/translations/zu.js +0 -1
  1675. package/vscode-css-data.json +0 -1
  1676. package/vscode-html-data.json +0 -1
  1677. package/web-types.json +0 -1
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter}from"../../../internal/converters.js";import{nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{tag}from"../../../internal/prefix.js";import{observeScrollOverflow,SCROLL_OVERFLOW_ATTRIBUTE}from"../../../internal/scroll-overflow.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{projectedRedactionFields,redactToolDetail,TOO_MANY_REDACTION_PATHS}from"../tool-redaction.js";import{styles}from"./tool-call-block.styles.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall,LYRA_DEFAULT_toolCallBlockArgumentsLabel,LYRA_DEFAULT_toolCallBlockErrorLabel,LYRA_DEFAULT_toolCallBlockHeaderDenied,LYRA_DEFAULT_toolCallBlockHeaderError,LYRA_DEFAULT_toolCallBlockHeaderIncomplete,LYRA_DEFAULT_toolCallBlockHeaderPending,LYRA_DEFAULT_toolCallBlockHeaderRunning,LYRA_DEFAULT_toolCallBlockHeaderSuccess,LYRA_DEFAULT_toolCallBlockResultLabel}from"../../../internal/default-strings.generated.js";const TOOL_CALL_BLOCK_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending"),HEADER_KEY={pending:"toolCallBlockHeaderPending",running:"toolCallBlockHeaderRunning",success:"toolCallBlockHeaderSuccess",error:"toolCallBlockHeaderError",denied:"toolCallBlockHeaderDenied",incomplete:"toolCallBlockHeaderIncomplete"};function argsPresent(args){if(args==null)return!1;if(typeof args!="object")return!0;try{const prototype=Object.getPrototypeOf(args);return prototype!==Object.prototype&&prototype!==null?!0:Object.keys(args).length>0}catch{return!0}}class LyraToolCallBlock extends LyraElement{constructor(){super(...arguments),this.name="",this.callId="",this.statusValue="pending",this.expanded=!1,this.redactedFields=[],this.bodyId=nextId("tool-call-block-body"),this.labelId=nextId("tool-call-block-label"),this.argsLabelId=nextId("tool-call-block-args-label"),this.resultLabelId=nextId("tool-call-block-result-label"),this.errorLabelId=nextId("tool-call-block-error-label"),this.projectedPaths=[],this.restoreFocusToHeader=!1,this.resultOverflow=observeScrollOverflow(this,()=>this.renderRoot?.querySelector('[part="result"]'),()=>this.syncResultScrollStop()),this.onHeaderClick=()=>{this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded,callId:this.callId})},this.onRenderError=event=>{event.stopPropagation(),this.emit("lr-render-error",{toolName:event.detail.toolName,error:event.detail.error,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,envListValueHidden:LYRA_DEFAULT_envListValueHidden,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall,toolCallBlockArgumentsLabel:LYRA_DEFAULT_toolCallBlockArgumentsLabel,toolCallBlockErrorLabel:LYRA_DEFAULT_toolCallBlockErrorLabel,toolCallBlockHeaderDenied:LYRA_DEFAULT_toolCallBlockHeaderDenied,toolCallBlockHeaderError:LYRA_DEFAULT_toolCallBlockHeaderError,toolCallBlockHeaderIncomplete:LYRA_DEFAULT_toolCallBlockHeaderIncomplete,toolCallBlockHeaderPending:LYRA_DEFAULT_toolCallBlockHeaderPending,toolCallBlockHeaderRunning:LYRA_DEFAULT_toolCallBlockHeaderRunning,toolCallBlockHeaderSuccess:LYRA_DEFAULT_toolCallBlockHeaderSuccess,toolCallBlockResultLabel:LYRA_DEFAULT_toolCallBlockResultLabel}}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["redactedFields"])}get status(){return this.statusValue}set status(next){const normalized=TOOL_CALL_BLOCK_STATUS.normalizeReflected(this,"status",next),old=this.statusValue;old!==normalized&&(this.statusValue=normalized,this.requestUpdate("status",old))}willUpdate(changed){if(super.willUpdate(changed),(!this.hasUpdated||changed.has("redactedFields"))&&(this.projectedPaths=projectedRedactionFields(this.redactedFields)??TOO_MANY_REDACTION_PATHS),this.hasUpdated&&changed.get("expanded")===!0&&!this.expanded){const root=this.renderRoot;this.restoreFocusToHeader=!!root?.querySelector('[part="body"]')?.contains(root.activeElement)}}updated(changed){super.updated(changed);const view=this.renderRoot.querySelector(tag("tool-result-view"));view&&this.resultOverflow.observeExtra([view]),this.syncResultScrollStop(),this.restoreFocusToHeader&&(this.restoreFocusToHeader=!1,this.renderRoot.querySelector('[part="header"]')?.focus())}syncResultScrollStop(){const result=this.renderRoot?.querySelector('[part="result"]');result&&(result.hasAttribute(SCROLL_OVERFLOW_ATTRIBUTE)?result.setAttribute("tabindex","0"):result.removeAttribute("tabindex"))}detail(){const detail=redactToolDetail({args:this.args,result:this.result,error:this.errorText},this.projectedPaths,this.localize("envListValueHidden"),this.detailMemo?.detail);return detail!==this.detailMemo?.detail&&(this.detailMemo={detail,hasArgs:argsPresent(this.args)}),this.detailMemo}get safeDurationMs(){return safeDurationMs(this.durationMs)}durationText(){const ms=this.safeDurationMs;return ms==null?null:formatShortDuration(this.localize.bind(this),this.effectiveLocale,ms)}emptyText(){return this.status==="pending"?this.localize("statusPending"):this.status==="running"?this.localize("statusRunning"):this.localize("noData")}bodyTemplate(){const memo=this.detail(),{detail,hasArgs}=memo,empty=!hasArgs&&!(typeof detail.sourceError=="string"&&detail.sourceError!=="")&&detail.sourceResult===void 0,labels=[this.localize("toolCallBlockArgumentsLabel"),this.localize("toolCallBlockErrorLabel"),this.localize("toolCallBlockResultLabel"),empty?this.emptyText():""];return html`${guard([memo,this.name,this.onRenderError,...labels],()=>this.sectionsTemplate(memo,labels))}`}sectionsTemplate({detail,hasArgs},[argsLabel,errorLabel,resultLabel,emptyText]){const hasError=typeof detail.sourceError=="string"&&detail.sourceError!=="",hasResult=detail.sourceResult!==void 0;return!hasArgs&&!hasError&&!hasResult?html`<p part="empty">${emptyText}</p>`:html`
1
+ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter}from"../../../internal/converters.js";import{nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{tag}from"../../../internal/prefix.js";import{observeScrollOverflow,SCROLL_OVERFLOW_ATTRIBUTE}from"../../../internal/scroll-overflow.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{projectedRedactionFields,redactToolDetail,TOO_MANY_REDACTION_PATHS}from"../tool-redaction.js";import{styles}from"./tool-call-block.styles.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{LYRA_DEFAULT_toolCall,LYRA_DEFAULT_toolCallBlockArgumentsLabel,LYRA_DEFAULT_toolCallBlockErrorLabel,LYRA_DEFAULT_toolCallBlockHeaderDenied,LYRA_DEFAULT_toolCallBlockHeaderError,LYRA_DEFAULT_toolCallBlockHeaderIncomplete,LYRA_DEFAULT_toolCallBlockHeaderPending,LYRA_DEFAULT_toolCallBlockHeaderRunning,LYRA_DEFAULT_toolCallBlockHeaderSuccess,LYRA_DEFAULT_toolCallBlockResultLabel}from"../../../internal/default-strings/agent-tools.generated.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_date,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings/shared.generated.js";const TOOL_CALL_BLOCK_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending"),HEADER_KEY={pending:"toolCallBlockHeaderPending",running:"toolCallBlockHeaderRunning",success:"toolCallBlockHeaderSuccess",error:"toolCallBlockHeaderError",denied:"toolCallBlockHeaderDenied",incomplete:"toolCallBlockHeaderIncomplete"};function argsPresent(args){if(args==null)return!1;if(typeof args!="object")return!0;try{const prototype=Object.getPrototypeOf(args);return prototype!==Object.prototype&&prototype!==null?!0:Object.keys(args).length>0}catch{return!0}}class LyraToolCallBlock extends LyraElement{constructor(){super(...arguments),this.name="",this.callId="",this.statusValue="pending",this.expanded=!1,this.redactedFields=[],this.bodyId=nextId("tool-call-block-body"),this.labelId=nextId("tool-call-block-label"),this.argsLabelId=nextId("tool-call-block-args-label"),this.resultLabelId=nextId("tool-call-block-result-label"),this.errorLabelId=nextId("tool-call-block-error-label"),this.projectedPaths=[],this.restoreFocusToHeader=!1,this.resultOverflow=observeScrollOverflow(this,()=>this.renderRoot?.querySelector('[part="result"]'),()=>this.syncResultScrollStop()),this.onHeaderClick=()=>{this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded,callId:this.callId})},this.onRenderError=event=>{event.stopPropagation(),this.emit("lr-render-error",{toolName:event.detail.toolName,error:event.detail.error,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,date:LYRA_DEFAULT_date,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,envListValueHidden:LYRA_DEFAULT_envListValueHidden,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall,toolCallBlockArgumentsLabel:LYRA_DEFAULT_toolCallBlockArgumentsLabel,toolCallBlockErrorLabel:LYRA_DEFAULT_toolCallBlockErrorLabel,toolCallBlockHeaderDenied:LYRA_DEFAULT_toolCallBlockHeaderDenied,toolCallBlockHeaderError:LYRA_DEFAULT_toolCallBlockHeaderError,toolCallBlockHeaderIncomplete:LYRA_DEFAULT_toolCallBlockHeaderIncomplete,toolCallBlockHeaderPending:LYRA_DEFAULT_toolCallBlockHeaderPending,toolCallBlockHeaderRunning:LYRA_DEFAULT_toolCallBlockHeaderRunning,toolCallBlockHeaderSuccess:LYRA_DEFAULT_toolCallBlockHeaderSuccess,toolCallBlockResultLabel:LYRA_DEFAULT_toolCallBlockResultLabel}}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["redactedFields"])}get status(){return this.statusValue}set status(next){const normalized=TOOL_CALL_BLOCK_STATUS.normalizeReflected(this,"status",next),old=this.statusValue;old!==normalized&&(this.statusValue=normalized,this.requestUpdate("status",old))}willUpdate(changed){super.willUpdate(changed),(!this.hasUpdated||changed.has("redactedFields"))&&(this.projectedPaths=projectedRedactionFields(this.redactedFields)??TOO_MANY_REDACTION_PATHS),this.hasUpdated&&changed.get("expanded")===!0&&!this.expanded&&(this.restoreFocusToHeader=!!this.renderRoot?.querySelector('[part="body"]')?.contains(shadowFocusTarget(this)))}updated(changed){super.updated(changed);const view=this.renderRoot.querySelector(tag("tool-result-view"));view&&this.resultOverflow.observeExtra([view]),this.syncResultScrollStop(),this.restoreFocusToHeader&&(this.restoreFocusToHeader=!1,this.renderRoot.querySelector('[part="header"]')?.focus())}syncResultScrollStop(){const result=this.renderRoot?.querySelector('[part="result"]');result&&(result.hasAttribute(SCROLL_OVERFLOW_ATTRIBUTE)?result.setAttribute("tabindex","0"):result.removeAttribute("tabindex"))}detail(){const detail=redactToolDetail({args:this.args,result:this.result,error:this.errorText},this.projectedPaths,this.localize("envListValueHidden"),this.detailMemo?.detail);return detail!==this.detailMemo?.detail&&(this.detailMemo={detail,hasArgs:argsPresent(this.args)}),this.detailMemo}get safeDurationMs(){return safeDurationMs(this.durationMs)}durationText(){const ms=this.safeDurationMs;return ms==null?null:formatShortDuration(this.localize.bind(this),this.effectiveLocale,ms)}emptyText(){return this.status==="pending"?this.localize("statusPending"):this.status==="running"?this.localize("statusRunning"):this.localize("noData")}bodyTemplate(){const memo=this.detail(),{detail,hasArgs}=memo,empty=!hasArgs&&!(typeof detail.sourceError=="string"&&detail.sourceError!=="")&&detail.sourceResult===void 0,labels=[this.localize("toolCallBlockArgumentsLabel"),this.localize("toolCallBlockErrorLabel"),this.localize("toolCallBlockResultLabel"),empty?this.emptyText():""];return html`${guard([memo,this.name,this.onRenderError,...labels],()=>this.sectionsTemplate(memo,labels))}`}sectionsTemplate({detail,hasArgs},[argsLabel,errorLabel,resultLabel,emptyText]){const hasError=typeof detail.sourceError=="string"&&detail.sourceError!=="",hasResult=detail.sourceResult!==void 0;return!hasArgs&&!hasError&&!hasResult?html`<p part="empty">${emptyText}</p>`:html`
2
2
  ${hasArgs?html`<div part="args" role="group" aria-labelledby=${this.argsLabelId}>
3
3
  <div part="args-label" id=${this.argsLabelId}>${argsLabel}</div>
4
4
  <lr-json-viewer .data=${detail.args}></lr-json-viewer>
@@ -1 +1 @@
1
- import{disclosureHeader}from"../../../internal/layout-fragments.styles.js";import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{compactContainerQuery}from"../../../internal/container-breakpoints.styles.js";const styles=css` :host { display: block; container-type: inline-size; contain-intrinsic-inline-size: var(--lr-size-20rem); min-inline-size: 0; --_lr-tool-call-block-accent: var(--lr-color-text-quiet); } :host(:where([status='running'])) { --_lr-tool-call-block-accent: var(--lr-color-brand); } :host(:where([status='success'])) { --_lr-tool-call-block-accent: var(--lr-color-success); } :host(:where([status='error'])) { --_lr-tool-call-block-accent: var(--lr-color-danger); } :host(:where([status='denied'])) { --_lr-tool-call-block-accent: var(--lr-color-warning); } [part='base'] { border: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); border-radius: var(--lr-tool-call-block-radius, var(--lr-radius)); background: var(--lr-tool-call-block-bg, var(--lr-color-surface)); overflow: clip; } [part='header'] { ${disclosureHeader} flex-wrap: wrap; ${iconHitTarget} box-sizing: border-box; font-size: var(--lr-font-size-md-sm); font-weight: var(--lr-font-weight-semibold); transition: var(--lr-transition-interactive); } [part='status-text'], [part='duration'] { font-size: var(--lr-font-size-sm); font-weight: var(--lr-font-weight-normal); color: var(--lr-color-text-quiet); } [part='duration'] { font-variant-numeric: tabular-nums; } [part='label'] { flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow-wrap: anywhere; } :where([part='header']):hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } :where([part='header']):hover :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); color: var(--lr-color-text); } :where([part='header']):active :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):focus-visible, :where([part='result']):focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(-1 * var(--lr-focus-ring-width)); } [part='icon'] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-block-accent, var(--_lr-tool-call-block-accent)); } [part='icon'] svg { display: block; } :host(:where([status='running'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-call-block-spin var(--lr-transition-ambient) infinite); } :host(:where([status='pending'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-call-block-pulse var(--lr-transition-ambient) infinite); } [part='toggle'] { display: inline-flex; flex: 0 0 auto; transition: transform var(--lr-transition-fast); } :host(:where([expanded])) [part='toggle'] { transform: rotate(90deg); } :host(:where(:not([expanded]):dir(rtl))) [part='toggle'] { transform: scaleX(-1); } [part='body'] { border-block-start: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); padding: var(--lr-space-s) var(--lr-space-m); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lr-space-s); min-inline-size: 0; overflow-wrap: anywhere; } [part='body'][hidden] { display: none; } [part='args'], [part='result'], [part='error'] { min-inline-size: 0; } [part='args'], [part='result'] { overflow-x: auto; } [part='args-label'], [part='result-label'], [part='error-label'] { font-size: var(--lr-font-size-xs); font-weight: var(--lr-font-weight-medium); color: var(--lr-color-text-quiet); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); } [part='error'] { color: var(--lr-tool-call-block-error-color, var(--lr-color-danger)); } [part='error'] p, [part='empty'] { margin: 0; } @container ${compactContainerQuery} { [part='header'], [part='body'] { padding: var(--lr-space-xs) var(--lr-space-s); } } @keyframes lr-tool-call-block-spin { to { transform: rotate(360deg); } } @keyframes lr-tool-call-block-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } } @media (prefers-reduced-motion: reduce) { [part='icon'] svg { animation: none !important; } [part='toggle'] { transition: none !important; } } @media (forced-colors: active) { :where([part='header']):hover { outline: var(--lr-border-width-thin) solid Highlight; outline-offset: calc(-1 * var(--lr-border-width-thin)); } } `;export{styles};
1
+ import{toolStatusKeyframes}from"../tool-status.styles.js";import{disclosureHeader}from"../../../internal/layout-fragments.styles.js";import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{compactContainerQuery}from"../../../internal/container-breakpoints.styles.js";const styles=css` :host { display: block; container-type: inline-size; contain-intrinsic-inline-size: var(--lr-size-20rem); min-inline-size: 0; --_lr-tool-call-block-accent: var(--lr-color-text-quiet); } :host(:where([status='running'])) { --_lr-tool-call-block-accent: var(--lr-color-brand); } :host(:where([status='success'])) { --_lr-tool-call-block-accent: var(--lr-color-success); } :host(:where([status='error'])) { --_lr-tool-call-block-accent: var(--lr-color-danger); } :host(:where([status='denied'])) { --_lr-tool-call-block-accent: var(--lr-color-warning); } [part='base'] { border: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); border-radius: var(--lr-tool-call-block-radius, var(--lr-radius)); background: var(--lr-tool-call-block-bg, var(--lr-color-surface)); overflow: clip; } [part='header'] { ${disclosureHeader} flex-wrap: wrap; ${iconHitTarget} box-sizing: border-box; font-size: var(--lr-font-size-md-sm); font-weight: var(--lr-font-weight-semibold); transition: var(--lr-transition-interactive); } [part='status-text'], [part='duration'] { font-size: var(--lr-font-size-sm); font-weight: var(--lr-font-weight-normal); color: var(--lr-color-text-quiet); } [part='duration'] { font-variant-numeric: tabular-nums; } [part='label'] { flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow-wrap: anywhere; } :where([part='header']):hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } :where([part='header']):hover :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); color: var(--lr-color-text); } :where([part='header']):active :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):focus-visible, :where([part='result']):focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(-1 * var(--lr-focus-ring-width)); } [part='icon'] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-block-accent, var(--_lr-tool-call-block-accent)); } [part='icon'] svg { display: block; } :host(:where([status='running'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-status-spin var(--lr-transition-ambient) infinite); } :host(:where([status='pending'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-status-pulse var(--lr-transition-ambient) infinite); } [part='toggle'] { display: inline-flex; flex: 0 0 auto; transition: transform var(--lr-transition-fast); } :host(:where([expanded])) [part='toggle'] { transform: rotate(90deg); } :host(:where(:not([expanded]):dir(rtl))) [part='toggle'] { transform: scaleX(-1); } [part='body'] { border-block-start: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); padding: var(--lr-space-s) var(--lr-space-m); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lr-space-s); min-inline-size: 0; overflow-wrap: anywhere; } [part='body'][hidden] { display: none; } [part='args'], [part='result'], [part='error'] { min-inline-size: 0; } [part='args'], [part='result'] { overflow-x: auto; } [part='args-label'], [part='result-label'], [part='error-label'] { font-size: var(--lr-font-size-xs); font-weight: var(--lr-font-weight-medium); color: var(--lr-color-text-quiet); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); } [part='error'] { color: var(--lr-tool-call-block-error-color, var(--lr-color-danger)); } [part='error'] p, [part='empty'] { margin: 0; } @container ${compactContainerQuery} { [part='header'], [part='body'] { padding: var(--lr-space-xs) var(--lr-space-s); } } @media (prefers-reduced-motion: reduce) { [part='icon'] svg { animation: none !important; } [part='toggle'] { transition: none !important; } } @media (forced-colors: active) { :where([part='header']):hover { outline: var(--lr-border-width-thin) solid Highlight; outline-offset: calc(-1 * var(--lr-border-width-thin)); } } ${toolStatusKeyframes} `;export{styles};
@@ -1,9 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraToolStatus}from'../../../internal/shared-unions.js';
2
- /** Same status vocabulary as `<lr-tool-result-dialog>`, so a call's chip
3
- * and its detail dialog always agree on icon/label/tone. `incomplete` marks
4
- * a call that ended without a result (an interrupted stream, a cancelled
5
- * run). */
6
- export type ToolCallStatus=LyraToolStatus|'incomplete';export interface ToolChipSelectDetail{name:string;callId:string;}export interface LyraToolCallChipEventMap{'lr-tool-call-chip-select':CustomEvent<ToolChipSelectDetail>;}
1
+ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type ToolStatus}from'../tool-status.js';export interface ToolChipSelectDetail{name:string;callId:string;}export interface LyraToolCallChipEventMap{'lr-tool-call-chip-select':CustomEvent<ToolChipSelectDetail>;}
7
2
  /**
8
3
  * `<lr-tool-call-chip>` — a compact inline pill representing one tool/
9
4
  * function call an agent made mid-conversation, e.g.
@@ -106,7 +101,7 @@ category:string;
106
101
  * keeps the neutral tone with its own static glyph and text. Unknown values
107
102
  * normalize and reflect as `pending`.
108
103
  */
109
- get status():ToolCallStatus;set status(next:ToolCallStatus);private statusValue;
104
+ get status():ToolStatus;set status(next:ToolStatus);private statusValue;
110
105
  /** Short human-readable status text, e.g. `Searching web…`. Removing the attribute clears its displayed text. */
111
106
  summary:string;
112
107
  /** How long the call took, in milliseconds. Omitted from the chip entirely when unset. */
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isKeyboardFocusEvent}from"../../../internal/focus-modality.js";import{deferredPlace as place}from"../../../internal/anchored-overlay-runtime.js";import{activateNonmodalOverlay}from"../../../internal/nonmodal-overlay-manager.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{nextId}from"../../../internal/a11y.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{literalSetConverter}from"../../../internal/converters.js";import{styles}from"./tool-call-chip.styles.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";const STATUS_ICON=toolStatusIcon,TOOL_CALL_CHIP_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending");class LyraToolCallChip extends LyraElement{constructor(){super(...arguments),this.name="",this.category="",this.statusValue="pending",this.summary="",this.icon="",this.callId="",this.hasDetailSlot=!1,this.tooltipOpen=!1,this.tooltipId=nextId("tool-call-chip-tooltip"),this.hovering=!1,this.focused=!1,this.focusDescribed=!1,this.onDetailSlotChange=e=>{this.hasDetailSlot=this.hasPreviewNodes(e.target.assignedNodes({flatten:!0})),this.hasDetailSlot||this.hideTooltip()},this.onMouseEnter=()=>{this.hovering=!0,this.showTooltip()},this.onMouseLeave=()=>{this.hovering=!1,!this.focused&&this.hideTooltip()},this.onFocus=event=>{this.focusDescribed=!0,isKeyboardFocusEvent(event)&&(this.focused=!0,this.showTooltip())},this.onBlur=()=>{this.focused=!1,this.focusDescribed=!1,!this.hovering&&this.hideTooltip()},this.onClick=()=>{this.emit("lr-tool-call-chip-select",{name:this.name,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}get status(){return this.statusValue}set status(next){const old=this.statusValue;this.statusValue=TOOL_CALL_CHIP_STATUS.normalizeReflected(this,"status",next),this.requestUpdate("status",old)}hasPreviewNodes(nodes){return nodes.some(node=>{if(node.nodeType===3)return!!node.textContent?.trim();if(node.nodeType!==1)return!1;const slotName=node.getAttribute("slot");return slotName===null||slotName===""})}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasDetailSlot=this.hasPreviewNodes(Array.from(this.childNodes)))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription()}syncExternalDescription(){const target=this.isConnected?this.baseEl??null:null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,target,"aria-describedby")}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("tooltipOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOverlay?.deactivate({restoreFocus:!1}),this.tooltipOverlay=void 0,this.tooltipOpen)){const anchor=this.renderRoot.querySelector('[part="base"]'),tooltip=this.renderRoot.querySelector('[part="tooltip"]');anchor&&tooltip&&(this.cleanupPositioner=place(anchor,tooltip,{placement:"top-start",strategy:resolveEffectivePositioningStrategy(this,void 0,"fixed")}),this.tooltipOverlay=activateNonmodalOverlay({host:this,panel:()=>tooltip,onEscape:()=>this.hideTooltip(),restoreFocusTo:null}))}}disconnectedCallback(){super.disconnectedCallback(),this.releaseExternalDescription(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOverlay?.deactivate({restoreFocus:!1}),this.tooltipOverlay=void 0,this.tooltipOpen=!1,this.hovering=!1,this.focused=!1,this.focusDescribed=!1}showTooltip(){!this.hasDetailSlot||this.tooltipOpen||(this.tooltipOpen=!0)}hideTooltip(){this.tooltipOpen&&(this.tooltipOpen=!1)}focus(options){this.baseEl?.focus(options)}blur(){this.baseEl?.blur()}click(){this.baseEl?.click()}get safeDurationMs(){return safeDurationMs(this.durationMs)}get shownName(){return this.displayName||this.name||this.localize("toolCall")}get accessibleLabel(){const parts=[this.shownName];this.summary&&parts.push(this.summary),parts.push(this.localize(TOOL_STATUS_LABEL_KEY[this.status]));const durationMs=this.safeDurationMs;return durationMs!=null&&parts.push(this.localizedDuration(durationMs)),parts.join(this.localize("accessibleLabelSeparator"))}localizedDuration(ms){return formatShortDuration(this.localize.bind(this),this.effectiveLocale,ms)}render(){const hasCategory=(this.category??"").length>0,hasSummary=(this.summary??"").length>0,durationMs=this.safeDurationMs,hasDuration=durationMs!=null,status=this.status;return html`
1
+ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isKeyboardFocusEvent}from"../../../internal/focus-modality.js";import{deferredPlace as place}from"../../../internal/anchored-overlay-runtime.js";import{activateNonmodalOverlay}from"../../../internal/nonmodal-overlay-manager.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{nextId}from"../../../internal/a11y.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{literalSetConverter}from"../../../internal/converters.js";import{styles}from"./tool-call-chip.styles.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings/agent-tools.generated.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings/shared.generated.js";const STATUS_ICON=toolStatusIcon,TOOL_CALL_CHIP_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending");class LyraToolCallChip extends LyraElement{constructor(){super(...arguments),this.name="",this.category="",this.statusValue="pending",this.summary="",this.icon="",this.callId="",this.hasDetailSlot=!1,this.tooltipOpen=!1,this.tooltipId=nextId("tool-call-chip-tooltip"),this.hovering=!1,this.focused=!1,this.focusDescribed=!1,this.onDetailSlotChange=e=>{this.hasDetailSlot=this.hasPreviewNodes(e.target.assignedNodes({flatten:!0})),this.hasDetailSlot||this.hideTooltip()},this.onMouseEnter=()=>{this.hovering=!0,this.showTooltip()},this.onMouseLeave=()=>{this.hovering=!1,!this.focused&&this.hideTooltip()},this.onFocus=event=>{this.focusDescribed=!0,isKeyboardFocusEvent(event)&&(this.focused=!0,this.showTooltip())},this.onBlur=()=>{this.focused=!1,this.focusDescribed=!1,!this.hovering&&this.hideTooltip()},this.onClick=()=>{this.emit("lr-tool-call-chip-select",{name:this.name,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall}}static{this.styles=[LyraElement.styles,styles]}get status(){return this.statusValue}set status(next){const old=this.statusValue;this.statusValue=TOOL_CALL_CHIP_STATUS.normalizeReflected(this,"status",next),this.requestUpdate("status",old)}hasPreviewNodes(nodes){return nodes.some(node=>{if(node.nodeType===3)return!!node.textContent?.trim();if(node.nodeType!==1)return!1;const slotName=node.getAttribute("slot");return slotName===null||slotName===""})}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasDetailSlot=this.hasPreviewNodes(Array.from(this.childNodes)))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription()}syncExternalDescription(){const target=this.isConnected?this.baseEl??null:null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,target,"aria-describedby")}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("tooltipOpen")&&(this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOverlay?.deactivate({restoreFocus:!1}),this.tooltipOverlay=void 0,this.tooltipOpen)){const anchor=this.renderRoot.querySelector('[part="base"]'),tooltip=this.renderRoot.querySelector('[part="tooltip"]');anchor&&tooltip&&(this.cleanupPositioner=place(anchor,tooltip,{placement:"top-start",strategy:resolveEffectivePositioningStrategy(this,void 0,"fixed")}),this.tooltipOverlay=activateNonmodalOverlay({host:this,panel:()=>tooltip,onEscape:()=>this.hideTooltip(),restoreFocusTo:null}))}}disconnectedCallback(){super.disconnectedCallback(),this.releaseExternalDescription(),this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.tooltipOverlay?.deactivate({restoreFocus:!1}),this.tooltipOverlay=void 0,this.tooltipOpen=!1,this.hovering=!1,this.focused=!1,this.focusDescribed=!1}showTooltip(){!this.hasDetailSlot||this.tooltipOpen||(this.tooltipOpen=!0)}hideTooltip(){this.tooltipOpen&&(this.tooltipOpen=!1)}focus(options){this.baseEl?.focus(options)}blur(){this.baseEl?.blur()}click(){this.baseEl?.click()}get safeDurationMs(){return safeDurationMs(this.durationMs)}get shownName(){return this.displayName||this.name||this.localize("toolCall")}get accessibleLabel(){const parts=[this.shownName];this.summary&&parts.push(this.summary),parts.push(this.localize(TOOL_STATUS_LABEL_KEY[this.status]));const durationMs=this.safeDurationMs;return durationMs!=null&&parts.push(this.localizedDuration(durationMs)),parts.join(this.localize("accessibleLabelSeparator"))}localizedDuration(ms){return formatShortDuration(this.localize.bind(this),this.effectiveLocale,ms)}render(){const hasCategory=(this.category??"").length>0,hasSummary=(this.summary??"").length>0,durationMs=this.safeDurationMs,hasDuration=durationMs!=null,status=this.status;return html`
2
2
  <button
3
3
  part="base"
4
4
  type="button"
@@ -1 +1 @@
1
- import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{overlaySurface}from"../../../internal/overlay-surface.styles.js";const styles=css` :host { display: inline-flex; max-inline-size: 100%; --_lr-tool-call-chip-accent: var(--lr-color-text-quiet); --_lr-tool-call-chip-bg: var(--lr-color-surface); --_lr-tool-call-chip-border: var(--lr-color-border); --_lr-tool-call-chip-spin: var(--lr-transition-ambient); } :host([status="running"]) { --_lr-tool-call-chip-accent: var(--lr-color-brand); --_lr-tool-call-chip-bg: var(--lr-color-brand-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="success"]) { --_lr-tool-call-chip-accent: var(--lr-color-success); --_lr-tool-call-chip-bg: var(--lr-color-success-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="error"]) { --_lr-tool-call-chip-accent: var(--lr-color-danger); --_lr-tool-call-chip-bg: var(--lr-color-danger-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="denied"]) { --_lr-tool-call-chip-accent: var(--lr-color-warning); --_lr-tool-call-chip-bg: var(--lr-color-warning-quiet); --_lr-tool-call-chip-border: transparent; } [part="base"] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-xs); max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-25rem) var(--lr-space-s); border: var(--lr-border-width-thin) solid var(--lr-tool-call-chip-border, var(--_lr-tool-call-chip-border)); border-radius: var(--lr-radius-pill); background: var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)); color: var(--lr-color-text); font: inherit; font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-snug); text-align: start; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color var(--lr-transition-fast), border-color var(--lr-transition-fast); } [part="base"]:hover { border-color: var(--lr-color-brand); } [part="base"]:active { background: color-mix( in oklab, var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="base"]:focus-visible { ${focusRing} } [part="icon"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); } [part="icon"] svg { display: block; } :host([status="running"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-call-chip-spin var(--lr-tool-call-chip-spin, var(--_lr-tool-call-chip-spin)) infinite); } :host([status="pending"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-call-chip-pulse var(--lr-transition-ambient) infinite); } [part="label"] { display: inline-flex; align-items: baseline; gap: var(--lr-size-0-3em); flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow: hidden; } [part="category"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); font-size: var(--lr-size-0-6875rem); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-04em); } [part="category"]::after { content: "·"; margin-inline-start: var(--lr-size-0-3em); } [part="name"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--lr-font-weight-semibold); } [part="summary"] { flex: 1 1 auto; min-inline-size: var(--lr-size-3ch); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); } [part="summary"]::before { content: ": "; } [part="meta"] { display: inline-flex; flex: 0 1 auto; flex-wrap: wrap; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; align-items: baseline; gap: var(--lr-size-0-4em); margin-inline-start: auto; font-size: var(--lr-size-0-6875rem); } [part="status-text"] { color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); min-inline-size: 0; max-inline-size: 100%; white-space: normal; overflow-wrap: anywhere; text-align: end; } [part="duration"] { color: var(--lr-color-text); font-variant-numeric: tabular-nums; white-space: nowrap; } [part="tooltip"] { position: fixed; z-index: var(--lr-layer-dropdown); box-sizing: border-box; min-inline-size: 0; max-inline-size: min( var(--lr-popover-viewport-clamp), var(--lr-size-24rem), var( --lr-positioner-available-inline-size, var(--lr-popover-viewport-clamp) ) ); max-block-size: min( var(--lr-size-20rem), var(--lr-positioner-available-block-size, var(--lr-size-20rem)) ); overflow: auto; overflow-wrap: anywhere; word-break: break-word; white-space: normal; padding: var(--lr-space-s) var(--lr-space-m); ${overlaySurface} box-shadow: var(--lr-overlay-shadow-anchored, var(--lr-shadow-m)); font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-1-4); color: var(--lr-color-text); } @keyframes lr-tool-call-chip-spin { to { transform: rotate(360deg); } } @keyframes lr-tool-call-chip-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } } @media (prefers-reduced-motion: reduce) { [part="base"] { transition: none !important; } :host([status="running"]) [part="icon"] svg, :host([status="pending"]) [part="icon"] svg { animation: none !important; } } `;export{styles};
1
+ import{toolStatusKeyframes}from"../tool-status.styles.js";import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{overlaySurface}from"../../../internal/overlay-surface.styles.js";const styles=css` :host { display: inline-flex; max-inline-size: 100%; --_lr-tool-call-chip-accent: var(--lr-color-text-quiet); --_lr-tool-call-chip-bg: var(--lr-color-surface); --_lr-tool-call-chip-border: var(--lr-color-border); --_lr-tool-call-chip-spin: var(--lr-transition-ambient); } :host([status="running"]) { --_lr-tool-call-chip-accent: var(--lr-color-brand); --_lr-tool-call-chip-bg: var(--lr-color-brand-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="success"]) { --_lr-tool-call-chip-accent: var(--lr-color-success); --_lr-tool-call-chip-bg: var(--lr-color-success-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="error"]) { --_lr-tool-call-chip-accent: var(--lr-color-danger); --_lr-tool-call-chip-bg: var(--lr-color-danger-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="denied"]) { --_lr-tool-call-chip-accent: var(--lr-color-warning); --_lr-tool-call-chip-bg: var(--lr-color-warning-quiet); --_lr-tool-call-chip-border: transparent; } [part="base"] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-xs); max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-25rem) var(--lr-space-s); border: var(--lr-border-width-thin) solid var(--lr-tool-call-chip-border, var(--_lr-tool-call-chip-border)); border-radius: var(--lr-radius-pill); background: var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)); color: var(--lr-color-text); font: inherit; font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-snug); text-align: start; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color var(--lr-transition-fast), border-color var(--lr-transition-fast); } [part="base"]:hover { border-color: var(--lr-color-brand); } [part="base"]:active { background: color-mix( in oklab, var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="base"]:focus-visible { ${focusRing} } [part="icon"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); } [part="icon"] svg { display: block; } :host([status="running"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-status-spin var(--lr-tool-call-chip-spin, var(--_lr-tool-call-chip-spin)) infinite); } :host([status="pending"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-status-pulse var(--lr-transition-ambient) infinite); } [part="label"] { display: inline-flex; align-items: baseline; gap: var(--lr-size-0-3em); flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow: hidden; } [part="category"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); font-size: var(--lr-size-0-6875rem); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-04em); } [part="category"]::after { content: "·"; margin-inline-start: var(--lr-size-0-3em); } [part="name"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--lr-font-weight-semibold); } [part="summary"] { flex: 1 1 auto; min-inline-size: var(--lr-size-3ch); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); } [part="summary"]::before { content: ": "; } [part="meta"] { display: inline-flex; flex: 0 1 auto; flex-wrap: wrap; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; align-items: baseline; gap: var(--lr-size-0-4em); margin-inline-start: auto; font-size: var(--lr-size-0-6875rem); } [part="status-text"] { color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); min-inline-size: 0; max-inline-size: 100%; white-space: normal; overflow-wrap: anywhere; text-align: end; } [part="duration"] { color: var(--lr-color-text); font-variant-numeric: tabular-nums; white-space: nowrap; } [part="tooltip"] { position: fixed; z-index: var(--lr-layer-dropdown); box-sizing: border-box; min-inline-size: 0; max-inline-size: min( var(--lr-popover-viewport-clamp), var(--lr-size-24rem), var( --lr-positioner-available-inline-size, var(--lr-popover-viewport-clamp) ) ); max-block-size: min( var(--lr-size-20rem), var(--lr-positioner-available-block-size, var(--lr-size-20rem)) ); overflow: auto; overflow-wrap: anywhere; word-break: break-word; white-space: normal; padding: var(--lr-space-s) var(--lr-space-m); ${overlaySurface} box-shadow: var(--lr-overlay-shadow-anchored, var(--lr-shadow-m)); font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-1-4); color: var(--lr-color-text); } @media (prefers-reduced-motion: reduce) { [part="base"] { transition: none !important; } :host([status="running"]) [part="icon"] svg, :host([status="pending"]) [part="icon"] svg { animation: none !important; } } ${toolStatusKeyframes} `;export{styles};
@@ -1 +1 @@
1
- const MAX_CHOICES=500,FORMATS=new Set(["email","uri","date","date-time"]),own=(object,key)=>Object.prototype.hasOwnProperty.call(object,key);function toolParamChoices(property){const titled=property.type==="array"?property.items?.anyOf:property.oneOf,values=property.type==="array"?property.items?.enum:property.enum;if(Array.isArray(titled))return titled.slice(0,500).filter(option=>option&&typeof option.const=="string"&&typeof option.title=="string").map(option=>({value:option.const,label:option.title}));if(Array.isArray(values))return values.slice(0,500).map((value,index)=>({value,label:property.type==="string"?property.enumNames?.[index]??value:value}))}function validTitledChoices(value){return Array.isArray(value)&&value.length>0&&value.length<=500&&Array.from(value).every(option=>option&&typeof option=="object"&&!Array.isArray(option)&&typeof option.const=="string"&&typeof option.title=="string"&&Object.keys(option).every(key=>key==="const"||key==="title"))}function validStringChoices(value){return Array.isArray(value)&&value.length<=500&&Array.from(value).every(choice=>typeof choice=="string")}function validToolParamConstraints(property){for(const key of["minLength","maxLength","minItems","maxItems"]){const value=property[key];if(value!==void 0&&(!Number.isSafeInteger(value)||value<0))return!1}for(const key of["minimum","maximum"]){const value=property[key];if(value!==void 0&&(typeof value!="number"||!Number.isFinite(value)))return!1}for(const[min,max]of[["minLength","maxLength"],["minimum","maximum"],["minItems","maxItems"]])if(property[min]!==void 0&&property[max]!==void 0&&property[min]>property[max])return!1;if(property.format!==void 0&&!FORMATS.has(property.format)||["minLength","maxLength","format","oneOf","enumNames"].some(key=>own(property,key))&&property.type!=="string"||["minimum","maximum"].some(key=>own(property,key))&&property.type!=="number"&&property.type!=="integer"||["minItems","maxItems","items"].some(key=>own(property,key))&&property.type!=="array"||property.oneOf!==void 0&&(!validTitledChoices(property.oneOf)||property.enum!==void 0)||property.enumNames!==void 0&&(!validStringChoices(property.enumNames)||!property.enum||property.enumNames.length!==property.enum.length))return!1;if(property.type==="array"){const items=property.items;if(!items||typeof items!="object"||Array.isArray(items)||Object.keys(items).some(key=>key!=="type"&&key!=="enum"&&key!=="anyOf"))return!1;if(items.anyOf!==void 0){if(items.enum!==void 0||items.type!==void 0&&items.type!=="string"||!validTitledChoices(items.anyOf))return!1}else if(items.type!=="string"||!validStringChoices(items.enum)||items.enum?.length===0)return!1}const choices=toolParamChoices(property);return!(choices&&new Set(choices.map(choice=>choice.value)).size!==choices.length)}function validDate(value){const match=/^(\d{4})-(\d{2})-(\d{2})$/.exec(value);if(!match)return!1;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),days=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return month>=1&&month<=12&&day>=1&&day<=days[month-1]}function validFormat(value,format){if(format==="date")return validDate(value);if(format==="email"){const at=value.lastIndexOf("@");if(at<=0||at!==value.indexOf("@"))return!1;const local=value.slice(0,at),domain=value.slice(at+1);return!/^[a-z\d.!#$%&'*+/=?^_`{|}~-]+$/i.test(local)||local.startsWith(".")||local.endsWith(".")||local.includes("..")?!1:domain.split(".").every(label=>label.length>0&&label.length<=63&&/^[a-z\d](?:[a-z\d-]*[a-z\d])?$/i.test(label))}if(format==="uri"){if(!/^[a-z][a-z\d+.-]*:/i.test(value)||/[\s\u0000-\u001f]/.test(value))return!1;try{return new URL(value),!0}catch{return!1}}const match=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|[+-](\d{2}):(\d{2}))$/.exec(value);return!!match&&validDate(match[1])&&Number(match[2])<=23&&Number(match[3])<=59&&Number(match[4])<=59&&(match[8]===void 0||Number(match[7])<=23&&Number(match[8])<=59)}function toolParamConstraintFailure(property,value){if(typeof value=="string"){const length=Array.from(value).length;if(property.minLength!==void 0&&length<property.minLength)return"minLength";if(property.maxLength!==void 0&&length>property.maxLength)return"maxLength";if(property.format!==void 0&&!validFormat(value,property.format))return"format";const choices=toolParamChoices(property);if(choices&&!choices.some(choice=>choice.value===value))return"selection"}if(typeof value=="number"){if(property.minimum!==void 0&&value<property.minimum)return"minimum";if(property.maximum!==void 0&&value>property.maximum)return"maximum"}if(property.type==="array"){if(!Array.isArray(value))return"selection";const choices=new Set(toolParamChoices(property)?.map(choice=>choice.value));if(value.some(entry=>typeof entry!="string"||!choices.has(entry))||new Set(value).size!==value.length)return"selection";if(property.minItems!==void 0&&value.length<property.minItems)return"minItems";if(property.maxItems!==void 0&&value.length>property.maxItems)return"maxItems"}}export{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints};
1
+ const MAX_CHOICES=500,FORMATS=new Set(["email","uri","date","date-time"]),own=(object,key)=>Object.prototype.hasOwnProperty.call(object,key),choicesCache=new WeakMap,constraintsCache=new WeakMap;function toolParamChoices(property){if(choicesCache.has(property))return choicesCache.get(property);const choices=computeChoices(property);return choicesCache.set(property,choices),choices}function computeChoices(property){const titled=property.type==="array"?property.items?.anyOf:property.oneOf,values=property.type==="array"?property.items?.enum:property.enum;if(Array.isArray(titled))return Object.freeze(titled.slice(0,500).filter(option=>option&&typeof option.const=="string"&&typeof option.title=="string").map(option=>Object.freeze({value:option.const,label:option.title})));if(Array.isArray(values))return Object.freeze(values.slice(0,500).map((value,index)=>Object.freeze({value,label:property.type==="string"?property.enumNames?.[index]??value:value})))}function validTitledChoices(value){return Array.isArray(value)&&value.length>0&&value.length<=500&&Array.from(value).every(option=>option&&typeof option=="object"&&!Array.isArray(option)&&typeof option.const=="string"&&typeof option.title=="string"&&Object.keys(option).every(key=>key==="const"||key==="title"))}function validStringChoices(value){return Array.isArray(value)&&value.length<=500&&Array.from(value).every(choice=>typeof choice=="string")}function validToolParamConstraints(property){let valid=constraintsCache.get(property);return valid===void 0&&constraintsCache.set(property,valid=computeValidConstraints(property)),valid}function computeValidConstraints(property){for(const key of["minLength","maxLength","minItems","maxItems"]){const value=property[key];if(value!==void 0&&(!Number.isSafeInteger(value)||value<0))return!1}for(const key of["minimum","maximum"]){const value=property[key];if(value!==void 0&&(typeof value!="number"||!Number.isFinite(value)))return!1}for(const[min,max]of[["minLength","maxLength"],["minimum","maximum"],["minItems","maxItems"]])if(property[min]!==void 0&&property[max]!==void 0&&property[min]>property[max])return!1;if(property.format!==void 0&&!FORMATS.has(property.format)||["minLength","maxLength","format","oneOf","enumNames"].some(key=>own(property,key))&&property.type!=="string"||["minimum","maximum"].some(key=>own(property,key))&&property.type!=="number"&&property.type!=="integer"||["minItems","maxItems","items"].some(key=>own(property,key))&&property.type!=="array"||property.oneOf!==void 0&&(!validTitledChoices(property.oneOf)||property.enum!==void 0)||property.enumNames!==void 0&&(!validStringChoices(property.enumNames)||!property.enum||property.enumNames.length!==property.enum.length))return!1;if(property.type==="array"){const items=property.items;if(!items||typeof items!="object"||Array.isArray(items)||Object.keys(items).some(key=>key!=="type"&&key!=="enum"&&key!=="anyOf"))return!1;if(items.anyOf!==void 0){if(items.enum!==void 0||items.type!==void 0&&items.type!=="string"||!validTitledChoices(items.anyOf))return!1}else if(items.type!=="string"||!validStringChoices(items.enum)||items.enum?.length===0)return!1}const choices=toolParamChoices(property);return!(choices&&new Set(choices.map(choice=>choice.value)).size!==choices.length)}function validDate(value){const match=/^(\d{4})-(\d{2})-(\d{2})$/.exec(value);if(!match)return!1;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),days=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return month>=1&&month<=12&&day>=1&&day<=days[month-1]}function validFormat(value,format){if(format==="date")return validDate(value);if(format==="email"){const at=value.lastIndexOf("@");if(at<=0||at!==value.indexOf("@"))return!1;const local=value.slice(0,at),domain=value.slice(at+1);return!/^[a-z\d.!#$%&'*+/=?^_`{|}~-]+$/i.test(local)||local.startsWith(".")||local.endsWith(".")||local.includes("..")?!1:domain.split(".").every(label=>label.length>0&&label.length<=63&&/^[a-z\d](?:[a-z\d-]*[a-z\d])?$/i.test(label))}if(format==="uri"){if(!/^[a-z][a-z\d+.-]*:/i.test(value)||/[\s\u0000-\u001f]/.test(value))return!1;try{return new URL(value),!0}catch{return!1}}const match=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|[+-](\d{2}):(\d{2}))$/.exec(value);return!!match&&validDate(match[1])&&Number(match[2])<=23&&Number(match[3])<=59&&Number(match[4])<=59&&(match[8]===void 0||Number(match[7])<=23&&Number(match[8])<=59)}function toolParamConstraintFailure(property,value){if(typeof value=="string"){const length=Array.from(value).length;if(property.minLength!==void 0&&length<property.minLength)return"minLength";if(property.maxLength!==void 0&&length>property.maxLength)return"maxLength";if(property.format!==void 0&&!validFormat(value,property.format))return"format";const choices=toolParamChoices(property);if(choices&&!choices.some(choice=>choice.value===value))return"selection"}if(typeof value=="number"){if(property.minimum!==void 0&&value<property.minimum)return"minimum";if(property.maximum!==void 0&&value>property.maximum)return"maximum"}if(property.type==="array"){if(!Array.isArray(value))return"selection";const choices=new Set(toolParamChoices(property)?.map(choice=>choice.value));if(value.some(entry=>typeof entry!="string"||!choices.has(entry))||new Set(value).size!==value.length)return"selection";if(property.minItems!==void 0&&value.length<property.minItems)return"minItems";if(property.maxItems!==void 0&&value.length>property.maxItems)return"maxItems"}}export{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints};
@@ -1,4 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement,type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import type{FlatToolParamSchema,ToolParamFormValue}from'./tool-param-types.js';export type{FlatToolParamSchema,ToolParamFormProperty,ToolParamFormPropertyType,ToolParamFormPrimitive,ToolParamFormValue,ToolParamStringFormat,ToolParamEnumOption,ToolParamEnumItems}from'./tool-param-types.js';import'../../forms/select/select.class.js';import'../../forms/combobox/option.class.js';import'../../forms/input/number-input.class.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';export interface LyraToolParamFormEventMap{'lr-invalid':CustomEvent<null>;'lr-validity-change':CustomEvent<LyraEventDetailSnapshot<{readonly valid:boolean;readonly errors:Readonly<Record<string,string>>;}>>;'lr-input':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;'lr-change':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;input:Event;change:Event;blur:FocusEvent;focus:FocusEvent;}
1
+ import{type TemplateResult,type PropertyValues}from'lit';import{type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import{LyraFormControlElement}from'../../../internal/form-control-element.js';import type{FlatToolParamSchema,ToolParamFormValue}from'./tool-param-types.js';export type{FlatToolParamSchema,ToolParamFormProperty,ToolParamFormPropertyType,ToolParamFormPrimitive,ToolParamFormValue,ToolParamStringFormat,ToolParamEnumOption,ToolParamEnumItems}from'./tool-param-types.js';import'../../forms/select/select.class.js';import'../../forms/combobox/option.class.js';import'../../forms/input/number-input.class.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';export interface LyraToolParamFormEventMap{'lr-invalid':CustomEvent<null>;'lr-validity-change':CustomEvent<LyraEventDetailSnapshot<{readonly valid:boolean;readonly errors:Readonly<Record<string,string>>;}>>;'lr-input':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;'lr-change':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;input:Event;change:Event;blur:FocusEvent;focus:FocusEvent;}
2
2
  /**
3
3
  * `<lr-tool-param-form>` — renders one form control per top-level property
4
4
  * of a JSON Schema object, for ad hoc tool invocation or approval-editing UIs
@@ -129,11 +129,9 @@ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement,type
129
129
  * @status stable
130
130
  * @since 4.0.0
131
131
  */
132
- export declare class LyraToolParamForm extends LyraElement<LyraToolParamFormEventMap>{static formAssociated:boolean;static styles:import("lit").CSSResultGroup[];protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly immutableEventDetails:readonly string[];static properties:{customError:{attribute:string;reflect:boolean;noAccessor:boolean;};name:{reflect:boolean;noAccessor:boolean;};schema:{attribute:boolean;noAccessor:boolean;};value:{attribute:boolean;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};};private _errors;private _formError;private showFormError;private touchedFields;private internals;private validityController;
132
+ export declare class LyraToolParamForm extends LyraFormControlElement<LyraToolParamFormEventMap>{static formAssociated:boolean;static styles:import("lit").CSSResultGroup[];protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly immutableEventDetails:readonly string[];static properties:{customError:{attribute:string;reflect:boolean;noAccessor:boolean;};name:{reflect:boolean;noAccessor:boolean;};schema:{attribute:boolean;noAccessor:boolean;};value:{attribute:boolean;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};};private _errors;private _formError;private showFormError;private touchedFields;private internals;private validityController;
133
133
  /** Consumer-supplied validation message reflected through `custom-error`. */
134
- customError:string|null;private baseId;private _fieldsetDisabled;private _name;private _schema;private schemaInputShapeError;private schemaInputExceededLimits;private _value;private lastSchemaInput;private lastValueInput;private valueInputInvalid;private valueInputTruncated;private defaultValueSnapshot;private defaultValueCaptured;private _effectiveValue;private _validityFlags;private _disabled;private lastValidityKey;private hasInteracted;private errorAnnouncementSink?;private visibleErrorSnapshot;private suppressNextErrorAnnouncement;constructor();get form():HTMLFormElement|null;set form(owner:FormOwnerValue);
135
- /** Returns the browser-resolved owning form, including an external owner selected by `form`. */
136
- getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;private firstInvalidField;private get missingRequiredKeys();private firstMissingPropertyError;private focusFirstControl;
134
+ customError:string|null;private baseId;private _fieldsetDisabled;private _name;private _schema;private schemaInputShapeError;private schemaInputExceededLimits;private _value;private lastSchemaInput;private lastValueInput;private valueInputInvalid;private valueInputTruncated;private defaultValueSnapshot;private defaultValueCaptured;private _effectiveValue;private _validityFlags;private _disabled;private lastValidityKey;private hasInteracted;private errorAnnouncementSink?;private visibleErrorSnapshot;private suppressNextErrorAnnouncement;constructor();get form():HTMLFormElement|null;set form(owner:FormOwnerValue);private firstInvalidField;private get missingRequiredKeys();private firstMissingPropertyError;private focusFirstControl;
137
135
  /** Forwards host clicks to the first rendered form field so the component behaves like a regular
138
136
  * control from caller code and event re-dispatch paths.
139
137
  */
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{emitValueEvents}from"../../../internal/value-events.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{tag}from"../../../internal/prefix.js";import{html,nothing}from"lit";import{state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{deepActiveElementIn}from"../../../internal/active-element.js";import{nextId}from"../../../internal/a11y.js";import{resolveValidityAnchor,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./tool-param-form.styles.js";import{EMPTY_SCHEMA,MAX_ENUM_OPTIONS,MAX_SCHEMA_FIELDS,snapshotFormValue,snapshotSchema}from"./tool-param-snapshot.js";import{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints}from"./tool-param-constraints.js";import"../../forms/select/select.class.js";import"../../forms/combobox/option.class.js";import"../../forms/input/number-input.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{LYRA_DEFAULT_fieldMustBeBoolean,LYRA_DEFAULT_fieldMustBeInteger,LYRA_DEFAULT_fieldMustBeNumber,LYRA_DEFAULT_fieldMustBeOneOf,LYRA_DEFAULT_fieldMustBeString,LYRA_DEFAULT_fieldMustEqual,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_noData,LYRA_DEFAULT_schemaMustBeObject,LYRA_DEFAULT_schemaPropertiesMustBeFlat,LYRA_DEFAULT_toolParamBooleanFalse,LYRA_DEFAULT_toolParamBooleanTrue,LYRA_DEFAULT_toolParamBooleanUnset,LYRA_DEFAULT_toolParamFormat,LYRA_DEFAULT_toolParamInvalidConstraint,LYRA_DEFAULT_toolParamInvalidSelection,LYRA_DEFAULT_toolParamMaxItems,LYRA_DEFAULT_toolParamMaxLength,LYRA_DEFAULT_toolParamMaximum,LYRA_DEFAULT_toolParamMinItems,LYRA_DEFAULT_toolParamMinLength,LYRA_DEFAULT_toolParamMinimum,LYRA_DEFAULT_toolParamMissingProperty,LYRA_DEFAULT_toolParamSchemaLimit,LYRA_DEFAULT_unsupportedFieldType,LYRA_DEFAULT_valueMustBeSerializable}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();const MAX_LISTED_CHOICES=10;class LyraToolParamForm extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldMustBeBoolean:LYRA_DEFAULT_fieldMustBeBoolean,fieldMustBeInteger:LYRA_DEFAULT_fieldMustBeInteger,fieldMustBeNumber:LYRA_DEFAULT_fieldMustBeNumber,fieldMustBeOneOf:LYRA_DEFAULT_fieldMustBeOneOf,fieldMustBeString:LYRA_DEFAULT_fieldMustBeString,fieldMustEqual:LYRA_DEFAULT_fieldMustEqual,fieldRequired:LYRA_DEFAULT_fieldRequired,noData:LYRA_DEFAULT_noData,schemaMustBeObject:LYRA_DEFAULT_schemaMustBeObject,schemaPropertiesMustBeFlat:LYRA_DEFAULT_schemaPropertiesMustBeFlat,toolParamBooleanFalse:LYRA_DEFAULT_toolParamBooleanFalse,toolParamBooleanTrue:LYRA_DEFAULT_toolParamBooleanTrue,toolParamBooleanUnset:LYRA_DEFAULT_toolParamBooleanUnset,toolParamFormat:LYRA_DEFAULT_toolParamFormat,toolParamInvalidConstraint:LYRA_DEFAULT_toolParamInvalidConstraint,toolParamInvalidSelection:LYRA_DEFAULT_toolParamInvalidSelection,toolParamMaxItems:LYRA_DEFAULT_toolParamMaxItems,toolParamMaxLength:LYRA_DEFAULT_toolParamMaxLength,toolParamMaximum:LYRA_DEFAULT_toolParamMaximum,toolParamMinItems:LYRA_DEFAULT_toolParamMinItems,toolParamMinLength:LYRA_DEFAULT_toolParamMinLength,toolParamMinimum:LYRA_DEFAULT_toolParamMinimum,toolParamMissingProperty:LYRA_DEFAULT_toolParamMissingProperty,toolParamSchemaLimit:LYRA_DEFAULT_toolParamSchemaLimit,unsupportedFieldType:LYRA_DEFAULT_unsupportedFieldType,valueMustBeSerializable:LYRA_DEFAULT_valueMustBeSerializable}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-validity-change","lr-input","lr-change"])}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},schema:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}constructor(){super(),this._errors=Object.create(null),this._formError="",this.showFormError=!1,this.touchedFields=new Set,this.baseId=nextId("tool-param-form"),this._fieldsetDisabled=!1,this._name="",this._schema=EMPTY_SCHEMA,this.schemaInputShapeError="",this.schemaInputExceededLimits=!1,this._value=Object.freeze({}),this.lastSchemaInput=EMPTY_SCHEMA,this.lastValueInput=this._value,this.valueInputInvalid=!1,this.valueInputTruncated=!1,this.defaultValueSnapshot=Object.freeze({}),this.defaultValueCaptured=!1,this._effectiveValue=Object.freeze({}),this._validityFlags={},this._disabled=!1,this.hasInteracted=!1,this.visibleErrorSnapshot=new Map,this.suppressNextErrorAnnouncement=!0,this.markInteracted=()=>{this.hasInteracted||(this.hasInteracted=!0,this.syncValidityCustomStates())},this.onValueCommit=event=>{event.stopPropagation(),this.effectiveDisabled||emitValueEvents(this,"change",{value:this.effectiveValue},detail=>this.emit("lr-change",detail))},this.stopNestedControlEvent=e=>{e.stopPropagation()},this.onFieldFocus=event=>{relayNativeEvent(this,event)},this.onFieldBlur=event=>{relayNativeEvent(this,event)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.syncFormState()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}[VALIDITY_ANCHOR](){const field=this.firstInvalidField();if(field){const input=field.querySelector("input.control");if(input)return input;for(const child of field.children){const anchor=resolveValidityAnchor(child);if(anchor)return anchor}}return this.firstMissingPropertyError()}firstInvalidField(){if(!this.renderRoot)return;const fields=Array.from(this.renderRoot.querySelectorAll('[part="field"]'));for(const key of Object.keys(this._errors)){const field=fields.find(candidate=>candidate.dataset.key===key);if(field)return field}}get missingRequiredKeys(){const properties=this.schemaProperties;return this.requiredKeys.filter(key=>!Object.prototype.hasOwnProperty.call(properties,key)&&!!this._errors[key])}firstMissingPropertyError(){if(!this.renderRoot)return;const errors=Array.from(this.renderRoot.querySelectorAll('[part="error"][data-missing-property]'));for(const key of Object.keys(this._errors)){const error=errors.find(candidate=>candidate.dataset.key===key);if(error)return error}}focusFirstControl(options){if(!this.renderRoot)return;const controls=this.renderRoot.querySelectorAll(`input.control, ${tag("select")}, ${tag("number-input")}`);for(const control of controls)if(!(control.disabled||control.getAttribute("aria-disabled")==="true")){control.focus(options);return}}click(){this.effectiveDisabled||this.focusFirstControl()}focus(options){this.effectiveDisabled||this.focusFirstControl(options)}blur(){const active=deepActiveElementIn(this.shadowRoot);active&&typeof active.blur=="function"&&active.blur()}connectedCallback(){this.defaultValueCaptured||(this.defaultValueSnapshot=this._value,this.defaultValueCaptured=!0),super.connectedCallback(),this.errorAnnouncementSink?.element.ownerDocument!==this.ownerDocument&&(this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=acquireAnnouncementSink("assertive",{document:this.ownerDocument,source:this})),this.hasUpdated&&(this.suppressNextErrorAnnouncement=!0,this.requestUpdate()),this.syncFormState()}disconnectedCallback(){super.disconnectedCallback(),this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=void 0,this.suppressNextErrorAnnouncement=!0}get effectiveValue(){return this._effectiveValue}get schemaProperties(){return this._schema.properties}get requiredKeys(){return this._schema.required??Object.freeze([])}resolveEffectiveValue(){const props=this.schemaProperties,out={...this.value};for(const[key,prop]of Object.entries(props)){const fallback=prop.const!==void 0?prop.const:prop.default;!Object.prototype.hasOwnProperty.call(this.value,key)&&fallback!==void 0&&Object.defineProperty(out,key,{configurable:!0,enumerable:!0,writable:!0,value:fallback})}return snapshotFormValue(out).value}get schema(){return this._schema}set schema(next){if(next===this._schema||next===this.lastSchemaInput)return;this.lastSchemaInput=next;const old=this._schema,snapshot=snapshotSchema(next);this._schema=snapshot.schema,this.schemaInputShapeError=snapshot.shapeError,this.schemaInputExceededLimits=snapshot.exceededLimits,this.syncFormState(),this.requestUpdate("schema",old)}get value(){return this._value}set value(next){next===this._value||next===this.lastValueInput||(this.lastValueInput=next,this.applyValue(next))}applyValue(next){const old=this._value,snapshot=snapshotFormValue(next);this._value=snapshot.value,this.valueInputInvalid=snapshot.invalid,this.valueInputTruncated=snapshot.truncated,this.syncFormState(),this.requestUpdate("value",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this.applyValidity(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get errors(){return this.publicValidityErrors()}publicValidityErrors(){const errors={...this._errors};return this.willValidate&&(this.validityController.customValidityMessage||this._formError)&&(errors.base=this.validationMessage),Object.freeze(errors)}publishValiditySnapshot(){if(!this.isConnected)return;const valid=!this.willValidate||this.validity.valid,errors=valid?Object.freeze({}):this.publicValidityErrors(),key=JSON.stringify({valid,errors});key!==this.lastValidityKey&&(this.lastValidityKey=key,this.emit("lr-validity-change",Object.freeze({valid,errors})))}get formError(){return this._formError}selectionMessage(prop){const choices=prop.type==="string"?toolParamChoices(prop):void 0;return!choices||choices.length===0||choices.length>MAX_LISTED_CHOICES?this.localize("toolParamInvalidSelection"):this.localize("fieldMustBeOneOf",void 0,{values:getListFormat(this.effectiveLocale,{style:"long",type:"disjunction"}).format(choices.map(choice=>choice.label))})}computeValidation(effective){const props=this.schemaProperties,required=new Set(this.requiredKeys),out=Object.create(null),flags={},addError=(key,message)=>{Object.defineProperty(out,key,{configurable:!0,enumerable:!0,writable:!0,value:message})};for(const[key,prop]of Object.entries(props)){const type=prop?.type;if(type!=="string"&&type!=="number"&&type!=="integer"&&type!=="boolean"&&type!=="array"){addError(key,this.localize("unsupportedFieldType",void 0,{type:String(type)})),flags.customError=!0;continue}if(!validToolParamConstraints(prop)){addError(key,this.localize("toolParamInvalidConstraint")),flags.customError=!0;continue}if(!(Object.prototype.hasOwnProperty.call(effective,key)&&effective[key]!==void 0)){required.has(key)&&(addError(key,this.localize("fieldRequired")),flags.valueMissing=!0);continue}const v=effective[key];if(type==="string"&&typeof v!="string"){addError(key,this.localize("fieldMustBeString")),flags.typeMismatch=!0;continue}if(type==="number"&&(typeof v!="number"||!Number.isFinite(v))){addError(key,this.localize("fieldMustBeNumber")),flags.typeMismatch=!0;continue}if(type==="integer"&&(typeof v!="number"||!Number.isFinite(v))){addError(key,this.localize("fieldMustBeInteger")),flags.typeMismatch=!0;continue}if(type==="integer"&&!Number.isInteger(v)){addError(key,this.localize("fieldMustBeInteger")),flags.stepMismatch=!0;continue}if(type==="boolean"&&typeof v!="boolean"){addError(key,this.localize("fieldMustBeBoolean")),flags.typeMismatch=!0;continue}const constraint=toolParamConstraintFailure(prop,v);if(constraint){const number=getNumberFormat(this.effectiveLocale),message=constraint==="minLength"?this.localize("toolParamMinLength",void 0,{count:number.format(prop.minLength)}):constraint==="maxLength"?this.localize("toolParamMaxLength",void 0,{count:number.format(prop.maxLength)}):constraint==="minimum"?this.localize("toolParamMinimum",void 0,{value:number.format(prop.minimum)}):constraint==="maximum"?this.localize("toolParamMaximum",void 0,{value:number.format(prop.maximum)}):constraint==="minItems"?this.localize("toolParamMinItems",void 0,{count:number.format(prop.minItems)}):constraint==="maxItems"?this.localize("toolParamMaxItems",void 0,{count:number.format(prop.maxItems)}):constraint==="format"?this.localize("toolParamFormat",void 0,{format:prop.format}):this.selectionMessage(prop);addError(key,message),flags.customError=!0;continue}prop.const!==void 0&&v!==prop.const&&(addError(key,this.localize("fieldMustEqual",void 0,{value:JSON.stringify(prop.const)})),flags.customError=!0)}for(const key of required)Object.prototype.hasOwnProperty.call(props,key)||(!Object.prototype.hasOwnProperty.call(effective,key)||effective[key]===void 0)&&(addError(key,this.localize("fieldRequired")),flags.valueMissing=!0);return{errors:out,flags}}checkValidity(){return this.validityController.checkValidity(()=>this.syncFormState())}reportValidity(){this.validityController.syncConstraints(),this.hasInteracted=!0,this.syncFormState(),Object.keys(this._errors).length>0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)])),this._formError&&(this.showFormError=!0),this.requestUpdate();const valid=this.internals.reportValidity();return!valid&&!this.firstInvalidField()&&this.missingRequiredKeys.length>0&&this.updateComplete.then(()=>{const error=this.firstMissingPropertyError();this.validityController.refreshAnchor(),error?.focus()}),valid}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidityCustomStates(),this.publishValiditySnapshot(),this.requestUpdate()}formResetCallback(){this.hasInteracted=!1,this.applyValue(this.defaultValueSnapshot),this.touchedFields=new Set,this.showFormError=!1}formStateRestoreCallback(state2,_mode){let restored={};if(typeof state2=="string")try{const parsed=JSON.parse(state2);parsed!==null&&typeof parsed=="object"&&!Array.isArray(parsed)&&(restored=parsed)}catch{}this.applyValue(restored)}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(this.applyValidity(),this.requestUpdate())}schemaShapeError(){return this.schemaInputShapeError==="object"?this.localize("schemaMustBeObject"):this.schemaInputShapeError==="properties"?this.localize("schemaPropertiesMustBeFlat"):this.schemaInputExceededLimits?this.localize("toolParamSchemaLimit",void 0,{fields:getNumberFormat(this.effectiveLocale).format(MAX_SCHEMA_FIELDS),options:getNumberFormat(this.effectiveLocale).format(MAX_ENUM_OPTIONS)}):""}serializeEffectiveValue(effective){const serialized=JSON.stringify(effective,(_key,value)=>{if(typeof value=="number"&&!Number.isFinite(value))throw new TypeError("Non-finite numbers are not JSON values.");return value});if(typeof serialized!="string")throw new TypeError("Value did not serialize to JSON.");return serialized}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncInternals(formValue){this.internals.setFormValue(formValue,formValue),this.applyValidity()}applyValidity(){if(this.validityController){if(this.barredFromValidation||Object.keys(this._validityFlags).length===0)this.validityController.setValidity({});else{const firstMessage=Object.values(this._errors)[0]??this._formError;this.validityController.setValidity(this._validityFlags,firstMessage)}this.syncValidityCustomStates(),this.publishValiditySnapshot()}}syncValidityCustomStates(){syncValidityStates(this.internals,{required:this.requiredKeys.length>0,hasInteracted:this.hasInteracted,barred:this.barredFromValidation})}syncFormState(){let effective=Object.freeze({}),errors={},flags={},formError="",formValue=null;try{if(formError=this.schemaShapeError(),this.valueInputInvalid||this.valueInputTruncated)throw new TypeError("The value could not be retained within the public snapshot boundary.");effective=this.resolveEffectiveValue();const validation=this.computeValidation(effective);errors=validation.errors,flags=validation.flags,formValue=this.serializeEffectiveValue(effective)}catch{formError=this.localize("valueMustBeSerializable"),formValue=null}formError&&(flags.customError=!0,formValue=null),this._effectiveValue=effective,JSON.stringify(this._errors)!==JSON.stringify(errors)&&(this._errors=errors),this._formError=formError,this._validityFlags=flags,this.syncInternals(formValue)}updated(changed){if(super.updated(changed),this.publishValiditySnapshot(),changed.has("value")||changed.has("schema")||changed.has("_errors")||changed.has("_formError")){const nestedUpdates=Array.from(this.firstInvalidField()?.children??[]).filter(element=>typeof element[VALIDITY_ANCHOR]=="function").map(element=>element.updateComplete).filter(update=>update!==void 0);nestedUpdates.length>0&&Promise.all(nestedUpdates).then(()=>this.validityController.refreshAnchor())}const currentErrors=this.visibleErrors();if(!this.suppressNextErrorAnnouncement){const freshMessages=[];for(const[key,text]of currentErrors)this.visibleErrorSnapshot.get(key)!==text&&!freshMessages.includes(text)&&freshMessages.push(text);freshMessages.length>0&&this.errorAnnouncementSink?.announce(freshMessages.join(" "))}this.visibleErrorSnapshot=currentErrors,this.suppressNextErrorAnnouncement=!1}visibleErrors(){const visible=new Map;for(const key of Object.keys(this.schemaProperties)){const message=this.touchedFields.has(key)?this._errors[key]:void 0;message&&visible.set(key,message)}for(const key of this.missingRequiredKeys)this.touchedFields.has(key)&&visible.set(key,this.localize("toolParamMissingProperty",void 0,{key}));return this.showFormError&&this._formError&&visible.set("form",this._formError),visible}setFieldValue(key,val,committed=!1){if(this.effectiveDisabled)return;this.hasInteracted=!0,this.applyValue({...this.value,[key]:val});const detail={value:this.effectiveValue};emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),committed&&emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2))}markTouched(key){this.hasInteracted=!0,this.syncValidityCustomStates(),!this.touchedFields.has(key)&&(this.touchedFields=new Set(this.touchedFields).add(key))}onTextInput(key,e){e.stopPropagation(),this.setFieldValue(key,e.target.value)}onNumberInput(key,e){e.stopPropagation();const n=e.target.valueAsNumber;this.setFieldValue(key,Number.isNaN(n)?void 0:n)}onSelectChange(key,e){e.stopPropagation(),this.setFieldValue(key,e.target.value,!0)}onBooleanSelectChange(key,e){e.stopPropagation();const value=e.target.value;if(value===""){if(this.effectiveDisabled)return;if(this.hasInteracted=!0,this.schemaProperties[key]?.default!==void 0)this.applyValue({...this.value,[key]:void 0});else{const next={...this.value};Reflect.deleteProperty(next,key),this.applyValue(next)}const detail={value:this.effectiveValue};emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2));return}this.setFieldValue(key,value==="true",!0)}renderControl(key,prop,fieldId,label,required,describedBy,errorMessage,effective){const choices=toolParamChoices(prop);if((prop.type==="string"||prop.type==="array")&&choices&&choices.length>0)return html`<lr-select
1
+ import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{emitValueEvents}from"../../../internal/value-events.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{tag}from"../../../internal/prefix.js";import{html,nothing}from"lit";import{state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{LyraFormControlElement}from"../../../internal/form-control-element.js";import{deepActiveElementIn}from"../../../internal/active-element.js";import{nextId}from"../../../internal/a11y.js";import{resolveValidityAnchor,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./tool-param-form.styles.js";import{EMPTY_SCHEMA,MAX_ENUM_OPTIONS,MAX_SCHEMA_FIELDS,snapshotFormValue,snapshotSchema}from"./tool-param-snapshot.js";import{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints}from"./tool-param-constraints.js";import"../../forms/select/select.class.js";import"../../forms/combobox/option.class.js";import"../../forms/input/number-input.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{LYRA_DEFAULT_fieldMustBeBoolean,LYRA_DEFAULT_fieldMustBeInteger,LYRA_DEFAULT_fieldMustBeNumber,LYRA_DEFAULT_fieldMustBeOneOf,LYRA_DEFAULT_fieldMustBeString,LYRA_DEFAULT_fieldMustEqual,LYRA_DEFAULT_schemaMustBeObject,LYRA_DEFAULT_schemaPropertiesMustBeFlat,LYRA_DEFAULT_toolParamBooleanFalse,LYRA_DEFAULT_toolParamBooleanTrue,LYRA_DEFAULT_toolParamBooleanUnset,LYRA_DEFAULT_toolParamFormat,LYRA_DEFAULT_toolParamInvalidConstraint,LYRA_DEFAULT_toolParamInvalidSelection,LYRA_DEFAULT_toolParamMaxItems,LYRA_DEFAULT_toolParamMaxLength,LYRA_DEFAULT_toolParamMaximum,LYRA_DEFAULT_toolParamMinItems,LYRA_DEFAULT_toolParamMinLength,LYRA_DEFAULT_toolParamMinimum,LYRA_DEFAULT_toolParamMissingProperty,LYRA_DEFAULT_toolParamSchemaLimit,LYRA_DEFAULT_valueMustBeSerializable}from"../../../internal/default-strings/agent-tools.generated.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_noData,LYRA_DEFAULT_unsupportedFieldType}from"../../../internal/default-strings/shared.generated.js";installFormControlLabelSupport();const MAX_LISTED_CHOICES=10;function sameErrors(left,right){const keys=Object.keys(left);return keys.length===Object.keys(right).length&&keys.every(key=>left[key]===right[key])}class LyraToolParamForm extends LyraFormControlElement{static{this.defaultStrings={...super.defaultStrings,fieldMustBeBoolean:LYRA_DEFAULT_fieldMustBeBoolean,fieldMustBeInteger:LYRA_DEFAULT_fieldMustBeInteger,fieldMustBeNumber:LYRA_DEFAULT_fieldMustBeNumber,fieldMustBeOneOf:LYRA_DEFAULT_fieldMustBeOneOf,fieldMustBeString:LYRA_DEFAULT_fieldMustBeString,fieldMustEqual:LYRA_DEFAULT_fieldMustEqual,fieldRequired:LYRA_DEFAULT_fieldRequired,noData:LYRA_DEFAULT_noData,schemaMustBeObject:LYRA_DEFAULT_schemaMustBeObject,schemaPropertiesMustBeFlat:LYRA_DEFAULT_schemaPropertiesMustBeFlat,toolParamBooleanFalse:LYRA_DEFAULT_toolParamBooleanFalse,toolParamBooleanTrue:LYRA_DEFAULT_toolParamBooleanTrue,toolParamBooleanUnset:LYRA_DEFAULT_toolParamBooleanUnset,toolParamFormat:LYRA_DEFAULT_toolParamFormat,toolParamInvalidConstraint:LYRA_DEFAULT_toolParamInvalidConstraint,toolParamInvalidSelection:LYRA_DEFAULT_toolParamInvalidSelection,toolParamMaxItems:LYRA_DEFAULT_toolParamMaxItems,toolParamMaxLength:LYRA_DEFAULT_toolParamMaxLength,toolParamMaximum:LYRA_DEFAULT_toolParamMaximum,toolParamMinItems:LYRA_DEFAULT_toolParamMinItems,toolParamMinLength:LYRA_DEFAULT_toolParamMinLength,toolParamMinimum:LYRA_DEFAULT_toolParamMinimum,toolParamMissingProperty:LYRA_DEFAULT_toolParamMissingProperty,toolParamSchemaLimit:LYRA_DEFAULT_toolParamSchemaLimit,unsupportedFieldType:LYRA_DEFAULT_unsupportedFieldType,valueMustBeSerializable:LYRA_DEFAULT_valueMustBeSerializable}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-validity-change","lr-input","lr-change"])}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},schema:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}constructor(){super(),this._errors=Object.create(null),this._formError="",this.showFormError=!1,this.touchedFields=new Set,this.baseId=nextId("tool-param-form"),this._fieldsetDisabled=!1,this._name="",this._schema=EMPTY_SCHEMA,this.schemaInputShapeError="",this.schemaInputExceededLimits=!1,this._value=Object.freeze({}),this.lastSchemaInput=EMPTY_SCHEMA,this.lastValueInput=this._value,this.valueInputInvalid=!1,this.valueInputTruncated=!1,this.defaultValueSnapshot=Object.freeze({}),this.defaultValueCaptured=!1,this._effectiveValue=Object.freeze({}),this._validityFlags={},this._disabled=!1,this.hasInteracted=!1,this.visibleErrorSnapshot=new Map,this.suppressNextErrorAnnouncement=!0,this.markInteracted=()=>{this.hasInteracted||(this.hasInteracted=!0,this.syncValidityCustomStates())},this.onValueCommit=event=>{event.stopPropagation(),this.effectiveDisabled||emitValueEvents(this,"change",{value:this.effectiveValue},detail=>this.emit("lr-change",detail))},this.stopNestedControlEvent=e=>{e.stopPropagation()},this.onFieldFocus=event=>{relayNativeEvent(this,event)},this.onFieldBlur=event=>{relayNativeEvent(this,event)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.syncFormState()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}[VALIDITY_ANCHOR](){const field=this.firstInvalidField();if(field){const input=field.querySelector("input.control");if(input)return input;for(const child of field.children){const anchor=resolveValidityAnchor(child);if(anchor)return anchor}}return this.firstMissingPropertyError()}firstInvalidField(){if(!this.renderRoot)return;const fields=Array.from(this.renderRoot.querySelectorAll('[part="field"]'));for(const key of Object.keys(this._errors)){const field=fields.find(candidate=>candidate.dataset.key===key);if(field)return field}}get missingRequiredKeys(){const properties=this.schemaProperties;return this.requiredKeys.filter(key=>!Object.prototype.hasOwnProperty.call(properties,key)&&!!this._errors[key])}firstMissingPropertyError(){if(!this.renderRoot)return;const errors=Array.from(this.renderRoot.querySelectorAll('[part="error"][data-missing-property]'));for(const key of Object.keys(this._errors)){const error=errors.find(candidate=>candidate.dataset.key===key);if(error)return error}}focusFirstControl(options){if(!this.renderRoot)return;const controls=this.renderRoot.querySelectorAll(`input.control, ${tag("select")}, ${tag("number-input")}`);for(const control of controls)if(!(control.disabled||control.getAttribute("aria-disabled")==="true")){control.focus(options);return}}click(){this.effectiveDisabled||this.focusFirstControl()}focus(options){this.effectiveDisabled||this.focusFirstControl(options)}blur(){const active=deepActiveElementIn(this.isConnected?this.shadowRoot:null);active&&typeof active.blur=="function"&&active.blur()}connectedCallback(){this.defaultValueCaptured||(this.defaultValueSnapshot=this._value,this.defaultValueCaptured=!0),super.connectedCallback(),this.errorAnnouncementSink?.element.ownerDocument!==this.ownerDocument&&(this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=acquireAnnouncementSink("assertive",{document:this.ownerDocument,source:this})),this.hasUpdated&&(this.suppressNextErrorAnnouncement=!0,this.requestUpdate()),this.syncFormState()}disconnectedCallback(){super.disconnectedCallback(),this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=void 0,this.suppressNextErrorAnnouncement=!0}get effectiveValue(){return this._effectiveValue}get schemaProperties(){return this._schema.properties}get requiredKeys(){return this._schema.required??Object.freeze([])}resolveEffectiveValue(){const props=this.schemaProperties,out={...this.value};for(const[key,prop]of Object.entries(props)){const fallback=prop.const!==void 0?prop.const:prop.default;!Object.prototype.hasOwnProperty.call(this.value,key)&&fallback!==void 0&&Object.defineProperty(out,key,{configurable:!0,enumerable:!0,writable:!0,value:fallback})}return snapshotFormValue(out).value}get schema(){return this._schema}set schema(next){if(next===this._schema||next===this.lastSchemaInput)return;this.lastSchemaInput=next;const old=this._schema,snapshot=snapshotSchema(next);this._schema=snapshot.schema,this.schemaInputShapeError=snapshot.shapeError,this.schemaInputExceededLimits=snapshot.exceededLimits,this.syncFormState(),this.requestUpdate("schema",old)}get value(){return this._value}set value(next){next===this._value||next===this.lastValueInput||(this.lastValueInput=next,this.applyValue(next))}applyValue(next){const old=this._value,snapshot=snapshotFormValue(next);this._value=snapshot.value,this.valueInputInvalid=snapshot.invalid,this.valueInputTruncated=snapshot.truncated,this.syncFormState(),this.requestUpdate("value",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this.applyValidity(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get errors(){return this.publicValidityErrors()}publicValidityErrors(){const errors={...this._errors};return this.willValidate&&(this.validityController.customValidityMessage||this._formError)&&(errors.base=this.validationMessage),Object.freeze(errors)}publishValiditySnapshot(){if(!this.isConnected)return;const valid=!this.willValidate||this.validity.valid,errors=valid?Object.freeze({}):this.publicValidityErrors(),key=JSON.stringify({valid,errors});key!==this.lastValidityKey&&(this.lastValidityKey=key,this.emit("lr-validity-change",Object.freeze({valid,errors})))}get formError(){return this._formError}selectionMessage(prop){const choices=prop.type==="string"?toolParamChoices(prop):void 0;return!choices||choices.length===0||choices.length>MAX_LISTED_CHOICES?this.localize("toolParamInvalidSelection"):this.localize("fieldMustBeOneOf",void 0,{values:getListFormat(this.effectiveLocale,{style:"long",type:"disjunction"}).format(choices.map(choice=>choice.label))})}computeValidation(effective){const props=this.schemaProperties,required=new Set(this.requiredKeys),out=Object.create(null),flags={},addError=(key,message)=>{Object.defineProperty(out,key,{configurable:!0,enumerable:!0,writable:!0,value:message})};for(const[key,prop]of Object.entries(props)){const type=prop?.type;if(type!=="string"&&type!=="number"&&type!=="integer"&&type!=="boolean"&&type!=="array"){addError(key,this.localize("unsupportedFieldType",void 0,{type:String(type)})),flags.customError=!0;continue}if(!validToolParamConstraints(prop)){addError(key,this.localize("toolParamInvalidConstraint")),flags.customError=!0;continue}if(!(Object.prototype.hasOwnProperty.call(effective,key)&&effective[key]!==void 0)){required.has(key)&&(addError(key,this.localize("fieldRequired")),flags.valueMissing=!0);continue}const v=effective[key];if(type==="string"&&typeof v!="string"){addError(key,this.localize("fieldMustBeString")),flags.typeMismatch=!0;continue}if(type==="number"&&(typeof v!="number"||!Number.isFinite(v))){addError(key,this.localize("fieldMustBeNumber")),flags.typeMismatch=!0;continue}if(type==="integer"&&(typeof v!="number"||!Number.isFinite(v))){addError(key,this.localize("fieldMustBeInteger")),flags.typeMismatch=!0;continue}if(type==="integer"&&!Number.isInteger(v)){addError(key,this.localize("fieldMustBeInteger")),flags.stepMismatch=!0;continue}if(type==="boolean"&&typeof v!="boolean"){addError(key,this.localize("fieldMustBeBoolean")),flags.typeMismatch=!0;continue}const constraint=toolParamConstraintFailure(prop,v);if(constraint){const number=getNumberFormat(this.effectiveLocale),message=constraint==="minLength"?this.localize("toolParamMinLength",void 0,{count:number.format(prop.minLength)}):constraint==="maxLength"?this.localize("toolParamMaxLength",void 0,{count:number.format(prop.maxLength)}):constraint==="minimum"?this.localize("toolParamMinimum",void 0,{value:number.format(prop.minimum)}):constraint==="maximum"?this.localize("toolParamMaximum",void 0,{value:number.format(prop.maximum)}):constraint==="minItems"?this.localize("toolParamMinItems",void 0,{count:number.format(prop.minItems)}):constraint==="maxItems"?this.localize("toolParamMaxItems",void 0,{count:number.format(prop.maxItems)}):constraint==="format"?this.localize("toolParamFormat",void 0,{format:prop.format}):this.selectionMessage(prop);addError(key,message),flags.customError=!0;continue}prop.const!==void 0&&v!==prop.const&&(addError(key,this.localize("fieldMustEqual",void 0,{value:JSON.stringify(prop.const)})),flags.customError=!0)}for(const key of required)Object.prototype.hasOwnProperty.call(props,key)||(!Object.prototype.hasOwnProperty.call(effective,key)||effective[key]===void 0)&&(addError(key,this.localize("fieldRequired")),flags.valueMissing=!0);return{errors:out,flags}}checkValidity(){return this.validityController.checkValidity(()=>this.syncFormState())}reportValidity(){this.validityController.syncConstraints(),this.hasInteracted=!0,this.syncFormState(),Object.keys(this._errors).length>0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)])),this._formError&&(this.showFormError=!0),this.requestUpdate();const valid=this.internals.reportValidity();return!valid&&!this.firstInvalidField()&&this.missingRequiredKeys.length>0&&this.updateComplete.then(()=>{const error=this.firstMissingPropertyError();this.validityController.refreshAnchor(),error?.focus()}),valid}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidityCustomStates(),this.publishValiditySnapshot(),this.requestUpdate()}formResetCallback(){this.hasInteracted=!1,this.applyValue(this.defaultValueSnapshot),this.touchedFields=new Set,this.showFormError=!1}formStateRestoreCallback(state2,_mode){let restored={};if(typeof state2=="string")try{const parsed=JSON.parse(state2);parsed!==null&&typeof parsed=="object"&&!Array.isArray(parsed)&&(restored=parsed)}catch{}this.applyValue(restored)}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(this.applyValidity(),this.requestUpdate())}schemaShapeError(){return this.schemaInputShapeError==="object"?this.localize("schemaMustBeObject"):this.schemaInputShapeError==="properties"?this.localize("schemaPropertiesMustBeFlat"):this.schemaInputExceededLimits?this.localize("toolParamSchemaLimit",void 0,{fields:getNumberFormat(this.effectiveLocale).format(MAX_SCHEMA_FIELDS),options:getNumberFormat(this.effectiveLocale).format(MAX_ENUM_OPTIONS)}):""}serializeEffectiveValue(effective){const serialized=JSON.stringify(effective,(_key,value)=>{if(typeof value=="number"&&!Number.isFinite(value))throw new TypeError("Non-finite numbers are not JSON values.");return value});if(typeof serialized!="string")throw new TypeError("Value did not serialize to JSON.");return serialized}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncInternals(formValue){this.internals.setFormValue(formValue,formValue),this.applyValidity()}applyValidity(){if(this.validityController){if(this.barredFromValidation||Object.keys(this._validityFlags).length===0)this.validityController.setValidity({});else{const firstMessage=Object.values(this._errors)[0]??this._formError;this.validityController.setValidity(this._validityFlags,firstMessage)}this.syncValidityCustomStates(),this.publishValiditySnapshot()}}syncValidityCustomStates(){syncValidityStates(this.internals,{required:this.requiredKeys.length>0,hasInteracted:this.hasInteracted,barred:this.barredFromValidation})}syncFormState(){let effective=Object.freeze({}),errors={},flags={},formError="",formValue=null;try{if(formError=this.schemaShapeError(),this.valueInputInvalid||this.valueInputTruncated)throw new TypeError("The value could not be retained within the public snapshot boundary.");effective=this.resolveEffectiveValue();const validation=this.computeValidation(effective);errors=validation.errors,flags=validation.flags,formValue=this.serializeEffectiveValue(effective)}catch{formError=this.localize("valueMustBeSerializable"),formValue=null}formError&&(flags.customError=!0,formValue=null),this._effectiveValue=effective,sameErrors(this._errors,errors)||(this._errors=errors),this._formError=formError,this._validityFlags=flags,this.syncInternals(formValue)}updated(changed){if(super.updated(changed),this.publishValiditySnapshot(),changed.has("value")||changed.has("schema")||changed.has("_errors")||changed.has("_formError")){const nestedUpdates=Array.from(this.firstInvalidField()?.children??[]).filter(element=>typeof element[VALIDITY_ANCHOR]=="function").map(element=>element.updateComplete).filter(update=>update!==void 0);nestedUpdates.length>0&&Promise.all(nestedUpdates).then(()=>this.validityController.refreshAnchor())}const currentErrors=this.visibleErrors();if(!this.suppressNextErrorAnnouncement){const freshMessages=[];for(const[key,text]of currentErrors)this.visibleErrorSnapshot.get(key)!==text&&!freshMessages.includes(text)&&freshMessages.push(text);freshMessages.length>0&&this.errorAnnouncementSink?.announce(freshMessages.join(" "))}this.visibleErrorSnapshot=currentErrors,this.suppressNextErrorAnnouncement=!1}visibleErrors(){const visible=new Map;for(const key of Object.keys(this.schemaProperties)){const message=this.touchedFields.has(key)?this._errors[key]:void 0;message&&visible.set(key,message)}for(const key of this.missingRequiredKeys)this.touchedFields.has(key)&&visible.set(key,this.localize("toolParamMissingProperty",void 0,{key}));return this.showFormError&&this._formError&&visible.set("form",this._formError),visible}setFieldValue(key,val,committed=!1){if(this.effectiveDisabled)return;this.hasInteracted=!0,this.applyValue({...this.value,[key]:val});const detail={value:this.effectiveValue};emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),committed&&emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2))}markTouched(key){this.hasInteracted=!0,this.syncValidityCustomStates(),!this.touchedFields.has(key)&&(this.touchedFields=new Set(this.touchedFields).add(key))}onTextInput(key,e){e.stopPropagation(),this.setFieldValue(key,e.target.value)}onNumberInput(key,e){e.stopPropagation();const n=e.target.valueAsNumber;this.setFieldValue(key,Number.isNaN(n)?void 0:n)}onSelectChange(key,e){e.stopPropagation(),this.setFieldValue(key,e.target.value,!0)}onBooleanSelectChange(key,e){e.stopPropagation();const value=e.target.value;if(value===""){if(this.effectiveDisabled)return;if(this.hasInteracted=!0,this.schemaProperties[key]?.default!==void 0)this.applyValue({...this.value,[key]:void 0});else{const next={...this.value};Reflect.deleteProperty(next,key),this.applyValue(next)}const detail={value:this.effectiveValue};emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2));return}this.setFieldValue(key,value==="true",!0)}renderControl(key,prop,fieldId,label,required,describedBy,errorMessage,effective){const choices=toolParamChoices(prop);if((prop.type==="string"||prop.type==="array")&&choices&&choices.length>0)return html`<lr-select
2
2
  id=${fieldId}
3
3
  .label=${label}
4
4
  .hint=${prop.description??""}
@@ -1,7 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraToolStatus}from'../../../internal/shared-unions.js';
2
- /** Same status vocabulary as `<lr-tool-call-chip>`, including `incomplete` for a call that ended
3
- * without a result. */
4
- export type ToolResultStatus=LyraToolStatus|'incomplete';
1
+ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type ToolStatus}from'../tool-status.js';
5
2
  /**
6
3
  * Reason the dialog was dismissed, forwarded as the `lr-close` event
7
4
  * detail -- mirrors `<lr-dialog>`'s own `DialogCloseReason` shape.
@@ -117,7 +114,7 @@ toolName:string;
117
114
  * out-of-union value (e.g. a stray `status` attribute, or a direct property
118
115
  * assignment from an untyped caller) normalizes and reflects as `'pending'`.
119
116
  */
120
- get status():ToolResultStatus;set status(next:ToolResultStatus);private statusValue;
117
+ get status():ToolStatus;set status(next:ToolStatus);private statusValue;
121
118
  /** How long the call took, in milliseconds. Omitted from the header entirely when unset. */
122
119
  durationMs?:number;
123
120
  /** Near-fullscreen presentation of the same open dialog. */
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon,expandIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolGlyph,toolStatusIcon}from"../tool-status.js";import{literalSetConverter}from"../../../internal/converters.js";import{styles}from"./tool-result-dialog.styles.js";import{LYRA_DEFAULT_close,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_maximize,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings.generated.js";function shrinkIcon(){return toolGlyph(svg`
1
+ import{__decorate}from"tslib";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon,expandIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolGlyph,toolStatusIcon}from"../tool-status.js";import{literalSetConverter}from"../../../internal/converters.js";import{styles}from"./tool-result-dialog.styles.js";import{LYRA_DEFAULT_maximize,LYRA_DEFAULT_toolCall}from"../../../internal/default-strings/agent-tools.generated.js";import{LYRA_DEFAULT_close,LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings/shared.generated.js";function shrinkIcon(){return toolGlyph(svg`
2
2
  <polyline points="4 14 10 14 10 20"></polyline>
3
3
  <polyline points="20 10 14 10 14 4"></polyline>
4
4
  <line x1="14" y1="10" x2="21" y2="3"></line>
@@ -1 +1 @@
1
- import{iconHitTarget,focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{modalHostStyles}from"../../../internal/native-modal-carrier.styles.js";const styles=css` :host { --_lr-tool-result-dialog-overlay-color: var(--lr-color-overlay); --_lr-tool-result-dialog-maximized-inset: max( var(--lr-space-l), var(--lr-safe-area-top) ) max(var(--lr-space-l), var(--lr-safe-area-inline-end)) max(var(--lr-space-l), var(--lr-safe-area-bottom)) max(var(--lr-space-l), var(--lr-safe-area-inline-start)); --_lr-tool-result-dialog-spin: var(--lr-transition-ambient); --_lr-tool-result-dialog-pending-color: var(--lr-color-text-quiet); --_lr-tool-result-dialog-pending-bg: transparent; --_lr-tool-result-dialog-running-color: var(--lr-color-brand); --_lr-tool-result-dialog-running-bg: var(--lr-color-brand-quiet); --_lr-tool-result-dialog-success-color: var(--lr-color-success); --_lr-tool-result-dialog-success-bg: var(--lr-color-success-quiet); --_lr-tool-result-dialog-error-color: var(--lr-color-danger); --_lr-tool-result-dialog-error-bg: var(--lr-color-danger-quiet); --_lr-tool-result-dialog-denied-color: var(--lr-color-warning); --_lr-tool-result-dialog-denied-bg: var(--lr-color-warning-quiet); --_lr-tool-result-dialog-incomplete-color: var(--lr-color-text-quiet); --_lr-tool-result-dialog-incomplete-bg: transparent; ${modalHostStyles} align-items: center; justify-content: center; padding-block-start: max(var(--lr-space-l), var(--lr-safe-area-top)); padding-block-end: max(var(--lr-space-l), var(--lr-safe-area-bottom)); padding-inline-start: max( var(--lr-space-l), var(--lr-safe-area-inline-start) ); padding-inline-end: max(var(--lr-space-l), var(--lr-safe-area-inline-end)); } :host([open]) { display: flex; } [part="backdrop"] { position: absolute; inset: 0; background: var( --lr-tool-result-dialog-overlay-color, var(--_lr-tool-result-dialog-overlay-color) ); } [part="panel"] { position: relative; display: flex; flex-direction: column; inline-size: min(var(--lr-size-48rem), 100%); min-inline-size: 0; max-block-size: 100%; box-sizing: border-box; background: var(--lr-color-surface-overlay); border: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-radius: var(--lr-radius); box-shadow: var(--lr-shadow-xl); overflow: hidden; transition: inline-size var(--lr-transition-base), block-size var(--lr-transition-base); } :host([maximized]) [part="panel"] { position: fixed; inset: var( --lr-tool-result-dialog-maximized-inset, var(--_lr-tool-result-dialog-maximized-inset) ); inline-size: auto; max-block-size: none; } [part="header"] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-s); min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-space-m) var(--lr-space-l); border-block-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); } [part="title"] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-s); flex: 1 1 auto; min-inline-size: 0; max-inline-size: 100%; } [part="tool-name"] { flex: 1 1 auto; min-inline-size: 0; max-inline-size: 100%; font-weight: var(--lr-font-weight-semibold); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } [part="status"] { display: inline-flex; align-items: center; gap: var(--lr-size-0-25rem); flex: 0 1 auto; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-125rem) var(--lr-space-xs); border-radius: var(--lr-radius); font-size: var(--lr-font-size-xs); font-weight: var(--lr-font-weight-semibold); white-space: normal; overflow-wrap: anywhere; color: var( --lr-tool-result-dialog-pending-color, var(--_lr-tool-result-dialog-pending-color) ); background: var( --lr-tool-result-dialog-pending-bg, var(--_lr-tool-result-dialog-pending-bg) ); } [part="status"] svg { flex: 0 0 auto; inline-size: var(--lr-size-1em); block-size: var(--lr-size-1em); } [part="status"] span { min-inline-size: 0; overflow-wrap: anywhere; } :host([status="running"]) [part="status"] { color: var( --lr-tool-result-dialog-running-color, var(--_lr-tool-result-dialog-running-color) ); background: var( --lr-tool-result-dialog-running-bg, var(--_lr-tool-result-dialog-running-bg) ); } :host([status="success"]) [part="status"] { color: var( --lr-tool-result-dialog-success-color, var(--_lr-tool-result-dialog-success-color) ); background: var( --lr-tool-result-dialog-success-bg, var(--_lr-tool-result-dialog-success-bg) ); } :host([status="error"]) [part="status"] { color: var( --lr-tool-result-dialog-error-color, var(--_lr-tool-result-dialog-error-color) ); background: var( --lr-tool-result-dialog-error-bg, var(--_lr-tool-result-dialog-error-bg) ); } :host([status="denied"]) [part="status"] { color: var( --lr-tool-result-dialog-denied-color, var(--_lr-tool-result-dialog-denied-color) ); background: var( --lr-tool-result-dialog-denied-bg, var(--_lr-tool-result-dialog-denied-bg) ); } :host([status="incomplete"]) [part="status"] { color: var( --lr-tool-result-dialog-incomplete-color, var(--_lr-tool-result-dialog-incomplete-color) ); background: var( --lr-tool-result-dialog-incomplete-bg, var(--_lr-tool-result-dialog-incomplete-bg) ); } :host([status="running"]) [part="status"] svg { animation: var(--_lr-motion-animation, lr-tool-result-dialog-spin var(--lr-tool-result-dialog-spin, var(--_lr-tool-result-dialog-spin)) infinite); } [part="duration"] { max-inline-size: 100%; font-size: var(--lr-font-size-xs); color: var(--lr-color-text-quiet); white-space: nowrap; } [part="header-actions"] { display: flex; align-items: center; gap: var(--lr-space-xs); flex: 0 0 auto; max-inline-size: 100%; margin-inline-start: auto; } [part="maximize-button"], [part="close-button"] { display: inline-flex; font: inherit; align-items: center; justify-content: center; ${iconHitTarget} border: none; background: transparent; color: var(--lr-color-text-quiet); border-radius: var(--lr-radius); cursor: pointer; } [part="maximize-button"]:hover, [part="close-button"]:hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } [part="maximize-button"]:active, [part="close-button"]:active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="maximize-button"]:focus-visible, [part="close-button"]:focus-visible { ${focusRing} } [part="body"] { flex: 1 1 auto; min-block-size: 0; padding: var(--lr-space-l); overflow: auto; } [part="footer"] { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--lr-space-s); padding: var(--lr-space-m) var(--lr-space-l); border-block-start: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); } [part="footer"][hidden] { display: none; } @keyframes lr-tool-result-dialog-spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { [part="panel"] { transition: none !important; } :host([status="running"]) [part="status"] svg { animation: none !important; } } `;export{styles};
1
+ import{toolStatusKeyframes}from"../tool-status.styles.js";import{iconHitTarget,focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{modalHostStyles}from"../../../internal/native-modal-carrier.styles.js";const styles=css` :host { --_lr-tool-result-dialog-overlay-color: var(--lr-color-overlay); --_lr-tool-result-dialog-maximized-inset: max( var(--lr-space-l), var(--lr-safe-area-top) ) max(var(--lr-space-l), var(--lr-safe-area-inline-end)) max(var(--lr-space-l), var(--lr-safe-area-bottom)) max(var(--lr-space-l), var(--lr-safe-area-inline-start)); --_lr-tool-result-dialog-spin: var(--lr-transition-ambient); --_lr-tool-result-dialog-pending-color: var(--lr-color-text-quiet); --_lr-tool-result-dialog-pending-bg: transparent; --_lr-tool-result-dialog-running-color: var(--lr-color-brand); --_lr-tool-result-dialog-running-bg: var(--lr-color-brand-quiet); --_lr-tool-result-dialog-success-color: var(--lr-color-success); --_lr-tool-result-dialog-success-bg: var(--lr-color-success-quiet); --_lr-tool-result-dialog-error-color: var(--lr-color-danger); --_lr-tool-result-dialog-error-bg: var(--lr-color-danger-quiet); --_lr-tool-result-dialog-denied-color: var(--lr-color-warning); --_lr-tool-result-dialog-denied-bg: var(--lr-color-warning-quiet); --_lr-tool-result-dialog-incomplete-color: var(--lr-color-text-quiet); --_lr-tool-result-dialog-incomplete-bg: transparent; ${modalHostStyles} align-items: center; justify-content: center; padding-block-start: max(var(--lr-space-l), var(--lr-safe-area-top)); padding-block-end: max(var(--lr-space-l), var(--lr-safe-area-bottom)); padding-inline-start: max( var(--lr-space-l), var(--lr-safe-area-inline-start) ); padding-inline-end: max(var(--lr-space-l), var(--lr-safe-area-inline-end)); } :host([open]) { display: flex; } [part="backdrop"] { position: absolute; inset: 0; background: var( --lr-tool-result-dialog-overlay-color, var(--_lr-tool-result-dialog-overlay-color) ); } [part="panel"] { position: relative; display: flex; flex-direction: column; inline-size: min(var(--lr-size-48rem), 100%); min-inline-size: 0; max-block-size: 100%; box-sizing: border-box; background: var(--lr-color-surface-overlay); border: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-radius: var(--lr-radius); box-shadow: var(--lr-shadow-xl); overflow: hidden; transition: inline-size var(--lr-transition-base), block-size var(--lr-transition-base); } :host([maximized]) [part="panel"] { position: fixed; inset: var( --lr-tool-result-dialog-maximized-inset, var(--_lr-tool-result-dialog-maximized-inset) ); inline-size: auto; max-block-size: none; } [part="header"] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-s); min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-space-m) var(--lr-space-l); border-block-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); } [part="title"] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-s); flex: 1 1 auto; min-inline-size: 0; max-inline-size: 100%; } [part="tool-name"] { flex: 1 1 auto; min-inline-size: 0; max-inline-size: 100%; font-weight: var(--lr-font-weight-semibold); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } [part="status"] { display: inline-flex; align-items: center; gap: var(--lr-size-0-25rem); flex: 0 1 auto; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-125rem) var(--lr-space-xs); border-radius: var(--lr-radius); font-size: var(--lr-font-size-xs); font-weight: var(--lr-font-weight-semibold); white-space: normal; overflow-wrap: anywhere; color: var( --lr-tool-result-dialog-pending-color, var(--_lr-tool-result-dialog-pending-color) ); background: var( --lr-tool-result-dialog-pending-bg, var(--_lr-tool-result-dialog-pending-bg) ); } [part="status"] svg { flex: 0 0 auto; inline-size: var(--lr-size-1em); block-size: var(--lr-size-1em); } [part="status"] span { min-inline-size: 0; overflow-wrap: anywhere; } :host([status="running"]) [part="status"] { color: var( --lr-tool-result-dialog-running-color, var(--_lr-tool-result-dialog-running-color) ); background: var( --lr-tool-result-dialog-running-bg, var(--_lr-tool-result-dialog-running-bg) ); } :host([status="success"]) [part="status"] { color: var( --lr-tool-result-dialog-success-color, var(--_lr-tool-result-dialog-success-color) ); background: var( --lr-tool-result-dialog-success-bg, var(--_lr-tool-result-dialog-success-bg) ); } :host([status="error"]) [part="status"] { color: var( --lr-tool-result-dialog-error-color, var(--_lr-tool-result-dialog-error-color) ); background: var( --lr-tool-result-dialog-error-bg, var(--_lr-tool-result-dialog-error-bg) ); } :host([status="denied"]) [part="status"] { color: var( --lr-tool-result-dialog-denied-color, var(--_lr-tool-result-dialog-denied-color) ); background: var( --lr-tool-result-dialog-denied-bg, var(--_lr-tool-result-dialog-denied-bg) ); } :host([status="incomplete"]) [part="status"] { color: var( --lr-tool-result-dialog-incomplete-color, var(--_lr-tool-result-dialog-incomplete-color) ); background: var( --lr-tool-result-dialog-incomplete-bg, var(--_lr-tool-result-dialog-incomplete-bg) ); } :host([status="running"]) [part="status"] svg { animation: var(--_lr-motion-animation, lr-tool-status-spin var(--lr-tool-result-dialog-spin, var(--_lr-tool-result-dialog-spin)) infinite); } [part="duration"] { max-inline-size: 100%; font-size: var(--lr-font-size-xs); color: var(--lr-color-text-quiet); white-space: nowrap; } [part="header-actions"] { display: flex; align-items: center; gap: var(--lr-space-xs); flex: 0 0 auto; max-inline-size: 100%; margin-inline-start: auto; } [part="maximize-button"], [part="close-button"] { display: inline-flex; font: inherit; align-items: center; justify-content: center; ${iconHitTarget} border: none; background: transparent; color: var(--lr-color-text-quiet); border-radius: var(--lr-radius); cursor: pointer; } [part="maximize-button"]:hover, [part="close-button"]:hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } [part="maximize-button"]:active, [part="close-button"]:active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="maximize-button"]:focus-visible, [part="close-button"]:focus-visible { ${focusRing} } [part="body"] { flex: 1 1 auto; min-block-size: 0; padding: var(--lr-space-l); overflow: auto; } [part="footer"] { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--lr-space-s); padding: var(--lr-space-m) var(--lr-space-l); border-block-start: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); } [part="footer"][hidden] { display: none; } @media (prefers-reduced-motion: reduce) { [part="panel"] { transition: none !important; } :host([status="running"]) [part="status"] svg { animation: none !important; } } ${toolStatusKeyframes} `;export{styles};
@@ -9,16 +9,8 @@
9
9
  * "*_search" tool returning `{ results: [...] }`) or when the caller doesn't
10
10
  * reliably know the tool name at all.
11
11
  */
12
- /**
13
- * `ToolResultStatus` lives on `<lr-tool-result-dialog>` (`tool-result-dialog.class.ts`) and is
14
- * re-exported here rather than duplicated -- this module's cycle analysis (see
15
- * `scripts/check-import-cycles.mjs`, run as part of `contract-policy`) confirmed
16
- * `tool-result-dialog.class.ts` and everything *it* imports (`LyraElement`, `scroll-lock`,
17
- * `overlay-manager`, `a11y`, `icons`, `numbers`) has zero path back into this `tool-result-view/`
18
- * directory, so importing the type here creates no circular import; `verbatimModuleSyntax` erases
19
- * the `import type` at build time regardless, so this costs nothing at runtime either way.
20
- */
21
- import type{ToolResultStatus}from'../tool-result-dialog/tool-result-dialog.class.js';export type{ToolResultStatus};
12
+ /** The shared tool-call status union (`../tool-status.ts`), re-exported for renderers. */
13
+ import type{ToolStatus}from'../tool-status.js';export type{ToolStatus};
22
14
  /**
23
15
  * Handed to a renderer's `render()` as an optional 3rd positional argument (see
24
16
  * `ToolRendererDefinition.render`). A pre-existing 2-arg `render(result, args)` function stays
@@ -38,7 +30,7 @@ export interface ToolRenderContext{
38
30
  * default, `'success'`. Calls from a renderer that throws, or after a later render has started,
39
31
  * are ignored.
40
32
  */
41
- reportStatus:(status:ToolResultStatus)=>void;}interface ToolRendererDefinitionBase{
33
+ reportStatus:(status:ToolStatus)=>void;}interface ToolRendererDefinitionBase{
42
34
  /** Facade/shape-based dispatch predicate -- see the module doc's dispatch order. */
43
35
  readonly matches?:(payload:unknown)=>boolean;}
44
36
  /** A renderer whose implementation is already available synchronously. */
@@ -54,7 +46,7 @@ export interface DirectToolRendererDefinition extends ToolRendererDefinitionBase
54
46
  * it's the last positional parameter, so every pre-existing 2-arg `render(result, args)`
55
47
  * function stays assignable unchanged. Direct callers can omit it; use
56
48
  * `context?.reportStatus()` to signal a non-throwing
57
- * failure (or any other `ToolResultStatus`) while still rendering real content, instead of
49
+ * failure (or any other `ToolStatus`) while still rendering real content, instead of
58
50
  * throwing and losing that content to the `<lr-json-viewer>` fallback.
59
51
  */
60
52
  readonly render:(result:unknown,args:unknown,context?:ToolRenderContext)=>unknown;
@@ -1,4 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type ToolRendererRegistry,type ToolResultStatus}from'./registry.js';import'../../overlays/skeleton/skeleton.class.js';import'../../utility/json-viewer/json-viewer.class.js';import'../../utility/copy-button/copy-button.class.js';
1
+ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type ToolRendererRegistry,type ToolStatus}from'./registry.js';import'../../overlays/skeleton/skeleton.class.js';import'../../utility/json-viewer/json-viewer.class.js';import'../../utility/copy-button/copy-button.class.js';
2
2
  /** The two supported built-in fallback presentations. Invalid runtime values normalize to `json`. */
3
3
  export type ToolResultFallback='json'|'text';export interface LyraToolResultViewEventMap{'lr-render-error':CustomEvent<{toolName:string;error:unknown;}>;}
4
4
  /**
@@ -67,4 +67,4 @@ copyable:boolean;
67
67
  * later renderer that stays quiet doesn't inherit a stale outcome from a previous one. Reuses the
68
68
  * same vocabulary as `<lr-tool-result-dialog>`'s own `status` property.
69
69
  */
70
- status:ToolResultStatus;private renderState;private generation;private renderAttempt?;private resolvedLazy?;protected willUpdate(changed:PropertyValues):void;private resolve;private renderWith;private fail;render():TemplateResult;private renderFallback;}declare global{interface HTMLElementTagNameMap{'lr-tool-result-view':LyraToolResultView;}}
70
+ status:ToolStatus;private renderState;private generation;private renderAttempt?;private resolvedLazy?;protected willUpdate(changed:PropertyValues):void;private resolve;private renderWith;private fail;render():TemplateResult;private renderFallback;}declare global{interface HTMLElementTagNameMap{'lr-tool-result-view':LyraToolResultView;}}
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{findToolRenderer,getDefaultToolRendererRegistry,loadToolRenderer}from"./registry.js";import{styles}from"./tool-result-view.styles.js";import"../../overlays/skeleton/skeleton.class.js";import"../../utility/json-viewer/json-viewer.class.js";import"../../utility/copy-button/copy-button.class.js";import{LYRA_DEFAULT_loading}from"../../../internal/default-strings.generated.js";const FALLBACK_STATE={kind:"fallback"};class LyraToolResultView extends LyraElement{constructor(){super(...arguments),this.toolName="",this._fallback="json",this.copyable=!1,this.status="success",this.renderState=FALLBACK_STATE,this.generation=0}static{this.defaultStrings={...super.defaultStrings,loading:LYRA_DEFAULT_loading}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["registry"])}static{this.styles=[LyraElement.styles,styles,srOnly]}static{this.properties={fallback:{reflect:!0,noAccessor:!0}}}get fallback(){return this._fallback}set fallback(next){const old=this._fallback;this._fallback=next==="text"?"text":"json",this.requestUpdate("fallback",old)}willUpdate(changed){super.willUpdate(changed),(!this.hasUpdated||changed.has("toolName")||changed.has("result")||changed.has("args")||changed.has("registry"))&&this.resolve()}async resolve(){const generation=++this.generation;this.renderAttempt=void 0;const registry=this.registry??getDefaultToolRendererRegistry();let def;try{def=findToolRenderer(this.toolName,this.result,registry)}catch(error){this.fail(error);return}if(!def){this.fail(new Error(`<lr-tool-result-view>: no renderer registered for tool "${this.toolName}"`));return}if(def.load){if(this.resolvedLazy?.def===def){this.renderWith(this.resolvedLazy.resolved);return}this.renderState={kind:"loading"};let resolved;try{resolved=await loadToolRenderer(def)}catch(error){if(generation!==this.generation)return;this.fail(error);return}if(generation!==this.generation)return;this.resolvedLazy={def,resolved},this.renderWith(resolved);return}this.renderWith(def)}renderWith(def){const generation=this.generation,attempt=Symbol();this.renderAttempt=attempt,this.status="success";const context={reportStatus:status=>{generation!==this.generation||this.renderAttempt!==attempt||(this.status=status)}};try{const template=def.render(this.result,this.args,context);if(generation!==this.generation||this.renderAttempt!==attempt)return;this.renderState={kind:"rendered",template}}catch(error){if(generation!==this.generation||this.renderAttempt!==attempt)return;this.renderAttempt=void 0,this.fail(error)}}fail(error){this.emit("lr-render-error",{toolName:this.toolName,error}),this.status="success",this.renderState=FALLBACK_STATE}render(){const state2=this.renderState;return html`
1
+ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{findToolRenderer,getDefaultToolRendererRegistry,loadToolRenderer}from"./registry.js";import{styles}from"./tool-result-view.styles.js";import"../../overlays/skeleton/skeleton.class.js";import"../../utility/json-viewer/json-viewer.class.js";import"../../utility/copy-button/copy-button.class.js";import{LYRA_DEFAULT_loading,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings/shared.generated.js";const FALLBACK_STATE={kind:"fallback"};class LyraToolResultView extends LyraElement{constructor(){super(...arguments),this.toolName="",this._fallback="json",this.copyable=!1,this.status="success",this.renderState=FALLBACK_STATE,this.generation=0}static{this.defaultStrings={...super.defaultStrings,loading:LYRA_DEFAULT_loading,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["registry"])}static{this.styles=[LyraElement.styles,styles,srOnly]}static{this.properties={fallback:{reflect:!0,noAccessor:!0}}}get fallback(){return this._fallback}set fallback(next){const old=this._fallback;this._fallback=next==="text"?"text":"json",this.requestUpdate("fallback",old)}willUpdate(changed){super.willUpdate(changed),(!this.hasUpdated||changed.has("toolName")||changed.has("result")||changed.has("args")||changed.has("registry"))&&this.resolve()}async resolve(){const generation=++this.generation;this.renderAttempt=void 0;const registry=this.registry??getDefaultToolRendererRegistry();let def;try{def=findToolRenderer(this.toolName,this.result,registry)}catch(error){this.fail(error);return}if(!def){this.fail(new Error(`<lr-tool-result-view>: no renderer registered for tool "${this.toolName}"`));return}if(def.load){if(this.resolvedLazy?.def===def){this.renderWith(this.resolvedLazy.resolved);return}this.renderState={kind:"loading"};let resolved;try{resolved=await loadToolRenderer(def)}catch(error){if(generation!==this.generation)return;this.fail(error);return}if(generation!==this.generation)return;this.resolvedLazy={def,resolved},this.renderWith(resolved);return}this.renderWith(def)}renderWith(def){const generation=this.generation,attempt=Symbol();this.renderAttempt=attempt,this.status="success";const context={reportStatus:status=>{generation!==this.generation||this.renderAttempt!==attempt||(this.status=status)}};try{const template=def.render(this.result,this.args,context);if(generation!==this.generation||this.renderAttempt!==attempt)return;this.renderState={kind:"rendered",template}}catch(error){if(generation!==this.generation||this.renderAttempt!==attempt)return;this.renderAttempt=void 0,this.fail(error)}}fail(error){this.emit("lr-render-error",{toolName:this.toolName,error}),this.status="success",this.renderState=FALLBACK_STATE}render(){const state2=this.renderState;return html`
2
2
  <div part="base" aria-busy=${state2.kind==="loading"?"true":"false"}>
3
3
  ${state2.kind==="loading"?html`
4
4
  <span class="sr-only">${this.localize("loading")}</span>
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{live}from"lit/directives/live.js";import{repeat}from"lit/directives/repeat.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR,getOwnDataDescriptor}from"../../../internal/data-descriptors.js";import{styles}from"./tool-select-dialog.styles.js";import"../../forms/checkbox/checkbox.class.js";import"../../forms/switch/switch.class.js";import{trueDefaultSpellcheckConverter as spellcheckConverter}from"../../../internal/converters.js";import{getNumberFormat,resolveIntlLocale}from"../../../internal/intl-cache.js";import{closeIcon}from"../../../internal/icons.js";import{LYRA_DEFAULT_clear,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_loadMore,LYRA_DEFAULT_noMatchesQuery,LYRA_DEFAULT_otherCategory,LYRA_DEFAULT_searchToolsPlaceholder,LYRA_DEFAULT_selectTools,LYRA_DEFAULT_toolCount,LYRA_DEFAULT_toolSelectCustomizeHint,LYRA_DEFAULT_toolSelectLimit,LYRA_DEFAULT_toolSelectNoneAvailable,LYRA_DEFAULT_toolSelectSummary,LYRA_DEFAULT_useDefaultTools}from"../../../internal/default-strings.generated.js";const UNCATEGORIZED=null,MAX_RENDERED_TOOLS=200,MAX_NORMALIZED_TOOL_ENTRIES=1e4,FUNCTION_TO_STRING=Function.prototype.toString,OBJECT_CONSTRUCTOR_SOURCE=FUNCTION_TO_STRING.call(Object);function isRuntimeArray(value){try{return Array.isArray(value)}catch{return!1}}function ownDataArrayValues(value,limit){if(!isRuntimeArray(value))return[];const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return[];const values=[];for(let index=0;index<Math.min(length.value,limit);index+=1){const entry=getOwnDataDescriptor(value,String(index));entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR||values.push(entry.value)}return values}function isPlainToolRecord(value){if(value===null||typeof value!="object")return!1;try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;if(Object.getPrototypeOf(prototype)!==null)return!1;const constructor=getOwnDataDescriptor(prototype,"constructor");if(constructor===MISSING_OWN_DATA_DESCRIPTOR||constructor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof constructor.value!="function")return!1;const name=getOwnDataDescriptor(constructor.value,"name"),constructorPrototype=getOwnDataDescriptor(constructor.value,"prototype");return name!==MISSING_OWN_DATA_DESCRIPTOR&&name!==UNSAFE_OWN_DATA_DESCRIPTOR&&name.value==="Object"&&constructorPrototype!==MISSING_OWN_DATA_DESCRIPTOR&&constructorPrototype!==UNSAFE_OWN_DATA_DESCRIPTOR&&constructorPrototype.value===prototype&&FUNCTION_TO_STRING.call(constructor.value)===OBJECT_CONSTRUCTOR_SOURCE}catch{return!1}}function requiredToolString(record,key){const value=getOwnDataDescriptor(record,key);if(!(value===MISSING_OWN_DATA_DESCRIPTOR||value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="string"||value.value.trim().length===0))return value.value}function optionalToolString(record,key){const value=getOwnDataDescriptor(record,key);if(value!==MISSING_OWN_DATA_DESCRIPTOR)return value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="string"?null:value.value}function optionalToolBoolean(record,key){const value=getOwnDataDescriptor(record,key);if(value!==MISSING_OWN_DATA_DESCRIPTOR)return value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="boolean"?null:value.value}function canonicalTool(value){if(!isPlainToolRecord(value))return;const id=requiredToolString(value,"id"),name=requiredToolString(value,"name"),description=optionalToolString(value,"description"),category=optionalToolString(value,"category"),icon=optionalToolString(value,"icon"),disabled=optionalToolBoolean(value,"disabled"),disabledReason=optionalToolString(value,"disabledReason");if(!(id===void 0||name===void 0||description===null||category===null||icon===null||disabled===null||disabledReason===null))return Object.freeze({id,name,...description===void 0?{}:{description},...category===void 0?{}:{category},...icon===void 0?{}:{icon},...disabled===void 0?{}:{disabled},...disabledReason===void 0?{}:{disabledReason}})}function projectCanonicalTools(input){const tools=[],seen=new Set;for(const entry of ownDataArrayValues(input,MAX_NORMALIZED_TOOL_ENTRIES)){const tool=canonicalTool(entry);!tool||seen.has(tool.id)||(seen.add(tool.id),tools.push(tool))}return Object.freeze(tools)}function projectCanonicalSelectedToolIds(input){const ids=[],seen=new Set;for(const entry of ownDataArrayValues(input,MAX_NORMALIZED_TOOL_ENTRIES))typeof entry!="string"||entry.trim().length===0||seen.has(entry)||(seen.add(entry),ids.push(entry));return Object.freeze(ids)}function defaultFilter(tool,query,locale){const intlLocale=resolveIntlLocale(locale);return tool.name.toLocaleLowerCase(intlLocale).includes(query)||(tool.description??"").toLocaleLowerCase(intlLocale).includes(query)}class LyraToolSelectDialog extends LyraElement{constructor(){super(...arguments),this.open=!1,this.lightDismiss=!1,this.tools=[],this.selectedToolIds=[],this.useDefaults=!1,this.accessibleLabel=null,this.autocomplete="",this.spellcheck=!0,this.autocapitalize="",this.autoCorrect="",this.inputMode="",this.enterKeyHint="",this.filter=null,this.query="",this.hasFooterSlot=!1,this.renderedToolLimit=MAX_RENDERED_TOOLS,this.nativeModal=new NativeModalCarrier(this,{onCancel:()=>{!this.open||!this.overlay?.isTopmost()||this.close("escape")},onUnexpectedClose:()=>{this.open&&(this.nativeModal.hide(),this.close("api"))}}),this.modalSurface=new ModalSurfaceController(this,this.nativeModal),this.titleId=nextId("tool-select-dialog-title"),this.categoryIds=new Map,this.onFooterSlotChange=()=>{this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")},this.onBackdropClick=()=>{this.overlay?.dismissBackdrop()},this.changeRequestPending=!1,this.onSearchInput=e=>{this.query=e.target.value,this.renderedToolLimit=MAX_RENDERED_TOOLS,e.stopPropagation()},this.onSearchFocus=event=>{relayNativeEvent(this,event)},this.onSearchBlur=event=>{relayNativeEvent(this,event)},this.onClearSearch=()=>{this.query="",this.renderedToolLimit=MAX_RENDERED_TOOLS,this.renderRoot.querySelector('[part="search-input"]')?.focus()},this.stopNestedControlEvent=event=>{event.stopPropagation()},this.onDefaultsToggleRequest=e=>{e.stopPropagation();const next={selectedToolIds:this.canonicalSelectedToolIds,useDefaults:e.detail.checked};if(!this.requestChange(next)){e.preventDefault();return}this.useDefaults=next.useDefaults,this.emit("lr-change",next)},this.onLoadMore=()=>{this.renderedToolLimit+=MAX_RENDERED_TOOLS,this.updateComplete.then(()=>{if(!this.isConnected||!this.open)return;(this.shadowRoot?.querySelector('[part="load-more"]')??this.shadowRoot?.querySelector('[part="body"]'))?.focus()})}}static{this.defaultStrings={...super.defaultStrings,clear:LYRA_DEFAULT_clear,fieldRequired:LYRA_DEFAULT_fieldRequired,loadMore:LYRA_DEFAULT_loadMore,noMatchesQuery:LYRA_DEFAULT_noMatchesQuery,otherCategory:LYRA_DEFAULT_otherCategory,searchToolsPlaceholder:LYRA_DEFAULT_searchToolsPlaceholder,selectTools:LYRA_DEFAULT_selectTools,toolCount:LYRA_DEFAULT_toolCount,toolSelectCustomizeHint:LYRA_DEFAULT_toolSelectCustomizeHint,toolSelectLimit:LYRA_DEFAULT_toolSelectLimit,toolSelectNoneAvailable:LYRA_DEFAULT_toolSelectNoneAvailable,toolSelectSummary:LYRA_DEFAULT_toolSelectSummary,useDefaultTools:LYRA_DEFAULT_useDefaultTools}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["tools","selectedToolIds"])}static{this.styles=[LyraElement.styles,nativeModalCarrierStyles,styles,srOnly]}static{this.immutableEventDetails=Object.freeze(["lr-change-request","lr-change"])}willUpdate(changed){if(super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")),changed.has("tools")&&(this.canonicalToolsCache=void 0,this.renderedToolLimit=MAX_RENDERED_TOOLS),changed.has("selectedToolIds")&&(this.canonicalSelectedToolIdsCache=void 0,this.canonicalSelectedToolIdsSource=void 0),changed.has("open"))if(this.open)this.renderedWindow=void 0,this.modalSurface.open(()=>this.activateOverlay());else{const hadOverlay=this.overlay!==void 0;this.modalSurface.close(hadOverlay,()=>{this.overlay?.deactivate(),this.overlay=void 0},()=>!this.open),this.query="",this.renderedToolLimit=MAX_RENDERED_TOOLS}}updated(changed){super.updated(changed),this.open&&this.enterTopLayer(),changed.has("open")&&this.open&&this.overlay?.focusInitial()}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.open&&(this.modalSurface.prepare(),this.requestUpdate(),this.activateOverlay(),this.overlay?.focusInitial(),this.updateComplete.then(()=>{!this.open||!this.isConnected||(this.enterTopLayer(),this.overlay?.focusInitial())}))}enterTopLayer(){this.modalSurface.show()}disconnectedCallback(){super.disconnectedCallback(),this.modalSurface.disconnect(),this.overlay?.suspend()}activateOverlay(){if(this.overlay?.isActive()){this.overlay.resume();return}this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.close("escape"),onBackdrop:()=>{this.lightDismiss&&this.close("backdrop")},lockScroll:!0,suspendWhenUnrendered:!0})}close(reason="api"){this.open&&(this.open=!1,this.emit("lr-close",{reason}))}show(){this.open||(this.open=!0)}hide(reason="api"){this.close(reason)}requestChange(next){if(this.changeRequestPending)return!1;const selected=this.selectedToolIds,defaults=this.useDefaults,tools=this.tools;this.changeRequestPending=!0;try{return!this.emit("lr-change-request",{selectedToolIds:[...next.selectedToolIds],useDefaults:next.useDefaults},{cancelable:!0}).defaultPrevented&&this.selectedToolIds===selected&&this.useDefaults===defaults&&this.tools===tools}finally{this.changeRequestPending=!1}}onToolToggleRequest(tool,e){if(e.stopPropagation(),tool.disabled||this.useDefaults){e.preventDefault();return}const selected=this.canonicalSelectedToolIds,index=selected.indexOf(tool.id),next={selectedToolIds:e.detail.checked?index>=0?selected:[...selected.slice(0,MAX_NORMALIZED_TOOL_ENTRIES-1),tool.id]:index<0?selected:[...selected.slice(0,index),...selected.slice(index+1)],useDefaults:this.useDefaults};if(!this.requestChange(next)){e.preventDefault();return}this.selectedToolIds=next.selectedToolIds,this.canonicalSelectedToolIdsCache=next.selectedToolIds,this.canonicalSelectedToolIdsSource=this.selectedToolIds,this.emit("lr-change",next)}categoryId(category){let id=this.categoryIds.get(category);return id||(id=nextId("tool-select-dialog-category"),this.categoryIds.set(category,id)),id}get canonicalTools(){return this.canonicalToolsCache||(this.canonicalToolsCache=projectCanonicalTools(this.tools)),this.canonicalToolsCache}get canonicalSelectedToolIds(){const source=this.selectedToolIds;return(this.canonicalSelectedToolIdsCache===void 0||this.canonicalSelectedToolIdsSource!==source)&&(this.canonicalSelectedToolIdsCache=projectCanonicalSelectedToolIds(source),this.canonicalSelectedToolIdsSource=source),this.canonicalSelectedToolIdsCache}get projection(){const order=[],byCategory=new Map;for(const tool of this.canonicalTools){const category=tool.category?.trim()||UNCATEGORIZED;let bucket=byCategory.get(category);bucket||(bucket=[],byCategory.set(category,bucket),category!==UNCATEGORIZED&&order.push(category)),bucket.push(tool)}byCategory.has(UNCATEGORIZED)&&order.push(UNCATEGORIZED);const q=this.query.trim().toLocaleLowerCase(this.effectiveLocale),filter=typeof this.filter=="function"?this.filter:null,matches=q?tool=>{if(!filter)return defaultFilter(tool,q,this.effectiveLocale);try{return!!filter(tool,q)}catch{return!1}}:()=>!0,matchingGroups=order.map(category=>({category,tools:byCategory.get(category).filter(matches)})).filter(group=>group.tools.length>0),totalMatches=matchingGroups.reduce((total,group)=>total+group.tools.length,0),selectedIds=new Set(this.canonicalSelectedToolIds),chosenIds=new Set,previous=this.renderedWindow,kept=previous&&previous.tools===this.canonicalTools&&previous.query===q?previous.ids:null;if(kept)for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;kept.has(tool.id)&&chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;selectedIds.has(tool.id)&&chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}this.renderedWindow={tools:this.canonicalTools,query:q,ids:chosenIds};const groups=matchingGroups.map(group=>({category:group.category,tools:group.tools.filter(tool=>chosenIds.has(tool.id))})).filter(group=>group.tools.length>0),renderedCount=chosenIds.size;return{groups,renderedCount,totalMatches,truncated:renderedCount<totalMatches}}renderTool(tool,selectedIds){const rowDisabled=!!tool.disabled||this.useDefaults;return html`
1
+ import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{live}from"lit/directives/live.js";import{repeat}from"lit/directives/repeat.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR,getOwnDataDescriptor}from"../../../internal/data-descriptors.js";import{styles}from"./tool-select-dialog.styles.js";import"../../forms/checkbox/checkbox.class.js";import"../../forms/switch/switch.class.js";import{trueDefaultSpellcheckConverter as spellcheckConverter}from"../../../internal/converters.js";import{getNumberFormat,resolveIntlLocale}from"../../../internal/intl-cache.js";import{closeIcon}from"../../../internal/icons.js";import{LYRA_DEFAULT_noMatchesQuery,LYRA_DEFAULT_otherCategory,LYRA_DEFAULT_searchToolsPlaceholder,LYRA_DEFAULT_selectTools,LYRA_DEFAULT_toolCount,LYRA_DEFAULT_toolSelectCustomizeHint,LYRA_DEFAULT_toolSelectLimit,LYRA_DEFAULT_toolSelectNoneAvailable,LYRA_DEFAULT_toolSelectSummary,LYRA_DEFAULT_useDefaultTools}from"../../../internal/default-strings/agent-tools.generated.js";import{LYRA_DEFAULT_clear,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_loadMore}from"../../../internal/default-strings/shared.generated.js";const UNCATEGORIZED=null,MAX_RENDERED_TOOLS=200,MAX_NORMALIZED_TOOL_ENTRIES=1e4,FUNCTION_TO_STRING=Function.prototype.toString,OBJECT_CONSTRUCTOR_SOURCE=FUNCTION_TO_STRING.call(Object);function isRuntimeArray(value){try{return Array.isArray(value)}catch{return!1}}function ownDataArrayValues(value,limit){if(!isRuntimeArray(value))return[];const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return[];const values=[];for(let index=0;index<Math.min(length.value,limit);index+=1){const entry=getOwnDataDescriptor(value,String(index));entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR||values.push(entry.value)}return values}function isPlainToolRecord(value){if(value===null||typeof value!="object")return!1;try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;if(Object.getPrototypeOf(prototype)!==null)return!1;const constructor=getOwnDataDescriptor(prototype,"constructor");if(constructor===MISSING_OWN_DATA_DESCRIPTOR||constructor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof constructor.value!="function")return!1;const name=getOwnDataDescriptor(constructor.value,"name"),constructorPrototype=getOwnDataDescriptor(constructor.value,"prototype");return name!==MISSING_OWN_DATA_DESCRIPTOR&&name!==UNSAFE_OWN_DATA_DESCRIPTOR&&name.value==="Object"&&constructorPrototype!==MISSING_OWN_DATA_DESCRIPTOR&&constructorPrototype!==UNSAFE_OWN_DATA_DESCRIPTOR&&constructorPrototype.value===prototype&&FUNCTION_TO_STRING.call(constructor.value)===OBJECT_CONSTRUCTOR_SOURCE}catch{return!1}}function requiredToolString(record,key){const value=getOwnDataDescriptor(record,key);if(!(value===MISSING_OWN_DATA_DESCRIPTOR||value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="string"||value.value.trim().length===0))return value.value}function optionalToolString(record,key){const value=getOwnDataDescriptor(record,key);if(value!==MISSING_OWN_DATA_DESCRIPTOR)return value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="string"?null:value.value}function optionalToolBoolean(record,key){const value=getOwnDataDescriptor(record,key);if(value!==MISSING_OWN_DATA_DESCRIPTOR)return value===UNSAFE_OWN_DATA_DESCRIPTOR||typeof value.value!="boolean"?null:value.value}function canonicalTool(value){if(!isPlainToolRecord(value))return;const id=requiredToolString(value,"id"),name=requiredToolString(value,"name"),description=optionalToolString(value,"description"),category=optionalToolString(value,"category"),icon=optionalToolString(value,"icon"),disabled=optionalToolBoolean(value,"disabled"),disabledReason=optionalToolString(value,"disabledReason");if(!(id===void 0||name===void 0||description===null||category===null||icon===null||disabled===null||disabledReason===null))return Object.freeze({id,name,...description===void 0?{}:{description},...category===void 0?{}:{category},...icon===void 0?{}:{icon},...disabled===void 0?{}:{disabled},...disabledReason===void 0?{}:{disabledReason}})}function projectCanonicalTools(input){const tools=[],seen=new Set;for(const entry of ownDataArrayValues(input,MAX_NORMALIZED_TOOL_ENTRIES)){const tool=canonicalTool(entry);!tool||seen.has(tool.id)||(seen.add(tool.id),tools.push(tool))}return Object.freeze(tools)}function projectCanonicalSelectedToolIds(input){const ids=[],seen=new Set;for(const entry of ownDataArrayValues(input,MAX_NORMALIZED_TOOL_ENTRIES))typeof entry!="string"||entry.trim().length===0||seen.has(entry)||(seen.add(entry),ids.push(entry));return Object.freeze(ids)}function defaultFilter(tool,query,locale){const intlLocale=resolveIntlLocale(locale);return tool.name.toLocaleLowerCase(intlLocale).includes(query)||(tool.description??"").toLocaleLowerCase(intlLocale).includes(query)}class LyraToolSelectDialog extends LyraElement{constructor(){super(...arguments),this.open=!1,this.lightDismiss=!1,this.tools=[],this.selectedToolIds=[],this.useDefaults=!1,this.accessibleLabel=null,this.autocomplete="",this.spellcheck=!0,this.autocapitalize="",this.autoCorrect="",this.inputMode="",this.enterKeyHint="",this.filter=null,this.query="",this.hasFooterSlot=!1,this.renderedToolLimit=MAX_RENDERED_TOOLS,this.nativeModal=new NativeModalCarrier(this,{onCancel:()=>{!this.open||!this.overlay?.isTopmost()||this.close("escape")},onUnexpectedClose:()=>{this.open&&(this.nativeModal.hide(),this.close("api"))}}),this.modalSurface=new ModalSurfaceController(this,this.nativeModal),this.titleId=nextId("tool-select-dialog-title"),this.categoryIds=new Map,this.onFooterSlotChange=()=>{this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")},this.onBackdropClick=()=>{this.overlay?.dismissBackdrop()},this.changeRequestPending=!1,this.onSearchInput=e=>{this.query=e.target.value,this.renderedToolLimit=MAX_RENDERED_TOOLS,e.stopPropagation()},this.onSearchFocus=event=>{relayNativeEvent(this,event)},this.onSearchBlur=event=>{relayNativeEvent(this,event)},this.onClearSearch=()=>{this.query="",this.renderedToolLimit=MAX_RENDERED_TOOLS,this.renderRoot.querySelector('[part="search-input"]')?.focus()},this.stopNestedControlEvent=event=>{event.stopPropagation()},this.onDefaultsToggleRequest=e=>{e.stopPropagation();const next={selectedToolIds:this.canonicalSelectedToolIds,useDefaults:e.detail.checked};if(!this.requestChange(next)){e.preventDefault();return}this.useDefaults=next.useDefaults,this.emit("lr-change",next)},this.onLoadMore=()=>{this.renderedToolLimit+=MAX_RENDERED_TOOLS,this.updateComplete.then(()=>{if(!this.isConnected||!this.open)return;(this.shadowRoot?.querySelector('[part="load-more"]')??this.shadowRoot?.querySelector('[part="body"]'))?.focus()})}}static{this.defaultStrings={...super.defaultStrings,clear:LYRA_DEFAULT_clear,fieldRequired:LYRA_DEFAULT_fieldRequired,loadMore:LYRA_DEFAULT_loadMore,noMatchesQuery:LYRA_DEFAULT_noMatchesQuery,otherCategory:LYRA_DEFAULT_otherCategory,searchToolsPlaceholder:LYRA_DEFAULT_searchToolsPlaceholder,selectTools:LYRA_DEFAULT_selectTools,toolCount:LYRA_DEFAULT_toolCount,toolSelectCustomizeHint:LYRA_DEFAULT_toolSelectCustomizeHint,toolSelectLimit:LYRA_DEFAULT_toolSelectLimit,toolSelectNoneAvailable:LYRA_DEFAULT_toolSelectNoneAvailable,toolSelectSummary:LYRA_DEFAULT_toolSelectSummary,useDefaultTools:LYRA_DEFAULT_useDefaultTools}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["tools","selectedToolIds"])}static{this.styles=[LyraElement.styles,nativeModalCarrierStyles,styles,srOnly]}static{this.immutableEventDetails=Object.freeze(["lr-change-request","lr-change"])}willUpdate(changed){if(super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer")),changed.has("tools")&&(this.canonicalToolsCache=void 0,this.renderedToolLimit=MAX_RENDERED_TOOLS),changed.has("selectedToolIds")&&(this.canonicalSelectedToolIdsCache=void 0,this.canonicalSelectedToolIdsSource=void 0),changed.has("open"))if(this.open)this.renderedWindow=void 0,this.modalSurface.open(()=>this.activateOverlay());else{const hadOverlay=this.overlay!==void 0;this.modalSurface.close(hadOverlay,()=>{this.overlay?.deactivate(),this.overlay=void 0},()=>!this.open),this.query="",this.renderedToolLimit=MAX_RENDERED_TOOLS}}updated(changed){super.updated(changed),this.open&&this.enterTopLayer(),changed.has("open")&&this.open&&this.overlay?.focusInitial()}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.open&&(this.modalSurface.prepare(),this.requestUpdate(),this.activateOverlay(),this.overlay?.focusInitial(),this.updateComplete.then(()=>{!this.open||!this.isConnected||(this.enterTopLayer(),this.overlay?.focusInitial())}))}enterTopLayer(){this.modalSurface.show()}disconnectedCallback(){super.disconnectedCallback(),this.modalSurface.disconnect(),this.overlay?.suspend()}activateOverlay(){if(this.overlay?.isActive()){this.overlay.resume();return}this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.close("escape"),onBackdrop:()=>{this.lightDismiss&&this.close("backdrop")},lockScroll:!0,suspendWhenUnrendered:!0})}close(reason="api"){this.open&&(this.open=!1,this.emit("lr-close",{reason}))}show(){this.open||(this.open=!0)}hide(reason="api"){this.close(reason)}requestChange(next){if(this.changeRequestPending)return!1;const selected=this.selectedToolIds,defaults=this.useDefaults,tools=this.tools;this.changeRequestPending=!0;try{return!this.emit("lr-change-request",{selectedToolIds:[...next.selectedToolIds],useDefaults:next.useDefaults},{cancelable:!0}).defaultPrevented&&this.selectedToolIds===selected&&this.useDefaults===defaults&&this.tools===tools}finally{this.changeRequestPending=!1}}onToolToggleRequest(tool,e){if(e.stopPropagation(),tool.disabled||this.useDefaults){e.preventDefault();return}const selected=this.canonicalSelectedToolIds,index=selected.indexOf(tool.id),next={selectedToolIds:e.detail.checked?index>=0?selected:[...selected.slice(0,MAX_NORMALIZED_TOOL_ENTRIES-1),tool.id]:index<0?selected:[...selected.slice(0,index),...selected.slice(index+1)],useDefaults:this.useDefaults};if(!this.requestChange(next)){e.preventDefault();return}this.selectedToolIds=next.selectedToolIds,this.canonicalSelectedToolIdsCache=next.selectedToolIds,this.canonicalSelectedToolIdsSource=this.selectedToolIds,this.emit("lr-change",next)}categoryId(category){let id=this.categoryIds.get(category);return id||(id=nextId("tool-select-dialog-category"),this.categoryIds.set(category,id)),id}get canonicalTools(){return this.canonicalToolsCache||(this.canonicalToolsCache=projectCanonicalTools(this.tools)),this.canonicalToolsCache}get canonicalSelectedToolIds(){const source=this.selectedToolIds;return(this.canonicalSelectedToolIdsCache===void 0||this.canonicalSelectedToolIdsSource!==source)&&(this.canonicalSelectedToolIdsCache=projectCanonicalSelectedToolIds(source),this.canonicalSelectedToolIdsSource=source),this.canonicalSelectedToolIdsCache}get projection(){const order=[],byCategory=new Map;for(const tool of this.canonicalTools){const category=tool.category?.trim()||UNCATEGORIZED;let bucket=byCategory.get(category);bucket||(bucket=[],byCategory.set(category,bucket),category!==UNCATEGORIZED&&order.push(category)),bucket.push(tool)}byCategory.has(UNCATEGORIZED)&&order.push(UNCATEGORIZED);const q=this.query.trim().toLocaleLowerCase(this.effectiveLocale),filter=typeof this.filter=="function"?this.filter:null,matches=q?tool=>{if(!filter)return defaultFilter(tool,q,this.effectiveLocale);try{return!!filter(tool,q)}catch{return!1}}:()=>!0,matchingGroups=order.map(category=>({category,tools:byCategory.get(category).filter(matches)})).filter(group=>group.tools.length>0),totalMatches=matchingGroups.reduce((total,group)=>total+group.tools.length,0),selectedIds=new Set(this.canonicalSelectedToolIds),chosenIds=new Set,previous=this.renderedWindow,kept=previous&&previous.tools===this.canonicalTools&&previous.query===q?previous.ids:null;if(kept)for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;kept.has(tool.id)&&chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;selectedIds.has(tool.id)&&chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}for(const group of matchingGroups){for(const tool of group.tools){if(chosenIds.size>=this.renderedToolLimit)break;chosenIds.add(tool.id)}if(chosenIds.size>=this.renderedToolLimit)break}this.renderedWindow={tools:this.canonicalTools,query:q,ids:chosenIds};const groups=matchingGroups.map(group=>({category:group.category,tools:group.tools.filter(tool=>chosenIds.has(tool.id))})).filter(group=>group.tools.length>0),renderedCount=chosenIds.size;return{groups,renderedCount,totalMatches,truncated:renderedCount<totalMatches}}renderTool(tool,selectedIds){const rowDisabled=!!tool.disabled||this.useDefaults;return html`
2
2
  <li part="tool-row" ?data-disabled=${rowDisabled}>
3
3
  <lr-checkbox
4
4
  part="tool-checkbox"
@@ -0,0 +1,7 @@
1
+ import type{LyraToolStatus}from'../../internal/shared-unions.js';
2
+ /**
3
+ * A tool call's status: the shared tool lifecycle plus `incomplete`, a call that ended without a
4
+ * result (an interrupted stream, a cancelled run). The one status union for the chip, result
5
+ * dialog, result view, timeline and call block.
6
+ */
7
+ export type ToolStatus=LyraToolStatus|'incomplete';
@@ -0,0 +1 @@
1
+ import{css}from"lit";const toolStatusKeyframes=css`@keyframes lr-tool-status-spin{to{transform:rotate(360deg)}}@keyframes lr-tool-status-pulse{0%,to{opacity:1}50%{opacity:.35}}`;export{toolStatusKeyframes};