@aceshooting/lyra-ui 26.0.0 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1677) hide show
  1. package/CHANGELOG.md +55 -675
  2. package/README.md +285 -1130
  3. package/design-tokens.json +1 -1
  4. package/dist/ai/types.d.ts +5 -5
  5. package/dist/autoloader.js +1 -1
  6. package/dist/cli/agent-registry.mjs +1 -0
  7. package/dist/cli/component-inventory.mjs +1 -1
  8. package/dist/cli/css-declarations.mjs +1 -0
  9. package/dist/cli/init-agents.mjs +40 -0
  10. package/dist/cli/is-main-module.mjs +1 -0
  11. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  12. package/dist/cli/lyra-ui.mjs +11 -0
  13. package/dist/cli/migrate-wa.mjs +12 -5
  14. package/dist/cli/migration-contract.json +1 -1
  15. package/dist/cli/migration-renames.mjs +2 -2
  16. package/dist/cli/migration-theme-scopes.mjs +3 -0
  17. package/dist/cli/theme-scope-vocabulary.generated.mjs +1 -0
  18. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  19. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  20. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  21. package/dist/components/agent-tools/agent-question/agent-question.class.js +1 -1
  22. package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -1
  23. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
  24. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  25. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +1 -1
  26. package/dist/components/agent-tools/background-runs/background-runs.class.js +1 -1
  27. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +1 -1
  28. package/dist/components/agent-tools/budget-meter/budget-meter.class.js +1 -1
  29. package/dist/components/agent-tools/change-review/change-review.class.js +1 -1
  30. package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
  31. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
  32. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  33. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  34. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  35. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  36. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  37. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  38. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  39. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  40. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  41. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  42. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  43. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  44. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  45. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  46. package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
  47. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  48. package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
  49. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  50. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  51. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  52. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  53. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  54. package/dist/components/agent-tools/permission-rules/permission-rules.class.js +1 -1
  55. package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
  56. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  57. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  58. package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
  59. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  60. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  61. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
  62. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  63. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  64. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  65. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  66. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  67. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  68. package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
  69. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -1
  70. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  71. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  72. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  73. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  74. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  75. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  76. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
  77. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  78. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  79. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  80. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  81. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  82. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
  83. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  84. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  85. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  86. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  87. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -1
  88. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  89. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  90. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  91. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  92. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  93. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  94. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  95. package/dist/components/charts/chart/box-plot.class.js +1 -1
  96. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  97. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  98. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  99. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  100. package/dist/components/charts/chart/chart-token-cache.js +2 -2
  101. package/dist/components/charts/chart/chart.class.d.ts +3 -3
  102. package/dist/components/charts/chart/chart.class.js +3 -3
  103. package/dist/components/charts/chart/chart.styles.js +1 -1
  104. package/dist/components/charts/chart/histogram.class.js +1 -1
  105. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  106. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  107. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +1 -1
  108. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
  109. package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
  110. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  111. package/dist/components/conversation/catalog-picker-element.js +1 -1
  112. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  113. package/dist/components/conversation/chat-composer/chat-composer.class.js +1 -1
  114. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  115. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  116. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  117. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  118. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  119. package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
  120. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  121. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  122. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  123. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  124. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  125. package/dist/components/conversation/handoff-divider/handoff-divider.class.js +1 -1
  126. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  127. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  128. package/dist/components/conversation/markdown/markdown-core.class.js +1 -1
  129. package/dist/components/conversation/markdown/markdown.class.js +1 -1
  130. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  131. package/dist/components/conversation/message-feedback/message-feedback.class.js +1 -1
  132. package/dist/components/conversation/message-parts/message-parts.class.js +1 -1
  133. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  134. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  135. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  136. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +1 -1
  137. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  138. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  139. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  140. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
  141. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  142. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  143. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  144. package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +1 -1
  145. package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
  146. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  147. package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
  148. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  149. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  150. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  151. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  152. package/dist/components/data/calendar/calendar.class.js +1 -1
  153. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  154. package/dist/components/data/context-meter/context-meter.class.js +1 -1
  155. package/dist/components/data/data-grid/data-grid.class.d.ts +2 -2
  156. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  157. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  158. package/dist/components/data/document-library/document-library.class.js +2 -2
  159. package/dist/components/data/env-list/env-list.class.js +1 -1
  160. package/dist/components/data/file-tree/file-tree.class.d.ts +2 -2
  161. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  162. package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
  163. package/dist/components/data/flow-controls/flow-controls.class.js +1 -1
  164. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  165. package/dist/components/data/flow-node/flow-node.class.js +1 -1
  166. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  167. package/dist/components/data/funnel/funnel.class.js +1 -1
  168. package/dist/components/data/gauge/gauge.class.js +1 -1
  169. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  170. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  171. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  172. package/dist/components/data/pagination/pagination.class.d.ts +2 -0
  173. package/dist/components/data/pagination/pagination.class.js +1 -1
  174. package/dist/components/data/pagination/pagination.styles.js +1 -1
  175. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  176. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  177. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  178. package/dist/components/data/stat/stat.class.js +1 -1
  179. package/dist/components/data/table/table.class.d.ts +33 -197
  180. package/dist/components/data/table/table.class.js +6 -4
  181. package/dist/components/data/table/table.styles.js +1 -1
  182. package/dist/components/data/timeline/timeline.class.js +1 -1
  183. package/dist/components/data/tree/tree.class.js +1 -1
  184. package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
  185. package/dist/components/forms/button/button.class.d.ts +3 -3
  186. package/dist/components/forms/button/button.class.js +1 -1
  187. package/dist/components/forms/catalog-picker-base.js +1 -1
  188. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  189. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  190. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  191. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  192. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  193. package/dist/components/forms/color-picker/color-picker.class.d.ts +8 -4
  194. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  195. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  196. package/dist/components/forms/combobox/combobox.class.js +3 -2
  197. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  198. package/dist/components/forms/combobox/option.class.js +2 -2
  199. package/dist/components/forms/country-picker/country-picker.class.js +1 -1
  200. package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
  201. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  202. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  203. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  204. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  205. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  206. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  207. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  208. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -4
  209. package/dist/components/forms/emoji-picker/emoji-picker.class.js +5 -5
  210. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
  211. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  212. package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
  213. package/dist/components/forms/input/input-shared.js +1 -1
  214. package/dist/components/forms/input/input.class.js +1 -1
  215. package/dist/components/forms/input/input.styles.js +1 -1
  216. package/dist/components/forms/input/native-time-input.class.js +1 -1
  217. package/dist/components/forms/input/number-input.class.js +1 -1
  218. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  219. package/dist/components/forms/input/time-input.class.js +1 -1
  220. package/dist/components/forms/input/time-input.styles.js +1 -1
  221. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  222. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  223. package/dist/components/forms/otp-input/otp-input.class.js +2 -1
  224. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  225. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  226. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  227. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  228. package/dist/components/forms/radio/radio-group.class.js +1 -1
  229. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  230. package/dist/components/forms/radio/radio.class.js +2 -2
  231. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  232. package/dist/components/forms/rubric-form/rubric-form.class.js +4 -4
  233. package/dist/components/forms/select/select.class.d.ts +5 -7
  234. package/dist/components/forms/select/select.class.js +3 -2
  235. package/dist/components/forms/signature-pad/signature-pad.class.js +1 -1
  236. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  237. package/dist/components/forms/slider/slider.class.js +1 -1
  238. package/dist/components/forms/slider/slider.styles.js +1 -1
  239. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  240. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  241. package/dist/components/forms/switch/switch.class.js +2 -2
  242. package/dist/components/forms/textarea/textarea.class.js +2 -1
  243. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  244. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  245. package/dist/components/forms/time-range/time-range.class.js +1 -1
  246. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  247. package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
  248. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  249. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  250. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  251. package/dist/components/forms/token-input/token-input.class.js +1 -1
  252. package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
  253. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  254. package/dist/components/layout/app-rail/app-rail.class.d.ts +71 -8
  255. package/dist/components/layout/app-rail/app-rail.class.js +16 -4
  256. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  257. package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
  258. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  259. package/dist/components/layout/breadcrumb/breadcrumb.class.js +1 -1
  260. package/dist/components/layout/card/card.class.js +1 -1
  261. package/dist/components/layout/carousel/carousel.class.js +1 -1
  262. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  263. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  264. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  265. package/dist/components/layout/details/accordion-item.class.js +1 -1
  266. package/dist/components/layout/details/accordion.class.js +1 -1
  267. package/dist/components/layout/details/details.class.js +1 -1
  268. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  269. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  270. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  271. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  272. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  273. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  274. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  275. package/dist/components/layout/menu/menu.class.js +1 -1
  276. package/dist/components/layout/menubar/menubar.class.js +1 -1
  277. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  278. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  279. package/dist/components/layout/navigation-menu/navigation-menu.class.js +1 -1
  280. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  281. package/dist/components/layout/page/page.class.d.ts +1 -1
  282. package/dist/components/layout/page/page.class.js +1 -1
  283. package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
  284. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  285. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  286. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  287. package/dist/components/layout/scroller/scroller.class.js +1 -1
  288. package/dist/components/layout/segmented/segmented.class.d.ts +7 -4
  289. package/dist/components/layout/segmented/segmented.class.js +1 -1
  290. package/dist/components/layout/segmented/segmented.styles.js +1 -1
  291. package/dist/components/layout/split-panel/split-panel.class.js +1 -1
  292. package/dist/components/layout/stepper/stepper.class.js +2 -2
  293. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  294. package/dist/components/layout/tab-group/tab.class.js +1 -1
  295. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  296. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  297. package/dist/components/layout/virtual-list/virtual-list.styles.js +1 -1
  298. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  299. package/dist/components/layout/widget/widget.class.js +3 -3
  300. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  301. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  302. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +2 -2
  303. package/dist/components/media/av-player/av-player.class.js +1 -1
  304. package/dist/components/media/avatar-group/avatar-group.class.js +1 -1
  305. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  306. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  307. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  308. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  309. package/dist/components/media/file-input/file-input.class.js +2 -2
  310. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  311. package/dist/components/media/file-input/file-intake.js +1 -1
  312. package/dist/components/media/flag/flag.class.js +1 -1
  313. package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
  314. package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
  315. package/dist/components/media/image-viewer/image-viewer.class.js +4 -2
  316. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  317. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  318. package/dist/components/media/map/map.class.js +2 -2
  319. package/dist/components/media/media-card/media-card.class.js +1 -1
  320. package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
  321. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  322. package/dist/components/media/qr-code/qr-code.class.d.ts +2 -2
  323. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  324. package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
  325. package/dist/components/media/video/video.class.js +3 -3
  326. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  327. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  328. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  329. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  330. package/dist/components/overlays/alert/alert.class.js +1 -1
  331. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  332. package/dist/components/overlays/badge/badge.class.js +1 -1
  333. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  334. package/dist/components/overlays/badge/tag.class.js +3 -2
  335. package/dist/components/overlays/badge/tag.styles.js +1 -1
  336. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  337. package/dist/components/overlays/callout/callout.class.js +1 -1
  338. package/dist/components/overlays/chip/chip-group.class.js +1 -1
  339. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  340. package/dist/components/overlays/chip/chip.class.js +2 -2
  341. package/dist/components/overlays/context-menu/context-menu.class.js +1 -1
  342. package/dist/components/overlays/dialog/confirm.js +1 -1
  343. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  344. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  345. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  346. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  347. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  348. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  349. package/dist/components/overlays/overlay/popover.class.js +1 -1
  350. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  351. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  352. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  353. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  354. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  355. package/dist/components/overlays/progress/progress-base.js +1 -0
  356. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  357. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  358. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  359. package/dist/components/overlays/rating/rating.class.js +1 -1
  360. package/dist/components/overlays/skeleton/skeleton.class.js +1 -1
  361. package/dist/components/overlays/spinner/spinner.class.js +1 -1
  362. package/dist/components/overlays/toast/toast-item.class.js +1 -1
  363. package/dist/components/overlays/toast/toast.class.js +1 -1
  364. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  365. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  366. package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
  367. package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +1 -1
  368. package/dist/components/retrieval/community-card/community-card.class.js +1 -1
  369. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  370. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  371. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  372. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  373. package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -1
  374. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  375. package/dist/components/retrieval/graph/graph-model.js +1 -1
  376. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  377. package/dist/components/retrieval/graph/graph.class.js +1 -1
  378. package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
  379. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  380. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  381. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
  382. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  383. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  384. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  385. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  386. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  387. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  388. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  389. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  390. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  391. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  392. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  393. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  394. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  395. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  396. package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
  397. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
  398. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  399. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  400. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  401. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  402. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  403. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  404. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  405. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  406. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  407. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  408. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  409. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  410. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  411. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  412. package/dist/components/retrieval/source-card/source-card.class.js +1 -1
  413. package/dist/components/retrieval/source-list/source-list.class.js +1 -1
  414. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  415. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  416. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  417. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  418. package/dist/components/utility/export-button/export-button.class.js +1 -1
  419. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  420. package/dist/components/utility/icon/icon.class.js +1 -1
  421. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  422. package/dist/components/utility/known-date/known-date.class.js +1 -1
  423. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  424. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  425. package/dist/components/utility/poll-status/poll-status.class.js +1 -1
  426. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  427. package/dist/components/utility/random-content/random-content.class.js +1 -1
  428. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  429. package/dist/components/utility/tour/tour.class.js +1 -1
  430. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  431. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  432. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  433. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  434. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  435. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +2 -2
  436. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  437. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  438. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  439. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  440. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  441. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  442. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  443. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  444. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  445. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  446. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  447. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  448. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  449. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  450. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  451. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  452. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  453. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  454. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  455. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  456. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  457. package/dist/components/viewers/geojson-view/geojson-view.class.js +1 -1
  458. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  459. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  460. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  461. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  462. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  463. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  464. package/dist/components/viewers/include/include.class.js +1 -1
  465. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  466. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
  467. package/dist/components/viewers/page-rail/page-rail.class.d.ts +1 -1
  468. package/dist/components/viewers/page-rail/page-rail.class.js +3 -3
  469. package/dist/components/viewers/passive-markup.js +1 -1
  470. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  471. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -3
  472. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  473. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  474. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  475. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  476. package/dist/components/viewers/region-highlight-layer.js +15 -2
  477. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  478. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  479. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  480. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  481. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  482. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  483. package/dist/components/viewers/table-viewer-shared.js +15 -1
  484. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  485. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
  486. package/dist/events.d.ts +25 -19
  487. package/dist/framework-types.d.ts +1 -1
  488. package/dist/internal/accessibility-visibility.d.ts +3 -1
  489. package/dist/internal/accessibility-visibility.js +1 -1
  490. package/dist/internal/accessible-text-controller.js +1 -1
  491. package/dist/internal/active-element.d.ts +11 -0
  492. package/dist/internal/active-element.js +1 -1
  493. package/dist/internal/adjacent-runs.js +1 -1
  494. package/dist/internal/approval-wait-until.d.ts +7 -0
  495. package/dist/internal/approval-wait-until.js +1 -0
  496. package/dist/internal/aria-controls.js +1 -1
  497. package/dist/internal/catalog-picker.d.ts +2 -2
  498. package/dist/internal/catalog-picker.js +1 -1
  499. package/dist/internal/collection-snapshot.js +1 -1
  500. package/dist/internal/composed-tree.d.ts +18 -0
  501. package/dist/internal/composed-tree.js +1 -1
  502. package/dist/internal/copy-feedback.js +1 -0
  503. package/dist/internal/css-length.js +1 -1
  504. package/dist/internal/css-motion-time.js +1 -1
  505. package/dist/internal/css-number.js +1 -0
  506. package/dist/internal/default-strings/agent-tools.generated.js +1 -0
  507. package/dist/internal/default-strings/charts.generated.js +1 -0
  508. package/dist/internal/default-strings/conversation.generated.js +1 -0
  509. package/dist/internal/default-strings/data.generated.js +1 -0
  510. package/dist/internal/default-strings/forms.generated.js +1 -0
  511. package/dist/internal/default-strings/layout.generated.js +1 -0
  512. package/dist/internal/default-strings/media.generated.js +1 -0
  513. package/dist/internal/default-strings/overlays.generated.js +1 -0
  514. package/dist/internal/default-strings/retrieval.generated.js +1 -0
  515. package/dist/internal/default-strings/shared.generated.js +1 -0
  516. package/dist/internal/default-strings/utility.generated.js +1 -0
  517. package/dist/internal/default-strings/viewers.generated.js +5 -0
  518. package/dist/internal/deferred-focus-return.d.ts +33 -0
  519. package/dist/internal/deferred-focus-return.js +1 -1
  520. package/dist/internal/dev-mode-attribute-warning.development.js +1 -1
  521. package/dist/internal/dev-mode-attribute-warning.production.js +1 -1
  522. package/dist/internal/document-tokens.d.ts +11 -0
  523. package/dist/internal/document-tokens.generated.js +15 -0
  524. package/dist/internal/document-tokens.js +3 -0
  525. package/dist/internal/fixed-containing-block.js +1 -1
  526. package/dist/internal/form-associated.d.ts +39 -3
  527. package/dist/internal/form-associated.js +1 -1
  528. package/dist/internal/form-control-element.d.ts +13 -0
  529. package/dist/internal/form-control-element.js +1 -0
  530. package/dist/internal/form-control.styles.js +1 -1
  531. package/dist/internal/glass-surface.styles.js +1 -1
  532. package/dist/internal/host-tokens.styles.js +1 -0
  533. package/dist/internal/image-zoom.js +1 -0
  534. package/dist/internal/inherited-attribute-hub.js +1 -1
  535. package/dist/internal/intl-cache.js +1 -1
  536. package/dist/internal/locale-loaders.generated.js +1 -1
  537. package/dist/internal/localization-types.d.ts +1 -1
  538. package/dist/internal/localization.js +2 -2
  539. package/dist/internal/lyra-element.d.ts +4 -2
  540. package/dist/internal/lyra-element.js +2 -2
  541. package/dist/internal/modal-surface-controller.js +1 -1
  542. package/dist/internal/object-guards.js +1 -1
  543. package/dist/internal/opaque-content-border.styles.js +1 -1
  544. package/dist/internal/open-overlay-raise.styles.js +1 -0
  545. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  546. package/dist/internal/optional-peer-capabilities.js +1 -1
  547. package/dist/internal/optional-peer-failure.js +1 -0
  548. package/dist/internal/orientation-breakpoint.js +1 -1
  549. package/dist/internal/overlay-manager.d.ts +6 -1
  550. package/dist/internal/overlay-manager.js +1 -1
  551. package/dist/internal/overlay-stack.d.ts +7 -3
  552. package/dist/internal/overlay-stack.js +1 -1
  553. package/dist/internal/package-metadata.js +1 -1
  554. package/dist/internal/persisted-restore.js +1 -1
  555. package/dist/internal/popup-controller.js +1 -0
  556. package/dist/internal/prefix.js +1 -1
  557. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  558. package/dist/internal/rendered-tree-traversal.js +1 -1
  559. package/dist/internal/retry-forwarder.js +1 -0
  560. package/dist/internal/roving-toolbar.js +1 -1
  561. package/dist/internal/scoped-definitions.generated.js +1 -1
  562. package/dist/internal/score-tiers.d.ts +4 -0
  563. package/dist/internal/score-tiers.js +1 -0
  564. package/dist/internal/semantic-variant.d.ts +7 -0
  565. package/dist/internal/semantic-variant.js +1 -0
  566. package/dist/internal/shared-unions.d.ts +1 -1
  567. package/dist/internal/specialist-host-tokens.styles.js +1 -0
  568. package/dist/internal/specialist-tokens.generated.js +2 -0
  569. package/dist/internal/step-value.js +1 -1
  570. package/dist/internal/theme-observation.js +1 -1
  571. package/dist/internal/theme-scopes.d.ts +11 -0
  572. package/dist/internal/theme-scopes.js +1 -0
  573. package/dist/internal/viewer-search.js +1 -1
  574. package/dist/looks/shadcn.css +1 -1
  575. package/dist/lyra.d.ts +1 -1
  576. package/dist/lyra.js +1 -1
  577. package/dist/styles/design-tokens.css +1 -1
  578. package/dist/styles/tokens-root.css +1 -1
  579. package/dist/surfaces/glass.css +1 -1
  580. package/dist/testing/happy-dom-shims.d.ts +37 -0
  581. package/dist/testing/happy-dom-shims.js +1 -1
  582. package/dist/testing/index.d.ts +1 -1
  583. package/dist/testing/index.js +1 -1
  584. package/dist/testing/interaction-drivers.d.ts +66 -7
  585. package/dist/testing/interaction-drivers.js +1 -1
  586. package/dist/testing/jsdom-shims.d.ts +70 -0
  587. package/dist/testing/jsdom-shims.js +1 -0
  588. package/dist/theme/look-inputs.d.ts +1 -1
  589. package/dist/theme/look-inputs.js +37 -41
  590. package/dist/theme/theme.d.ts +13 -0
  591. package/dist/theme/theme.js +1 -1
  592. package/dist/theme.css +1 -1
  593. package/dist/utilities/index.d.ts +1 -1
  594. package/dist/utilities/index.js +1 -1
  595. package/dist/utilities/scoped-registry.d.ts +3 -0
  596. package/dist/utilities/scoped-registry.js +1 -1
  597. package/dist/utilities/theme-scopes.d.ts +1 -0
  598. package/dist/utilities/theme-scopes.js +1 -0
  599. package/dist/utilities/tokens.d.ts +1 -0
  600. package/dist/utilities/tokens.js +1 -0
  601. package/llms/components/lr-accordion-item.md +1 -1
  602. package/llms/components/lr-accordion.md +1 -1
  603. package/llms/components/lr-alert.md +2 -2
  604. package/llms/components/lr-app-rail-group.md +1 -1
  605. package/llms/components/lr-app-rail-item.md +1 -1
  606. package/llms/components/lr-app-rail.md +52 -5
  607. package/llms/components/lr-attachment-chip.md +1 -10
  608. package/llms/components/lr-attachment-trigger.md +0 -10
  609. package/llms/components/lr-avatar.md +4 -8
  610. package/llms/components/lr-badge.md +16 -20
  611. package/llms/components/lr-box-plot.md +1 -1
  612. package/llms/components/lr-breadcrumb-item.md +1 -1
  613. package/llms/components/lr-breadcrumb.md +1 -1
  614. package/llms/components/lr-button-group.md +1 -1
  615. package/llms/components/lr-button.md +1 -1
  616. package/llms/components/lr-calendar.md +1 -1
  617. package/llms/components/lr-callout.md +3 -13
  618. package/llms/components/lr-card.md +1 -1
  619. package/llms/components/lr-carousel-item.md +1 -1
  620. package/llms/components/lr-carousel.md +1 -1
  621. package/llms/components/lr-chart.md +5 -7
  622. package/llms/components/lr-checkbox-group.md +1 -1
  623. package/llms/components/lr-checkbox.md +2 -1
  624. package/llms/components/lr-chip.md +3 -17
  625. package/llms/components/lr-chunk-inspector.md +2 -1
  626. package/llms/components/lr-citation-badge.md +2 -2
  627. package/llms/components/lr-code-block.md +0 -10
  628. package/llms/components/lr-code-editor.md +1 -1
  629. package/llms/components/lr-color-picker.md +1 -1
  630. package/llms/components/lr-combobox.md +6 -3
  631. package/llms/components/lr-command-palette.md +5 -2
  632. package/llms/components/lr-commit-card.md +1 -3
  633. package/llms/components/lr-condition-builder.md +1 -1
  634. package/llms/components/lr-confirm-bar.md +7 -13
  635. package/llms/components/lr-connector-manager.md +3 -1
  636. package/llms/components/lr-context-inspector.md +1 -1
  637. package/llms/components/lr-context-meter.md +1 -1
  638. package/llms/components/lr-control-group.md +1 -1
  639. package/llms/components/lr-copy-button.md +8 -10
  640. package/llms/components/lr-country-picker.md +1 -1
  641. package/llms/components/lr-currency-picker.md +1 -1
  642. package/llms/components/lr-dashboard-grid.md +1 -1
  643. package/llms/components/lr-data-grid.md +1 -1
  644. package/llms/components/lr-date-input.md +1 -1
  645. package/llms/components/lr-date-picker.md +11 -4
  646. package/llms/components/lr-details.md +1 -1
  647. package/llms/components/lr-dialog.md +8 -31
  648. package/llms/components/lr-diff-view.md +1 -1
  649. package/llms/components/lr-divider.md +1 -1
  650. package/llms/components/lr-dock-panel.md +1 -1
  651. package/llms/components/lr-document-library.md +1 -1
  652. package/llms/components/lr-drawer.md +1 -13
  653. package/llms/components/lr-drilldown-panel.md +1 -1
  654. package/llms/components/lr-drop-zone.md +4 -0
  655. package/llms/components/lr-dropdown-item.md +1 -1
  656. package/llms/components/lr-ebook-viewer.md +4 -3
  657. package/llms/components/lr-emoji-picker.md +14 -9
  658. package/llms/components/lr-entity-chip.md +2 -2
  659. package/llms/components/lr-env-list.md +1 -1
  660. package/llms/components/lr-eval-dataset.md +4 -19
  661. package/llms/components/lr-export-button.md +3 -3
  662. package/llms/components/lr-file-icon.md +0 -5
  663. package/llms/components/lr-file-input.md +3 -5
  664. package/llms/components/lr-file-tree.md +1 -1
  665. package/llms/components/lr-filter-bar.md +5 -1
  666. package/llms/components/lr-flag.md +1 -2
  667. package/llms/components/lr-flow-canvas.md +1 -1
  668. package/llms/components/lr-flow-controls.md +1 -1
  669. package/llms/components/lr-flow-minimap.md +2 -2
  670. package/llms/components/lr-flow-node.md +1 -1
  671. package/llms/components/lr-flow-run-status.md +1 -1
  672. package/llms/components/lr-format-bytes.md +2 -3
  673. package/llms/components/lr-format-date.md +2 -3
  674. package/llms/components/lr-format-number.md +1 -1
  675. package/llms/components/lr-funnel.md +1 -1
  676. package/llms/components/lr-gauge.md +1 -1
  677. package/llms/components/lr-generation-metrics.md +1 -1
  678. package/llms/components/lr-graph-query-builder.md +1 -1
  679. package/llms/components/lr-heatmap.md +1 -1
  680. package/llms/components/lr-icon-button.md +14 -2
  681. package/llms/components/lr-icon.md +1 -1
  682. package/llms/components/lr-image-viewer.md +8 -0
  683. package/llms/components/lr-input.md +1 -1
  684. package/llms/components/lr-intersection-observer.md +1 -1
  685. package/llms/components/lr-json-viewer.md +1 -1
  686. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  687. package/llms/components/lr-known-date.md +1 -1
  688. package/llms/components/lr-lite-chart.md +3 -4
  689. package/llms/components/lr-live-region.md +1 -1
  690. package/llms/components/lr-locale-picker.md +1 -1
  691. package/llms/components/lr-map.md +1 -3
  692. package/llms/components/lr-media-card.md +1 -10
  693. package/llms/components/lr-memory-panel.md +2 -0
  694. package/llms/components/lr-mention-popover.md +3 -3
  695. package/llms/components/lr-menu-item.md +1 -1
  696. package/llms/components/lr-menu-label.md +1 -1
  697. package/llms/components/lr-menu.md +1 -1
  698. package/llms/components/lr-menubar-item.md +1 -1
  699. package/llms/components/lr-menubar.md +1 -1
  700. package/llms/components/lr-message-actions.md +1 -11
  701. package/llms/components/lr-message-parts.md +3 -5
  702. package/llms/components/lr-model-select.md +2 -4
  703. package/llms/components/lr-multi-split.md +1 -1
  704. package/llms/components/lr-mutation-observer.md +2 -2
  705. package/llms/components/lr-native-time-input.md +1 -1
  706. package/llms/components/lr-navigation-menu-item.md +1 -1
  707. package/llms/components/lr-navigation-menu.md +1 -1
  708. package/llms/components/lr-number-input.md +1 -1
  709. package/llms/components/lr-option.md +1 -1
  710. package/llms/components/lr-otp-input.md +1 -1
  711. package/llms/components/lr-page.md +1 -1
  712. package/llms/components/lr-pagination.md +5 -3
  713. package/llms/components/lr-pan-zoom.md +1 -3
  714. package/llms/components/lr-permission-grant.md +3 -1
  715. package/llms/components/lr-phone-input.md +7 -5
  716. package/llms/components/lr-poll-status.md +1 -1
  717. package/llms/components/lr-popover.md +5 -9
  718. package/llms/components/lr-popup.md +1 -3
  719. package/llms/components/lr-progress-bar.md +2 -1
  720. package/llms/components/lr-progress-ring.md +4 -8
  721. package/llms/components/lr-prompt-input.md +3 -1
  722. package/llms/components/lr-prompt-studio.md +4 -4
  723. package/llms/components/lr-radio-button.md +2 -2
  724. package/llms/components/lr-radio-group.md +1 -1
  725. package/llms/components/lr-radio.md +3 -2
  726. package/llms/components/lr-random-content.md +1 -1
  727. package/llms/components/lr-rating.md +2 -3
  728. package/llms/components/lr-relative-time.md +2 -3
  729. package/llms/components/lr-reorder-item.md +1 -1
  730. package/llms/components/lr-reorder-list.md +1 -1
  731. package/llms/components/lr-research-progress.md +2 -0
  732. package/llms/components/lr-resize-observer.md +1 -1
  733. package/llms/components/lr-responsive-panel.md +1 -1
  734. package/llms/components/lr-retrieval-compare.md +2 -0
  735. package/llms/components/lr-retrieval-trace.md +2 -0
  736. package/llms/components/lr-rubric-form.md +1 -1
  737. package/llms/components/lr-scroller.md +1 -1
  738. package/llms/components/lr-segmented.md +8 -4
  739. package/llms/components/lr-select.md +1 -1
  740. package/llms/components/lr-sequence-playback.md +1 -2
  741. package/llms/components/lr-sequence-strip.md +1 -1
  742. package/llms/components/lr-signature-pad.md +1 -1
  743. package/llms/components/lr-skeleton.md +2 -4
  744. package/llms/components/lr-slider.md +1 -1
  745. package/llms/components/lr-sparkline.md +1 -1
  746. package/llms/components/lr-split-panel.md +1 -1
  747. package/llms/components/lr-stat.md +1 -1
  748. package/llms/components/lr-stepper.md +1 -1
  749. package/llms/components/lr-swatch-picker.md +1 -1
  750. package/llms/components/lr-switch.md +2 -1
  751. package/llms/components/lr-tab-group.md +1 -1
  752. package/llms/components/lr-tab-panel.md +1 -1
  753. package/llms/components/lr-tab.md +1 -1
  754. package/llms/components/lr-table.md +16 -14
  755. package/llms/components/lr-task-list.md +3 -3
  756. package/llms/components/lr-test-results.md +2 -4
  757. package/llms/components/lr-textarea.md +1 -1
  758. package/llms/components/lr-thread-list.md +4 -3
  759. package/llms/components/lr-time-input.md +1 -1
  760. package/llms/components/lr-time-range.md +5 -4
  761. package/llms/components/lr-time-zone-picker.md +1 -1
  762. package/llms/components/lr-timeline-item.md +1 -1
  763. package/llms/components/lr-timeline.md +1 -1
  764. package/llms/components/lr-toggle-group.md +1 -1
  765. package/llms/components/lr-toggle.md +1 -1
  766. package/llms/components/lr-token-input.md +1 -1
  767. package/llms/components/lr-tool-approval-dialog.md +12 -10
  768. package/llms/components/lr-tool-call-block.md +1 -1
  769. package/llms/components/lr-tool-call-chip.md +1 -3
  770. package/llms/components/lr-tool-result-view.md +3 -3
  771. package/llms/components/lr-tool-timeline.md +2 -2
  772. package/llms/components/lr-tooltip.md +8 -11
  773. package/llms/components/lr-tour.md +2 -2
  774. package/llms/components/lr-tree-item.md +1 -1
  775. package/llms/components/lr-tree.md +1 -1
  776. package/llms/components/lr-unit-picker.md +1 -1
  777. package/llms/components/lr-usage-badge.md +1 -3
  778. package/llms/components/lr-video.md +1 -2
  779. package/llms/components/lr-virtual-list.md +1 -1
  780. package/llms/components/lr-visually-hidden.md +1 -1
  781. package/llms/components/lr-voice-picker.md +1 -1
  782. package/llms/components/lr-widget.md +1 -1
  783. package/llms/components/lr-word-cloud.md +1 -1
  784. package/llms/components/lr-zoomable-frame.md +1 -6
  785. package/llms/migration.md +105 -2
  786. package/llms/peers.md +3 -2
  787. package/llms/shared/ai-and-peers.md +2 -2
  788. package/llms/shared/events-and-types.md +45 -1
  789. package/llms/shared/frameworks-and-ssr.md +16 -0
  790. package/llms/shared/imports-and-registration.md +6 -5
  791. package/llms/shared/localization-and-rtl.md +18 -18
  792. package/llms/shared/native-styles-and-utilities.md +38 -3
  793. package/llms/shared/styles-and-tokens.md +243 -103
  794. package/llms/shared/testing-and-utilities.md +134 -49
  795. package/llms/shared.md +502 -181
  796. package/llms/tokens.md +31 -49
  797. package/llms.txt +14 -12
  798. package/locales.json +1002 -1002
  799. package/package.json +28 -6884
  800. package/registrations.json +1 -1
  801. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  802. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  803. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  804. package/skills/lyra-ui/SKILL.md +145 -0
  805. package/skills/lyra-ui/commands/frontend.md +37 -0
  806. package/skills/lyra-ui/commands/migrate.md +44 -0
  807. package/skills/lyra-ui/commands/new-component.md +19 -0
  808. package/skills/lyra-ui/commands/review.md +247 -0
  809. package/skills/lyra-ui/commands/update.md +30 -0
  810. package/skills/lyra-ui/reporting.md +137 -0
  811. package/custom-elements.json +0 -1
  812. package/dist/internal/default-strings.generated.js +0 -5
  813. package/dist/internal/side-effect-only.d.ts +0 -1
  814. package/dist/internal/specialist-tokens.styles.js +0 -1
  815. package/dist/internal/tokens/palette.styles.js +0 -1
  816. package/dist/internal/tokens.styles.js +0 -1
  817. package/dist/translations/am/agent-tools.js +0 -1
  818. package/dist/translations/am/charts.js +0 -1
  819. package/dist/translations/am/conversation.js +0 -1
  820. package/dist/translations/am/data.js +0 -1
  821. package/dist/translations/am/forms.js +0 -1
  822. package/dist/translations/am/layout.js +0 -1
  823. package/dist/translations/am/media.js +0 -1
  824. package/dist/translations/am/overlays.js +0 -1
  825. package/dist/translations/am/retrieval.js +0 -1
  826. package/dist/translations/am/shared.js +0 -1
  827. package/dist/translations/am/utility.js +0 -1
  828. package/dist/translations/am/viewers.js +0 -5
  829. package/dist/translations/am.js +0 -1
  830. package/dist/translations/ar/agent-tools.js +0 -1
  831. package/dist/translations/ar/charts.js +0 -1
  832. package/dist/translations/ar/conversation.js +0 -1
  833. package/dist/translations/ar/data.js +0 -1
  834. package/dist/translations/ar/forms.js +0 -1
  835. package/dist/translations/ar/layout.js +0 -1
  836. package/dist/translations/ar/media.js +0 -1
  837. package/dist/translations/ar/overlays.js +0 -1
  838. package/dist/translations/ar/retrieval.js +0 -1
  839. package/dist/translations/ar/shared.js +0 -1
  840. package/dist/translations/ar/utility.js +0 -1
  841. package/dist/translations/ar/viewers.js +0 -5
  842. package/dist/translations/ar.js +0 -1
  843. package/dist/translations/bho/agent-tools.js +0 -1
  844. package/dist/translations/bho/charts.js +0 -1
  845. package/dist/translations/bho/conversation.js +0 -1
  846. package/dist/translations/bho/data.js +0 -1
  847. package/dist/translations/bho/forms.js +0 -1
  848. package/dist/translations/bho/layout.js +0 -1
  849. package/dist/translations/bho/media.js +0 -1
  850. package/dist/translations/bho/overlays.js +0 -1
  851. package/dist/translations/bho/retrieval.js +0 -1
  852. package/dist/translations/bho/shared.js +0 -1
  853. package/dist/translations/bho/utility.js +0 -1
  854. package/dist/translations/bho/viewers.js +0 -5
  855. package/dist/translations/bho.js +0 -1
  856. package/dist/translations/bn/agent-tools.js +0 -1
  857. package/dist/translations/bn/charts.js +0 -1
  858. package/dist/translations/bn/conversation.js +0 -1
  859. package/dist/translations/bn/data.js +0 -1
  860. package/dist/translations/bn/forms.js +0 -1
  861. package/dist/translations/bn/layout.js +0 -1
  862. package/dist/translations/bn/media.js +0 -1
  863. package/dist/translations/bn/overlays.js +0 -1
  864. package/dist/translations/bn/retrieval.js +0 -1
  865. package/dist/translations/bn/shared.js +0 -1
  866. package/dist/translations/bn/utility.js +0 -1
  867. package/dist/translations/bn/viewers.js +0 -5
  868. package/dist/translations/bn.js +0 -1
  869. package/dist/translations/cs/agent-tools.js +0 -1
  870. package/dist/translations/cs/charts.js +0 -1
  871. package/dist/translations/cs/conversation.js +0 -1
  872. package/dist/translations/cs/data.js +0 -1
  873. package/dist/translations/cs/forms.js +0 -1
  874. package/dist/translations/cs/layout.js +0 -1
  875. package/dist/translations/cs/media.js +0 -1
  876. package/dist/translations/cs/overlays.js +0 -1
  877. package/dist/translations/cs/retrieval.js +0 -1
  878. package/dist/translations/cs/shared.js +0 -1
  879. package/dist/translations/cs/utility.js +0 -1
  880. package/dist/translations/cs/viewers.js +0 -5
  881. package/dist/translations/cs.js +0 -1
  882. package/dist/translations/da/agent-tools.js +0 -1
  883. package/dist/translations/da/charts.js +0 -1
  884. package/dist/translations/da/conversation.js +0 -1
  885. package/dist/translations/da/data.js +0 -1
  886. package/dist/translations/da/forms.js +0 -1
  887. package/dist/translations/da/layout.js +0 -1
  888. package/dist/translations/da/media.js +0 -1
  889. package/dist/translations/da/overlays.js +0 -1
  890. package/dist/translations/da/retrieval.js +0 -1
  891. package/dist/translations/da/shared.js +0 -1
  892. package/dist/translations/da/utility.js +0 -1
  893. package/dist/translations/da/viewers.js +0 -5
  894. package/dist/translations/da.js +0 -1
  895. package/dist/translations/de/agent-tools.js +0 -1
  896. package/dist/translations/de/charts.js +0 -1
  897. package/dist/translations/de/conversation.js +0 -1
  898. package/dist/translations/de/data.js +0 -1
  899. package/dist/translations/de/forms.js +0 -1
  900. package/dist/translations/de/layout.js +0 -1
  901. package/dist/translations/de/media.js +0 -1
  902. package/dist/translations/de/overlays.js +0 -1
  903. package/dist/translations/de/retrieval.js +0 -1
  904. package/dist/translations/de/shared.js +0 -1
  905. package/dist/translations/de/utility.js +0 -1
  906. package/dist/translations/de/viewers.js +0 -5
  907. package/dist/translations/de-CH/agent-tools.js +0 -1
  908. package/dist/translations/de-CH/charts.js +0 -1
  909. package/dist/translations/de-CH/conversation.js +0 -1
  910. package/dist/translations/de-CH/data.js +0 -1
  911. package/dist/translations/de-CH/forms.js +0 -1
  912. package/dist/translations/de-CH/layout.js +0 -1
  913. package/dist/translations/de-CH/media.js +0 -1
  914. package/dist/translations/de-CH/overlays.js +0 -1
  915. package/dist/translations/de-CH/retrieval.js +0 -1
  916. package/dist/translations/de-CH/shared.js +0 -1
  917. package/dist/translations/de-CH/utility.js +0 -1
  918. package/dist/translations/de-CH/viewers.js +0 -1
  919. package/dist/translations/de-CH.js +0 -1
  920. package/dist/translations/de.js +0 -1
  921. package/dist/translations/el/agent-tools.js +0 -1
  922. package/dist/translations/el/charts.js +0 -1
  923. package/dist/translations/el/conversation.js +0 -1
  924. package/dist/translations/el/data.js +0 -1
  925. package/dist/translations/el/forms.js +0 -1
  926. package/dist/translations/el/layout.js +0 -1
  927. package/dist/translations/el/media.js +0 -1
  928. package/dist/translations/el/overlays.js +0 -1
  929. package/dist/translations/el/retrieval.js +0 -1
  930. package/dist/translations/el/shared.js +0 -1
  931. package/dist/translations/el/utility.js +0 -1
  932. package/dist/translations/el/viewers.js +0 -5
  933. package/dist/translations/el.js +0 -1
  934. package/dist/translations/es/agent-tools.js +0 -1
  935. package/dist/translations/es/charts.js +0 -1
  936. package/dist/translations/es/conversation.js +0 -1
  937. package/dist/translations/es/data.js +0 -1
  938. package/dist/translations/es/forms.js +0 -1
  939. package/dist/translations/es/layout.js +0 -1
  940. package/dist/translations/es/media.js +0 -1
  941. package/dist/translations/es/overlays.js +0 -1
  942. package/dist/translations/es/retrieval.js +0 -1
  943. package/dist/translations/es/shared.js +0 -1
  944. package/dist/translations/es/utility.js +0 -1
  945. package/dist/translations/es/viewers.js +0 -5
  946. package/dist/translations/es.js +0 -1
  947. package/dist/translations/fa/agent-tools.js +0 -1
  948. package/dist/translations/fa/charts.js +0 -1
  949. package/dist/translations/fa/conversation.js +0 -1
  950. package/dist/translations/fa/data.js +0 -1
  951. package/dist/translations/fa/forms.js +0 -1
  952. package/dist/translations/fa/layout.js +0 -1
  953. package/dist/translations/fa/media.js +0 -1
  954. package/dist/translations/fa/overlays.js +0 -1
  955. package/dist/translations/fa/retrieval.js +0 -1
  956. package/dist/translations/fa/shared.js +0 -1
  957. package/dist/translations/fa/utility.js +0 -1
  958. package/dist/translations/fa/viewers.js +0 -5
  959. package/dist/translations/fa-AF/agent-tools.js +0 -1
  960. package/dist/translations/fa-AF/charts.js +0 -1
  961. package/dist/translations/fa-AF/conversation.js +0 -1
  962. package/dist/translations/fa-AF/data.js +0 -1
  963. package/dist/translations/fa-AF/forms.js +0 -1
  964. package/dist/translations/fa-AF/layout.js +0 -1
  965. package/dist/translations/fa-AF/media.js +0 -1
  966. package/dist/translations/fa-AF/overlays.js +0 -1
  967. package/dist/translations/fa-AF/retrieval.js +0 -1
  968. package/dist/translations/fa-AF/shared.js +0 -1
  969. package/dist/translations/fa-AF/utility.js +0 -1
  970. package/dist/translations/fa-AF/viewers.js +0 -5
  971. package/dist/translations/fa-AF.js +0 -1
  972. package/dist/translations/fa.js +0 -1
  973. package/dist/translations/fi/agent-tools.js +0 -1
  974. package/dist/translations/fi/charts.js +0 -1
  975. package/dist/translations/fi/conversation.js +0 -1
  976. package/dist/translations/fi/data.js +0 -1
  977. package/dist/translations/fi/forms.js +0 -1
  978. package/dist/translations/fi/layout.js +0 -1
  979. package/dist/translations/fi/media.js +0 -1
  980. package/dist/translations/fi/overlays.js +0 -1
  981. package/dist/translations/fi/retrieval.js +0 -1
  982. package/dist/translations/fi/shared.js +0 -1
  983. package/dist/translations/fi/utility.js +0 -1
  984. package/dist/translations/fi/viewers.js +0 -5
  985. package/dist/translations/fi.js +0 -1
  986. package/dist/translations/fr/agent-tools.js +0 -1
  987. package/dist/translations/fr/charts.js +0 -1
  988. package/dist/translations/fr/conversation.js +0 -1
  989. package/dist/translations/fr/data.js +0 -1
  990. package/dist/translations/fr/forms.js +0 -1
  991. package/dist/translations/fr/layout.js +0 -1
  992. package/dist/translations/fr/media.js +0 -1
  993. package/dist/translations/fr/overlays.js +0 -1
  994. package/dist/translations/fr/retrieval.js +0 -1
  995. package/dist/translations/fr/shared.js +0 -1
  996. package/dist/translations/fr/utility.js +0 -1
  997. package/dist/translations/fr/viewers.js +0 -5
  998. package/dist/translations/fr.js +0 -1
  999. package/dist/translations/gu/agent-tools.js +0 -1
  1000. package/dist/translations/gu/charts.js +0 -1
  1001. package/dist/translations/gu/conversation.js +0 -1
  1002. package/dist/translations/gu/data.js +0 -1
  1003. package/dist/translations/gu/forms.js +0 -1
  1004. package/dist/translations/gu/layout.js +0 -1
  1005. package/dist/translations/gu/media.js +0 -1
  1006. package/dist/translations/gu/overlays.js +0 -1
  1007. package/dist/translations/gu/retrieval.js +0 -1
  1008. package/dist/translations/gu/shared.js +0 -1
  1009. package/dist/translations/gu/utility.js +0 -1
  1010. package/dist/translations/gu/viewers.js +0 -5
  1011. package/dist/translations/gu.js +0 -1
  1012. package/dist/translations/ha/agent-tools.js +0 -1
  1013. package/dist/translations/ha/charts.js +0 -1
  1014. package/dist/translations/ha/conversation.js +0 -1
  1015. package/dist/translations/ha/data.js +0 -1
  1016. package/dist/translations/ha/forms.js +0 -1
  1017. package/dist/translations/ha/layout.js +0 -1
  1018. package/dist/translations/ha/media.js +0 -1
  1019. package/dist/translations/ha/overlays.js +0 -1
  1020. package/dist/translations/ha/retrieval.js +0 -1
  1021. package/dist/translations/ha/shared.js +0 -1
  1022. package/dist/translations/ha/utility.js +0 -1
  1023. package/dist/translations/ha/viewers.js +0 -5
  1024. package/dist/translations/ha.js +0 -1
  1025. package/dist/translations/he/agent-tools.js +0 -1
  1026. package/dist/translations/he/charts.js +0 -1
  1027. package/dist/translations/he/conversation.js +0 -1
  1028. package/dist/translations/he/data.js +0 -1
  1029. package/dist/translations/he/forms.js +0 -1
  1030. package/dist/translations/he/layout.js +0 -1
  1031. package/dist/translations/he/media.js +0 -1
  1032. package/dist/translations/he/overlays.js +0 -1
  1033. package/dist/translations/he/retrieval.js +0 -1
  1034. package/dist/translations/he/shared.js +0 -1
  1035. package/dist/translations/he/utility.js +0 -1
  1036. package/dist/translations/he/viewers.js +0 -5
  1037. package/dist/translations/he.js +0 -1
  1038. package/dist/translations/hi/agent-tools.js +0 -1
  1039. package/dist/translations/hi/charts.js +0 -1
  1040. package/dist/translations/hi/conversation.js +0 -1
  1041. package/dist/translations/hi/data.js +0 -1
  1042. package/dist/translations/hi/forms.js +0 -1
  1043. package/dist/translations/hi/layout.js +0 -1
  1044. package/dist/translations/hi/media.js +0 -1
  1045. package/dist/translations/hi/overlays.js +0 -1
  1046. package/dist/translations/hi/retrieval.js +0 -1
  1047. package/dist/translations/hi/shared.js +0 -1
  1048. package/dist/translations/hi/utility.js +0 -1
  1049. package/dist/translations/hi/viewers.js +0 -5
  1050. package/dist/translations/hi.js +0 -1
  1051. package/dist/translations/hr/agent-tools.js +0 -1
  1052. package/dist/translations/hr/charts.js +0 -1
  1053. package/dist/translations/hr/conversation.js +0 -1
  1054. package/dist/translations/hr/data.js +0 -1
  1055. package/dist/translations/hr/forms.js +0 -1
  1056. package/dist/translations/hr/layout.js +0 -1
  1057. package/dist/translations/hr/media.js +0 -1
  1058. package/dist/translations/hr/overlays.js +0 -1
  1059. package/dist/translations/hr/retrieval.js +0 -1
  1060. package/dist/translations/hr/shared.js +0 -1
  1061. package/dist/translations/hr/utility.js +0 -1
  1062. package/dist/translations/hr/viewers.js +0 -5
  1063. package/dist/translations/hr.js +0 -1
  1064. package/dist/translations/hu/agent-tools.js +0 -1
  1065. package/dist/translations/hu/charts.js +0 -1
  1066. package/dist/translations/hu/conversation.js +0 -1
  1067. package/dist/translations/hu/data.js +0 -1
  1068. package/dist/translations/hu/forms.js +0 -1
  1069. package/dist/translations/hu/layout.js +0 -1
  1070. package/dist/translations/hu/media.js +0 -1
  1071. package/dist/translations/hu/overlays.js +0 -1
  1072. package/dist/translations/hu/retrieval.js +0 -1
  1073. package/dist/translations/hu/shared.js +0 -1
  1074. package/dist/translations/hu/utility.js +0 -1
  1075. package/dist/translations/hu/viewers.js +0 -5
  1076. package/dist/translations/hu.js +0 -1
  1077. package/dist/translations/id/agent-tools.js +0 -1
  1078. package/dist/translations/id/charts.js +0 -1
  1079. package/dist/translations/id/conversation.js +0 -1
  1080. package/dist/translations/id/data.js +0 -1
  1081. package/dist/translations/id/forms.js +0 -1
  1082. package/dist/translations/id/layout.js +0 -1
  1083. package/dist/translations/id/media.js +0 -1
  1084. package/dist/translations/id/overlays.js +0 -1
  1085. package/dist/translations/id/retrieval.js +0 -1
  1086. package/dist/translations/id/shared.js +0 -1
  1087. package/dist/translations/id/utility.js +0 -1
  1088. package/dist/translations/id/viewers.js +0 -5
  1089. package/dist/translations/id.js +0 -1
  1090. package/dist/translations/ig/agent-tools.js +0 -1
  1091. package/dist/translations/ig/charts.js +0 -1
  1092. package/dist/translations/ig/conversation.js +0 -1
  1093. package/dist/translations/ig/data.js +0 -1
  1094. package/dist/translations/ig/forms.js +0 -1
  1095. package/dist/translations/ig/layout.js +0 -1
  1096. package/dist/translations/ig/media.js +0 -1
  1097. package/dist/translations/ig/overlays.js +0 -1
  1098. package/dist/translations/ig/retrieval.js +0 -1
  1099. package/dist/translations/ig/shared.js +0 -1
  1100. package/dist/translations/ig/utility.js +0 -1
  1101. package/dist/translations/ig/viewers.js +0 -5
  1102. package/dist/translations/ig.js +0 -1
  1103. package/dist/translations/it/agent-tools.js +0 -1
  1104. package/dist/translations/it/charts.js +0 -1
  1105. package/dist/translations/it/conversation.js +0 -1
  1106. package/dist/translations/it/data.js +0 -1
  1107. package/dist/translations/it/forms.js +0 -1
  1108. package/dist/translations/it/layout.js +0 -1
  1109. package/dist/translations/it/media.js +0 -1
  1110. package/dist/translations/it/overlays.js +0 -1
  1111. package/dist/translations/it/retrieval.js +0 -1
  1112. package/dist/translations/it/shared.js +0 -1
  1113. package/dist/translations/it/utility.js +0 -1
  1114. package/dist/translations/it/viewers.js +0 -5
  1115. package/dist/translations/it.js +0 -1
  1116. package/dist/translations/ja/agent-tools.js +0 -1
  1117. package/dist/translations/ja/charts.js +0 -1
  1118. package/dist/translations/ja/conversation.js +0 -1
  1119. package/dist/translations/ja/data.js +0 -1
  1120. package/dist/translations/ja/forms.js +0 -1
  1121. package/dist/translations/ja/layout.js +0 -1
  1122. package/dist/translations/ja/media.js +0 -1
  1123. package/dist/translations/ja/overlays.js +0 -1
  1124. package/dist/translations/ja/retrieval.js +0 -1
  1125. package/dist/translations/ja/shared.js +0 -1
  1126. package/dist/translations/ja/utility.js +0 -1
  1127. package/dist/translations/ja/viewers.js +0 -4
  1128. package/dist/translations/ja.js +0 -1
  1129. package/dist/translations/jv/agent-tools.js +0 -1
  1130. package/dist/translations/jv/charts.js +0 -1
  1131. package/dist/translations/jv/conversation.js +0 -1
  1132. package/dist/translations/jv/data.js +0 -1
  1133. package/dist/translations/jv/forms.js +0 -1
  1134. package/dist/translations/jv/layout.js +0 -1
  1135. package/dist/translations/jv/media.js +0 -1
  1136. package/dist/translations/jv/overlays.js +0 -1
  1137. package/dist/translations/jv/retrieval.js +0 -1
  1138. package/dist/translations/jv/shared.js +0 -1
  1139. package/dist/translations/jv/utility.js +0 -1
  1140. package/dist/translations/jv/viewers.js +0 -5
  1141. package/dist/translations/jv.js +0 -1
  1142. package/dist/translations/kk/agent-tools.js +0 -1
  1143. package/dist/translations/kk/charts.js +0 -1
  1144. package/dist/translations/kk/conversation.js +0 -1
  1145. package/dist/translations/kk/data.js +0 -1
  1146. package/dist/translations/kk/forms.js +0 -1
  1147. package/dist/translations/kk/layout.js +0 -1
  1148. package/dist/translations/kk/media.js +0 -1
  1149. package/dist/translations/kk/overlays.js +0 -1
  1150. package/dist/translations/kk/retrieval.js +0 -1
  1151. package/dist/translations/kk/shared.js +0 -1
  1152. package/dist/translations/kk/utility.js +0 -1
  1153. package/dist/translations/kk/viewers.js +0 -5
  1154. package/dist/translations/kk.js +0 -1
  1155. package/dist/translations/kn/agent-tools.js +0 -1
  1156. package/dist/translations/kn/charts.js +0 -1
  1157. package/dist/translations/kn/conversation.js +0 -1
  1158. package/dist/translations/kn/data.js +0 -1
  1159. package/dist/translations/kn/forms.js +0 -1
  1160. package/dist/translations/kn/layout.js +0 -1
  1161. package/dist/translations/kn/media.js +0 -1
  1162. package/dist/translations/kn/overlays.js +0 -1
  1163. package/dist/translations/kn/retrieval.js +0 -1
  1164. package/dist/translations/kn/shared.js +0 -1
  1165. package/dist/translations/kn/utility.js +0 -1
  1166. package/dist/translations/kn/viewers.js +0 -5
  1167. package/dist/translations/kn.js +0 -1
  1168. package/dist/translations/ko/agent-tools.js +0 -1
  1169. package/dist/translations/ko/charts.js +0 -1
  1170. package/dist/translations/ko/conversation.js +0 -1
  1171. package/dist/translations/ko/data.js +0 -1
  1172. package/dist/translations/ko/forms.js +0 -1
  1173. package/dist/translations/ko/layout.js +0 -1
  1174. package/dist/translations/ko/media.js +0 -1
  1175. package/dist/translations/ko/overlays.js +0 -1
  1176. package/dist/translations/ko/retrieval.js +0 -1
  1177. package/dist/translations/ko/shared.js +0 -1
  1178. package/dist/translations/ko/utility.js +0 -1
  1179. package/dist/translations/ko/viewers.js +0 -5
  1180. package/dist/translations/ko.js +0 -1
  1181. package/dist/translations/ln/agent-tools.js +0 -1
  1182. package/dist/translations/ln/charts.js +0 -1
  1183. package/dist/translations/ln/conversation.js +0 -1
  1184. package/dist/translations/ln/data.js +0 -1
  1185. package/dist/translations/ln/forms.js +0 -1
  1186. package/dist/translations/ln/layout.js +0 -1
  1187. package/dist/translations/ln/media.js +0 -1
  1188. package/dist/translations/ln/overlays.js +0 -1
  1189. package/dist/translations/ln/retrieval.js +0 -1
  1190. package/dist/translations/ln/shared.js +0 -1
  1191. package/dist/translations/ln/utility.js +0 -1
  1192. package/dist/translations/ln/viewers.js +0 -5
  1193. package/dist/translations/ln.js +0 -1
  1194. package/dist/translations/ml/agent-tools.js +0 -1
  1195. package/dist/translations/ml/charts.js +0 -1
  1196. package/dist/translations/ml/conversation.js +0 -1
  1197. package/dist/translations/ml/data.js +0 -1
  1198. package/dist/translations/ml/forms.js +0 -1
  1199. package/dist/translations/ml/layout.js +0 -1
  1200. package/dist/translations/ml/media.js +0 -1
  1201. package/dist/translations/ml/overlays.js +0 -1
  1202. package/dist/translations/ml/retrieval.js +0 -1
  1203. package/dist/translations/ml/shared.js +0 -1
  1204. package/dist/translations/ml/utility.js +0 -1
  1205. package/dist/translations/ml/viewers.js +0 -5
  1206. package/dist/translations/ml.js +0 -1
  1207. package/dist/translations/mr/agent-tools.js +0 -1
  1208. package/dist/translations/mr/charts.js +0 -1
  1209. package/dist/translations/mr/conversation.js +0 -1
  1210. package/dist/translations/mr/data.js +0 -1
  1211. package/dist/translations/mr/forms.js +0 -1
  1212. package/dist/translations/mr/layout.js +0 -1
  1213. package/dist/translations/mr/media.js +0 -1
  1214. package/dist/translations/mr/overlays.js +0 -1
  1215. package/dist/translations/mr/retrieval.js +0 -1
  1216. package/dist/translations/mr/shared.js +0 -1
  1217. package/dist/translations/mr/utility.js +0 -1
  1218. package/dist/translations/mr/viewers.js +0 -5
  1219. package/dist/translations/mr.js +0 -1
  1220. package/dist/translations/ms/agent-tools.js +0 -1
  1221. package/dist/translations/ms/charts.js +0 -1
  1222. package/dist/translations/ms/conversation.js +0 -1
  1223. package/dist/translations/ms/data.js +0 -1
  1224. package/dist/translations/ms/forms.js +0 -1
  1225. package/dist/translations/ms/layout.js +0 -1
  1226. package/dist/translations/ms/media.js +0 -1
  1227. package/dist/translations/ms/overlays.js +0 -1
  1228. package/dist/translations/ms/retrieval.js +0 -1
  1229. package/dist/translations/ms/shared.js +0 -1
  1230. package/dist/translations/ms/utility.js +0 -1
  1231. package/dist/translations/ms/viewers.js +0 -5
  1232. package/dist/translations/ms.js +0 -1
  1233. package/dist/translations/my/agent-tools.js +0 -1
  1234. package/dist/translations/my/charts.js +0 -1
  1235. package/dist/translations/my/conversation.js +0 -1
  1236. package/dist/translations/my/data.js +0 -1
  1237. package/dist/translations/my/forms.js +0 -1
  1238. package/dist/translations/my/layout.js +0 -1
  1239. package/dist/translations/my/media.js +0 -1
  1240. package/dist/translations/my/overlays.js +0 -1
  1241. package/dist/translations/my/retrieval.js +0 -1
  1242. package/dist/translations/my/shared.js +0 -1
  1243. package/dist/translations/my/utility.js +0 -1
  1244. package/dist/translations/my/viewers.js +0 -5
  1245. package/dist/translations/my.js +0 -1
  1246. package/dist/translations/nb/agent-tools.js +0 -1
  1247. package/dist/translations/nb/charts.js +0 -1
  1248. package/dist/translations/nb/conversation.js +0 -1
  1249. package/dist/translations/nb/data.js +0 -1
  1250. package/dist/translations/nb/forms.js +0 -1
  1251. package/dist/translations/nb/layout.js +0 -1
  1252. package/dist/translations/nb/media.js +0 -1
  1253. package/dist/translations/nb/overlays.js +0 -1
  1254. package/dist/translations/nb/retrieval.js +0 -1
  1255. package/dist/translations/nb/shared.js +0 -1
  1256. package/dist/translations/nb/utility.js +0 -1
  1257. package/dist/translations/nb/viewers.js +0 -5
  1258. package/dist/translations/nb.js +0 -1
  1259. package/dist/translations/ne/agent-tools.js +0 -1
  1260. package/dist/translations/ne/charts.js +0 -1
  1261. package/dist/translations/ne/conversation.js +0 -1
  1262. package/dist/translations/ne/data.js +0 -1
  1263. package/dist/translations/ne/forms.js +0 -1
  1264. package/dist/translations/ne/layout.js +0 -1
  1265. package/dist/translations/ne/media.js +0 -1
  1266. package/dist/translations/ne/overlays.js +0 -1
  1267. package/dist/translations/ne/retrieval.js +0 -1
  1268. package/dist/translations/ne/shared.js +0 -1
  1269. package/dist/translations/ne/utility.js +0 -1
  1270. package/dist/translations/ne/viewers.js +0 -5
  1271. package/dist/translations/ne.js +0 -1
  1272. package/dist/translations/nl/agent-tools.js +0 -1
  1273. package/dist/translations/nl/charts.js +0 -1
  1274. package/dist/translations/nl/conversation.js +0 -1
  1275. package/dist/translations/nl/data.js +0 -1
  1276. package/dist/translations/nl/forms.js +0 -1
  1277. package/dist/translations/nl/layout.js +0 -1
  1278. package/dist/translations/nl/media.js +0 -1
  1279. package/dist/translations/nl/overlays.js +0 -1
  1280. package/dist/translations/nl/retrieval.js +0 -1
  1281. package/dist/translations/nl/shared.js +0 -1
  1282. package/dist/translations/nl/utility.js +0 -1
  1283. package/dist/translations/nl/viewers.js +0 -5
  1284. package/dist/translations/nl.js +0 -1
  1285. package/dist/translations/nn/agent-tools.js +0 -1
  1286. package/dist/translations/nn/charts.js +0 -1
  1287. package/dist/translations/nn/conversation.js +0 -1
  1288. package/dist/translations/nn/data.js +0 -1
  1289. package/dist/translations/nn/forms.js +0 -1
  1290. package/dist/translations/nn/layout.js +0 -1
  1291. package/dist/translations/nn/media.js +0 -1
  1292. package/dist/translations/nn/overlays.js +0 -1
  1293. package/dist/translations/nn/retrieval.js +0 -1
  1294. package/dist/translations/nn/shared.js +0 -1
  1295. package/dist/translations/nn/utility.js +0 -1
  1296. package/dist/translations/nn/viewers.js +0 -5
  1297. package/dist/translations/nn.js +0 -1
  1298. package/dist/translations/om/agent-tools.js +0 -1
  1299. package/dist/translations/om/charts.js +0 -1
  1300. package/dist/translations/om/conversation.js +0 -1
  1301. package/dist/translations/om/data.js +0 -1
  1302. package/dist/translations/om/forms.js +0 -1
  1303. package/dist/translations/om/layout.js +0 -1
  1304. package/dist/translations/om/media.js +0 -1
  1305. package/dist/translations/om/overlays.js +0 -1
  1306. package/dist/translations/om/retrieval.js +0 -1
  1307. package/dist/translations/om/shared.js +0 -1
  1308. package/dist/translations/om/utility.js +0 -1
  1309. package/dist/translations/om/viewers.js +0 -5
  1310. package/dist/translations/om.js +0 -1
  1311. package/dist/translations/or/agent-tools.js +0 -1
  1312. package/dist/translations/or/charts.js +0 -1
  1313. package/dist/translations/or/conversation.js +0 -1
  1314. package/dist/translations/or/data.js +0 -1
  1315. package/dist/translations/or/forms.js +0 -1
  1316. package/dist/translations/or/layout.js +0 -1
  1317. package/dist/translations/or/media.js +0 -1
  1318. package/dist/translations/or/overlays.js +0 -1
  1319. package/dist/translations/or/retrieval.js +0 -1
  1320. package/dist/translations/or/shared.js +0 -1
  1321. package/dist/translations/or/utility.js +0 -1
  1322. package/dist/translations/or/viewers.js +0 -5
  1323. package/dist/translations/or.js +0 -1
  1324. package/dist/translations/pa/agent-tools.js +0 -1
  1325. package/dist/translations/pa/charts.js +0 -1
  1326. package/dist/translations/pa/conversation.js +0 -1
  1327. package/dist/translations/pa/data.js +0 -1
  1328. package/dist/translations/pa/forms.js +0 -1
  1329. package/dist/translations/pa/layout.js +0 -1
  1330. package/dist/translations/pa/media.js +0 -1
  1331. package/dist/translations/pa/overlays.js +0 -1
  1332. package/dist/translations/pa/retrieval.js +0 -1
  1333. package/dist/translations/pa/shared.js +0 -1
  1334. package/dist/translations/pa/utility.js +0 -1
  1335. package/dist/translations/pa/viewers.js +0 -5
  1336. package/dist/translations/pa.js +0 -1
  1337. package/dist/translations/pcm/agent-tools.js +0 -1
  1338. package/dist/translations/pcm/charts.js +0 -1
  1339. package/dist/translations/pcm/conversation.js +0 -1
  1340. package/dist/translations/pcm/data.js +0 -1
  1341. package/dist/translations/pcm/forms.js +0 -1
  1342. package/dist/translations/pcm/layout.js +0 -1
  1343. package/dist/translations/pcm/media.js +0 -1
  1344. package/dist/translations/pcm/overlays.js +0 -1
  1345. package/dist/translations/pcm/retrieval.js +0 -1
  1346. package/dist/translations/pcm/shared.js +0 -1
  1347. package/dist/translations/pcm/utility.js +0 -1
  1348. package/dist/translations/pcm/viewers.js +0 -5
  1349. package/dist/translations/pcm.js +0 -1
  1350. package/dist/translations/pl/agent-tools.js +0 -1
  1351. package/dist/translations/pl/charts.js +0 -1
  1352. package/dist/translations/pl/conversation.js +0 -1
  1353. package/dist/translations/pl/data.js +0 -1
  1354. package/dist/translations/pl/forms.js +0 -1
  1355. package/dist/translations/pl/layout.js +0 -1
  1356. package/dist/translations/pl/media.js +0 -1
  1357. package/dist/translations/pl/overlays.js +0 -1
  1358. package/dist/translations/pl/retrieval.js +0 -1
  1359. package/dist/translations/pl/shared.js +0 -1
  1360. package/dist/translations/pl/utility.js +0 -1
  1361. package/dist/translations/pl/viewers.js +0 -5
  1362. package/dist/translations/pl.js +0 -1
  1363. package/dist/translations/pnb/agent-tools.js +0 -1
  1364. package/dist/translations/pnb/charts.js +0 -1
  1365. package/dist/translations/pnb/conversation.js +0 -1
  1366. package/dist/translations/pnb/data.js +0 -1
  1367. package/dist/translations/pnb/forms.js +0 -1
  1368. package/dist/translations/pnb/layout.js +0 -1
  1369. package/dist/translations/pnb/media.js +0 -1
  1370. package/dist/translations/pnb/overlays.js +0 -1
  1371. package/dist/translations/pnb/retrieval.js +0 -1
  1372. package/dist/translations/pnb/shared.js +0 -1
  1373. package/dist/translations/pnb/utility.js +0 -1
  1374. package/dist/translations/pnb/viewers.js +0 -5
  1375. package/dist/translations/pnb.js +0 -1
  1376. package/dist/translations/ps/agent-tools.js +0 -1
  1377. package/dist/translations/ps/charts.js +0 -1
  1378. package/dist/translations/ps/conversation.js +0 -1
  1379. package/dist/translations/ps/data.js +0 -1
  1380. package/dist/translations/ps/forms.js +0 -1
  1381. package/dist/translations/ps/layout.js +0 -1
  1382. package/dist/translations/ps/media.js +0 -1
  1383. package/dist/translations/ps/overlays.js +0 -1
  1384. package/dist/translations/ps/retrieval.js +0 -1
  1385. package/dist/translations/ps/shared.js +0 -1
  1386. package/dist/translations/ps/utility.js +0 -1
  1387. package/dist/translations/ps/viewers.js +0 -5
  1388. package/dist/translations/ps.js +0 -1
  1389. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1390. package/dist/translations/pt-BR/charts.js +0 -1
  1391. package/dist/translations/pt-BR/conversation.js +0 -1
  1392. package/dist/translations/pt-BR/data.js +0 -1
  1393. package/dist/translations/pt-BR/forms.js +0 -1
  1394. package/dist/translations/pt-BR/layout.js +0 -1
  1395. package/dist/translations/pt-BR/media.js +0 -1
  1396. package/dist/translations/pt-BR/overlays.js +0 -1
  1397. package/dist/translations/pt-BR/retrieval.js +0 -1
  1398. package/dist/translations/pt-BR/shared.js +0 -1
  1399. package/dist/translations/pt-BR/utility.js +0 -1
  1400. package/dist/translations/pt-BR/viewers.js +0 -5
  1401. package/dist/translations/pt-BR.js +0 -1
  1402. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1403. package/dist/translations/pt-PT/charts.js +0 -1
  1404. package/dist/translations/pt-PT/conversation.js +0 -1
  1405. package/dist/translations/pt-PT/data.js +0 -1
  1406. package/dist/translations/pt-PT/forms.js +0 -1
  1407. package/dist/translations/pt-PT/layout.js +0 -1
  1408. package/dist/translations/pt-PT/media.js +0 -1
  1409. package/dist/translations/pt-PT/overlays.js +0 -1
  1410. package/dist/translations/pt-PT/retrieval.js +0 -1
  1411. package/dist/translations/pt-PT/shared.js +0 -1
  1412. package/dist/translations/pt-PT/utility.js +0 -1
  1413. package/dist/translations/pt-PT/viewers.js +0 -5
  1414. package/dist/translations/pt-PT.js +0 -1
  1415. package/dist/translations/ro/agent-tools.js +0 -1
  1416. package/dist/translations/ro/charts.js +0 -1
  1417. package/dist/translations/ro/conversation.js +0 -1
  1418. package/dist/translations/ro/data.js +0 -1
  1419. package/dist/translations/ro/forms.js +0 -1
  1420. package/dist/translations/ro/layout.js +0 -1
  1421. package/dist/translations/ro/media.js +0 -1
  1422. package/dist/translations/ro/overlays.js +0 -1
  1423. package/dist/translations/ro/retrieval.js +0 -1
  1424. package/dist/translations/ro/shared.js +0 -1
  1425. package/dist/translations/ro/utility.js +0 -1
  1426. package/dist/translations/ro/viewers.js +0 -5
  1427. package/dist/translations/ro.js +0 -1
  1428. package/dist/translations/ru/agent-tools.js +0 -1
  1429. package/dist/translations/ru/charts.js +0 -1
  1430. package/dist/translations/ru/conversation.js +0 -1
  1431. package/dist/translations/ru/data.js +0 -1
  1432. package/dist/translations/ru/forms.js +0 -1
  1433. package/dist/translations/ru/layout.js +0 -1
  1434. package/dist/translations/ru/media.js +0 -1
  1435. package/dist/translations/ru/overlays.js +0 -1
  1436. package/dist/translations/ru/retrieval.js +0 -1
  1437. package/dist/translations/ru/shared.js +0 -1
  1438. package/dist/translations/ru/utility.js +0 -1
  1439. package/dist/translations/ru/viewers.js +0 -5
  1440. package/dist/translations/ru.js +0 -1
  1441. package/dist/translations/sd/agent-tools.js +0 -1
  1442. package/dist/translations/sd/charts.js +0 -1
  1443. package/dist/translations/sd/conversation.js +0 -1
  1444. package/dist/translations/sd/data.js +0 -1
  1445. package/dist/translations/sd/forms.js +0 -1
  1446. package/dist/translations/sd/layout.js +0 -1
  1447. package/dist/translations/sd/media.js +0 -1
  1448. package/dist/translations/sd/overlays.js +0 -1
  1449. package/dist/translations/sd/retrieval.js +0 -1
  1450. package/dist/translations/sd/shared.js +0 -1
  1451. package/dist/translations/sd/utility.js +0 -1
  1452. package/dist/translations/sd/viewers.js +0 -5
  1453. package/dist/translations/sd.js +0 -1
  1454. package/dist/translations/sl/agent-tools.js +0 -1
  1455. package/dist/translations/sl/charts.js +0 -1
  1456. package/dist/translations/sl/conversation.js +0 -1
  1457. package/dist/translations/sl/data.js +0 -1
  1458. package/dist/translations/sl/forms.js +0 -1
  1459. package/dist/translations/sl/layout.js +0 -1
  1460. package/dist/translations/sl/media.js +0 -1
  1461. package/dist/translations/sl/overlays.js +0 -1
  1462. package/dist/translations/sl/retrieval.js +0 -1
  1463. package/dist/translations/sl/shared.js +0 -1
  1464. package/dist/translations/sl/utility.js +0 -1
  1465. package/dist/translations/sl/viewers.js +0 -5
  1466. package/dist/translations/sl.js +0 -1
  1467. package/dist/translations/su/agent-tools.js +0 -1
  1468. package/dist/translations/su/charts.js +0 -1
  1469. package/dist/translations/su/conversation.js +0 -1
  1470. package/dist/translations/su/data.js +0 -1
  1471. package/dist/translations/su/forms.js +0 -1
  1472. package/dist/translations/su/layout.js +0 -1
  1473. package/dist/translations/su/media.js +0 -1
  1474. package/dist/translations/su/overlays.js +0 -1
  1475. package/dist/translations/su/retrieval.js +0 -1
  1476. package/dist/translations/su/shared.js +0 -1
  1477. package/dist/translations/su/utility.js +0 -1
  1478. package/dist/translations/su/viewers.js +0 -5
  1479. package/dist/translations/su.js +0 -1
  1480. package/dist/translations/sv/agent-tools.js +0 -1
  1481. package/dist/translations/sv/charts.js +0 -1
  1482. package/dist/translations/sv/conversation.js +0 -1
  1483. package/dist/translations/sv/data.js +0 -1
  1484. package/dist/translations/sv/forms.js +0 -1
  1485. package/dist/translations/sv/layout.js +0 -1
  1486. package/dist/translations/sv/media.js +0 -1
  1487. package/dist/translations/sv/overlays.js +0 -1
  1488. package/dist/translations/sv/retrieval.js +0 -1
  1489. package/dist/translations/sv/shared.js +0 -1
  1490. package/dist/translations/sv/utility.js +0 -1
  1491. package/dist/translations/sv/viewers.js +0 -5
  1492. package/dist/translations/sv.js +0 -1
  1493. package/dist/translations/sw/agent-tools.js +0 -1
  1494. package/dist/translations/sw/charts.js +0 -1
  1495. package/dist/translations/sw/conversation.js +0 -1
  1496. package/dist/translations/sw/data.js +0 -1
  1497. package/dist/translations/sw/forms.js +0 -1
  1498. package/dist/translations/sw/layout.js +0 -1
  1499. package/dist/translations/sw/media.js +0 -1
  1500. package/dist/translations/sw/overlays.js +0 -1
  1501. package/dist/translations/sw/retrieval.js +0 -1
  1502. package/dist/translations/sw/shared.js +0 -1
  1503. package/dist/translations/sw/utility.js +0 -1
  1504. package/dist/translations/sw/viewers.js +0 -5
  1505. package/dist/translations/sw.js +0 -1
  1506. package/dist/translations/ta/agent-tools.js +0 -1
  1507. package/dist/translations/ta/charts.js +0 -1
  1508. package/dist/translations/ta/conversation.js +0 -1
  1509. package/dist/translations/ta/data.js +0 -1
  1510. package/dist/translations/ta/forms.js +0 -1
  1511. package/dist/translations/ta/layout.js +0 -1
  1512. package/dist/translations/ta/media.js +0 -1
  1513. package/dist/translations/ta/overlays.js +0 -1
  1514. package/dist/translations/ta/retrieval.js +0 -1
  1515. package/dist/translations/ta/shared.js +0 -1
  1516. package/dist/translations/ta/utility.js +0 -1
  1517. package/dist/translations/ta/viewers.js +0 -5
  1518. package/dist/translations/ta.js +0 -1
  1519. package/dist/translations/te/agent-tools.js +0 -1
  1520. package/dist/translations/te/charts.js +0 -1
  1521. package/dist/translations/te/conversation.js +0 -1
  1522. package/dist/translations/te/data.js +0 -1
  1523. package/dist/translations/te/forms.js +0 -1
  1524. package/dist/translations/te/layout.js +0 -1
  1525. package/dist/translations/te/media.js +0 -1
  1526. package/dist/translations/te/overlays.js +0 -1
  1527. package/dist/translations/te/retrieval.js +0 -1
  1528. package/dist/translations/te/shared.js +0 -1
  1529. package/dist/translations/te/utility.js +0 -1
  1530. package/dist/translations/te/viewers.js +0 -5
  1531. package/dist/translations/te.js +0 -1
  1532. package/dist/translations/th/agent-tools.js +0 -1
  1533. package/dist/translations/th/charts.js +0 -1
  1534. package/dist/translations/th/conversation.js +0 -1
  1535. package/dist/translations/th/data.js +0 -1
  1536. package/dist/translations/th/forms.js +0 -1
  1537. package/dist/translations/th/layout.js +0 -1
  1538. package/dist/translations/th/media.js +0 -1
  1539. package/dist/translations/th/overlays.js +0 -1
  1540. package/dist/translations/th/retrieval.js +0 -1
  1541. package/dist/translations/th/shared.js +0 -1
  1542. package/dist/translations/th/utility.js +0 -1
  1543. package/dist/translations/th/viewers.js +0 -5
  1544. package/dist/translations/th.js +0 -1
  1545. package/dist/translations/tl/agent-tools.js +0 -1
  1546. package/dist/translations/tl/charts.js +0 -1
  1547. package/dist/translations/tl/conversation.js +0 -1
  1548. package/dist/translations/tl/data.js +0 -1
  1549. package/dist/translations/tl/forms.js +0 -1
  1550. package/dist/translations/tl/layout.js +0 -1
  1551. package/dist/translations/tl/media.js +0 -1
  1552. package/dist/translations/tl/overlays.js +0 -1
  1553. package/dist/translations/tl/retrieval.js +0 -1
  1554. package/dist/translations/tl/shared.js +0 -1
  1555. package/dist/translations/tl/utility.js +0 -1
  1556. package/dist/translations/tl/viewers.js +0 -5
  1557. package/dist/translations/tl.js +0 -1
  1558. package/dist/translations/tr/agent-tools.js +0 -1
  1559. package/dist/translations/tr/charts.js +0 -1
  1560. package/dist/translations/tr/conversation.js +0 -1
  1561. package/dist/translations/tr/data.js +0 -1
  1562. package/dist/translations/tr/forms.js +0 -1
  1563. package/dist/translations/tr/layout.js +0 -1
  1564. package/dist/translations/tr/media.js +0 -1
  1565. package/dist/translations/tr/overlays.js +0 -1
  1566. package/dist/translations/tr/retrieval.js +0 -1
  1567. package/dist/translations/tr/shared.js +0 -1
  1568. package/dist/translations/tr/utility.js +0 -1
  1569. package/dist/translations/tr/viewers.js +0 -5
  1570. package/dist/translations/tr.js +0 -1
  1571. package/dist/translations/uk/agent-tools.js +0 -1
  1572. package/dist/translations/uk/charts.js +0 -1
  1573. package/dist/translations/uk/conversation.js +0 -1
  1574. package/dist/translations/uk/data.js +0 -1
  1575. package/dist/translations/uk/forms.js +0 -1
  1576. package/dist/translations/uk/layout.js +0 -1
  1577. package/dist/translations/uk/media.js +0 -1
  1578. package/dist/translations/uk/overlays.js +0 -1
  1579. package/dist/translations/uk/retrieval.js +0 -1
  1580. package/dist/translations/uk/shared.js +0 -1
  1581. package/dist/translations/uk/utility.js +0 -1
  1582. package/dist/translations/uk/viewers.js +0 -5
  1583. package/dist/translations/uk.js +0 -1
  1584. package/dist/translations/ur/agent-tools.js +0 -1
  1585. package/dist/translations/ur/charts.js +0 -1
  1586. package/dist/translations/ur/conversation.js +0 -1
  1587. package/dist/translations/ur/data.js +0 -1
  1588. package/dist/translations/ur/forms.js +0 -1
  1589. package/dist/translations/ur/layout.js +0 -1
  1590. package/dist/translations/ur/media.js +0 -1
  1591. package/dist/translations/ur/overlays.js +0 -1
  1592. package/dist/translations/ur/retrieval.js +0 -1
  1593. package/dist/translations/ur/shared.js +0 -1
  1594. package/dist/translations/ur/utility.js +0 -1
  1595. package/dist/translations/ur/viewers.js +0 -5
  1596. package/dist/translations/ur.js +0 -1
  1597. package/dist/translations/uz/agent-tools.js +0 -1
  1598. package/dist/translations/uz/charts.js +0 -1
  1599. package/dist/translations/uz/conversation.js +0 -1
  1600. package/dist/translations/uz/data.js +0 -1
  1601. package/dist/translations/uz/forms.js +0 -1
  1602. package/dist/translations/uz/layout.js +0 -1
  1603. package/dist/translations/uz/media.js +0 -1
  1604. package/dist/translations/uz/overlays.js +0 -1
  1605. package/dist/translations/uz/retrieval.js +0 -1
  1606. package/dist/translations/uz/shared.js +0 -1
  1607. package/dist/translations/uz/utility.js +0 -1
  1608. package/dist/translations/uz/viewers.js +0 -5
  1609. package/dist/translations/uz.js +0 -1
  1610. package/dist/translations/vi/agent-tools.js +0 -1
  1611. package/dist/translations/vi/charts.js +0 -1
  1612. package/dist/translations/vi/conversation.js +0 -1
  1613. package/dist/translations/vi/data.js +0 -1
  1614. package/dist/translations/vi/forms.js +0 -1
  1615. package/dist/translations/vi/layout.js +0 -1
  1616. package/dist/translations/vi/media.js +0 -1
  1617. package/dist/translations/vi/overlays.js +0 -1
  1618. package/dist/translations/vi/retrieval.js +0 -1
  1619. package/dist/translations/vi/shared.js +0 -1
  1620. package/dist/translations/vi/utility.js +0 -1
  1621. package/dist/translations/vi/viewers.js +0 -5
  1622. package/dist/translations/vi.js +0 -1
  1623. package/dist/translations/yo/agent-tools.js +0 -1
  1624. package/dist/translations/yo/charts.js +0 -1
  1625. package/dist/translations/yo/conversation.js +0 -1
  1626. package/dist/translations/yo/data.js +0 -1
  1627. package/dist/translations/yo/forms.js +0 -1
  1628. package/dist/translations/yo/layout.js +0 -1
  1629. package/dist/translations/yo/media.js +0 -1
  1630. package/dist/translations/yo/overlays.js +0 -1
  1631. package/dist/translations/yo/retrieval.js +0 -1
  1632. package/dist/translations/yo/shared.js +0 -1
  1633. package/dist/translations/yo/utility.js +0 -1
  1634. package/dist/translations/yo/viewers.js +0 -5
  1635. package/dist/translations/yo.js +0 -1
  1636. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1637. package/dist/translations/zh-CN/charts.js +0 -1
  1638. package/dist/translations/zh-CN/conversation.js +0 -1
  1639. package/dist/translations/zh-CN/data.js +0 -1
  1640. package/dist/translations/zh-CN/forms.js +0 -1
  1641. package/dist/translations/zh-CN/layout.js +0 -1
  1642. package/dist/translations/zh-CN/media.js +0 -1
  1643. package/dist/translations/zh-CN/overlays.js +0 -1
  1644. package/dist/translations/zh-CN/retrieval.js +0 -1
  1645. package/dist/translations/zh-CN/shared.js +0 -1
  1646. package/dist/translations/zh-CN/utility.js +0 -1
  1647. package/dist/translations/zh-CN/viewers.js +0 -5
  1648. package/dist/translations/zh-CN.js +0 -1
  1649. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1650. package/dist/translations/zh-TW/charts.js +0 -1
  1651. package/dist/translations/zh-TW/conversation.js +0 -1
  1652. package/dist/translations/zh-TW/data.js +0 -1
  1653. package/dist/translations/zh-TW/forms.js +0 -1
  1654. package/dist/translations/zh-TW/layout.js +0 -1
  1655. package/dist/translations/zh-TW/media.js +0 -1
  1656. package/dist/translations/zh-TW/overlays.js +0 -1
  1657. package/dist/translations/zh-TW/retrieval.js +0 -1
  1658. package/dist/translations/zh-TW/shared.js +0 -1
  1659. package/dist/translations/zh-TW/utility.js +0 -1
  1660. package/dist/translations/zh-TW/viewers.js +0 -5
  1661. package/dist/translations/zh-TW.js +0 -1
  1662. package/dist/translations/zu/agent-tools.js +0 -1
  1663. package/dist/translations/zu/charts.js +0 -1
  1664. package/dist/translations/zu/conversation.js +0 -1
  1665. package/dist/translations/zu/data.js +0 -1
  1666. package/dist/translations/zu/forms.js +0 -1
  1667. package/dist/translations/zu/layout.js +0 -1
  1668. package/dist/translations/zu/media.js +0 -1
  1669. package/dist/translations/zu/overlays.js +0 -1
  1670. package/dist/translations/zu/retrieval.js +0 -1
  1671. package/dist/translations/zu/shared.js +0 -1
  1672. package/dist/translations/zu/utility.js +0 -1
  1673. package/dist/translations/zu/viewers.js +0 -5
  1674. package/dist/translations/zu.js +0 -1
  1675. package/vscode-css-data.json +0 -1
  1676. package/vscode-html-data.json +0 -1
  1677. package/web-types.json +0 -1
