@aceshooting/lyra-ui 3.6.0 → 3.8.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 (1324) hide show
  1. package/README.md +109 -3
  2. package/custom-elements.json +91136 -42119
  3. package/dist/components/activity-feed/activity-feed.class.d.ts +111 -0
  4. package/dist/components/activity-feed/activity-feed.class.d.ts.map +1 -0
  5. package/dist/components/activity-feed/activity-feed.class.js +292 -0
  6. package/dist/components/activity-feed/activity-feed.class.js.map +1 -0
  7. package/dist/components/activity-feed/activity-feed.d.ts +2 -0
  8. package/dist/components/activity-feed/activity-feed.d.ts.map +1 -0
  9. package/dist/components/activity-feed/activity-feed.js +5 -0
  10. package/dist/components/activity-feed/activity-feed.js.map +1 -0
  11. package/dist/components/activity-feed/activity-feed.styles.d.ts +2 -0
  12. package/dist/components/activity-feed/activity-feed.styles.d.ts.map +1 -0
  13. package/dist/components/activity-feed/activity-feed.styles.js +147 -0
  14. package/dist/components/activity-feed/activity-feed.styles.js.map +1 -0
  15. package/dist/components/animation/animation.class.d.ts +12 -0
  16. package/dist/components/animation/animation.class.d.ts.map +1 -1
  17. package/dist/components/animation/animation.class.js +47 -7
  18. package/dist/components/animation/animation.class.js.map +1 -1
  19. package/dist/components/app-rail/app-rail.class.d.ts +19 -3
  20. package/dist/components/app-rail/app-rail.class.d.ts.map +1 -1
  21. package/dist/components/app-rail/app-rail.class.js +34 -12
  22. package/dist/components/app-rail/app-rail.class.js.map +1 -1
  23. package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -1
  24. package/dist/components/app-rail/app-rail.styles.js +19 -11
  25. package/dist/components/app-rail/app-rail.styles.js.map +1 -1
  26. package/dist/components/artifact-panel/artifact-panel.class.d.ts +100 -0
  27. package/dist/components/artifact-panel/artifact-panel.class.d.ts.map +1 -0
  28. package/dist/components/artifact-panel/artifact-panel.class.js +254 -0
  29. package/dist/components/artifact-panel/artifact-panel.class.js.map +1 -0
  30. package/dist/components/artifact-panel/artifact-panel.d.ts +2 -0
  31. package/dist/components/artifact-panel/artifact-panel.d.ts.map +1 -0
  32. package/dist/components/artifact-panel/artifact-panel.js +5 -0
  33. package/dist/components/artifact-panel/artifact-panel.js.map +1 -0
  34. package/dist/components/artifact-panel/artifact-panel.styles.d.ts +2 -0
  35. package/dist/components/artifact-panel/artifact-panel.styles.d.ts.map +1 -0
  36. package/dist/components/artifact-panel/artifact-panel.styles.js +97 -0
  37. package/dist/components/artifact-panel/artifact-panel.styles.js.map +1 -0
  38. package/dist/components/attachment-chip/attachment-chip.class.d.ts +4 -2
  39. package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  40. package/dist/components/attachment-chip/attachment-chip.class.js +10 -5
  41. package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
  42. package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
  43. package/dist/components/attachment-chip/attachment-chip.styles.js +7 -2
  44. package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -1
  45. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts +17 -12
  46. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
  47. package/dist/components/attachment-trigger/attachment-trigger.class.js +28 -8
  48. package/dist/components/attachment-trigger/attachment-trigger.class.js.map +1 -1
  49. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts.map +1 -1
  50. package/dist/components/attachment-trigger/attachment-trigger.styles.js +11 -0
  51. package/dist/components/attachment-trigger/attachment-trigger.styles.js.map +1 -1
  52. package/dist/components/audio-visualizer/audio-visualizer.class.d.ts +111 -0
  53. package/dist/components/audio-visualizer/audio-visualizer.class.d.ts.map +1 -0
  54. package/dist/components/audio-visualizer/audio-visualizer.class.js +435 -0
  55. package/dist/components/audio-visualizer/audio-visualizer.class.js.map +1 -0
  56. package/dist/components/audio-visualizer/audio-visualizer.d.ts +2 -0
  57. package/dist/components/audio-visualizer/audio-visualizer.d.ts.map +1 -0
  58. package/dist/components/audio-visualizer/audio-visualizer.js +5 -0
  59. package/dist/components/audio-visualizer/audio-visualizer.js.map +1 -0
  60. package/dist/components/audio-visualizer/audio-visualizer.styles.d.ts +2 -0
  61. package/dist/components/audio-visualizer/audio-visualizer.styles.d.ts.map +1 -0
  62. package/dist/components/audio-visualizer/audio-visualizer.styles.js +20 -0
  63. package/dist/components/audio-visualizer/audio-visualizer.styles.js.map +1 -0
  64. package/dist/components/av-player/av-player.class.d.ts +215 -0
  65. package/dist/components/av-player/av-player.class.d.ts.map +1 -0
  66. package/dist/components/av-player/av-player.class.js +590 -0
  67. package/dist/components/av-player/av-player.class.js.map +1 -0
  68. package/dist/components/av-player/av-player.d.ts +2 -0
  69. package/dist/components/av-player/av-player.d.ts.map +1 -0
  70. package/dist/components/av-player/av-player.js +36 -0
  71. package/dist/components/av-player/av-player.js.map +1 -0
  72. package/dist/components/av-player/av-player.styles.d.ts +2 -0
  73. package/dist/components/av-player/av-player.styles.d.ts.map +1 -0
  74. package/dist/components/av-player/av-player.styles.js +109 -0
  75. package/dist/components/av-player/av-player.styles.js.map +1 -0
  76. package/dist/components/avatar-group/avatar-group.class.d.ts +7 -2
  77. package/dist/components/avatar-group/avatar-group.class.d.ts.map +1 -1
  78. package/dist/components/avatar-group/avatar-group.class.js +19 -2
  79. package/dist/components/avatar-group/avatar-group.class.js.map +1 -1
  80. package/dist/components/badge/tag.class.d.ts +4 -1
  81. package/dist/components/badge/tag.class.d.ts.map +1 -1
  82. package/dist/components/badge/tag.class.js +4 -1
  83. package/dist/components/badge/tag.class.js.map +1 -1
  84. package/dist/components/branch-picker/branch-picker.class.d.ts +69 -0
  85. package/dist/components/branch-picker/branch-picker.class.d.ts.map +1 -0
  86. package/dist/components/branch-picker/branch-picker.class.js +151 -0
  87. package/dist/components/branch-picker/branch-picker.class.js.map +1 -0
  88. package/dist/components/branch-picker/branch-picker.d.ts +3 -0
  89. package/dist/components/branch-picker/branch-picker.d.ts.map +1 -0
  90. package/dist/components/branch-picker/branch-picker.js +6 -0
  91. package/dist/components/branch-picker/branch-picker.js.map +1 -0
  92. package/dist/components/branch-picker/branch-picker.styles.d.ts +2 -0
  93. package/dist/components/branch-picker/branch-picker.styles.d.ts.map +1 -0
  94. package/dist/components/branch-picker/branch-picker.styles.js +64 -0
  95. package/dist/components/branch-picker/branch-picker.styles.js.map +1 -0
  96. package/dist/components/browser-frame/browser-frame.class.d.ts +70 -0
  97. package/dist/components/browser-frame/browser-frame.class.d.ts.map +1 -0
  98. package/dist/components/browser-frame/browser-frame.class.js +196 -0
  99. package/dist/components/browser-frame/browser-frame.class.js.map +1 -0
  100. package/dist/components/browser-frame/browser-frame.d.ts +2 -0
  101. package/dist/components/browser-frame/browser-frame.d.ts.map +1 -0
  102. package/dist/components/browser-frame/browser-frame.js +5 -0
  103. package/dist/components/browser-frame/browser-frame.js.map +1 -0
  104. package/dist/components/browser-frame/browser-frame.styles.d.ts +2 -0
  105. package/dist/components/browser-frame/browser-frame.styles.d.ts.map +1 -0
  106. package/dist/components/browser-frame/browser-frame.styles.js +88 -0
  107. package/dist/components/browser-frame/browser-frame.styles.js.map +1 -0
  108. package/dist/components/button/button.class.d.ts +32 -4
  109. package/dist/components/button/button.class.d.ts.map +1 -1
  110. package/dist/components/button/button.class.js +43 -7
  111. package/dist/components/button/button.class.js.map +1 -1
  112. package/dist/components/button/button.styles.d.ts.map +1 -1
  113. package/dist/components/button/button.styles.js +33 -0
  114. package/dist/components/button/button.styles.js.map +1 -1
  115. package/dist/components/calendar/calendar.class.d.ts +14 -2
  116. package/dist/components/calendar/calendar.class.d.ts.map +1 -1
  117. package/dist/components/calendar/calendar.class.js +41 -8
  118. package/dist/components/calendar/calendar.class.js.map +1 -1
  119. package/dist/components/calendar/calendar.styles.d.ts.map +1 -1
  120. package/dist/components/calendar/calendar.styles.js +9 -4
  121. package/dist/components/calendar/calendar.styles.js.map +1 -1
  122. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
  123. package/dist/components/calendar-viewer/calendar-viewer.class.js +2 -1
  124. package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -1
  125. package/dist/components/callout/callout.class.d.ts +5 -1
  126. package/dist/components/callout/callout.class.d.ts.map +1 -1
  127. package/dist/components/callout/callout.class.js +6 -2
  128. package/dist/components/callout/callout.class.js.map +1 -1
  129. package/dist/components/callout/callout.styles.d.ts.map +1 -1
  130. package/dist/components/callout/callout.styles.js +11 -3
  131. package/dist/components/callout/callout.styles.js.map +1 -1
  132. package/dist/components/carousel/carousel.class.d.ts +9 -1
  133. package/dist/components/carousel/carousel.class.d.ts.map +1 -1
  134. package/dist/components/carousel/carousel.class.js +22 -4
  135. package/dist/components/carousel/carousel.class.js.map +1 -1
  136. package/dist/components/carousel/carousel.styles.d.ts.map +1 -1
  137. package/dist/components/carousel/carousel.styles.js +27 -5
  138. package/dist/components/carousel/carousel.styles.js.map +1 -1
  139. package/dist/components/chart/box-plot.class.d.ts.map +1 -1
  140. package/dist/components/chart/box-plot.class.js +3 -2
  141. package/dist/components/chart/box-plot.class.js.map +1 -1
  142. package/dist/components/chart/chart.class.d.ts +31 -0
  143. package/dist/components/chart/chart.class.d.ts.map +1 -1
  144. package/dist/components/chart/chart.class.js +150 -7
  145. package/dist/components/chart/chart.class.js.map +1 -1
  146. package/dist/components/chart/chart.styles.d.ts.map +1 -1
  147. package/dist/components/chart/chart.styles.js +6 -0
  148. package/dist/components/chart/chart.styles.js.map +1 -1
  149. package/dist/components/chart/lite-chart.class.d.ts +15 -1
  150. package/dist/components/chart/lite-chart.class.d.ts.map +1 -1
  151. package/dist/components/chart/lite-chart.class.js +87 -26
  152. package/dist/components/chart/lite-chart.class.js.map +1 -1
  153. package/dist/components/chart/lite-chart.styles.d.ts.map +1 -1
  154. package/dist/components/chart/lite-chart.styles.js +4 -0
  155. package/dist/components/chart/lite-chart.styles.js.map +1 -1
  156. package/dist/components/chat-composer/chat-composer.class.d.ts +6 -0
  157. package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -1
  158. package/dist/components/chat-composer/chat-composer.class.js +17 -3
  159. package/dist/components/chat-composer/chat-composer.class.js.map +1 -1
  160. package/dist/components/chat-message/chat-message.class.d.ts +11 -1
  161. package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
  162. package/dist/components/chat-message/chat-message.class.js +28 -7
  163. package/dist/components/chat-message/chat-message.class.js.map +1 -1
  164. package/dist/components/chat-message/chat-message.styles.d.ts.map +1 -1
  165. package/dist/components/chat-message/chat-message.styles.js +16 -5
  166. package/dist/components/chat-message/chat-message.styles.js.map +1 -1
  167. package/dist/components/chat-viewport/chat-viewport.class.d.ts +143 -0
  168. package/dist/components/chat-viewport/chat-viewport.class.d.ts.map +1 -0
  169. package/dist/components/chat-viewport/chat-viewport.class.js +521 -0
  170. package/dist/components/chat-viewport/chat-viewport.class.js.map +1 -0
  171. package/dist/components/chat-viewport/chat-viewport.d.ts +2 -0
  172. package/dist/components/chat-viewport/chat-viewport.d.ts.map +1 -0
  173. package/dist/components/chat-viewport/chat-viewport.js +5 -0
  174. package/dist/components/chat-viewport/chat-viewport.js.map +1 -0
  175. package/dist/components/chat-viewport/chat-viewport.styles.d.ts +2 -0
  176. package/dist/components/chat-viewport/chat-viewport.styles.d.ts.map +1 -0
  177. package/dist/components/chat-viewport/chat-viewport.styles.js +105 -0
  178. package/dist/components/chat-viewport/chat-viewport.styles.js.map +1 -0
  179. package/dist/components/checkbox/checkbox.class.d.ts +2 -1
  180. package/dist/components/checkbox/checkbox.class.d.ts.map +1 -1
  181. package/dist/components/checkbox/checkbox.class.js +17 -2
  182. package/dist/components/checkbox/checkbox.class.js.map +1 -1
  183. package/dist/components/checkbox-group/checkbox-group.class.d.ts +32 -3
  184. package/dist/components/checkbox-group/checkbox-group.class.d.ts.map +1 -1
  185. package/dist/components/checkbox-group/checkbox-group.class.js +70 -18
  186. package/dist/components/checkbox-group/checkbox-group.class.js.map +1 -1
  187. package/dist/components/checkpoint/checkpoint.class.d.ts +71 -0
  188. package/dist/components/checkpoint/checkpoint.class.d.ts.map +1 -0
  189. package/dist/components/checkpoint/checkpoint.class.js +219 -0
  190. package/dist/components/checkpoint/checkpoint.class.js.map +1 -0
  191. package/dist/components/checkpoint/checkpoint.d.ts +2 -0
  192. package/dist/components/checkpoint/checkpoint.d.ts.map +1 -0
  193. package/dist/components/checkpoint/checkpoint.js +5 -0
  194. package/dist/components/checkpoint/checkpoint.js.map +1 -0
  195. package/dist/components/checkpoint/checkpoint.styles.d.ts +2 -0
  196. package/dist/components/checkpoint/checkpoint.styles.d.ts.map +1 -0
  197. package/dist/components/checkpoint/checkpoint.styles.js +123 -0
  198. package/dist/components/checkpoint/checkpoint.styles.js.map +1 -0
  199. package/dist/components/chip/chip-group.class.d.ts +7 -2
  200. package/dist/components/chip/chip-group.class.d.ts.map +1 -1
  201. package/dist/components/chip/chip-group.class.js +19 -2
  202. package/dist/components/chip/chip-group.class.js.map +1 -1
  203. package/dist/components/chip/chip.styles.d.ts.map +1 -1
  204. package/dist/components/chip/chip.styles.js +12 -3
  205. package/dist/components/chip/chip.styles.js.map +1 -1
  206. package/dist/components/chunk-inspector/chunk-inspector.class.d.ts +131 -0
  207. package/dist/components/chunk-inspector/chunk-inspector.class.d.ts.map +1 -0
  208. package/dist/components/chunk-inspector/chunk-inspector.class.js +170 -0
  209. package/dist/components/chunk-inspector/chunk-inspector.class.js.map +1 -0
  210. package/dist/components/chunk-inspector/chunk-inspector.d.ts +4 -0
  211. package/dist/components/chunk-inspector/chunk-inspector.d.ts.map +1 -0
  212. package/dist/components/chunk-inspector/chunk-inspector.js +7 -0
  213. package/dist/components/chunk-inspector/chunk-inspector.js.map +1 -0
  214. package/dist/components/chunk-inspector/chunk-inspector.styles.d.ts +2 -0
  215. package/dist/components/chunk-inspector/chunk-inspector.styles.d.ts.map +1 -0
  216. package/dist/components/chunk-inspector/chunk-inspector.styles.js +84 -0
  217. package/dist/components/chunk-inspector/chunk-inspector.styles.js.map +1 -0
  218. package/dist/components/citation-badge/citation-badge.class.d.ts +7 -2
  219. package/dist/components/citation-badge/citation-badge.class.d.ts.map +1 -1
  220. package/dist/components/citation-badge/citation-badge.class.js +15 -3
  221. package/dist/components/citation-badge/citation-badge.class.js.map +1 -1
  222. package/dist/components/code-block/code-block-core.class.d.ts +62 -0
  223. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
  224. package/dist/components/code-block/code-block-core.class.js +229 -42
  225. package/dist/components/code-block/code-block-core.class.js.map +1 -1
  226. package/dist/components/code-block/code-block-shared.d.ts +29 -5
  227. package/dist/components/code-block/code-block-shared.d.ts.map +1 -1
  228. package/dist/components/code-block/code-block-shared.js +73 -5
  229. package/dist/components/code-block/code-block-shared.js.map +1 -1
  230. package/dist/components/code-block/code-block.class.d.ts +62 -0
  231. package/dist/components/code-block/code-block.class.d.ts.map +1 -1
  232. package/dist/components/code-block/code-block.class.js +229 -42
  233. package/dist/components/code-block/code-block.class.js.map +1 -1
  234. package/dist/components/code-block/code-block.styles.d.ts.map +1 -1
  235. package/dist/components/code-block/code-block.styles.js +41 -0
  236. package/dist/components/code-block/code-block.styles.js.map +1 -1
  237. package/dist/components/code-editor/code-editor.class.d.ts +17 -1
  238. package/dist/components/code-editor/code-editor.class.d.ts.map +1 -1
  239. package/dist/components/code-editor/code-editor.class.js +50 -11
  240. package/dist/components/code-editor/code-editor.class.js.map +1 -1
  241. package/dist/components/combobox/combobox.class.d.ts +21 -2
  242. package/dist/components/combobox/combobox.class.d.ts.map +1 -1
  243. package/dist/components/combobox/combobox.class.js +41 -12
  244. package/dist/components/combobox/combobox.class.js.map +1 -1
  245. package/dist/components/combobox/combobox.styles.d.ts.map +1 -1
  246. package/dist/components/combobox/combobox.styles.js +29 -7
  247. package/dist/components/combobox/combobox.styles.js.map +1 -1
  248. package/dist/components/command-palette/command-palette.class.d.ts +14 -0
  249. package/dist/components/command-palette/command-palette.class.d.ts.map +1 -1
  250. package/dist/components/command-palette/command-palette.class.js +33 -6
  251. package/dist/components/command-palette/command-palette.class.js.map +1 -1
  252. package/dist/components/commit-card/commit-card.class.d.ts +78 -0
  253. package/dist/components/commit-card/commit-card.class.d.ts.map +1 -0
  254. package/dist/components/commit-card/commit-card.class.js +209 -0
  255. package/dist/components/commit-card/commit-card.class.js.map +1 -0
  256. package/dist/components/commit-card/commit-card.d.ts +2 -0
  257. package/dist/components/commit-card/commit-card.d.ts.map +1 -0
  258. package/dist/components/commit-card/commit-card.js +5 -0
  259. package/dist/components/commit-card/commit-card.js.map +1 -0
  260. package/dist/components/commit-card/commit-card.styles.d.ts +2 -0
  261. package/dist/components/commit-card/commit-card.styles.d.ts.map +1 -0
  262. package/dist/components/commit-card/commit-card.styles.js +69 -0
  263. package/dist/components/commit-card/commit-card.styles.js.map +1 -0
  264. package/dist/components/community-card/community-card.class.d.ts +68 -0
  265. package/dist/components/community-card/community-card.class.d.ts.map +1 -0
  266. package/dist/components/community-card/community-card.class.js +109 -0
  267. package/dist/components/community-card/community-card.class.js.map +1 -0
  268. package/dist/components/community-card/community-card.d.ts +5 -0
  269. package/dist/components/community-card/community-card.d.ts.map +1 -0
  270. package/dist/components/community-card/community-card.js +8 -0
  271. package/dist/components/community-card/community-card.js.map +1 -0
  272. package/dist/components/community-card/community-card.styles.d.ts +2 -0
  273. package/dist/components/community-card/community-card.styles.d.ts.map +1 -0
  274. package/dist/components/community-card/community-card.styles.js +74 -0
  275. package/dist/components/community-card/community-card.styles.js.map +1 -0
  276. package/dist/components/compare-panel/compare-panel.class.d.ts +112 -0
  277. package/dist/components/compare-panel/compare-panel.class.d.ts.map +1 -0
  278. package/dist/components/compare-panel/compare-panel.class.js +260 -0
  279. package/dist/components/compare-panel/compare-panel.class.js.map +1 -0
  280. package/dist/components/compare-panel/compare-panel.d.ts +3 -0
  281. package/dist/components/compare-panel/compare-panel.d.ts.map +1 -0
  282. package/dist/components/compare-panel/compare-panel.js +6 -0
  283. package/dist/components/compare-panel/compare-panel.js.map +1 -0
  284. package/dist/components/compare-panel/compare-panel.styles.d.ts +2 -0
  285. package/dist/components/compare-panel/compare-panel.styles.d.ts.map +1 -0
  286. package/dist/components/compare-panel/compare-panel.styles.js +97 -0
  287. package/dist/components/compare-panel/compare-panel.styles.js.map +1 -0
  288. package/dist/components/confirm-bar/confirm-bar.class.d.ts +81 -0
  289. package/dist/components/confirm-bar/confirm-bar.class.d.ts.map +1 -0
  290. package/dist/components/confirm-bar/confirm-bar.class.js +193 -0
  291. package/dist/components/confirm-bar/confirm-bar.class.js.map +1 -0
  292. package/dist/components/confirm-bar/confirm-bar.d.ts +5 -0
  293. package/dist/components/confirm-bar/confirm-bar.d.ts.map +1 -0
  294. package/dist/components/confirm-bar/confirm-bar.js +8 -0
  295. package/dist/components/confirm-bar/confirm-bar.js.map +1 -0
  296. package/dist/components/confirm-bar/confirm-bar.styles.d.ts +2 -0
  297. package/dist/components/confirm-bar/confirm-bar.styles.d.ts.map +1 -0
  298. package/dist/components/confirm-bar/confirm-bar.styles.js +96 -0
  299. package/dist/components/confirm-bar/confirm-bar.styles.js.map +1 -0
  300. package/dist/components/context-meter/context-meter.class.d.ts +8 -1
  301. package/dist/components/context-meter/context-meter.class.d.ts.map +1 -1
  302. package/dist/components/context-meter/context-meter.class.js +25 -4
  303. package/dist/components/context-meter/context-meter.class.js.map +1 -1
  304. package/dist/components/context-meter/context-meter.styles.d.ts.map +1 -1
  305. package/dist/components/context-meter/context-meter.styles.js +6 -0
  306. package/dist/components/context-meter/context-meter.styles.js.map +1 -1
  307. package/dist/components/conversation-item/conversation-item.class.d.ts +17 -1
  308. package/dist/components/conversation-item/conversation-item.class.d.ts.map +1 -1
  309. package/dist/components/conversation-item/conversation-item.class.js +43 -4
  310. package/dist/components/conversation-item/conversation-item.class.js.map +1 -1
  311. package/dist/components/conversation-item/conversation-item.styles.d.ts.map +1 -1
  312. package/dist/components/conversation-item/conversation-item.styles.js +15 -2
  313. package/dist/components/conversation-item/conversation-item.styles.js.map +1 -1
  314. package/dist/components/copy-button/copy-button.class.d.ts.map +1 -1
  315. package/dist/components/copy-button/copy-button.class.js +4 -3
  316. package/dist/components/copy-button/copy-button.class.js.map +1 -1
  317. package/dist/components/csv-viewer/csv-viewer.class.d.ts +83 -3
  318. package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -1
  319. package/dist/components/csv-viewer/csv-viewer.class.js +204 -6
  320. package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -1
  321. package/dist/components/csv-viewer/csv-viewer.js +10 -1
  322. package/dist/components/csv-viewer/csv-viewer.js.map +1 -1
  323. package/dist/components/data-grid/data-grid.class.d.ts +2 -1
  324. package/dist/components/data-grid/data-grid.class.d.ts.map +1 -1
  325. package/dist/components/data-grid/data-grid.class.js +10 -1
  326. package/dist/components/data-grid/data-grid.class.js.map +1 -1
  327. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +93 -4
  328. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
  329. package/dist/components/dataset-viewer/dataset-viewer.class.js +212 -14
  330. package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -1
  331. package/dist/components/dataset-viewer/dataset-viewer.js +11 -6
  332. package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -1
  333. package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts.map +1 -1
  334. package/dist/components/dataset-viewer/dataset-viewer.styles.js +52 -5
  335. package/dist/components/dataset-viewer/dataset-viewer.styles.js.map +1 -1
  336. package/dist/components/date-picker/calendar-core.d.ts.map +1 -1
  337. package/dist/components/date-picker/calendar-core.js +3 -2
  338. package/dist/components/date-picker/calendar-core.js.map +1 -1
  339. package/dist/components/date-picker/date-input.class.d.ts +6 -0
  340. package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
  341. package/dist/components/date-picker/date-input.class.js +13 -3
  342. package/dist/components/date-picker/date-input.class.js.map +1 -1
  343. package/dist/components/date-picker/date-picker.class.d.ts.map +1 -1
  344. package/dist/components/date-picker/date-picker.class.js +31 -7
  345. package/dist/components/date-picker/date-picker.class.js.map +1 -1
  346. package/dist/components/date-picker/date-picker.styles.d.ts.map +1 -1
  347. package/dist/components/date-picker/date-picker.styles.js +5 -0
  348. package/dist/components/date-picker/date-picker.styles.js.map +1 -1
  349. package/dist/components/details/accordion-item.class.d.ts +4 -1
  350. package/dist/components/details/accordion-item.class.d.ts.map +1 -1
  351. package/dist/components/details/accordion-item.class.js +4 -1
  352. package/dist/components/details/accordion-item.class.js.map +1 -1
  353. package/dist/components/diff-view/diff-line-diff.d.ts +13 -0
  354. package/dist/components/diff-view/diff-line-diff.d.ts.map +1 -1
  355. package/dist/components/diff-view/diff-line-diff.js +33 -0
  356. package/dist/components/diff-view/diff-line-diff.js.map +1 -1
  357. package/dist/components/diff-view/diff-view.class.d.ts +27 -1
  358. package/dist/components/diff-view/diff-view.class.d.ts.map +1 -1
  359. package/dist/components/diff-view/diff-view.class.js +130 -4
  360. package/dist/components/diff-view/diff-view.class.js.map +1 -1
  361. package/dist/components/diff-view/diff-view.styles.d.ts.map +1 -1
  362. package/dist/components/diff-view/diff-view.styles.js +18 -2
  363. package/dist/components/diff-view/diff-view.styles.js.map +1 -1
  364. package/dist/components/dock-panel/dock-panel.class.d.ts.map +1 -1
  365. package/dist/components/dock-panel/dock-panel.class.js +5 -0
  366. package/dist/components/dock-panel/dock-panel.class.js.map +1 -1
  367. package/dist/components/dock-panel/dock-panel.styles.d.ts.map +1 -1
  368. package/dist/components/dock-panel/dock-panel.styles.js +8 -0
  369. package/dist/components/dock-panel/dock-panel.styles.js.map +1 -1
  370. package/dist/components/document-preview/document-preview.class.d.ts +32 -0
  371. package/dist/components/document-preview/document-preview.class.d.ts.map +1 -1
  372. package/dist/components/document-preview/document-preview.class.js +93 -5
  373. package/dist/components/document-preview/document-preview.class.js.map +1 -1
  374. package/dist/components/document-preview/document-preview.styles.d.ts.map +1 -1
  375. package/dist/components/document-preview/document-preview.styles.js +18 -0
  376. package/dist/components/document-preview/document-preview.styles.js.map +1 -1
  377. package/dist/components/document-viewer/anchors.d.ts +89 -0
  378. package/dist/components/document-viewer/anchors.d.ts.map +1 -0
  379. package/dist/components/document-viewer/anchors.js +4 -0
  380. package/dist/components/document-viewer/anchors.js.map +1 -0
  381. package/dist/components/document-viewer/document-viewer.class.d.ts +23 -0
  382. package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -1
  383. package/dist/components/document-viewer/document-viewer.class.js +72 -3
  384. package/dist/components/document-viewer/document-viewer.class.js.map +1 -1
  385. package/dist/components/document-viewer/registry.d.ts +8 -0
  386. package/dist/components/document-viewer/registry.d.ts.map +1 -1
  387. package/dist/components/document-viewer/registry.js.map +1 -1
  388. package/dist/components/docx-viewer/docx-viewer.class.d.ts +128 -2
  389. package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -1
  390. package/dist/components/docx-viewer/docx-viewer.class.js +433 -3
  391. package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -1
  392. package/dist/components/docx-viewer/docx-viewer.js +1 -0
  393. package/dist/components/docx-viewer/docx-viewer.js.map +1 -1
  394. package/dist/components/docx-viewer/docx-viewer.styles.d.ts.map +1 -1
  395. package/dist/components/docx-viewer/docx-viewer.styles.js +56 -0
  396. package/dist/components/docx-viewer/docx-viewer.styles.js.map +1 -1
  397. package/dist/components/ebook-viewer/ebook-viewer-register.js +1 -0
  398. package/dist/components/ebook-viewer/ebook-viewer-register.js.map +1 -1
  399. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +111 -2
  400. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
  401. package/dist/components/ebook-viewer/ebook-viewer.class.js +289 -4
  402. package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -1
  403. package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts.map +1 -1
  404. package/dist/components/ebook-viewer/ebook-viewer.styles.js +6 -2
  405. package/dist/components/ebook-viewer/ebook-viewer.styles.js.map +1 -1
  406. package/dist/components/email-viewer/email-viewer.class.d.ts +26 -1
  407. package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -1
  408. package/dist/components/email-viewer/email-viewer.class.js +110 -3
  409. package/dist/components/email-viewer/email-viewer.class.js.map +1 -1
  410. package/dist/components/email-viewer/email-viewer.js +1 -0
  411. package/dist/components/email-viewer/email-viewer.js.map +1 -1
  412. package/dist/components/email-viewer/email-viewer.styles.d.ts.map +1 -1
  413. package/dist/components/email-viewer/email-viewer.styles.js +31 -1
  414. package/dist/components/email-viewer/email-viewer.styles.js.map +1 -1
  415. package/dist/components/emoji-picker/emoji-data-loader.d.ts +14 -0
  416. package/dist/components/emoji-picker/emoji-data-loader.d.ts.map +1 -0
  417. package/dist/components/emoji-picker/emoji-data-loader.js +78 -0
  418. package/dist/components/emoji-picker/emoji-data-loader.js.map +1 -0
  419. package/dist/components/emoji-picker/emoji-picker.class.d.ts +98 -0
  420. package/dist/components/emoji-picker/emoji-picker.class.d.ts.map +1 -0
  421. package/dist/components/emoji-picker/emoji-picker.class.js +285 -0
  422. package/dist/components/emoji-picker/emoji-picker.class.js.map +1 -0
  423. package/dist/components/emoji-picker/emoji-picker.d.ts +2 -0
  424. package/dist/components/emoji-picker/emoji-picker.d.ts.map +1 -0
  425. package/dist/components/emoji-picker/emoji-picker.js +5 -0
  426. package/dist/components/emoji-picker/emoji-picker.js.map +1 -0
  427. package/dist/components/emoji-picker/emoji-picker.styles.d.ts +2 -0
  428. package/dist/components/emoji-picker/emoji-picker.styles.d.ts.map +1 -0
  429. package/dist/components/emoji-picker/emoji-picker.styles.js +70 -0
  430. package/dist/components/emoji-picker/emoji-picker.styles.js.map +1 -0
  431. package/dist/components/entity-card/entity-card.class.d.ts +81 -0
  432. package/dist/components/entity-card/entity-card.class.d.ts.map +1 -0
  433. package/dist/components/entity-card/entity-card.class.js +148 -0
  434. package/dist/components/entity-card/entity-card.class.js.map +1 -0
  435. package/dist/components/entity-card/entity-card.d.ts +7 -0
  436. package/dist/components/entity-card/entity-card.d.ts.map +1 -0
  437. package/dist/components/entity-card/entity-card.js +10 -0
  438. package/dist/components/entity-card/entity-card.js.map +1 -0
  439. package/dist/components/entity-card/entity-card.styles.d.ts +2 -0
  440. package/dist/components/entity-card/entity-card.styles.d.ts.map +1 -0
  441. package/dist/components/entity-card/entity-card.styles.js +48 -0
  442. package/dist/components/entity-card/entity-card.styles.js.map +1 -0
  443. package/dist/components/entity-chip/entity-chip.class.d.ts +72 -0
  444. package/dist/components/entity-chip/entity-chip.class.d.ts.map +1 -0
  445. package/dist/components/entity-chip/entity-chip.class.js +200 -0
  446. package/dist/components/entity-chip/entity-chip.class.js.map +1 -0
  447. package/dist/components/entity-chip/entity-chip.d.ts +2 -0
  448. package/dist/components/entity-chip/entity-chip.d.ts.map +1 -0
  449. package/dist/components/entity-chip/entity-chip.js +5 -0
  450. package/dist/components/entity-chip/entity-chip.js.map +1 -0
  451. package/dist/components/entity-chip/entity-chip.styles.d.ts +2 -0
  452. package/dist/components/entity-chip/entity-chip.styles.d.ts.map +1 -0
  453. package/dist/components/entity-chip/entity-chip.styles.js +46 -0
  454. package/dist/components/entity-chip/entity-chip.styles.js.map +1 -0
  455. package/dist/components/env-list/env-list.class.d.ts +55 -0
  456. package/dist/components/env-list/env-list.class.d.ts.map +1 -0
  457. package/dist/components/env-list/env-list.class.js +143 -0
  458. package/dist/components/env-list/env-list.class.js.map +1 -0
  459. package/dist/components/env-list/env-list.d.ts +2 -0
  460. package/dist/components/env-list/env-list.d.ts.map +1 -0
  461. package/dist/components/env-list/env-list.js +5 -0
  462. package/dist/components/env-list/env-list.js.map +1 -0
  463. package/dist/components/env-list/env-list.styles.d.ts +2 -0
  464. package/dist/components/env-list/env-list.styles.d.ts.map +1 -0
  465. package/dist/components/env-list/env-list.styles.js +44 -0
  466. package/dist/components/env-list/env-list.styles.js.map +1 -0
  467. package/dist/components/file-icon/file-icon.class.d.ts +5 -1
  468. package/dist/components/file-icon/file-icon.class.d.ts.map +1 -1
  469. package/dist/components/file-icon/file-icon.class.js +25 -2
  470. package/dist/components/file-icon/file-icon.class.js.map +1 -1
  471. package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -1
  472. package/dist/components/file-icon/file-icon.styles.js +4 -0
  473. package/dist/components/file-icon/file-icon.styles.js.map +1 -1
  474. package/dist/components/file-input/file-input.class.d.ts +19 -0
  475. package/dist/components/file-input/file-input.class.d.ts.map +1 -1
  476. package/dist/components/file-input/file-input.class.js +27 -1
  477. package/dist/components/file-input/file-input.class.js.map +1 -1
  478. package/dist/components/file-tree/file-tree.class.d.ts +68 -0
  479. package/dist/components/file-tree/file-tree.class.d.ts.map +1 -0
  480. package/dist/components/file-tree/file-tree.class.js +235 -0
  481. package/dist/components/file-tree/file-tree.class.js.map +1 -0
  482. package/dist/components/file-tree/file-tree.d.ts +2 -0
  483. package/dist/components/file-tree/file-tree.d.ts.map +1 -0
  484. package/dist/components/file-tree/file-tree.js +5 -0
  485. package/dist/components/file-tree/file-tree.js.map +1 -0
  486. package/dist/components/file-tree/file-tree.styles.d.ts +2 -0
  487. package/dist/components/file-tree/file-tree.styles.d.ts.map +1 -0
  488. package/dist/components/file-tree/file-tree.styles.js +10 -0
  489. package/dist/components/file-tree/file-tree.styles.js.map +1 -0
  490. package/dist/components/flag/flag.class.d.ts.map +1 -1
  491. package/dist/components/flag/flag.class.js +7 -15
  492. package/dist/components/flag/flag.class.js.map +1 -1
  493. package/dist/components/flow-canvas/flow-canvas.class.d.ts +411 -0
  494. package/dist/components/flow-canvas/flow-canvas.class.d.ts.map +1 -0
  495. package/dist/components/flow-canvas/flow-canvas.class.js +1570 -0
  496. package/dist/components/flow-canvas/flow-canvas.class.js.map +1 -0
  497. package/dist/components/flow-canvas/flow-canvas.d.ts +4 -0
  498. package/dist/components/flow-canvas/flow-canvas.d.ts.map +1 -0
  499. package/dist/components/flow-canvas/flow-canvas.js +7 -0
  500. package/dist/components/flow-canvas/flow-canvas.js.map +1 -0
  501. package/dist/components/flow-canvas/flow-canvas.styles.d.ts +2 -0
  502. package/dist/components/flow-canvas/flow-canvas.styles.d.ts.map +1 -0
  503. package/dist/components/flow-canvas/flow-canvas.styles.js +186 -0
  504. package/dist/components/flow-canvas/flow-canvas.styles.js.map +1 -0
  505. package/dist/components/flow-controls/flow-controls.class.d.ts +44 -0
  506. package/dist/components/flow-controls/flow-controls.class.d.ts.map +1 -0
  507. package/dist/components/flow-controls/flow-controls.class.js +203 -0
  508. package/dist/components/flow-controls/flow-controls.class.js.map +1 -0
  509. package/dist/components/flow-controls/flow-controls.d.ts +2 -0
  510. package/dist/components/flow-controls/flow-controls.d.ts.map +1 -0
  511. package/dist/components/flow-controls/flow-controls.js +5 -0
  512. package/dist/components/flow-controls/flow-controls.js.map +1 -0
  513. package/dist/components/flow-controls/flow-controls.styles.d.ts +2 -0
  514. package/dist/components/flow-controls/flow-controls.styles.d.ts.map +1 -0
  515. package/dist/components/flow-controls/flow-controls.styles.js +55 -0
  516. package/dist/components/flow-controls/flow-controls.styles.js.map +1 -0
  517. package/dist/components/flow-minimap/flow-minimap.class.d.ts +62 -0
  518. package/dist/components/flow-minimap/flow-minimap.class.d.ts.map +1 -0
  519. package/dist/components/flow-minimap/flow-minimap.class.js +291 -0
  520. package/dist/components/flow-minimap/flow-minimap.class.js.map +1 -0
  521. package/dist/components/flow-minimap/flow-minimap.d.ts +2 -0
  522. package/dist/components/flow-minimap/flow-minimap.d.ts.map +1 -0
  523. package/dist/components/flow-minimap/flow-minimap.js +5 -0
  524. package/dist/components/flow-minimap/flow-minimap.js.map +1 -0
  525. package/dist/components/flow-minimap/flow-minimap.styles.d.ts +2 -0
  526. package/dist/components/flow-minimap/flow-minimap.styles.d.ts.map +1 -0
  527. package/dist/components/flow-minimap/flow-minimap.styles.js +48 -0
  528. package/dist/components/flow-minimap/flow-minimap.styles.js.map +1 -0
  529. package/dist/components/flow-node/flow-node.class.d.ts +70 -0
  530. package/dist/components/flow-node/flow-node.class.d.ts.map +1 -0
  531. package/dist/components/flow-node/flow-node.class.js +187 -0
  532. package/dist/components/flow-node/flow-node.class.js.map +1 -0
  533. package/dist/components/flow-node/flow-node.d.ts +2 -0
  534. package/dist/components/flow-node/flow-node.d.ts.map +1 -0
  535. package/dist/components/flow-node/flow-node.js +5 -0
  536. package/dist/components/flow-node/flow-node.js.map +1 -0
  537. package/dist/components/flow-node/flow-node.styles.d.ts +2 -0
  538. package/dist/components/flow-node/flow-node.styles.d.ts.map +1 -0
  539. package/dist/components/flow-node/flow-node.styles.js +127 -0
  540. package/dist/components/flow-node/flow-node.styles.js.map +1 -0
  541. package/dist/components/flow-run-overlay/flow-run-overlay.class.d.ts +46 -0
  542. package/dist/components/flow-run-overlay/flow-run-overlay.class.d.ts.map +1 -0
  543. package/dist/components/flow-run-overlay/flow-run-overlay.class.js +182 -0
  544. package/dist/components/flow-run-overlay/flow-run-overlay.class.js.map +1 -0
  545. package/dist/components/flow-run-overlay/flow-run-overlay.d.ts +2 -0
  546. package/dist/components/flow-run-overlay/flow-run-overlay.d.ts.map +1 -0
  547. package/dist/components/flow-run-overlay/flow-run-overlay.js +5 -0
  548. package/dist/components/flow-run-overlay/flow-run-overlay.js.map +1 -0
  549. package/dist/components/flow-run-overlay/flow-run-overlay.styles.d.ts +2 -0
  550. package/dist/components/flow-run-overlay/flow-run-overlay.styles.d.ts.map +1 -0
  551. package/dist/components/flow-run-overlay/flow-run-overlay.styles.js +38 -0
  552. package/dist/components/flow-run-overlay/flow-run-overlay.styles.js.map +1 -0
  553. package/dist/components/format/format-bytes.class.d.ts +8 -0
  554. package/dist/components/format/format-bytes.class.d.ts.map +1 -1
  555. package/dist/components/format/format-bytes.class.js +36 -7
  556. package/dist/components/format/format-bytes.class.js.map +1 -1
  557. package/dist/components/format/format-date.class.d.ts.map +1 -1
  558. package/dist/components/format/format-date.class.js +2 -1
  559. package/dist/components/format/format-date.class.js.map +1 -1
  560. package/dist/components/format/format-number.class.d.ts +6 -0
  561. package/dist/components/format/format-number.class.d.ts.map +1 -1
  562. package/dist/components/format/format-number.class.js +34 -5
  563. package/dist/components/format/format-number.class.js.map +1 -1
  564. package/dist/components/format/relative-time.class.d.ts.map +1 -1
  565. package/dist/components/format/relative-time.class.js +2 -1
  566. package/dist/components/format/relative-time.class.js.map +1 -1
  567. package/dist/components/generation-status/generation-status.class.d.ts +3 -0
  568. package/dist/components/generation-status/generation-status.class.d.ts.map +1 -1
  569. package/dist/components/generation-status/generation-status.class.js +28 -11
  570. package/dist/components/generation-status/generation-status.class.js.map +1 -1
  571. package/dist/components/generation-status/generation-status.styles.d.ts.map +1 -1
  572. package/dist/components/generation-status/generation-status.styles.js +7 -4
  573. package/dist/components/generation-status/generation-status.styles.js.map +1 -1
  574. package/dist/components/geojson-view/geojson-view.class.d.ts +40 -0
  575. package/dist/components/geojson-view/geojson-view.class.d.ts.map +1 -0
  576. package/dist/components/geojson-view/geojson-view.class.js +185 -0
  577. package/dist/components/geojson-view/geojson-view.class.js.map +1 -0
  578. package/dist/components/geojson-view/geojson-view.d.ts +5 -0
  579. package/dist/components/geojson-view/geojson-view.d.ts.map +1 -0
  580. package/dist/components/geojson-view/geojson-view.js +18 -0
  581. package/dist/components/geojson-view/geojson-view.js.map +1 -0
  582. package/dist/components/graph/graph-canvas.d.ts +110 -0
  583. package/dist/components/graph/graph-canvas.d.ts.map +1 -0
  584. package/dist/components/graph/graph-canvas.js +175 -0
  585. package/dist/components/graph/graph-canvas.js.map +1 -0
  586. package/dist/components/graph/graph-hull.d.ts +28 -0
  587. package/dist/components/graph/graph-hull.d.ts.map +1 -0
  588. package/dist/components/graph/graph-hull.js +70 -0
  589. package/dist/components/graph/graph-hull.js.map +1 -0
  590. package/dist/components/graph/graph-loader.d.ts +6 -0
  591. package/dist/components/graph/graph-loader.d.ts.map +1 -1
  592. package/dist/components/graph/graph-loader.js +2 -0
  593. package/dist/components/graph/graph-loader.js.map +1 -1
  594. package/dist/components/graph/graph.class.d.ts +447 -2
  595. package/dist/components/graph/graph.class.d.ts.map +1 -1
  596. package/dist/components/graph/graph.class.js +1700 -121
  597. package/dist/components/graph/graph.class.js.map +1 -1
  598. package/dist/components/graph/graph.styles.d.ts.map +1 -1
  599. package/dist/components/graph/graph.styles.js +100 -0
  600. package/dist/components/graph/graph.styles.js.map +1 -1
  601. package/dist/components/graph-legend/graph-legend.class.d.ts +62 -0
  602. package/dist/components/graph-legend/graph-legend.class.d.ts.map +1 -0
  603. package/dist/components/graph-legend/graph-legend.class.js +132 -0
  604. package/dist/components/graph-legend/graph-legend.class.js.map +1 -0
  605. package/dist/components/graph-legend/graph-legend.d.ts +2 -0
  606. package/dist/components/graph-legend/graph-legend.d.ts.map +1 -0
  607. package/dist/components/graph-legend/graph-legend.js +5 -0
  608. package/dist/components/graph-legend/graph-legend.js.map +1 -0
  609. package/dist/components/graph-legend/graph-legend.styles.d.ts +2 -0
  610. package/dist/components/graph-legend/graph-legend.styles.d.ts.map +1 -0
  611. package/dist/components/graph-legend/graph-legend.styles.js +59 -0
  612. package/dist/components/graph-legend/graph-legend.styles.js.map +1 -0
  613. package/dist/components/handoff-divider/handoff-divider.class.d.ts +46 -0
  614. package/dist/components/handoff-divider/handoff-divider.class.d.ts.map +1 -0
  615. package/dist/components/handoff-divider/handoff-divider.class.js +99 -0
  616. package/dist/components/handoff-divider/handoff-divider.class.js.map +1 -0
  617. package/dist/components/handoff-divider/handoff-divider.d.ts +2 -0
  618. package/dist/components/handoff-divider/handoff-divider.d.ts.map +1 -0
  619. package/dist/components/handoff-divider/handoff-divider.js +5 -0
  620. package/dist/components/handoff-divider/handoff-divider.js.map +1 -0
  621. package/dist/components/handoff-divider/handoff-divider.styles.d.ts +2 -0
  622. package/dist/components/handoff-divider/handoff-divider.styles.d.ts.map +1 -0
  623. package/dist/components/handoff-divider/handoff-divider.styles.js +48 -0
  624. package/dist/components/handoff-divider/handoff-divider.styles.js.map +1 -0
  625. package/dist/components/heatmap/heatmap.class.d.ts +12 -3
  626. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
  627. package/dist/components/heatmap/heatmap.class.js +88 -50
  628. package/dist/components/heatmap/heatmap.class.js.map +1 -1
  629. package/dist/components/highlight-layer/highlight-layer.class.d.ts +60 -0
  630. package/dist/components/highlight-layer/highlight-layer.class.d.ts.map +1 -0
  631. package/dist/components/highlight-layer/highlight-layer.class.js +151 -0
  632. package/dist/components/highlight-layer/highlight-layer.class.js.map +1 -0
  633. package/dist/components/highlight-layer/highlight-layer.d.ts +2 -0
  634. package/dist/components/highlight-layer/highlight-layer.d.ts.map +1 -0
  635. package/dist/components/highlight-layer/highlight-layer.js +5 -0
  636. package/dist/components/highlight-layer/highlight-layer.js.map +1 -0
  637. package/dist/components/highlight-layer/highlight-layer.styles.d.ts +2 -0
  638. package/dist/components/highlight-layer/highlight-layer.styles.d.ts.map +1 -0
  639. package/dist/components/highlight-layer/highlight-layer.styles.js +68 -0
  640. package/dist/components/highlight-layer/highlight-layer.styles.js.map +1 -0
  641. package/dist/components/image-comparer/image-comparer.class.d.ts.map +1 -1
  642. package/dist/components/image-comparer/image-comparer.class.js +2 -1
  643. package/dist/components/image-comparer/image-comparer.class.js.map +1 -1
  644. package/dist/components/image-viewer/image-viewer.class.d.ts +143 -0
  645. package/dist/components/image-viewer/image-viewer.class.d.ts.map +1 -0
  646. package/dist/components/image-viewer/image-viewer.class.js +389 -0
  647. package/dist/components/image-viewer/image-viewer.class.js.map +1 -0
  648. package/dist/components/image-viewer/image-viewer.d.ts +4 -0
  649. package/dist/components/image-viewer/image-viewer.d.ts.map +1 -0
  650. package/dist/components/image-viewer/image-viewer.js +25 -0
  651. package/dist/components/image-viewer/image-viewer.js.map +1 -0
  652. package/dist/components/image-viewer/image-viewer.styles.d.ts +2 -0
  653. package/dist/components/image-viewer/image-viewer.styles.d.ts.map +1 -0
  654. package/dist/components/image-viewer/image-viewer.styles.js +126 -0
  655. package/dist/components/image-viewer/image-viewer.styles.js.map +1 -0
  656. package/dist/components/input/input.class.d.ts +3 -2
  657. package/dist/components/input/input.class.d.ts.map +1 -1
  658. package/dist/components/input/input.class.js +2 -1
  659. package/dist/components/input/input.class.js.map +1 -1
  660. package/dist/components/input/input.styles.d.ts.map +1 -1
  661. package/dist/components/input/input.styles.js +5 -0
  662. package/dist/components/input/input.styles.js.map +1 -1
  663. package/dist/components/intersection-observer/intersection-observer.class.d.ts +1 -0
  664. package/dist/components/intersection-observer/intersection-observer.class.d.ts.map +1 -1
  665. package/dist/components/intersection-observer/intersection-observer.class.js +15 -0
  666. package/dist/components/intersection-observer/intersection-observer.class.js.map +1 -1
  667. package/dist/components/json-viewer/json-viewer.class.d.ts +39 -2
  668. package/dist/components/json-viewer/json-viewer.class.d.ts.map +1 -1
  669. package/dist/components/json-viewer/json-viewer.class.js +95 -6
  670. package/dist/components/json-viewer/json-viewer.class.js.map +1 -1
  671. package/dist/components/known-date/known-date.class.d.ts.map +1 -1
  672. package/dist/components/known-date/known-date.class.js +2 -1
  673. package/dist/components/known-date/known-date.class.js.map +1 -1
  674. package/dist/components/lightbox/lightbox.class.d.ts +2 -2
  675. package/dist/components/lightbox/lightbox.class.d.ts.map +1 -1
  676. package/dist/components/lightbox/lightbox.class.js +16 -7
  677. package/dist/components/lightbox/lightbox.class.js.map +1 -1
  678. package/dist/components/live-region/live-region.class.d.ts +5 -0
  679. package/dist/components/live-region/live-region.class.d.ts.map +1 -1
  680. package/dist/components/live-region/live-region.class.js +10 -2
  681. package/dist/components/live-region/live-region.class.js.map +1 -1
  682. package/dist/components/map/map.class.d.ts +33 -3
  683. package/dist/components/map/map.class.d.ts.map +1 -1
  684. package/dist/components/map/map.class.js +140 -5
  685. package/dist/components/map/map.class.js.map +1 -1
  686. package/dist/components/markdown/katex-loader.d.ts +23 -0
  687. package/dist/components/markdown/katex-loader.d.ts.map +1 -0
  688. package/dist/components/markdown/katex-loader.js +33 -0
  689. package/dist/components/markdown/katex-loader.js.map +1 -0
  690. package/dist/components/markdown/markdown.class.d.ts +191 -4
  691. package/dist/components/markdown/markdown.class.d.ts.map +1 -1
  692. package/dist/components/markdown/markdown.class.js +584 -11
  693. package/dist/components/markdown/markdown.class.js.map +1 -1
  694. package/dist/components/markdown/markdown.styles.d.ts.map +1 -1
  695. package/dist/components/markdown/markdown.styles.js +53 -0
  696. package/dist/components/markdown/markdown.styles.js.map +1 -1
  697. package/dist/components/media-card/media-card.styles.d.ts.map +1 -1
  698. package/dist/components/media-card/media-card.styles.js +6 -2
  699. package/dist/components/media-card/media-card.styles.js.map +1 -1
  700. package/dist/components/mention-popover/mention-popover.styles.d.ts.map +1 -1
  701. package/dist/components/mention-popover/mention-popover.styles.js +6 -3
  702. package/dist/components/mention-popover/mention-popover.styles.js.map +1 -1
  703. package/dist/components/message-actions/message-actions.class.d.ts +112 -0
  704. package/dist/components/message-actions/message-actions.class.d.ts.map +1 -0
  705. package/dist/components/message-actions/message-actions.class.js +277 -0
  706. package/dist/components/message-actions/message-actions.class.js.map +1 -0
  707. package/dist/components/message-actions/message-actions.d.ts +4 -0
  708. package/dist/components/message-actions/message-actions.d.ts.map +1 -0
  709. package/dist/components/message-actions/message-actions.js +7 -0
  710. package/dist/components/message-actions/message-actions.js.map +1 -0
  711. package/dist/components/message-actions/message-actions.styles.d.ts +2 -0
  712. package/dist/components/message-actions/message-actions.styles.d.ts.map +1 -0
  713. package/dist/components/message-actions/message-actions.styles.js +66 -0
  714. package/dist/components/message-actions/message-actions.styles.js.map +1 -0
  715. package/dist/components/message-feedback/message-feedback.class.d.ts +91 -0
  716. package/dist/components/message-feedback/message-feedback.class.d.ts.map +1 -0
  717. package/dist/components/message-feedback/message-feedback.class.js +266 -0
  718. package/dist/components/message-feedback/message-feedback.class.js.map +1 -0
  719. package/dist/components/message-feedback/message-feedback.d.ts +2 -0
  720. package/dist/components/message-feedback/message-feedback.d.ts.map +1 -0
  721. package/dist/components/message-feedback/message-feedback.js +5 -0
  722. package/dist/components/message-feedback/message-feedback.js.map +1 -0
  723. package/dist/components/message-feedback/message-feedback.styles.d.ts +2 -0
  724. package/dist/components/message-feedback/message-feedback.styles.d.ts.map +1 -0
  725. package/dist/components/message-feedback/message-feedback.styles.js +133 -0
  726. package/dist/components/message-feedback/message-feedback.styles.js.map +1 -0
  727. package/dist/components/mind-map/mind-map-layout.d.ts +52 -0
  728. package/dist/components/mind-map/mind-map-layout.d.ts.map +1 -0
  729. package/dist/components/mind-map/mind-map-layout.js +69 -0
  730. package/dist/components/mind-map/mind-map-layout.js.map +1 -0
  731. package/dist/components/mind-map/mind-map.class.d.ts +83 -0
  732. package/dist/components/mind-map/mind-map.class.d.ts.map +1 -0
  733. package/dist/components/mind-map/mind-map.class.js +252 -0
  734. package/dist/components/mind-map/mind-map.class.js.map +1 -0
  735. package/dist/components/mind-map/mind-map.d.ts +2 -0
  736. package/dist/components/mind-map/mind-map.d.ts.map +1 -0
  737. package/dist/components/mind-map/mind-map.js +5 -0
  738. package/dist/components/mind-map/mind-map.js.map +1 -0
  739. package/dist/components/mind-map/mind-map.styles.d.ts +2 -0
  740. package/dist/components/mind-map/mind-map.styles.d.ts.map +1 -0
  741. package/dist/components/mind-map/mind-map.styles.js +43 -0
  742. package/dist/components/mind-map/mind-map.styles.js.map +1 -0
  743. package/dist/components/model-select/model-select.class.d.ts +1 -0
  744. package/dist/components/model-select/model-select.class.d.ts.map +1 -1
  745. package/dist/components/model-select/model-select.class.js +13 -0
  746. package/dist/components/model-select/model-select.class.js.map +1 -1
  747. package/dist/components/mutation-observer/mutation-observer.class.d.ts +1 -0
  748. package/dist/components/mutation-observer/mutation-observer.class.d.ts.map +1 -1
  749. package/dist/components/mutation-observer/mutation-observer.class.js +15 -0
  750. package/dist/components/mutation-observer/mutation-observer.class.js.map +1 -1
  751. package/dist/components/neighbor-list/neighbor-list.class.d.ts +70 -0
  752. package/dist/components/neighbor-list/neighbor-list.class.d.ts.map +1 -0
  753. package/dist/components/neighbor-list/neighbor-list.class.js +177 -0
  754. package/dist/components/neighbor-list/neighbor-list.class.js.map +1 -0
  755. package/dist/components/neighbor-list/neighbor-list.d.ts +4 -0
  756. package/dist/components/neighbor-list/neighbor-list.d.ts.map +1 -0
  757. package/dist/components/neighbor-list/neighbor-list.js +7 -0
  758. package/dist/components/neighbor-list/neighbor-list.js.map +1 -0
  759. package/dist/components/neighbor-list/neighbor-list.styles.d.ts +2 -0
  760. package/dist/components/neighbor-list/neighbor-list.styles.d.ts.map +1 -0
  761. package/dist/components/neighbor-list/neighbor-list.styles.js +79 -0
  762. package/dist/components/neighbor-list/neighbor-list.styles.js.map +1 -0
  763. package/dist/components/node-palette/node-palette.class.d.ts +82 -0
  764. package/dist/components/node-palette/node-palette.class.d.ts.map +1 -0
  765. package/dist/components/node-palette/node-palette.class.js +213 -0
  766. package/dist/components/node-palette/node-palette.class.js.map +1 -0
  767. package/dist/components/node-palette/node-palette.d.ts +2 -0
  768. package/dist/components/node-palette/node-palette.d.ts.map +1 -0
  769. package/dist/components/node-palette/node-palette.js +5 -0
  770. package/dist/components/node-palette/node-palette.js.map +1 -0
  771. package/dist/components/node-palette/node-palette.styles.d.ts +2 -0
  772. package/dist/components/node-palette/node-palette.styles.d.ts.map +1 -0
  773. package/dist/components/node-palette/node-palette.styles.js +74 -0
  774. package/dist/components/node-palette/node-palette.styles.js.map +1 -0
  775. package/dist/components/notebook-viewer/dompurify-loader.d.ts +7 -0
  776. package/dist/components/notebook-viewer/dompurify-loader.d.ts.map +1 -0
  777. package/dist/components/notebook-viewer/dompurify-loader.js +23 -0
  778. package/dist/components/notebook-viewer/dompurify-loader.js.map +1 -0
  779. package/dist/components/notebook-viewer/notebook-viewer.class.d.ts +164 -0
  780. package/dist/components/notebook-viewer/notebook-viewer.class.d.ts.map +1 -0
  781. package/dist/components/notebook-viewer/notebook-viewer.class.js +442 -0
  782. package/dist/components/notebook-viewer/notebook-viewer.class.js.map +1 -0
  783. package/dist/components/notebook-viewer/notebook-viewer.d.ts +6 -0
  784. package/dist/components/notebook-viewer/notebook-viewer.d.ts.map +1 -0
  785. package/dist/components/notebook-viewer/notebook-viewer.js +21 -0
  786. package/dist/components/notebook-viewer/notebook-viewer.js.map +1 -0
  787. package/dist/components/notebook-viewer/notebook-viewer.styles.d.ts +2 -0
  788. package/dist/components/notebook-viewer/notebook-viewer.styles.d.ts.map +1 -0
  789. package/dist/components/notebook-viewer/notebook-viewer.styles.js +79 -0
  790. package/dist/components/notebook-viewer/notebook-viewer.styles.js.map +1 -0
  791. package/dist/components/overlay/overlay.styles.d.ts.map +1 -1
  792. package/dist/components/overlay/overlay.styles.js +17 -5
  793. package/dist/components/overlay/overlay.styles.js.map +1 -1
  794. package/dist/components/overlay/popover.class.d.ts +2 -0
  795. package/dist/components/overlay/popover.class.d.ts.map +1 -1
  796. package/dist/components/overlay/popover.class.js +10 -2
  797. package/dist/components/overlay/popover.class.js.map +1 -1
  798. package/dist/components/overlay/tooltip.class.d.ts +4 -0
  799. package/dist/components/overlay/tooltip.class.d.ts.map +1 -1
  800. package/dist/components/overlay/tooltip.class.js +21 -6
  801. package/dist/components/overlay/tooltip.class.js.map +1 -1
  802. package/dist/components/page-rail/page-rail.class.d.ts +99 -0
  803. package/dist/components/page-rail/page-rail.class.d.ts.map +1 -0
  804. package/dist/components/page-rail/page-rail.class.js +279 -0
  805. package/dist/components/page-rail/page-rail.class.js.map +1 -0
  806. package/dist/components/page-rail/page-rail.d.ts +2 -0
  807. package/dist/components/page-rail/page-rail.d.ts.map +1 -0
  808. package/dist/components/page-rail/page-rail.js +5 -0
  809. package/dist/components/page-rail/page-rail.js.map +1 -0
  810. package/dist/components/page-rail/page-rail.styles.d.ts +2 -0
  811. package/dist/components/page-rail/page-rail.styles.d.ts.map +1 -0
  812. package/dist/components/page-rail/page-rail.styles.js +85 -0
  813. package/dist/components/page-rail/page-rail.styles.js.map +1 -0
  814. package/dist/components/pagination/pagination.class.d.ts +5 -0
  815. package/dist/components/pagination/pagination.class.d.ts.map +1 -1
  816. package/dist/components/pagination/pagination.class.js +11 -9
  817. package/dist/components/pagination/pagination.class.js.map +1 -1
  818. package/dist/components/path-strip/path-strip.class.d.ts +61 -0
  819. package/dist/components/path-strip/path-strip.class.d.ts.map +1 -0
  820. package/dist/components/path-strip/path-strip.class.js +164 -0
  821. package/dist/components/path-strip/path-strip.class.js.map +1 -0
  822. package/dist/components/path-strip/path-strip.d.ts +3 -0
  823. package/dist/components/path-strip/path-strip.d.ts.map +1 -0
  824. package/dist/components/path-strip/path-strip.js +6 -0
  825. package/dist/components/path-strip/path-strip.js.map +1 -0
  826. package/dist/components/path-strip/path-strip.styles.d.ts +2 -0
  827. package/dist/components/path-strip/path-strip.styles.d.ts.map +1 -0
  828. package/dist/components/path-strip/path-strip.styles.js +62 -0
  829. package/dist/components/path-strip/path-strip.styles.js.map +1 -0
  830. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +145 -6
  831. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
  832. package/dist/components/pdf-viewer/pdf-viewer.class.js +785 -21
  833. package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -1
  834. package/dist/components/pdf-viewer/pdf-viewer.js +7 -1
  835. package/dist/components/pdf-viewer/pdf-viewer.js.map +1 -1
  836. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -1
  837. package/dist/components/pdf-viewer/pdf-viewer.styles.js +4 -0
  838. package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -1
  839. package/dist/components/phone-input/phone-input.class.d.ts.map +1 -1
  840. package/dist/components/phone-input/phone-input.class.js +5 -1
  841. package/dist/components/phone-input/phone-input.class.js.map +1 -1
  842. package/dist/components/playback/playback.styles.d.ts.map +1 -1
  843. package/dist/components/playback/playback.styles.js +7 -0
  844. package/dist/components/playback/playback.styles.js.map +1 -1
  845. package/dist/components/poll-status/poll-status.class.d.ts +1 -0
  846. package/dist/components/poll-status/poll-status.class.d.ts.map +1 -1
  847. package/dist/components/poll-status/poll-status.class.js +25 -7
  848. package/dist/components/poll-status/poll-status.class.js.map +1 -1
  849. package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts.map +1 -1
  850. package/dist/components/pptx-viewer/pptx-viewer.styles.js +5 -0
  851. package/dist/components/pptx-viewer/pptx-viewer.styles.js.map +1 -1
  852. package/dist/components/progress/progress-bar.class.d.ts +5 -0
  853. package/dist/components/progress/progress-bar.class.d.ts.map +1 -1
  854. package/dist/components/progress/progress-bar.class.js +16 -2
  855. package/dist/components/progress/progress-bar.class.js.map +1 -1
  856. package/dist/components/progress/progress-ring.class.d.ts +5 -0
  857. package/dist/components/progress/progress-ring.class.d.ts.map +1 -1
  858. package/dist/components/progress/progress-ring.class.js +16 -2
  859. package/dist/components/progress/progress-ring.class.js.map +1 -1
  860. package/dist/components/progress/progress.styles.d.ts.map +1 -1
  861. package/dist/components/progress/progress.styles.js +6 -0
  862. package/dist/components/progress/progress.styles.js.map +1 -1
  863. package/dist/components/provenance-panel/provenance-panel.class.d.ts +71 -0
  864. package/dist/components/provenance-panel/provenance-panel.class.d.ts.map +1 -0
  865. package/dist/components/provenance-panel/provenance-panel.class.js +110 -0
  866. package/dist/components/provenance-panel/provenance-panel.class.js.map +1 -0
  867. package/dist/components/provenance-panel/provenance-panel.d.ts +7 -0
  868. package/dist/components/provenance-panel/provenance-panel.d.ts.map +1 -0
  869. package/dist/components/provenance-panel/provenance-panel.js +10 -0
  870. package/dist/components/provenance-panel/provenance-panel.js.map +1 -0
  871. package/dist/components/provenance-panel/provenance-panel.styles.d.ts +2 -0
  872. package/dist/components/provenance-panel/provenance-panel.styles.d.ts.map +1 -0
  873. package/dist/components/provenance-panel/provenance-panel.styles.js +45 -0
  874. package/dist/components/provenance-panel/provenance-panel.styles.js.map +1 -0
  875. package/dist/components/push-to-talk/push-to-talk.class.d.ts +145 -0
  876. package/dist/components/push-to-talk/push-to-talk.class.d.ts.map +1 -0
  877. package/dist/components/push-to-talk/push-to-talk.class.js +478 -0
  878. package/dist/components/push-to-talk/push-to-talk.class.js.map +1 -0
  879. package/dist/components/push-to-talk/push-to-talk.d.ts +3 -0
  880. package/dist/components/push-to-talk/push-to-talk.d.ts.map +1 -0
  881. package/dist/components/push-to-talk/push-to-talk.js +6 -0
  882. package/dist/components/push-to-talk/push-to-talk.js.map +1 -0
  883. package/dist/components/push-to-talk/push-to-talk.styles.d.ts +2 -0
  884. package/dist/components/push-to-talk/push-to-talk.styles.d.ts.map +1 -0
  885. package/dist/components/push-to-talk/push-to-talk.styles.js +79 -0
  886. package/dist/components/push-to-talk/push-to-talk.styles.js.map +1 -0
  887. package/dist/components/radio/radio.class.d.ts +1 -0
  888. package/dist/components/radio/radio.class.d.ts.map +1 -1
  889. package/dist/components/radio/radio.class.js +4 -0
  890. package/dist/components/radio/radio.class.js.map +1 -1
  891. package/dist/components/random-content/random-content.class.d.ts +3 -1
  892. package/dist/components/random-content/random-content.class.d.ts.map +1 -1
  893. package/dist/components/random-content/random-content.class.js +7 -4
  894. package/dist/components/random-content/random-content.class.js.map +1 -1
  895. package/dist/components/rating/rating.class.d.ts +8 -0
  896. package/dist/components/rating/rating.class.d.ts.map +1 -1
  897. package/dist/components/rating/rating.class.js +34 -8
  898. package/dist/components/rating/rating.class.js.map +1 -1
  899. package/dist/components/rubric-form/rubric-form.class.d.ts +195 -0
  900. package/dist/components/rubric-form/rubric-form.class.d.ts.map +1 -0
  901. package/dist/components/rubric-form/rubric-form.class.js +495 -0
  902. package/dist/components/rubric-form/rubric-form.class.js.map +1 -0
  903. package/dist/components/rubric-form/rubric-form.d.ts +9 -0
  904. package/dist/components/rubric-form/rubric-form.d.ts.map +1 -0
  905. package/dist/components/rubric-form/rubric-form.js +12 -0
  906. package/dist/components/rubric-form/rubric-form.js.map +1 -0
  907. package/dist/components/rubric-form/rubric-form.styles.d.ts +2 -0
  908. package/dist/components/rubric-form/rubric-form.styles.d.ts.map +1 -0
  909. package/dist/components/rubric-form/rubric-form.styles.js +90 -0
  910. package/dist/components/rubric-form/rubric-form.styles.js.map +1 -0
  911. package/dist/components/scroller/scroller.class.d.ts +6 -0
  912. package/dist/components/scroller/scroller.class.d.ts.map +1 -1
  913. package/dist/components/scroller/scroller.class.js +14 -4
  914. package/dist/components/scroller/scroller.class.js.map +1 -1
  915. package/dist/components/scroller/scroller.styles.d.ts.map +1 -1
  916. package/dist/components/scroller/scroller.styles.js +18 -0
  917. package/dist/components/scroller/scroller.styles.js.map +1 -1
  918. package/dist/components/segmented/segmented.class.d.ts +1 -0
  919. package/dist/components/segmented/segmented.class.d.ts.map +1 -1
  920. package/dist/components/segmented/segmented.class.js +1 -0
  921. package/dist/components/segmented/segmented.class.js.map +1 -1
  922. package/dist/components/segmented/segmented.styles.d.ts.map +1 -1
  923. package/dist/components/segmented/segmented.styles.js +21 -3
  924. package/dist/components/segmented/segmented.styles.js.map +1 -1
  925. package/dist/components/sequence-strip/sequence-strip.class.d.ts +62 -0
  926. package/dist/components/sequence-strip/sequence-strip.class.d.ts.map +1 -0
  927. package/dist/components/sequence-strip/sequence-strip.class.js +102 -0
  928. package/dist/components/sequence-strip/sequence-strip.class.js.map +1 -0
  929. package/dist/components/sequence-strip/sequence-strip.d.ts +2 -0
  930. package/dist/components/sequence-strip/sequence-strip.d.ts.map +1 -0
  931. package/dist/components/sequence-strip/sequence-strip.js +5 -0
  932. package/dist/components/sequence-strip/sequence-strip.js.map +1 -0
  933. package/dist/components/sequence-strip/sequence-strip.styles.d.ts +2 -0
  934. package/dist/components/sequence-strip/sequence-strip.styles.d.ts.map +1 -0
  935. package/dist/components/sequence-strip/sequence-strip.styles.js +62 -0
  936. package/dist/components/sequence-strip/sequence-strip.styles.js.map +1 -0
  937. package/dist/components/skeleton/skeleton.styles.d.ts.map +1 -1
  938. package/dist/components/skeleton/skeleton.styles.js +7 -0
  939. package/dist/components/skeleton/skeleton.styles.js.map +1 -1
  940. package/dist/components/slider/slider.class.d.ts +6 -1
  941. package/dist/components/slider/slider.class.d.ts.map +1 -1
  942. package/dist/components/slider/slider.class.js +23 -6
  943. package/dist/components/slider/slider.class.js.map +1 -1
  944. package/dist/components/slider/slider.styles.d.ts.map +1 -1
  945. package/dist/components/slider/slider.styles.js +15 -0
  946. package/dist/components/slider/slider.styles.js.map +1 -1
  947. package/dist/components/source-picker/source-picker.class.d.ts +78 -0
  948. package/dist/components/source-picker/source-picker.class.d.ts.map +1 -0
  949. package/dist/components/source-picker/source-picker.class.js +305 -0
  950. package/dist/components/source-picker/source-picker.class.js.map +1 -0
  951. package/dist/components/source-picker/source-picker.d.ts +5 -0
  952. package/dist/components/source-picker/source-picker.d.ts.map +1 -0
  953. package/dist/components/source-picker/source-picker.js +8 -0
  954. package/dist/components/source-picker/source-picker.js.map +1 -0
  955. package/dist/components/source-picker/source-picker.styles.d.ts +2 -0
  956. package/dist/components/source-picker/source-picker.styles.d.ts.map +1 -0
  957. package/dist/components/source-picker/source-picker.styles.js +80 -0
  958. package/dist/components/source-picker/source-picker.styles.js.map +1 -0
  959. package/dist/components/span-waterfall/span-waterfall.class.d.ts +70 -0
  960. package/dist/components/span-waterfall/span-waterfall.class.d.ts.map +1 -0
  961. package/dist/components/span-waterfall/span-waterfall.class.js +307 -0
  962. package/dist/components/span-waterfall/span-waterfall.class.js.map +1 -0
  963. package/dist/components/span-waterfall/span-waterfall.d.ts +4 -0
  964. package/dist/components/span-waterfall/span-waterfall.d.ts.map +1 -0
  965. package/dist/components/span-waterfall/span-waterfall.js +7 -0
  966. package/dist/components/span-waterfall/span-waterfall.js.map +1 -0
  967. package/dist/components/span-waterfall/span-waterfall.styles.d.ts +2 -0
  968. package/dist/components/span-waterfall/span-waterfall.styles.d.ts.map +1 -0
  969. package/dist/components/span-waterfall/span-waterfall.styles.js +130 -0
  970. package/dist/components/span-waterfall/span-waterfall.styles.js.map +1 -0
  971. package/dist/components/sparkline/sparkline.class.d.ts.map +1 -1
  972. package/dist/components/sparkline/sparkline.class.js +17 -7
  973. package/dist/components/sparkline/sparkline.class.js.map +1 -1
  974. package/dist/components/split/split.class.d.ts +13 -0
  975. package/dist/components/split/split.class.d.ts.map +1 -1
  976. package/dist/components/split/split.class.js +24 -4
  977. package/dist/components/split/split.class.js.map +1 -1
  978. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js +1 -1
  979. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js.map +1 -1
  980. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +93 -3
  981. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -1
  982. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +241 -9
  983. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
  984. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js +10 -1
  985. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -1
  986. package/dist/components/stack-trace/stack-trace-parse.d.ts +22 -0
  987. package/dist/components/stack-trace/stack-trace-parse.d.ts.map +1 -0
  988. package/dist/components/stack-trace/stack-trace-parse.js +194 -0
  989. package/dist/components/stack-trace/stack-trace-parse.js.map +1 -0
  990. package/dist/components/stack-trace/stack-trace.class.d.ts +68 -0
  991. package/dist/components/stack-trace/stack-trace.class.d.ts.map +1 -0
  992. package/dist/components/stack-trace/stack-trace.class.js +193 -0
  993. package/dist/components/stack-trace/stack-trace.class.js.map +1 -0
  994. package/dist/components/stack-trace/stack-trace.d.ts +3 -0
  995. package/dist/components/stack-trace/stack-trace.d.ts.map +1 -0
  996. package/dist/components/stack-trace/stack-trace.js +6 -0
  997. package/dist/components/stack-trace/stack-trace.js.map +1 -0
  998. package/dist/components/stack-trace/stack-trace.styles.d.ts +2 -0
  999. package/dist/components/stack-trace/stack-trace.styles.d.ts.map +1 -0
  1000. package/dist/components/stack-trace/stack-trace.styles.js +101 -0
  1001. package/dist/components/stack-trace/stack-trace.styles.js.map +1 -0
  1002. package/dist/components/stat/stat.class.d.ts +10 -1
  1003. package/dist/components/stat/stat.class.d.ts.map +1 -1
  1004. package/dist/components/stat/stat.class.js +22 -7
  1005. package/dist/components/stat/stat.class.js.map +1 -1
  1006. package/dist/components/stepper/stepper.class.d.ts +5 -0
  1007. package/dist/components/stepper/stepper.class.d.ts.map +1 -1
  1008. package/dist/components/stepper/stepper.class.js +9 -1
  1009. package/dist/components/stepper/stepper.class.js.map +1 -1
  1010. package/dist/components/stream-status/stream-status.class.d.ts.map +1 -1
  1011. package/dist/components/stream-status/stream-status.class.js +9 -1
  1012. package/dist/components/stream-status/stream-status.class.js.map +1 -1
  1013. package/dist/components/streaming-text/streaming-text.class.d.ts +6 -0
  1014. package/dist/components/streaming-text/streaming-text.class.d.ts.map +1 -1
  1015. package/dist/components/streaming-text/streaming-text.class.js +22 -3
  1016. package/dist/components/streaming-text/streaming-text.class.js.map +1 -1
  1017. package/dist/components/suggestion-chips/suggestion-chips.class.d.ts +54 -0
  1018. package/dist/components/suggestion-chips/suggestion-chips.class.d.ts.map +1 -0
  1019. package/dist/components/suggestion-chips/suggestion-chips.class.js +120 -0
  1020. package/dist/components/suggestion-chips/suggestion-chips.class.js.map +1 -0
  1021. package/dist/components/suggestion-chips/suggestion-chips.d.ts +3 -0
  1022. package/dist/components/suggestion-chips/suggestion-chips.d.ts.map +1 -0
  1023. package/dist/components/suggestion-chips/suggestion-chips.js +6 -0
  1024. package/dist/components/suggestion-chips/suggestion-chips.js.map +1 -0
  1025. package/dist/components/suggestion-chips/suggestion-chips.styles.d.ts +2 -0
  1026. package/dist/components/suggestion-chips/suggestion-chips.styles.d.ts.map +1 -0
  1027. package/dist/components/suggestion-chips/suggestion-chips.styles.js +60 -0
  1028. package/dist/components/suggestion-chips/suggestion-chips.styles.js.map +1 -0
  1029. package/dist/components/svg-viewer/svg-viewer.class.d.ts +34 -0
  1030. package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -1
  1031. package/dist/components/svg-viewer/svg-viewer.class.js +88 -1
  1032. package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -1
  1033. package/dist/components/svg-viewer/svg-viewer.js +1 -0
  1034. package/dist/components/svg-viewer/svg-viewer.js.map +1 -1
  1035. package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -1
  1036. package/dist/components/svg-viewer/svg-viewer.styles.js +18 -0
  1037. package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -1
  1038. package/dist/components/swatch-picker/swatch-picker.class.d.ts +71 -0
  1039. package/dist/components/swatch-picker/swatch-picker.class.d.ts.map +1 -0
  1040. package/dist/components/swatch-picker/swatch-picker.class.js +134 -0
  1041. package/dist/components/swatch-picker/swatch-picker.class.js.map +1 -0
  1042. package/dist/components/swatch-picker/swatch-picker.d.ts +2 -0
  1043. package/dist/components/swatch-picker/swatch-picker.d.ts.map +1 -0
  1044. package/dist/components/swatch-picker/swatch-picker.js +5 -0
  1045. package/dist/components/swatch-picker/swatch-picker.js.map +1 -0
  1046. package/dist/components/swatch-picker/swatch-picker.styles.d.ts +2 -0
  1047. package/dist/components/swatch-picker/swatch-picker.styles.d.ts.map +1 -0
  1048. package/dist/components/swatch-picker/swatch-picker.styles.js +131 -0
  1049. package/dist/components/swatch-picker/swatch-picker.styles.js.map +1 -0
  1050. package/dist/components/table/table.class.d.ts +85 -5
  1051. package/dist/components/table/table.class.d.ts.map +1 -1
  1052. package/dist/components/table/table.class.js +254 -41
  1053. package/dist/components/table/table.class.js.map +1 -1
  1054. package/dist/components/table/table.styles.d.ts.map +1 -1
  1055. package/dist/components/table/table.styles.js +35 -0
  1056. package/dist/components/table/table.styles.js.map +1 -1
  1057. package/dist/components/tabs/tabs.class.d.ts +6 -0
  1058. package/dist/components/tabs/tabs.class.d.ts.map +1 -1
  1059. package/dist/components/tabs/tabs.class.js +10 -1
  1060. package/dist/components/tabs/tabs.class.js.map +1 -1
  1061. package/dist/components/tabs/tabs.styles.d.ts.map +1 -1
  1062. package/dist/components/tabs/tabs.styles.js +15 -0
  1063. package/dist/components/tabs/tabs.styles.js.map +1 -1
  1064. package/dist/components/task-list/task-list.class.d.ts +89 -0
  1065. package/dist/components/task-list/task-list.class.d.ts.map +1 -0
  1066. package/dist/components/task-list/task-list.class.js +271 -0
  1067. package/dist/components/task-list/task-list.class.js.map +1 -0
  1068. package/dist/components/task-list/task-list.d.ts +2 -0
  1069. package/dist/components/task-list/task-list.d.ts.map +1 -0
  1070. package/dist/components/task-list/task-list.js +5 -0
  1071. package/dist/components/task-list/task-list.js.map +1 -0
  1072. package/dist/components/task-list/task-list.styles.d.ts +2 -0
  1073. package/dist/components/task-list/task-list.styles.d.ts.map +1 -0
  1074. package/dist/components/task-list/task-list.styles.js +134 -0
  1075. package/dist/components/task-list/task-list.styles.js.map +1 -0
  1076. package/dist/components/terminal/terminal.class.d.ts +150 -0
  1077. package/dist/components/terminal/terminal.class.d.ts.map +1 -0
  1078. package/dist/components/terminal/terminal.class.js +565 -0
  1079. package/dist/components/terminal/terminal.class.js.map +1 -0
  1080. package/dist/components/terminal/terminal.d.ts +2 -0
  1081. package/dist/components/terminal/terminal.d.ts.map +1 -0
  1082. package/dist/components/terminal/terminal.js +5 -0
  1083. package/dist/components/terminal/terminal.js.map +1 -0
  1084. package/dist/components/terminal/terminal.styles.d.ts +2 -0
  1085. package/dist/components/terminal/terminal.styles.d.ts.map +1 -0
  1086. package/dist/components/terminal/terminal.styles.js +77 -0
  1087. package/dist/components/terminal/terminal.styles.js.map +1 -0
  1088. package/dist/components/test-results/test-results.class.d.ts +99 -0
  1089. package/dist/components/test-results/test-results.class.d.ts.map +1 -0
  1090. package/dist/components/test-results/test-results.class.js +276 -0
  1091. package/dist/components/test-results/test-results.class.js.map +1 -0
  1092. package/dist/components/test-results/test-results.d.ts +2 -0
  1093. package/dist/components/test-results/test-results.d.ts.map +1 -0
  1094. package/dist/components/test-results/test-results.js +5 -0
  1095. package/dist/components/test-results/test-results.js.map +1 -0
  1096. package/dist/components/test-results/test-results.styles.d.ts +2 -0
  1097. package/dist/components/test-results/test-results.styles.d.ts.map +1 -0
  1098. package/dist/components/test-results/test-results.styles.js +118 -0
  1099. package/dist/components/test-results/test-results.styles.js.map +1 -0
  1100. package/dist/components/textarea/textarea.class.d.ts.map +1 -1
  1101. package/dist/components/textarea/textarea.class.js +4 -0
  1102. package/dist/components/textarea/textarea.class.js.map +1 -1
  1103. package/dist/components/thinking-panel/thinking-panel.class.d.ts +6 -0
  1104. package/dist/components/thinking-panel/thinking-panel.class.d.ts.map +1 -1
  1105. package/dist/components/thinking-panel/thinking-panel.class.js +12 -2
  1106. package/dist/components/thinking-panel/thinking-panel.class.js.map +1 -1
  1107. package/dist/components/thread-list/thread-list.class.d.ts +130 -0
  1108. package/dist/components/thread-list/thread-list.class.d.ts.map +1 -0
  1109. package/dist/components/thread-list/thread-list.class.js +480 -0
  1110. package/dist/components/thread-list/thread-list.class.js.map +1 -0
  1111. package/dist/components/thread-list/thread-list.d.ts +5 -0
  1112. package/dist/components/thread-list/thread-list.d.ts.map +1 -0
  1113. package/dist/components/thread-list/thread-list.js +8 -0
  1114. package/dist/components/thread-list/thread-list.js.map +1 -0
  1115. package/dist/components/thread-list/thread-list.styles.d.ts +2 -0
  1116. package/dist/components/thread-list/thread-list.styles.d.ts.map +1 -0
  1117. package/dist/components/thread-list/thread-list.styles.js +81 -0
  1118. package/dist/components/thread-list/thread-list.styles.js.map +1 -0
  1119. package/dist/components/time-range/time-range.class.d.ts.map +1 -1
  1120. package/dist/components/time-range/time-range.class.js +3 -3
  1121. package/dist/components/time-range/time-range.class.js.map +1 -1
  1122. package/dist/components/timeline/timeline-item.class.d.ts.map +1 -1
  1123. package/dist/components/timeline/timeline-item.class.js +2 -1
  1124. package/dist/components/timeline/timeline-item.class.js.map +1 -1
  1125. package/dist/components/toast/toast-item.class.d.ts +8 -0
  1126. package/dist/components/toast/toast-item.class.d.ts.map +1 -1
  1127. package/dist/components/toast/toast-item.class.js +14 -2
  1128. package/dist/components/toast/toast-item.class.js.map +1 -1
  1129. package/dist/components/toast/toast-item.styles.d.ts.map +1 -1
  1130. package/dist/components/toast/toast-item.styles.js +2 -0
  1131. package/dist/components/toast/toast-item.styles.js.map +1 -1
  1132. package/dist/components/token-input/token-input.class.d.ts +29 -3
  1133. package/dist/components/token-input/token-input.class.d.ts.map +1 -1
  1134. package/dist/components/token-input/token-input.class.js +41 -13
  1135. package/dist/components/token-input/token-input.class.js.map +1 -1
  1136. package/dist/components/token-input/token-input.styles.d.ts.map +1 -1
  1137. package/dist/components/token-input/token-input.styles.js +6 -1
  1138. package/dist/components/token-input/token-input.styles.js.map +1 -1
  1139. package/dist/components/tool-call-chip/tool-call-chip.class.d.ts +6 -0
  1140. package/dist/components/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
  1141. package/dist/components/tool-call-chip/tool-call-chip.class.js +15 -4
  1142. package/dist/components/tool-call-chip/tool-call-chip.class.js.map +1 -1
  1143. package/dist/components/tool-result-dialog/tool-result-dialog.class.d.ts +6 -0
  1144. package/dist/components/tool-result-dialog/tool-result-dialog.class.d.ts.map +1 -1
  1145. package/dist/components/tool-result-dialog/tool-result-dialog.class.js +12 -3
  1146. package/dist/components/tool-result-dialog/tool-result-dialog.class.js.map +1 -1
  1147. package/dist/components/tour/tour.class.d.ts +6 -3
  1148. package/dist/components/tour/tour.class.d.ts.map +1 -1
  1149. package/dist/components/tour/tour.class.js +56 -20
  1150. package/dist/components/tour/tour.class.js.map +1 -1
  1151. package/dist/components/trace-tree/span.d.ts +26 -0
  1152. package/dist/components/trace-tree/span.d.ts.map +1 -0
  1153. package/dist/components/trace-tree/span.js +2 -0
  1154. package/dist/components/trace-tree/span.js.map +1 -0
  1155. package/dist/components/trace-tree/trace-tree.class.d.ts +85 -0
  1156. package/dist/components/trace-tree/trace-tree.class.d.ts.map +1 -0
  1157. package/dist/components/trace-tree/trace-tree.class.js +443 -0
  1158. package/dist/components/trace-tree/trace-tree.class.js.map +1 -0
  1159. package/dist/components/trace-tree/trace-tree.d.ts +5 -0
  1160. package/dist/components/trace-tree/trace-tree.d.ts.map +1 -0
  1161. package/dist/components/trace-tree/trace-tree.js +8 -0
  1162. package/dist/components/trace-tree/trace-tree.js.map +1 -0
  1163. package/dist/components/trace-tree/trace-tree.styles.d.ts +2 -0
  1164. package/dist/components/trace-tree/trace-tree.styles.d.ts.map +1 -0
  1165. package/dist/components/trace-tree/trace-tree.styles.js +186 -0
  1166. package/dist/components/trace-tree/trace-tree.styles.js.map +1 -0
  1167. package/dist/components/transcript-feed/transcript-feed.class.d.ts +89 -0
  1168. package/dist/components/transcript-feed/transcript-feed.class.d.ts.map +1 -0
  1169. package/dist/components/transcript-feed/transcript-feed.class.js +188 -0
  1170. package/dist/components/transcript-feed/transcript-feed.class.js.map +1 -0
  1171. package/dist/components/transcript-feed/transcript-feed.d.ts +2 -0
  1172. package/dist/components/transcript-feed/transcript-feed.d.ts.map +1 -0
  1173. package/dist/components/transcript-feed/transcript-feed.js +5 -0
  1174. package/dist/components/transcript-feed/transcript-feed.js.map +1 -0
  1175. package/dist/components/transcript-feed/transcript-feed.styles.d.ts +2 -0
  1176. package/dist/components/transcript-feed/transcript-feed.styles.d.ts.map +1 -0
  1177. package/dist/components/transcript-feed/transcript-feed.styles.js +94 -0
  1178. package/dist/components/transcript-feed/transcript-feed.styles.js.map +1 -0
  1179. package/dist/components/tree/tree-node.class.d.ts +25 -4
  1180. package/dist/components/tree/tree-node.class.d.ts.map +1 -1
  1181. package/dist/components/tree/tree-node.class.js +61 -11
  1182. package/dist/components/tree/tree-node.class.js.map +1 -1
  1183. package/dist/components/tree/tree-node.styles.d.ts.map +1 -1
  1184. package/dist/components/tree/tree-node.styles.js +34 -5
  1185. package/dist/components/tree/tree-node.styles.js.map +1 -1
  1186. package/dist/components/tree/tree.class.d.ts +9 -0
  1187. package/dist/components/tree/tree.class.d.ts.map +1 -1
  1188. package/dist/components/tree/tree.class.js.map +1 -1
  1189. package/dist/components/usage-badge/usage-badge.class.d.ts +78 -0
  1190. package/dist/components/usage-badge/usage-badge.class.d.ts.map +1 -0
  1191. package/dist/components/usage-badge/usage-badge.class.js +237 -0
  1192. package/dist/components/usage-badge/usage-badge.class.js.map +1 -0
  1193. package/dist/components/usage-badge/usage-badge.d.ts +2 -0
  1194. package/dist/components/usage-badge/usage-badge.d.ts.map +1 -0
  1195. package/dist/components/usage-badge/usage-badge.js +5 -0
  1196. package/dist/components/usage-badge/usage-badge.js.map +1 -0
  1197. package/dist/components/usage-badge/usage-badge.styles.d.ts +2 -0
  1198. package/dist/components/usage-badge/usage-badge.styles.d.ts.map +1 -0
  1199. package/dist/components/usage-badge/usage-badge.styles.js +62 -0
  1200. package/dist/components/usage-badge/usage-badge.styles.js.map +1 -0
  1201. package/dist/components/virtual-list/virtual-list.class.d.ts +62 -0
  1202. package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
  1203. package/dist/components/virtual-list/virtual-list.class.js +123 -8
  1204. package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
  1205. package/dist/components/voice-picker/voice-picker.class.d.ts +241 -0
  1206. package/dist/components/voice-picker/voice-picker.class.d.ts.map +1 -0
  1207. package/dist/components/voice-picker/voice-picker.class.js +808 -0
  1208. package/dist/components/voice-picker/voice-picker.class.js.map +1 -0
  1209. package/dist/components/voice-picker/voice-picker.d.ts +2 -0
  1210. package/dist/components/voice-picker/voice-picker.d.ts.map +1 -0
  1211. package/dist/components/voice-picker/voice-picker.js +5 -0
  1212. package/dist/components/voice-picker/voice-picker.js.map +1 -0
  1213. package/dist/components/voice-picker/voice-picker.styles.d.ts +2 -0
  1214. package/dist/components/voice-picker/voice-picker.styles.d.ts.map +1 -0
  1215. package/dist/components/voice-picker/voice-picker.styles.js +272 -0
  1216. package/dist/components/voice-picker/voice-picker.styles.js.map +1 -0
  1217. package/dist/components/widget-renderer/default-registry.d.ts +14 -0
  1218. package/dist/components/widget-renderer/default-registry.d.ts.map +1 -0
  1219. package/dist/components/widget-renderer/default-registry.js +43 -0
  1220. package/dist/components/widget-renderer/default-registry.js.map +1 -0
  1221. package/dist/components/widget-renderer/registry.d.ts +31 -0
  1222. package/dist/components/widget-renderer/registry.d.ts.map +1 -0
  1223. package/dist/components/widget-renderer/registry.js +23 -0
  1224. package/dist/components/widget-renderer/registry.js.map +1 -0
  1225. package/dist/components/widget-renderer/resolve.d.ts +48 -0
  1226. package/dist/components/widget-renderer/resolve.d.ts.map +1 -0
  1227. package/dist/components/widget-renderer/resolve.js +122 -0
  1228. package/dist/components/widget-renderer/resolve.js.map +1 -0
  1229. package/dist/components/widget-renderer/widget-renderer.class.d.ts +67 -0
  1230. package/dist/components/widget-renderer/widget-renderer.class.d.ts.map +1 -0
  1231. package/dist/components/widget-renderer/widget-renderer.class.js +175 -0
  1232. package/dist/components/widget-renderer/widget-renderer.class.js.map +1 -0
  1233. package/dist/components/widget-renderer/widget-renderer.d.ts +5 -0
  1234. package/dist/components/widget-renderer/widget-renderer.d.ts.map +1 -0
  1235. package/dist/components/widget-renderer/widget-renderer.js +10 -0
  1236. package/dist/components/widget-renderer/widget-renderer.js.map +1 -0
  1237. package/dist/components/widget-renderer/widget-renderer.styles.d.ts +2 -0
  1238. package/dist/components/widget-renderer/widget-renderer.styles.d.ts.map +1 -0
  1239. package/dist/components/widget-renderer/widget-renderer.styles.js +14 -0
  1240. package/dist/components/widget-renderer/widget-renderer.styles.js.map +1 -0
  1241. package/dist/components/word-cloud/word-cloud-layout.d.ts +4 -0
  1242. package/dist/components/word-cloud/word-cloud-layout.d.ts.map +1 -1
  1243. package/dist/components/word-cloud/word-cloud-layout.js +3 -2
  1244. package/dist/components/word-cloud/word-cloud-layout.js.map +1 -1
  1245. package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
  1246. package/dist/components/word-cloud/word-cloud.class.js +11 -3
  1247. package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
  1248. package/dist/components/xml-viewer/xml-viewer.class.d.ts +135 -0
  1249. package/dist/components/xml-viewer/xml-viewer.class.d.ts.map +1 -0
  1250. package/dist/components/xml-viewer/xml-viewer.class.js +0 -0
  1251. package/dist/components/xml-viewer/xml-viewer.class.js.map +1 -0
  1252. package/dist/components/xml-viewer/xml-viewer.d.ts +2 -0
  1253. package/dist/components/xml-viewer/xml-viewer.d.ts.map +1 -0
  1254. package/dist/components/xml-viewer/xml-viewer.js +20 -0
  1255. package/dist/components/xml-viewer/xml-viewer.js.map +1 -0
  1256. package/dist/components/xml-viewer/xml-viewer.styles.d.ts +2 -0
  1257. package/dist/components/xml-viewer/xml-viewer.styles.d.ts.map +1 -0
  1258. package/dist/components/xml-viewer/xml-viewer.styles.js +156 -0
  1259. package/dist/components/xml-viewer/xml-viewer.styles.js.map +1 -0
  1260. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +14 -2
  1261. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  1262. package/dist/components/zoomable-frame/zoomable-frame.class.js +30 -14
  1263. package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -1
  1264. package/dist/internal/anchor-target.d.ts +49 -0
  1265. package/dist/internal/anchor-target.d.ts.map +1 -0
  1266. package/dist/internal/anchor-target.js +255 -0
  1267. package/dist/internal/anchor-target.js.map +1 -0
  1268. package/dist/internal/ansi.d.ts +35 -0
  1269. package/dist/internal/ansi.d.ts.map +1 -0
  1270. package/dist/internal/ansi.js +210 -0
  1271. package/dist/internal/ansi.js.map +1 -0
  1272. package/dist/internal/cell-range.d.ts +19 -0
  1273. package/dist/internal/cell-range.d.ts.map +1 -0
  1274. package/dist/internal/cell-range.js +69 -0
  1275. package/dist/internal/cell-range.js.map +1 -0
  1276. package/dist/internal/intl-cache.d.ts +33 -0
  1277. package/dist/internal/intl-cache.d.ts.map +1 -0
  1278. package/dist/internal/intl-cache.js +0 -0
  1279. package/dist/internal/intl-cache.js.map +1 -0
  1280. package/dist/internal/layered-layout.d.ts +44 -0
  1281. package/dist/internal/layered-layout.d.ts.map +1 -0
  1282. package/dist/internal/layered-layout.js +172 -0
  1283. package/dist/internal/layered-layout.js.map +1 -0
  1284. package/dist/internal/localization.d.ts +12 -1
  1285. package/dist/internal/localization.d.ts.map +1 -1
  1286. package/dist/internal/localization.js +367 -4
  1287. package/dist/internal/localization.js.map +1 -1
  1288. package/dist/internal/lyra-element.d.ts +10 -1
  1289. package/dist/internal/lyra-element.d.ts.map +1 -1
  1290. package/dist/internal/lyra-element.js +19 -1
  1291. package/dist/internal/lyra-element.js.map +1 -1
  1292. package/dist/internal/root-registration-allowlist.d.ts +2 -2
  1293. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  1294. package/dist/internal/root-registration-allowlist.js +55 -0
  1295. package/dist/internal/root-registration-allowlist.js.map +1 -1
  1296. package/dist/internal/slugger.d.ts +11 -0
  1297. package/dist/internal/slugger.d.ts.map +1 -0
  1298. package/dist/internal/slugger.js +45 -0
  1299. package/dist/internal/slugger.js.map +1 -0
  1300. package/dist/internal/text-highlights.d.ts +21 -0
  1301. package/dist/internal/text-highlights.d.ts.map +1 -0
  1302. package/dist/internal/text-highlights.js +172 -0
  1303. package/dist/internal/text-highlights.js.map +1 -0
  1304. package/dist/internal/text-quote.d.ts +53 -0
  1305. package/dist/internal/text-quote.d.ts.map +1 -0
  1306. package/dist/internal/text-quote.js +326 -0
  1307. package/dist/internal/text-quote.js.map +1 -0
  1308. package/dist/internal/tokens.styles.d.ts.map +1 -1
  1309. package/dist/internal/tokens.styles.js +49 -0
  1310. package/dist/internal/tokens.styles.js.map +1 -1
  1311. package/dist/internal/viewer-search.d.ts +18 -0
  1312. package/dist/internal/viewer-search.d.ts.map +1 -0
  1313. package/dist/internal/viewer-search.js +21 -0
  1314. package/dist/internal/viewer-search.js.map +1 -0
  1315. package/dist/lyra.d.ts +137 -2
  1316. package/dist/lyra.d.ts.map +1 -1
  1317. package/dist/lyra.js +109 -0
  1318. package/dist/lyra.js.map +1 -1
  1319. package/llms-full.txt +2682 -78
  1320. package/llms.txt +28 -2
  1321. package/package.json +157 -31
  1322. package/vscode-css-data.json +231 -0
  1323. package/vscode-html-data.json +5222 -2201
  1324. package/web-types.json +5721 -2508
