@aceshooting/lyra-ui 13.0.1 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (723) hide show
  1. package/CHANGELOG.md +329 -0
  2. package/custom-elements.json +1 -1
  3. package/dist/cli/migration-contract.json +1 -1
  4. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +23 -15
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +9 -6
  6. package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts +12 -3
  7. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +2 -1
  8. package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +4 -2
  9. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  10. package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +1 -1
  11. package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +3 -1
  12. package/dist/components/agent-tools/commit-card/commit-card.class.js +2 -2
  13. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -1
  14. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +1 -1
  15. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +6 -2
  16. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +8 -8
  17. package/dist/components/agent-tools/result-card/result-card.class.d.ts +1 -1
  18. package/dist/components/agent-tools/result-card/result-card.class.js +1 -1
  19. package/dist/components/agent-tools/result-card/result-field.class.d.ts +1 -1
  20. package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
  21. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +5 -5
  22. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +23 -10
  23. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +13 -6
  24. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +3 -3
  25. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +1 -1
  26. package/dist/components/agent-tools/stack-trace/stack-trace-parse.js +3 -3
  27. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +1 -1
  28. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  29. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +1 -1
  30. package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +1 -1
  31. package/dist/components/agent-tools/task-list/task-list.class.d.ts +1 -2
  32. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  33. package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -2
  34. package/dist/components/agent-tools/terminal/terminal.class.js +5 -5
  35. package/dist/components/agent-tools/terminal/terminal.styles.js +1 -1
  36. package/dist/components/agent-tools/test-results/test-results.class.d.ts +4 -2
  37. package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
  38. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
  39. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +1 -1
  40. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  41. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -2
  42. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
  43. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +3 -2
  44. package/dist/components/agent-tools/tool-param-form/tool-param-form.d.ts +1 -1
  45. package/dist/components/agent-tools/tool-param-form/tool-param-form.js +1 -1
  46. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +2 -2
  47. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  48. package/dist/components/agent-tools/tool-result-view/registry.d.ts +2 -1
  49. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -1
  50. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  51. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +18 -12
  52. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +7 -7
  53. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +9 -3
  54. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  55. package/dist/components/agent-tools/trace-tree/span.d.ts +3 -1
  56. package/dist/components/agent-tools/trace-tree/span.js +1 -1
  57. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +1 -1
  58. package/dist/components/charts/chart/box-plot.class.d.ts +12 -3
  59. package/dist/components/charts/chart/box-plot.class.js +9 -9
  60. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  61. package/dist/components/charts/chart/chart-core-loader.js +1 -1
  62. package/dist/components/charts/chart/chart-feature-loader.js +1 -1
  63. package/dist/components/charts/chart/chart-preload.d.ts +1 -1
  64. package/dist/components/charts/chart/chart-preload.js +1 -1
  65. package/dist/components/charts/chart/chart.class.d.ts +33 -10
  66. package/dist/components/charts/chart/chart.class.js +23 -14
  67. package/dist/components/charts/chart/chart.styles.js +1 -1
  68. package/dist/components/charts/chart/histogram-bin.js +1 -1
  69. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -11
  70. package/dist/components/charts/chart/lite-chart.class.js +17 -11
  71. package/dist/components/charts/chart/lite-chart.styles.js +1 -1
  72. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +1 -1
  73. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +2 -2
  74. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +10 -5
  75. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
  76. package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +4 -2
  77. package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
  78. package/dist/components/conversation/branch-picker/branch-picker.styles.js +1 -1
  79. package/dist/components/conversation/chat-composer/chat-composer.class.d.ts +6 -2
  80. package/dist/components/conversation/chat-composer/chat-composer.class.js +3 -3
  81. package/dist/components/conversation/chat-composer/chat-composer.styles.js +1 -1
  82. package/dist/components/conversation/chat-message/chat-message.class.d.ts +4 -3
  83. package/dist/components/conversation/chat-message/chat-message.class.js +2 -2
  84. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  85. package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +1 -1
  86. package/dist/components/conversation/code-block/code-block-core.class.d.ts +4 -3
  87. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  88. package/dist/components/conversation/code-block/code-block-shared.d.ts +3 -3
  89. package/dist/components/conversation/code-block/code-block-shared.js +2 -2
  90. package/dist/components/conversation/code-block/code-block.class.d.ts +4 -3
  91. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  92. package/dist/components/conversation/code-block/code-block.styles.js +1 -1
  93. package/dist/components/conversation/code-block/code-loader.d.ts +1 -1
  94. package/dist/components/conversation/code-block/code-loader.js +1 -1
  95. package/dist/components/conversation/code-block/shiki-types.d.ts +2 -0
  96. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  97. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  98. package/dist/components/conversation/conversation-item/conversation-item.styles.js +1 -1
  99. package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +1 -1
  100. package/dist/components/conversation/markdown/katex-loader.d.ts +4 -4
  101. package/dist/components/conversation/markdown/katex-loader.js +1 -1
  102. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  103. package/dist/components/conversation/markdown/markdown-core.class.d.ts +1 -1
  104. package/dist/components/conversation/markdown/markdown-loader.d.ts +1 -1
  105. package/dist/components/conversation/markdown/markdown-loader.js +1 -1
  106. package/dist/components/conversation/markdown/markdown-shared.d.ts +6 -1
  107. package/dist/components/conversation/markdown/markdown-shared.js +5 -4
  108. package/dist/components/conversation/markdown/markdown.class.d.ts +1 -1
  109. package/dist/components/conversation/message-actions/message-actions.class.d.ts +18 -3
  110. package/dist/components/conversation/message-actions/message-actions.class.js +2 -2
  111. package/dist/components/conversation/message-actions/message-actions.styles.js +1 -1
  112. package/dist/components/conversation/message-actions/toolbar-actions.d.ts +3 -1
  113. package/dist/components/conversation/message-actions/toolbar-actions.js +1 -1
  114. package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +40 -15
  115. package/dist/components/conversation/message-feedback/message-feedback.class.js +7 -3
  116. package/dist/components/conversation/message-feedback/message-feedback.styles.js +1 -1
  117. package/dist/components/conversation/message-parts/message-parts.class.d.ts +10 -4
  118. package/dist/components/conversation/message-parts/message-parts.class.js +2 -2
  119. package/dist/components/conversation/message-parts/message-parts.styles.js +1 -1
  120. package/dist/components/conversation/model-select/model-select.class.d.ts +5 -2
  121. package/dist/components/conversation/model-select/model-select.class.js +8 -5
  122. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts +3 -5
  123. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +2 -1
  124. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +9 -2
  125. package/dist/components/conversation/prompt-input/prompt-input.class.js +3 -3
  126. package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
  127. package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +20 -4
  128. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  129. package/dist/components/conversation/prompt-queue/prompt-queue.styles.js +1 -1
  130. package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +17 -8
  131. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
  132. package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +1 -1
  133. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +6 -3
  134. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  135. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -1
  136. package/dist/components/conversation/thread-list/thread-list.class.d.ts +14 -4
  137. package/dist/components/conversation/thread-list/thread-list.class.js +11 -11
  138. package/dist/components/conversation/thread-list/thread-list.styles.js +1 -1
  139. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +2 -0
  140. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  141. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +1 -1
  142. package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +2 -1
  143. package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
  144. package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.d.ts +3 -0
  145. package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.js +1 -0
  146. package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +4 -2
  147. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  148. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +12 -4
  149. package/dist/components/conversation/voice-picker/voice-picker.class.js +8 -5
  150. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  151. package/dist/components/conversation/widget-renderer/resolve.d.ts +4 -6
  152. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  153. package/dist/components/data/calendar/calendar.class.d.ts +16 -5
  154. package/dist/components/data/calendar/calendar.class.js +2 -2
  155. package/dist/components/data/calendar/calendar.styles.js +1 -1
  156. package/dist/components/data/condition-builder/condition-builder.class.d.ts +3 -1
  157. package/dist/components/data/condition-builder/condition-builder.class.js +15 -1
  158. package/dist/components/data/context-meter/context-meter.class.d.ts +3 -1
  159. package/dist/components/data/context-meter/context-meter.class.js +4 -4
  160. package/dist/components/data/data-grid/data-grid.class.d.ts +51 -6
  161. package/dist/components/data/data-grid/data-grid.class.js +25 -11
  162. package/dist/components/data/data-grid/data-grid.styles.js +1 -1
  163. package/dist/components/data/document-library/document-library.class.d.ts +5 -2
  164. package/dist/components/data/document-library/document-library.class.js +1 -1
  165. package/dist/components/data/env-list/env-list.class.js +1 -1
  166. package/dist/components/data/file-tree/file-tree.class.d.ts +2 -1
  167. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  168. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +24 -14
  169. package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -2
  170. package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
  171. package/dist/components/data/flow-canvas/flow-model.js +1 -1
  172. package/dist/components/data/flow-canvas/flow-types.d.ts +2 -1
  173. package/dist/components/data/flow-controls/flow-controls.styles.js +1 -1
  174. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  175. package/dist/components/data/funnel/funnel.class.d.ts +1 -0
  176. package/dist/components/data/funnel/funnel.class.js +1 -1
  177. package/dist/components/data/gauge/gauge.class.d.ts +4 -1
  178. package/dist/components/data/gauge/gauge.class.js +6 -6
  179. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +5 -2
  180. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +15 -1
  181. package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +1 -1
  182. package/dist/components/data/heatmap/heatmap.class.d.ts +7 -4
  183. package/dist/components/data/heatmap/heatmap.class.js +1 -1
  184. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  185. package/dist/components/data/sparkline/sparkline.class.d.ts +2 -1
  186. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  187. package/dist/components/data/stat/stat.class.d.ts +6 -2
  188. package/dist/components/data/stat/stat.class.js +1 -1
  189. package/dist/components/data/table/table.class.d.ts +15 -16
  190. package/dist/components/data/table/table.class.js +5 -4
  191. package/dist/components/data/table/table.styles.js +1 -1
  192. package/dist/components/data/timeline/timeline.class.d.ts +7 -2
  193. package/dist/components/data/timeline/timeline.class.js +1 -1
  194. package/dist/components/data/timeline/timeline.styles.js +1 -1
  195. package/dist/components/data/tree/tree-item.class.d.ts +3 -1
  196. package/dist/components/data/tree/tree-item.class.js +1 -1
  197. package/dist/components/data/tree/tree-item.styles.js +1 -1
  198. package/dist/components/data/tree/tree.class.d.ts +4 -1
  199. package/dist/components/data/tree/tree.class.js +1 -1
  200. package/dist/components/data/word-cloud/word-cloud-layout.d.ts +2 -1
  201. package/dist/components/data/word-cloud/word-cloud-layout.js +1 -1
  202. package/dist/components/data/word-cloud/word-cloud.class.d.ts +2 -1
  203. package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
  204. package/dist/components/forms/button/button.class.d.ts +5 -3
  205. package/dist/components/forms/button/button.class.js +1 -1
  206. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  207. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  208. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +7 -2
  209. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  210. package/dist/components/forms/code-editor/code-editor.class.d.ts +16 -4
  211. package/dist/components/forms/code-editor/code-editor.class.js +19 -9
  212. package/dist/components/forms/code-editor/code-editor.styles.js +1 -1
  213. package/dist/components/forms/color-picker/color-picker.class.d.ts +6 -2
  214. package/dist/components/forms/color-picker/color-picker.class.js +4 -4
  215. package/dist/components/forms/combobox/combobox.class.d.ts +19 -8
  216. package/dist/components/forms/combobox/combobox.class.js +3 -3
  217. package/dist/components/forms/combobox/combobox.styles.js +1 -1
  218. package/dist/components/forms/combobox/option.class.d.ts +4 -0
  219. package/dist/components/forms/combobox/option.class.js +2 -2
  220. package/dist/components/forms/date-picker/calendar-core.d.ts +1 -1
  221. package/dist/components/forms/date-picker/calendar-core.js +1 -1
  222. package/dist/components/forms/date-picker/date-input.class.d.ts +20 -10
  223. package/dist/components/forms/date-picker/date-input.class.js +4 -4
  224. package/dist/components/forms/date-picker/date-picker.class.d.ts +33 -15
  225. package/dist/components/forms/date-picker/date-picker.class.js +8 -8
  226. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  227. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  228. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +11 -3
  229. package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -3
  230. package/dist/components/forms/emoji-picker/emoji-types.d.ts +2 -2
  231. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -2
  232. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  233. package/dist/components/forms/input/input.class.d.ts +16 -5
  234. package/dist/components/forms/input/input.class.js +7 -1
  235. package/dist/components/forms/input/native-time-input.class.d.ts +3 -0
  236. package/dist/components/forms/input/number-input.class.d.ts +3 -0
  237. package/dist/components/forms/input/time-input.class.d.ts +11 -2
  238. package/dist/components/forms/input/time-input.class.js +2 -2
  239. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +22 -4
  240. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  241. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
  242. package/dist/components/forms/otp-input/otp-input.class.d.ts +5 -1
  243. package/dist/components/forms/otp-input/otp-input.class.js +1 -1
  244. package/dist/components/forms/phone-input/phone-input.class.d.ts +21 -8
  245. package/dist/components/forms/phone-input/phone-input.class.js +1 -1
  246. package/dist/components/forms/radio/radio-button.class.d.ts +4 -0
  247. package/dist/components/forms/radio/radio-group.class.d.ts +4 -1
  248. package/dist/components/forms/radio/radio-group.class.js +1 -1
  249. package/dist/components/forms/radio/radio.class.d.ts +6 -2
  250. package/dist/components/forms/radio/radio.class.js +1 -1
  251. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -1
  252. package/dist/components/forms/rubric-form/rubric-form.class.js +3 -3
  253. package/dist/components/forms/select/select.class.d.ts +8 -2
  254. package/dist/components/forms/select/select.class.js +2 -2
  255. package/dist/components/forms/select/select.styles.js +1 -1
  256. package/dist/components/forms/slider/slider.class.d.ts +12 -6
  257. package/dist/components/forms/slider/slider.class.js +2 -2
  258. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +4 -0
  259. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  260. package/dist/components/forms/switch/switch.class.d.ts +5 -1
  261. package/dist/components/forms/switch/switch.class.js +1 -1
  262. package/dist/components/forms/textarea/textarea.class.d.ts +3 -0
  263. package/dist/components/forms/textarea/textarea.class.js +1 -1
  264. package/dist/components/forms/time-range/time-range.class.d.ts +3 -0
  265. package/dist/components/forms/time-range/time-range.class.js +1 -1
  266. package/dist/components/forms/token-input/token-input.class.d.ts +8 -2
  267. package/dist/components/forms/token-input/token-input.class.js +2 -2
  268. package/dist/components/forms/token-input/token-input.styles.js +1 -1
  269. package/dist/components/layout/app-rail/app-rail.class.d.ts +9 -5
  270. package/dist/components/layout/app-rail/app-rail.class.js +4 -3
  271. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  272. package/dist/components/layout/carousel/carousel.class.d.ts +3 -2
  273. package/dist/components/layout/carousel/carousel.class.js +1 -1
  274. package/dist/components/layout/command-palette/command-palette.class.d.ts +2 -2
  275. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  276. package/dist/components/layout/command-palette/command-palette.styles.js +1 -1
  277. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +2 -0
  278. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  279. package/dist/components/layout/details/details.class.d.ts +16 -15
  280. package/dist/components/layout/details/details.class.js +43 -34
  281. package/dist/components/layout/details/details.styles.js +1 -1
  282. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +4 -3
  283. package/dist/components/layout/dock-panel/dock-panel.class.js +2 -1
  284. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -1
  285. package/dist/components/layout/filter-bar/filter-bar.class.js +2 -2
  286. package/dist/components/layout/menu/menu-item.class.js +2 -2
  287. package/dist/components/layout/menu/menu-label.class.d.ts +3 -3
  288. package/dist/components/layout/menu/menu.class.d.ts +4 -1
  289. package/dist/components/layout/menu/menu.class.js +1 -1
  290. package/dist/components/layout/multi-split/multi-split.class.d.ts +19 -8
  291. package/dist/components/layout/multi-split/multi-split.class.js +2 -1
  292. package/dist/components/layout/multi-split/multi-split.styles.js +1 -1
  293. package/dist/components/layout/reorder-list/reorder-item.class.d.ts +2 -1
  294. package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
  295. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  296. package/dist/components/layout/reorder-list/reorder-owner.js +1 -1
  297. package/dist/components/layout/scroller/scroller.class.d.ts +4 -4
  298. package/dist/components/layout/scroller/scroller.styles.js +1 -1
  299. package/dist/components/layout/split-panel/split-panel.class.d.ts +5 -3
  300. package/dist/components/layout/split-panel/split-panel.class.js +3 -2
  301. package/dist/components/layout/tab-group/tab-group.class.d.ts +3 -1
  302. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  303. package/dist/components/layout/tab-group/tab-group.styles.js +1 -1
  304. package/dist/components/layout/virtual-list/virtual-list.class.js +2 -2
  305. package/dist/components/layout/widget/widget.class.d.ts +6 -2
  306. package/dist/components/layout/widget/widget.class.js +1 -1
  307. package/dist/components/layout/widget/widget.styles.js +1 -1
  308. package/dist/components/media/animation/animation.class.d.ts +3 -2
  309. package/dist/components/media/animation/animation.class.js +1 -1
  310. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +4 -3
  311. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  312. package/dist/components/media/av-player/av-metadata.d.ts +3 -2
  313. package/dist/components/media/av-player/av-player.class.d.ts +4 -3
  314. package/dist/components/media/av-player/av-player.class.js +3 -3
  315. package/dist/components/media/av-player/av-player.styles.js +1 -1
  316. package/dist/components/media/avatar/avatar.class.d.ts +2 -1
  317. package/dist/components/media/avatar/avatar.class.js +1 -1
  318. package/dist/components/media/file-input/file-input.class.d.ts +4 -2
  319. package/dist/components/media/file-input/file-input.class.js +1 -1
  320. package/dist/components/media/file-input/file-input.styles.js +1 -1
  321. package/dist/components/media/flag/flag.class.js +1 -1
  322. package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
  323. package/dist/components/media/image-viewer/image-viewer.class.js +1 -1
  324. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  325. package/dist/components/media/lightbox/lightbox.styles.js +1 -1
  326. package/dist/components/media/map/map-loader.js +1 -1
  327. package/dist/components/media/map/map.class.d.ts +22 -34
  328. package/dist/components/media/map/map.class.js +1 -1
  329. package/dist/components/media/map/map.styles.js +1 -1
  330. package/dist/components/media/media-card/media-card.class.d.ts +1 -1
  331. package/dist/components/media/media-card/media-card.class.js +1 -1
  332. package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
  333. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  334. package/dist/components/media/qr-code/qr-code.class.d.ts +5 -2
  335. package/dist/components/media/qr-code/qr-code.class.js +2 -2
  336. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +3 -3
  337. package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
  338. package/dist/components/media/sequence-playback/sequence-playback.styles.js +1 -1
  339. package/dist/components/media/video/video.class.d.ts +2 -1
  340. package/dist/components/media/video/video.styles.js +1 -1
  341. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  342. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  343. package/dist/components/overlays/alert/alert.styles.js +1 -1
  344. package/dist/components/overlays/callout/callout.styles.js +1 -1
  345. package/dist/components/overlays/chip/chip-group.class.d.ts +2 -0
  346. package/dist/components/overlays/chip/chip-group.class.js +1 -1
  347. package/dist/components/overlays/dialog/dialog.class.d.ts +2 -0
  348. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  349. package/dist/components/overlays/dialog/dialog.styles.js +1 -1
  350. package/dist/components/overlays/empty/empty.class.d.ts +2 -0
  351. package/dist/components/overlays/empty/empty.class.js +1 -1
  352. package/dist/components/overlays/kbd/kbd.class.d.ts +2 -0
  353. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  354. package/dist/components/overlays/overlay/popover.class.d.ts +3 -1
  355. package/dist/components/overlays/overlay/popover.class.js +1 -1
  356. package/dist/components/overlays/overlay/tooltip.class.d.ts +3 -1
  357. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  358. package/dist/components/overlays/rating/rating.class.d.ts +2 -0
  359. package/dist/components/overlays/rating/rating.class.js +1 -1
  360. package/dist/components/overlays/toast/toast-item.class.js +1 -1
  361. package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts +11 -5
  362. package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +3 -3
  363. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +2 -2
  364. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +5 -2
  365. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  366. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +4 -2
  367. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  368. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  369. package/dist/components/retrieval/graph/graph-loader.js +1 -1
  370. package/dist/components/retrieval/graph/graph.class.d.ts +10 -8
  371. package/dist/components/retrieval/graph/graph.class.js +10 -10
  372. package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts +4 -2
  373. package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
  374. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +15 -9
  375. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +7 -5
  376. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
  377. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
  378. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +3 -2
  379. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +4 -3
  380. package/dist/components/retrieval/knowledge-base/knowledge-base.styles.js +1 -1
  381. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +7 -3
  382. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +8 -3
  383. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +1 -1
  384. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +15 -6
  385. package/dist/components/retrieval/memory-panel/memory-panel.class.js +1 -1
  386. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  387. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +1 -1
  388. package/dist/components/retrieval/node-palette/node-palette.class.d.ts +17 -12
  389. package/dist/components/retrieval/node-palette/node-palette.class.js +2 -2
  390. package/dist/components/retrieval/node-palette/node-palette.styles.js +1 -1
  391. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  392. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +2 -1
  393. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  394. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +1 -1
  395. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +5 -5
  396. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -1
  397. package/dist/components/retrieval/source-picker/source-picker.class.d.ts +2 -1
  398. package/dist/components/retrieval/source-picker/source-picker.class.js +2 -2
  399. package/dist/components/utility/copy-button/copy-button.class.d.ts +2 -1
  400. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  401. package/dist/components/utility/diff-view/diff-view.class.d.ts +4 -1
  402. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  403. package/dist/components/utility/export-button/export-button.class.d.ts +2 -2
  404. package/dist/components/utility/export-button/export-button.class.js +1 -1
  405. package/dist/components/utility/export-button/export-button.styles.js +1 -1
  406. package/dist/components/utility/format/format-date.class.js +1 -1
  407. package/dist/components/utility/format/format-number.class.d.ts +3 -1
  408. package/dist/components/utility/format/format-options.js +1 -1
  409. package/dist/components/utility/format/relative-time.class.js +1 -1
  410. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  411. package/dist/components/utility/icon/icon-library.js +1 -1
  412. package/dist/components/utility/intersection-observer/intersection-observer.class.js +1 -1
  413. package/dist/components/utility/json-viewer/json-viewer.class.d.ts +6 -3
  414. package/dist/components/utility/json-viewer/json-viewer.class.js +5 -5
  415. package/dist/components/utility/known-date/known-date.class.d.ts +9 -5
  416. package/dist/components/utility/known-date/known-date.class.js +2 -2
  417. package/dist/components/utility/known-date/known-date.styles.js +1 -1
  418. package/dist/components/utility/mention-popover/mention-popover.class.d.ts +32 -45
  419. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  420. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  421. package/dist/components/utility/poll-status/poll-status.class.d.ts +3 -0
  422. package/dist/components/utility/poll-status/poll-status.styles.js +1 -1
  423. package/dist/components/viewers/calendar-viewer/calendar-loader.js +1 -1
  424. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +1 -0
  425. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  426. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -1
  427. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  428. package/dist/components/viewers/document-compare/document-compare.class.d.ts +11 -8
  429. package/dist/components/viewers/document-compare/document-compare.class.js +2 -2
  430. package/dist/components/viewers/document-preview/document-preview.class.d.ts +8 -4
  431. package/dist/components/viewers/document-preview/document-preview.class.js +4 -4
  432. package/dist/components/viewers/document-preview/document-preview.styles.js +1 -1
  433. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +5 -2
  434. package/dist/components/viewers/document-viewer/document-viewer.class.js +2 -2
  435. package/dist/components/viewers/document-viewer/document-viewer.styles.js +1 -1
  436. package/dist/components/viewers/document-viewer/registry-ownership.d.ts +1 -0
  437. package/dist/components/viewers/document-viewer/registry-ownership.js +1 -0
  438. package/dist/components/viewers/document-viewer/registry.js +1 -1
  439. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  440. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +1 -1
  441. package/dist/components/viewers/ebook-viewer/ebook-loader.d.ts +1 -1
  442. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +8 -2
  443. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +1 -1
  444. package/dist/components/viewers/email-viewer/email-loader.js +1 -1
  445. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +3 -2
  446. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  447. package/dist/components/viewers/html-viewer/dompurify-loader.js +1 -1
  448. package/dist/components/viewers/include/include-resource.js +1 -1
  449. package/dist/components/viewers/include/include.class.d.ts +3 -1
  450. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  451. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +4 -2
  452. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +4 -4
  453. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +1 -1
  454. package/dist/components/viewers/passive-markup.js +1 -1
  455. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  456. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  457. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-loader.js +1 -1
  458. package/dist/components/viewers/svg-viewer/dompurify-loader.js +1 -1
  459. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +2 -1
  460. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  461. package/dist/components/viewers/viewer-loading.js +1 -1
  462. package/dist/components/viewers/viewer-search-limits.d.ts +2 -0
  463. package/dist/components/viewers/viewer-search-limits.js +1 -1
  464. package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +2 -1
  465. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
  466. package/dist/components/viewers/xml-viewer/xml-viewer.js +1 -1
  467. package/dist/custom-elements-jsx.d.ts +1 -1
  468. package/dist/events.d.ts +13 -6
  469. package/dist/internal/aria-controls.d.ts +16 -13
  470. package/dist/internal/aria-controls.js +1 -1
  471. package/dist/internal/aria-reflection.js +1 -1
  472. package/dist/internal/catalog-picker.d.ts +2 -2
  473. package/dist/internal/catalog-picker.js +1 -1
  474. package/dist/internal/chart-annotation-registration.d.ts +1 -0
  475. package/dist/internal/chart-annotation-registration.js +1 -0
  476. package/dist/internal/data-descriptors.d.ts +13 -0
  477. package/dist/internal/data-descriptors.js +1 -0
  478. package/dist/internal/default-strings.generated.d.ts +1 -1
  479. package/dist/internal/default-strings.generated.js +2 -2
  480. package/dist/internal/dev-mode-attribute-warning.d.ts +3 -0
  481. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  482. package/dist/internal/element-internals.d.ts +4 -3
  483. package/dist/internal/element-internals.js +1 -1
  484. package/dist/internal/form-associated.js +1 -1
  485. package/dist/internal/highlight-collection.d.ts +2 -0
  486. package/dist/internal/highlight-collection.js +1 -1
  487. package/dist/internal/localization-types.d.ts +1 -1
  488. package/dist/internal/localization.js +2 -2
  489. package/dist/internal/lyra-element.d.ts +10 -1
  490. package/dist/internal/lyra-element.js +2 -1
  491. package/dist/internal/native-control-description.d.ts +7 -0
  492. package/dist/internal/native-control-description.js +1 -0
  493. package/dist/internal/option-selection.js +1 -1
  494. package/dist/internal/overlay-order.d.ts +6 -0
  495. package/dist/internal/overlay-order.js +1 -0
  496. package/dist/internal/overlay-stack.d.ts +1 -1
  497. package/dist/internal/overlay-stack.js +1 -1
  498. package/dist/internal/package-metadata.d.ts +1 -1
  499. package/dist/internal/package-metadata.js +1 -1
  500. package/dist/internal/papaparse-loader.js +1 -1
  501. package/dist/internal/positioner.d.ts +5 -4
  502. package/dist/internal/pseudo-localization.js +1 -1
  503. package/dist/internal/reactive-property-writes.d.ts +1 -0
  504. package/dist/internal/reactive-property-writes.js +1 -0
  505. package/dist/internal/safe-css.js +1 -1
  506. package/dist/internal/step-value.d.ts +6 -0
  507. package/dist/internal/step-value.js +1 -0
  508. package/dist/internal/svg-title.d.ts +3 -0
  509. package/dist/internal/svg-title.js +1 -0
  510. package/dist/internal/text-quote.js +1 -1
  511. package/dist/lyra.d.ts +1 -1
  512. package/dist/svelte.d.ts +1 -1
  513. package/dist/translations/ar.js +2 -2
  514. package/dist/translations/de.js +2 -2
  515. package/dist/translations/es.js +2 -2
  516. package/dist/translations/fa.js +2 -2
  517. package/dist/translations/fr.js +2 -2
  518. package/dist/translations/he.js +2 -2
  519. package/dist/translations/ja.js +2 -2
  520. package/dist/translations/pseudo/ar-XB.js +1 -1
  521. package/dist/translations/pt-BR.js +2 -2
  522. package/dist/translations/ru.js +2 -2
  523. package/dist/translations/zh-CN.js +2 -2
  524. package/dist/vue.d.ts +1 -1
  525. package/llms/components/lr-accordion-item.md +10 -5
  526. package/llms/components/lr-accordion.md +10 -5
  527. package/llms/components/lr-activity-feed.md +6 -5
  528. package/llms/components/lr-agent-run.md +1 -1
  529. package/llms/components/lr-agent-trace.md +3 -0
  530. package/llms/components/lr-agent-workspace.md +3 -2
  531. package/llms/components/lr-animation.md +4 -0
  532. package/llms/components/lr-app-rail-item.md +4 -2
  533. package/llms/components/lr-app-rail.md +4 -2
  534. package/llms/components/lr-attachment-chip.md +8 -3
  535. package/llms/components/lr-audio-visualizer.md +9 -6
  536. package/llms/components/lr-av-player.md +14 -0
  537. package/llms/components/lr-avatar.md +4 -0
  538. package/llms/components/lr-bar-chart.md +2 -2
  539. package/llms/components/lr-box-plot.md +15 -6
  540. package/llms/components/lr-bubble-chart.md +2 -2
  541. package/llms/components/lr-button.md +11 -3
  542. package/llms/components/lr-calendar-viewer.md +4 -0
  543. package/llms/components/lr-calendar.md +15 -4
  544. package/llms/components/lr-carousel.md +5 -0
  545. package/llms/components/lr-chart.md +24 -9
  546. package/llms/components/lr-chat-composer.md +2 -1
  547. package/llms/components/lr-chat-message.md +4 -0
  548. package/llms/components/lr-checkbox.md +3 -0
  549. package/llms/components/lr-chip-group.md +3 -0
  550. package/llms/components/lr-chip.md +3 -0
  551. package/llms/components/lr-chunk-inspector.md +2 -2
  552. package/llms/components/lr-code-block-core.md +20 -8
  553. package/llms/components/lr-code-block.md +17 -14
  554. package/llms/components/lr-code-editor.md +20 -5
  555. package/llms/components/lr-color-picker.md +9 -0
  556. package/llms/components/lr-combobox.md +35 -4
  557. package/llms/components/lr-command-palette.md +4 -0
  558. package/llms/components/lr-commit-card.md +3 -0
  559. package/llms/components/lr-compare-panel.md +7 -0
  560. package/llms/components/lr-condition-builder.md +5 -0
  561. package/llms/components/lr-conversation-item.md +3 -0
  562. package/llms/components/lr-copy-button.md +10 -1
  563. package/llms/components/lr-dashboard-grid.md +5 -0
  564. package/llms/components/lr-data-grid.md +22 -3
  565. package/llms/components/lr-dataset-viewer.md +3 -2
  566. package/llms/components/lr-date-input.md +50 -6
  567. package/llms/components/lr-date-picker.md +51 -7
  568. package/llms/components/lr-details.md +10 -5
  569. package/llms/components/lr-dialog.md +4 -0
  570. package/llms/components/lr-diff-view.md +6 -0
  571. package/llms/components/lr-document-compare.md +6 -2
  572. package/llms/components/lr-document-library.md +4 -0
  573. package/llms/components/lr-document-preview.md +18 -4
  574. package/llms/components/lr-document-viewer.md +14 -4
  575. package/llms/components/lr-docx-viewer.md +6 -0
  576. package/llms/components/lr-doughnut-chart.md +2 -2
  577. package/llms/components/lr-dropdown-item.md +4 -0
  578. package/llms/components/lr-dropdown.md +3 -0
  579. package/llms/components/lr-ebook-viewer.md +12 -3
  580. package/llms/components/lr-email-viewer.md +10 -0
  581. package/llms/components/lr-emoji-picker.md +17 -3
  582. package/llms/components/lr-empty.md +3 -0
  583. package/llms/components/lr-entity-card.md +3 -0
  584. package/llms/components/lr-entity-chip.md +4 -0
  585. package/llms/components/lr-eval-dataset.md +2 -2
  586. package/llms/components/lr-export-button.md +9 -0
  587. package/llms/components/lr-file-input.md +12 -8
  588. package/llms/components/lr-file-tree.md +5 -1
  589. package/llms/components/lr-filter-bar.md +5 -0
  590. package/llms/components/lr-flow-canvas.md +8 -1
  591. package/llms/components/lr-flow-node.md +2 -1
  592. package/llms/components/lr-flow-run-status.md +1 -1
  593. package/llms/components/lr-format-date.md +3 -1
  594. package/llms/components/lr-format-number.md +4 -0
  595. package/llms/components/lr-funnel.md +4 -0
  596. package/llms/components/lr-gauge.md +4 -0
  597. package/llms/components/lr-generation-metrics.md +5 -0
  598. package/llms/components/lr-graph-legend.md +4 -2
  599. package/llms/components/lr-graph-query-builder.md +6 -0
  600. package/llms/components/lr-graph.md +8 -2
  601. package/llms/components/lr-grounding-summary.md +8 -8
  602. package/llms/components/lr-heatmap.md +13 -0
  603. package/llms/components/lr-histogram.md +2 -2
  604. package/llms/components/lr-icon-button.md +7 -0
  605. package/llms/components/lr-image-viewer.md +9 -0
  606. package/llms/components/lr-include.md +5 -0
  607. package/llms/components/lr-ingestion-queue.md +5 -1
  608. package/llms/components/lr-input.md +22 -8
  609. package/llms/components/lr-intersection-observer.md +9 -0
  610. package/llms/components/lr-json-viewer.md +10 -1
  611. package/llms/components/lr-kbd.md +3 -0
  612. package/llms/components/lr-knowledge-base.md +10 -1
  613. package/llms/components/lr-knowledge-graph-explorer.md +7 -0
  614. package/llms/components/lr-known-date.md +7 -0
  615. package/llms/components/lr-line-chart.md +2 -2
  616. package/llms/components/lr-lite-chart.md +29 -9
  617. package/llms/components/lr-live-region.md +3 -0
  618. package/llms/components/lr-locale-picker.md +12 -0
  619. package/llms/components/lr-map.md +23 -5
  620. package/llms/components/lr-markdown-core.md +4 -0
  621. package/llms/components/lr-markdown.md +15 -8
  622. package/llms/components/lr-media-card.md +5 -8
  623. package/llms/components/lr-mention-popover.md +17 -10
  624. package/llms/components/lr-menu-item.md +4 -0
  625. package/llms/components/lr-menu-label.md +4 -3
  626. package/llms/components/lr-menu.md +4 -0
  627. package/llms/components/lr-message-actions.md +13 -3
  628. package/llms/components/lr-message-feedback.md +24 -7
  629. package/llms/components/lr-message-parts.md +6 -3
  630. package/llms/components/lr-model-select.md +13 -2
  631. package/llms/components/lr-multi-split.md +20 -7
  632. package/llms/components/lr-mutation-observer.md +8 -0
  633. package/llms/components/lr-native-time-input.md +10 -0
  634. package/llms/components/lr-node-palette.md +8 -2
  635. package/llms/components/lr-notebook-viewer.md +4 -1
  636. package/llms/components/lr-number-input.md +12 -1
  637. package/llms/components/lr-option.md +35 -4
  638. package/llms/components/lr-otp-input.md +10 -0
  639. package/llms/components/lr-pan-zoom.md +1 -2
  640. package/llms/components/lr-phone-input.md +20 -5
  641. package/llms/components/lr-pie-chart.md +2 -2
  642. package/llms/components/lr-polar-area-chart.md +2 -2
  643. package/llms/components/lr-poll-status.md +4 -0
  644. package/llms/components/lr-popover.md +3 -0
  645. package/llms/components/lr-popup.md +3 -2
  646. package/llms/components/lr-prompt-input.md +7 -3
  647. package/llms/components/lr-prompt-queue.md +6 -0
  648. package/llms/components/lr-prompt-studio.md +7 -0
  649. package/llms/components/lr-provenance-panel.md +3 -0
  650. package/llms/components/lr-push-to-talk.md +8 -0
  651. package/llms/components/lr-qr-code.md +6 -0
  652. package/llms/components/lr-radar-chart.md +2 -2
  653. package/llms/components/lr-radio-button.md +13 -4
  654. package/llms/components/lr-radio-group.md +5 -0
  655. package/llms/components/lr-radio.md +9 -0
  656. package/llms/components/lr-rating.md +8 -0
  657. package/llms/components/lr-relative-time.md +2 -0
  658. package/llms/components/lr-reorder-item.md +6 -0
  659. package/llms/components/lr-reorder-list.md +6 -0
  660. package/llms/components/lr-result-card.md +6 -3
  661. package/llms/components/lr-result-field.md +6 -3
  662. package/llms/components/lr-retrieval-results.md +1 -1
  663. package/llms/components/lr-rubric-form.md +12 -0
  664. package/llms/components/lr-scatter-chart.md +2 -2
  665. package/llms/components/lr-scroller.md +5 -5
  666. package/llms/components/lr-select.md +9 -0
  667. package/llms/components/lr-sequence-playback.md +5 -2
  668. package/llms/components/lr-slider.md +19 -5
  669. package/llms/components/lr-source-picker.md +4 -0
  670. package/llms/components/lr-span-waterfall.md +3 -0
  671. package/llms/components/lr-sparkline.md +4 -0
  672. package/llms/components/lr-split-panel.md +4 -0
  673. package/llms/components/lr-stack-trace.md +3 -0
  674. package/llms/components/lr-stat.md +10 -0
  675. package/llms/components/lr-streaming-text.md +2 -3
  676. package/llms/components/lr-subagent-panel.md +3 -2
  677. package/llms/components/lr-svg-viewer.md +3 -0
  678. package/llms/components/lr-swatch-picker.md +4 -0
  679. package/llms/components/lr-switch.md +6 -0
  680. package/llms/components/lr-tab-group.md +4 -0
  681. package/llms/components/lr-table.md +10 -2
  682. package/llms/components/lr-terminal.md +17 -5
  683. package/llms/components/lr-textarea.md +9 -0
  684. package/llms/components/lr-thinking-panel.md +3 -1
  685. package/llms/components/lr-thread-list.md +26 -4
  686. package/llms/components/lr-time-input.md +3 -0
  687. package/llms/components/lr-time-range.md +5 -0
  688. package/llms/components/lr-timeline-item.md +6 -0
  689. package/llms/components/lr-timeline.md +6 -0
  690. package/llms/components/lr-token-input.md +14 -0
  691. package/llms/components/lr-tool-call-chip.md +7 -5
  692. package/llms/components/lr-tool-param-form.md +6 -2
  693. package/llms/components/lr-tool-result-dialog.md +4 -0
  694. package/llms/components/lr-tool-result-view.md +2 -3
  695. package/llms/components/lr-tool-select-dialog.md +6 -2
  696. package/llms/components/lr-tooltip.md +6 -0
  697. package/llms/components/lr-trace-tree.md +3 -0
  698. package/llms/components/lr-transcript-feed.md +3 -0
  699. package/llms/components/lr-tree-item.md +12 -5
  700. package/llms/components/lr-tree.md +12 -5
  701. package/llms/components/lr-typing-indicator.md +3 -0
  702. package/llms/components/lr-usage-badge.md +4 -0
  703. package/llms/components/lr-video.md +8 -2
  704. package/llms/components/lr-virtual-list.md +5 -3
  705. package/llms/components/lr-voice-picker.md +15 -2
  706. package/llms/components/lr-widget-renderer.md +21 -13
  707. package/llms/components/lr-widget.md +4 -2
  708. package/llms/components/lr-word-cloud.md +4 -0
  709. package/llms/components/lr-xml-viewer.md +9 -2
  710. package/llms/components/lr-zoomable-frame.md +6 -3
  711. package/llms/peers.md +5 -5
  712. package/llms/shared.md +74 -63
  713. package/llms-full.txt +4705 -2954
  714. package/package.json +19 -14
  715. package/vscode-css-data.json +1 -1
  716. package/vscode-html-data.json +1 -1
  717. package/web-types.json +1 -1
  718. package/dist/components/viewers/docx-viewer/fixtures/minimal-docx-fixture.d.ts +0 -1
  719. package/dist/components/viewers/docx-viewer/fixtures/minimal-docx-fixture.js +0 -1
  720. package/dist/components/viewers/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +0 -1
  721. package/dist/components/viewers/ebook-viewer/fixtures/minimal-epub-fixture.js +0 -1
  722. package/dist/components/viewers/spreadsheet-viewer/fixtures/minimal-xlsx-fixture.d.ts +0 -1
  723. package/dist/components/viewers/spreadsheet-viewer/fixtures/minimal-xlsx-fixture.js +0 -1
