@aceshooting/lyra-ui 9.1.1 → 10.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/custom-elements.json +1 -1
  3. package/dist/cli/migrate-wa.mjs +52 -0
  4. package/dist/cli/migration-contract.json +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  6. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
  7. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
  8. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
  9. package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
  10. package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
  11. package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
  12. package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
  13. package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
  14. package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
  15. package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
  16. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
  17. package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
  18. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
  19. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
  20. package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
  21. package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
  22. package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
  23. package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
  24. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
  25. package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
  26. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  27. package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
  28. package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
  29. package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
  30. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  31. package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
  32. package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
  33. package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
  34. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
  35. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
  36. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
  37. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
  38. package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
  39. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
  40. package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
  41. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
  42. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
  43. package/dist/components/charts/chart/box-plot.styles.js +0 -20
  44. package/dist/components/charts/chart/chart-colors.d.ts +1 -1
  45. package/dist/components/charts/chart/chart-colors.js +1 -1
  46. package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
  47. package/dist/components/charts/chart/chart-core-loader.js +1 -1
  48. package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
  49. package/dist/components/charts/chart/chart-feature-loader.js +1 -1
  50. package/dist/components/charts/chart/chart.class.d.ts +93 -0
  51. package/dist/components/charts/chart/chart.class.js +3 -3
  52. package/dist/components/charts/chart/chart.styles.js +0 -27
  53. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
  54. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  55. package/dist/components/charts/chart/lite-chart.styles.js +0 -27
  56. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
  57. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
  58. package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
  59. package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
  60. package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
  61. package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
  62. package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
  63. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  64. package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
  65. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  66. package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
  67. package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
  68. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  69. package/dist/components/conversation/code-block/code-block.styles.js +4 -95
  70. package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
  71. package/dist/components/conversation/code-block/code-loader.js +1 -1
  72. package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
  73. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  74. package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
  75. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  76. package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
  77. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  78. package/dist/components/conversation/markdown/markdown.styles.js +0 -41
  79. package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
  80. package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
  81. package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
  82. package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
  83. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  84. package/dist/components/conversation/model-select/model-select.styles.js +12 -47
  85. package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
  86. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
  87. package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
  88. package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
  89. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
  90. package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
  91. package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
  92. package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
  93. package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
  94. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
  95. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  96. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
  97. package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
  98. package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
  99. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  100. package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
  101. package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
  102. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  103. package/dist/components/data/calendar/calendar.class.d.ts +15 -2
  104. package/dist/components/data/calendar/calendar.class.js +2 -2
  105. package/dist/components/data/calendar/calendar.styles.js +2 -28
  106. package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
  107. package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
  108. package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
  109. package/dist/components/data/context-meter/context-meter.styles.js +0 -24
  110. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  111. package/dist/components/data/data-grid/data-grid.styles.js +0 -22
  112. package/dist/components/data/document-library/document-library.class.js +2 -2
  113. package/dist/components/data/document-library/document-library.styles.js +0 -4
  114. package/dist/components/data/env-list/env-list.class.js +1 -1
  115. package/dist/components/data/env-list/env-list.styles.js +7 -4
  116. package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
  117. package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
  118. package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
  119. package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
  120. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  121. package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
  122. package/dist/components/data/flow-node/flow-node.styles.js +0 -23
  123. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  124. package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
  125. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
  126. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  127. package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
  128. package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
  129. package/dist/components/data/heatmap/heatmap-scale.js +1 -1
  130. package/dist/components/data/heatmap/heatmap.class.d.ts +84 -1
  131. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  132. package/dist/components/data/heatmap/heatmap.styles.js +0 -54
  133. package/dist/components/data/pagination/pagination.styles.js +23 -46
  134. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
  135. package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
  136. package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
  137. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  138. package/dist/components/data/stat/stat.styles.js +0 -67
  139. package/dist/components/data/table/table.class.d.ts +42 -3
  140. package/dist/components/data/table/table.class.js +4 -4
  141. package/dist/components/data/table/table.styles.js +20 -91
  142. package/dist/components/data/timeline/timeline-item.styles.js +0 -30
  143. package/dist/components/data/timeline/timeline.class.d.ts +89 -1
  144. package/dist/components/data/timeline/timeline.class.js +2 -2
  145. package/dist/components/data/timeline/timeline.styles.js +111 -31
  146. package/dist/components/data/tree/tree-item.styles.js +1 -28
  147. package/dist/components/data/tree/tree.class.js +2 -2
  148. package/dist/components/data/tree/tree.styles.js +0 -6
  149. package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
  150. package/dist/components/forms/button/button.class.js +1 -1
  151. package/dist/components/forms/button/button.styles.js +0 -105
  152. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  153. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  154. package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
  155. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
  156. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  157. package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
  158. package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
  159. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  160. package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
  161. package/dist/components/forms/combobox/combobox.class.js +2 -2
  162. package/dist/components/forms/combobox/combobox.styles.js +22 -111
  163. package/dist/components/forms/combobox/option.styles.js +7 -1
  164. package/dist/components/forms/date-picker/date-input.class.js +1 -1
  165. package/dist/components/forms/date-picker/date-input.styles.js +12 -67
  166. package/dist/components/forms/date-picker/date-picker.class.d.ts +1 -0
  167. package/dist/components/forms/date-picker/date-picker.class.js +22 -20
  168. package/dist/components/forms/date-picker/date-picker.styles.js +36 -29
  169. package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
  170. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  171. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
  172. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  173. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
  174. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  175. package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
  176. package/dist/components/forms/input/input.styles.js +0 -54
  177. package/dist/components/forms/input/number-input.styles.d.ts +4 -5
  178. package/dist/components/forms/input/number-input.styles.js +0 -11
  179. package/dist/components/forms/input/time-input-shared.d.ts +11 -0
  180. package/dist/components/forms/input/time-input-shared.js +1 -1
  181. package/dist/components/forms/input/time-input.class.d.ts +11 -2
  182. package/dist/components/forms/input/time-input.class.js +1 -1
  183. package/dist/components/forms/input/time-input.styles.js +0 -6
  184. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  185. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
  186. package/dist/components/forms/otp-input/otp-input.class.js +3 -3
  187. package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
  188. package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
  189. package/dist/components/forms/phone-input/phone-input.class.js +2 -2
  190. package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
  191. package/dist/components/forms/radio/radio-button.styles.js +1 -30
  192. package/dist/components/forms/radio/radio-group.styles.js +0 -4
  193. package/dist/components/forms/radio/radio.styles.js +0 -44
  194. package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
  195. package/dist/components/forms/select/select.class.js +1 -1
  196. package/dist/components/forms/select/select.styles.js +14 -114
  197. package/dist/components/forms/slider/slider.styles.js +0 -55
  198. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
  199. package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
  200. package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
  201. package/dist/components/forms/switch/switch.class.d.ts +3 -0
  202. package/dist/components/forms/switch/switch.class.js +1 -1
  203. package/dist/components/forms/switch/switch.styles.js +0 -37
  204. package/dist/components/forms/textarea/textarea.styles.js +0 -28
  205. package/dist/components/forms/time-range/time-range.styles.js +12 -84
  206. package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
  207. package/dist/components/forms/token-input/token-input.class.js +1 -1
  208. package/dist/components/forms/token-input/token-input.styles.js +1 -54
  209. package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
  210. package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
  211. package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
  212. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  213. package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
  214. package/dist/components/layout/button-group/button-group.styles.js +0 -6
  215. package/dist/components/layout/card/card.class.d.ts +12 -0
  216. package/dist/components/layout/card/card.styles.js +3 -11
  217. package/dist/components/layout/carousel/carousel.styles.js +0 -1
  218. package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
  219. package/dist/components/layout/command-palette/command-palette.class.js +3 -1
  220. package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
  221. package/dist/components/layout/control-group/control-group.styles.js +0 -7
  222. package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
  223. package/dist/components/layout/details/accordion.class.d.ts +13 -0
  224. package/dist/components/layout/details/accordion.class.js +1 -1
  225. package/dist/components/layout/details/details.class.js +1 -1
  226. package/dist/components/layout/details/details.styles.js +0 -12
  227. package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
  228. package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
  229. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  230. package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
  231. package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
  232. package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
  233. package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
  234. package/dist/components/layout/menu/menu-item.class.js +1 -1
  235. package/dist/components/layout/menu/menu-item.styles.js +0 -49
  236. package/dist/components/layout/menu/menu-label.styles.js +0 -2
  237. package/dist/components/layout/menu/menu.styles.js +0 -18
  238. package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
  239. package/dist/components/layout/page/page.class.d.ts +4 -0
  240. package/dist/components/layout/page/page.class.js +1 -1
  241. package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
  242. package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
  243. package/dist/components/layout/scroller/scroller.styles.js +0 -20
  244. package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
  245. package/dist/components/layout/segmented/segmented.class.js +1 -1
  246. package/dist/components/layout/segmented/segmented.styles.js +69 -37
  247. package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
  248. package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
  249. package/dist/components/layout/stepper/stepper.class.js +1 -1
  250. package/dist/components/layout/stepper/stepper.styles.js +140 -41
  251. package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
  252. package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
  253. package/dist/components/layout/tab-group/tab.styles.js +0 -2
  254. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
  255. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  256. package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
  257. package/dist/components/layout/widget/widget.class.d.ts +5 -1
  258. package/dist/components/layout/widget/widget.class.js +1 -1
  259. package/dist/components/layout/widget/widget.styles.js +97 -40
  260. package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
  261. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  262. package/dist/components/media/animated-image/animated-image.styles.js +0 -28
  263. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
  264. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  265. package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
  266. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
  267. package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
  268. package/dist/components/media/av-player/av-player.class.d.ts +5 -6
  269. package/dist/components/media/av-player/av-player.class.js +1 -1
  270. package/dist/components/media/av-player/av-player.styles.js +0 -45
  271. package/dist/components/media/avatar/avatar.styles.js +3 -16
  272. package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
  273. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  274. package/dist/components/media/file-input/file-input.class.d.ts +12 -0
  275. package/dist/components/media/file-input/file-input.styles.js +3 -24
  276. package/dist/components/media/flag/flag.class.d.ts +20 -0
  277. package/dist/components/media/flag/flag.class.js +4 -2
  278. package/dist/components/media/flag/flag.styles.js +7 -1
  279. package/dist/components/media/flag/language-map.d.ts +10 -0
  280. package/dist/components/media/flag/language-map.js +1 -1
  281. package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
  282. package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
  283. package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
  284. package/dist/components/media/lightbox/lightbox.class.js +0 -2
  285. package/dist/components/media/lightbox/lightbox.styles.js +0 -21
  286. package/dist/components/media/map/map-loader.d.ts +19 -1
  287. package/dist/components/media/map/map-loader.js +1 -1
  288. package/dist/components/media/map/map.class.d.ts +141 -1
  289. package/dist/components/media/map/map.class.js +15 -3
  290. package/dist/components/media/map/map.styles.js +20 -17
  291. package/dist/components/media/media-card/media-card.class.d.ts +14 -3
  292. package/dist/components/media/media-card/media-card.class.js +1 -1
  293. package/dist/components/media/media-card/media-card.styles.js +2 -28
  294. package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
  295. package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
  296. package/dist/components/media/qr-code/qr-code.class.js +2 -2
  297. package/dist/components/media/qr-code/qr-code.styles.js +0 -3
  298. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
  299. package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
  300. package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
  301. package/dist/components/media/video/video.class.d.ts +23 -2
  302. package/dist/components/media/video/video.class.js +3 -3
  303. package/dist/components/media/video/video.styles.js +4 -2
  304. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  305. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  306. package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
  307. package/dist/components/overlays/alert/alert.styles.js +4 -2
  308. package/dist/components/overlays/badge/badge.styles.js +4 -48
  309. package/dist/components/overlays/badge/tag.styles.js +0 -14
  310. package/dist/components/overlays/callout/callout.styles.js +0 -11
  311. package/dist/components/overlays/chip/chip-group.styles.js +0 -18
  312. package/dist/components/overlays/chip/chip.styles.js +6 -69
  313. package/dist/components/overlays/dialog/confirm.d.ts +1 -4
  314. package/dist/components/overlays/dialog/confirm.js +1 -1
  315. package/dist/components/overlays/dialog/dialog.class.d.ts +12 -9
  316. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  317. package/dist/components/overlays/dialog/dialog.styles.js +0 -43
  318. package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
  319. package/dist/components/overlays/drawer/drawer.styles.js +0 -9
  320. package/dist/components/overlays/empty/empty.styles.js +0 -12
  321. package/dist/components/overlays/kbd/kbd.styles.js +0 -8
  322. package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
  323. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  324. package/dist/components/overlays/overlay/overlay.styles.js +0 -28
  325. package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
  326. package/dist/components/overlays/overlay/popover.class.js +2 -2
  327. package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
  328. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  329. package/dist/components/overlays/popup/popup.class.d.ts +1 -0
  330. package/dist/components/overlays/popup/popup.class.js +1 -1
  331. package/dist/components/overlays/popup/popup.styles.js +0 -15
  332. package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
  333. package/dist/components/overlays/progress/progress-ring.class.js +3 -3
  334. package/dist/components/overlays/progress/progress.styles.js +0 -21
  335. package/dist/components/overlays/rating/rating.styles.js +0 -25
  336. package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
  337. package/dist/components/overlays/spinner/spinner.styles.js +0 -3
  338. package/dist/components/overlays/toast/toast-item.styles.js +3 -45
  339. package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
  340. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
  341. package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
  342. package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
  343. package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
  344. package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
  345. package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
  346. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
  347. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
  348. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  349. package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
  350. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
  351. package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
  352. package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
  353. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
  354. package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
  355. package/dist/components/retrieval/graph/graph.class.js +1 -1
  356. package/dist/components/retrieval/graph/graph.styles.js +0 -30
  357. package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
  358. package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
  359. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
  360. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
  361. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
  362. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
  363. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
  364. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
  365. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  366. package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
  367. package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
  368. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  369. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
  370. package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
  371. package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
  372. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
  373. package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
  374. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
  375. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
  376. package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
  377. package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
  378. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
  379. package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
  380. package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
  381. package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
  382. package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
  383. package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
  384. package/dist/components/utility/export-button/export-button.styles.js +0 -22
  385. package/dist/components/utility/icon/icon.styles.js +0 -6
  386. package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
  387. package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
  388. package/dist/components/utility/known-date/known-date.styles.js +10 -51
  389. package/dist/components/utility/live-region/live-region.styles.js +0 -4
  390. package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
  391. package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
  392. package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
  393. package/dist/components/utility/random-content/random-content.class.js +3 -2
  394. package/dist/components/utility/random-content/random-content.styles.js +6 -13
  395. package/dist/components/utility/tour/tour.class.d.ts +4 -2
  396. package/dist/components/utility/tour/tour.class.js +3 -3
  397. package/dist/components/utility/tour/tour.styles.js +0 -13
  398. package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
  399. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  400. package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
  401. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
  402. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
  403. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
  404. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
  405. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
  406. package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
  407. package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
  408. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
  409. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  410. package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
  411. package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
  412. package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
  413. package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
  414. package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
  415. package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
  416. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  417. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
  418. package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
  419. package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
  420. package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
  421. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  422. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
  423. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  424. package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
  425. package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
  426. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
  427. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
  428. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
  429. package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
  430. package/dist/custom-elements-jsx.d.ts +56 -37
  431. package/dist/events.d.ts +43 -33
  432. package/dist/internal/agent-status-variants.d.ts +18 -0
  433. package/dist/internal/agent-status-variants.js +1 -0
  434. package/dist/internal/announcer.d.ts +8 -3
  435. package/dist/internal/announcer.js +1 -1
  436. package/dist/internal/autoloader-manifest.js +1 -1
  437. package/dist/internal/canvas-color.d.ts +16 -0
  438. package/dist/internal/canvas-color.js +1 -1
  439. package/dist/internal/catalog-picker.d.ts +0 -1
  440. package/dist/internal/catalog-picker.js +1 -1
  441. package/dist/internal/default-strings.generated.d.ts +1 -0
  442. package/dist/internal/default-strings.generated.js +1 -1
  443. package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
  444. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  445. package/dist/internal/localization-runtime.js +1 -1
  446. package/dist/internal/localization-types.d.ts +1 -1
  447. package/dist/internal/localization.js +1 -1
  448. package/dist/internal/lyra-element.d.ts +13 -0
  449. package/dist/internal/lyra-element.js +1 -1
  450. package/dist/internal/media-controller.js +1 -1
  451. package/dist/internal/package-metadata.d.ts +1 -1
  452. package/dist/internal/package-metadata.js +1 -1
  453. package/dist/internal/scroll-overflow.d.ts +35 -13
  454. package/dist/internal/scroll-overflow.js +1 -1
  455. package/dist/internal/sizes.styles.js +0 -2
  456. package/dist/internal/specialist-tokens.styles.js +6 -11
  457. package/dist/internal/text-highlights.d.ts +4 -1
  458. package/dist/internal/text-highlights.js +1 -1
  459. package/dist/internal/tokens/palette.styles.js +0 -15
  460. package/dist/internal/tokens.styles.js +19 -113
  461. package/dist/lyra.d.ts +8 -5
  462. package/dist/styles/reservations.css +82 -0
  463. package/dist/svelte.d.ts +56 -37
  464. package/dist/translations/ar.js +1 -1
  465. package/dist/translations/de.js +1 -1
  466. package/dist/translations/es.js +1 -1
  467. package/dist/translations/fa.js +1 -1
  468. package/dist/translations/fr.js +1 -1
  469. package/dist/translations/he.js +1 -1
  470. package/dist/translations/ja.js +1 -1
  471. package/dist/translations/pt-BR.js +1 -1
  472. package/dist/translations/ru.js +1 -1
  473. package/dist/translations/zh-CN.js +1 -1
  474. package/dist/vue.d.ts +56 -37
  475. package/llms/components/lr-accordion-item.md +12 -3
  476. package/llms/components/lr-accordion.md +11 -2
  477. package/llms/components/lr-agent-eval-dashboard.md +1 -1
  478. package/llms/components/lr-agent-trace.md +3 -1
  479. package/llms/components/lr-agent-workspace.md +20 -0
  480. package/llms/components/lr-artifact-panel.md +10 -4
  481. package/llms/components/lr-attachment-chip.md +7 -4
  482. package/llms/components/lr-attachment-trigger.md +7 -4
  483. package/llms/components/lr-av-player.md +3 -1
  484. package/llms/components/lr-avatar.md +6 -6
  485. package/llms/components/lr-bar-chart.md +4 -3
  486. package/llms/components/lr-box-plot.md +1 -1
  487. package/llms/components/lr-browser-frame.md +7 -3
  488. package/llms/components/lr-bubble-chart.md +4 -3
  489. package/llms/components/lr-calendar.md +9 -2
  490. package/llms/components/lr-card.md +24 -0
  491. package/llms/components/lr-chart.md +32 -8
  492. package/llms/components/lr-chat-viewport.md +7 -2
  493. package/llms/components/lr-checkbox-group.md +13 -5
  494. package/llms/components/lr-checkbox.md +5 -2
  495. package/llms/components/lr-checkpoint.md +6 -2
  496. package/llms/components/lr-combobox.md +5 -2
  497. package/llms/components/lr-command-palette.md +4 -1
  498. package/llms/components/lr-confirm-bar.md +7 -3
  499. package/llms/components/lr-context-meter.md +12 -11
  500. package/llms/components/lr-conversation-item.md +7 -4
  501. package/llms/components/lr-details.md +11 -2
  502. package/llms/components/lr-dialog.md +15 -10
  503. package/llms/components/lr-dock-panel.md +7 -10
  504. package/llms/components/lr-document-preview.md +6 -1
  505. package/llms/components/lr-document-viewer.md +3 -2
  506. package/llms/components/lr-doughnut-chart.md +4 -3
  507. package/llms/components/lr-drawer.md +3 -3
  508. package/llms/components/lr-entity-card.md +3 -3
  509. package/llms/components/lr-entity-chip.md +1 -1
  510. package/llms/components/lr-entity-dossier.md +4 -1
  511. package/llms/components/lr-file-input.md +2 -2
  512. package/llms/components/lr-flag.md +20 -5
  513. package/llms/components/lr-heatmap.md +28 -0
  514. package/llms/components/lr-histogram.md +3 -1
  515. package/llms/components/lr-icon.md +1 -1
  516. package/llms/components/lr-json-schema-viewer.md +2 -1
  517. package/llms/components/lr-knowledge-graph-explorer.md +8 -3
  518. package/llms/components/lr-known-date.md +4 -2
  519. package/llms/components/lr-line-chart.md +4 -3
  520. package/llms/components/lr-lite-chart.md +16 -6
  521. package/llms/components/lr-map.md +72 -8
  522. package/llms/components/lr-markdown-core.md +3 -2
  523. package/llms/components/lr-media-card.md +28 -12
  524. package/llms/components/lr-message-parts.md +2 -1
  525. package/llms/components/lr-model-select.md +9 -10
  526. package/llms/components/lr-model-settings-panel.md +9 -9
  527. package/llms/components/lr-neighbor-list.md +1 -1
  528. package/llms/components/lr-notebook-viewer.md +6 -3
  529. package/llms/components/lr-option.md +5 -2
  530. package/llms/components/lr-pdf-viewer.md +62 -2
  531. package/llms/components/lr-pie-chart.md +4 -3
  532. package/llms/components/lr-polar-area-chart.md +4 -3
  533. package/llms/components/lr-popover.md +5 -0
  534. package/llms/components/lr-progress-ring.md +8 -1
  535. package/llms/components/lr-prompt-studio.md +1 -1
  536. package/llms/components/lr-provenance-panel.md +4 -2
  537. package/llms/components/lr-qr-code.md +1 -1
  538. package/llms/components/lr-radar-chart.md +4 -3
  539. package/llms/components/lr-rag-eval-dashboard.md +2 -2
  540. package/llms/components/lr-random-content.md +13 -0
  541. package/llms/components/lr-reorder-item.md +6 -1
  542. package/llms/components/lr-reorder-list.md +6 -1
  543. package/llms/components/lr-responsive-panel.md +11 -7
  544. package/llms/components/lr-scatter-chart.md +4 -3
  545. package/llms/components/lr-sequence-strip.md +16 -2
  546. package/llms/components/lr-slider.md +12 -5
  547. package/llms/components/lr-sparkline.md +1 -1
  548. package/llms/components/lr-suggestion-chips.md +7 -2
  549. package/llms/components/lr-swatch-picker.md +5 -5
  550. package/llms/components/lr-switch.md +5 -2
  551. package/llms/components/lr-table.md +30 -4
  552. package/llms/components/lr-terminal.md +3 -1
  553. package/llms/components/lr-thread-list.md +8 -8
  554. package/llms/components/lr-time-input.md +6 -1
  555. package/llms/components/lr-timeline-item.md +24 -0
  556. package/llms/components/lr-timeline.md +25 -1
  557. package/llms/components/lr-token-input.md +7 -2
  558. package/llms/components/lr-tool-approval-dialog.md +7 -8
  559. package/llms/components/lr-tool-call-chip.md +5 -1
  560. package/llms/components/lr-tool-param-form.md +14 -12
  561. package/llms/components/lr-tool-result-dialog.md +11 -9
  562. package/llms/components/lr-tool-result-view.md +7 -6
  563. package/llms/components/lr-tool-select-dialog.md +18 -16
  564. package/llms/components/lr-trace-tree.md +3 -1
  565. package/llms/components/lr-usage-badge.md +4 -1
  566. package/llms/components/lr-video-playlist.md +1 -1
  567. package/llms/components/lr-virtual-list.md +22 -14
  568. package/llms/components/lr-voice-picker.md +8 -5
  569. package/llms/components/lr-widget-renderer.md +3 -3
  570. package/llms/components/lr-widget.md +1 -1
  571. package/llms/components/lr-word-cloud.md +6 -2
  572. package/llms/peers.md +12 -2
  573. package/llms/shared.md +70 -2
  574. package/llms-full.txt +1143 -285
  575. package/package.json +17 -5
  576. package/vscode-css-data.json +37 -2
  577. package/vscode-html-data.json +401 -44
  578. package/web-types.json +299 -55