@@ -0,0 +1,1570 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing, svg } from 'lit';
8
+ import { property, state } from 'lit/decorators.js';
9
+ import { repeat } from 'lit/directives/repeat.js';
10
+ import { LyraElement } from '../../internal/lyra-element.js';
11
+ import { tag } from '../../internal/prefix.js';
12
+ import { nextId, srOnly } from '../../internal/a11y.js';
13
+ import { Announcer } from '../../internal/announcer.js';
14
+ import { isRtl } from '../../internal/rtl.js';
15
+ import { prefersReducedMotion } from '../../internal/motion.js';
16
+ import { layeredLayout } from '../../internal/layered-layout.js';
17
+ import { finiteRange } from '../../internal/numbers.js';
18
+ import { styles } from './flow-canvas.styles.js';
19
+ /** The `dragstart`/`dragover`/`drop` MIME type shared between `lyra-node-palette` and this
20
+ * canvas's `droppable` handling — a single exported constant so the two files can never
21
+ * disagree on the literal string. */
22
+ export const FLOW_PALETTE_MIME_TYPE = 'application/lyra-flow-node';
23
+ const CONNECT_OFFSET_MIN = 24;
24
+ const CONNECT_OFFSET_MAX = 120;
25
+ const ZOOM_MULTIPLIER = 1.2;
26
+ const DEFAULT_FIT_PADDING = 24;
27
+ const KEYBOARD_PAN_STEP = 32;
28
+ function toggledSelection(list, id) {
29
+ return list.includes(id) ? list.filter((x) => x !== id) : [...list, id];
30
+ }
31
+ /**
32
+ * `<lyra-flow-canvas>` — a pannable/zoomable DAG workflow canvas: positions HTML node cards, draws
33
+ * SVG edges between their handles, runs a shared layered auto-layout for unpositioned nodes, and owns
34
+ * all selection/drag/connect interaction as controlled events. Readonly (viewer) by default; opt into
35
+ * editor gestures individually via `nodes-draggable`, `connectable`, `droppable`. Never mutates `nodes`
36
+ * or `edges` itself — every edit intent is an event the host applies, mirroring `lyra-stepper`/
37
+ * `lyra-table`'s controlled-component contract.
38
+ *
39
+ * @customElement lyra-flow-canvas
40
+ * @slot - `lyra-flow-node` children to adopt by `node-id`; non-matching children are ignored with a
41
+ * console warning.
42
+ * @slot top-start - Floating corner overlay (e.g. `lyra-flow-run-overlay`).
43
+ * @slot top-end - Floating corner overlay.
44
+ * @slot bottom-start - Floating corner overlay (e.g. `lyra-flow-controls`).
45
+ * @slot bottom-end - Floating corner overlay (e.g. `lyra-flow-minimap`).
46
+ * @event lyra-node-click - `detail: { id }`.
47
+ * @event lyra-edge-click - `detail: { id, source, target }`.
48
+ * @event lyra-selection-change - `detail: { nodeIds, edgeIds }`.
49
+ * @event lyra-node-move - `detail: { id, position, previous }`.
50
+ * @event lyra-connect - `detail: { source, target, sourceHandle, targetHandle }`.
51
+ * @event lyra-node-add - `detail: { type, position }`.
52
+ * @event lyra-selection-delete - `detail: { nodeIds, edgeIds }`.
53
+ * @event lyra-viewport-change - `detail: { x, y, zoom }`.
54
+ * @event lyra-layout-change - `detail: { positions }`.
55
+ * @csspart base - The root wrapper.
56
+ * @csspart viewport - The focusable pan/zoom surface.
57
+ * @csspart background - The dotted background grid.
58
+ * @csspart edges - The edges SVG.
59
+ * @csspart edge - A single edge path.
60
+ * @csspart edge-label - An edge's drawn label.
61
+ * @csspart arrowhead - The shared directed-edge arrowhead marker.
62
+ * @csspart stub - A dangling-edge stub line.
63
+ * @csspart connection-line - The in-progress connect-gesture path.
64
+ * @csspart node - A node's positioned wrapper.
65
+ * @csspart empty - The `lyra-empty` shown when `nodes` is empty.
66
+ * @csspart live-region - The current item/gesture announcement.
67
+ * @csspart edge-list - A visually hidden list of every edge.
68
+ * @cssprop [--lyra-flow-canvas-grid-size=8px] - Dotted background spacing.
69
+ * @cssprop [--lyra-flow-canvas-march-duration=var(--lyra-transition-ambient)] - Running-edge march animation duration.
70
+ */
71
+ export class LyraFlowCanvas extends LyraElement {
72
+ constructor() {
73
+ super(...arguments);
74
+ this.nodes = [];
75
+ this.edges = [];
76
+ this.orientation = 'horizontal';
77
+ this.nodesDraggable = false;
78
+ this.connectable = false;
79
+ this.droppable = false;
80
+ this.locked = false;
81
+ this.selectedNodeIds = [];
82
+ this.selectedEdgeIds = [];
83
+ this.minZoom = 0.25;
84
+ this.maxZoom = 2;
85
+ /** Snap step, in content px, for drags/nudges/drop positions; `0` disables snapping. Also the
86
+ * dotted background's base spacing. */
87
+ this.grid = 8;
88
+ this.layerGap = 64;
89
+ this.nodeGap = 24;
90
+ this.decorations = null;
91
+ this.accessibleLabel = null;
92
+ this.arrowMarkerId = nextId('flow-canvas-arrow');
93
+ this.liveRegionId = nextId('flow-canvas-live');
94
+ this.announcer = new Announcer({ onFlush: (text) => (this.liveText = text) });
95
+ this.liveText = '';
96
+ this.activeItemIndex = 0;
97
+ this.connecting = false;
98
+ this.keyboardConnectSourceId = null;
99
+ this.keyboardConnectTargetIndex = 0;
100
+ /** Auto-layout-assigned positions for nodes lacking an explicit `position`. Empty until the first
101
+ * layout pass runs; `nodePosition()` reads from it. */
102
+ this.autoPositions = new Map();
103
+ /** Per-node measured wrapper size (`ResizeObserver`-driven) — plain map, not reactive state, read
104
+ * by every geometry helper below. */
105
+ this.measuredSizes = new Map();
106
+ this.observedNodeEls = new Set();
107
+ this.layoutRaf = null;
108
+ this.panX = 0;
109
+ this.panY = 0;
110
+ this.zoomLevel = 1;
111
+ this.viewportChangeRaf = null;
112
+ this.hasFitOnce = false;
113
+ this.wheelMeasure = null;
114
+ this.wheelMeasureRaf = null;
115
+ this.nodeIncidentEdges = new Map();
116
+ this.connectInvalidNodeId = null;
117
+ this.companionCallbacks = new Set();
118
+ this.companionRaf = null;
119
+ this.zoomIn = () => {
120
+ if (this.locked)
121
+ return;
122
+ this.zoomAtCenter(this.zoomLevel * ZOOM_MULTIPLIER);
123
+ };
124
+ this.zoomOut = () => {
125
+ if (this.locked)
126
+ return;
127
+ this.zoomAtCenter(this.zoomLevel / ZOOM_MULTIPLIER);
128
+ };
129
+ this.resetZoom = () => {
130
+ if (this.locked)
131
+ return;
132
+ this.setViewport({ x: this.panX, y: this.panY, zoom: 1 });
133
+ };
134
+ this.onWheel = (e) => {
135
+ if (this.locked || !this.viewportEl)
136
+ return;
137
+ e.preventDefault();
138
+ // Wheel events arrive in dense bursts; neither the viewport's rect nor the resolved text
139
+ // direction can change within a single frame, so both are measured at most once per frame
140
+ // instead of forcing a layout/style recalc on every event.
141
+ if (!this.wheelMeasure) {
142
+ this.wheelMeasure = { rect: this.viewportEl.getBoundingClientRect(), rtl: isRtl(this) };
143
+ this.wheelMeasureRaf = requestAnimationFrame(() => {
144
+ this.wheelMeasure = null;
145
+ this.wheelMeasureRaf = null;
146
+ });
147
+ }
148
+ const { rect, rtl } = this.wheelMeasure;
149
+ const localX = this.localWorldX(e.clientX, rect, rtl);
150
+ const localY = e.clientY - rect.top;
151
+ const factor = e.deltaY < 0 ? ZOOM_MULTIPLIER : 1 / ZOOM_MULTIPLIER;
152
+ this.zoomAtPoint(localX, localY, this.zoomLevel * factor);
153
+ };
154
+ this.onBackgroundPointerDown = (e) => {
155
+ if (this.locked)
156
+ return;
157
+ this.panDrag = {
158
+ pointerId: e.pointerId,
159
+ startClientX: e.clientX,
160
+ startClientY: e.clientY,
161
+ startPanX: this.panX,
162
+ startPanY: this.panY,
163
+ // Resolved once per gesture: isRtl() reads getComputedStyle, too costly per pointermove.
164
+ rtlFlip: this.orientation === 'horizontal' && isRtl(this) ? -1 : 1,
165
+ };
166
+ e.target.setPointerCapture?.(e.pointerId);
167
+ this.viewportEl?.setAttribute('data-panning', '');
168
+ window.addEventListener('pointermove', this.onBackgroundPointerMove);
169
+ window.addEventListener('pointerup', this.onBackgroundPointerUp);
170
+ window.addEventListener('pointercancel', this.onBackgroundPointerUp);
171
+ window.addEventListener('lostpointercapture', this.onBackgroundPointerUp);
172
+ };
173
+ this.onBackgroundPointerMove = (e) => {
174
+ const drag = this.panDrag;
175
+ if (!drag || e.pointerId !== drag.pointerId)
176
+ return;
177
+ // Panning tracks the pointer's *physical* direction, so under the RTL ancestor mirror the
178
+ // stored panX delta must be negated to still visually follow the cursor.
179
+ this.panX = drag.startPanX + (e.clientX - drag.startClientX) * drag.rtlFlip;
180
+ this.panY = drag.startPanY + (e.clientY - drag.startClientY);
181
+ this.applyWorldTransform();
182
+ this.scheduleViewportChange();
183
+ };
184
+ this.onBackgroundPointerUp = (e) => {
185
+ if (!this.panDrag || e.pointerId !== this.panDrag.pointerId)
186
+ return;
187
+ this.panDrag = undefined;
188
+ this.viewportEl?.removeAttribute('data-panning');
189
+ window.removeEventListener('pointermove', this.onBackgroundPointerMove);
190
+ window.removeEventListener('pointerup', this.onBackgroundPointerUp);
191
+ window.removeEventListener('pointercancel', this.onBackgroundPointerUp);
192
+ window.removeEventListener('lostpointercapture', this.onBackgroundPointerUp);
193
+ };
194
+ this.onViewportKeyDown = (e) => {
195
+ // Roving node/edge navigation is bound on each item individually and stops propagation, so
196
+ // this only ever fires when the viewport region itself has focus.
197
+ if (e.target !== this.viewportEl || this.locked)
198
+ return;
199
+ if (e.key === '+' || e.key === '=') {
200
+ e.preventDefault();
201
+ this.zoomIn();
202
+ }
203
+ else if (e.key === '-' || e.key === '_') {
204
+ e.preventDefault();
205
+ this.zoomOut();
206
+ }
207
+ else if (e.key === '0') {
208
+ e.preventDefault();
209
+ this.resetZoom();
210
+ }
211
+ else if (e.key === 'ArrowRight') {
212
+ e.preventDefault();
213
+ this.panBy(-KEYBOARD_PAN_STEP, 0);
214
+ }
215
+ else if (e.key === 'ArrowLeft') {
216
+ e.preventDefault();
217
+ this.panBy(KEYBOARD_PAN_STEP, 0);
218
+ }
219
+ else if (e.key === 'ArrowDown') {
220
+ e.preventDefault();
221
+ this.panBy(0, -KEYBOARD_PAN_STEP);
222
+ }
223
+ else if (e.key === 'ArrowUp') {
224
+ e.preventDefault();
225
+ this.panBy(0, KEYBOARD_PAN_STEP);
226
+ }
227
+ };
228
+ // ---------------------------------------------------------------------
229
+ // Droppable (palette drop handshake)
230
+ // ---------------------------------------------------------------------
231
+ this.onViewportDragOver = (e) => {
232
+ if (!this.droppable || this.locked)
233
+ return;
234
+ if (!e.dataTransfer?.types.includes(FLOW_PALETTE_MIME_TYPE))
235
+ return;
236
+ e.preventDefault();
237
+ e.dataTransfer.dropEffect = 'copy';
238
+ this.viewportEl?.setAttribute('data-drop-active', '');
239
+ };
240
+ this.onViewportDragLeave = () => {
241
+ this.viewportEl?.removeAttribute('data-drop-active');
242
+ };
243
+ this.onViewportDrop = (e) => {
244
+ this.viewportEl?.removeAttribute('data-drop-active');
245
+ if (!this.droppable || this.locked)
246
+ return;
247
+ const raw = e.dataTransfer?.getData(FLOW_PALETTE_MIME_TYPE);
248
+ if (!raw)
249
+ return;
250
+ e.preventDefault();
251
+ let payload;
252
+ try {
253
+ payload = JSON.parse(raw);
254
+ }
255
+ catch {
256
+ return;
257
+ }
258
+ if (!payload.type)
259
+ return;
260
+ const contentPoint = this.toContentPoint(e.clientX, e.clientY);
261
+ this.emit('lyra-node-add', {
262
+ type: payload.type,
263
+ position: { x: this.snap(contentPoint.x), y: this.snap(contentPoint.y) },
264
+ });
265
+ };
266
+ this.onNodePointerMove = (e) => {
267
+ const drag = this.nodeDrag;
268
+ if (!drag || e.pointerId !== drag.pointerId)
269
+ return;
270
+ const dx = ((e.clientX - drag.startClientX) * drag.rtlFlip) / this.zoomLevel;
271
+ const dy = (e.clientY - drag.startClientY) / this.zoomLevel;
272
+ const x = this.snap(drag.startX + dx);
273
+ const y = this.snap(drag.startY + dy);
274
+ drag.wrapper.style.transform = `translate(${x}px, ${y}px)`;
275
+ this.updateIncidentEdges(drag.nodeId, x, y);
276
+ drag.currentX = x;
277
+ drag.currentY = y;
278
+ };
279
+ this.onNodePointerUp = (e) => {
280
+ const drag = this.nodeDrag;
281
+ if (!drag || e.pointerId !== drag.pointerId)
282
+ return;
283
+ this.nodeDrag = undefined;
284
+ this.dragEdgeRefs = undefined;
285
+ window.removeEventListener('pointermove', this.onNodePointerMove);
286
+ window.removeEventListener('pointerup', this.onNodePointerUp);
287
+ window.removeEventListener('pointercancel', this.onNodePointerUp);
288
+ window.removeEventListener('lostpointercapture', this.onNodePointerUp);
289
+ const previous = { x: drag.startX, y: drag.startY };
290
+ const position = { x: drag.currentX ?? drag.startX, y: drag.currentY ?? drag.startY };
291
+ if (position.x !== previous.x || position.y !== previous.y) {
292
+ this.emit('lyra-node-move', { id: drag.nodeId, position, previous });
293
+ }
294
+ // `requestUpdate()` alone cannot snap the wrapper back when the host doesn't apply the move
295
+ // (or applies the identical position) -- Lit's AttributePart dirty-checks the *interpolated
296
+ // string* against what Lit itself last committed, and that string is unchanged from the
297
+ // pre-drag render (the imperative `drag.wrapper.style.transform = ...` writes during the drag
298
+ // never went through Lit, so Lit's cached value was never invalidated). A re-render therefore
299
+ // skips rewriting this exact attribute, leaving the mid-drag transform stuck. Writing the
300
+ // reset transform directly (looked up fresh by id, in case a synchronous host listener already
301
+ // applied a new position) fixes the visible state immediately regardless of Lit's diffing.
302
+ const resetNode = this.nodes.find((n) => n.id === drag.nodeId);
303
+ const resetPos = resetNode ? this.nodePosition(resetNode) : previous;
304
+ drag.wrapper.style.transform = `translate(${resetPos.x}px, ${resetPos.y}px)`;
305
+ this.requestUpdate();
306
+ };
307
+ this.onWorldPointerDown = (e) => {
308
+ if (!this.connectable || this.locked || this.connectState)
309
+ return;
310
+ const path = e.composedPath();
311
+ const handleEl = path.find((el) => el instanceof HTMLElement && el.dataset.handleKind === 'output');
312
+ if (!handleEl)
313
+ return;
314
+ const nodeId = this.nodeIdFromComposedPath(path);
315
+ const handleId = handleEl.dataset.handleId;
316
+ if (!nodeId || !handleId)
317
+ return;
318
+ e.stopPropagation();
319
+ this.startConnectGesture(nodeId, handleId, e.clientX, e.clientY);
320
+ };
321
+ this.onConnectPointerMove = (e) => {
322
+ if (!this.connectState)
323
+ return;
324
+ const targetPt = this.connectContentPoint(e.clientX, e.clientY);
325
+ this.connectionLineEl?.setAttribute('d', this.edgePathD(this.connectState.startPt, targetPt));
326
+ const hoveredId = this.nodeIdFromComposedPath(e.composedPath());
327
+ const invalid = hoveredId != null && this.isInvalidConnectTarget(hoveredId);
328
+ if (this.connectInvalidNodeId && this.connectInvalidNodeId !== (invalid ? hoveredId : null)) {
329
+ this.renderRoot.querySelector(`[data-node-id="${CSS.escape(this.connectInvalidNodeId)}"]`)?.removeAttribute('data-connect-invalid');
330
+ }
331
+ this.connectInvalidNodeId = invalid ? hoveredId : null;
332
+ if (invalid) {
333
+ this.renderRoot.querySelector(`[data-node-id="${CSS.escape(hoveredId)}"]`)?.setAttribute('data-connect-invalid', '');
334
+ }
335
+ };
336
+ this.onConnectPointerUp = (e) => {
337
+ if (!this.connectState)
338
+ return;
339
+ const state = this.connectState;
340
+ const path = e.composedPath();
341
+ const targetNodeId = this.nodeIdFromComposedPath(path);
342
+ this.endConnectGesture();
343
+ if (!targetNodeId || this.isInvalidConnectTargetFor(state, targetNodeId)) {
344
+ this.announcer.announce(this.localize('flowConnectCancelled'));
345
+ return;
346
+ }
347
+ const handleEl = path.find((el) => el instanceof HTMLElement && el.dataset.handleKind === 'input');
348
+ const targetHandle = handleEl?.dataset.handleId ?? 'in';
349
+ this.emit('lyra-connect', { source: state.sourceId, target: targetNodeId, sourceHandle: state.sourceHandle, targetHandle });
350
+ this.announcer.announce(this.localize('flowConnectCommitted', undefined, { source: state.sourceId, target: targetNodeId }));
351
+ };
352
+ /** Ends the gesture without committing -- pointercancel/lostpointercapture mean the pointer
353
+ * stream is gone, so there is no release target to connect to. */
354
+ this.onConnectPointerCancel = () => {
355
+ if (!this.connectState)
356
+ return;
357
+ this.endConnectGesture();
358
+ this.announcer.announce(this.localize('flowConnectCancelled'));
359
+ };
360
+ }
361
+ static { this.styles = [LyraElement.styles, styles, srOnly]; }
362
+ /** `minZoom`/`maxZoom` normalized to finite, positive scale bounds before ever reaching
363
+ * `clampZoom()`'s `Math.min`/`Math.max` — an invalid attribute value would otherwise poison
364
+ * every zoom/pan computation (`viewport.zoom`, the world layer's `scale(...)` transform) with
365
+ * `NaN`, which the browser silently drops as invalid CSS rather than surfacing as an error. */
366
+ get safeMinZoom() {
367
+ return finiteRange(this.minZoom, 0.25, 0.001, 1000);
368
+ }
369
+ get safeMaxZoom() {
370
+ return finiteRange(this.maxZoom, 2, 0.001, 1000);
371
+ }
372
+ /** `grid` normalized to a finite, non-negative snap increment — `0` still means "no snapping"
373
+ * (see `snap()`), but a negative/non-finite value can no longer reach the `value / this.grid`
374
+ * division in `snap()`/`nudgeNode()`, nor the `--lyra-flow-canvas-grid-size` custom property. */
375
+ get safeGrid() {
376
+ return finiteRange(this.grid, 8, 0);
377
+ }
378
+ /** `layerGap`/`nodeGap` normalized to finite, non-negative pixel gaps before reaching
379
+ * `layeredLayout()`'s `gapY`/`gapX` — an invalid value would otherwise flow into every
380
+ * auto-laid-out node's computed position, producing a `NaN` `translate(...)` that silently
381
+ * renders the card nowhere instead of at a real position. */
382
+ get safeLayerGap() {
383
+ return finiteRange(this.layerGap, 64, 0);
384
+ }
385
+ get safeNodeGap() {
386
+ return finiteRange(this.nodeGap, 24, 0);
387
+ }
388
+ connectedCallback() {
389
+ super.connectedCallback();
390
+ this.resizeObserver = new ResizeObserver((entries) => this.onNodesResized(entries));
391
+ // updated() only runs on renders -- a disconnect/reconnect (e.g. a reparenting move) that
392
+ // changes no reactive property never triggers one, which would leave every already-rendered
393
+ // wrapper unwatched by the freshly created observer above, so re-observe directly here.
394
+ if (this.hasUpdated)
395
+ this.observeNodeWrappers();
396
+ }
397
+ disconnectedCallback() {
398
+ super.disconnectedCallback();
399
+ this.resizeObserver?.disconnect();
400
+ this.resizeObserver = undefined;
401
+ this.observedNodeEls.clear();
402
+ if (this.layoutRaf != null) {
403
+ cancelAnimationFrame(this.layoutRaf);
404
+ this.layoutRaf = null;
405
+ }
406
+ if (this.companionRaf != null) {
407
+ cancelAnimationFrame(this.companionRaf);
408
+ this.companionRaf = null;
409
+ }
410
+ if (this.viewportChangeRaf != null) {
411
+ cancelAnimationFrame(this.viewportChangeRaf);
412
+ this.viewportChangeRaf = null;
413
+ }
414
+ if (this.wheelMeasureRaf != null) {
415
+ cancelAnimationFrame(this.wheelMeasureRaf);
416
+ this.wheelMeasureRaf = null;
417
+ this.wheelMeasure = null;
418
+ }
419
+ // An in-flight pan/node-drag/connect gesture holds window-level listeners; if the element is
420
+ // removed mid-gesture nothing else ever detaches them, and a later unrelated pointerup would
421
+ // fire against a detached tree with stale gesture state.
422
+ this.panDrag = undefined;
423
+ window.removeEventListener('pointermove', this.onBackgroundPointerMove);
424
+ window.removeEventListener('pointerup', this.onBackgroundPointerUp);
425
+ window.removeEventListener('pointercancel', this.onBackgroundPointerUp);
426
+ window.removeEventListener('lostpointercapture', this.onBackgroundPointerUp);
427
+ this.nodeDrag = undefined;
428
+ this.dragEdgeRefs = undefined;
429
+ window.removeEventListener('pointermove', this.onNodePointerMove);
430
+ window.removeEventListener('pointerup', this.onNodePointerUp);
431
+ window.removeEventListener('pointercancel', this.onNodePointerUp);
432
+ window.removeEventListener('lostpointercapture', this.onNodePointerUp);
433
+ this.connectState = undefined;
434
+ this.connecting = false;
435
+ this.connectInvalidNodeId = null;
436
+ window.removeEventListener('pointermove', this.onConnectPointerMove);
437
+ window.removeEventListener('pointerup', this.onConnectPointerUp);
438
+ window.removeEventListener('pointercancel', this.onConnectPointerCancel);
439
+ window.removeEventListener('lostpointercapture', this.onConnectPointerCancel);
440
+ }
441
+ /** Observes every node wrapper not yet tracked by the current `ResizeObserver` instance. The
442
+ * tracking set is cleared alongside the observer itself in `disconnectedCallback()`, so a
443
+ * reconnect re-observes each wrapper with the freshly created observer instead of treating it
444
+ * as already watched. */
445
+ observeNodeWrappers() {
446
+ for (const el of Array.from(this.renderRoot.querySelectorAll('[part="node"]'))) {
447
+ if (!this.observedNodeEls.has(el)) {
448
+ this.observedNodeEls.add(el);
449
+ this.resizeObserver?.observe(el);
450
+ }
451
+ }
452
+ }
453
+ shouldUpdate(changed) {
454
+ if (this.hasUpdated && changed.size === 1 && changed.has('decorations')) {
455
+ this.pushCardPropsAll(changed);
456
+ this.pushEdgeDecorationPropsAll();
457
+ this.scheduleCompanionNotify();
458
+ return false;
459
+ }
460
+ return true;
461
+ }
462
+ willUpdate(changed) {
463
+ if (changed.has('nodes')) {
464
+ this.syncDefaultCards();
465
+ }
466
+ if (changed.has('nodes') || changed.has('selectedNodeIds') || changed.has('decorations')) {
467
+ this.pushCardPropsAll(changed);
468
+ }
469
+ }
470
+ updated(changed) {
471
+ if (changed.has('edges'))
472
+ this.rebuildIncidentEdgesIndex();
473
+ if (changed.has('nodes') || changed.has('edges')) {
474
+ this.runAutoLayoutIfNeeded();
475
+ this.scheduleCompanionNotify();
476
+ }
477
+ if (changed.has('decorations'))
478
+ this.scheduleCompanionNotify();
479
+ this.observeNodeWrappers();
480
+ const viewportEl = this.renderRoot.querySelector('[part="viewport"]');
481
+ if (viewportEl && viewportEl !== this.viewportEl) {
482
+ this.viewportEl = viewportEl;
483
+ this.worldEl = this.renderRoot.querySelector('.world');
484
+ viewportEl.addEventListener('wheel', this.onWheel, { passive: false });
485
+ viewportEl.addEventListener('keydown', this.onViewportKeyDown);
486
+ viewportEl.addEventListener('dragover', this.onViewportDragOver);
487
+ viewportEl.addEventListener('dragleave', this.onViewportDragLeave);
488
+ viewportEl.addEventListener('drop', this.onViewportDrop);
489
+ this.applyWorldTransform();
490
+ }
491
+ }
492
+ // ---------------------------------------------------------------------
493
+ // Card adoption / prop-push
494
+ // ---------------------------------------------------------------------
495
+ /** By-`node-id` reconciliation of light-DOM children: a user-authored child gets `slot="node-{id}"`
496
+ * set on it; a data node with no matching light-DOM child gets a default `<lyra-flow-node>`
497
+ * created and appended (marked `data-flow-canvas-default-card` so it — and only it — is removed
498
+ * again once its node id disappears). Mirrors `lyra-tree`'s `syncNodes()` by-id reconciliation. A
499
+ * light-DOM child whose `node-id` matches no current node is left in place with no `slot` (renders
500
+ * nowhere) and a console warning, exactly like an unrecognized top-level child of any other
501
+ * slot-adopting component in this library. */
502
+ syncDefaultCards() {
503
+ const ids = new Set(this.nodes.map((n) => n.id));
504
+ const byNodeId = new Map();
505
+ for (const child of Array.from(this.children)) {
506
+ const nodeId = child.getAttribute('node-id');
507
+ if (!nodeId)
508
+ continue;
509
+ byNodeId.set(nodeId, child);
510
+ if (ids.has(nodeId)) {
511
+ child.setAttribute('slot', `node-${nodeId}`);
512
+ }
513
+ else {
514
+ child.removeAttribute('slot');
515
+ console.warn(`<lyra-flow-canvas> a child with node-id="${nodeId}" matches no entry in \`nodes\`; it will not render.`);
516
+ }
517
+ }
518
+ for (const [nodeId, child] of byNodeId) {
519
+ if (!ids.has(nodeId) && child.hasAttribute('data-flow-canvas-default-card')) {
520
+ child.remove();
521
+ byNodeId.delete(nodeId);
522
+ }
523
+ }
524
+ for (const node of this.nodes) {
525
+ if (byNodeId.has(node.id))
526
+ continue;
527
+ const card = document.createElement(tag('flow-node'));
528
+ card.setAttribute('node-id', node.id);
529
+ card.setAttribute('data-flow-canvas-default-card', '');
530
+ card.setAttribute('slot', `node-${node.id}`);
531
+ card.nodeId = node.id;
532
+ card.heading = typeof node.data?.label === 'string' ? node.data.label : node.id;
533
+ if (typeof node.data?.description === 'string')
534
+ card.textContent = node.data.description;
535
+ this.appendChild(card);
536
+ }
537
+ }
538
+ /** Pushes changed node/selection/decoration state onto every currently-adopted card (default or
539
+ * user-authored) so handles and run paint always match the model, regardless of which slot
540
+ * mechanism produced the card. Indexing the direct children once avoids a full descendant
541
+ * selector scan for every node in large flows. */
542
+ pushCardPropsAll(changed) {
543
+ const nodesChanged = changed.has('nodes');
544
+ const selectionChanged = nodesChanged || changed.has('selectedNodeIds');
545
+ const decorationsChanged = nodesChanged || changed.has('decorations');
546
+ const cardsByNodeId = new Map();
547
+ for (const child of Array.from(this.children)) {
548
+ const nodeId = child.getAttribute('node-id');
549
+ if (nodeId)
550
+ cardsByNodeId.set(nodeId, child);
551
+ }
552
+ const selectedNodeIds = selectionChanged ? new Set(this.selectedNodeIds) : null;
553
+ for (const node of this.nodes) {
554
+ const el = cardsByNodeId.get(node.id);
555
+ if (!el)
556
+ continue;
557
+ if (nodesChanged) {
558
+ el.inputs = node.inputs ?? [{ id: 'in' }];
559
+ el.outputs = node.outputs ?? [{ id: 'out' }];
560
+ }
561
+ if (selectedNodeIds)
562
+ el.selected = selectedNodeIds.has(node.id);
563
+ if (decorationsChanged) {
564
+ const decoration = this.decorations?.[node.id];
565
+ el.status = decoration?.status ?? null;
566
+ el.progress = decoration?.progress ?? null;
567
+ el.statusDetail = decoration?.detail ?? '';
568
+ el.durationMs = decoration?.durationMs ?? null;
569
+ }
570
+ }
571
+ }
572
+ /** Updates decoration-derived edge attributes without rebuilding the full edge/node template. */
573
+ pushEdgeDecorationPropsAll() {
574
+ const edgesById = new Map(this.edges.map((edge) => [edge.id, edge]));
575
+ const reducedMotion = prefersReducedMotion();
576
+ for (const group of Array.from(this.renderRoot.querySelectorAll('[data-edge-id]'))) {
577
+ const edge = edgesById.get(group.dataset.edgeId ?? '');
578
+ const path = group.querySelector('[part="edge"]');
579
+ if (!edge || !path)
580
+ continue;
581
+ const running = this.edgeIsRunning(edge);
582
+ path.setAttribute('data-tone', this.edgeTone(edge));
583
+ path.toggleAttribute('data-running', running && !reducedMotion);
584
+ path.toggleAttribute('data-running-static', running && reducedMotion);
585
+ }
586
+ }
587
+ // ---------------------------------------------------------------------
588
+ // Geometry helpers
589
+ // ---------------------------------------------------------------------
590
+ nodePosition(node) {
591
+ return node.position ?? this.autoPositions.get(node.id) ?? { x: 0, y: 0 };
592
+ }
593
+ nodeSize(id) {
594
+ return this.measuredSizes.get(id) ?? { width: 176, height: 64 }; // 11rem/4rem @ 16px, pre-measure fallback
595
+ }
596
+ resolvedNode(node) {
597
+ const pos = this.nodePosition(node);
598
+ const size = this.nodeSize(node.id);
599
+ return { node, x: pos.x, y: pos.y, width: size.width, height: size.height };
600
+ }
601
+ /** Evenly distributes `count` handles along a `span`-px edge (index 0-based) — matches
602
+ * `justify-content: space-around` so `lyra-flow-node`'s handle-column CSS lines up with this
603
+ * exactly. */
604
+ handleOffset(count, index, span) {
605
+ return count <= 1 ? span / 2 : (span * (index + 0.5)) / count;
606
+ }
607
+ handlePoint(resolved, kind, handleId) {
608
+ const handles = kind === 'input' ? (resolved.node.inputs ?? [{ id: 'in' }]) : (resolved.node.outputs ?? [{ id: 'out' }]);
609
+ const index = handles.findIndex((h) => h.id === handleId);
610
+ const horizontal = this.orientation === 'horizontal';
611
+ const edgeSpan = horizontal ? resolved.height : resolved.width;
612
+ const offset = index >= 0 ? this.handleOffset(handles.length, index, edgeSpan) : edgeSpan / 2;
613
+ if (horizontal) {
614
+ const x = kind === 'input' ? resolved.x : resolved.x + resolved.width;
615
+ return { x, y: resolved.y + offset };
616
+ }
617
+ const y = kind === 'input' ? resolved.y : resolved.y + resolved.height;
618
+ return { x: resolved.x + offset, y };
619
+ }
620
+ edgePathD(sourcePt, targetPt) {
621
+ const dx = targetPt.x - sourcePt.x;
622
+ const dy = targetPt.y - sourcePt.y;
623
+ const distance = Math.hypot(dx, dy);
624
+ const offset = Math.min(CONNECT_OFFSET_MAX, Math.max(CONNECT_OFFSET_MIN, distance / 2));
625
+ const horizontal = this.orientation === 'horizontal';
626
+ const c1x = sourcePt.x + (horizontal ? offset : 0);
627
+ const c1y = sourcePt.y + (horizontal ? 0 : offset);
628
+ const c2x = targetPt.x - (horizontal ? offset : 0);
629
+ const c2y = targetPt.y - (horizontal ? 0 : offset);
630
+ return `M ${sourcePt.x} ${sourcePt.y} C ${c1x} ${c1y}, ${c2x} ${c2y}, ${targetPt.x} ${targetPt.y}`;
631
+ }
632
+ nodeAccessibleText(node) {
633
+ if (node.accessibleLabel)
634
+ return node.accessibleLabel;
635
+ const label = typeof node.data?.label === 'string' ? node.data.label : node.id;
636
+ return this.localize('flowNode', undefined, { label });
637
+ }
638
+ edgeAccessibleText(edge) {
639
+ const sourceNode = this.nodes.find((n) => n.id === edge.source);
640
+ const targetNode = this.nodes.find((n) => n.id === edge.target);
641
+ const source = sourceNode ? this.nodeAccessibleText(sourceNode) : edge.source;
642
+ const target = targetNode ? this.nodeAccessibleText(targetNode) : edge.target;
643
+ return edge.label
644
+ ? this.localize('flowEdgeWithLabel', undefined, { label: edge.label, source, target })
645
+ : this.localize('flowEdge', undefined, { source, target });
646
+ }
647
+ // ---------------------------------------------------------------------
648
+ // Auto-layout
649
+ // ---------------------------------------------------------------------
650
+ onNodesResized(entries) {
651
+ let changedAny = false;
652
+ for (const entry of entries) {
653
+ const id = entry.target.dataset.nodeId;
654
+ if (!id)
655
+ continue;
656
+ const box = entry.borderBoxSize?.[0];
657
+ const width = box ? box.inlineSize : entry.contentRect.width;
658
+ const height = box ? box.blockSize : entry.contentRect.height;
659
+ const prev = this.measuredSizes.get(id);
660
+ if (!prev || prev.width !== width || prev.height !== height) {
661
+ this.measuredSizes.set(id, { width, height });
662
+ changedAny = true;
663
+ }
664
+ }
665
+ if (changedAny) {
666
+ this.scheduleLayoutPass();
667
+ this.scheduleCompanionNotify();
668
+ }
669
+ }
670
+ scheduleLayoutPass() {
671
+ if (this.layoutRaf != null)
672
+ return;
673
+ this.layoutRaf = requestAnimationFrame(() => {
674
+ this.layoutRaf = null;
675
+ this.runAutoLayoutIfNeeded();
676
+ this.requestUpdate();
677
+ if (!this.hasFitOnce && this.nodes.length > 0) {
678
+ this.hasFitOnce = true;
679
+ this.fit();
680
+ }
681
+ });
682
+ }
683
+ /** Lays out every node currently missing an explicit `position`, leaving explicitly-positioned
684
+ * nodes exactly as given (routed through as `fixedPositions` so the shared util lays out around
685
+ * them). A no-op when every node already has a `position`.
686
+ *
687
+ * Axis mapping: `../../internal/layered-layout.ts` assigns coordinates top -> bottom (block
688
+ * axis), left -> right within a layer -- i.e. its `y` is the layer/downstream axis and its `x`
689
+ * is the in-layer sibling axis. `swap` below reconciles that frame with this canvas's: canvas
690
+ * `orientation="vertical"` (downstream = y) already matches the util's native frame directly,
691
+ * so only `orientation="horizontal"` (downstream = x) needs both axes swapped when talking to
692
+ * the util, and `gapX`/`gapY` are always passed as `nodeGap`/`layerGap` respectively (never
693
+ * swapped) since those map to the util's own fixed sibling/layer axes regardless of how the
694
+ * *result* is later remapped into canvas space. The util also returns raw box centers, whereas
695
+ * this canvas's own `position` convention (see `render()`'s `translate(x,y)` and
696
+ * `[part='node']`'s `inset-block-start/inline-start: 0`) is a top-left corner -- `nodeSize()`
697
+ * is used to convert between the two in both directions (`fixedPositions` in, the returned map
698
+ * out). */
699
+ runAutoLayoutIfNeeded() {
700
+ const unpositioned = this.nodes.filter((n) => !n.position);
701
+ if (unpositioned.length === 0)
702
+ return;
703
+ const swap = this.orientation === 'horizontal';
704
+ const graphNodes = this.nodes.map((n) => {
705
+ const size = this.nodeSize(n.id);
706
+ return { id: n.id, width: swap ? size.height : size.width, height: swap ? size.width : size.height };
707
+ });
708
+ const nodeIds = new Set(this.nodes.map((n) => n.id));
709
+ const graphEdges = this.edges
710
+ .filter((e) => nodeIds.has(e.source) && nodeIds.has(e.target))
711
+ .map((e) => ({ source: e.source, target: e.target }));
712
+ const fixedPositions = new Map();
713
+ for (const n of this.nodes) {
714
+ if (!n.position)
715
+ continue;
716
+ const size = this.nodeSize(n.id);
717
+ const center = { x: n.position.x + size.width / 2, y: n.position.y + size.height / 2 };
718
+ fixedPositions.set(n.id, swap ? { x: center.y, y: center.x } : center);
719
+ }
720
+ const result = layeredLayout({
721
+ nodes: graphNodes,
722
+ edges: graphEdges,
723
+ options: { gapX: this.safeNodeGap, gapY: this.safeLayerGap, fixedPositions },
724
+ });
725
+ const positions = {};
726
+ for (const n of unpositioned) {
727
+ const raw = result.get(n.id);
728
+ if (!raw)
729
+ continue;
730
+ const center = swap ? { x: raw.y, y: raw.x } : { x: raw.x, y: raw.y };
731
+ const size = this.nodeSize(n.id);
732
+ const resolved = { x: center.x - size.width / 2, y: center.y - size.height / 2 };
733
+ this.autoPositions.set(n.id, resolved);
734
+ positions[n.id] = resolved;
735
+ }
736
+ if (Object.keys(positions).length > 0)
737
+ this.emit('lyra-layout-change', { positions });
738
+ }
739
+ // ---------------------------------------------------------------------
740
+ // Pan / zoom / viewport
741
+ // ---------------------------------------------------------------------
742
+ get viewport() {
743
+ return { x: this.panX, y: this.panY, zoom: this.zoomLevel };
744
+ }
745
+ setViewport(next) {
746
+ this.panX = next.x;
747
+ this.panY = next.y;
748
+ this.zoomLevel = this.clampZoom(next.zoom);
749
+ this.applyWorldTransform();
750
+ this.emit('lyra-viewport-change', { x: this.panX, y: this.panY, zoom: this.zoomLevel });
751
+ }
752
+ fit(options) {
753
+ if (this.nodes.length === 0)
754
+ return;
755
+ const padding = options?.padding ?? DEFAULT_FIT_PADDING;
756
+ let minX = Infinity;
757
+ let minY = Infinity;
758
+ let maxX = -Infinity;
759
+ let maxY = -Infinity;
760
+ for (const node of this.nodes) {
761
+ const resolved = this.resolvedNode(node);
762
+ minX = Math.min(minX, resolved.x);
763
+ minY = Math.min(minY, resolved.y);
764
+ maxX = Math.max(maxX, resolved.x + resolved.width);
765
+ maxY = Math.max(maxY, resolved.y + resolved.height);
766
+ }
767
+ const rect = this.viewportEl?.getBoundingClientRect();
768
+ const viewW = rect?.width ?? 0;
769
+ const viewH = rect?.height ?? 0;
770
+ const contentW = Math.max(1, maxX - minX);
771
+ const contentH = Math.max(1, maxY - minY);
772
+ const fitZoom = Math.min((viewW - padding * 2) / contentW, (viewH - padding * 2) / contentH);
773
+ const zoom = this.clampZoom(Number.isFinite(fitZoom) && fitZoom > 0 ? fitZoom : 1);
774
+ this.panX = viewW / 2 - (minX + contentW / 2) * zoom;
775
+ this.panY = viewH / 2 - (minY + contentH / 2) * zoom;
776
+ this.zoomLevel = zoom;
777
+ this.applyWorldTransform();
778
+ this.scheduleViewportChange();
779
+ }
780
+ focusNode(id, options) {
781
+ const node = this.nodes.find((n) => n.id === id);
782
+ if (!node)
783
+ return;
784
+ const resolved = this.resolvedNode(node);
785
+ const rect = this.viewportEl?.getBoundingClientRect();
786
+ const viewW = rect?.width ?? 0;
787
+ const viewH = rect?.height ?? 0;
788
+ const zoom = options?.zoom != null ? this.clampZoom(options.zoom) : this.zoomLevel;
789
+ this.panX = viewW / 2 - (resolved.x + resolved.width / 2) * zoom;
790
+ this.panY = viewH / 2 - (resolved.y + resolved.height / 2) * zoom;
791
+ this.zoomLevel = zoom;
792
+ this.applyWorldTransform();
793
+ this.scheduleViewportChange();
794
+ this.focusActiveItem(this.spatialItemIndex('node', id));
795
+ }
796
+ toContentPoint(clientX, clientY) {
797
+ const rect = this.viewportEl?.getBoundingClientRect();
798
+ if (!rect)
799
+ return { x: 0, y: 0 };
800
+ const localX = this.localWorldX(clientX, rect);
801
+ const localY = clientY - rect.top;
802
+ return { x: (localX - this.panX) / this.zoomLevel, y: (localY - this.panY) / this.zoomLevel };
803
+ }
804
+ registerCompanion(cb) {
805
+ this.companionCallbacks.add(cb);
806
+ this.scheduleCompanionNotify();
807
+ return () => {
808
+ this.companionCallbacks.delete(cb);
809
+ };
810
+ }
811
+ scheduleCompanionNotify() {
812
+ if (this.companionRaf != null || this.companionCallbacks.size === 0)
813
+ return;
814
+ this.companionRaf = requestAnimationFrame(() => {
815
+ this.companionRaf = null;
816
+ const snapshot = this.buildSnapshot();
817
+ for (const cb of this.companionCallbacks)
818
+ cb(snapshot);
819
+ });
820
+ }
821
+ buildSnapshot() {
822
+ const rect = this.viewportEl?.getBoundingClientRect();
823
+ return {
824
+ nodes: this.nodes.map((n) => {
825
+ const resolved = this.resolvedNode(n);
826
+ return {
827
+ id: n.id,
828
+ x: resolved.x,
829
+ y: resolved.y,
830
+ width: resolved.width,
831
+ height: resolved.height,
832
+ status: this.decorations?.[n.id]?.status,
833
+ };
834
+ }),
835
+ edges: this.edges.map((e) => ({ id: e.id, source: e.source, target: e.target, status: this.decorations?.[e.id]?.status })),
836
+ viewport: { x: this.panX, y: this.panY, zoom: this.zoomLevel, width: rect?.width ?? 0, height: rect?.height ?? 0 },
837
+ };
838
+ }
839
+ clampZoom(z) {
840
+ return Math.min(this.safeMaxZoom, Math.max(this.safeMinZoom, z));
841
+ }
842
+ applyWorldTransform() {
843
+ if (this.worldEl)
844
+ this.worldEl.style.transform = `translate(${this.panX}px, ${this.panY}px) scale(${this.zoomLevel})`;
845
+ this.scheduleCompanionNotify();
846
+ }
847
+ scheduleViewportChange() {
848
+ if (this.viewportChangeRaf != null)
849
+ return;
850
+ this.viewportChangeRaf = requestAnimationFrame(() => {
851
+ this.viewportChangeRaf = null;
852
+ this.emit('lyra-viewport-change', { x: this.panX, y: this.panY, zoom: this.zoomLevel });
853
+ });
854
+ }
855
+ zoomAtCenter(nextZoom) {
856
+ const rect = this.viewportEl?.getBoundingClientRect();
857
+ this.zoomAtPoint(rect ? rect.width / 2 : 0, rect ? rect.height / 2 : 0, nextZoom);
858
+ }
859
+ /** Keeps the content point currently under `(localX, localY)` stationary on screen while zooming
860
+ * -- `localX`/`localY` are already pre-mirror world-local coordinates (see `localWorldX()`). */
861
+ zoomAtPoint(localX, localY, nextZoom) {
862
+ const clamped = this.clampZoom(nextZoom);
863
+ if (clamped === this.zoomLevel)
864
+ return;
865
+ const contentX = (localX - this.panX) / this.zoomLevel;
866
+ const contentY = (localY - this.panY) / this.zoomLevel;
867
+ this.panX = localX - contentX * clamped;
868
+ this.panY = localY - contentY * clamped;
869
+ this.zoomLevel = clamped;
870
+ this.applyWorldTransform();
871
+ this.scheduleViewportChange();
872
+ }
873
+ /** The one place RTL needs consulting for pan/zoom: converts a raw pointer `clientX` to this
874
+ * canvas's pre-mirror world-local X. Every other pan/zoom/drag calculation stays in plain
875
+ * physical coordinates because `[part='viewport']`'s own CSS mirrors the whole `.world` layer
876
+ * under RTL; panning/zoom math never needs to know about RTL beyond this one conversion. */
877
+ localWorldX(clientX, rect, rtl = isRtl(this)) {
878
+ const local = clientX - rect.left;
879
+ return this.orientation === 'horizontal' && rtl ? rect.width - local : local;
880
+ }
881
+ panBy(dx, dy) {
882
+ this.panX += dx;
883
+ this.panY += dy;
884
+ this.applyWorldTransform();
885
+ this.scheduleViewportChange();
886
+ }
887
+ // ---------------------------------------------------------------------
888
+ // Selection, activation, roving focus
889
+ // ---------------------------------------------------------------------
890
+ spatialNodeOrder() {
891
+ const horizontal = this.orientation === 'horizontal';
892
+ return [...this.nodes].sort((a, b) => {
893
+ const pa = this.resolvedNode(a);
894
+ const pb = this.resolvedNode(b);
895
+ const mainA = horizontal ? pa.x : pa.y;
896
+ const mainB = horizontal ? pb.x : pb.y;
897
+ if (mainA !== mainB)
898
+ return mainA - mainB;
899
+ const crossA = horizontal ? pa.y : pa.x;
900
+ const crossB = horizontal ? pb.y : pb.x;
901
+ return crossA - crossB;
902
+ });
903
+ }
904
+ /** Edges `renderEdges()` actually draws a focusable `[part="edge"]` path for -- a missing source
905
+ * node drops the edge entirely and a missing target renders a non-focusable dangling stub, so
906
+ * neither has a roving-nav element to land on. Excluding both here keeps roving indices/count in
907
+ * sync with what's really focusable in the DOM. */
908
+ focusableEdges() {
909
+ const nodeIds = new Set(this.nodes.map((n) => n.id));
910
+ return this.edges.filter((e) => nodeIds.has(e.source) && nodeIds.has(e.target));
911
+ }
912
+ rovingItems() {
913
+ return [
914
+ ...this.spatialNodeOrder().map((n) => ({ kind: 'node', id: n.id })),
915
+ ...this.focusableEdges().map((e) => ({ kind: 'edge', id: e.id })),
916
+ ];
917
+ }
918
+ itemCount() {
919
+ return this.nodes.length + this.focusableEdges().length;
920
+ }
921
+ normalizedItemIndex(index = this.activeItemIndex) {
922
+ const count = this.itemCount();
923
+ return count ? Math.min(Math.max(index, 0), count - 1) : -1;
924
+ }
925
+ itemAccessibleText(item) {
926
+ if (item.kind === 'node') {
927
+ const node = this.nodes.find((n) => n.id === item.id);
928
+ return node ? this.nodeAccessibleText(node) : '';
929
+ }
930
+ const edge = this.edges.find((e) => e.id === item.id);
931
+ return edge ? this.edgeAccessibleText(edge) : '';
932
+ }
933
+ spatialItemIndex(kind, id) {
934
+ return this.rovingItems().findIndex((it) => it.kind === kind && it.id === id);
935
+ }
936
+ announceItem(index) {
937
+ const item = this.rovingItems()[index];
938
+ if (!item)
939
+ return;
940
+ this.announcer.announce(this.localize('flowItemAnnouncement', undefined, {
941
+ item: this.itemAccessibleText(item),
942
+ index: index + 1,
943
+ total: this.itemCount(),
944
+ }));
945
+ }
946
+ onItemFocus(index) {
947
+ if (this.normalizedItemIndex(index) < 0)
948
+ return;
949
+ this.activeItemIndex = index;
950
+ this.announceItem(index);
951
+ }
952
+ focusActiveItem(index = this.activeItemIndex) {
953
+ const normalized = this.normalizedItemIndex(index);
954
+ if (normalized < 0)
955
+ return;
956
+ this.activeItemIndex = normalized;
957
+ this.announceItem(normalized);
958
+ // `rovingItems()` is spatially ordered, but node wrappers render in `nodes` array order (see
959
+ // `renderNodes()`'s `repeat()`) and don't generally match -- resolving the target element BY ID
960
+ // instead of by its position in a DOM-order query keeps the focused element in sync with the
961
+ // announced one even when `nodes`/`edges` aren't pre-sorted spatially.
962
+ const item = this.rovingItems()[normalized];
963
+ if (!item)
964
+ return;
965
+ void this.updateComplete.then(() => {
966
+ const el = item.kind === 'node'
967
+ ? this.renderRoot.querySelector(`[part="node"][data-node-id="${CSS.escape(item.id)}"]`)
968
+ : this.renderRoot.querySelector(`[data-edge-id="${CSS.escape(item.id)}"] [part="edge"]`);
969
+ el?.focus();
970
+ });
971
+ }
972
+ applySelection(kind, id, additive) {
973
+ if (kind === 'node') {
974
+ this.selectedNodeIds = additive ? toggledSelection(this.selectedNodeIds, id) : [id];
975
+ if (!additive)
976
+ this.selectedEdgeIds = [];
977
+ }
978
+ else {
979
+ this.selectedEdgeIds = additive ? toggledSelection(this.selectedEdgeIds, id) : [id];
980
+ if (!additive)
981
+ this.selectedNodeIds = [];
982
+ }
983
+ this.emit('lyra-selection-change', { nodeIds: this.selectedNodeIds, edgeIds: this.selectedEdgeIds });
984
+ const selected = kind === 'node' ? this.selectedNodeIds.includes(id) : this.selectedEdgeIds.includes(id);
985
+ const label = this.itemAccessibleText({ kind, id });
986
+ this.announcer.announce(this.localize(selected ? 'flowNodeSelected' : 'flowNodeDeselected', undefined, { label }));
987
+ }
988
+ clearSelection() {
989
+ if (this.selectedNodeIds.length === 0 && this.selectedEdgeIds.length === 0)
990
+ return;
991
+ this.selectedNodeIds = [];
992
+ this.selectedEdgeIds = [];
993
+ this.emit('lyra-selection-change', { nodeIds: [], edgeIds: [] });
994
+ this.announcer.announce(this.localize('flowSelectionCleared'));
995
+ }
996
+ deleteSelection() {
997
+ if (!this.nodesDraggable && !this.connectable && !this.droppable)
998
+ return;
999
+ if (this.selectedNodeIds.length === 0 && this.selectedEdgeIds.length === 0)
1000
+ return;
1001
+ this.emit('lyra-selection-delete', { nodeIds: this.selectedNodeIds, edgeIds: this.selectedEdgeIds });
1002
+ }
1003
+ onNodeActivate(node, additive) {
1004
+ this.emit('lyra-node-click', { id: node.id });
1005
+ this.applySelection('node', node.id, additive);
1006
+ }
1007
+ onEdgeActivate(edge, additive) {
1008
+ this.emit('lyra-edge-click', { id: edge.id, source: edge.source, target: edge.target });
1009
+ this.applySelection('edge', edge.id, additive);
1010
+ }
1011
+ onItemKeyDown(e, index, activate) {
1012
+ const arrowKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
1013
+ if (this.nodesDraggable && !this.locked && (e.ctrlKey || e.metaKey) && arrowKeys.includes(e.key)) {
1014
+ const item = this.rovingItems()[index];
1015
+ if (item?.kind === 'node') {
1016
+ e.preventDefault();
1017
+ this.nudgeNode(item.id, e.key);
1018
+ return;
1019
+ }
1020
+ }
1021
+ if (this.keyboardConnectSourceId) {
1022
+ if (e.key === 'Escape') {
1023
+ e.preventDefault();
1024
+ this.cancelKeyboardConnect();
1025
+ return;
1026
+ }
1027
+ if (e.key === 'Enter') {
1028
+ e.preventDefault();
1029
+ this.commitKeyboardConnect();
1030
+ return;
1031
+ }
1032
+ const rtlForConnect = isRtl(this);
1033
+ const forwardConnectKey = rtlForConnect ? 'ArrowLeft' : 'ArrowRight';
1034
+ const backwardConnectKey = rtlForConnect ? 'ArrowRight' : 'ArrowLeft';
1035
+ if (e.key === forwardConnectKey || e.key === 'ArrowDown') {
1036
+ e.preventDefault();
1037
+ this.cycleKeyboardConnectTarget(1);
1038
+ return;
1039
+ }
1040
+ if (e.key === backwardConnectKey || e.key === 'ArrowUp') {
1041
+ e.preventDefault();
1042
+ this.cycleKeyboardConnectTarget(-1);
1043
+ return;
1044
+ }
1045
+ return;
1046
+ }
1047
+ if (this.connectable && !this.locked && e.key === 'c' && e.target === e.currentTarget) {
1048
+ const item = this.rovingItems()[index];
1049
+ if (item?.kind === 'node') {
1050
+ e.preventDefault();
1051
+ this.startKeyboardConnect(item.id);
1052
+ return;
1053
+ }
1054
+ }
1055
+ if (e.key === 'Enter' || e.key === ' ') {
1056
+ e.preventDefault();
1057
+ this.setActiveItemQuiet(index);
1058
+ activate(e.ctrlKey || e.metaKey);
1059
+ return;
1060
+ }
1061
+ if (e.key === 'Escape') {
1062
+ e.preventDefault();
1063
+ if (e.target !== e.currentTarget)
1064
+ e.currentTarget.focus();
1065
+ else
1066
+ this.clearSelection();
1067
+ return;
1068
+ }
1069
+ if ((e.key === 'Delete' || e.key === 'Backspace') && e.target === e.currentTarget) {
1070
+ e.preventDefault();
1071
+ this.deleteSelection();
1072
+ return;
1073
+ }
1074
+ const count = this.itemCount();
1075
+ if (!count)
1076
+ return;
1077
+ const rtl = isRtl(this);
1078
+ const forwardKey = rtl ? 'ArrowLeft' : 'ArrowRight';
1079
+ const backwardKey = rtl ? 'ArrowRight' : 'ArrowLeft';
1080
+ let next = index;
1081
+ if (e.key === forwardKey || e.key === 'ArrowDown')
1082
+ next = Math.min(count - 1, index + 1);
1083
+ else if (e.key === backwardKey || e.key === 'ArrowUp')
1084
+ next = Math.max(0, index - 1);
1085
+ else if (e.key === 'Home')
1086
+ next = 0;
1087
+ else if (e.key === 'End')
1088
+ next = count - 1;
1089
+ else
1090
+ return;
1091
+ e.preventDefault();
1092
+ this.focusActiveItem(next);
1093
+ }
1094
+ setActiveItemQuiet(index) {
1095
+ const normalized = this.normalizedItemIndex(index);
1096
+ if (normalized >= 0)
1097
+ this.activeItemIndex = normalized;
1098
+ }
1099
+ itemIndexMaps() {
1100
+ const items = this.rovingItems();
1101
+ const nodeIndex = new Map();
1102
+ const edgeIndex = new Map();
1103
+ items.forEach((item, i) => {
1104
+ if (item.kind === 'node')
1105
+ nodeIndex.set(item.id, i);
1106
+ else
1107
+ edgeIndex.set(item.id, i - nodeIndex.size);
1108
+ });
1109
+ return { nodeIndex, edgeIndex };
1110
+ }
1111
+ // ---------------------------------------------------------------------
1112
+ // Node drag / keyboard nudge
1113
+ // ---------------------------------------------------------------------
1114
+ snap(value) {
1115
+ const grid = this.safeGrid;
1116
+ return grid > 0 ? Math.round(value / grid) * grid : value;
1117
+ }
1118
+ rebuildIncidentEdgesIndex() {
1119
+ const map = new Map();
1120
+ for (const edge of this.edges) {
1121
+ (map.get(edge.source) ?? map.set(edge.source, []).get(edge.source)).push(edge.id);
1122
+ if (edge.target !== edge.source) {
1123
+ (map.get(edge.target) ?? map.set(edge.target, []).get(edge.target)).push(edge.id);
1124
+ }
1125
+ }
1126
+ this.nodeIncidentEdges = map;
1127
+ }
1128
+ /** Resolves the dragged node's incident edge records and their SVG elements once, so
1129
+ * `updateIncidentEdges()` -- called on every drag pointermove -- touches only prefetched
1130
+ * references. */
1131
+ buildDragEdgeRefs(nodeId) {
1132
+ const refs = [];
1133
+ for (const edgeId of this.nodeIncidentEdges.get(nodeId) ?? []) {
1134
+ const edge = this.edges.find((e) => e.id === edgeId);
1135
+ const sourceNode = edge && this.nodes.find((n) => n.id === edge.source);
1136
+ const targetNode = edge && this.nodes.find((n) => n.id === edge.target);
1137
+ if (!edge || !sourceNode || !targetNode)
1138
+ continue;
1139
+ const group = this.renderRoot.querySelector(`[data-edge-id="${CSS.escape(edgeId)}"]`);
1140
+ refs.push({
1141
+ edge,
1142
+ sourceNode,
1143
+ targetNode,
1144
+ pathEl: group?.querySelector('[part="edge"]') ?? null,
1145
+ labelEl: group?.querySelector('[part="edge-label"]') ?? null,
1146
+ });
1147
+ }
1148
+ return refs;
1149
+ }
1150
+ updateIncidentEdges(nodeId, x, y) {
1151
+ for (const { edge, sourceNode, targetNode, pathEl, labelEl } of this.dragEdgeRefs ?? []) {
1152
+ const sourceResolved = edge.source === nodeId ? { ...this.resolvedNode(sourceNode), x, y } : this.resolvedNode(sourceNode);
1153
+ const targetResolved = edge.target === nodeId ? { ...this.resolvedNode(targetNode), x, y } : this.resolvedNode(targetNode);
1154
+ const sourcePt = this.handlePoint(sourceResolved, 'output', edge.sourceHandle ?? 'out');
1155
+ const targetPt = this.handlePoint(targetResolved, 'input', edge.targetHandle ?? 'in');
1156
+ pathEl?.setAttribute('d', this.edgePathD(sourcePt, targetPt));
1157
+ if (labelEl) {
1158
+ labelEl.setAttribute('x', String((sourcePt.x + targetPt.x) / 2));
1159
+ labelEl.setAttribute('y', String((sourcePt.y + targetPt.y) / 2));
1160
+ }
1161
+ }
1162
+ }
1163
+ onNodePointerDown(e, node) {
1164
+ if (!this.nodesDraggable || this.locked)
1165
+ return;
1166
+ const wrapper = e.currentTarget;
1167
+ // An unscoped `closest()` match cannot be trusted on its own here: `[part='viewport']` is an
1168
+ // ANCESTOR of every node wrapper that itself carries `tabindex="0"` and a `part` other than
1169
+ // `"node"`, so `[tabindex]:not([part="node"])` matches it too. `closest()` doesn't stop at
1170
+ // shadow-DOM part boundaries, only at shadow-root boundaries, so it walks straight past the
1171
+ // wrapper up to the viewport and returns a match unconditionally, which would silently no-op
1172
+ // every drag attempt regardless of node content. The `wrapper.contains(...)` guard below
1173
+ // restricts the exclusion to genuine interactive DESCENDANTS of this node's own card (the
1174
+ // intent -- e.g. a button inside the card) while ignoring ancestor matches outside it.
1175
+ const interactive = e.target.closest('button, a[href], input, select, textarea, [role="button"], [tabindex]:not([part="node"])');
1176
+ if (interactive && interactive !== wrapper && wrapper.contains(interactive))
1177
+ return;
1178
+ e.stopPropagation();
1179
+ const start = this.nodePosition(node);
1180
+ this.nodeDrag = {
1181
+ pointerId: e.pointerId,
1182
+ nodeId: node.id,
1183
+ startClientX: e.clientX,
1184
+ startClientY: e.clientY,
1185
+ startX: start.x,
1186
+ startY: start.y,
1187
+ wrapper,
1188
+ // Resolved once per gesture: isRtl() reads getComputedStyle, too costly per pointermove.
1189
+ rtlFlip: this.orientation === 'horizontal' && isRtl(this) ? -1 : 1,
1190
+ };
1191
+ this.dragEdgeRefs = this.buildDragEdgeRefs(node.id);
1192
+ wrapper.setPointerCapture?.(e.pointerId);
1193
+ window.addEventListener('pointermove', this.onNodePointerMove);
1194
+ window.addEventListener('pointerup', this.onNodePointerUp);
1195
+ window.addEventListener('pointercancel', this.onNodePointerUp);
1196
+ window.addEventListener('lostpointercapture', this.onNodePointerUp);
1197
+ }
1198
+ nudgeNode(nodeId, key) {
1199
+ const node = this.nodes.find((n) => n.id === nodeId);
1200
+ if (!node)
1201
+ return;
1202
+ const current = this.nodePosition(node);
1203
+ const step = this.safeGrid > 0 ? this.safeGrid : 1;
1204
+ const rtlFlip = this.orientation === 'horizontal' && isRtl(this) ? -1 : 1;
1205
+ let dx = 0;
1206
+ let dy = 0;
1207
+ if (key === 'ArrowRight')
1208
+ dx = step * rtlFlip;
1209
+ else if (key === 'ArrowLeft')
1210
+ dx = -step * rtlFlip;
1211
+ else if (key === 'ArrowDown')
1212
+ dy = step;
1213
+ else if (key === 'ArrowUp')
1214
+ dy = -step;
1215
+ const position = { x: current.x + dx, y: current.y + dy };
1216
+ this.emit('lyra-node-move', { id: nodeId, position, previous: current });
1217
+ this.announcer.announce(this.localize('flowNodeMoved', undefined, { label: this.nodeAccessibleText(node), x: position.x, y: position.y }));
1218
+ this.requestUpdate();
1219
+ }
1220
+ // ---------------------------------------------------------------------
1221
+ // Connect gesture (pointer + keyboard)
1222
+ // ---------------------------------------------------------------------
1223
+ nodeIdFromComposedPath(path) {
1224
+ for (const el of path) {
1225
+ if (el instanceof HTMLElement && el.getAttribute('part') === 'node' && el.dataset.nodeId) {
1226
+ return el.dataset.nodeId;
1227
+ }
1228
+ }
1229
+ return null;
1230
+ }
1231
+ /** Simplified duplicate check: an edge already existing from this gesture's source to the hovered
1232
+ * node counts as a duplicate target, regardless of which handles it uses -- checked in the
1233
+ * source -> target direction only, since edges are directed and a reverse edge (hovered -> source)
1234
+ * represents a different relationship, not a duplicate of this one. Matches
1235
+ * `eligibleConnectTargets()`'s equivalent one-directional rule for the keyboard connect flow. */
1236
+ isInvalidConnectTarget(hoveredId) {
1237
+ if (!this.connectState)
1238
+ return false;
1239
+ if (hoveredId === this.connectState.sourceId)
1240
+ return true;
1241
+ return this.edges.some((e) => e.source === this.connectState.sourceId && e.target === hoveredId);
1242
+ }
1243
+ startConnectGesture(nodeId, handleId, clientX, clientY) {
1244
+ const sourceNode = this.nodes.find((n) => n.id === nodeId);
1245
+ if (!sourceNode)
1246
+ return;
1247
+ const startPt = this.handlePoint(this.resolvedNode(sourceNode), 'output', handleId);
1248
+ this.connectState = {
1249
+ sourceId: nodeId,
1250
+ sourceHandle: handleId,
1251
+ startPt,
1252
+ rect: this.viewportEl?.getBoundingClientRect() ?? null,
1253
+ rtl: isRtl(this),
1254
+ };
1255
+ this.connecting = true;
1256
+ this.announcer.announce(this.localize('flowConnectStarted', undefined, { label: this.nodeAccessibleText(sourceNode) }));
1257
+ void this.updateComplete.then(() => {
1258
+ this.connectionLineEl = this.renderRoot.querySelector('[part="connection-line"]') ?? undefined;
1259
+ this.connectionLineEl?.setAttribute('d', this.edgePathD(startPt, this.connectContentPoint(clientX, clientY)));
1260
+ });
1261
+ window.addEventListener('pointermove', this.onConnectPointerMove);
1262
+ window.addEventListener('pointerup', this.onConnectPointerUp);
1263
+ // A touch scroll takeover or the browser reclaiming the pointer (e.g. alt-tab) fires
1264
+ // `pointercancel` instead of `pointerup`, and losing capture fires `lostpointercapture` --
1265
+ // without these the ghost connection line and both window listeners would outlive the
1266
+ // gesture, and a later unrelated pointerup could commit against the stale connect state.
1267
+ window.addEventListener('pointercancel', this.onConnectPointerCancel);
1268
+ window.addEventListener('lostpointercapture', this.onConnectPointerCancel);
1269
+ }
1270
+ /** `toContentPoint()` against the viewport rect and RTL resolution snapshotted at
1271
+ * connect-gesture start, so each pointermove avoids a fresh layout/style measurement. */
1272
+ connectContentPoint(clientX, clientY) {
1273
+ const state = this.connectState;
1274
+ if (!state?.rect)
1275
+ return { x: 0, y: 0 };
1276
+ const localX = this.localWorldX(clientX, state.rect, state.rtl);
1277
+ const localY = clientY - state.rect.top;
1278
+ return { x: (localX - this.panX) / this.zoomLevel, y: (localY - this.panY) / this.zoomLevel };
1279
+ }
1280
+ /** Same rule as `isInvalidConnectTarget()`, callable after `connectState` has already been
1281
+ * cleared by `endConnectGesture()` -- takes the snapshotted state explicitly instead. */
1282
+ isInvalidConnectTargetFor(state, hoveredId) {
1283
+ if (hoveredId === state.sourceId)
1284
+ return true;
1285
+ return this.edges.some((e) => e.source === state.sourceId && e.target === hoveredId);
1286
+ }
1287
+ endConnectGesture() {
1288
+ if (this.connectInvalidNodeId) {
1289
+ this.renderRoot.querySelector(`[data-node-id="${CSS.escape(this.connectInvalidNodeId)}"]`)?.removeAttribute('data-connect-invalid');
1290
+ this.connectInvalidNodeId = null;
1291
+ }
1292
+ this.connectState = undefined;
1293
+ this.connecting = false;
1294
+ window.removeEventListener('pointermove', this.onConnectPointerMove);
1295
+ window.removeEventListener('pointerup', this.onConnectPointerUp);
1296
+ window.removeEventListener('pointercancel', this.onConnectPointerCancel);
1297
+ window.removeEventListener('lostpointercapture', this.onConnectPointerCancel);
1298
+ }
1299
+ eligibleConnectTargets(sourceId) {
1300
+ return this.nodes.filter((n) => n.id !== sourceId && !this.edges.some((e) => e.source === sourceId && e.target === n.id));
1301
+ }
1302
+ startKeyboardConnect(sourceId) {
1303
+ const targets = this.eligibleConnectTargets(sourceId);
1304
+ if (targets.length === 0)
1305
+ return;
1306
+ const sourceNode = this.nodes.find((n) => n.id === sourceId);
1307
+ this.keyboardConnectSourceId = sourceId;
1308
+ this.keyboardConnectTargetIndex = 0;
1309
+ if (sourceNode)
1310
+ this.announcer.announce(this.localize('flowConnectStarted', undefined, { label: this.nodeAccessibleText(sourceNode) }));
1311
+ }
1312
+ cycleKeyboardConnectTarget(direction) {
1313
+ if (!this.keyboardConnectSourceId)
1314
+ return;
1315
+ const targets = this.eligibleConnectTargets(this.keyboardConnectSourceId);
1316
+ if (targets.length === 0)
1317
+ return;
1318
+ this.keyboardConnectTargetIndex = (this.keyboardConnectTargetIndex + direction + targets.length) % targets.length;
1319
+ }
1320
+ isKeyboardConnectTarget(nodeId) {
1321
+ if (!this.keyboardConnectSourceId)
1322
+ return false;
1323
+ const targets = this.eligibleConnectTargets(this.keyboardConnectSourceId);
1324
+ return targets[this.keyboardConnectTargetIndex]?.id === nodeId;
1325
+ }
1326
+ commitKeyboardConnect() {
1327
+ const sourceId = this.keyboardConnectSourceId;
1328
+ if (!sourceId)
1329
+ return;
1330
+ const targets = this.eligibleConnectTargets(sourceId);
1331
+ const target = targets[this.keyboardConnectTargetIndex];
1332
+ this.keyboardConnectSourceId = null;
1333
+ if (!target)
1334
+ return;
1335
+ const sourceOutputs = this.nodes.find((n) => n.id === sourceId)?.outputs ?? [{ id: 'out' }];
1336
+ const targetInputs = target.inputs ?? [{ id: 'in' }];
1337
+ this.emit('lyra-connect', {
1338
+ source: sourceId,
1339
+ target: target.id,
1340
+ sourceHandle: sourceOutputs[0]?.id ?? 'out',
1341
+ targetHandle: targetInputs[0]?.id ?? 'in',
1342
+ });
1343
+ this.announcer.announce(this.localize('flowConnectCommitted', undefined, { source: sourceId, target: target.id }));
1344
+ }
1345
+ cancelKeyboardConnect() {
1346
+ if (!this.keyboardConnectSourceId)
1347
+ return;
1348
+ this.keyboardConnectSourceId = null;
1349
+ this.announcer.announce(this.localize('flowConnectCancelled'));
1350
+ }
1351
+ // ---------------------------------------------------------------------
1352
+ // Decoration paint
1353
+ // ---------------------------------------------------------------------
1354
+ statusTone(status) {
1355
+ if (status === 'running')
1356
+ return 'accent';
1357
+ if (status === 'success')
1358
+ return 'success';
1359
+ if (status === 'error')
1360
+ return 'danger';
1361
+ if (status === 'denied')
1362
+ return 'warning';
1363
+ return 'neutral';
1364
+ }
1365
+ edgeTone(edge) {
1366
+ const decoration = this.decorations?.[edge.id];
1367
+ return decoration ? this.statusTone(decoration.status) : edge.tone ?? 'neutral';
1368
+ }
1369
+ edgeIsRunning(edge) {
1370
+ return this.decorations?.[edge.id]?.status === 'running';
1371
+ }
1372
+ // ---------------------------------------------------------------------
1373
+ // Render
1374
+ // ---------------------------------------------------------------------
1375
+ renderEdges(nodeIndex, edgeIndex) {
1376
+ const resolvedById = new Map(this.nodes.map((n) => [n.id, this.resolvedNode(n)]));
1377
+ const items = [];
1378
+ for (const edge of this.edges) {
1379
+ const sourceResolved = resolvedById.get(edge.source);
1380
+ if (!sourceResolved)
1381
+ continue; // no position to draw from -- dropped entirely
1382
+ const targetResolved = resolvedById.get(edge.target);
1383
+ const sourcePt = this.handlePoint(sourceResolved, 'output', edge.sourceHandle ?? 'out');
1384
+ if (!targetResolved) {
1385
+ const stubPt = { x: sourcePt.x + 14, y: sourcePt.y + 14 };
1386
+ items.push(svg `<line
1387
+ part="stub"
1388
+ aria-hidden="true"
1389
+ x1=${sourcePt.x} y1=${sourcePt.y}
1390
+ x2=${stubPt.x} y2=${stubPt.y}
1391
+ ></line>`);
1392
+ continue;
1393
+ }
1394
+ const targetPt = this.handlePoint(targetResolved, 'input', edge.targetHandle ?? 'in');
1395
+ const midX = (sourcePt.x + targetPt.x) / 2;
1396
+ const midY = (sourcePt.y + targetPt.y) / 2;
1397
+ const index = nodeIndex.size + (edgeIndex.get(edge.id) ?? 0);
1398
+ const active = this.normalizedItemIndex() === index;
1399
+ const selected = this.selectedEdgeIds.includes(edge.id);
1400
+ items.push(svg `<g data-edge-id=${edge.id}>
1401
+ <path
1402
+ part="edge"
1403
+ role="button"
1404
+ tabindex=${active ? '0' : '-1'}
1405
+ aria-label=${this.edgeAccessibleText(edge)}
1406
+ aria-pressed=${selected ? 'true' : 'false'}
1407
+ d=${this.edgePathD(sourcePt, targetPt)}
1408
+ marker-end="url(#${this.arrowMarkerId})"
1409
+ data-tone=${this.edgeTone(edge)}
1410
+ data-running=${this.edgeIsRunning(edge) && !prefersReducedMotion() ? '' : nothing}
1411
+ data-running-static=${this.edgeIsRunning(edge) && prefersReducedMotion() ? '' : nothing}
1412
+ @click=${(e) => this.onEdgeActivate(edge, e.ctrlKey || e.metaKey)}
1413
+ @focus=${() => this.onItemFocus(index)}
1414
+ @keydown=${(e) => this.onItemKeyDown(e, index, (additive) => this.onEdgeActivate(edge, additive))}
1415
+ ></path>
1416
+ ${edge.label
1417
+ ? svg `<text part="edge-label" x=${midX} y=${midY} paint-order="stroke">${edge.label}</text>`
1418
+ : ''}
1419
+ </g>`);
1420
+ }
1421
+ return svg `${items}`;
1422
+ }
1423
+ renderNodes(nodeIndex) {
1424
+ return html `${repeat(this.nodes, (node) => node.id, (node) => {
1425
+ const resolved = this.resolvedNode(node);
1426
+ const index = nodeIndex.get(node.id) ?? 0;
1427
+ const active = this.normalizedItemIndex() === index;
1428
+ const selected = this.selectedNodeIds.includes(node.id);
1429
+ return html `<div
1430
+ part="node"
1431
+ data-node-id=${node.id}
1432
+ data-type=${node.type ?? nothing}
1433
+ data-connect-target=${this.isKeyboardConnectTarget(node.id) ? '' : nothing}
1434
+ role="group"
1435
+ tabindex=${active ? '0' : '-1'}
1436
+ aria-label=${this.nodeAccessibleText(node)}
1437
+ aria-current=${selected ? 'true' : 'false'}
1438
+ style="transform:translate(${resolved.x}px,${resolved.y}px)"
1439
+ @click=${(e) => this.onNodeActivate(node, e.ctrlKey || e.metaKey)}
1440
+ @focus=${() => this.onItemFocus(index)}
1441
+ @pointerdown=${(e) => this.onNodePointerDown(e, node)}
1442
+ @keydown=${(e) => this.onItemKeyDown(e, index, (additive) => this.onNodeActivate(node, additive))}
1443
+ >
1444
+ <slot name=${`node-${node.id}`}></slot>
1445
+ </div>`;
1446
+ })}`;
1447
+ }
1448
+ render() {
1449
+ if (this.nodes.length === 0) {
1450
+ return html `<div part="base" role="region" aria-label=${this.localize('flowCanvasLabel')}>
1451
+ <lyra-empty part="empty" heading=${this.localize('noData')}></lyra-empty>
1452
+ </div>`;
1453
+ }
1454
+ const { nodeIndex, edgeIndex } = this.itemIndexMaps();
1455
+ return html `<div part="base" role="region" aria-label=${this.localize('flowCanvasLabel')}>
1456
+ <div
1457
+ part="viewport"
1458
+ role="group"
1459
+ tabindex="0"
1460
+ aria-label=${this.accessibleLabel ||
1461
+ this.localize('flowCanvasSummary', undefined, {
1462
+ nodeCount: this.nodes.length,
1463
+ edgeCount: this.edges.length,
1464
+ })}
1465
+ >
1466
+ <div class="world" @pointerdown=${this.onWorldPointerDown}>
1467
+ <div
1468
+ part="background"
1469
+ style="--lyra-flow-canvas-grid-size:${this.safeGrid > 0 ? this.safeGrid : 8}px"
1470
+ @pointerdown=${this.onBackgroundPointerDown}
1471
+ ></div>
1472
+ <svg part="edges">
1473
+ <defs>
1474
+ <marker
1475
+ id=${this.arrowMarkerId}
1476
+ viewBox="0 0 10 10"
1477
+ refX="9"
1478
+ refY="5"
1479
+ markerWidth="6"
1480
+ markerHeight="6"
1481
+ orient="auto-start-reverse"
1482
+ markerUnits="strokeWidth"
1483
+ >
1484
+ <path part="arrowhead" d="M 0 0 L 10 5 L 0 10 z"></path>
1485
+ </marker>
1486
+ </defs>
1487
+ ${this.renderEdges(nodeIndex, edgeIndex)}
1488
+ ${this.connecting ? svg `<path part="connection-line" d=""></path>` : ''}
1489
+ </svg>
1490
+ ${this.renderNodes(nodeIndex)}
1491
+ </div>
1492
+ </div>
1493
+ <div part="live-region" class="sr-only" role="status" aria-live="polite" aria-atomic="true" id=${this.liveRegionId}>
1494
+ ${this.liveText}
1495
+ </div>
1496
+ <ul part="edge-list" class="sr-only" aria-label=${this.localize('flowEdgeList')}>
1497
+ ${this.edges.map((edge) => html `<li>${this.edgeAccessibleText(edge)}</li>`)}
1498
+ </ul>
1499
+ <slot></slot>
1500
+ <slot name="top-start"></slot>
1501
+ <slot name="top-end"></slot>
1502
+ <slot name="bottom-start"></slot>
1503
+ <slot name="bottom-end"></slot>
1504
+ </div>`;
1505
+ }
1506
+ }
1507
+ __decorate([
1508
+ property({ attribute: false })
1509
+ ], LyraFlowCanvas.prototype, "nodes", void 0);
1510
+ __decorate([
1511
+ property({ attribute: false })
1512
+ ], LyraFlowCanvas.prototype, "edges", void 0);
1513
+ __decorate([
1514
+ property({ reflect: true })
1515
+ ], LyraFlowCanvas.prototype, "orientation", void 0);
1516
+ __decorate([
1517
+ property({ type: Boolean, attribute: 'nodes-draggable' })
1518
+ ], LyraFlowCanvas.prototype, "nodesDraggable", void 0);
1519
+ __decorate([
1520
+ property({ type: Boolean })
1521
+ ], LyraFlowCanvas.prototype, "connectable", void 0);
1522
+ __decorate([
1523
+ property({ type: Boolean })
1524
+ ], LyraFlowCanvas.prototype, "droppable", void 0);
1525
+ __decorate([
1526
+ property({ type: Boolean, reflect: true })
1527
+ ], LyraFlowCanvas.prototype, "locked", void 0);
1528
+ __decorate([
1529
+ property({ attribute: false })
1530
+ ], LyraFlowCanvas.prototype, "selectedNodeIds", void 0);
1531
+ __decorate([
1532
+ property({ attribute: false })
1533
+ ], LyraFlowCanvas.prototype, "selectedEdgeIds", void 0);
1534
+ __decorate([
1535
+ property({ type: Number, attribute: 'min-zoom' })
1536
+ ], LyraFlowCanvas.prototype, "minZoom", void 0);
1537
+ __decorate([
1538
+ property({ type: Number, attribute: 'max-zoom' })
1539
+ ], LyraFlowCanvas.prototype, "maxZoom", void 0);
1540
+ __decorate([
1541
+ property({ type: Number })
1542
+ ], LyraFlowCanvas.prototype, "grid", void 0);
1543
+ __decorate([
1544
+ property({ type: Number, attribute: 'layer-gap' })
1545
+ ], LyraFlowCanvas.prototype, "layerGap", void 0);
1546
+ __decorate([
1547
+ property({ type: Number, attribute: 'node-gap' })
1548
+ ], LyraFlowCanvas.prototype, "nodeGap", void 0);
1549
+ __decorate([
1550
+ property({ attribute: false })
1551
+ ], LyraFlowCanvas.prototype, "decorations", void 0);
1552
+ __decorate([
1553
+ property({ attribute: 'aria-label' })
1554
+ ], LyraFlowCanvas.prototype, "accessibleLabel", void 0);
1555
+ __decorate([
1556
+ state()
1557
+ ], LyraFlowCanvas.prototype, "liveText", void 0);
1558
+ __decorate([
1559
+ state()
1560
+ ], LyraFlowCanvas.prototype, "activeItemIndex", void 0);
1561
+ __decorate([
1562
+ state()
1563
+ ], LyraFlowCanvas.prototype, "connecting", void 0);
1564
+ __decorate([
1565
+ state()
1566
+ ], LyraFlowCanvas.prototype, "keyboardConnectSourceId", void 0);
1567
+ __decorate([
1568
+ state()
1569
+ ], LyraFlowCanvas.prototype, "keyboardConnectTargetIndex", void 0);
1570
+ //# sourceMappingURL=flow-canvas.class.js.map