@@ -1,2 +1,2 @@
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{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{formatISO,monthMatrix,parseISO,resolveFirstDayOfWeek,weekdayLabels}from"../../forms/date-picker/calendar-core.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{styles}from"./calendar.styles.js";import{getDateTimeFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{isNonBlankIdentity,isRecord}from"../../retrieval/retrieval-identity.js";import{LYRA_DEFAULT_calendarEmpty,LYRA_DEFAULT_calendarLabel,LYRA_DEFAULT_calendarNextMonth,LYRA_DEFAULT_calendarPreviousMonth}from"../../../internal/default-strings.generated.js";const monthStart=date=>new Date(date.getFullYear(),date.getMonth(),1);class LyraCalendar extends LyraElement{constructor(){super(...arguments),this.events=[],this.value="",this.viewDate=formatISO(new Date).slice(0,7)+"-01",this._view="month",this.firstDayOfWeek="auto",this.accessibleLabel="",this.focusedDate=""}static{this.defaultStrings={...super.defaultStrings,calendarEmpty:LYRA_DEFAULT_calendarEmpty,calendarLabel:LYRA_DEFAULT_calendarLabel,calendarNextMonth:LYRA_DEFAULT_calendarNextMonth,calendarPreviousMonth:LYRA_DEFAULT_calendarPreviousMonth}}static{this.ownedCollectionProperties=Object.freeze(["events"])}static{this.identityCollectionProperties=Object.freeze(["events"])}static{this.styles=[LyraElement.styles,styles]}get view(){return this._view}set view(value){const normalized=value==="agenda"?"agenda":"month",previous=this._view;if(previous===normalized){value!==normalized&&this.requestUpdate("view",previous);return}this._view=normalized,this.requestUpdate("view",previous)}get viewStart(){const parsed=parseISO(this.viewDate);return monthStart(parsed||new Date)}get normalizedFirstDayOfWeek(){return resolveFirstDayOfWeek(this.firstDayOfWeek,this.effectiveLocale)}changeMonth(delta){const next=new Date(this.viewStart.getFullYear(),this.viewStart.getMonth()+delta,1);this.viewDate=formatISO(next),this.emit("lr-view-change",{viewDate:this.viewDate})}selectDate(date){this.value=date,this.focusedDate=date,this.emit("lr-date-select",{date})}get effectiveEvents(){return this.events.filter(event=>isRecord(event)&&typeof event.date=="string"&&isNonBlankIdentity(event.title))}bucketEventsByDate(events){const buckets=new Map;for(const event of events){const bucket=buckets.get(event.date);bucket?bucket.push(event):buckets.set(event.date,[event])}return buckets}weeks(){const start=this.viewStart;return monthMatrix(start.getFullYear(),start.getMonth(),this.normalizedFirstDayOfWeek)}gridBounds(weeks){return[weeks[0][0],weeks[weeks.length-1][6]]}onDayKeyDown(event,date){let delta=0;if(event.key==="ArrowLeft")delta=this.effectiveDirection==="rtl"?1:-1;else if(event.key==="ArrowRight")delta=this.effectiveDirection==="rtl"?-1:1;else if(event.key==="ArrowUp")delta=-7;else if(event.key==="ArrowDown")delta=7;else if(event.key==="Enter"||event.key===" "){event.preventDefault(),this.selectDate(formatISO(date));return}else return;event.preventDefault();const next=new Date(date);next.setDate(next.getDate()+delta);const[gridFirst,gridLast]=this.gridBounds(this.weeks());(next<gridFirst||next>gridLast)&&(this.viewDate=formatISO(monthStart(next)),this.emit("lr-view-change",{viewDate:this.viewDate})),this.focusedDate=formatISO(next),queueMicrotask(()=>this.renderRoot.querySelector(`[data-date="${this.focusedDate}"]`)?.focus())}weekdays(){return weekdayLabels(this.normalizedFirstDayOfWeek,"short",this.effectiveLocale)}updated(changed){super.updated(changed),this.getAttribute("view")!==this._view&&this.setAttribute("view",this._view)}render(){const start=this.viewStart,weeks=this.weeks(),monthTitle=getDateTimeFormat(this.effectiveLocale,{month:"long",year:"numeric"}).format(start),today=formatISO(new Date),label=hostAriaLabel(this)??this.localize("calendarLabel"),dayLabelFmt=getDateTimeFormat(this.effectiveLocale,{dateStyle:"full"}),agendaDateFmt=getDateTimeFormat(this.effectiveLocale,{dateStyle:"medium"}),dayNumberFmt=getNumberFormat(this.effectiveLocale),events=this.effectiveEvents,agenda=events.filter(event=>event.date.startsWith(formatISO(start).slice(0,7))).sort((a,b)=>a.date<b.date?-1:a.date>b.date?1:0),eventsByDate=this.view==="month"?this.bucketEventsByDate(events):void 0,[gridFirst,gridLast]=this.gridBounds(weeks),rawAnchor=this.focusedDate||this.value||today,rawAnchorDate=parseISO(rawAnchor),anchor=rawAnchorDate&&rawAnchorDate>=gridFirst&&rawAnchorDate<=gridLast?rawAnchor:formatISO(start);return html`<section aria-label=${label}><header part="header navigation"><button part="nav previous-button" type="button" aria-label=${this.localize("calendarPreviousMonth")} @click=${()=>this.changeMonth(-1)}><span part="nav-glyph" aria-hidden="true">‹</span></button><span part="title">${monthTitle}</span><button part="nav next-button" type="button" aria-label=${this.localize("calendarNextMonth")} @click=${()=>this.changeMonth(1)}><span part="nav-glyph" aria-hidden="true">›</span></button></header>
2
- ${this.view==="agenda"?html`<div part="agenda">${agenda.length?agenda.map(event=>{const date=parseISO(event.date),bg=event.color?sanitizeCssColor(event.color):void 0;return html`<button part="agenda-event" type="button" style=${styleMap(bg?{"--_lr-calendar-agenda-event-background":bg,"--_lr-calendar-agenda-event-foreground":"var(--lr-color-on-brand)"}:{})} @click=${()=>this.emit("lr-event-select",{event})}><strong>${date?agendaDateFmt.format(date):event.date}</strong> ${event.title}</button>`}):html`<p>${this.localize("calendarEmpty")}</p>`}</div>`:html`<div part="weekdays">${this.weekdays().map(day=>html`<span part="weekday">${day}</span>`)}</div><div part="grid" role="grid" aria-label=${monthTitle}>${weeks.map(week=>html`<div part="week" role="row">${week.map(date=>{const dateIso=formatISO(date),dayEvents=eventsByDate?.get(dateIso)??[];return html`<div part="day" role="gridcell" data-date=${dateIso} data-outside=${date.getMonth()!==start.getMonth()?"true":"false"} data-today=${dateIso===today?"true":"false"} data-selected=${dateIso===this.value?"true":"false"} aria-selected=${dateIso===this.value?"true":"false"} aria-label=${dayLabelFmt.format(date)} tabindex=${dateIso===anchor?"0":"-1"} @click=${event=>{(event.target===event.currentTarget||event.target.getAttribute("part")==="date")&&this.selectDate(dateIso)}} @keydown=${event=>{event.target===event.currentTarget&&this.onDayKeyDown(event,date)}}><span part="date">${dayNumberFmt.format(date.getDate())}</span>${dayEvents.map(item=>{const bg=item.color?sanitizeCssColor(item.color):void 0;return html`<button part="event" type="button" style=${styleMap(bg?{backgroundColor:bg}:{})} @click=${event=>{event.stopPropagation(),this.emit("lr-event-select",{event:item})}}>${item.title}</button>`})}</div>`})}</div>`)}</div>`}</section>`}}__decorate([property({attribute:!1})],LyraCalendar.prototype,"events",void 0),__decorate([property()],LyraCalendar.prototype,"value",void 0),__decorate([property({attribute:"view-date"})],LyraCalendar.prototype,"viewDate",void 0),__decorate([property({reflect:!0})],LyraCalendar.prototype,"view",null),__decorate([property({attribute:"first-day-of-week"})],LyraCalendar.prototype,"firstDayOfWeek",void 0),__decorate([property({attribute:"aria-label"})],LyraCalendar.prototype,"accessibleLabel",void 0),__decorate([state()],LyraCalendar.prototype,"focusedDate",void 0);export{LyraCalendar};
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{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{formatISO,localDate,monthMatrix,parseISO,resolveFirstDayOfWeek,weekdayLabels}from"../../forms/date-picker/calendar-core.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{styles}from"./calendar.styles.js";import{getDateTimeFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR,getOwnDataDescriptor}from"../../../internal/data-descriptors.js";import{LYRA_DEFAULT_calendarEmpty,LYRA_DEFAULT_calendarLabel,LYRA_DEFAULT_calendarNextMonth,LYRA_DEFAULT_calendarPreviousMonth}from"../../../internal/default-strings.generated.js";const monthStart=date=>localDate(date.getFullYear(),date.getMonth(),1),canonicalEventSnapshots=new WeakMap;function normalizeCalendarEventDate(value){if(typeof value=="string"){const date=parseISO(value);return date?formatISO(date):void 0}if(typeof value=="number"){if(!Number.isFinite(value))return;const date=new Date(value);return Number.isNaN(date.getTime())?void 0:formatISO(date)}if(!(value===null||typeof value!="object"))try{const epoch=Date.prototype.getTime.call(value);return Number.isFinite(epoch)?formatISO(new Date(epoch)):void 0}catch{return}}function isSafeNonArrayObject(value){if(value===null||typeof value!="object")return!1;try{return!Array.isArray(value)}catch{return!1}}function projectCalendarEvent(value){if(!isSafeNonArrayObject(value))return;const date=getOwnDataDescriptor(value,"date"),title=getOwnDataDescriptor(value,"title"),color=getOwnDataDescriptor(value,"color");if(date===MISSING_OWN_DATA_DESCRIPTOR||date===UNSAFE_OWN_DATA_DESCRIPTOR||title===MISSING_OWN_DATA_DESCRIPTOR||title===UNSAFE_OWN_DATA_DESCRIPTOR||typeof title.value!="string"||title.value.trim().length===0)return;const normalizedDate=normalizeCalendarEventDate(date.value);if(normalizedDate)return Object.freeze({source:value,date:normalizedDate,title:title.value,color:color===MISSING_OWN_DATA_DESCRIPTOR||color===UNSAFE_OWN_DATA_DESCRIPTOR||typeof color.value!="string"?void 0:color.value})}function canonicalCalendarEvents(values){const cached=canonicalEventSnapshots.get(values);if(cached)return cached;const projected=[];for(const value of values){const event=projectCalendarEvent(value);event&&projected.push(event)}const snapshot=Object.freeze(projected);return canonicalEventSnapshots.set(values,snapshot),snapshot}class LyraCalendar extends LyraElement{constructor(){super(...arguments),this.events=[],this.value="",this.viewDate=formatISO(new Date).slice(0,7)+"-01",this._view="month",this.firstDayOfWeek="auto",this.accessibleLabel="",this.focusedDate=""}static{this.defaultStrings={...super.defaultStrings,calendarEmpty:LYRA_DEFAULT_calendarEmpty,calendarLabel:LYRA_DEFAULT_calendarLabel,calendarNextMonth:LYRA_DEFAULT_calendarNextMonth,calendarPreviousMonth:LYRA_DEFAULT_calendarPreviousMonth}}static{this.ownedCollectionProperties=Object.freeze(["events"])}static{this.identityCollectionProperties=Object.freeze(["events"])}static{this.styles=[LyraElement.styles,styles]}get view(){return this._view}set view(value){const normalized=value==="agenda"?"agenda":"month",previous=this._view;if(previous===normalized){value!==normalized&&this.requestUpdate("view",previous);return}this._view=normalized,this.requestUpdate("view",previous)}get viewStart(){const parsed=parseISO(this.viewDate);return monthStart(parsed||new Date)}get normalizedFirstDayOfWeek(){return resolveFirstDayOfWeek(this.firstDayOfWeek,this.effectiveLocale)}changeMonth(delta){const next=localDate(this.viewStart.getFullYear(),this.viewStart.getMonth()+delta,1);this.viewDate=formatISO(next),this.emit("lr-view-change",{viewDate:this.viewDate})}selectDate(date){this.value=date,this.focusedDate=date,this.emit("lr-date-select",{date})}get effectiveEvents(){return canonicalCalendarEvents(this.events)}bucketEventsByDate(events){const buckets=new Map;for(const event of events){const bucket=buckets.get(event.date);bucket?bucket.push(event):buckets.set(event.date,[event])}return buckets}weeks(){const start=this.viewStart;return monthMatrix(start.getFullYear(),start.getMonth(),this.normalizedFirstDayOfWeek)}gridBounds(weeks){return[weeks[0][0],weeks[weeks.length-1][6]]}onDayKeyDown(event,date){let delta=0;if(event.key==="ArrowLeft")delta=this.effectiveDirection==="rtl"?1:-1;else if(event.key==="ArrowRight")delta=this.effectiveDirection==="rtl"?-1:1;else if(event.key==="ArrowUp")delta=-7;else if(event.key==="ArrowDown")delta=7;else if(event.key==="Enter"||event.key===" "){event.preventDefault(),this.selectDate(formatISO(date));return}else return;event.preventDefault();const next=new Date(date);next.setDate(next.getDate()+delta);const[gridFirst,gridLast]=this.gridBounds(this.weeks());(next<gridFirst||next>gridLast)&&(this.viewDate=formatISO(monthStart(next)),this.emit("lr-view-change",{viewDate:this.viewDate})),this.focusedDate=formatISO(next),queueMicrotask(()=>this.renderRoot.querySelector(`[data-date="${this.focusedDate}"]`)?.focus())}weekdays(){return weekdayLabels(this.normalizedFirstDayOfWeek,"short",this.effectiveLocale)}updated(changed){super.updated(changed),this.getAttribute("view")!==this._view&&this.setAttribute("view",this._view)}render(){const start=this.viewStart,weeks=this.weeks(),monthTitle=getDateTimeFormat(this.effectiveLocale,{month:"long",year:"numeric"}).format(start),today=formatISO(new Date),label=hostAriaLabel(this)??this.localize("calendarLabel"),dayLabelFmt=getDateTimeFormat(this.effectiveLocale,{dateStyle:"full"}),agendaDateFmt=getDateTimeFormat(this.effectiveLocale,{dateStyle:"medium"}),dayNumberFmt=getNumberFormat(this.effectiveLocale),events=this.effectiveEvents,agenda=events.filter(event=>event.date.startsWith(formatISO(start).slice(0,7))).sort((a,b)=>a.date<b.date?-1:a.date>b.date?1:0),eventsByDate=this.view==="month"?this.bucketEventsByDate(events):void 0,[gridFirst,gridLast]=this.gridBounds(weeks),rawAnchor=this.focusedDate||this.value||today,rawAnchorDate=parseISO(rawAnchor),anchor=rawAnchorDate&&rawAnchorDate>=gridFirst&&rawAnchorDate<=gridLast?rawAnchor:formatISO(start);return html`<section aria-label=${label}><header part="header navigation"><button part="nav previous-button" type="button" aria-label=${this.localize("calendarPreviousMonth")} @click=${()=>this.changeMonth(-1)}><span part="nav-glyph" aria-hidden="true">‹</span></button><span part="title">${monthTitle}</span><button part="nav next-button" type="button" aria-label=${this.localize("calendarNextMonth")} @click=${()=>this.changeMonth(1)}><span part="nav-glyph" aria-hidden="true">›</span></button></header>
2
+ ${this.view==="agenda"?html`<div part="agenda">${agenda.length?agenda.map(event=>{const date=parseISO(event.date),bg=event.color?sanitizeCssColor(event.color):void 0;return html`<button part="agenda-event" type="button" style=${styleMap(bg?{"--_lr-calendar-agenda-event-background":bg,"--_lr-calendar-agenda-event-foreground":"var(--lr-color-on-brand)"}:{})} @click=${()=>this.emit("lr-event-select",{event:event.source})}><strong>${date?agendaDateFmt.format(date):event.date}</strong> ${event.title}</button>`}):html`<p>${this.localize("calendarEmpty")}</p>`}</div>`:html`<div part="weekdays">${this.weekdays().map(day=>html`<span part="weekday">${day}</span>`)}</div><div part="grid" role="grid" aria-label=${monthTitle}>${weeks.map(week=>html`<div part="week" role="row">${week.map(date=>{const dateIso=formatISO(date),dayEvents=eventsByDate?.get(dateIso)??[];return html`<div part="day" role="gridcell" data-date=${dateIso} data-outside=${date.getMonth()!==start.getMonth()?"true":"false"} data-today=${dateIso===today?"true":"false"} data-selected=${dateIso===this.value?"true":"false"} aria-selected=${dateIso===this.value?"true":"false"} aria-label=${dayLabelFmt.format(date)} tabindex=${dateIso===anchor?"0":"-1"} @click=${event=>{(event.target===event.currentTarget||event.target.getAttribute("part")==="date")&&this.selectDate(dateIso)}} @keydown=${event=>{event.target===event.currentTarget&&this.onDayKeyDown(event,date)}}><span part="date">${dayNumberFmt.format(date.getDate())}</span>${dayEvents.map(item=>{const bg=item.color?sanitizeCssColor(item.color):void 0;return html`<button part="event" type="button" style=${styleMap(bg?{backgroundColor:bg}:{})} @click=${event=>{event.stopPropagation(),this.emit("lr-event-select",{event:item.source})}}>${item.title}</button>`})}</div>`})}</div>`)}</div>`}</section>`}}__decorate([property({attribute:!1})],LyraCalendar.prototype,"events",void 0),__decorate([property()],LyraCalendar.prototype,"value",void 0),__decorate([property({attribute:"view-date"})],LyraCalendar.prototype,"viewDate",void 0),__decorate([property({reflect:!0})],LyraCalendar.prototype,"view",null),__decorate([property({attribute:"first-day-of-week"})],LyraCalendar.prototype,"firstDayOfWeek",void 0),__decorate([property({attribute:"aria-label"})],LyraCalendar.prototype,"accessibleLabel",void 0),__decorate([state()],LyraCalendar.prototype,"focusedDate",void 0);export{LyraCalendar};
@@ -1 +1 @@
1
- import{css}from"lit";const styles=css`:host{contain-intrinsic-inline-size:var(--lr-size-20rem);min-inline-size:0;display:block;container-type:inline-size}[part~=header]{justify-content:space-between;align-items:center;gap:var(--lr-space-s);margin-block-end:var(--lr-space-s);display:flex}[part=title]{font-weight:var(--lr-font-weight-semibold)}[part~=nav]{justify-content:center;align-items:center;gap:var(--lr-space-xs);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);display:flex}button[part~=nav],[part=day]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer}button[part~=nav]{padding-inline:var(--lr-space-s);border-radius:var(--lr-radius)}button[part~=nav]:hover,[part=agenda-event]:hover{background:var(--lr-color-brand-quiet)}button[part~=nav]:active,[part=agenda-event]:active{background:color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active))}button[part~=nav]:focus-visible,[part=agenda-event]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=day][data-outside=true]{color:var(--lr-calendar-day-outside-color,var(--lr-color-text-quiet));background:var(--lr-calendar-day-outside-bg,var(--lr-color-surface))}[part=day][data-today=true]{outline:var(--lr-border-width-medium) solid var(--lr-calendar-day-today-outline-color,var(--lr-color-brand));outline-offset:calc(var(--lr-border-width-medium) * -1)}[part=day][data-selected=true]{background:var(--lr-calendar-day-selected-bg,var(--lr-color-brand-quiet))}[part=day]:hover{background:var(--lr-color-brand-quiet)}[part=day]:active{background:color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=day]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=weekdays]{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}[part=weekday]{padding:var(--lr-space-xs);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-sm);text-align:center}[part=grid]{border-block-start:var(--lr-border-width-thin) solid var(--lr-color-border);border-inline-start:var(--lr-border-width-thin) solid var(--lr-color-border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}[part=week]{display:contents}[part=day]{min-block-size:var(--lr-calendar-day-min-block-size,var(--lr-size-6rem));padding:var(--lr-space-xs);text-align:start;border-block-start:0;border-inline-start:0;flex-direction:column;align-items:stretch;display:flex}[part=date]{font-weight:var(--lr-font-weight-semibold)}[part=event]{box-sizing:border-box;inline-size:100%;min-inline-size:var(--lr-size-1-5rem);min-block-size:var(--lr-size-1-5rem);padding:var(--lr-space-2xs);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-size:var(--lr-font-size-sm);text-align:start;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:0;margin-block-start:var(--lr-space-2xs);overflow:hidden}[part=event]:hover{background-image:linear-gradient(color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-hover)), color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-hover)))}[part=event]:active{background-image:linear-gradient(color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active)), color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active)))}[part=event]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=agenda]{gap:var(--lr-space-s);display:grid}[part=agenda-event]{padding:var(--lr-space-s);border:0;border-inline-start:var(--lr-border-width-medium) solid var(--lr-color-brand);background:var(--_lr-calendar-agenda-event-background,var(--lr-color-surface));color:var(--_lr-calendar-agenda-event-foreground,var(--lr-color-text));font:inherit;text-align:start;cursor:pointer}@container (inline-size<=28rem){[part=day]{min-block-size:var(--lr-calendar-day-min-block-size-narrow,var(--lr-size-4rem))}[part=event]{font-size:var(--lr-font-size-xs)}}:host(:dir(rtl)) [part=nav-glyph]{transform:scaleX(-1)}@media (forced-colors:active){[part=day][data-selected=true]{outline:var(--lr-border-width-medium) solid Highlight;outline-offset:calc(var(--lr-border-width-medium) * -1)}[part=day][data-today=true]{border-style:double}[part=day]:hover,button[part~=nav]:hover,[part=agenda-event]:hover{outline:var(--lr-border-width-thin) dashed Highlight;outline-offset:calc(var(--lr-border-width-thin) * -1)}[part=event]{forced-color-adjust:none;border:var(--lr-border-width-thin) solid ButtonText;color:buttontext;background:buttonface!important}}`;export{styles};
1
+ import{css}from"lit";const styles=css`:host{contain-intrinsic-inline-size:var(--lr-size-20rem);min-inline-size:0;display:block;container-type:inline-size}[part~=header]{justify-content:space-between;align-items:center;gap:var(--lr-space-s);margin-block-end:var(--lr-space-s);display:flex}[part=title]{font-weight:var(--lr-font-weight-semibold)}[part~=nav]{justify-content:center;align-items:center;gap:var(--lr-space-xs);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);display:flex}button[part~=nav],[part=day]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer;font:inherit}button[part~=nav]{padding-inline:var(--lr-space-s);border-radius:var(--lr-radius)}[part=nav-glyph]{font-size:var(--lr-size-1em)}button[part~=nav]:hover{background:var(--lr-calendar-nav-hover-bg,var(--lr-color-brand-quiet))}button[part~=nav]:active{background:var(--lr-calendar-nav-active-bg,color-mix(in oklab, var(--lr-calendar-nav-hover-bg,var(--lr-color-brand-quiet)), var(--lr-color-mix-partner) var(--lr-color-mix-active)))}button[part~=nav]:focus-visible,[part=agenda-event]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=day][data-outside=true]{color:var(--lr-calendar-day-outside-color,var(--lr-color-text-quiet));background:var(--lr-calendar-day-outside-bg,var(--lr-color-surface))}[part=day][data-today=true]{outline:var(--lr-border-width-medium) solid var(--lr-calendar-day-today-outline-color,var(--lr-color-brand));outline-offset:calc(var(--lr-border-width-medium) * -1)}[part=day][data-selected=true]{background:var(--lr-calendar-day-selected-bg,var(--lr-color-brand-quiet))}[part=day]:hover{background:var(--lr-calendar-day-hover-bg,var(--lr-color-brand-quiet))}[part=day]:active{background:var(--lr-calendar-day-active-bg,color-mix(in oklab, var(--lr-calendar-day-hover-bg,var(--lr-color-brand-quiet)), var(--lr-color-mix-partner) var(--lr-color-mix-active)))}[part=day]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=weekdays]{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}[part=weekday]{padding:var(--lr-space-xs);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-sm);text-align:center}[part=grid]{border-block-start:var(--lr-border-width-thin) solid var(--lr-color-border);border-inline-start:var(--lr-border-width-thin) solid var(--lr-color-border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}[part=week]{display:contents}[part=day]{min-block-size:var(--lr-calendar-day-min-block-size,var(--lr-size-6rem));padding:var(--lr-space-xs);text-align:start;border-block-start:0;border-inline-start:0;flex-direction:column;align-items:stretch;display:flex}[part=date]{font-weight:var(--lr-font-weight-semibold)}[part=event]{box-sizing:border-box;inline-size:100%;min-inline-size:var(--lr-size-1-5rem);min-block-size:var(--lr-size-1-5rem);padding:var(--lr-space-2xs);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-size:var(--lr-font-size-sm);text-align:start;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:0;margin-block-start:var(--lr-space-2xs);overflow:hidden}[part=agenda-event]:hover{background:var(--lr-calendar-agenda-event-hover-bg,var(--_lr-calendar-agenda-event-background,var(--lr-color-brand-quiet)))}[part=agenda-event]:active{background:var(--lr-calendar-agenda-event-active-bg,var(--_lr-calendar-agenda-event-background,color-mix(in oklab, var(--lr-calendar-agenda-event-hover-bg,var(--lr-color-brand-quiet)), var(--lr-color-mix-partner) var(--lr-color-mix-active))))}[part=event]:hover,[part=agenda-event]:hover{background-image:linear-gradient(color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-hover)), color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-hover)))}[part=event]:active,[part=agenda-event]:active{background-image:linear-gradient(color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active)), color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active)))}[part=event]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:calc(var(--lr-focus-ring-offset) * -1)}[part=agenda]{gap:var(--lr-space-s);display:grid}[part=agenda-event]{padding:var(--lr-space-s);border:0;border-inline-start:var(--lr-border-width-medium) solid var(--lr-color-brand);background:var(--_lr-calendar-agenda-event-background,var(--lr-color-surface));color:var(--_lr-calendar-agenda-event-foreground,var(--lr-color-text));font:inherit;text-align:start;cursor:pointer}@container (inline-size<=28rem){[part=day]{min-block-size:var(--lr-calendar-day-min-block-size-narrow,var(--lr-size-4rem))}[part=event]{font-size:var(--lr-font-size-xs)}}:host(:dir(rtl)) [part=nav-glyph]{transform:scaleX(-1)}@media (forced-colors:active){[part=day][data-selected=true]{outline:var(--lr-border-width-medium) solid Highlight;outline-offset:calc(var(--lr-border-width-medium) * -1)}[part=day][data-today=true]{border-style:double}[part=day]:hover,button[part~=nav]:hover,[part=agenda-event]:hover{outline:var(--lr-border-width-thin) dashed Highlight;outline-offset:calc(var(--lr-border-width-thin) * -1)}[part=event]{forced-color-adjust:none;border:var(--lr-border-width-thin) solid ButtonText;color:buttontext;background:buttonface!important}}`;export{styles};
@@ -94,6 +94,8 @@ export interface ConditionBuilderValidationIssue{readonly conditionId:string;rea
94
94
  * `<lr-combobox>` (`enum`, `in`/`notIn`). Date fields forward bounded `min`/`max` strings to
95
95
  * `<lr-date-input>`; number fields forward finite `min`/`max` and positive finite `step` values to
96
96
  * `<lr-input>`. A unary operator (`isEmpty`/`isNotEmpty`) renders no value control.
97
+ * Field/operator selections emit one complete-model `lr-input`; their native value events,
98
+ * prefixed value aliases and listbox lifecycle events stay within the picker.
97
99
  * `<lr-icon-button icon="trash">` removes a row; `<lr-button>` appends one.
98
100
  *
99
101
  * This is a composite query-definition control, not a single submittable form field — it
@@ -150,7 +152,7 @@ private defaultValueFor;private commit;
150
152
  * exists. The operator remains empty until the user chooses the intended comparison. */
151
153
  addCondition():void;private conditionElement;
152
154
  /** Removes the condition row with the given `id`, if present. */
153
- removeCondition(id:string):void;private setCombinator;private setConditionField;private setConditionOperator;private setConditionValue;private consumeChildEvent;protected updated(changed:PropertyValues):void;private renderCombinator;private renderValueControl;private renderCondition;render():TemplateResult;
155
+ removeCondition(id:string):void;private setCombinator;private setConditionField;private setConditionOperator;private setConditionValue;private consumeChildEvent;private containSelectEvent;protected updated(changed:PropertyValues):void;private renderCombinator;private renderValueControl;private renderCondition;render():TemplateResult;
154
156
  /** `localize()` interpolates with a bare `String(value)`, so a number handed to it renders in
155
157
  * ASCII digits no matter the locale -- mixing two numbering systems inside one translated
156
158
  * sentence. Route every user-facing number through the effective locale instead. */
@@ -1,4 +1,4 @@
1
- import{html,nothing}from"lit";import{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{styles}from"./condition-builder.styles.js";import{activeElementIn}from"../../../internal/active-element.js";import{finiteNumber}from"../../../internal/numbers.js";import{LYRA_DEFAULT_queryBuilderAddCondition,LYRA_DEFAULT_queryBuilderBooleanFalse,LYRA_DEFAULT_queryBuilderBooleanTrue,LYRA_DEFAULT_queryBuilderCombinatorAnd,LYRA_DEFAULT_queryBuilderCombinatorLabel,LYRA_DEFAULT_queryBuilderCombinatorOr,LYRA_DEFAULT_queryBuilderEmpty,LYRA_DEFAULT_queryBuilderFieldLabel,LYRA_DEFAULT_queryBuilderFieldPlaceholder,LYRA_DEFAULT_queryBuilderLabel,LYRA_DEFAULT_queryBuilderNoFields,LYRA_DEFAULT_queryBuilderOperatorAfter,LYRA_DEFAULT_queryBuilderOperatorBefore,LYRA_DEFAULT_queryBuilderOperatorContains,LYRA_DEFAULT_queryBuilderOperatorEndsWith,LYRA_DEFAULT_queryBuilderOperatorEquals,LYRA_DEFAULT_queryBuilderOperatorGreaterThan,LYRA_DEFAULT_queryBuilderOperatorGreaterThanOrEqual,LYRA_DEFAULT_queryBuilderOperatorIn,LYRA_DEFAULT_queryBuilderOperatorIsEmpty,LYRA_DEFAULT_queryBuilderOperatorIsNotEmpty,LYRA_DEFAULT_queryBuilderOperatorLabel,LYRA_DEFAULT_queryBuilderOperatorLessThan,LYRA_DEFAULT_queryBuilderOperatorLessThanOrEqual,LYRA_DEFAULT_queryBuilderOperatorNotEquals,LYRA_DEFAULT_queryBuilderOperatorNotIn,LYRA_DEFAULT_queryBuilderOperatorOnOrAfter,LYRA_DEFAULT_queryBuilderOperatorOnOrBefore,LYRA_DEFAULT_queryBuilderOperatorPlaceholder,LYRA_DEFAULT_queryBuilderOperatorStartsWith,LYRA_DEFAULT_queryBuilderRemoveCondition,LYRA_DEFAULT_queryBuilderValueLabel,LYRA_DEFAULT_queryBuilderValuePlaceholder}from"../../../internal/default-strings.generated.js";function selectValue(el){return Array.isArray(el.value)?el.value[0]??"":el.value}const MAX_FIELDS=200,MAX_CONDITIONS=200,MAX_OPTIONS=500,MAX_TEXT=256,EMPTY_FIELDS=Object.freeze([]),EMPTY_OPTIONS=Object.freeze([]),EMPTY_VALUE=Object.freeze({combinator:"and",conditions:Object.freeze([])}),STRING_OPERATORS=["eq","neq","contains","startsWith","endsWith","isEmpty","isNotEmpty"],NUMBER_OPERATORS=["eq","neq","gt","gte","lt","lte","isEmpty","isNotEmpty"],BOOLEAN_OPERATORS=["eq","neq"],DATE_OPERATORS=["eq","neq","gt","gte","lt","lte","isEmpty","isNotEmpty"],ENUM_OPERATORS=["eq","neq","in","notIn","isEmpty","isNotEmpty"];function defaultOperatorsForType(type){switch(type){case"string":return STRING_OPERATORS;case"number":return NUMBER_OPERATORS;case"boolean":return BOOLEAN_OPERATORS;case"date":return DATE_OPERATORS;case"enum":return ENUM_OPERATORS}}function isUnaryOperator(op){return op==="isEmpty"||op==="isNotEmpty"}function isMultiOperator(op){return op==="in"||op==="notIn"}const FIELD_TYPES=new Set(["string","number","boolean","date","enum"]),OPERATORS=new Set(["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","notIn","isEmpty","isNotEmpty"]);function ownValue(record,key){try{const descriptor=Object.getOwnPropertyDescriptor(record,key);return descriptor&&"value"in descriptor?descriptor.value:void 0}catch{return}}function boundedString(value){return typeof value=="string"?value.slice(0,MAX_TEXT):""}function optionalFiniteNumber(value,positive=!1){if(typeof value!="number"||!Number.isFinite(value))return;const normalized=finiteNumber(value,0);return!positive||normalized>0?normalized:void 0}function normalizeOptions(value){if(!Array.isArray(value))return EMPTY_OPTIONS;const seen=new Set,result=[];for(const candidate of value.slice(0,MAX_OPTIONS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const optionValue=boundedString(ownValue(candidate,"value"));if(optionValue.trim().length===0||seen.has(optionValue))continue;seen.add(optionValue);const label=boundedString(ownValue(candidate,"label"));result.push(Object.freeze({value:optionValue,...label?{label}:{}}))}return Object.freeze(result)}function normalizeOperators(value){if(!Array.isArray(value))return;const result=[...new Set(value.slice(0,MAX_OPTIONS).filter(entry=>OPERATORS.has(entry)))];return result.length>0?Object.freeze(result):void 0}function normalizeFields(value){if(!Array.isArray(value))return EMPTY_FIELDS;const names=new Set,result=[];for(const candidate of value.slice(0,MAX_FIELDS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const name=boundedString(ownValue(candidate,"name")),type=ownValue(candidate,"type");if(name.trim().length===0||names.has(name)||!FIELD_TYPES.has(type))continue;names.add(name);const label=boundedString(ownValue(candidate,"label")),placeholder=boundedString(ownValue(candidate,"placeholder")),options=normalizeOptions(ownValue(candidate,"options")),operators=normalizeOperators(ownValue(candidate,"operators")),min=type==="number"?optionalFiniteNumber(ownValue(candidate,"min")):type==="date"&&boundedString(ownValue(candidate,"min"))||void 0,max=type==="number"?optionalFiniteNumber(ownValue(candidate,"max")):type==="date"&&boundedString(ownValue(candidate,"max"))||void 0,step=type==="number"?optionalFiniteNumber(ownValue(candidate,"step"),!0):void 0;result.push(Object.freeze({name,type,...label?{label}:{},...placeholder?{placeholder}:{},...options.length>0?{options}:{},...operators?{operators}:{},...min!==void 0?{min}:{},...max!==void 0?{max}:{},...step!==void 0?{step}:{}}))}return Object.freeze(result)}function normalizeConditionValue(value){if(typeof value=="string"||typeof value=="boolean"||typeof value=="number")return value;if(Array.isArray(value))return Object.freeze(value.slice(0,MAX_OPTIONS).filter(entry=>typeof entry=="string").map(entry=>boundedString(entry)))}function normalizeConditionBuilderValue(value){const record=value!==null&&typeof value=="object"&&!Array.isArray(value)?value:EMPTY_VALUE,combinator=ownValue(record,"combinator")==="or"?"or":"and",source=ownValue(record,"conditions"),conditions=[],ids=new Set;if(Array.isArray(source))for(const candidate of source.slice(0,MAX_CONDITIONS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const id=boundedString(ownValue(candidate,"id"));if(id.trim().length===0||ids.has(id))continue;ids.add(id);const field=boundedString(ownValue(candidate,"field")),rawOperator=ownValue(candidate,"operator"),operator=rawOperator===""||OPERATORS.has(rawOperator)?rawOperator:"",normalizedValue=normalizeConditionValue(ownValue(candidate,"value"));conditions.push(Object.freeze({id,field,operator,...normalizedValue!==void 0?{value:normalizedValue}:{}}))}return Object.freeze({combinator,conditions:Object.freeze(conditions)})}class LyraConditionBuilder extends LyraElement{constructor(){super(...arguments),this._fields=EMPTY_FIELDS,this._value=EMPTY_VALUE,this._disabled=!1,this.pendingFocusAdd=!1}static{this.defaultStrings={...super.defaultStrings,queryBuilderAddCondition:LYRA_DEFAULT_queryBuilderAddCondition,queryBuilderBooleanFalse:LYRA_DEFAULT_queryBuilderBooleanFalse,queryBuilderBooleanTrue:LYRA_DEFAULT_queryBuilderBooleanTrue,queryBuilderCombinatorAnd:LYRA_DEFAULT_queryBuilderCombinatorAnd,queryBuilderCombinatorLabel:LYRA_DEFAULT_queryBuilderCombinatorLabel,queryBuilderCombinatorOr:LYRA_DEFAULT_queryBuilderCombinatorOr,queryBuilderEmpty:LYRA_DEFAULT_queryBuilderEmpty,queryBuilderFieldLabel:LYRA_DEFAULT_queryBuilderFieldLabel,queryBuilderFieldPlaceholder:LYRA_DEFAULT_queryBuilderFieldPlaceholder,queryBuilderLabel:LYRA_DEFAULT_queryBuilderLabel,queryBuilderNoFields:LYRA_DEFAULT_queryBuilderNoFields,queryBuilderOperatorAfter:LYRA_DEFAULT_queryBuilderOperatorAfter,queryBuilderOperatorBefore:LYRA_DEFAULT_queryBuilderOperatorBefore,queryBuilderOperatorContains:LYRA_DEFAULT_queryBuilderOperatorContains,queryBuilderOperatorEndsWith:LYRA_DEFAULT_queryBuilderOperatorEndsWith,queryBuilderOperatorEquals:LYRA_DEFAULT_queryBuilderOperatorEquals,queryBuilderOperatorGreaterThan:LYRA_DEFAULT_queryBuilderOperatorGreaterThan,queryBuilderOperatorGreaterThanOrEqual:LYRA_DEFAULT_queryBuilderOperatorGreaterThanOrEqual,queryBuilderOperatorIn:LYRA_DEFAULT_queryBuilderOperatorIn,queryBuilderOperatorIsEmpty:LYRA_DEFAULT_queryBuilderOperatorIsEmpty,queryBuilderOperatorIsNotEmpty:LYRA_DEFAULT_queryBuilderOperatorIsNotEmpty,queryBuilderOperatorLabel:LYRA_DEFAULT_queryBuilderOperatorLabel,queryBuilderOperatorLessThan:LYRA_DEFAULT_queryBuilderOperatorLessThan,queryBuilderOperatorLessThanOrEqual:LYRA_DEFAULT_queryBuilderOperatorLessThanOrEqual,queryBuilderOperatorNotEquals:LYRA_DEFAULT_queryBuilderOperatorNotEquals,queryBuilderOperatorNotIn:LYRA_DEFAULT_queryBuilderOperatorNotIn,queryBuilderOperatorOnOrAfter:LYRA_DEFAULT_queryBuilderOperatorOnOrAfter,queryBuilderOperatorOnOrBefore:LYRA_DEFAULT_queryBuilderOperatorOnOrBefore,queryBuilderOperatorPlaceholder:LYRA_DEFAULT_queryBuilderOperatorPlaceholder,queryBuilderOperatorStartsWith:LYRA_DEFAULT_queryBuilderOperatorStartsWith,queryBuilderRemoveCondition:LYRA_DEFAULT_queryBuilderRemoveCondition,queryBuilderValueLabel:LYRA_DEFAULT_queryBuilderValueLabel,queryBuilderValuePlaceholder:LYRA_DEFAULT_queryBuilderValuePlaceholder}}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-input","lr-add-condition"])}static{this.properties={fields:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}get fields(){return this._fields}set fields(next){const old=this._fields;this._fields=normalizeFields(next),this.requestUpdate("fields",old)}get value(){return this._value}set value(next){const old=this._value;this._value=normalizeConditionBuilderValue(next),this.requestUpdate("value",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this.requestUpdate("disabled",old)}operatorsFor(field){return field?field.operators&&field.operators.length>0?field.operators:defaultOperatorsForType(field.type):[]}validationIssueFor(condition){if(condition.field===""&&condition.operator===""&&condition.value===void 0)return;const field=this._fields.find(candidate=>candidate.name===condition.field);if(!field)return"field-unavailable";if(condition.operator==="")return condition.value===void 0?void 0:"operator-arity";if(!this.operatorsFor(field).includes(condition.operator))return"operator-not-allowed";if(isUnaryOperator(condition.operator))return condition.value===void 0?void 0:"operator-arity";if(isMultiOperator(condition.operator))return Array.isArray(condition.value)?void 0:"operator-arity";if(Array.isArray(condition.value))return"operator-arity";if(condition.value!==void 0)switch(field.type){case"number":return typeof condition.value=="number"&&Number.isFinite(condition.value)?void 0:"value-type";case"boolean":return typeof condition.value=="boolean"?void 0:"value-type";case"string":case"date":case"enum":return typeof condition.value=="string"?void 0:"value-type"}}get validationIssues(){const issues=[];for(const condition of this._value.conditions){const code=this.validationIssueFor(condition);code&&issues.push(Object.freeze({conditionId:condition.id,code}))}return Object.freeze(issues)}get invalidConditionIds(){return Object.freeze(this.validationIssues.map(issue=>issue.conditionId))}checkValidity(){return this.validationIssues.length===0}reportValidity(){const issue=this.validationIssues[0];if(!issue)return!0;const row=this.conditionElement(issue.conditionId),part=issue.code==="field-unavailable"?"field-select":issue.code==="operator-not-allowed"?"operator-select":"value";let target=row?.querySelector(`[part="${part}"]`)??null;return(!target||target.matches("span"))&&(target=row?.querySelector('[part="operator-select"]')??null),target?.focus(),!1}operatorLabel(op,type){switch(op){case"eq":return this.localize("queryBuilderOperatorEquals");case"neq":return this.localize("queryBuilderOperatorNotEquals");case"gt":return type==="date"?this.localize("queryBuilderOperatorAfter"):this.localize("queryBuilderOperatorGreaterThan");case"gte":return type==="date"?this.localize("queryBuilderOperatorOnOrAfter"):this.localize("queryBuilderOperatorGreaterThanOrEqual");case"lt":return type==="date"?this.localize("queryBuilderOperatorBefore"):this.localize("queryBuilderOperatorLessThan");case"lte":return type==="date"?this.localize("queryBuilderOperatorOnOrBefore"):this.localize("queryBuilderOperatorLessThanOrEqual");case"contains":return this.localize("queryBuilderOperatorContains");case"startsWith":return this.localize("queryBuilderOperatorStartsWith");case"endsWith":return this.localize("queryBuilderOperatorEndsWith");case"in":return this.localize("queryBuilderOperatorIn");case"notIn":return this.localize("queryBuilderOperatorNotIn");case"isEmpty":return this.localize("queryBuilderOperatorIsEmpty");case"isNotEmpty":return this.localize("queryBuilderOperatorIsNotEmpty")}}defaultValueFor(fieldName,operator){if(operator===""||isUnaryOperator(operator))return;if(isMultiOperator(operator))return[];const field=this._fields.find(f=>f.name===fieldName);if(!(field?.type==="number"||field?.type==="boolean"))return""}commit(next){this.value=next,this.emit("lr-input",Object.freeze({value:this._value}))}addCondition(){const firstField=this._fields[0];if(this.disabled||!firstField||this._value.conditions.length>=MAX_CONDITIONS)return;const condition=Object.freeze({id:nextId("query-condition"),field:firstField.name,operator:""});this.commit({...this._value,conditions:[...this._value.conditions,condition]}),this.emit("lr-add-condition",Object.freeze({condition}))}conditionElement(id){const root=this.shadowRoot;if(!root)return null;const ownerCss=this.ownerDocument.defaultView?.CSS;if(typeof ownerCss?.escape=="function")try{const candidate=root.querySelector(`[part="condition"][data-id="${ownerCss.escape(id)}"]`);if(candidate?.getAttribute("data-id")===id)return candidate}catch{}return Array.from(root.querySelectorAll('[part="condition"][data-id]')).find(candidate=>candidate.getAttribute("data-id")===id)??null}removeCondition(id){if(this.disabled||!this._value.conditions.some(c=>c.id===id))return;const row=this.conditionElement(id),active=activeElementIn(this.shadowRoot);row&&active&&row.contains(active)&&(this.pendingFocusAdd=!0);const conditions=this._value.conditions.filter(c=>c.id!==id);this.commit({...this._value,conditions}),this.emit("lr-remove-condition",Object.freeze({conditionId:id}))}setCombinator(combinator){this.disabled||combinator===this._value.combinator||this.commit({...this._value,combinator})}setConditionField(id,field){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{id:c.id,field,operator:"",value:void 0}:c);this.commit({...this._value,conditions})}setConditionOperator(id,operator){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{...c,operator,value:this.defaultValueFor(c.field,operator)}:c);this.commit({...this._value,conditions})}setConditionValue(id,value){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{...c,value}:c);this.commit({...this._value,conditions})}consumeChildEvent(event,action){event.stopPropagation(),action()}updated(changed){super.updated(changed),this.pendingFocusAdd&&(this.pendingFocusAdd=!1,this.renderRoot.querySelector('[part="add-button"]')?.focus())}renderCombinator(combinator){return html`
1
+ import{html,nothing}from"lit";import{LyraElement}from"../../../internal/lyra-element.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{styles}from"./condition-builder.styles.js";import{activeElementIn}from"../../../internal/active-element.js";import{finiteNumber}from"../../../internal/numbers.js";import{LYRA_DEFAULT_queryBuilderAddCondition,LYRA_DEFAULT_queryBuilderBooleanFalse,LYRA_DEFAULT_queryBuilderBooleanTrue,LYRA_DEFAULT_queryBuilderCombinatorAnd,LYRA_DEFAULT_queryBuilderCombinatorLabel,LYRA_DEFAULT_queryBuilderCombinatorOr,LYRA_DEFAULT_queryBuilderEmpty,LYRA_DEFAULT_queryBuilderFieldLabel,LYRA_DEFAULT_queryBuilderFieldPlaceholder,LYRA_DEFAULT_queryBuilderLabel,LYRA_DEFAULT_queryBuilderNoFields,LYRA_DEFAULT_queryBuilderOperatorAfter,LYRA_DEFAULT_queryBuilderOperatorBefore,LYRA_DEFAULT_queryBuilderOperatorContains,LYRA_DEFAULT_queryBuilderOperatorEndsWith,LYRA_DEFAULT_queryBuilderOperatorEquals,LYRA_DEFAULT_queryBuilderOperatorGreaterThan,LYRA_DEFAULT_queryBuilderOperatorGreaterThanOrEqual,LYRA_DEFAULT_queryBuilderOperatorIn,LYRA_DEFAULT_queryBuilderOperatorIsEmpty,LYRA_DEFAULT_queryBuilderOperatorIsNotEmpty,LYRA_DEFAULT_queryBuilderOperatorLabel,LYRA_DEFAULT_queryBuilderOperatorLessThan,LYRA_DEFAULT_queryBuilderOperatorLessThanOrEqual,LYRA_DEFAULT_queryBuilderOperatorNotEquals,LYRA_DEFAULT_queryBuilderOperatorNotIn,LYRA_DEFAULT_queryBuilderOperatorOnOrAfter,LYRA_DEFAULT_queryBuilderOperatorOnOrBefore,LYRA_DEFAULT_queryBuilderOperatorPlaceholder,LYRA_DEFAULT_queryBuilderOperatorStartsWith,LYRA_DEFAULT_queryBuilderRemoveCondition,LYRA_DEFAULT_queryBuilderValueLabel,LYRA_DEFAULT_queryBuilderValuePlaceholder}from"../../../internal/default-strings.generated.js";function selectValue(el){return Array.isArray(el.value)?el.value[0]??"":el.value}const MAX_FIELDS=200,MAX_CONDITIONS=200,MAX_OPTIONS=500,MAX_TEXT=256,EMPTY_FIELDS=Object.freeze([]),EMPTY_OPTIONS=Object.freeze([]),EMPTY_VALUE=Object.freeze({combinator:"and",conditions:Object.freeze([])}),STRING_OPERATORS=["eq","neq","contains","startsWith","endsWith","isEmpty","isNotEmpty"],NUMBER_OPERATORS=["eq","neq","gt","gte","lt","lte","isEmpty","isNotEmpty"],BOOLEAN_OPERATORS=["eq","neq"],DATE_OPERATORS=["eq","neq","gt","gte","lt","lte","isEmpty","isNotEmpty"],ENUM_OPERATORS=["eq","neq","in","notIn","isEmpty","isNotEmpty"];function defaultOperatorsForType(type){switch(type){case"string":return STRING_OPERATORS;case"number":return NUMBER_OPERATORS;case"boolean":return BOOLEAN_OPERATORS;case"date":return DATE_OPERATORS;case"enum":return ENUM_OPERATORS}}function isUnaryOperator(op){return op==="isEmpty"||op==="isNotEmpty"}function isMultiOperator(op){return op==="in"||op==="notIn"}const FIELD_TYPES=new Set(["string","number","boolean","date","enum"]),OPERATORS=new Set(["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","notIn","isEmpty","isNotEmpty"]);function ownValue(record,key){try{const descriptor=Object.getOwnPropertyDescriptor(record,key);return descriptor&&"value"in descriptor?descriptor.value:void 0}catch{return}}function boundedString(value){return typeof value=="string"?value.slice(0,MAX_TEXT):""}function optionalFiniteNumber(value,positive=!1){if(typeof value!="number"||!Number.isFinite(value))return;const normalized=finiteNumber(value,0);return!positive||normalized>0?normalized:void 0}function normalizeOptions(value){if(!Array.isArray(value))return EMPTY_OPTIONS;const seen=new Set,result=[];for(const candidate of value.slice(0,MAX_OPTIONS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const optionValue=boundedString(ownValue(candidate,"value"));if(optionValue.trim().length===0||seen.has(optionValue))continue;seen.add(optionValue);const label=boundedString(ownValue(candidate,"label"));result.push(Object.freeze({value:optionValue,...label?{label}:{}}))}return Object.freeze(result)}function normalizeOperators(value){if(!Array.isArray(value))return;const result=[...new Set(value.slice(0,MAX_OPTIONS).filter(entry=>OPERATORS.has(entry)))];return result.length>0?Object.freeze(result):void 0}function normalizeFields(value){if(!Array.isArray(value))return EMPTY_FIELDS;const names=new Set,result=[];for(const candidate of value.slice(0,MAX_FIELDS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const name=boundedString(ownValue(candidate,"name")),type=ownValue(candidate,"type");if(name.trim().length===0||names.has(name)||!FIELD_TYPES.has(type))continue;names.add(name);const label=boundedString(ownValue(candidate,"label")),placeholder=boundedString(ownValue(candidate,"placeholder")),options=normalizeOptions(ownValue(candidate,"options")),operators=normalizeOperators(ownValue(candidate,"operators")),min=type==="number"?optionalFiniteNumber(ownValue(candidate,"min")):type==="date"&&boundedString(ownValue(candidate,"min"))||void 0,max=type==="number"?optionalFiniteNumber(ownValue(candidate,"max")):type==="date"&&boundedString(ownValue(candidate,"max"))||void 0,step=type==="number"?optionalFiniteNumber(ownValue(candidate,"step"),!0):void 0;result.push(Object.freeze({name,type,...label?{label}:{},...placeholder?{placeholder}:{},...options.length>0?{options}:{},...operators?{operators}:{},...min!==void 0?{min}:{},...max!==void 0?{max}:{},...step!==void 0?{step}:{}}))}return Object.freeze(result)}function normalizeConditionValue(value){if(typeof value=="string"||typeof value=="boolean"||typeof value=="number")return value;if(Array.isArray(value))return Object.freeze(value.slice(0,MAX_OPTIONS).filter(entry=>typeof entry=="string").map(entry=>boundedString(entry)))}function normalizeConditionBuilderValue(value){const record=value!==null&&typeof value=="object"&&!Array.isArray(value)?value:EMPTY_VALUE,combinator=ownValue(record,"combinator")==="or"?"or":"and",source=ownValue(record,"conditions"),conditions=[],ids=new Set;if(Array.isArray(source))for(const candidate of source.slice(0,MAX_CONDITIONS)){if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const id=boundedString(ownValue(candidate,"id"));if(id.trim().length===0||ids.has(id))continue;ids.add(id);const field=boundedString(ownValue(candidate,"field")),rawOperator=ownValue(candidate,"operator"),operator=rawOperator===""||OPERATORS.has(rawOperator)?rawOperator:"",normalizedValue=normalizeConditionValue(ownValue(candidate,"value"));conditions.push(Object.freeze({id,field,operator,...normalizedValue!==void 0?{value:normalizedValue}:{}}))}return Object.freeze({combinator,conditions:Object.freeze(conditions)})}class LyraConditionBuilder extends LyraElement{constructor(){super(...arguments),this._fields=EMPTY_FIELDS,this._value=EMPTY_VALUE,this._disabled=!1,this.pendingFocusAdd=!1}static{this.defaultStrings={...super.defaultStrings,queryBuilderAddCondition:LYRA_DEFAULT_queryBuilderAddCondition,queryBuilderBooleanFalse:LYRA_DEFAULT_queryBuilderBooleanFalse,queryBuilderBooleanTrue:LYRA_DEFAULT_queryBuilderBooleanTrue,queryBuilderCombinatorAnd:LYRA_DEFAULT_queryBuilderCombinatorAnd,queryBuilderCombinatorLabel:LYRA_DEFAULT_queryBuilderCombinatorLabel,queryBuilderCombinatorOr:LYRA_DEFAULT_queryBuilderCombinatorOr,queryBuilderEmpty:LYRA_DEFAULT_queryBuilderEmpty,queryBuilderFieldLabel:LYRA_DEFAULT_queryBuilderFieldLabel,queryBuilderFieldPlaceholder:LYRA_DEFAULT_queryBuilderFieldPlaceholder,queryBuilderLabel:LYRA_DEFAULT_queryBuilderLabel,queryBuilderNoFields:LYRA_DEFAULT_queryBuilderNoFields,queryBuilderOperatorAfter:LYRA_DEFAULT_queryBuilderOperatorAfter,queryBuilderOperatorBefore:LYRA_DEFAULT_queryBuilderOperatorBefore,queryBuilderOperatorContains:LYRA_DEFAULT_queryBuilderOperatorContains,queryBuilderOperatorEndsWith:LYRA_DEFAULT_queryBuilderOperatorEndsWith,queryBuilderOperatorEquals:LYRA_DEFAULT_queryBuilderOperatorEquals,queryBuilderOperatorGreaterThan:LYRA_DEFAULT_queryBuilderOperatorGreaterThan,queryBuilderOperatorGreaterThanOrEqual:LYRA_DEFAULT_queryBuilderOperatorGreaterThanOrEqual,queryBuilderOperatorIn:LYRA_DEFAULT_queryBuilderOperatorIn,queryBuilderOperatorIsEmpty:LYRA_DEFAULT_queryBuilderOperatorIsEmpty,queryBuilderOperatorIsNotEmpty:LYRA_DEFAULT_queryBuilderOperatorIsNotEmpty,queryBuilderOperatorLabel:LYRA_DEFAULT_queryBuilderOperatorLabel,queryBuilderOperatorLessThan:LYRA_DEFAULT_queryBuilderOperatorLessThan,queryBuilderOperatorLessThanOrEqual:LYRA_DEFAULT_queryBuilderOperatorLessThanOrEqual,queryBuilderOperatorNotEquals:LYRA_DEFAULT_queryBuilderOperatorNotEquals,queryBuilderOperatorNotIn:LYRA_DEFAULT_queryBuilderOperatorNotIn,queryBuilderOperatorOnOrAfter:LYRA_DEFAULT_queryBuilderOperatorOnOrAfter,queryBuilderOperatorOnOrBefore:LYRA_DEFAULT_queryBuilderOperatorOnOrBefore,queryBuilderOperatorPlaceholder:LYRA_DEFAULT_queryBuilderOperatorPlaceholder,queryBuilderOperatorStartsWith:LYRA_DEFAULT_queryBuilderOperatorStartsWith,queryBuilderRemoveCondition:LYRA_DEFAULT_queryBuilderRemoveCondition,queryBuilderValueLabel:LYRA_DEFAULT_queryBuilderValueLabel,queryBuilderValuePlaceholder:LYRA_DEFAULT_queryBuilderValuePlaceholder}}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-input","lr-add-condition"])}static{this.properties={fields:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}get fields(){return this._fields}set fields(next){const old=this._fields;this._fields=normalizeFields(next),this.requestUpdate("fields",old)}get value(){return this._value}set value(next){const old=this._value;this._value=normalizeConditionBuilderValue(next),this.requestUpdate("value",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this.requestUpdate("disabled",old)}operatorsFor(field){return field?field.operators&&field.operators.length>0?field.operators:defaultOperatorsForType(field.type):[]}validationIssueFor(condition){if(condition.field===""&&condition.operator===""&&condition.value===void 0)return;const field=this._fields.find(candidate=>candidate.name===condition.field);if(!field)return"field-unavailable";if(condition.operator==="")return condition.value===void 0?void 0:"operator-arity";if(!this.operatorsFor(field).includes(condition.operator))return"operator-not-allowed";if(isUnaryOperator(condition.operator))return condition.value===void 0?void 0:"operator-arity";if(isMultiOperator(condition.operator))return Array.isArray(condition.value)?void 0:"operator-arity";if(Array.isArray(condition.value))return"operator-arity";if(condition.value!==void 0)switch(field.type){case"number":return typeof condition.value=="number"&&Number.isFinite(condition.value)?void 0:"value-type";case"boolean":return typeof condition.value=="boolean"?void 0:"value-type";case"string":case"date":case"enum":return typeof condition.value=="string"?void 0:"value-type"}}get validationIssues(){const issues=[];for(const condition of this._value.conditions){const code=this.validationIssueFor(condition);code&&issues.push(Object.freeze({conditionId:condition.id,code}))}return Object.freeze(issues)}get invalidConditionIds(){return Object.freeze(this.validationIssues.map(issue=>issue.conditionId))}checkValidity(){return this.validationIssues.length===0}reportValidity(){const issue=this.validationIssues[0];if(!issue)return!0;const row=this.conditionElement(issue.conditionId),part=issue.code==="field-unavailable"?"field-select":issue.code==="operator-not-allowed"?"operator-select":"value";let target=row?.querySelector(`[part="${part}"]`)??null;return(!target||target.matches("span"))&&(target=row?.querySelector('[part="operator-select"]')??null),target?.focus(),!1}operatorLabel(op,type){switch(op){case"eq":return this.localize("queryBuilderOperatorEquals");case"neq":return this.localize("queryBuilderOperatorNotEquals");case"gt":return type==="date"?this.localize("queryBuilderOperatorAfter"):this.localize("queryBuilderOperatorGreaterThan");case"gte":return type==="date"?this.localize("queryBuilderOperatorOnOrAfter"):this.localize("queryBuilderOperatorGreaterThanOrEqual");case"lt":return type==="date"?this.localize("queryBuilderOperatorBefore"):this.localize("queryBuilderOperatorLessThan");case"lte":return type==="date"?this.localize("queryBuilderOperatorOnOrBefore"):this.localize("queryBuilderOperatorLessThanOrEqual");case"contains":return this.localize("queryBuilderOperatorContains");case"startsWith":return this.localize("queryBuilderOperatorStartsWith");case"endsWith":return this.localize("queryBuilderOperatorEndsWith");case"in":return this.localize("queryBuilderOperatorIn");case"notIn":return this.localize("queryBuilderOperatorNotIn");case"isEmpty":return this.localize("queryBuilderOperatorIsEmpty");case"isNotEmpty":return this.localize("queryBuilderOperatorIsNotEmpty")}}defaultValueFor(fieldName,operator){if(operator===""||isUnaryOperator(operator))return;if(isMultiOperator(operator))return[];const field=this._fields.find(f=>f.name===fieldName);if(!(field?.type==="number"||field?.type==="boolean"))return""}commit(next){this.value=next,this.emit("lr-input",Object.freeze({value:this._value}))}addCondition(){const firstField=this._fields[0];if(this.disabled||!firstField||this._value.conditions.length>=MAX_CONDITIONS)return;const condition=Object.freeze({id:nextId("query-condition"),field:firstField.name,operator:""});this.commit({...this._value,conditions:[...this._value.conditions,condition]}),this.emit("lr-add-condition",Object.freeze({condition}))}conditionElement(id){const root=this.shadowRoot;if(!root)return null;const ownerCss=this.ownerDocument.defaultView?.CSS;if(typeof ownerCss?.escape=="function")try{const candidate=root.querySelector(`[part="condition"][data-id="${ownerCss.escape(id)}"]`);if(candidate?.getAttribute("data-id")===id)return candidate}catch{}return Array.from(root.querySelectorAll('[part="condition"][data-id]')).find(candidate=>candidate.getAttribute("data-id")===id)??null}removeCondition(id){if(this.disabled||!this._value.conditions.some(c=>c.id===id))return;const row=this.conditionElement(id),active=activeElementIn(this.shadowRoot);row&&active&&row.contains(active)&&(this.pendingFocusAdd=!0);const conditions=this._value.conditions.filter(c=>c.id!==id);this.commit({...this._value,conditions}),this.emit("lr-remove-condition",Object.freeze({conditionId:id}))}setCombinator(combinator){this.disabled||combinator===this._value.combinator||this.commit({...this._value,combinator})}setConditionField(id,field){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{id:c.id,field,operator:"",value:void 0}:c);this.commit({...this._value,conditions})}setConditionOperator(id,operator){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{...c,operator,value:this.defaultValueFor(c.field,operator)}:c);this.commit({...this._value,conditions})}setConditionValue(id,value){if(this.disabled)return;const conditions=this._value.conditions.map(c=>c.id===id?{...c,value}:c);this.commit({...this._value,conditions})}consumeChildEvent(event,action){event.stopPropagation(),action()}containSelectEvent(event){event.stopPropagation()}updated(changed){super.updated(changed),this.pendingFocusAdd&&(this.pendingFocusAdd=!1,this.renderRoot.querySelector('[part="add-button"]')?.focus())}renderCombinator(combinator){return html`
2
2
  <lr-select
3
3
  part="combinator"
4
4
  size="s"
@@ -97,6 +97,13 @@ import{html,nothing}from"lit";import{LyraElement}from"../../../internal/lyra-ele
97
97
  placeholder=${this.localize("queryBuilderFieldPlaceholder")}
98
98
  .value=${condition.field}
99
99
  ?disabled=${this.disabled}
100
+ @input=${this.containSelectEvent}
101
+ @lr-input=${this.containSelectEvent}
102
+ @lr-change=${this.containSelectEvent}
103
+ @lr-show=${this.containSelectEvent}
104
+ @lr-after-show=${this.containSelectEvent}
105
+ @lr-hide=${this.containSelectEvent}
106
+ @lr-after-hide=${this.containSelectEvent}
100
107
  @change=${event=>this.consumeChildEvent(event,()=>this.setConditionField(condition.id,selectValue(event.target)))}
101
108
  >
102
109
  ${this._fields.map(f=>html`<lr-option value=${f.name}>${f.label??f.name}</lr-option>`)}
@@ -109,6 +116,13 @@ import{html,nothing}from"lit";import{LyraElement}from"../../../internal/lyra-ele
109
116
  placeholder=${this.localize("queryBuilderOperatorPlaceholder")}
110
117
  .value=${condition.operator}
111
118
  ?disabled=${this.disabled||!field}
119
+ @input=${this.containSelectEvent}
120
+ @lr-input=${this.containSelectEvent}
121
+ @lr-change=${this.containSelectEvent}
122
+ @lr-show=${this.containSelectEvent}
123
+ @lr-after-show=${this.containSelectEvent}
124
+ @lr-hide=${this.containSelectEvent}
125
+ @lr-after-hide=${this.containSelectEvent}
112
126
  @change=${event=>this.consumeChildEvent(event,()=>this.setConditionOperator(condition.id,event.target.value))}
113
127
  >
114
128
  ${operators.map(op=>html`<lr-option value=${op}>${this.operatorLabel(op,field?.type)}</lr-option>`)}
@@ -59,7 +59,9 @@ label:string;
59
59
  * hand-roll swatch+label markup outside the component. Non-interactive: it toggles nothing and
60
60
  * emits nothing, mirroring `<lr-sequence-strip>`'s `showLegend` rather than the interactive
61
61
  * `<lr-graph-legend>`. */
62
- showLegend:boolean;private normalizedSegmentValue;
62
+ showLegend:boolean;private projectedSegmentsSource;private projectedSegments;
63
+ /** Later rendering only reads this once-projected, bounded data-descriptor view. */
64
+ private get effectiveSegments();private normalizedSegmentValue;
63
65
  /** Sum of segment values, clamped so a negative/NaN entry can't produce a negative total. */
64
66
  private get usedTotal();
65
67
  /** Per-segment ratio of `value` to `total`, clamped to [0,1] and capped so the
@@ -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}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteNumber}from"../../../internal/numbers.js";import{resolveIntlLocale}from"../../../internal/intl-cache.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{srOnly}from"../../../internal/a11y.js";import{styles}from"./context-meter.styles.js";import{LYRA_DEFAULT_contextMeterLabeledSummary,LYRA_DEFAULT_contextMeterSegmentLabel,LYRA_DEFAULT_contextMeterUsed,LYRA_DEFAULT_contextMeterUsedOfTotal}from"../../../internal/default-strings.generated.js";const RADIUS=40,CENTER=50,STROKE=12,CIRCUMFERENCE=2*Math.PI*RADIUS;function formatCount(n,locale){return Math.round(finiteNumber(n,0)).toLocaleString(resolveIntlLocale(locale))}class LyraContextMeter extends LyraElement{constructor(){super(...arguments),this.segments=[],this.total=0,this._shape="bar",this.label="",this.showLegend=!1}static{this.defaultStrings={...super.defaultStrings,contextMeterLabeledSummary:LYRA_DEFAULT_contextMeterLabeledSummary,contextMeterSegmentLabel:LYRA_DEFAULT_contextMeterSegmentLabel,contextMeterUsed:LYRA_DEFAULT_contextMeterUsed,contextMeterUsedOfTotal:LYRA_DEFAULT_contextMeterUsedOfTotal}}static{this.ownedCollectionProperties=Object.freeze(["segments"])}static{this.styles=[LyraElement.styles,srOnly,styles]}get shape(){return this._shape}set shape(value){const normalized=value==="ring"?"ring":"bar",previous=this._shape;if(previous===normalized){value!==normalized&&this.requestUpdate("shape",previous);return}this._shape=normalized,this.requestUpdate("shape",previous)}normalizedSegmentValue(segment){return Math.max(0,finiteNumber(segment.value,0))}get usedTotal(){return this.segments.reduce((sum,segment)=>{const next=sum+this.normalizedSegmentValue(segment);return finiteNumber(next,Number.MAX_VALUE)},0)}ratios(){const total=Math.max(0,finiteNumber(this.total,0));if(total<=0)return[];const out=[];let cumulative=0;for(const segment of this.segments){const raw=this.normalizedSegmentValue(segment),available=Math.max(0,1-cumulative),ratio=Math.min(raw/total,available);cumulative+=ratio,out.push({segment,value:raw,ratio})}return out}get clampedUsedTotal(){const total=Math.max(0,finiteNumber(this.total,0));return{used:total>0?Math.min(this.usedTotal,total):this.usedTotal,total}}get summary(){const{used:usedForSummary,total:totalValue}=this.clampedUsedTotal,used=formatCount(usedForSummary,this.effectiveLocale),phrase=totalValue>0?this.localize("contextMeterUsedOfTotal",void 0,{used,total:formatCount(totalValue,this.effectiveLocale)}):this.localize("contextMeterUsed",void 0,{used});return this.label?this.localize("contextMeterLabeledSummary",void 0,{label:this.label,summary:phrase}):phrase}segmentTitle(segment,value=this.normalizedSegmentValue(segment)){return this.localize("contextMeterSegmentLabel",void 0,{label:segment.label,count:formatCount(value,this.effectiveLocale)})}segmentColor(segment){return segment.color?sanitizeCssColor(segment.color):void 0}renderSemantics(){const{used,total}=this.clampedUsedTotal,accessibleName=this.summary;return 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{nativeSvgTitle}from"../../../internal/svg-title.js";import{html,svg,nothing}from"lit";import{property}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteNumber}from"../../../internal/numbers.js";import{resolveIntlLocale}from"../../../internal/intl-cache.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{srOnly}from"../../../internal/a11y.js";import{styles}from"./context-meter.styles.js";import{LYRA_DEFAULT_contextMeterLabeledSummary,LYRA_DEFAULT_contextMeterSegmentLabel,LYRA_DEFAULT_contextMeterUsed,LYRA_DEFAULT_contextMeterUsedOfTotal}from"../../../internal/default-strings.generated.js";const RADIUS=40,CENTER=50,STROKE=12,CIRCUMFERENCE=2*Math.PI*RADIUS,MAX_CONTEXT_METER_SEGMENTS=1e4,EMPTY_CONTEXT_METER_SEGMENTS=Object.freeze([]);function projectContextMeterSegments(value){try{if(!Array.isArray(value))return EMPTY_CONTEXT_METER_SEGMENTS;const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return EMPTY_CONTEXT_METER_SEGMENTS;const segments=[];for(let index=0;index<Math.min(length.value,MAX_CONTEXT_METER_SEGMENTS);index+=1){const entry=getOwnDataDescriptor(value,String(index));if(entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR||entry.value===null||typeof entry.value!="object"||Array.isArray(entry.value))continue;const label=getOwnDataDescriptor(entry.value,"label"),segmentValue=getOwnDataDescriptor(entry.value,"value"),tone=getOwnDataDescriptor(entry.value,"tone"),color=getOwnDataDescriptor(entry.value,"color");if(label===MISSING_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR||segmentValue===MISSING_OWN_DATA_DESCRIPTOR||segmentValue===UNSAFE_OWN_DATA_DESCRIPTOR||tone===UNSAFE_OWN_DATA_DESCRIPTOR||color===UNSAFE_OWN_DATA_DESCRIPTOR||typeof label.value!="string"||typeof segmentValue.value!="number"||tone!==MISSING_OWN_DATA_DESCRIPTOR&&typeof tone.value!="string"||color!==MISSING_OWN_DATA_DESCRIPTOR&&typeof color.value!="string")continue;const toneValue=tone===MISSING_OWN_DATA_DESCRIPTOR?void 0:tone.value,colorValue=color===MISSING_OWN_DATA_DESCRIPTOR?void 0:color.value;segments.push(Object.freeze({label:label.value,value:segmentValue.value,...toneValue===void 0?{}:{tone:toneValue},...colorValue===void 0?{}:{color:colorValue}}))}return Object.freeze(segments)}catch{return EMPTY_CONTEXT_METER_SEGMENTS}}function formatCount(n,locale){return Math.round(finiteNumber(n,0)).toLocaleString(resolveIntlLocale(locale))}class LyraContextMeter extends LyraElement{constructor(){super(...arguments),this.segments=[],this.total=0,this._shape="bar",this.label="",this.showLegend=!1,this.projectedSegments=EMPTY_CONTEXT_METER_SEGMENTS}static{this.defaultStrings={...super.defaultStrings,contextMeterLabeledSummary:LYRA_DEFAULT_contextMeterLabeledSummary,contextMeterSegmentLabel:LYRA_DEFAULT_contextMeterSegmentLabel,contextMeterUsed:LYRA_DEFAULT_contextMeterUsed,contextMeterUsedOfTotal:LYRA_DEFAULT_contextMeterUsedOfTotal}}static{this.ownedCollectionProperties=Object.freeze(["segments"])}static{this.styles=[LyraElement.styles,srOnly,styles]}get shape(){return this._shape}set shape(value){const normalized=value==="ring"?"ring":"bar",previous=this._shape;if(previous===normalized){value!==normalized&&this.requestUpdate("shape",previous);return}this._shape=normalized,this.requestUpdate("shape",previous)}get effectiveSegments(){const source=this.segments;return source!==this.projectedSegmentsSource&&(this.projectedSegmentsSource=source,this.projectedSegments=projectContextMeterSegments(source)),this.projectedSegments}normalizedSegmentValue(segment){return Math.max(0,finiteNumber(segment.value,0))}get usedTotal(){return this.effectiveSegments.reduce((sum,segment)=>{const next=sum+this.normalizedSegmentValue(segment);return finiteNumber(next,Number.MAX_VALUE)},0)}ratios(){const total=Math.max(0,finiteNumber(this.total,0));if(total<=0)return[];const out=[];let cumulative=0;for(const segment of this.effectiveSegments){const raw=this.normalizedSegmentValue(segment),available=Math.max(0,1-cumulative),ratio=Math.min(raw/total,available);cumulative+=ratio,out.push({segment,value:raw,ratio})}return out}get clampedUsedTotal(){const total=Math.max(0,finiteNumber(this.total,0));return{used:total>0?Math.min(this.usedTotal,total):this.usedTotal,total}}get summary(){const{used:usedForSummary,total:totalValue}=this.clampedUsedTotal,used=formatCount(usedForSummary,this.effectiveLocale),phrase=totalValue>0?this.localize("contextMeterUsedOfTotal",void 0,{used,total:formatCount(totalValue,this.effectiveLocale)}):this.localize("contextMeterUsed",void 0,{used});return this.label?this.localize("contextMeterLabeledSummary",void 0,{label:this.label,summary:phrase}):phrase}segmentTitle(segment,value=this.normalizedSegmentValue(segment)){return this.localize("contextMeterSegmentLabel",void 0,{label:segment.label,count:formatCount(value,this.effectiveLocale)})}segmentColor(segment){return segment.color?sanitizeCssColor(segment.color):void 0}renderSemantics(){const{used,total}=this.clampedUsedTotal,accessibleName=this.summary;return html`
2
2
  <div
3
3
  part="semantic"
4
4
  class="sr-only"
@@ -9,7 +9,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
9
9
  aria-valuemax=${total>0?String(total):nothing}
10
10
  ></div>
11
11
  <ul part="segment-list" class="sr-only">
12
- ${this.segments.map(segment=>html`<li part="segment-item">${this.segmentTitle(segment)}</li>`)}
12
+ ${this.effectiveSegments.map(segment=>html`<li part="segment-item">${this.segmentTitle(segment)}</li>`)}
13
13
  </ul>
14
14
  `}renderBar(){const ratios=this.ratios();return html`
15
15
  <div part="base">
@@ -37,7 +37,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
37
37
  stroke-dasharray=${`${segLen} ${CIRCUMFERENCE-segLen}`}
38
38
  stroke-dashoffset=${dashoffset}
39
39
  transform="rotate(-90 ${CENTER} ${CENTER})"
40
- ><title>${this.segmentTitle(segment,value)}</title></circle>
40
+ >${nativeSvgTitle(this.segmentTitle(segment,value))}</circle>
41
41
  `});return html`
42
42
  <svg part="base" viewBox="0 0 100 100" aria-hidden="true">
43
43
  <circle part="track" cx=${CENTER} cy=${CENTER} r=${RADIUS} stroke-width=${STROKE}></circle>
@@ -50,7 +50,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
50
50
  </svg>
51
51
  `}renderLegend(){return html`
52
52
  <div part="legend" aria-hidden="true">
53
- ${this.segments.map(segment=>{const color=this.segmentColor(segment);return html`<span part="legend-item">
53
+ ${this.effectiveSegments.map(segment=>{const color=this.segmentColor(segment);return html`<span part="legend-item">
54
54
  <span
55
55
  part="legend-swatch"
56
56
  data-tone=${segment.tone??"neutral"}
@@ -31,6 +31,8 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
31
31
  * page, page-size, and abort-signal state.
32
32
  * @event lr-cell-click - Fired when a data cell is activated with canonical `rowKey` and
33
33
  * `columnId` identity.
34
+ * Clicking a supported interactive descendant, including its inner open-shadow native control,
35
+ * runs that control without also emitting lr-cell-click; passive cell content retains activation.
34
36
  * @event lr-cell-contextmenu - Fired before a native cell context menu. Cancelable; preventing
35
37
  * default suppresses the native menu. Detail includes canonical `rowKey` and `columnId`.
36
38
  * @event lr-column-move - Fired while and after a user column move; `detail.finished` marks commit.
@@ -59,7 +61,8 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
59
61
  * @event lr-sort-change - Fired after a user changes sorting.
60
62
  * @event focus - Native focus relayed once from the toolbar search or active column-filter input.
61
63
  * @event blur - Native blur relayed once from the toolbar search or active column-filter input.
62
- * @csspart body - Scrollable body viewport.
64
+ * @csspart body - The sole vertical and horizontal scroll viewport; header and footer columns
65
+ * mirror its logical inline position.
63
66
  * @csspart cell - A data cell.
64
67
  * @csspart column-menu - A per-column menu.
65
68
  * @csspart column-menu-button - A per-column menu trigger.
@@ -129,6 +132,12 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
129
132
  * @cssprop [--header-text-color=var(--lr-color-text)] - Header foreground.
130
133
  * @cssprop [--indent-size=var(--lr-size-1-25rem)] - Tree-level indentation.
131
134
  * @cssprop [--max-height=var(--lr-size-30rem)] - Scroll viewport maximum height; `none` renders all.
135
+ * @cssprop --lr-data-grid-control-active-background - Pressed background for grid controls.
136
+ * @cssprop --lr-data-grid-control-hover-background - Hovered background for grid controls.
137
+ * @cssprop --lr-data-grid-page-size-active-background - Pressed page-size selector background.
138
+ * @cssprop --lr-data-grid-row-active-background - Pressed data-row background.
139
+ * @cssprop --lr-data-grid-sortable-header-active-background - Pressed sortable-header background.
140
+ * @cssprop --lr-data-grid-sortable-header-hover-background - Hovered sortable-header background.
132
141
  * @cssprop [--row-height=var(--lr-size-3-5rem)] - Estimated and minimum row height.
133
142
  * @cssprop --row-hover-background - Hovered-row background.
134
143
  * @cssprop [--selected-background=var(--lr-color-brand-quiet)] - Selected-row background.
@@ -237,11 +246,25 @@ withColumnsMenu:boolean;
237
246
  /** Keeps a sorted column in ascending/descending states instead of removing its sort. */
238
247
  withoutSortRemoval:boolean;
239
248
  /** Shows the global search field. */
240
- withSearch:boolean;private columnWidths;private columnVisibility;private columnPinning;private activeFilterColumn;private columnsMenuOpen;private activeColumnMenu;private liveText;private bodyScrollTop;private viewportHeight;private focusedRow;private focusedColumn;private dragGhost;private bodyElement?;private requestGeneration;private requestController?;private requestTimer?;private ownsLoadingState;private resizeSession?;private columnDragSession?;private columnDragSequence;private managedOverlay?;private managedOverlayOwner;private lastSelectedIndex;private isMounting;
249
+ withSearch:boolean;private columnWidths;private columnVisibility;private columnPinning;private activeFilterColumn;private columnsMenuOpen;private activeColumnMenu;private liveText;private bodyScrollTop;
250
+ /** Logical distance from the body's inline start; header/footer translate it into their physical
251
+ * direction so `[part="body"]` remains the sole horizontal viewport in both writing modes. */
252
+ private bodyScrollInlineOffset;private viewportHeight;private focusedRow;private focusedColumn;private dragGhost;private activeResizeColumn;private bodyElement?;private requestGeneration;private requestController?;private requestTimer?;private ownsLoadingState;private resizeSession?;private columnDragSession?;private columnDragSequence;private managedOverlay?;private managedOverlayOwner;private lastSelectedIndex;private isMounting;
253
+ /** Measured whole-display-item block sizes, keyed by stable row/group identity rather than a
254
+ * transient virtual index. Unmeasured items retain `resolvedRowHeight` as their bounded estimate. */
255
+ private readonly measuredItemHeights;private measuredItemOffsets;private measuredItemOffsetSignature;private measuredItemOffsetEstimate;private measuredItemOffsetsDirty;private measurementLocale;private measurementDisplaySignature;private measurementRowHeight;private measurementFontSignature;
256
+ /** The last stable item at the viewport's leading edge, retained across projections that can
257
+ * reorder or remeasure rows before the next render reconciles their physical offsets. */
258
+ private lastMeasurementAnchor?;private measuredBodyWidth;
259
+ /** Width reserved by a vertical body scrollbar at logical inline end. Header/footer live outside
260
+ * that scrollport, so their inline-end pins need the same inset to share its visible edge. */
261
+ private bodyScrollbarInlineEndGutter;private rowMeasurementObserver?;private rowMeasurementObserverOwner?;private rowMeasurementObserverBody?;private readonly observedMeasurementElements;private measurementUpdateQueued;private measurementScrollSyncQueued;private bodyScrollStateSyncQueued;
262
+ /** A component-issued vertical scroll that must not be mistaken for intervening user intent. */
263
+ private expectedBodyScroll?;private pendingVirtualScroll?;
241
264
  /** Handle on the shared light-DOM live region announcements actually go through -- a region
242
265
  * rendered inside this shadow root is not reliably announced (JAWS with Firefox ignores one
243
266
  * outright), so `[part="live-region"]` is only an `aria-hidden` mirror. */
244
- private sink?;connectedCallback():void;disconnectedCallback():void;protected willUpdate(changed:PropertyValues<this>):void;protected updated(changed:PropertyValues<this>):void;private get currentManagedOverlayOwner();private managedOverlayElements;private dismissManagedOverlay;private syncManagedOverlay;private toggleColumnsPanel;private toggleFilterPanel;private toggleColumnPanel;
267
+ private sink?;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected willUpdate(changed:PropertyValues<this>):void;protected updated(changed:PropertyValues<this>):void;private get currentManagedOverlayOwner();private managedOverlayElements;private dismissManagedOverlay;private syncManagedOverlay;private toggleColumnsPanel;private toggleFilterPanel;private toggleColumnPanel;
245
268
  /** Send `text` to assistive tech. It goes to the shared light-DOM region -- appended as a new
246
269
  * child node, so an identical repeat (copying twice in a row) is read again rather than being a
247
270
  * silent no-op -- and is mirrored into `[part="live-region"]` for styling/inspection only. */
@@ -271,7 +294,8 @@ getColumnFacets(columnId:string):DataGridFacets;
271
294
  getColumnPin(columnId:string):DataGridPinSide;
272
295
  /** Returns processed rows as formula-safe delimited text without downloading. */
273
296
  getDataAsCsv(options?:DataGridCsvOptions):string;
274
- /** Returns all filtered and sorted rows before pagination. */
297
+ /** Returns all filtered and sorted rows before pagination, with each admitted source-row
298
+ * occurrence retained once, matching facets, CSV, and rendered identity. */
275
299
  getProcessedRows():readonly Row[];
276
300
  /** Returns the current page (or all rows when pagination is off). */
277
301
  getVisibleRows():readonly Row[];
@@ -296,7 +320,8 @@ resetState():void;
296
320
  scrollToIndex(index:number,options?:DataGridScrollOptions):void;
297
321
  /** Applies known fields from a partial serialized view state. */
298
322
  setState(state:DataGridState):void;
299
- /** Distributes the available body width across visible columns. */
323
+ /** Reserves visible fixed columns and selection controls, then divides the remaining width
324
+ * proportionally across flexible columns, preserving each column's min/max bounds. */
300
325
  sizeColumnsToFit():void;
301
326
  /** Shows or hides one column without emitting the user-only visibility event. */
302
327
  toggleColumn(columnId:string,visible:boolean):void;private validColumnMap;private delimitedRows;private copyAndReport;private writeClipboard;private setColumnWidth;private cancelRequestTimer;private scheduleServerRequest;private loadServerData;private get selectionMode();private get selectionEnabled();
@@ -305,4 +330,24 @@ private get ariaColumnCount();private rowIsSelectable;private rowMatches;private
305
330
  /** Object-valued grouping callbacks may return a fresh object on every projection. The lowest
306
331
  * stable member identity keeps that group's key repeatable while still separating structurally
307
332
  * equal object buckets, which cannot share a row. */
308
- private groupMemberKey;private groupKey;private topLevelGroupBuckets;private groupItems;private get displayItems();private groupedDisplayItems;private get resolvedRowHeight();private get virtualWindow();private get gridTemplate();private columnStyle;private estimatedColumnWidth;private columnBounds;private pinOffset;private columnLabel;private columnIsSortable;private sortFor;private activateSort;private onHeaderClick;private onFilterInput;private onBodyScroll;private onCellClick;private emitCellContextMenu;private descendantRows;private setRowSelected;private selectCurrentPage;private emitSelection;private rowSelectionState;private toggleRowExpanded;private toggleGroupExpanded;private moveColumn;private columnCanMove;private columnCanResize;private onDragStart;private onDrop;private onResizeStart;private onResizeMove;private takeResizeSession;private restoreResizeSession;private onResizeEnd;private onResizeCancel;private onResizeKey;private onPageSizeChange;private focusCell;private onGridKeyDown;private setGroupSelected;private userPinColumn;private userToggleColumn;private relayEditorFocus;private relayEditorBlur;private renderToolbar;private renderSelectAllHeader;private renderColumnMenu;private renderHeader;private renderCellValue;private renderExpandButton;private renderDataRow;private renderGroupRow;private renderBodyContent;private renderFooter;private visiblePageNumbers;private renderPager;protected render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-data-grid':LyraDataGrid;}}
333
+ private groupMemberKey;private groupKey;private topLevelGroupBuckets;private groupItems;private get displayItems();private groupedDisplayItems;private measurementSignature;private invalidateRowMeasurements;
334
+ /** Clears estimates whenever a change can alter a row's physical block size. Pure scrolling is
335
+ * deliberately absent: cache entries are keyed by stable display identity and survive a row
336
+ * leaving/re-entering the virtual window. */
337
+ private reconcileRowMeasurementCache;
338
+ /** Detects CSS-token/font metric changes even when no public reactive property changed. */
339
+ private recordMeasurementRowHeight;private currentMeasurementFontSignature;private recordMeasuredBodyWidth;private syncMeasuredBodyWidth;
340
+ /** Mirrors the body's actual vertical-scrollbar reservation onto outer end-pinned tracks without
341
+ * scheduling a nested Lit update from `updated()`. */
342
+ private syncBodyScrollbarInlineEndGutter;
343
+ /** ResizeObserver and `updated()` may both discover a changed height in one render. Coalesce a
344
+ * follow-up pass outside Lit's lifecycle so a measurement cannot recursively schedule updates. */
345
+ private queueMeasurementUpdate;private queueMeasuredScrollTop;
346
+ /** Reads layout-clamped scroll state after Lit commits without scheduling a nested update. */
347
+ private queueBodyScrollStateSync;private resetRowMeasurementObserver;private syncRowMeasurementObserver;private displayItemOffsets;private displayItemOffset;private displayItemHeight;private displayItemIndexAtOffset;private captureMeasurementAnchor;private measurementAnchorAtOffset;private pendingMeasurementAnchor?;private correctMeasurementAnchor;private measureRenderedItems;
348
+ /** Replays a virtual scroll command only after its target's measured offsets are stable. */
349
+ private alignPendingVirtualScroll;private get resolvedRowHeight();private get virtualWindow();private get gridTemplate();
350
+ /** Physical header/footer translation derived from the body's normalized logical inline offset. */
351
+ private get bodyScrollTranslation();private columnStyle;private estimatedColumnWidth;private columnBounds;private pinOffset;private columnLabel;private columnIsSortable;private sortFor;private activateSort;private onHeaderClick;private onFilterInput;
352
+ /** Reads the authoritative body position after native scrolling or a layout-driven clamp. */
353
+ private syncBodyScrollState;private onBodyScroll;private onCellClick;private emitCellContextMenu;private descendantRows;private setRowSelected;private selectCurrentPage;private emitSelection;private rowSelectionState;private toggleRowExpanded;private toggleGroupExpanded;private moveColumn;private columnCanMove;private columnCanResize;private onDragStart;private onDrop;private onResizeStart;private onResizeMove;private takeResizeSession;private restoreResizeSession;private onResizeEnd;private onResizeCancel;private onResizeKey;private onPageSizeChange;private focusCell;private onGridKeyDown;private setGroupSelected;private userPinColumn;private userToggleColumn;private relayEditorFocus;private relayEditorBlur;private renderToolbar;private renderSelectAllHeader;private renderColumnMenu;private renderHeader;private renderCellValue;private renderExpandButton;private renderDataRow;private renderGroupRow;private renderBodyContent;private renderFooter;private visiblePageNumbers;private renderPager;protected render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-data-grid':LyraDataGrid;}}