@@ -29,15 +29,6 @@ import{css}from"lit";const styles=css`
29
29
  color: var(--text-color, var(--_lr-data-grid-text-color));
30
30
  }
31
31
 
32
- /* Wires the size density ladder into the values above. The "m" tier is the :host block's own
33
- default, so it is intentionally absent here -- these rules only override the non-default
34
- tiers, leaving "m" byte-for-byte what it always rendered.
35
-
36
- Deliberately NOT sourced from the shared sizes stylesheet's --lr-form-control-height /
37
- --lr-form-control-padding-* -- that ladder is tuned for single-line form controls and its "m"
38
- tier (2.5rem) sits BELOW this component's own "m" row-height (3.5rem), so borrowing it verbatim
39
- would make "l" (3rem) render shorter than the default row, inverting the ladder. Each tier
40
- below instead scales this component's own row-height/cell-padding baseline directly. */
41
32
  :host([size="xs"]) {
42
33
  --_lr-data-grid-cell-padding: var(--lr-space-xs);
43
34
  --_lr-data-grid-header-row-height: var(--lr-size-2rem);
@@ -114,8 +105,6 @@ import{css}from"lit";const styles=css`
114
105
  color: var(--lr-color-text-quiet);
115
106
  }
116
107
 
117
- /* Search decorations belong to WebKit's native chrome. Reset them unconditionally in both
118
- entry points so the component owns the control palette on Safari as well as Chromium. */
119
108
  [part="search"]::-webkit-search-cancel-button,
120
109
  [part="search"]::-webkit-search-decoration,
121
110
  [part="filter-panel"] input[type="search"]::-webkit-search-cancel-button,
@@ -310,9 +299,6 @@ import{css}from"lit";const styles=css`
310
299
  );
311
300
  }
312
301
 
313
- /* MUST stay after the selected-row rule above: both are (0,2,0), so source order alone decides,
314
- and the selected row is the one a user is most likely to hover next -- put this before and the
315
- single most common hover in a selectable grid would be the one hover with no feedback. */
316
302
  [part~="row"]:hover {
317
303
  background: var(
318
304
  --row-hover-background,
@@ -320,9 +306,6 @@ import{css}from"lit";const styles=css`
320
306
  );
321
307
  }
322
308
 
