@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
@@ -6,6 +6,12 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
6
6
  * internal input is in a shadow root and has no form owner, so the platform can never do it here).
7
7
  * A `delimiter` keystroke stays purely a commit key and never submits. Tab commits a nonempty
8
8
  * draft without preventing the key, so native focus traversal still advances.
9
+ * Composing keyboard events, including legacy key code 229, remain with the draft or inline
10
+ * editor without adding, removing, committing or closing tokens.
11
+ * Host-root external descriptions precede local hint/error guidance on the native draft input
12
+ * and follow live source replacement, removal, reconnection and document adoption.
13
+ * Removing label, hint or error-text safely removes the copy without changing native
14
+ * attribute-removal property readback. Editable token labels keep their text vertically centered.
9
15
  * `select()`, the selection getters/setters, `setSelectionRange()`, and `setRangeText()` expose the
10
16
  * native draft input's editing surface. Range edits synchronize the pending draft without
11
17
  * emitting user events, so a later delimiter/Enter/Tab/blur commit consumes the edited text.
@@ -144,7 +150,7 @@ private editingIndex;private editDraft;
144
150
  * current token count so a shrinking list can never leave the row with no tab stop. */
145
151
  private rovingIndex;private focusEditorPending;private focusTokenPending;private tokenFocusRepairPending?;
146
152
  /** One native blur can be followed by a teardown blur when its commit removes the focused editor. */
147
- private editorBlurRelayed;private hasLabelSlot;private hasHintSlot;private hasErrorSlot;private hasStartSlot;private hasEndSlot;private inputEl?;private internals;private validityController;
153
+ private editorBlurRelayed;private hasLabelSlot;private hasHintSlot;private hasErrorSlot;private hasStartSlot;private hasEndSlot;private inputEl?;private externalDescriptionLease?;private syncExternalDescription;private releaseExternalDescription;private internals;private validityController;
148
154
  /** Consumer-supplied validation message reflected through `custom-error`. */
149
155
  customError:string|null;private labelId;private hintId;private errorId;private _value;private _defaultValue;private _valueDirty;private settingDefaultValue;private reflectingDefaultValue;private _fieldsetDisabled;private _name;private _required;private _disabled;get value():readonly string[];set value(next:readonly string[]);
150
156
  /** Reflected JSON-array reset default; changing it never overwrites a dirty live token list. */
