@aceshooting/lyra-ui 26.0.0 → 27.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 (1475) hide show
  1. package/CHANGELOG.md +63 -675
  2. package/README.md +281 -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/init-agents.mjs +40 -0
  9. package/dist/cli/is-main-module.mjs +1 -0
  10. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  11. package/dist/cli/lyra-ui.mjs +11 -0
  12. package/dist/cli/migrate-wa.mjs +4 -2
  13. package/dist/cli/migration-contract.json +1 -1
  14. package/dist/cli/migration-renames.mjs +1 -1
  15. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  16. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  17. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  18. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  19. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  20. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  21. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  22. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  23. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  24. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  25. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  26. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  27. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  28. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  29. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  30. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  31. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  32. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  33. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  34. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  35. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  36. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  37. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  38. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  39. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  40. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  41. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  42. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  43. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  44. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  45. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  46. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  47. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  48. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  49. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  50. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  51. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  52. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  53. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  54. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  55. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  56. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  57. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  58. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  59. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  60. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  61. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  62. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  63. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  64. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  65. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  66. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  67. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  68. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  69. package/dist/components/charts/chart/box-plot.class.js +1 -1
  70. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  71. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  72. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  73. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  74. package/dist/components/charts/chart/chart.class.d.ts +2 -2
  75. package/dist/components/charts/chart/chart.class.js +2 -2
  76. package/dist/components/charts/chart/chart.styles.js +1 -1
  77. package/dist/components/charts/chart/histogram.class.js +1 -1
  78. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  79. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  80. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  81. package/dist/components/conversation/catalog-picker-element.js +1 -1
  82. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  83. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  84. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  85. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  86. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  87. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  88. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  89. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  90. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  91. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  92. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  93. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  94. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  95. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  96. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  97. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  98. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  99. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  100. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  101. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  102. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  103. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  104. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  105. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  106. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  107. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  108. package/dist/components/data/document-library/document-library.class.js +2 -2
  109. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  110. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  111. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  112. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  113. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  114. package/dist/components/data/table/table.class.d.ts +10 -195
  115. package/dist/components/data/table/table.class.js +2 -2
  116. package/dist/components/data/table/table.styles.js +1 -1
  117. package/dist/components/data/timeline/timeline.class.js +1 -1
  118. package/dist/components/data/tree/tree.class.js +1 -1
  119. package/dist/components/forms/button/button.class.d.ts +3 -3
  120. package/dist/components/forms/button/button.class.js +1 -1
  121. package/dist/components/forms/catalog-picker-base.js +1 -1
  122. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  123. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  124. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  125. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  126. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  127. package/dist/components/forms/color-picker/color-picker.class.js +1 -1
  128. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  129. package/dist/components/forms/combobox/combobox.class.js +3 -2
  130. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  131. package/dist/components/forms/combobox/option.class.js +2 -2
  132. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  133. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  134. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  135. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  136. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  137. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  138. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  139. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  140. package/dist/components/forms/input/input.styles.js +1 -1
  141. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  142. package/dist/components/forms/input/time-input.class.js +1 -1
  143. package/dist/components/forms/input/time-input.styles.js +1 -1
  144. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  145. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  146. package/dist/components/forms/otp-input/otp-input.class.js +1 -0
  147. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  148. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  149. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  150. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  151. package/dist/components/forms/radio/radio-group.class.js +1 -1
  152. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  153. package/dist/components/forms/radio/radio.class.js +2 -2
  154. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  155. package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
  156. package/dist/components/forms/select/select.class.d.ts +5 -7
  157. package/dist/components/forms/select/select.class.js +3 -2
  158. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  159. package/dist/components/forms/slider/slider.class.js +1 -1
  160. package/dist/components/forms/slider/slider.styles.js +1 -1
  161. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  162. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  163. package/dist/components/forms/switch/switch.class.js +2 -2
  164. package/dist/components/forms/textarea/textarea.class.js +1 -0
  165. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  166. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  167. package/dist/components/forms/time-range/time-range.class.js +1 -1
  168. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  169. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  170. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  171. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  172. package/dist/components/forms/token-input/token-input.class.js +1 -1
  173. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  174. package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -2
  175. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  176. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  177. package/dist/components/layout/card/card.class.js +1 -1
  178. package/dist/components/layout/carousel/carousel.class.js +1 -1
  179. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  180. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  181. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  182. package/dist/components/layout/details/accordion.class.js +1 -1
  183. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  184. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  185. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  186. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  187. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  188. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  189. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  190. package/dist/components/layout/menu/menu.class.js +1 -1
  191. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  192. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  193. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  194. package/dist/components/layout/page/page.class.d.ts +1 -1
  195. package/dist/components/layout/page/page.class.js +1 -1
  196. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  197. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  198. package/dist/components/layout/scroller/scroller.class.js +1 -1
  199. package/dist/components/layout/segmented/segmented.class.js +1 -1
  200. package/dist/components/layout/stepper/stepper.class.js +2 -2
  201. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  202. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  203. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  204. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  205. package/dist/components/layout/widget/widget.class.js +3 -3
  206. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  207. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  208. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  209. package/dist/components/media/file-input/file-input.class.js +2 -2
  210. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  211. package/dist/components/media/file-input/file-intake.js +1 -1
  212. package/dist/components/media/flag/flag.class.js +1 -1
  213. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  214. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  215. package/dist/components/media/map/map.class.js +2 -2
  216. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  217. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  218. package/dist/components/media/video/video.class.js +3 -3
  219. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  220. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  221. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  222. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  223. package/dist/components/overlays/alert/alert.class.js +1 -1
  224. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  225. package/dist/components/overlays/badge/badge.class.js +1 -1
  226. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  227. package/dist/components/overlays/badge/tag.class.js +3 -2
  228. package/dist/components/overlays/badge/tag.styles.js +1 -1
  229. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  230. package/dist/components/overlays/callout/callout.class.js +1 -1
  231. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  232. package/dist/components/overlays/chip/chip.class.js +2 -2
  233. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  234. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  235. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  236. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  237. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  238. package/dist/components/overlays/overlay/popover.class.js +1 -1
  239. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  240. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  241. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  242. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  243. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  244. package/dist/components/overlays/progress/progress-base.js +1 -0
  245. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  246. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  247. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  248. package/dist/components/overlays/rating/rating.class.js +1 -1
  249. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  250. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  251. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  252. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  253. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  254. package/dist/components/retrieval/graph/graph-model.js +1 -1
  255. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  256. package/dist/components/retrieval/graph/graph.class.js +1 -1
  257. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  258. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  259. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  260. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  261. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  262. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  263. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  264. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  265. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  266. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  267. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  268. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  269. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  270. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  271. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  272. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  273. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  274. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  275. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  276. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  277. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  278. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  279. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  280. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  281. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  282. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  283. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  284. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  285. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  286. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  287. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  288. package/dist/components/utility/export-button/export-button.class.js +1 -1
  289. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  290. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  291. package/dist/components/utility/known-date/known-date.class.js +1 -1
  292. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  293. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  294. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  295. package/dist/components/utility/random-content/random-content.class.js +1 -1
  296. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  297. package/dist/components/utility/tour/tour.class.js +1 -1
  298. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  299. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  300. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  301. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  302. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  303. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +1 -1
  304. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  305. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  306. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  307. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  308. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  309. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  310. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  311. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  312. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  313. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  314. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  315. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  316. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  317. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  318. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  319. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  320. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  321. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  322. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  323. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  324. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  325. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  326. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  327. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  328. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  329. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  330. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  331. package/dist/components/viewers/page-rail/page-rail.class.js +2 -2
  332. package/dist/components/viewers/passive-markup.js +1 -1
  333. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  334. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +2 -2
  335. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  336. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  337. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  338. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  339. package/dist/components/viewers/region-highlight-layer.js +15 -2
  340. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  341. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  342. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  343. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  344. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  345. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  346. package/dist/components/viewers/table-viewer-shared.js +15 -1
  347. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  348. package/dist/events.d.ts +19 -18
  349. package/dist/framework-types.d.ts +1 -1
  350. package/dist/internal/accessibility-visibility.d.ts +3 -1
  351. package/dist/internal/accessibility-visibility.js +1 -1
  352. package/dist/internal/accessible-text-controller.js +1 -1
  353. package/dist/internal/active-element.d.ts +11 -0
  354. package/dist/internal/active-element.js +1 -1
  355. package/dist/internal/adjacent-runs.js +1 -1
  356. package/dist/internal/approval-wait-until.d.ts +7 -0
  357. package/dist/internal/approval-wait-until.js +1 -0
  358. package/dist/internal/aria-controls.js +1 -1
  359. package/dist/internal/catalog-picker.d.ts +2 -2
  360. package/dist/internal/catalog-picker.js +1 -1
  361. package/dist/internal/composed-tree.d.ts +18 -0
  362. package/dist/internal/composed-tree.js +1 -1
  363. package/dist/internal/copy-feedback.js +1 -0
  364. package/dist/internal/css-length.js +1 -1
  365. package/dist/internal/css-motion-time.js +1 -1
  366. package/dist/internal/css-number.js +1 -0
  367. package/dist/internal/default-strings.generated.js +1 -1
  368. package/dist/internal/deferred-focus-return.d.ts +33 -0
  369. package/dist/internal/deferred-focus-return.js +1 -1
  370. package/dist/internal/fixed-containing-block.js +1 -1
  371. package/dist/internal/form-associated.d.ts +38 -2
  372. package/dist/internal/form-associated.js +1 -1
  373. package/dist/internal/form-control-element.d.ts +13 -0
  374. package/dist/internal/form-control-element.js +1 -0
  375. package/dist/internal/form-control.styles.js +1 -1
  376. package/dist/internal/inherited-attribute-hub.js +1 -1
  377. package/dist/internal/locale-loaders.generated.js +1 -1
  378. package/dist/internal/localization-types.d.ts +1 -1
  379. package/dist/internal/localization.js +1 -1
  380. package/dist/internal/modal-surface-controller.js +1 -1
  381. package/dist/internal/object-guards.js +1 -1
  382. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  383. package/dist/internal/optional-peer-capabilities.js +1 -1
  384. package/dist/internal/orientation-breakpoint.js +1 -1
  385. package/dist/internal/overlay-manager.d.ts +6 -1
  386. package/dist/internal/overlay-manager.js +1 -1
  387. package/dist/internal/overlay-stack.d.ts +7 -3
  388. package/dist/internal/overlay-stack.js +1 -1
  389. package/dist/internal/package-metadata.js +1 -1
  390. package/dist/internal/persisted-restore.js +1 -1
  391. package/dist/internal/popup-controller.js +1 -0
  392. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  393. package/dist/internal/rendered-tree-traversal.js +1 -1
  394. package/dist/internal/retry-forwarder.js +1 -0
  395. package/dist/internal/roving-toolbar.js +1 -1
  396. package/dist/internal/scoped-definitions.generated.js +1 -1
  397. package/dist/internal/score-tiers.d.ts +4 -0
  398. package/dist/internal/score-tiers.js +1 -0
  399. package/dist/internal/semantic-variant.d.ts +7 -0
  400. package/dist/internal/semantic-variant.js +1 -0
  401. package/dist/internal/shared-unions.d.ts +1 -1
  402. package/dist/internal/viewer-search.js +1 -1
  403. package/dist/lyra.d.ts +1 -1
  404. package/dist/testing/happy-dom-shims.d.ts +18 -0
  405. package/dist/testing/happy-dom-shims.js +1 -1
  406. package/dist/testing/index.d.ts +1 -1
  407. package/dist/testing/index.js +1 -1
  408. package/llms/components/lr-accordion-item.md +1 -1
  409. package/llms/components/lr-accordion.md +1 -1
  410. package/llms/components/lr-alert.md +2 -2
  411. package/llms/components/lr-app-rail-group.md +1 -1
  412. package/llms/components/lr-app-rail-item.md +1 -1
  413. package/llms/components/lr-app-rail.md +1 -1
  414. package/llms/components/lr-attachment-chip.md +1 -10
  415. package/llms/components/lr-attachment-trigger.md +0 -10
  416. package/llms/components/lr-avatar.md +4 -8
  417. package/llms/components/lr-badge.md +16 -20
  418. package/llms/components/lr-box-plot.md +1 -1
  419. package/llms/components/lr-breadcrumb-item.md +1 -1
  420. package/llms/components/lr-breadcrumb.md +1 -1
  421. package/llms/components/lr-button-group.md +1 -1
  422. package/llms/components/lr-button.md +1 -1
  423. package/llms/components/lr-calendar.md +1 -1
  424. package/llms/components/lr-callout.md +3 -13
  425. package/llms/components/lr-card.md +1 -1
  426. package/llms/components/lr-carousel-item.md +1 -1
  427. package/llms/components/lr-carousel.md +1 -1
  428. package/llms/components/lr-chart.md +5 -7
  429. package/llms/components/lr-checkbox-group.md +1 -1
  430. package/llms/components/lr-checkbox.md +2 -1
  431. package/llms/components/lr-chip.md +3 -17
  432. package/llms/components/lr-chunk-inspector.md +2 -1
  433. package/llms/components/lr-citation-badge.md +2 -2
  434. package/llms/components/lr-code-block.md +0 -10
  435. package/llms/components/lr-code-editor.md +1 -1
  436. package/llms/components/lr-color-picker.md +1 -1
  437. package/llms/components/lr-combobox.md +6 -3
  438. package/llms/components/lr-command-palette.md +5 -2
  439. package/llms/components/lr-commit-card.md +1 -3
  440. package/llms/components/lr-condition-builder.md +1 -1
  441. package/llms/components/lr-confirm-bar.md +7 -13
  442. package/llms/components/lr-connector-manager.md +3 -1
  443. package/llms/components/lr-context-inspector.md +1 -1
  444. package/llms/components/lr-context-meter.md +1 -1
  445. package/llms/components/lr-control-group.md +1 -1
  446. package/llms/components/lr-copy-button.md +8 -10
  447. package/llms/components/lr-country-picker.md +1 -1
  448. package/llms/components/lr-currency-picker.md +1 -1
  449. package/llms/components/lr-dashboard-grid.md +1 -1
  450. package/llms/components/lr-data-grid.md +1 -1
  451. package/llms/components/lr-date-input.md +1 -1
  452. package/llms/components/lr-date-picker.md +11 -4
  453. package/llms/components/lr-details.md +1 -1
  454. package/llms/components/lr-dialog.md +8 -31
  455. package/llms/components/lr-diff-view.md +1 -1
  456. package/llms/components/lr-divider.md +1 -1
  457. package/llms/components/lr-dock-panel.md +1 -1
  458. package/llms/components/lr-document-library.md +1 -1
  459. package/llms/components/lr-drawer.md +1 -13
  460. package/llms/components/lr-drilldown-panel.md +1 -1
  461. package/llms/components/lr-drop-zone.md +4 -0
  462. package/llms/components/lr-dropdown-item.md +1 -1
  463. package/llms/components/lr-ebook-viewer.md +4 -3
  464. package/llms/components/lr-emoji-picker.md +1 -1
  465. package/llms/components/lr-entity-chip.md +2 -2
  466. package/llms/components/lr-env-list.md +1 -1
  467. package/llms/components/lr-eval-dataset.md +4 -19
  468. package/llms/components/lr-export-button.md +3 -3
  469. package/llms/components/lr-file-icon.md +0 -5
  470. package/llms/components/lr-file-input.md +3 -5
  471. package/llms/components/lr-file-tree.md +1 -1
  472. package/llms/components/lr-filter-bar.md +5 -1
  473. package/llms/components/lr-flag.md +1 -2
  474. package/llms/components/lr-flow-canvas.md +1 -1
  475. package/llms/components/lr-flow-controls.md +1 -1
  476. package/llms/components/lr-flow-minimap.md +2 -2
  477. package/llms/components/lr-flow-node.md +1 -1
  478. package/llms/components/lr-flow-run-status.md +1 -1
  479. package/llms/components/lr-format-bytes.md +2 -3
  480. package/llms/components/lr-format-date.md +2 -3
  481. package/llms/components/lr-format-number.md +1 -1
  482. package/llms/components/lr-funnel.md +1 -1
  483. package/llms/components/lr-gauge.md +1 -1
  484. package/llms/components/lr-generation-metrics.md +1 -1
  485. package/llms/components/lr-graph-query-builder.md +1 -1
  486. package/llms/components/lr-heatmap.md +1 -1
  487. package/llms/components/lr-icon-button.md +1 -1
  488. package/llms/components/lr-icon.md +1 -1
  489. package/llms/components/lr-input.md +1 -1
  490. package/llms/components/lr-intersection-observer.md +1 -1
  491. package/llms/components/lr-json-viewer.md +1 -1
  492. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  493. package/llms/components/lr-known-date.md +1 -1
  494. package/llms/components/lr-lite-chart.md +3 -4
  495. package/llms/components/lr-live-region.md +1 -1
  496. package/llms/components/lr-locale-picker.md +1 -1
  497. package/llms/components/lr-map.md +1 -3
  498. package/llms/components/lr-media-card.md +1 -10
  499. package/llms/components/lr-memory-panel.md +2 -0
  500. package/llms/components/lr-mention-popover.md +3 -3
  501. package/llms/components/lr-menu-item.md +1 -1
  502. package/llms/components/lr-menu-label.md +1 -1
  503. package/llms/components/lr-menu.md +1 -1
  504. package/llms/components/lr-menubar-item.md +1 -1
  505. package/llms/components/lr-menubar.md +1 -1
  506. package/llms/components/lr-message-actions.md +1 -11
  507. package/llms/components/lr-message-parts.md +3 -5
  508. package/llms/components/lr-model-select.md +2 -4
  509. package/llms/components/lr-multi-split.md +1 -1
  510. package/llms/components/lr-mutation-observer.md +2 -2
  511. package/llms/components/lr-native-time-input.md +1 -1
  512. package/llms/components/lr-navigation-menu-item.md +1 -1
  513. package/llms/components/lr-navigation-menu.md +1 -1
  514. package/llms/components/lr-number-input.md +1 -1
  515. package/llms/components/lr-option.md +1 -1
  516. package/llms/components/lr-otp-input.md +1 -1
  517. package/llms/components/lr-page.md +1 -1
  518. package/llms/components/lr-pagination.md +1 -1
  519. package/llms/components/lr-pan-zoom.md +1 -3
  520. package/llms/components/lr-permission-grant.md +3 -1
  521. package/llms/components/lr-phone-input.md +7 -5
  522. package/llms/components/lr-poll-status.md +1 -1
  523. package/llms/components/lr-popover.md +5 -9
  524. package/llms/components/lr-popup.md +1 -3
  525. package/llms/components/lr-progress-bar.md +2 -1
  526. package/llms/components/lr-progress-ring.md +4 -8
  527. package/llms/components/lr-prompt-input.md +3 -1
  528. package/llms/components/lr-prompt-studio.md +4 -4
  529. package/llms/components/lr-radio-button.md +2 -2
  530. package/llms/components/lr-radio-group.md +1 -1
  531. package/llms/components/lr-radio.md +3 -2
  532. package/llms/components/lr-random-content.md +1 -1
  533. package/llms/components/lr-rating.md +2 -3
  534. package/llms/components/lr-relative-time.md +2 -3
  535. package/llms/components/lr-reorder-item.md +1 -1
  536. package/llms/components/lr-reorder-list.md +1 -1
  537. package/llms/components/lr-research-progress.md +2 -0
  538. package/llms/components/lr-resize-observer.md +1 -1
  539. package/llms/components/lr-responsive-panel.md +1 -1
  540. package/llms/components/lr-retrieval-compare.md +2 -0
  541. package/llms/components/lr-retrieval-trace.md +2 -0
  542. package/llms/components/lr-rubric-form.md +1 -1
  543. package/llms/components/lr-scroller.md +1 -1
  544. package/llms/components/lr-segmented.md +1 -1
  545. package/llms/components/lr-select.md +1 -1
  546. package/llms/components/lr-sequence-playback.md +1 -2
  547. package/llms/components/lr-sequence-strip.md +1 -1
  548. package/llms/components/lr-signature-pad.md +1 -1
  549. package/llms/components/lr-skeleton.md +2 -4
  550. package/llms/components/lr-slider.md +1 -1
  551. package/llms/components/lr-sparkline.md +1 -1
  552. package/llms/components/lr-split-panel.md +1 -1
  553. package/llms/components/lr-stat.md +1 -1
  554. package/llms/components/lr-stepper.md +1 -1
  555. package/llms/components/lr-swatch-picker.md +1 -1
  556. package/llms/components/lr-switch.md +2 -1
  557. package/llms/components/lr-tab-group.md +1 -1
  558. package/llms/components/lr-tab-panel.md +1 -1
  559. package/llms/components/lr-tab.md +1 -1
  560. package/llms/components/lr-table.md +3 -3
  561. package/llms/components/lr-task-list.md +3 -3
  562. package/llms/components/lr-test-results.md +2 -4
  563. package/llms/components/lr-textarea.md +1 -1
  564. package/llms/components/lr-time-input.md +1 -1
  565. package/llms/components/lr-time-range.md +5 -4
  566. package/llms/components/lr-time-zone-picker.md +1 -1
  567. package/llms/components/lr-timeline-item.md +1 -1
  568. package/llms/components/lr-timeline.md +1 -1
  569. package/llms/components/lr-toggle-group.md +1 -1
  570. package/llms/components/lr-toggle.md +1 -1
  571. package/llms/components/lr-token-input.md +1 -1
  572. package/llms/components/lr-tool-approval-dialog.md +12 -10
  573. package/llms/components/lr-tool-call-block.md +1 -1
  574. package/llms/components/lr-tool-call-chip.md +1 -3
  575. package/llms/components/lr-tool-result-view.md +3 -3
  576. package/llms/components/lr-tool-timeline.md +2 -2
  577. package/llms/components/lr-tooltip.md +8 -11
  578. package/llms/components/lr-tour.md +2 -2
  579. package/llms/components/lr-tree-item.md +1 -1
  580. package/llms/components/lr-tree.md +1 -1
  581. package/llms/components/lr-unit-picker.md +1 -1
  582. package/llms/components/lr-usage-badge.md +1 -3
  583. package/llms/components/lr-video.md +1 -2
  584. package/llms/components/lr-virtual-list.md +1 -1
  585. package/llms/components/lr-visually-hidden.md +1 -1
  586. package/llms/components/lr-voice-picker.md +1 -1
  587. package/llms/components/lr-widget.md +1 -1
  588. package/llms/components/lr-word-cloud.md +1 -1
  589. package/llms/components/lr-zoomable-frame.md +1 -6
  590. package/llms/migration.md +96 -2
  591. package/llms/peers.md +3 -2
  592. package/llms/shared/ai-and-peers.md +2 -2
  593. package/llms/shared/events-and-types.md +4 -1
  594. package/llms/shared/imports-and-registration.md +2 -2
  595. package/llms/shared/localization-and-rtl.md +18 -18
  596. package/llms/shared/styles-and-tokens.md +1 -1
  597. package/llms/shared/testing-and-utilities.md +44 -43
  598. package/llms/shared.md +71 -67
  599. package/llms.txt +14 -12
  600. package/locales.json +1002 -1002
  601. package/package.json +16 -6879
  602. package/registrations.json +1 -1
  603. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  604. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  605. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  606. package/skills/lyra-ui/SKILL.md +145 -0
  607. package/skills/lyra-ui/commands/frontend.md +37 -0
  608. package/skills/lyra-ui/commands/migrate.md +44 -0
  609. package/skills/lyra-ui/commands/new-component.md +19 -0
  610. package/skills/lyra-ui/commands/review.md +247 -0
  611. package/skills/lyra-ui/commands/update.md +30 -0
  612. package/skills/lyra-ui/reporting.md +137 -0
  613. package/custom-elements.json +0 -1
  614. package/dist/internal/side-effect-only.d.ts +0 -1
  615. package/dist/translations/am/agent-tools.js +0 -1
  616. package/dist/translations/am/charts.js +0 -1
  617. package/dist/translations/am/conversation.js +0 -1
  618. package/dist/translations/am/data.js +0 -1
  619. package/dist/translations/am/forms.js +0 -1
  620. package/dist/translations/am/layout.js +0 -1
  621. package/dist/translations/am/media.js +0 -1
  622. package/dist/translations/am/overlays.js +0 -1
  623. package/dist/translations/am/retrieval.js +0 -1
  624. package/dist/translations/am/shared.js +0 -1
  625. package/dist/translations/am/utility.js +0 -1
  626. package/dist/translations/am/viewers.js +0 -5
  627. package/dist/translations/am.js +0 -1
  628. package/dist/translations/ar/agent-tools.js +0 -1
  629. package/dist/translations/ar/charts.js +0 -1
  630. package/dist/translations/ar/conversation.js +0 -1
  631. package/dist/translations/ar/data.js +0 -1
  632. package/dist/translations/ar/forms.js +0 -1
  633. package/dist/translations/ar/layout.js +0 -1
  634. package/dist/translations/ar/media.js +0 -1
  635. package/dist/translations/ar/overlays.js +0 -1
  636. package/dist/translations/ar/retrieval.js +0 -1
  637. package/dist/translations/ar/shared.js +0 -1
  638. package/dist/translations/ar/utility.js +0 -1
  639. package/dist/translations/ar/viewers.js +0 -5
  640. package/dist/translations/ar.js +0 -1
  641. package/dist/translations/bho/agent-tools.js +0 -1
  642. package/dist/translations/bho/charts.js +0 -1
  643. package/dist/translations/bho/conversation.js +0 -1
  644. package/dist/translations/bho/data.js +0 -1
  645. package/dist/translations/bho/forms.js +0 -1
  646. package/dist/translations/bho/layout.js +0 -1
  647. package/dist/translations/bho/media.js +0 -1
  648. package/dist/translations/bho/overlays.js +0 -1
  649. package/dist/translations/bho/retrieval.js +0 -1
  650. package/dist/translations/bho/shared.js +0 -1
  651. package/dist/translations/bho/utility.js +0 -1
  652. package/dist/translations/bho/viewers.js +0 -5
  653. package/dist/translations/bho.js +0 -1
  654. package/dist/translations/bn/agent-tools.js +0 -1
  655. package/dist/translations/bn/charts.js +0 -1
  656. package/dist/translations/bn/conversation.js +0 -1
  657. package/dist/translations/bn/data.js +0 -1
  658. package/dist/translations/bn/forms.js +0 -1
  659. package/dist/translations/bn/layout.js +0 -1
  660. package/dist/translations/bn/media.js +0 -1
  661. package/dist/translations/bn/overlays.js +0 -1
  662. package/dist/translations/bn/retrieval.js +0 -1
  663. package/dist/translations/bn/shared.js +0 -1
  664. package/dist/translations/bn/utility.js +0 -1
  665. package/dist/translations/bn/viewers.js +0 -5
  666. package/dist/translations/bn.js +0 -1
  667. package/dist/translations/cs/agent-tools.js +0 -1
  668. package/dist/translations/cs/charts.js +0 -1
  669. package/dist/translations/cs/conversation.js +0 -1
  670. package/dist/translations/cs/data.js +0 -1
  671. package/dist/translations/cs/forms.js +0 -1
  672. package/dist/translations/cs/layout.js +0 -1
  673. package/dist/translations/cs/media.js +0 -1
  674. package/dist/translations/cs/overlays.js +0 -1
  675. package/dist/translations/cs/retrieval.js +0 -1
  676. package/dist/translations/cs/shared.js +0 -1
  677. package/dist/translations/cs/utility.js +0 -1
  678. package/dist/translations/cs/viewers.js +0 -5
  679. package/dist/translations/cs.js +0 -1
  680. package/dist/translations/da/agent-tools.js +0 -1
  681. package/dist/translations/da/charts.js +0 -1
  682. package/dist/translations/da/conversation.js +0 -1
  683. package/dist/translations/da/data.js +0 -1
  684. package/dist/translations/da/forms.js +0 -1
  685. package/dist/translations/da/layout.js +0 -1
  686. package/dist/translations/da/media.js +0 -1
  687. package/dist/translations/da/overlays.js +0 -1
  688. package/dist/translations/da/retrieval.js +0 -1
  689. package/dist/translations/da/shared.js +0 -1
  690. package/dist/translations/da/utility.js +0 -1
  691. package/dist/translations/da/viewers.js +0 -5
  692. package/dist/translations/da.js +0 -1
  693. package/dist/translations/de/agent-tools.js +0 -1
  694. package/dist/translations/de/charts.js +0 -1
  695. package/dist/translations/de/conversation.js +0 -1
  696. package/dist/translations/de/data.js +0 -1
  697. package/dist/translations/de/forms.js +0 -1
  698. package/dist/translations/de/layout.js +0 -1
  699. package/dist/translations/de/media.js +0 -1
  700. package/dist/translations/de/overlays.js +0 -1
  701. package/dist/translations/de/retrieval.js +0 -1
  702. package/dist/translations/de/shared.js +0 -1
  703. package/dist/translations/de/utility.js +0 -1
  704. package/dist/translations/de/viewers.js +0 -5
  705. package/dist/translations/de-CH/agent-tools.js +0 -1
  706. package/dist/translations/de-CH/charts.js +0 -1
  707. package/dist/translations/de-CH/conversation.js +0 -1
  708. package/dist/translations/de-CH/data.js +0 -1
  709. package/dist/translations/de-CH/forms.js +0 -1
  710. package/dist/translations/de-CH/layout.js +0 -1
  711. package/dist/translations/de-CH/media.js +0 -1
  712. package/dist/translations/de-CH/overlays.js +0 -1
  713. package/dist/translations/de-CH/retrieval.js +0 -1
  714. package/dist/translations/de-CH/shared.js +0 -1
  715. package/dist/translations/de-CH/utility.js +0 -1
  716. package/dist/translations/de-CH/viewers.js +0 -1
  717. package/dist/translations/de-CH.js +0 -1
  718. package/dist/translations/de.js +0 -1
  719. package/dist/translations/el/agent-tools.js +0 -1
  720. package/dist/translations/el/charts.js +0 -1
  721. package/dist/translations/el/conversation.js +0 -1
  722. package/dist/translations/el/data.js +0 -1
  723. package/dist/translations/el/forms.js +0 -1
  724. package/dist/translations/el/layout.js +0 -1
  725. package/dist/translations/el/media.js +0 -1
  726. package/dist/translations/el/overlays.js +0 -1
  727. package/dist/translations/el/retrieval.js +0 -1
  728. package/dist/translations/el/shared.js +0 -1
  729. package/dist/translations/el/utility.js +0 -1
  730. package/dist/translations/el/viewers.js +0 -5
  731. package/dist/translations/el.js +0 -1
  732. package/dist/translations/es/agent-tools.js +0 -1
  733. package/dist/translations/es/charts.js +0 -1
  734. package/dist/translations/es/conversation.js +0 -1
  735. package/dist/translations/es/data.js +0 -1
  736. package/dist/translations/es/forms.js +0 -1
  737. package/dist/translations/es/layout.js +0 -1
  738. package/dist/translations/es/media.js +0 -1
  739. package/dist/translations/es/overlays.js +0 -1
  740. package/dist/translations/es/retrieval.js +0 -1
  741. package/dist/translations/es/shared.js +0 -1
  742. package/dist/translations/es/utility.js +0 -1
  743. package/dist/translations/es/viewers.js +0 -5
  744. package/dist/translations/es.js +0 -1
  745. package/dist/translations/fa/agent-tools.js +0 -1
  746. package/dist/translations/fa/charts.js +0 -1
  747. package/dist/translations/fa/conversation.js +0 -1
  748. package/dist/translations/fa/data.js +0 -1
  749. package/dist/translations/fa/forms.js +0 -1
  750. package/dist/translations/fa/layout.js +0 -1
  751. package/dist/translations/fa/media.js +0 -1
  752. package/dist/translations/fa/overlays.js +0 -1
  753. package/dist/translations/fa/retrieval.js +0 -1
  754. package/dist/translations/fa/shared.js +0 -1
  755. package/dist/translations/fa/utility.js +0 -1
  756. package/dist/translations/fa/viewers.js +0 -5
  757. package/dist/translations/fa-AF/agent-tools.js +0 -1
  758. package/dist/translations/fa-AF/charts.js +0 -1
  759. package/dist/translations/fa-AF/conversation.js +0 -1
  760. package/dist/translations/fa-AF/data.js +0 -1
  761. package/dist/translations/fa-AF/forms.js +0 -1
  762. package/dist/translations/fa-AF/layout.js +0 -1
  763. package/dist/translations/fa-AF/media.js +0 -1
  764. package/dist/translations/fa-AF/overlays.js +0 -1
  765. package/dist/translations/fa-AF/retrieval.js +0 -1
  766. package/dist/translations/fa-AF/shared.js +0 -1
  767. package/dist/translations/fa-AF/utility.js +0 -1
  768. package/dist/translations/fa-AF/viewers.js +0 -5
  769. package/dist/translations/fa-AF.js +0 -1
  770. package/dist/translations/fa.js +0 -1
  771. package/dist/translations/fi/agent-tools.js +0 -1
  772. package/dist/translations/fi/charts.js +0 -1
  773. package/dist/translations/fi/conversation.js +0 -1
  774. package/dist/translations/fi/data.js +0 -1
  775. package/dist/translations/fi/forms.js +0 -1
  776. package/dist/translations/fi/layout.js +0 -1
  777. package/dist/translations/fi/media.js +0 -1
  778. package/dist/translations/fi/overlays.js +0 -1
  779. package/dist/translations/fi/retrieval.js +0 -1
  780. package/dist/translations/fi/shared.js +0 -1
  781. package/dist/translations/fi/utility.js +0 -1
  782. package/dist/translations/fi/viewers.js +0 -5
  783. package/dist/translations/fi.js +0 -1
  784. package/dist/translations/fr/agent-tools.js +0 -1
  785. package/dist/translations/fr/charts.js +0 -1
  786. package/dist/translations/fr/conversation.js +0 -1
  787. package/dist/translations/fr/data.js +0 -1
  788. package/dist/translations/fr/forms.js +0 -1
  789. package/dist/translations/fr/layout.js +0 -1
  790. package/dist/translations/fr/media.js +0 -1
  791. package/dist/translations/fr/overlays.js +0 -1
  792. package/dist/translations/fr/retrieval.js +0 -1
  793. package/dist/translations/fr/shared.js +0 -1
  794. package/dist/translations/fr/utility.js +0 -1
  795. package/dist/translations/fr/viewers.js +0 -5
  796. package/dist/translations/fr.js +0 -1
  797. package/dist/translations/gu/agent-tools.js +0 -1
  798. package/dist/translations/gu/charts.js +0 -1
  799. package/dist/translations/gu/conversation.js +0 -1
  800. package/dist/translations/gu/data.js +0 -1
  801. package/dist/translations/gu/forms.js +0 -1
  802. package/dist/translations/gu/layout.js +0 -1
  803. package/dist/translations/gu/media.js +0 -1
  804. package/dist/translations/gu/overlays.js +0 -1
  805. package/dist/translations/gu/retrieval.js +0 -1
  806. package/dist/translations/gu/shared.js +0 -1
  807. package/dist/translations/gu/utility.js +0 -1
  808. package/dist/translations/gu/viewers.js +0 -5
  809. package/dist/translations/gu.js +0 -1
  810. package/dist/translations/ha/agent-tools.js +0 -1
  811. package/dist/translations/ha/charts.js +0 -1
  812. package/dist/translations/ha/conversation.js +0 -1
  813. package/dist/translations/ha/data.js +0 -1
  814. package/dist/translations/ha/forms.js +0 -1
  815. package/dist/translations/ha/layout.js +0 -1
  816. package/dist/translations/ha/media.js +0 -1
  817. package/dist/translations/ha/overlays.js +0 -1
  818. package/dist/translations/ha/retrieval.js +0 -1
  819. package/dist/translations/ha/shared.js +0 -1
  820. package/dist/translations/ha/utility.js +0 -1
  821. package/dist/translations/ha/viewers.js +0 -5
  822. package/dist/translations/ha.js +0 -1
  823. package/dist/translations/he/agent-tools.js +0 -1
  824. package/dist/translations/he/charts.js +0 -1
  825. package/dist/translations/he/conversation.js +0 -1
  826. package/dist/translations/he/data.js +0 -1
  827. package/dist/translations/he/forms.js +0 -1
  828. package/dist/translations/he/layout.js +0 -1
  829. package/dist/translations/he/media.js +0 -1
  830. package/dist/translations/he/overlays.js +0 -1
  831. package/dist/translations/he/retrieval.js +0 -1
  832. package/dist/translations/he/shared.js +0 -1
  833. package/dist/translations/he/utility.js +0 -1
  834. package/dist/translations/he/viewers.js +0 -5
  835. package/dist/translations/he.js +0 -1
  836. package/dist/translations/hi/agent-tools.js +0 -1
  837. package/dist/translations/hi/charts.js +0 -1
  838. package/dist/translations/hi/conversation.js +0 -1
  839. package/dist/translations/hi/data.js +0 -1
  840. package/dist/translations/hi/forms.js +0 -1
  841. package/dist/translations/hi/layout.js +0 -1
  842. package/dist/translations/hi/media.js +0 -1
  843. package/dist/translations/hi/overlays.js +0 -1
  844. package/dist/translations/hi/retrieval.js +0 -1
  845. package/dist/translations/hi/shared.js +0 -1
  846. package/dist/translations/hi/utility.js +0 -1
  847. package/dist/translations/hi/viewers.js +0 -5
  848. package/dist/translations/hi.js +0 -1
  849. package/dist/translations/hr/agent-tools.js +0 -1
  850. package/dist/translations/hr/charts.js +0 -1
  851. package/dist/translations/hr/conversation.js +0 -1
  852. package/dist/translations/hr/data.js +0 -1
  853. package/dist/translations/hr/forms.js +0 -1
  854. package/dist/translations/hr/layout.js +0 -1
  855. package/dist/translations/hr/media.js +0 -1
  856. package/dist/translations/hr/overlays.js +0 -1
  857. package/dist/translations/hr/retrieval.js +0 -1
  858. package/dist/translations/hr/shared.js +0 -1
  859. package/dist/translations/hr/utility.js +0 -1
  860. package/dist/translations/hr/viewers.js +0 -5
  861. package/dist/translations/hr.js +0 -1
  862. package/dist/translations/hu/agent-tools.js +0 -1
  863. package/dist/translations/hu/charts.js +0 -1
  864. package/dist/translations/hu/conversation.js +0 -1
  865. package/dist/translations/hu/data.js +0 -1
  866. package/dist/translations/hu/forms.js +0 -1
  867. package/dist/translations/hu/layout.js +0 -1
  868. package/dist/translations/hu/media.js +0 -1
  869. package/dist/translations/hu/overlays.js +0 -1
  870. package/dist/translations/hu/retrieval.js +0 -1
  871. package/dist/translations/hu/shared.js +0 -1
  872. package/dist/translations/hu/utility.js +0 -1
  873. package/dist/translations/hu/viewers.js +0 -5
  874. package/dist/translations/hu.js +0 -1
  875. package/dist/translations/id/agent-tools.js +0 -1
  876. package/dist/translations/id/charts.js +0 -1
  877. package/dist/translations/id/conversation.js +0 -1
  878. package/dist/translations/id/data.js +0 -1
  879. package/dist/translations/id/forms.js +0 -1
  880. package/dist/translations/id/layout.js +0 -1
  881. package/dist/translations/id/media.js +0 -1
  882. package/dist/translations/id/overlays.js +0 -1
  883. package/dist/translations/id/retrieval.js +0 -1
  884. package/dist/translations/id/shared.js +0 -1
  885. package/dist/translations/id/utility.js +0 -1
  886. package/dist/translations/id/viewers.js +0 -5
  887. package/dist/translations/id.js +0 -1
  888. package/dist/translations/ig/agent-tools.js +0 -1
  889. package/dist/translations/ig/charts.js +0 -1
  890. package/dist/translations/ig/conversation.js +0 -1
  891. package/dist/translations/ig/data.js +0 -1
  892. package/dist/translations/ig/forms.js +0 -1
  893. package/dist/translations/ig/layout.js +0 -1
  894. package/dist/translations/ig/media.js +0 -1
  895. package/dist/translations/ig/overlays.js +0 -1
  896. package/dist/translations/ig/retrieval.js +0 -1
  897. package/dist/translations/ig/shared.js +0 -1
  898. package/dist/translations/ig/utility.js +0 -1
  899. package/dist/translations/ig/viewers.js +0 -5
  900. package/dist/translations/ig.js +0 -1
  901. package/dist/translations/it/agent-tools.js +0 -1
  902. package/dist/translations/it/charts.js +0 -1
  903. package/dist/translations/it/conversation.js +0 -1
  904. package/dist/translations/it/data.js +0 -1
  905. package/dist/translations/it/forms.js +0 -1
  906. package/dist/translations/it/layout.js +0 -1
  907. package/dist/translations/it/media.js +0 -1
  908. package/dist/translations/it/overlays.js +0 -1
  909. package/dist/translations/it/retrieval.js +0 -1
  910. package/dist/translations/it/shared.js +0 -1
  911. package/dist/translations/it/utility.js +0 -1
  912. package/dist/translations/it/viewers.js +0 -5
  913. package/dist/translations/it.js +0 -1
  914. package/dist/translations/ja/agent-tools.js +0 -1
  915. package/dist/translations/ja/charts.js +0 -1
  916. package/dist/translations/ja/conversation.js +0 -1
  917. package/dist/translations/ja/data.js +0 -1
  918. package/dist/translations/ja/forms.js +0 -1
  919. package/dist/translations/ja/layout.js +0 -1
  920. package/dist/translations/ja/media.js +0 -1
  921. package/dist/translations/ja/overlays.js +0 -1
  922. package/dist/translations/ja/retrieval.js +0 -1
  923. package/dist/translations/ja/shared.js +0 -1
  924. package/dist/translations/ja/utility.js +0 -1
  925. package/dist/translations/ja/viewers.js +0 -4
  926. package/dist/translations/ja.js +0 -1
  927. package/dist/translations/jv/agent-tools.js +0 -1
  928. package/dist/translations/jv/charts.js +0 -1
  929. package/dist/translations/jv/conversation.js +0 -1
  930. package/dist/translations/jv/data.js +0 -1
  931. package/dist/translations/jv/forms.js +0 -1
  932. package/dist/translations/jv/layout.js +0 -1
  933. package/dist/translations/jv/media.js +0 -1
  934. package/dist/translations/jv/overlays.js +0 -1
  935. package/dist/translations/jv/retrieval.js +0 -1
  936. package/dist/translations/jv/shared.js +0 -1
  937. package/dist/translations/jv/utility.js +0 -1
  938. package/dist/translations/jv/viewers.js +0 -5
  939. package/dist/translations/jv.js +0 -1
  940. package/dist/translations/kk/agent-tools.js +0 -1
  941. package/dist/translations/kk/charts.js +0 -1
  942. package/dist/translations/kk/conversation.js +0 -1
  943. package/dist/translations/kk/data.js +0 -1
  944. package/dist/translations/kk/forms.js +0 -1
  945. package/dist/translations/kk/layout.js +0 -1
  946. package/dist/translations/kk/media.js +0 -1
  947. package/dist/translations/kk/overlays.js +0 -1
  948. package/dist/translations/kk/retrieval.js +0 -1
  949. package/dist/translations/kk/shared.js +0 -1
  950. package/dist/translations/kk/utility.js +0 -1
  951. package/dist/translations/kk/viewers.js +0 -5
  952. package/dist/translations/kk.js +0 -1
  953. package/dist/translations/kn/agent-tools.js +0 -1
  954. package/dist/translations/kn/charts.js +0 -1
  955. package/dist/translations/kn/conversation.js +0 -1
  956. package/dist/translations/kn/data.js +0 -1
  957. package/dist/translations/kn/forms.js +0 -1
  958. package/dist/translations/kn/layout.js +0 -1
  959. package/dist/translations/kn/media.js +0 -1
  960. package/dist/translations/kn/overlays.js +0 -1
  961. package/dist/translations/kn/retrieval.js +0 -1
  962. package/dist/translations/kn/shared.js +0 -1
  963. package/dist/translations/kn/utility.js +0 -1
  964. package/dist/translations/kn/viewers.js +0 -5
  965. package/dist/translations/kn.js +0 -1
  966. package/dist/translations/ko/agent-tools.js +0 -1
  967. package/dist/translations/ko/charts.js +0 -1
  968. package/dist/translations/ko/conversation.js +0 -1
  969. package/dist/translations/ko/data.js +0 -1
  970. package/dist/translations/ko/forms.js +0 -1
  971. package/dist/translations/ko/layout.js +0 -1
  972. package/dist/translations/ko/media.js +0 -1
  973. package/dist/translations/ko/overlays.js +0 -1
  974. package/dist/translations/ko/retrieval.js +0 -1
  975. package/dist/translations/ko/shared.js +0 -1
  976. package/dist/translations/ko/utility.js +0 -1
  977. package/dist/translations/ko/viewers.js +0 -5
  978. package/dist/translations/ko.js +0 -1
  979. package/dist/translations/ln/agent-tools.js +0 -1
  980. package/dist/translations/ln/charts.js +0 -1
  981. package/dist/translations/ln/conversation.js +0 -1
  982. package/dist/translations/ln/data.js +0 -1
  983. package/dist/translations/ln/forms.js +0 -1
  984. package/dist/translations/ln/layout.js +0 -1
  985. package/dist/translations/ln/media.js +0 -1
  986. package/dist/translations/ln/overlays.js +0 -1
  987. package/dist/translations/ln/retrieval.js +0 -1
  988. package/dist/translations/ln/shared.js +0 -1
  989. package/dist/translations/ln/utility.js +0 -1
  990. package/dist/translations/ln/viewers.js +0 -5
  991. package/dist/translations/ln.js +0 -1
  992. package/dist/translations/ml/agent-tools.js +0 -1
  993. package/dist/translations/ml/charts.js +0 -1
  994. package/dist/translations/ml/conversation.js +0 -1
  995. package/dist/translations/ml/data.js +0 -1
  996. package/dist/translations/ml/forms.js +0 -1
  997. package/dist/translations/ml/layout.js +0 -1
  998. package/dist/translations/ml/media.js +0 -1
  999. package/dist/translations/ml/overlays.js +0 -1
  1000. package/dist/translations/ml/retrieval.js +0 -1
  1001. package/dist/translations/ml/shared.js +0 -1
  1002. package/dist/translations/ml/utility.js +0 -1
  1003. package/dist/translations/ml/viewers.js +0 -5
  1004. package/dist/translations/ml.js +0 -1
  1005. package/dist/translations/mr/agent-tools.js +0 -1
  1006. package/dist/translations/mr/charts.js +0 -1
  1007. package/dist/translations/mr/conversation.js +0 -1
  1008. package/dist/translations/mr/data.js +0 -1
  1009. package/dist/translations/mr/forms.js +0 -1
  1010. package/dist/translations/mr/layout.js +0 -1
  1011. package/dist/translations/mr/media.js +0 -1
  1012. package/dist/translations/mr/overlays.js +0 -1
  1013. package/dist/translations/mr/retrieval.js +0 -1
  1014. package/dist/translations/mr/shared.js +0 -1
  1015. package/dist/translations/mr/utility.js +0 -1
  1016. package/dist/translations/mr/viewers.js +0 -5
  1017. package/dist/translations/mr.js +0 -1
  1018. package/dist/translations/ms/agent-tools.js +0 -1
  1019. package/dist/translations/ms/charts.js +0 -1
  1020. package/dist/translations/ms/conversation.js +0 -1
  1021. package/dist/translations/ms/data.js +0 -1
  1022. package/dist/translations/ms/forms.js +0 -1
  1023. package/dist/translations/ms/layout.js +0 -1
  1024. package/dist/translations/ms/media.js +0 -1
  1025. package/dist/translations/ms/overlays.js +0 -1
  1026. package/dist/translations/ms/retrieval.js +0 -1
  1027. package/dist/translations/ms/shared.js +0 -1
  1028. package/dist/translations/ms/utility.js +0 -1
  1029. package/dist/translations/ms/viewers.js +0 -5
  1030. package/dist/translations/ms.js +0 -1
  1031. package/dist/translations/my/agent-tools.js +0 -1
  1032. package/dist/translations/my/charts.js +0 -1
  1033. package/dist/translations/my/conversation.js +0 -1
  1034. package/dist/translations/my/data.js +0 -1
  1035. package/dist/translations/my/forms.js +0 -1
  1036. package/dist/translations/my/layout.js +0 -1
  1037. package/dist/translations/my/media.js +0 -1
  1038. package/dist/translations/my/overlays.js +0 -1
  1039. package/dist/translations/my/retrieval.js +0 -1
  1040. package/dist/translations/my/shared.js +0 -1
  1041. package/dist/translations/my/utility.js +0 -1
  1042. package/dist/translations/my/viewers.js +0 -5
  1043. package/dist/translations/my.js +0 -1
  1044. package/dist/translations/nb/agent-tools.js +0 -1
  1045. package/dist/translations/nb/charts.js +0 -1
  1046. package/dist/translations/nb/conversation.js +0 -1
  1047. package/dist/translations/nb/data.js +0 -1
  1048. package/dist/translations/nb/forms.js +0 -1
  1049. package/dist/translations/nb/layout.js +0 -1
  1050. package/dist/translations/nb/media.js +0 -1
  1051. package/dist/translations/nb/overlays.js +0 -1
  1052. package/dist/translations/nb/retrieval.js +0 -1
  1053. package/dist/translations/nb/shared.js +0 -1
  1054. package/dist/translations/nb/utility.js +0 -1
  1055. package/dist/translations/nb/viewers.js +0 -5
  1056. package/dist/translations/nb.js +0 -1
  1057. package/dist/translations/ne/agent-tools.js +0 -1
  1058. package/dist/translations/ne/charts.js +0 -1
  1059. package/dist/translations/ne/conversation.js +0 -1
  1060. package/dist/translations/ne/data.js +0 -1
  1061. package/dist/translations/ne/forms.js +0 -1
  1062. package/dist/translations/ne/layout.js +0 -1
  1063. package/dist/translations/ne/media.js +0 -1
  1064. package/dist/translations/ne/overlays.js +0 -1
  1065. package/dist/translations/ne/retrieval.js +0 -1
  1066. package/dist/translations/ne/shared.js +0 -1
  1067. package/dist/translations/ne/utility.js +0 -1
  1068. package/dist/translations/ne/viewers.js +0 -5
  1069. package/dist/translations/ne.js +0 -1
  1070. package/dist/translations/nl/agent-tools.js +0 -1
  1071. package/dist/translations/nl/charts.js +0 -1
  1072. package/dist/translations/nl/conversation.js +0 -1
  1073. package/dist/translations/nl/data.js +0 -1
  1074. package/dist/translations/nl/forms.js +0 -1
  1075. package/dist/translations/nl/layout.js +0 -1
  1076. package/dist/translations/nl/media.js +0 -1
  1077. package/dist/translations/nl/overlays.js +0 -1
  1078. package/dist/translations/nl/retrieval.js +0 -1
  1079. package/dist/translations/nl/shared.js +0 -1
  1080. package/dist/translations/nl/utility.js +0 -1
  1081. package/dist/translations/nl/viewers.js +0 -5
  1082. package/dist/translations/nl.js +0 -1
  1083. package/dist/translations/nn/agent-tools.js +0 -1
  1084. package/dist/translations/nn/charts.js +0 -1
  1085. package/dist/translations/nn/conversation.js +0 -1
  1086. package/dist/translations/nn/data.js +0 -1
  1087. package/dist/translations/nn/forms.js +0 -1
  1088. package/dist/translations/nn/layout.js +0 -1
  1089. package/dist/translations/nn/media.js +0 -1
  1090. package/dist/translations/nn/overlays.js +0 -1
  1091. package/dist/translations/nn/retrieval.js +0 -1
  1092. package/dist/translations/nn/shared.js +0 -1
  1093. package/dist/translations/nn/utility.js +0 -1
  1094. package/dist/translations/nn/viewers.js +0 -5
  1095. package/dist/translations/nn.js +0 -1
  1096. package/dist/translations/om/agent-tools.js +0 -1
  1097. package/dist/translations/om/charts.js +0 -1
  1098. package/dist/translations/om/conversation.js +0 -1
  1099. package/dist/translations/om/data.js +0 -1
  1100. package/dist/translations/om/forms.js +0 -1
  1101. package/dist/translations/om/layout.js +0 -1
  1102. package/dist/translations/om/media.js +0 -1
  1103. package/dist/translations/om/overlays.js +0 -1
  1104. package/dist/translations/om/retrieval.js +0 -1
  1105. package/dist/translations/om/shared.js +0 -1
  1106. package/dist/translations/om/utility.js +0 -1
  1107. package/dist/translations/om/viewers.js +0 -5
  1108. package/dist/translations/om.js +0 -1
  1109. package/dist/translations/or/agent-tools.js +0 -1
  1110. package/dist/translations/or/charts.js +0 -1
  1111. package/dist/translations/or/conversation.js +0 -1
  1112. package/dist/translations/or/data.js +0 -1
  1113. package/dist/translations/or/forms.js +0 -1
  1114. package/dist/translations/or/layout.js +0 -1
  1115. package/dist/translations/or/media.js +0 -1
  1116. package/dist/translations/or/overlays.js +0 -1
  1117. package/dist/translations/or/retrieval.js +0 -1
  1118. package/dist/translations/or/shared.js +0 -1
  1119. package/dist/translations/or/utility.js +0 -1
  1120. package/dist/translations/or/viewers.js +0 -5
  1121. package/dist/translations/or.js +0 -1
  1122. package/dist/translations/pa/agent-tools.js +0 -1
  1123. package/dist/translations/pa/charts.js +0 -1
  1124. package/dist/translations/pa/conversation.js +0 -1
  1125. package/dist/translations/pa/data.js +0 -1
  1126. package/dist/translations/pa/forms.js +0 -1
  1127. package/dist/translations/pa/layout.js +0 -1
  1128. package/dist/translations/pa/media.js +0 -1
  1129. package/dist/translations/pa/overlays.js +0 -1
  1130. package/dist/translations/pa/retrieval.js +0 -1
  1131. package/dist/translations/pa/shared.js +0 -1
  1132. package/dist/translations/pa/utility.js +0 -1
  1133. package/dist/translations/pa/viewers.js +0 -5
  1134. package/dist/translations/pa.js +0 -1
  1135. package/dist/translations/pcm/agent-tools.js +0 -1
  1136. package/dist/translations/pcm/charts.js +0 -1
  1137. package/dist/translations/pcm/conversation.js +0 -1
  1138. package/dist/translations/pcm/data.js +0 -1
  1139. package/dist/translations/pcm/forms.js +0 -1
  1140. package/dist/translations/pcm/layout.js +0 -1
  1141. package/dist/translations/pcm/media.js +0 -1
  1142. package/dist/translations/pcm/overlays.js +0 -1
  1143. package/dist/translations/pcm/retrieval.js +0 -1
  1144. package/dist/translations/pcm/shared.js +0 -1
  1145. package/dist/translations/pcm/utility.js +0 -1
  1146. package/dist/translations/pcm/viewers.js +0 -5
  1147. package/dist/translations/pcm.js +0 -1
  1148. package/dist/translations/pl/agent-tools.js +0 -1
  1149. package/dist/translations/pl/charts.js +0 -1
  1150. package/dist/translations/pl/conversation.js +0 -1
  1151. package/dist/translations/pl/data.js +0 -1
  1152. package/dist/translations/pl/forms.js +0 -1
  1153. package/dist/translations/pl/layout.js +0 -1
  1154. package/dist/translations/pl/media.js +0 -1
  1155. package/dist/translations/pl/overlays.js +0 -1
  1156. package/dist/translations/pl/retrieval.js +0 -1
  1157. package/dist/translations/pl/shared.js +0 -1
  1158. package/dist/translations/pl/utility.js +0 -1
  1159. package/dist/translations/pl/viewers.js +0 -5
  1160. package/dist/translations/pl.js +0 -1
  1161. package/dist/translations/pnb/agent-tools.js +0 -1
  1162. package/dist/translations/pnb/charts.js +0 -1
  1163. package/dist/translations/pnb/conversation.js +0 -1
  1164. package/dist/translations/pnb/data.js +0 -1
  1165. package/dist/translations/pnb/forms.js +0 -1
  1166. package/dist/translations/pnb/layout.js +0 -1
  1167. package/dist/translations/pnb/media.js +0 -1
  1168. package/dist/translations/pnb/overlays.js +0 -1
  1169. package/dist/translations/pnb/retrieval.js +0 -1
  1170. package/dist/translations/pnb/shared.js +0 -1
  1171. package/dist/translations/pnb/utility.js +0 -1
  1172. package/dist/translations/pnb/viewers.js +0 -5
  1173. package/dist/translations/pnb.js +0 -1
  1174. package/dist/translations/ps/agent-tools.js +0 -1
  1175. package/dist/translations/ps/charts.js +0 -1
  1176. package/dist/translations/ps/conversation.js +0 -1
  1177. package/dist/translations/ps/data.js +0 -1
  1178. package/dist/translations/ps/forms.js +0 -1
  1179. package/dist/translations/ps/layout.js +0 -1
  1180. package/dist/translations/ps/media.js +0 -1
  1181. package/dist/translations/ps/overlays.js +0 -1
  1182. package/dist/translations/ps/retrieval.js +0 -1
  1183. package/dist/translations/ps/shared.js +0 -1
  1184. package/dist/translations/ps/utility.js +0 -1
  1185. package/dist/translations/ps/viewers.js +0 -5
  1186. package/dist/translations/ps.js +0 -1
  1187. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1188. package/dist/translations/pt-BR/charts.js +0 -1
  1189. package/dist/translations/pt-BR/conversation.js +0 -1
  1190. package/dist/translations/pt-BR/data.js +0 -1
  1191. package/dist/translations/pt-BR/forms.js +0 -1
  1192. package/dist/translations/pt-BR/layout.js +0 -1
  1193. package/dist/translations/pt-BR/media.js +0 -1
  1194. package/dist/translations/pt-BR/overlays.js +0 -1
  1195. package/dist/translations/pt-BR/retrieval.js +0 -1
  1196. package/dist/translations/pt-BR/shared.js +0 -1
  1197. package/dist/translations/pt-BR/utility.js +0 -1
  1198. package/dist/translations/pt-BR/viewers.js +0 -5
  1199. package/dist/translations/pt-BR.js +0 -1
  1200. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1201. package/dist/translations/pt-PT/charts.js +0 -1
  1202. package/dist/translations/pt-PT/conversation.js +0 -1
  1203. package/dist/translations/pt-PT/data.js +0 -1
  1204. package/dist/translations/pt-PT/forms.js +0 -1
  1205. package/dist/translations/pt-PT/layout.js +0 -1
  1206. package/dist/translations/pt-PT/media.js +0 -1
  1207. package/dist/translations/pt-PT/overlays.js +0 -1
  1208. package/dist/translations/pt-PT/retrieval.js +0 -1
  1209. package/dist/translations/pt-PT/shared.js +0 -1
  1210. package/dist/translations/pt-PT/utility.js +0 -1
  1211. package/dist/translations/pt-PT/viewers.js +0 -5
  1212. package/dist/translations/pt-PT.js +0 -1
  1213. package/dist/translations/ro/agent-tools.js +0 -1
  1214. package/dist/translations/ro/charts.js +0 -1
  1215. package/dist/translations/ro/conversation.js +0 -1
  1216. package/dist/translations/ro/data.js +0 -1
  1217. package/dist/translations/ro/forms.js +0 -1
  1218. package/dist/translations/ro/layout.js +0 -1
  1219. package/dist/translations/ro/media.js +0 -1
  1220. package/dist/translations/ro/overlays.js +0 -1
  1221. package/dist/translations/ro/retrieval.js +0 -1
  1222. package/dist/translations/ro/shared.js +0 -1
  1223. package/dist/translations/ro/utility.js +0 -1
  1224. package/dist/translations/ro/viewers.js +0 -5
  1225. package/dist/translations/ro.js +0 -1
  1226. package/dist/translations/ru/agent-tools.js +0 -1
  1227. package/dist/translations/ru/charts.js +0 -1
  1228. package/dist/translations/ru/conversation.js +0 -1
  1229. package/dist/translations/ru/data.js +0 -1
  1230. package/dist/translations/ru/forms.js +0 -1
  1231. package/dist/translations/ru/layout.js +0 -1
  1232. package/dist/translations/ru/media.js +0 -1
  1233. package/dist/translations/ru/overlays.js +0 -1
  1234. package/dist/translations/ru/retrieval.js +0 -1
  1235. package/dist/translations/ru/shared.js +0 -1
  1236. package/dist/translations/ru/utility.js +0 -1
  1237. package/dist/translations/ru/viewers.js +0 -5
  1238. package/dist/translations/ru.js +0 -1
  1239. package/dist/translations/sd/agent-tools.js +0 -1
  1240. package/dist/translations/sd/charts.js +0 -1
  1241. package/dist/translations/sd/conversation.js +0 -1
  1242. package/dist/translations/sd/data.js +0 -1
  1243. package/dist/translations/sd/forms.js +0 -1
  1244. package/dist/translations/sd/layout.js +0 -1
  1245. package/dist/translations/sd/media.js +0 -1
  1246. package/dist/translations/sd/overlays.js +0 -1
  1247. package/dist/translations/sd/retrieval.js +0 -1
  1248. package/dist/translations/sd/shared.js +0 -1
  1249. package/dist/translations/sd/utility.js +0 -1
  1250. package/dist/translations/sd/viewers.js +0 -5
  1251. package/dist/translations/sd.js +0 -1
  1252. package/dist/translations/sl/agent-tools.js +0 -1
  1253. package/dist/translations/sl/charts.js +0 -1
  1254. package/dist/translations/sl/conversation.js +0 -1
  1255. package/dist/translations/sl/data.js +0 -1
  1256. package/dist/translations/sl/forms.js +0 -1
  1257. package/dist/translations/sl/layout.js +0 -1
  1258. package/dist/translations/sl/media.js +0 -1
  1259. package/dist/translations/sl/overlays.js +0 -1
  1260. package/dist/translations/sl/retrieval.js +0 -1
  1261. package/dist/translations/sl/shared.js +0 -1
  1262. package/dist/translations/sl/utility.js +0 -1
  1263. package/dist/translations/sl/viewers.js +0 -5
  1264. package/dist/translations/sl.js +0 -1
  1265. package/dist/translations/su/agent-tools.js +0 -1
  1266. package/dist/translations/su/charts.js +0 -1
  1267. package/dist/translations/su/conversation.js +0 -1
  1268. package/dist/translations/su/data.js +0 -1
  1269. package/dist/translations/su/forms.js +0 -1
  1270. package/dist/translations/su/layout.js +0 -1
  1271. package/dist/translations/su/media.js +0 -1
  1272. package/dist/translations/su/overlays.js +0 -1
  1273. package/dist/translations/su/retrieval.js +0 -1
  1274. package/dist/translations/su/shared.js +0 -1
  1275. package/dist/translations/su/utility.js +0 -1
  1276. package/dist/translations/su/viewers.js +0 -5
  1277. package/dist/translations/su.js +0 -1
  1278. package/dist/translations/sv/agent-tools.js +0 -1
  1279. package/dist/translations/sv/charts.js +0 -1
  1280. package/dist/translations/sv/conversation.js +0 -1
  1281. package/dist/translations/sv/data.js +0 -1
  1282. package/dist/translations/sv/forms.js +0 -1
  1283. package/dist/translations/sv/layout.js +0 -1
  1284. package/dist/translations/sv/media.js +0 -1
  1285. package/dist/translations/sv/overlays.js +0 -1
  1286. package/dist/translations/sv/retrieval.js +0 -1
  1287. package/dist/translations/sv/shared.js +0 -1
  1288. package/dist/translations/sv/utility.js +0 -1
  1289. package/dist/translations/sv/viewers.js +0 -5
  1290. package/dist/translations/sv.js +0 -1
  1291. package/dist/translations/sw/agent-tools.js +0 -1
  1292. package/dist/translations/sw/charts.js +0 -1
  1293. package/dist/translations/sw/conversation.js +0 -1
  1294. package/dist/translations/sw/data.js +0 -1
  1295. package/dist/translations/sw/forms.js +0 -1
  1296. package/dist/translations/sw/layout.js +0 -1
  1297. package/dist/translations/sw/media.js +0 -1
  1298. package/dist/translations/sw/overlays.js +0 -1
  1299. package/dist/translations/sw/retrieval.js +0 -1
  1300. package/dist/translations/sw/shared.js +0 -1
  1301. package/dist/translations/sw/utility.js +0 -1
  1302. package/dist/translations/sw/viewers.js +0 -5
  1303. package/dist/translations/sw.js +0 -1
  1304. package/dist/translations/ta/agent-tools.js +0 -1
  1305. package/dist/translations/ta/charts.js +0 -1
  1306. package/dist/translations/ta/conversation.js +0 -1
  1307. package/dist/translations/ta/data.js +0 -1
  1308. package/dist/translations/ta/forms.js +0 -1
  1309. package/dist/translations/ta/layout.js +0 -1
  1310. package/dist/translations/ta/media.js +0 -1
  1311. package/dist/translations/ta/overlays.js +0 -1
  1312. package/dist/translations/ta/retrieval.js +0 -1
  1313. package/dist/translations/ta/shared.js +0 -1
  1314. package/dist/translations/ta/utility.js +0 -1
  1315. package/dist/translations/ta/viewers.js +0 -5
  1316. package/dist/translations/ta.js +0 -1
  1317. package/dist/translations/te/agent-tools.js +0 -1
  1318. package/dist/translations/te/charts.js +0 -1
  1319. package/dist/translations/te/conversation.js +0 -1
  1320. package/dist/translations/te/data.js +0 -1
  1321. package/dist/translations/te/forms.js +0 -1
  1322. package/dist/translations/te/layout.js +0 -1
  1323. package/dist/translations/te/media.js +0 -1
  1324. package/dist/translations/te/overlays.js +0 -1
  1325. package/dist/translations/te/retrieval.js +0 -1
  1326. package/dist/translations/te/shared.js +0 -1
  1327. package/dist/translations/te/utility.js +0 -1
  1328. package/dist/translations/te/viewers.js +0 -5
  1329. package/dist/translations/te.js +0 -1
  1330. package/dist/translations/th/agent-tools.js +0 -1
  1331. package/dist/translations/th/charts.js +0 -1
  1332. package/dist/translations/th/conversation.js +0 -1
  1333. package/dist/translations/th/data.js +0 -1
  1334. package/dist/translations/th/forms.js +0 -1
  1335. package/dist/translations/th/layout.js +0 -1
  1336. package/dist/translations/th/media.js +0 -1
  1337. package/dist/translations/th/overlays.js +0 -1
  1338. package/dist/translations/th/retrieval.js +0 -1
  1339. package/dist/translations/th/shared.js +0 -1
  1340. package/dist/translations/th/utility.js +0 -1
  1341. package/dist/translations/th/viewers.js +0 -5
  1342. package/dist/translations/th.js +0 -1
  1343. package/dist/translations/tl/agent-tools.js +0 -1
  1344. package/dist/translations/tl/charts.js +0 -1
  1345. package/dist/translations/tl/conversation.js +0 -1
  1346. package/dist/translations/tl/data.js +0 -1
  1347. package/dist/translations/tl/forms.js +0 -1
  1348. package/dist/translations/tl/layout.js +0 -1
  1349. package/dist/translations/tl/media.js +0 -1
  1350. package/dist/translations/tl/overlays.js +0 -1
  1351. package/dist/translations/tl/retrieval.js +0 -1
  1352. package/dist/translations/tl/shared.js +0 -1
  1353. package/dist/translations/tl/utility.js +0 -1
  1354. package/dist/translations/tl/viewers.js +0 -5
  1355. package/dist/translations/tl.js +0 -1
  1356. package/dist/translations/tr/agent-tools.js +0 -1
  1357. package/dist/translations/tr/charts.js +0 -1
  1358. package/dist/translations/tr/conversation.js +0 -1
  1359. package/dist/translations/tr/data.js +0 -1
  1360. package/dist/translations/tr/forms.js +0 -1
  1361. package/dist/translations/tr/layout.js +0 -1
  1362. package/dist/translations/tr/media.js +0 -1
  1363. package/dist/translations/tr/overlays.js +0 -1
  1364. package/dist/translations/tr/retrieval.js +0 -1
  1365. package/dist/translations/tr/shared.js +0 -1
  1366. package/dist/translations/tr/utility.js +0 -1
  1367. package/dist/translations/tr/viewers.js +0 -5
  1368. package/dist/translations/tr.js +0 -1
  1369. package/dist/translations/uk/agent-tools.js +0 -1
  1370. package/dist/translations/uk/charts.js +0 -1
  1371. package/dist/translations/uk/conversation.js +0 -1
  1372. package/dist/translations/uk/data.js +0 -1
  1373. package/dist/translations/uk/forms.js +0 -1
  1374. package/dist/translations/uk/layout.js +0 -1
  1375. package/dist/translations/uk/media.js +0 -1
  1376. package/dist/translations/uk/overlays.js +0 -1
  1377. package/dist/translations/uk/retrieval.js +0 -1
  1378. package/dist/translations/uk/shared.js +0 -1
  1379. package/dist/translations/uk/utility.js +0 -1
  1380. package/dist/translations/uk/viewers.js +0 -5
  1381. package/dist/translations/uk.js +0 -1
  1382. package/dist/translations/ur/agent-tools.js +0 -1
  1383. package/dist/translations/ur/charts.js +0 -1
  1384. package/dist/translations/ur/conversation.js +0 -1
  1385. package/dist/translations/ur/data.js +0 -1
  1386. package/dist/translations/ur/forms.js +0 -1
  1387. package/dist/translations/ur/layout.js +0 -1
  1388. package/dist/translations/ur/media.js +0 -1
  1389. package/dist/translations/ur/overlays.js +0 -1
  1390. package/dist/translations/ur/retrieval.js +0 -1
  1391. package/dist/translations/ur/shared.js +0 -1
  1392. package/dist/translations/ur/utility.js +0 -1
  1393. package/dist/translations/ur/viewers.js +0 -5
  1394. package/dist/translations/ur.js +0 -1
  1395. package/dist/translations/uz/agent-tools.js +0 -1
  1396. package/dist/translations/uz/charts.js +0 -1
  1397. package/dist/translations/uz/conversation.js +0 -1
  1398. package/dist/translations/uz/data.js +0 -1
  1399. package/dist/translations/uz/forms.js +0 -1
  1400. package/dist/translations/uz/layout.js +0 -1
  1401. package/dist/translations/uz/media.js +0 -1
  1402. package/dist/translations/uz/overlays.js +0 -1
  1403. package/dist/translations/uz/retrieval.js +0 -1
  1404. package/dist/translations/uz/shared.js +0 -1
  1405. package/dist/translations/uz/utility.js +0 -1
  1406. package/dist/translations/uz/viewers.js +0 -5
  1407. package/dist/translations/uz.js +0 -1
  1408. package/dist/translations/vi/agent-tools.js +0 -1
  1409. package/dist/translations/vi/charts.js +0 -1
  1410. package/dist/translations/vi/conversation.js +0 -1
  1411. package/dist/translations/vi/data.js +0 -1
  1412. package/dist/translations/vi/forms.js +0 -1
  1413. package/dist/translations/vi/layout.js +0 -1
  1414. package/dist/translations/vi/media.js +0 -1
  1415. package/dist/translations/vi/overlays.js +0 -1
  1416. package/dist/translations/vi/retrieval.js +0 -1
  1417. package/dist/translations/vi/shared.js +0 -1
  1418. package/dist/translations/vi/utility.js +0 -1
  1419. package/dist/translations/vi/viewers.js +0 -5
  1420. package/dist/translations/vi.js +0 -1
  1421. package/dist/translations/yo/agent-tools.js +0 -1
  1422. package/dist/translations/yo/charts.js +0 -1
  1423. package/dist/translations/yo/conversation.js +0 -1
  1424. package/dist/translations/yo/data.js +0 -1
  1425. package/dist/translations/yo/forms.js +0 -1
  1426. package/dist/translations/yo/layout.js +0 -1
  1427. package/dist/translations/yo/media.js +0 -1
  1428. package/dist/translations/yo/overlays.js +0 -1
  1429. package/dist/translations/yo/retrieval.js +0 -1
  1430. package/dist/translations/yo/shared.js +0 -1
  1431. package/dist/translations/yo/utility.js +0 -1
  1432. package/dist/translations/yo/viewers.js +0 -5
  1433. package/dist/translations/yo.js +0 -1
  1434. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1435. package/dist/translations/zh-CN/charts.js +0 -1
  1436. package/dist/translations/zh-CN/conversation.js +0 -1
  1437. package/dist/translations/zh-CN/data.js +0 -1
  1438. package/dist/translations/zh-CN/forms.js +0 -1
  1439. package/dist/translations/zh-CN/layout.js +0 -1
  1440. package/dist/translations/zh-CN/media.js +0 -1
  1441. package/dist/translations/zh-CN/overlays.js +0 -1
  1442. package/dist/translations/zh-CN/retrieval.js +0 -1
  1443. package/dist/translations/zh-CN/shared.js +0 -1
  1444. package/dist/translations/zh-CN/utility.js +0 -1
  1445. package/dist/translations/zh-CN/viewers.js +0 -5
  1446. package/dist/translations/zh-CN.js +0 -1
  1447. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1448. package/dist/translations/zh-TW/charts.js +0 -1
  1449. package/dist/translations/zh-TW/conversation.js +0 -1
  1450. package/dist/translations/zh-TW/data.js +0 -1
  1451. package/dist/translations/zh-TW/forms.js +0 -1
  1452. package/dist/translations/zh-TW/layout.js +0 -1
  1453. package/dist/translations/zh-TW/media.js +0 -1
  1454. package/dist/translations/zh-TW/overlays.js +0 -1
  1455. package/dist/translations/zh-TW/retrieval.js +0 -1
  1456. package/dist/translations/zh-TW/shared.js +0 -1
  1457. package/dist/translations/zh-TW/utility.js +0 -1
  1458. package/dist/translations/zh-TW/viewers.js +0 -5
  1459. package/dist/translations/zh-TW.js +0 -1
  1460. package/dist/translations/zu/agent-tools.js +0 -1
  1461. package/dist/translations/zu/charts.js +0 -1
  1462. package/dist/translations/zu/conversation.js +0 -1
  1463. package/dist/translations/zu/data.js +0 -1
  1464. package/dist/translations/zu/forms.js +0 -1
  1465. package/dist/translations/zu/layout.js +0 -1
  1466. package/dist/translations/zu/media.js +0 -1
  1467. package/dist/translations/zu/overlays.js +0 -1
  1468. package/dist/translations/zu/retrieval.js +0 -1
  1469. package/dist/translations/zu/shared.js +0 -1
  1470. package/dist/translations/zu/utility.js +0 -1
  1471. package/dist/translations/zu/viewers.js +0 -5
  1472. package/dist/translations/zu.js +0 -1
  1473. package/vscode-css-data.json +0 -1
  1474. package/vscode-html-data.json +0 -1
  1475. package/web-types.json +0 -1
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{emitValueEvents}from"../../../internal/value-events.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{repeat}from"lit/directives/repeat.js";import{live}from"lit/directives/live.js";import{LyraElement}from"../../../internal/lyra-element.js";import{tag}from"../../../internal/prefix.js";import{nextId}from"../../../internal/a11y.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./rubric-form.styles.js";import{agentActionButtonStyles}from"../../agent-tools/agent-action-button.styles.js";import"../../layout/segmented/segmented.class.js";import"../slider/slider.class.js";import"../select/select.class.js";import"../combobox/option.class.js";import"../checkbox/checkbox.class.js";import"../checkbox-group/checkbox-group.class.js";import"../textarea/textarea.class.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_noData,LYRA_DEFAULT_rubricSkip,LYRA_DEFAULT_rubricSubmit,LYRA_DEFAULT_rubricSubmitAndNext,LYRA_DEFAULT_unsupportedFieldType}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();const EMPTY_KEYS=[],EMPTY_VALUE={},MAX_RUBRIC_COLLECTION_ENTRIES=1e4;function cloneRubricValue(value){return Object.freeze(Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,Array.isArray(entry)?Object.freeze([...entry]):entry])))}function projectRubricStringArray(value){try{if(!Array.isArray(value))return;const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return;const values=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const entry=getOwnDataDescriptor(value,String(index));entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR||typeof entry.value=="string"&&values.push(entry.value)}return Object.freeze(values)}catch{return}}function projectRubricOptions(value){try{if(!Array.isArray(value))return Object.freeze([]);const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return Object.freeze([]);const options=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const candidate=getOwnDataDescriptor(value,String(index));if(candidate===MISSING_OWN_DATA_DESCRIPTOR||candidate===UNSAFE_OWN_DATA_DESCRIPTOR||candidate.value===null||typeof candidate.value!="object"||Array.isArray(candidate.value))continue;const optionValue=getOwnDataDescriptor(candidate.value,"value"),label=getOwnDataDescriptor(candidate.value,"label"),description=getOwnDataDescriptor(candidate.value,"description"),icon=getOwnDataDescriptor(candidate.value,"icon");if(optionValue===MISSING_OWN_DATA_DESCRIPTOR||optionValue===UNSAFE_OWN_DATA_DESCRIPTOR||typeof optionValue.value!="string")continue;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof label.value=="string"?label.value:void 0,descriptionValue=description===MISSING_OWN_DATA_DESCRIPTOR||description===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof description.value=="string"?description.value:void 0,iconValue=icon===MISSING_OWN_DATA_DESCRIPTOR||icon===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:icon.value;options.push(Object.freeze({value:optionValue.value,...labelValue===void 0?{}:{label:labelValue},...descriptionValue===void 0?{}:{description:descriptionValue},...iconValue===void 0?{}:{icon:iconValue}}))}return Object.freeze(options)}catch{return Object.freeze([])}}function projectRubricKey(candidate){try{if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))return;const key=getOwnDataDescriptor(candidate,"key"),type=getOwnDataDescriptor(candidate,"type"),label=getOwnDataDescriptor(candidate,"label"),description=getOwnDataDescriptor(candidate,"description"),required=getOwnDataDescriptor(candidate,"required");if(key===MISSING_OWN_DATA_DESCRIPTOR||key===UNSAFE_OWN_DATA_DESCRIPTOR||type===UNSAFE_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR||description===UNSAFE_OWN_DATA_DESCRIPTOR||required===UNSAFE_OWN_DATA_DESCRIPTOR||typeof key.value!="string"||key.value.trim().length===0)return;const typeValue=type===MISSING_OWN_DATA_DESCRIPTOR?"":type.value;if(typeof typeValue!="string")return;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR?void 0:label.value,descriptionValue=description===MISSING_OWN_DATA_DESCRIPTOR?void 0:description.value,requiredValue=required===MISSING_OWN_DATA_DESCRIPTOR?void 0:required.value,common={key:key.value,...typeof labelValue=="string"?{label:labelValue}:{},...typeof descriptionValue=="string"?{description:descriptionValue}:{},...typeof requiredValue=="boolean"?{required:requiredValue}:{}};if(typeValue==="score"){const min=getOwnDataDescriptor(candidate,"min"),max=getOwnDataDescriptor(candidate,"max"),step=getOwnDataDescriptor(candidate,"step");return min===UNSAFE_OWN_DATA_DESCRIPTOR||max===UNSAFE_OWN_DATA_DESCRIPTOR||step===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"score",...min!==MISSING_OWN_DATA_DESCRIPTOR&&typeof min.value=="number"?{min:min.value}:{},...max!==MISSING_OWN_DATA_DESCRIPTOR&&typeof max.value=="number"?{max:max.value}:{},...step!==MISSING_OWN_DATA_DESCRIPTOR&&typeof step.value=="number"?{step:step.value}:{}})}if(typeValue==="category"){const options=getOwnDataDescriptor(candidate,"options"),multiple=getOwnDataDescriptor(candidate,"multiple");return options===UNSAFE_OWN_DATA_DESCRIPTOR||multiple===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"category",options:options===MISSING_OWN_DATA_DESCRIPTOR?Object.freeze([]):projectRubricOptions(options.value),...multiple!==MISSING_OWN_DATA_DESCRIPTOR&&typeof multiple.value=="boolean"?{multiple:multiple.value}:{}})}if(typeValue==="comment"){const placeholder=getOwnDataDescriptor(candidate,"placeholder");return placeholder===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"comment",...placeholder!==MISSING_OWN_DATA_DESCRIPTOR&&typeof placeholder.value=="string"?{placeholder:placeholder.value}:{}})}return Object.freeze({...common,type:typeValue})}catch{return}}function normalizeRubricKeys(next){try{if(!Array.isArray(next))return EMPTY_KEYS;const length=getOwnDataDescriptor(next,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return EMPTY_KEYS;const seen=new Set,normalized=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const candidate=getOwnDataDescriptor(next,String(index));if(candidate===MISSING_OWN_DATA_DESCRIPTOR||candidate===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const key=projectRubricKey(candidate.value);!key||seen.has(key.key)||(seen.add(key.key),normalized.push(key))}return Object.freeze(normalized)}catch{return EMPTY_KEYS}}function scoreDomain(key){const min=Number.isFinite(key.min)?key.min:0,rawMax=Number.isFinite(key.max)?key.max:5,max=Math.max(min,rawMax),step=Number.isFinite(key.step)&&key.step>0?key.step:1;return{min,max,step}}function isSegmentedScoreKey(key){if(key.step!==void 0&&(!Number.isFinite(key.step)||key.step<=0)||Number.isFinite(key.min)&&Number.isFinite(key.max)&&key.max<key.min)return!1;const{min,max,step}=scoreDomain(key);if(!Number.isInteger(min)||!Number.isInteger(max)||!Number.isInteger(step))return!1;const count=(max-min)/step;return Number.isInteger(count)&&count>=0&&count<=10}function canonicalScore(value,key){if(typeof value!="number"||!Number.isFinite(value))return;const{min,max,step}=scoreDomain(key),clamped=Math.min(max,Math.max(min,value)),snapped=Math.min(max,Math.max(min,min+Math.round((clamped-min)/step)*step));return Number(snapped.toPrecision(15))}function normalizeRubricValue(value,keys){const source=value!==null&&typeof value=="object"&&!Array.isArray(value)?value:EMPTY_VALUE,normalized={};for(const key of keys){const descriptor=getOwnDataDescriptor(source,key.key);if(descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const hasEntry=descriptor!==MISSING_OWN_DATA_DESCRIPTOR,entry=descriptor===MISSING_OWN_DATA_DESCRIPTOR?void 0:descriptor.value;if(key.type==="score"){const{min,max}=scoreDomain(key),score=canonicalScore(hasEntry?entry:isSegmentedScoreKey(key)?void 0:min+(max-min)/2,key);score!==void 0&&(normalized[key.key]=score)}else if(key.type==="category"){if(!hasEntry)continue;const allowed=(key.options??[]).map(option=>option.value);if(key.multiple){const entries=projectRubricStringArray(entry);if(!entries)continue;const remaining=new Map;for(const option of allowed)remaining.set(option,(remaining.get(option)??0)+1);const selected=[];for(const candidate of entries){const count=remaining.get(candidate)??0;count<=0||(selected.push(candidate),remaining.set(candidate,count-1))}normalized[key.key]=selected}else typeof entry=="string"&&entry!==""&&allowed.includes(entry)&&(normalized[key.key]=entry)}else key.type==="comment"&&hasEntry&&typeof entry=="string"&&(normalized[key.key]=entry)}return normalized}class LyraRubricForm extends LyraElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,noData:LYRA_DEFAULT_noData,rubricSkip:LYRA_DEFAULT_rubricSkip,rubricSubmit:LYRA_DEFAULT_rubricSubmit,rubricSubmitAndNext:LYRA_DEFAULT_rubricSubmitAndNext,unsupportedFieldType:LYRA_DEFAULT_unsupportedFieldType}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,agentActionButtonStyles,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},keys:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:!1,noAccessor:!0},itemId:{attribute:"item-id",reflect:!0,noAccessor:!0},hasNext:{type:Boolean,attribute:"has-next",noAccessor:!0},skippable:{type:Boolean,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}get hasLabelSlot(){return this.slotPresence.has("label")}get hasHintSlot(){return this.slotPresence.has("hint")}get hasErrorSlot(){return this.slotPresence.has("error")}constructor(){super(),this.label="",this.hint="",this.errorText="",this.withLabel=!1,this.withHint=!1,this._errors={},this.touchedFields=new Set,this.slotPresence=new SlotPresenceController(this),this.baseId=nextId("rubric-form"),this.aggregateLabelId=`${this.baseId}-label`,this.aggregateHintId=`${this.baseId}-hint`,this.aggregateErrorId=`${this.baseId}-error`,this._fieldsetDisabled=!1,this._name="",this._keys=EMPTY_KEYS,this._value=EMPTY_VALUE,this._defaultValue=EMPTY_VALUE,this._rawValue=EMPTY_VALUE,this._rawDefaultValue=EMPTY_VALUE,this._valueDirty=!1,this._itemId="",this._hasNext=!1,this._skippable=!1,this._disabled=!1,this.pendingFocusFirst=!1,this.markInteracted=()=>{Object.keys(this._errors).length!==0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)]),this.syncCustomStates())},this.onFormKeyDown=e=>{e.key==="Enter"&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.submit())},this.onValueCommit=event=>{event.stopPropagation(),this.effectiveDisabled||emitValueEvents(this,"change",Object.freeze({value:cloneRubricValue(this._value)}),detail=>this.emit("lr-change",detail))},this.stopChildEvent=event=>{event.stopPropagation()},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.addEventListener("keydown",this.onFormKeyDown),this.syncFormState()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}get keys(){return this._keys}set keys(next){if(next===this._boundKeys)return;this._boundKeys=next;const old=this._keys,recoverFromRaw=old.length===0;this._keys=normalizeRubricKeys(next??EMPTY_KEYS);const oldDefault=this._defaultValue,oldValue=this._value;this._defaultValue=normalizeRubricValue(recoverFromRaw?this._rawDefaultValue:this._defaultValue,this._keys),this._value=this._valueDirty?normalizeRubricValue(recoverFromRaw?this._rawValue:this._value,this._keys):cloneRubricValue(this._defaultValue),this.syncFormState(),this.requestUpdate("keys",old),this.requestUpdate("defaultValue",oldDefault),this.requestUpdate("value",oldValue)}get value(){return cloneRubricValue(this._value)}set value(next){next!==this._boundValue&&(this._boundValue=next,this.setLiveValue(next,!0))}get defaultValue(){return cloneRubricValue(this._defaultValue)}set defaultValue(next){if(next===this._rawDefaultValue)return;const old=this._defaultValue;this._rawDefaultValue=next??EMPTY_VALUE,this._defaultValue=normalizeRubricValue(this._rawDefaultValue,this._keys),this._valueDirty||this.setLiveValue(this._defaultValue,!1),this.requestUpdate("defaultValue",old)}setLiveValue(next,dirty){const old=this._value;this._rawValue=next??EMPTY_VALUE,this._value=normalizeRubricValue(this._rawValue,this._keys),this._valueDirty=dirty,this.syncFormState(),this.requestUpdate("value",old)}get itemId(){return this._itemId}set itemId(next){const old=this._itemId;this._itemId=next??"",old!==this._itemId&&(this.touchedFields=new Set,this.syncCustomStates(),this.hasUpdated&&(this.pendingFocusFirst=!0)),this._itemId?this.setAttribute("item-id",this._itemId):this.removeAttribute("item-id"),this.requestUpdate("itemId",old)}get hasNext(){return this._hasNext}set hasNext(next){const old=this._hasNext;this._hasNext=!!next,this.toggleAttribute("has-next",this._hasNext),this.requestUpdate("hasNext",old)}get skippable(){return this._skippable}set skippable(next){const old=this._skippable;this._skippable=!!next,this.requestUpdate("skippable",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this.validityController&&this.syncFormState(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get errors(){return this.publicValidityErrors()}publicValidityErrors(){const errors={...this._errors};return this.willValidate&&this.validityController.customValidityMessage&&(errors.base=this.validationMessage),Object.freeze(errors)}publishValiditySnapshot(){if(!this.isConnected)return;const valid=!this.willValidate||this.validity.valid,errors=valid?Object.freeze({}):this.publicValidityErrors(),key=JSON.stringify({valid,errors});key!==this.lastValidityKey&&(this.lastValidityKey=key,this.emit("lr-validity-change",Object.freeze({valid,errors})))}fieldElement(key){const root=this.renderRoot,ownerCss=this.ownerDocument.defaultView?.CSS;if(typeof ownerCss?.escape=="function")try{const candidate=root.querySelector(`[part="field"][data-key="${ownerCss.escape(key)}"]`);if(candidate?.getAttribute("data-key")===key)return candidate}catch{}return Array.from(root.querySelectorAll('[part="field"][data-key]')).find(candidate=>candidate.getAttribute("data-key")===key)??null}[VALIDITY_ANCHOR](){const firstInvalidKey=Object.keys(this._errors)[0];return!firstInvalidKey||!this.renderRoot?void 0:this.fieldElement(firstInvalidKey)?.querySelector(".control")??void 0}isSegmentedScore(k){return isSegmentedScoreKey(k)}scoreValues(k){if(!this.isSegmentedScore(k))return[];const{min,max,step}=scoreDomain(k),count=Math.round((max-min)/step);return Array.from({length:count+1},(_,index)=>index===count?max:min+index*step)}computeValidation(){const errors={},flags={};for(const k of this._keys){if(k.type!=="score"&&k.type!=="category"&&k.type!=="comment"){const unsupported=k;errors[unsupported.key]=this.localize("unsupportedFieldType",void 0,{type:unsupported.type}),flags.customError=!0;continue}if(!k.required)continue;const v=this._value[k.key];(k.type==="category"&&k.multiple?Array.isArray(v)&&v.length>0:v!==void 0&&v!=="")||(errors[k.key]=this.localize("fieldRequired"),flags.valueMissing=!0)}return{errors,flags}}syncFormState(){const{errors,flags}=this.computeValidation();this._errors=errors;let formValue=null;try{formValue=JSON.stringify(this._value)}catch{formValue=null}if(this.internals.setFormValue(formValue,formValue),this.barredFromValidation||Object.keys(flags).length===0)this.validityController.setValidity({});else{const message=Object.values(errors)[0]??"";this.validityController.setValidity(flags,message)}this.syncCustomStates(),this.publishValiditySnapshot()}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncCustomStates(){syncValidityStates(this.internals,{required:this._keys.some(key=>!!key.required),hasInteracted:this.touchedFields.size>0,barred:this.barredFromValidation})}checkValidity(){return this.validityController.checkValidity(()=>this.syncFormState())}reportValidity(){return this.validityController.syncConstraints(),this.syncFormState(),Object.keys(this._errors).length>0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)]),this.syncCustomStates()),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncCustomStates(),this.publishValiditySnapshot(),this.requestUpdate()}formResetCallback(){this.setLiveValue(this._defaultValue,!1),this.touchedFields=new Set,this.syncCustomStates()}formStateRestoreCallback(state2,_mode){let restored={};if(typeof state2=="string")try{const parsed=JSON.parse(state2);parsed!==null&&typeof parsed=="object"&&!Array.isArray(parsed)&&(restored=parsed)}catch{}this.setLiveValue(restored,!0)}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(this.syncFormState(),this.requestUpdate())}setFieldValue(key,val,committed=!0){if(this.effectiveDisabled)return;this.setLiveValue({...this._value,[key]:val},!0);const detail=Object.freeze({value:cloneRubricValue(this._value)});emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),committed&&emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2))}markTouched(key){this.effectiveDisabled||this.touchedFields.has(key)||(this.touchedFields=new Set(this.touchedFields).add(key),this.syncCustomStates())}submit(){this.effectiveDisabled||this.reportValidity()&&this.emit("lr-submit",Object.freeze({value:cloneRubricValue(this._value),itemId:this.itemId}))}skip(){this.effectiveDisabled||this.emit("lr-skip",{itemId:this.itemId})}focusFirstControl(options){const firstKey=this._keys[0];if(!firstKey)return;const control=this.fieldElement(firstKey.key)?.querySelector(".control");control&&(firstKey.type==="score"&&this.isSegmentedScore(firstKey)?control.shadowRoot?.querySelector('[part="segment"][tabindex="0"]')?.focus(options):firstKey.type==="score"?control.shadowRoot?.querySelector('[part="thumb"]')?.focus(options):firstKey.type==="category"&&firstKey.multiple?control.querySelector(tag("checkbox"))?.focus(options):control.focus(options))}focus(options){this.effectiveDisabled||this.focusFirstControl(options)}click(){this.effectiveDisabled||this.focusFirstControl()}syncExternalDescription(){const target=this.isConnected?this.renderRoot.querySelector('[part="base"][role="group"]'):null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,target,"aria-describedby")}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription()}disconnectedCallback(){this.releaseExternalDescription(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription()}updated(changed){super.updated(changed),this.syncExternalDescription(),this.publishValiditySnapshot(),this.pendingFocusFirst&&(this.pendingFocusFirst=!1,this.focusFirstControl())}renderScoreControl(k,fieldId,current,hasError){const{min,max,step}=scoreDomain(k),disabled=this.effectiveDisabled,accessibleLabel=[k.label??k.key,k.description,hasError?this._errors[k.key]:void 0].filter(value=>!!value).join(". ");if(this.isSegmentedScore(k)){const numberFormat=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:20}),items=this.scoreValues(k).map(score=>({value:String(score),label:numberFormat.format(score),disabled})),value=typeof current=="number"?String(current):"";return html`<lr-segmented
1
+ import{__decorate}from"tslib";import{emitValueEvents}from"../../../internal/value-events.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{repeat}from"lit/directives/repeat.js";import{live}from"lit/directives/live.js";import{LyraElement}from"../../../internal/lyra-element.js";import{LyraFormControlElement}from"../../../internal/form-control-element.js";import{tag}from"../../../internal/prefix.js";import{nextId}from"../../../internal/a11y.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{syncValidityStates}from"../../../internal/custom-states.js";import{styles}from"./rubric-form.styles.js";import{agentActionButtonStyles}from"../../agent-tools/agent-action-button.styles.js";import"../../layout/segmented/segmented.class.js";import"../slider/slider.class.js";import"../select/select.class.js";import"../combobox/option.class.js";import"../checkbox/checkbox.class.js";import"../checkbox-group/checkbox-group.class.js";import"../textarea/textarea.class.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_noData,LYRA_DEFAULT_rubricSkip,LYRA_DEFAULT_rubricSubmit,LYRA_DEFAULT_rubricSubmitAndNext,LYRA_DEFAULT_unsupportedFieldType}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();const EMPTY_KEYS=[],EMPTY_VALUE={},MAX_RUBRIC_COLLECTION_ENTRIES=1e4;function cloneRubricValue(value){return Object.freeze(Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,Array.isArray(entry)?Object.freeze([...entry]):entry])))}function projectRubricStringArray(value){try{if(!Array.isArray(value))return;const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return;const values=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const entry=getOwnDataDescriptor(value,String(index));entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR||typeof entry.value=="string"&&values.push(entry.value)}return Object.freeze(values)}catch{return}}function projectRubricOptions(value){try{if(!Array.isArray(value))return Object.freeze([]);const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return Object.freeze([]);const options=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const candidate=getOwnDataDescriptor(value,String(index));if(candidate===MISSING_OWN_DATA_DESCRIPTOR||candidate===UNSAFE_OWN_DATA_DESCRIPTOR||candidate.value===null||typeof candidate.value!="object"||Array.isArray(candidate.value))continue;const optionValue=getOwnDataDescriptor(candidate.value,"value"),label=getOwnDataDescriptor(candidate.value,"label"),description=getOwnDataDescriptor(candidate.value,"description"),icon=getOwnDataDescriptor(candidate.value,"icon");if(optionValue===MISSING_OWN_DATA_DESCRIPTOR||optionValue===UNSAFE_OWN_DATA_DESCRIPTOR||typeof optionValue.value!="string")continue;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof label.value=="string"?label.value:void 0,descriptionValue=description===MISSING_OWN_DATA_DESCRIPTOR||description===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof description.value=="string"?description.value:void 0,iconValue=icon===MISSING_OWN_DATA_DESCRIPTOR||icon===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:icon.value;options.push(Object.freeze({value:optionValue.value,...labelValue===void 0?{}:{label:labelValue},...descriptionValue===void 0?{}:{description:descriptionValue},...iconValue===void 0?{}:{icon:iconValue}}))}return Object.freeze(options)}catch{return Object.freeze([])}}function projectRubricKey(candidate){try{if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))return;const key=getOwnDataDescriptor(candidate,"key"),type=getOwnDataDescriptor(candidate,"type"),label=getOwnDataDescriptor(candidate,"label"),description=getOwnDataDescriptor(candidate,"description"),required=getOwnDataDescriptor(candidate,"required");if(key===MISSING_OWN_DATA_DESCRIPTOR||key===UNSAFE_OWN_DATA_DESCRIPTOR||type===UNSAFE_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR||description===UNSAFE_OWN_DATA_DESCRIPTOR||required===UNSAFE_OWN_DATA_DESCRIPTOR||typeof key.value!="string"||key.value.trim().length===0)return;const typeValue=type===MISSING_OWN_DATA_DESCRIPTOR?"":type.value;if(typeof typeValue!="string")return;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR?void 0:label.value,descriptionValue=description===MISSING_OWN_DATA_DESCRIPTOR?void 0:description.value,requiredValue=required===MISSING_OWN_DATA_DESCRIPTOR?void 0:required.value,common={key:key.value,...typeof labelValue=="string"?{label:labelValue}:{},...typeof descriptionValue=="string"?{description:descriptionValue}:{},...typeof requiredValue=="boolean"?{required:requiredValue}:{}};if(typeValue==="score"){const min=getOwnDataDescriptor(candidate,"min"),max=getOwnDataDescriptor(candidate,"max"),step=getOwnDataDescriptor(candidate,"step");return min===UNSAFE_OWN_DATA_DESCRIPTOR||max===UNSAFE_OWN_DATA_DESCRIPTOR||step===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"score",...min!==MISSING_OWN_DATA_DESCRIPTOR&&typeof min.value=="number"?{min:min.value}:{},...max!==MISSING_OWN_DATA_DESCRIPTOR&&typeof max.value=="number"?{max:max.value}:{},...step!==MISSING_OWN_DATA_DESCRIPTOR&&typeof step.value=="number"?{step:step.value}:{}})}if(typeValue==="category"){const options=getOwnDataDescriptor(candidate,"options"),multiple=getOwnDataDescriptor(candidate,"multiple");return options===UNSAFE_OWN_DATA_DESCRIPTOR||multiple===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"category",options:options===MISSING_OWN_DATA_DESCRIPTOR?Object.freeze([]):projectRubricOptions(options.value),...multiple!==MISSING_OWN_DATA_DESCRIPTOR&&typeof multiple.value=="boolean"?{multiple:multiple.value}:{}})}if(typeValue==="comment"){const placeholder=getOwnDataDescriptor(candidate,"placeholder");return placeholder===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:Object.freeze({...common,type:"comment",...placeholder!==MISSING_OWN_DATA_DESCRIPTOR&&typeof placeholder.value=="string"?{placeholder:placeholder.value}:{}})}return Object.freeze({...common,type:typeValue})}catch{return}}function normalizeRubricKeys(next){try{if(!Array.isArray(next))return EMPTY_KEYS;const length=getOwnDataDescriptor(next,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return EMPTY_KEYS;const seen=new Set,normalized=[];for(let index=0;index<Math.min(length.value,MAX_RUBRIC_COLLECTION_ENTRIES);index+=1){const candidate=getOwnDataDescriptor(next,String(index));if(candidate===MISSING_OWN_DATA_DESCRIPTOR||candidate===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const key=projectRubricKey(candidate.value);!key||seen.has(key.key)||(seen.add(key.key),normalized.push(key))}return Object.freeze(normalized)}catch{return EMPTY_KEYS}}function scoreDomain(key){const min=Number.isFinite(key.min)?key.min:0,rawMax=Number.isFinite(key.max)?key.max:5,max=Math.max(min,rawMax),step=Number.isFinite(key.step)&&key.step>0?key.step:1;return{min,max,step}}function isSegmentedScoreKey(key){if(key.step!==void 0&&(!Number.isFinite(key.step)||key.step<=0)||Number.isFinite(key.min)&&Number.isFinite(key.max)&&key.max<key.min)return!1;const{min,max,step}=scoreDomain(key);if(!Number.isInteger(min)||!Number.isInteger(max)||!Number.isInteger(step))return!1;const count=(max-min)/step;return Number.isInteger(count)&&count>=0&&count<=10}function canonicalScore(value,key){if(typeof value!="number"||!Number.isFinite(value))return;const{min,max,step}=scoreDomain(key),clamped=Math.min(max,Math.max(min,value)),snapped=Math.min(max,Math.max(min,min+Math.round((clamped-min)/step)*step));return Number(snapped.toPrecision(15))}function normalizeRubricValue(value,keys){const source=value!==null&&typeof value=="object"&&!Array.isArray(value)?value:EMPTY_VALUE,normalized={};for(const key of keys){const descriptor=getOwnDataDescriptor(source,key.key);if(descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const hasEntry=descriptor!==MISSING_OWN_DATA_DESCRIPTOR,entry=descriptor===MISSING_OWN_DATA_DESCRIPTOR?void 0:descriptor.value;if(key.type==="score"){const{min,max}=scoreDomain(key),score=canonicalScore(hasEntry?entry:isSegmentedScoreKey(key)?void 0:min+(max-min)/2,key);score!==void 0&&(normalized[key.key]=score)}else if(key.type==="category"){if(!hasEntry)continue;const allowed=(key.options??[]).map(option=>option.value);if(key.multiple){const entries=projectRubricStringArray(entry);if(!entries)continue;const remaining=new Map;for(const option of allowed)remaining.set(option,(remaining.get(option)??0)+1);const selected=[];for(const candidate of entries){const count=remaining.get(candidate)??0;count<=0||(selected.push(candidate),remaining.set(candidate,count-1))}normalized[key.key]=selected}else typeof entry=="string"&&entry!==""&&allowed.includes(entry)&&(normalized[key.key]=entry)}else key.type==="comment"&&hasEntry&&typeof entry=="string"&&(normalized[key.key]=entry)}return normalized}class LyraRubricForm extends LyraFormControlElement{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,noData:LYRA_DEFAULT_noData,rubricSkip:LYRA_DEFAULT_rubricSkip,rubricSubmit:LYRA_DEFAULT_rubricSubmit,rubricSubmitAndNext:LYRA_DEFAULT_rubricSubmitAndNext,unsupportedFieldType:LYRA_DEFAULT_unsupportedFieldType}}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,agentActionButtonStyles,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},keys:{attribute:!1,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:!1,noAccessor:!0},itemId:{attribute:"item-id",reflect:!0,noAccessor:!0},hasNext:{type:Boolean,attribute:"has-next",noAccessor:!0},skippable:{type:Boolean,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0}}}get hasLabelSlot(){return this.slotPresence.has("label")}get hasHintSlot(){return this.slotPresence.has("hint")}get hasErrorSlot(){return this.slotPresence.has("error")}constructor(){super(),this.label="",this.hint="",this.errorText="",this.withLabel=!1,this.withHint=!1,this._errors={},this.touchedFields=new Set,this.slotPresence=new SlotPresenceController(this),this.baseId=nextId("rubric-form"),this.aggregateLabelId=`${this.baseId}-label`,this.aggregateHintId=`${this.baseId}-hint`,this.aggregateErrorId=`${this.baseId}-error`,this._fieldsetDisabled=!1,this._name="",this._keys=EMPTY_KEYS,this._value=EMPTY_VALUE,this._defaultValue=EMPTY_VALUE,this._rawValue=EMPTY_VALUE,this._rawDefaultValue=EMPTY_VALUE,this._valueDirty=!1,this._itemId="",this._hasNext=!1,this._skippable=!1,this._disabled=!1,this.pendingFocusFirst=!1,this.markInteracted=()=>{Object.keys(this._errors).length!==0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)]),this.syncCustomStates())},this.onFormKeyDown=e=>{e.key==="Enter"&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.submit())},this.onValueCommit=event=>{event.stopPropagation(),this.effectiveDisabled||emitValueEvents(this,"change",Object.freeze({value:cloneRubricValue(this._value)}),detail=>this.emit("lr-change",detail))},this.stopChildEvent=event=>{event.stopPropagation()},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.addEventListener("keydown",this.onFormKeyDown),this.syncFormState()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}get keys(){return this._keys}set keys(next){if(next===this._boundKeys)return;this._boundKeys=next;const old=this._keys,recoverFromRaw=old.length===0;this._keys=normalizeRubricKeys(next??EMPTY_KEYS);const oldDefault=this._defaultValue,oldValue=this._value;this._defaultValue=normalizeRubricValue(recoverFromRaw?this._rawDefaultValue:this._defaultValue,this._keys),this._value=this._valueDirty?normalizeRubricValue(recoverFromRaw?this._rawValue:this._value,this._keys):cloneRubricValue(this._defaultValue),this.syncFormState(),this.requestUpdate("keys",old),this.requestUpdate("defaultValue",oldDefault),this.requestUpdate("value",oldValue)}get value(){return cloneRubricValue(this._value)}set value(next){next!==this._boundValue&&(this._boundValue=next,this.setLiveValue(next,!0))}get defaultValue(){return cloneRubricValue(this._defaultValue)}set defaultValue(next){if(next===this._rawDefaultValue)return;const old=this._defaultValue;this._rawDefaultValue=next??EMPTY_VALUE,this._defaultValue=normalizeRubricValue(this._rawDefaultValue,this._keys),this._valueDirty||this.setLiveValue(this._defaultValue,!1),this.requestUpdate("defaultValue",old)}setLiveValue(next,dirty){const old=this._value;this._rawValue=next??EMPTY_VALUE,this._value=normalizeRubricValue(this._rawValue,this._keys),this._valueDirty=dirty,this.syncFormState(),this.requestUpdate("value",old)}get itemId(){return this._itemId}set itemId(next){const old=this._itemId;this._itemId=next??"",old!==this._itemId&&(this.touchedFields=new Set,this.syncCustomStates(),this.hasUpdated&&(this.pendingFocusFirst=!0)),this._itemId?this.setAttribute("item-id",this._itemId):this.removeAttribute("item-id"),this.requestUpdate("itemId",old)}get hasNext(){return this._hasNext}set hasNext(next){const old=this._hasNext;this._hasNext=!!next,this.toggleAttribute("has-next",this._hasNext),this.requestUpdate("hasNext",old)}get skippable(){return this._skippable}set skippable(next){const old=this._skippable;this._skippable=!!next,this.requestUpdate("skippable",old)}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.requestUpdate("name",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this.validityController&&this.syncFormState(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get errors(){return this.publicValidityErrors()}publicValidityErrors(){const errors={...this._errors};return this.willValidate&&this.validityController.customValidityMessage&&(errors.base=this.validationMessage),Object.freeze(errors)}publishValiditySnapshot(){if(!this.isConnected)return;const valid=!this.willValidate||this.validity.valid,errors=valid?Object.freeze({}):this.publicValidityErrors(),key=JSON.stringify({valid,errors});key!==this.lastValidityKey&&(this.lastValidityKey=key,this.emit("lr-validity-change",Object.freeze({valid,errors})))}fieldElement(key){const root=this.renderRoot,ownerCss=this.ownerDocument.defaultView?.CSS;if(typeof ownerCss?.escape=="function")try{const candidate=root.querySelector(`[part="field"][data-key="${ownerCss.escape(key)}"]`);if(candidate?.getAttribute("data-key")===key)return candidate}catch{}return Array.from(root.querySelectorAll('[part="field"][data-key]')).find(candidate=>candidate.getAttribute("data-key")===key)??null}[VALIDITY_ANCHOR](){const firstInvalidKey=Object.keys(this._errors)[0];return!firstInvalidKey||!this.renderRoot?void 0:this.fieldElement(firstInvalidKey)?.querySelector(".control")??void 0}isSegmentedScore(k){return isSegmentedScoreKey(k)}scoreValues(k){if(!this.isSegmentedScore(k))return[];const{min,max,step}=scoreDomain(k),count=Math.round((max-min)/step);return Array.from({length:count+1},(_,index)=>index===count?max:min+index*step)}computeValidation(){const errors={},flags={};for(const k of this._keys){if(k.type!=="score"&&k.type!=="category"&&k.type!=="comment"){const unsupported=k;errors[unsupported.key]=this.localize("unsupportedFieldType",void 0,{type:unsupported.type}),flags.customError=!0;continue}if(!k.required)continue;const v=this._value[k.key];(k.type==="category"&&k.multiple?Array.isArray(v)&&v.length>0:v!==void 0&&v!=="")||(errors[k.key]=this.localize("fieldRequired"),flags.valueMissing=!0)}return{errors,flags}}syncFormState(){const{errors,flags}=this.computeValidation();this._errors=errors;let formValue=null;try{formValue=JSON.stringify(this._value)}catch{formValue=null}if(this.internals.setFormValue(formValue,formValue),this.barredFromValidation||Object.keys(flags).length===0)this.validityController.setValidity({});else{const message=Object.values(errors)[0]??"";this.validityController.setValidity(flags,message)}this.syncCustomStates(),this.publishValiditySnapshot()}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncCustomStates(){syncValidityStates(this.internals,{required:this._keys.some(key=>!!key.required),hasInteracted:this.touchedFields.size>0,barred:this.barredFromValidation})}checkValidity(){return this.validityController.checkValidity(()=>this.syncFormState())}reportValidity(){return this.validityController.syncConstraints(),this.syncFormState(),Object.keys(this._errors).length>0&&(this.touchedFields=new Set([...this.touchedFields,...Object.keys(this._errors)]),this.syncCustomStates()),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncCustomStates(),this.publishValiditySnapshot(),this.requestUpdate()}formResetCallback(){this.setLiveValue(this._defaultValue,!1),this.touchedFields=new Set,this.syncCustomStates()}formStateRestoreCallback(state2,_mode){let restored={};if(typeof state2=="string")try{const parsed=JSON.parse(state2);parsed!==null&&typeof parsed=="object"&&!Array.isArray(parsed)&&(restored=parsed)}catch{}this.setLiveValue(restored,!0)}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(this.syncFormState(),this.requestUpdate())}setFieldValue(key,val,committed=!0){if(this.effectiveDisabled)return;this.setLiveValue({...this._value,[key]:val},!0);const detail=Object.freeze({value:cloneRubricValue(this._value)});emitValueEvents(this,"input",detail,detail2=>this.emit("lr-input",detail2)),committed&&emitValueEvents(this,"change",detail,detail2=>this.emit("lr-change",detail2))}markTouched(key){this.effectiveDisabled||this.touchedFields.has(key)||(this.touchedFields=new Set(this.touchedFields).add(key),this.syncCustomStates())}submit(){this.effectiveDisabled||this.reportValidity()&&this.emit("lr-submit",Object.freeze({value:cloneRubricValue(this._value),itemId:this.itemId}))}skip(){this.effectiveDisabled||this.emit("lr-skip",{itemId:this.itemId})}focusFirstControl(options){const firstKey=this._keys[0];if(!firstKey)return;const control=this.fieldElement(firstKey.key)?.querySelector(".control");control&&(firstKey.type==="score"&&this.isSegmentedScore(firstKey)?control.shadowRoot?.querySelector('[part="segment"][tabindex="0"]')?.focus(options):firstKey.type==="score"?control.shadowRoot?.querySelector('[part="thumb"]')?.focus(options):firstKey.type==="category"&&firstKey.multiple?control.querySelector(tag("checkbox"))?.focus(options):control.focus(options))}focus(options){this.effectiveDisabled||this.focusFirstControl(options)}click(){this.effectiveDisabled||this.focusFirstControl()}syncExternalDescription(){const target=this.isConnected?this.renderRoot.querySelector('[part="base"][role="group"]'):null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,target,"aria-describedby")}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription()}disconnectedCallback(){this.releaseExternalDescription(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription()}updated(changed){super.updated(changed),this.syncExternalDescription(),this.publishValiditySnapshot(),this.pendingFocusFirst&&(this.pendingFocusFirst=!1,this.focusFirstControl())}renderScoreControl(k,fieldId,current,hasError){const{min,max,step}=scoreDomain(k),disabled=this.effectiveDisabled,accessibleLabel=[k.label??k.key,k.description,hasError?this._errors[k.key]:void 0].filter(value=>!!value).join(". ");if(this.isSegmentedScore(k)){const numberFormat=getNumberFormat(this.effectiveLocale,{maximumFractionDigits:20}),items=this.scoreValues(k).map(score=>({value:String(score),label:numberFormat.format(score),disabled})),value=typeof current=="number"?String(current):"";return html`<lr-segmented
2
2
  @lr-activate=${this.stopChildEvent}
3
3
  id=${fieldId}
4
4
  class="control"
@@ -1,4 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import type{Placement}from'@floating-ui/dom';import{LyraElement,type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import type{PlaceStrategy,PlaceSync}from'../../../internal/positioner.js';import type{LyraPickerDetailValue,LyraPickerValue}from'../../../internal/picker-value.js';import type{LyraAppearance,LyraSize}from'../../../internal/variants.js';import type{LyraOption}from'../combobox/option.class.js';import'../combobox/option.class.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import{type LyraFormValidator}from'../form-validator.js';
1
+ import{type TemplateResult,type PropertyValues}from'lit';import type{Placement}from'@floating-ui/dom';import{type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import{LyraFormControlElement}from'../../../internal/form-control-element.js';import type{PlaceStrategy,PlaceSync}from'../../../internal/positioner.js';import type{LyraPickerDetailValue,LyraPickerValue}from'../../../internal/picker-value.js';import type{LyraAppearance,LyraSize}from'../../../internal/variants.js';import type{LyraOption}from'../combobox/option.class.js';import'../combobox/option.class.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import{type LyraFormValidator}from'../form-validator.js';
2
2
  /** Re-exported so a consumer importing only the select subpath can still name the shared
3
3
  * positioning vocabulary `positioningStrategy` uses. */
4
4
  export type{LyraPickerDetailValue,LyraPickerValue,PlaceStrategy};
@@ -316,7 +316,7 @@ export type LyraSelectChangeEvent<Multiple extends boolean=boolean> =LyraSelectE
316
316
  * @status stable
317
317
  * @since 4.0.0
318
318
  */
319
- export declare class LyraSelect<Multiple extends boolean=boolean>extends LyraElement<LyraSelectEventMap<Multiple>>{protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly immutableEventDetails:readonly string[];
319
+ export declare class LyraSelect<Multiple extends boolean=boolean>extends LyraFormControlElement<LyraSelectEventMap<Multiple>>{protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly immutableEventDetails:readonly string[];
320
320
  /** `data` carries opaque per-option caller payload -- preserve each item's identity through the
321
321
  * frozen event envelope instead of recursively cloning unknown data, the same policy
322
322
  * `<lr-prompt-queue>`'s `lr-queue-change` detail uses for its own `items`. */
@@ -479,7 +479,7 @@ loading:boolean;
479
479
  autoCommitSingleOption:boolean;private activeIndex;private activeOption?;private options;private optionsObserved;private touched;private hasInteracted;private readonly slotPresence;private triggerElement?;private optionsSlot?;private internals;private validityController;
480
480
  /** Consumer-supplied validation message reflected through `custom-error`.
481
481
  * @default null */
482
- customError:string|null;private _fieldsetDisabled;private listId;private triggerId;private valueTextId;private cleanup?;private positioningReady;private overlayHandle?;private restoreFocusOnClose;private positionedDirection?;private readonly pointer;private listboxHidden;private listboxRendered;private listboxPositioned;private _isFirstUpdate;private openVetoed;private previousValue;private openStateGeneration;private pendingOpenTransitionStart?;private suppressedOpenLifecycleGeneration?;private transitionToken;private readonly transitionWaiters;private _selected;private _selectedOptions;private _selectedValuesByOption;private adornmentClones;private _multiple;private _disabled;private _required;private _defaultSelected;private _defaultSelectedOptions;private _defaultCaptured;private _valueDirty;private _restoredStateActive;private _pendingInitialValue?;private _pendingInitialSelectedOptions?;private _pendingInitialDefaultValue?;private _resolvingPendingInitialSelection;private _defaultValueDirty;private readonly typeBuffer;
482
+ customError:string|null;private _fieldsetDisabled;private listId;private triggerId;private valueTextId;private cleanup?;private positioningReady;private overlayHandle?;private restoreFocusOnClose;private positionedDirection?;private readonly popupController;private listboxHidden;private listboxRendered;private listboxPositioned;private _isFirstUpdate;private openVetoed;private previousValue;private openStateGeneration;private pendingOpenTransitionStart?;private suppressedOpenLifecycleGeneration?;private _selected;private _selectedOptions;private _selectedValuesByOption;private adornmentClones;private _multiple;private _disabled;private _required;private _defaultSelected;private _defaultSelectedOptions;private _defaultCaptured;private _valueDirty;private _restoredStateActive;private _pendingInitialValue?;private _pendingInitialSelectedOptions?;private _pendingInitialDefaultValue?;private _resolvingPendingInitialSelection;private _defaultValueDirty;private readonly typeBuffer;
483
483
  /** Focus the internal select trigger. */
484
484
  focus(options?:FocusOptions):void;
485
485
  /** Blur the internal select trigger. */
@@ -493,9 +493,7 @@ click():void;private _name;private _maxOptionsVisible;constructor();
493
493
  * content attribute while reads remain element-valued.
494
494
  * @attr form ID of an external form owner.
495
495
  * @default null */
496
- get form():HTMLFormElement|null;set form(owner:FormOwnerValue);
497
- /** Returns the browser-resolved form owner, including an external owner selected by `form`. */
498
- getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;private localDescriptionIds;private externalDescriptionLease?;private syncExternalDescription;private releaseExternalDescription;connectedCallback():void;protected willUpdate(changed:PropertyValues):void;protected firstUpdated(changed:PropertyValues):void;private applyOpenState;private forceCloseOpenState;private announceOpenTransition;
496
+ get form():HTMLFormElement|null;set form(owner:FormOwnerValue);private localDescriptionIds;private externalDescriptionLease?;private syncExternalDescription;private releaseExternalDescription;connectedCallback():void;protected willUpdate(changed:PropertyValues):void;protected firstUpdated(changed:PropertyValues):void;private applyOpenState;private forceCloseOpenState;private announceOpenTransition;
499
497
  /** Submission name.
500
498
  * @default '' */
501
499
  get name():string;set name(next:string|null);
@@ -583,4 +581,4 @@ resetValidity():void;disconnectedCallback():void;adoptedCallback():void;private
583
581
  /** Opens the listbox and resolves after `lr-after-show`. */
584
582
  show():Promise<void>;
585
583
  /** Closes the listbox and resolves after `lr-after-hide`. */
586
- hide():Promise<void>;private onDocPointer;private positionListbox;private revealActiveOption;private activateListboxOverlay;private teardownListboxOverlay;private bindDocumentPointer;private unbindDocumentPointer;private reconnectOpenPopup;protected updated(changed:PropertyValues):void;private settleTransition;private emitValueEvents;private assignValue;private assignDefaultValue;private readonly selectionWriteGuard;private selectionRequestDispatching;private requestSelection;private selectOption;private removeValueAt;private clear;private removeTag;private onTriggerClick;private onTriggerBlur;private onTriggerFocus;private typeAhead;private onKeyDown;private onListboxMouseDown;private onListboxClick;private adornmentMarkup;private adornmentsFor;private renderRows;private renderTag;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-select':LyraSelect;}}
584
+ hide():Promise<void>;private onDocPointer;private positionListbox;private revealActiveOption;private activateListboxOverlay;private teardownListboxOverlay;private reconnectOpenPopup;protected updated(changed:PropertyValues):void;private settleTransition;private emitValueEvents;private assignValue;private assignDefaultValue;private readonly selectionWriteGuard;private selectionRequestDispatching;private requestSelection;private selectOption;private removeValueAt;private clear;private removeTag;private onTriggerClick;private onTriggerBlur;private onTriggerFocus;private typeAhead;private onKeyDown;private onListboxMouseDown;private onListboxClick;private adornmentMarkup;private adornmentsFor;private renderRows;private renderTag;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-select':LyraSelect;}}
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{requestThenCommit}from"../../../internal/request-commit.js";import{VetoWriteGuard,markVetoGuardWrite}from"../../../internal/veto-write-guard.js";import{renderFormControlHintError}from"../../../internal/form-control-template.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{GlassScrollLayer}from"../../../internal/glass-scroll-layer.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{acquireNativeControlDescription}from"../../../internal/native-control-description.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{deferredPlaceReady as place,settlePopupTransition,PopupTransitionWaiters,syncTopLayerRelease,topLayerPlacement}from"../../../internal/anchored-overlay-runtime.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{rtlAwarePlacement}from"../../../internal/rtl.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{activateNonmodalOverlay}from"../../../internal/nonmodal-overlay-manager.js";import{chevronIcon,closeIcon}from"../../../internal/icons.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{setCustomState,syncValidityStates}from"../../../internal/custom-states.js";import{DocumentPointerListener}from"../../../internal/document-pointer.js";import{revealRow}from"../../../internal/reveal-row.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{resolveListMove}from"../../../internal/list-navigation.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{styles}from"./select.styles.js";import{sizes}from"../../../internal/sizes.styles.js";import"../combobox/option.class.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{omittedEmptyStringConverter,optionalLiteralSetConverter}from"../../../internal/converters.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{isOptionSelectedDirty,isOptionSelectedWrite,wasOptionInitiallySelected,RESET_OPTION_SELECTED_FROM_OWNER,SET_OPTION_SELECTED_FROM_OWNER}from"../../../internal/option-selection.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{tag}from"../../../internal/prefix.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_clear,LYRA_DEFAULT_loading,LYRA_DEFAULT_notInCatalog,LYRA_DEFAULT_removeWithContext,LYRA_DEFAULT_select,LYRA_DEFAULT_selectSelectedOverflow,LYRA_DEFAULT_selectValueMissing}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();function isLyraOptionElement(value){return isHtmlElement(value)&&value.localName===tag("option")}function normalizeSelectionValues(next){return Array.isArray(next)?next.filter(value=>typeof value=="string"):typeof next=="string"?[next]:[]}const POSITIONING_STRATEGY=optionalLiteralSetConverter(["absolute","fixed"]);class LyraSelect extends LyraElement{static{this.defaultStrings={...super.defaultStrings,clear:LYRA_DEFAULT_clear,loading:LYRA_DEFAULT_loading,notInCatalog:LYRA_DEFAULT_notInCatalog,removeWithContext:LYRA_DEFAULT_removeWithContext,select:LYRA_DEFAULT_select,selectSelectedOverflow:LYRA_DEFAULT_selectSelectedOverflow,selectValueMissing:LYRA_DEFAULT_selectValueMissing}}static{this.collectionSupport=collectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-input","lr-change","lr-change-request"])}static{this.identityEventDetailCollectionItems=Object.freeze({"lr-input":Object.freeze(["data"]),"lr-change":Object.freeze(["data"]),"lr-change-request":Object.freeze(["data"])})}static get validators(){return[currentValidityValidator("required","disabled","value","multiple")]}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles,srOnly]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},multiple:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},value:{noAccessor:!0},name:{reflect:!0,noAccessor:!0,converter:omittedEmptyStringConverter},maxOptionsVisible:{type:Number,attribute:"max-options-visible",noAccessor:!0},defaultValue:{attribute:"default-value",noAccessor:!0}}}get open(){return this._open}set open(next){const requested=!!next,normalized=requested&&!this.effectiveDisabled;if(normalized===this._open){requested!==normalized&&this.hasAttribute("open")&&this.removeAttribute("open");return}this.applyOpenState(normalized)}get positioningStrategy(){return this._positioningStrategy??"absolute"}set positioningStrategy(next){const normalized=POSITIONING_STRATEGY.normalize(next)??"absolute",old=this.positioningStrategy;this._positioningStrategy=normalized,normalized!==old&&(this.requestUpdate("positioningStrategy",old),old==="fixed"!=(normalized==="fixed")&&this.requestUpdate("hoist",old==="fixed"))}get hoist(){return this.positioningStrategy==="fixed"}set hoist(next){this.positioningStrategy=next?"fixed":"absolute"}focus(options){this.effectiveDisabled||this.triggerElement?.focus(options)}blur(){this.triggerElement?.blur()}click(){this.effectiveDisabled||this.triggerElement?.click()}constructor(){super(),this.placeholder="",this.label="",this.hint="",this.helpText="",this.withLabel=!1,this.withHint=!1,this.errorText="",this.autofocus=!1,this.title="",this._open=!1,this.size="m",this.appearance="outlined",this.pill=!1,this.placement="bottom",this.topLayer=!1,this.filled=!1,this.withClear=!1,this.clearable=!1,this.withUnknownOption=!1,this.loading=!1,this.autoCommitSingleOption=!1,this.activeIndex=-1,this.options=[],this.optionsObserved=!1,this.touched=!1,this.hasInteracted=!1,this.slotPresence=new SlotPresenceController(this),this._fieldsetDisabled=!1,this.listId=nextId("select-list"),this.triggerId=nextId("select-trigger"),this.valueTextId=nextId("select-value"),this.positioningReady=Promise.resolve(!1),this.restoreFocusOnClose=!0,this.pointer=new DocumentPointerListener(this,event=>this.onDocPointer(event)),this.listboxHidden=!0,this.listboxRendered=!1,this.listboxPositioned=!1,this._isFirstUpdate=!0,this.openVetoed=!1,this.previousValue="",this.openStateGeneration=0,this.transitionToken=0,this.transitionWaiters=new PopupTransitionWaiters,this._selected=[],this._selectedOptions=[],this._selectedValuesByOption=new Map,this.adornmentClones=new WeakMap,this._multiple=!1,this._disabled=!1,this._required=!1,this._defaultSelected=[],this._defaultSelectedOptions=[],this._defaultCaptured=!1,this._valueDirty=!1,this._restoredStateActive=!1,this._resolvingPendingInitialSelection=!1,this._defaultValueDirty=!1,this.typeBuffer=new TypeAheadBuffer(this),this._name="",this._maxOptionsVisible=3,this.localDescriptionIds="",this.markInteracted=()=>{this.hasInteracted||(this.hasInteracted=!0,this.reflectValidityStates())},this.collectOptions=e=>{this.collectOptionsFromSlot(e.target)},this.unknownOptionCache=new Map,this.optionRefreshPending=!1,this.onOptionChange=e=>{e.stopPropagation();const option=e.composedPath().find(isLyraOptionElement);if(isLyraOptionElement(option)&&this.options.includes(option)&&isOptionSelectedWrite(e)){markVetoGuardWrite(this.selectionWriteGuard),this._valueDirty=!0,this._restoredStateActive=!1;const selected=this._selectedOptions.includes(option);if(option.selected===selected&&(!selected||this._selectedValuesByOption.get(option)===option.value))return;if(option.selected&&!this.multiple){this.setSelection([option.value],[option]);return}const remaining=[...this._selectedOptions],preferred=this._selected.map(value=>{const index2=remaining.findIndex(candidate=>this._selectedValuesByOption.get(candidate)===value);return index2<0?void 0:remaining.splice(index2,1)[0]}),values=[...this._selected],index=preferred.indexOf(option);if(option.selected)index<0?(values.push(option.value),preferred.push(option)):values[index]=option.value;else{if(index<0)return;values.splice(index,1),preferred.splice(index,1)}this.setSelection(values,preferred);return}if(isLyraOptionElement(option)&&this.adornmentClones.get(option)?.markup!==this.adornmentMarkup(option)&&this.adornmentClones.delete(option),this.optionRefreshPending)return;this.optionRefreshPending=!0;const previousActive=this.activeOption,previousActiveRawIndex=previousActive?this.options.indexOf(previousActive):this.activeIndex;queueMicrotask(()=>{this.optionRefreshPending=!1,this.refreshOptionDefaults(),this.reflectSelected(),this.options=[...this.options],this.reconcileActiveOption(previousActive,previousActiveRawIndex)})},this.onDocPointer=e=>{if(!e.composedPath().includes(this)){if(this.overlayHandle?.isActive()){this.overlayHandle.dismissBackdrop();return}this.restoreFocusOnClose=!1,this.hide()}},this.selectionWriteGuard=new VetoWriteGuard,this.selectionRequestDispatching=!1,this.onTriggerClick=()=>{if(!this.effectiveDisabled){if(this.onlyOption)return this.selectOption(this.onlyOption);this.open?this.hide():this.show()}},this.onTriggerBlur=event=>{this.effectiveDisabled||(this.touched=!0,this.hasInteracted=!0,this.reflectValidityStates()),this.open&&(this.restoreFocusOnClose=!1),this.hide(),relayNativeEvent(this,event)},this.onTriggerFocus=event=>{relayNativeEvent(this,event)},this.onKeyDown=e=>{if(e.isComposing||e.keyCode===229)return;const navigable=this.navigableOptions(),move=()=>resolveListMove(e,{count:navigable.length,current:this.activeIndex,orientation:"vertical",wrap:!1,clamp:!0,backwardFromMissing:"first"});switch(e.key){case"ArrowDown":if(e.preventDefault(),this.onlyOption)return this.selectOption(this.onlyOption);if(!this.open){this.show();return}this.setActiveIndex(move()??-1,navigable);break;case"ArrowUp":if(e.preventDefault(),this.onlyOption)return this.selectOption(this.onlyOption);if(!this.open){this.show();return}this.setActiveIndex(move()??-1,navigable);break;case"Enter":case" ":if(this.open){e.preventDefault();const active=navigable[this.activeIndex];this.activeIndex>=0&&active?this.selectOption(active):this.hide()}break;case"Escape":this.open&&(!this.overlayHandle?.isActive()||this.overlayHandle.isTopmost())&&(e.preventDefault(),this.hide());break;case"Home":this.open&&(e.preventDefault(),this.setActiveIndex(move()??-1,navigable));break;case"End":this.open&&(e.preventDefault(),this.setActiveIndex(move()??-1,navigable));break;case"Backspace":case"Delete":this.multiple&&this._selected.length>0&&(e.preventDefault(),this.removeValueAt(this._selected.length-1));break;default:this.typeBuffer.accepts(e)&&this.typeAhead(e.key);break}},this.onListboxMouseDown=e=>{e.preventDefault()},this.onListboxClick=e=>{const optionEl=e.target.closest('[part="option"]'),index=Number(optionEl?.dataset.index);if(!Number.isInteger(index))return;const option=this.listboxOptions[index];option&&this.selectOption(option)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,new GlassScrollLayer(this,'[part="listbox"]',()=>this.open),this.syncFormValue()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}[VALIDITY_ANCHOR](){return this.renderRoot?.querySelector('[part="trigger"]')??null}syncExternalDescription(){if(!this.isConnected)return;const target=this.renderRoot.querySelector('[part="trigger"]');target&&(this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireNativeControlDescription(this,target,()=>this.localDescriptionIds))}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription(),this.updateValidity(),this.hasUpdated&&this.open&&queueMicrotask(()=>this.reconnectOpenPopup())}willUpdate(changed){if(super.willUpdate(changed),this._isFirstUpdate=!this.hasUpdated,this._isFirstUpdate&&(this._pendingInitialDefaultValue!==void 0||this._pendingInitialValue!==void 0||this._pendingInitialSelectedOptions!==void 0)){this._resolvingPendingInitialSelection=!0;try{if(this._pendingInitialDefaultValue!==void 0){const pending=this._pendingInitialDefaultValue;this._pendingInitialDefaultValue=void 0,this.assignDefaultValue(pending)}if(this._pendingInitialValue!==void 0){const pending=this._pendingInitialValue;this._pendingInitialValue=void 0,this.assignValue(pending)}if(this._pendingInitialSelectedOptions!==void 0){const pending=this._pendingInitialSelectedOptions;this._pendingInitialSelectedOptions=void 0,this.selectedOptions=pending}}finally{this._resolvingPendingInitialSelection=!1}}if(this.announceOpenTransition(changed),changed.has("open")&&!this.openVetoed&&(this.listboxPositioned=!1),this.open&&(this.listboxHidden=!1,this.listboxRendered=!0),changed.has("open")&&!this.openVetoed){const navigable=this.navigableOptions();this.setActiveIndex(this.open?navigable.findIndex(option=>this._selectedOptions.includes(option)):-1,navigable)}}firstUpdated(changed){super.firstUpdated(changed);const slot=this.optionsSlot;queueMicrotask(()=>{collectInitialSlotAssignment(slot,s=>{const assigned=s.assignedElements({flatten:!0});this.optionsObserved=!0,assigned.some(isLyraOptionElement)&&this.collectOptionsFromSlot(s)})})}applyOpenState(next){const old=this._open;this.pendingOpenTransitionStart===void 0&&(this.pendingOpenTransitionStart=old),this.openStateGeneration++,this._open=next,this.requestUpdate("open",old)}forceCloseOpenState(){this.listboxHidden=!0;const isClosing=this._open||this.pendingOpenTransitionStart===!0;if(this.transitionToken++,this.transitionWaiters.resolve("lr-after-show"),this.transitionWaiters.resolve("lr-after-hide"),!this._open){isClosing&&(this.suppressedOpenLifecycleGeneration=this.openStateGeneration),this.hasAttribute("open")&&this.removeAttribute("open");return}this.applyOpenState(!1),this.suppressedOpenLifecycleGeneration=this.openStateGeneration}announceOpenTransition(changed){if(this.openVetoed=!1,!changed.has("open")||this._isFirstUpdate||this.suppressedOpenLifecycleGeneration===this.openStateGeneration)return;const name=this.open?"lr-show":"lr-hide";if(!this.isConnected){this.emit("lr-hide");return}this.emit(name,null,{cancelable:!0}).defaultPrevented&&(this.openVetoed=!0,this.open=!this.open,this.transitionWaiters.resolve(this.open?"lr-after-hide":"lr-after-show"))}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.syncFormValue(),this.requestUpdate("name",old)}get multiple(){return this._multiple}set multiple(next){markVetoGuardWrite(this.selectionWriteGuard);const old=this._multiple;this._multiple=!!next,this.toggleAttribute("multiple",this._multiple),!this._multiple&&this._selected.length>1?this.setSelection(this._selected.slice(0,1),this._selectedOptions.slice(0,1)):this.syncFormValue(),this.requestUpdate("multiple",old)}get maxOptionsVisible(){return this._maxOptionsVisible}set maxOptionsVisible(next){const old=this._maxOptionsVisible;this._maxOptionsVisible=finiteCount(next,3),this.requestUpdate("maxOptionsVisible",old)}get disabled(){return this._disabled}set disabled(next){markVetoGuardWrite(this.selectionWriteGuard);const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this._disabled&&this.forceCloseOpenState(),this.updateValidity(),this.requestUpdate("disabled",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get value(){return this.multiple?[...this._selected]:this._selected[0]??""}set value(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialValue=next),this._restoredStateActive=!1,this._valueDirty=!0;const values=normalizeSelectionValues(next);this.setSelection(values,values.map(value=>this.options.find(option=>option.value===value)))}get defaultValue(){return this.multiple?[...this._defaultSelected]:this._defaultSelected[0]??""}set defaultValue(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialDefaultValue=next),this._defaultValueDirty=!0;const old=this.multiple?[...this._defaultSelected]:this._defaultSelected[0]??"",values=normalizeSelectionValues(next);this._defaultSelected=this.multiple?[...values]:values.slice(0,1),this._defaultSelectedOptions=this.resolveOccurrences(this._defaultSelected),!this._valueDirty&&!this._restoredStateActive&&this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions]),this.requestUpdate("defaultValue",old)}get selectedOptions(){return[...this._selectedOptions]}set selectedOptions(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialSelectedOptions=next),this._restoredStateActive=!1,this._valueDirty=!0;const candidates=Array.isArray(next)?next:[],live=candidates.filter((option,index)=>isLyraOptionElement(option)&&this.contains(option)&&this.options.includes(option)&&candidates.indexOf(option)===index),selected=this.multiple?live:live.slice(0,1);this.setSelection(selected.map(option=>option.value),selected)}get selectedData(){return this.resolveOccurrenceSlots(this._selected,this._selectedOptions).map(option=>option?.data)}setSelection(next,preferred=[]){markVetoGuardWrite(this.selectionWriteGuard);const values=this.multiple?[...next]:next.slice(0,1),previousValues=this._selected,previousOptions=this._selectedOptions,old=this.multiple?[...previousValues]:previousValues[0]??"";this.previousValue=old,this._selected=values,this._selectedOptions=this.resolveOccurrences(values,preferred),this.syncFormValue(),this.reflectSelected(),this.updateValidity(),this.requestUpdate("value",old);const sameValues=previousValues.length===values.length&&previousValues.every((value,i)=>value===values[i]),sameOptions=previousOptions.length===this._selectedOptions.length&&previousOptions.every((option,i)=>option===this._selectedOptions[i]);sameValues&&!sameOptions&&this.requestUpdate()}resolveOccurrences(values,preferred=[]){return this.resolveOccurrenceSlots(values,preferred).filter(option=>option!==void 0)}resolveOccurrenceSlots(values,preferred=[]){const claimed=new Set;return values.map((value,index)=>{const hint=preferred.length===values.length?preferred[index]:preferred.find(option=>option?.value===value&&!claimed.has(option)),match=hint&&hint.value===value&&this.options.includes(hint)&&!claimed.has(hint)?hint:this.options.find(option=>option.value===value&&!claimed.has(option));if(match)return claimed.add(match),match})}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}updateValidity(){this.barredFromValidation?this.validityController.setValidity({}):this.required&&this._selected.length===0?this.validityController.setValidity({valueMissing:!0},this.localize("selectValueMissing")):this.validityController.setValidity({}),this.reflectValidityStates()}reflectValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this.hasInteracted,barred:this.barredFromValidation}),setCustomState(this.internals,"blank",this._selected.length===0)}syncFormValue(){if(!this.multiple){this.internals.setFormValue(this._selected[0]??"");return}const state2=JSON.stringify(this._selected);if(!this.name){this.internals.setFormValue(null,state2);return}const data=new FormData;for(const value of this._selected)data.append(this.name,value);this.internals.setFormValue(data,state2)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}formResetCallback(){this.touched=!1,this.hasInteracted=!1,this._restoredStateActive=!1,this._valueDirty=!1;const resetOptions=this._defaultSelectedOptions.length>0?this._defaultSelectedOptions:this.options.filter(option=>wasOptionInitiallySelected(option));this._defaultSelectedOptions.length===0&&resetOptions.length>0&&(this._defaultSelectedOptions=[...resetOptions],this._defaultSelected=resetOptions.map(option=>option.value));const defaults=new Set(resetOptions);for(const option of this.options)option[RESET_OPTION_SELECTED_FROM_OWNER](defaults.has(option));this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions])}formStateRestoreCallback(state2,reason){if(!this.multiple)this.assignValue(typeof state2=="string"?state2:void 0);else{let restored=[];if(typeof state2=="string")try{const parsed=JSON.parse(state2);Array.isArray(parsed)&&parsed.every(entry=>typeof entry=="string")&&(restored=parsed)}catch{}this.assignValue(restored)}this._restoredStateActive=!0,this._valueDirty=!0}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;markVetoGuardWrite(this.selectionWriteGuard);const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(disabled&&this.forceCloseOpenState(),this.updateValidity(),this.requestUpdate())}checkValidity(){return this.validityController.checkValidity(()=>this.updateValidity())}reportValidity(){return this.validityController.syncConstraints(),this.updateValidity(),this.hasInteracted=!0,this.reflectValidityStates(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.reflectValidityStates()}resetValidity(){this.setCustomValidity("")}disconnectedCallback(){markVetoGuardWrite(this.selectionWriteGuard),this.listboxHidden=!0,this.releaseExternalDescription(),this.transitionToken++,super.disconnectedCallback(),this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.typeBuffer.clear(),this.overlayHandle?.deactivate({restoreFocus:!1}),this.overlayHandle=void 0,this.unbindDocumentPointer(),this.transitionWaiters.resolve("lr-after-show"),this.transitionWaiters.resolve("lr-after-hide"),this.open=!1}adoptedCallback(){markVetoGuardWrite(this.selectionWriteGuard),super.adoptedCallback(),this.transitionToken++,this.transitionWaiters.resolve("lr-after-show"),this.transitionWaiters.resolve("lr-after-hide"),this.releaseExternalDescription(),this.hasUpdated&&this.syncExternalDescription(),this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.overlayHandle?.deactivate({restoreFocus:!1}),this.overlayHandle=void 0,this.unbindDocumentPointer(),this.typeBuffer.clear(),queueMicrotask(()=>this.reconnectOpenPopup())}collectOptionsFromSlot(slot){const previous=new Set(this.options),previousActive=this.activeOption,previousActiveRawIndex=previousActive?this.options.indexOf(previousActive):this.activeIndex;if(this.options=slot.assignedElements({flatten:!0}).filter(isLyraOptionElement),this.optionsObserved=!0,this.adornmentClones=new WeakMap,this.reconcileActiveOption(previousActive,previousActiveRawIndex),this._defaultCaptured){const newDefaults=this.options.filter(option=>!previous.has(option)&&option.defaultSelected),newLive=this.options.filter(option=>!previous.has(option)&&option.selected&&!option.defaultSelected);this.refreshOptionDefaults();const eligible=[...!this._restoredStateActive&&!this._valueDirty?newDefaults:[],...this._restoredStateActive?[]:newLive];if(eligible.length>0){const added=this.multiple?eligible:eligible.slice(-1),occurrences=this.multiple?[...new Set([...this._selectedOptions,...added])]:added;newLive.length>0&&(this._valueDirty=!0),this.setSelection(occurrences.map(option=>option.value),occurrences);return}}else{this._defaultCaptured=!0;const explicitDefault=this.hasAttribute("default-value")||this._defaultValueDirty,allDefaults=this.options.filter(option=>option.defaultSelected),defaults=this.multiple?allDefaults:allDefaults.slice(0,1),allLive=this.options.filter(option=>option.selected),live=this.multiple?allLive:allLive.slice(0,1),initialLive=this.options.filter(option=>wasOptionInitiallySelected(option)),optionDirty=this.options.some(option=>isOptionSelectedDirty(option)),dirtySelected=this.options.filter(option=>isOptionSelectedDirty(option)&&option.selected);if(explicitDefault)this._defaultSelectedOptions=this.resolveOccurrences(this._defaultSelected);else{const resetOptions=defaults.length>0?defaults:initialLive.length>0?initialLive:live;this._defaultSelected=resetOptions.map(option=>option.value),this._defaultSelectedOptions=[...resetOptions]}const fromDefaults=explicitDefault||defaults.length>0,initial=optionDirty?this.multiple?allLive:dirtySelected.slice(-1)[0]?dirtySelected.slice(-1):live:explicitDefault?this._defaultSelectedOptions:fromDefaults?defaults:live;if(initial.length>0&&!this._restoredStateActive&&!this._valueDirty){(!fromDefaults||optionDirty)&&(this._valueDirty=!0),this.setSelection(initial.map(option=>option.value),[...initial]);return}if(optionDirty&&(this._valueDirty=!0),explicitDefault&&!this._valueDirty&&!this._restoredStateActive){this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions]);return}}this.reflectSelected()}refreshOptionDefaults(){if(this.hasAttribute("default-value")||this._defaultValueDirty)return;const declared=this.options.filter(option=>option.defaultSelected),defaults=this.multiple?declared:declared.slice(0,1);this._defaultSelected=defaults.map(option=>option.value),this._defaultSelectedOptions=[...defaults],!this._valueDirty&&!this._restoredStateActive&&this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions])}reflectSelected(){this._selectedOptions=this.resolveOccurrences(this._selected,this._selectedOptions),this._selectedValuesByOption=new Map(this._selectedOptions.map(option=>[option,option.value]));const chosen=new Set(this._selectedOptions);for(const option of this.options)option[SET_OPTION_SELECTED_FROM_OWNER](chosen.has(option))}selectUnknownValue(value){if(!(this.selectionRequestDispatching||this.effectiveDisabled)){if(this.multiple){const index=this._selected.indexOf(value),values=index>=0?this._selected.filter((_,position)=>position!==index):[...this._selected,value];this.requestSelection(values,this.resolveOccurrenceSlots(values,this._selectedOptions),()=>{this.emitValueEvents(),this.emit("lr-activate",{value})});return}this.hide(),this.emit("lr-activate",{value})}}resolvedLabelFor(value,occurrenceIndex=0){const option=(this._selectedOptions[occurrenceIndex]?.value===value?this._selectedOptions[occurrenceIndex]:void 0)??this._selectedOptions.find(candidate=>candidate.value===value)??this.options.find(candidate=>candidate.value===value);return option&&(option.label||option.value)}labelFor(value,occurrenceIndex=0){const resolved=this.resolvedLabelFor(value,occurrenceIndex);if(resolved!==void 0)return resolved;if(this.loading)return this.localize("loading");const override=this.optionsObserved?this.getUnknownLabel?.(value):void 0;return override!==void 0&&override.trim().length>0?override:value}isUnknownValue(value,occurrenceIndex=0){return!this.optionsObserved||this.loading||value===""?!1:this.resolvedLabelFor(value,occurrenceIndex)===void 0}get onlyOption(){if(!this.autoCommitSingleOption)return;const navigable=this.navigableOptions(this.options);return navigable.length===1?navigable[0]:void 0}isOptionAvailable(option){return!option.disabled&&!option.inert&&!option.closest("[inert]")}navigableOptions(options=this.listboxOptions){return options.filter(option=>this.isOptionAvailable(option))}get unknownValues(){return this.withUnknownOption?this._selected.filter((value,index)=>this.isUnknownValue(value,index)):[]}get unknownOptions(){const values=this.unknownValues;if(values.length===0)return this.unknownOptionCache.clear(),[];for(const key of[...this.unknownOptionCache.keys()])values.includes(key)||this.unknownOptionCache.delete(key);return values.map(value=>{let option=this.unknownOptionCache.get(value);return option||(option=this.ownerDocument.createElement(tag("option")),this.unknownOptionCache.set(value,option)),option.value=value,option.label=this.labelFor(value),option})}get listboxOptions(){const unknown=this.unknownOptions;return unknown.length===0?this.options:[...this.options,...unknown]}setActiveIndex(next,navigable=this.navigableOptions()){if(next<0||navigable.length===0){this.activeIndex=-1,this.activeOption=void 0;return}const index=Math.min(next,navigable.length-1);this.activeIndex=index,this.activeOption=navigable[index]}reconcileActiveOption(previousActive,previousRawIndex){if(!previousActive&&this.activeIndex<0)return;const navigable=this.navigableOptions();if(previousActive){const preservedIndex=navigable.indexOf(previousActive);if(preservedIndex>=0){this.setActiveIndex(preservedIndex,navigable);return}}if(navigable.length===0){this.setActiveIndex(-1,navigable);return}const pivot=Math.max(0,previousRawIndex);let nearestIndex=0,nearestDistance=Number.POSITIVE_INFINITY,nearestRawIndex=-1;navigable.forEach((option,index)=>{const rawIndex=this.listboxOptions.indexOf(option),distance=Math.abs(rawIndex-pivot);(distance<nearestDistance||distance===nearestDistance&&rawIndex>=pivot&&nearestRawIndex<pivot)&&(nearestIndex=index,nearestDistance=distance,nearestRawIndex=rawIndex)}),this.setActiveIndex(nearestIndex,navigable)}show(){if(this.open||this.effectiveDisabled)return Promise.resolve();this.transitionWaiters.resolve("lr-after-hide");const settled=this.transitionWaiters.wait("lr-after-show");return this.open=!0,settled}hide(){if(!this.open)return Promise.resolve();this.transitionWaiters.resolve("lr-after-show");const settled=this.transitionWaiters.wait("lr-after-hide");return this.open=!1,settled}positionListbox(){this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=this.effectiveDirection;const anchor=this.renderRoot.querySelector('[part="trigger"]'),listbox=this.renderRoot.querySelector('[part="listbox"]');if(!anchor||!listbox)return;this.placedTopLayer=syncTopLayerRelease(listbox,this.placedTopLayer,this.topLayer),this.cleanup=place(anchor,listbox,{placement:rtlAwarePlacement(this.placement,this),...topLayerPlacement(this.topLayer,resolveEffectivePositioningStrategy(this,this._positioningStrategy,"absolute")),sync:this.sync});const operation=this.cleanup;this.positioningReady=operation.ready.then(positioned=>(positioned&&this.cleanup===operation&&this.open&&this.isConnected&&(this.listboxPositioned=!0,this.revealActiveOption()),positioned))}revealActiveOption(){if(!this.isConnected||!this.open||!this.listboxPositioned||!this.cleanup)return;const listbox=this.renderRoot.querySelector('[part="listbox"]'),activeId=this.triggerElement?.getAttribute("aria-activedescendant"),row=listbox?.querySelector('[part="option"][data-active]');listbox&&row&&activeId&&row.id===activeId&&revealRow(listbox,row)}activateListboxOverlay(){this.cleanup?.(),this.cleanup=void 0,this.overlayHandle?.deactivate({restoreFocus:!1}),this.restoreFocusOnClose=!0,this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this.renderRoot.querySelector('[part="listbox"]'),onEscape:()=>{this.hide()},onBackdrop:()=>{this.restoreFocusOnClose=!1,this.hide()},restoreFocusTo:this.triggerElement??null}),this.bindDocumentPointer(),this.positionListbox()}teardownListboxOverlay(restoreFocus=this.restoreFocusOnClose){this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0,this.unbindDocumentPointer(),this.restoreFocusOnClose=!0}bindDocumentPointer(){this.isConnected&&this.pointer.bind()}unbindDocumentPointer(){this.pointer.unbind()}reconnectOpenPopup(){!this.isConnected||!this.open||this.activateListboxOverlay()}updated(changed){super.updated(changed),this.syncExternalDescription();const suppressOpenLifecycle=changed.has("open")&&this.suppressedOpenLifecycleGeneration===this.openStateGeneration,shouldRefreshPosition=this.open&&this.isConnected&&(changed.has("placement")||changed.has("positioningStrategy")||changed.has("topLayer")||changed.has("sync")||this.positionedDirection!==this.effectiveDirection);changed.has("open")&&!this.openVetoed?this.open&&this.isConnected?(this.activateListboxOverlay(),!this._isFirstUpdate&&!suppressOpenLifecycle&&this.settleTransition("lr-after-show")):this.open?this.teardownListboxOverlay(!1):(this.teardownListboxOverlay(),!this._isFirstUpdate&&!suppressOpenLifecycle&&this.settleTransition("lr-after-hide")):changed.has("open")&&this.openVetoed?(this.restoreFocusOnClose=!0,shouldRefreshPosition&&this.positionListbox()):shouldRefreshPosition&&this.positionListbox(),(changed.has("activeIndex")||changed.has("options")||changed.has("listboxPositioned"))&&this.revealActiveOption(),(changed.has("touched")||changed.has("required")||changed.has("value"))&&this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid),changed.has("open")&&(this.pendingOpenTransitionStart=void 0,this.suppressedOpenLifecycleGeneration=void 0)}async settleTransition(event){const token=++this.transitionToken;await settlePopupTransition({host:this,popup:()=>this.renderRoot.querySelector('[part="listbox"]'),isCurrent:()=>this.transitionToken===token,waitForPosition:event==="lr-after-show"?async()=>{for(;this.open;){const readiness=this.positioningReady,positioned=await readiness;if(this.transitionToken!==token)return!1;if(positioned)break;if(readiness===this.positioningReady)return this.forceCloseOpenState(),!1}return!0}:void 0,conceal:event==="lr-after-hide"?()=>{this.listboxHidden=!0}:void 0,onSettled:()=>{this.emit(event),this.transitionWaiters.resolve(event)}})}emitValueEvents(){const self=this,data=this.selectedData,value=self.value,previousValue=this.previousValue;dispatchNativeInputEvent(this),self.emit("lr-input",{value,previousValue,data}),dispatchNativeEvent(this,"change"),self.emit("lr-change",{value,previousValue,data})}assignValue(next){this.value=next}assignDefaultValue(next){this.defaultValue=next}requestSelection(values,preferred,afterCommit,available=()=>!0){if(this.selectionRequestDispatching||this.effectiveDisabled)return!1;const multiple=this.multiple,document=this.ownerDocument,connected=this.isConnected,open=this.open,slots=this.resolveOccurrenceSlots(values,preferred),data=slots.map(option=>option?.data),value=multiple?[...values]:values[0]??"",previousValue=this.value,self=this;let committed=!1;this.selectionRequestDispatching=!0;try{requestThenCommit({requestDetail:{value,previousValue,data},guard:this.selectionWriteGuard,emitRequest:(detail,init)=>self.emit("lr-change-request",detail,init),commit:()=>{const liveOptions=new Set(this.renderRoot.querySelector("slot:not([name])")?.assignedElements({flatten:!0})??[]);this.effectiveDisabled||this.multiple!==multiple||this.ownerDocument!==document||this.isConnected!==connected||this.open!==open||!available(liveOptions)||slots.some((option,index)=>option&&(!liveOptions.has(option)||option.value!==values[index]||!Object.is(option.data,data[index])))||(this.hasInteracted=!0,this._restoredStateActive=!1,this._valueDirty=!0,this.setSelection(values,preferred),committed=!0,afterCommit())}})}finally{this.selectionRequestDispatching=!1}return committed}selectOption(option){if(this.selectionRequestDispatching||this.effectiveDisabled||!this.isOptionAvailable(option))return;if(this.unknownOptionCache.get(option.value)===option){this.selectUnknownValue(option.value);return}const value=option.value,available=liveOptions=>liveOptions.has(option)&&option.value===value&&this.isOptionAvailable(option);if(this.multiple){const currentSlots=this.resolveOccurrenceSlots(this._selected,this._selectedOptions),selectedIndex=currentSlots.indexOf(option),selected=selectedIndex>=0,occurrences=selected?currentSlots.filter((_,index)=>index!==selectedIndex):[...currentSlots,option],values=selected?this._selected.filter((_,index)=>index!==selectedIndex):[...this._selected,value];this.requestSelection(values,occurrences,()=>{this.emitValueEvents(),this.emit("lr-activate",{value})},available);return}if(!(option!==this._selectedOptions[0]||value!==this._selected[0])){this.hide(),this.emit("lr-activate",{value});return}this.requestSelection([value],[option],()=>{this.hide(),this.emitValueEvents(),this.emit("lr-activate",{value})},available)}removeValueAt(index){return this.effectiveDisabled||index<0||index>=this._selected.length?!1:this.requestSelection(this._selected.filter((_,candidateIndex)=>candidateIndex!==index),this.resolveOccurrenceSlots(this._selected,this._selectedOptions).filter((_,candidateIndex)=>candidateIndex!==index),()=>this.emitValueEvents())}clear(){this.effectiveDisabled||this._selected.length===0||this.requestSelection([],[],()=>{this.emitValueEvents(),this.emit("lr-clear")})}removeTag(value,index,event){event.stopPropagation(),this._selected[index]===value&&this.removeValueAt(index)&&this.updateComplete.then(()=>{const buttons=[...this.renderRoot.querySelectorAll('[part~="tag__remove-button"]')];(buttons[Math.min(index,buttons.length-1)]??this.triggerElement)?.focus()})}typeAhead(char){this.typeBuffer.add(char,this.effectiveLocale);const navigable=this.navigableOptions();if(!navigable.length)return;const currentOption=this.open?navigable[this.activeIndex]:this._selectedOptions[this._selectedOptions.length-1],currentIndex=navigable.indexOf(currentOption),match=this.typeBuffer.match(navigable,currentIndex,option=>option.label,this.effectiveLocale,option=>this.open||!this.multiple||!this._selectedOptions.includes(option));if(match===null)return;const candidate=navigable[match];this.open?this.setActiveIndex(match,navigable):this.selectOption(candidate)}adornmentMarkup(option){return Array.from(option.children).filter(child=>["start","end","prefix","suffix"].includes(child.getAttribute("slot")??"")).map(child=>child.outerHTML).join("")}adornmentsFor(option){const cached=this.adornmentClones.get(option);if(cached)return cached;const cloneSlot=selector=>{const nodes=Array.from(option.querySelectorAll(selector));if(nodes.length!==0)return nodes.map(node=>node.cloneNode(!0))},resolved={markup:this.adornmentMarkup(option),start:cloneSlot(':scope > [slot="start"], :scope > [slot="prefix"]'),end:cloneSlot(':scope > [slot="end"], :scope > [slot="suffix"]')};return this.adornmentClones.set(option,resolved),resolved}renderRows(options,activeId){const out=[],chosen=new Set(this._selectedOptions);let currentGroup,groupRows=[],groupIndex=0;const flushGroup=()=>{if(groupRows.length!==0){if(currentGroup){const labelId=`${this.listId}-group-${groupIndex++}`;out.push(html`<div role="group" aria-labelledby=${labelId}>
1
+ import{__decorate}from"tslib";import{requestThenCommit}from"../../../internal/request-commit.js";import{VetoWriteGuard,markVetoGuardWrite}from"../../../internal/veto-write-guard.js";import{renderFormControlHintError}from"../../../internal/form-control-template.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{GlassScrollLayer}from"../../../internal/glass-scroll-layer.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{acquireNativeControlDescription}from"../../../internal/native-control-description.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{LyraFormControlElement}from"../../../internal/form-control-element.js";import{deferredPlaceReady as place,syncTopLayerRelease,topLayerPlacement}from"../../../internal/anchored-overlay-runtime.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{rtlAwarePlacement}from"../../../internal/rtl.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{activateNonmodalOverlay}from"../../../internal/nonmodal-overlay-manager.js";import{chevronIcon,closeIcon}from"../../../internal/icons.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{setCustomState,syncValidityStates}from"../../../internal/custom-states.js";import{PopupController,emitPopupEvent}from"../../../internal/popup-controller.js";import{revealRow}from"../../../internal/reveal-row.js";import{TypeAheadBuffer}from"../../../internal/type-ahead-buffer.js";import{resolveListMove}from"../../../internal/list-navigation.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{styles}from"./select.styles.js";import{sizes}from"../../../internal/sizes.styles.js";import"../combobox/option.class.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{omittedEmptyStringConverter,optionalLiteralSetConverter}from"../../../internal/converters.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{isOptionSelectedDirty,isOptionSelectedWrite,wasOptionInitiallySelected,RESET_OPTION_SELECTED_FROM_OWNER,SET_OPTION_SELECTED_FROM_OWNER}from"../../../internal/option-selection.js";import{isHtmlElement}from"../../../internal/dom-guards.js";import{tag}from"../../../internal/prefix.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_clear,LYRA_DEFAULT_loading,LYRA_DEFAULT_notInCatalog,LYRA_DEFAULT_removeWithContext,LYRA_DEFAULT_select,LYRA_DEFAULT_selectSelectedOverflow,LYRA_DEFAULT_selectValueMissing}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();function isLyraOptionElement(value){return isHtmlElement(value)&&value.localName===tag("option")}function normalizeSelectionValues(next){return Array.isArray(next)?next.filter(value=>typeof value=="string"):typeof next=="string"?[next]:[]}const POSITIONING_STRATEGY=optionalLiteralSetConverter(["absolute","fixed"]);class LyraSelect extends LyraFormControlElement{static{this.defaultStrings={...super.defaultStrings,clear:LYRA_DEFAULT_clear,loading:LYRA_DEFAULT_loading,notInCatalog:LYRA_DEFAULT_notInCatalog,removeWithContext:LYRA_DEFAULT_removeWithContext,select:LYRA_DEFAULT_select,selectSelectedOverflow:LYRA_DEFAULT_selectSelectedOverflow,selectValueMissing:LYRA_DEFAULT_selectValueMissing}}static{this.collectionSupport=collectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-input","lr-change","lr-change-request"])}static{this.identityEventDetailCollectionItems=Object.freeze({"lr-input":Object.freeze(["data"]),"lr-change":Object.freeze(["data"]),"lr-change-request":Object.freeze(["data"])})}static get validators(){return[currentValidityValidator("required","disabled","value","multiple")]}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles,srOnly]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},multiple:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},value:{noAccessor:!0},name:{reflect:!0,noAccessor:!0,converter:omittedEmptyStringConverter},maxOptionsVisible:{type:Number,attribute:"max-options-visible",noAccessor:!0},defaultValue:{attribute:"default-value",noAccessor:!0}}}get open(){return this._open}set open(next){const requested=!!next,normalized=requested&&!this.effectiveDisabled;if(normalized===this._open){requested!==normalized&&this.hasAttribute("open")&&this.removeAttribute("open");return}this.applyOpenState(normalized)}get positioningStrategy(){return this._positioningStrategy??"absolute"}set positioningStrategy(next){const normalized=POSITIONING_STRATEGY.normalize(next)??"absolute",old=this.positioningStrategy;this._positioningStrategy=normalized,normalized!==old&&(this.requestUpdate("positioningStrategy",old),old==="fixed"!=(normalized==="fixed")&&this.requestUpdate("hoist",old==="fixed"))}get hoist(){return this.positioningStrategy==="fixed"}set hoist(next){this.positioningStrategy=next?"fixed":"absolute"}focus(options){this.effectiveDisabled||this.triggerElement?.focus(options)}blur(){this.triggerElement?.blur()}click(){this.effectiveDisabled||this.triggerElement?.click()}constructor(){super(),this.placeholder="",this.label="",this.hint="",this.helpText="",this.withLabel=!1,this.withHint=!1,this.errorText="",this.autofocus=!1,this.title="",this._open=!1,this.size="m",this.appearance="outlined",this.pill=!1,this.placement="bottom",this.topLayer=!1,this.filled=!1,this.withClear=!1,this.clearable=!1,this.withUnknownOption=!1,this.loading=!1,this.autoCommitSingleOption=!1,this.activeIndex=-1,this.options=[],this.optionsObserved=!1,this.touched=!1,this.hasInteracted=!1,this.slotPresence=new SlotPresenceController(this),this._fieldsetDisabled=!1,this.listId=nextId("select-list"),this.triggerId=nextId("select-trigger"),this.valueTextId=nextId("select-value"),this.positioningReady=Promise.resolve(!1),this.restoreFocusOnClose=!0,this.popupController=new PopupController({host:this,popup:()=>this.renderRoot.querySelector('[part="listbox"]'),emit:(name,cancelable)=>emitPopupEvent(this,name,cancelable),onPointer:event=>this.onDocPointer(event)}),this.listboxHidden=!0,this.listboxRendered=!1,this.listboxPositioned=!1,this._isFirstUpdate=!0,this.openVetoed=!1,this.previousValue="",this.openStateGeneration=0,this._selected=[],this._selectedOptions=[],this._selectedValuesByOption=new Map,this.adornmentClones=new WeakMap,this._multiple=!1,this._disabled=!1,this._required=!1,this._defaultSelected=[],this._defaultSelectedOptions=[],this._defaultCaptured=!1,this._valueDirty=!1,this._restoredStateActive=!1,this._resolvingPendingInitialSelection=!1,this._defaultValueDirty=!1,this.typeBuffer=new TypeAheadBuffer(this),this._name="",this._maxOptionsVisible=3,this.localDescriptionIds="",this.markInteracted=()=>{this.hasInteracted||(this.hasInteracted=!0,this.reflectValidityStates())},this.collectOptions=e=>{this.collectOptionsFromSlot(e.target)},this.unknownOptionCache=new Map,this.optionRefreshPending=!1,this.onOptionChange=e=>{e.stopPropagation();const option=e.composedPath().find(isLyraOptionElement);if(isLyraOptionElement(option)&&this.options.includes(option)&&isOptionSelectedWrite(e)){markVetoGuardWrite(this.selectionWriteGuard),this._valueDirty=!0,this._restoredStateActive=!1;const selected=this._selectedOptions.includes(option);if(option.selected===selected&&(!selected||this._selectedValuesByOption.get(option)===option.value))return;if(option.selected&&!this.multiple){this.setSelection([option.value],[option]);return}const remaining=[...this._selectedOptions],preferred=this._selected.map(value=>{const index2=remaining.findIndex(candidate=>this._selectedValuesByOption.get(candidate)===value);return index2<0?void 0:remaining.splice(index2,1)[0]}),values=[...this._selected],index=preferred.indexOf(option);if(option.selected)index<0?(values.push(option.value),preferred.push(option)):values[index]=option.value;else{if(index<0)return;values.splice(index,1),preferred.splice(index,1)}this.setSelection(values,preferred);return}if(isLyraOptionElement(option)&&this.adornmentClones.get(option)?.markup!==this.adornmentMarkup(option)&&this.adornmentClones.delete(option),this.optionRefreshPending)return;this.optionRefreshPending=!0;const previousActive=this.activeOption,previousActiveRawIndex=previousActive?this.options.indexOf(previousActive):this.activeIndex;queueMicrotask(()=>{this.optionRefreshPending=!1,this.refreshOptionDefaults(),this.reflectSelected(),this.options=[...this.options],this.reconcileActiveOption(previousActive,previousActiveRawIndex)})},this.onDocPointer=e=>{if(!e.composedPath().includes(this)){if(this.overlayHandle?.isActive()){this.overlayHandle.dismissBackdrop();return}this.restoreFocusOnClose=!1,this.hide()}},this.selectionWriteGuard=new VetoWriteGuard,this.selectionRequestDispatching=!1,this.onTriggerClick=()=>{if(!this.effectiveDisabled){if(this.onlyOption)return this.selectOption(this.onlyOption);this.open?this.hide():this.show()}},this.onTriggerBlur=event=>{this.effectiveDisabled||(this.touched=!0,this.hasInteracted=!0,this.reflectValidityStates()),this.open&&(this.restoreFocusOnClose=!1),this.hide(),relayNativeEvent(this,event)},this.onTriggerFocus=event=>{relayNativeEvent(this,event)},this.onKeyDown=e=>{if(e.isComposing||e.keyCode===229)return;const navigable=this.navigableOptions(),move=()=>resolveListMove(e,{count:navigable.length,current:this.activeIndex,orientation:"vertical",wrap:!1,clamp:!0,backwardFromMissing:"first"});switch(e.key){case"ArrowDown":if(e.preventDefault(),this.onlyOption)return this.selectOption(this.onlyOption);if(!this.open){this.show();return}this.setActiveIndex(move()??-1,navigable);break;case"ArrowUp":if(e.preventDefault(),this.onlyOption)return this.selectOption(this.onlyOption);if(!this.open){this.show();return}this.setActiveIndex(move()??-1,navigable);break;case"Enter":case" ":if(this.open){e.preventDefault();const active=navigable[this.activeIndex];this.activeIndex>=0&&active?this.selectOption(active):this.hide()}break;case"Escape":this.open&&(!this.overlayHandle?.isActive()||this.overlayHandle.isTopmost())&&(e.preventDefault(),this.hide());break;case"Home":this.open&&(e.preventDefault(),this.setActiveIndex(move()??-1,navigable));break;case"End":this.open&&(e.preventDefault(),this.setActiveIndex(move()??-1,navigable));break;case"Backspace":case"Delete":this.multiple&&this._selected.length>0&&(e.preventDefault(),this.removeValueAt(this._selected.length-1));break;default:this.typeBuffer.accepts(e)&&this.typeAhead(e.key);break}},this.onListboxMouseDown=e=>{e.preventDefault()},this.onListboxClick=e=>{const optionEl=e.target.closest('[part="option"]'),index=Number(optionEl?.dataset.index);if(!Number.isInteger(index))return;const option=this.listboxOptions[index];option&&this.selectOption(option)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,new GlassScrollLayer(this,'[part="listbox"]',()=>this.open),this.syncFormValue()}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}[VALIDITY_ANCHOR](){return this.renderRoot?.querySelector('[part="trigger"]')??null}syncExternalDescription(){if(!this.isConnected)return;const target=this.renderRoot.querySelector('[part="trigger"]');target&&(this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireNativeControlDescription(this,target,()=>this.localDescriptionIds))}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription(),this.updateValidity(),this.hasUpdated&&this.open&&queueMicrotask(()=>this.reconnectOpenPopup())}willUpdate(changed){if(super.willUpdate(changed),this._isFirstUpdate=!this.hasUpdated,this._isFirstUpdate&&(this._pendingInitialDefaultValue!==void 0||this._pendingInitialValue!==void 0||this._pendingInitialSelectedOptions!==void 0)){this._resolvingPendingInitialSelection=!0;try{if(this._pendingInitialDefaultValue!==void 0){const pending=this._pendingInitialDefaultValue;this._pendingInitialDefaultValue=void 0,this.assignDefaultValue(pending)}if(this._pendingInitialValue!==void 0){const pending=this._pendingInitialValue;this._pendingInitialValue=void 0,this.assignValue(pending)}if(this._pendingInitialSelectedOptions!==void 0){const pending=this._pendingInitialSelectedOptions;this._pendingInitialSelectedOptions=void 0,this.selectedOptions=pending}}finally{this._resolvingPendingInitialSelection=!1}}if(this.announceOpenTransition(changed),changed.has("open")&&!this.openVetoed&&(this.listboxPositioned=!1),this.open&&(this.listboxHidden=!1,this.listboxRendered=!0),changed.has("open")&&!this.openVetoed){const navigable=this.navigableOptions();this.setActiveIndex(this.open?navigable.findIndex(option=>this._selectedOptions.includes(option)):-1,navigable)}}firstUpdated(changed){super.firstUpdated(changed);const slot=this.optionsSlot;queueMicrotask(()=>{collectInitialSlotAssignment(slot,s=>{const assigned=s.assignedElements({flatten:!0});this.optionsObserved=!0,assigned.some(isLyraOptionElement)&&this.collectOptionsFromSlot(s)})})}applyOpenState(next){const old=this._open;this.pendingOpenTransitionStart===void 0&&(this.pendingOpenTransitionStart=old),this.openStateGeneration++,this._open=next,this.requestUpdate("open",old)}forceCloseOpenState(){this.listboxHidden=!0;const isClosing=this._open||this.pendingOpenTransitionStart===!0;if(this.popupController.cancel(),!this._open){isClosing&&(this.suppressedOpenLifecycleGeneration=this.openStateGeneration),this.hasAttribute("open")&&this.removeAttribute("open");return}this.applyOpenState(!1),this.suppressedOpenLifecycleGeneration=this.openStateGeneration}announceOpenTransition(changed){if(this.openVetoed=!1,!(!changed.has("open")||this._isFirstUpdate||this.suppressedOpenLifecycleGeneration===this.openStateGeneration)){if(!this.isConnected){emitPopupEvent(this,"lr-hide",!1);return}this.openVetoed=this.popupController.announce(this.open,()=>{this.open=!this.open})}}get name(){return this._name}set name(next){const old=this._name;this._name=next??"",reflectFormName(this,this._name),this.syncFormValue(),this.requestUpdate("name",old)}get multiple(){return this._multiple}set multiple(next){markVetoGuardWrite(this.selectionWriteGuard);const old=this._multiple;this._multiple=!!next,this.toggleAttribute("multiple",this._multiple),!this._multiple&&this._selected.length>1?this.setSelection(this._selected.slice(0,1),this._selectedOptions.slice(0,1)):this.syncFormValue(),this.requestUpdate("multiple",old)}get maxOptionsVisible(){return this._maxOptionsVisible}set maxOptionsVisible(next){const old=this._maxOptionsVisible;this._maxOptionsVisible=finiteCount(next,3),this.requestUpdate("maxOptionsVisible",old)}get disabled(){return this._disabled}set disabled(next){markVetoGuardWrite(this.selectionWriteGuard);const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this._disabled&&this.forceCloseOpenState(),this.updateValidity(),this.requestUpdate("disabled",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get value(){return this.multiple?[...this._selected]:this._selected[0]??""}set value(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialValue=next),this._restoredStateActive=!1,this._valueDirty=!0;const values=normalizeSelectionValues(next);this.setSelection(values,values.map(value=>this.options.find(option=>option.value===value)))}get defaultValue(){return this.multiple?[...this._defaultSelected]:this._defaultSelected[0]??""}set defaultValue(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialDefaultValue=next),this._defaultValueDirty=!0;const old=this.multiple?[...this._defaultSelected]:this._defaultSelected[0]??"",values=normalizeSelectionValues(next);this._defaultSelected=this.multiple?[...values]:values.slice(0,1),this._defaultSelectedOptions=this.resolveOccurrences(this._defaultSelected),!this._valueDirty&&!this._restoredStateActive&&this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions]),this.requestUpdate("defaultValue",old)}get selectedOptions(){return[...this._selectedOptions]}set selectedOptions(next){!this.hasUpdated&&!this._resolvingPendingInitialSelection&&(this._pendingInitialSelectedOptions=next),this._restoredStateActive=!1,this._valueDirty=!0;const candidates=Array.isArray(next)?next:[],live=candidates.filter((option,index)=>isLyraOptionElement(option)&&this.contains(option)&&this.options.includes(option)&&candidates.indexOf(option)===index),selected=this.multiple?live:live.slice(0,1);this.setSelection(selected.map(option=>option.value),selected)}get selectedData(){return this.resolveOccurrenceSlots(this._selected,this._selectedOptions).map(option=>option?.data)}setSelection(next,preferred=[]){markVetoGuardWrite(this.selectionWriteGuard);const values=this.multiple?[...next]:next.slice(0,1),previousValues=this._selected,previousOptions=this._selectedOptions,old=this.multiple?[...previousValues]:previousValues[0]??"";this.previousValue=old,this._selected=values,this._selectedOptions=this.resolveOccurrences(values,preferred),this.syncFormValue(),this.reflectSelected(),this.updateValidity(),this.requestUpdate("value",old);const sameValues=previousValues.length===values.length&&previousValues.every((value,i)=>value===values[i]),sameOptions=previousOptions.length===this._selectedOptions.length&&previousOptions.every((option,i)=>option===this._selectedOptions[i]);sameValues&&!sameOptions&&this.requestUpdate()}resolveOccurrences(values,preferred=[]){return this.resolveOccurrenceSlots(values,preferred).filter(option=>option!==void 0)}resolveOccurrenceSlots(values,preferred=[]){const claimed=new Set;return values.map((value,index)=>{const hint=preferred.length===values.length?preferred[index]:preferred.find(option=>option?.value===value&&!claimed.has(option)),match=hint&&hint.value===value&&this.options.includes(hint)&&!claimed.has(hint)?hint:this.options.find(option=>option.value===value&&!claimed.has(option));if(match)return claimed.add(match),match})}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}updateValidity(){this.barredFromValidation?this.validityController.setValidity({}):this.required&&this._selected.length===0?this.validityController.setValidity({valueMissing:!0},this.localize("selectValueMissing")):this.validityController.setValidity({}),this.reflectValidityStates()}reflectValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this.hasInteracted,barred:this.barredFromValidation}),setCustomState(this.internals,"blank",this._selected.length===0)}syncFormValue(){if(!this.multiple){this.internals.setFormValue(this._selected[0]??"");return}const state2=JSON.stringify(this._selected);if(!this.name){this.internals.setFormValue(null,state2);return}const data=new FormData;for(const value of this._selected)data.append(this.name,value);this.internals.setFormValue(data,state2)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}formResetCallback(){this.touched=!1,this.hasInteracted=!1,this._restoredStateActive=!1,this._valueDirty=!1;const resetOptions=this._defaultSelectedOptions.length>0?this._defaultSelectedOptions:this.options.filter(option=>wasOptionInitiallySelected(option));this._defaultSelectedOptions.length===0&&resetOptions.length>0&&(this._defaultSelectedOptions=[...resetOptions],this._defaultSelected=resetOptions.map(option=>option.value));const defaults=new Set(resetOptions);for(const option of this.options)option[RESET_OPTION_SELECTED_FROM_OWNER](defaults.has(option));this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions])}formStateRestoreCallback(state2,reason){if(!this.multiple)this.assignValue(typeof state2=="string"?state2:void 0);else{let restored=[];if(typeof state2=="string")try{const parsed=JSON.parse(state2);Array.isArray(parsed)&&parsed.every(entry=>typeof entry=="string")&&(restored=parsed)}catch{}this.assignValue(restored)}this._restoredStateActive=!0,this._valueDirty=!0}formDisabledCallback(disabled){if(this.validityController?.reflectingDisabled)return;markVetoGuardWrite(this.selectionWriteGuard);const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=disabled,wasDisabled!==this.effectiveDisabled&&(disabled&&this.forceCloseOpenState(),this.updateValidity(),this.requestUpdate())}checkValidity(){return this.validityController.checkValidity(()=>this.updateValidity())}reportValidity(){return this.validityController.syncConstraints(),this.updateValidity(),this.hasInteracted=!0,this.reflectValidityStates(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.reflectValidityStates()}resetValidity(){this.setCustomValidity("")}disconnectedCallback(){markVetoGuardWrite(this.selectionWriteGuard),this.listboxHidden=!0,this.releaseExternalDescription(),this.popupController.cancel(),super.disconnectedCallback(),this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.typeBuffer.clear(),this.overlayHandle?.deactivate({restoreFocus:!1}),this.overlayHandle=void 0,this.popupController.unbindPointer(),this.open=!1}adoptedCallback(){markVetoGuardWrite(this.selectionWriteGuard),super.adoptedCallback(),this.popupController.cancel(),this.releaseExternalDescription(),this.hasUpdated&&this.syncExternalDescription(),this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.overlayHandle?.deactivate({restoreFocus:!1}),this.overlayHandle=void 0,this.popupController.unbindPointer(),this.typeBuffer.clear(),queueMicrotask(()=>this.reconnectOpenPopup())}collectOptionsFromSlot(slot){const previous=new Set(this.options),previousActive=this.activeOption,previousActiveRawIndex=previousActive?this.options.indexOf(previousActive):this.activeIndex;if(this.options=slot.assignedElements({flatten:!0}).filter(isLyraOptionElement),this.optionsObserved=!0,this.adornmentClones=new WeakMap,this.reconcileActiveOption(previousActive,previousActiveRawIndex),this._defaultCaptured){const newDefaults=this.options.filter(option=>!previous.has(option)&&option.defaultSelected),newLive=this.options.filter(option=>!previous.has(option)&&option.selected&&!option.defaultSelected);this.refreshOptionDefaults();const eligible=[...!this._restoredStateActive&&!this._valueDirty?newDefaults:[],...this._restoredStateActive?[]:newLive];if(eligible.length>0){const added=this.multiple?eligible:eligible.slice(-1),occurrences=this.multiple?[...new Set([...this._selectedOptions,...added])]:added;newLive.length>0&&(this._valueDirty=!0),this.setSelection(occurrences.map(option=>option.value),occurrences);return}}else{this._defaultCaptured=!0;const explicitDefault=this.hasAttribute("default-value")||this._defaultValueDirty,allDefaults=this.options.filter(option=>option.defaultSelected),defaults=this.multiple?allDefaults:allDefaults.slice(0,1),allLive=this.options.filter(option=>option.selected),live=this.multiple?allLive:allLive.slice(0,1),initialLive=this.options.filter(option=>wasOptionInitiallySelected(option)),optionDirty=this.options.some(option=>isOptionSelectedDirty(option)),dirtySelected=this.options.filter(option=>isOptionSelectedDirty(option)&&option.selected);if(explicitDefault)this._defaultSelectedOptions=this.resolveOccurrences(this._defaultSelected);else{const resetOptions=defaults.length>0?defaults:initialLive.length>0?initialLive:live;this._defaultSelected=resetOptions.map(option=>option.value),this._defaultSelectedOptions=[...resetOptions]}const fromDefaults=explicitDefault||defaults.length>0,initial=optionDirty?this.multiple?allLive:dirtySelected.slice(-1)[0]?dirtySelected.slice(-1):live:explicitDefault?this._defaultSelectedOptions:fromDefaults?defaults:live;if(initial.length>0&&!this._restoredStateActive&&!this._valueDirty){(!fromDefaults||optionDirty)&&(this._valueDirty=!0),this.setSelection(initial.map(option=>option.value),[...initial]);return}if(optionDirty&&(this._valueDirty=!0),explicitDefault&&!this._valueDirty&&!this._restoredStateActive){this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions]);return}}this.reflectSelected()}refreshOptionDefaults(){if(this.hasAttribute("default-value")||this._defaultValueDirty)return;const declared=this.options.filter(option=>option.defaultSelected),defaults=this.multiple?declared:declared.slice(0,1);this._defaultSelected=defaults.map(option=>option.value),this._defaultSelectedOptions=[...defaults],!this._valueDirty&&!this._restoredStateActive&&this.setSelection([...this._defaultSelected],[...this._defaultSelectedOptions])}reflectSelected(){this._selectedOptions=this.resolveOccurrences(this._selected,this._selectedOptions),this._selectedValuesByOption=new Map(this._selectedOptions.map(option=>[option,option.value]));const chosen=new Set(this._selectedOptions);for(const option of this.options)option[SET_OPTION_SELECTED_FROM_OWNER](chosen.has(option))}selectUnknownValue(value){if(!(this.selectionRequestDispatching||this.effectiveDisabled)){if(this.multiple){const index=this._selected.indexOf(value),values=index>=0?this._selected.filter((_,position)=>position!==index):[...this._selected,value];this.requestSelection(values,this.resolveOccurrenceSlots(values,this._selectedOptions),()=>{this.emitValueEvents(),this.emit("lr-activate",{value})});return}this.hide(),this.emit("lr-activate",{value})}}resolvedLabelFor(value,occurrenceIndex=0){const option=(this._selectedOptions[occurrenceIndex]?.value===value?this._selectedOptions[occurrenceIndex]:void 0)??this._selectedOptions.find(candidate=>candidate.value===value)??this.options.find(candidate=>candidate.value===value);return option&&(option.label||option.value)}labelFor(value,occurrenceIndex=0){const resolved=this.resolvedLabelFor(value,occurrenceIndex);if(resolved!==void 0)return resolved;if(this.loading)return this.localize("loading");const override=this.optionsObserved?this.getUnknownLabel?.(value):void 0;return override!==void 0&&override.trim().length>0?override:value}isUnknownValue(value,occurrenceIndex=0){return!this.optionsObserved||this.loading||value===""?!1:this.resolvedLabelFor(value,occurrenceIndex)===void 0}get onlyOption(){if(!this.autoCommitSingleOption)return;const navigable=this.navigableOptions(this.options);return navigable.length===1?navigable[0]:void 0}isOptionAvailable(option){return!option.disabled&&!option.inert&&!option.closest("[inert]")}navigableOptions(options=this.listboxOptions){return options.filter(option=>this.isOptionAvailable(option))}get unknownValues(){return this.withUnknownOption?this._selected.filter((value,index)=>this.isUnknownValue(value,index)):[]}get unknownOptions(){const values=this.unknownValues;if(values.length===0)return this.unknownOptionCache.clear(),[];for(const key of[...this.unknownOptionCache.keys()])values.includes(key)||this.unknownOptionCache.delete(key);return values.map(value=>{let option=this.unknownOptionCache.get(value);return option||(option=this.ownerDocument.createElement(tag("option")),this.unknownOptionCache.set(value,option)),option.value=value,option.label=this.labelFor(value),option})}get listboxOptions(){const unknown=this.unknownOptions;return unknown.length===0?this.options:[...this.options,...unknown]}setActiveIndex(next,navigable=this.navigableOptions()){if(next<0||navigable.length===0){this.activeIndex=-1,this.activeOption=void 0;return}const index=Math.min(next,navigable.length-1);this.activeIndex=index,this.activeOption=navigable[index]}reconcileActiveOption(previousActive,previousRawIndex){if(!previousActive&&this.activeIndex<0)return;const navigable=this.navigableOptions();if(previousActive){const preservedIndex=navigable.indexOf(previousActive);if(preservedIndex>=0){this.setActiveIndex(preservedIndex,navigable);return}}if(navigable.length===0){this.setActiveIndex(-1,navigable);return}const pivot=Math.max(0,previousRawIndex);let nearestIndex=0,nearestDistance=Number.POSITIVE_INFINITY,nearestRawIndex=-1;navigable.forEach((option,index)=>{const rawIndex=this.listboxOptions.indexOf(option),distance=Math.abs(rawIndex-pivot);(distance<nearestDistance||distance===nearestDistance&&rawIndex>=pivot&&nearestRawIndex<pivot)&&(nearestIndex=index,nearestDistance=distance,nearestRawIndex=rawIndex)}),this.setActiveIndex(nearestIndex,navigable)}show(){if(this.open||this.effectiveDisabled)return Promise.resolve();const settled=this.popupController.wait(!0);return this.open=!0,settled}hide(){if(!this.open)return Promise.resolve();const settled=this.popupController.wait(!1);return this.open=!1,settled}positionListbox(){this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=this.effectiveDirection;const anchor=this.renderRoot.querySelector('[part="trigger"]'),listbox=this.renderRoot.querySelector('[part="listbox"]');if(!anchor||!listbox)return;this.placedTopLayer=syncTopLayerRelease(listbox,this.placedTopLayer,this.topLayer),this.cleanup=place(anchor,listbox,{placement:rtlAwarePlacement(this.placement,this),...topLayerPlacement(this.topLayer,resolveEffectivePositioningStrategy(this,this._positioningStrategy,"absolute")),sync:this.sync});const operation=this.cleanup;this.positioningReady=operation.ready.then(positioned=>(positioned&&this.cleanup===operation&&this.open&&this.isConnected&&(this.listboxPositioned=!0,this.revealActiveOption()),positioned))}revealActiveOption(){if(!this.isConnected||!this.open||!this.listboxPositioned||!this.cleanup)return;const listbox=this.renderRoot.querySelector('[part="listbox"]'),activeId=this.triggerElement?.getAttribute("aria-activedescendant"),row=listbox?.querySelector('[part="option"][data-active]');listbox&&row&&activeId&&row.id===activeId&&revealRow(listbox,row)}activateListboxOverlay(){this.cleanup?.(),this.cleanup=void 0,this.overlayHandle?.deactivate({restoreFocus:!1}),this.restoreFocusOnClose=!0,this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this.renderRoot.querySelector('[part="listbox"]'),onEscape:()=>{this.hide()},onBackdrop:()=>{this.restoreFocusOnClose=!1,this.hide()},restoreFocusTo:this.triggerElement??null}),this.popupController.bindPointer(),this.positionListbox()}teardownListboxOverlay(restoreFocus=this.restoreFocusOnClose){this.cleanup?.(),this.cleanup=void 0,this.positionedDirection=void 0,this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0,this.popupController.unbindPointer(),this.restoreFocusOnClose=!0}reconnectOpenPopup(){!this.isConnected||!this.open||this.activateListboxOverlay()}updated(changed){super.updated(changed),this.syncExternalDescription();const suppressOpenLifecycle=changed.has("open")&&this.suppressedOpenLifecycleGeneration===this.openStateGeneration,shouldRefreshPosition=this.open&&this.isConnected&&(changed.has("placement")||changed.has("positioningStrategy")||changed.has("topLayer")||changed.has("sync")||this.positionedDirection!==this.effectiveDirection);changed.has("open")&&!this.openVetoed?this.open&&this.isConnected?(this.activateListboxOverlay(),!this._isFirstUpdate&&!suppressOpenLifecycle&&this.settleTransition("lr-after-show")):this.open?this.teardownListboxOverlay(!1):(this.teardownListboxOverlay(),!this._isFirstUpdate&&!suppressOpenLifecycle&&this.settleTransition("lr-after-hide")):changed.has("open")&&this.openVetoed?(this.restoreFocusOnClose=!0,shouldRefreshPosition&&this.positionListbox()):shouldRefreshPosition&&this.positionListbox(),(changed.has("activeIndex")||changed.has("options")||changed.has("listboxPositioned"))&&this.revealActiveOption(),(changed.has("touched")||changed.has("required")||changed.has("value"))&&this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid),changed.has("open")&&(this.pendingOpenTransitionStart=void 0,this.suppressedOpenLifecycleGeneration=void 0)}settleTransition(event){return this.popupController.settle(event,{waitForPosition:async stale=>{for(;this.open;){const readiness=this.positioningReady,positioned=await readiness;if(stale())return!1;if(positioned)break;if(readiness===this.positioningReady)return this.forceCloseOpenState(),!1}return!0},conceal:()=>{this.listboxHidden=!0}})}emitValueEvents(){const self=this,data=this.selectedData,value=self.value,previousValue=this.previousValue;dispatchNativeInputEvent(this),self.emit("lr-input",{value,previousValue,data}),dispatchNativeEvent(this,"change"),self.emit("lr-change",{value,previousValue,data})}assignValue(next){this.value=next}assignDefaultValue(next){this.defaultValue=next}requestSelection(values,preferred,afterCommit,available=()=>!0){if(this.selectionRequestDispatching||this.effectiveDisabled)return!1;const multiple=this.multiple,document=this.ownerDocument,connected=this.isConnected,open=this.open,slots=this.resolveOccurrenceSlots(values,preferred),data=slots.map(option=>option?.data),value=multiple?[...values]:values[0]??"",previousValue=this.value,self=this;let committed=!1;this.selectionRequestDispatching=!0;try{requestThenCommit({requestDetail:{value,previousValue,data},guard:this.selectionWriteGuard,emitRequest:(detail,init)=>self.emit("lr-change-request",detail,init),commit:()=>{const liveOptions=new Set(this.renderRoot.querySelector("slot:not([name])")?.assignedElements({flatten:!0})??[]);this.effectiveDisabled||this.multiple!==multiple||this.ownerDocument!==document||this.isConnected!==connected||this.open!==open||!available(liveOptions)||slots.some((option,index)=>option&&(!liveOptions.has(option)||option.value!==values[index]||!Object.is(option.data,data[index])))||(this.hasInteracted=!0,this._restoredStateActive=!1,this._valueDirty=!0,this.setSelection(values,preferred),committed=!0,afterCommit())}})}finally{this.selectionRequestDispatching=!1}return committed}selectOption(option){if(this.selectionRequestDispatching||this.effectiveDisabled||!this.isOptionAvailable(option))return;if(this.unknownOptionCache.get(option.value)===option){this.selectUnknownValue(option.value);return}const value=option.value,available=liveOptions=>liveOptions.has(option)&&option.value===value&&this.isOptionAvailable(option);if(this.multiple){const currentSlots=this.resolveOccurrenceSlots(this._selected,this._selectedOptions),selectedIndex=currentSlots.indexOf(option),selected=selectedIndex>=0,occurrences=selected?currentSlots.filter((_,index)=>index!==selectedIndex):[...currentSlots,option],values=selected?this._selected.filter((_,index)=>index!==selectedIndex):[...this._selected,value];this.requestSelection(values,occurrences,()=>{this.emitValueEvents(),this.emit("lr-activate",{value})},available);return}if(!(option!==this._selectedOptions[0]||value!==this._selected[0])){this.hide(),this.emit("lr-activate",{value});return}this.requestSelection([value],[option],()=>{this.hide(),this.emitValueEvents(),this.emit("lr-activate",{value})},available)}removeValueAt(index){return this.effectiveDisabled||index<0||index>=this._selected.length?!1:this.requestSelection(this._selected.filter((_,candidateIndex)=>candidateIndex!==index),this.resolveOccurrenceSlots(this._selected,this._selectedOptions).filter((_,candidateIndex)=>candidateIndex!==index),()=>this.emitValueEvents())}clear(){this.effectiveDisabled||this._selected.length===0||this.requestSelection([],[],()=>{this.emitValueEvents(),this.emit("lr-clear")})}removeTag(value,index,event){event.stopPropagation(),this._selected[index]===value&&this.removeValueAt(index)&&this.updateComplete.then(()=>{const buttons=[...this.renderRoot.querySelectorAll('[part~="tag__remove-button"]')];(buttons[Math.min(index,buttons.length-1)]??this.triggerElement)?.focus()})}typeAhead(char){this.typeBuffer.add(char,this.effectiveLocale);const navigable=this.navigableOptions();if(!navigable.length)return;const currentOption=this.open?navigable[this.activeIndex]:this._selectedOptions[this._selectedOptions.length-1],currentIndex=navigable.indexOf(currentOption),match=this.typeBuffer.match(navigable,currentIndex,option=>option.label,this.effectiveLocale,option=>this.open||!this.multiple||!this._selectedOptions.includes(option));if(match===null)return;const candidate=navigable[match];this.open?this.setActiveIndex(match,navigable):this.selectOption(candidate)}adornmentMarkup(option){return Array.from(option.children).filter(child=>["start","end","prefix","suffix"].includes(child.getAttribute("slot")??"")).map(child=>child.outerHTML).join("")}adornmentsFor(option){const cached=this.adornmentClones.get(option);if(cached)return cached;const cloneSlot=selector=>{const nodes=Array.from(option.querySelectorAll(selector));if(nodes.length!==0)return nodes.map(node=>node.cloneNode(!0))},resolved={markup:this.adornmentMarkup(option),start:cloneSlot(':scope > [slot="start"], :scope > [slot="prefix"]'),end:cloneSlot(':scope > [slot="end"], :scope > [slot="suffix"]')};return this.adornmentClones.set(option,resolved),resolved}renderRows(options,activeId){const out=[],chosen=new Set(this._selectedOptions);let currentGroup,groupRows=[],groupIndex=0;const flushGroup=()=>{if(groupRows.length!==0){if(currentGroup){const labelId=`${this.listId}-group-${groupIndex++}`;out.push(html`<div role="group" aria-labelledby=${labelId}>
2
2
  <div id=${labelId} class="group-label" part="group-label">${currentGroup}</div>
3
3
  ${groupRows}
4
4
  </div>`)}else out.push(...groupRows);groupRows=[]}};return options.forEach((o,i)=>{o.group!==currentGroup&&(flushGroup(),currentGroup=o.group);const id=`${this.listId}-opt-${i}`,unknown=this.unknownOptionCache.get(o.value)===o,selected=unknown||chosen.has(o),adornments=this.adornmentsFor(o);groupRows.push(html`<div
@@ -8,6 +8,7 @@ import{__decorate}from"tslib";import{requestThenCommit}from"../../../internal/re
8
8
  data-index=${i}
9
9
  data-value=${o.value}
10
10
  ?data-unknown-value=${unknown}
11
+ title=${o.title||nothing}
11
12
  aria-selected=${selected?"true":"false"}
12
13
  aria-disabled=${this.isOptionAvailable(o)?"false":"true"}
13
14
  ?data-active=${id===activeId}
@@ -23,7 +24,7 @@ import{__decorate}from"tslib";import{requestThenCommit}from"../../../internal/re
23
24
  </span>
24
25
  ${unknown?html`<span part="option-badge">${this.localize("notInCatalog")}</span>`:""}
25
26
  ${adornments.end?renderInertPresentation(adornments.end,{part:"option-end"}):""}
26
- </div>`)}),flushGroup(),out}renderTag(value,index){const option=(this._selectedOptions[index]?.value===value?this._selectedOptions[index]:void 0)??this.options.find(candidate=>candidate.value===value);if(this.getTag&&option)return this.getTag(option,index);const label=this.labelFor(value,index),unknown=this.isUnknownValue(value,index);return html`<span part="tag tag__base" ?data-unknown-value=${unknown}>
27
+ </div>`)}),flushGroup(),out}renderTag(value,index){const option=(this._selectedOptions[index]?.value===value?this._selectedOptions[index]:void 0)??this.options.find(candidate=>candidate.value===value);if(this.getTag&&option)return this.getTag(option,index);const label=this.labelFor(value,index),unknown=this.isUnknownValue(value,index);return html`<span part="tag tag__base" title=${option?.title||nothing} ?data-unknown-value=${unknown}>
27
28
  <span part="tag-label"
28
29
  ><span part="tag__content" aria-hidden="true">${label}</span
29
30
  >${unknown?html`<span part="unknown-value" aria-hidden="true">${this.localize("notInCatalog")}</span>`:""}</span
@@ -1,4 +1,4 @@
1
- import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import type{LyraSize}from'../../../internal/variants.js';import type{LyraOrientation}from'../../../internal/shared-unions.js';import{type LyraFormValidator}from'../form-validator.js';
1
+ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{LyraFormControlElement}from'../../../internal/form-control-element.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import type{LyraSize}from'../../../internal/variants.js';import type{LyraOrientation}from'../../../internal/shared-unions.js';import{type LyraFormValidator}from'../form-validator.js';
2
2
  /** The value axis. `'horizontal'` maps values to the inline axis (mirroring
3
3
  * under RTL), `'vertical'` to the block axis with the domain minimum at the
4
4
  * block end. */
@@ -20,7 +20,7 @@ export type SliderValueFormatter=(value:number,handle:SliderHandle)=>string|null
20
20
  /** Payload of `lr-input`/`lr-change`. `value` is the value of the handle that
21
21
  * moved and `handle` says which one that was; `minValue`/`maxValue` always
22
22
  * carry both range-handle positions. */
23
- export interface LyraSliderChangeDetail{value:number;minValue:number;maxValue:number;handle:SliderHandle;}export interface LyraSliderEventMap{input:InputEvent;change:Event;'lr-input':CustomEvent<LyraSliderChangeDetail>;'lr-change':CustomEvent<LyraSliderChangeDetail>;focus:FocusEvent;blur:FocusEvent;'lr-invalid':CustomEvent<null>;}declare class LyraSliderBase extends LyraElement<LyraSliderEventMap>{}
23
+ export interface LyraSliderChangeDetail{value:number;minValue:number;maxValue:number;handle:SliderHandle;}export interface LyraSliderEventMap{input:InputEvent;change:Event;'lr-input':CustomEvent<LyraSliderChangeDetail>;'lr-change':CustomEvent<LyraSliderChangeDetail>;focus:FocusEvent;blur:FocusEvent;'lr-invalid':CustomEvent<null>;}declare class LyraSliderBase extends LyraFormControlElement<LyraSliderEventMap>{}
24
24
  /**
25
25
  * `<lr-slider>` — a numeric range control (e.g. an LLM "temperature"
26
26
  * setting), form-associated. Its live `value` and reflected/reset `defaultValue` are numbers;
@@ -202,7 +202,7 @@ get name():string|null;set name(next:string|null);
202
202
  get required():boolean;set required(next:boolean);
203
203
  /** Prevents focus, user edits, and form submission.
204
204
  * @default false */
205
- get disabled():boolean;set disabled(next:boolean);get effectiveDisabled():boolean;get form():HTMLFormElement|null;set form(owner:FormOwnerValue);getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;
205
+ get disabled():boolean;set disabled(next:boolean);get effectiveDisabled():boolean;get form():HTMLFormElement|null;set form(owner:FormOwnerValue);
206
206
  /** Lower domain bound.
207
207
  * @default 0 */
208
208
  get min():number;set min(next:number);
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{RangeDragController,rangePointerRatio,nearestRangeEnd,RANGE_PAGE_STEP_MULTIPLIER}from"../../../internal/range-drag.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{setCustomState,syncValidityStates}from"../../../internal/custom-states.js";import{falseDefaultBooleanConverter,literalSetConverter}from"../../../internal/converters.js";import{sizes}from"../../../internal/sizes.styles.js";import{isRtl}from"../../../internal/rtl.js";import{finiteInterpolate,finiteNumber,finiteRange,finiteRatio,isSliderKey}from"../../../internal/numbers.js";import{clampSteppedValue}from"../../../internal/step-value.js";import{styles}from"./slider.styles.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{activeElementIn}from"../../../internal/active-element.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_rangeEnd,LYRA_DEFAULT_rangeStart,LYRA_DEFAULT_sliderLabel}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();const MAX_MARKER_INTERVALS=100,HINT_ID="slider-hint",ERROR_ID="slider-error",LABEL_ID="slider-label",SLIDER_ORIENTATION=literalSetConverter(["horizontal","vertical"],"horizontal");class LyraSliderBase extends LyraElement{}class LyraSlider extends LyraSliderBase{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,rangeEnd:LYRA_DEFAULT_rangeEnd,rangeStart:LYRA_DEFAULT_rangeStart,sliderLabel:LYRA_DEFAULT_sliderLabel}}static get validators(){return[currentValidityValidator("required","disabled","value","min","max","step")]}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:"value",type:Number,reflect:!0,useDefault:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},min:{type:Number,noAccessor:!0},max:{type:Number,noAccessor:!0},step:{type:Number,noAccessor:!0},range:{type:Boolean,reflect:!0,noAccessor:!0},minValue:{type:Number,attribute:"min-value",noAccessor:!0},maxValue:{type:Number,attribute:"max-value",noAccessor:!0},size:{reflect:!0}}}captureValueBatch(){return this.pendingValueBatch||(this.pendingValueBatch={value:this._value,min:this._minValue,max:this._maxValue},this.requestUpdate()),this.pendingValueBatch}constructor(){super(),this.size="m",this._value=0,this._defaultValue=0,this._valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._name=null,this._required=!1,this._disabled=!1,this._fieldsetDisabled=!1,this._hasInteracted=!1,this._min=0,this._max=100,this._step=1,this._range=!1,this._minValue=0,this._maxValue=50,this._minValueDirty=!1,this._maxValueDirty=!1,this.applyingRangeValueAttribute=!1,this._defaultMinValue=0,this._defaultMaxValue=50,this.label="",this.hint="",this.helpText="",this.errorText="",this.withLabel=!1,this.withHint=!1,this.autofocus=!1,this.orientation="horizontal",this.readonly=!1,this.withMarkers=!1,this.withTooltip=!1,this.tooltipPlacement="top",this.tooltipDistance=8,this.tooltip="none",this.withValue=!1,this.valueDisplay="numeric",this.valuePlacement="inline",this.slotPresence=new SlotPresenceController(this),this.dragController=new RangeDragController(this,event=>this.onPointerMove(event),event=>this.onPointerUp(event)),this.pendingKeyHandle=null,this.focusedHandle=null,this.rangeFocusGeneration=0,this.markInteracted=()=>{this._hasInteracted||(this._hasInteracted=!0,this.syncValidityStates())},this.markFocusoutInteracted=()=>{this.effectiveDisabled||this.matches(":disabled")||this.rangeFocusTransfer||this.markInteracted()},this.onKeyDown=(handle,e)=>{if(!this.interactive)return;const current=this.valueForHandle(handle),rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft",bounds=this.reachableBounds(handle),move=next=>{e.preventDefault(),this.assignValueFor(handle,next)&&(this.pendingKeyHandle=handle,this.emitInput(handle))};e.key===forwardKey||e.key==="ArrowUp"?move(this.directionalStep(current,1)):e.key===backwardKey||e.key==="ArrowDown"?move(this.directionalStep(current,-1)):e.key==="PageUp"?move(this.directionalStep(current,RANGE_PAGE_STEP_MULTIPLIER)):e.key==="PageDown"?move(this.directionalStep(current,-RANGE_PAGE_STEP_MULTIPLIER)):e.key==="Home"?move(bounds.min):e.key==="End"&&move(bounds.max)},this.onKeyUp=e=>{if(!this.interactive||!isSliderKey(e.key))return;const handle=this.pendingKeyHandle;handle!==null&&(this.pendingKeyHandle=null,this.emitChange(handle))},this.onPointerDown=(handle,e)=>{!this.interactive||e.button!==0||this.beginDrag(e,handle,e.target,this.trackRect(),isRtl(this))},this.onBasePointerDown=e=>{if(!this.interactive||e.button!==0)return;const thumbs=Array.from(this.renderRoot.querySelectorAll('[part~="thumb"]'));if(thumbs.length===0||thumbs.includes(e.target))return;const rect=this.trackRect();if(!rect)return;const rtl=isRtl(this),{lo,hi}=this.domain(),target=finiteInterpolate(lo,hi,this.ratioFromPointer(e,rect,rtl)),handle=this.range?this.nearestHandle(target):"value",thumb=this.handleElement(handle)??thumbs[0];if(!thumb)return;const drag=this.beginDrag(e,handle,thumb,rect,rtl);drag&&(this.setValueFor(handle,target,!1)&&(drag.changed=!0),thumb.focus())},this.onPointerMove=e=>{const drag=this.drags.get(e.pointerId);if(drag===void 0)return;if(!this.interactive){this.endDrag(e.pointerId,!1);return}if(!drag.rect)return;const{lo,hi}=this.domain(),value=finiteInterpolate(lo,hi,this.ratioFromPointer(e,drag.rect,drag.rtl));this.setValueFor(drag.handle,value,!1)&&(drag.changed=!0)},this.onPointerUp=e=>{this.endDrag(e.pointerId,e.type==="pointerup"&&this.interactive)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.internals.setFormValue("0","0"),this.addEventListener("input",this.markInteracted),this.addEventListener("change",this.markInteracted),this.addEventListener("focusout",this.markFocusoutInteracted),this.syncValidityStates()}get value(){return this._value}set value(next){const old=this._value;this.settingDefaultValue||(this._valueDirty=!0);const raw=finiteNumber(Number(next),this.defaultNumericValue());this.captureValueBatch().value=raw,this._value=this.clampValue(raw),this.syncFormValue(),this.requestUpdate("value",old)}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const old=this._defaultValue;this._defaultValue=next==null?0:finiteNumber(Number(next),0),this.reflectingDefaultValue=!0;try{next==null?this.removeAttribute("value"):this.setAttribute("value",String(this._defaultValue))}finally{this.reflectingDefaultValue=!1}this._valueDirty||this.restoreLiveValueFromDefault(),this.requestUpdate("defaultValue",old)}get valueAsNumber(){return this.value}set valueAsNumber(next){this.value=next}get valueAsString(){return String(this.value)}set valueAsString(next){this.value=next}get name(){return this._name}set name(next){const old=this._name;this._name=next||null,reflectFormName(this,this._name),this.syncFormValue(),this.requestUpdate("name",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this._disabled&&(this.pendingKeyHandle=null,this.abortActiveDrags()),this.syncInteractionStates(),this.syncValidityStates(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}getForm(){return getFormOwner(this.internals)}get labels(){return this.internals.labels}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}get min(){return this._min}set min(next){this.captureValueBatch();const old=this._min;this._min=finiteNumber(next,0),this.requestUpdate("min",old),this.sanitizeCurrentValue()}get max(){return this._max}set max(next){this.captureValueBatch();const old=this._max;this._max=finiteNumber(next,100),this.requestUpdate("max",old),this.sanitizeCurrentValue()}get step(){return this._step}set step(next){this.captureValueBatch();const old=this._step;this._step=next==null?1:finiteRange(next,0,0),this.requestUpdate("step",old),this.sanitizeCurrentValue()}get range(){return this._range}set range(next){const old=this._range;this._range=!!next,this.requestUpdate("range",old),this.syncFormValue()}get isRange(){return this.range}get minValue(){return this._minValue}set minValue(next){const batch=this.captureValueBatch();batch.min=finiteNumber(next,0),batch.lastRange="min";const old=this._minValue;if(this.applyingRangeValueAttribute||(this._minValueDirty=!0),this._minValue=this.clampValue(finiteNumber(next,0)),this._minValue>this._maxValue){const oldMax=this._maxValue;this._maxValue=this._minValue,this.applyingRangeValueAttribute||(this._maxValueDirty=!0),this.requestUpdate("maxValue",oldMax)}this.syncFormValue(),this.requestUpdate("minValue",old)}get maxValue(){return this._maxValue}set maxValue(next){const batch=this.captureValueBatch();batch.max=finiteNumber(next,50),batch.lastRange="max";const old=this._maxValue;if(this.applyingRangeValueAttribute||(this._maxValueDirty=!0),this._maxValue=this.clampValue(finiteNumber(next,50)),this._maxValue<this._minValue){const oldMin=this._minValue;this._minValue=this._maxValue,this.applyingRangeValueAttribute||(this._minValueDirty=!0),this.requestUpdate("minValue",oldMin)}this.syncFormValue(),this.requestUpdate("maxValue",old)}requestUpdate(...args){args[0]==="readonly"&&this.readonly&&(this.pendingKeyHandle=null,this.abortActiveDrags()),super.requestUpdate(...args)}get hasHintSlot(){return this.slotPresence.has("hint")||this.slotPresence.has("help-text")}get hasErrorSlot(){return this.slotPresence.has("error")}get hasLabelSlot(){return this.slotPresence.has("label")}get hasReferenceSlot(){return this.slotPresence.has("reference")}get drags(){return this.dragController.active}syncExternalDescription(){const primary=this.isConnected?this.range?this.handleElement("min"):this.firstThumb():null;primary?this.externalDescriptionLease?this.externalDescriptionLease.update(primary):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,primary,"aria-describedby"):(this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0);const secondary=this.isConnected&&this.range?this.handleElement("max"):null;secondary?this.externalDescriptionLeaseMax?this.externalDescriptionLeaseMax.update(secondary):this.externalDescriptionLeaseMax=acquireResolvedAriaRelationship(this,secondary,"aria-describedby"):(this.externalDescriptionLeaseMax?.release(),this.externalDescriptionLeaseMax=void 0)}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0,this.externalDescriptionLeaseMax?.release(),this.externalDescriptionLeaseMax=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription(),this._valueDirty?this.sanitizeCurrentValue():this.restoreLiveValueFromDefault(),this._minValueDirty||(this._minValue=this.clampValue(this._defaultMinValue)),this._maxValueDirty||(this._maxValue=this.clampValue(this._defaultMaxValue)),this.sanitizeHandles(),this.syncFormValue(),this.updateValidity(),this.syncInteractionStates()}willUpdate(changed){if(super.willUpdate(changed),this.pendingValueBatch&&(this.sanitizeCurrentValue(),this.pendingValueBatch=void 0),!changed.has("range")||!this.hasUpdated)return;const active=activeElementIn(this.shadowRoot);if(active?.matches('[part~="thumb"]')){const target=this.range?"min":"value";this.rangeFocusTransfer={origin:active,target},this.focusedHandle=target,this.syncInteractionStates(),this.rangeFocusGeneration++}this.pendingKeyHandle=null,this.abortActiveDrags()}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("readonly")&&this.syncValidityStates(),!changed.has("range"))return;const transfer=this.rangeFocusTransfer;if(this.rangeFocusTransfer=void 0,!transfer)return;const generation=this.rangeFocusGeneration;this.scheduleAfterUpdate(()=>{if(generation!==this.rangeFocusGeneration||!this.isConnected||this.effectiveDisabled)return;const internalActive=activeElementIn(this.shadowRoot),documentActive=activeElementIn(this.ownerDocument),focusStayedAtOrigin=internalActive===transfer.origin,originWasRemovedWithoutReplacement=internalActive===null&&(documentActive===null||documentActive===this||documentActive===this.ownerDocument.body);if(!focusStayedAtOrigin&&!originWasRemovedWithoutReplacement)return;this.handleElement(transfer.target)?.focus()},"slider-range-focus")}firstUpdated(changed){if(super.firstUpdated(changed),!this.autofocus)return;const owner=this.ownerDocument.defaultView;if(!owner)return;const handle=owner.requestAnimationFrame(()=>{this.autofocusFrame?.owner!==owner||this.autofocusFrame.handle!==handle||(this.autofocusFrame=void 0,this.isConnected&&this.ownerDocument.defaultView===owner&&this.autofocus&&this.focus())});this.autofocusFrame={owner,handle}}disconnectedCallback(){this.releaseExternalDescription(),super.disconnectedCallback(),this.rangeFocusGeneration++,this.rangeFocusTransfer=void 0,this.abortActiveDrags(),this.pendingKeyHandle=null,this.focusedHandle=null,this.syncInteractionStates(),this.cancelAutofocusFrame()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription(),this.rangeFocusGeneration++,this.rangeFocusTransfer=void 0,this.abortActiveDrags(),this.pendingKeyHandle=null,this.focusedHandle=null,this.syncInteractionStates(),this.cancelAutofocusFrame()}cancelAutofocusFrame(){const autofocusFrame=this.autofocusFrame;this.autofocusFrame=void 0,autofocusFrame&&autofocusFrame.owner.cancelAnimationFrame(autofocusFrame.handle)}attributeChangedCallback(name,old,value){const isRangeValue=name==="min-value"||name==="max-value";isRangeValue&&(this.applyingRangeValueAttribute=!0);try{super.attributeChangedCallback(name,old,value)}finally{isRangeValue&&(this.applyingRangeValueAttribute=!1)}name==="min-value"&&(this._defaultMinValue=value===null?0:finiteNumber(Number(value),0)),name==="max-value"&&(this._defaultMaxValue=value===null?50:finiteNumber(Number(value),50))}formDisabledCallback(fieldsetDisabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=fieldsetDisabled,wasDisabled!==this.effectiveDisabled&&(fieldsetDisabled&&(this.pendingKeyHandle=null,this.abortActiveDrags()),this.syncInteractionStates(),this.syncValidityStates(),this.requestUpdate())}[VALIDITY_ANCHOR](){return this.firstThumb()}checkValidity(){return this.validityController.checkValidity()}reportValidity(){return this.validityController.syncConstraints(),this.markInteracted(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidityStates(),this.requestUpdate()}resetValidity(){this.setCustomValidity("")}formResetCallback(){this.pendingValueBatch={value:this._defaultValue,min:this._defaultMinValue,max:this._defaultMaxValue},this.restoreLiveValueFromDefault(),this._minValue=this._defaultMinValue,this._maxValue=this._defaultMaxValue,this._minValueDirty=!1,this._maxValueDirty=!1,this.sanitizeHandles(),this._hasInteracted=!1,this.syncFormValue(),this.syncValidityStates(),this.requestUpdate()}formStateRestoreCallback(state2,reason){const values=this.readFormDataStrings(state2);if(values){values.length>=2&&(this.minValue=finiteNumber(Number(values[0]),this._defaultMinValue),this.maxValue=finiteNumber(Number(values[1]),this._defaultMaxValue));return}this.value=typeof state2=="string"?state2:this._defaultValue}readFormDataStrings(value){if(value===null||typeof value!="object")return null;const FormDataCtor=this.ownerDocument.defaultView?.FormData;if(!FormDataCtor)return null;try{const iterator=FormDataCtor.prototype.values.call(value),strings=[];for(const entry of iterator)typeof entry=="string"&&strings.push(entry);return strings}catch{return null}}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=this._defaultValue}finally{this.settingDefaultValue=!1}this._valueDirty=!1}updateValidity(){this.validityController.setValidity({}),this.syncValidityStates()}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this._hasInteracted,barred:this.barredFromValidation})}syncInteractionStates(){setCustomState(this.internals,"disabled",this.effectiveDisabled),setCustomState(this.internals,"dragging",this.drags.size>0),setCustomState(this.internals,"focused",this.focusedHandle!==null)}click(){this.effectiveDisabled||this.firstThumb()?.click()}focus(options){this.effectiveDisabled||this.firstThumb()?.focus(options)}blur(){const active=activeElementIn(this.shadowRoot);active?.nodeType===1&&typeof active.matches=="function"&&typeof active.blur=="function"&&active.matches('[part~="thumb"]')?active.blur():this.firstThumb()?.blur()}stepUp(steps=1){this.stepBy(steps)}stepDown(steps=1){this.stepBy(-steps)}stepBy(steps){if(!this.interactive||finiteRange(this.step,0,0)<=0)return;const count=Math.trunc(finiteNumber(steps,1));if(count===0)return;const handle=this.range&&this.focusedHandle!=="max"?"min":this.focusedHandle??"value";this.assignValueFor(handle,this.directionalStep(this.valueForHandle(handle),count))}directionalStep(current,count){const{lo,hi}=this.domain();if(count===0)return current;const direction=Math.sign(count),magnitude=(this.step>0?this.step:(hi-lo)/100)*Math.abs(count);if(!Number.isFinite(magnitude))return direction>0?hi:lo;const candidate=current+direction*magnitude;return Number.isFinite(candidate)?candidate:direction>0?hi:lo}firstThumb(){return this.renderRoot?.querySelector('[part~="thumb"]')??null}handleElement(handle){const selector={value:'[part~="thumb"]',min:'[part~="thumb-min"]',max:'[part~="thumb-max"]'}[handle];return this.renderRoot?.querySelector(selector)??null}get interactive(){return!this.effectiveDisabled&&!this.matches(":disabled")&&!this.readonly}sanitizeCurrentValue(){this.sanitizeHandles();const old=this._value;this._value=this.clampValue(this.pendingValueBatch?.value??this._value),this._value!==old&&this.requestUpdate("value",old),this.syncFormValue()}sanitizeHandles(){this._minValue=this.clampValue(this.pendingValueBatch?.min??this._minValue),this._maxValue=this.clampValue(this.pendingValueBatch?.max??this._maxValue),this._minValue>this._maxValue&&(this.pendingValueBatch?.lastRange==="max"?this._minValue=this._maxValue:this._maxValue=this._minValue)}syncFormValue(){if(!this.internals)return;if(!this.range){const serialized=String(this.value);this.internals.setFormValue(serialized,serialized),this.updateValidity();return}const FormDataCtor=this.ownerDocument?.defaultView?.FormData;if(!FormDataCtor){this.internals.setFormValue(null),this.updateValidity();return}const state2=new FormDataCtor,stateKey=this.name||"value";if(state2.append(stateKey,String(this.minValue)),state2.append(stateKey,String(this.maxValue)),!this.name)this.internals.setFormValue(null,state2);else{const submission=new FormDataCtor;submission.append(this.name,String(this.minValue)),submission.append(this.name,String(this.maxValue)),this.internals.setFormValue(submission,state2)}this.updateValidity()}domain(){const min=finiteNumber(this.min,0),max=finiteNumber(this.max,100);return{lo:Math.min(min,max),hi:Math.max(min,max)}}defaultNumericValue(){return this.clampValue(0)}percentOf(value){const{lo,hi}=this.domain(),safeValue=finiteRange(value,lo,lo,hi);return finiteRatio(safeValue,lo,hi)*100}clampValue(raw){const{lo,hi}=this.domain();return clampSteppedValue(raw,lo,hi,this.step)}valueForHandle(handle){return handle==="min"?this.minValue:handle==="max"?this.maxValue:this.valueAsNumber}reachableBounds(handle){const{lo,hi}=this.domain();return{min:lo,max:hi}}detailFor(handle){return{value:this.valueForHandle(handle),minValue:this.minValue,maxValue:this.maxValue,handle}}emitInput(handle){dispatchNativeInputEvent(this),this.emit("lr-input",this.detailFor(handle))}emitChange(handle){dispatchNativeEvent(this,"change"),this.emit("lr-change",this.detailFor(handle))}assignValueFor(handle,raw){const previous=this.valueForHandle(handle),stepped=this.clampValue(raw);if(stepped===previous)return!1;if(handle==="min"){if(this._minValueDirty=!0,this._minValue=stepped,this.requestUpdate("minValue",previous),this._minValue>this._maxValue){const previousMax=this._maxValue;this._maxValueDirty=!0,this._maxValue=this._minValue,this.requestUpdate("maxValue",previousMax)}}else if(handle==="max"){if(this._maxValueDirty=!0,this._maxValue=stepped,this.requestUpdate("maxValue",previous),this._maxValue<this._minValue){const previousMin=this._minValue;this._minValueDirty=!0,this._minValue=this._maxValue,this.requestUpdate("minValue",previousMin)}}else this.value=stepped;return handle!=="value"&&this.syncFormValue(),!0}setValueFor(handle,raw,commit){return this.assignValueFor(handle,raw)?(this.emitInput(handle),commit&&this.emitChange(handle),!0):!1}ratioFromPointer(e,rect,rtl){return rangePointerRatio(e.clientX,e.clientY,rect,rtl,this.orientation==="vertical")}nearestHandle(target){return nearestRangeEnd(target,this.minValue,this.maxValue)===0?"min":"max"}beginDrag(event,handle,captureTarget,rect,rtl){const drag=this.dragController.begin(event,{handle,changed:!1,captureTarget,rect,rtl});return drag&&(this.syncInteractionStates(),this.requestUpdate()),drag}trackRect(){return this.renderRoot.querySelector('[part="track"]')?.getBoundingClientRect()??null}endDrag(pointerId,commit){const drag=this.dragController.end(pointerId);drag&&(commit&&drag.changed&&this.emitChange(drag.handle),this.syncInteractionStates(),this.requestUpdate())}abortActiveDrags(){this.drags.size!==0&&(this.dragController.abort(),this.syncInteractionStates())}onHandleFocus(handle,event){this.focusedHandle!==handle&&(this.focusedHandle=handle,this.syncInteractionStates(),this.requestUpdate()),relayNativeEvent(this,event)}onHandleBlur(handle,event){this.pendingKeyHandle===handle&&(this.pendingKeyHandle=null,this.interactive&&this.isConnected&&this.emitChange(handle)),this.focusedHandle===handle&&(this.focusedHandle=null,this.syncInteractionStates(),this.requestUpdate()),relayNativeEvent(this,event)}formatValue(value){return getNumberFormat(this.effectiveLocale,{maximumFractionDigits:20}).format(value)}readoutText(){const format=(value,handle)=>{if(this.valueDisplay==="formatted"){const text=this.valueFormatter?this.valueFormatter(value,handle):this.tooltipFormatter?.(value);if(text!=null)return text}return this.formatValue(value)};return this.range?[format(this.minValue,"min"),format(this.maxValue,"max")]:[format(this.valueAsNumber,"value")]}resolvedLabel(){const hostLabel=this.getAttribute("aria-label");return hostLabel!==null?hostLabel:this.label||this.localize("sliderLabel")}offsetStyle(percent){return this.orientation==="vertical"?`inset-block-end:${percent}%`:`inset-inline-start:${percent}%`}markerPercents(){if(!this.withMarkers)return[];const step=finiteRange(this.step,0,0);if(step<=0)return[];const{lo,hi}=this.domain(),span=hi-lo;if(!Number.isFinite(span)||span<=0)return[];const ratio=span/step,intervals=Math.floor(ratio+Number.EPSILON*Math.max(1,Math.abs(ratio))*4);return!Number.isFinite(intervals)||intervals<1||intervals>MAX_MARKER_INTERVALS?[]:Array.from({length:intervals+1},(_unused,index)=>{const value=lo+index*step;return finiteRatio(value,lo,hi)*100})}renderHandle(handle,describedBy,labelledBy,invalid){const value=this.valueForHandle(handle),bounds=this.reachableBounds(handle),percent=this.percentOf(value),ariaOrientation=SLIDER_ORIENTATION.normalize(this.orientation),numeric=this.formatValue(value),valueText=this.valueFormatter?this.valueFormatter(value,handle):this.tooltipFormatter?this.tooltipFormatter(value):numeric,partName={value:"thumb",min:"thumb thumb-min",max:"thumb thumb-max"}[handle],handleLabel={value:this.resolvedLabel(),min:this.localize("rangeStart"),max:this.localize("rangeEnd")}[handle],tooltipPart=this.focusedHandle===handle||Array.from(this.drags.values()).some(drag=>drag.handle===handle)?"tooltip tooltip__tooltip tooltip-visible":"tooltip tooltip__tooltip",showTooltip=this.withTooltip||this.tooltip!=="none",placement=this.tooltip==="none"?this.tooltipPlacement:this.tooltip,tooltipStyle=`${this.offsetStyle(percent)};--lr-slider-tooltip-distance:${finiteRange(this.tooltipDistance,8,0)}`;return html`
1
+ import{__decorate}from"tslib";import{RangeDragController,rangePointerRatio,nearestRangeEnd,RANGE_PAGE_STEP_MULTIPLIER}from"../../../internal/range-drag.js";import{SlotPresenceController}from"../../../internal/slot-presence-controller.js";import{installFormControlLabelSupport}from"../../../internal/form-control-labels.js";import{FormControlController,reflectFormName}from"../../../internal/form-control-controller.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{LyraFormControlElement}from"../../../internal/form-control-element.js";import{getFormOwner,isBarredFromValidation,setFormOwner}from"../../../internal/form-associated.js";import{VALIDITY_ANCHOR}from"../../../internal/anchored-validity.js";import{setCustomState,syncValidityStates}from"../../../internal/custom-states.js";import{falseDefaultBooleanConverter,literalSetConverter}from"../../../internal/converters.js";import{sizes}from"../../../internal/sizes.styles.js";import{isRtl}from"../../../internal/rtl.js";import{finiteInterpolate,finiteNumber,finiteRange,finiteRatio,isSliderKey}from"../../../internal/numbers.js";import{clampSteppedValue}from"../../../internal/step-value.js";import{styles}from"./slider.styles.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{dispatchNativeEvent,dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{activeElementIn,shadowFocusTarget}from"../../../internal/active-element.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_rangeEnd,LYRA_DEFAULT_rangeStart,LYRA_DEFAULT_sliderLabel}from"../../../internal/default-strings.generated.js";installFormControlLabelSupport();const MAX_MARKER_INTERVALS=100,HINT_ID="slider-hint",ERROR_ID="slider-error",LABEL_ID="slider-label",SLIDER_ORIENTATION=literalSetConverter(["horizontal","vertical"],"horizontal");class LyraSliderBase extends LyraFormControlElement{}class LyraSlider extends LyraSliderBase{static{this.defaultStrings={...super.defaultStrings,fieldRequired:LYRA_DEFAULT_fieldRequired,rangeEnd:LYRA_DEFAULT_rangeEnd,rangeStart:LYRA_DEFAULT_rangeStart,sliderLabel:LYRA_DEFAULT_sliderLabel}}static get validators(){return[currentValidityValidator("required","disabled","value","min","max","step")]}static{this.formAssociated=!0}static{this.styles=[LyraElement.styles,sizes,styles]}static{this.properties={customError:{attribute:"custom-error",reflect:!0,noAccessor:!0},value:{attribute:!1,noAccessor:!0},defaultValue:{attribute:"value",type:Number,reflect:!0,useDefault:!0,noAccessor:!0},name:{reflect:!0,noAccessor:!0},required:{type:Boolean,reflect:!0,noAccessor:!0},disabled:{type:Boolean,reflect:!0,noAccessor:!0},min:{type:Number,noAccessor:!0},max:{type:Number,noAccessor:!0},step:{type:Number,noAccessor:!0},range:{type:Boolean,reflect:!0,noAccessor:!0},minValue:{type:Number,attribute:"min-value",noAccessor:!0},maxValue:{type:Number,attribute:"max-value",noAccessor:!0},size:{reflect:!0}}}captureValueBatch(){return this.pendingValueBatch||(this.pendingValueBatch={value:this._value,min:this._minValue,max:this._maxValue},this.requestUpdate()),this.pendingValueBatch}constructor(){super(),this.size="m",this._value=0,this._defaultValue=0,this._valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._name=null,this._required=!1,this._disabled=!1,this._fieldsetDisabled=!1,this._hasInteracted=!1,this._min=0,this._max=100,this._step=1,this._range=!1,this._minValue=0,this._maxValue=50,this._minValueDirty=!1,this._maxValueDirty=!1,this.applyingRangeValueAttribute=!1,this._defaultMinValue=0,this._defaultMaxValue=50,this.label="",this.hint="",this.helpText="",this.errorText="",this.withLabel=!1,this.withHint=!1,this.autofocus=!1,this.orientation="horizontal",this.readonly=!1,this.withMarkers=!1,this.withTooltip=!1,this.tooltipPlacement="top",this.tooltipDistance=8,this.tooltip="none",this.withValue=!1,this.valueDisplay="numeric",this.valuePlacement="inline",this.slotPresence=new SlotPresenceController(this),this.dragController=new RangeDragController(this,event=>this.onPointerMove(event),event=>this.onPointerUp(event)),this.pendingKeyHandle=null,this.focusedHandle=null,this.rangeFocusGeneration=0,this.markInteracted=()=>{this._hasInteracted||(this._hasInteracted=!0,this.syncValidityStates())},this.markFocusoutInteracted=()=>{this.effectiveDisabled||this.matches(":disabled")||this.rangeFocusTransfer||this.markInteracted()},this.onKeyDown=(handle,e)=>{if(!this.interactive)return;const current=this.valueForHandle(handle),rtl=isRtl(this),forwardKey=rtl?"ArrowLeft":"ArrowRight",backwardKey=rtl?"ArrowRight":"ArrowLeft",bounds=this.reachableBounds(handle),move=next=>{e.preventDefault(),this.assignValueFor(handle,next)&&(this.pendingKeyHandle=handle,this.emitInput(handle))};e.key===forwardKey||e.key==="ArrowUp"?move(this.directionalStep(current,1)):e.key===backwardKey||e.key==="ArrowDown"?move(this.directionalStep(current,-1)):e.key==="PageUp"?move(this.directionalStep(current,RANGE_PAGE_STEP_MULTIPLIER)):e.key==="PageDown"?move(this.directionalStep(current,-RANGE_PAGE_STEP_MULTIPLIER)):e.key==="Home"?move(bounds.min):e.key==="End"&&move(bounds.max)},this.onKeyUp=e=>{if(!this.interactive||!isSliderKey(e.key))return;const handle=this.pendingKeyHandle;handle!==null&&(this.pendingKeyHandle=null,this.emitChange(handle))},this.onPointerDown=(handle,e)=>{!this.interactive||e.button!==0||this.beginDrag(e,handle,e.target,this.trackRect(),isRtl(this))},this.onBasePointerDown=e=>{if(!this.interactive||e.button!==0)return;const thumbs=Array.from(this.renderRoot.querySelectorAll('[part~="thumb"]'));if(thumbs.length===0||thumbs.includes(e.target))return;const rect=this.trackRect();if(!rect)return;const rtl=isRtl(this),{lo,hi}=this.domain(),target=finiteInterpolate(lo,hi,this.ratioFromPointer(e,rect,rtl)),handle=this.range?this.nearestHandle(target):"value",thumb=this.handleElement(handle)??thumbs[0];if(!thumb)return;const drag=this.beginDrag(e,handle,thumb,rect,rtl);drag&&(this.setValueFor(handle,target,!1)&&(drag.changed=!0),thumb.focus())},this.onPointerMove=e=>{const drag=this.drags.get(e.pointerId);if(drag===void 0)return;if(!this.interactive){this.endDrag(e.pointerId,!1);return}if(!drag.rect)return;const{lo,hi}=this.domain(),value=finiteInterpolate(lo,hi,this.ratioFromPointer(e,drag.rect,drag.rtl));this.setValueFor(drag.handle,value,!1)&&(drag.changed=!0)},this.onPointerUp=e=>{this.endDrag(e.pointerId,e.type==="pointerup"&&this.interactive)},this.validityController=new FormControlController(this,{invalid:init=>this.emit("lr-invalid",null,init),interacted:this.markInteracted,customError:()=>this.validityController.customValidityMessage}),this.internals=this.validityController.formInternals,this.internals.setFormValue("0","0"),this.addEventListener("input",this.markInteracted),this.addEventListener("change",this.markInteracted),this.addEventListener("focusout",this.markFocusoutInteracted),this.syncValidityStates()}get value(){return this._value}set value(next){const old=this._value;this.settingDefaultValue||(this._valueDirty=!0);const raw=finiteNumber(Number(next),this.defaultNumericValue());this.captureValueBatch().value=raw,this._value=this.clampValue(raw),this.syncFormValue(),this.requestUpdate("value",old)}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const old=this._defaultValue;this._defaultValue=next==null?0:finiteNumber(Number(next),0),this.reflectingDefaultValue=!0;try{next==null?this.removeAttribute("value"):this.setAttribute("value",String(this._defaultValue))}finally{this.reflectingDefaultValue=!1}this._valueDirty||this.restoreLiveValueFromDefault(),this.requestUpdate("defaultValue",old)}get valueAsNumber(){return this.value}set valueAsNumber(next){this.value=next}get valueAsString(){return String(this.value)}set valueAsString(next){this.value=next}get name(){return this._name}set name(next){const old=this._name;this._name=next||null,reflectFormName(this,this._name),this.syncFormValue(),this.requestUpdate("name",old)}get required(){return this._required}set required(next){const old=this._required;this._required=!!next,this.toggleAttribute("required",this._required),this.updateValidity(),this.requestUpdate("required",old)}get disabled(){return this._disabled}set disabled(next){const old=this._disabled;this._disabled=!!next,this.toggleAttribute("disabled",this._disabled),this._fieldsetDisabled=this.validityController?.fieldsetDisabled(this._fieldsetDisabled)??this._fieldsetDisabled,this._disabled&&(this.pendingKeyHandle=null,this.abortActiveDrags()),this.syncInteractionStates(),this.syncValidityStates(),this.requestUpdate("disabled",old)}get effectiveDisabled(){return this.disabled||this._fieldsetDisabled}get form(){return getFormOwner(this.internals)}set form(owner){setFormOwner(this,owner)}get min(){return this._min}set min(next){this.captureValueBatch();const old=this._min;this._min=finiteNumber(next,0),this.requestUpdate("min",old),this.sanitizeCurrentValue()}get max(){return this._max}set max(next){this.captureValueBatch();const old=this._max;this._max=finiteNumber(next,100),this.requestUpdate("max",old),this.sanitizeCurrentValue()}get step(){return this._step}set step(next){this.captureValueBatch();const old=this._step;this._step=next==null?1:finiteRange(next,0,0),this.requestUpdate("step",old),this.sanitizeCurrentValue()}get range(){return this._range}set range(next){const old=this._range;this._range=!!next,this.requestUpdate("range",old),this.syncFormValue()}get isRange(){return this.range}get minValue(){return this._minValue}set minValue(next){const batch=this.captureValueBatch();batch.min=finiteNumber(next,0),batch.lastRange="min";const old=this._minValue;if(this.applyingRangeValueAttribute||(this._minValueDirty=!0),this._minValue=this.clampValue(finiteNumber(next,0)),this._minValue>this._maxValue){const oldMax=this._maxValue;this._maxValue=this._minValue,this.applyingRangeValueAttribute||(this._maxValueDirty=!0),this.requestUpdate("maxValue",oldMax)}this.syncFormValue(),this.requestUpdate("minValue",old)}get maxValue(){return this._maxValue}set maxValue(next){const batch=this.captureValueBatch();batch.max=finiteNumber(next,50),batch.lastRange="max";const old=this._maxValue;if(this.applyingRangeValueAttribute||(this._maxValueDirty=!0),this._maxValue=this.clampValue(finiteNumber(next,50)),this._maxValue<this._minValue){const oldMin=this._minValue;this._minValue=this._maxValue,this.applyingRangeValueAttribute||(this._minValueDirty=!0),this.requestUpdate("minValue",oldMin)}this.syncFormValue(),this.requestUpdate("maxValue",old)}requestUpdate(...args){args[0]==="readonly"&&this.readonly&&(this.pendingKeyHandle=null,this.abortActiveDrags()),super.requestUpdate(...args)}get hasHintSlot(){return this.slotPresence.has("hint")||this.slotPresence.has("help-text")}get hasErrorSlot(){return this.slotPresence.has("error")}get hasLabelSlot(){return this.slotPresence.has("label")}get hasReferenceSlot(){return this.slotPresence.has("reference")}get drags(){return this.dragController.active}syncExternalDescription(){const primary=this.isConnected?this.range?this.handleElement("min"):this.firstThumb():null;primary?this.externalDescriptionLease?this.externalDescriptionLease.update(primary):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,primary,"aria-describedby"):(this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0);const secondary=this.isConnected&&this.range?this.handleElement("max"):null;secondary?this.externalDescriptionLeaseMax?this.externalDescriptionLeaseMax.update(secondary):this.externalDescriptionLeaseMax=acquireResolvedAriaRelationship(this,secondary,"aria-describedby"):(this.externalDescriptionLeaseMax?.release(),this.externalDescriptionLeaseMax=void 0)}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0,this.externalDescriptionLeaseMax?.release(),this.externalDescriptionLeaseMax=void 0}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription(),this._valueDirty?this.sanitizeCurrentValue():this.restoreLiveValueFromDefault(),this._minValueDirty||(this._minValue=this.clampValue(this._defaultMinValue)),this._maxValueDirty||(this._maxValue=this.clampValue(this._defaultMaxValue)),this.sanitizeHandles(),this.syncFormValue(),this.updateValidity(),this.syncInteractionStates()}willUpdate(changed){if(super.willUpdate(changed),this.pendingValueBatch&&(this.sanitizeCurrentValue(),this.pendingValueBatch=void 0),!changed.has("range")||!this.hasUpdated)return;const active=shadowFocusTarget(this);if(active?.matches('[part~="thumb"]')){const target=this.range?"min":"value";this.rangeFocusTransfer={origin:active,target},this.focusedHandle=target,this.syncInteractionStates(),this.rangeFocusGeneration++}this.pendingKeyHandle=null,this.abortActiveDrags()}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("readonly")&&this.syncValidityStates(),!changed.has("range"))return;const transfer=this.rangeFocusTransfer;if(this.rangeFocusTransfer=void 0,!transfer)return;const generation=this.rangeFocusGeneration;this.scheduleAfterUpdate(()=>{if(generation!==this.rangeFocusGeneration||!this.isConnected||this.effectiveDisabled)return;const internalActive=shadowFocusTarget(this),documentActive=activeElementIn(this.ownerDocument),focusStayedAtOrigin=internalActive===transfer.origin,originWasRemovedWithoutReplacement=internalActive===null&&(documentActive===null||documentActive===this||documentActive===this.ownerDocument.body);if(!focusStayedAtOrigin&&!originWasRemovedWithoutReplacement)return;this.handleElement(transfer.target)?.focus()},"slider-range-focus")}firstUpdated(changed){if(super.firstUpdated(changed),!this.autofocus)return;const owner=this.ownerDocument.defaultView;if(!owner)return;const handle=owner.requestAnimationFrame(()=>{this.autofocusFrame?.owner!==owner||this.autofocusFrame.handle!==handle||(this.autofocusFrame=void 0,this.isConnected&&this.ownerDocument.defaultView===owner&&this.autofocus&&this.focus())});this.autofocusFrame={owner,handle}}disconnectedCallback(){this.releaseExternalDescription(),super.disconnectedCallback(),this.rangeFocusGeneration++,this.rangeFocusTransfer=void 0,this.abortActiveDrags(),this.pendingKeyHandle=null,this.focusedHandle=null,this.syncInteractionStates(),this.cancelAutofocusFrame()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription(),this.rangeFocusGeneration++,this.rangeFocusTransfer=void 0,this.abortActiveDrags(),this.pendingKeyHandle=null,this.focusedHandle=null,this.syncInteractionStates(),this.cancelAutofocusFrame()}cancelAutofocusFrame(){const autofocusFrame=this.autofocusFrame;this.autofocusFrame=void 0,autofocusFrame&&autofocusFrame.owner.cancelAnimationFrame(autofocusFrame.handle)}attributeChangedCallback(name,old,value){const isRangeValue=name==="min-value"||name==="max-value";isRangeValue&&(this.applyingRangeValueAttribute=!0);try{super.attributeChangedCallback(name,old,value)}finally{isRangeValue&&(this.applyingRangeValueAttribute=!1)}name==="min-value"&&(this._defaultMinValue=value===null?0:finiteNumber(Number(value),0)),name==="max-value"&&(this._defaultMaxValue=value===null?50:finiteNumber(Number(value),50))}formDisabledCallback(fieldsetDisabled){if(this.validityController?.reflectingDisabled)return;const wasDisabled=this.effectiveDisabled;this._fieldsetDisabled=fieldsetDisabled,wasDisabled!==this.effectiveDisabled&&(fieldsetDisabled&&(this.pendingKeyHandle=null,this.abortActiveDrags()),this.syncInteractionStates(),this.syncValidityStates(),this.requestUpdate())}[VALIDITY_ANCHOR](){return this.firstThumb()}checkValidity(){return this.validityController.checkValidity()}reportValidity(){return this.validityController.syncConstraints(),this.markInteracted(),this.internals.reportValidity()}setCustomValidity(message){this.validityController.setCustomValidity(message??""),this.syncValidityStates(),this.requestUpdate()}resetValidity(){this.setCustomValidity("")}formResetCallback(){this.pendingValueBatch={value:this._defaultValue,min:this._defaultMinValue,max:this._defaultMaxValue},this.restoreLiveValueFromDefault(),this._minValue=this._defaultMinValue,this._maxValue=this._defaultMaxValue,this._minValueDirty=!1,this._maxValueDirty=!1,this.sanitizeHandles(),this._hasInteracted=!1,this.syncFormValue(),this.syncValidityStates(),this.requestUpdate()}formStateRestoreCallback(state2,reason){const values=this.readFormDataStrings(state2);if(values){values.length>=2&&(this.minValue=finiteNumber(Number(values[0]),this._defaultMinValue),this.maxValue=finiteNumber(Number(values[1]),this._defaultMaxValue));return}this.value=typeof state2=="string"?state2:this._defaultValue}readFormDataStrings(value){if(value===null||typeof value!="object")return null;const FormDataCtor=this.ownerDocument.defaultView?.FormData;if(!FormDataCtor)return null;try{const iterator=FormDataCtor.prototype.values.call(value),strings=[];for(const entry of iterator)typeof entry=="string"&&strings.push(entry);return strings}catch{return null}}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=this._defaultValue}finally{this.settingDefaultValue=!1}this._valueDirty=!1}updateValidity(){this.validityController.setValidity({}),this.syncValidityStates()}get barredFromValidation(){return isBarredFromValidation(this,this.internals)}syncValidityStates(){syncValidityStates(this.internals,{required:this.required,hasInteracted:this._hasInteracted,barred:this.barredFromValidation})}syncInteractionStates(){setCustomState(this.internals,"disabled",this.effectiveDisabled),setCustomState(this.internals,"dragging",this.drags.size>0),setCustomState(this.internals,"focused",this.focusedHandle!==null)}click(){this.effectiveDisabled||this.firstThumb()?.click()}focus(options){this.effectiveDisabled||this.firstThumb()?.focus(options)}blur(){const active=shadowFocusTarget(this);active?.nodeType===1&&typeof active.matches=="function"&&typeof active.blur=="function"&&active.matches('[part~="thumb"]')?active.blur():this.firstThumb()?.blur()}stepUp(steps=1){this.stepBy(steps)}stepDown(steps=1){this.stepBy(-steps)}stepBy(steps){if(!this.interactive||finiteRange(this.step,0,0)<=0)return;const count=Math.trunc(finiteNumber(steps,1));if(count===0)return;const handle=this.range&&this.focusedHandle!=="max"?"min":this.focusedHandle??"value";this.assignValueFor(handle,this.directionalStep(this.valueForHandle(handle),count))}directionalStep(current,count){const{lo,hi}=this.domain();if(count===0)return current;const direction=Math.sign(count),magnitude=(this.step>0?this.step:(hi-lo)/100)*Math.abs(count);if(!Number.isFinite(magnitude))return direction>0?hi:lo;const candidate=current+direction*magnitude;return Number.isFinite(candidate)?candidate:direction>0?hi:lo}firstThumb(){return this.renderRoot?.querySelector('[part~="thumb"]')??null}handleElement(handle){const selector={value:'[part~="thumb"]',min:'[part~="thumb-min"]',max:'[part~="thumb-max"]'}[handle];return this.renderRoot?.querySelector(selector)??null}get interactive(){return!this.effectiveDisabled&&!this.matches(":disabled")&&!this.readonly}sanitizeCurrentValue(){this.sanitizeHandles();const old=this._value;this._value=this.clampValue(this.pendingValueBatch?.value??this._value),this._value!==old&&this.requestUpdate("value",old),this.syncFormValue()}sanitizeHandles(){this._minValue=this.clampValue(this.pendingValueBatch?.min??this._minValue),this._maxValue=this.clampValue(this.pendingValueBatch?.max??this._maxValue),this._minValue>this._maxValue&&(this.pendingValueBatch?.lastRange==="max"?this._minValue=this._maxValue:this._maxValue=this._minValue)}syncFormValue(){if(!this.internals)return;if(!this.range){const serialized=String(this.value);this.internals.setFormValue(serialized,serialized),this.updateValidity();return}const FormDataCtor=this.ownerDocument?.defaultView?.FormData;if(!FormDataCtor){this.internals.setFormValue(null),this.updateValidity();return}const state2=new FormDataCtor,stateKey=this.name||"value";if(state2.append(stateKey,String(this.minValue)),state2.append(stateKey,String(this.maxValue)),!this.name)this.internals.setFormValue(null,state2);else{const submission=new FormDataCtor;submission.append(this.name,String(this.minValue)),submission.append(this.name,String(this.maxValue)),this.internals.setFormValue(submission,state2)}this.updateValidity()}domain(){const min=finiteNumber(this.min,0),max=finiteNumber(this.max,100);return{lo:Math.min(min,max),hi:Math.max(min,max)}}defaultNumericValue(){return this.clampValue(0)}percentOf(value){const{lo,hi}=this.domain(),safeValue=finiteRange(value,lo,lo,hi);return finiteRatio(safeValue,lo,hi)*100}clampValue(raw){const{lo,hi}=this.domain();return clampSteppedValue(raw,lo,hi,this.step)}valueForHandle(handle){return handle==="min"?this.minValue:handle==="max"?this.maxValue:this.valueAsNumber}reachableBounds(handle){const{lo,hi}=this.domain();return{min:lo,max:hi}}detailFor(handle){return{value:this.valueForHandle(handle),minValue:this.minValue,maxValue:this.maxValue,handle}}emitInput(handle){dispatchNativeInputEvent(this),this.emit("lr-input",this.detailFor(handle))}emitChange(handle){dispatchNativeEvent(this,"change"),this.emit("lr-change",this.detailFor(handle))}assignValueFor(handle,raw){const previous=this.valueForHandle(handle),stepped=this.clampValue(raw);if(stepped===previous)return!1;if(handle==="min"){if(this._minValueDirty=!0,this._minValue=stepped,this.requestUpdate("minValue",previous),this._minValue>this._maxValue){const previousMax=this._maxValue;this._maxValueDirty=!0,this._maxValue=this._minValue,this.requestUpdate("maxValue",previousMax)}}else if(handle==="max"){if(this._maxValueDirty=!0,this._maxValue=stepped,this.requestUpdate("maxValue",previous),this._maxValue<this._minValue){const previousMin=this._minValue;this._minValueDirty=!0,this._minValue=this._maxValue,this.requestUpdate("minValue",previousMin)}}else this.value=stepped;return handle!=="value"&&this.syncFormValue(),!0}setValueFor(handle,raw,commit){return this.assignValueFor(handle,raw)?(this.emitInput(handle),commit&&this.emitChange(handle),!0):!1}ratioFromPointer(e,rect,rtl){return rangePointerRatio(e.clientX,e.clientY,rect,rtl,this.orientation==="vertical")}nearestHandle(target){return nearestRangeEnd(target,this.minValue,this.maxValue)===0?"min":"max"}beginDrag(event,handle,captureTarget,rect,rtl){const drag=this.dragController.begin(event,{handle,changed:!1,captureTarget,rect,rtl});return drag&&(this.syncInteractionStates(),this.requestUpdate()),drag}trackRect(){return this.renderRoot.querySelector('[part="track"]')?.getBoundingClientRect()??null}endDrag(pointerId,commit){const drag=this.dragController.end(pointerId);drag&&(commit&&drag.changed&&this.emitChange(drag.handle),this.syncInteractionStates(),this.requestUpdate())}abortActiveDrags(){this.drags.size!==0&&(this.dragController.abort(),this.syncInteractionStates())}onHandleFocus(handle,event){this.focusedHandle!==handle&&(this.focusedHandle=handle,this.syncInteractionStates(),this.requestUpdate()),relayNativeEvent(this,event)}onHandleBlur(handle,event){this.pendingKeyHandle===handle&&(this.pendingKeyHandle=null,this.interactive&&this.isConnected&&this.emitChange(handle)),this.focusedHandle===handle&&(this.focusedHandle=null,this.syncInteractionStates(),this.requestUpdate()),relayNativeEvent(this,event)}formatValue(value){return getNumberFormat(this.effectiveLocale,{maximumFractionDigits:20}).format(value)}readoutText(){const format=(value,handle)=>{if(this.valueDisplay==="formatted"){const text=this.valueFormatter?this.valueFormatter(value,handle):this.tooltipFormatter?.(value);if(text!=null)return text}return this.formatValue(value)};return this.range?[format(this.minValue,"min"),format(this.maxValue,"max")]:[format(this.valueAsNumber,"value")]}resolvedLabel(){const hostLabel=this.getAttribute("aria-label");return hostLabel!==null?hostLabel:this.label||this.localize("sliderLabel")}offsetStyle(percent){return this.orientation==="vertical"?`inset-block-end:${percent}%`:`inset-inline-start:${percent}%`}markerPercents(){if(!this.withMarkers)return[];const step=finiteRange(this.step,0,0);if(step<=0)return[];const{lo,hi}=this.domain(),span=hi-lo;if(!Number.isFinite(span)||span<=0)return[];const ratio=span/step,intervals=Math.floor(ratio+Number.EPSILON*Math.max(1,Math.abs(ratio))*4);return!Number.isFinite(intervals)||intervals<1||intervals>MAX_MARKER_INTERVALS?[]:Array.from({length:intervals+1},(_unused,index)=>{const value=lo+index*step;return finiteRatio(value,lo,hi)*100})}renderHandle(handle,describedBy,labelledBy,invalid){const value=this.valueForHandle(handle),bounds=this.reachableBounds(handle),percent=this.percentOf(value),ariaOrientation=SLIDER_ORIENTATION.normalize(this.orientation),numeric=this.formatValue(value),valueText=this.valueFormatter?this.valueFormatter(value,handle):this.tooltipFormatter?this.tooltipFormatter(value):numeric,partName={value:"thumb",min:"thumb thumb-min",max:"thumb thumb-max"}[handle],handleLabel={value:this.resolvedLabel(),min:this.localize("rangeStart"),max:this.localize("rangeEnd")}[handle],tooltipPart=this.focusedHandle===handle||Array.from(this.drags.values()).some(drag=>drag.handle===handle)?"tooltip tooltip__tooltip tooltip-visible":"tooltip tooltip__tooltip",showTooltip=this.withTooltip||this.tooltip!=="none",placement=this.tooltip==="none"?this.tooltipPlacement:this.tooltip,tooltipStyle=`${this.offsetStyle(percent)};--lr-slider-tooltip-distance:${finiteRange(this.tooltipDistance,8,0)}`;return html`
2
2
  <div
3
3
  part=${partName}
4
4
  role="slider"