323
- /* MUST stay after the selected-row rule above: both are (0,2,0), so source order alone decides,
324
- and the selected row is the one a user presses to DEselect -- put this first and the single
325
- most common press in a selectable grid would be the one press with no feedback. */
326
309
  [part~="row"]:active {
327
310
  background: color-mix(
328
311
  in srgb,
@@ -595,16 +578,11 @@ import{css}from"lit";const styles=css`
595
578
  line-height: var(--lr-line-height-none);
596
579
  }
597
580
 
598
- /* The two chevrons of an edge button overlap slightly so they read as one doubled glyph rather
599
- than two separate arrows -- matches lr-pagination's identical first/last treatment. */
600
581
  [part="first-icon"] svg + svg,
601
582
  [part="last-icon"] svg + svg {
602
583
  margin-inline-start: var(--lr-size-neg-4px);
603
584
  }
604
585
 
605
- /* chevronIcon() points right by default, so 'next'/'last' render unrotated and
606
- 'first'/'previous' rotate to point left -- then both pairs flip under RTL, exactly like
607
- lr-pagination's first/previous/next/last icons. */
608
586
  [part="first-icon"],
609
587
  [part="previous-icon"] {
610
588
  transform: rotate(180deg);
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{getDateTimeFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./document-library.styles.js";import{LYRA_DEFAULT_documentLibraryClearSelection,LYRA_DEFAULT_documentLibraryEmptyHeading,LYRA_DEFAULT_documentLibraryFilterByTag,LYRA_DEFAULT_documentLibraryFreshnessAging,LYRA_DEFAULT_documentLibraryFreshnessColumn,LYRA_DEFAULT_documentLibraryFreshnessFresh,LYRA_DEFAULT_documentLibraryFreshnessStale,LYRA_DEFAULT_documentLibraryLabel,LYRA_DEFAULT_documentLibraryNameColumn,LYRA_DEFAULT_documentLibraryNoMatchesHeading,LYRA_DEFAULT_documentLibraryOwnerColumn,LYRA_DEFAULT_documentLibrarySearchPlaceholder,LYRA_DEFAULT_documentLibrarySelectAll,LYRA_DEFAULT_documentLibrarySelectColumn,LYRA_DEFAULT_documentLibrarySelectDocument,LYRA_DEFAULT_documentLibrarySelectedCount,LYRA_DEFAULT_documentLibraryTagsColumn,LYRA_DEFAULT_documentLibraryTypeColumn,LYRA_DEFAULT_documentLibraryUpdatedColumn,LYRA_DEFAULT_documentLibraryVersionColumn}from"../../../internal/default-strings.generated.js";const FRESHNESS_RANK={fresh:0,aging:1,stale:2},MAX_LIBRARY_COLLECTION_ENTRIES=1e4,FRESHNESS_TONE={fresh:"success",aging:"warning",stale:"danger"};class LyraDocumentLibrary extends LyraElement{constructor(){super(...arguments),this._documents=Object.freeze([]),this._selectedDocumentIds=Object.freeze([]),this._tagFilter=Object.freeze([]),this.sortKey="name",this.sortDir="asc",this.searchTerm="",this.loading=!1,this.isMounting=!0,this.defaultFilter=(document,query)=>{const locale=this.effectiveLocale;return[document.name,document.owner??"",...document.tags??[]].some(value=>value.toLocaleLowerCase(locale).includes(query))},this.compareDocuments=(a,b)=>{const locale=this.effectiveLocale,dir=this.sortDir==="asc"?1:-1;let result=0;switch(this.sortKey){case"name":result=a.name.localeCompare(b.name,locale,{numeric:!0});break;case"version":result=(a.version??"").localeCompare(b.version??"",locale,{numeric:!0});break;case"owner":result=(a.owner??"").localeCompare(b.owner??"",locale,{numeric:!0});break;case"freshness":result=(a.freshness?FRESHNESS_RANK[a.freshness]:3)-(b.freshness?FRESHNESS_RANK[b.freshness]:3);break;case"updatedAt":result=(this.normalizeDate(a.updatedAt)?.getTime()??0)-(this.normalizeDate(b.updatedAt)?.getTime()??0);break}return result*dir},this.onSearchInput=event=>{event.stopPropagation(),this.searchTerm=event.detail.value,this.emitFilterChange()},this.onTagFilterChange=event=>{event.stopPropagation();const combobox=event.target;this.tagFilter=Array.isArray(combobox.value)?combobox.value:[],this.emitFilterChange()},this.onTableSortRequest=event=>{if(event.stopPropagation(),!this.isSortKey(event.detail.sortKey)){event.preventDefault();return}const detail=Object.freeze({phase:"request",sortKey:event.detail.sortKey,sortDir:event.detail.sortDir});this.emit("lr-sort-request",detail,{cancelable:!0}).defaultPrevented&&event.preventDefault()},this.onTableSortCommit=event=>{event.stopPropagation(),this.isSortKey(event.detail.sortKey)&&(this.sortKey=event.detail.sortKey,this.sortDir=event.detail.sortDir,this.emit("lr-sort",Object.freeze({phase:"commit",sortKey:this.sortKey,sortDir:this.sortDir})))},this.stopOwnedEvent=event=>{event.stopPropagation()},this.onTableSelectionChange=event=>{event.stopPropagation();const table=event.currentTarget;table.selectedRowKeys=new Set(this.selectedDocumentIds)},this.clearSelection=()=>{this.setSelected([])}}static{this.defaultStrings={...super.defaultStrings,documentLibraryClearSelection:LYRA_DEFAULT_documentLibraryClearSelection,documentLibraryEmptyHeading:LYRA_DEFAULT_documentLibraryEmptyHeading,documentLibraryFilterByTag:LYRA_DEFAULT_documentLibraryFilterByTag,documentLibraryFreshnessAging:LYRA_DEFAULT_documentLibraryFreshnessAging,documentLibraryFreshnessColumn:LYRA_DEFAULT_documentLibraryFreshnessColumn,documentLibraryFreshnessFresh:LYRA_DEFAULT_documentLibraryFreshnessFresh,documentLibraryFreshnessStale:LYRA_DEFAULT_documentLibraryFreshnessStale,documentLibraryLabel:LYRA_DEFAULT_documentLibraryLabel,documentLibraryNameColumn:LYRA_DEFAULT_documentLibraryNameColumn,documentLibraryNoMatchesHeading:LYRA_DEFAULT_documentLibraryNoMatchesHeading,documentLibraryOwnerColumn:LYRA_DEFAULT_documentLibraryOwnerColumn,documentLibrarySearchPlaceholder:LYRA_DEFAULT_documentLibrarySearchPlaceholder,documentLibrarySelectAll:LYRA_DEFAULT_documentLibrarySelectAll,documentLibrarySelectColumn:LYRA_DEFAULT_documentLibrarySelectColumn,documentLibrarySelectDocument:LYRA_DEFAULT_documentLibrarySelectDocument,documentLibrarySelectedCount:LYRA_DEFAULT_documentLibrarySelectedCount,documentLibraryTagsColumn:LYRA_DEFAULT_documentLibraryTagsColumn,documentLibraryTypeColumn:LYRA_DEFAULT_documentLibraryTypeColumn,documentLibraryUpdatedColumn:LYRA_DEFAULT_documentLibraryUpdatedColumn,documentLibraryVersionColumn:LYRA_DEFAULT_documentLibraryVersionColumn}}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-filter-change","lr-selection-change"])}get documents(){return this.snapshotDocuments(this._documents)}set documents(value){const previous=this._documents;this._documents=this.snapshotDocuments(Array.isArray(value)?value:[]),this.requestUpdate("documents",previous)}get selectedDocumentIds(){return this._selectedDocumentIds}set selectedDocumentIds(value){const previous=this._selectedDocumentIds;this._selectedDocumentIds=this.snapshotIds(Array.isArray(value)?value:[]),this.requestUpdate("selectedDocumentIds",previous)}get tagFilter(){return this._tagFilter}set tagFilter(value){const previous=this._tagFilter;this._tagFilter=this.snapshotIds(Array.isArray(value)?value:[]),this.requestUpdate("tagFilter",previous)}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink()}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}snapshotDocuments(documents){const snapshot=[],seen=new Set;for(const document of documents.slice(0,MAX_LIBRARY_COLLECTION_ENTRIES))try{const id=document?.id;if(typeof id!="string"||id.trim().length===0||seen.has(id))continue;const updatedAt=document.updatedAt instanceof Date?new Date(document.updatedAt.getTime()):document.updatedAt,tags=document.tags===void 0?void 0:Object.freeze(document.tags.slice(0,MAX_LIBRARY_COLLECTION_ENTRIES)),retained=Object.freeze({...document,id,updatedAt,tags});seen.add(id),snapshot.push(retained)}catch{}return Object.freeze(snapshot)}snapshotIds(ids){const snapshot=[],seen=new Set;try{for(const id of ids)if(!seen.has(id)&&(seen.add(id),snapshot.push(id),snapshot.length>=MAX_LIBRARY_COLLECTION_ENTRIES))break}catch{}return Object.freeze(snapshot)}willUpdate(changed){if(super.willUpdate(changed),(changed.has("documents")||changed.has("selectedDocumentIds"))&&this.selectedDocumentIds.length>0){const existing=new Set(this._documents.map(doc=>doc.id)),normalized=this.snapshotIds(this.selectedDocumentIds.filter(id=>existing.has(id)));(normalized.length!==this.selectedDocumentIds.length||normalized.some((id,index)=>id!==this.selectedDocumentIds[index]))&&(this.selectedDocumentIds=normalized)}if((changed.has("documents")||changed.has("tagFilter"))&&this.tagFilter.length>0){const availableTags=new Set(this._documents.flatMap(document=>document.tags??[])),normalized=this.snapshotIds(this.tagFilter.filter(tag=>availableTags.has(tag)));(normalized.length!==this.tagFilter.length||normalized.some((tag,index)=>tag!==this.tagFilter[index]))&&(this.tagFilter=normalized)}}updated(changed){super.updated(changed),!this.isMounting&&changed.has("selectedDocumentIds")&&this.announcementSink?.announce(this.selectionCountText()),this.isMounting=!1}selectionCountText(){return this.localize("documentLibrarySelectedCount",void 0,{count:getNumberFormat(this.effectiveLocale).format(this.selectedDocumentIds.length)})}normalizeDate(value){if(value===void 0)return;const date=value instanceof Date?value:new Date(value);return Number.isNaN(date.getTime())?void 0:date}matchesTagFilter(document){if(this.tagFilter.length===0)return!0;const tags=new Set(document.tags??[]);return this.tagFilter.every(tag=>tags.has(tag))}get visibleDocuments(){const query=this.searchTerm.trim().toLocaleLowerCase(this.effectiveLocale),matchFn=this.filter??this.defaultFilter;return[...this._documents.filter(document=>(query===""||matchFn(document,query))&&this.matchesTagFilter(document))].sort(this.compareDocuments)}get allTags(){const tags=new Set;for(const document of this._documents)for(const tag of document.tags??[])tags.add(tag);return[...tags].sort((a,b)=>a.localeCompare(b,this.effectiveLocale))}emitFilterChange(){const tags=Object.freeze([...this.tagFilter]);this.emit("lr-filter-change",Object.freeze({searchTerm:this.searchTerm,tags,matchCount:this.visibleDocuments.length}))}isSortKey(value){return value==="name"||value==="version"||value==="owner"||value==="freshness"||value==="updatedAt"}openDocument(document){this.emit("lr-open",Object.freeze({documentId:document.id}))}setSelected(ids){this.selectedDocumentIds=[...ids];const eventIds=Object.freeze([...this.selectedDocumentIds]);this.emit("lr-selection-change",Object.freeze({documentIds:eventIds}))}toggleSelection(document,checked){const next=new Set(this.selectedDocumentIds);checked?next.add(document.id):next.delete(document.id),this.setSelected(next)}toggleSelectAll(checked,visible){const next=new Set(this.selectedDocumentIds);for(const document of visible)checked?next.add(document.id):next.delete(document.id);this.setSelected(next)}freshnessLabel(freshness){switch(freshness){case"fresh":return this.localize("documentLibraryFreshnessFresh");case"aging":return this.localize("documentLibraryFreshnessAging");case"stale":return this.localize("documentLibraryFreshnessStale")}}renderSelectAllCheckbox(visible){const allSelected=visible.length>0&&visible.every(document=>this.selectedDocumentIds.includes(document.id)),someSelected=!allSelected&&visible.some(document=>this.selectedDocumentIds.includes(document.id));return html`<lr-checkbox
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{getDateTimeFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{styles}from"./document-library.styles.js";import{LYRA_DEFAULT_documentLibraryClearSelection,LYRA_DEFAULT_documentLibraryEmptyHeading,LYRA_DEFAULT_documentLibraryFilterByTag,LYRA_DEFAULT_documentLibraryFreshnessAging,LYRA_DEFAULT_documentLibraryFreshnessColumn,LYRA_DEFAULT_documentLibraryFreshnessFresh,LYRA_DEFAULT_documentLibraryFreshnessStale,LYRA_DEFAULT_documentLibraryLabel,LYRA_DEFAULT_documentLibraryNameColumn,LYRA_DEFAULT_documentLibraryNoMatchesHeading,LYRA_DEFAULT_documentLibraryOwnerColumn,LYRA_DEFAULT_documentLibrarySearchPlaceholder,LYRA_DEFAULT_documentLibrarySelectAll,LYRA_DEFAULT_documentLibrarySelectColumn,LYRA_DEFAULT_documentLibrarySelectDocument,LYRA_DEFAULT_documentLibrarySelectedCount,LYRA_DEFAULT_documentLibraryTagsColumn,LYRA_DEFAULT_documentLibraryTypeColumn,LYRA_DEFAULT_documentLibraryUpdatedColumn,LYRA_DEFAULT_documentLibraryVersionColumn}from"../../../internal/default-strings.generated.js";const FRESHNESS_RANK={fresh:0,aging:1,stale:2},MAX_LIBRARY_COLLECTION_ENTRIES=1e4,FRESHNESS_TONE={fresh:"success",aging:"warning",stale:"danger"};class LyraDocumentLibrary extends LyraElement{constructor(){super(...arguments),this._documents=Object.freeze([]),this._selectedDocumentIds=Object.freeze([]),this._tagFilter=Object.freeze([]),this.sortKey="name",this.sortDir="asc",this.searchTerm="",this.loading=!1,this.isMounting=!0,this.defaultFilter=(document,query)=>{const locale=this.effectiveLocale;return[document.name,document.owner??"",...document.tags??[]].some(value=>value.toLocaleLowerCase(locale).includes(query))},this.compareDocuments=(a,b)=>{const locale=this.effectiveLocale,dir=this.sortDir==="asc"?1:-1;let result=0;switch(this.sortKey){case"name":result=a.name.localeCompare(b.name,locale,{numeric:!0});break;case"version":result=(a.version??"").localeCompare(b.version??"",locale,{numeric:!0});break;case"owner":result=(a.owner??"").localeCompare(b.owner??"",locale,{numeric:!0});break;case"freshness":result=(a.freshness?FRESHNESS_RANK[a.freshness]:3)-(b.freshness?FRESHNESS_RANK[b.freshness]:3);break;case"updatedAt":result=(this.normalizeDate(a.updatedAt)?.getTime()??0)-(this.normalizeDate(b.updatedAt)?.getTime()??0);break}return result*dir},this.onSearchInput=event=>{event.stopPropagation(),this.searchTerm=event.detail.value,this.emitFilterChange()},this.onTagFilterChange=event=>{event.stopPropagation();const combobox=event.target;this.tagFilter=Array.isArray(combobox.value)?combobox.value:[],this.emitFilterChange()},this.onTableSortRequest=event=>{if(event.stopPropagation(),!this.isSortKey(event.detail.sortKey)){event.preventDefault();return}const detail=Object.freeze({phase:"request",sortKey:event.detail.sortKey,sortDir:event.detail.sortDir});this.emit("lr-sort-request",detail,{cancelable:!0}).defaultPrevented&&event.preventDefault()},this.onTableSortCommit=event=>{event.stopPropagation(),this.isSortKey(event.detail.sortKey)&&(this.sortKey=event.detail.sortKey,this.sortDir=event.detail.sortDir,this.emit("lr-sort",Object.freeze({phase:"commit",sortKey:this.sortKey,sortDir:this.sortDir})))},this.stopOwnedEvent=event=>{event.stopPropagation()},this.onTableSelectionChange=event=>{event.stopPropagation();const table=event.currentTarget;table.selectedRowKeys=new Set(this.selectedDocumentIds)},this.clearSelection=()=>{this.setSelected([])}}static{this.defaultStrings={...super.defaultStrings,documentLibraryClearSelection:LYRA_DEFAULT_documentLibraryClearSelection,documentLibraryEmptyHeading:LYRA_DEFAULT_documentLibraryEmptyHeading,documentLibraryFilterByTag:LYRA_DEFAULT_documentLibraryFilterByTag,documentLibraryFreshnessAging:LYRA_DEFAULT_documentLibraryFreshnessAging,documentLibraryFreshnessColumn:LYRA_DEFAULT_documentLibraryFreshnessColumn,documentLibraryFreshnessFresh:LYRA_DEFAULT_documentLibraryFreshnessFresh,documentLibraryFreshnessStale:LYRA_DEFAULT_documentLibraryFreshnessStale,documentLibraryLabel:LYRA_DEFAULT_documentLibraryLabel,documentLibraryNameColumn:LYRA_DEFAULT_documentLibraryNameColumn,documentLibraryNoMatchesHeading:LYRA_DEFAULT_documentLibraryNoMatchesHeading,documentLibraryOwnerColumn:LYRA_DEFAULT_documentLibraryOwnerColumn,documentLibrarySearchPlaceholder:LYRA_DEFAULT_documentLibrarySearchPlaceholder,documentLibrarySelectAll:LYRA_DEFAULT_documentLibrarySelectAll,documentLibrarySelectColumn:LYRA_DEFAULT_documentLibrarySelectColumn,documentLibrarySelectDocument:LYRA_DEFAULT_documentLibrarySelectDocument,documentLibrarySelectedCount:LYRA_DEFAULT_documentLibrarySelectedCount,documentLibraryTagsColumn:LYRA_DEFAULT_documentLibraryTagsColumn,documentLibraryTypeColumn:LYRA_DEFAULT_documentLibraryTypeColumn,documentLibraryUpdatedColumn:LYRA_DEFAULT_documentLibraryUpdatedColumn,documentLibraryVersionColumn:LYRA_DEFAULT_documentLibraryVersionColumn}}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-filter-change","lr-selection-change"])}get documents(){return this.snapshotDocuments(this._documents)}set documents(value){const previous=this._documents;this._documents=this.snapshotDocuments(Array.isArray(value)?value:[]),this.requestUpdate("documents",previous)}get selectedDocumentIds(){return this._selectedDocumentIds}set selectedDocumentIds(value){const previous=this._selectedDocumentIds;this._selectedDocumentIds=this.snapshotIds(Array.isArray(value)?value:[]),this.requestUpdate("selectedDocumentIds",previous)}get tagFilter(){return this._tagFilter}set tagFilter(value){const previous=this._tagFilter;this._tagFilter=this.snapshotIds(Array.isArray(value)?value:[]),this.requestUpdate("tagFilter",previous)}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink()}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}snapshotDocuments(documents){const snapshot=[],seen=new Set;for(const document of documents.slice(0,MAX_LIBRARY_COLLECTION_ENTRIES))try{const id=document?.id;if(typeof id!="string"||id.trim().length===0||seen.has(id))continue;const updatedAt=document.updatedAt instanceof Date?new Date(document.updatedAt.getTime()):document.updatedAt,tags=document.tags===void 0?void 0:Object.freeze(document.tags.slice(0,MAX_LIBRARY_COLLECTION_ENTRIES)),retained=Object.freeze({...document,id,updatedAt,tags});seen.add(id),snapshot.push(retained)}catch{}return Object.freeze(snapshot)}snapshotIds(ids){const snapshot=[],seen=new Set;try{for(const id of ids)if(!seen.has(id)&&(seen.add(id),snapshot.push(id),snapshot.length>=MAX_LIBRARY_COLLECTION_ENTRIES))break}catch{}return Object.freeze(snapshot)}willUpdate(changed){if(super.willUpdate(changed),(changed.has("documents")||changed.has("selectedDocumentIds"))&&this.selectedDocumentIds.length>0){const existing=new Set(this._documents.map(doc=>doc.id)),normalized=this.snapshotIds(this.selectedDocumentIds.filter(id=>existing.has(id)));(normalized.length!==this.selectedDocumentIds.length||normalized.some((id,index)=>id!==this.selectedDocumentIds[index]))&&(this.selectedDocumentIds=normalized)}if((changed.has("documents")||changed.has("tagFilter"))&&this.tagFilter.length>0){const availableTags=new Set(this._documents.flatMap(document=>document.tags??[])),normalized=this.snapshotIds(this.tagFilter.filter(tag=>availableTags.has(tag)));(normalized.length!==this.tagFilter.length||normalized.some((tag,index)=>tag!==this.tagFilter[index]))&&(this.tagFilter=normalized)}}updated(changed){super.updated(changed),!this.isMounting&&changed.has("selectedDocumentIds")&&this.announcementSink?.announce(this.selectionCountText()),this.isMounting=!1}selectionCountText(){return this.localize("documentLibrarySelectedCount",void 0,{count:getNumberFormat(this.effectiveLocale).format(this.selectedDocumentIds.length)})}normalizeDate(value){if(value===void 0)return;const date=value instanceof Date?value:new Date(value);return Number.isNaN(date.getTime())?void 0:date}matchesTagFilter(document){if(this.tagFilter.length===0)return!0;const tags=new Set(document.tags??[]);return this.tagFilter.every(tag=>tags.has(tag))}get visibleDocuments(){const query=this.searchTerm.trim().toLocaleLowerCase(this.effectiveLocale),matchFn=this.filter??this.defaultFilter;return[...this._documents.filter(document=>(query===""||matchFn(document,query))&&this.matchesTagFilter(document))].sort(this.compareDocuments)}get allTags(){const tags=new Set;for(const document of this._documents)for(const tag of document.tags??[])tags.add(tag);return[...tags].sort((a,b)=>a.localeCompare(b,this.effectiveLocale))}emitFilterChange(){const tags=Object.freeze([...this.tagFilter]);this.emit("lr-filter-change",Object.freeze({searchTerm:this.searchTerm,tags,matchCount:this.visibleDocuments.length}))}isSortKey(value){return value==="name"||value==="version"||value==="owner"||value==="freshness"||value==="updatedAt"}openDocument(document){this.emit("lr-open",Object.freeze({documentId:document.id}))}setSelected(ids){this.selectedDocumentIds=[...ids];const eventIds=Object.freeze([...this.selectedDocumentIds]);this.emit("lr-selection-change",Object.freeze({documentIds:eventIds}))}toggleSelection(document,checked){const next=new Set(this.selectedDocumentIds);checked?next.add(document.id):next.delete(document.id),this.setSelected(next)}toggleSelectAll(checked,visible){const next=new Set(this.selectedDocumentIds);for(const document of visible)checked?next.add(document.id):next.delete(document.id);this.setSelected(next)}freshnessLabel(freshness){switch(freshness){case"fresh":return this.localize("documentLibraryFreshnessFresh");case"aging":return this.localize("documentLibraryFreshnessAging");case"stale":return this.localize("documentLibraryFreshnessStale")}}renderSelectAllCheckbox(visible){const allSelected=visible.length>0&&visible.every(document=>this.selectedDocumentIds.includes(document.id)),someSelected=!allSelected&&visible.some(document=>this.selectedDocumentIds.includes(document.id));return html`<lr-checkbox
2
2
  .checked=${allSelected}
3
3
  .indeterminate=${someSelected}
4
4
  aria-label=${this.localize("documentLibrarySelectAll")}
@@ -27,7 +27,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
27
27
  mime-type=${document.mimeType??""}
28
28
  name=${document.name}
29
29
  decorative
30
- ></lr-file-icon>`},{key:"name",label:this.localize("documentLibraryNameColumn"),sortable:!0,cell:document=>this.renderNameCell(document)},{key:"version",label:this.localize("documentLibraryVersionColumn"),sortable:!0,priority:"medium",cell:document=>document.version??""},{key:"owner",label:this.localize("documentLibraryOwnerColumn"),sortable:!0,priority:"medium",cell:document=>document.owner??""},{key:"tags",label:this.localize("documentLibraryTagsColumn"),priority:"low",cell:document=>this.renderTagsCell(document)},{key:"freshness",label:this.localize("documentLibraryFreshnessColumn"),sortable:!0,priority:"low",cell:document=>this.renderFreshnessCell(document)},{key:"updatedAt",label:this.localize("documentLibraryUpdatedColumn"),sortable:!0,priority:"low",cell:document=>this.renderUpdatedCell(document)}]}render(){const label=this.getAttribute("aria-label")?.trim()||(this.label==null?this.localize("documentLibraryLabel"):this.label),visible=this.visibleDocuments,tags=this.allTags,emptyHeading=this._documents.length===0?this.localize("documentLibraryEmptyHeading"):this.localize("documentLibraryNoMatchesHeading");return html`
30
+ ></lr-file-icon>`},{key:"name",label:this.localize("documentLibraryNameColumn"),sortable:!0,cell:document=>this.renderNameCell(document)},{key:"version",label:this.localize("documentLibraryVersionColumn"),sortable:!0,priority:"medium",cell:document=>document.version??""},{key:"owner",label:this.localize("documentLibraryOwnerColumn"),sortable:!0,priority:"medium",cell:document=>document.owner??""},{key:"tags",label:this.localize("documentLibraryTagsColumn"),priority:"low",cell:document=>this.renderTagsCell(document)},{key:"freshness",label:this.localize("documentLibraryFreshnessColumn"),sortable:!0,priority:"low",cell:document=>this.renderFreshnessCell(document)},{key:"updatedAt",label:this.localize("documentLibraryUpdatedColumn"),sortable:!0,priority:"low",cell:document=>this.renderUpdatedCell(document)}]}render(){const label=hostAriaLabel(this)?.trim()??(this.label==null?this.localize("documentLibraryLabel"):this.label),visible=this.visibleDocuments,tags=this.allTags,emptyHeading=this._documents.length===0?this.localize("documentLibraryEmptyHeading"):this.localize("documentLibraryNoMatchesHeading");return html`
31
31
  <div part="base" role="region" aria-label=${label}>
32
32
  <div part="toolbar">
33
33
  <lr-input
@@ -49,10 +49,6 @@ import{css}from"lit";const styles=css`
49
49
  [part='clear-selection']:hover {
50
50
  text-decoration: underline;
51
51
  }
52
- /* Pressed deepens the link colour on top of the hovered underline: an underline alone cannot get
53
- "more underlined", so the press would otherwise be indistinguishable from the hover it starts
54
- from. The mix follows --lr-color-mix-partner (the text colour), so it darkens a light theme and
55
- lightens a dark one instead of always doing one of the two. */
56
52
  [part='clear-selection']:active {
57
53
  color: color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active));
58
54
  text-decoration: underline;
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{styles}from"./env-list.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{writeClipboardText}from"../../../internal/clipboard.js";import{LYRA_DEFAULT_copied,LYRA_DEFAULT_copy,LYRA_DEFAULT_copyFailed,LYRA_DEFAULT_envListCopy,LYRA_DEFAULT_envListHide,LYRA_DEFAULT_envListLabel,LYRA_DEFAULT_envListReveal,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_noData}from"../../../internal/default-strings.generated.js";const MASK="\u2022".repeat(8),MAX_ENV_ENTRIES=1e4;class LyraEnvList extends LyraElement{constructor(){super(...arguments),this._entries=[],this.revealable=!0,this.copyable=!0,this.revealed=new Map}static{this.defaultStrings={...super.defaultStrings,copied:LYRA_DEFAULT_copied,copy:LYRA_DEFAULT_copy,copyFailed:LYRA_DEFAULT_copyFailed,envListCopy:LYRA_DEFAULT_envListCopy,envListHide:LYRA_DEFAULT_envListHide,envListLabel:LYRA_DEFAULT_envListLabel,envListReveal:LYRA_DEFAULT_envListReveal,envListValueHidden:LYRA_DEFAULT_envListValueHidden,noData:LYRA_DEFAULT_noData}}static{this.styles=[LyraElement.styles,styles,srOnly]}get entries(){return this._entries}set entries(value){const previous=this._entries,next=[],seen=new Set;if(Array.isArray(value))for(const candidate of value.slice(0,MAX_ENV_ENTRIES))try{if(!candidate||typeof candidate.name!="string"||typeof candidate.value!="string")continue;const name=candidate.name;if(name.trim().length===0||seen.has(name))continue;next.push(Object.freeze({name,value:candidate.value,...candidate.secret===void 0?{}:{secret:!!candidate.secret}})),seen.add(name)}catch{}this._entries=Object.freeze(next),this.requestUpdate("entries",previous)}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink()}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}willUpdate(changed){if(super.willUpdate(changed),changed.has("revealable")&&!this.revealable&&this.revealed.size>0&&(this.revealed=new Map),changed.has("entries")){const previous=changed.get("entries")??[],next=new Map;this.entries.forEach((entry,index)=>{if(previous[index]?.name!==entry.name)return;const wasRevealed=this.revealed.get(entry.name);wasRevealed!==void 0&&next.set(entry.name,wasRevealed)}),this.revealed=next}}toggleReveal(envName){const isRevealed=!(this.revealed.get(envName)??!1),next=new Map(this.revealed);next.set(envName,isRevealed),this.revealed=next,this.emit("lr-reveal-change",Object.freeze({envName,revealed:isRevealed}))}async copy(entry){const text=entry.value,owner=this.isConnected?this.ownerDocument.defaultView:null,outcome=await writeClipboardText(owner,text);if(!(!this.isConnected||this.ownerDocument.defaultView!==owner)){if(outcome.ok){this.announcementSink?.announce(this.localize("copied")),this.emit("lr-copy",outcome);return}this.announcementSink?.announce(this.localize("copyFailed")),this.emit("lr-error"),this.emit("lr-copy-error",outcome)}}get accessibleLabel(){return this.getAttribute("aria-label")?.trim()||(this.label==null?this.localize("envListLabel"):this.label)}render(){return this.entries.length===0?html`
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel,srOnly}from"../../../internal/a11y.js";import{styles}from"./env-list.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{writeClipboardText}from"../../../internal/clipboard.js";import{LYRA_DEFAULT_copied,LYRA_DEFAULT_copy,LYRA_DEFAULT_copyFailed,LYRA_DEFAULT_envListCopy,LYRA_DEFAULT_envListHide,LYRA_DEFAULT_envListLabel,LYRA_DEFAULT_envListReveal,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_noData}from"../../../internal/default-strings.generated.js";const MASK="\u2022".repeat(8),MAX_ENV_ENTRIES=1e4;class LyraEnvList extends LyraElement{constructor(){super(...arguments),this._entries=[],this.revealable=!0,this.copyable=!0,this.revealed=new Map}static{this.defaultStrings={...super.defaultStrings,copied:LYRA_DEFAULT_copied,copy:LYRA_DEFAULT_copy,copyFailed:LYRA_DEFAULT_copyFailed,envListCopy:LYRA_DEFAULT_envListCopy,envListHide:LYRA_DEFAULT_envListHide,envListLabel:LYRA_DEFAULT_envListLabel,envListReveal:LYRA_DEFAULT_envListReveal,envListValueHidden:LYRA_DEFAULT_envListValueHidden,noData:LYRA_DEFAULT_noData}}static{this.styles=[LyraElement.styles,styles,srOnly]}get entries(){return this._entries}set entries(value){const previous=this._entries,next=[],seen=new Set;if(Array.isArray(value))for(const candidate of value.slice(0,MAX_ENV_ENTRIES))try{if(!candidate||typeof candidate.name!="string"||typeof candidate.value!="string")continue;const name=candidate.name;if(name.trim().length===0||seen.has(name))continue;next.push(Object.freeze({name,value:candidate.value,...candidate.secret===void 0?{}:{secret:!!candidate.secret}})),seen.add(name)}catch{}this._entries=Object.freeze(next),this.requestUpdate("entries",previous)}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink()}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}willUpdate(changed){if(super.willUpdate(changed),changed.has("revealable")&&!this.revealable&&this.revealed.size>0&&(this.revealed=new Map),changed.has("entries")){const previous=changed.get("entries")??[],next=new Map;this.entries.forEach((entry,index)=>{if(previous[index]?.name!==entry.name)return;const wasRevealed=this.revealed.get(entry.name);wasRevealed!==void 0&&next.set(entry.name,wasRevealed)}),this.revealed=next}}toggleReveal(envName){const isRevealed=!(this.revealed.get(envName)??!1),next=new Map(this.revealed);next.set(envName,isRevealed),this.revealed=next,this.emit("lr-reveal-change",Object.freeze({envName,revealed:isRevealed}))}async copy(entry){const text=entry.value,owner=this.isConnected?this.ownerDocument.defaultView:null,outcome=await writeClipboardText(owner,text);if(!(!this.isConnected||this.ownerDocument.defaultView!==owner)){if(outcome.ok){this.announcementSink?.announce(this.localize("copied")),this.emit("lr-copy",outcome);return}this.announcementSink?.announce(this.localize("copyFailed")),this.emit("lr-error"),this.emit("lr-copy-error",outcome)}}get accessibleLabel(){return hostAriaLabel(this)?.trim()??(this.label==null?this.localize("envListLabel"):this.label)}render(){return this.entries.length===0?html`
2
2
  <div part="base" data-empty role="group" aria-label=${this.accessibleLabel}>
3
3
  <lr-empty heading=${this.localize("noData")}></lr-empty>
4
4
  </div>
@@ -68,10 +68,13 @@ import{css}from"lit";const styles=css`
68
68
  background: var(--lr-env-list-reveal-active-bg, var(--lr-color-brand-quiet));
69
69
  border-color: var(--lr-env-list-reveal-active-border, var(--lr-color-brand));
70
70
  }
71
- /* MUST stay after the [aria-pressed='true'] rule above: both are (0,2,0), so source order alone
72
- decides, and a revealed button's toggled-on fill is the same brand-quiet the hover uses -- put
73
- this first and pressing the one button whose state you are about to flip would show nothing at
74
- all. Only the fill is claimed, so the toggled border colour still reads while pressed. */
71
+ [part='reveal-button']:where([aria-pressed='true']):hover {
72
+ background: color-mix(
73
+ in oklab,
74
+ var(--lr-env-list-reveal-active-bg, var(--lr-color-brand-quiet)),
75
+ var(--lr-color-mix-partner) var(--lr-color-mix-hover)
76
+ );
77
+ }
75
78
  [part='reveal-button']:active,
76
79
  [part='copy-button']:active {
77
80
  background: color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active));
@@ -29,6 +29,18 @@ export interface LyraFileTreeEventMap {
29
29
  * `<lr-file-tree>` — a file-explorer preset over `<lr-tree>` + `<lr-file-icon>`: path-keyed
30
30
  * nodes with git-status/diff-count badges, lazy directory loading, and select/open events.
31
31
  *
32
+ * **The composed `<lr-tree>`'s `reorderable`/`lr-reorder` capability is deliberately not
33
+ * forwarded.** The tree it renders is not a model this component owns: `treeItems` is derived
34
+ * from `nodes` on every render and keyed by filesystem path, so sibling order is whatever the
35
+ * host's own listing produced (name, type, git status), not an authored sequence a user can
36
+ * rearrange. `<lr-tree>`'s reorder is also strictly sibling-scoped — it never crosses a subtree
37
+ * boundary, precisely so a reorder can never become a reparent — which is the one file operation
38
+ * ("move this file into that directory") that would change a path and therefore mean something
39
+ * here. Forwarding it would have to invent a second, path-shaped event alongside
40
+ * `lr-file-select`/`lr-file-open`/`lr-load-children`, permanently, for a gesture whose result the
41
+ * host would have to discard. A consumer that genuinely needs orderable rows composes `<lr-tree>`
42
+ * directly, where the capability already lives.
43
+ *
32
44
  * @customElement lr-file-tree
33
45
  * @event lr-file-select - `detail: { filePath, node }` — a row was activated.
34
46
  * @event lr-file-open - `detail: { filePath, node }` — Enter/click on an already-selected file row
@@ -73,6 +73,8 @@ import{css}from"lit";const styles=css`
73
73
  inset-block-start: 0;
74
74
  inset-inline-start: 0;
75
75
  will-change: transform;
76
+ min-inline-size: var(--lr-size-1-5rem);
77
+ min-block-size: var(--lr-size-1-5rem);
76
78
  }
77
79
  [part='node-control'] {
78
80
  min-inline-size: var(--lr-icon-button-size);
@@ -207,10 +209,6 @@ import{css}from"lit";const styles=css`
207
209
  :host([orientation='horizontal']:dir(rtl)) [part='node'] ::slotted(*) {
208
210
  transform: scaleX(-1);
209
211
  }
210
- /* MUST stay before :hover/:active below: all three resolve to the same specificity (0,2,0),
211
- so whichever is declared last always wins regardless of which states are actually active on
212
- the element. Declaring the static selected ring first lets the pointer-feedback rules below
213
- still read on top of it when a selected node is hovered or press-dragged. */
214
212
  [part='node'][data-selected] {
215
213
  outline: var(--lr-size-2px) solid
216
214
  var(--lr-flow-canvas-node-selected-outline-color, var(--lr-color-brand));
@@ -222,23 +220,20 @@ import{css}from"lit";const styles=css`
222
220
  var(--lr-flow-canvas-node-hover-outline-color, var(--lr-color-border-strong));
223
221
  outline-offset: var(--lr-size-2px);
224
222
  }
225
- /* A node is pressed for two different gestures -- a click that selects it and a pointerdown that
226
- starts a drag -- and both need to read immediately. The pointer-feedback colour is shared with
227
- the hover rule above (one knob for "the pointer is on this node"); only the weight steps up, so
228
- the pressed ring is unmistakably heavier than the hovered one without introducing a second
229
- colour that would then have to stay in sync with it. */
230
223
  [part='node']:active {
231
224
  outline: var(--lr-size-2px) solid
232
225
  var(--lr-flow-canvas-node-hover-outline-color, var(--lr-color-border-strong));
233
226
  outline-offset: var(--lr-size-2px);
234
227
  }
235
- [part='edge']:hover {
228
+ [part='edge'][aria-pressed='true'] {
229
+ stroke-width: 2.5;
230
+ }
231
+ [part='edge']:hover,
232
+ [part='edge-hit-area']:hover + [part='edge'] {
236
233
  stroke-width: 2.5;
237
234
  }
238
- /* Stroke weight is the only channel an edge has: its stroke colour is the tone the consumer
239
- assigned it (see the [data-tone] rules above), so tinting it on press would read as a tone
240
- change rather than as feedback. 3.5 also clears the 2.5 an already-selected edge carries. */
241
- [part='edge']:active {
235
+ [part='edge']:active,
236
+ [part='edge-hit-area']:active + [part='edge'] {
242
237
  stroke-width: 3.5;
243
238
  }
244
239
  [part='node']:has([part='node-control']:focus-visible),
@@ -246,9 +241,6 @@ import{css}from"lit";const styles=css`
246
241
  outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
247
242
  outline-offset: var(--lr-focus-ring-offset);
248
243
  }
249
- [part='edge'][aria-pressed='true'] {
250
- stroke-width: 2.5;
251
- }
252
244
  [part='connection-line'] {
253
245
  fill: none;
254
246
  stroke: var(--lr-color-brand);
@@ -268,6 +260,9 @@ import{css}from"lit";const styles=css`
268
260
  outline: var(--lr-size-2px) dashed var(--lr-flow-canvas-drop-active-outline-color, var(--lr-color-brand));
269
261
  outline-offset: calc(-1 * var(--lr-size-2px));
270
262
  }
263
+ [part='viewport'][data-drop-active]:focus-visible {
264
+ box-shadow: inset 0 0 0 var(--lr-focus-ring-width) var(--lr-focus-ring-color);
265
+ }
271
266
  [part='edge'][data-running] {
272
267
  stroke-dasharray: 6 4;
273
268
  animation: lr-flow-canvas-march var(--lr-flow-canvas-march-duration, var(--lr-duration-ambient)) linear infinite;
@@ -275,8 +270,6 @@ import{css}from"lit";const styles=css`
275
270
  [part='edge'][data-running-static] {
276
271
  stroke-dasharray: 6 4;
277
272
  }
278
- /* The JS gate only evaluates the preference at render time; this CSS branch also covers a
279
- preference change while an already-rendered edge is still marching. */
280
273
  @media (prefers-reduced-motion: reduce) {
281
274
  [part='edge'][data-running] {
282
275
  animation: none;
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-controls.styles.js";import{LYRA_DEFAULT_flowControlsLabel,LYRA_DEFAULT_flowLockCanvas,LYRA_DEFAULT_zoomIn,LYRA_DEFAULT_zoomOut,LYRA_DEFAULT_zoomToFit}from"../../../internal/default-strings.generated.js";function isFlowCanvasLike(element){const candidate=element;return typeof candidate.registerCompanion=="function"&&typeof candidate.zoomIn=="function"&&typeof candidate.zoomOut=="function"&&typeof candidate.fit=="function"&&typeof candidate.locked=="boolean"}const GLYPH_VIEW_BOX="0 0 24 24",GLYPH_STROKE_WIDTH="1.75";function glyphSvg(inner){return svg`<svg
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-controls.styles.js";import{LYRA_DEFAULT_flowControlsLabel,LYRA_DEFAULT_flowLockCanvas,LYRA_DEFAULT_zoomIn,LYRA_DEFAULT_zoomOut,LYRA_DEFAULT_zoomToFit}from"../../../internal/default-strings.generated.js";function isFlowCanvasLike(element){const candidate=element;return typeof candidate.registerCompanion=="function"&&typeof candidate.zoomIn=="function"&&typeof candidate.zoomOut=="function"&&typeof candidate.fit=="function"&&typeof candidate.locked=="boolean"}const GLYPH_VIEW_BOX="0 0 24 24",GLYPH_STROKE_WIDTH="1.75";function glyphSvg(inner){return svg`<svg
2
2
  width="1em"
3
3
  height="1em"
4
4
  viewBox=${GLYPH_VIEW_BOX}
@@ -17,7 +17,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
17
17
  `),lockClosedGlyph=()=>glyphSvg(svg`<rect x="4" y="11" width="16" height="9" rx="2"></rect><path d="M8 11V7a4 4 0 0 1 8 0v4"></path>`),lockOpenGlyph=()=>glyphSvg(svg`<rect x="4" y="11" width="16" height="9" rx="2"></rect><path d="M8 11V7a4 4 0 0 1 7.4-2"></path>`);class LyraFlowControls extends LyraElement{constructor(){super(...arguments),this.for="",this._orientation="vertical",this.hideLock=!1,this.frame="card",this.snapshot=null,this.locked=!1,this.companionController=new FlowCanvasCompanionController(this,isFlowCanvasLike,next=>this.attachCanvas(next)),this.toggleLock=()=>{if(!this.canvasEl)return;const locked=!this.canvasEl.locked;this.canvasEl.locked=locked,this.locked=locked}}static{this.defaultStrings={...super.defaultStrings,flowControlsLabel:LYRA_DEFAULT_flowControlsLabel,flowLockCanvas:LYRA_DEFAULT_flowLockCanvas,zoomIn:LYRA_DEFAULT_zoomIn,zoomOut:LYRA_DEFAULT_zoomOut,zoomToFit:LYRA_DEFAULT_zoomToFit}}static{this.styles=[LyraElement.styles,styles]}get orientation(){return this._orientation}set orientation(value){const previous=this._orientation,next=value==="horizontal"?"horizontal":"vertical";this._orientation=next,(next!==previous||value!==next)&&this.requestUpdate("orientation",previous)}connectedCallback(){super.connectedCallback(),this.companionController.connect()}disconnectedCallback(){super.disconnectedCallback(),this.companionController.disconnect()}adoptedCallback(){super.adoptedCallback(),this.companionController.adopt()}willUpdate(changed){super.willUpdate(changed),this.hasUpdated&&changed.has("for")&&this.companionController.targetIdChanged()}attachCanvas(canvas){this.unsubscribe?.(),this.unsubscribe=void 0,this.snapshot=null,this.locked=!1,this.canvasEl=canvas??void 0,canvas&&(this.locked=canvas.locked,this.unsubscribe=canvas.registerCompanion(snapshot=>{!this.isConnected||this.canvasEl!==canvas||(this.snapshot=snapshot,this.locked=snapshot.locked)}))}render(){const disabled=!this.canvasEl,viewport=this.snapshot?.viewport,atMin=viewport?viewport.zoom<=viewport.minZoom:!1,atMax=viewport?viewport.zoom>=viewport.maxZoom:!1;return html`<div
18
18
  part="base"
19
19
  role="group"
20
- aria-label=${this.getAttribute("aria-label")||this.localize("flowControlsLabel")}
20
+ aria-label=${hostAriaLabel(this)??this.localize("flowControlsLabel")}
21
21
  >
22
22
  <button
23
23
  part="zoom-in"
@@ -16,26 +16,12 @@ import{css}from"lit";const styles=css`
16
16
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
17
17
  border-radius: var(--lr-radius);
18
18
  background: var(--lr-color-surface);
19
- /* Overlay step: this cluster's job is to float over a flow canvas as a toolbar, which is why the
20
- plain escape below strips the whole surface treatment when it is embedded in real chrome. */
21
19
  box-shadow: var(--lr-shadow-m);
22
20
  }
23
21
  :host([orientation='vertical']) [part='base'] {
24
22
  flex-direction: column;
25
23
  flex-wrap: nowrap;
26
24
  }
27
- /* Chrome-less escape, mirroring the shared LyraFrame vocabulary's frame="plain" (and lr-callout's [inline]): the
28
- cluster is often placed directly inside a host toolbar or panel that already draws its own
29
- border/background, where this floating-surface chrome doubles the frame. The box-shadow goes
30
- with the rest of the box decoration, exactly as lr-flow-run-status's plain does -- a lift
31
- shadow with no surface under it reads as a stray smudge. Only the decoration goes: the flex
32
- layout, the gap, every button's --lr-icon-button-size hit-area floor, and their hover/focus
33
- affordances all stay.
34
-
35
- MUST stay after :host([orientation='vertical']) [part='base']: both are :host([x])
36
- [part='base'], i.e. equal specificity, so source order alone decides. Only flex-direction vs.
37
- box decoration is set today, so nothing collides -- keeping this last preserves plain as the
38
- stronger statement ("no chrome at all") if either rule grows. */
39
25
  :host([frame='plain']) [part='base'] {
40
26
  padding: 0;
41
27
  border: 0;
@@ -43,11 +29,6 @@ import{css}from"lit";const styles=css`
43
29
  background: transparent;
44
30
  box-shadow: none;
45
31
  }
46
- /* Enumerated by part (rather than the previous bare "[part='base'] button"
47
- tag selector) so each control resolves to the shared minimum tappable
48
- size (--lr-icon-button-size) directly off its own [part='...'] --
49
- the floating toolbar already has the room, this doesn't change the
50
- rendered box, just how it's declared. */
51
32
  [part='zoom-in'],
52
33
  [part='zoom-out'],
53
34
  [part='fit'],
@@ -64,18 +45,9 @@ import{css}from"lit";const styles=css`
64
45
  color: var(--lr-color-text);
65
46
  cursor: pointer;
66
47
  }
67
- /* :where() zeroes the wrapped selectors' specificity contribution, leaving only :hover itself
68
- -- (0,1,0) total, functionally identical selection to \`[part='base'] button:hover:not(:disabled)\`
69
- ((0,3,1)) but now losing (on the pseudo-element tiebreak) to a consumer's own
70
- \`::part(zoom-in):hover\` override ((0,1,1)) without that consumer needing !important. Mirrors
71
- lr-attachment-trigger's identical fix for the same over-specific shape. */
72
48
  :where([part='base'] button):hover:where(:not(:disabled)) {
73
49
  background: var(--lr-color-surface-hover, var(--lr-color-border));
74
50
  }
75
- /* Same shape as the hover rule, so it inherits the same (0,1,0) specificity and a consumer's
76
- ::part(zoom-in):active override still wins. The fill is the hovered one carried further toward
77
- --lr-color-mix-partner (the text colour), which moves in whichever direction the surface needs
78
- rather than always lightening. */
79
51
  :where([part='base'] button):active:where(:not(:disabled)) {
80
52
  background: color-mix(
81
53
  in oklab,
@@ -94,14 +66,6 @@ import{css}from"lit";const styles=css`
94
66
  [part='lock'][aria-pressed='true'] {
95
67
  color: var(--lr-flow-controls-lock-active-color, var(--lr-color-brand));
96
68
  }
97
- /* The default slot's own contract: a consumer's button joins the cluster and is "styled by the
98
- same group". None of the rules above can deliver that -- every one of them is either a
99
- [part='...'] selector (a light-DOM button carries no part attribute) or a descendant selector
100
- inside a shadow stylesheet, and per CSS Scoping neither form ever matches slotted content
101
- wherever it visually renders. ::slotted() is the only selector that crosses that boundary, and
102
- it takes a COMPOUND argument, so each state goes inside the parentheses rather than after
103
- them. It matches only the slotted element itself, never its descendants, which is exactly the
104
- scope wanted here: the button's box, not the consumer's own icon markup inside it. */
105
69
  ::slotted(button) {
106
70
  display: inline-flex;
107
71
  align-items: center;
@@ -119,6 +83,9 @@ import{css}from"lit";const styles=css`
119
83
  overflow-wrap: anywhere;
120
84
  cursor: pointer;
121
85
  }
86
+ ::slotted([hidden]:not([hidden='until-found' i])) {
87
+ display: none;
88
+ }
122
89
  ::slotted(button:hover:not(:disabled)) {
123
90
  background: var(--lr-color-surface-hover, var(--lr-color-border));
124
91
  }
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{resolveCssLength}from"../../../internal/css-length.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-minimap.styles.js";import{LYRA_DEFAULT_flowMinimapInstructions,LYRA_DEFAULT_flowMinimapLabel,LYRA_DEFAULT_flowMinimapViewport,LYRA_DEFAULT_flowMinimapViewportChanged}from"../../../internal/default-strings.generated.js";function isFlowCanvasLike(element){const candidate=element;return typeof candidate.registerCompanion=="function"&&typeof candidate.setViewport=="function"&&typeof candidate.zoomIn=="function"&&typeof candidate.zoomOut=="function"&&typeof candidate.fit=="function"&&typeof candidate.locked=="boolean"}const DEFAULT_VIEWPORT_MIN_SIZE_PX=40;class LyraFlowMinimap extends LyraElement{constructor(){super(...arguments),this.for="",this.label="",this.snapshot=null,this.liveText="",this.justDraggedViewport=!1,this.announceNextSnapshot=!1,this.viewportMinSizePx=DEFAULT_VIEWPORT_MIN_SIZE_PX,this.baseBorderPx=0,this.instructionsId=nextId("flow-minimap-instructions"),this.companionController=new FlowCanvasCompanionController(this,isFlowCanvasLike,next=>this.attachCanvas(next)),this.onMapClick=e=>{if(this.justDraggedViewport){this.justDraggedViewport=!1;return}if(!this.canvasEl||!this.snapshot||this.canvasEl.locked)return;const point=this.clientToContentPoint(e.currentTarget,e.clientX,e.clientY),{zoom,width,height}=this.snapshot.viewport;this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:width/2-point.x*zoom,y:height/2-point.y*zoom,zoom})},this.onMapWheel=e=>{!this.canvasEl||this.canvasEl.locked||(e.preventDefault(),this.announceNextSnapshot=!0,e.deltaY<0?this.canvasEl.zoomIn():this.canvasEl.zoomOut())},this.onViewportPointerDown=e=>{const dragEventWindow=this.ownerDocument.defaultView;!this.canvasEl||!this.snapshot||!dragEventWindow||this.canvasEl.locked||(e.stopPropagation(),this.detachViewportDragListeners(),this.justDraggedViewport=!1,this.dragState={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startViewport:{...this.snapshot.viewport},moved:!1},e.target.setPointerCapture?.(e.pointerId),this.dragEventWindow=dragEventWindow,dragEventWindow.addEventListener("pointermove",this.onViewportPointerMove),dragEventWindow.addEventListener("pointerup",this.onViewportPointerUp),dragEventWindow.addEventListener("pointercancel",this.onViewportPointerUp),dragEventWindow.addEventListener("lostpointercapture",this.onViewportPointerUp))},this.onViewportPointerMove=e=>{const drag=this.dragState;if(!drag||e.pointerId!==drag.pointerId)return;if(!this.canvasEl||this.canvasEl.locked){this.cancelViewportDrag();return}const ctm=this.renderRoot.querySelector('[part="map"]')?.getScreenCTM();if(!ctm)return;const scale=ctm.a||1,dxContent=(e.clientX-drag.startClientX)/scale,dyContent=(e.clientY-drag.startClientY)/scale;dxContent===0&&dyContent===0||(drag.moved=!0,drag.latestViewport={x:drag.startViewport.x-dxContent*drag.startViewport.zoom,y:drag.startViewport.y-dyContent*drag.startViewport.zoom,zoom:drag.startViewport.zoom},this.canvasEl.setViewport(drag.latestViewport))},this.onViewportPointerUp=e=>{const drag=this.dragState;!drag||e.pointerId!==drag.pointerId||(this.justDraggedViewport=e.type==="pointerup"&&drag.moved,this.justDraggedViewport&&drag.latestViewport&&!this.canvasEl?.locked&&this.announceViewport(drag.latestViewport),this.dragState=void 0,this.detachViewportDragListeners())},this.onViewportKeyDown=e=>{if(!this.canvasEl||!this.snapshot||this.canvasEl.locked)return;if(e.key==="+"||e.key==="="){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.zoomIn();return}if(e.key==="-"||e.key==="_"){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.zoomOut();return}if(e.key==="Enter"||e.key==="Home"){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.fit();return}const{x,y,zoom,width,height}=this.snapshot.viewport,stepX=width*.1,stepY=height*.1;e.key==="ArrowRight"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:x-stepX,y,zoom})):e.key==="ArrowLeft"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:x+stepX,y,zoom})):e.key==="ArrowDown"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x,y:y-stepY,zoom})):e.key==="ArrowUp"&&(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x,y:y+stepY,zoom}))}}static{this.defaultStrings={...super.defaultStrings,flowMinimapInstructions:LYRA_DEFAULT_flowMinimapInstructions,flowMinimapLabel:LYRA_DEFAULT_flowMinimapLabel,flowMinimapViewport:LYRA_DEFAULT_flowMinimapViewport,flowMinimapViewportChanged:LYRA_DEFAULT_flowMinimapViewportChanged}}static{this.styles=[LyraElement.styles,styles,srOnly]}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink(),this.companionController.connect()}refreshViewportMetrics(){const view=this.ownerDocument?.defaultView;if(!view||!this.isConnected)return;const computed=view.getComputedStyle(this),minSize=resolveCssLength(computed.getPropertyValue("--lr-flow-minimap-viewport-min-size").trim()||computed.getPropertyValue("--lr-icon-button-size").trim(),{host:this});this.viewportMinSizePx=minSize!==void 0&&Number.isFinite(minSize)&&minSize>=0?minSize:DEFAULT_VIEWPORT_MIN_SIZE_PX;const border=resolveCssLength(computed.getPropertyValue("--lr-border-width-thin").trim(),{host:this});this.baseBorderPx=border!==void 0&&Number.isFinite(border)&&border>=0?border:0}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink(),this.announceNextSnapshot=!1,this.liveText="",this.companionController.disconnect()}adoptedCallback(){super.adoptedCallback(),this.syncAnnouncementSink(),this.companionController.adopt()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}announceViewport(viewport){const number=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:0}),percent=getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:1}),text=this.localize("flowMinimapViewportChanged",void 0,{x:number.format(viewport.x),y:number.format(viewport.y),zoom:percent.format(viewport.zoom)});this.liveText=text,this.announcementSink?.announce(text)}willUpdate(changed){super.willUpdate(changed),this.refreshViewportMetrics(),this.hasUpdated&&changed.has("for")&&this.companionController.targetIdChanged()}attachCanvas(canvas){this.cancelViewportDrag(),this.unsubscribe?.(),this.unsubscribe=void 0,this.snapshot=null,this.canvasEl=canvas??void 0,canvas&&(this.unsubscribe=canvas.registerCompanion(snapshot=>{!this.isConnected||this.canvasEl!==canvas||(this.snapshot=snapshot,snapshot.locked&&this.cancelViewportDrag(),this.announceNextSnapshot&&(this.announceNextSnapshot=!1,this.announceViewport(snapshot.viewport)))}))}cancelViewportDrag(){this.dragState=void 0,this.justDraggedViewport=!1,this.announceNextSnapshot=!1,this.detachViewportDragListeners()}contentBounds(){const nodes=this.snapshot?.nodes??[];if(nodes.length===0)return{minX:0,minY:0,maxX:1,maxY:1};let minX=1/0,minY=1/0,maxX=-1/0,maxY=-1/0;for(const n of nodes)minX=Math.min(minX,n.x),minY=Math.min(minY,n.y),maxX=Math.max(maxX,n.x+n.width),maxY=Math.max(maxY,n.y+n.height);return{minX,minY,maxX,maxY}}mapSizePx(){const inset=2*this.baseBorderPx;return{width:Math.max(0,this.clientWidth-inset),height:Math.max(0,this.clientHeight-inset)}}viewportRectContent(viewBoxWidth,viewBoxHeight,minimumPhysicalSize=this.viewportMinSizePx){const vp=this.snapshot?.viewport;if(!vp||vp.zoom===0)return{x:0,y:0,width:0,height:0};const x=-vp.x/vp.zoom,y=-vp.y/vp.zoom,width=vp.width/vp.zoom,height=vp.height/vp.zoom,map=this.mapSizePx(),scale=map.width>0&&map.height>0&&viewBoxWidth>0&&viewBoxHeight>0?Math.min(map.width/viewBoxWidth,map.height/viewBoxHeight):0,floor=scale>0?minimumPhysicalSize/scale:0;if(!Number.isFinite(floor)||floor<=0)return{x,y,width,height};const flooredWidth=Math.max(width,floor),flooredHeight=Math.max(height,floor);return{x:x-(flooredWidth-width)/2,y:y-(flooredHeight-height)/2,width:flooredWidth,height:flooredHeight}}clientToContentPoint(svgEl,clientX,clientY){const ctm=svgEl.getScreenCTM();if(!ctm)return{x:0,y:0};const pt=svgEl.createSVGPoint();pt.x=clientX,pt.y=clientY;const transformed=pt.matrixTransform(ctm.inverse());return{x:transformed.x,y:transformed.y}}detachViewportDragListeners(){const dragEventWindow=this.dragEventWindow;dragEventWindow&&(dragEventWindow.removeEventListener("pointermove",this.onViewportPointerMove),dragEventWindow.removeEventListener("pointerup",this.onViewportPointerUp),dragEventWindow.removeEventListener("pointercancel",this.onViewportPointerUp),dragEventWindow.removeEventListener("lostpointercapture",this.onViewportPointerUp),this.dragEventWindow=void 0)}renderNodes(){return svg`${(this.snapshot?.nodes??[]).map(n=>svg`<rect part="node" data-status=${n.status??nothing} x=${n.x} y=${n.y} width=${n.width} height=${n.height} rx="2"></rect>`)}`}render(){const label=this.getAttribute("aria-label")||this.label||this.localize("flowMinimapLabel");if(!this.canvasEl||!this.snapshot)return html`<div part="base" aria-hidden="true"></div>`;const bounds=this.contentBounds(),padding=20,vbX=bounds.minX-padding,vbY=bounds.minY-padding,vbW=Math.max(1,bounds.maxX-bounds.minX+padding*2),vbH=Math.max(1,bounds.maxY-bounds.minY+padding*2),viewportRect=this.viewportRectContent(vbW,vbH,0),viewportHitRect=this.viewportRectContent(vbW,vbH),locked=this.snapshot.locked||this.canvasEl.locked;return html`<div
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,svg,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel,nextId,srOnly}from"../../../internal/a11y.js";import{resolveCssLength}from"../../../internal/css-length.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-minimap.styles.js";import{LYRA_DEFAULT_flowMinimapInstructions,LYRA_DEFAULT_flowMinimapLabel,LYRA_DEFAULT_flowMinimapViewport,LYRA_DEFAULT_flowMinimapViewportChanged}from"../../../internal/default-strings.generated.js";function isFlowCanvasLike(element){const candidate=element;return typeof candidate.registerCompanion=="function"&&typeof candidate.setViewport=="function"&&typeof candidate.zoomIn=="function"&&typeof candidate.zoomOut=="function"&&typeof candidate.fit=="function"&&typeof candidate.locked=="boolean"}const DEFAULT_VIEWPORT_MIN_SIZE_PX=40;class LyraFlowMinimap extends LyraElement{constructor(){super(...arguments),this.for="",this.label="",this.snapshot=null,this.liveText="",this.justDraggedViewport=!1,this.announceNextSnapshot=!1,this.viewportMinSizePx=DEFAULT_VIEWPORT_MIN_SIZE_PX,this.baseBorderPx=0,this.instructionsId=nextId("flow-minimap-instructions"),this.companionController=new FlowCanvasCompanionController(this,isFlowCanvasLike,next=>this.attachCanvas(next)),this.onMapClick=e=>{if(this.justDraggedViewport){this.justDraggedViewport=!1;return}if(!this.canvasEl||!this.snapshot||this.canvasEl.locked)return;const point=this.clientToContentPoint(e.currentTarget,e.clientX,e.clientY),{zoom,width,height}=this.snapshot.viewport;this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:width/2-point.x*zoom,y:height/2-point.y*zoom,zoom})},this.onMapWheel=e=>{!this.canvasEl||this.canvasEl.locked||(e.preventDefault(),this.announceNextSnapshot=!0,e.deltaY<0?this.canvasEl.zoomIn():this.canvasEl.zoomOut())},this.onViewportPointerDown=e=>{const dragEventWindow=this.ownerDocument.defaultView;!this.canvasEl||!this.snapshot||!dragEventWindow||this.canvasEl.locked||(e.stopPropagation(),this.detachViewportDragListeners(),this.justDraggedViewport=!1,this.dragState={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startViewport:{...this.snapshot.viewport},moved:!1},e.target.setPointerCapture?.(e.pointerId),this.dragEventWindow=dragEventWindow,dragEventWindow.addEventListener("pointermove",this.onViewportPointerMove),dragEventWindow.addEventListener("pointerup",this.onViewportPointerUp),dragEventWindow.addEventListener("pointercancel",this.onViewportPointerUp),dragEventWindow.addEventListener("lostpointercapture",this.onViewportPointerUp))},this.onViewportPointerMove=e=>{const drag=this.dragState;if(!drag||e.pointerId!==drag.pointerId)return;if(!this.canvasEl||this.canvasEl.locked){this.cancelViewportDrag();return}const ctm=this.renderRoot.querySelector('[part="map"]')?.getScreenCTM();if(!ctm)return;const scale=ctm.a||1,dxContent=(e.clientX-drag.startClientX)/scale,dyContent=(e.clientY-drag.startClientY)/scale;dxContent===0&&dyContent===0||(drag.moved=!0,drag.latestViewport={x:drag.startViewport.x-dxContent*drag.startViewport.zoom,y:drag.startViewport.y-dyContent*drag.startViewport.zoom,zoom:drag.startViewport.zoom},this.canvasEl.setViewport(drag.latestViewport))},this.onViewportPointerUp=e=>{const drag=this.dragState;!drag||e.pointerId!==drag.pointerId||(this.justDraggedViewport=e.type==="pointerup"&&drag.moved,this.justDraggedViewport&&drag.latestViewport&&!this.canvasEl?.locked&&this.announceViewport(drag.latestViewport),this.dragState=void 0,this.detachViewportDragListeners())},this.onViewportKeyDown=e=>{if(!this.canvasEl||!this.snapshot||this.canvasEl.locked)return;if(e.key==="+"||e.key==="="){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.zoomIn();return}if(e.key==="-"||e.key==="_"){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.zoomOut();return}if(e.key==="Enter"||e.key==="Home"){e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.fit();return}const{x,y,zoom,width,height}=this.snapshot.viewport,stepX=width*.1,stepY=height*.1;e.key==="ArrowRight"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:x-stepX,y,zoom})):e.key==="ArrowLeft"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x:x+stepX,y,zoom})):e.key==="ArrowDown"?(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x,y:y-stepY,zoom})):e.key==="ArrowUp"&&(e.preventDefault(),this.announceNextSnapshot=!0,this.canvasEl.setViewport({x,y:y+stepY,zoom}))}}static{this.defaultStrings={...super.defaultStrings,flowMinimapInstructions:LYRA_DEFAULT_flowMinimapInstructions,flowMinimapLabel:LYRA_DEFAULT_flowMinimapLabel,flowMinimapViewport:LYRA_DEFAULT_flowMinimapViewport,flowMinimapViewportChanged:LYRA_DEFAULT_flowMinimapViewportChanged}}static{this.styles=[LyraElement.styles,styles,srOnly]}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSink(),this.companionController.connect()}refreshViewportMetrics(){const view=this.ownerDocument?.defaultView;if(!view||!this.isConnected)return;const computed=view.getComputedStyle(this),minSize=resolveCssLength(computed.getPropertyValue("--lr-flow-minimap-viewport-min-size").trim()||computed.getPropertyValue("--lr-icon-button-size").trim(),{host:this});this.viewportMinSizePx=minSize!==void 0&&Number.isFinite(minSize)&&minSize>=0?minSize:DEFAULT_VIEWPORT_MIN_SIZE_PX;const border=resolveCssLength(computed.getPropertyValue("--lr-border-width-thin").trim(),{host:this});this.baseBorderPx=border!==void 0&&Number.isFinite(border)&&border>=0?border:0}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSink(),this.announceNextSnapshot=!1,this.liveText="",this.companionController.disconnect()}adoptedCallback(){super.adoptedCallback(),this.syncAnnouncementSink(),this.companionController.adopt()}releaseAnnouncementSink(){this.announcementSink?.release(),this.announcementSink=void 0}syncAnnouncementSink(){if(!this.isConnected){this.releaseAnnouncementSink();return}this.announcementSink?.element.ownerDocument!==this.ownerDocument&&(this.releaseAnnouncementSink(),this.announcementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}))}announceViewport(viewport){const number=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:0}),percent=getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:1}),text=this.localize("flowMinimapViewportChanged",void 0,{x:number.format(viewport.x),y:number.format(viewport.y),zoom:percent.format(viewport.zoom)});this.liveText=text,this.announcementSink?.announce(text)}willUpdate(changed){super.willUpdate(changed),this.refreshViewportMetrics(),this.hasUpdated&&changed.has("for")&&this.companionController.targetIdChanged()}attachCanvas(canvas){this.cancelViewportDrag(),this.unsubscribe?.(),this.unsubscribe=void 0,this.snapshot=null,this.canvasEl=canvas??void 0,canvas&&(this.unsubscribe=canvas.registerCompanion(snapshot=>{!this.isConnected||this.canvasEl!==canvas||(this.snapshot=snapshot,snapshot.locked&&this.cancelViewportDrag(),this.announceNextSnapshot&&(this.announceNextSnapshot=!1,this.announceViewport(snapshot.viewport)))}))}cancelViewportDrag(){this.dragState=void 0,this.justDraggedViewport=!1,this.announceNextSnapshot=!1,this.detachViewportDragListeners()}contentBounds(){const nodes=this.snapshot?.nodes??[];if(nodes.length===0)return{minX:0,minY:0,maxX:1,maxY:1};let minX=1/0,minY=1/0,maxX=-1/0,maxY=-1/0;for(const n of nodes)minX=Math.min(minX,n.x),minY=Math.min(minY,n.y),maxX=Math.max(maxX,n.x+n.width),maxY=Math.max(maxY,n.y+n.height);return{minX,minY,maxX,maxY}}mapSizePx(){const inset=2*this.baseBorderPx;return{width:Math.max(0,this.clientWidth-inset),height:Math.max(0,this.clientHeight-inset)}}viewportRectContent(viewBoxWidth,viewBoxHeight,minimumPhysicalSize=this.viewportMinSizePx){const vp=this.snapshot?.viewport;if(!vp||vp.zoom===0)return{x:0,y:0,width:0,height:0};const x=-vp.x/vp.zoom,y=-vp.y/vp.zoom,width=vp.width/vp.zoom,height=vp.height/vp.zoom,map=this.mapSizePx(),scale=map.width>0&&map.height>0&&viewBoxWidth>0&&viewBoxHeight>0?Math.min(map.width/viewBoxWidth,map.height/viewBoxHeight):0,floor=scale>0?minimumPhysicalSize/scale:0;if(!Number.isFinite(floor)||floor<=0)return{x,y,width,height};const flooredWidth=Math.max(width,floor),flooredHeight=Math.max(height,floor);return{x:x-(flooredWidth-width)/2,y:y-(flooredHeight-height)/2,width:flooredWidth,height:flooredHeight}}clientToContentPoint(svgEl,clientX,clientY){const ctm=svgEl.getScreenCTM();if(!ctm)return{x:0,y:0};const pt=svgEl.createSVGPoint();pt.x=clientX,pt.y=clientY;const transformed=pt.matrixTransform(ctm.inverse());return{x:transformed.x,y:transformed.y}}detachViewportDragListeners(){const dragEventWindow=this.dragEventWindow;dragEventWindow&&(dragEventWindow.removeEventListener("pointermove",this.onViewportPointerMove),dragEventWindow.removeEventListener("pointerup",this.onViewportPointerUp),dragEventWindow.removeEventListener("pointercancel",this.onViewportPointerUp),dragEventWindow.removeEventListener("lostpointercapture",this.onViewportPointerUp),this.dragEventWindow=void 0)}renderNodes(){return svg`${(this.snapshot?.nodes??[]).map(n=>svg`<rect part="node" data-status=${n.status??nothing} x=${n.x} y=${n.y} width=${n.width} height=${n.height} rx="2"></rect>`)}`}render(){const label=hostAriaLabel(this)??(this.label||this.localize("flowMinimapLabel"));if(!this.canvasEl||!this.snapshot)return html`<div part="base" aria-hidden="true"></div>`;const bounds=this.contentBounds(),padding=20,vbX=bounds.minX-padding,vbY=bounds.minY-padding,vbW=Math.max(1,bounds.maxX-bounds.minX+padding*2),vbH=Math.max(1,bounds.maxY-bounds.minY+padding*2),viewportRect=this.viewportRectContent(vbW,vbH,0),viewportHitRect=this.viewportRectContent(vbW,vbH),locked=this.snapshot.locked||this.canvasEl.locked;return html`<div
2
2
  part="base"
3
3
  role="region"
4
4
  aria-label=${label}
@@ -18,15 +18,9 @@ import{css}from"lit";const styles=css`
18
18
  block-size: 100%;
19
19
  cursor: pointer;
20
20
  }