@@ -153,7 +159,7 @@ get defaultValue():readonly string[];set defaultValue(next:readonly string[]|nul
153
159
  * This control keys its `FormData` entries directly off `name` (see
154
160
  * `syncValidity()`), so a rename must rebuild that `FormData` in the same
155
161
  * tick -- mirrors `<lr-combobox>`'s identical `name` setter. */
156
- get name():string;set name(next:string);get required():boolean;set required(next:boolean);get disabled():boolean;set disabled(next:boolean);constructor();connectedCallback():void;disconnectedCallback():void;get form():HTMLFormElement|null;set form(owner:FormOwnerValue);getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;
162
+ get name():string;set name(next:string);get required():boolean;set required(next:boolean);get disabled():boolean;set disabled(next:boolean);constructor();connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;get form():HTMLFormElement|null;set form(owner:FormOwnerValue);getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;
157
163
  /** Effective disabled state: this element's own `disabled` OR an ancestor
158
164
  * `<fieldset disabled>`'s inherited state -- mirrors native `<input>`, whose
159
165
  * own `disabled` IDL property/attribute is never mutated by a fieldset. */
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";installFormControlLabelSupport();import{activeElementIn}from"../../../internal/active-element.js";import{captureComposedFocusRepair,applyComposedFocusRepair}from"../../../internal/focus-navigation.js";import{AnchoredValidityController,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{autocorrectConverter,normalizeAutocorrect,spellcheckConverter}from"../../../internal/converters.js";import{submitOnEnter}from"../../../internal/submit-on-enter.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{sizes}from"../../../internal/sizes.styles.js";import{styles}from"./token-input.styles.js";import{attachInternalsSafely,createStringArrayFormDataState,getFormOwner,installCustomErrorProperty,isBarredFromValidation,readStringArrayFormDataState,setFormOwner}from"../../../internal/form-associated.js";import{installInvalidEventAlias}from"../../../internal/invalid-event-alias.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_removeWithContext,LYRA_DEFAULT_tokenInputEditWithContext,LYRA_DEFAULT_tokenInputRequired}from"../../../internal/default-strings.generated.js";const delimiterConverter={fromAttribute:value=>value===null?",":value===""||value==="none"?null:value};function normalizeStringArray(value){if(!Array.isArray(value))return Object.freeze([]);try{const normalized=[];for(const entry of value)typeof entry=="string"&&normalized.push(entry);return Object.freeze(normalized)}catch{return Object.freeze([])}}const stringArrayConverter={fromAttribute:value=>{if(value===null)return null;try{const parsed=JSON.parse(value);return normalizeStringArray(parsed)}catch{return[]}},toAttribute:value=>value==null?null:JSON.stringify(value)};class LyraTokenInput extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,removeWithContext:LYRA_DEFAULT_removeWithContext,tokenInputEditWithContext:LYRA_DEFAULT_tokenInputEditWithContext,tokenInputRequired:LYRA_DEFAULT_tokenInputRequired}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},defaultValue:{attribute:"value",reflect:!0,useDefault:!0,converter:stringArrayConverter,noAccessor:!0}}}get autocorrect(){return this.autocorrectValue}set autocorrect(next){this.autocorrectValue=normalizeAutocorrect(next),this.requestUpdate()}get editable(){return this._editable}set editable(next){const old=this._editable;this._editable=!!next,this._editable||this.discardTransientState(!1),this.requestUpdate("editable",old)}get value(){return this._value}set value(next){const old=this._value;this.settingDefaultValue||(this._valueDirty=!0);const normalized=normalizeStringArray(next);this.captureTokenFocusRepair(normalized),this.editingIndex>=0&&normalized!==old&&(this.editingIndex=-1,this.editDraft="",this.focusEditorPending=!1),this._value=normalized,this.requestUpdate("value",old),this.internals&&this.syncValidity()}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const old=this._defaultValue;this._defaultValue=normalizeStringArray(next),this.reflectingDefaultValue=!0;try{next==null?this.removeAttribute("value"):this.setAttribute("value",JSON.stringify(this._defaultValue))}finally{this.reflectingDefaultValue=!1}this._valueDirty||this.restoreLiveValueFromDefault(),this.requestUpdate("defaultValue",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",this._name?this.setAttribute("name",this._name):this.removeAttribute("name"),this.syncValidity(),this.requestUpdate("name",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.syncValidity(),this.requestUpdate("required",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled,wasEffectivelyDisabled=this.effectiveDisabled;this._disabled=!!next,!wasEffectivelyDisabled&&this.effectiveDisabled&&this.retireDisabledInteraction(),this.toggleAttribute("disabled",this._disabled),this.syncValidity(),this.requestUpdate("disabled",old)}constructor(){super(),this.label="",this.hint="",this.errorText="",this.placeholder="",this.spellcheck=!0,this.autocapitalize="",this.autocorrectValue=!0,this.accessibleLabel="",this.size="m",this.pill=!1,this.allowDuplicates=!1,this._editable=!1,this.delimiter=",",this.draft="",this.touched=!1,this.editingIndex=-1,this.editDraft="",this.rovingIndex=0,this.focusEditorPending=!1,this.focusTokenPending=-1,this.editorBlurRelayed=!1,this.hasLabelSlot=!1,this.hasHintSlot=!1,this.hasErrorSlot=!1,this.hasStartSlot=!1,this.hasEndSlot=!1,this.labelId=nextId("token-input-label"),this.hintId=nextId("token-input-hint"),this.errorId=nextId("token-input-error"),this._value=Object.freeze([]),this._defaultValue=Object.freeze([]),this._valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._fieldsetDisabled=!1,this._name="",this._required=!1,this._disabled=!1,this.onEditInput=event=>{event.stopPropagation(),!this.liveDisabled&&(this.editDraft=event.target.value)},this.onEditFocus=event=>{if(this.liveDisabled){event.stopPropagation();return}this.editorBlurRelayed=!1,relayNativeEvent(this,event)},this.onEditKeyDown=event=>{event.key==="Enter"?(event.preventDefault(),this.commitEdit(!0)):event.key==="Escape"&&(event.preventDefault(),event.stopPropagation(),this.cancelEdit())},this.onEditBlur=event=>{if(this.editorBlurRelayed){event.stopPropagation();return}this.editorBlurRelayed=!0,event.stopPropagation(),queueMicrotask(()=>{!this.isConnected||!this.editable||this.liveDisabled?this.discardTransientState(!1):this.commitEdit(!1),relayNativeEvent(this,event)})},this.onInput=event=>{event.stopPropagation(),!this.liveDisabled&&(this.draft=event.target.value)},this.onKeyDown=event=>{this.liveDisabled||(event.key==="Enter"||this.delimiter!==null&&event.key===this.delimiter?this.draft.trim()?(event.preventDefault(),this.addDraft()):event.key==="Enter"&&submitOnEnter(this,event):event.key==="Tab"?this.draft.trim()&&this.addDraft():event.key==="Backspace"&&!this.draft&&this.value.length&&this.editingIndex<0&&this.removeToken(this.value.length-1))},this.onBlur=event=>{this.liveDisabled||(this.draft.trim()&&this.addDraft(),this.touched=!0),this.syncValidity(),relayNativeEvent(this,event)},this.onFocus=event=>{if(this.liveDisabled){event.stopPropagation();return}relayNativeEvent(this,event)},this.onLabelSlotChange=e=>{this.hasLabelSlot=e.target.assignedElements({flatten:!0}).length>0},this.onHintSlotChange=e=>{this.hasHintSlot=e.target.assignedElements({flatten:!0}).length>0},this.onErrorSlotChange=e=>{this.hasErrorSlot=e.target.assignedElements({flatten:!0}).length>0},this.onStartSlotChange=e=>{this.hasStartSlot=e.target.assignedElements({flatten:!0}).length>0},this.onEndSlotChange=e=>{this.hasEndSlot=e.target.assignedElements({flatten:!0}).length>0},this.internals=attachInternalsSafely(this),this.validityController=new AnchoredValidityController(this,this.internals,()=>this[VALIDITY_ANCHOR]()),installCustomErrorProperty(this,()=>this.validityController.customValidityMessage),installInvalidEventAlias(this,init=>this.emit("lr-invalid",null,init))}connectedCallback(){super.connectedCallback(),this.syncValidity()}disconnectedCallback(){this.tokenFocusRepairPending=void 0,this.discardTransientState(!0),super.disconnectedCallback()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}formDisabledCallback(disabled){const wasEffectivelyDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,!wasEffectivelyDisabled&&this.effectiveDisabled&&this.retireDisabledInteraction(),this.syncValidity(),this.requestUpdate()}[VALIDITY_ANCHOR](){return this.inputEl??this.renderRoot?.querySelector('[part="input-wrapper"]')??null}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.touched=!0,this.syncValidity(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidity()}get liveDisabled(){return this.effectiveDisabled||this.matches(":disabled")}focus(options){this.liveDisabled||this.inputEl?.focus(options)}blur(){const active=this.shadowRoot?.activeElement;active&&typeof active.blur=="function"&&active.blur()}click(){this.liveDisabled||this.inputEl?.focus()}select(){this.inputEl?.select()}get selectionStart(){return this.inputEl?.selectionStart??null}set selectionStart(value){this.inputEl&&(this.inputEl.selectionStart=value??0)}get selectionEnd(){return this.inputEl?.selectionEnd??null}set selectionEnd(value){this.inputEl&&(this.inputEl.selectionEnd=value??0)}get selectionDirection(){return this.inputEl?.selectionDirection??null}set selectionDirection(value){this.inputEl&&(this.inputEl.selectionDirection=value??"none")}setSelectionRange(selectionStart,selectionEnd,selectionDirection="none"){this.inputEl?.setSelectionRange(selectionStart,selectionEnd,selectionDirection??"none")}setRangeText(replacement,start,end,selectMode="preserve"){const input=this.inputEl;input&&(start===void 0||end===void 0?input.setRangeText(replacement):input.setRangeText(replacement,start,end,selectMode),this.draft=input.value)}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasLabelSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="label"),this.hasHintSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="hint"),this.hasErrorSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="error"),this.hasStartSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="start"),this.hasEndSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="end"))}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncValidity(){const barred=this.barredFromValidation,missing=!barred&&this.required&&this.value.length===0;this.validityController.setValidity(missing?{valueMissing:!0}:{},missing?this.localize("tokenInputRequired"):""),this.toggleAttribute("data-invalid",!barred&&this.touched&&!this.internals.validity.valid),syncValidityStates(this.internals,{required:this.required,hasInteracted:this.touched,barred});const data=new FormData;this.name&&this.value.forEach(token=>data.append(this.name,token)),this.internals.setFormValue(this.name?data:null,createStringArrayFormDataState(this.name,this.value))}updateValue(next){this.value=next,this.syncValidity(),dispatchNativeInputEvent(this),this.emit("lr-input",Object.freeze({value:Object.freeze([...this.value])})),dispatchNativeEvent(this,"change"),this.emit("lr-change",Object.freeze({value:Object.freeze([...this.value])}))}addDraft(){if(this.liveDisabled)return;const candidates=(this.delimiter?this.draft.split(this.delimiter):[this.draft]).map(token=>token.trim()).filter(Boolean),next=[...this.value],seen=this.allowDuplicates?null:new Set(next),added=[];for(const token of candidates)seen?.has(token)||(seen?.add(token),next.push(token),added.push(token));if(added.length===0){this.draft="";return}this.emit("lr-add",Object.freeze({value:added[added.length-1],values:Object.freeze([...added])}),{cancelable:!0}).defaultPrevented||(this.updateValue(next),this.draft="")}discardTransientState(clearDraft){this.editingIndex=-1,this.editDraft="",this.focusEditorPending=!1,this.focusTokenPending=-1,clearDraft&&(this.draft="",this.inputEl&&(this.inputEl.value=""))}retireDisabledInteraction(){this.tokenFocusRepairPending=void 0,this.discardTransientState(!0);const active=this.shadowRoot?.activeElement;active&&typeof active.blur=="function"&&active.blur()}captureTokenFocusRepair(next){this.tokenFocusRepairPending=void 0;const tokens=[...this.renderRoot?.querySelectorAll('[part~="token"]')??[]];if(next.length>=tokens.length)return;const active=activeElementIn(this.shadowRoot),token=active?.closest('[part~="token"]');if(!active||!token)return;const index=tokens.indexOf(token);if(index<0)return;const repair=captureComposedFocusRepair(this,active);if(!repair)return;const targetIndex=Math.min(index,Math.max(0,next.length-1));this.rovingIndex=targetIndex,this.tokenFocusRepairPending={index:targetIndex,surface:active.matches('[part~="remove"]')?"remove":"label",repair}}removeToken(index){if(this.liveDisabled)return;const removed=this.value[index];removed===void 0||this.emit("lr-remove",{value:removed,index},{cancelable:!0}).defaultPrevented||(this.editingIndex>=0&&(this.editingIndex=-1,this.editDraft=""),this.updateValue(this.value.filter((_token,i)=>i!==index)))}get activeTokenIndex(){return this.value.length?Math.min(Math.max(this.rovingIndex,0),this.value.length-1):-1}startEdit(index){this.liveDisabled||!this.editable||index<0||index>=this.value.length||(this.editingIndex=index,this.editDraft=this.value[index],this.rovingIndex=index,this.editorBlurRelayed=!1,this.focusEditorPending=!0)}cancelEdit(){this.editingIndex<0||(this.focusTokenPending=this.editingIndex,this.editingIndex=-1,this.editDraft="")}commitEdit(restoreFocus){if(this.liveDisabled){this.discardTransientState(!1);return}const index=this.editingIndex;if(index<0)return;const previousValue=this.value[index],next=this.editDraft.trim();if(previousValue===void 0||!next||next===previousValue||!this.allowDuplicates&&this.value.some((token,i)=>i!==index&&token===next)){restoreFocus&&(this.focusTokenPending=index),this.editingIndex=-1,this.editDraft="";return}this.emit("lr-token-edit",{value:next,previousValue,index},{cancelable:!0}).defaultPrevented||(restoreFocus&&(this.focusTokenPending=index),this.editingIndex=-1,this.editDraft="",this.updateValue(this.value.map((token,i)=>i===index?next:token)))}moveRovingFocus(index){if(!this.value.length)return;const clamped=Math.min(Math.max(index,0),this.value.length-1);this.rovingIndex=clamped,this.focusTokenPending=clamped}onTokenKeyDown(event,index){if(this.liveDisabled)return;const rtl=this.effectiveDirection==="rtl",forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft";event.key==="Enter"||event.key===" "||event.key==="F2"?(event.preventDefault(),this.startEdit(index)):event.key===forward?(event.preventDefault(),this.moveRovingFocus(index+1)):event.key===backward?(event.preventDefault(),this.moveRovingFocus(index-1)):event.key==="Home"?(event.preventDefault(),this.moveRovingFocus(0)):event.key==="End"&&(event.preventDefault(),this.moveRovingFocus(this.value.length-1))}stopInternalChange(event){event.stopPropagation()}formResetCallback(){this.restoreLiveValueFromDefault(),this.discardTransientState(!0),this.rovingIndex=0,this.touched=!1,this.syncValidity()}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=[...this._defaultValue]}finally{this.settingDefaultValue=!1}this._valueDirty=!1}formStateRestoreCallback(state2,_mode){this.value=readStringArrayFormDataState(state2),this.discardTransientState(!0),this.rovingIndex=0,this.touched=!1,this.syncValidity()}updated(changed){if(super.updated(changed),this.focusEditorPending){this.focusEditorPending=!1;const editor=this.renderRoot?.querySelector('[part="token-editor"]');editor?.focus(),editor?.select()}if(this.focusTokenPending>=0){const index=this.focusTokenPending;this.focusTokenPending=-1;const label=this.renderRoot?.querySelectorAll('[part="token-label"]')?.[index];label?.focus(),label?.scrollIntoView({block:"nearest",inline:"nearest"})}const pending=this.tokenFocusRepairPending;if(this.tokenFocusRepairPending=void 0,pending){const token=[...this.renderRoot.querySelectorAll('[part~="token"]')][pending.index],target=(pending.surface==="remove"?token?.querySelector('[part~="remove"]'):token?.querySelector('[part~="token-label"]'))??token?.querySelector('[part~="remove"]')??this.inputEl??null;applyComposedFocusRepair(pending.repair,target)&&target?.scrollIntoView({block:"nearest",inline:"nearest"})}}renderRemoveButton(token,index){return html`<button
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";installFormControlLabelSupport();import{activeElementIn}from"../../../internal/active-element.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{captureComposedFocusRepair,applyComposedFocusRepair}from"../../../internal/focus-navigation.js";import{AnchoredValidityController,VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{autocorrectConverter,normalizeAutocorrect,spellcheckConverter}from"../../../internal/converters.js";import{submitOnEnter}from"../../../internal/submit-on-enter.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{sizes}from"../../../internal/sizes.styles.js";import{styles}from"./token-input.styles.js";import{attachInternalsSafely,createStringArrayFormDataState,getFormOwner,installCustomErrorProperty,isBarredFromValidation,readStringArrayFormDataState,setFormOwner}from"../../../internal/form-associated.js";import{installInvalidEventAlias}from"../../../internal/invalid-event-alias.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_removeWithContext,LYRA_DEFAULT_tokenInputEditWithContext,LYRA_DEFAULT_tokenInputRequired}from"../../../internal/default-strings.generated.js";const delimiterConverter={fromAttribute:value=>value===null?",":value===""||value==="none"?null:value};function normalizeStringArray(value){if(!Array.isArray(value))return Object.freeze([]);try{const normalized=[];for(const entry of value)typeof entry=="string"&&normalized.push(entry);return Object.freeze(normalized)}catch{return Object.freeze([])}}const stringArrayConverter={fromAttribute:value=>{if(value===null)return null;try{const parsed=JSON.parse(value);return normalizeStringArray(parsed)}catch{return[]}},toAttribute:value=>value==null?null:JSON.stringify(value)};class LyraTokenInput extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,removeWithContext:LYRA_DEFAULT_removeWithContext,tokenInputEditWithContext:LYRA_DEFAULT_tokenInputEditWithContext,tokenInputRequired:LYRA_DEFAULT_tokenInputRequired}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},defaultValue:{attribute:"value",reflect:!0,useDefault:!0,converter:stringArrayConverter,noAccessor:!0}}}get autocorrect(){return this.autocorrectValue}set autocorrect(next){this.autocorrectValue=normalizeAutocorrect(next),this.requestUpdate()}get editable(){return this._editable}set editable(next){const old=this._editable;this._editable=!!next,this._editable||this.discardTransientState(!1),this.requestUpdate("editable",old)}syncExternalDescription(){const target=this.isConnected?this.inputEl:void 0;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,target,"aria-describedby")}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}get value(){return this._value}set value(next){const old=this._value;this.settingDefaultValue||(this._valueDirty=!0);const normalized=normalizeStringArray(next);this.captureTokenFocusRepair(normalized),this.editingIndex>=0&&normalized!==old&&(this.editingIndex=-1,this.editDraft="",this.focusEditorPending=!1),this._value=normalized,this.requestUpdate("value",old),this.internals&&this.syncValidity()}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const old=this._defaultValue;this._defaultValue=normalizeStringArray(next),this.reflectingDefaultValue=!0;try{next==null?this.removeAttribute("value"):this.setAttribute("value",JSON.stringify(this._defaultValue))}finally{this.reflectingDefaultValue=!1}this._valueDirty||this.restoreLiveValueFromDefault(),this.requestUpdate("defaultValue",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",this._name?this.setAttribute("name",this._name):this.removeAttribute("name"),this.syncValidity(),this.requestUpdate("name",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.syncValidity(),this.requestUpdate("required",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled,wasEffectivelyDisabled=this.effectiveDisabled;this._disabled=!!next,!wasEffectivelyDisabled&&this.effectiveDisabled&&this.retireDisabledInteraction(),this.toggleAttribute("disabled",this._disabled),this.syncValidity(),this.requestUpdate("disabled",old)}constructor(){super(),this.label="",this.hint="",this.errorText="",this.placeholder="",this.spellcheck=!0,this.autocapitalize="",this.autocorrectValue=!0,this.accessibleLabel="",this.size="m",this.pill=!1,this.allowDuplicates=!1,this._editable=!1,this.delimiter=",",this.draft="",this.touched=!1,this.editingIndex=-1,this.editDraft="",this.rovingIndex=0,this.focusEditorPending=!1,this.focusTokenPending=-1,this.editorBlurRelayed=!1,this.hasLabelSlot=!1,this.hasHintSlot=!1,this.hasErrorSlot=!1,this.hasStartSlot=!1,this.hasEndSlot=!1,this.labelId=nextId("token-input-label"),this.hintId=nextId("token-input-hint"),this.errorId=nextId("token-input-error"),this._value=Object.freeze([]),this._defaultValue=Object.freeze([]),this._valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._fieldsetDisabled=!1,this._name="",this._required=!1,this._disabled=!1,this.onEditInput=event=>{event.stopPropagation(),!this.liveDisabled&&(this.editDraft=event.target.value)},this.onEditFocus=event=>{if(this.liveDisabled){event.stopPropagation();return}this.editorBlurRelayed=!1,relayNativeEvent(this,event)},this.onEditKeyDown=event=>{event.isComposing||event.keyCode===229||(event.key==="Enter"?(event.preventDefault(),this.commitEdit(!0)):event.key==="Escape"&&(event.preventDefault(),event.stopPropagation(),this.cancelEdit()))},this.onEditBlur=event=>{if(this.editorBlurRelayed){event.stopPropagation();return}this.editorBlurRelayed=!0,event.stopPropagation(),queueMicrotask(()=>{!this.isConnected||!this.editable||this.liveDisabled?this.discardTransientState(!1):this.commitEdit(!1),relayNativeEvent(this,event)})},this.onInput=event=>{event.stopPropagation(),!this.liveDisabled&&(this.draft=event.target.value)},this.onKeyDown=event=>{event.isComposing||event.keyCode===229||this.liveDisabled||(event.key==="Enter"||this.delimiter!==null&&event.key===this.delimiter?this.draft.trim()?(event.preventDefault(),this.addDraft()):event.key==="Enter"&&submitOnEnter(this,event):event.key==="Tab"?this.draft.trim()&&this.addDraft():event.key==="Backspace"&&!this.draft&&this.value.length&&this.editingIndex<0&&this.removeToken(this.value.length-1))},this.onBlur=event=>{this.liveDisabled||(this.draft.trim()&&this.addDraft(),this.touched=!0),this.syncValidity(),relayNativeEvent(this,event)},this.onFocus=event=>{if(this.liveDisabled){event.stopPropagation();return}relayNativeEvent(this,event)},this.onLabelSlotChange=e=>{this.hasLabelSlot=e.target.assignedElements({flatten:!0}).length>0},this.onHintSlotChange=e=>{this.hasHintSlot=e.target.assignedElements({flatten:!0}).length>0},this.onErrorSlotChange=e=>{this.hasErrorSlot=e.target.assignedElements({flatten:!0}).length>0},this.onStartSlotChange=e=>{this.hasStartSlot=e.target.assignedElements({flatten:!0}).length>0},this.onEndSlotChange=e=>{this.hasEndSlot=e.target.assignedElements({flatten:!0}).length>0},this.internals=attachInternalsSafely(this),this.validityController=new AnchoredValidityController(this,this.internals,()=>this[VALIDITY_ANCHOR]()),installCustomErrorProperty(this,()=>this.validityController.customValidityMessage),installInvalidEventAlias(this,init=>this.emit("lr-invalid",null,init))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription(),this.syncValidity()}disconnectedCallback(){this.releaseExternalDescription(),this.tokenFocusRepairPending=void 0,this.discardTransientState(!0),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}formDisabledCallback(disabled){const wasEffectivelyDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,!wasEffectivelyDisabled&&this.effectiveDisabled&&this.retireDisabledInteraction(),this.syncValidity(),this.requestUpdate()}[VALIDITY_ANCHOR](){return this.inputEl??this.renderRoot?.querySelector('[part="input-wrapper"]')??null}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.touched=!0,this.syncValidity(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidity()}get liveDisabled(){return this.effectiveDisabled||this.matches(":disabled")}focus(options){this.liveDisabled||this.inputEl?.focus(options)}blur(){const active=activeElementIn(this.shadowRoot);active&&typeof active.blur=="function"&&active.blur()}click(){this.liveDisabled||this.inputEl?.focus()}select(){this.inputEl?.select()}get selectionStart(){return this.inputEl?.selectionStart??null}set selectionStart(value){this.inputEl&&(this.inputEl.selectionStart=value??0)}get selectionEnd(){return this.inputEl?.selectionEnd??null}set selectionEnd(value){this.inputEl&&(this.inputEl.selectionEnd=value??0)}get selectionDirection(){return this.inputEl?.selectionDirection??null}set selectionDirection(value){this.inputEl&&(this.inputEl.selectionDirection=value??"none")}setSelectionRange(selectionStart,selectionEnd,selectionDirection="none"){this.inputEl?.setSelectionRange(selectionStart,selectionEnd,selectionDirection??"none")}setRangeText(replacement,start,end,selectMode="preserve"){const input=this.inputEl;input&&(start===void 0||end===void 0?input.setRangeText(replacement):input.setRangeText(replacement,start,end,selectMode),this.draft=input.value)}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasLabelSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="label"),this.hasHintSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="hint"),this.hasErrorSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="error"),this.hasStartSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="start"),this.hasEndSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="end"))}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncValidity(){const barred=this.barredFromValidation,missing=!barred&&this.required&&this.value.length===0;this.validityController.setValidity(missing?{valueMissing:!0}:{},missing?this.localize("tokenInputRequired"):""),this.toggleAttribute("data-invalid",!barred&&this.touched&&!this.internals.validity.valid),syncValidityStates(this.internals,{required:this.required,hasInteracted:this.touched,barred});const data=new FormData;this.name&&this.value.forEach(token=>data.append(this.name,token)),this.internals.setFormValue(this.name?data:null,createStringArrayFormDataState(this.name,this.value))}updateValue(next){this.value=next,this.syncValidity(),dispatchNativeInputEvent(this),this.emit("lr-input",Object.freeze({value:Object.freeze([...this.value])})),dispatchNativeEvent(this,"change"),this.emit("lr-change",Object.freeze({value:Object.freeze([...this.value])}))}addDraft(){if(this.liveDisabled)return;const candidates=(this.delimiter?this.draft.split(this.delimiter):[this.draft]).map(token=>token.trim()).filter(Boolean),next=[...this.value],seen=this.allowDuplicates?null:new Set(next),added=[];for(const token of candidates)seen?.has(token)||(seen?.add(token),next.push(token),added.push(token));if(added.length===0){this.draft="";return}this.emit("lr-add",Object.freeze({value:added[added.length-1],values:Object.freeze([...added])}),{cancelable:!0}).defaultPrevented||(this.updateValue(next),this.draft="")}discardTransientState(clearDraft){this.editingIndex=-1,this.editDraft="",this.focusEditorPending=!1,this.focusTokenPending=-1,clearDraft&&(this.draft="",this.inputEl&&(this.inputEl.value=""))}retireDisabledInteraction(){this.tokenFocusRepairPending=void 0,this.discardTransientState(!0);const active=activeElementIn(this.shadowRoot);active&&typeof active.blur=="function"&&active.blur()}captureTokenFocusRepair(next){this.tokenFocusRepairPending=void 0;const tokens=[...this.renderRoot?.querySelectorAll('[part~="token"]')??[]];if(next.length>=tokens.length)return;const active=activeElementIn(this.shadowRoot),token=typeof active?.closest=="function"?active.closest('[part~="token"]'):null;if(!active||!token)return;const index=tokens.indexOf(token);if(index<0)return;const repair=captureComposedFocusRepair(this,active);if(!repair)return;const targetIndex=Math.min(index,Math.max(0,next.length-1));this.rovingIndex=targetIndex,this.tokenFocusRepairPending={index:targetIndex,surface:active.matches('[part~="remove"]')?"remove":"label",repair}}removeToken(index){if(this.liveDisabled)return;const removed=this.value[index];removed===void 0||this.emit("lr-remove",{value:removed,index},{cancelable:!0}).defaultPrevented||(this.editingIndex>=0&&(this.editingIndex=-1,this.editDraft=""),this.updateValue(this.value.filter((_token,i)=>i!==index)))}get activeTokenIndex(){return this.value.length?Math.min(Math.max(this.rovingIndex,0),this.value.length-1):-1}startEdit(index){this.liveDisabled||!this.editable||index<0||index>=this.value.length||(this.editingIndex=index,this.editDraft=this.value[index],this.rovingIndex=index,this.editorBlurRelayed=!1,this.focusEditorPending=!0)}cancelEdit(){this.editingIndex<0||(this.focusTokenPending=this.editingIndex,this.editingIndex=-1,this.editDraft="")}commitEdit(restoreFocus){if(this.liveDisabled){this.discardTransientState(!1);return}const index=this.editingIndex;if(index<0)return;const previousValue=this.value[index],next=this.editDraft.trim();if(previousValue===void 0||!next||next===previousValue||!this.allowDuplicates&&this.value.some((token,i)=>i!==index&&token===next)){restoreFocus&&(this.focusTokenPending=index),this.editingIndex=-1,this.editDraft="";return}this.emit("lr-token-edit",{value:next,previousValue,index},{cancelable:!0}).defaultPrevented||(restoreFocus&&(this.focusTokenPending=index),this.editingIndex=-1,this.editDraft="",this.updateValue(this.value.map((token,i)=>i===index?next:token)))}moveRovingFocus(index){if(!this.value.length)return;const clamped=Math.min(Math.max(index,0),this.value.length-1);this.rovingIndex=clamped,this.focusTokenPending=clamped}onTokenKeyDown(event,index){if(this.liveDisabled)return;const rtl=this.effectiveDirection==="rtl",forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft";event.key==="Enter"||event.key===" "||event.key==="F2"?(event.preventDefault(),this.startEdit(index)):event.key===forward?(event.preventDefault(),this.moveRovingFocus(index+1)):event.key===backward?(event.preventDefault(),this.moveRovingFocus(index-1)):event.key==="Home"?(event.preventDefault(),this.moveRovingFocus(0)):event.key==="End"&&(event.preventDefault(),this.moveRovingFocus(this.value.length-1))}stopInternalChange(event){event.stopPropagation()}formResetCallback(){this.restoreLiveValueFromDefault(),this.discardTransientState(!0),this.rovingIndex=0,this.touched=!1,this.syncValidity()}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=[...this._defaultValue]}finally{this.settingDefaultValue=!1}this._valueDirty=!1}formStateRestoreCallback(state2,_mode){this.value=readStringArrayFormDataState(state2),this.discardTransientState(!0),this.rovingIndex=0,this.touched=!1,this.syncValidity()}updated(changed){if(super.updated(changed),this.syncExternalDescription(),this.focusEditorPending){this.focusEditorPending=!1;const editor=this.renderRoot?.querySelector('[part="token-editor"]');editor?.focus(),editor?.select()}if(this.focusTokenPending>=0){const index=this.focusTokenPending;this.focusTokenPending=-1;const label=this.renderRoot?.querySelectorAll('[part="token-label"]')?.[index];label?.focus(),label?.scrollIntoView({block:"nearest",inline:"nearest"})}const pending=this.tokenFocusRepairPending;if(this.tokenFocusRepairPending=void 0,pending){const token=[...this.renderRoot.querySelectorAll('[part~="token"]')][pending.index],target=(pending.surface==="remove"?token?.querySelector('[part~="remove"]'):token?.querySelector('[part~="token-label"]'))??token?.querySelector('[part~="remove"]')??this.inputEl??null;applyComposedFocusRepair(pending.repair,target)&&target?.scrollIntoView({block:"nearest",inline:"nearest"})}}renderRemoveButton(token,index){return html`<button
2
2
  part="remove"
3
3
  type="button"
4
4
  aria-label=${this.localize("removeWithContext",void 0,{label:token})}
@@ -33,7 +33,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
33
33
  @keydown=${event=>this.onTokenKeyDown(event,index)}
34
34
  >${token}</span
35
35
  >${this.renderRemoveButton(token,index)}</span
36
- >`}render(){const hasLabel=this.hasLabelSlot||this.label.length>0,hasAccessibleLabel=this.hasAttribute("aria-label")||!!this.accessibleLabel,hasHint=this.hasHintSlot||this.hint.length>0,hasError=this.hasErrorSlot||this.errorText.length>0,described=[hasHint?this.hintId:"",hasError?this.errorId:""].filter(Boolean).join(" ")||nothing;return html`<div part="form-control">
36
+ >`}render(){const hasLabel=this.hasLabelSlot||(this.label??"").length>0,hasAccessibleLabel=this.hasAttribute("aria-label")||!!this.accessibleLabel,hasHint=this.hasHintSlot||(this.hint??"").length>0,hasError=this.hasErrorSlot||(this.errorText??"").length>0,described=[hasHint?this.hintId:"",hasError?this.errorId:""].filter(Boolean).join(" ")||nothing;return html`<div part="form-control">
37
37
  <label
38
38
  part="form-control-label"
39
39
  ?hidden=${!hasLabel}
@@ -1 +1 @@
1
- import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/form-control.styles.js";const styles=css` :host { display: block; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; --_lr-token-input-min-input-inline-size: var(--lr-size-4rem); --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-xs); --_lr-token-input-font-size: var(--lr-font-size-md-sm); --_lr-token-input-token-padding: var(--lr-space-2xs) var(--lr-space-xs); --_lr-token-input-gap: var(--lr-space-xs); --_lr-token-input-token-gap: var(--lr-space-2xs); --_lr-token-input-radius: var(--lr-radius); --_lr-token-input-control-min-height: var(--lr-form-control-height); } :host([pill]) { --_lr-token-input-radius: var(--lr-radius-pill); } :host([size="2xs"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-size-0-0625rem); --_lr-token-input-font-size: var(--lr-font-size-2xs); --_lr-token-input-token-padding: 0 var(--lr-space-2xs); } :host([size="xs"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-size-0-125rem); --_lr-token-input-font-size: var(--lr-font-size-xs); --_lr-token-input-token-padding: var(--lr-size-1px) var(--lr-space-2xs); } :host([size="s"]), :host([size="small"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-xs); --_lr-token-input-font-size: var(--lr-font-size-sm); --_lr-token-input-token-padding: var(--lr-space-2xs) var(--lr-space-xs); } :host([size="l"]), :host([size="large"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-m); --_lr-token-input-font-size: var(--lr-font-size-lg); --_lr-token-input-token-padding: var(--lr-space-xs) var(--lr-space-s); } :host([size="xl"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-l); --_lr-token-input-font-size: var(--lr-font-size-xl); --_lr-token-input-token-padding: var(--lr-space-s) var(--lr-space-m); } [part="form-control"] { display: grid; min-inline-size: 0; max-inline-size: 100%; gap: var(--lr-token-input-gap, var(--_lr-token-input-gap)); } [part="form-control-label"] { color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); } :host([required]) [part="form-control-label"] > span[aria-hidden="true"] { display: none; } ${formControlRequiredMarker} [part='input-wrapper'] { display: flex; flex-wrap: wrap; min-inline-size: 0; max-inline-size: 100%; overflow-x: hidden; overflow-y: auto; align-items: center; gap: var(--lr-token-input-gap, var(--_lr-token-input-gap)); min-block-size: var( --lr-token-input-control-height, var( --lr-token-input-control-min-height, var(--_lr-token-input-control-min-height) ) ); block-size: var(--lr-token-input-control-height, auto); padding: var(--lr-token-input-padding, var(--_lr-token-input-padding)); font-size: var( --lr-token-input-font-size, var(--_lr-token-input-font-size) ); border: var(--lr-border-width-thin) solid var(--lr-color-border); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); background: var(--lr-color-surface); } [part="input-wrapper"]:focus-within { border-color: var( --lr-token-input-focus-border-color, var(--lr-color-brand) ); outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } [part="input"] { flex: 1 1 var(--lr-token-input-input-inline-size, var(--lr-size-8rem)); min-inline-size: var( --lr-token-input-min-input-inline-size, var(--_lr-token-input-min-input-inline-size) ); padding-block: 0; border: 0; outline: 0; background: transparent; color: var(--lr-color-text); font: inherit; } [part="input"]::placeholder { color: var(--lr-color-text-quiet); } [part="start"], [part="end"] { flex: 0 0 auto; display: inline-flex; align-items: center; color: var(--lr-color-text-quiet); } [part="start"][hidden], [part="end"][hidden] { display: none; } [part="token"] { display: inline-flex; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; align-items: center; gap: var(--lr-token-input-token-gap, var(--_lr-token-input-token-gap)); padding: var( --lr-token-input-token-padding, var(--_lr-token-input-token-padding) ); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); background: var(--lr-token-input-token-bg, var(--lr-color-brand-quiet)); color: var(--lr-color-text); } [part="token"] > span:first-child { min-inline-size: 0; } [part="token"] > span:first-child, [part="token-label"] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } [part="remove"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-inline-size: var(--lr-icon-button-size); min-block-size: var(--lr-icon-button-size); border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; } [part="remove"]:hover { background: var( --lr-token-input-remove-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ); } [part="remove"]:active { background: var( --lr-token-input-remove-pressed-bg, color-mix( in oklab, var( --lr-token-input-remove-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ), var(--lr-color-mix-partner) var(--lr-color-mix-active) ) ); } [part="remove"]:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } [part="token-label"] { min-inline-size: var(--lr-icon-button-size); min-block-size: var(--lr-icon-button-size); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); cursor: pointer; } :host(:where(:not(:disabled))) [part="token-label"]:hover { background: var( --lr-token-input-edit-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ); } :host(:where(:not(:disabled))) [part="token-label"]:active { background: var( --lr-token-input-edit-pressed-bg, color-mix( in oklab, var( --lr-token-input-edit-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ), var(--lr-color-mix-partner) var(--lr-color-mix-active) ) ); } [part="token-label"]:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } :host(:disabled) [part="token-label"] { cursor: default; } [part="token-editor"] { inline-size: var(--lr-token-input-editor-inline-size, var(--lr-size-6rem)); max-inline-size: 100%; border: 0; outline: 0; padding: 0; background: transparent; color: inherit; font: inherit; } [part="token-editor"]::placeholder { color: var(--lr-color-text-quiet); } [part="hint"], [part="error"] { color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-sm); } [part="error"] { color: var(--lr-color-danger); } :host([data-invalid]) [part="input-wrapper"] { border-color: var( --lr-token-input-invalid-border-color, var(--lr-color-danger) ); } :host(:disabled) { opacity: var(--lr-opacity-disabled); } [part="form-control-label"], [part="hint"], [part="error"] { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; } `;export{styles};
1
+ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/form-control.styles.js";const styles=css` :host { display: block; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; --_lr-token-input-min-input-inline-size: var(--lr-size-4rem); --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-xs); --_lr-token-input-font-size: var(--lr-font-size-md-sm); --_lr-token-input-token-padding: var(--lr-space-2xs) var(--lr-space-xs); --_lr-token-input-gap: var(--lr-space-xs); --_lr-token-input-token-gap: var(--lr-space-2xs); --_lr-token-input-radius: var(--lr-radius); --_lr-token-input-control-min-height: var(--lr-form-control-height); } :host([pill]) { --_lr-token-input-radius: var(--lr-radius-pill); } :host([size="2xs"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-size-0-0625rem); --_lr-token-input-font-size: var(--lr-font-size-2xs); --_lr-token-input-token-padding: 0 var(--lr-space-2xs); } :host([size="xs"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-size-0-125rem); --_lr-token-input-font-size: var(--lr-font-size-xs); --_lr-token-input-token-padding: var(--lr-size-1px) var(--lr-space-2xs); } :host([size="s"]), :host([size="small"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-xs); --_lr-token-input-font-size: var(--lr-font-size-sm); --_lr-token-input-token-padding: var(--lr-space-2xs) var(--lr-space-xs); } :host([size="l"]), :host([size="large"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-m); --_lr-token-input-font-size: var(--lr-font-size-lg); --_lr-token-input-token-padding: var(--lr-space-xs) var(--lr-space-s); } :host([size="xl"]) { --_lr-token-input-padding: var(--lr-form-control-padding-block) var(--lr-space-l); --_lr-token-input-font-size: var(--lr-font-size-xl); --_lr-token-input-token-padding: var(--lr-space-s) var(--lr-space-m); } [part="form-control"] { display: grid; min-inline-size: 0; max-inline-size: 100%; gap: var(--lr-token-input-gap, var(--_lr-token-input-gap)); } [part="form-control-label"] { color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); } :host([required]) [part="form-control-label"] > span[aria-hidden="true"] { display: none; } ${formControlRequiredMarker} [part='input-wrapper'] { display: flex; flex-wrap: wrap; min-inline-size: 0; max-inline-size: 100%; overflow-x: hidden; overflow-y: auto; align-items: center; gap: var(--lr-token-input-gap, var(--_lr-token-input-gap)); min-block-size: var( --lr-token-input-control-height, var( --lr-token-input-control-min-height, var(--_lr-token-input-control-min-height) ) ); block-size: var(--lr-token-input-control-height, auto); padding: var(--lr-token-input-padding, var(--_lr-token-input-padding)); font-size: var( --lr-token-input-font-size, var(--_lr-token-input-font-size) ); border: var(--lr-border-width-thin) solid var(--lr-color-border); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); background: var(--lr-color-surface); } [part="input-wrapper"]:focus-within { border-color: var( --lr-token-input-focus-border-color, var(--lr-color-brand) ); outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } [part="input"] { flex: 1 1 var(--lr-token-input-input-inline-size, var(--lr-size-8rem)); min-inline-size: var( --lr-token-input-min-input-inline-size, var(--_lr-token-input-min-input-inline-size) ); padding-block: 0; border: 0; outline: 0; background: transparent; color: var(--lr-color-text); font: inherit; } [part="input"]::placeholder { color: var(--lr-color-text-quiet); } [part="start"], [part="end"] { flex: 0 0 auto; display: inline-flex; align-items: center; color: var(--lr-color-text-quiet); } [part="start"][hidden], [part="end"][hidden] { display: none; } [part="token"] { display: inline-flex; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; align-items: center; gap: var(--lr-token-input-token-gap, var(--_lr-token-input-token-gap)); padding: var( --lr-token-input-token-padding, var(--_lr-token-input-token-padding) ); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); background: var(--lr-token-input-token-bg, var(--lr-color-brand-quiet)); color: var(--lr-color-text); } [part="token"] > span:first-child { min-inline-size: 0; } [part="token"] > span:first-child, [part="token-label"] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } [part="remove"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-inline-size: var(--lr-icon-button-size); min-block-size: var(--lr-icon-button-size); border: 0; padding: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; } [part="remove"]:hover { background: var( --lr-token-input-remove-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ); } [part="remove"]:active { background: var( --lr-token-input-remove-pressed-bg, color-mix( in oklab, var( --lr-token-input-remove-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ), var(--lr-color-mix-partner) var(--lr-color-mix-active) ) ); } [part="remove"]:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } [part="token-label"] { align-content: center; min-inline-size: var(--lr-icon-button-size); min-block-size: var(--lr-icon-button-size); border-radius: var(--lr-token-input-radius, var(--_lr-token-input-radius)); cursor: pointer; } :host(:where(:not(:disabled))) [part="token-label"]:hover { background: var( --lr-token-input-edit-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ); } :host(:where(:not(:disabled))) [part="token-label"]:active { background: var( --lr-token-input-edit-pressed-bg, color-mix( in oklab, var( --lr-token-input-edit-hover-bg, var(--lr-token-input-action-hover-bg, var(--lr-color-brand-quiet)) ), var(--lr-color-mix-partner) var(--lr-color-mix-active) ) ); } [part="token-label"]:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: var(--lr-focus-ring-offset); } :host(:disabled) [part="token-label"] { cursor: default; } [part="token-editor"] { inline-size: var(--lr-token-input-editor-inline-size, var(--lr-size-6rem)); max-inline-size: 100%; border: 0; outline: 0; padding: 0; background: transparent; color: inherit; font: inherit; } [part="token-editor"]::placeholder { color: var(--lr-color-text-quiet); } [part="hint"], [part="error"] { color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-sm); } [part="error"] { color: var(--lr-color-danger); } :host([data-invalid]) [part="input-wrapper"] { border-color: var( --lr-token-input-invalid-border-color, var(--lr-color-danger) ); } :host(:disabled) { opacity: var(--lr-opacity-disabled); } [part="form-control-label"], [part="hint"], [part="error"] { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; } `;export{styles};
@@ -82,14 +82,16 @@ export declare function computeAppRailMode(iconOnlyMatches:boolean,mobileMatches
82
82
  * @csspart nav - The wrapper around the default (nav items) slot.
83
83
  * @csspart footer - The wrapper around the `footer` slot.
84
84
  * @csspart toggle - The mobile hamburger/close toggle button. Hidden via
85
- * CSS outside `'mobile'` mode, or entirely via `hideToggle`.
85
+ * CSS outside `'mobile'` mode, or entirely via `hideToggle`; it inherits the rail's typography
86
+ * and its glyph scales at 1em.
86
87
  * @csspart backdrop - The mobile overlay's scrim. Only rendered while open.
87
88
  * @csspart panel - The mobile overlay's floating panel — see the class doc
88
89
  * for why it's the same element as `base`, never both at once.
89
90
  * @csspart resizer - The `resizable` opt-in's drag handle -- its interactive hit target, sized to
90
91
  * the shared minimum tappable size (`--lr-icon-button-size`), independent of the slimmer
91
- * visible line rendered by its `resizer-track` child. Only rendered while `resizable` and `mode`
92
- * is `'full'`.
92
+ * visible line rendered by its `resizer-track` child. Its numeric ARIA range remains in CSS
93
+ * pixels while `aria-valuetext` reports the current width through the effective locale. Only
94
+ * rendered while `resizable` and `mode` is `'full'`.
93
95
  * @csspart resizer-track - The resizer's slim visible drag line, centered inside `[part="resizer"]`'s
94
96
  * larger hit target (mirrors `<lr-swatch-picker>`'s `[part="swatch"]`/`[part="swatch-fill"]`
95
97
  * split). Colors on hover/focus the same way the whole handle previously did.
@@ -181,7 +183,9 @@ hideToggle:boolean;
181
183
  * handle (pointer-drag and `ArrowLeft`/`ArrowRight` keyboard stepping, RTL-aware) clamped to
182
184
  * `[minRailWidthPx, maxRailWidthPx]`. Set `storageKey` to persist the fields selected by
183
185
  * `persist`; otherwise listen for `lr-rail-resize` and persist its committed `widthPx` yourself.
184
- * Call `preventDefault()` on `lr-rail-resize-request` to keep the current width. `false` (the
186
+ * Call `preventDefault()` on `lr-rail-resize-request` to keep the current width. A request
187
+ * listener that disables resizing, leaves full mode, or disconnects the rail also cancels the
188
+ * pending proposal without overwriting listener state. `false` (the
185
189
  * default) renders no resizer and leaves the fixed-width `--lr-app-rail-width` CSS token exactly
186
190
  * as before this property existed. */
187
191
  resizable:boolean;
@@ -248,7 +252,7 @@ private get safeMaxRailWidthPx();
248
252
  * `[safeMinRailWidthPx, safeMaxRailWidthPx]` here -- a NaN/negative/out-of-bounds direct
249
253
  * assignment would otherwise reach `updated()`'s inline-size write and this resizer's own
250
254
  * `aria-valuenow` exactly as given. */
251
- private get effectiveRailWidthPx();private get storageFullKey();private get persistFields();
255
+ private get effectiveRailWidthPx();private resizeValueText;private get storageFullKey();private get persistFields();
252
256
  /** Restore the selected persisted fields. Runs once, before the first render. Effective `mode`
253
257
  * remains breakpoint-derived; only the optional non-mobile `preferredMode` input is restorable. */
254
258
  private loadPersisted;private persistState;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;private activateMobileOverlay;private deactivateMobileOverlay;private setupMediaQueries;private teardownMediaQueries;private onIconOnlyChange;private onMobileChange;private applyComputedMode;private setEffectiveMode;private setOpen;private onToggleClick;private onBackdropClick;private onNavItemClick;private onHeaderSlotChange;private onFooterSlotChange;private onNavSlotChange;private onResizerPointerDown;private onResizerPointerMove;private onResizerPointerUp;private endResizerGesture;
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay,composedContains,deepActiveElement}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{tag}from"../../../internal/prefix.js";import{isRtl}from"../../../internal/rtl.js";import{finiteRange}from"../../../internal/numbers.js";import{readPersistedState,writePersistedState}from"../../../internal/persisted-state.js";import{styles}from"./app-rail.styles.js";import"./app-rail-item.class.js";import{LYRA_DEFAULT_closeNavigation,LYRA_DEFAULT_navigation,LYRA_DEFAULT_openNavigation,LYRA_DEFAULT_resizeNavigation}from"../../../internal/default-strings.generated.js";const APP_RAIL_PERSIST_FIELDS=new Set(["open","width","preferred-mode"]);function menuIcon(){return svg`
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay,composedContains,deepActiveElement}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{tag}from"../../../internal/prefix.js";import{isRtl}from"../../../internal/rtl.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{readPersistedState,writePersistedState}from"../../../internal/persisted-state.js";import{styles}from"./app-rail.styles.js";import"./app-rail-item.class.js";import{LYRA_DEFAULT_closeNavigation,LYRA_DEFAULT_navigation,LYRA_DEFAULT_openNavigation,LYRA_DEFAULT_resizeNavigation,LYRA_DEFAULT_resizeValuePixels}from"../../../internal/default-strings.generated.js";const APP_RAIL_PERSIST_FIELDS=new Set(["open","width","preferred-mode"]);function menuIcon(){return svg`
2
2
  <svg