@@ -1,4 +1,4 @@
1
- var _a;import{__decorate}from"tslib";import{maxCssTime}from"../../../internal/css-motion-time.js";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{deferredPlaceReady as place,syncTopLayerRelease,topLayerPlacement,waitForDeferredPlacement}from"../../../internal/anchored-overlay-runtime.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{isRovingTargetAvailable,resolveListMove}from"../../../internal/list-navigation.js";import{DocumentPointerListener}from"../../../internal/document-pointer.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{rtlAwarePlacement}from"../../../internal/rtl.js";import{nextId,resolveAccessibleTrigger}from"../../../internal/a11y.js";import{collectFocusableElements,composedContains}from"../../../internal/overlay-manager.js";import{styles}from"./menu.styles.js";import{menuItemOwner,submenuPanelController}from"./menu-shared.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{tag}from"../../../internal/prefix.js";import{activeElementIn}from"../../../internal/active-element.js";import{syncAriaDescribedByElements}from"../../../internal/aria-reflection.js";import"./menu-item.class.js";import{LYRA_DEFAULT_menuLabel}from"../../../internal/default-strings.generated.js";const SUBMENU_PLACEMENT="right-start",SUBMENU_FALLBACK_PLACEMENTS=["right-end","left-start","left-end","bottom-start","top-start"],MENUBAR_PLACEMENT="bottom-start",SUBMENU_OPEN_DELAY=150,SUBMENU_CLOSE_DELAY=300;function isLyraMenuItemElement(value){return isHtmlElement(value)?value.localName===tag("menu-item")||value.localName===tag("dropdown-item"):!1}function isLyraMenuElement(value){return isHtmlElement(value)&&value.localName===tag("menu")}function isUsableActiveElement(value){if(typeof value!="object"&&typeof value!="function"||value===null)return!1;try{const candidate=value;if(candidate.nodeType!==1)return!1;const NodeConstructor=candidate.ownerDocument?.defaultView?.Node??(typeof Node>"u"?void 0:Node);return NodeConstructor?(NodeConstructor.prototype.getRootNode.call(candidate),!0):!1}catch{return!1}}function safeDeepActiveElement(root){const initial=activeElementIn(root);if(!isUsableActiveElement(initial))return null;let active=initial;for(;;){let shadowRoot;try{shadowRoot=active.shadowRoot}catch{return null}if(!shadowRoot)return active;const nested=activeElementIn(shadowRoot);if(nested===null)return active;if(!isUsableActiveElement(nested))return null;active=nested}}let menuWidthScaleRegistered=!1;function registerMenuWidthScale(){if(!menuWidthScaleRegistered&&(menuWidthScaleRegistered=!0,!(typeof CSS>"u"||typeof CSS.registerProperty!="function")))try{CSS.registerProperty({name:"--_lr-menu-max-inline-size",syntax:"<length-percentage>",inherits:!1,initialValue:"100%"})}catch{}}class LyraMenu extends LyraElement{constructor(){super(...arguments),this.presentationOpen=!1,this.presentationHidden=!0,this.submenuAnchor=null,this.submenuStateChange=null,this.dropdownContained=!1,this.dropdownOwner=null,this._dropdownOpen=!1,this.dropdownRendersMenuRole=!1,this.dropdownStayOpenOnSelect=!1,this.items=[],this.activeIndex=-1,this.presentationPositioned=!1,this.pointer=new DocumentPointerListener(this,event=>this.onDocPointer(event)),this.menubarAnchored=!1,this.pendingFocus="first",this.listId=nextId("menu-list"),this.owningMenu={activate:item=>this.onOwnedItemSelect(item),uncheckRadioGroup:(item,group)=>this.uncheckRadioGroupSiblings(item,group)},this.typeBuffer=new TypeAheadBuffer(this),this[_a]=this.createSubmenuController(),this.onRegionSlotChange=()=>{this.syncRegionState()},this.onDocPointer=e=>{const path=e.composedPath();path.includes(this)||this.submenuAnchor&&path.includes(this.submenuAnchor)||this.closePresentation()},this.onItemsSlotChange=e=>{this.syncItemsFromSlot(e.target)},this.itemStateChangeReconciliationPending=!1,this.onItemStateChangeEvent=event=>{event.stopPropagation(),!this.itemStateChangeReconciliationPending&&(this.itemStateChangeReconciliationPending=!0,queueMicrotask(()=>{this.itemStateChangeReconciliationPending=!1,this.onItemStateChange()}))},this.onItemStateChange=()=>{const navigable=this.items.filter(item=>this.isNavigable(item));if(this.activeIndex>=0&&!this.isNavigable(this.items[this.activeIndex])){const current=this.activeIndex,displaced=this.items[current],focused=safeDeepActiveElement(this.ownerDocument),displacedHadFocus=focused===null||focused===this.ownerDocument.body||focused===displaced||composedContains(displaced,focused),next=navigable.find(item=>this.items.indexOf(item)>current)??navigable.find(item=>this.items.indexOf(item)<current);next?this.setActiveItem(next,displacedHadFocus):(this.activeIndex=-1,this.applyRovingTabIndex(),displacedHadFocus&&this.rehomeZeroSurvivorFocus());return}this.applyRovingTabIndex()},this.onListFocusIn=e=>{const target=e.target;if(!isLyraMenuItemElement(target))return;const index=this.items.indexOf(target);index===-1||index===this.activeIndex||!this.isNavigable(target)||(this.activeIndex=index,this.applyRovingTabIndex(),this.closeSubmenus(target))},this.onListKeyDown=e=>{if(this.isForeignEvent(e)||e.altKey||e.ctrlKey||e.metaKey||e.isComposing||e.keyCode===229)return;const isItemTarget=isLyraMenuItemElement(e.target);if(e.key==="Escape"&&isItemTarget&&!this.hasStandalonePresentation){e.preventDefault(),this.closePresentation({focusTrigger:!0});return}if(!isItemTarget)return;const navigable=this.items.filter(i=>this.isNavigable(i)),current=this.activeIndex>=0?this.items[this.activeIndex]:void 0,currentNavIndex=current?navigable.indexOf(current):-1,intoSubmenuKey=this.effectiveDirection==="rtl"?"ArrowLeft":"ArrowRight";switch(e.key){case"ArrowRight":case"ArrowLeft":e.key===intoSubmenuKey?current?.hasSubmenu&&this.isNavigable(current)&&(e.preventDefault(),this.closeSubmenus(current),current.openSubmenu("first")):this.submenuAnchor&&!this.menubarAnchored&&(e.preventDefault(),this.closePresentation({focusTrigger:!0}));break;case"ArrowDown":case"ArrowUp":case"Home":case"End":{e.preventDefault();const nextIndex=resolveListMove(e,{count:navigable.length,current:currentNavIndex,orientation:"vertical"});nextIndex!==null&&this.setActiveItem(navigable[nextIndex]);break}case"Enter":case" ":e.preventDefault(),current?.hasSubmenu?(this.closeSubmenus(current),current.openSubmenu("first")):current?.isLinkItem?current.click():current?.select();break;default:this.typeBuffer.accepts(e)&&this.typeAhead(e.key);return}},this.onPopupPointerOver=e=>{if(!this.interactionOpen)return;const hovered=this.ownItemFromEvent(e);this.clearOwnedTimeout(this.submenuOpenTimer),this.submenuOpenTimer=void 0;const opened=this.openSubmenuItem();opened&&opened===hovered?(this.clearOwnedTimeout(this.submenuCloseTimer),this.submenuCloseTimer=void 0):opened&&this.scheduleSubmenuClose(opened),!(!hovered||hovered===opened||!hovered.hasSubmenu||!this.isNavigable(hovered))&&(this.submenuOpenTimer=this.scheduleOwnedTimeout(()=>{this.submenuOpenTimer=void 0,!(!this.interactionOpen||!this.items.includes(hovered))&&(this.closeSubmenus(hovered),hovered.openSubmenu("none"))},SUBMENU_OPEN_DELAY))},this.onPopupPointerLeave=()=>{this.clearOwnedTimeout(this.submenuOpenTimer),this.submenuOpenTimer=void 0;const opened=this.openSubmenuItem();opened&&this.scheduleSubmenuClose(opened)},this.onNestedSelect=e=>{if(e.target===this)return;const event=e;this.dropdownStayOpenOnSelect&&event.preventDefault(),queueMicrotask(()=>{event.defaultPrevented||this.dismissAfterSelection(!0)})},this.onPopupKeyDown=e=>{const listEl=this.popupPart("list");if(e.key==="Escape"){if(listEl&&e.composedPath().includes(listEl)||this.hasStandalonePresentation)return;e.preventDefault(),this.closePresentation({focusTrigger:!0});return}e.key==="Tab"&&this.tabWouldLeavePopup(e)&&this.closePresentation()}}static{_a=submenuPanelController}static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel}}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-select"])}static{this.identityEventDetailProperties=Object.freeze({"lr-select":Object.freeze(["item"])})}static{this.styles=[LyraElement.styles,styles]}get dropdownOpen(){return this._dropdownOpen}set dropdownOpen(next){const normalized=!!next;if(normalized===this._dropdownOpen)return;const old=this._dropdownOpen;this._dropdownOpen=normalized,this.presentationOpen=normalized,this.requestUpdate("dropdownOpen",old)}createSubmenuController(){const menu=this;return{get open(){return menu.submenuAnchor!==null&&menu.presentationOpen},attach(anchor,onStateChange,options){menu.submenuAnchor&&menu.submenuAnchor!==anchor&&menu.closePresentation(),menu.menubarAnchored=options?.menubar===!0,menu.submenuAnchor=anchor,menu.submenuStateChange=onStateChange,menu.syncPresentationState(),menu.requestUpdate()},detach(anchor){menu.submenuAnchor===anchor&&(menu.closePresentation(),menu.submenuAnchor=null,menu.menubarAnchored=!1,menu.submenuStateChange=null,menu.cleanup?.(),menu.cleanup=void 0,menu.syncPresentationState(),menu.requestUpdate())},async show(focus="first"){menu.submenuAnchor&&(menu.openPresentation(focus),await menu.updateComplete,await menu.focusAfterPlacement(focus))},async hide(options){menu.closePresentation(options),await menu.updateComplete}}}connectedCallback(){if(super.connectedCallback(),registerMenuWidthScale(),this.hasUpdated){const slot=this.renderRoot.querySelector("slot:not([name])");slot&&this.syncItemsFromSlot(slot)}}firstUpdated(changed){super.firstUpdated(changed),this.syncRegionState(),this.syncPresentationState();const slot=this.itemsSlot;queueMicrotask(()=>{collectInitialSlotAssignment(slot,s=>this.syncItemsFromSlot(s))})}get hasStandalonePresentation(){return!this.dropdownContained&&!this.submenuAnchor}get interactionOpen(){return this.hasStandalonePresentation||this.presentationOpen}syncPresentationState(){const standalone=this.hasStandalonePresentation;if(this.toggleAttribute("data-inline",standalone),this.toggleAttribute("data-submenu",this.submenuAnchor!==null),this.toggleAttribute("data-contained",this.dropdownContained),standalone){const active=this.activeIndex>=0?this.items[this.activeIndex]:void 0;if(!active||!this.isNavigable(active)){const first=this.items.find(item=>this.isNavigable(item));this.activeIndex=first?this.items.indexOf(first):-1}}else this.presentationOpen||(this.activeIndex=-1);this.applyRovingTabIndex()}syncRegionState(){const assigned=selector=>this.renderRoot.querySelector(selector)?.assignedElements({flatten:!0}).length??0;this.toggleAttribute("data-has-header",assigned('slot[name="header"]')>0),this.toggleAttribute("data-has-footer",assigned('slot[name="footer"]')>0),this.toggleAttribute("data-list-empty",assigned("slot:not([name])")===0)}willUpdate(changed){super.willUpdate(changed),this.presentationOpen&&this.submenuAnchor&&(this.cancelPresentationHideWatch(),this.presentationHidden=!1)}updated(changed){super.updated(changed);const list=this.renderRoot.querySelector('[part~="list"]')??void 0;syncAriaDescribedByElements(this,list,this.getAttribute("aria-describedby")),(changed.has("presentationOpen")||changed.has("dropdownOpen")||changed.has("dropdownContained"))&&(this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1,this.presentationOpen?this.submenuAnchor?(this.bindDocumentPointer(),this.reposition()):(this.unbindDocumentPointer(),this.presentationPositioned=!0,this.focusRoving(this.pendingFocus)):(this.unbindDocumentPointer(),this.resetTypeAhead(),this.activeIndex=-1,this.applyRovingTabIndex(),this.clearSubmenuTimers(),this.closeSubmenus(),this.submenuAnchor&&this.schedulePresentationHide())),changed.has("dropdownContained")&&this.syncPresentationState(),changed.has("dropdownSize")&&this.applyDropdownSize()}reposition(){this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1;const popup=this.renderRoot.querySelector(".submenu-surface");if(this.submenuAnchor&&popup){const placement=this.menubarAnchored?MENUBAR_PLACEMENT:rtlAwarePlacement(SUBMENU_PLACEMENT,this),topLayer=this.submenuAnchor.closest(tag("menubar"))?.topLayer===!0;this.placedTopLayer=syncTopLayerRelease(popup,this.placedTopLayer,topLayer),this.cleanup=place(this.submenuAnchor,popup,{placement,flipFallbackPlacements:this.menubarAnchored?void 0:SUBMENU_FALLBACK_PLACEMENTS.map(candidate=>rtlAwarePlacement(candidate,this)),...topLayerPlacement(topLayer,resolveEffectivePositioningStrategy(this,void 0,"fixed"))})}}cancelPresentationHideWatch(){this.presentationHideWatcher?.(),this.presentationHideWatcher=void 0}schedulePresentationHide(){this.cancelPresentationHideWatch();const surface=this.renderRoot.querySelector(".submenu-surface"),view=this.ownerDocument.defaultView,transitionMs=surface&&view?maxCssTime(view.getComputedStyle(surface).transitionDuration)+maxCssTime(view.getComputedStyle(surface).transitionDelay):0,waitForEvent=!!(surface&&view&&transitionMs>0&&!prefersReducedMotion(this));let settled=!1,timeout;const finish=()=>{settled||(settled=!0,timeout!==void 0&&view?.clearTimeout(timeout),surface?.removeEventListener("transitionend",onEnd),this.presentationHideWatcher===cancel&&(this.presentationHideWatcher=void 0),this.presentationHidden=!0)},onEnd=event=>{event.target===surface&&finish()},cancel=()=>{settled=!0,timeout!==void 0&&view?.clearTimeout(timeout),surface?.removeEventListener("transitionend",onEnd)};this.presentationHideWatcher=cancel,waitForEvent&&surface&&view?(surface.addEventListener("transitionend",onEnd),timeout=view.setTimeout(finish,transitionMs+50)):queueMicrotask(finish)}async focusAfterPlacement(focus){if(!this.presentationOpen||!this.submenuAnchor)return;const positioned=this.cleanup!==void 0&&(this.presentationPositioned||await waitForDeferredPlacement(()=>this.cleanup));if(!(!this.presentationOpen||!this.submenuAnchor)){if(!positioned){this.closePresentation(),await this.updateComplete;return}this.presentationPositioned=!0,this.focusRoving(focus)}}disconnectedCallback(){super.disconnectedCallback(),this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1,this.resetTypeAhead(),this.clearSubmenuTimers(),this.itemStateObserver?.disconnect(),this.itemStateObserver=void 0,this.unbindDocumentPointer();for(const item of this.items)this.releaseItemOwner(item);this._dropdownOpen=!1,this.presentationOpen=!1,this.cancelPresentationHideWatch(),this.presentationHidden=!0,this.submenuStateChange?.(!1)}bindDocumentPointer(){this.pointer.bind()}unbindDocumentPointer(){this.pointer.unbind()}scheduleOwnedTimeout(callback,delay){const owner=this.ownerDocument.defaultView;if(owner)return{owner,handle:owner.setTimeout(callback,delay)}}clearOwnedTimeout(timer){timer&&timer.owner.clearTimeout(timer.handle)}focusContained(focus="first"){if(this.dropdownContained&&this.dropdownOwner)if(this.dropdownOwner.open)this.pendingFocus=focus,this.focusRoving(focus);else{const transition=this.dropdownOwner.show();this.dropdownOwner.open&&(this.pendingFocus=focus)}}openPresentation(focus="first"){if(this.dropdownContained&&this.dropdownOwner){this.focusContained(focus);return}this.pendingFocus=focus,this.presentationOpen?(!this.submenuAnchor||this.presentationPositioned)&&this.focusRoving(focus):(this.presentationOpen=!0,this.submenuStateChange?.(!0))}closePresentation(options){if(this.dropdownContained&&this.dropdownOwner){this.dropdownOwner.hide(options);return}this.presentationOpen&&(this.presentationOpen=!1,this.submenuStateChange?.(!1),options?.focusTrigger&&this.submenuAnchor&&resolveAccessibleTrigger(this.submenuAnchor).focus())}syncItemsFromSlot(slot){const assigned=slot.assignedElements({flatten:!0}).filter(isLyraMenuItemElement);if(assigned.length===this.items.length&&assigned.every((item,index)=>item===this.items[index]))return;this.itemStateObserver?.disconnect();const previousItems=this.items,previouslyActive=this.activeIndex>=0?this.items[this.activeIndex]:void 0,focusedBefore=safeDeepActiveElement(this.ownerDocument),activeItemLostFocus=!!previouslyActive&&(focusedBefore===null||focusedBefore===this.ownerDocument.body||focusedBefore===previouslyActive||composedContains(previouslyActive,focusedBefore));this.items=assigned;for(const item of previousItems)this.items.includes(item)||this.releaseItemOwner(item);for(const item of this.items)this.acquireItemOwner(item);this.applyDropdownSize();const MutationObserverCtor=this.ownerDocument.defaultView?.MutationObserver;if(MutationObserverCtor){const owner=this.ownerDocument;let observer;observer=new MutationObserverCtor(()=>{this.itemStateObserver!==observer||this.ownerDocument!==owner||this.onItemStateChange()}),this.itemStateObserver=observer;for(const item of this.items)this.itemStateObserver.observe(item,{attributes:!0,attributeFilter:["disabled","hidden","aria-hidden","inert"]})}if(this.activeIndex=previouslyActive?this.items.indexOf(previouslyActive):-1,this.syncPresentationState(),this.syncRegionState(),this.interactionOpen)if(this.activeIndex===-1){const successor=this.items.find(item=>this.isNavigable(item));previouslyActive&&successor?this.setActiveItem(successor,activeItemLostFocus):this.focusRoving(this.pendingFocus),activeItemLostFocus&&!this.items.some(item=>this.isNavigable(item))&&this.rehomeZeroSurvivorFocus()}else{const active=activeElementIn(this.ownerDocument);!(isUsableActiveElement(active)&&this.contains(active))&&activeItemLostFocus&&this.items[this.activeIndex].focus()}}acquireItemOwner(item){item[menuItemOwner]?.(this.owningMenu)}releaseItemOwner(item){item[menuItemOwner]?.(null,this.owningMenu)}uncheckRadioGroupSiblings(item,group){for(const sibling of this.items)sibling!==item&&sibling.type==="radio"&&sibling.group===group&&sibling.checked&&(sibling.checked=!1)}isNavigable(item){return!item.interactionDisabled&&isRovingTargetAvailable(item)}applyDropdownSize(){if(this.dropdownSize)for(const item of this.items)item.size=this.dropdownSize}rehomeZeroSurvivorFocus(){if(this.dropdownContained&&this.dropdownOwner){this.dropdownOwner.hide({focusTrigger:!0});return}if(this.submenuAnchor){this.closePresentation({focusTrigger:!0});return}const list=this.renderRoot.querySelector('[part~="list"]');list&&(list.tabIndex=-1,list.focus({preventScroll:!0}))}onOwnedItemSelect(item){if(!isLyraMenuItemElement(item)||!this.items.includes(item))return;!this.emit("lr-select",{item},{cancelable:!0}).defaultPrevented&&!this.dropdownStayOpenOnSelect&&this.dismissAfterSelection(!0)}dismissAfterSelection(focusTrigger){this.closeSubmenus(),this.dropdownContained?this.dropdownOwner&&this.dropdownOwner.hide({focusTrigger}):this.submenuAnchor&&this.closePresentation({focusTrigger})}applyRovingTabIndex(){this.items.forEach((item,i)=>{item.tabIndex=i===this.activeIndex?0:-1})}focusRoving(which){if(which==="none")return;const navigable=this.items.filter(i=>this.isNavigable(i));if(!navigable.length)return;const item=which==="first"?navigable[0]:navigable[navigable.length-1];item&&this.setActiveItem(item)}setActiveItem(item,moveFocus=!0){this.activeIndex=this.items.indexOf(item),this.applyRovingTabIndex(),this.closeSubmenus(item),moveFocus&&item.focus()}closeSubmenus(keep){for(const item of this.items)item!==keep&&item.submenuOpen&&item.closeSubmenu()}openSubmenuItem(){return this.items.find(item=>item.submenuOpen)}clearSubmenuTimers(){this.clearOwnedTimeout(this.submenuOpenTimer),this.clearOwnedTimeout(this.submenuCloseTimer),this.submenuOpenTimer=void 0,this.submenuCloseTimer=void 0}ownItemFromEvent(e){let owner;for(const node of e.composedPath()){if(node===this)break;isLyraMenuItemElement(node)&&(owner=node)}return owner}isForeignEvent(e){for(const node of e.composedPath()){if(node===this)return!1;if(isLyraMenuElement(node))return!0}return!1}scheduleSubmenuClose(item){this.submenuCloseTimer||(this.submenuCloseTimer=this.scheduleOwnedTimeout(()=>{this.submenuCloseTimer=void 0,item.submenuOpen&&(composedContains(item,safeDeepActiveElement(this.ownerDocument))||item.closeSubmenu())},SUBMENU_CLOSE_DELAY))}popupPart(name){return this.renderRoot.querySelector(`[part="${name}"]`)}tabWouldLeavePopup(e){const header=this.popupPart("header"),footer=this.popupPart("footer"),listEl=this.popupPart("list"),backwards=e.shiftKey,active=safeDeepActiveElement(this.ownerDocument),headerStops=header?collectFocusableElements(header):[],footerStops=footer?collectFocusableElements(footer):[],listStops=listEl?collectFocusableElements(listEl):[],hasNeighbor=stops=>{const index=active?stops.indexOf(active):-1;return index===-1?!1:backwards?index>0:index<stops.length-1},path=e.composedPath();return footer&&path.includes(footer)?hasNeighbor(footerStops)?!1:backwards?listStops.length===0&&headerStops.length===0:!0:header&&path.includes(header)?hasNeighbor(headerStops)?!1:backwards?!0:listStops.length===0&&footerStops.length===0:!isLyraMenuItemElement(e.target)&&hasNeighbor(listStops)?!1:backwards?headerStops.length===0:footerStops.length===0}typeAhead(char){this.typeBuffer.add(char,this.effectiveLocale);const navigable=this.items.filter(i=>this.isNavigable(i));if(!navigable.length)return;const current=this.activeIndex>=0?this.items[this.activeIndex]:void 0,currentIndex=current?navigable.indexOf(current):-1,match=this.typeBuffer.match(navigable,currentIndex,item=>item.getTextLabel(),this.effectiveLocale);match!==null&&this.setActiveItem(navigable[match])}resetTypeAhead(){this.typeBuffer.clear()}get effectiveLabel(){const hostLabel=this.getAttribute("aria-label");return hostLabel!==null?hostLabel:this.label!==void 0?this.label:this.dropdownLabel!==void 0?this.dropdownLabel:this.localize("menuLabel")}renderContents(bindPointerOver=!0){return html`
1
+ var _a;import{__decorate}from"tslib";import{maxCssTime}from"../../../internal/css-motion-time.js";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{deferredPlaceReady as place,syncTopLayerRelease,topLayerPlacement,waitForDeferredPlacement}from"../../../internal/anchored-overlay-runtime.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{isRovingTargetAvailable,resolveListMove}from"../../../internal/list-navigation.js";import{PopupController}from"../../../internal/popup-controller.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{rtlAwarePlacement}from"../../../internal/rtl.js";import{nextId,resolveAccessibleTrigger}from"../../../internal/a11y.js";import{collectFocusableElements,composedContains}from"../../../internal/overlay-manager.js";import{styles}from"./menu.styles.js";import{menuItemOwner,submenuPanelController}from"./menu-shared.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{tag}from"../../../internal/prefix.js";import{activeElementIn,isUsableActiveElement,safeDeepActiveElement}from"../../../internal/active-element.js";import{syncAriaDescribedByElements}from"../../../internal/aria-reflection.js";import"./menu-item.class.js";import{LYRA_DEFAULT_menuLabel}from"../../../internal/default-strings/shared.generated.js";const SUBMENU_PLACEMENT="right-start",SUBMENU_FALLBACK_PLACEMENTS=["right-end","left-start","left-end","bottom-start","top-start"],MENUBAR_PLACEMENT="bottom-start",SUBMENU_OPEN_DELAY=150,SUBMENU_CLOSE_DELAY=300;function isLyraMenuItemElement(value){return isHtmlElement(value)?value.localName===tag("menu-item")||value.localName===tag("dropdown-item"):!1}function isLyraMenuElement(value){return isHtmlElement(value)&&value.localName===tag("menu")}let menuWidthScaleRegistered=!1;function registerMenuWidthScale(){if(!menuWidthScaleRegistered&&(menuWidthScaleRegistered=!0,!(typeof CSS>"u"||typeof CSS.registerProperty!="function")))try{CSS.registerProperty({name:"--_lr-menu-max-inline-size",syntax:"<length-percentage>",inherits:!1,initialValue:"100%"})}catch{}}class LyraMenu extends LyraElement{constructor(){super(...arguments),this.presentationOpen=!1,this.presentationHidden=!0,this.submenuAnchor=null,this.submenuStateChange=null,this.dropdownContained=!1,this.dropdownOwner=null,this._dropdownOpen=!1,this.dropdownRendersMenuRole=!1,this.dropdownStayOpenOnSelect=!1,this.items=[],this.activeIndex=-1,this.presentationPositioned=!1,this.popupController=new PopupController({host:this,onPointer:event=>this.onDocPointer(event)}),this.menubarAnchored=!1,this.pendingFocus="first",this.listId=nextId("menu-list"),this.owningMenu={activate:item=>this.onOwnedItemSelect(item),uncheckRadioGroup:(item,group)=>this.uncheckRadioGroupSiblings(item,group)},this.typeBuffer=new TypeAheadBuffer(this),this[_a]=this.createSubmenuController(),this.onRegionSlotChange=()=>{this.syncRegionState()},this.onDocPointer=e=>{const path=e.composedPath();path.includes(this)||this.submenuAnchor&&path.includes(this.submenuAnchor)||this.closePresentation()},this.onItemsSlotChange=e=>{this.syncItemsFromSlot(e.target)},this.itemStateChangeReconciliationPending=!1,this.onItemStateChangeEvent=event=>{event.stopPropagation(),!this.itemStateChangeReconciliationPending&&(this.itemStateChangeReconciliationPending=!0,queueMicrotask(()=>{this.itemStateChangeReconciliationPending=!1,this.onItemStateChange()}))},this.onItemStateChange=()=>{const navigable=this.items.filter(item=>this.isNavigable(item));if(this.activeIndex>=0&&!this.isNavigable(this.items[this.activeIndex])){const current=this.activeIndex,displaced=this.items[current],focused=safeDeepActiveElement(this.ownerDocument),displacedHadFocus=focused===null||focused===this.ownerDocument.body||focused===displaced||composedContains(displaced,focused),next=navigable.find(item=>this.items.indexOf(item)>current)??navigable.find(item=>this.items.indexOf(item)<current);next?this.setActiveItem(next,displacedHadFocus):(this.activeIndex=-1,this.applyRovingTabIndex(),displacedHadFocus&&this.rehomeZeroSurvivorFocus());return}this.applyRovingTabIndex()},this.onListFocusIn=e=>{const target=e.target;if(!isLyraMenuItemElement(target))return;const index=this.items.indexOf(target);index===-1||index===this.activeIndex||!this.isNavigable(target)||(this.activeIndex=index,this.applyRovingTabIndex(),this.closeSubmenus(target))},this.onListKeyDown=e=>{if(this.isForeignEvent(e)||e.altKey||e.ctrlKey||e.metaKey||e.isComposing||e.keyCode===229)return;const isItemTarget=isLyraMenuItemElement(e.target);if(e.key==="Escape"&&isItemTarget&&!this.hasStandalonePresentation){e.preventDefault(),this.closePresentation({focusTrigger:!0});return}if(!isItemTarget)return;const navigable=this.items.filter(i=>this.isNavigable(i)),current=this.activeIndex>=0?this.items[this.activeIndex]:void 0,currentNavIndex=current?navigable.indexOf(current):-1,intoSubmenuKey=this.effectiveDirection==="rtl"?"ArrowLeft":"ArrowRight";switch(e.key){case"ArrowRight":case"ArrowLeft":e.key===intoSubmenuKey?current?.hasSubmenu&&this.isNavigable(current)&&(e.preventDefault(),this.closeSubmenus(current),current.openSubmenu("first")):this.submenuAnchor&&!this.menubarAnchored&&(e.preventDefault(),this.closePresentation({focusTrigger:!0}));break;case"ArrowDown":case"ArrowUp":case"Home":case"End":{e.preventDefault();const nextIndex=resolveListMove(e,{count:navigable.length,current:currentNavIndex,orientation:"vertical"});nextIndex!==null&&this.setActiveItem(navigable[nextIndex]);break}case"Enter":case" ":e.preventDefault(),current?.hasSubmenu?(this.closeSubmenus(current),current.openSubmenu("first")):current?.isLinkItem?current.click():current?.select();break;default:this.typeBuffer.accepts(e)&&this.typeAhead(e.key);return}},this.onPopupPointerOver=e=>{if(!this.interactionOpen)return;const hovered=this.ownItemFromEvent(e);this.clearOwnedTimeout(this.submenuOpenTimer),this.submenuOpenTimer=void 0;const opened=this.openSubmenuItem();opened&&opened===hovered?(this.clearOwnedTimeout(this.submenuCloseTimer),this.submenuCloseTimer=void 0):opened&&this.scheduleSubmenuClose(opened),!(!hovered||hovered===opened||!hovered.hasSubmenu||!this.isNavigable(hovered))&&(this.submenuOpenTimer=this.scheduleOwnedTimeout(()=>{this.submenuOpenTimer=void 0,!(!this.interactionOpen||!this.items.includes(hovered))&&(this.closeSubmenus(hovered),hovered.openSubmenu("none"))},SUBMENU_OPEN_DELAY))},this.onPopupPointerLeave=()=>{this.clearOwnedTimeout(this.submenuOpenTimer),this.submenuOpenTimer=void 0;const opened=this.openSubmenuItem();opened&&this.scheduleSubmenuClose(opened)},this.onNestedSelect=e=>{if(e.target===this)return;const event=e;this.dropdownStayOpenOnSelect&&event.preventDefault(),queueMicrotask(()=>{event.defaultPrevented||this.dismissAfterSelection(!0)})},this.onPopupKeyDown=e=>{const listEl=this.popupPart("list");if(e.key==="Escape"){if(listEl&&e.composedPath().includes(listEl)||this.hasStandalonePresentation)return;e.preventDefault(),this.closePresentation({focusTrigger:!0});return}e.key==="Tab"&&this.tabWouldLeavePopup(e)&&this.closePresentation()}}static{_a=submenuPanelController}static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel}}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-select"])}static{this.identityEventDetailProperties=Object.freeze({"lr-select":Object.freeze(["item"])})}static{this.styles=[LyraElement.styles,styles]}get dropdownOpen(){return this._dropdownOpen}set dropdownOpen(next){const normalized=!!next;if(normalized===this._dropdownOpen)return;const old=this._dropdownOpen;this._dropdownOpen=normalized,this.presentationOpen=normalized,this.requestUpdate("dropdownOpen",old)}createSubmenuController(){const menu=this;return{get open(){return menu.submenuAnchor!==null&&menu.presentationOpen},attach(anchor,onStateChange,options){menu.submenuAnchor&&menu.submenuAnchor!==anchor&&menu.closePresentation(),menu.menubarAnchored=options?.menubar===!0,menu.submenuAnchor=anchor,menu.submenuStateChange=onStateChange,menu.syncPresentationState(),menu.requestUpdate()},detach(anchor){menu.submenuAnchor===anchor&&(menu.closePresentation(),menu.submenuAnchor=null,menu.menubarAnchored=!1,menu.submenuStateChange=null,menu.cleanup?.(),menu.cleanup=void 0,menu.syncPresentationState(),menu.requestUpdate())},async show(focus="first"){menu.submenuAnchor&&(menu.openPresentation(focus),await menu.updateComplete,await menu.focusAfterPlacement(focus))},async hide(options){menu.closePresentation(options),await menu.updateComplete}}}connectedCallback(){if(super.connectedCallback(),registerMenuWidthScale(),this.hasUpdated){const slot=this.renderRoot.querySelector("slot:not([name])");slot&&this.syncItemsFromSlot(slot)}}firstUpdated(changed){super.firstUpdated(changed),this.syncRegionState(),this.syncPresentationState();const slot=this.itemsSlot;queueMicrotask(()=>{collectInitialSlotAssignment(slot,s=>this.syncItemsFromSlot(s))})}get hasStandalonePresentation(){return!this.dropdownContained&&!this.submenuAnchor}get interactionOpen(){return this.hasStandalonePresentation||this.presentationOpen}syncPresentationState(){const standalone=this.hasStandalonePresentation;if(this.toggleAttribute("data-inline",standalone),this.toggleAttribute("data-submenu",this.submenuAnchor!==null),this.toggleAttribute("data-contained",this.dropdownContained),standalone){const active=this.activeIndex>=0?this.items[this.activeIndex]:void 0;if(!active||!this.isNavigable(active)){const first=this.items.find(item=>this.isNavigable(item));this.activeIndex=first?this.items.indexOf(first):-1}}else this.presentationOpen||(this.activeIndex=-1);this.applyRovingTabIndex()}syncRegionState(){const assigned=selector=>this.renderRoot.querySelector(selector)?.assignedElements({flatten:!0}).length??0;this.toggleAttribute("data-has-header",assigned('slot[name="header"]')>0),this.toggleAttribute("data-has-footer",assigned('slot[name="footer"]')>0),this.toggleAttribute("data-list-empty",assigned("slot:not([name])")===0)}willUpdate(changed){super.willUpdate(changed),this.presentationOpen&&this.submenuAnchor&&(this.cancelPresentationHideWatch(),this.presentationHidden=!1)}updated(changed){super.updated(changed);const list=this.renderRoot.querySelector('[part~="list"]')??void 0;syncAriaDescribedByElements(this,list,this.getAttribute("aria-describedby")),(changed.has("presentationOpen")||changed.has("dropdownOpen")||changed.has("dropdownContained"))&&(this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1,this.presentationOpen?this.submenuAnchor?(this.popupController.bindPointer(),this.reposition()):(this.popupController.unbindPointer(),this.presentationPositioned=!0,this.focusRoving(this.pendingFocus)):(this.popupController.unbindPointer(),this.resetTypeAhead(),this.activeIndex=-1,this.applyRovingTabIndex(),this.clearSubmenuTimers(),this.closeSubmenus(),this.submenuAnchor&&this.schedulePresentationHide())),changed.has("dropdownContained")&&this.syncPresentationState(),changed.has("dropdownSize")&&this.applyDropdownSize()}reposition(){this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1;const popup=this.renderRoot.querySelector(".submenu-surface");if(this.submenuAnchor&&popup){const placement=this.menubarAnchored?MENUBAR_PLACEMENT:rtlAwarePlacement(SUBMENU_PLACEMENT,this),topLayer=this.submenuAnchor.closest(tag("menubar"))?.topLayer===!0;this.placedTopLayer=syncTopLayerRelease(popup,this.placedTopLayer,topLayer),this.cleanup=place(this.submenuAnchor,popup,{placement,flipFallbackPlacements:this.menubarAnchored?void 0:SUBMENU_FALLBACK_PLACEMENTS.map(candidate=>rtlAwarePlacement(candidate,this)),...topLayerPlacement(topLayer,resolveEffectivePositioningStrategy(this,void 0,"fixed"))})}}cancelPresentationHideWatch(){this.presentationHideWatcher?.(),this.presentationHideWatcher=void 0}schedulePresentationHide(){this.cancelPresentationHideWatch();const surface=this.renderRoot.querySelector(".submenu-surface"),view=this.ownerDocument.defaultView,transitionMs=surface&&view?maxCssTime(view.getComputedStyle(surface).transitionDuration)+maxCssTime(view.getComputedStyle(surface).transitionDelay):0,waitForEvent=!!(surface&&view&&transitionMs>0&&!prefersReducedMotion(this));let settled=!1,timeout;const finish=()=>{settled||(settled=!0,timeout!==void 0&&view?.clearTimeout(timeout),surface?.removeEventListener("transitionend",onEnd),this.presentationHideWatcher===cancel&&(this.presentationHideWatcher=void 0),this.presentationHidden=!0)},onEnd=event=>{event.target===surface&&finish()},cancel=()=>{settled=!0,timeout!==void 0&&view?.clearTimeout(timeout),surface?.removeEventListener("transitionend",onEnd)};this.presentationHideWatcher=cancel,waitForEvent&&surface&&view?(surface.addEventListener("transitionend",onEnd),timeout=view.setTimeout(finish,transitionMs+50)):queueMicrotask(finish)}async focusAfterPlacement(focus){if(!this.presentationOpen||!this.submenuAnchor)return;const positioned=this.cleanup!==void 0&&(this.presentationPositioned||await waitForDeferredPlacement(()=>this.cleanup));if(!(!this.presentationOpen||!this.submenuAnchor)){if(!positioned){this.closePresentation(),await this.updateComplete;return}this.presentationPositioned=!0,this.focusRoving(focus)}}disconnectedCallback(){super.disconnectedCallback(),this.cleanup?.(),this.cleanup=void 0,this.presentationPositioned=!1,this.resetTypeAhead(),this.clearSubmenuTimers(),this.itemStateObserver?.disconnect(),this.itemStateObserver=void 0,this.popupController.unbindPointer();for(const item of this.items)this.releaseItemOwner(item);this._dropdownOpen=!1,this.presentationOpen=!1,this.cancelPresentationHideWatch(),this.presentationHidden=!0,this.submenuStateChange?.(!1)}scheduleOwnedTimeout(callback,delay){const owner=this.ownerDocument.defaultView;if(owner)return{owner,handle:owner.setTimeout(callback,delay)}}clearOwnedTimeout(timer){timer&&timer.owner.clearTimeout(timer.handle)}focusContained(focus="first"){if(this.dropdownContained&&this.dropdownOwner)if(this.dropdownOwner.open)this.pendingFocus=focus,this.focusRoving(focus);else{const transition=this.dropdownOwner.show();this.dropdownOwner.open&&(this.pendingFocus=focus)}}openPresentation(focus="first"){if(this.dropdownContained&&this.dropdownOwner){this.focusContained(focus);return}this.pendingFocus=focus,this.presentationOpen?(!this.submenuAnchor||this.presentationPositioned)&&this.focusRoving(focus):(this.presentationOpen=!0,this.submenuStateChange?.(!0))}closePresentation(options){if(this.dropdownContained&&this.dropdownOwner){this.dropdownOwner.hide(options);return}this.presentationOpen&&(this.presentationOpen=!1,this.submenuStateChange?.(!1),options?.focusTrigger&&this.submenuAnchor&&resolveAccessibleTrigger(this.submenuAnchor).focus())}syncItemsFromSlot(slot){const assigned=slot.assignedElements({flatten:!0}).filter(isLyraMenuItemElement);if(assigned.length===this.items.length&&assigned.every((item,index)=>item===this.items[index]))return;this.itemStateObserver?.disconnect();const previousItems=this.items,previouslyActive=this.activeIndex>=0?this.items[this.activeIndex]:void 0,focusedBefore=safeDeepActiveElement(this.ownerDocument),activeItemLostFocus=!!previouslyActive&&(focusedBefore===null||focusedBefore===this.ownerDocument.body||focusedBefore===previouslyActive||composedContains(previouslyActive,focusedBefore));this.items=assigned;for(const item of previousItems)this.items.includes(item)||this.releaseItemOwner(item);for(const item of this.items)this.acquireItemOwner(item);this.applyDropdownSize();const MutationObserverCtor=this.ownerDocument.defaultView?.MutationObserver;if(MutationObserverCtor){const owner=this.ownerDocument;let observer;observer=new MutationObserverCtor(()=>{this.itemStateObserver!==observer||this.ownerDocument!==owner||this.onItemStateChange()}),this.itemStateObserver=observer;for(const item of this.items)this.itemStateObserver.observe(item,{attributes:!0,attributeFilter:["disabled","hidden","aria-hidden","inert"]})}if(this.activeIndex=previouslyActive?this.items.indexOf(previouslyActive):-1,this.syncPresentationState(),this.syncRegionState(),this.interactionOpen)if(this.activeIndex===-1){const successor=this.items.find(item=>this.isNavigable(item));previouslyActive&&successor?this.setActiveItem(successor,activeItemLostFocus):this.focusRoving(this.pendingFocus),activeItemLostFocus&&!this.items.some(item=>this.isNavigable(item))&&this.rehomeZeroSurvivorFocus()}else{const active=activeElementIn(this.ownerDocument);!(isUsableActiveElement(active)&&this.contains(active))&&activeItemLostFocus&&this.items[this.activeIndex].focus()}}acquireItemOwner(item){item[menuItemOwner]?.(this.owningMenu)}releaseItemOwner(item){item[menuItemOwner]?.(null,this.owningMenu)}uncheckRadioGroupSiblings(item,group){for(const sibling of this.items)sibling!==item&&sibling.type==="radio"&&sibling.group===group&&sibling.checked&&(sibling.checked=!1)}isNavigable(item){return!item.interactionDisabled&&isRovingTargetAvailable(item)}applyDropdownSize(){if(this.dropdownSize)for(const item of this.items)item.size=this.dropdownSize}rehomeZeroSurvivorFocus(){if(this.dropdownContained&&this.dropdownOwner){this.dropdownOwner.hide({focusTrigger:!0});return}if(this.submenuAnchor){this.closePresentation({focusTrigger:!0});return}const list=this.renderRoot.querySelector('[part~="list"]');list&&(list.tabIndex=-1,list.focus({preventScroll:!0}))}onOwnedItemSelect(item){if(!isLyraMenuItemElement(item)||!this.items.includes(item))return;!this.emit("lr-select",{item},{cancelable:!0}).defaultPrevented&&!this.dropdownStayOpenOnSelect&&this.dismissAfterSelection(!0)}dismissAfterSelection(focusTrigger){this.closeSubmenus(),this.dropdownContained?this.dropdownOwner&&this.dropdownOwner.hide({focusTrigger}):this.submenuAnchor&&this.closePresentation({focusTrigger})}applyRovingTabIndex(){this.items.forEach((item,i)=>{item.tabIndex=i===this.activeIndex?0:-1})}focusRoving(which){if(which==="none")return;const navigable=this.items.filter(i=>this.isNavigable(i));if(!navigable.length)return;const item=which==="first"?navigable[0]:navigable[navigable.length-1];item&&this.setActiveItem(item)}setActiveItem(item,moveFocus=!0){this.activeIndex=this.items.indexOf(item),this.applyRovingTabIndex(),this.closeSubmenus(item),moveFocus&&item.focus()}closeSubmenus(keep){for(const item of this.items)item!==keep&&item.submenuOpen&&item.closeSubmenu()}openSubmenuItem(){return this.items.find(item=>item.submenuOpen)}clearSubmenuTimers(){this.clearOwnedTimeout(this.submenuOpenTimer),this.clearOwnedTimeout(this.submenuCloseTimer),this.submenuOpenTimer=void 0,this.submenuCloseTimer=void 0}ownItemFromEvent(e){let owner;for(const node of e.composedPath()){if(node===this)break;isLyraMenuItemElement(node)&&(owner=node)}return owner}isForeignEvent(e){for(const node of e.composedPath()){if(node===this)return!1;if(isLyraMenuElement(node))return!0}return!1}scheduleSubmenuClose(item){this.submenuCloseTimer||(this.submenuCloseTimer=this.scheduleOwnedTimeout(()=>{this.submenuCloseTimer=void 0,item.submenuOpen&&(composedContains(item,safeDeepActiveElement(this.ownerDocument))||item.closeSubmenu())},SUBMENU_CLOSE_DELAY))}popupPart(name){return this.renderRoot.querySelector(`[part="${name}"]`)}tabWouldLeavePopup(e){const header=this.popupPart("header"),footer=this.popupPart("footer"),listEl=this.popupPart("list"),backwards=e.shiftKey,active=safeDeepActiveElement(this.ownerDocument),headerStops=header?collectFocusableElements(header):[],footerStops=footer?collectFocusableElements(footer):[],listStops=listEl?collectFocusableElements(listEl):[],hasNeighbor=stops=>{const index=active?stops.indexOf(active):-1;return index===-1?!1:backwards?index>0:index<stops.length-1},path=e.composedPath();return footer&&path.includes(footer)?hasNeighbor(footerStops)?!1:backwards?listStops.length===0&&headerStops.length===0:!0:header&&path.includes(header)?hasNeighbor(headerStops)?!1:backwards?!0:listStops.length===0&&footerStops.length===0:!isLyraMenuItemElement(e.target)&&hasNeighbor(listStops)?!1:backwards?headerStops.length===0:footerStops.length===0}typeAhead(char){this.typeBuffer.add(char,this.effectiveLocale);const navigable=this.items.filter(i=>this.isNavigable(i));if(!navigable.length)return;const current=this.activeIndex>=0?this.items[this.activeIndex]:void 0,currentIndex=current?navigable.indexOf(current):-1,match=this.typeBuffer.match(navigable,currentIndex,item=>item.getTextLabel(),this.effectiveLocale);match!==null&&this.setActiveItem(navigable[match])}resetTypeAhead(){this.typeBuffer.clear()}get effectiveLabel(){const hostLabel=this.getAttribute("aria-label");return hostLabel!==null?hostLabel:this.label!==void 0?this.label:this.dropdownLabel!==void 0?this.dropdownLabel:this.localize("menuLabel")}renderContents(bindPointerOver=!0){return html`
2
2
  <div part="header">
3
3
  <slot name="header" @slotchange=${this.onRegionSlotChange}></slot>
4
4
  </div>
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{html}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{isRovingTargetAvailable,resolveListMove}from"../../../internal/list-navigation.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{activateNonmodalOverlay,composedContains,deepActiveElement}from"../../../internal/nonmodal-overlay-manager.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{keyEventOwnedByInnerControl}from"../../../internal/hotkey.js";import{sizes}from"../../../internal/sizes.styles.js";import{tag}from"../../../internal/prefix.js";import{menubarItemOwner}from"./menubar-shared.js";import{styles}from"./menubar.styles.js";import{LYRA_DEFAULT_menuLabel}from"../../../internal/default-strings.generated.js";class LyraMenubar extends LyraElement{static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel}}static{this.styles=[LyraElement.styles,sizes,styles]}constructor(){super(),this.topLayer=!1,this.size="m",this.frame="card",this.items=[],this.activeIndex=-1,this.expandedItem=null,this.typeBuffer=new TypeAheadBuffer(this),this.focusedItem=null,this.owner={menuStateChanged:(item,open)=>this.menuStateChanged(item,open),itemStateChanged:()=>this.syncItemState()},this.syncItems=()=>{const assigned=(this.renderRoot.querySelector("slot")?.assignedElements({flatten:!0})??[]).filter(element=>element.localName===tag("menubar-item"));if(assigned.length===this.items.length&&assigned.every((item,index)=>item===this.items[index]))return;const previous=this.items[this.activeIndex],oldIndex=this.activeIndex,active=deepActiveElement(this.ownerDocument),heldFocus=!!previous&&(active===previous||!!active&&composedContains(previous,active)||this.focusedItem===previous&&(!active||active===this.ownerDocument.body));for(const item of this.items)assigned.includes(item)||item[menubarItemOwner](null,this.owner);this.items=assigned;for(const item of this.items)item[menubarItemOwner](this.owner);this.observeItems(),previous&&assigned.includes(previous)&&this.isNavigable(previous)?this.setActive(previous):this.rehome(oldIndex,heldFocus),this.expandedItem&&!assigned.includes(this.expandedItem)&&this.collapse()},this.onDocumentFocus=()=>{const active=deepActiveElement(this.ownerDocument);(!active||!composedContains(this,active))&&(this.focusedItem=null,this.collapse())},this.onClick=event=>{const found=this.eventItem(event);if(!found||found.inMenu)return;const{item}=found;if(this.setActive(item,!0),!item.hasMenu){this.expandedItem&&this.collapse();return}this.expandedItem===item?this.collapse():this.expandedItem?this.carry(item):this.open(item,"none")},this.onPointerOver=event=>{if(!this.expandedItem||event.pointerType==="touch")return;const found=this.eventItem(event);found&&!found.inMenu&&found.item.hasMenu&&found.item!==this.expandedItem&&this.carry(found.item)},this.onKeyDown=event=>{if(event.defaultPrevented||event.isComposing||event.keyCode===229||event.altKey||event.ctrlKey||event.metaKey)return;const found=this.eventItem(event);if(!found)return;const{item,inMenu}=found;if(inMenu){if(!isHtmlElement(event.target)||![tag("menu-item"),tag("dropdown-item")].includes(event.target.localName)||keyEventOwnedByInnerControl(event,{container:event.target})||event.key!=="ArrowLeft"&&event.key!=="ArrowRight")return}else if(event.target!==item||keyEventOwnedByInnerControl(event,{container:item}))return;const navigable=this.items.filter(candidate=>this.isNavigable(candidate));if(!navigable.length)return;const index=navigable.indexOf(item);let next;const nextIndex=resolveListMove(event,{count:navigable.length,current:index,orientation:"horizontal",direction:this.effectiveDirection});if(nextIndex!==null)next=navigable[nextIndex];else if(["ArrowDown","ArrowUp","Enter"," "].includes(event.key)){item.hasMenu?(event.preventDefault(),this.open(item,event.key==="ArrowUp"?"last":"first")):(event.key==="Enter"||event.key===" ")&&(event.preventDefault(),item.click());return}else if(this.typeBuffer.accepts(event)){this.typeBuffer.add(event.key,this.effectiveLocale);const match=this.typeBuffer.match(navigable,index,item2=>item2.textLabel,this.effectiveLocale);match!==null&&(next=navigable[match])}next&&(event.preventDefault(),this.move(next))},this.addEventListener("keydown",this.onKeyDown),this.addEventListener("click",this.onClick),this.addEventListener("pointerover",this.onPointerOver),this.addEventListener("focusin",event=>{const item=this.items.find(candidate=>candidate===event.target);item&&this.isNavigable(item)&&(this.focusedItem=item,this.setActive(item))})}connectedCallback(){if(super.connectedCallback(),this.hasUpdated){for(const item of this.items)item[menubarItemOwner](this.owner);this.observeItems(),queueMicrotask(()=>{this.isConnected&&(this.syncItems(),this.syncItemState())})}}disconnectedCallback(){this.collapse(),this.typeBuffer.clear(),this.itemObserver?.disconnect(),this.itemObserver=void 0,this.ownerDocument.removeEventListener("focusin",this.onDocumentFocus,!0);for(const item of this.items)item[menubarItemOwner](null,this.owner);this.focusedItem=null,super.disconnectedCallback()}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{this.isConnected&&collectInitialSlotAssignment(this.renderRoot.querySelector("slot"),this.syncItems)})}isNavigable(item){return isRovingTargetAvailable(item)}observeItems(){this.itemObserver?.disconnect();const Observer=this.ownerDocument.defaultView?.MutationObserver;if(Observer){this.itemObserver=new Observer(()=>this.syncItemState());for(const item of this.items)this.itemObserver.observe(item,{attributes:!0,attributeFilter:["disabled","hidden","aria-hidden","inert"]})}}rehome(index,focus){const successor=this.items.find((item,current)=>current>=Math.max(0,index)&&this.isNavigable(item))??this.items.slice(0,Math.max(0,index)).reverse().find(item=>this.isNavigable(item));if(successor)this.setActive(successor,focus);else{this.activeIndex=-1;for(const item of this.items)item.tabIndex=-1}}syncItemState(){const active=this.items[this.activeIndex];if(!active||!this.isNavigable(active)){const focused=deepActiveElement(this.ownerDocument);this.rehome(this.activeIndex,!!active&&(focused===active||!!focused&&composedContains(active,focused)))}this.expandedItem&&(!this.isNavigable(this.expandedItem)||!this.expandedItem.hasMenu)&&this.collapse()}setActive(item,focus=!1){if(this.isNavigable(item)){this.activeIndex=this.items.indexOf(item);for(const candidate of this.items)candidate.tabIndex=candidate===item?0:-1;focus&&(this.focusedItem=item,item.focus({preventScroll:!0}))}}registerOverlay(){this.overlayHandle||(this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this,preferredInitialFocus:()=>this.expandedItem,onEscape:()=>this.collapse(),onTab:()=>this.collapse(),restoreFocusTo:()=>{const active=deepActiveElement(this.ownerDocument);return isHtmlElement(active)&&active!==this.ownerDocument.body&&active!==this.ownerDocument.documentElement?active:null}}),this.ownerDocument.addEventListener("focusin",this.onDocumentFocus,!0))}open(item,focus){const previous=this.expandedItem;this.expandedItem=item,previous&&previous!==item&&previous.closeMenu(),this.registerOverlay(),item.openMenu(focus)}carry(item){const previous=this.expandedItem;this.setActive(item,!0),item.hasMenu&&this.isNavigable(item)?(this.expandedItem=item,previous&&previous!==item&&previous.closeMenu(),item.openMenu("none")):this.collapse()}collapse(){const item=this.expandedItem;this.expandedItem=null,this.ownerDocument.removeEventListener("focusin",this.onDocumentFocus,!0);const handle=this.overlayHandle;this.overlayHandle=void 0,handle?.deactivate(),item&&item.closeMenu()}menuStateChanged(item,open){if(this.items.includes(item))if(open&&item!==this.expandedItem){const previous=this.expandedItem;this.expandedItem=item,previous&&previous.closeMenu(),this.registerOverlay()}else!open&&item===this.expandedItem&&this.collapse()}eventItem(event){const path=event.composedPath(),item=path.find(target=>this.items.includes(target));if(!item||!this.isNavigable(item))return;const preceding=path.slice(0,path.indexOf(item));return{item,path:preceding,inMenu:preceding.some(node=>isHtmlElement(node)&&node.localName===tag("menu"))}}move(item){this.expandedItem?this.carry(item):this.setActive(item,!0)}render(){return html`<div part="base" role="menubar" aria-label=${this.getAttribute("aria-label")??this.label??this.localize("menuLabel")}><slot @slotchange=${this.syncItems}></slot></div>`}}__decorate([property()],LyraMenubar.prototype,"label",void 0),__decorate([property({type:Boolean,attribute:"top-layer",reflect:!0})],LyraMenubar.prototype,"topLayer",void 0),__decorate([property({reflect:!0})],LyraMenubar.prototype,"size",void 0),__decorate([property({reflect:!0})],LyraMenubar.prototype,"frame",void 0);export{LyraMenubar};
1
+ import{__decorate}from"tslib";import{html}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{isRovingTargetAvailable,resolveListMove}from"../../../internal/list-navigation.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{activateNonmodalOverlay,composedContains,deepActiveElement}from"../../../internal/nonmodal-overlay-manager.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{keyEventOwnedByInnerControl}from"../../../internal/hotkey.js";import{sizes}from"../../../internal/sizes.styles.js";import{tag}from"../../../internal/prefix.js";import{menubarItemOwner}from"./menubar-shared.js";import{styles}from"./menubar.styles.js";import{LYRA_DEFAULT_menuLabel}from"../../../internal/default-strings/shared.generated.js";class LyraMenubar extends LyraElement{static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel}}static{this.styles=[LyraElement.styles,sizes,styles]}constructor(){super(),this.topLayer=!1,this.size="m",this.frame="card",this.items=[],this.activeIndex=-1,this.expandedItem=null,this.typeBuffer=new TypeAheadBuffer(this),this.focusedItem=null,this.owner={menuStateChanged:(item,open)=>this.menuStateChanged(item,open),itemStateChanged:()=>this.syncItemState()},this.syncItems=()=>{const assigned=(this.renderRoot.querySelector("slot")?.assignedElements({flatten:!0})??[]).filter(element=>element.localName===tag("menubar-item"));if(assigned.length===this.items.length&&assigned.every((item,index)=>item===this.items[index]))return;const previous=this.items[this.activeIndex],oldIndex=this.activeIndex,active=deepActiveElement(this.ownerDocument),heldFocus=!!previous&&(active===previous||!!active&&composedContains(previous,active)||this.focusedItem===previous&&(!active||active===this.ownerDocument.body));for(const item of this.items)assigned.includes(item)||item[menubarItemOwner](null,this.owner);this.items=assigned;for(const item of this.items)item[menubarItemOwner](this.owner);this.observeItems(),previous&&assigned.includes(previous)&&this.isNavigable(previous)?this.setActive(previous):this.rehome(oldIndex,heldFocus),this.expandedItem&&!assigned.includes(this.expandedItem)&&this.collapse()},this.onDocumentFocus=()=>{const active=deepActiveElement(this.ownerDocument);(!active||!composedContains(this,active))&&(this.focusedItem=null,this.collapse())},this.onClick=event=>{const found=this.eventItem(event);if(!found||found.inMenu)return;const{item}=found;if(this.setActive(item,!0),!item.hasMenu){this.expandedItem&&this.collapse();return}this.expandedItem===item?this.collapse():this.expandedItem?this.carry(item):this.open(item,"none")},this.onPointerOver=event=>{if(!this.expandedItem||event.pointerType==="touch")return;const found=this.eventItem(event);found&&!found.inMenu&&found.item.hasMenu&&found.item!==this.expandedItem&&this.carry(found.item)},this.onKeyDown=event=>{if(event.defaultPrevented||event.isComposing||event.keyCode===229||event.altKey||event.ctrlKey||event.metaKey)return;const found=this.eventItem(event);if(!found)return;const{item,inMenu}=found;if(inMenu){if(!isHtmlElement(event.target)||![tag("menu-item"),tag("dropdown-item")].includes(event.target.localName)||keyEventOwnedByInnerControl(event,{container:event.target})||event.key!=="ArrowLeft"&&event.key!=="ArrowRight")return}else if(event.target!==item||keyEventOwnedByInnerControl(event,{container:item}))return;const navigable=this.items.filter(candidate=>this.isNavigable(candidate));if(!navigable.length)return;const index=navigable.indexOf(item);let next;const nextIndex=resolveListMove(event,{count:navigable.length,current:index,orientation:"horizontal",direction:this.effectiveDirection});if(nextIndex!==null)next=navigable[nextIndex];else if(["ArrowDown","ArrowUp","Enter"," "].includes(event.key)){item.hasMenu?(event.preventDefault(),this.open(item,event.key==="ArrowUp"?"last":"first")):(event.key==="Enter"||event.key===" ")&&(event.preventDefault(),item.click());return}else if(this.typeBuffer.accepts(event)){this.typeBuffer.add(event.key,this.effectiveLocale);const match=this.typeBuffer.match(navigable,index,item2=>item2.textLabel,this.effectiveLocale);match!==null&&(next=navigable[match])}next&&(event.preventDefault(),this.move(next))},this.addEventListener("keydown",this.onKeyDown),this.addEventListener("click",this.onClick),this.addEventListener("pointerover",this.onPointerOver),this.addEventListener("focusin",event=>{const item=this.items.find(candidate=>candidate===event.target);item&&this.isNavigable(item)&&(this.focusedItem=item,this.setActive(item))})}connectedCallback(){if(super.connectedCallback(),this.hasUpdated){for(const item of this.items)item[menubarItemOwner](this.owner);this.observeItems(),queueMicrotask(()=>{this.isConnected&&(this.syncItems(),this.syncItemState())})}}disconnectedCallback(){this.collapse(),this.typeBuffer.clear(),this.itemObserver?.disconnect(),this.itemObserver=void 0,this.ownerDocument.removeEventListener("focusin",this.onDocumentFocus,!0);for(const item of this.items)item[menubarItemOwner](null,this.owner);this.focusedItem=null,super.disconnectedCallback()}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{this.isConnected&&collectInitialSlotAssignment(this.renderRoot.querySelector("slot"),this.syncItems)})}isNavigable(item){return isRovingTargetAvailable(item)}observeItems(){this.itemObserver?.disconnect();const Observer=this.ownerDocument.defaultView?.MutationObserver;if(Observer){this.itemObserver=new Observer(()=>this.syncItemState());for(const item of this.items)this.itemObserver.observe(item,{attributes:!0,attributeFilter:["disabled","hidden","aria-hidden","inert"]})}}rehome(index,focus){const successor=this.items.find((item,current)=>current>=Math.max(0,index)&&this.isNavigable(item))??this.items.slice(0,Math.max(0,index)).reverse().find(item=>this.isNavigable(item));if(successor)this.setActive(successor,focus);else{this.activeIndex=-1;for(const item of this.items)item.tabIndex=-1}}syncItemState(){const active=this.items[this.activeIndex];if(!active||!this.isNavigable(active)){const focused=deepActiveElement(this.ownerDocument);this.rehome(this.activeIndex,!!active&&(focused===active||!!focused&&composedContains(active,focused)))}this.expandedItem&&(!this.isNavigable(this.expandedItem)||!this.expandedItem.hasMenu)&&this.collapse()}setActive(item,focus=!1){if(this.isNavigable(item)){this.activeIndex=this.items.indexOf(item);for(const candidate of this.items)candidate.tabIndex=candidate===item?0:-1;focus&&(this.focusedItem=item,item.focus({preventScroll:!0}))}}registerOverlay(){this.overlayHandle||(this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this,preferredInitialFocus:()=>this.expandedItem,onEscape:()=>this.collapse(),onTab:()=>this.collapse(),restoreFocusTo:()=>{const active=deepActiveElement(this.ownerDocument);return isHtmlElement(active)&&active!==this.ownerDocument.body&&active!==this.ownerDocument.documentElement?active:null}}),this.ownerDocument.addEventListener("focusin",this.onDocumentFocus,!0))}open(item,focus){const previous=this.expandedItem;this.expandedItem=item,previous&&previous!==item&&previous.closeMenu(),this.registerOverlay(),item.openMenu(focus)}carry(item){const previous=this.expandedItem;this.setActive(item,!0),item.hasMenu&&this.isNavigable(item)?(this.expandedItem=item,previous&&previous!==item&&previous.closeMenu(),item.openMenu("none")):this.collapse()}collapse(){const item=this.expandedItem;this.expandedItem=null,this.ownerDocument.removeEventListener("focusin",this.onDocumentFocus,!0);const handle=this.overlayHandle;this.overlayHandle=void 0,handle?.deactivate(),item&&item.closeMenu()}menuStateChanged(item,open){if(this.items.includes(item))if(open&&item!==this.expandedItem){const previous=this.expandedItem;this.expandedItem=item,previous&&previous.closeMenu(),this.registerOverlay()}else!open&&item===this.expandedItem&&this.collapse()}eventItem(event){const path=event.composedPath(),item=path.find(target=>this.items.includes(target));if(!item||!this.isNavigable(item))return;const preceding=path.slice(0,path.indexOf(item));return{item,path:preceding,inMenu:preceding.some(node=>isHtmlElement(node)&&node.localName===tag("menu"))}}move(item){this.expandedItem?this.carry(item):this.setActive(item,!0)}render(){return html`<div part="base" role="menubar" aria-label=${this.getAttribute("aria-label")??this.label??this.localize("menuLabel")}><slot @slotchange=${this.syncItems}></slot></div>`}}__decorate([property()],LyraMenubar.prototype,"label",void 0),__decorate([property({type:Boolean,attribute:"top-layer",reflect:!0})],LyraMenubar.prototype,"topLayer",void 0),__decorate([property({reflect:!0})],LyraMenubar.prototype,"size",void 0),__decorate([property({reflect:!0})],LyraMenubar.prototype,"frame",void 0);export{LyraMenubar};
@@ -317,7 +317,7 @@ for:string;
317
317
  * and the total panel count (`lr-multi-split` supports N panels, so a single fixed string can't
318
318
  * express every divider's label; a function can). Unset (the default) keeps today's exact
319
319
  * localized `Resize divider between panel {a} and panel {b}` template (see `this.localize()`). */
320
- dividerLabel?:(index:number,panelCount:number)=>string;private panelCount;private sizesReconciledForMembership;private _collapseState;private _forced;private pinnedBand?;private overlayActive;private justOpened;private overlayHandle?;private readonly nativeModal;private nativeModalView?;private nativeModalResizeObserver?;private stopNativeModalGeometry;private nativeModalLabel;private readonly syncNativeModalGeometry;private triggerAria?;private triggerPanel?;private generatedTriggerPanelId?;private overlayReturnTarget;private overlayOpener;private readonly deferredFocusReturn;private floatingDialogPanel;private floatingDialogPreviousRole;private floatingDialogPreviousAriaModal;private drags;private readonly dragController;private ownedPanels;private readonly panelOwnership;private panelOwnershipObserver?;private panelOwnershipObserverDocument?;private panelOwnershipObserverGeneration;private constraintIssueKey;private constraintConfigVersion;private renderConstraintBounds;private initializedSizes;private measuredInlineSize;private _effectiveOrientation;private baseEl?;private collapseResizeObserver?;private collapseObservedElement?;private collapseObserverOwnerDocument?;private collapseObserverGeneration;private gutterResizeObserver?;private gutterObserverFrame?;private gutterObserverDocument?;private gutterObservedDividers;private gutterObservedContainerSize;private orientationBreakpoints;private collapseBreakpoints;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected firstUpdated(changed:PropertyValues):void;
320
+ dividerLabel?:(index:number,panelCount:number)=>string;private panelCount;private sizesReconciledForMembership;private _collapseState;private _forced;private pinnedBand?;private overlayActive;private justOpened;private overlayHandle?;private readonly nativeModal;private nativeModalView?;private nativeModalResizeObserver?;private stopNativeModalGeometry;private nativeModalLabel;private readonly syncNativeModalGeometry;private triggerAria?;private triggerPanel?;private generatedTriggerPanelId?;private overlayReturnTarget;private overlayOpener;private floatingDialogPanel;private floatingDialogPreviousRole;private floatingDialogPreviousAriaModal;private drags;private readonly dragController;private ownedPanels;private readonly panelOwnership;private panelOwnershipObserver?;private panelOwnershipObserverDocument?;private panelOwnershipObserverGeneration;private constraintIssueKey;private constraintConfigVersion;private renderConstraintBounds;private initializedSizes;private measuredInlineSize;private _effectiveOrientation;private baseEl?;private collapseResizeObserver?;private collapseObservedElement?;private collapseObserverOwnerDocument?;private collapseObserverGeneration;private gutterResizeObserver?;private gutterObserverFrame?;private gutterObserverDocument?;private gutterObservedDividers;private gutterObservedContainerSize;private orientationBreakpoints;private collapseBreakpoints;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected firstUpdated(changed:PropertyValues):void;
321
321
  /** Both branches here derive one reactive property from another with no
322
322
  * DOM measurement involved, so they belong in `willUpdate()` rather than
323
323
  * `updated()`: setting a reactive property from `updated()`/
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{resolveIdReferencesIn}from"../../../internal/aria-reflection.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay,composedContains,deepActiveElement}from"../../../internal/overlay-manager.js";import{isRtl}from"../../../internal/rtl.js";import{repairComposedFocus}from"../../../internal/focus-navigation.js";import{DeferredFocusReturn}from"../../../internal/deferred-focus-return.js";import{acquireAriaOwnership}from"../../../internal/aria-ownership.js";import{nextId}from"../../../internal/a11y.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{finiteRange}from"../../../internal/numbers.js";import{SeparatorDragController,separatorArrowDirection,separatorCoordinate,separatorDelta}from"../../../internal/separator-drag.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{CollapseBreakpointController,OrientationBreakpointController}from"../../../internal/orientation-breakpoint.js";import{readPersistedState,writePersistedState}from"../../../internal/persisted-state.js";import{resolveCssLength}from"../../../internal/css-length.js";import{styles}from"./multi-split.styles.js";import{LYRA_DEFAULT_resizeDivider,LYRA_DEFAULT_resizeValuePercent}from"../../../internal/default-strings.generated.js";const KEYBOARD_STEP=2;function isPersistedPanelLayout(value){if(typeof value!="object"||value===null)return!1;const candidate=value;return candidate.version!==1||!Array.isArray(candidate.panels)?!1:candidate.panels.every(panel=>{if(typeof panel!="object"||panel===null)return!1;const record=panel;return typeof record.panelId=="string"&&record.panelId!==""&&record.panelId.trim()===record.panelId&&typeof record.size=="number"&&Number.isFinite(record.size)&&record.size>=0})}const NO_MIN_PX=0,NO_MAX_PX=1e6,OWNED_PANEL_STYLE_PROPERTIES=["flex","order","inline-size","--_lr-multi-split-panel-min"];class LyraMultiSplit extends LyraElement{constructor(){super(...arguments),this.toggleProposalDepth=0,this.toggleProposalMutationVersion=0,this.forcedCloseVersion=0,this.sizes=[],this.defaultSizes=[],this.min=10,this.orientation="horizontal",this.orientationBreakpointBasis="container",this.narrowOrientation="vertical",this.panelConstraints=[],this.collapse="none",this.railWidth="3.5rem",this.railBreakpoint=640,this.floatBreakpoint=400,this.collapseBreakpointBasis="container",this.releasePinOnBreakpoint=!1,this.open=!1,this.trigger=null,this.for="",this.panelCount=0,this.sizesReconciledForMembership=!1,this._collapseState="wide",this._forced=!1,this.overlayActive=!1,this.justOpened=!1,this.nativeModal=new NativeModalCarrier(this,{onCancel:()=>{this.overlayHandle?.isTopmost()&&this.setOpen(!1)},onUnexpectedClose:()=>{this.overlayHandle?.isTopmost()&&this.setOpen(!1),this.overlayActive&&this.nativeModal.show()}}),this.syncNativeModalGeometry=()=>{if(!this.nativeModal.requested||!this.isConnected)return;if(!this.nativeModalView){this.nativeModalView=this.ownerDocument.defaultView??void 0,this.nativeModalView?.addEventListener("scroll",this.syncNativeModalGeometry,!0),this.nativeModalView?.addEventListener("resize",this.syncNativeModalGeometry);const Observer=this.nativeModalView?.ResizeObserver;if(Observer){const observer=new Observer(this.syncNativeModalGeometry);this.nativeModalResizeObserver=observer,observer.observe(this)}}const frame=this.shadowRoot?.querySelector("[data-native-modal-carrier]");if(!frame)return;const rect=this.getBoundingClientRect();Object.assign(frame.style,{top:`${rect.top}px`,left:`${rect.left}px`,right:"auto",bottom:"auto",width:`${rect.width}px`,height:`${rect.height}px`,padding:"0"})},this.overlayReturnTarget=null,this.overlayOpener=null,this.deferredFocusReturn=new DeferredFocusReturn,this.floatingDialogPanel=null,this.floatingDialogPreviousRole=null,this.floatingDialogPreviousAriaModal=null,this.drags=new Map,this.dragController=new SeparatorDragController(this,event=>this.onPointerMove(event),event=>this.onPointerUp(event)),this.ownedPanels=[],this.panelOwnership=new Map,this.panelOwnershipObserverGeneration=0,this.constraintIssueKey="",this.constraintConfigVersion=0,this.renderConstraintBounds=[],this.initializedSizes=!1,this.measuredInlineSize=Number.POSITIVE_INFINITY,this._effectiveOrientation="horizontal",this.collapseObserverGeneration=0,this.gutterObservedDividers=[],this.gutterObservedContainerSize=0,this.orientationBreakpoints=new OrientationBreakpointController(this,()=>this.updateEffectiveOrientation(this.measuredInlineSize,!0)),this.collapseBreakpoints=new CollapseBreakpointController(this,()=>this.updateCollapseState(this.measuredInlineSize,!0)),this.onSlotChange=()=>{this.updateBrowserDerivedState(()=>this.syncPanelMembership())},this.onBackdropClick=()=>{this.overlayHandle?.dismissBackdrop()},this.onModalLayerClick=event=>{event.target===this.baseEl&&this.overlayHandle?.dismissBackdrop()},this.onPointerDown=(e,index)=>{if(e.button!==0||this.isDividerDisabled(index))return;const divider=e.currentTarget;this.dragController.start(e,divider)&&this.drags.set(e.pointerId,{index,startPos:separatorCoordinate(e,this.effectiveOrientation==="vertical"?"block":"inline"),base:this.baseEl,rtl:this.effectiveOrientation==="horizontal"&&isRtl(this),appliedDelta:0,acceptedResize:!1})},this.onPointerMove=e=>{const drag=this.drags.get(e.pointerId);if(!drag)return;if(this.isDividerDisabled(drag.index)){this.endDragGestures();return}if(this.effectiveOrientation==="horizontal"&&isRtl(this)!==drag.rtl){this.endDragGestures();return}const total=this.effectiveOrientation==="vertical"?drag.base.clientHeight:drag.base.clientWidth;if(!Number.isFinite(total)||total<=0){this.endDragGestures();return}const incremental=separatorDelta(drag.startPos,e,this.effectiveOrientation==="vertical"?"block":"inline",drag.rtl)/total*100-drag.appliedDelta,priorValue=this.sizes[drag.index];if(priorValue===void 0)return;const paired=this.clampPair(this.sizes,drag.index,incremental,total),pairedA=paired[drag.index],pairedB=paired[drag.index+1];if(pairedA===void 0||pairedB===void 0)return;const next=[...this.sizes];next[drag.index]=pairedA,next[drag.index+1]=pairedB,this.requestResize(next,!1)&&(drag.appliedDelta+=pairedA-priorValue,drag.acceptedResize=!0)},this.onPointerUp=e=>{const drag=this.drags.get(e.pointerId);drag&&(this.drags.delete(e.pointerId),e.type==="pointerup"&&drag.acceptedResize&&this.settle(),this.dragController.end(e.pointerId))},this.onDividerKeyDown=(e,index)=>{if(this.isDividerDisabled(index)||e.altKey||e.ctrlKey||e.metaKey||e.isComposing)return;const direction=separatorArrowDirection(e,this.effectiveOrientation==="vertical"?"block":"inline",this.effectiveOrientation==="horizontal"&&isRtl(this));if(e.key==="Home"||e.key==="End"){const{min,max}=this.dividerValueRange(index),current=this.sizes[index];if(current!==void 0){const target=e.key==="Home"?min:max;this.applyDelta(index,target-current,!0)&&e.preventDefault()}}else direction===1?this.applyDelta(index,KEYBOARD_STEP,!0)&&e.preventDefault():direction===-1&&this.applyDelta(index,-KEYBOARD_STEP,!0)&&e.preventDefault()}}static{this.defaultStrings={...super.defaultStrings,resizeDivider:LYRA_DEFAULT_resizeDivider,resizeValuePercent:LYRA_DEFAULT_resizeValuePercent}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["sizes","defaultSizes","panelConstraints"])}static{this.styles=[LyraElement.styles,nativeModalCarrierStyles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-resize-request","lr-resize","lr-resize-change"])}static{this.properties={collapseState:{reflect:!0,attribute:"collapse-state",noAccessor:!0}}}stopNativeModalGeometry(){this.nativeModalView?.removeEventListener("scroll",this.syncNativeModalGeometry,!0),this.nativeModalView?.removeEventListener("resize",this.syncNativeModalGeometry),this.nativeModalView=void 0,this.nativeModalResizeObserver?.disconnect(),this.nativeModalResizeObserver=void 0}nativeModalLabel(){const panel=this.floatingPanelEl;return panel?panel.hasAttribute("aria-label")?panel.getAttribute("aria-label"):resolveIdReferencesIn(panel.getRootNode(),panel.getAttribute("aria-labelledby")).map(element=>element.textContent?.trim()).filter(Boolean).join(" ")||this.getAttribute("aria-label"):this.getAttribute("aria-label")}connectedCallback(){super.connectedCallback();const hostWidth=this.getBoundingClientRect().width;hostWidth>0&&(this.measuredInlineSize=hostWidth),this.seedFirstRenderState(()=>this.syncPanelMembership(!1)),this.hasUpdated&&this.syncPanelMembership(!1),this.initializedSizes&&this.ensureSizes(),this.responsiveObservationEnabled&&this.armCollapseObserver(),this.hasUpdated&&this.overlayActive&&(this.overlayHandle?.isActive()?this.overlayHandle.resume():this.activateFloatingOverlay(),queueMicrotask(()=>{this.syncNativeModalGeometry(),this.nativeModal.show(),this.overlayHandle?.focusInitial()})),this.hasUpdated&&this.syncExternalTriggerA11y()}disconnectedCallback(){this.stopNativeModalGeometry(),this.nativeModal.hide(),super.disconnectedCallback(),this.endDragGestures(),this.resetCollapseObserver(),this.resetGutterObserver(),this.overlayHandle?.suspend(),this.deferredFocusReturn.cancel(),this.releaseExternalTriggerA11y(),this.releaseOwnedPanels()}adoptedCallback(){super.adoptedCallback(),this.deferredFocusReturn.cancel(),this.releaseExternalTriggerA11y(),this.endDragGestures(),this.resetCollapseObserver(),this.resetGutterObserver(),this.releaseOwnedPanels()}firstUpdated(changed){super.firstUpdated(changed),this.responsiveObservationEnabled&&this.armCollapseObserver()}willUpdate(changed){if(super.willUpdate(changed),!this.ownerDocument&&this.panelCount===0&&(this.panelCount=Math.max(this.sizes.length,this.defaultSizes.length,this.panelConstraints.length)),!this.initializedSizes)this.initializeSizes(),this.initializedSizes=!0;else if(changed.has("sizes")){const previous=changed.get("sizes");this.sizesReconciledForMembership?this.sizesReconciledForMembership=!1:this.validLiveSizes(this.sizes)||(Array.isArray(previous)&&this.validLiveSizes(previous)?this.sizes=[...previous]:(this.sizes=[],this.ensureSizes()))}else this.sizes.length===0&&this.ensureSizes();if((changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.orientationBreakpoints.configure(this.orientationBreakpoint,this.orientationBreakpointBasis),(changed.has("orientation")||changed.has("narrowOrientation")||changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.updateEffectiveOrientation(this.measuredInlineSize,this.hasUpdated&&this.orientationBreakpointBasis==="viewport"),changed.has("collapse")||changed.has("railBreakpoint")||changed.has("floatBreakpoint")||changed.has("collapseBreakpointBasis")){const previousEffective=changed.has("collapse")?this.effectiveCollapseStateFor(changed.get("collapse")??"none"):this.collapseState;changed.has("collapse")&&previousEffective!=="wide"&&this.endDragGestures(),this.collapseBreakpoints.configure(this.railBreakpoint,this.floatBreakpoint,this.collapseBreakpointBasis),this.collapsingIndex!==-1&&!this._forced&&(this._collapseState=this.collapseBreakpoints.classify(this.measuredInlineSize)),this.applyEffectiveCollapseTransition(previousEffective,this.collapseState,this.hasUpdated)}if(changed.has("open")||changed.has("collapseState")||changed.has("collapse")||changed.has("panelCount")){const next=this.collapseState==="floating"&&this.open;next!==this.overlayActive&&(this.overlayActive=next,next?(this.justOpened=!0,this.activateFloatingOverlay()):this.deactivateFloatingOverlay())}this.renderConstraintBounds=this.resolveConstraintBounds(this.getContainerSize()).bounds}get collapseState(){return this.effectiveCollapseStateFor(this.collapse)}set collapseState(next){if(next==="auto"){this.releaseCollapsePin(),this.updateCollapseState(this.currentMeasuredWidth());return}this._forced=!0,this.pinnedBand=this.collapseBreakpoints.classify(this.pinMeasurementWidth()),this.setRequestedCollapseState(next)}expandPane(){this.applyPaneIntent(!0)}collapsePane(){this.applyPaneIntent(!1)}togglePane(){this.applyPaneIntent(!this.paneExpanded)}get paneExpanded(){const state=this.collapseState;return state==="floating"?this.open:state==="wide"}applyPaneIntent(expanded){if(this.collapsingIndex===-1)return;const band=this.collapseBreakpoints.classify(this.pinMeasurementWidth());if(band==="floating"){this.collapseState!=="floating"&&(this.releaseCollapsePin(),this.setRequestedCollapseState("floating")),this.open=expanded;return}const target=expanded?"wide":"rail";if(this.collapseState!==target){if(target===band){this.releaseCollapsePin(),this.setRequestedCollapseState(target);return}this.collapseState=target}}releaseCollapsePin(){this._forced=!1,this.pinnedBand=void 0}pinMeasurementWidth(){const live=this.currentMeasuredWidth();return live>0?live:this.measuredInlineSize}get effectiveOrientation(){return this._effectiveOrientation}get responsiveObservationEnabled(){return this.collapse!=="none"||this.orientationBreakpoints.containerObservationEnabled}updateEffectiveOrientation(width,shouldEmit){const next=this.orientationBreakpoints.isBelow(width)?this.narrowOrientation:this.orientation;next!==this._effectiveOrientation&&(this.endDragGestures(),this._effectiveOrientation=next,this.requestUpdate(),shouldEmit&&this.emit("lr-multi-split-orientation-change",{orientation:next}),this._forced&&this.releasePinOnBreakpoint&&(this.releaseCollapsePin(),this.updateCollapseState(width,this.hasUpdated)))}currentMeasuredWidth(){return this.baseEl?.clientWidth??0}effectiveCollapseStateFor(collapse){return collapse!=="none"&&this.panelCount>=2?this._collapseState:"wide"}applyEffectiveCollapseTransition(previous,next,shouldEmit=!0){if(previous===next)return;this.endDragGestures(),this.requestUpdate("collapseState",previous);const forceClose=previous==="floating"&&next!=="floating"&&this.open,forcedCloseVersion=this.forcedCloseVersion;shouldEmit&&(this.relocateFocusOutOfCollapsingPanel(next),this.decorateOwnedPanels(),this.emit("lr-multi-split-collapse-change",{state:next})),forceClose&&this.forcedCloseVersion===forcedCloseVersion&&this.collapseState!=="floating"&&this.setOpen(!1,{force:!0})}relocateFocusOutOfCollapsingPanel(next){if(next==="wide"||next==="floating"&&this.open)return;const index=this.collapsingIndex;if(index===-1)return;const panel=this.ownedPanels[index];panel&&repairComposedFocus(panel,()=>this.collapseFocusFallbacks(panel))}collapseFocusFallbacks(collapsing){const dividers=[...this.shadowRoot?.querySelectorAll('[part="divider"]')??[]];return[...new Set([...this.ownedPanels.filter(panel=>panel!==collapsing),...dividers.filter((_,index)=>!this.isDividerDisabled(index)),...dividers])]}setOpen(next,options){if(options?.force){this.open=next,this.forcedCloseVersion+=1,this.emit("lr-toggle",{expanded:next});return}if(this.open===next)return;const collapseState=this.collapseState,open=this.open,mutationVersion=this.toggleProposalMutationVersion;this.toggleProposalDepth+=1;try{if(this.emit("lr-toggle-request",{expanded:next},{cancelable:!0}).defaultPrevented||this.toggleProposalMutationVersion!==mutationVersion||this.collapseState!==collapseState||this.open!==open)return}finally{this.toggleProposalDepth-=1}this.open=next,this.emit("lr-toggle",{expanded:next})}requestUpdate(name,oldValue,options){this.toggleProposalDepth>0&&(name==="open"&&oldValue!==this.open||name==="collapse"&&oldValue!==this.collapse||name==="collapseState"&&oldValue!==this.collapseState)&&(this.toggleProposalMutationVersion+=1),super.requestUpdate(name,oldValue,options)}setRequestedCollapseState(next,shouldEmit=!0){const previousEffective=this.collapseState;if(next===this._collapseState)return;this._collapseState=next;const nextEffective=this.collapseState;this.applyEffectiveCollapseTransition(previousEffective,nextEffective,shouldEmit),previousEffective===nextEffective&&next!==nextEffective&&this.requestUpdate("collapseState",next)}get storageFullKey(){return this.storageKey?`lr-multi-split:${this.storageKey}:panels`:void 0}panelIdsFor(panels){const ids=[],seen=new Set;for(const panel of panels){const panelId=panel.getAttribute("panel-id")??"";if(!panelId||panelId.trim()!==panelId||seen.has(panelId))return null;seen.add(panelId),ids.push(panelId)}return ids}reconcileIdentitySizes(previousIds,previousValues,nextIds){if(previousIds.length!==previousValues.length||nextIds.length===0)return null;const previousSizes=new Map;previousIds.forEach((panelId,index)=>{previousSizes.set(panelId,previousValues[index])});const retainedTotal=nextIds.reduce((total,panelId)=>total+(previousSizes.get(panelId)??0),0),missingCount=nextIds.filter(panelId=>!previousSizes.has(panelId)).length;if(!(retainedTotal>0)){const equal=100/nextIds.length;return nextIds.map(()=>equal)}const newShare=100/nextIds.length,retainedScale=(100-newShare*missingCount)/retainedTotal;return nextIds.map(panelId=>{const previous=previousSizes.get(panelId);return previous===void 0?newShare:previous*retainedScale})}reconcileSizesByPanelId(previousPanels,nextPanels){if(previousPanels.length!==this.sizes.length||nextPanels.length===0)return null;const previousIds=this.panelIdsFor(previousPanels),nextIds=this.panelIdsFor(nextPanels);return!previousIds||!nextIds?null:this.reconcileIdentitySizes(previousIds,this.sizes,nextIds)}validInitialSizes(value){return!Array.isArray(value)||value.length!==this.panelCount||!value.every(size=>Number.isFinite(size)&&size>=this.safeMin)?!1:Math.abs(value.reduce((sum,size)=>sum+size,0)-100)<.01}validLiveSizes(value){if(!Array.isArray(value)||value.length!==this.panelCount)return!1;const floor=this.normalizedDefaultMin();return value.every(size=>Number.isFinite(size)&&size>=floor)?Math.abs(value.reduce((sum,size)=>sum+size,0)-100)<.01:!1}resolveDefaultSizes(){if(this.defaultSizes.length===0)return null;if(!this.defaultSizes.some(entry=>typeof entry=="string")){const numbers=this.defaultSizes;return this.validInitialSizes(numbers)?[...numbers]:null}const containerSize=this.currentMeasuredWidth()||this.getBoundingClientRect().width;if(!(containerSize>0))return null;const resolvedPx=[];for(const entry of this.defaultSizes){if(typeof entry=="number"){if(!Number.isFinite(entry))return null;resolvedPx.push(entry/100*containerSize);continue}const px=resolveCssLength(entry,{host:this,percentBase:containerSize,viewportBasis:this.ownerDocument.defaultView??void 0});if(px==null||!(px>=0))return null;resolvedPx.push(px)}const sum=resolvedPx.reduce((total,size)=>total+size,0);if(!(sum>0))return null;const normalized=resolvedPx.map(size=>size/sum*100);return this.validInitialSizes(normalized)?normalized:null}initializeSizes(){if(this.validInitialSizes(this.sizes)||this.loadPersisted())return;const resolved=this.resolveDefaultSizes();if(resolved){this.sizes=resolved;return}this.sizes=[],this.ensureSizes()}loadPersisted(){const panelIds=this.panelIdsFor(this.ownedPanels);if(!panelIds)return!1;const parsed=readPersistedState(this.storageFullKey,isPersistedPanelLayout);if(!parsed||parsed.panels.length===0)return!1;const persistedIds=[],persistedSizes=[],seen=new Set;for(const panel of parsed.panels){if(seen.has(panel.panelId))return!1;seen.add(panel.panelId),persistedIds.push(panel.panelId),persistedSizes.push(panel.size)}if(Math.abs(persistedSizes.reduce((sum,size)=>sum+size,0)-100)>=.01)return!1;const normalized=this.reconcileIdentitySizes(persistedIds,persistedSizes,panelIds);return normalized&&this.validInitialSizes(normalized)?(this.sizes=normalized,!0):!1}persist(){const panelIds=this.panelIdsFor(this.ownedPanels);if(!panelIds||panelIds.length!==this.sizes.length)return;const layout={version:1,panels:panelIds.map((panelId,index)=>({panelId,size:this.sizes[index]}))};writePersistedState(this.storageFullKey,layout)}ensureSizes(){if(this.panelCount===this.sizes.length)return;if(this.panelCount<=0){this.sizes=[];return}if(this.sizes.length===0){const equal=100/this.panelCount;this.sizes=Array.from({length:this.panelCount},()=>equal);return}const diff=this.panelCount-this.sizes.length;if(diff>0){const newShare=100/this.panelCount,scale=(100-newShare*diff)/100;this.sizes=[...this.sizes.map(s=>s*scale),...Array.from({length:diff},()=>newShare)]}else{const kept=this.sizes.slice(0,this.panelCount),removedTotal=this.sizes.slice(this.panelCount).reduce((sum,s)=>sum+s,0),keptTotal=kept.reduce((sum,s)=>sum+s,0)||1;this.sizes=kept.map(s=>s+s/keptTotal*removedTotal)}}readPanelStyle(panel,property2){return{value:panel.style.getPropertyValue(property2),priority:panel.style.getPropertyPriority(property2)}}samePanelStyle(left,right){return left.value===right.value&&left.priority===right.priority}snapshotPanelOwnership(panel){const styles2=new Map;for(const property2 of OWNED_PANEL_STYLE_PROPERTIES)styles2.set(property2,this.readPanelStyle(panel,property2));return{styles:styles2,appliedStyles:new Map,hidden:panel.hidden,collapseState:panel.getAttribute("data-collapse-state")}}adoptPanelOwnership(panel,snapshot){for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const current=this.readPanelStyle(panel,property2),applied=snapshot.appliedStyles.get(property2);(applied&&!this.samePanelStyle(current,applied)||!applied&&!this.samePanelStyle(current,snapshot.styles.get(property2)))&&snapshot.styles.set(property2,current)}(snapshot.appliedHidden!==void 0&&panel.hidden!==snapshot.appliedHidden||snapshot.appliedHidden===void 0&&panel.hidden!==snapshot.hidden)&&(snapshot.hidden=panel.hidden);const collapseState=panel.getAttribute("data-collapse-state");(snapshot.appliedCollapseState!==void 0&&collapseState!==snapshot.appliedCollapseState||snapshot.appliedCollapseState===void 0&&collapseState!==snapshot.collapseState)&&(snapshot.collapseState=collapseState)}applyOwnedPanelStyle(panel,snapshot,property2,value){value.value===""?panel.style.removeProperty(property2):panel.style.setProperty(property2,value.value,value.priority),snapshot.appliedStyles.set(property2,this.readPanelStyle(panel,property2))}applyOwnedPanelStyleValue(panel,snapshot,property2,value){this.applyOwnedPanelStyle(panel,snapshot,property2,{value,priority:""})}applyOwnedPanelHidden(panel,snapshot,hidden){panel.hidden=hidden,snapshot.appliedHidden=panel.hidden}applyOwnedPanelCollapseState(panel,snapshot,state){state===null?panel.removeAttribute("data-collapse-state"):panel.setAttribute("data-collapse-state",state),snapshot.appliedCollapseState=panel.getAttribute("data-collapse-state")}restorePanelOwnership(panel,snapshot){this.adoptPanelOwnership(panel,snapshot);for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const value=snapshot.styles.get(property2);value.value===""?panel.style.removeProperty(property2):panel.style.setProperty(property2,value.value,value.priority)}panel.hidden=snapshot.hidden,snapshot.collapseState===null?panel.removeAttribute("data-collapse-state"):panel.setAttribute("data-collapse-state",snapshot.collapseState)}panelProjectionDiverged(panel,snapshot){for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const current=this.readPanelStyle(panel,property2),expected=snapshot.appliedStyles.get(property2)??snapshot.styles.get(property2);if(!this.samePanelStyle(current,expected))return!0}if(panel.hidden!==(snapshot.appliedHidden??snapshot.hidden))return!0;const expectedCollapseState=snapshot.appliedCollapseState!==void 0?snapshot.appliedCollapseState:snapshot.collapseState;return panel.getAttribute("data-collapse-state")!==expectedCollapseState}resetPanelOwnershipObserver(){this.panelOwnershipObserverGeneration+=1,this.panelOwnershipObserver?.disconnect(),this.panelOwnershipObserver=void 0,this.panelOwnershipObserverDocument=void 0}observeOwnedPanels(){this.resetPanelOwnershipObserver();const ownerDocument=this.ownerDocument,MutationObserverConstructor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverConstructor||!this.isConnected||this.ownedPanels.length===0)return;const generation=this.panelOwnershipObserverGeneration,observer=new MutationObserverConstructor(records=>{if(this.panelOwnershipObserver!==observer||this.panelOwnershipObserverDocument!==this.ownerDocument||this.panelOwnershipObserverGeneration!==generation||!this.isConnected)return;records.some(record=>{const panel=record.target,snapshot=this.panelOwnership.get(panel);return snapshot?this.panelProjectionDiverged(panel,snapshot):!1})&&this.requestUpdate()});this.panelOwnershipObserver=observer,this.panelOwnershipObserverDocument=ownerDocument;for(const panel of this.ownedPanels)observer.observe(panel,{attributes:!0,attributeFilter:["style","hidden","data-collapse-state"]})}samePanelSequence(next){return next.length===this.ownedPanels.length&&next.every((panel,index)=>panel===this.ownedPanels[index])}syncPanelMembership(reconcileSizes=!0){const next=[...this.children].filter(child=>child!==this.nativeModal.helperMount);if(this.samePanelSequence(next))return;const previousPanels=this.ownedPanels,identitySizes=reconcileSizes?this.reconcileSizesByPanelId(previousPanels,next):null,previousEffective=this.collapseState,nextSet=new Set(next);for(const panel of this.ownedPanels){if(nextSet.has(panel))continue;const snapshot=this.panelOwnership.get(panel);snapshot&&this.restorePanelOwnership(panel,snapshot),this.panelOwnership.delete(panel)}for(const panel of next)this.panelOwnership.has(panel)||this.panelOwnership.set(panel,this.snapshotPanelOwnership(panel));const countChanged=next.length!==this.panelCount;this.ownedPanels=next,this.panelCount=next.length,this.collapsingIndex!==-1&&!this._forced&&(this._collapseState=this.collapseBreakpoints.classify(this.currentMeasuredWidth())),this.applyEffectiveCollapseTransition(previousEffective,this.collapseState,this.hasUpdated),identitySizes?(this.sizesReconciledForMembership=!0,this.sizes=identitySizes):countChanged&&reconcileSizes&&(this.sizesReconciledForMembership=!0,this.ensureSizes()),this.observeOwnedPanels(),this.hasUpdated&&this.requestUpdate()}releaseOwnedPanels(){this.resetPanelOwnershipObserver();for(const panel of this.ownedPanels){const snapshot=this.panelOwnership.get(panel);snapshot&&this.restorePanelOwnership(panel,snapshot)}this.ownedPanels=[],this.panelOwnership.clear()}getContainerSize(){return this.baseEl?this.effectiveOrientation==="vertical"?this.baseEl.clientHeight:this.baseEl.clientWidth:0}resetGutterObserver(){this.gutterObserverFrame!==void 0&&(this.gutterObserverDocument?.defaultView?.cancelAnimationFrame(this.gutterObserverFrame),this.gutterObserverFrame=void 0),this.gutterResizeObserver?.disconnect(),this.gutterResizeObserver=void 0,this.gutterObserverDocument=void 0,this.gutterObservedDividers=[],this.baseEl?.style.removeProperty("--_lr-multi-split-gutters")}updateGutterBudget(){const view=this.ownerDocument.defaultView,base=this.baseEl;if(!view||!base)return;const vertical=this.effectiveOrientation==="vertical",value=`${this.gutterObservedDividers.reduce((total,divider)=>{const style=view.getComputedStyle(divider),properties=vertical?["height","padding-top","padding-bottom","border-top-width","border-bottom-width"]:["width","padding-left","padding-right","border-left-width","border-right-width"],boxProperties=style.boxSizing==="border-box"?properties.slice(0,1):properties;return total+boxProperties.reduce((size,property2)=>size+finiteRange(parseFloat(style.getPropertyValue(property2)),0,0),0)},0)}px`;base.style.getPropertyValue("--_lr-multi-split-gutters")!==value&&base.style.setProperty("--_lr-multi-split-gutters",value)}syncGutterObserver(enabled){const base=this.baseEl;if(!enabled||!this.isConnected||!base){this.resetGutterObserver();return}const ownerDocument=this.ownerDocument,dividers=[...base.querySelectorAll('[part="divider"]')];if(this.gutterResizeObserver&&this.gutterObserverDocument===ownerDocument&&dividers.length===this.gutterObservedDividers.length&&dividers.every((divider,index)=>divider===this.gutterObservedDividers[index])){this.updateGutterBudget();return}this.resetGutterObserver(),this.gutterObservedDividers=dividers,this.gutterObserverDocument=ownerDocument,this.gutterObservedContainerSize=this.getContainerSize(),this.updateGutterBudget();const ownerWindow=ownerDocument.defaultView,ResizeObserverConstructor=ownerWindow?.ResizeObserver;if(!ownerWindow||!ResizeObserverConstructor)return;const observer=new ResizeObserverConstructor(()=>{if(this.gutterResizeObserver!==observer||!this.isConnected||this.ownerDocument!==ownerDocument)return;this.updateGutterBudget();const size=this.getContainerSize();size!==this.gutterObservedContainerSize&&(this.gutterObservedContainerSize=size,this.requestUpdate())});this.gutterResizeObserver=observer;const frame=ownerWindow.requestAnimationFrame(()=>{if(!(this.gutterObserverFrame!==frame||this.gutterResizeObserver!==observer||!this.isConnected||this.ownerDocument!==ownerDocument||this.baseEl!==base)){this.gutterObserverFrame=void 0,observer.observe(base,{box:"border-box"});for(const divider of dividers)observer.observe(divider,{box:"border-box"})}});this.gutterObserverFrame=frame}get collapsingIndex(){return this.collapse==="none"||this.panelCount<2?-1:this.collapse==="start"?0:this.panelCount-1}get collapseActive(){return this.collapsingIndex!==-1&&this.collapseState!=="wide"}isDividerDisabled(index){if(!this.collapseActive)return!1;const adjacent=this.collapsingIndex===0?0:this.panelCount-2;return index===adjacent}updateCollapseState(width,shouldEmit=!0){if(this.collapse==="none")return;const classified=this.collapseBreakpoints.classify(width);if(this._forced){if(!this.releasePinOnBreakpoint||classified===this.pinnedBand)return;this.releaseCollapsePin()}this.setRequestedCollapseState(classified,shouldEmit)}armCollapseObserver(){const observedElement=this.baseEl;if(!this.isConnected||!observedElement)return;const ownerDocument=this.ownerDocument;if(this.collapseResizeObserver&&this.collapseObservedElement===observedElement&&this.collapseObserverOwnerDocument===ownerDocument)return;this.resetCollapseObserver();const ResizeObserverConstructor=ownerDocument.defaultView?.ResizeObserver;if(!ResizeObserverConstructor)return;const generation=this.collapseObserverGeneration,observer=new ResizeObserverConstructor(entries=>{if(this.collapseResizeObserver!==observer||this.collapseObserverGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||this.baseEl!==observedElement)return;const box=entries[0]?.contentBoxSize?.[0],width=box?box.inlineSize:observedElement.getBoundingClientRect().width;this.measuredInlineSize=width,this.updateCollapseState(width),this.updateEffectiveOrientation(width,!0)});this.collapseResizeObserver=observer,this.collapseObservedElement=observedElement,this.collapseObserverOwnerDocument=ownerDocument,observer.observe(observedElement)}resetCollapseObserver(){this.collapseObserverGeneration+=1,this.collapseResizeObserver?.disconnect(),this.collapseResizeObserver=void 0,this.collapseObservedElement=void 0,this.collapseObserverOwnerDocument=void 0}syncCollapseObserver(){if(!this.responsiveObservationEnabled){this.resetCollapseObserver();return}this.armCollapseObserver()}get safeMin(){return finiteRange(this.min,10,0)}normalizedDefaultMin(){if(this.panelCount<=0)return 0;const requested=this.safeMin,available=Math.max(0,100-KEYBOARD_STEP);return Math.min(requested,available/this.panelCount)}resolveConstraintBounds(containerSize){const fallbackMin=this.normalizedDefaultMin(),fallback=Array.from({length:this.panelCount},()=>({min:fallbackMin,max:1/0}));if(this.panelCount<=0)return{bounds:[],usePanelConstraints:!0};const bounds=[];let minimumTotal=0,maximumTotal=0,hasUnboundedMaximum=!1,issueReason;for(let index=0;index<this.panelCount;index++){const constraint=this.panelConstraints[index];let min=this.safeMin,max=1/0,minSet=!1,maxSet=!1;constraint&&(constraint.minPx!=null&&Number.isFinite(constraint.minPx)&&constraint.minPx>=0&&containerSize>0&&(min=constraint.minPx/containerSize*100,minSet=!0),constraint.minPercent!=null&&Number.isFinite(constraint.minPercent)&&constraint.minPercent>=0&&(min=minSet?Math.max(min,constraint.minPercent):constraint.minPercent,minSet=!0),constraint.maxPx!=null&&Number.isFinite(constraint.maxPx)&&constraint.maxPx>=0&&containerSize>0&&(max=constraint.maxPx/containerSize*100,maxSet=!0),constraint.maxPercent!=null&&Number.isFinite(constraint.maxPercent)&&constraint.maxPercent>=0&&(max=maxSet?Math.min(max,constraint.maxPercent):constraint.maxPercent,maxSet=!0),(constraint.minPx!=null&&(!Number.isFinite(constraint.minPx)||constraint.minPx<0)||constraint.maxPx!=null&&(!Number.isFinite(constraint.maxPx)||constraint.maxPx<0)||constraint.minPercent!=null&&(!Number.isFinite(constraint.minPercent)||constraint.minPercent<0)||constraint.maxPercent!=null&&(!Number.isFinite(constraint.maxPercent)||constraint.maxPercent<0))&&(issueReason??="minimum-exceeds-maximum")),min>max&&(issueReason??="minimum-exceeds-maximum"),bounds.push({min,max}),minimumTotal+=min,Number.isFinite(max)?maximumTotal+=max:hasUnboundedMaximum=!0}return issueReason==null&&minimumTotal>100+1e-9&&(issueReason="minimum-total"),issueReason==null&&!hasUnboundedMaximum&&maximumTotal<100-1e-9&&(issueReason="maximum-total"),issueReason==null?{bounds,usePanelConstraints:!0}:{bounds:fallback,usePanelConstraints:!1,issue:{reason:issueReason,panelCount:this.panelCount,minimumTotal,maximumTotal:hasUnboundedMaximum?null:maximumTotal,containerSize}}}hasClampConstraint(constraint){return!!constraint&&(constraint.minPx!=null||constraint.maxPx!=null||constraint.minPercent!=null||constraint.maxPercent!=null)}minSideExpr(constraint){const terms=[];return constraint?.minPx!=null&&Number.isFinite(constraint.minPx)&&constraint.minPx>=0&&terms.push(`${constraint.minPx}px`),constraint?.minPercent!=null&&Number.isFinite(constraint.minPercent)&&constraint.minPercent>=0&&terms.push(`${constraint.minPercent}%`),terms.length===0?`${NO_MIN_PX}px`:terms.length===1?terms[0]:`max(${this.safeMin}%, ${terms.join(", ")})`}maxSideExpr(constraint){const terms=[];return constraint?.maxPx!=null&&Number.isFinite(constraint.maxPx)&&constraint.maxPx>=0&&terms.push(`${constraint.maxPx}px`),constraint?.maxPercent!=null&&Number.isFinite(constraint.maxPercent)&&constraint.maxPercent>=0&&terms.push(`${constraint.maxPercent}%`),terms.length===0?`${NO_MAX_PX}px`:terms.length===1?terms[0]:`min(${terms.join(", ")})`}clampPair(sizes,i,delta,containerSize=0){const next=[...sizes],currentA=next[i],currentB=next[i+1];if(currentA===void 0||currentB===void 0)return next;const pairTotal=currentA+currentB,bounds=this.resolveConstraintBounds(containerSize).bounds,a=bounds[i]??{min:0,max:1/0},b=bounds[i+1]??{min:0,max:1/0},loRaw=Math.max(a.min,pairTotal-b.max),hiRaw=Math.min(a.max,pairTotal-b.min),lo=Math.min(loRaw,pairTotal),hi=Math.max(hiRaw,lo),clampedA=Math.min(Math.max(currentA+delta,lo),hi);return next[i]=clampedA,next[i+1]=pairTotal-clampedA,next}requestResize(next,commit){return next.length===this.sizes.length&&next.every((size,index)=>Math.abs(size-this.sizes[index])<=1e-9)||this.emit("lr-resize-request",{sizes:[...next]},{cancelable:!0}).defaultPrevented?!1:(this.sizes=next,this.emit("lr-resize",{sizes:[...this.sizes]}),commit&&this.settle(),!0)}settle(){this.persist(),this.emit("lr-resize-change",{sizes:[...this.sizes]})}applyDelta(index,delta,commit){const next=this.clampPair(this.sizes,index,delta,this.getContainerSize());return next.length!==this.sizes.length||next.some((size,currentIndex)=>Math.abs(size-this.sizes[currentIndex])>1e-9)?(this.requestResize(next,commit),!0):!1}get floatingPanelEl(){const index=this.collapsingIndex;return index===-1?null:this.ownedPanels[index]??null}activateFloatingOverlay(){this.nativeModal.prepare(),this.deferredFocusReturn.cancel();const opener=deepActiveElement(this.ownerDocument);this.overlayOpener=isHtmlElement(opener)?opener:null;const trigger=this.resolveExternalTrigger();this.overlayReturnTarget=trigger??this.overlayOpener;const panel=this.floatingPanelEl;panel&&(this.floatingDialogPanel=panel,this.floatingDialogPreviousRole=panel.getAttribute("role"),this.floatingDialogPreviousAriaModal=panel.getAttribute("aria-modal"),this.nativeModal.requested||(panel.setAttribute("role","dialog"),panel.setAttribute("aria-modal","true"))),this.overlayHandle=activateOverlay({host:this,panel:()=>this.floatingPanelEl,modalRoot:()=>this.floatingPanelEl,auxiliaryRoots:()=>{const root=this.nativeModal.helperMount;return root?[root]:[]},restoreFocusTo:trigger??void 0,onEscape:()=>this.setOpen(!1),onBackdrop:()=>this.setOpen(!1),lockScroll:!0,suspendWhenUnrendered:!0})}deactivateFloatingOverlay(){this.stopNativeModalGeometry(),this.nativeModal.hide(),this.nativeModal.prepare(!1);const trigger=this.resolveExternalTrigger(),panel=this.floatingDialogPanel;this.floatingDialogPanel=null,trigger&&this.overlayHandle?.updateRestoreFocusTo(trigger),this.overlayHandle?.deactivate(),this.overlayHandle=void 0,(trigger||this.trigger||this.for)&&this.deferredFocusReturn.schedule({host:this,candidates:()=>[this.resolveExternalTrigger(),this.overlayReturnTarget,this.overlayOpener],stranded:active=>panel!==null&&composedContains(panel,active),isCurrent:()=>!this.overlayActive}),panel&&(this.floatingDialogPreviousRole===null?panel.removeAttribute("role"):panel.setAttribute("role",this.floatingDialogPreviousRole),this.floatingDialogPreviousAriaModal===null?panel.removeAttribute("aria-modal"):panel.setAttribute("aria-modal",this.floatingDialogPreviousAriaModal))}endDragGestures(){this.drags.clear(),this.dragController.cancelAll()}dividerName(index){let label;try{label=this.dividerLabel?.(index,this.panelCount)}catch{}return typeof label=="string"&&label.trim()?label:this.localize("resizeDivider",void 0,{a:getNumberFormat(this.effectiveLocale).format(index+1),b:getNumberFormat(this.effectiveLocale).format(index+2)})}dividerValueRange(index,bounds=this.resolveConstraintBounds(this.getContainerSize()).bounds){const pairTotal=(this.sizes[index]??0)+(this.sizes[index+1]??0),leading=bounds[index],trailing=bounds[index+1],min=Math.max(leading.min,pairTotal-trailing.max);return{min,max:Math.max(min,Math.min(leading.max,pairTotal-trailing.min))}}updated(changed){super.updated(changed),this.overlayActive&&(this.syncNativeModalGeometry(),this.nativeModal.show()),(changed.has("collapse")||changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.syncCollapseObserver(),this.orientationBreakpoints.active?this.setAttribute("data-effective-orientation",this._effectiveOrientation):this.removeAttribute("data-effective-orientation"),(changed.has("panelConstraints")||changed.has("min"))&&(this.constraintConfigVersion+=1);const constraintResolution=this.resolveConstraintBounds(this.getContainerSize()),issue=constraintResolution.issue,issueKey=issue?`${issue.reason}:${issue.panelCount}:${this.constraintConfigVersion}`:"";issueKey!==this.constraintIssueKey&&(this.constraintIssueKey=issueKey,issue&&this.emit("lr-multi-split-constraints-invalid",issue));const collapsingIndex=this.collapseActive?this.collapsingIndex:-1;this.syncGutterObserver(collapsingIndex===-1&&this.panelConstraints.some(constraint=>finiteRange(constraint?.minPx??0,0,0)>0)),this.decorateOwnedPanels(constraintResolution),this.syncExternalTriggerA11y(),this.justOpened&&(this.justOpened=!1,this.overlayHandle?.focusInitial())}resolveExternalTrigger(){if(this.trigger)return this.trigger;if(!this.for)return null;const found=this.getRootNode().getElementById?.(this.for);return isHtmlElement(found)?found:null}syncExternalTriggerA11y(){const panel=this.ownedPanels[this.collapsingIndex],trigger=panel&&this.panelCount>1?this.resolveExternalTrigger():null;if(!this.isConnected||!panel||!trigger){this.releaseExternalTriggerA11y();return}this.triggerPanel!==panel&&(this.releaseExternalTriggerA11y(),this.triggerPanel=panel),panel.id||(this.generatedTriggerPanelId=nextId("multi-split-panel"),panel.id=this.generatedTriggerPanelId);const contribution={attributes:{"aria-expanded":this.paneExpanded?"true":"false"},controls:[panel]};this.triggerAria?this.triggerAria.update(trigger,contribution):this.triggerAria=acquireAriaOwnership(trigger,contribution)}releaseExternalTriggerA11y(){this.triggerAria?.release(),this.triggerAria=void 0,this.triggerPanel&&this.generatedTriggerPanelId&&this.triggerPanel.id===this.generatedTriggerPanelId&&this.triggerPanel.removeAttribute("id"),this.triggerPanel=void 0,this.generatedTriggerPanelId=void 0}decorateOwnedPanels(constraintResolution=this.resolveConstraintBounds(this.getContainerSize())){const panels=this.ownedPanels;for(const panel of panels){const snapshot=this.panelOwnership.get(panel);snapshot&&this.adoptPanelOwnership(panel,snapshot)}const collapsingIndex=this.collapseActive?this.collapsingIndex:-1,pixelMinimumTotal=constraintResolution.usePanelConstraints?this.panelConstraints.slice(0,this.panelCount).reduce((total,constraint)=>total+finiteRange(constraint?.minPx??0,0,0),0):0,redistributedShare=new Array(panels.length).fill(0);if(collapsingIndex===-1){let freedPercent=0;const growableIndexes=[];let growableTotal=0;for(let i=0;i<panels.length;i++){const percent=this.sizes[i]??0,constraint=constraintResolution.usePanelConstraints?this.panelConstraints[i]:void 0;if(this.hasClampConstraint(constraint)){const bounds=constraintResolution.bounds[i],clamped=bounds?Math.min(Math.max(percent,bounds.min),bounds.max):percent;clamped<percent&&(freedPercent+=percent-clamped)}else growableIndexes.push(i),growableTotal+=percent}if(freedPercent>0&&growableTotal>0)for(const i of growableIndexes)redistributedShare[i]=freedPercent*((this.sizes[i]??0)/growableTotal)}panels.forEach((panel,i)=>{const snapshot=this.panelOwnership.get(panel);if(!snapshot)return;const percent=this.sizes[i]??0,constraint=constraintResolution.usePanelConstraints?this.panelConstraints[i]:void 0,pixelMinimum=finiteRange(constraint?.minPx??0,0,0);if(collapsingIndex===-1&&pixelMinimum>0&&pixelMinimumTotal>0?this.applyOwnedPanelStyleValue(panel,snapshot,"--_lr-multi-split-panel-min",`min(${pixelMinimum}px, max(0px, calc((100% - var(--_lr-multi-split-gutters, 0px)) * ${pixelMinimum/pixelMinimumTotal})))`):this.applyOwnedPanelStyle(panel,snapshot,"--_lr-multi-split-panel-min",snapshot.styles.get("--_lr-multi-split-panel-min")),this.applyOwnedPanelStyle(panel,snapshot,"inline-size",snapshot.styles.get("inline-size")),this.applyOwnedPanelHidden(panel,snapshot,snapshot.hidden),collapsingIndex===i&&this.collapseState==="rail")this.applyOwnedPanelStyleValue(panel,snapshot,"flex",`0 0 ${this.railWidth}`);else if(collapsingIndex===i&&this.collapseState==="floating"&&!this.open)this.applyOwnedPanelStyleValue(panel,snapshot,"flex","none"),this.applyOwnedPanelHidden(panel,snapshot,!0);else if(collapsingIndex===i&&this.collapseState==="floating")this.applyOwnedPanelStyleValue(panel,snapshot,"inline-size",`var(--lr-multi-split-floating-panel-inline-size, ${percent}%)`);else if(collapsingIndex!==-1&&i!==collapsingIndex)this.applyOwnedPanelStyleValue(panel,snapshot,"flex",this.hasClampConstraint(constraint)?`0 1 clamp(${this.minSideExpr(constraint)}, ${percent}%, ${this.maxSideExpr(constraint)})`:`${percent} 1 0%`);else{const adjustedPercent=percent+(redistributedShare[i]??0);this.applyOwnedPanelStyleValue(panel,snapshot,"flex",this.hasClampConstraint(constraint)?`0 1 clamp(${this.minSideExpr(constraint)}, ${percent}%, ${this.maxSideExpr(constraint)})`:`0 1 ${adjustedPercent}%`)}this.applyOwnedPanelStyleValue(panel,snapshot,"order",String(i*2)),collapsingIndex===i?this.applyOwnedPanelCollapseState(panel,snapshot,this.collapseState):this.applyOwnedPanelCollapseState(panel,snapshot,null)}),collapsingIndex!==-1?this.setAttribute("data-collapse-state",this.collapseState):this.removeAttribute("data-collapse-state")}render(){const dividers=[],bounds=this.renderConstraintBounds;for(let i=0;i<this.panelCount-1;i++){const{min:valueMin,max:valueMax}=this.dividerValueRange(i,bounds),disabled=this.isDividerDisabled(i);dividers.push(html`<div
1
+ import{__decorate}from"tslib";import{resolveIdReferencesIn}from"../../../internal/aria-reflection.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{activateOverlay,composedContains,deepActiveElement}from"../../../internal/overlay-manager.js";import{isRtl}from"../../../internal/rtl.js";import{repairComposedFocus}from"../../../internal/focus-navigation.js";import{cancelDeferredFocusReturn}from"../../../internal/deferred-focus-return.js";import{acquireAriaOwnership}from"../../../internal/aria-ownership.js";import{nextId}from"../../../internal/a11y.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{finiteRange}from"../../../internal/numbers.js";import{SeparatorDragController,separatorArrowDirection,separatorCoordinate,separatorDelta}from"../../../internal/separator-drag.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{CollapseBreakpointController,OrientationBreakpointController}from"../../../internal/orientation-breakpoint.js";import{readPersistedState,writePersistedState}from"../../../internal/persisted-state.js";import{resolveCssLength}from"../../../internal/css-length.js";import{styles}from"./multi-split.styles.js";import{LYRA_DEFAULT_resizeDivider,LYRA_DEFAULT_resizeValuePercent}from"../../../internal/default-strings/layout.generated.js";const KEYBOARD_STEP=2;function isPersistedPanelLayout(value){if(typeof value!="object"||value===null)return!1;const candidate=value;return candidate.version!==1||!Array.isArray(candidate.panels)?!1:candidate.panels.every(panel=>{if(typeof panel!="object"||panel===null)return!1;const record=panel;return typeof record.panelId=="string"&&record.panelId!==""&&record.panelId.trim()===record.panelId&&typeof record.size=="number"&&Number.isFinite(record.size)&&record.size>=0})}const NO_MIN_PX=0,NO_MAX_PX=1e6,OWNED_PANEL_STYLE_PROPERTIES=["flex","order","inline-size","--_lr-multi-split-panel-min"];class LyraMultiSplit extends LyraElement{constructor(){super(...arguments),this.toggleProposalDepth=0,this.toggleProposalMutationVersion=0,this.forcedCloseVersion=0,this.sizes=[],this.defaultSizes=[],this.min=10,this.orientation="horizontal",this.orientationBreakpointBasis="container",this.narrowOrientation="vertical",this.panelConstraints=[],this.collapse="none",this.railWidth="3.5rem",this.railBreakpoint=640,this.floatBreakpoint=400,this.collapseBreakpointBasis="container",this.releasePinOnBreakpoint=!1,this.open=!1,this.trigger=null,this.for="",this.panelCount=0,this.sizesReconciledForMembership=!1,this._collapseState="wide",this._forced=!1,this.overlayActive=!1,this.justOpened=!1,this.nativeModal=new NativeModalCarrier(this,{onCancel:()=>{this.overlayHandle?.isTopmost()&&this.setOpen(!1)},onUnexpectedClose:()=>{this.overlayHandle?.isTopmost()&&this.setOpen(!1),this.overlayActive&&this.nativeModal.show()}}),this.syncNativeModalGeometry=()=>{if(!this.nativeModal.requested||!this.isConnected)return;if(!this.nativeModalView){this.nativeModalView=this.ownerDocument.defaultView??void 0,this.nativeModalView?.addEventListener("scroll",this.syncNativeModalGeometry,!0),this.nativeModalView?.addEventListener("resize",this.syncNativeModalGeometry);const Observer=this.nativeModalView?.ResizeObserver;if(Observer){const observer=new Observer(this.syncNativeModalGeometry);this.nativeModalResizeObserver=observer,observer.observe(this)}}const frame=this.shadowRoot?.querySelector("[data-native-modal-carrier]");if(!frame)return;const rect=this.getBoundingClientRect();Object.assign(frame.style,{top:`${rect.top}px`,left:`${rect.left}px`,right:"auto",bottom:"auto",width:`${rect.width}px`,height:`${rect.height}px`,padding:"0"})},this.overlayReturnTarget=null,this.overlayOpener=null,this.floatingDialogPanel=null,this.floatingDialogPreviousRole=null,this.floatingDialogPreviousAriaModal=null,this.drags=new Map,this.dragController=new SeparatorDragController(this,event=>this.onPointerMove(event),event=>this.onPointerUp(event)),this.ownedPanels=[],this.panelOwnership=new Map,this.panelOwnershipObserverGeneration=0,this.constraintIssueKey="",this.constraintConfigVersion=0,this.renderConstraintBounds=[],this.initializedSizes=!1,this.measuredInlineSize=Number.POSITIVE_INFINITY,this._effectiveOrientation="horizontal",this.collapseObserverGeneration=0,this.gutterObservedDividers=[],this.gutterObservedContainerSize=0,this.orientationBreakpoints=new OrientationBreakpointController(this,()=>this.updateEffectiveOrientation(this.measuredInlineSize,!0)),this.collapseBreakpoints=new CollapseBreakpointController(this,()=>this.updateCollapseState(this.measuredInlineSize,!0)),this.onSlotChange=()=>{this.updateBrowserDerivedState(()=>this.syncPanelMembership())},this.onBackdropClick=()=>{this.overlayHandle?.dismissBackdrop()},this.onModalLayerClick=event=>{event.target===this.baseEl&&this.overlayHandle?.dismissBackdrop()},this.onPointerDown=(e,index)=>{if(e.button!==0||this.isDividerDisabled(index))return;const divider=e.currentTarget;this.dragController.start(e,divider)&&this.drags.set(e.pointerId,{index,startPos:separatorCoordinate(e,this.effectiveOrientation==="vertical"?"block":"inline"),base:this.baseEl,rtl:this.effectiveOrientation==="horizontal"&&isRtl(this),appliedDelta:0,acceptedResize:!1})},this.onPointerMove=e=>{const drag=this.drags.get(e.pointerId);if(!drag)return;if(this.isDividerDisabled(drag.index)){this.endDragGestures();return}if(this.effectiveOrientation==="horizontal"&&isRtl(this)!==drag.rtl){this.endDragGestures();return}const total=this.effectiveOrientation==="vertical"?drag.base.clientHeight:drag.base.clientWidth;if(!Number.isFinite(total)||total<=0){this.endDragGestures();return}const incremental=separatorDelta(drag.startPos,e,this.effectiveOrientation==="vertical"?"block":"inline",drag.rtl)/total*100-drag.appliedDelta,priorValue=this.sizes[drag.index];if(priorValue===void 0)return;const paired=this.clampPair(this.sizes,drag.index,incremental,total),pairedA=paired[drag.index],pairedB=paired[drag.index+1];if(pairedA===void 0||pairedB===void 0)return;const next=[...this.sizes];next[drag.index]=pairedA,next[drag.index+1]=pairedB,this.requestResize(next,!1)&&(drag.appliedDelta+=pairedA-priorValue,drag.acceptedResize=!0)},this.onPointerUp=e=>{const drag=this.drags.get(e.pointerId);drag&&(this.drags.delete(e.pointerId),e.type==="pointerup"&&drag.acceptedResize&&this.settle(),this.dragController.end(e.pointerId))},this.onDividerKeyDown=(e,index)=>{if(this.isDividerDisabled(index)||e.altKey||e.ctrlKey||e.metaKey||e.isComposing)return;const direction=separatorArrowDirection(e,this.effectiveOrientation==="vertical"?"block":"inline",this.effectiveOrientation==="horizontal"&&isRtl(this));if(e.key==="Home"||e.key==="End"){const{min,max}=this.dividerValueRange(index),current=this.sizes[index];if(current!==void 0){const target=e.key==="Home"?min:max;this.applyDelta(index,target-current,!0)&&e.preventDefault()}}else direction===1?this.applyDelta(index,KEYBOARD_STEP,!0)&&e.preventDefault():direction===-1&&this.applyDelta(index,-KEYBOARD_STEP,!0)&&e.preventDefault()}}static{this.defaultStrings={...super.defaultStrings,resizeDivider:LYRA_DEFAULT_resizeDivider,resizeValuePercent:LYRA_DEFAULT_resizeValuePercent}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["sizes","defaultSizes","panelConstraints"])}static{this.styles=[LyraElement.styles,nativeModalCarrierStyles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-resize-request","lr-resize","lr-resize-change"])}static{this.properties={collapseState:{reflect:!0,attribute:"collapse-state",noAccessor:!0}}}stopNativeModalGeometry(){this.nativeModalView?.removeEventListener("scroll",this.syncNativeModalGeometry,!0),this.nativeModalView?.removeEventListener("resize",this.syncNativeModalGeometry),this.nativeModalView=void 0,this.nativeModalResizeObserver?.disconnect(),this.nativeModalResizeObserver=void 0}nativeModalLabel(){const panel=this.floatingPanelEl;return panel?panel.hasAttribute("aria-label")?panel.getAttribute("aria-label"):resolveIdReferencesIn(panel.getRootNode(),panel.getAttribute("aria-labelledby")).map(element=>element.textContent?.trim()).filter(Boolean).join(" ")||this.getAttribute("aria-label"):this.getAttribute("aria-label")}connectedCallback(){super.connectedCallback();const hostWidth=this.getBoundingClientRect().width;hostWidth>0&&(this.measuredInlineSize=hostWidth),this.seedFirstRenderState(()=>this.syncPanelMembership(!1)),this.hasUpdated&&this.syncPanelMembership(!1),this.initializedSizes&&this.ensureSizes(),this.responsiveObservationEnabled&&this.armCollapseObserver(),this.hasUpdated&&this.overlayActive&&(this.overlayHandle?.isActive()?this.overlayHandle.resume():this.activateFloatingOverlay(),queueMicrotask(()=>{this.syncNativeModalGeometry(),this.nativeModal.show(),this.overlayHandle?.focusInitial()})),this.hasUpdated&&this.syncExternalTriggerA11y()}disconnectedCallback(){this.stopNativeModalGeometry(),this.nativeModal.hide(),super.disconnectedCallback(),this.endDragGestures(),this.resetCollapseObserver(),this.resetGutterObserver(),this.overlayHandle?.suspend(),cancelDeferredFocusReturn(this),this.releaseExternalTriggerA11y(),this.releaseOwnedPanels()}adoptedCallback(){super.adoptedCallback(),cancelDeferredFocusReturn(this),this.releaseExternalTriggerA11y(),this.endDragGestures(),this.resetCollapseObserver(),this.resetGutterObserver(),this.releaseOwnedPanels()}firstUpdated(changed){super.firstUpdated(changed),this.responsiveObservationEnabled&&this.armCollapseObserver()}willUpdate(changed){if(super.willUpdate(changed),!this.ownerDocument&&this.panelCount===0&&(this.panelCount=Math.max(this.sizes.length,this.defaultSizes.length,this.panelConstraints.length)),!this.initializedSizes)this.initializeSizes(),this.initializedSizes=!0;else if(changed.has("sizes")){const previous=changed.get("sizes");this.sizesReconciledForMembership?this.sizesReconciledForMembership=!1:this.validLiveSizes(this.sizes)||(Array.isArray(previous)&&this.validLiveSizes(previous)?this.sizes=[...previous]:(this.sizes=[],this.ensureSizes()))}else this.sizes.length===0&&this.ensureSizes();if((changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.orientationBreakpoints.configure(this.orientationBreakpoint,this.orientationBreakpointBasis),(changed.has("orientation")||changed.has("narrowOrientation")||changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.updateEffectiveOrientation(this.measuredInlineSize,this.hasUpdated&&this.orientationBreakpointBasis==="viewport"),changed.has("collapse")||changed.has("railBreakpoint")||changed.has("floatBreakpoint")||changed.has("collapseBreakpointBasis")){const previousEffective=changed.has("collapse")?this.effectiveCollapseStateFor(changed.get("collapse")??"none"):this.collapseState;changed.has("collapse")&&previousEffective!=="wide"&&this.endDragGestures(),this.collapseBreakpoints.configure(this.railBreakpoint,this.floatBreakpoint,this.collapseBreakpointBasis),this.collapsingIndex!==-1&&!this._forced&&(this._collapseState=this.collapseBreakpoints.classify(this.measuredInlineSize)),this.applyEffectiveCollapseTransition(previousEffective,this.collapseState,this.hasUpdated)}if(changed.has("open")||changed.has("collapseState")||changed.has("collapse")||changed.has("panelCount")){const next=this.collapseState==="floating"&&this.open;next!==this.overlayActive&&(this.overlayActive=next,next?(this.justOpened=!0,this.activateFloatingOverlay()):this.deactivateFloatingOverlay())}this.renderConstraintBounds=this.resolveConstraintBounds(this.getContainerSize()).bounds}get collapseState(){return this.effectiveCollapseStateFor(this.collapse)}set collapseState(next){if(next==="auto"){this.releaseCollapsePin(),this.updateCollapseState(this.currentMeasuredWidth());return}this._forced=!0,this.pinnedBand=this.collapseBreakpoints.classify(this.pinMeasurementWidth()),this.setRequestedCollapseState(next)}expandPane(){this.applyPaneIntent(!0)}collapsePane(){this.applyPaneIntent(!1)}togglePane(){this.applyPaneIntent(!this.paneExpanded)}get paneExpanded(){const state=this.collapseState;return state==="floating"?this.open:state==="wide"}applyPaneIntent(expanded){if(this.collapsingIndex===-1)return;const band=this.collapseBreakpoints.classify(this.pinMeasurementWidth());if(band==="floating"){this.collapseState!=="floating"&&(this.releaseCollapsePin(),this.setRequestedCollapseState("floating")),this.open=expanded;return}const target=expanded?"wide":"rail";if(this.collapseState!==target){if(target===band){this.releaseCollapsePin(),this.setRequestedCollapseState(target);return}this.collapseState=target}}releaseCollapsePin(){this._forced=!1,this.pinnedBand=void 0}pinMeasurementWidth(){const live=this.currentMeasuredWidth();return live>0?live:this.measuredInlineSize}get effectiveOrientation(){return this._effectiveOrientation}get responsiveObservationEnabled(){return this.collapse!=="none"||this.orientationBreakpoints.containerObservationEnabled}updateEffectiveOrientation(width,shouldEmit){const next=this.orientationBreakpoints.isBelow(width)?this.narrowOrientation:this.orientation;next!==this._effectiveOrientation&&(this.endDragGestures(),this._effectiveOrientation=next,this.requestUpdate(),shouldEmit&&this.emit("lr-multi-split-orientation-change",{orientation:next}),this._forced&&this.releasePinOnBreakpoint&&(this.releaseCollapsePin(),this.updateCollapseState(width,this.hasUpdated)))}currentMeasuredWidth(){return this.baseEl?.clientWidth??0}effectiveCollapseStateFor(collapse){return collapse!=="none"&&this.panelCount>=2?this._collapseState:"wide"}applyEffectiveCollapseTransition(previous,next,shouldEmit=!0){if(previous===next)return;this.endDragGestures(),this.requestUpdate("collapseState",previous);const forceClose=previous==="floating"&&next!=="floating"&&this.open,forcedCloseVersion=this.forcedCloseVersion;shouldEmit&&(this.relocateFocusOutOfCollapsingPanel(next),this.decorateOwnedPanels(),this.emit("lr-multi-split-collapse-change",{state:next})),forceClose&&this.forcedCloseVersion===forcedCloseVersion&&this.collapseState!=="floating"&&this.setOpen(!1,{force:!0})}relocateFocusOutOfCollapsingPanel(next){if(next==="wide"||next==="floating"&&this.open)return;const index=this.collapsingIndex;if(index===-1)return;const panel=this.ownedPanels[index];panel&&repairComposedFocus(panel,()=>this.collapseFocusFallbacks(panel))}collapseFocusFallbacks(collapsing){const dividers=[...this.shadowRoot?.querySelectorAll('[part="divider"]')??[]];return[...new Set([...this.ownedPanels.filter(panel=>panel!==collapsing),...dividers.filter((_,index)=>!this.isDividerDisabled(index)),...dividers])]}setOpen(next,options){if(options?.force){this.open=next,this.forcedCloseVersion+=1,this.emit("lr-toggle",{expanded:next});return}if(this.open===next)return;const collapseState=this.collapseState,open=this.open,mutationVersion=this.toggleProposalMutationVersion;this.toggleProposalDepth+=1;try{if(this.emit("lr-toggle-request",{expanded:next},{cancelable:!0}).defaultPrevented||this.toggleProposalMutationVersion!==mutationVersion||this.collapseState!==collapseState||this.open!==open)return}finally{this.toggleProposalDepth-=1}this.open=next,this.emit("lr-toggle",{expanded:next})}requestUpdate(name,oldValue,options){this.toggleProposalDepth>0&&(name==="open"&&oldValue!==this.open||name==="collapse"&&oldValue!==this.collapse||name==="collapseState"&&oldValue!==this.collapseState)&&(this.toggleProposalMutationVersion+=1),super.requestUpdate(name,oldValue,options)}setRequestedCollapseState(next,shouldEmit=!0){const previousEffective=this.collapseState;if(next===this._collapseState)return;this._collapseState=next;const nextEffective=this.collapseState;this.applyEffectiveCollapseTransition(previousEffective,nextEffective,shouldEmit),previousEffective===nextEffective&&next!==nextEffective&&this.requestUpdate("collapseState",next)}get storageFullKey(){return this.storageKey?`lr-multi-split:${this.storageKey}:panels`:void 0}panelIdsFor(panels){const ids=[],seen=new Set;for(const panel of panels){const panelId=panel.getAttribute("panel-id")??"";if(!panelId||panelId.trim()!==panelId||seen.has(panelId))return null;seen.add(panelId),ids.push(panelId)}return ids}reconcileIdentitySizes(previousIds,previousValues,nextIds){if(previousIds.length!==previousValues.length||nextIds.length===0)return null;const previousSizes=new Map;previousIds.forEach((panelId,index)=>{previousSizes.set(panelId,previousValues[index])});const retainedTotal=nextIds.reduce((total,panelId)=>total+(previousSizes.get(panelId)??0),0),missingCount=nextIds.filter(panelId=>!previousSizes.has(panelId)).length;if(!(retainedTotal>0)){const equal=100/nextIds.length;return nextIds.map(()=>equal)}const newShare=100/nextIds.length,retainedScale=(100-newShare*missingCount)/retainedTotal;return nextIds.map(panelId=>{const previous=previousSizes.get(panelId);return previous===void 0?newShare:previous*retainedScale})}reconcileSizesByPanelId(previousPanels,nextPanels){if(previousPanels.length!==this.sizes.length||nextPanels.length===0)return null;const previousIds=this.panelIdsFor(previousPanels),nextIds=this.panelIdsFor(nextPanels);return!previousIds||!nextIds?null:this.reconcileIdentitySizes(previousIds,this.sizes,nextIds)}validInitialSizes(value){return!Array.isArray(value)||value.length!==this.panelCount||!value.every(size=>Number.isFinite(size)&&size>=this.safeMin)?!1:Math.abs(value.reduce((sum,size)=>sum+size,0)-100)<.01}validLiveSizes(value){if(!Array.isArray(value)||value.length!==this.panelCount)return!1;const floor=this.normalizedDefaultMin();return value.every(size=>Number.isFinite(size)&&size>=floor)?Math.abs(value.reduce((sum,size)=>sum+size,0)-100)<.01:!1}resolveDefaultSizes(){if(this.defaultSizes.length===0)return null;if(!this.defaultSizes.some(entry=>typeof entry=="string")){const numbers=this.defaultSizes;return this.validInitialSizes(numbers)?[...numbers]:null}const containerSize=this.currentMeasuredWidth()||this.getBoundingClientRect().width;if(!(containerSize>0))return null;const resolvedPx=[];for(const entry of this.defaultSizes){if(typeof entry=="number"){if(!Number.isFinite(entry))return null;resolvedPx.push(entry/100*containerSize);continue}const px=resolveCssLength(entry,{host:this,percentBase:containerSize,viewportBasis:this.ownerDocument.defaultView??void 0});if(px==null||!(px>=0))return null;resolvedPx.push(px)}const sum=resolvedPx.reduce((total,size)=>total+size,0);if(!(sum>0))return null;const normalized=resolvedPx.map(size=>size/sum*100);return this.validInitialSizes(normalized)?normalized:null}initializeSizes(){if(this.validInitialSizes(this.sizes)||this.loadPersisted())return;const resolved=this.resolveDefaultSizes();if(resolved){this.sizes=resolved;return}this.sizes=[],this.ensureSizes()}loadPersisted(){const panelIds=this.panelIdsFor(this.ownedPanels);if(!panelIds)return!1;const parsed=readPersistedState(this.storageFullKey,isPersistedPanelLayout);if(!parsed||parsed.panels.length===0)return!1;const persistedIds=[],persistedSizes=[],seen=new Set;for(const panel of parsed.panels){if(seen.has(panel.panelId))return!1;seen.add(panel.panelId),persistedIds.push(panel.panelId),persistedSizes.push(panel.size)}if(Math.abs(persistedSizes.reduce((sum,size)=>sum+size,0)-100)>=.01)return!1;const normalized=this.reconcileIdentitySizes(persistedIds,persistedSizes,panelIds);return normalized&&this.validInitialSizes(normalized)?(this.sizes=normalized,!0):!1}persist(){const panelIds=this.panelIdsFor(this.ownedPanels);if(!panelIds||panelIds.length!==this.sizes.length)return;const layout={version:1,panels:panelIds.map((panelId,index)=>({panelId,size:this.sizes[index]}))};writePersistedState(this.storageFullKey,layout)}ensureSizes(){if(this.panelCount===this.sizes.length)return;if(this.panelCount<=0){this.sizes=[];return}if(this.sizes.length===0){const equal=100/this.panelCount;this.sizes=Array.from({length:this.panelCount},()=>equal);return}const diff=this.panelCount-this.sizes.length;if(diff>0){const newShare=100/this.panelCount,scale=(100-newShare*diff)/100;this.sizes=[...this.sizes.map(s=>s*scale),...Array.from({length:diff},()=>newShare)]}else{const kept=this.sizes.slice(0,this.panelCount),removedTotal=this.sizes.slice(this.panelCount).reduce((sum,s)=>sum+s,0),keptTotal=kept.reduce((sum,s)=>sum+s,0)||1;this.sizes=kept.map(s=>s+s/keptTotal*removedTotal)}}readPanelStyle(panel,property2){return{value:panel.style.getPropertyValue(property2),priority:panel.style.getPropertyPriority(property2)}}samePanelStyle(left,right){return left.value===right.value&&left.priority===right.priority}snapshotPanelOwnership(panel){const styles2=new Map;for(const property2 of OWNED_PANEL_STYLE_PROPERTIES)styles2.set(property2,this.readPanelStyle(panel,property2));return{styles:styles2,appliedStyles:new Map,hidden:panel.hidden,collapseState:panel.getAttribute("data-collapse-state")}}adoptPanelOwnership(panel,snapshot){for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const current=this.readPanelStyle(panel,property2),applied=snapshot.appliedStyles.get(property2);(applied&&!this.samePanelStyle(current,applied)||!applied&&!this.samePanelStyle(current,snapshot.styles.get(property2)))&&snapshot.styles.set(property2,current)}(snapshot.appliedHidden!==void 0&&panel.hidden!==snapshot.appliedHidden||snapshot.appliedHidden===void 0&&panel.hidden!==snapshot.hidden)&&(snapshot.hidden=panel.hidden);const collapseState=panel.getAttribute("data-collapse-state");(snapshot.appliedCollapseState!==void 0&&collapseState!==snapshot.appliedCollapseState||snapshot.appliedCollapseState===void 0&&collapseState!==snapshot.collapseState)&&(snapshot.collapseState=collapseState)}applyOwnedPanelStyle(panel,snapshot,property2,value){value.value===""?panel.style.removeProperty(property2):panel.style.setProperty(property2,value.value,value.priority),snapshot.appliedStyles.set(property2,this.readPanelStyle(panel,property2))}applyOwnedPanelStyleValue(panel,snapshot,property2,value){this.applyOwnedPanelStyle(panel,snapshot,property2,{value,priority:""})}applyOwnedPanelHidden(panel,snapshot,hidden){panel.hidden=hidden,snapshot.appliedHidden=panel.hidden}applyOwnedPanelCollapseState(panel,snapshot,state){state===null?panel.removeAttribute("data-collapse-state"):panel.setAttribute("data-collapse-state",state),snapshot.appliedCollapseState=panel.getAttribute("data-collapse-state")}restorePanelOwnership(panel,snapshot){this.adoptPanelOwnership(panel,snapshot);for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const value=snapshot.styles.get(property2);value.value===""?panel.style.removeProperty(property2):panel.style.setProperty(property2,value.value,value.priority)}panel.hidden=snapshot.hidden,snapshot.collapseState===null?panel.removeAttribute("data-collapse-state"):panel.setAttribute("data-collapse-state",snapshot.collapseState)}panelProjectionDiverged(panel,snapshot){for(const property2 of OWNED_PANEL_STYLE_PROPERTIES){const current=this.readPanelStyle(panel,property2),expected=snapshot.appliedStyles.get(property2)??snapshot.styles.get(property2);if(!this.samePanelStyle(current,expected))return!0}if(panel.hidden!==(snapshot.appliedHidden??snapshot.hidden))return!0;const expectedCollapseState=snapshot.appliedCollapseState!==void 0?snapshot.appliedCollapseState:snapshot.collapseState;return panel.getAttribute("data-collapse-state")!==expectedCollapseState}resetPanelOwnershipObserver(){this.panelOwnershipObserverGeneration+=1,this.panelOwnershipObserver?.disconnect(),this.panelOwnershipObserver=void 0,this.panelOwnershipObserverDocument=void 0}observeOwnedPanels(){this.resetPanelOwnershipObserver();const ownerDocument=this.ownerDocument,MutationObserverConstructor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverConstructor||!this.isConnected||this.ownedPanels.length===0)return;const generation=this.panelOwnershipObserverGeneration,observer=new MutationObserverConstructor(records=>{if(this.panelOwnershipObserver!==observer||this.panelOwnershipObserverDocument!==this.ownerDocument||this.panelOwnershipObserverGeneration!==generation||!this.isConnected)return;records.some(record=>{const panel=record.target,snapshot=this.panelOwnership.get(panel);return snapshot?this.panelProjectionDiverged(panel,snapshot):!1})&&this.requestUpdate()});this.panelOwnershipObserver=observer,this.panelOwnershipObserverDocument=ownerDocument;for(const panel of this.ownedPanels)observer.observe(panel,{attributes:!0,attributeFilter:["style","hidden","data-collapse-state"]})}samePanelSequence(next){return next.length===this.ownedPanels.length&&next.every((panel,index)=>panel===this.ownedPanels[index])}syncPanelMembership(reconcileSizes=!0){const next=[...this.children].filter(child=>child!==this.nativeModal.helperMount);if(this.samePanelSequence(next))return;const previousPanels=this.ownedPanels,identitySizes=reconcileSizes?this.reconcileSizesByPanelId(previousPanels,next):null,previousEffective=this.collapseState,nextSet=new Set(next);for(const panel of this.ownedPanels){if(nextSet.has(panel))continue;const snapshot=this.panelOwnership.get(panel);snapshot&&this.restorePanelOwnership(panel,snapshot),this.panelOwnership.delete(panel)}for(const panel of next)this.panelOwnership.has(panel)||this.panelOwnership.set(panel,this.snapshotPanelOwnership(panel));const countChanged=next.length!==this.panelCount;this.ownedPanels=next,this.panelCount=next.length,this.collapsingIndex!==-1&&!this._forced&&(this._collapseState=this.collapseBreakpoints.classify(this.currentMeasuredWidth())),this.applyEffectiveCollapseTransition(previousEffective,this.collapseState,this.hasUpdated),identitySizes?(this.sizesReconciledForMembership=!0,this.sizes=identitySizes):countChanged&&reconcileSizes&&(this.sizesReconciledForMembership=!0,this.ensureSizes()),this.observeOwnedPanels(),this.hasUpdated&&this.requestUpdate()}releaseOwnedPanels(){this.resetPanelOwnershipObserver();for(const panel of this.ownedPanels){const snapshot=this.panelOwnership.get(panel);snapshot&&this.restorePanelOwnership(panel,snapshot)}this.ownedPanels=[],this.panelOwnership.clear()}getContainerSize(){return this.baseEl?this.effectiveOrientation==="vertical"?this.baseEl.clientHeight:this.baseEl.clientWidth:0}resetGutterObserver(){this.gutterObserverFrame!==void 0&&(this.gutterObserverDocument?.defaultView?.cancelAnimationFrame(this.gutterObserverFrame),this.gutterObserverFrame=void 0),this.gutterResizeObserver?.disconnect(),this.gutterResizeObserver=void 0,this.gutterObserverDocument=void 0,this.gutterObservedDividers=[],this.baseEl?.style.removeProperty("--_lr-multi-split-gutters")}updateGutterBudget(){const view=this.ownerDocument.defaultView,base=this.baseEl;if(!view||!base)return;const vertical=this.effectiveOrientation==="vertical",value=`${this.gutterObservedDividers.reduce((total,divider)=>{const style=view.getComputedStyle(divider),properties=vertical?["height","padding-top","padding-bottom","border-top-width","border-bottom-width"]:["width","padding-left","padding-right","border-left-width","border-right-width"],boxProperties=style.boxSizing==="border-box"?properties.slice(0,1):properties;return total+boxProperties.reduce((size,property2)=>size+finiteRange(parseFloat(style.getPropertyValue(property2)),0,0),0)},0)}px`;base.style.getPropertyValue("--_lr-multi-split-gutters")!==value&&base.style.setProperty("--_lr-multi-split-gutters",value)}syncGutterObserver(enabled){const base=this.baseEl;if(!enabled||!this.isConnected||!base){this.resetGutterObserver();return}const ownerDocument=this.ownerDocument,dividers=[...base.querySelectorAll('[part="divider"]')];if(this.gutterResizeObserver&&this.gutterObserverDocument===ownerDocument&&dividers.length===this.gutterObservedDividers.length&&dividers.every((divider,index)=>divider===this.gutterObservedDividers[index])){this.updateGutterBudget();return}this.resetGutterObserver(),this.gutterObservedDividers=dividers,this.gutterObserverDocument=ownerDocument,this.gutterObservedContainerSize=this.getContainerSize(),this.updateGutterBudget();const ownerWindow=ownerDocument.defaultView,ResizeObserverConstructor=ownerWindow?.ResizeObserver;if(!ownerWindow||!ResizeObserverConstructor)return;const observer=new ResizeObserverConstructor(()=>{if(this.gutterResizeObserver!==observer||!this.isConnected||this.ownerDocument!==ownerDocument)return;this.updateGutterBudget();const size=this.getContainerSize();size!==this.gutterObservedContainerSize&&(this.gutterObservedContainerSize=size,this.requestUpdate())});this.gutterResizeObserver=observer;const frame=ownerWindow.requestAnimationFrame(()=>{if(!(this.gutterObserverFrame!==frame||this.gutterResizeObserver!==observer||!this.isConnected||this.ownerDocument!==ownerDocument||this.baseEl!==base)){this.gutterObserverFrame=void 0,observer.observe(base,{box:"border-box"});for(const divider of dividers)observer.observe(divider,{box:"border-box"})}});this.gutterObserverFrame=frame}get collapsingIndex(){return this.collapse==="none"||this.panelCount<2?-1:this.collapse==="start"?0:this.panelCount-1}get collapseActive(){return this.collapsingIndex!==-1&&this.collapseState!=="wide"}isDividerDisabled(index){if(!this.collapseActive)return!1;const adjacent=this.collapsingIndex===0?0:this.panelCount-2;return index===adjacent}updateCollapseState(width,shouldEmit=!0){if(this.collapse==="none")return;const classified=this.collapseBreakpoints.classify(width);if(this._forced){if(!this.releasePinOnBreakpoint||classified===this.pinnedBand)return;this.releaseCollapsePin()}this.setRequestedCollapseState(classified,shouldEmit)}armCollapseObserver(){const observedElement=this.baseEl;if(!this.isConnected||!observedElement)return;const ownerDocument=this.ownerDocument;if(this.collapseResizeObserver&&this.collapseObservedElement===observedElement&&this.collapseObserverOwnerDocument===ownerDocument)return;this.resetCollapseObserver();const ResizeObserverConstructor=ownerDocument.defaultView?.ResizeObserver;if(!ResizeObserverConstructor)return;const generation=this.collapseObserverGeneration,observer=new ResizeObserverConstructor(entries=>{if(this.collapseResizeObserver!==observer||this.collapseObserverGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||this.baseEl!==observedElement)return;const box=entries[0]?.contentBoxSize?.[0],width=box?box.inlineSize:observedElement.getBoundingClientRect().width;this.measuredInlineSize=width,this.updateCollapseState(width),this.updateEffectiveOrientation(width,!0)});this.collapseResizeObserver=observer,this.collapseObservedElement=observedElement,this.collapseObserverOwnerDocument=ownerDocument,observer.observe(observedElement)}resetCollapseObserver(){this.collapseObserverGeneration+=1,this.collapseResizeObserver?.disconnect(),this.collapseResizeObserver=void 0,this.collapseObservedElement=void 0,this.collapseObserverOwnerDocument=void 0}syncCollapseObserver(){if(!this.responsiveObservationEnabled){this.resetCollapseObserver();return}this.armCollapseObserver()}get safeMin(){return finiteRange(this.min,10,0)}normalizedDefaultMin(){if(this.panelCount<=0)return 0;const requested=this.safeMin,available=Math.max(0,100-KEYBOARD_STEP);return Math.min(requested,available/this.panelCount)}resolveConstraintBounds(containerSize){const fallbackMin=this.normalizedDefaultMin(),fallback=Array.from({length:this.panelCount},()=>({min:fallbackMin,max:1/0}));if(this.panelCount<=0)return{bounds:[],usePanelConstraints:!0};const bounds=[];let minimumTotal=0,maximumTotal=0,hasUnboundedMaximum=!1,issueReason;for(let index=0;index<this.panelCount;index++){const constraint=this.panelConstraints[index];let min=this.safeMin,max=1/0,minSet=!1,maxSet=!1;constraint&&(constraint.minPx!=null&&Number.isFinite(constraint.minPx)&&constraint.minPx>=0&&containerSize>0&&(min=constraint.minPx/containerSize*100,minSet=!0),constraint.minPercent!=null&&Number.isFinite(constraint.minPercent)&&constraint.minPercent>=0&&(min=minSet?Math.max(min,constraint.minPercent):constraint.minPercent,minSet=!0),constraint.maxPx!=null&&Number.isFinite(constraint.maxPx)&&constraint.maxPx>=0&&containerSize>0&&(max=constraint.maxPx/containerSize*100,maxSet=!0),constraint.maxPercent!=null&&Number.isFinite(constraint.maxPercent)&&constraint.maxPercent>=0&&(max=maxSet?Math.min(max,constraint.maxPercent):constraint.maxPercent,maxSet=!0),(constraint.minPx!=null&&(!Number.isFinite(constraint.minPx)||constraint.minPx<0)||constraint.maxPx!=null&&(!Number.isFinite(constraint.maxPx)||constraint.maxPx<0)||constraint.minPercent!=null&&(!Number.isFinite(constraint.minPercent)||constraint.minPercent<0)||constraint.maxPercent!=null&&(!Number.isFinite(constraint.maxPercent)||constraint.maxPercent<0))&&(issueReason??="minimum-exceeds-maximum")),min>max&&(issueReason??="minimum-exceeds-maximum"),bounds.push({min,max}),minimumTotal+=min,Number.isFinite(max)?maximumTotal+=max:hasUnboundedMaximum=!0}return issueReason==null&&minimumTotal>100+1e-9&&(issueReason="minimum-total"),issueReason==null&&!hasUnboundedMaximum&&maximumTotal<100-1e-9&&(issueReason="maximum-total"),issueReason==null?{bounds,usePanelConstraints:!0}:{bounds:fallback,usePanelConstraints:!1,issue:{reason:issueReason,panelCount:this.panelCount,minimumTotal,maximumTotal:hasUnboundedMaximum?null:maximumTotal,containerSize}}}hasClampConstraint(constraint){return!!constraint&&(constraint.minPx!=null||constraint.maxPx!=null||constraint.minPercent!=null||constraint.maxPercent!=null)}minSideExpr(constraint){const terms=[];return constraint?.minPx!=null&&Number.isFinite(constraint.minPx)&&constraint.minPx>=0&&terms.push(`${constraint.minPx}px`),constraint?.minPercent!=null&&Number.isFinite(constraint.minPercent)&&constraint.minPercent>=0&&terms.push(`${constraint.minPercent}%`),terms.length===0?`${NO_MIN_PX}px`:terms.length===1?terms[0]:`max(${this.safeMin}%, ${terms.join(", ")})`}maxSideExpr(constraint){const terms=[];return constraint?.maxPx!=null&&Number.isFinite(constraint.maxPx)&&constraint.maxPx>=0&&terms.push(`${constraint.maxPx}px`),constraint?.maxPercent!=null&&Number.isFinite(constraint.maxPercent)&&constraint.maxPercent>=0&&terms.push(`${constraint.maxPercent}%`),terms.length===0?`${NO_MAX_PX}px`:terms.length===1?terms[0]:`min(${terms.join(", ")})`}clampPair(sizes,i,delta,containerSize=0){const next=[...sizes],currentA=next[i],currentB=next[i+1];if(currentA===void 0||currentB===void 0)return next;const pairTotal=currentA+currentB,bounds=this.resolveConstraintBounds(containerSize).bounds,a=bounds[i]??{min:0,max:1/0},b=bounds[i+1]??{min:0,max:1/0},loRaw=Math.max(a.min,pairTotal-b.max),hiRaw=Math.min(a.max,pairTotal-b.min),lo=Math.min(loRaw,pairTotal),hi=Math.max(hiRaw,lo),clampedA=Math.min(Math.max(currentA+delta,lo),hi);return next[i]=clampedA,next[i+1]=pairTotal-clampedA,next}requestResize(next,commit){return next.length===this.sizes.length&&next.every((size,index)=>Math.abs(size-this.sizes[index])<=1e-9)||this.emit("lr-resize-request",{sizes:[...next]},{cancelable:!0}).defaultPrevented?!1:(this.sizes=next,this.emit("lr-resize",{sizes:[...this.sizes]}),commit&&this.settle(),!0)}settle(){this.persist(),this.emit("lr-resize-change",{sizes:[...this.sizes]})}applyDelta(index,delta,commit){const next=this.clampPair(this.sizes,index,delta,this.getContainerSize());return next.length!==this.sizes.length||next.some((size,currentIndex)=>Math.abs(size-this.sizes[currentIndex])>1e-9)?(this.requestResize(next,commit),!0):!1}get floatingPanelEl(){const index=this.collapsingIndex;return index===-1?null:this.ownedPanels[index]??null}activateFloatingOverlay(){this.nativeModal.prepare();const opener=deepActiveElement(this.ownerDocument);this.overlayOpener=isHtmlElement(opener)?opener:null;const trigger=this.resolveExternalTrigger();this.overlayReturnTarget=trigger??this.overlayOpener;const panel=this.floatingPanelEl;panel&&(this.floatingDialogPanel=panel,this.floatingDialogPreviousRole=panel.getAttribute("role"),this.floatingDialogPreviousAriaModal=panel.getAttribute("aria-modal"),this.nativeModal.requested||(panel.setAttribute("role","dialog"),panel.setAttribute("aria-modal","true"))),this.overlayHandle=activateOverlay({host:this,panel:()=>this.floatingPanelEl,modalRoot:()=>this.floatingPanelEl,auxiliaryRoots:()=>{const root=this.nativeModal.helperMount;return root?[root]:[]},restoreFocusTo:trigger??void 0,onEscape:()=>this.setOpen(!1),onBackdrop:()=>this.setOpen(!1),lockScroll:!0,suspendWhenUnrendered:!0,deferredReturn:()=>{if(!(this.resolveExternalTrigger()||this.trigger||this.for))return;const panel2=this.floatingDialogPanel;return{candidates:()=>[this.resolveExternalTrigger(),this.overlayReturnTarget,this.overlayOpener],stranded:active=>panel2!==null&&composedContains(panel2,active),isCurrent:()=>!this.overlayActive}}})}deactivateFloatingOverlay(){this.stopNativeModalGeometry(),this.nativeModal.hide(),this.nativeModal.prepare(!1);const trigger=this.resolveExternalTrigger(),panel=this.floatingDialogPanel;trigger&&this.overlayHandle?.updateRestoreFocusTo(trigger),this.overlayHandle?.deactivate(),this.overlayHandle=void 0,this.floatingDialogPanel=null,panel&&(this.floatingDialogPreviousRole===null?panel.removeAttribute("role"):panel.setAttribute("role",this.floatingDialogPreviousRole),this.floatingDialogPreviousAriaModal===null?panel.removeAttribute("aria-modal"):panel.setAttribute("aria-modal",this.floatingDialogPreviousAriaModal))}endDragGestures(){this.drags.clear(),this.dragController.cancelAll()}dividerName(index){let label;try{label=this.dividerLabel?.(index,this.panelCount)}catch{}return typeof label=="string"&&label.trim()?label:this.localize("resizeDivider",void 0,{a:getNumberFormat(this.effectiveLocale).format(index+1),b:getNumberFormat(this.effectiveLocale).format(index+2)})}dividerValueRange(index,bounds=this.resolveConstraintBounds(this.getContainerSize()).bounds){const pairTotal=(this.sizes[index]??0)+(this.sizes[index+1]??0),leading=bounds[index],trailing=bounds[index+1],min=Math.max(leading.min,pairTotal-trailing.max);return{min,max:Math.max(min,Math.min(leading.max,pairTotal-trailing.min))}}updated(changed){super.updated(changed),this.overlayActive&&(this.syncNativeModalGeometry(),this.nativeModal.show()),(changed.has("collapse")||changed.has("orientationBreakpoint")||changed.has("orientationBreakpointBasis"))&&this.syncCollapseObserver(),this.orientationBreakpoints.active?this.setAttribute("data-effective-orientation",this._effectiveOrientation):this.removeAttribute("data-effective-orientation"),(changed.has("panelConstraints")||changed.has("min"))&&(this.constraintConfigVersion+=1);const constraintResolution=this.resolveConstraintBounds(this.getContainerSize()),issue=constraintResolution.issue,issueKey=issue?`${issue.reason}:${issue.panelCount}:${this.constraintConfigVersion}`:"";issueKey!==this.constraintIssueKey&&(this.constraintIssueKey=issueKey,issue&&this.emit("lr-multi-split-constraints-invalid",issue));const collapsingIndex=this.collapseActive?this.collapsingIndex:-1;this.syncGutterObserver(collapsingIndex===-1&&this.panelConstraints.some(constraint=>finiteRange(constraint?.minPx??0,0,0)>0)),this.decorateOwnedPanels(constraintResolution),this.syncExternalTriggerA11y(),this.justOpened&&(this.justOpened=!1,this.overlayHandle?.focusInitial())}resolveExternalTrigger(){if(this.trigger)return this.trigger;if(!this.for)return null;const found=this.getRootNode().getElementById?.(this.for);return isHtmlElement(found)?found:null}syncExternalTriggerA11y(){const panel=this.ownedPanels[this.collapsingIndex],trigger=panel&&this.panelCount>1?this.resolveExternalTrigger():null;if(!this.isConnected||!panel||!trigger){this.releaseExternalTriggerA11y();return}this.triggerPanel!==panel&&(this.releaseExternalTriggerA11y(),this.triggerPanel=panel),panel.id||(this.generatedTriggerPanelId=nextId("multi-split-panel"),panel.id=this.generatedTriggerPanelId);const contribution={attributes:{"aria-expanded":this.paneExpanded?"true":"false"},controls:[panel]};this.triggerAria?this.triggerAria.update(trigger,contribution):this.triggerAria=acquireAriaOwnership(trigger,contribution)}releaseExternalTriggerA11y(){this.triggerAria?.release(),this.triggerAria=void 0,this.triggerPanel&&this.generatedTriggerPanelId&&this.triggerPanel.id===this.generatedTriggerPanelId&&this.triggerPanel.removeAttribute("id"),this.triggerPanel=void 0,this.generatedTriggerPanelId=void 0}decorateOwnedPanels(constraintResolution=this.resolveConstraintBounds(this.getContainerSize())){const panels=this.ownedPanels;for(const panel of panels){const snapshot=this.panelOwnership.get(panel);snapshot&&this.adoptPanelOwnership(panel,snapshot)}const collapsingIndex=this.collapseActive?this.collapsingIndex:-1,pixelMinimumTotal=constraintResolution.usePanelConstraints?this.panelConstraints.slice(0,this.panelCount).reduce((total,constraint)=>total+finiteRange(constraint?.minPx??0,0,0),0):0,redistributedShare=new Array(panels.length).fill(0);if(collapsingIndex===-1){let freedPercent=0;const growableIndexes=[];let growableTotal=0;for(let i=0;i<panels.length;i++){const percent=this.sizes[i]??0,constraint=constraintResolution.usePanelConstraints?this.panelConstraints[i]:void 0;if(this.hasClampConstraint(constraint)){const bounds=constraintResolution.bounds[i],clamped=bounds?Math.min(Math.max(percent,bounds.min),bounds.max):percent;clamped<percent&&(freedPercent+=percent-clamped)}else growableIndexes.push(i),growableTotal+=percent}if(freedPercent>0&&growableTotal>0)for(const i of growableIndexes)redistributedShare[i]=freedPercent*((this.sizes[i]??0)/growableTotal)}panels.forEach((panel,i)=>{const snapshot=this.panelOwnership.get(panel);if(!snapshot)return;const percent=this.sizes[i]??0,constraint=constraintResolution.usePanelConstraints?this.panelConstraints[i]:void 0,pixelMinimum=finiteRange(constraint?.minPx??0,0,0);if(collapsingIndex===-1&&pixelMinimum>0&&pixelMinimumTotal>0?this.applyOwnedPanelStyleValue(panel,snapshot,"--_lr-multi-split-panel-min",`min(${pixelMinimum}px, max(0px, calc((100% - var(--_lr-multi-split-gutters, 0px)) * ${pixelMinimum/pixelMinimumTotal})))`):this.applyOwnedPanelStyle(panel,snapshot,"--_lr-multi-split-panel-min",snapshot.styles.get("--_lr-multi-split-panel-min")),this.applyOwnedPanelStyle(panel,snapshot,"inline-size",snapshot.styles.get("inline-size")),this.applyOwnedPanelHidden(panel,snapshot,snapshot.hidden),collapsingIndex===i&&this.collapseState==="rail")this.applyOwnedPanelStyleValue(panel,snapshot,"flex",`0 0 ${this.railWidth}`);else if(collapsingIndex===i&&this.collapseState==="floating"&&!this.open)this.applyOwnedPanelStyleValue(panel,snapshot,"flex","none"),this.applyOwnedPanelHidden(panel,snapshot,!0);else if(collapsingIndex===i&&this.collapseState==="floating")this.applyOwnedPanelStyleValue(panel,snapshot,"inline-size",`var(--lr-multi-split-floating-panel-inline-size, ${percent}%)`);else if(collapsingIndex!==-1&&i!==collapsingIndex)this.applyOwnedPanelStyleValue(panel,snapshot,"flex",this.hasClampConstraint(constraint)?`0 1 clamp(${this.minSideExpr(constraint)}, ${percent}%, ${this.maxSideExpr(constraint)})`:`${percent} 1 0%`);else{const adjustedPercent=percent+(redistributedShare[i]??0);this.applyOwnedPanelStyleValue(panel,snapshot,"flex",this.hasClampConstraint(constraint)?`0 1 clamp(${this.minSideExpr(constraint)}, ${percent}%, ${this.maxSideExpr(constraint)})`:`0 1 ${adjustedPercent}%`)}this.applyOwnedPanelStyleValue(panel,snapshot,"order",String(i*2)),collapsingIndex===i?this.applyOwnedPanelCollapseState(panel,snapshot,this.collapseState):this.applyOwnedPanelCollapseState(panel,snapshot,null)}),collapsingIndex!==-1?this.setAttribute("data-collapse-state",this.collapseState):this.removeAttribute("data-collapse-state")}render(){const dividers=[],bounds=this.renderConstraintBounds;for(let i=0;i<this.panelCount-1;i++){const{min:valueMin,max:valueMax}=this.dividerValueRange(i,bounds),disabled=this.isDividerDisabled(i);dividers.push(html`<div
2
2
  part="divider"
3
3
  role="separator"
4
4
  aria-label=${this.dividerName(i)}
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{literalSetConverter}from"../../../internal/converters.js";import{resolveCssLength}from"../../../internal/css-length.js";import{setCustomState}from"../../../internal/custom-states.js";import{devWarnOnce}from"../../../internal/dev-mode-attribute-warning.js";import{attachInternalsSafely}from"../../../internal/element-internals.js";import{isComposedFocusAvailable}from"../../../internal/focus-navigation.js";import{menuIcon}from"../../../internal/icons.js";import{LyraElement}from"../../../internal/lyra-element.js";import{requestThenCommit}from"../../../internal/request-commit.js";import{markVetoGuardWrite,VetoWriteGuard}from"../../../internal/veto-write-guard.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{composedContains,deepActiveElement}from"../../../internal/nonmodal-overlay-manager.js";import{finiteDuration,finiteRange}from"../../../internal/numbers.js";import{collectFocusableElements}from"../../../internal/overlay-stack.js";import{tag}from"../../../internal/prefix.js";import{bindNavigationMenuItem,navigationMenuItemController,releaseNavigationMenuItem}from"./navigation-menu-owner.js";import{styles}from"./navigation-menu.styles.js";import{LYRA_DEFAULT_menuLabel,LYRA_DEFAULT_navigation}from"../../../internal/default-strings.generated.js";const PANEL_ANCHOR=literalSetConverter(["menu","item"],"menu"),DEFAULT_SHOW_DELAY=200,DEFAULT_HIDE_DELAY=150,DEFAULT_SKIP_DELAY=300,DEFAULT_DISTANCE=6,PANEL_KEY_ORIGIN='a[href], button, [role="link"], [role="button"]',IGNORED_CHILDREN=new Set(["template","script","style"]);function isElementNode(value){return typeof value=="object"&&value!==null&&value.nodeType===1}function isAnchorWithHref(value){return isElementNode(value)&&value.localName==="a"&&value.hasAttribute("href")}class LyraNavigationMenu extends LyraElement{constructor(){super(...arguments),this._expanded=!1,this.expansionWriteGuard=new VetoWriteGuard,this.expansionNotificationSequence=0,this.indicator=!1,this._panelAnchor="menu",this.showDelay=DEFAULT_SHOW_DELAY,this.hideDelay=DEFAULT_HIDE_DELAY,this.skipDelay=DEFAULT_SKIP_DELAY,this.distance=DEFAULT_DISTANCE,this.topLayer=!1,this.collapsedLayout=!1,this.listId=nextId("navigation-menu-list"),this.menuInternals=attachInternalsSafely(this),this.ownedRoles=new WeakSet,this.context={owner:this,layout:()=>this.layout,anchor:item=>this._panelAnchor==="item"?this.controllerFor(item)?.base()??null:this.listElement,distance:()=>finiteRange(this.distance,DEFAULT_DISTANCE,0),topLayer:()=>this.topLayer,activate:item=>this.activateItem(item),willOpen:item=>this.itemWillOpen(item),changed:(item,open,source)=>this.itemChanged(item,open,source),escape:item=>this.itemEscape(item)},this.items=[],this.lastCloseAt=Number.NEGATIVE_INFINITY,this.pressActive=!1,this.observedIndicatorTargets=new Set,this.indicatorQueued=!1,this.onSlotChange=()=>{this.updateBrowserDerivedState(()=>this.bindItems())},this.onPointerOver=event=>{if(event.pointerType!=="mouse"||this.layout!=="bar")return;const target=event.composedPath()[0],item=this.itemContaining(target),controller=this.controllerFor(item);if(!item||!controller||!isElementNode(target))return;if(this.openItem===item){this.hideTimer?.item===item&&this.cancelHide();return}const base=controller.base();!base||!composedContains(base,target)||(controller.isTrigger()?this.hoverTrigger(item):this.hoverNonTrigger())},this.onPointerOut=event=>{if(event.pointerType!=="mouse"||this.layout!=="bar")return;const item=this.itemContaining(event.composedPath()[0]);if(!item)return;const next=event.relatedTarget;isElementNode(next)&&composedContains(item,next)||(this.showTimer?.item===item&&this.cancelShow(),this.requestHoverClose(item))},this.onDocumentPointerDown=event=>{const open=this.openItem,controller=this.controllerFor(open);if(!open||!controller||this.layout!=="bar"||!controller.isTopmost())return;const path=event.composedPath();if(!path.includes(open)){for(const item of this.items){if(item===open)continue;const other=this.controllerFor(item),base=other?.base();if(other?.isTrigger()&&base&&path.includes(base))return}this.cancelShow(),this.cancelHide(),controller.close("user",{repairFocus:!1})}},this.onPointerDownCapture=event=>{if(event.button!==0||!event.isPrimary)return;this.clearPressTimer(),this.pressActive=!0,this.pressOpenItem=this.openItem;const doc=this.ownerDocument;this.pressDocument!==doc&&(this.stopPressListeners(),doc.addEventListener("pointerup",this.onPressEnd,!0),doc.addEventListener("pointercancel",this.onPressEnd,!0),this.pressDocument=doc)},this.onPressEnd=()=>{this.stopPressListeners(),this.clearPressTimer();const view=this.ownerDocument.defaultView;if(!view){this.clearPress();return}const id=view.setTimeout(()=>{this.pressTimer?.id===id&&(this.pressTimer=void 0,this.reevaluatePress())},0);this.pressTimer={id,view}},this.onFocusOut=event=>{const open=this.openItem;if(!open||this.layout!=="bar")return;const target=event.composedPath()[0];if(!isElementNode(target)||!composedContains(open,target))return;const next=event.relatedTarget;!isElementNode(next)||composedContains(open,next)||this.pressActive||(this.cancelShow(),this.cancelHide(),this.controllerFor(open)?.close("user",{repairFocus:!1}))},this.onClickCapture=event=>{if(event.button!==0||event.ctrlKey||event.metaKey||event.shiftKey||event.altKey)return;const path=event.composedPath();if(!this.items.some(item=>{const controller=this.controllerFor(item);if(!controller)return!1;const base=controller.base();if(controller.isLink()&&base&&path.includes(base))return!0;const panel=controller.panel();if(!panel)return!1;const panelIndex=path.indexOf(panel);return panelIndex===-1?!1:path.slice(0,panelIndex).some(isAnchorWithHref)}))return;this.cancelShow(),this.cancelHide();const listHides=this.layout==="stacked"&&this._expanded;this.closeOpenItem("user",listHides?{focusTarget:this.toggleElement}:{}),listHides&&this.setExpanded(!1,"user")},this.onKeyDown=event=>{if(event.defaultPrevented||event.isComposing||event.altKey||event.ctrlKey||event.metaKey)return;if(this.layout==="stacked"){event.key==="Escape"&&this.handleStackedEscape(event);return}const origin=event.composedPath()[0];if(!isElementNode(origin))return;const topLevel=this.items.find(item=>this.controllerFor(item)?.base()===origin);if(topLevel){this.handleBaseKey(event,topLevel);return}const panel=this.controllerFor(this.openItem)?.panel();panel&&composedContains(panel,origin)&&this.handlePanelKey(event,panel,origin)},this.requestingExpansion=!1,this.onToggleClick=()=>{this.setExpanded(!this._expanded,"user")}}static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel,navigation:LYRA_DEFAULT_navigation}}static{this.styles=[LyraElement.styles,styles]}get expanded(){return this._expanded}set expanded(next){markVetoGuardWrite(this.expansionWriteGuard),this.setExpanded(!!next,this.hasUpdated?"programmatic":null)}get panelAnchor(){return this._panelAnchor}set panelAnchor(next){const normalized=PANEL_ANCHOR.normalizeReflected(this,"panel-anchor",next);if(normalized===this._panelAnchor)return;const old=this._panelAnchor;this._panelAnchor=normalized,this.requestUpdate("panelAnchor",old)}get collapsed(){return this.collapsedLayout}get layout(){return this.collapsedLayout?"stacked":"bar"}get listElement(){return this.renderRoot?.querySelector('[part~="list"]')??null}get toggleElement(){return this.renderRoot?.querySelector('[part~="toggle"]')??null}controllerFor(item){return item?navigationMenuItemController(item):void 0}connectedCallback(){super.connectedCallback(),this.addEventListener("pointerover",this.onPointerOver),this.addEventListener("pointerout",this.onPointerOut),this.addEventListener("pointerdown",this.onPointerDownCapture,!0),this.addEventListener("click",this.onClickCapture,!0),this.addEventListener("keydown",this.onKeyDown),this.addEventListener("focusout",this.onFocusOut),this.observeAllocation(),this.hasUpdated&&this.updateBrowserDerivedState(()=>this.bindItems())}disconnectedCallback(){this.removeEventListener("pointerover",this.onPointerOver),this.removeEventListener("pointerout",this.onPointerOut),this.removeEventListener("pointerdown",this.onPointerDownCapture,!0),this.removeEventListener("click",this.onClickCapture,!0),this.removeEventListener("keydown",this.onKeyDown),this.removeEventListener("focusout",this.onFocusOut),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.cancelAllocationFrame(),this.observedIndicatorTargets.clear(),this.stopLightDismiss(),this.cancelShow(),this.cancelHide(),this.clearPress();for(const item of this.items)this.releaseItem(item);this.items=[],super.disconnectedCallback()}close(){this.cancelShow(),this.cancelHide();const listHides=this.collapsedLayout&&this._expanded;this.closeOpenItem("programmatic",listHides?{focusTarget:this.toggleElement}:{}),this.setExpanded(!1,"programmatic")}show(){this.setExpanded(!0,"programmatic")}hide(){this.close()}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{this.isConnected&&this.updateBrowserDerivedState(()=>this.bindItems())})}willUpdate(changed){super.willUpdate(changed),changed.has("mobileBreakpoint")&&this.hasUpdated&&this.applyAllocation(this.measureContentInlineSize())}updated(changed){super.updated(changed);const pending=this.pendingFocus;this.pendingFocus=void 0,pending==="toggle"?this.toggleElement?.focus({preventScroll:!0}):pending==="first-base"&&this.firstNavigableBase()?.focus({preventScroll:!0});const direction=this.effectiveDirection,directionChanged=this.lastDirection!==void 0&&direction!==this.lastDirection;this.lastDirection=direction,(changed.has("distance")||changed.has("topLayer")||changed.has("panelAnchor")||directionChanged)&&this.controllerFor(this.openItem)?.reposition(),(changed.has("indicator")||changed.has("panelAnchor")||changed.has("collapsedLayout")||directionChanged)&&(this.observeIndicatorTargets(),this.queueIndicatorMeasure())}bindItems(){if(!this.isConnected)return;const slot=this.renderRoot?.querySelector('[part~="list"] > slot'),assigned=slot?slot.assignedElements():[...this.children].filter(child=>!child.hasAttribute("slot")),itemTag=tag("navigation-menu-item"),next=[];for(const child of assigned)child.localName===itemTag?next.push(child):IGNORED_CHILDREN.has(child.localName)||devWarnOnce("lr-navigation-menu:non-item-child",`<${tag("navigation-menu")}> received <${child.localName}> in its default slot, which renders inside its list without a list item role. Only <${itemTag}> children belong there; place header chrome such as a logo, search or actions outside the menu.`);const kept=new Set(next);for(const previous of this.items)kept.has(previous)||this.releaseItem(previous);for(const item of next)bindNavigationMenuItem(item,this.context),item.hasAttribute("role")||(item.setAttribute("role","listitem"),this.ownedRoles.add(item));this.items=next,this.openItem&&(!kept.has(this.openItem)||!this.controllerFor(this.openItem)?.isOpen())&&(this.openItem=void 0);for(const item of next){const controller=this.controllerFor(item);controller?.isOpen()&&(this.openItem?this.openItem!==item&&controller.close(null,{repairFocus:!1,instant:!0}):this.openItem=item)}this.openItem&&this.layout==="bar"?this.startLightDismiss():this.stopLightDismiss(),this.observeIndicatorTargets(),this.queueIndicatorMeasure()}releaseItem(item){releaseNavigationMenuItem(item,this),this.ownedRoles.has(item)&&(item.getAttribute("role")==="listitem"&&item.removeAttribute("role"),this.ownedRoles.delete(item)),this.showTimer?.item===item&&this.cancelShow(),this.hideTimer?.item===item&&this.cancelHide(),this.openItem===item&&(this.openItem=void 0,this.stopLightDismiss())}now(){return this.ownerDocument.defaultView?.performance.now()??Date.now()}isNavigable(item){if(item.hidden||item.inert||item.closest("[inert]")!==null||item.getAttribute("aria-hidden")==="true")return!1;const base=this.controllerFor(item)?.base();return base!=null&&isComposedFocusAvailable(base)}firstNavigableBase(){const item=this.items.find(candidate=>this.isNavigable(candidate));return this.controllerFor(item)?.base()??null}itemContaining(target){if(isElementNode(target))return this.items.find(item=>composedContains(item,target))}focusWithinPanel(item){const active=deepActiveElement(this.ownerDocument);if(!active||!composedContains(item,active))return!1;const base=this.controllerFor(item)?.base();return!(base&&composedContains(base,active))}closeOpenItem(source,options={}){this.controllerFor(this.openItem)?.close(source,options)}activateItem(item){const controller=this.controllerFor(item);if(controller){if(this.cancelShow(),this.cancelHide(),controller.isTrigger()){controller.isOpen()?this.layout==="bar"&&controller.mode()==="hover"?controller.pin():controller.close("user"):controller.open("pinned","user");return}this.closeOpenItem("user"),this.layout==="stacked"&&this.setExpanded(!1,"user")}}itemWillOpen(item){this.showTimer?.item!==item&&this.cancelShow();const current=this.openItem;if(!current||current===item)return;const currentController=this.controllerFor(current);let morph;if(this.layout==="bar"&&this._panelAnchor==="menu"&&!prefersReducedMotion(this)){const panel=currentController?.panel(),from=panel&&!panel.hidden?panel.getBoundingClientRect():void 0;from&&from.width>0&&from.height>0&&(morph={from,direction:this.items.indexOf(item)>this.items.indexOf(current)?"end":"start"})}return currentController?.close("peer",{instant:!0,focusTarget:this.controllerFor(item)?.base()??null}),morph}itemChanged(item,open,source){open?(this.openItem=item,this.hideTimer?.item===item&&this.cancelHide(),this.layout==="bar"&&this.startLightDismiss()):this.openItem===item&&(this.openItem=void 0,this.layout==="bar"&&source!=="peer"&&(this.lastCloseAt=this.now()),this.hideTimer?.item===item&&this.cancelHide(),this.stopLightDismiss()),this.observeIndicatorTargets(),this.queueIndicatorMeasure()}itemEscape(item){this.cancelShow(),this.cancelHide();const within=composedContains(item,deepActiveElement(this.ownerDocument));this.controllerFor(item)?.close("user",{repairFocus:!1,restoreFocus:within})}hoverTrigger(item){this.cancelHide();const open=this.openItem;if(open&&open!==item){if(this.focusWithinPanel(open))return;this.cancelShow(),this.controllerFor(item)?.open("hover","user");return}if(this.showTimer?.item===item)return;const skip=finiteDuration(this.skipDelay,DEFAULT_SKIP_DELAY);if(skip>0&&this.now()-this.lastCloseAt<=skip){this.cancelShow(),this.controllerFor(item)?.open("hover","user");return}this.scheduleShow(item)}hoverNonTrigger(){this.cancelShow();const open=this.openItem;open&&this.requestHoverClose(open)}requestHoverClose(item){this.openItem===item&&(this.controllerFor(item)?.mode()!=="hover"||this.focusWithinPanel(item)||this.scheduleHide(item))}scheduleShow(item){this.cancelShow();const delay=finiteDuration(this.showDelay,DEFAULT_SHOW_DELAY),view=this.ownerDocument.defaultView,commit=()=>{if(this.layout!=="bar"||!this.items.includes(item))return;const open=this.openItem;open&&open!==item&&this.focusWithinPanel(open)||this.controllerFor(item)?.open("hover","user")};if(!view||delay<=0){commit();return}const id=view.setTimeout(()=>{this.showTimer?.id===id&&(this.showTimer=void 0,commit())},delay);this.showTimer={item,id,view}}scheduleHide(item){this.cancelHide();const delay=finiteDuration(this.hideDelay,DEFAULT_HIDE_DELAY),view=this.ownerDocument.defaultView,commit=()=>{if(this.openItem!==item)return;const controller=this.controllerFor(item);controller?.mode()!=="hover"||this.focusWithinPanel(item)||controller.close("user")};if(!view||delay<=0){commit();return}const id=view.setTimeout(()=>{this.hideTimer?.id===id&&(this.hideTimer=void 0,commit())},delay);this.hideTimer={item,id,view}}cancelShow(){const timer=this.showTimer;this.showTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}cancelHide(){const timer=this.hideTimer;this.hideTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}startLightDismiss(){const doc=this.ownerDocument;!this.isConnected||this.lightDismissDocument===doc||(this.stopLightDismiss(),doc.addEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=doc)}stopLightDismiss(){this.lightDismissDocument?.removeEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=void 0}reevaluatePress(){const pressed=this.pressOpenItem;if(this.pressActive=!1,this.pressOpenItem=void 0,!pressed||pressed!==this.openItem||this.layout!=="bar")return;const controller=this.controllerFor(pressed);if(!controller?.isOpen())return;const doc=this.ownerDocument,active=deepActiveElement(doc);!active||active===doc.body||active===doc.documentElement||composedContains(pressed,active)||controller.close("user",{repairFocus:!1})}stopPressListeners(){this.pressDocument?.removeEventListener("pointerup",this.onPressEnd,!0),this.pressDocument?.removeEventListener("pointercancel",this.onPressEnd,!0),this.pressDocument=void 0}clearPressTimer(){const timer=this.pressTimer;this.pressTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}clearPress(){this.stopPressListeners(),this.clearPressTimer(),this.pressActive=!1,this.pressOpenItem=void 0}handleBaseKey(event,item){const rtl=this.effectiveDirection==="rtl";switch(event.key){case"ArrowRight":case"ArrowLeft":{event.preventDefault();const forward=event.key==="ArrowRight"!==rtl;this.focusSibling(item,forward?1:-1);return}case"Home":case"End":{event.preventDefault();const navigable=this.items.filter(candidate=>this.isNavigable(candidate)),target=event.key==="Home"?navigable[0]:navigable.at(-1);this.controllerFor(target)?.base()?.focus();return}case"ArrowDown":{const controller=this.controllerFor(item);if(!controller?.isTrigger()||!controller.isOpen())return;event.preventDefault(),this.enterPanel(controller);return}}}focusSibling(item,step){const navigable=this.items.filter(candidate=>this.isNavigable(candidate)),index=navigable.indexOf(item);index!==-1&&this.controllerFor(navigable[index+step])?.base()?.focus()}async enterPanel(controller){if(await controller.placementReady(),!controller.isOpen())return;const panel=controller.panel();panel&&collectFocusableElements(panel)[0]?.focus()}handlePanelKey(event,panel,origin){if(!["ArrowDown","ArrowUp","Home","End"].includes(event.key)||!origin.matches(PANEL_KEY_ORIGIN))return;event.preventDefault();const focusable=collectFocusableElements(panel),index=focusable.findIndex(candidate=>candidate===origin);let target;event.key==="Home"?target=focusable[0]:event.key==="End"?target=focusable.at(-1):event.key==="ArrowDown"?target=focusable[index+1]:index>0&&(target=focusable[index-1]),target?.focus()}handleStackedEscape(event){const open=this.openItem,active=deepActiveElement(this.ownerDocument);if(open&&active&&composedContains(open,active)){event.preventDefault();const controller=this.controllerFor(open),base=controller?.base();controller?.close("user"),base?.focus();return}this._expanded&&(event.preventDefault(),this.setExpanded(!1,"user"),this.toggleElement?.focus())}setExpanded(next,source){if(next===this._expanded)return;if(source==="user"){if(this.requestingExpansion)return;const previous=this._expanded;this.requestingExpansion=!0;try{let accepted=!1;if(requestThenCommit({requestDetail:{expanded:next,source},emitRequest:(detail,init)=>this.emit("lr-toggle-request",detail,init),guard:this.expansionWriteGuard,commit:()=>{accepted=this._expanded===previous}}),!accepted)return}finally{this.requestingExpansion=!1}}if(!next&&this.collapsedLayout){const list=this.listElement,active=deepActiveElement(this.ownerDocument);list&&active&&composedContains(list,active)&&this.toggleElement?.focus({preventScroll:!0}),this.closeOpenItem(source,{repairFocus:!1})}const old=this._expanded;this._expanded=next;const notificationSequence=++this.expansionNotificationSequence;this.requestUpdate("expanded",old),source!==null&&this.updateComplete.then(()=>{!this.isConnected||this._expanded!==next||this.expansionNotificationSequence!==notificationSequence||(this.emit("lr-expanded-change",{expanded:next,source}),!(!this.isConnected||this._expanded!==next||this.expansionNotificationSequence!==notificationSequence)&&this.emit("lr-toggle",{expanded:next,source}))})}observeAllocation(){const ResizeObserverConstructor=this.ownerDocument.defaultView?.ResizeObserver;ResizeObserverConstructor&&(this.resizeObserver??=new ResizeObserverConstructor(entries=>this.onResize(entries)),this.resizeObserver.observe(this),this.observedIndicatorTargets.clear(),this.observeIndicatorTargets())}onResize(entries){for(const entry of entries)entry.target===this&&(this.lastInlineSize=entry.contentBoxSize?.[0]?.inlineSize??entry.contentRect.width,this.scheduleAllocation());this.queueIndicatorMeasure()}scheduleAllocation(){if(this.allocationFrame)return;const view=this.ownerDocument.defaultView;if(!view){this.applyAllocation(this.lastInlineSize);return}const id=view.requestAnimationFrame(()=>{this.allocationFrame?.id===id&&(this.allocationFrame=void 0,this.isConnected&&this.applyAllocation(this.lastInlineSize))});this.allocationFrame={id,view}}cancelAllocationFrame(){const frame=this.allocationFrame;this.allocationFrame=void 0,frame&&frame.view.cancelAnimationFrame(frame.id)}measureContentInlineSize(){const view=this.ownerDocument.defaultView;if(!view||!this.isConnected)return this.lastInlineSize;const style=view.getComputedStyle(this),edges=["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"];let width=this.getBoundingClientRect().width;for(const edge of edges)width-=Number.parseFloat(style[edge])||0;return Math.max(0,width)}applyAllocation(width){if(width===void 0||!Number.isFinite(width))return;const breakpoint=resolveCssLength(this.mobileBreakpoint,{host:this}),next=breakpoint!==void 0&&Number.isFinite(breakpoint)&&width<=breakpoint;this.updateBrowserDerivedState(()=>this.setCollapsed(next))}setCollapsed(next){if(next===this.collapsedLayout)return;this.cancelShow(),this.cancelHide();const active=deepActiveElement(this.ownerDocument),open=this.openItem;if(next){const list=this.listElement,listHides=!this._expanded,focusInList=!!(active&&list&&composedContains(list,active));this.controllerFor(open)?.close("programmatic",{instant:!0,repairFocus:!listHides}),listHides&&focusInList&&(this.pendingFocus="toggle"),this.stopLightDismiss()}else{const toggle=this.toggleElement,onToggle=!!(active&&toggle&&composedContains(toggle,active));this.controllerFor(open)?.close("programmatic",{instant:!0}),onToggle&&(this.pendingFocus="first-base")}this.collapsedLayout=next,setCustomState(this.menuInternals,"collapsed",next);for(const item of this.items)item.requestUpdate?.();!next&&this._expanded&&this.setExpanded(!1,"programmatic")}observeIndicatorTargets(){const observer=this.resizeObserver;if(!observer)return;const wanted=new Set;if(this.indicator){const list=this.listElement;list&&wanted.add(list);for(const item of this.items)wanted.add(item)}for(const target of this.observedIndicatorTargets)wanted.has(target)||observer.unobserve(target);for(const target of wanted)this.observedIndicatorTargets.has(target)||observer.observe(target);this.observedIndicatorTargets=wanted}queueIndicatorMeasure(){this.indicatorQueued||!this.indicator||(this.indicatorQueued=!0,queueMicrotask(()=>{const open=this.openItem;Promise.all([this.updateComplete,open?.updateComplete]).then(()=>{this.indicatorQueued=!1,this.measureIndicator()})}))}measureIndicator(){if(!this.indicator||this.collapsedLayout||!this.isConnected)return;const nav=this.renderRoot.querySelector('[part~="base"]'),base=this.controllerFor(this.openItem)?.base(),previous=this.indicatorBox;if(!nav||!base){previous?.visible&&(this.indicatorBox={...previous,visible:!1});return}const navRect=nav.getBoundingClientRect(),trigger=base.getBoundingClientRect(),list=this.listElement,rtl=this.effectiveDirection==="rtl",bottom=this._panelAnchor==="menu"&&list?list.getBoundingClientRect().bottom:trigger.bottom,next={start:rtl?navRect.right-trigger.right:trigger.left-navRect.left,size:trigger.width,top:bottom-navRect.top,visible:!0};previous&&previous.visible===next.visible&&Math.abs(previous.start-next.start)<.5&&Math.abs(previous.size-next.size)<.5&&Math.abs(previous.top-next.top)<.5||(this.indicatorBox=next)}render(){const label=hostAriaLabel(this)??this.label??this.localize("navigation"),collapsed=this.collapsedLayout,box=this.indicatorBox;return html`<nav part="base" aria-label=${label}>
1
+ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{hostAriaLabel,nextId}from"../../../internal/a11y.js";import{literalSetConverter}from"../../../internal/converters.js";import{resolveCssLength}from"../../../internal/css-length.js";import{setCustomState}from"../../../internal/custom-states.js";import{devWarnOnce}from"../../../internal/dev-mode-attribute-warning.js";import{attachInternalsSafely}from"../../../internal/element-internals.js";import{isComposedFocusAvailable}from"../../../internal/focus-navigation.js";import{menuIcon}from"../../../internal/icons.js";import{LyraElement}from"../../../internal/lyra-element.js";import{requestThenCommit}from"../../../internal/request-commit.js";import{markVetoGuardWrite,VetoWriteGuard}from"../../../internal/veto-write-guard.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{composedContains,deepActiveElement}from"../../../internal/nonmodal-overlay-manager.js";import{finiteDuration,finiteRange}from"../../../internal/numbers.js";import{collectFocusableElements}from"../../../internal/overlay-stack.js";import{tag}from"../../../internal/prefix.js";import{bindNavigationMenuItem,navigationMenuItemController,releaseNavigationMenuItem}from"./navigation-menu-owner.js";import{styles}from"./navigation-menu.styles.js";import{LYRA_DEFAULT_menuLabel,LYRA_DEFAULT_navigation}from"../../../internal/default-strings/shared.generated.js";const PANEL_ANCHOR=literalSetConverter(["menu","item"],"menu"),DEFAULT_SHOW_DELAY=200,DEFAULT_HIDE_DELAY=150,DEFAULT_SKIP_DELAY=300,DEFAULT_DISTANCE=6,PANEL_KEY_ORIGIN='a[href], button, [role="link"], [role="button"]',IGNORED_CHILDREN=new Set(["template","script","style"]);function isElementNode(value){return typeof value=="object"&&value!==null&&value.nodeType===1}function isAnchorWithHref(value){return isElementNode(value)&&value.localName==="a"&&value.hasAttribute("href")}class LyraNavigationMenu extends LyraElement{constructor(){super(...arguments),this._expanded=!1,this.expansionWriteGuard=new VetoWriteGuard,this.expansionNotificationSequence=0,this.indicator=!1,this._panelAnchor="menu",this.showDelay=DEFAULT_SHOW_DELAY,this.hideDelay=DEFAULT_HIDE_DELAY,this.skipDelay=DEFAULT_SKIP_DELAY,this.distance=DEFAULT_DISTANCE,this.topLayer=!1,this.collapsedLayout=!1,this.listId=nextId("navigation-menu-list"),this.menuInternals=attachInternalsSafely(this),this.ownedRoles=new WeakSet,this.context={owner:this,layout:()=>this.layout,anchor:item=>this._panelAnchor==="item"?this.controllerFor(item)?.base()??null:this.listElement,distance:()=>finiteRange(this.distance,DEFAULT_DISTANCE,0),topLayer:()=>this.topLayer,activate:item=>this.activateItem(item),willOpen:item=>this.itemWillOpen(item),changed:(item,open,source)=>this.itemChanged(item,open,source),escape:item=>this.itemEscape(item)},this.items=[],this.lastCloseAt=Number.NEGATIVE_INFINITY,this.pressActive=!1,this.observedIndicatorTargets=new Set,this.indicatorQueued=!1,this.onSlotChange=()=>{this.updateBrowserDerivedState(()=>this.bindItems())},this.onPointerOver=event=>{if(event.pointerType!=="mouse"||this.layout!=="bar")return;const target=event.composedPath()[0],item=this.itemContaining(target),controller=this.controllerFor(item);if(!item||!controller||!isElementNode(target))return;if(this.openItem===item){this.hideTimer?.item===item&&this.cancelHide();return}const base=controller.base();!base||!composedContains(base,target)||(controller.isTrigger()?this.hoverTrigger(item):this.hoverNonTrigger())},this.onPointerOut=event=>{if(event.pointerType!=="mouse"||this.layout!=="bar")return;const item=this.itemContaining(event.composedPath()[0]);if(!item)return;const next=event.relatedTarget;isElementNode(next)&&composedContains(item,next)||(this.showTimer?.item===item&&this.cancelShow(),this.requestHoverClose(item))},this.onDocumentPointerDown=event=>{const open=this.openItem,controller=this.controllerFor(open);if(!open||!controller||this.layout!=="bar"||!controller.isTopmost())return;const path=event.composedPath();if(!path.includes(open)){for(const item of this.items){if(item===open)continue;const other=this.controllerFor(item),base=other?.base();if(other?.isTrigger()&&base&&path.includes(base))return}this.cancelShow(),this.cancelHide(),controller.close("user",{repairFocus:!1})}},this.onPointerDownCapture=event=>{if(event.button!==0||!event.isPrimary)return;this.clearPressTimer(),this.pressActive=!0,this.pressOpenItem=this.openItem;const doc=this.ownerDocument;this.pressDocument!==doc&&(this.stopPressListeners(),doc.addEventListener("pointerup",this.onPressEnd,!0),doc.addEventListener("pointercancel",this.onPressEnd,!0),this.pressDocument=doc)},this.onPressEnd=()=>{this.stopPressListeners(),this.clearPressTimer();const view=this.ownerDocument.defaultView;if(!view){this.clearPress();return}const id=view.setTimeout(()=>{this.pressTimer?.id===id&&(this.pressTimer=void 0,this.reevaluatePress())},0);this.pressTimer={id,view}},this.onFocusOut=event=>{const open=this.openItem;if(!open||this.layout!=="bar")return;const target=event.composedPath()[0];if(!isElementNode(target)||!composedContains(open,target))return;const next=event.relatedTarget;!isElementNode(next)||composedContains(open,next)||this.pressActive||(this.cancelShow(),this.cancelHide(),this.controllerFor(open)?.close("user",{repairFocus:!1}))},this.onClickCapture=event=>{if(event.button!==0||event.ctrlKey||event.metaKey||event.shiftKey||event.altKey)return;const path=event.composedPath();if(!this.items.some(item=>{const controller=this.controllerFor(item);if(!controller)return!1;const base=controller.base();if(controller.isLink()&&base&&path.includes(base))return!0;const panel=controller.panel();if(!panel)return!1;const panelIndex=path.indexOf(panel);return panelIndex===-1?!1:path.slice(0,panelIndex).some(isAnchorWithHref)}))return;this.cancelShow(),this.cancelHide();const listHides=this.layout==="stacked"&&this._expanded;this.closeOpenItem("user",listHides?{focusTarget:this.toggleElement}:{}),listHides&&this.setExpanded(!1,"user")},this.onKeyDown=event=>{if(event.defaultPrevented||event.isComposing||event.altKey||event.ctrlKey||event.metaKey)return;if(this.layout==="stacked"){event.key==="Escape"&&this.handleStackedEscape(event);return}const origin=event.composedPath()[0];if(!isElementNode(origin))return;const topLevel=this.items.find(item=>this.controllerFor(item)?.base()===origin);if(topLevel){this.handleBaseKey(event,topLevel);return}const panel=this.controllerFor(this.openItem)?.panel();panel&&composedContains(panel,origin)&&this.handlePanelKey(event,panel,origin)},this.requestingExpansion=!1,this.onToggleClick=()=>{this.setExpanded(!this._expanded,"user")}}static{this.defaultStrings={...super.defaultStrings,menuLabel:LYRA_DEFAULT_menuLabel,navigation:LYRA_DEFAULT_navigation}}static{this.styles=[LyraElement.styles,styles]}get expanded(){return this._expanded}set expanded(next){markVetoGuardWrite(this.expansionWriteGuard),this.setExpanded(!!next,this.hasUpdated?"programmatic":null)}get panelAnchor(){return this._panelAnchor}set panelAnchor(next){const normalized=PANEL_ANCHOR.normalizeReflected(this,"panel-anchor",next);if(normalized===this._panelAnchor)return;const old=this._panelAnchor;this._panelAnchor=normalized,this.requestUpdate("panelAnchor",old)}get collapsed(){return this.collapsedLayout}get layout(){return this.collapsedLayout?"stacked":"bar"}get listElement(){return this.renderRoot?.querySelector('[part~="list"]')??null}get toggleElement(){return this.renderRoot?.querySelector('[part~="toggle"]')??null}controllerFor(item){return item?navigationMenuItemController(item):void 0}connectedCallback(){super.connectedCallback(),this.addEventListener("pointerover",this.onPointerOver),this.addEventListener("pointerout",this.onPointerOut),this.addEventListener("pointerdown",this.onPointerDownCapture,!0),this.addEventListener("click",this.onClickCapture,!0),this.addEventListener("keydown",this.onKeyDown),this.addEventListener("focusout",this.onFocusOut),this.observeAllocation(),this.hasUpdated&&this.updateBrowserDerivedState(()=>this.bindItems())}disconnectedCallback(){this.removeEventListener("pointerover",this.onPointerOver),this.removeEventListener("pointerout",this.onPointerOut),this.removeEventListener("pointerdown",this.onPointerDownCapture,!0),this.removeEventListener("click",this.onClickCapture,!0),this.removeEventListener("keydown",this.onKeyDown),this.removeEventListener("focusout",this.onFocusOut),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.cancelAllocationFrame(),this.observedIndicatorTargets.clear(),this.stopLightDismiss(),this.cancelShow(),this.cancelHide(),this.clearPress();for(const item of this.items)this.releaseItem(item);this.items=[],super.disconnectedCallback()}close(){this.cancelShow(),this.cancelHide();const listHides=this.collapsedLayout&&this._expanded;this.closeOpenItem("programmatic",listHides?{focusTarget:this.toggleElement}:{}),this.setExpanded(!1,"programmatic")}show(){this.setExpanded(!0,"programmatic")}hide(){this.close()}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{this.isConnected&&this.updateBrowserDerivedState(()=>this.bindItems())})}willUpdate(changed){super.willUpdate(changed),changed.has("mobileBreakpoint")&&this.hasUpdated&&this.applyAllocation(this.measureContentInlineSize())}updated(changed){super.updated(changed);const pending=this.pendingFocus;this.pendingFocus=void 0,pending==="toggle"?this.toggleElement?.focus({preventScroll:!0}):pending==="first-base"&&this.firstNavigableBase()?.focus({preventScroll:!0});const direction=this.effectiveDirection,directionChanged=this.lastDirection!==void 0&&direction!==this.lastDirection;this.lastDirection=direction,(changed.has("distance")||changed.has("topLayer")||changed.has("panelAnchor")||directionChanged)&&this.controllerFor(this.openItem)?.reposition(),(changed.has("indicator")||changed.has("panelAnchor")||changed.has("collapsedLayout")||directionChanged)&&(this.observeIndicatorTargets(),this.queueIndicatorMeasure())}bindItems(){if(!this.isConnected)return;const slot=this.renderRoot?.querySelector('[part~="list"] > slot'),assigned=slot?slot.assignedElements():[...this.children].filter(child=>!child.hasAttribute("slot")),itemTag=tag("navigation-menu-item"),next=[];for(const child of assigned)child.localName===itemTag?next.push(child):IGNORED_CHILDREN.has(child.localName)||devWarnOnce("lr-navigation-menu:non-item-child",`<${tag("navigation-menu")}> received <${child.localName}> in its default slot, which renders inside its list without a list item role. Only <${itemTag}> children belong there; place header chrome such as a logo, search or actions outside the menu.`);const kept=new Set(next);for(const previous of this.items)kept.has(previous)||this.releaseItem(previous);for(const item of next)bindNavigationMenuItem(item,this.context),item.hasAttribute("role")||(item.setAttribute("role","listitem"),this.ownedRoles.add(item));this.items=next,this.openItem&&(!kept.has(this.openItem)||!this.controllerFor(this.openItem)?.isOpen())&&(this.openItem=void 0);for(const item of next){const controller=this.controllerFor(item);controller?.isOpen()&&(this.openItem?this.openItem!==item&&controller.close(null,{repairFocus:!1,instant:!0}):this.openItem=item)}this.openItem&&this.layout==="bar"?this.startLightDismiss():this.stopLightDismiss(),this.observeIndicatorTargets(),this.queueIndicatorMeasure()}releaseItem(item){releaseNavigationMenuItem(item,this),this.ownedRoles.has(item)&&(item.getAttribute("role")==="listitem"&&item.removeAttribute("role"),this.ownedRoles.delete(item)),this.showTimer?.item===item&&this.cancelShow(),this.hideTimer?.item===item&&this.cancelHide(),this.openItem===item&&(this.openItem=void 0,this.stopLightDismiss())}now(){return this.ownerDocument.defaultView?.performance.now()??Date.now()}isNavigable(item){if(item.hidden||item.inert||item.closest("[inert]")!==null||item.getAttribute("aria-hidden")==="true")return!1;const base=this.controllerFor(item)?.base();return base!=null&&isComposedFocusAvailable(base)}firstNavigableBase(){const item=this.items.find(candidate=>this.isNavigable(candidate));return this.controllerFor(item)?.base()??null}itemContaining(target){if(isElementNode(target))return this.items.find(item=>composedContains(item,target))}focusWithinPanel(item){const active=deepActiveElement(this.ownerDocument);if(!active||!composedContains(item,active))return!1;const base=this.controllerFor(item)?.base();return!(base&&composedContains(base,active))}closeOpenItem(source,options={}){this.controllerFor(this.openItem)?.close(source,options)}activateItem(item){const controller=this.controllerFor(item);if(controller){if(this.cancelShow(),this.cancelHide(),controller.isTrigger()){controller.isOpen()?this.layout==="bar"&&controller.mode()==="hover"?controller.pin():controller.close("user"):controller.open("pinned","user");return}this.closeOpenItem("user"),this.layout==="stacked"&&this.setExpanded(!1,"user")}}itemWillOpen(item){this.showTimer?.item!==item&&this.cancelShow();const current=this.openItem;if(!current||current===item)return;const currentController=this.controllerFor(current);let morph;if(this.layout==="bar"&&this._panelAnchor==="menu"&&!prefersReducedMotion(this)){const panel=currentController?.panel(),from=panel&&!panel.hidden?panel.getBoundingClientRect():void 0;from&&from.width>0&&from.height>0&&(morph={from,direction:this.items.indexOf(item)>this.items.indexOf(current)?"end":"start"})}return currentController?.close("peer",{instant:!0,focusTarget:this.controllerFor(item)?.base()??null}),morph}itemChanged(item,open,source){open?(this.openItem=item,this.hideTimer?.item===item&&this.cancelHide(),this.layout==="bar"&&this.startLightDismiss()):this.openItem===item&&(this.openItem=void 0,this.layout==="bar"&&source!=="peer"&&(this.lastCloseAt=this.now()),this.hideTimer?.item===item&&this.cancelHide(),this.stopLightDismiss()),this.observeIndicatorTargets(),this.queueIndicatorMeasure()}itemEscape(item){this.cancelShow(),this.cancelHide();const within=composedContains(item,deepActiveElement(this.ownerDocument));this.controllerFor(item)?.close("user",{repairFocus:!1,restoreFocus:within})}hoverTrigger(item){this.cancelHide();const open=this.openItem;if(open&&open!==item){if(this.focusWithinPanel(open))return;this.cancelShow(),this.controllerFor(item)?.open("hover","user");return}if(this.showTimer?.item===item)return;const skip=finiteDuration(this.skipDelay,DEFAULT_SKIP_DELAY);if(skip>0&&this.now()-this.lastCloseAt<=skip){this.cancelShow(),this.controllerFor(item)?.open("hover","user");return}this.scheduleShow(item)}hoverNonTrigger(){this.cancelShow();const open=this.openItem;open&&this.requestHoverClose(open)}requestHoverClose(item){this.openItem===item&&(this.controllerFor(item)?.mode()!=="hover"||this.focusWithinPanel(item)||this.scheduleHide(item))}scheduleShow(item){this.cancelShow();const delay=finiteDuration(this.showDelay,DEFAULT_SHOW_DELAY),view=this.ownerDocument.defaultView,commit=()=>{if(this.layout!=="bar"||!this.items.includes(item))return;const open=this.openItem;open&&open!==item&&this.focusWithinPanel(open)||this.controllerFor(item)?.open("hover","user")};if(!view||delay<=0){commit();return}const id=view.setTimeout(()=>{this.showTimer?.id===id&&(this.showTimer=void 0,commit())},delay);this.showTimer={item,id,view}}scheduleHide(item){this.cancelHide();const delay=finiteDuration(this.hideDelay,DEFAULT_HIDE_DELAY),view=this.ownerDocument.defaultView,commit=()=>{if(this.openItem!==item)return;const controller=this.controllerFor(item);controller?.mode()!=="hover"||this.focusWithinPanel(item)||controller.close("user")};if(!view||delay<=0){commit();return}const id=view.setTimeout(()=>{this.hideTimer?.id===id&&(this.hideTimer=void 0,commit())},delay);this.hideTimer={item,id,view}}cancelShow(){const timer=this.showTimer;this.showTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}cancelHide(){const timer=this.hideTimer;this.hideTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}startLightDismiss(){const doc=this.ownerDocument;!this.isConnected||this.lightDismissDocument===doc||(this.stopLightDismiss(),doc.addEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=doc)}stopLightDismiss(){this.lightDismissDocument?.removeEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=void 0}reevaluatePress(){const pressed=this.pressOpenItem;if(this.pressActive=!1,this.pressOpenItem=void 0,!pressed||pressed!==this.openItem||this.layout!=="bar")return;const controller=this.controllerFor(pressed);if(!controller?.isOpen())return;const doc=this.ownerDocument,active=deepActiveElement(doc);!active||active===doc.body||active===doc.documentElement||composedContains(pressed,active)||controller.close("user",{repairFocus:!1})}stopPressListeners(){this.pressDocument?.removeEventListener("pointerup",this.onPressEnd,!0),this.pressDocument?.removeEventListener("pointercancel",this.onPressEnd,!0),this.pressDocument=void 0}clearPressTimer(){const timer=this.pressTimer;this.pressTimer=void 0,timer&&timer.view.clearTimeout(timer.id)}clearPress(){this.stopPressListeners(),this.clearPressTimer(),this.pressActive=!1,this.pressOpenItem=void 0}handleBaseKey(event,item){const rtl=this.effectiveDirection==="rtl";switch(event.key){case"ArrowRight":case"ArrowLeft":{event.preventDefault();const forward=event.key==="ArrowRight"!==rtl;this.focusSibling(item,forward?1:-1);return}case"Home":case"End":{event.preventDefault();const navigable=this.items.filter(candidate=>this.isNavigable(candidate)),target=event.key==="Home"?navigable[0]:navigable.at(-1);this.controllerFor(target)?.base()?.focus();return}case"ArrowDown":{const controller=this.controllerFor(item);if(!controller?.isTrigger()||!controller.isOpen())return;event.preventDefault(),this.enterPanel(controller);return}}}focusSibling(item,step){const navigable=this.items.filter(candidate=>this.isNavigable(candidate)),index=navigable.indexOf(item);index!==-1&&this.controllerFor(navigable[index+step])?.base()?.focus()}async enterPanel(controller){if(await controller.placementReady(),!controller.isOpen())return;const panel=controller.panel();panel&&collectFocusableElements(panel)[0]?.focus()}handlePanelKey(event,panel,origin){if(!["ArrowDown","ArrowUp","Home","End"].includes(event.key)||!origin.matches(PANEL_KEY_ORIGIN))return;event.preventDefault();const focusable=collectFocusableElements(panel),index=focusable.findIndex(candidate=>candidate===origin);let target;event.key==="Home"?target=focusable[0]:event.key==="End"?target=focusable.at(-1):event.key==="ArrowDown"?target=focusable[index+1]:index>0&&(target=focusable[index-1]),target?.focus()}handleStackedEscape(event){const open=this.openItem,active=deepActiveElement(this.ownerDocument);if(open&&active&&composedContains(open,active)){event.preventDefault();const controller=this.controllerFor(open),base=controller?.base();controller?.close("user"),base?.focus();return}this._expanded&&(event.preventDefault(),this.setExpanded(!1,"user"),this.toggleElement?.focus())}setExpanded(next,source){if(next===this._expanded)return;if(source==="user"){if(this.requestingExpansion)return;const previous=this._expanded;this.requestingExpansion=!0;try{let accepted=!1;if(requestThenCommit({requestDetail:{expanded:next,source},emitRequest:(detail,init)=>this.emit("lr-toggle-request",detail,init),guard:this.expansionWriteGuard,commit:()=>{accepted=this._expanded===previous}}),!accepted)return}finally{this.requestingExpansion=!1}}if(!next&&this.collapsedLayout){const list=this.listElement,active=deepActiveElement(this.ownerDocument);list&&active&&composedContains(list,active)&&this.toggleElement?.focus({preventScroll:!0}),this.closeOpenItem(source,{repairFocus:!1})}const old=this._expanded;this._expanded=next;const notificationSequence=++this.expansionNotificationSequence;this.requestUpdate("expanded",old),source!==null&&this.updateComplete.then(()=>{!this.isConnected||this._expanded!==next||this.expansionNotificationSequence!==notificationSequence||(this.emit("lr-expanded-change",{expanded:next,source}),!(!this.isConnected||this._expanded!==next||this.expansionNotificationSequence!==notificationSequence)&&this.emit("lr-toggle",{expanded:next,source}))})}observeAllocation(){const ResizeObserverConstructor=this.ownerDocument.defaultView?.ResizeObserver;ResizeObserverConstructor&&(this.resizeObserver??=new ResizeObserverConstructor(entries=>this.onResize(entries)),this.resizeObserver.observe(this),this.observedIndicatorTargets.clear(),this.observeIndicatorTargets())}onResize(entries){for(const entry of entries)entry.target===this&&(this.lastInlineSize=entry.contentBoxSize?.[0]?.inlineSize??entry.contentRect.width,this.scheduleAllocation());this.queueIndicatorMeasure()}scheduleAllocation(){if(this.allocationFrame)return;const view=this.ownerDocument.defaultView;if(!view){this.applyAllocation(this.lastInlineSize);return}const id=view.requestAnimationFrame(()=>{this.allocationFrame?.id===id&&(this.allocationFrame=void 0,this.isConnected&&this.applyAllocation(this.lastInlineSize))});this.allocationFrame={id,view}}cancelAllocationFrame(){const frame=this.allocationFrame;this.allocationFrame=void 0,frame&&frame.view.cancelAnimationFrame(frame.id)}measureContentInlineSize(){const view=this.ownerDocument.defaultView;if(!view||!this.isConnected)return this.lastInlineSize;const style=view.getComputedStyle(this),edges=["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"];let width=this.getBoundingClientRect().width;for(const edge of edges)width-=Number.parseFloat(style[edge])||0;return Math.max(0,width)}applyAllocation(width){if(width===void 0||!Number.isFinite(width))return;const breakpoint=resolveCssLength(this.mobileBreakpoint,{host:this}),next=breakpoint!==void 0&&Number.isFinite(breakpoint)&&width<=breakpoint;this.updateBrowserDerivedState(()=>this.setCollapsed(next))}setCollapsed(next){if(next===this.collapsedLayout)return;this.cancelShow(),this.cancelHide();const active=deepActiveElement(this.ownerDocument),open=this.openItem;if(next){const list=this.listElement,listHides=!this._expanded,focusInList=!!(active&&list&&composedContains(list,active));this.controllerFor(open)?.close("programmatic",{instant:!0,repairFocus:!listHides}),listHides&&focusInList&&(this.pendingFocus="toggle"),this.stopLightDismiss()}else{const toggle=this.toggleElement,onToggle=!!(active&&toggle&&composedContains(toggle,active));this.controllerFor(open)?.close("programmatic",{instant:!0}),onToggle&&(this.pendingFocus="first-base")}this.collapsedLayout=next,setCustomState(this.menuInternals,"collapsed",next);for(const item of this.items)item.requestUpdate?.();!next&&this._expanded&&this.setExpanded(!1,"programmatic")}observeIndicatorTargets(){const observer=this.resizeObserver;if(!observer)return;const wanted=new Set;if(this.indicator){const list=this.listElement;list&&wanted.add(list);for(const item of this.items)wanted.add(item)}for(const target of this.observedIndicatorTargets)wanted.has(target)||observer.unobserve(target);for(const target of wanted)this.observedIndicatorTargets.has(target)||observer.observe(target);this.observedIndicatorTargets=wanted}queueIndicatorMeasure(){this.indicatorQueued||!this.indicator||(this.indicatorQueued=!0,queueMicrotask(()=>{const open=this.openItem;Promise.all([this.updateComplete,open?.updateComplete]).then(()=>{this.indicatorQueued=!1,this.measureIndicator()})}))}measureIndicator(){if(!this.indicator||this.collapsedLayout||!this.isConnected)return;const nav=this.renderRoot.querySelector('[part~="base"]'),base=this.controllerFor(this.openItem)?.base(),previous=this.indicatorBox;if(!nav||!base){previous?.visible&&(this.indicatorBox={...previous,visible:!1});return}const navRect=nav.getBoundingClientRect(),trigger=base.getBoundingClientRect(),list=this.listElement,rtl=this.effectiveDirection==="rtl",bottom=this._panelAnchor==="menu"&&list?list.getBoundingClientRect().bottom:trigger.bottom,next={start:rtl?navRect.right-trigger.right:trigger.left-navRect.left,size:trigger.width,top:bottom-navRect.top,visible:!0};previous&&previous.visible===next.visible&&Math.abs(previous.start-next.start)<.5&&Math.abs(previous.size-next.size)<.5&&Math.abs(previous.top-next.top)<.5||(this.indicatorBox=next)}render(){const label=hostAriaLabel(this)??this.label??this.localize("navigation"),collapsed=this.collapsedLayout,box=this.indicatorBox;return html`<nav part="base" aria-label=${label}>
2
2
  ${collapsed?html`<button
3
3
  type="button"
4
4
  part="toggle"