21
- /* Mouse-hover cue matching the cursor: pointer affordance above -- mirrors the reveal-button/
22
- copy-button/sources-summary brand-quiet hover tint used across the library for a clickable
23
- surface with no dedicated icon of its own. */
24
21
  [part='map']:hover {
25
22
  background: var(--lr-color-brand-quiet);
26
23
  }
27
- /* Clicking the map recenters the canvas viewport, and that jump is the only confirmation the user
28
- gets -- the pressed fill is what says the click landed on the map rather than on the viewport
29
- rect drawn over it. */
30
24
  [part='map']:active {
31
25
  background: color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active));
32
26
  }
@@ -71,9 +65,6 @@ import{css}from"lit";const styles=css`
71
65
  fill: color-mix(in srgb, var(--lr-color-brand) 25%, transparent);
72
66
  stroke-width: 3;
73
67
  }
74
- /* The rect is a grab handle, so its pressed state is also its dragging state -- it stays applied
75
- for the whole gesture. Both channels step past the hovered values, and the cursor flips to
76
- grabbing, matching the [data-panning] treatment lr-flow-canvas gives its own background. */
77
68
  [data-viewport-control]:has([part='viewport-hit-area']:active) [part='viewport'] {
78
69
  fill: color-mix(in srgb, var(--lr-color-brand) 40%, transparent);
79
70
  stroke-width: 4;
@@ -37,10 +37,6 @@ import{css}from"lit";const styles=css`
37
37
  }