3
3
  width="1em"
4
4
  height="1em"
@@ -15,7 +15,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
15
15
  <line x1="4" y1="12" x2="20" y2="12"></line>
16
16
  <line x1="4" y1="17" x2="20" y2="17"></line>
17
17
  </svg>
18
- `}function computeAppRailMode(iconOnlyMatches,mobileMatches,preferredMode){return mobileMatches?"mobile":preferredMode||(iconOnlyMatches?"icon-only":"full")}class LyraAppRail extends LyraElement{constructor(){super(...arguments),this.iconOnlyBreakpoint="960px",this.mobileBreakpoint="600px",this.open=!1,this.accessibleLabel=null,this.hideToggle=!1,this.resizable=!1,this.persist="open width",this.minRailWidthPx=190,this.maxRailWidthPx=440,this._dragging=!1,this.hasHeaderSlot=!1,this.hasFooterSlot=!1,this.persistReady=!1,this._mode="full",this.forced=!1,this.iconOnlyMatches=!1,this.mobileMatches=!1,this.overlayActive=!1,this.justOpened=!1,this.recoverInlineFocusAfterResponsiveClose=!1,this.navId=nextId("app-rail-nav"),this.resizeStartX=0,this.resizeStartWidth=0,this.resizeGestureChanged=!1,this.managedItems=new Set,this.onIconOnlyChange=e=>{this.iconOnlyMatches=e.matches,this.forced||this.applyComputedMode()},this.onMobileChange=e=>{this.mobileMatches=e.matches,this.forced||this.applyComputedMode()},this.onToggleClick=e=>{this.open||(this.explicitTrigger=e.currentTarget),this.setOpen(!this.open)},this.onBackdropClick=()=>{this.overlayHandle?.dismissBackdrop()},this.onNavItemClick=()=>{this.overlayActive&&this.setOpen(!1)},this.onHeaderSlotChange=e=>{this.hasHeaderSlot=e.target.assignedElements({flatten:!0}).length>0},this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onNavSlotChange=()=>{this.syncSlottedItems()},this.onResizerPointerDown=e=>{if(!e.isPrimary||e.button!==0||!this.resizable||this._mode!=="full"||this.resizePointerId!==void 0)return;const resizer=e.currentTarget,ownerWindow=resizer.ownerDocument.defaultView;ownerWindow&&(this.resizePointerId=e.pointerId,this.resizeOwnerWindow=ownerWindow,this.resizeStartX=e.clientX,this.resizeStartWidth=this.effectiveRailWidthPx,this.resizeGestureChanged=!1,resizer.setPointerCapture(e.pointerId),ownerWindow.addEventListener("pointermove",this.onResizerPointerMove),ownerWindow.addEventListener("pointerup",this.onResizerPointerUp),ownerWindow.addEventListener("pointercancel",this.onResizerPointerUp),ownerWindow.addEventListener("lostpointercapture",this.onResizerPointerUp),this.setDragging(!0))},this.onResizerPointerMove=e=>{if(e.pointerId!==this.resizePointerId)return;if(!this.resizable||this._mode!=="full"){this.endResizerGesture();return}let delta=e.clientX-this.resizeStartX;isRtl(this)&&(delta=-delta);const next=Math.min(this.safeMaxRailWidthPx,Math.max(this.safeMinRailWidthPx,this.resizeStartWidth+delta));this.requestRailResize(next,!1)},this.onResizerPointerUp=e=>{e.pointerId===this.resizePointerId&&this.endResizerGesture(e.type==="pointerup")},this.onResizerKeyDown=e=>{const rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft",step=8;if(e.key===forwardKey){const next=Math.min(this.safeMaxRailWidthPx,this.effectiveRailWidthPx+step);next!==this.effectiveRailWidthPx&&(e.preventDefault(),this.requestRailResize(next))}else if(e.key===backwardKey){const next=Math.max(this.safeMinRailWidthPx,this.effectiveRailWidthPx-step);next!==this.effectiveRailWidthPx&&(e.preventDefault(),this.requestRailResize(next))}}}static{this.defaultStrings={...super.defaultStrings,closeNavigation:LYRA_DEFAULT_closeNavigation,navigation:LYRA_DEFAULT_navigation,openNavigation:LYRA_DEFAULT_openNavigation,resizeNavigation:LYRA_DEFAULT_resizeNavigation}}static{this.knownUnobservedAttributes=["mode","dragging"]}static{this.styles=[LyraElement.styles,styles]}get forceMode(){return this._forceMode}set forceMode(next){if(next!=null&&next!=="auto"&&next!=="full"&&next!=="icon-only")return;const old=this._forceMode;if(this._forceMode=next??void 0,this.requestUpdate("forceMode",old),next==null||next==="auto"){if(!this.forced)return;this.forced=!1,this.applyComputedMode();return}this.forced=!0,this.setEffectiveMode(next)}get dragging(){return this._dragging}setDragging(next){this._dragging=next,this.toggleAttribute("dragging",next)}syncSlottedItems(){const slot=this.shadowRoot?.querySelector('[part="nav"] > slot'),itemTag=tag("app-rail-item"),railTag=tag("app-rail"),next=new Set((slot?.assignedElements({flatten:!0})??[]).filter(item=>item.localName===itemTag));for(const item of this.managedItems){if(next.has(item))continue;const newOwner=item.closest(railTag);newOwner&&newOwner!==this&&item.parentElement===newOwner&&!item.hasAttribute("slot")?item.toggleAttribute("icon-only",newOwner.mode==="icon-only"):item.removeAttribute("icon-only")}for(const item of next)item.toggleAttribute("icon-only",this._mode==="icon-only");this.managedItems=next}get mode(){return this._mode}get safeMinRailWidthPx(){return finiteRange(this.minRailWidthPx,190,0)}get safeMaxRailWidthPx(){return Math.max(this.safeMinRailWidthPx,finiteRange(this.maxRailWidthPx,440,0))}get effectiveRailWidthPx(){return this.railWidthPx!=null?finiteRange(this.railWidthPx,this.safeMinRailWidthPx,this.safeMinRailWidthPx,this.safeMaxRailWidthPx):this.baseEl?.getBoundingClientRect().width??240}get storageFullKey(){return this.storageKey?`lr-app-rail:${this.storageKey}`:void 0}get persistFields(){const persist=typeof this.persist=="string"?this.persist:"";return new Set(persist.split(/\s+/).filter(field=>APP_RAIL_PERSIST_FIELDS.has(field)))}loadPersisted(){const parsed=readPersistedState(this.storageFullKey,v=>typeof v=="object"&&v!==null);if(!parsed)return!1;const fields=this.persistFields;return fields.has("open")&&typeof parsed.open=="boolean"&&(this.open=parsed.open),fields.has("width")&&typeof parsed.railWidthPx=="number"&&Number.isFinite(parsed.railWidthPx)&&(this.railWidthPx=parsed.railWidthPx),fields.has("preferred-mode")&&(parsed.preferredMode==="full"||parsed.preferredMode==="icon-only")?(this.preferredMode=parsed.preferredMode,!0):!1}persistState(){const fields=this.persistFields;if(fields.size===0)return;const state2={};fields.has("open")&&(state2.open=this.open),fields.has("width")&&(state2.railWidthPx=this.railWidthPx),fields.has("preferred-mode")&&(state2.preferredMode=this.preferredMode??null),writePersistedState(this.storageFullKey,state2)}willUpdate(changed){if(super.willUpdate(changed),(changed.has("resizable")||changed.has("mode"))&&(!this.resizable||this._mode!=="full")&&this.endResizerGesture(),this.hasUpdated||(this.hasHeaderSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="header"),this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer"),this.loadPersisted()&&!this.forced&&(this._mode=computeAppRailMode(this.iconOnlyMatches,this.mobileMatches,this.preferredMode))),this.hasUpdated&&(changed.has("iconOnlyBreakpoint")||changed.has("mobileBreakpoint"))&&(this.teardownMediaQueries(),this.setupMediaQueries()),this.hasUpdated&&changed.has("preferredMode")&&!this.forced&&this.applyComputedMode(),changed.has("open")||changed.has("mode")){const next=this._mode==="mobile"&&this.open;next!==this.overlayActive&&(this.overlayActive=next,next?(this.justOpened=!0,this.activateMobileOverlay()):this.deactivateMobileOverlay(this._mode==="mobile"))}}updated(changed){if(super.updated(changed),this._lastReflectedMode!==this._mode&&(this._lastReflectedMode=this._mode,this.setAttribute("mode",this._mode)),this.syncSlottedItems(),this.recoverInlineFocusAfterResponsiveClose){this.recoverInlineFocusAfterResponsiveClose=!1;const active=deepActiveElement(this.ownerDocument);this.baseEl&&!composedContains(this.baseEl,active)&&this.baseEl.focus()}this.justOpened&&(this.justOpened=!1,this.overlayHandle?.focusInitial()),this.persistReady&&(changed.has("open")||changed.has("railWidthPx")&&!this.dragging||changed.has("preferredMode")||changed.has("persist"))&&this.persistState(),this.persistReady=!0,(changed.has("railWidthPx")||changed.has("resizable")||changed.has("mode")||!this.hasUpdated)&&this.baseEl&&(this.resizable&&this.railWidthPx!=null&&this._mode==="full"?this.baseEl.style.setProperty("inline-size",`${this.effectiveRailWidthPx}px`):this.baseEl.style.removeProperty("inline-size"))}connectedCallback(){super.connectedCallback(),this.setupMediaQueries(),this.hasUpdated&&this._mode==="mobile"&&this.open&&(this.overlayHandle?.isActive()?this.overlayHandle.resume():this.activateMobileOverlay(),queueMicrotask(()=>this.overlayHandle?.focusInitial())),this.hasUpdated&&queueMicrotask(()=>{this.isConnected&&this.syncSlottedItems()})}disconnectedCallback(){super.disconnectedCallback(),this.teardownMediaQueries(),this.overlayHandle?.suspend(),this.endResizerGesture()}adoptedCallback(){super.adoptedCallback(),this.teardownMediaQueries(),this.endResizerGesture()}activateMobileOverlay(){this.overlayHandle=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.setOpen(!1),onBackdrop:()=>this.setOpen(!1),restoreFocusTo:this.explicitTrigger,lockScroll:!0,suspendWhenUnrendered:!0}),this.explicitTrigger=void 0}deactivateMobileOverlay(restoreFocus=!0){this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0}setupMediaQueries(){if(!this.isConnected)return;const view=this.ownerDocument.defaultView;if(!view?.matchMedia)return;const iconOnlyQuery=view.matchMedia(`(max-width: ${this.iconOnlyBreakpoint})`),mobileQuery=view.matchMedia(`(max-width: ${this.mobileBreakpoint})`),iconOnlyListener=event=>{this.mqIconOnly!==iconOnlyQuery||!this.isConnected||this.ownerDocument.defaultView!==view||this.onIconOnlyChange(event)},mobileListener=event=>{this.mqMobile!==mobileQuery||!this.isConnected||this.ownerDocument.defaultView!==view||this.onMobileChange(event)};this.mqIconOnly=iconOnlyQuery,this.mqMobile=mobileQuery,this.mqIconOnlyListener=iconOnlyListener,this.mqMobileListener=mobileListener,iconOnlyQuery.addEventListener("change",iconOnlyListener),mobileQuery.addEventListener("change",mobileListener),this.iconOnlyMatches=iconOnlyQuery.matches,this.mobileMatches=mobileQuery.matches,this.forced||this.applyComputedMode()}teardownMediaQueries(){this.mqIconOnly&&this.mqIconOnlyListener&&this.mqIconOnly.removeEventListener("change",this.mqIconOnlyListener),this.mqMobile&&this.mqMobileListener&&this.mqMobile.removeEventListener("change",this.mqMobileListener),this.mqIconOnly=void 0,this.mqMobile=void 0,this.mqIconOnlyListener=void 0,this.mqMobileListener=void 0}applyComputedMode(){this.setEffectiveMode(computeAppRailMode(this.iconOnlyMatches,this.mobileMatches,this.preferredMode))}setEffectiveMode(next){if(this._mode===next)return;const old=this._mode;old==="mobile"&&next!=="mobile"&&this.open&&(this.recoverInlineFocusAfterResponsiveClose=!0),this._mode=next,this.requestUpdate("mode",old),this.emit("lr-mode-change",{mode:next}),next!=="mobile"&&this.open&&this.setOpen(!1,{force:!0})}setOpen(next,options){if(this.open===next)return;if(options?.force){this.open=next,this.emit("lr-toggle",{open:next});return}const mode=this._mode,open=this.open;this.emit("lr-toggle",{open:next},{cancelable:!0}).defaultPrevented||this._mode!==mode||this.open!==open||(this.open=next)}endResizerGesture(commit=!1){const ownerWindow=this.resizeOwnerWindow,changed=this.resizeGestureChanged,widthPx=this.effectiveRailWidthPx;this.resizePointerId=void 0,this.resizeOwnerWindow=void 0,this.resizeGestureChanged=!1,this.setDragging(!1),ownerWindow?.removeEventListener("pointermove",this.onResizerPointerMove),ownerWindow?.removeEventListener("pointerup",this.onResizerPointerUp),ownerWindow?.removeEventListener("pointercancel",this.onResizerPointerUp),ownerWindow?.removeEventListener("lostpointercapture",this.onResizerPointerUp),commit&&changed&&(this.emit("lr-rail-resize",{widthPx}),this.persistReady&&this.persistState())}requestRailResize(next,commit=!0){return next===this.effectiveRailWidthPx||this.emit("lr-rail-resize-request",{widthPx:next},{cancelable:!0}).defaultPrevented?!1:(this.railWidthPx=next,commit?this.emit("lr-rail-resize",{widthPx:next}):this.resizeGestureChanged=!0,!0)}render(){const mobile=this._mode==="mobile";return html`
18
+ `}function computeAppRailMode(iconOnlyMatches,mobileMatches,preferredMode){return mobileMatches?"mobile":preferredMode||(iconOnlyMatches?"icon-only":"full")}class LyraAppRail extends LyraElement{constructor(){super(...arguments),this.iconOnlyBreakpoint="960px",this.mobileBreakpoint="600px",this.open=!1,this.accessibleLabel=null,this.hideToggle=!1,this.resizable=!1,this.persist="open width",this.minRailWidthPx=190,this.maxRailWidthPx=440,this._dragging=!1,this.hasHeaderSlot=!1,this.hasFooterSlot=!1,this.persistReady=!1,this._mode="full",this.forced=!1,this.iconOnlyMatches=!1,this.mobileMatches=!1,this.overlayActive=!1,this.justOpened=!1,this.recoverInlineFocusAfterResponsiveClose=!1,this.navId=nextId("app-rail-nav"),this.resizeStartX=0,this.resizeStartWidth=0,this.resizeGestureChanged=!1,this.managedItems=new Set,this.onIconOnlyChange=e=>{this.iconOnlyMatches=e.matches,this.forced||this.applyComputedMode()},this.onMobileChange=e=>{this.mobileMatches=e.matches,this.forced||this.applyComputedMode()},this.onToggleClick=e=>{this.open||(this.explicitTrigger=e.currentTarget),this.setOpen(!this.open)},this.onBackdropClick=()=>{this.overlayHandle?.dismissBackdrop()},this.onNavItemClick=()=>{this.overlayActive&&this.setOpen(!1)},this.onHeaderSlotChange=e=>{this.hasHeaderSlot=e.target.assignedElements({flatten:!0}).length>0},this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onNavSlotChange=()=>{this.syncSlottedItems()},this.onResizerPointerDown=e=>{if(!e.isPrimary||e.button!==0||!this.resizable||this._mode!=="full"||this.resizePointerId!==void 0)return;const resizer=e.currentTarget,ownerWindow=resizer.ownerDocument.defaultView;ownerWindow&&(this.resizePointerId=e.pointerId,this.resizeOwnerWindow=ownerWindow,this.resizeStartX=e.clientX,this.resizeStartWidth=this.effectiveRailWidthPx,this.resizeGestureChanged=!1,resizer.setPointerCapture(e.pointerId),ownerWindow.addEventListener("pointermove",this.onResizerPointerMove),ownerWindow.addEventListener("pointerup",this.onResizerPointerUp),ownerWindow.addEventListener("pointercancel",this.onResizerPointerUp),ownerWindow.addEventListener("lostpointercapture",this.onResizerPointerUp),this.setDragging(!0))},this.onResizerPointerMove=e=>{if(e.pointerId!==this.resizePointerId)return;if(!this.resizable||this._mode!=="full"){this.endResizerGesture();return}let delta=e.clientX-this.resizeStartX;isRtl(this)&&(delta=-delta);const next=Math.min(this.safeMaxRailWidthPx,Math.max(this.safeMinRailWidthPx,this.resizeStartWidth+delta));this.requestRailResize(next,!1)},this.onResizerPointerUp=e=>{e.pointerId===this.resizePointerId&&this.endResizerGesture(e.type==="pointerup")},this.onResizerKeyDown=e=>{const rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft",step=8;if(e.key===forwardKey){const next=Math.min(this.safeMaxRailWidthPx,this.effectiveRailWidthPx+step);next!==this.effectiveRailWidthPx&&(e.preventDefault(),this.requestRailResize(next))}else if(e.key===backwardKey){const next=Math.max(this.safeMinRailWidthPx,this.effectiveRailWidthPx-step);next!==this.effectiveRailWidthPx&&(e.preventDefault(),this.requestRailResize(next))}}}static{this.defaultStrings={...super.defaultStrings,closeNavigation:LYRA_DEFAULT_closeNavigation,navigation:LYRA_DEFAULT_navigation,openNavigation:LYRA_DEFAULT_openNavigation,resizeNavigation:LYRA_DEFAULT_resizeNavigation,resizeValuePixels:LYRA_DEFAULT_resizeValuePixels}}static{this.knownUnobservedAttributes=["mode","dragging"]}static{this.styles=[LyraElement.styles,styles]}get forceMode(){return this._forceMode}set forceMode(next){if(next!=null&&next!=="auto"&&next!=="full"&&next!=="icon-only")return;const old=this._forceMode;if(this._forceMode=next??void 0,this.requestUpdate("forceMode",old),next==null||next==="auto"){if(!this.forced)return;this.forced=!1,this.applyComputedMode();return}this.forced=!0,this.setEffectiveMode(next)}get dragging(){return this._dragging}setDragging(next){this._dragging=next,this.toggleAttribute("dragging",next)}syncSlottedItems(){const slot=this.shadowRoot?.querySelector('[part="nav"] > slot'),itemTag=tag("app-rail-item"),railTag=tag("app-rail"),next=new Set((slot?.assignedElements({flatten:!0})??[]).filter(item=>item.localName===itemTag));for(const item of this.managedItems){if(next.has(item))continue;const newOwner=item.closest(railTag);newOwner&&newOwner!==this&&item.parentElement===newOwner&&!item.hasAttribute("slot")?item.toggleAttribute("icon-only",newOwner.mode==="icon-only"):item.removeAttribute("icon-only")}for(const item of next)item.toggleAttribute("icon-only",this._mode==="icon-only");this.managedItems=next}get mode(){return this._mode}get safeMinRailWidthPx(){return finiteRange(this.minRailWidthPx,190,0)}get safeMaxRailWidthPx(){return Math.max(this.safeMinRailWidthPx,finiteRange(this.maxRailWidthPx,440,0))}get effectiveRailWidthPx(){return this.railWidthPx!=null?finiteRange(this.railWidthPx,this.safeMinRailWidthPx,this.safeMinRailWidthPx,this.safeMaxRailWidthPx):this.baseEl?.getBoundingClientRect().width??240}resizeValueText(widthPx){return this.localize("resizeValuePixels",void 0,{value:getNumberFormat(this.effectiveLocale).format(Math.round(widthPx))})}get storageFullKey(){return this.storageKey?`lr-app-rail:${this.storageKey}`:void 0}get persistFields(){const persist=typeof this.persist=="string"?this.persist:"";return new Set(persist.split(/\s+/).filter(field=>APP_RAIL_PERSIST_FIELDS.has(field)))}loadPersisted(){const parsed=readPersistedState(this.storageFullKey,v=>typeof v=="object"&&v!==null);if(!parsed)return!1;const fields=this.persistFields;return fields.has("open")&&typeof parsed.open=="boolean"&&(this.open=parsed.open),fields.has("width")&&typeof parsed.railWidthPx=="number"&&Number.isFinite(parsed.railWidthPx)&&(this.railWidthPx=parsed.railWidthPx),fields.has("preferred-mode")&&(parsed.preferredMode==="full"||parsed.preferredMode==="icon-only")?(this.preferredMode=parsed.preferredMode,!0):!1}persistState(){const fields=this.persistFields;if(fields.size===0)return;const state2={};fields.has("open")&&(state2.open=this.open),fields.has("width")&&(state2.railWidthPx=this.railWidthPx),fields.has("preferred-mode")&&(state2.preferredMode=this.preferredMode??null),writePersistedState(this.storageFullKey,state2)}willUpdate(changed){if(super.willUpdate(changed),(changed.has("resizable")||changed.has("mode"))&&(!this.resizable||this._mode!=="full")&&this.endResizerGesture(),this.hasUpdated||(this.hasHeaderSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="header"),this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer"),this.loadPersisted()&&!this.forced&&(this._mode=computeAppRailMode(this.iconOnlyMatches,this.mobileMatches,this.preferredMode))),this.hasUpdated&&(changed.has("iconOnlyBreakpoint")||changed.has("mobileBreakpoint"))&&(this.teardownMediaQueries(),this.setupMediaQueries()),this.hasUpdated&&changed.has("preferredMode")&&!this.forced&&this.applyComputedMode(),changed.has("open")||changed.has("mode")){const next=this._mode==="mobile"&&this.open;next!==this.overlayActive&&(this.overlayActive=next,next?(this.justOpened=!0,this.activateMobileOverlay()):this.deactivateMobileOverlay(this._mode==="mobile"))}}updated(changed){if(super.updated(changed),this._lastReflectedMode!==this._mode&&(this._lastReflectedMode=this._mode,this.setAttribute("mode",this._mode)),this.syncSlottedItems(),this.recoverInlineFocusAfterResponsiveClose){this.recoverInlineFocusAfterResponsiveClose=!1;const active=deepActiveElement(this.ownerDocument);this.baseEl&&!composedContains(this.baseEl,active)&&this.baseEl.focus()}this.justOpened&&(this.justOpened=!1,this.overlayHandle?.focusInitial()),this.persistReady&&(changed.has("open")||changed.has("railWidthPx")&&!this.dragging||changed.has("preferredMode")||changed.has("persist"))&&this.persistState(),this.persistReady=!0,(changed.has("railWidthPx")||changed.has("resizable")||changed.has("mode")||!this.hasUpdated)&&this.baseEl&&(this.resizable&&this.railWidthPx!=null&&this._mode==="full"?this.baseEl.style.setProperty("inline-size",`${this.effectiveRailWidthPx}px`):this.baseEl.style.removeProperty("inline-size"))}connectedCallback(){super.connectedCallback(),this.setupMediaQueries(),this.hasUpdated&&this._mode==="mobile"&&this.open&&(this.overlayHandle?.isActive()?this.overlayHandle.resume():this.activateMobileOverlay(),queueMicrotask(()=>this.overlayHandle?.focusInitial())),this.hasUpdated&&queueMicrotask(()=>{this.isConnected&&this.syncSlottedItems()})}disconnectedCallback(){super.disconnectedCallback(),this.teardownMediaQueries(),this.overlayHandle?.suspend(),this.endResizerGesture()}adoptedCallback(){super.adoptedCallback(),this.teardownMediaQueries(),this.endResizerGesture()}activateMobileOverlay(){this.overlayHandle=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>this.setOpen(!1),onBackdrop:()=>this.setOpen(!1),restoreFocusTo:this.explicitTrigger,lockScroll:!0,suspendWhenUnrendered:!0}),this.explicitTrigger=void 0}deactivateMobileOverlay(restoreFocus=!0){this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0}setupMediaQueries(){if(!this.isConnected)return;const view=this.ownerDocument.defaultView;if(!view?.matchMedia)return;const iconOnlyQuery=view.matchMedia(`(max-width: ${this.iconOnlyBreakpoint})`),mobileQuery=view.matchMedia(`(max-width: ${this.mobileBreakpoint})`),iconOnlyListener=event=>{this.mqIconOnly!==iconOnlyQuery||!this.isConnected||this.ownerDocument.defaultView!==view||this.onIconOnlyChange(event)},mobileListener=event=>{this.mqMobile!==mobileQuery||!this.isConnected||this.ownerDocument.defaultView!==view||this.onMobileChange(event)};this.mqIconOnly=iconOnlyQuery,this.mqMobile=mobileQuery,this.mqIconOnlyListener=iconOnlyListener,this.mqMobileListener=mobileListener,iconOnlyQuery.addEventListener("change",iconOnlyListener),mobileQuery.addEventListener("change",mobileListener),this.iconOnlyMatches=iconOnlyQuery.matches,this.mobileMatches=mobileQuery.matches,this.forced||this.applyComputedMode()}teardownMediaQueries(){this.mqIconOnly&&this.mqIconOnlyListener&&this.mqIconOnly.removeEventListener("change",this.mqIconOnlyListener),this.mqMobile&&this.mqMobileListener&&this.mqMobile.removeEventListener("change",this.mqMobileListener),this.mqIconOnly=void 0,this.mqMobile=void 0,this.mqIconOnlyListener=void 0,this.mqMobileListener=void 0}applyComputedMode(){this.setEffectiveMode(computeAppRailMode(this.iconOnlyMatches,this.mobileMatches,this.preferredMode))}setEffectiveMode(next){if(this._mode===next)return;const old=this._mode;old==="mobile"&&next!=="mobile"&&this.open&&(this.recoverInlineFocusAfterResponsiveClose=!0),this._mode=next,this.requestUpdate("mode",old),this.emit("lr-mode-change",{mode:next}),next!=="mobile"&&this.open&&this.setOpen(!1,{force:!0})}setOpen(next,options){if(this.open===next)return;if(options?.force){this.open=next,this.emit("lr-toggle",{open:next});return}const mode=this._mode,open=this.open;this.emit("lr-toggle",{open:next},{cancelable:!0}).defaultPrevented||this._mode!==mode||this.open!==open||(this.open=next)}endResizerGesture(commit=!1){const ownerWindow=this.resizeOwnerWindow,changed=this.resizeGestureChanged,widthPx=this.effectiveRailWidthPx;this.resizePointerId=void 0,this.resizeOwnerWindow=void 0,this.resizeGestureChanged=!1,this.setDragging(!1),ownerWindow?.removeEventListener("pointermove",this.onResizerPointerMove),ownerWindow?.removeEventListener("pointerup",this.onResizerPointerUp),ownerWindow?.removeEventListener("pointercancel",this.onResizerPointerUp),ownerWindow?.removeEventListener("lostpointercapture",this.onResizerPointerUp),commit&&changed&&(this.emit("lr-rail-resize",{widthPx}),this.persistReady&&this.persistState())}requestRailResize(next,commit=!0){if(!this.resizable||this._mode!=="full"||!this.isConnected||next===this.effectiveRailWidthPx)return!1;const event=this.emit("lr-rail-resize-request",{widthPx:next},{cancelable:!0});return!this.resizable||this._mode!=="full"||!this.isConnected?(this.endResizerGesture(),!1):event.defaultPrevented?!1:(this.railWidthPx=next,commit?this.emit("lr-rail-resize",{widthPx:next}):this.resizeGestureChanged=!0,!0)}render(){const mobile=this._mode==="mobile",railWidthPx=this.effectiveRailWidthPx;return html`
19
19
  <button