38
38
  .card {
39
39
  flex: 1 1 auto;
40
- /* The single source of the card's minimum width -- a second min-inline-size declaration later
41
- in this same rule would win outright and make --lr-flow-node-min-inline-size dead, which is
42
- exactly what a stray "min-inline-size: 0" here used to do. The host caps itself at
43
- max-inline-size: 100%, so a narrow allocation still wraps rather than overflowing. */
44
40
  min-inline-size: var(--lr-flow-node-min-inline-size, calc(var(--lr-size-10rem) + var(--lr-size-1rem)));
45
41
  display: flex;
46
42
  flex-direction: column;
@@ -49,21 +45,8 @@ import{css}from"lit";const styles=css`
49
45
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
50
46
  border-radius: var(--lr-radius);
51
47
  background: var(--lr-color-surface);
52
- /* Resting chrome: a node card sits on the canvas, so it takes a card step -- s rather than xs
53
- because it has to separate from a patterned/gridded canvas background, not a flat panel. */
54
48
  box-shadow: var(--lr-shadow-s);
55
49
  }
56
- /* Density escape -- same convention as lr-source-card's compact. The tuned values sit behind
57
- inline var() fallbacks (rather than a :host declaration, which every instance re-declares and
58
- so shadows any ancestor value) so a canvas or palette can retune every card at once from the
59
- outside; the fallbacks are the pre-existing values scaled down one step, so an unset card
60
- renders unchanged.
61
-
62
- Deliberately placed BEFORE the :host([selected]) and :host([status='running']) rules below:
63
- all three are :host([x]) .card, i.e. equal specificity, so source order alone decides. They
64
- carry the state treatments (border-color, the run-state ring) while this one carries only
65
- density (padding/gap), so nothing collides today -- keeping the state rules last means a
66
- future border/shadow tweak here still can't silently win over selection or run state. */
67
50
  :host([compact]) .card {
68
51
  padding: var(--lr-flow-node-compact-padding, var(--lr-space-xs));
69
52
  gap: var(--lr-flow-node-compact-gap, var(--lr-space-2xs));
@@ -129,10 +112,6 @@ import{css}from"lit";const styles=css`
129
112
  justify-content: flex-end;
130
113
  opacity: 0;
131
114
  }
132
- /* no-pressed-state: the toolbar is not a target -- it is the container the consumer slots the
133
- node's own action buttons into, and hovering/focusing the CARD is what reveals it. Pressing it
134
- means pressing one of those buttons, which carries its own pressed state; a pressed treatment
135
- on the container would fire for every one of them and say nothing about which. */
136
115
  :host(:hover) [part='toolbar'],
137
116
  :host(:focus-within) [part='toolbar'] {
138
117
  opacity: 1;
@@ -144,8 +123,6 @@ import{css}from"lit";const styles=css`
144
123
  border-color: var(--lr-flow-node-running-border, var(--lr-color-brand));
145
124
  box-shadow: 0 0 0 var(--lr-size-2px) var(--lr-flow-node-running-glow, var(--lr-color-brand-quiet));
146
125
  }
147
- /* The JS gate only evaluates the preference at render time; this CSS branch also covers a
148
- preference change while an already-rendered card is still pulsing. */
149
126
  @media (prefers-reduced-motion: reduce) {
150
127
  .card[data-pulse] {
151
128
  animation: none;
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{Announcer,acquireAnnouncementSink}from"../../../internal/announcer.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{snapshotFlowDecorations}from"../flow-canvas/flow-model.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-run-status.styles.js";import{LYRA_DEFAULT_flowRunStatusCount,LYRA_DEFAULT_flowRunStatusLabel,LYRA_DEFAULT_flowRunStepStatus,LYRA_DEFAULT_flowRunSummary,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";const ALL_STATUSES=["pending","running","success","error","denied"],DONE_STATUSES=new Set(["success","error","denied"]);function isFlowCanvasLike(element){const candidate=element;return"decorations"in candidate&&Array.isArray(candidate.nodes)}class LyraFlowRunStatus extends LyraElement{constructor(){super(...arguments),this.for="",this._decorations=Object.freeze({}),this.hideSummary=!1,this.label="",this.frame="card",this.liveText="",this.announcer=new Announcer({onFlush:text=>{this.sink?.announce(text),this.liveText=text}}),this.companionController=new FlowCanvasCompanionController(this,isFlowCanvasLike,next=>this.attachCanvas(next)),this.lastWrittenDecorations=null}static{this.defaultStrings={...super.defaultStrings,flowRunStatusCount:LYRA_DEFAULT_flowRunStatusCount,flowRunStatusLabel:LYRA_DEFAULT_flowRunStatusLabel,flowRunStepStatus:LYRA_DEFAULT_flowRunStepStatus,flowRunSummary:LYRA_DEFAULT_flowRunSummary,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess}}static{this.styles=[LyraElement.styles,styles,srOnly]}get decorations(){return this._decorations}set decorations(value){const previous=this._decorations;this._decorations=snapshotFlowDecorations(value),this.requestUpdate("decorations",previous)}connectedCallback(){super.connectedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.syncSink(),this.companionController.connect()}disconnectedCallback(){super.disconnectedCallback(),this.companionController.disconnect(),this.announcer.cancel(),this.sink?.release(),this.sink=void 0}adoptedCallback(){super.adoptedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.syncSink(),this.companionController.adopt()}syncSink(){this.sink?.element.ownerDocument!==this.ownerDocument&&(this.sink?.release(),this.sink=this.isConnected?acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}):void 0)}willUpdate(changed){super.willUpdate(changed),this.hasUpdated&&changed.has("for")&&this.companionController.targetIdChanged(),changed.has("decorations")&&this.announceTransitions(changed.get("decorations"))}updated(changed){super.updated(changed),changed.has("decorations")&&this.applyDecorations()}attachCanvas(next){this.canvasEl&&this.canvasEl.decorations===this.lastWrittenDecorations&&(this.canvasEl.decorations=null),this.canvasEl=next??void 0,this.lastWrittenDecorations=null,this.applyDecorations()}applyDecorations(){if(!this.canvasEl)return;const current=this.canvasEl.decorations;this.lastWrittenDecorations!==null&&current!==null&&current!==this.lastWrittenDecorations&&console.warn("<lr-flow-run-status> is overwriting <lr-flow-canvas>.decorations set by something else; mixing this element with direct decorations writes is unsupported."),this.canvasEl.decorations=this.decorations,this.lastWrittenDecorations=this.canvasEl.decorations}statusLabel(status){return status==="pending"?this.localize("statusPending"):status==="running"?this.localize("statusRunning"):status==="success"?this.localize("statusSuccess"):status==="error"?this.localize("statusError"):this.localize("statusDenied")}announceTransitions(previous){if(!previous)return;const messages=[];for(const[id,decoration]of Object.entries(this.decorations)){if(previous[id]?.status===decoration.status)continue;const node=this.canvasEl?.nodes.find(n=>n.id===id),label=typeof node?.data?.label=="string"?node.data.label:id;messages.push(this.localize("flowRunStepStatus",void 0,{label,status:this.statusLabel(decoration.status)}))}messages.length>0&&this.announcer.announce(getListFormat(this.effectiveLocale,{type:"conjunction",style:"long"}).format(messages),{force:!0})}summary(){const counts={pending:0,running:0,success:0,error:0,denied:0};let total=0,done=0;for(const decoration of Object.values(this.decorations))total++,counts[decoration.status]++,DONE_STATUSES.has(decoration.status)&&done++;return{done,total,counts}}render(){const label=this.label||this.localize("flowRunStatusLabel"),ariaLabel=this.getAttribute("aria-label")||label,{done,total,counts}=this.summary(),number=getNumberFormat(this.effectiveLocale);return html`<div part="base" role="group" aria-label=${ariaLabel}>
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel,srOnly}from"../../../internal/a11y.js";import{Announcer,acquireAnnouncementSink}from"../../../internal/announcer.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{snapshotFlowDecorations}from"../flow-canvas/flow-model.js";import{FlowCanvasCompanionController}from"../flow-canvas/flow-companion-controller.js";import{styles}from"./flow-run-status.styles.js";import{LYRA_DEFAULT_flowRunStatusCount,LYRA_DEFAULT_flowRunStatusLabel,LYRA_DEFAULT_flowRunStepStatus,LYRA_DEFAULT_flowRunSummary,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess}from"../../../internal/default-strings.generated.js";const ALL_STATUSES=["pending","running","success","error","denied"],DONE_STATUSES=new Set(["success","error","denied"]);function isFlowCanvasLike(element){const candidate=element;return"decorations"in candidate&&Array.isArray(candidate.nodes)}class LyraFlowRunStatus extends LyraElement{constructor(){super(...arguments),this.for="",this._decorations=Object.freeze({}),this.hideSummary=!1,this.label="",this.frame="card",this.liveText="",this.announcer=new Announcer({onFlush:text=>{this.sink?.announce(text),this.liveText=text}}),this.companionController=new FlowCanvasCompanionController(this,isFlowCanvasLike,next=>this.attachCanvas(next)),this.lastWrittenDecorations=null}static{this.defaultStrings={...super.defaultStrings,flowRunStatusCount:LYRA_DEFAULT_flowRunStatusCount,flowRunStatusLabel:LYRA_DEFAULT_flowRunStatusLabel,flowRunStepStatus:LYRA_DEFAULT_flowRunStepStatus,flowRunSummary:LYRA_DEFAULT_flowRunSummary,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess}}static{this.styles=[LyraElement.styles,styles,srOnly]}get decorations(){return this._decorations}set decorations(value){const previous=this._decorations;this._decorations=snapshotFlowDecorations(value),this.requestUpdate("decorations",previous)}connectedCallback(){super.connectedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.syncSink(),this.companionController.connect()}disconnectedCallback(){super.disconnectedCallback(),this.companionController.disconnect(),this.announcer.cancel(),this.sink?.release(),this.sink=void 0}adoptedCallback(){super.adoptedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.syncSink(),this.companionController.adopt()}syncSink(){this.sink?.element.ownerDocument!==this.ownerDocument&&(this.sink?.release(),this.sink=this.isConnected?acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}):void 0)}willUpdate(changed){super.willUpdate(changed),this.hasUpdated&&changed.has("for")&&this.companionController.targetIdChanged(),changed.has("decorations")&&this.announceTransitions(changed.get("decorations"))}updated(changed){super.updated(changed),changed.has("decorations")&&this.applyDecorations()}attachCanvas(next){this.canvasEl&&this.canvasEl.decorations===this.lastWrittenDecorations&&(this.canvasEl.decorations=null),this.canvasEl=next??void 0,this.lastWrittenDecorations=null,this.applyDecorations()}applyDecorations(){if(!this.canvasEl)return;const current=this.canvasEl.decorations;this.lastWrittenDecorations!==null&&current!==null&&current!==this.lastWrittenDecorations&&console.warn("<lr-flow-run-status> is overwriting <lr-flow-canvas>.decorations set by something else; mixing this element with direct decorations writes is unsupported."),this.canvasEl.decorations=this.decorations,this.lastWrittenDecorations=this.canvasEl.decorations}statusLabel(status){return status==="pending"?this.localize("statusPending"):status==="running"?this.localize("statusRunning"):status==="success"?this.localize("statusSuccess"):status==="error"?this.localize("statusError"):this.localize("statusDenied")}announceTransitions(previous){if(!previous)return;const messages=[];for(const[id,decoration]of Object.entries(this.decorations)){if(previous[id]?.status===decoration.status)continue;const node=this.canvasEl?.nodes.find(n=>n.id===id),label=typeof node?.data?.label=="string"?node.data.label:id;messages.push(this.localize("flowRunStepStatus",void 0,{label,status:this.statusLabel(decoration.status)}))}messages.length>0&&this.announcer.announce(getListFormat(this.effectiveLocale,{type:"conjunction",style:"long"}).format(messages),{force:!0})}summary(){const counts={pending:0,running:0,success:0,error:0,denied:0};let total=0,done=0;for(const decoration of Object.values(this.decorations))total++,counts[decoration.status]++,DONE_STATUSES.has(decoration.status)&&done++;return{done,total,counts}}render(){const label=this.label||this.localize("flowRunStatusLabel"),ariaLabel=hostAriaLabel(this)??label,{done,total,counts}=this.summary(),number=getNumberFormat(this.effectiveLocale);return html`<div part="base" role="group" aria-label=${ariaLabel}>
2
2
  ${this.hideSummary?"":html`
3
3
  <div part="summary">${this.localize("flowRunSummary",void 0,{done:number.format(done),total:number.format(total)})}</div>
4
4
  ${ALL_STATUSES.filter(s=>counts[s]>0).map(s=>html`<span part="count" data-status=${s}><span class="tone-dot"></span>${this.localize("flowRunStatusCount",void 0,{status:this.statusLabel(s),count:number.format(counts[s])})}</span>`)}
@@ -14,18 +14,11 @@ import{css}from"lit";const styles=css`
14
14
  border: var(--lr-border-width-thin) solid var(--lr-color-border);
15
15
  border-radius: var(--lr-radius);
16
16
  background: var(--lr-color-surface);
17
- /* Resting chrome, despite the element's name: this is an in-flow status strip (the host is a
18
- plain display:block box with no positioning of its own, and it is usually dropped into a
19
- toolbar next to the canvas), not a layer floating above the page. */
20
17
  box-shadow: var(--lr-shadow-s);
21
18
  font-size: var(--lr-font-size-xs);
22
19
  min-inline-size: 0;
23
20
  max-inline-size: 100%;
24
21
  }