20
20
  part="toggle"
21
21
  type="button"
@@ -51,7 +51,8 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
51
51
  role="separator"
52
52
  aria-orientation="vertical"
53
53
  aria-label=${this.localize("resizeNavigation")}
54
- aria-valuenow=${Math.round(this.effectiveRailWidthPx)}
54
+ aria-valuenow=${Math.round(railWidthPx)}
55
+ aria-valuetext=${this.resizeValueText(railWidthPx)}
55
56
  aria-valuemin=${this.safeMinRailWidthPx}
56
57
  aria-valuemax=${this.safeMaxRailWidthPx}
57
58
  tabindex="0"
@@ -1 +1 @@
1
- import{css}from"lit";const styles=css`:host{--_lr-app-rail-width:var(--lr-size-15rem);--_lr-app-rail-icon-width:var(--lr-size-4rem);--_lr-app-rail-mobile-width:var(--lr-size-18rem);--_lr-app-rail-overlay-color:var(--lr-color-overlay);display:block;position:relative}[part=toggle]{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);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer;justify-content:center;align-items:center;display:none}:host([mode=mobile]) [part=toggle]{display:inline-flex}:host([hide-toggle][mode=mobile]) [part=toggle]{display:none}:host([mode=mobile][open]) [part=toggle]{z-index:calc(var(--lr-overlay-stack-index,var(--lr-layer-modal)) + 2);position:relative}[part=toggle]:hover{background:var(--lr-app-rail-toggle-hover-bg,var(--lr-color-brand-quiet));color:var(--lr-app-rail-toggle-hover-color,var(--lr-color-brand))}[part=toggle]:active{background:var(--lr-app-rail-toggle-active-bg,color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)));color:var(--lr-app-rail-toggle-active-color,var(--lr-color-brand))}[part=toggle]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:var(--lr-focus-ring-offset)}[part=backdrop]{z-index:var(--lr-overlay-stack-index,var(--lr-layer-modal));background:var(--lr-app-rail-overlay-color,var(--_lr-app-rail-overlay-color));position:fixed;inset:0}[part=base]{inline-size:var(--lr-app-rail-width,var(--_lr-app-rail-width));border-inline-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);block-size:100%;transition:inline-size var(--lr-transition-base);flex-direction:column;padding-block-end:var(--lr-safe-area-bottom);display:flex;position:relative;overflow:clip auto}:host([mode=icon-only]) [part=base]{inline-size:var(--lr-app-rail-icon-width,var(--_lr-app-rail-icon-width))}:host([dragging]) [part=base]{transition:none}[part=resizer]{inline-size:var(--lr-icon-button-size);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);cursor:col-resize;touch-action:none;background:0 0;justify-content:center;align-items:stretch;display:flex;position:absolute;inset-block:0;inset-inline-end:calc(var(--lr-icon-button-size) * -.5)}[part=resizer-track]{inline-size:var(--lr-size-3px);transition:background-color var(--lr-transition-fast);background:0 0}[part=resizer]:hover [part=resizer-track]{background:var(--lr-app-rail-resizer-hover-bg,var(--lr-color-brand))}[part=resizer]:active [part=resizer-track]{background:var(--lr-app-rail-resizer-active-bg,color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active)))}[part=resizer]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:var(--lr-focus-ring-offset)}[part=panel]{z-index:calc(var(--lr-overlay-stack-index,var(--lr-layer-modal)) + 1);inline-size:min(var(--lr-app-rail-mobile-width,var(--_lr-app-rail-mobile-width)), 85vw);background:var(--lr-color-surface-overlay);box-shadow:var(--lr-shadow-l);transition:transform var(--lr-transition-base);flex-direction:column;padding-block-end:var(--lr-safe-area-bottom);display:flex;position:fixed;inset-block:0;inset-inline-start:0;overflow:clip auto;transform:translate(-100%)}:host(:dir(rtl)) [part=panel]{transform:translate(100%)}:host([mode=mobile][open]) [part=panel]{transform:none}[part=header]{padding:var(--lr-space-m);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border)}[part=header][hidden]{display:none}[part=footer]{padding:var(--lr-space-m);border-block-start:var(--lr-border-width-thin) solid var(--lr-color-border)}[part=footer][hidden]{display:none}[part=nav]{padding:var(--lr-space-s);gap:var(--lr-space-xs);flex-direction:column;flex:auto;display:flex;overflow:clip auto}:host([mode=icon-only]) [part=nav]{align-items:center}:host([mode=icon-only]) ::slotted(lr-app-rail-item){max-inline-size:var(--lr-app-rail-icon-width,var(--_lr-app-rail-icon-width))}@media (prefers-reduced-motion:reduce){[part=base],[part=panel],[part=resizer-track]{transition:none!important}}`;export{styles};
1
+ import{css}from"lit";const styles=css`:host{--_lr-app-rail-width:var(--lr-size-15rem);--_lr-app-rail-icon-width:var(--lr-size-4rem);--_lr-app-rail-mobile-width:var(--lr-size-18rem);--_lr-app-rail-overlay-color:var(--lr-color-overlay);display:block;position:relative}[part=toggle]{font:inherit;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);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer;justify-content:center;align-items:center;display:none}:host([mode=mobile]) [part=toggle]{display:inline-flex}:host([hide-toggle][mode=mobile]) [part=toggle]{display:none}:host([mode=mobile][open]) [part=toggle]{z-index:calc(var(--lr-overlay-stack-index,var(--lr-layer-modal)) + 2);position:relative}[part=toggle]:hover{background:var(--lr-app-rail-toggle-hover-bg,var(--lr-color-brand-quiet));color:var(--lr-app-rail-toggle-hover-color,var(--lr-color-brand))}[part=toggle]:active{background:var(--lr-app-rail-toggle-active-bg,color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)));color:var(--lr-app-rail-toggle-active-color,var(--lr-color-brand))}[part=toggle]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:var(--lr-focus-ring-offset)}[part=backdrop]{z-index:var(--lr-overlay-stack-index,var(--lr-layer-modal));background:var(--lr-app-rail-overlay-color,var(--_lr-app-rail-overlay-color));position:fixed;inset:0}[part=base]{inline-size:var(--lr-app-rail-width,var(--_lr-app-rail-width));border-inline-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);block-size:100%;transition:inline-size var(--lr-transition-base);flex-direction:column;padding-block-end:var(--lr-safe-area-bottom);display:flex;position:relative;overflow:clip auto}:host([mode=icon-only]) [part=base]{inline-size:var(--lr-app-rail-icon-width,var(--_lr-app-rail-icon-width))}:host([dragging]) [part=base]{transition:none}[part=resizer]{inline-size:var(--lr-icon-button-size);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);cursor:col-resize;touch-action:none;background:0 0;justify-content:center;align-items:stretch;display:flex;position:absolute;inset-block:0;inset-inline-end:calc(var(--lr-icon-button-size) * -.5)}[part=resizer-track]{inline-size:var(--lr-size-3px);transition:background-color var(--lr-transition-fast);background:0 0}[part=resizer]:hover [part=resizer-track]{background:var(--lr-app-rail-resizer-hover-bg,var(--lr-color-brand))}[part=resizer]:active [part=resizer-track]{background:var(--lr-app-rail-resizer-active-bg,color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active)))}[part=resizer]:focus-visible{outline:var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);outline-offset:var(--lr-focus-ring-offset)}[part=panel]{z-index:calc(var(--lr-overlay-stack-index,var(--lr-layer-modal)) + 1);inline-size:min(var(--lr-app-rail-mobile-width,var(--_lr-app-rail-mobile-width)), 85vw);background:var(--lr-color-surface-overlay);box-shadow:var(--lr-shadow-l);transition:transform var(--lr-transition-base);flex-direction:column;padding-block-end:var(--lr-safe-area-bottom);display:flex;position:fixed;inset-block:0;inset-inline-start:0;overflow:clip auto;transform:translate(-100%)}:host(:dir(rtl)) [part=panel]{transform:translate(100%)}:host([mode=mobile][open]) [part=panel]{transform:none}[part=header]{padding:var(--lr-space-m);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border)}[part=header][hidden]{display:none}[part=footer]{padding:var(--lr-space-m);border-block-start:var(--lr-border-width-thin) solid var(--lr-color-border)}[part=footer][hidden]{display:none}[part=nav]{padding:var(--lr-space-s);gap:var(--lr-space-xs);flex-direction:column;flex:auto;display:flex;overflow:clip auto}:host([mode=icon-only]) [part=nav]{align-items:center}:host([mode=icon-only]) ::slotted(lr-app-rail-item){max-inline-size:var(--lr-app-rail-icon-width,var(--_lr-app-rail-icon-width))}@media (prefers-reduced-motion:reduce){[part=base],[part=panel],[part=resizer-track]{transition:none!important}}`;export{styles};
@@ -33,7 +33,8 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
33
33
  * `current-slide` wins.