25
- /* Chrome-less escape, mirroring the shared LyraFrame vocabulary's frame="plain" (and lr-callout's [inline]): the
26
- summary strip is often placed directly inside a host toolbar that already draws its own
27
- border/background, where this floating-surface chrome doubles the frame. Only the box
28
- decoration goes -- the flex layout, gap and the per-status count dots stay. */
29
22
  :host([frame='plain']) [part='base'] {
30
23
  padding: 0;
31
24
  border: 0;
@@ -305,13 +305,6 @@ export declare class LyraGraphQueryBuilder extends LyraElement<LyraGraphQueryBui
305
305
  private removalFocusGeneration;
306
306
  constructor();
307
307
  disconnectedCallback(): void;
308
- /** `attachInternals()` throws in any environment without a real `ElementInternals`
309
- * implementation (e.g. a downstream consumer's happy-dom test suite) -- merely constructing
310
- * (or importing) this component must not hard-crash there. Falls back to an inert stand-in:
311
- * form participation and validity reporting are unavailable in that environment (there is no
312
- * polyfillable substitute), but rendering and every non-form-associated feature keep working. */
313
- private safeAttachInternals;
314
- private inertInternals;
315
308
  get form(): HTMLFormElement | null;
316
309
  set form(owner: FormOwnerValue);
317
310
  getForm(): HTMLFormElement | null;