34
34
  * @csspart base - Compatibility name for the carousel landmark; use `carousel`.
35
35
  * @csspart carousel - The carousel landmark. It is the same node as `base`.
36
- * @csspart scroll-container - The keyboard-focusable scroll-snap viewport.
36
+ * @csspart scroll-container - The keyboard-focusable scroll-snap viewport. Arrow/Home/End
37
+ * navigation leaves descendant editors and interactive controls in charge of their own keys.
37
38
  * @csspart track - Lyra extension wrapping the slotted slides and eligible inert loop snapshots.
38
39
  * @csspart controls - Lyra extension wrapping enabled navigation and pagination.
39
40
  * @csspart navigation - The previous/next navigation wrapper.
@@ -95,4 +96,4 @@ goToSlide(index:number,behavior?:ScrollBehavior):void;
95
96
  /** Appends a carousel item. */
96
97
  addSlide(slide:LyraCarouselItem):void;
97
98
  /** Removes the carousel item at `index`. */
98
- removeSlide(index:number):void;private stopAutoplay;private restartAutoplay;private scrollPaddingStart;private axisOffsetOf;private scrollByAxis;private restingSlide;private alignToActiveSlide;private motionAwareScrollBehavior;private cancelScrollSettle;private onViewportScroll;private onViewportScrollEnd;private clearAlignment;private takeOverViewport;private settleScrolledSlide;private onViewportPointerEnter;private onViewportPointerLeave;private onViewportFocusIn;private onViewportFocusOut;private onViewportPointerDown;private pointerTargetsInteractiveContent;private onViewportPointerMove;private finishDrag;private cancelClickSuppression;private cancelDrag;private onViewportPointerUp;private onViewportPointerCancel;private onViewportLostPointerCapture;private onViewportClick;private onViewportKeyDown;private computedSlideBasis;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-carousel':LyraCarousel;}}
99
+ removeSlide(index:number):void;private stopAutoplay;private restartAutoplay;private scrollPaddingStart;private axisOffsetOf;private scrollByAxis;private restingSlide;private alignToActiveSlide;private motionAwareScrollBehavior;private cancelScrollSettle;private onViewportScroll;private onViewportScrollEnd;private clearAlignment;private takeOverViewport;private settleScrolledSlide;private onViewportPointerEnter;private onViewportPointerLeave;private onViewportFocusIn;private onViewportFocusOut;private onViewportPointerDown;private targetsInteractiveContent;private onViewportPointerMove;private finishDrag;private cancelClickSuppression;private cancelDrag;private onViewportPointerUp;private onViewportPointerCancel;private onViewportLostPointerCapture;private onViewportClick;private onViewportKeyDown;private computedSlideBasis;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-carousel':LyraCarousel;}}
@@ -1,4 +1,4 @@
1
- var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{isAccessibilitySubtreeExcluded,isAccessibilityVisible,isAccessibilityVisibilityHidden}from"../../../internal/accessibility-visibility.js";import{activeElementIn,deepActiveElementIn}from"../../../internal/active-element.js";import{composedAccessibilityText}from"../../../internal/announcement-text.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteDuration,finiteInteger}from"../../../internal/numbers.js";import{composedContains}from"../../../internal/overlay-manager.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{tag}from"../../../internal/prefix.js";import{styles}from"./carousel.styles.js";import{LYRA_DEFAULT_carousel,LYRA_DEFAULT_carouselGoTo,LYRA_DEFAULT_carouselIndicators,LYRA_DEFAULT_carouselLabel,LYRA_DEFAULT_carouselSlide,LYRA_DEFAULT_carouselSlideAnnouncement,LYRA_DEFAULT_carouselSlideAnnouncementSeparator,LYRA_DEFAULT_carouselSlidePosition,LYRA_DEFAULT_next,LYRA_DEFAULT_previous}from"../../../internal/default-strings.generated.js";const LOOP_SNAPSHOT_UNSAFE_TAGS=new Set(["audio","canvas","embed","form","iframe","img","input","link","object","picture","script","select","source","style","textarea","track","video"]),CAROUSEL_MANAGED_SLIDE_ATTRIBUTES=new Set(["aria-hidden","aria-label","aria-roledescription","hidden","inert","role"]),SLIDE_SNAPSHOT_KEYS=["hidden","inert","role","label","roleDescription","ariaHidden"];class LyraCarousel extends LyraElement{static{this.defaultStrings={...super.defaultStrings,carousel:LYRA_DEFAULT_carousel,carouselGoTo:LYRA_DEFAULT_carouselGoTo,carouselIndicators:LYRA_DEFAULT_carouselIndicators,carouselLabel:LYRA_DEFAULT_carouselLabel,carouselSlide:LYRA_DEFAULT_carouselSlide,carouselSlideAnnouncement:LYRA_DEFAULT_carouselSlideAnnouncement,carouselSlideAnnouncementSeparator:LYRA_DEFAULT_carouselSlideAnnouncementSeparator,carouselSlidePosition:LYRA_DEFAULT_carouselSlidePosition,next:LYRA_DEFAULT_next,previous:LYRA_DEFAULT_previous}}static{this.styles=[LyraElement.styles,styles]}static get observedAttributes(){return[...new Set([...super.observedAttributes,"currentslide"])]}get currentSlide(){return this._currentSlide}set currentSlide(value){this.setCurrentSlideState(value)}get pagination(){return this._pagination}set pagination(value){this.setPaginationState(!!value)}get slides(){return this._slides}constructor(){super(),this._currentSlide=0,this._pagination=!1,this._slides=0,this.loop=!1,this.autoplay=!1,this.autoplayInterval=3e3,this.navigation=!1,this.orientation="horizontal",this.mouseDragging=!1,this.slidesPerPage=1,this.slidesPerMove=1,this.hostAccessibleLabel=null,this.reduceMotion=!1,this.snapshots=new Map,this.appliedSnapshots=new WeakMap,this.adoptingScrolledSlide=!1,this.hasAlignedOnce=!1,this.loopClonesDirty=!0,this.pointerInteracting=!1,this.focusInteracting=!1,this.dragStartCoordinate=0,this.dragStartScroll=0,this.dragMoved=!1,this.suppressClick=!1,this.announcementsArmed=!1,this.changeOrigin="manual",this.manualPending=!1,this.observerGeneration=0,this.onMotionPreferenceChange=event=>{this.reduceMotion=event.matches,this.restartAutoplay(),this.requestUpdate()},this.onVisibilityChange=()=>{this.restartAutoplay()},this.onSlotChange=()=>{this.handleSlidesChanged()},this.onViewportScroll=()=>{this.cancelScrollSettle();const view=this.ownerDocument.defaultView;view&&(this.settleTimerWindow=view,this.settleTimer=view.setTimeout(this.settleScrolledSlide,120))},this.onViewportScrollEnd=()=>{this.cancelScrollSettle(),this.settleScrolledSlide()},this.settleScrolledSlide=()=>{if(this.settleTimer=void 0,this.settleTimerWindow=void 0,!this.isConnected)return;const viewport=this.viewport;if(!viewport)return;if(this.alignTarget){if(Math.abs(this.axisOffsetOf(this.alignTarget,viewport))>2)return;const cloneSide=this.alignTarget.dataset.carouselClone;if(cloneSide==="before"||cloneSide==="after"){const realSlide=this.slideElements()[this.alignIndex??-1];if(realSlide){this.alignTarget=realSlide,this.scrollByAxis(viewport,this.axisOffsetOf(realSlide,viewport),"instant");return}}this.clearAlignment();return}const resting=this.restingSlide();if(!resting)return;const changed=resting.index!==this.currentSlide;!changed&&!resting.cloneSide||(this.adoptingScrolledSlide=!0,changed&&(this.currentSlide=resting.index,this.emit("lr-slide-change",{index:resting.index,slide:this.slideElements()[resting.index]})),this.updateComplete.then(()=>{if(resting.cloneSide&&this.isConnected&&this.viewport){const realSlide=this.slideElements()[resting.index];realSlide&&this.scrollByAxis(this.viewport,this.axisOffsetOf(realSlide,this.viewport),"instant")}this.adoptingScrolledSlide=!1}))},this.onViewportPointerEnter=()=>{this.pointerInteracting=!0,this.restartAutoplay()},this.onViewportPointerLeave=()=>{this.dragPointerId===void 0&&(this.pointerInteracting=!1,this.restartAutoplay())},this.onViewportFocusIn=event=>{this.focusInteracting=!0;const slides=new Set(this.slideElements()),focusedSlide=event.composedPath().find(candidate=>candidate.nodeType===1&&slides.has(candidate));focusedSlide&&(this.lastFocusedSlide=focusedSlide),this.restartAutoplay()},this.onViewportFocusOut=()=>{this.queueOwnerMicrotask(()=>{if(!this.isConnected)return;const active=deepActiveElementIn(this.ownerDocument);this.lastFocusedSlide&&!composedContains(this.lastFocusedSlide,active)&&(this.lastFocusedSlide.isConnected||active!==null&&active!==this.ownerDocument.body)&&(this.lastFocusedSlide=void 0),this.focusInteracting=this.matches(":focus-within"),this.restartAutoplay()})},this.onViewportPointerDown=event=>{if(!this.mouseDragging||event.pointerType!=="mouse"||!event.isPrimary||event.button!==0||this.dragPointerId!==void 0||this.pointerTargetsInteractiveContent(event))return;this.takeOverViewport();const viewport=this.viewport;if(viewport){this.dragPointerId=event.pointerId,this.dragStartCoordinate=this.effectiveOrientation()==="vertical"?event.clientY:event.clientX,this.dragStartScroll=this.effectiveOrientation()==="vertical"?viewport.scrollTop:viewport.scrollLeft,this.dragMoved=!1,viewport.setAttribute("data-dragging","");try{viewport.setPointerCapture(event.pointerId)}catch{}this.restartAutoplay()}},this.onViewportPointerMove=event=>{if(event.pointerId!==this.dragPointerId)return;const viewport=this.viewport;if(!viewport)return;const delta=(this.effectiveOrientation()==="vertical"?event.clientY:event.clientX)-this.dragStartCoordinate;Math.abs(delta)>2&&(this.dragMoved=!0),this.dragMoved&&(event.preventDefault(),this.effectiveOrientation()==="vertical"?viewport.scrollTo({top:this.dragStartScroll-delta,behavior:"instant"}):viewport.scrollTo({left:this.dragStartScroll-delta,behavior:"instant"}))},this.onViewportPointerUp=event=>{this.finishDrag(event.pointerId,!1)},this.onViewportPointerCancel=event=>{this.finishDrag(event.pointerId,!0)},this.onViewportLostPointerCapture=event=>{this.finishDrag(event.pointerId,!0)},this.onViewportClick=event=>{this.suppressClick&&(event.preventDefault(),event.stopImmediatePropagation())},this.onViewportKeyDown=event=>{const vertical=this.effectiveOrientation()==="vertical",rtl=this.effectiveDirection==="rtl",forwardKey=vertical?"ArrowDown":rtl?"ArrowLeft":"ArrowRight",backwardKey=vertical?"ArrowUp":rtl?"ArrowRight":"ArrowLeft";event.key===forwardKey?(event.preventDefault(),this.next()):event.key===backwardKey?(event.preventDefault(),this.previous()):event.key==="Home"?(event.preventDefault(),this.goToSlide(0)):event.key==="End"&&(event.preventDefault(),this.goToSlide(this.loop?this.slideElements().length-1:this.maxStartIndex()))},this.requestUpdate("currentSlide",void 0),this.requestUpdate("pagination",void 0)}attributeChangedCallback(name,oldValue,newValue){if(name==="currentslide"){oldValue!==newValue&&(this.currentSlide=finiteInteger(Number(newValue??0),0));return}super.attributeChangedCallback(name,oldValue,newValue),name==="current-slide"&&newValue===null&&oldValue!==newValue&&this.hasAttribute("currentslide")&&(this.currentSlide=finiteInteger(Number(this.getAttribute("currentslide")??0),0))}connectedCallback(){this.hasAttribute("current-slide")&&(this.currentSlide=finiteInteger(Number(this.getAttribute("current-slide")??0),0)),super.connectedCallback();const view=this.ownerDocument.defaultView;this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.announcementsArmed=!1,this.manualPending=!1,this.mediaQuery=typeof view?.matchMedia=="function"?view.matchMedia("(prefers-reduced-motion: reduce)"):void 0,this.reduceMotion=this.mediaQuery?.matches??!1,this.mediaQuery?.addEventListener("change",this.onMotionPreferenceChange),this.visibilityDocument=this.ownerDocument,this.visibilityDocument.addEventListener("visibilitychange",this.onVisibilityChange),this.armSlideContentObserver(),this.restartAutoplay(),this.hasUpdated&&this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()})}disconnectedCallback(){this.announcementSink?.release(),this.announcementSink=void 0,this.announcementsArmed=!1,this.manualPending=!1,this.cancelDrag(!1),this.stopAutoplay(),this.cancelScrollSettle(),this.cancelClickSuppression(),this.suppressClick=!1,this.pointerInteracting=!1,this.focusInteracting=!1,this.hasAlignedOnce=!1,this.clearAlignment(),this.mediaQuery?.removeEventListener("change",this.onMotionPreferenceChange),this.mediaQuery=void 0,this.visibilityDocument?.removeEventListener("visibilitychange",this.onVisibilityChange),this.visibilityDocument=void 0,this.resetSlideContentObserver(),this.restoreSlides(),this.lastFocusedSlide=void 0,super.disconnectedCallback()}armSlideContentObserver(){const ownerDocument=this.ownerDocument,MutationObserverCtor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverCtor||!this.isConnected)return;this.resetSlideContentObserver();const generation=this.observerGeneration,observer=new MutationObserverCtor(records=>{this.observer!==observer||this.observerDocument!==ownerDocument||this.observerGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||!records.some(record=>{if(record.type!=="attributes")return!0;if(record.target===this)return!1;if(!CAROUSEL_MANAGED_SLIDE_ATTRIBUTES.has(record.attributeName??""))return!0;const slide=record.target,snapshot=this.snapshots.get(slide);return snapshot?this.adoptChanges(slide,snapshot):!1})||(this.loop&&(this.loopClonesDirty=!0),this.syncSlides(),this.requestUpdate())});this.observer=observer,this.observerDocument=ownerDocument,observer.observe(this,{attributes:!0,characterData:!0,childList:!0,subtree:!0})}resetSlideContentObserver(){this.observerGeneration+=1,this.observer?.disconnect(),this.observer=void 0,this.observerDocument=void 0}willUpdate(changed){if(super.willUpdate(changed),(changed.has("currentSlide")||changed.has("slidesPerPage"))&&this.slideSlot){const normalized=this.normalizedIndex();this.currentSlide!==normalized&&(this.currentSlide=normalized)}}updated(changed){super.updated(changed);const shouldAnnounceActivePage=this.announcementsArmed&&(this.manualPending||changed.has("slidesPerPage"));this.syncSlides(),(this.loopClonesDirty||changed.has("loop")||changed.has("slidesPerPage")||changed.has("slidesPerMove"))&&(this.syncLoopClones(),this.loopClonesDirty=!1),(changed.has("autoplay")||changed.has("autoplayInterval")||changed.has("loop")||changed.has("slidesPerPage"))&&this.restartAutoplay(),!this.adoptingScrolledSlide&&(changed.has("currentSlide")||changed.has("slidesPerPage")||changed.has("orientation")||!this.hasAlignedOnce)&&this.alignToActiveSlide(),this.hasAlignedOnce=!0,shouldAnnounceActivePage&&this.announceActivePage(),this.manualPending=!1,this.announcementsArmed=!0}setCurrentSlideState(value){const old=this._currentSlide,next=finiteInteger(value,0);old!==next&&(this._currentSlide=next,this.changeOrigin==="manual"&&(this.manualPending=!0),this.requestUpdate("currentSlide",old))}setPaginationState(value){const old=this._pagination;old!==value&&(this._pagination=value,this.requestUpdate("pagination",old))}queueOwnerMicrotask(callback){const view=this.ownerDocument.defaultView;view?view.queueMicrotask(callback):queueMicrotask(callback)}effectiveOrientation(){return this.orientation==="vertical"?"vertical":"horizontal"}slideElements(){return(this.slideSlot?.assignedElements({flatten:!0})??[]).filter(element=>element.nodeType===1&&element.namespaceURI==="http://www.w3.org/1999/xhtml")}pageSize(count=this.slideElements().length){return finiteInteger(this.slidesPerPage,1,1,Math.max(1,count))}moveSize(count=this.slideElements().length){return finiteInteger(this.slidesPerMove,1,1,this.pageSize(count))}maxStartIndex(count=this.slideElements().length){return Math.max(0,count-this.pageSize(count))}normalizedIndex(count=this.slideElements().length){if(count===0)return 0;const max=this.loop?count-1:this.maxStartIndex(count);return finiteInteger(this.currentSlide,0,0,max)}pageTargets(count=this.slideElements().length){if(count===0)return[];if(this.loop)return Array.from({length:count},(_unused,index)=>index);const max=this.maxStartIndex(count),move=this.moveSize(count),targets=[0];for(let target=move;target<max;target+=move)targets.push(target);return max>0&&targets.at(-1)!==max&&targets.push(max),targets}visibleIndices(count,current){const visible=new Set,perPage=this.pageSize(count);for(let offset=0;offset<perPage;offset+=1){const index=this.loop?(current+offset)%count:current+offset;index>=0&&index<count&&visible.add(index)}return visible}announceActivePage(){if(!isAccessibilityVisible(this))return;const slides=this.slideElements();if(slides.length===0)return;const current=this.normalizedIndex(slides.length),visible=this.visibleIndices(slides.length,current),format=getNumberFormat(this.effectiveLocale),messages=slides.flatMap((slide,index)=>{if(!visible.has(index))return[];if(isAccessibilitySubtreeExcluded(slide))return[];const slideTextVisible=!isAccessibilityVisibilityHidden(slide),authoredLabel=slideTextVisible?this.snapshots.get(slide)?.label?.trim():"";if(authoredLabel)return[authoredLabel];const position=this.localize("carouselSlidePosition",void 0,{index:format.format(index+1),total:format.format(slides.length)}),content=Array.from(slide.childNodes).map(node=>composedAccessibilityText(node,slideTextVisible)).join(" ").replace(/\s+/g," ").trim();return!slideTextVisible&&!content?[]:[content&&content!==position?this.localize("carouselSlideAnnouncement",void 0,{position,content}):position]});this.announcementSink?.announce(messages.join(this.localize("carouselSlideAnnouncementSeparator")))}restoreAttribute(slide,name,value){value===null?slide.removeAttribute(name):slide.setAttribute(name,value)}snapshotSlide(slide){return{hidden:slide.hidden,inert:slide.inert,role:slide.getAttribute("role"),label:slide.getAttribute("aria-label"),roleDescription:slide.getAttribute("aria-roledescription"),ariaHidden:slide.getAttribute("aria-hidden")}}adoptChanges(slide,snapshot){const applied=this.appliedSnapshots.get(slide);if(!applied)return!1;const current=this.snapshotSlide(slide);let changed=!1;for(const key of SLIDE_SNAPSHOT_KEYS)current[key]!==applied[key]&&(snapshot[key]=current[key],changed=!0);return changed}restoreSlide(slide,snapshot){slide.hidden=snapshot.hidden,slide.inert=snapshot.inert,this.restoreAttribute(slide,"role",snapshot.role),this.restoreAttribute(slide,"aria-label",snapshot.label),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription),this.restoreAttribute(slide,"aria-hidden",snapshot.ariaHidden)}restoreSlides(){for(const[slide,snapshot]of this.snapshots)this.adoptChanges(slide,snapshot),this.restoreSlide(slide,snapshot);this.snapshots.clear()}syncSlides(){const slides=this.slideElements(),assigned=new Set(slides);for(const[slide,snapshot]of this.snapshots)this.adoptChanges(slide,snapshot)&&(this.loopClonesDirty=!0),assigned.has(slide)||(this.restoreSlide(slide,snapshot),this.snapshots.delete(slide));const current=this.normalizedIndex(slides.length);this.currentSlide!==current&&(this.currentSlide=current);const visible=this.visibleIndices(slides.length,current);this.repairFocusBeforeSlideExclusion(slides,visible);const format=getNumberFormat(this.effectiveLocale);slides.forEach((slide,slideIndex)=>{const existing=this.snapshots.get(slide),snapshot=existing??this.snapshotSlide(slide);existing||this.snapshots.set(slide,snapshot),slide.localName===tag("carousel-item")?(this.restoreAttribute(slide,"role",snapshot.role??"group"),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription??this.localize("carouselSlide")),this.restoreAttribute(slide,"aria-label",snapshot.label??this.localize("carouselSlidePosition",void 0,{index:format.format(slideIndex+1),total:format.format(slides.length)}))):(this.restoreAttribute(slide,"role",snapshot.role),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription),this.restoreAttribute(slide,"aria-label",snapshot.label)),slide.hidden=snapshot.hidden,visible.has(slideIndex)?(slide.inert=snapshot.inert,this.restoreAttribute(slide,"aria-hidden",snapshot.ariaHidden)):(slide.inert=!0,slide.setAttribute("aria-hidden","true")),this.appliedSnapshots.set(slide,this.snapshotSlide(slide))})}repairFocusBeforeSlideExclusion(slides,visible){const active=deepActiveElementIn(this.ownerDocument),focusedIndex=slides.findIndex(slide=>composedContains(slide,active)),focusedSlideWillBeExcluded=focusedIndex>=0&&!visible.has(focusedIndex),focusedSlideWasRemoved=focusedIndex<0&&this.lastFocusedSlide!==void 0&&!this.lastFocusedSlide.isConnected&&(active===null||active===this.ownerDocument.body);!focusedSlideWillBeExcluded&&!focusedSlideWasRemoved||(this.viewport?.focus(),this.lastFocusedSlide=void 0)}handleSlidesChanged(){const count=this.slideElements().length,active=activeElementIn(this.shadowRoot);if(active?.matches('[part~="pagination-item"]')){const children=active.parentElement.children,pages=this.pageTargets(count).length;(pages<2||[...children].indexOf(active)>=pages)&&(pages>1?children[pages-1]:this.viewport)?.focus()}else active?.matches('[part~="navigation-button"]')&&(!this.navigation||count<=this.pageSize(count))&&this.viewport?.focus();if(this._slides!==count){const previous=this._slides;this._slides=count,this.requestUpdate("slides",previous)}this.loopClonesDirty=!0,this.syncSlides(),this.syncLoopClones(),this.loopClonesDirty=!1,this.restartAutoplay(),this.requestUpdate()}prepareClone(original,index,side){if([original,...Array.from(original.querySelectorAll("*"))].some(element=>element.namespaceURI!=="http://www.w3.org/1999/xhtml"||element.localName.includes("-")||LOOP_SNAPSHOT_UNSAFE_TAGS.has(element.localName)))return;const clone=original.cloneNode(!0),descendants=[clone,...Array.from(clone.querySelectorAll("*"))];for(const descendant of descendants)descendant.removeAttribute("id"),descendant.removeAttribute("name"),descendant.removeAttribute("form"),descendant.removeAttribute("for"),descendant.removeAttribute("aria-controls"),descendant.removeAttribute("aria-describedby"),descendant.removeAttribute("aria-labelledby");return clone.removeAttribute("slot"),clone.dataset.carouselClone=side,clone.dataset.carouselIndex=String(index),clone.inert=!0,clone.setAttribute("aria-hidden","true"),clone}syncLoopClones(){const before=this.beforeClones,after=this.afterClones;if(!before||!after)return;before.replaceChildren(),after.replaceChildren();const slides=this.slideElements();if(!this.loop||slides.length<2)return;const cloneCount=Math.min(slides.length,Math.max(this.pageSize(slides.length),this.moveSize(slides.length))),beforeStart=slides.length-cloneCount;for(let index=beforeStart;index<slides.length;index+=1){const clone=this.prepareClone(slides[index],index,"before");clone&&before.append(clone)}for(let index=0;index<cloneCount;index+=1){const clone=this.prepareClone(slides[index],index,"after");clone&&after.append(clone)}}cloneFor(side,index){return(side==="before"?this.beforeClones:this.afterClones)?.querySelector(`[data-carousel-index="${index}"]`)??void 0}changeTo(index,behavior="smooth",origin="manual"){const slides=this.slideElements(),count=slides.length;if(count===0||!Number.isFinite(index))return;const requested=Math.trunc(index);let next,loopSide;if(this.loop?(next=(requested%count+count)%count,requested<0?loopSide="before":requested>=count&&(loopSide="after")):next=Math.min(this.maxStartIndex(count),Math.max(0,requested)),next===this.currentSlide)return;this.requestedBehavior=behavior,this.loopSide=loopSide;const previousOrigin=this.changeOrigin;this.changeOrigin=origin;try{this.currentSlide=next}finally{this.changeOrigin=previousOrigin}this.emit("lr-slide-change",{index:next,slide:slides[next]})}next(behavior="smooth"){this.changeTo(this.currentSlide+this.moveSize(),behavior)}previous(behavior="smooth"){this.changeTo(this.currentSlide-this.moveSize(),behavior)}goToSlide(index,behavior="smooth"){this.changeTo(index,behavior)}addSlide(slide){slide?.nodeType!==1||slide?.namespaceURI!=="http://www.w3.org/1999/xhtml"||(this.append(slide),this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()}))}removeSlide(index){if(!Number.isFinite(index))return;const target=this.slideElements()[Math.trunc(index)];target&&(target.remove(),this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()}))}stopAutoplay(){this.timer!==void 0&&this.timerWindow?.clearInterval(this.timer),this.timer=void 0,this.timerWindow=void 0}restartAutoplay(){this.stopAutoplay();const count=this.slideElements().length,doc=this.visibilityDocument??this.ownerDocument,view=doc.defaultView;if(!this.isConnected||!view||!this.autoplay||this.reduceMotion||this.pointerInteracting||this.focusInteracting||this.dragPointerId!==void 0||doc.visibilityState!=="visible"||count<=this.pageSize(count))return;const interval=finiteDuration(this.autoplayInterval,3e3,1e3);this.timerWindow=view,this.timer=view.setInterval(()=>{this.loop||this.currentSlide<this.maxStartIndex()?this.changeTo(this.currentSlide+this.moveSize(),"smooth","autoplay"):this.stopAutoplay()},interval)}scrollPaddingStart(){const rect=this.scrollHintProbe?.getBoundingClientRect();if(!rect)return 0;const pixels=this.effectiveOrientation()==="vertical"?rect.height:rect.width;return Number.isFinite(pixels)?pixels:0}axisOffsetOf(slide,viewport){const viewportRect=viewport.getBoundingClientRect(),slideRect=slide.getBoundingClientRect(),padding=this.scrollPaddingStart();return this.effectiveOrientation()==="vertical"?slideRect.top-(viewportRect.top+padding):this.effectiveDirection==="rtl"?slideRect.right-(viewportRect.right-padding):slideRect.left-(viewportRect.left+padding)}scrollByAxis(viewport,distance,behavior){this.effectiveOrientation()==="vertical"?viewport.scrollBy({top:distance,behavior}):viewport.scrollBy({left:distance,behavior})}restingSlide(){const viewport=this.viewport,slides=this.slideElements();if(!viewport||slides.length===0)return;const candidates=slides.map((element,index)=>({element,index}));for(const clone of this.shadowRoot?.querySelectorAll("[data-carousel-clone]")??[]){const index=Number(clone.dataset.carouselIndex),cloneSide=clone.dataset.carouselClone;Number.isInteger(index)&&index>=0&&index<slides.length&&(cloneSide==="before"||cloneSide==="after")&&candidates.push({element:clone,index,cloneSide})}let nearest,nearestDistance=Number.POSITIVE_INFINITY;for(const candidate of candidates){const distance=Math.abs(this.axisOffsetOf(candidate.element,viewport));distance<nearestDistance&&(nearestDistance=distance,nearest=candidate)}return nearest}alignToActiveSlide(){const viewport=this.viewport,targetIndex=this.normalizedIndex(),realSlide=this.slideElements()[targetIndex];if(!viewport||!realSlide)return;const loopSide=this.loopSide,requestedBehavior=this.requestedBehavior;this.loopSide=void 0,this.requestedBehavior=void 0;const target=loopSide?this.cloneFor(loopSide,targetIndex)??realSlide:realSlide,offset=this.axisOffsetOf(target,viewport);if(Math.round(offset)===0){this.clearAlignment();return}this.alignIndex=targetIndex,this.alignTarget=target;const behavior=this.motionAwareScrollBehavior(requestedBehavior??"smooth",!0);this.scrollByAxis(viewport,offset,behavior)}motionAwareScrollBehavior(requested,instantBeforeFirstAlignment=!1){return this.reduceMotion||instantBeforeFirstAlignment&&!this.hasAlignedOnce?"instant":requested}cancelScrollSettle(){this.settleTimer!==void 0&&this.settleTimerWindow?.clearTimeout(this.settleTimer),this.settleTimer=void 0,this.settleTimerWindow=void 0}clearAlignment(){this.alignTarget=void 0,this.alignIndex=void 0,this.loopSide=void 0,this.requestedBehavior=void 0}takeOverViewport(){this.clearAlignment()}pointerTargetsInteractiveContent(event){const slides=new Set(this.slideElements());for(const target of event.composedPath()){if(!(target instanceof Element)||target===this||target===this.viewport||slides.has(target))continue;const name=target.localName;if(name==="a"||name==="button"||name==="input"||name==="label"||name==="select"||name==="textarea"||target.hasAttribute("contenteditable")||name.includes("-")&&target.getRootNode()!==this.shadowRoot)return!0;const role=target.getAttribute("role")?.trim().toLowerCase();if(role&&["button","checkbox","combobox","link","radio","slider","spinbutton","switch","textbox"].includes(role))return!0}return!1}finishDrag(pointerId,canceled){if(pointerId!==this.dragPointerId)return;const viewport=this.viewport,moved=this.dragMoved;if(this.dragPointerId=void 0,this.dragMoved=!1,viewport?.removeAttribute("data-dragging"),viewport?.hasPointerCapture(pointerId))try{viewport.releasePointerCapture(pointerId)}catch{}if(moved){this.suppressClick=!0,this.cancelClickSuppression();const view=this.ownerDocument.defaultView;view?(this.clickTimerWindow=view,this.clickTimer=view.setTimeout(()=>{this.suppressClick=!1,this.clickTimer=void 0,this.clickTimerWindow=void 0},0)):this.suppressClick=!1}if(canceled&&viewport){const active=this.slideElements()[this.normalizedIndex()];active&&this.scrollByAxis(viewport,this.axisOffsetOf(active,viewport),this.motionAwareScrollBehavior("smooth"))}else canceled||this.onViewportScroll();this.matches(":hover")||(this.pointerInteracting=!1),this.restartAutoplay()}cancelClickSuppression(){this.clickTimer!==void 0&&this.clickTimerWindow?.clearTimeout(this.clickTimer),this.clickTimer=void 0,this.clickTimerWindow=void 0}cancelDrag(realign){this.dragPointerId!==void 0&&this.finishDrag(this.dragPointerId,realign)}computedSlideBasis(perPage){return perPage===1?"100%":`calc((100% - (${perPage-1} * var(--slide-gap, var(--lr-space-m)))) / ${perPage})`}render(){const count=this.slideElements().length,current=this.normalizedIndex(count),pageTargets=this.pageTargets(count),exactCurrentPage=pageTargets.indexOf(current),currentPage=exactCurrentPage>=0?exactCurrentPage:pageTargets.reduce((nearest,target,pageIndex)=>Math.abs(target-current)<Math.abs(pageTargets[nearest]-current)?pageIndex:nearest,0),hasNavigation=this.navigation&&count>this.pageSize(count),hasPagination=this.pagination&&pageTargets.length>1,label=this.hostAccessibleLabel!==null?this.hostAccessibleLabel:this.accessibleLabel==null?this.localize("carouselLabel"):this.accessibleLabel,numberFormat=getNumberFormat(this.effectiveLocale),orientation=this.effectiveOrientation(),perPage=this.pageSize(count);return html`<section
1
+ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{isAccessibilitySubtreeExcluded,isAccessibilityVisible,isAccessibilityVisibilityHidden}from"../../../internal/accessibility-visibility.js";import{activeElementIn,deepActiveElementIn}from"../../../internal/active-element.js";import{composedAccessibilityText}from"../../../internal/announcement-text.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteDuration,finiteInteger}from"../../../internal/numbers.js";import{composedContains}from"../../../internal/overlay-manager.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{tag}from"../../../internal/prefix.js";import{styles}from"./carousel.styles.js";import{LYRA_DEFAULT_carousel,LYRA_DEFAULT_carouselGoTo,LYRA_DEFAULT_carouselIndicators,LYRA_DEFAULT_carouselLabel,LYRA_DEFAULT_carouselSlide,LYRA_DEFAULT_carouselSlideAnnouncement,LYRA_DEFAULT_carouselSlideAnnouncementSeparator,LYRA_DEFAULT_carouselSlidePosition,LYRA_DEFAULT_next,LYRA_DEFAULT_previous}from"../../../internal/default-strings.generated.js";const LOOP_SNAPSHOT_UNSAFE_TAGS=new Set(["audio","canvas","embed","form","iframe","img","input","link","object","picture","script","select","source","style","textarea","track","video"]),CAROUSEL_MANAGED_SLIDE_ATTRIBUTES=new Set(["aria-hidden","aria-label","aria-roledescription","hidden","inert","role"]),SLIDE_SNAPSHOT_KEYS=["hidden","inert","role","label","roleDescription","ariaHidden"];class LyraCarousel extends LyraElement{static{this.defaultStrings={...super.defaultStrings,carousel:LYRA_DEFAULT_carousel,carouselGoTo:LYRA_DEFAULT_carouselGoTo,carouselIndicators:LYRA_DEFAULT_carouselIndicators,carouselLabel:LYRA_DEFAULT_carouselLabel,carouselSlide:LYRA_DEFAULT_carouselSlide,carouselSlideAnnouncement:LYRA_DEFAULT_carouselSlideAnnouncement,carouselSlideAnnouncementSeparator:LYRA_DEFAULT_carouselSlideAnnouncementSeparator,carouselSlidePosition:LYRA_DEFAULT_carouselSlidePosition,next:LYRA_DEFAULT_next,previous:LYRA_DEFAULT_previous}}static{this.styles=[LyraElement.styles,styles]}static get observedAttributes(){return[...new Set([...super.observedAttributes,"currentslide"])]}get currentSlide(){return this._currentSlide}set currentSlide(value){this.setCurrentSlideState(value)}get pagination(){return this._pagination}set pagination(value){this.setPaginationState(!!value)}get slides(){return this._slides}constructor(){super(),this._currentSlide=0,this._pagination=!1,this._slides=0,this.loop=!1,this.autoplay=!1,this.autoplayInterval=3e3,this.navigation=!1,this.orientation="horizontal",this.mouseDragging=!1,this.slidesPerPage=1,this.slidesPerMove=1,this.hostAccessibleLabel=null,this.reduceMotion=!1,this.snapshots=new Map,this.appliedSnapshots=new WeakMap,this.adoptingScrolledSlide=!1,this.hasAlignedOnce=!1,this.loopClonesDirty=!0,this.pointerInteracting=!1,this.focusInteracting=!1,this.dragStartCoordinate=0,this.dragStartScroll=0,this.dragMoved=!1,this.suppressClick=!1,this.announcementsArmed=!1,this.changeOrigin="manual",this.manualPending=!1,this.observerGeneration=0,this.onMotionPreferenceChange=event=>{this.reduceMotion=event.matches,this.restartAutoplay(),this.requestUpdate()},this.onVisibilityChange=()=>{this.restartAutoplay()},this.onSlotChange=()=>{this.handleSlidesChanged()},this.onViewportScroll=()=>{this.cancelScrollSettle();const view=this.ownerDocument.defaultView;view&&(this.settleTimerWindow=view,this.settleTimer=view.setTimeout(this.settleScrolledSlide,120))},this.onViewportScrollEnd=()=>{this.cancelScrollSettle(),this.settleScrolledSlide()},this.settleScrolledSlide=()=>{if(this.settleTimer=void 0,this.settleTimerWindow=void 0,!this.isConnected)return;const viewport=this.viewport;if(!viewport)return;if(this.alignTarget){if(Math.abs(this.axisOffsetOf(this.alignTarget,viewport))>2)return;const cloneSide=this.alignTarget.dataset.carouselClone;if(cloneSide==="before"||cloneSide==="after"){const realSlide=this.slideElements()[this.alignIndex??-1];if(realSlide){this.alignTarget=realSlide,this.scrollByAxis(viewport,this.axisOffsetOf(realSlide,viewport),"instant");return}}this.clearAlignment();return}const resting=this.restingSlide();if(!resting)return;const changed=resting.index!==this.currentSlide;!changed&&!resting.cloneSide||(this.adoptingScrolledSlide=!0,changed&&(this.currentSlide=resting.index,this.emit("lr-slide-change",{index:resting.index,slide:this.slideElements()[resting.index]})),this.updateComplete.then(()=>{if(resting.cloneSide&&this.isConnected&&this.viewport){const realSlide=this.slideElements()[resting.index];realSlide&&this.scrollByAxis(this.viewport,this.axisOffsetOf(realSlide,this.viewport),"instant")}this.adoptingScrolledSlide=!1}))},this.onViewportPointerEnter=()=>{this.pointerInteracting=!0,this.restartAutoplay()},this.onViewportPointerLeave=()=>{this.dragPointerId===void 0&&(this.pointerInteracting=!1,this.restartAutoplay())},this.onViewportFocusIn=event=>{this.focusInteracting=!0;const slides=new Set(this.slideElements()),focusedSlide=event.composedPath().find(candidate=>candidate.nodeType===1&&slides.has(candidate));focusedSlide&&(this.lastFocusedSlide=focusedSlide),this.restartAutoplay()},this.onViewportFocusOut=()=>{this.queueOwnerMicrotask(()=>{if(!this.isConnected)return;const active=deepActiveElementIn(this.ownerDocument);this.lastFocusedSlide&&!composedContains(this.lastFocusedSlide,active)&&(this.lastFocusedSlide.isConnected||active!==null&&active!==this.ownerDocument.body)&&(this.lastFocusedSlide=void 0),this.focusInteracting=this.matches(":focus-within"),this.restartAutoplay()})},this.onViewportPointerDown=event=>{if(!this.mouseDragging||event.pointerType!=="mouse"||!event.isPrimary||event.button!==0||this.dragPointerId!==void 0||this.targetsInteractiveContent(event))return;this.takeOverViewport();const viewport=this.viewport;if(viewport){this.dragPointerId=event.pointerId,this.dragStartCoordinate=this.effectiveOrientation()==="vertical"?event.clientY:event.clientX,this.dragStartScroll=this.effectiveOrientation()==="vertical"?viewport.scrollTop:viewport.scrollLeft,this.dragMoved=!1,viewport.setAttribute("data-dragging","");try{viewport.setPointerCapture(event.pointerId)}catch{}this.restartAutoplay()}},this.onViewportPointerMove=event=>{if(event.pointerId!==this.dragPointerId)return;const viewport=this.viewport;if(!viewport)return;const delta=(this.effectiveOrientation()==="vertical"?event.clientY:event.clientX)-this.dragStartCoordinate;Math.abs(delta)>2&&(this.dragMoved=!0),this.dragMoved&&(event.preventDefault(),this.effectiveOrientation()==="vertical"?viewport.scrollTo({top:this.dragStartScroll-delta,behavior:"instant"}):viewport.scrollTo({left:this.dragStartScroll-delta,behavior:"instant"}))},this.onViewportPointerUp=event=>{this.finishDrag(event.pointerId,!1)},this.onViewportPointerCancel=event=>{this.finishDrag(event.pointerId,!0)},this.onViewportLostPointerCapture=event=>{this.finishDrag(event.pointerId,!0)},this.onViewportClick=event=>{this.suppressClick&&(event.preventDefault(),event.stopImmediatePropagation())},this.onViewportKeyDown=event=>{if(this.targetsInteractiveContent(event,!0))return;const vertical=this.effectiveOrientation()==="vertical",rtl=this.effectiveDirection==="rtl",forwardKey=vertical?"ArrowDown":rtl?"ArrowLeft":"ArrowRight",backwardKey=vertical?"ArrowUp":rtl?"ArrowRight":"ArrowLeft";event.key===forwardKey?(event.preventDefault(),this.next()):event.key===backwardKey?(event.preventDefault(),this.previous()):event.key==="Home"?(event.preventDefault(),this.goToSlide(0)):event.key==="End"&&(event.preventDefault(),this.goToSlide(this.loop?this.slideElements().length-1:this.maxStartIndex()))},this.requestUpdate("currentSlide",void 0),this.requestUpdate("pagination",void 0)}attributeChangedCallback(name,oldValue,newValue){if(name==="currentslide"){oldValue!==newValue&&(this.currentSlide=finiteInteger(Number(newValue??0),0));return}super.attributeChangedCallback(name,oldValue,newValue),name==="current-slide"&&newValue===null&&oldValue!==newValue&&this.hasAttribute("currentslide")&&(this.currentSlide=finiteInteger(Number(this.getAttribute("currentslide")??0),0))}connectedCallback(){this.hasAttribute("current-slide")&&(this.currentSlide=finiteInteger(Number(this.getAttribute("current-slide")??0),0)),super.connectedCallback();const view=this.ownerDocument.defaultView;this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.announcementsArmed=!1,this.manualPending=!1,this.mediaQuery=typeof view?.matchMedia=="function"?view.matchMedia("(prefers-reduced-motion: reduce)"):void 0,this.reduceMotion=this.mediaQuery?.matches??!1,this.mediaQuery?.addEventListener("change",this.onMotionPreferenceChange),this.visibilityDocument=this.ownerDocument,this.visibilityDocument.addEventListener("visibilitychange",this.onVisibilityChange),this.armSlideContentObserver(),this.restartAutoplay(),this.hasUpdated&&this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()})}disconnectedCallback(){this.announcementSink?.release(),this.announcementSink=void 0,this.announcementsArmed=!1,this.manualPending=!1,this.cancelDrag(!1),this.stopAutoplay(),this.cancelScrollSettle(),this.cancelClickSuppression(),this.suppressClick=!1,this.pointerInteracting=!1,this.focusInteracting=!1,this.hasAlignedOnce=!1,this.clearAlignment(),this.mediaQuery?.removeEventListener("change",this.onMotionPreferenceChange),this.mediaQuery=void 0,this.visibilityDocument?.removeEventListener("visibilitychange",this.onVisibilityChange),this.visibilityDocument=void 0,this.resetSlideContentObserver(),this.restoreSlides(),this.lastFocusedSlide=void 0,super.disconnectedCallback()}armSlideContentObserver(){const ownerDocument=this.ownerDocument,MutationObserverCtor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverCtor||!this.isConnected)return;this.resetSlideContentObserver();const generation=this.observerGeneration,observer=new MutationObserverCtor(records=>{this.observer!==observer||this.observerDocument!==ownerDocument||this.observerGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||!records.some(record=>{if(record.type!=="attributes")return!0;if(record.target===this)return!1;if(!CAROUSEL_MANAGED_SLIDE_ATTRIBUTES.has(record.attributeName??""))return!0;const slide=record.target,snapshot=this.snapshots.get(slide);return snapshot?this.adoptChanges(slide,snapshot):!1})||(this.loop&&(this.loopClonesDirty=!0),this.syncSlides(),this.requestUpdate())});this.observer=observer,this.observerDocument=ownerDocument,observer.observe(this,{attributes:!0,characterData:!0,childList:!0,subtree:!0})}resetSlideContentObserver(){this.observerGeneration+=1,this.observer?.disconnect(),this.observer=void 0,this.observerDocument=void 0}willUpdate(changed){if(super.willUpdate(changed),(changed.has("currentSlide")||changed.has("slidesPerPage"))&&this.slideSlot){const normalized=this.normalizedIndex();this.currentSlide!==normalized&&(this.currentSlide=normalized)}}updated(changed){super.updated(changed);const shouldAnnounceActivePage=this.announcementsArmed&&(this.manualPending||changed.has("slidesPerPage"));this.syncSlides(),(this.loopClonesDirty||changed.has("loop")||changed.has("slidesPerPage")||changed.has("slidesPerMove"))&&(this.syncLoopClones(),this.loopClonesDirty=!1),(changed.has("autoplay")||changed.has("autoplayInterval")||changed.has("loop")||changed.has("slidesPerPage"))&&this.restartAutoplay(),!this.adoptingScrolledSlide&&(changed.has("currentSlide")||changed.has("slidesPerPage")||changed.has("orientation")||!this.hasAlignedOnce)&&this.alignToActiveSlide(),this.hasAlignedOnce=!0,shouldAnnounceActivePage&&this.announceActivePage(),this.manualPending=!1,this.announcementsArmed=!0}setCurrentSlideState(value){const old=this._currentSlide,next=finiteInteger(value,0);old!==next&&(this._currentSlide=next,this.changeOrigin==="manual"&&(this.manualPending=!0),this.requestUpdate("currentSlide",old))}setPaginationState(value){const old=this._pagination;old!==value&&(this._pagination=value,this.requestUpdate("pagination",old))}queueOwnerMicrotask(callback){const view=this.ownerDocument.defaultView;view?view.queueMicrotask(callback):queueMicrotask(callback)}effectiveOrientation(){return this.orientation==="vertical"?"vertical":"horizontal"}slideElements(){return(this.slideSlot?.assignedElements({flatten:!0})??[]).filter(element=>element.nodeType===1&&element.namespaceURI==="http://www.w3.org/1999/xhtml")}pageSize(count=this.slideElements().length){return finiteInteger(this.slidesPerPage,1,1,Math.max(1,count))}moveSize(count=this.slideElements().length){return finiteInteger(this.slidesPerMove,1,1,this.pageSize(count))}maxStartIndex(count=this.slideElements().length){return Math.max(0,count-this.pageSize(count))}normalizedIndex(count=this.slideElements().length){if(count===0)return 0;const max=this.loop?count-1:this.maxStartIndex(count);return finiteInteger(this.currentSlide,0,0,max)}pageTargets(count=this.slideElements().length){if(count===0)return[];if(this.loop)return Array.from({length:count},(_unused,index)=>index);const max=this.maxStartIndex(count),move=this.moveSize(count),targets=[0];for(let target=move;target<max;target+=move)targets.push(target);return max>0&&targets.at(-1)!==max&&targets.push(max),targets}visibleIndices(count,current){const visible=new Set,perPage=this.pageSize(count);for(let offset=0;offset<perPage;offset+=1){const index=this.loop?(current+offset)%count:current+offset;index>=0&&index<count&&visible.add(index)}return visible}announceActivePage(){if(!isAccessibilityVisible(this))return;const slides=this.slideElements();if(slides.length===0)return;const current=this.normalizedIndex(slides.length),visible=this.visibleIndices(slides.length,current),format=getNumberFormat(this.effectiveLocale),messages=slides.flatMap((slide,index)=>{if(!visible.has(index))return[];if(isAccessibilitySubtreeExcluded(slide))return[];const slideTextVisible=!isAccessibilityVisibilityHidden(slide),authoredLabel=slideTextVisible?this.snapshots.get(slide)?.label?.trim():"";if(authoredLabel)return[authoredLabel];const position=this.localize("carouselSlidePosition",void 0,{index:format.format(index+1),total:format.format(slides.length)}),content=Array.from(slide.childNodes).map(node=>composedAccessibilityText(node,slideTextVisible)).join(" ").replace(/\s+/g," ").trim();return!slideTextVisible&&!content?[]:[content&&content!==position?this.localize("carouselSlideAnnouncement",void 0,{position,content}):position]});this.announcementSink?.announce(messages.join(this.localize("carouselSlideAnnouncementSeparator")))}restoreAttribute(slide,name,value){value===null?slide.removeAttribute(name):slide.setAttribute(name,value)}snapshotSlide(slide){return{hidden:slide.hidden,inert:slide.inert,role:slide.getAttribute("role"),label:slide.getAttribute("aria-label"),roleDescription:slide.getAttribute("aria-roledescription"),ariaHidden:slide.getAttribute("aria-hidden")}}adoptChanges(slide,snapshot){const applied=this.appliedSnapshots.get(slide);if(!applied)return!1;const current=this.snapshotSlide(slide);let changed=!1;for(const key of SLIDE_SNAPSHOT_KEYS)current[key]!==applied[key]&&(snapshot[key]=current[key],changed=!0);return changed}restoreSlide(slide,snapshot){slide.hidden=snapshot.hidden,slide.inert=snapshot.inert,this.restoreAttribute(slide,"role",snapshot.role),this.restoreAttribute(slide,"aria-label",snapshot.label),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription),this.restoreAttribute(slide,"aria-hidden",snapshot.ariaHidden)}restoreSlides(){for(const[slide,snapshot]of this.snapshots)this.adoptChanges(slide,snapshot),this.restoreSlide(slide,snapshot);this.snapshots.clear()}syncSlides(){const slides=this.slideElements(),assigned=new Set(slides);for(const[slide,snapshot]of this.snapshots)this.adoptChanges(slide,snapshot)&&(this.loopClonesDirty=!0),assigned.has(slide)||(this.restoreSlide(slide,snapshot),this.snapshots.delete(slide));const current=this.normalizedIndex(slides.length);this.currentSlide!==current&&(this.currentSlide=current);const visible=this.visibleIndices(slides.length,current);this.repairFocusBeforeSlideExclusion(slides,visible);const format=getNumberFormat(this.effectiveLocale);slides.forEach((slide,slideIndex)=>{const existing=this.snapshots.get(slide),snapshot=existing??this.snapshotSlide(slide);existing||this.snapshots.set(slide,snapshot),slide.localName===tag("carousel-item")?(this.restoreAttribute(slide,"role",snapshot.role??"group"),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription??this.localize("carouselSlide")),this.restoreAttribute(slide,"aria-label",snapshot.label??this.localize("carouselSlidePosition",void 0,{index:format.format(slideIndex+1),total:format.format(slides.length)}))):(this.restoreAttribute(slide,"role",snapshot.role),this.restoreAttribute(slide,"aria-roledescription",snapshot.roleDescription),this.restoreAttribute(slide,"aria-label",snapshot.label)),slide.hidden=snapshot.hidden,visible.has(slideIndex)?(slide.inert=snapshot.inert,this.restoreAttribute(slide,"aria-hidden",snapshot.ariaHidden)):(slide.inert=!0,slide.setAttribute("aria-hidden","true")),this.appliedSnapshots.set(slide,this.snapshotSlide(slide))})}repairFocusBeforeSlideExclusion(slides,visible){const active=deepActiveElementIn(this.ownerDocument),focusedIndex=slides.findIndex(slide=>composedContains(slide,active)),focusedSlideWillBeExcluded=focusedIndex>=0&&!visible.has(focusedIndex),focusedSlideWasRemoved=focusedIndex<0&&this.lastFocusedSlide!==void 0&&!this.lastFocusedSlide.isConnected&&(active===null||active===this.ownerDocument.body);!focusedSlideWillBeExcluded&&!focusedSlideWasRemoved||(this.viewport?.focus(),this.lastFocusedSlide=void 0)}handleSlidesChanged(){const count=this.slideElements().length,active=activeElementIn(this.shadowRoot);if(active?.matches('[part~="pagination-item"]')){const children=active.parentElement.children,pages=this.pageTargets(count).length;(pages<2||[...children].indexOf(active)>=pages)&&(pages>1?children[pages-1]:this.viewport)?.focus()}else active?.matches('[part~="navigation-button"]')&&(!this.navigation||count<=this.pageSize(count))&&this.viewport?.focus();if(this._slides!==count){const previous=this._slides;this._slides=count,this.requestUpdate("slides",previous)}this.loopClonesDirty=!0,this.syncSlides(),this.syncLoopClones(),this.loopClonesDirty=!1,this.restartAutoplay(),this.requestUpdate()}prepareClone(original,index,side){if([original,...Array.from(original.querySelectorAll("*"))].some(element=>element.namespaceURI!=="http://www.w3.org/1999/xhtml"||element.localName.includes("-")||LOOP_SNAPSHOT_UNSAFE_TAGS.has(element.localName)))return;const clone=original.cloneNode(!0),descendants=[clone,...Array.from(clone.querySelectorAll("*"))];for(const descendant of descendants)descendant.removeAttribute("id"),descendant.removeAttribute("name"),descendant.removeAttribute("form"),descendant.removeAttribute("for"),descendant.removeAttribute("aria-controls"),descendant.removeAttribute("aria-describedby"),descendant.removeAttribute("aria-labelledby");return clone.removeAttribute("slot"),clone.dataset.carouselClone=side,clone.dataset.carouselIndex=String(index),clone.inert=!0,clone.setAttribute("aria-hidden","true"),clone}syncLoopClones(){const before=this.beforeClones,after=this.afterClones;if(!before||!after)return;before.replaceChildren(),after.replaceChildren();const slides=this.slideElements();if(!this.loop||slides.length<2)return;const cloneCount=Math.min(slides.length,Math.max(this.pageSize(slides.length),this.moveSize(slides.length))),beforeStart=slides.length-cloneCount;for(let index=beforeStart;index<slides.length;index+=1){const clone=this.prepareClone(slides[index],index,"before");clone&&before.append(clone)}for(let index=0;index<cloneCount;index+=1){const clone=this.prepareClone(slides[index],index,"after");clone&&after.append(clone)}}cloneFor(side,index){return(side==="before"?this.beforeClones:this.afterClones)?.querySelector(`[data-carousel-index="${index}"]`)??void 0}changeTo(index,behavior="smooth",origin="manual"){const slides=this.slideElements(),count=slides.length;if(count===0||!Number.isFinite(index))return;const requested=Math.trunc(index);let next,loopSide;if(this.loop?(next=(requested%count+count)%count,requested<0?loopSide="before":requested>=count&&(loopSide="after")):next=Math.min(this.maxStartIndex(count),Math.max(0,requested)),next===this.currentSlide)return;this.requestedBehavior=behavior,this.loopSide=loopSide;const previousOrigin=this.changeOrigin;this.changeOrigin=origin;try{this.currentSlide=next}finally{this.changeOrigin=previousOrigin}this.emit("lr-slide-change",{index:next,slide:slides[next]})}next(behavior="smooth"){this.changeTo(this.currentSlide+this.moveSize(),behavior)}previous(behavior="smooth"){this.changeTo(this.currentSlide-this.moveSize(),behavior)}goToSlide(index,behavior="smooth"){this.changeTo(index,behavior)}addSlide(slide){slide?.nodeType!==1||slide?.namespaceURI!=="http://www.w3.org/1999/xhtml"||(this.append(slide),this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()}))}removeSlide(index){if(!Number.isFinite(index))return;const target=this.slideElements()[Math.trunc(index)];target&&(target.remove(),this.queueOwnerMicrotask(()=>{this.isConnected&&this.handleSlidesChanged()}))}stopAutoplay(){this.timer!==void 0&&this.timerWindow?.clearInterval(this.timer),this.timer=void 0,this.timerWindow=void 0}restartAutoplay(){this.stopAutoplay();const count=this.slideElements().length,doc=this.visibilityDocument??this.ownerDocument,view=doc.defaultView;if(!this.isConnected||!view||!this.autoplay||this.reduceMotion||this.pointerInteracting||this.focusInteracting||this.dragPointerId!==void 0||doc.visibilityState!=="visible"||count<=this.pageSize(count))return;const interval=finiteDuration(this.autoplayInterval,3e3,1e3);this.timerWindow=view,this.timer=view.setInterval(()=>{this.loop||this.currentSlide<this.maxStartIndex()?this.changeTo(this.currentSlide+this.moveSize(),"smooth","autoplay"):this.stopAutoplay()},interval)}scrollPaddingStart(){const rect=this.scrollHintProbe?.getBoundingClientRect();if(!rect)return 0;const pixels=this.effectiveOrientation()==="vertical"?rect.height:rect.width;return Number.isFinite(pixels)?pixels:0}axisOffsetOf(slide,viewport){const viewportRect=viewport.getBoundingClientRect(),slideRect=slide.getBoundingClientRect(),padding=this.scrollPaddingStart();return this.effectiveOrientation()==="vertical"?slideRect.top-(viewportRect.top+padding):this.effectiveDirection==="rtl"?slideRect.right-(viewportRect.right-padding):slideRect.left-(viewportRect.left+padding)}scrollByAxis(viewport,distance,behavior){this.effectiveOrientation()==="vertical"?viewport.scrollBy({top:distance,behavior}):viewport.scrollBy({left:distance,behavior})}restingSlide(){const viewport=this.viewport,slides=this.slideElements();if(!viewport||slides.length===0)return;const candidates=slides.map((element,index)=>({element,index}));for(const clone of this.shadowRoot?.querySelectorAll("[data-carousel-clone]")??[]){const index=Number(clone.dataset.carouselIndex),cloneSide=clone.dataset.carouselClone;Number.isInteger(index)&&index>=0&&index<slides.length&&(cloneSide==="before"||cloneSide==="after")&&candidates.push({element:clone,index,cloneSide})}let nearest,nearestDistance=Number.POSITIVE_INFINITY;for(const candidate of candidates){const distance=Math.abs(this.axisOffsetOf(candidate.element,viewport));distance<nearestDistance&&(nearestDistance=distance,nearest=candidate)}return nearest}alignToActiveSlide(){const viewport=this.viewport,targetIndex=this.normalizedIndex(),realSlide=this.slideElements()[targetIndex];if(!viewport||!realSlide)return;const loopSide=this.loopSide,requestedBehavior=this.requestedBehavior;this.loopSide=void 0,this.requestedBehavior=void 0;const target=loopSide?this.cloneFor(loopSide,targetIndex)??realSlide:realSlide,offset=this.axisOffsetOf(target,viewport);if(Math.round(offset)===0){this.clearAlignment();return}this.alignIndex=targetIndex,this.alignTarget=target;const behavior=this.motionAwareScrollBehavior(requestedBehavior??"smooth",!0);this.scrollByAxis(viewport,offset,behavior)}motionAwareScrollBehavior(requested,instantBeforeFirstAlignment=!1){return this.reduceMotion||instantBeforeFirstAlignment&&!this.hasAlignedOnce?"instant":requested}cancelScrollSettle(){this.settleTimer!==void 0&&this.settleTimerWindow?.clearTimeout(this.settleTimer),this.settleTimer=void 0,this.settleTimerWindow=void 0}clearAlignment(){this.alignTarget=void 0,this.alignIndex=void 0,this.loopSide=void 0,this.requestedBehavior=void 0}takeOverViewport(){this.clearAlignment()}targetsInteractiveContent(event,includeSlideEditors=!1){const slides=new Set(this.slideElements());for(const target of event.composedPath()){if(!(target instanceof Element))continue;const slideRoot=slides.has(target);if(target===this||target===this.viewport||slideRoot&&!includeSlideEditors)continue;const name=target.localName;if(name==="a"||name==="button"||name==="input"||name==="label"||name==="select"||name==="textarea"||target.hasAttribute("contenteditable")||!slideRoot&&name.includes("-")&&target.getRootNode()!==this.shadowRoot)return!0;const role=target.getAttribute("role")?.trim().toLowerCase();if(role&&["button","checkbox","combobox","link","radio","slider","spinbutton","switch","textbox"].includes(role))return!0}return!1}finishDrag(pointerId,canceled){if(pointerId!==this.dragPointerId)return;const viewport=this.viewport,moved=this.dragMoved;if(this.dragPointerId=void 0,this.dragMoved=!1,viewport?.removeAttribute("data-dragging"),viewport?.hasPointerCapture(pointerId))try{viewport.releasePointerCapture(pointerId)}catch{}if(moved){this.suppressClick=!0,this.cancelClickSuppression();const view=this.ownerDocument.defaultView;view?(this.clickTimerWindow=view,this.clickTimer=view.setTimeout(()=>{this.suppressClick=!1,this.clickTimer=void 0,this.clickTimerWindow=void 0},0)):this.suppressClick=!1}if(canceled&&viewport){const active=this.slideElements()[this.normalizedIndex()];active&&this.scrollByAxis(viewport,this.axisOffsetOf(active,viewport),this.motionAwareScrollBehavior("smooth"))}else canceled||this.onViewportScroll();this.matches(":hover")||(this.pointerInteracting=!1),this.restartAutoplay()}cancelClickSuppression(){this.clickTimer!==void 0&&this.clickTimerWindow?.clearTimeout(this.clickTimer),this.clickTimer=void 0,this.clickTimerWindow=void 0}cancelDrag(realign){this.dragPointerId!==void 0&&this.finishDrag(this.dragPointerId,realign)}computedSlideBasis(perPage){return perPage===1?"100%":`calc((100% - (${perPage-1} * var(--slide-gap, var(--lr-space-m)))) / ${perPage})`}render(){const count=this.slideElements().length,current=this.normalizedIndex(count),pageTargets=this.pageTargets(count),exactCurrentPage=pageTargets.indexOf(current),currentPage=exactCurrentPage>=0?exactCurrentPage:pageTargets.reduce((nearest,target,pageIndex)=>Math.abs(target-current)<Math.abs(pageTargets[nearest]-current)?pageIndex:nearest,0),hasNavigation=this.navigation&&count>this.pageSize(count),hasPagination=this.pagination&&pageTargets.length>1,label=this.hostAccessibleLabel!==null?this.hostAccessibleLabel:this.accessibleLabel==null?this.localize("carouselLabel"):this.accessibleLabel,numberFormat=getNumberFormat(this.effectiveLocale),orientation=this.effectiveOrientation(),perPage=this.pageSize(count);return html`<section
2
2
  part="base carousel"
3
3
  role="region"
4
4
  aria-roledescription=${this.localize("carousel")}
@@ -76,10 +76,10 @@ hotkey:string;
76
76
  accessibleLabel?:string;private queryText;private activeIndex;private listScrollTop;private listViewportHeight;private rowPitch;private groupPitch;private listId;private overlay?;private activeCommandId?;private listResizeObserver?;private observedList?;private observedRow?;private observedGroup?;private rowPitchFrame?;private listScrollFrame?;
77
77
  /** Window that owns listeners, observers, and animation frames for the current connection. */
78
78
  private runtimeWindow?;
79
- /** The `commands` array `haystacks` was built from -- reference-keyed memo, since `commands`
79
+ /** The canonical command view `haystacks` was built from -- reference-keyed memo, since `commands`
80
80
  * only ever changes by reassignment (it's `attribute: false`; in-place mutation wouldn't
81
81
  * trigger a re-render either). */
82
- private haystacksFor?;private haystacksLocale;private haystacks;private filteredForCommands?;private filteredForQuery;private filteredForLocale;private filteredRows;private normalizedForCommands?;private normalizedRows;private normalizedCommandIds;private resultModelFor?;private resultModelRowPitch?;private resultModelGroupPitch?;private resultModelCache?;private openRequestTarget?;
82
+ private haystacksFor?;private haystacksLocale;private haystacks;private filteredForCommands?;private filteredForQuery;private filteredForLocale;private filteredRows;private normalizedForCommands?;private normalizedRows;private resultModelFor?;private resultModelRowPitch?;private resultModelGroupPitch?;private resultModelCache?;private openRequestTarget?;
83
83
  /** Canonical command collection consumed by search, focus, rendering, and activation. Keeping
84
84
  * the first valid occurrence makes duplicate handling deterministic while retaining caller
85
85
  * object identity in `lr-select` and `onSelect`. */