@aceshooting/lyra-ui 26.0.0 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1677) hide show
  1. package/CHANGELOG.md +55 -675
  2. package/README.md +285 -1130
  3. package/design-tokens.json +1 -1
  4. package/dist/ai/types.d.ts +5 -5
  5. package/dist/autoloader.js +1 -1
  6. package/dist/cli/agent-registry.mjs +1 -0
  7. package/dist/cli/component-inventory.mjs +1 -1
  8. package/dist/cli/css-declarations.mjs +1 -0
  9. package/dist/cli/init-agents.mjs +40 -0
  10. package/dist/cli/is-main-module.mjs +1 -0
  11. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  12. package/dist/cli/lyra-ui.mjs +11 -0
  13. package/dist/cli/migrate-wa.mjs +12 -5
  14. package/dist/cli/migration-contract.json +1 -1
  15. package/dist/cli/migration-renames.mjs +2 -2
  16. package/dist/cli/migration-theme-scopes.mjs +3 -0
  17. package/dist/cli/theme-scope-vocabulary.generated.mjs +1 -0
  18. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  19. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  20. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  21. package/dist/components/agent-tools/agent-question/agent-question.class.js +1 -1
  22. package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -1
  23. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
  24. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  25. package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +1 -1
  26. package/dist/components/agent-tools/background-runs/background-runs.class.js +1 -1
  27. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +1 -1
  28. package/dist/components/agent-tools/budget-meter/budget-meter.class.js +1 -1
  29. package/dist/components/agent-tools/change-review/change-review.class.js +1 -1
  30. package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
  31. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
  32. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  33. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  34. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  35. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  36. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  37. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  38. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  39. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  40. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  41. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  42. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  43. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  44. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  45. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  46. package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
  47. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  48. package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
  49. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  50. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  51. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  52. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  53. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  54. package/dist/components/agent-tools/permission-rules/permission-rules.class.js +1 -1
  55. package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
  56. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  57. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  58. package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
  59. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  60. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  61. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
  62. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  63. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  64. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  65. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  66. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  67. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  68. package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
  69. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -1
  70. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  71. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  72. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  73. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  74. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  75. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  76. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
  77. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  78. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  79. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  80. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  81. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  82. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
  83. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  84. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  85. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  86. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  87. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -1
  88. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  89. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  90. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  91. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  92. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  93. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  94. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  95. package/dist/components/charts/chart/box-plot.class.js +1 -1
  96. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  97. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  98. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  99. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  100. package/dist/components/charts/chart/chart-token-cache.js +2 -2
  101. package/dist/components/charts/chart/chart.class.d.ts +3 -3
  102. package/dist/components/charts/chart/chart.class.js +3 -3
  103. package/dist/components/charts/chart/chart.styles.js +1 -1
  104. package/dist/components/charts/chart/histogram.class.js +1 -1
  105. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  106. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  107. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +1 -1
  108. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
  109. package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
  110. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  111. package/dist/components/conversation/catalog-picker-element.js +1 -1
  112. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  113. package/dist/components/conversation/chat-composer/chat-composer.class.js +1 -1
  114. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  115. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  116. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  117. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  118. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  119. package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
  120. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  121. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  122. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  123. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  124. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  125. package/dist/components/conversation/handoff-divider/handoff-divider.class.js +1 -1
  126. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  127. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  128. package/dist/components/conversation/markdown/markdown-core.class.js +1 -1
  129. package/dist/components/conversation/markdown/markdown.class.js +1 -1
  130. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  131. package/dist/components/conversation/message-feedback/message-feedback.class.js +1 -1
  132. package/dist/components/conversation/message-parts/message-parts.class.js +1 -1
  133. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  134. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  135. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  136. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +1 -1
  137. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  138. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  139. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  140. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
  141. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  142. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  143. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  144. package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +1 -1
  145. package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
  146. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  147. package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
  148. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  149. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  150. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  151. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  152. package/dist/components/data/calendar/calendar.class.js +1 -1
  153. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  154. package/dist/components/data/context-meter/context-meter.class.js +1 -1
  155. package/dist/components/data/data-grid/data-grid.class.d.ts +2 -2
  156. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  157. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  158. package/dist/components/data/document-library/document-library.class.js +2 -2
  159. package/dist/components/data/env-list/env-list.class.js +1 -1
  160. package/dist/components/data/file-tree/file-tree.class.d.ts +2 -2
  161. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  162. package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
  163. package/dist/components/data/flow-controls/flow-controls.class.js +1 -1
  164. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  165. package/dist/components/data/flow-node/flow-node.class.js +1 -1
  166. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  167. package/dist/components/data/funnel/funnel.class.js +1 -1
  168. package/dist/components/data/gauge/gauge.class.js +1 -1
  169. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  170. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  171. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  172. package/dist/components/data/pagination/pagination.class.d.ts +2 -0
  173. package/dist/components/data/pagination/pagination.class.js +1 -1
  174. package/dist/components/data/pagination/pagination.styles.js +1 -1
  175. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  176. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  177. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  178. package/dist/components/data/stat/stat.class.js +1 -1
  179. package/dist/components/data/table/table.class.d.ts +33 -197
  180. package/dist/components/data/table/table.class.js +6 -4
  181. package/dist/components/data/table/table.styles.js +1 -1
  182. package/dist/components/data/timeline/timeline.class.js +1 -1
  183. package/dist/components/data/tree/tree.class.js +1 -1
  184. package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
  185. package/dist/components/forms/button/button.class.d.ts +3 -3
  186. package/dist/components/forms/button/button.class.js +1 -1
  187. package/dist/components/forms/catalog-picker-base.js +1 -1
  188. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  189. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  190. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  191. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  192. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  193. package/dist/components/forms/color-picker/color-picker.class.d.ts +8 -4
  194. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  195. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  196. package/dist/components/forms/combobox/combobox.class.js +3 -2
  197. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  198. package/dist/components/forms/combobox/option.class.js +2 -2
  199. package/dist/components/forms/country-picker/country-picker.class.js +1 -1
  200. package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
  201. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  202. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  203. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  204. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  205. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  206. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  207. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  208. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -4
  209. package/dist/components/forms/emoji-picker/emoji-picker.class.js +5 -5
  210. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
  211. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  212. package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
  213. package/dist/components/forms/input/input-shared.js +1 -1
  214. package/dist/components/forms/input/input.class.js +1 -1
  215. package/dist/components/forms/input/input.styles.js +1 -1
  216. package/dist/components/forms/input/native-time-input.class.js +1 -1
  217. package/dist/components/forms/input/number-input.class.js +1 -1
  218. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  219. package/dist/components/forms/input/time-input.class.js +1 -1
  220. package/dist/components/forms/input/time-input.styles.js +1 -1
  221. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  222. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  223. package/dist/components/forms/otp-input/otp-input.class.js +2 -1
  224. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  225. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  226. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  227. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  228. package/dist/components/forms/radio/radio-group.class.js +1 -1
  229. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  230. package/dist/components/forms/radio/radio.class.js +2 -2
  231. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  232. package/dist/components/forms/rubric-form/rubric-form.class.js +4 -4
  233. package/dist/components/forms/select/select.class.d.ts +5 -7
  234. package/dist/components/forms/select/select.class.js +3 -2
  235. package/dist/components/forms/signature-pad/signature-pad.class.js +1 -1
  236. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  237. package/dist/components/forms/slider/slider.class.js +1 -1
  238. package/dist/components/forms/slider/slider.styles.js +1 -1
  239. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  240. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  241. package/dist/components/forms/switch/switch.class.js +2 -2
  242. package/dist/components/forms/textarea/textarea.class.js +2 -1
  243. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  244. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  245. package/dist/components/forms/time-range/time-range.class.js +1 -1
  246. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  247. package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
  248. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  249. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  250. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  251. package/dist/components/forms/token-input/token-input.class.js +1 -1
  252. package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
  253. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  254. package/dist/components/layout/app-rail/app-rail.class.d.ts +71 -8
  255. package/dist/components/layout/app-rail/app-rail.class.js +16 -4
  256. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  257. package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
  258. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  259. package/dist/components/layout/breadcrumb/breadcrumb.class.js +1 -1
  260. package/dist/components/layout/card/card.class.js +1 -1
  261. package/dist/components/layout/carousel/carousel.class.js +1 -1
  262. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  263. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  264. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  265. package/dist/components/layout/details/accordion-item.class.js +1 -1
  266. package/dist/components/layout/details/accordion.class.js +1 -1
  267. package/dist/components/layout/details/details.class.js +1 -1
  268. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  269. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  270. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  271. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  272. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  273. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  274. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  275. package/dist/components/layout/menu/menu.class.js +1 -1
  276. package/dist/components/layout/menubar/menubar.class.js +1 -1
  277. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  278. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  279. package/dist/components/layout/navigation-menu/navigation-menu.class.js +1 -1
  280. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  281. package/dist/components/layout/page/page.class.d.ts +1 -1
  282. package/dist/components/layout/page/page.class.js +1 -1
  283. package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
  284. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  285. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  286. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  287. package/dist/components/layout/scroller/scroller.class.js +1 -1
  288. package/dist/components/layout/segmented/segmented.class.d.ts +7 -4
  289. package/dist/components/layout/segmented/segmented.class.js +1 -1
  290. package/dist/components/layout/segmented/segmented.styles.js +1 -1
  291. package/dist/components/layout/split-panel/split-panel.class.js +1 -1
  292. package/dist/components/layout/stepper/stepper.class.js +2 -2
  293. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  294. package/dist/components/layout/tab-group/tab.class.js +1 -1
  295. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  296. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  297. package/dist/components/layout/virtual-list/virtual-list.styles.js +1 -1
  298. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  299. package/dist/components/layout/widget/widget.class.js +3 -3
  300. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  301. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  302. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +2 -2
  303. package/dist/components/media/av-player/av-player.class.js +1 -1
  304. package/dist/components/media/avatar-group/avatar-group.class.js +1 -1
  305. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  306. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  307. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  308. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  309. package/dist/components/media/file-input/file-input.class.js +2 -2
  310. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  311. package/dist/components/media/file-input/file-intake.js +1 -1
  312. package/dist/components/media/flag/flag.class.js +1 -1
  313. package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
  314. package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
  315. package/dist/components/media/image-viewer/image-viewer.class.js +4 -2
  316. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  317. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  318. package/dist/components/media/map/map.class.js +2 -2
  319. package/dist/components/media/media-card/media-card.class.js +1 -1
  320. package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
  321. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  322. package/dist/components/media/qr-code/qr-code.class.d.ts +2 -2
  323. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  324. package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
  325. package/dist/components/media/video/video.class.js +3 -3
  326. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  327. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  328. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  329. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  330. package/dist/components/overlays/alert/alert.class.js +1 -1
  331. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  332. package/dist/components/overlays/badge/badge.class.js +1 -1
  333. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  334. package/dist/components/overlays/badge/tag.class.js +3 -2
  335. package/dist/components/overlays/badge/tag.styles.js +1 -1
  336. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  337. package/dist/components/overlays/callout/callout.class.js +1 -1
  338. package/dist/components/overlays/chip/chip-group.class.js +1 -1
  339. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  340. package/dist/components/overlays/chip/chip.class.js +2 -2
  341. package/dist/components/overlays/context-menu/context-menu.class.js +1 -1
  342. package/dist/components/overlays/dialog/confirm.js +1 -1
  343. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  344. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  345. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  346. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  347. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  348. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  349. package/dist/components/overlays/overlay/popover.class.js +1 -1
  350. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  351. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  352. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  353. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  354. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  355. package/dist/components/overlays/progress/progress-base.js +1 -0
  356. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  357. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  358. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  359. package/dist/components/overlays/rating/rating.class.js +1 -1
  360. package/dist/components/overlays/skeleton/skeleton.class.js +1 -1
  361. package/dist/components/overlays/spinner/spinner.class.js +1 -1
  362. package/dist/components/overlays/toast/toast-item.class.js +1 -1
  363. package/dist/components/overlays/toast/toast.class.js +1 -1
  364. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  365. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  366. package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
  367. package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +1 -1
  368. package/dist/components/retrieval/community-card/community-card.class.js +1 -1
  369. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  370. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  371. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  372. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  373. package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -1
  374. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  375. package/dist/components/retrieval/graph/graph-model.js +1 -1
  376. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  377. package/dist/components/retrieval/graph/graph.class.js +1 -1
  378. package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
  379. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  380. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  381. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
  382. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  383. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  384. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  385. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  386. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  387. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  388. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  389. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  390. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  391. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  392. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  393. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  394. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  395. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  396. package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
  397. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
  398. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  399. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  400. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  401. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  402. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  403. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  404. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  405. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  406. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  407. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  408. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  409. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  410. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  411. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  412. package/dist/components/retrieval/source-card/source-card.class.js +1 -1
  413. package/dist/components/retrieval/source-list/source-list.class.js +1 -1
  414. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  415. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  416. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  417. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  418. package/dist/components/utility/export-button/export-button.class.js +1 -1
  419. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  420. package/dist/components/utility/icon/icon.class.js +1 -1
  421. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  422. package/dist/components/utility/known-date/known-date.class.js +1 -1
  423. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  424. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  425. package/dist/components/utility/poll-status/poll-status.class.js +1 -1
  426. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  427. package/dist/components/utility/random-content/random-content.class.js +1 -1
  428. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  429. package/dist/components/utility/tour/tour.class.js +1 -1
  430. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  431. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  432. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  433. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  434. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  435. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +2 -2
  436. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  437. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  438. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  439. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  440. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  441. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  442. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  443. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  444. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  445. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  446. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  447. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  448. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  449. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  450. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  451. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  452. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  453. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  454. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  455. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  456. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  457. package/dist/components/viewers/geojson-view/geojson-view.class.js +1 -1
  458. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  459. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  460. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  461. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  462. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  463. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  464. package/dist/components/viewers/include/include.class.js +1 -1
  465. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  466. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
  467. package/dist/components/viewers/page-rail/page-rail.class.d.ts +1 -1
  468. package/dist/components/viewers/page-rail/page-rail.class.js +3 -3
  469. package/dist/components/viewers/passive-markup.js +1 -1
  470. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  471. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -3
  472. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  473. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  474. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  475. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  476. package/dist/components/viewers/region-highlight-layer.js +15 -2
  477. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  478. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  479. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  480. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  481. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  482. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  483. package/dist/components/viewers/table-viewer-shared.js +15 -1
  484. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  485. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
  486. package/dist/events.d.ts +25 -19
  487. package/dist/framework-types.d.ts +1 -1
  488. package/dist/internal/accessibility-visibility.d.ts +3 -1
  489. package/dist/internal/accessibility-visibility.js +1 -1
  490. package/dist/internal/accessible-text-controller.js +1 -1
  491. package/dist/internal/active-element.d.ts +11 -0
  492. package/dist/internal/active-element.js +1 -1
  493. package/dist/internal/adjacent-runs.js +1 -1
  494. package/dist/internal/approval-wait-until.d.ts +7 -0
  495. package/dist/internal/approval-wait-until.js +1 -0
  496. package/dist/internal/aria-controls.js +1 -1
  497. package/dist/internal/catalog-picker.d.ts +2 -2
  498. package/dist/internal/catalog-picker.js +1 -1
  499. package/dist/internal/collection-snapshot.js +1 -1
  500. package/dist/internal/composed-tree.d.ts +18 -0
  501. package/dist/internal/composed-tree.js +1 -1
  502. package/dist/internal/copy-feedback.js +1 -0
  503. package/dist/internal/css-length.js +1 -1
  504. package/dist/internal/css-motion-time.js +1 -1
  505. package/dist/internal/css-number.js +1 -0
  506. package/dist/internal/default-strings/agent-tools.generated.js +1 -0
  507. package/dist/internal/default-strings/charts.generated.js +1 -0
  508. package/dist/internal/default-strings/conversation.generated.js +1 -0
  509. package/dist/internal/default-strings/data.generated.js +1 -0
  510. package/dist/internal/default-strings/forms.generated.js +1 -0
  511. package/dist/internal/default-strings/layout.generated.js +1 -0
  512. package/dist/internal/default-strings/media.generated.js +1 -0
  513. package/dist/internal/default-strings/overlays.generated.js +1 -0
  514. package/dist/internal/default-strings/retrieval.generated.js +1 -0
  515. package/dist/internal/default-strings/shared.generated.js +1 -0
  516. package/dist/internal/default-strings/utility.generated.js +1 -0
  517. package/dist/internal/default-strings/viewers.generated.js +5 -0
  518. package/dist/internal/deferred-focus-return.d.ts +33 -0
  519. package/dist/internal/deferred-focus-return.js +1 -1
  520. package/dist/internal/dev-mode-attribute-warning.development.js +1 -1
  521. package/dist/internal/dev-mode-attribute-warning.production.js +1 -1
  522. package/dist/internal/document-tokens.d.ts +11 -0
  523. package/dist/internal/document-tokens.generated.js +15 -0
  524. package/dist/internal/document-tokens.js +3 -0
  525. package/dist/internal/fixed-containing-block.js +1 -1
  526. package/dist/internal/form-associated.d.ts +39 -3
  527. package/dist/internal/form-associated.js +1 -1
  528. package/dist/internal/form-control-element.d.ts +13 -0
  529. package/dist/internal/form-control-element.js +1 -0
  530. package/dist/internal/form-control.styles.js +1 -1
  531. package/dist/internal/glass-surface.styles.js +1 -1
  532. package/dist/internal/host-tokens.styles.js +1 -0
  533. package/dist/internal/image-zoom.js +1 -0
  534. package/dist/internal/inherited-attribute-hub.js +1 -1
  535. package/dist/internal/intl-cache.js +1 -1
  536. package/dist/internal/locale-loaders.generated.js +1 -1
  537. package/dist/internal/localization-types.d.ts +1 -1
  538. package/dist/internal/localization.js +2 -2
  539. package/dist/internal/lyra-element.d.ts +4 -2
  540. package/dist/internal/lyra-element.js +2 -2
  541. package/dist/internal/modal-surface-controller.js +1 -1
  542. package/dist/internal/object-guards.js +1 -1
  543. package/dist/internal/opaque-content-border.styles.js +1 -1
  544. package/dist/internal/open-overlay-raise.styles.js +1 -0
  545. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  546. package/dist/internal/optional-peer-capabilities.js +1 -1
  547. package/dist/internal/optional-peer-failure.js +1 -0
  548. package/dist/internal/orientation-breakpoint.js +1 -1
  549. package/dist/internal/overlay-manager.d.ts +6 -1
  550. package/dist/internal/overlay-manager.js +1 -1
  551. package/dist/internal/overlay-stack.d.ts +7 -3
  552. package/dist/internal/overlay-stack.js +1 -1
  553. package/dist/internal/package-metadata.js +1 -1
  554. package/dist/internal/persisted-restore.js +1 -1
  555. package/dist/internal/popup-controller.js +1 -0
  556. package/dist/internal/prefix.js +1 -1
  557. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  558. package/dist/internal/rendered-tree-traversal.js +1 -1
  559. package/dist/internal/retry-forwarder.js +1 -0
  560. package/dist/internal/roving-toolbar.js +1 -1
  561. package/dist/internal/scoped-definitions.generated.js +1 -1
  562. package/dist/internal/score-tiers.d.ts +4 -0
  563. package/dist/internal/score-tiers.js +1 -0
  564. package/dist/internal/semantic-variant.d.ts +7 -0
  565. package/dist/internal/semantic-variant.js +1 -0
  566. package/dist/internal/shared-unions.d.ts +1 -1
  567. package/dist/internal/specialist-host-tokens.styles.js +1 -0
  568. package/dist/internal/specialist-tokens.generated.js +2 -0
  569. package/dist/internal/step-value.js +1 -1
  570. package/dist/internal/theme-observation.js +1 -1
  571. package/dist/internal/theme-scopes.d.ts +11 -0
  572. package/dist/internal/theme-scopes.js +1 -0
  573. package/dist/internal/viewer-search.js +1 -1
  574. package/dist/looks/shadcn.css +1 -1
  575. package/dist/lyra.d.ts +1 -1
  576. package/dist/lyra.js +1 -1
  577. package/dist/styles/design-tokens.css +1 -1
  578. package/dist/styles/tokens-root.css +1 -1
  579. package/dist/surfaces/glass.css +1 -1
  580. package/dist/testing/happy-dom-shims.d.ts +37 -0
  581. package/dist/testing/happy-dom-shims.js +1 -1
  582. package/dist/testing/index.d.ts +1 -1
  583. package/dist/testing/index.js +1 -1
  584. package/dist/testing/interaction-drivers.d.ts +66 -7
  585. package/dist/testing/interaction-drivers.js +1 -1
  586. package/dist/testing/jsdom-shims.d.ts +70 -0
  587. package/dist/testing/jsdom-shims.js +1 -0
  588. package/dist/theme/look-inputs.d.ts +1 -1
  589. package/dist/theme/look-inputs.js +37 -41
  590. package/dist/theme/theme.d.ts +13 -0
  591. package/dist/theme/theme.js +1 -1
  592. package/dist/theme.css +1 -1
  593. package/dist/utilities/index.d.ts +1 -1
  594. package/dist/utilities/index.js +1 -1
  595. package/dist/utilities/scoped-registry.d.ts +3 -0
  596. package/dist/utilities/scoped-registry.js +1 -1
  597. package/dist/utilities/theme-scopes.d.ts +1 -0
  598. package/dist/utilities/theme-scopes.js +1 -0
  599. package/dist/utilities/tokens.d.ts +1 -0
  600. package/dist/utilities/tokens.js +1 -0
  601. package/llms/components/lr-accordion-item.md +1 -1
  602. package/llms/components/lr-accordion.md +1 -1
  603. package/llms/components/lr-alert.md +2 -2
  604. package/llms/components/lr-app-rail-group.md +1 -1
  605. package/llms/components/lr-app-rail-item.md +1 -1
  606. package/llms/components/lr-app-rail.md +52 -5
  607. package/llms/components/lr-attachment-chip.md +1 -10
  608. package/llms/components/lr-attachment-trigger.md +0 -10
  609. package/llms/components/lr-avatar.md +4 -8
  610. package/llms/components/lr-badge.md +16 -20
  611. package/llms/components/lr-box-plot.md +1 -1
  612. package/llms/components/lr-breadcrumb-item.md +1 -1
  613. package/llms/components/lr-breadcrumb.md +1 -1
  614. package/llms/components/lr-button-group.md +1 -1
  615. package/llms/components/lr-button.md +1 -1
  616. package/llms/components/lr-calendar.md +1 -1
  617. package/llms/components/lr-callout.md +3 -13
  618. package/llms/components/lr-card.md +1 -1
  619. package/llms/components/lr-carousel-item.md +1 -1
  620. package/llms/components/lr-carousel.md +1 -1
  621. package/llms/components/lr-chart.md +5 -7
  622. package/llms/components/lr-checkbox-group.md +1 -1
  623. package/llms/components/lr-checkbox.md +2 -1
  624. package/llms/components/lr-chip.md +3 -17
  625. package/llms/components/lr-chunk-inspector.md +2 -1
  626. package/llms/components/lr-citation-badge.md +2 -2
  627. package/llms/components/lr-code-block.md +0 -10
  628. package/llms/components/lr-code-editor.md +1 -1
  629. package/llms/components/lr-color-picker.md +1 -1
  630. package/llms/components/lr-combobox.md +6 -3
  631. package/llms/components/lr-command-palette.md +5 -2
  632. package/llms/components/lr-commit-card.md +1 -3
  633. package/llms/components/lr-condition-builder.md +1 -1
  634. package/llms/components/lr-confirm-bar.md +7 -13
  635. package/llms/components/lr-connector-manager.md +3 -1
  636. package/llms/components/lr-context-inspector.md +1 -1
  637. package/llms/components/lr-context-meter.md +1 -1
  638. package/llms/components/lr-control-group.md +1 -1
  639. package/llms/components/lr-copy-button.md +8 -10
  640. package/llms/components/lr-country-picker.md +1 -1
  641. package/llms/components/lr-currency-picker.md +1 -1
  642. package/llms/components/lr-dashboard-grid.md +1 -1
  643. package/llms/components/lr-data-grid.md +1 -1
  644. package/llms/components/lr-date-input.md +1 -1
  645. package/llms/components/lr-date-picker.md +11 -4
  646. package/llms/components/lr-details.md +1 -1
  647. package/llms/components/lr-dialog.md +8 -31
  648. package/llms/components/lr-diff-view.md +1 -1
  649. package/llms/components/lr-divider.md +1 -1
  650. package/llms/components/lr-dock-panel.md +1 -1
  651. package/llms/components/lr-document-library.md +1 -1
  652. package/llms/components/lr-drawer.md +1 -13
  653. package/llms/components/lr-drilldown-panel.md +1 -1
  654. package/llms/components/lr-drop-zone.md +4 -0
  655. package/llms/components/lr-dropdown-item.md +1 -1
  656. package/llms/components/lr-ebook-viewer.md +4 -3
  657. package/llms/components/lr-emoji-picker.md +14 -9
  658. package/llms/components/lr-entity-chip.md +2 -2
  659. package/llms/components/lr-env-list.md +1 -1
  660. package/llms/components/lr-eval-dataset.md +4 -19
  661. package/llms/components/lr-export-button.md +3 -3
  662. package/llms/components/lr-file-icon.md +0 -5
  663. package/llms/components/lr-file-input.md +3 -5
  664. package/llms/components/lr-file-tree.md +1 -1
  665. package/llms/components/lr-filter-bar.md +5 -1
  666. package/llms/components/lr-flag.md +1 -2
  667. package/llms/components/lr-flow-canvas.md +1 -1
  668. package/llms/components/lr-flow-controls.md +1 -1
  669. package/llms/components/lr-flow-minimap.md +2 -2
  670. package/llms/components/lr-flow-node.md +1 -1
  671. package/llms/components/lr-flow-run-status.md +1 -1
  672. package/llms/components/lr-format-bytes.md +2 -3
  673. package/llms/components/lr-format-date.md +2 -3
  674. package/llms/components/lr-format-number.md +1 -1
  675. package/llms/components/lr-funnel.md +1 -1
  676. package/llms/components/lr-gauge.md +1 -1
  677. package/llms/components/lr-generation-metrics.md +1 -1
  678. package/llms/components/lr-graph-query-builder.md +1 -1
  679. package/llms/components/lr-heatmap.md +1 -1
  680. package/llms/components/lr-icon-button.md +14 -2
  681. package/llms/components/lr-icon.md +1 -1
  682. package/llms/components/lr-image-viewer.md +8 -0
  683. package/llms/components/lr-input.md +1 -1
  684. package/llms/components/lr-intersection-observer.md +1 -1
  685. package/llms/components/lr-json-viewer.md +1 -1
  686. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  687. package/llms/components/lr-known-date.md +1 -1
  688. package/llms/components/lr-lite-chart.md +3 -4
  689. package/llms/components/lr-live-region.md +1 -1
  690. package/llms/components/lr-locale-picker.md +1 -1
  691. package/llms/components/lr-map.md +1 -3
  692. package/llms/components/lr-media-card.md +1 -10
  693. package/llms/components/lr-memory-panel.md +2 -0
  694. package/llms/components/lr-mention-popover.md +3 -3
  695. package/llms/components/lr-menu-item.md +1 -1
  696. package/llms/components/lr-menu-label.md +1 -1
  697. package/llms/components/lr-menu.md +1 -1
  698. package/llms/components/lr-menubar-item.md +1 -1
  699. package/llms/components/lr-menubar.md +1 -1
  700. package/llms/components/lr-message-actions.md +1 -11
  701. package/llms/components/lr-message-parts.md +3 -5
  702. package/llms/components/lr-model-select.md +2 -4
  703. package/llms/components/lr-multi-split.md +1 -1
  704. package/llms/components/lr-mutation-observer.md +2 -2
  705. package/llms/components/lr-native-time-input.md +1 -1
  706. package/llms/components/lr-navigation-menu-item.md +1 -1
  707. package/llms/components/lr-navigation-menu.md +1 -1
  708. package/llms/components/lr-number-input.md +1 -1
  709. package/llms/components/lr-option.md +1 -1
  710. package/llms/components/lr-otp-input.md +1 -1
  711. package/llms/components/lr-page.md +1 -1
  712. package/llms/components/lr-pagination.md +5 -3
  713. package/llms/components/lr-pan-zoom.md +1 -3
  714. package/llms/components/lr-permission-grant.md +3 -1
  715. package/llms/components/lr-phone-input.md +7 -5
  716. package/llms/components/lr-poll-status.md +1 -1
  717. package/llms/components/lr-popover.md +5 -9
  718. package/llms/components/lr-popup.md +1 -3
  719. package/llms/components/lr-progress-bar.md +2 -1
  720. package/llms/components/lr-progress-ring.md +4 -8
  721. package/llms/components/lr-prompt-input.md +3 -1
  722. package/llms/components/lr-prompt-studio.md +4 -4
  723. package/llms/components/lr-radio-button.md +2 -2
  724. package/llms/components/lr-radio-group.md +1 -1
  725. package/llms/components/lr-radio.md +3 -2
  726. package/llms/components/lr-random-content.md +1 -1
  727. package/llms/components/lr-rating.md +2 -3
  728. package/llms/components/lr-relative-time.md +2 -3
  729. package/llms/components/lr-reorder-item.md +1 -1
  730. package/llms/components/lr-reorder-list.md +1 -1
  731. package/llms/components/lr-research-progress.md +2 -0
  732. package/llms/components/lr-resize-observer.md +1 -1
  733. package/llms/components/lr-responsive-panel.md +1 -1
  734. package/llms/components/lr-retrieval-compare.md +2 -0
  735. package/llms/components/lr-retrieval-trace.md +2 -0
  736. package/llms/components/lr-rubric-form.md +1 -1
  737. package/llms/components/lr-scroller.md +1 -1
  738. package/llms/components/lr-segmented.md +8 -4
  739. package/llms/components/lr-select.md +1 -1
  740. package/llms/components/lr-sequence-playback.md +1 -2
  741. package/llms/components/lr-sequence-strip.md +1 -1
  742. package/llms/components/lr-signature-pad.md +1 -1
  743. package/llms/components/lr-skeleton.md +2 -4
  744. package/llms/components/lr-slider.md +1 -1
  745. package/llms/components/lr-sparkline.md +1 -1
  746. package/llms/components/lr-split-panel.md +1 -1
  747. package/llms/components/lr-stat.md +1 -1
  748. package/llms/components/lr-stepper.md +1 -1
  749. package/llms/components/lr-swatch-picker.md +1 -1
  750. package/llms/components/lr-switch.md +2 -1
  751. package/llms/components/lr-tab-group.md +1 -1
  752. package/llms/components/lr-tab-panel.md +1 -1
  753. package/llms/components/lr-tab.md +1 -1
  754. package/llms/components/lr-table.md +16 -14
  755. package/llms/components/lr-task-list.md +3 -3
  756. package/llms/components/lr-test-results.md +2 -4
  757. package/llms/components/lr-textarea.md +1 -1
  758. package/llms/components/lr-thread-list.md +4 -3
  759. package/llms/components/lr-time-input.md +1 -1
  760. package/llms/components/lr-time-range.md +5 -4
  761. package/llms/components/lr-time-zone-picker.md +1 -1
  762. package/llms/components/lr-timeline-item.md +1 -1
  763. package/llms/components/lr-timeline.md +1 -1
  764. package/llms/components/lr-toggle-group.md +1 -1
  765. package/llms/components/lr-toggle.md +1 -1
  766. package/llms/components/lr-token-input.md +1 -1
  767. package/llms/components/lr-tool-approval-dialog.md +12 -10
  768. package/llms/components/lr-tool-call-block.md +1 -1
  769. package/llms/components/lr-tool-call-chip.md +1 -3
  770. package/llms/components/lr-tool-result-view.md +3 -3
  771. package/llms/components/lr-tool-timeline.md +2 -2
  772. package/llms/components/lr-tooltip.md +8 -11
  773. package/llms/components/lr-tour.md +2 -2
  774. package/llms/components/lr-tree-item.md +1 -1
  775. package/llms/components/lr-tree.md +1 -1
  776. package/llms/components/lr-unit-picker.md +1 -1
  777. package/llms/components/lr-usage-badge.md +1 -3
  778. package/llms/components/lr-video.md +1 -2
  779. package/llms/components/lr-virtual-list.md +1 -1
  780. package/llms/components/lr-visually-hidden.md +1 -1
  781. package/llms/components/lr-voice-picker.md +1 -1
  782. package/llms/components/lr-widget.md +1 -1
  783. package/llms/components/lr-word-cloud.md +1 -1
  784. package/llms/components/lr-zoomable-frame.md +1 -6
  785. package/llms/migration.md +105 -2
  786. package/llms/peers.md +3 -2
  787. package/llms/shared/ai-and-peers.md +2 -2
  788. package/llms/shared/events-and-types.md +45 -1
  789. package/llms/shared/frameworks-and-ssr.md +16 -0
  790. package/llms/shared/imports-and-registration.md +6 -5
  791. package/llms/shared/localization-and-rtl.md +18 -18
  792. package/llms/shared/native-styles-and-utilities.md +38 -3
  793. package/llms/shared/styles-and-tokens.md +243 -103
  794. package/llms/shared/testing-and-utilities.md +134 -49
  795. package/llms/shared.md +502 -181
  796. package/llms/tokens.md +31 -49
  797. package/llms.txt +14 -12
  798. package/locales.json +1002 -1002
  799. package/package.json +28 -6884
  800. package/registrations.json +1 -1
  801. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  802. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  803. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  804. package/skills/lyra-ui/SKILL.md +145 -0
  805. package/skills/lyra-ui/commands/frontend.md +37 -0
  806. package/skills/lyra-ui/commands/migrate.md +44 -0
  807. package/skills/lyra-ui/commands/new-component.md +19 -0
  808. package/skills/lyra-ui/commands/review.md +247 -0
  809. package/skills/lyra-ui/commands/update.md +30 -0
  810. package/skills/lyra-ui/reporting.md +137 -0
  811. package/custom-elements.json +0 -1
  812. package/dist/internal/default-strings.generated.js +0 -5
  813. package/dist/internal/side-effect-only.d.ts +0 -1
  814. package/dist/internal/specialist-tokens.styles.js +0 -1
  815. package/dist/internal/tokens/palette.styles.js +0 -1
  816. package/dist/internal/tokens.styles.js +0 -1
  817. package/dist/translations/am/agent-tools.js +0 -1
  818. package/dist/translations/am/charts.js +0 -1
  819. package/dist/translations/am/conversation.js +0 -1
  820. package/dist/translations/am/data.js +0 -1
  821. package/dist/translations/am/forms.js +0 -1
  822. package/dist/translations/am/layout.js +0 -1
  823. package/dist/translations/am/media.js +0 -1
  824. package/dist/translations/am/overlays.js +0 -1
  825. package/dist/translations/am/retrieval.js +0 -1
  826. package/dist/translations/am/shared.js +0 -1
  827. package/dist/translations/am/utility.js +0 -1
  828. package/dist/translations/am/viewers.js +0 -5
  829. package/dist/translations/am.js +0 -1
  830. package/dist/translations/ar/agent-tools.js +0 -1
  831. package/dist/translations/ar/charts.js +0 -1
  832. package/dist/translations/ar/conversation.js +0 -1
  833. package/dist/translations/ar/data.js +0 -1
  834. package/dist/translations/ar/forms.js +0 -1
  835. package/dist/translations/ar/layout.js +0 -1
  836. package/dist/translations/ar/media.js +0 -1
  837. package/dist/translations/ar/overlays.js +0 -1
  838. package/dist/translations/ar/retrieval.js +0 -1
  839. package/dist/translations/ar/shared.js +0 -1
  840. package/dist/translations/ar/utility.js +0 -1
  841. package/dist/translations/ar/viewers.js +0 -5
  842. package/dist/translations/ar.js +0 -1
  843. package/dist/translations/bho/agent-tools.js +0 -1
  844. package/dist/translations/bho/charts.js +0 -1
  845. package/dist/translations/bho/conversation.js +0 -1
  846. package/dist/translations/bho/data.js +0 -1
  847. package/dist/translations/bho/forms.js +0 -1
  848. package/dist/translations/bho/layout.js +0 -1
  849. package/dist/translations/bho/media.js +0 -1
  850. package/dist/translations/bho/overlays.js +0 -1
  851. package/dist/translations/bho/retrieval.js +0 -1
  852. package/dist/translations/bho/shared.js +0 -1
  853. package/dist/translations/bho/utility.js +0 -1
  854. package/dist/translations/bho/viewers.js +0 -5
  855. package/dist/translations/bho.js +0 -1
  856. package/dist/translations/bn/agent-tools.js +0 -1
  857. package/dist/translations/bn/charts.js +0 -1
  858. package/dist/translations/bn/conversation.js +0 -1
  859. package/dist/translations/bn/data.js +0 -1
  860. package/dist/translations/bn/forms.js +0 -1
  861. package/dist/translations/bn/layout.js +0 -1
  862. package/dist/translations/bn/media.js +0 -1
  863. package/dist/translations/bn/overlays.js +0 -1
  864. package/dist/translations/bn/retrieval.js +0 -1
  865. package/dist/translations/bn/shared.js +0 -1
  866. package/dist/translations/bn/utility.js +0 -1
  867. package/dist/translations/bn/viewers.js +0 -5
  868. package/dist/translations/bn.js +0 -1
  869. package/dist/translations/cs/agent-tools.js +0 -1
  870. package/dist/translations/cs/charts.js +0 -1
  871. package/dist/translations/cs/conversation.js +0 -1
  872. package/dist/translations/cs/data.js +0 -1
  873. package/dist/translations/cs/forms.js +0 -1
  874. package/dist/translations/cs/layout.js +0 -1
  875. package/dist/translations/cs/media.js +0 -1
  876. package/dist/translations/cs/overlays.js +0 -1
  877. package/dist/translations/cs/retrieval.js +0 -1
  878. package/dist/translations/cs/shared.js +0 -1
  879. package/dist/translations/cs/utility.js +0 -1
  880. package/dist/translations/cs/viewers.js +0 -5
  881. package/dist/translations/cs.js +0 -1
  882. package/dist/translations/da/agent-tools.js +0 -1
  883. package/dist/translations/da/charts.js +0 -1
  884. package/dist/translations/da/conversation.js +0 -1
  885. package/dist/translations/da/data.js +0 -1
  886. package/dist/translations/da/forms.js +0 -1
  887. package/dist/translations/da/layout.js +0 -1
  888. package/dist/translations/da/media.js +0 -1
  889. package/dist/translations/da/overlays.js +0 -1
  890. package/dist/translations/da/retrieval.js +0 -1
  891. package/dist/translations/da/shared.js +0 -1
  892. package/dist/translations/da/utility.js +0 -1
  893. package/dist/translations/da/viewers.js +0 -5
  894. package/dist/translations/da.js +0 -1
  895. package/dist/translations/de/agent-tools.js +0 -1
  896. package/dist/translations/de/charts.js +0 -1
  897. package/dist/translations/de/conversation.js +0 -1
  898. package/dist/translations/de/data.js +0 -1
  899. package/dist/translations/de/forms.js +0 -1
  900. package/dist/translations/de/layout.js +0 -1
  901. package/dist/translations/de/media.js +0 -1
  902. package/dist/translations/de/overlays.js +0 -1
  903. package/dist/translations/de/retrieval.js +0 -1
  904. package/dist/translations/de/shared.js +0 -1
  905. package/dist/translations/de/utility.js +0 -1
  906. package/dist/translations/de/viewers.js +0 -5
  907. package/dist/translations/de-CH/agent-tools.js +0 -1
  908. package/dist/translations/de-CH/charts.js +0 -1
  909. package/dist/translations/de-CH/conversation.js +0 -1
  910. package/dist/translations/de-CH/data.js +0 -1
  911. package/dist/translations/de-CH/forms.js +0 -1
  912. package/dist/translations/de-CH/layout.js +0 -1
  913. package/dist/translations/de-CH/media.js +0 -1
  914. package/dist/translations/de-CH/overlays.js +0 -1
  915. package/dist/translations/de-CH/retrieval.js +0 -1
  916. package/dist/translations/de-CH/shared.js +0 -1
  917. package/dist/translations/de-CH/utility.js +0 -1
  918. package/dist/translations/de-CH/viewers.js +0 -1
  919. package/dist/translations/de-CH.js +0 -1
  920. package/dist/translations/de.js +0 -1
  921. package/dist/translations/el/agent-tools.js +0 -1
  922. package/dist/translations/el/charts.js +0 -1
  923. package/dist/translations/el/conversation.js +0 -1
  924. package/dist/translations/el/data.js +0 -1
  925. package/dist/translations/el/forms.js +0 -1
  926. package/dist/translations/el/layout.js +0 -1
  927. package/dist/translations/el/media.js +0 -1
  928. package/dist/translations/el/overlays.js +0 -1
  929. package/dist/translations/el/retrieval.js +0 -1
  930. package/dist/translations/el/shared.js +0 -1
  931. package/dist/translations/el/utility.js +0 -1
  932. package/dist/translations/el/viewers.js +0 -5
  933. package/dist/translations/el.js +0 -1
  934. package/dist/translations/es/agent-tools.js +0 -1
  935. package/dist/translations/es/charts.js +0 -1
  936. package/dist/translations/es/conversation.js +0 -1
  937. package/dist/translations/es/data.js +0 -1
  938. package/dist/translations/es/forms.js +0 -1
  939. package/dist/translations/es/layout.js +0 -1
  940. package/dist/translations/es/media.js +0 -1
  941. package/dist/translations/es/overlays.js +0 -1
  942. package/dist/translations/es/retrieval.js +0 -1
  943. package/dist/translations/es/shared.js +0 -1
  944. package/dist/translations/es/utility.js +0 -1
  945. package/dist/translations/es/viewers.js +0 -5
  946. package/dist/translations/es.js +0 -1
  947. package/dist/translations/fa/agent-tools.js +0 -1
  948. package/dist/translations/fa/charts.js +0 -1
  949. package/dist/translations/fa/conversation.js +0 -1
  950. package/dist/translations/fa/data.js +0 -1
  951. package/dist/translations/fa/forms.js +0 -1
  952. package/dist/translations/fa/layout.js +0 -1
  953. package/dist/translations/fa/media.js +0 -1
  954. package/dist/translations/fa/overlays.js +0 -1
  955. package/dist/translations/fa/retrieval.js +0 -1
  956. package/dist/translations/fa/shared.js +0 -1
  957. package/dist/translations/fa/utility.js +0 -1
  958. package/dist/translations/fa/viewers.js +0 -5
  959. package/dist/translations/fa-AF/agent-tools.js +0 -1
  960. package/dist/translations/fa-AF/charts.js +0 -1
  961. package/dist/translations/fa-AF/conversation.js +0 -1
  962. package/dist/translations/fa-AF/data.js +0 -1
  963. package/dist/translations/fa-AF/forms.js +0 -1
  964. package/dist/translations/fa-AF/layout.js +0 -1
  965. package/dist/translations/fa-AF/media.js +0 -1
  966. package/dist/translations/fa-AF/overlays.js +0 -1
  967. package/dist/translations/fa-AF/retrieval.js +0 -1
  968. package/dist/translations/fa-AF/shared.js +0 -1
  969. package/dist/translations/fa-AF/utility.js +0 -1
  970. package/dist/translations/fa-AF/viewers.js +0 -5
  971. package/dist/translations/fa-AF.js +0 -1
  972. package/dist/translations/fa.js +0 -1
  973. package/dist/translations/fi/agent-tools.js +0 -1
  974. package/dist/translations/fi/charts.js +0 -1
  975. package/dist/translations/fi/conversation.js +0 -1
  976. package/dist/translations/fi/data.js +0 -1
  977. package/dist/translations/fi/forms.js +0 -1
  978. package/dist/translations/fi/layout.js +0 -1
  979. package/dist/translations/fi/media.js +0 -1
  980. package/dist/translations/fi/overlays.js +0 -1
  981. package/dist/translations/fi/retrieval.js +0 -1
  982. package/dist/translations/fi/shared.js +0 -1
  983. package/dist/translations/fi/utility.js +0 -1
  984. package/dist/translations/fi/viewers.js +0 -5
  985. package/dist/translations/fi.js +0 -1
  986. package/dist/translations/fr/agent-tools.js +0 -1
  987. package/dist/translations/fr/charts.js +0 -1
  988. package/dist/translations/fr/conversation.js +0 -1
  989. package/dist/translations/fr/data.js +0 -1
  990. package/dist/translations/fr/forms.js +0 -1
  991. package/dist/translations/fr/layout.js +0 -1
  992. package/dist/translations/fr/media.js +0 -1
  993. package/dist/translations/fr/overlays.js +0 -1
  994. package/dist/translations/fr/retrieval.js +0 -1
  995. package/dist/translations/fr/shared.js +0 -1
  996. package/dist/translations/fr/utility.js +0 -1
  997. package/dist/translations/fr/viewers.js +0 -5
  998. package/dist/translations/fr.js +0 -1
  999. package/dist/translations/gu/agent-tools.js +0 -1
  1000. package/dist/translations/gu/charts.js +0 -1
  1001. package/dist/translations/gu/conversation.js +0 -1
  1002. package/dist/translations/gu/data.js +0 -1
  1003. package/dist/translations/gu/forms.js +0 -1
  1004. package/dist/translations/gu/layout.js +0 -1
  1005. package/dist/translations/gu/media.js +0 -1
  1006. package/dist/translations/gu/overlays.js +0 -1
  1007. package/dist/translations/gu/retrieval.js +0 -1
  1008. package/dist/translations/gu/shared.js +0 -1
  1009. package/dist/translations/gu/utility.js +0 -1
  1010. package/dist/translations/gu/viewers.js +0 -5
  1011. package/dist/translations/gu.js +0 -1
  1012. package/dist/translations/ha/agent-tools.js +0 -1
  1013. package/dist/translations/ha/charts.js +0 -1
  1014. package/dist/translations/ha/conversation.js +0 -1
  1015. package/dist/translations/ha/data.js +0 -1
  1016. package/dist/translations/ha/forms.js +0 -1
  1017. package/dist/translations/ha/layout.js +0 -1
  1018. package/dist/translations/ha/media.js +0 -1
  1019. package/dist/translations/ha/overlays.js +0 -1
  1020. package/dist/translations/ha/retrieval.js +0 -1
  1021. package/dist/translations/ha/shared.js +0 -1
  1022. package/dist/translations/ha/utility.js +0 -1
  1023. package/dist/translations/ha/viewers.js +0 -5
  1024. package/dist/translations/ha.js +0 -1
  1025. package/dist/translations/he/agent-tools.js +0 -1
  1026. package/dist/translations/he/charts.js +0 -1
  1027. package/dist/translations/he/conversation.js +0 -1
  1028. package/dist/translations/he/data.js +0 -1
  1029. package/dist/translations/he/forms.js +0 -1
  1030. package/dist/translations/he/layout.js +0 -1
  1031. package/dist/translations/he/media.js +0 -1
  1032. package/dist/translations/he/overlays.js +0 -1
  1033. package/dist/translations/he/retrieval.js +0 -1
  1034. package/dist/translations/he/shared.js +0 -1
  1035. package/dist/translations/he/utility.js +0 -1
  1036. package/dist/translations/he/viewers.js +0 -5
  1037. package/dist/translations/he.js +0 -1
  1038. package/dist/translations/hi/agent-tools.js +0 -1
  1039. package/dist/translations/hi/charts.js +0 -1
  1040. package/dist/translations/hi/conversation.js +0 -1
  1041. package/dist/translations/hi/data.js +0 -1
  1042. package/dist/translations/hi/forms.js +0 -1
  1043. package/dist/translations/hi/layout.js +0 -1
  1044. package/dist/translations/hi/media.js +0 -1
  1045. package/dist/translations/hi/overlays.js +0 -1
  1046. package/dist/translations/hi/retrieval.js +0 -1
  1047. package/dist/translations/hi/shared.js +0 -1
  1048. package/dist/translations/hi/utility.js +0 -1
  1049. package/dist/translations/hi/viewers.js +0 -5
  1050. package/dist/translations/hi.js +0 -1
  1051. package/dist/translations/hr/agent-tools.js +0 -1
  1052. package/dist/translations/hr/charts.js +0 -1
  1053. package/dist/translations/hr/conversation.js +0 -1
  1054. package/dist/translations/hr/data.js +0 -1
  1055. package/dist/translations/hr/forms.js +0 -1
  1056. package/dist/translations/hr/layout.js +0 -1
  1057. package/dist/translations/hr/media.js +0 -1
  1058. package/dist/translations/hr/overlays.js +0 -1
  1059. package/dist/translations/hr/retrieval.js +0 -1
  1060. package/dist/translations/hr/shared.js +0 -1
  1061. package/dist/translations/hr/utility.js +0 -1
  1062. package/dist/translations/hr/viewers.js +0 -5
  1063. package/dist/translations/hr.js +0 -1
  1064. package/dist/translations/hu/agent-tools.js +0 -1
  1065. package/dist/translations/hu/charts.js +0 -1
  1066. package/dist/translations/hu/conversation.js +0 -1
  1067. package/dist/translations/hu/data.js +0 -1
  1068. package/dist/translations/hu/forms.js +0 -1
  1069. package/dist/translations/hu/layout.js +0 -1
  1070. package/dist/translations/hu/media.js +0 -1
  1071. package/dist/translations/hu/overlays.js +0 -1
  1072. package/dist/translations/hu/retrieval.js +0 -1
  1073. package/dist/translations/hu/shared.js +0 -1
  1074. package/dist/translations/hu/utility.js +0 -1
  1075. package/dist/translations/hu/viewers.js +0 -5
  1076. package/dist/translations/hu.js +0 -1
  1077. package/dist/translations/id/agent-tools.js +0 -1
  1078. package/dist/translations/id/charts.js +0 -1
  1079. package/dist/translations/id/conversation.js +0 -1
  1080. package/dist/translations/id/data.js +0 -1
  1081. package/dist/translations/id/forms.js +0 -1
  1082. package/dist/translations/id/layout.js +0 -1
  1083. package/dist/translations/id/media.js +0 -1
  1084. package/dist/translations/id/overlays.js +0 -1
  1085. package/dist/translations/id/retrieval.js +0 -1
  1086. package/dist/translations/id/shared.js +0 -1
  1087. package/dist/translations/id/utility.js +0 -1
  1088. package/dist/translations/id/viewers.js +0 -5
  1089. package/dist/translations/id.js +0 -1
  1090. package/dist/translations/ig/agent-tools.js +0 -1
  1091. package/dist/translations/ig/charts.js +0 -1
  1092. package/dist/translations/ig/conversation.js +0 -1
  1093. package/dist/translations/ig/data.js +0 -1
  1094. package/dist/translations/ig/forms.js +0 -1
  1095. package/dist/translations/ig/layout.js +0 -1
  1096. package/dist/translations/ig/media.js +0 -1
  1097. package/dist/translations/ig/overlays.js +0 -1
  1098. package/dist/translations/ig/retrieval.js +0 -1
  1099. package/dist/translations/ig/shared.js +0 -1
  1100. package/dist/translations/ig/utility.js +0 -1
  1101. package/dist/translations/ig/viewers.js +0 -5
  1102. package/dist/translations/ig.js +0 -1
  1103. package/dist/translations/it/agent-tools.js +0 -1
  1104. package/dist/translations/it/charts.js +0 -1
  1105. package/dist/translations/it/conversation.js +0 -1
  1106. package/dist/translations/it/data.js +0 -1
  1107. package/dist/translations/it/forms.js +0 -1
  1108. package/dist/translations/it/layout.js +0 -1
  1109. package/dist/translations/it/media.js +0 -1
  1110. package/dist/translations/it/overlays.js +0 -1
  1111. package/dist/translations/it/retrieval.js +0 -1
  1112. package/dist/translations/it/shared.js +0 -1
  1113. package/dist/translations/it/utility.js +0 -1
  1114. package/dist/translations/it/viewers.js +0 -5
  1115. package/dist/translations/it.js +0 -1
  1116. package/dist/translations/ja/agent-tools.js +0 -1
  1117. package/dist/translations/ja/charts.js +0 -1
  1118. package/dist/translations/ja/conversation.js +0 -1
  1119. package/dist/translations/ja/data.js +0 -1
  1120. package/dist/translations/ja/forms.js +0 -1
  1121. package/dist/translations/ja/layout.js +0 -1
  1122. package/dist/translations/ja/media.js +0 -1
  1123. package/dist/translations/ja/overlays.js +0 -1
  1124. package/dist/translations/ja/retrieval.js +0 -1
  1125. package/dist/translations/ja/shared.js +0 -1
  1126. package/dist/translations/ja/utility.js +0 -1
  1127. package/dist/translations/ja/viewers.js +0 -4
  1128. package/dist/translations/ja.js +0 -1
  1129. package/dist/translations/jv/agent-tools.js +0 -1
  1130. package/dist/translations/jv/charts.js +0 -1
  1131. package/dist/translations/jv/conversation.js +0 -1
  1132. package/dist/translations/jv/data.js +0 -1
  1133. package/dist/translations/jv/forms.js +0 -1
  1134. package/dist/translations/jv/layout.js +0 -1
  1135. package/dist/translations/jv/media.js +0 -1
  1136. package/dist/translations/jv/overlays.js +0 -1
  1137. package/dist/translations/jv/retrieval.js +0 -1
  1138. package/dist/translations/jv/shared.js +0 -1
  1139. package/dist/translations/jv/utility.js +0 -1
  1140. package/dist/translations/jv/viewers.js +0 -5
  1141. package/dist/translations/jv.js +0 -1
  1142. package/dist/translations/kk/agent-tools.js +0 -1
  1143. package/dist/translations/kk/charts.js +0 -1
  1144. package/dist/translations/kk/conversation.js +0 -1
  1145. package/dist/translations/kk/data.js +0 -1
  1146. package/dist/translations/kk/forms.js +0 -1
  1147. package/dist/translations/kk/layout.js +0 -1
  1148. package/dist/translations/kk/media.js +0 -1
  1149. package/dist/translations/kk/overlays.js +0 -1
  1150. package/dist/translations/kk/retrieval.js +0 -1
  1151. package/dist/translations/kk/shared.js +0 -1
  1152. package/dist/translations/kk/utility.js +0 -1
  1153. package/dist/translations/kk/viewers.js +0 -5
  1154. package/dist/translations/kk.js +0 -1
  1155. package/dist/translations/kn/agent-tools.js +0 -1
  1156. package/dist/translations/kn/charts.js +0 -1
  1157. package/dist/translations/kn/conversation.js +0 -1
  1158. package/dist/translations/kn/data.js +0 -1
  1159. package/dist/translations/kn/forms.js +0 -1
  1160. package/dist/translations/kn/layout.js +0 -1
  1161. package/dist/translations/kn/media.js +0 -1
  1162. package/dist/translations/kn/overlays.js +0 -1
  1163. package/dist/translations/kn/retrieval.js +0 -1
  1164. package/dist/translations/kn/shared.js +0 -1
  1165. package/dist/translations/kn/utility.js +0 -1
  1166. package/dist/translations/kn/viewers.js +0 -5
  1167. package/dist/translations/kn.js +0 -1
  1168. package/dist/translations/ko/agent-tools.js +0 -1
  1169. package/dist/translations/ko/charts.js +0 -1
  1170. package/dist/translations/ko/conversation.js +0 -1
  1171. package/dist/translations/ko/data.js +0 -1
  1172. package/dist/translations/ko/forms.js +0 -1
  1173. package/dist/translations/ko/layout.js +0 -1
  1174. package/dist/translations/ko/media.js +0 -1
  1175. package/dist/translations/ko/overlays.js +0 -1
  1176. package/dist/translations/ko/retrieval.js +0 -1
  1177. package/dist/translations/ko/shared.js +0 -1
  1178. package/dist/translations/ko/utility.js +0 -1
  1179. package/dist/translations/ko/viewers.js +0 -5
  1180. package/dist/translations/ko.js +0 -1
  1181. package/dist/translations/ln/agent-tools.js +0 -1
  1182. package/dist/translations/ln/charts.js +0 -1
  1183. package/dist/translations/ln/conversation.js +0 -1
  1184. package/dist/translations/ln/data.js +0 -1
  1185. package/dist/translations/ln/forms.js +0 -1
  1186. package/dist/translations/ln/layout.js +0 -1
  1187. package/dist/translations/ln/media.js +0 -1
  1188. package/dist/translations/ln/overlays.js +0 -1
  1189. package/dist/translations/ln/retrieval.js +0 -1
  1190. package/dist/translations/ln/shared.js +0 -1
  1191. package/dist/translations/ln/utility.js +0 -1
  1192. package/dist/translations/ln/viewers.js +0 -5
  1193. package/dist/translations/ln.js +0 -1
  1194. package/dist/translations/ml/agent-tools.js +0 -1
  1195. package/dist/translations/ml/charts.js +0 -1
  1196. package/dist/translations/ml/conversation.js +0 -1
  1197. package/dist/translations/ml/data.js +0 -1
  1198. package/dist/translations/ml/forms.js +0 -1
  1199. package/dist/translations/ml/layout.js +0 -1
  1200. package/dist/translations/ml/media.js +0 -1
  1201. package/dist/translations/ml/overlays.js +0 -1
  1202. package/dist/translations/ml/retrieval.js +0 -1
  1203. package/dist/translations/ml/shared.js +0 -1
  1204. package/dist/translations/ml/utility.js +0 -1
  1205. package/dist/translations/ml/viewers.js +0 -5
  1206. package/dist/translations/ml.js +0 -1
  1207. package/dist/translations/mr/agent-tools.js +0 -1
  1208. package/dist/translations/mr/charts.js +0 -1
  1209. package/dist/translations/mr/conversation.js +0 -1
  1210. package/dist/translations/mr/data.js +0 -1
  1211. package/dist/translations/mr/forms.js +0 -1
  1212. package/dist/translations/mr/layout.js +0 -1
  1213. package/dist/translations/mr/media.js +0 -1
  1214. package/dist/translations/mr/overlays.js +0 -1
  1215. package/dist/translations/mr/retrieval.js +0 -1
  1216. package/dist/translations/mr/shared.js +0 -1
  1217. package/dist/translations/mr/utility.js +0 -1
  1218. package/dist/translations/mr/viewers.js +0 -5
  1219. package/dist/translations/mr.js +0 -1
  1220. package/dist/translations/ms/agent-tools.js +0 -1
  1221. package/dist/translations/ms/charts.js +0 -1
  1222. package/dist/translations/ms/conversation.js +0 -1
  1223. package/dist/translations/ms/data.js +0 -1
  1224. package/dist/translations/ms/forms.js +0 -1
  1225. package/dist/translations/ms/layout.js +0 -1
  1226. package/dist/translations/ms/media.js +0 -1
  1227. package/dist/translations/ms/overlays.js +0 -1
  1228. package/dist/translations/ms/retrieval.js +0 -1
  1229. package/dist/translations/ms/shared.js +0 -1
  1230. package/dist/translations/ms/utility.js +0 -1
  1231. package/dist/translations/ms/viewers.js +0 -5
  1232. package/dist/translations/ms.js +0 -1
  1233. package/dist/translations/my/agent-tools.js +0 -1
  1234. package/dist/translations/my/charts.js +0 -1
  1235. package/dist/translations/my/conversation.js +0 -1
  1236. package/dist/translations/my/data.js +0 -1
  1237. package/dist/translations/my/forms.js +0 -1
  1238. package/dist/translations/my/layout.js +0 -1
  1239. package/dist/translations/my/media.js +0 -1
  1240. package/dist/translations/my/overlays.js +0 -1
  1241. package/dist/translations/my/retrieval.js +0 -1
  1242. package/dist/translations/my/shared.js +0 -1
  1243. package/dist/translations/my/utility.js +0 -1
  1244. package/dist/translations/my/viewers.js +0 -5
  1245. package/dist/translations/my.js +0 -1
  1246. package/dist/translations/nb/agent-tools.js +0 -1
  1247. package/dist/translations/nb/charts.js +0 -1
  1248. package/dist/translations/nb/conversation.js +0 -1
  1249. package/dist/translations/nb/data.js +0 -1
  1250. package/dist/translations/nb/forms.js +0 -1
  1251. package/dist/translations/nb/layout.js +0 -1
  1252. package/dist/translations/nb/media.js +0 -1
  1253. package/dist/translations/nb/overlays.js +0 -1
  1254. package/dist/translations/nb/retrieval.js +0 -1
  1255. package/dist/translations/nb/shared.js +0 -1
  1256. package/dist/translations/nb/utility.js +0 -1
  1257. package/dist/translations/nb/viewers.js +0 -5
  1258. package/dist/translations/nb.js +0 -1
  1259. package/dist/translations/ne/agent-tools.js +0 -1
  1260. package/dist/translations/ne/charts.js +0 -1
  1261. package/dist/translations/ne/conversation.js +0 -1
  1262. package/dist/translations/ne/data.js +0 -1
  1263. package/dist/translations/ne/forms.js +0 -1
  1264. package/dist/translations/ne/layout.js +0 -1
  1265. package/dist/translations/ne/media.js +0 -1
  1266. package/dist/translations/ne/overlays.js +0 -1
  1267. package/dist/translations/ne/retrieval.js +0 -1
  1268. package/dist/translations/ne/shared.js +0 -1
  1269. package/dist/translations/ne/utility.js +0 -1
  1270. package/dist/translations/ne/viewers.js +0 -5
  1271. package/dist/translations/ne.js +0 -1
  1272. package/dist/translations/nl/agent-tools.js +0 -1
  1273. package/dist/translations/nl/charts.js +0 -1
  1274. package/dist/translations/nl/conversation.js +0 -1
  1275. package/dist/translations/nl/data.js +0 -1
  1276. package/dist/translations/nl/forms.js +0 -1
  1277. package/dist/translations/nl/layout.js +0 -1
  1278. package/dist/translations/nl/media.js +0 -1
  1279. package/dist/translations/nl/overlays.js +0 -1
  1280. package/dist/translations/nl/retrieval.js +0 -1
  1281. package/dist/translations/nl/shared.js +0 -1
  1282. package/dist/translations/nl/utility.js +0 -1
  1283. package/dist/translations/nl/viewers.js +0 -5
  1284. package/dist/translations/nl.js +0 -1
  1285. package/dist/translations/nn/agent-tools.js +0 -1
  1286. package/dist/translations/nn/charts.js +0 -1
  1287. package/dist/translations/nn/conversation.js +0 -1
  1288. package/dist/translations/nn/data.js +0 -1
  1289. package/dist/translations/nn/forms.js +0 -1
  1290. package/dist/translations/nn/layout.js +0 -1
  1291. package/dist/translations/nn/media.js +0 -1
  1292. package/dist/translations/nn/overlays.js +0 -1
  1293. package/dist/translations/nn/retrieval.js +0 -1
  1294. package/dist/translations/nn/shared.js +0 -1
  1295. package/dist/translations/nn/utility.js +0 -1
  1296. package/dist/translations/nn/viewers.js +0 -5
  1297. package/dist/translations/nn.js +0 -1
  1298. package/dist/translations/om/agent-tools.js +0 -1
  1299. package/dist/translations/om/charts.js +0 -1
  1300. package/dist/translations/om/conversation.js +0 -1
  1301. package/dist/translations/om/data.js +0 -1
  1302. package/dist/translations/om/forms.js +0 -1
  1303. package/dist/translations/om/layout.js +0 -1
  1304. package/dist/translations/om/media.js +0 -1
  1305. package/dist/translations/om/overlays.js +0 -1
  1306. package/dist/translations/om/retrieval.js +0 -1
  1307. package/dist/translations/om/shared.js +0 -1
  1308. package/dist/translations/om/utility.js +0 -1
  1309. package/dist/translations/om/viewers.js +0 -5
  1310. package/dist/translations/om.js +0 -1
  1311. package/dist/translations/or/agent-tools.js +0 -1
  1312. package/dist/translations/or/charts.js +0 -1
  1313. package/dist/translations/or/conversation.js +0 -1
  1314. package/dist/translations/or/data.js +0 -1
  1315. package/dist/translations/or/forms.js +0 -1
  1316. package/dist/translations/or/layout.js +0 -1
  1317. package/dist/translations/or/media.js +0 -1
  1318. package/dist/translations/or/overlays.js +0 -1
  1319. package/dist/translations/or/retrieval.js +0 -1
  1320. package/dist/translations/or/shared.js +0 -1
  1321. package/dist/translations/or/utility.js +0 -1
  1322. package/dist/translations/or/viewers.js +0 -5
  1323. package/dist/translations/or.js +0 -1
  1324. package/dist/translations/pa/agent-tools.js +0 -1
  1325. package/dist/translations/pa/charts.js +0 -1
  1326. package/dist/translations/pa/conversation.js +0 -1
  1327. package/dist/translations/pa/data.js +0 -1
  1328. package/dist/translations/pa/forms.js +0 -1
  1329. package/dist/translations/pa/layout.js +0 -1
  1330. package/dist/translations/pa/media.js +0 -1
  1331. package/dist/translations/pa/overlays.js +0 -1
  1332. package/dist/translations/pa/retrieval.js +0 -1
  1333. package/dist/translations/pa/shared.js +0 -1
  1334. package/dist/translations/pa/utility.js +0 -1
  1335. package/dist/translations/pa/viewers.js +0 -5
  1336. package/dist/translations/pa.js +0 -1
  1337. package/dist/translations/pcm/agent-tools.js +0 -1
  1338. package/dist/translations/pcm/charts.js +0 -1
  1339. package/dist/translations/pcm/conversation.js +0 -1
  1340. package/dist/translations/pcm/data.js +0 -1
  1341. package/dist/translations/pcm/forms.js +0 -1
  1342. package/dist/translations/pcm/layout.js +0 -1
  1343. package/dist/translations/pcm/media.js +0 -1
  1344. package/dist/translations/pcm/overlays.js +0 -1
  1345. package/dist/translations/pcm/retrieval.js +0 -1
  1346. package/dist/translations/pcm/shared.js +0 -1
  1347. package/dist/translations/pcm/utility.js +0 -1
  1348. package/dist/translations/pcm/viewers.js +0 -5
  1349. package/dist/translations/pcm.js +0 -1
  1350. package/dist/translations/pl/agent-tools.js +0 -1
  1351. package/dist/translations/pl/charts.js +0 -1
  1352. package/dist/translations/pl/conversation.js +0 -1
  1353. package/dist/translations/pl/data.js +0 -1
  1354. package/dist/translations/pl/forms.js +0 -1
  1355. package/dist/translations/pl/layout.js +0 -1
  1356. package/dist/translations/pl/media.js +0 -1
  1357. package/dist/translations/pl/overlays.js +0 -1
  1358. package/dist/translations/pl/retrieval.js +0 -1
  1359. package/dist/translations/pl/shared.js +0 -1
  1360. package/dist/translations/pl/utility.js +0 -1
  1361. package/dist/translations/pl/viewers.js +0 -5
  1362. package/dist/translations/pl.js +0 -1
  1363. package/dist/translations/pnb/agent-tools.js +0 -1
  1364. package/dist/translations/pnb/charts.js +0 -1
  1365. package/dist/translations/pnb/conversation.js +0 -1
  1366. package/dist/translations/pnb/data.js +0 -1
  1367. package/dist/translations/pnb/forms.js +0 -1
  1368. package/dist/translations/pnb/layout.js +0 -1
  1369. package/dist/translations/pnb/media.js +0 -1
  1370. package/dist/translations/pnb/overlays.js +0 -1
  1371. package/dist/translations/pnb/retrieval.js +0 -1
  1372. package/dist/translations/pnb/shared.js +0 -1
  1373. package/dist/translations/pnb/utility.js +0 -1
  1374. package/dist/translations/pnb/viewers.js +0 -5
  1375. package/dist/translations/pnb.js +0 -1
  1376. package/dist/translations/ps/agent-tools.js +0 -1
  1377. package/dist/translations/ps/charts.js +0 -1
  1378. package/dist/translations/ps/conversation.js +0 -1
  1379. package/dist/translations/ps/data.js +0 -1
  1380. package/dist/translations/ps/forms.js +0 -1
  1381. package/dist/translations/ps/layout.js +0 -1
  1382. package/dist/translations/ps/media.js +0 -1
  1383. package/dist/translations/ps/overlays.js +0 -1
  1384. package/dist/translations/ps/retrieval.js +0 -1
  1385. package/dist/translations/ps/shared.js +0 -1
  1386. package/dist/translations/ps/utility.js +0 -1
  1387. package/dist/translations/ps/viewers.js +0 -5
  1388. package/dist/translations/ps.js +0 -1
  1389. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1390. package/dist/translations/pt-BR/charts.js +0 -1
  1391. package/dist/translations/pt-BR/conversation.js +0 -1
  1392. package/dist/translations/pt-BR/data.js +0 -1
  1393. package/dist/translations/pt-BR/forms.js +0 -1
  1394. package/dist/translations/pt-BR/layout.js +0 -1
  1395. package/dist/translations/pt-BR/media.js +0 -1
  1396. package/dist/translations/pt-BR/overlays.js +0 -1
  1397. package/dist/translations/pt-BR/retrieval.js +0 -1
  1398. package/dist/translations/pt-BR/shared.js +0 -1
  1399. package/dist/translations/pt-BR/utility.js +0 -1
  1400. package/dist/translations/pt-BR/viewers.js +0 -5
  1401. package/dist/translations/pt-BR.js +0 -1
  1402. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1403. package/dist/translations/pt-PT/charts.js +0 -1
  1404. package/dist/translations/pt-PT/conversation.js +0 -1
  1405. package/dist/translations/pt-PT/data.js +0 -1
  1406. package/dist/translations/pt-PT/forms.js +0 -1
  1407. package/dist/translations/pt-PT/layout.js +0 -1
  1408. package/dist/translations/pt-PT/media.js +0 -1
  1409. package/dist/translations/pt-PT/overlays.js +0 -1
  1410. package/dist/translations/pt-PT/retrieval.js +0 -1
  1411. package/dist/translations/pt-PT/shared.js +0 -1
  1412. package/dist/translations/pt-PT/utility.js +0 -1
  1413. package/dist/translations/pt-PT/viewers.js +0 -5
  1414. package/dist/translations/pt-PT.js +0 -1
  1415. package/dist/translations/ro/agent-tools.js +0 -1
  1416. package/dist/translations/ro/charts.js +0 -1
  1417. package/dist/translations/ro/conversation.js +0 -1
  1418. package/dist/translations/ro/data.js +0 -1
  1419. package/dist/translations/ro/forms.js +0 -1
  1420. package/dist/translations/ro/layout.js +0 -1
  1421. package/dist/translations/ro/media.js +0 -1
  1422. package/dist/translations/ro/overlays.js +0 -1
  1423. package/dist/translations/ro/retrieval.js +0 -1
  1424. package/dist/translations/ro/shared.js +0 -1
  1425. package/dist/translations/ro/utility.js +0 -1
  1426. package/dist/translations/ro/viewers.js +0 -5
  1427. package/dist/translations/ro.js +0 -1
  1428. package/dist/translations/ru/agent-tools.js +0 -1
  1429. package/dist/translations/ru/charts.js +0 -1
  1430. package/dist/translations/ru/conversation.js +0 -1
  1431. package/dist/translations/ru/data.js +0 -1
  1432. package/dist/translations/ru/forms.js +0 -1
  1433. package/dist/translations/ru/layout.js +0 -1
  1434. package/dist/translations/ru/media.js +0 -1
  1435. package/dist/translations/ru/overlays.js +0 -1
  1436. package/dist/translations/ru/retrieval.js +0 -1
  1437. package/dist/translations/ru/shared.js +0 -1
  1438. package/dist/translations/ru/utility.js +0 -1
  1439. package/dist/translations/ru/viewers.js +0 -5
  1440. package/dist/translations/ru.js +0 -1
  1441. package/dist/translations/sd/agent-tools.js +0 -1
  1442. package/dist/translations/sd/charts.js +0 -1
  1443. package/dist/translations/sd/conversation.js +0 -1
  1444. package/dist/translations/sd/data.js +0 -1
  1445. package/dist/translations/sd/forms.js +0 -1
  1446. package/dist/translations/sd/layout.js +0 -1
  1447. package/dist/translations/sd/media.js +0 -1
  1448. package/dist/translations/sd/overlays.js +0 -1
  1449. package/dist/translations/sd/retrieval.js +0 -1
  1450. package/dist/translations/sd/shared.js +0 -1
  1451. package/dist/translations/sd/utility.js +0 -1
  1452. package/dist/translations/sd/viewers.js +0 -5
  1453. package/dist/translations/sd.js +0 -1
  1454. package/dist/translations/sl/agent-tools.js +0 -1
  1455. package/dist/translations/sl/charts.js +0 -1
  1456. package/dist/translations/sl/conversation.js +0 -1
  1457. package/dist/translations/sl/data.js +0 -1
  1458. package/dist/translations/sl/forms.js +0 -1
  1459. package/dist/translations/sl/layout.js +0 -1
  1460. package/dist/translations/sl/media.js +0 -1
  1461. package/dist/translations/sl/overlays.js +0 -1
  1462. package/dist/translations/sl/retrieval.js +0 -1
  1463. package/dist/translations/sl/shared.js +0 -1
  1464. package/dist/translations/sl/utility.js +0 -1
  1465. package/dist/translations/sl/viewers.js +0 -5
  1466. package/dist/translations/sl.js +0 -1
  1467. package/dist/translations/su/agent-tools.js +0 -1
  1468. package/dist/translations/su/charts.js +0 -1
  1469. package/dist/translations/su/conversation.js +0 -1
  1470. package/dist/translations/su/data.js +0 -1
  1471. package/dist/translations/su/forms.js +0 -1
  1472. package/dist/translations/su/layout.js +0 -1
  1473. package/dist/translations/su/media.js +0 -1
  1474. package/dist/translations/su/overlays.js +0 -1
  1475. package/dist/translations/su/retrieval.js +0 -1
  1476. package/dist/translations/su/shared.js +0 -1
  1477. package/dist/translations/su/utility.js +0 -1
  1478. package/dist/translations/su/viewers.js +0 -5
  1479. package/dist/translations/su.js +0 -1
  1480. package/dist/translations/sv/agent-tools.js +0 -1
  1481. package/dist/translations/sv/charts.js +0 -1
  1482. package/dist/translations/sv/conversation.js +0 -1
  1483. package/dist/translations/sv/data.js +0 -1
  1484. package/dist/translations/sv/forms.js +0 -1
  1485. package/dist/translations/sv/layout.js +0 -1
  1486. package/dist/translations/sv/media.js +0 -1
  1487. package/dist/translations/sv/overlays.js +0 -1
  1488. package/dist/translations/sv/retrieval.js +0 -1
  1489. package/dist/translations/sv/shared.js +0 -1
  1490. package/dist/translations/sv/utility.js +0 -1
  1491. package/dist/translations/sv/viewers.js +0 -5
  1492. package/dist/translations/sv.js +0 -1
  1493. package/dist/translations/sw/agent-tools.js +0 -1
  1494. package/dist/translations/sw/charts.js +0 -1
  1495. package/dist/translations/sw/conversation.js +0 -1
  1496. package/dist/translations/sw/data.js +0 -1
  1497. package/dist/translations/sw/forms.js +0 -1
  1498. package/dist/translations/sw/layout.js +0 -1
  1499. package/dist/translations/sw/media.js +0 -1
  1500. package/dist/translations/sw/overlays.js +0 -1
  1501. package/dist/translations/sw/retrieval.js +0 -1
  1502. package/dist/translations/sw/shared.js +0 -1
  1503. package/dist/translations/sw/utility.js +0 -1
  1504. package/dist/translations/sw/viewers.js +0 -5
  1505. package/dist/translations/sw.js +0 -1
  1506. package/dist/translations/ta/agent-tools.js +0 -1
  1507. package/dist/translations/ta/charts.js +0 -1
  1508. package/dist/translations/ta/conversation.js +0 -1
  1509. package/dist/translations/ta/data.js +0 -1
  1510. package/dist/translations/ta/forms.js +0 -1
  1511. package/dist/translations/ta/layout.js +0 -1
  1512. package/dist/translations/ta/media.js +0 -1
  1513. package/dist/translations/ta/overlays.js +0 -1
  1514. package/dist/translations/ta/retrieval.js +0 -1
  1515. package/dist/translations/ta/shared.js +0 -1
  1516. package/dist/translations/ta/utility.js +0 -1
  1517. package/dist/translations/ta/viewers.js +0 -5
  1518. package/dist/translations/ta.js +0 -1
  1519. package/dist/translations/te/agent-tools.js +0 -1
  1520. package/dist/translations/te/charts.js +0 -1
  1521. package/dist/translations/te/conversation.js +0 -1
  1522. package/dist/translations/te/data.js +0 -1
  1523. package/dist/translations/te/forms.js +0 -1
  1524. package/dist/translations/te/layout.js +0 -1
  1525. package/dist/translations/te/media.js +0 -1
  1526. package/dist/translations/te/overlays.js +0 -1
  1527. package/dist/translations/te/retrieval.js +0 -1
  1528. package/dist/translations/te/shared.js +0 -1
  1529. package/dist/translations/te/utility.js +0 -1
  1530. package/dist/translations/te/viewers.js +0 -5
  1531. package/dist/translations/te.js +0 -1
  1532. package/dist/translations/th/agent-tools.js +0 -1
  1533. package/dist/translations/th/charts.js +0 -1
  1534. package/dist/translations/th/conversation.js +0 -1
  1535. package/dist/translations/th/data.js +0 -1
  1536. package/dist/translations/th/forms.js +0 -1
  1537. package/dist/translations/th/layout.js +0 -1
  1538. package/dist/translations/th/media.js +0 -1
  1539. package/dist/translations/th/overlays.js +0 -1
  1540. package/dist/translations/th/retrieval.js +0 -1
  1541. package/dist/translations/th/shared.js +0 -1
  1542. package/dist/translations/th/utility.js +0 -1
  1543. package/dist/translations/th/viewers.js +0 -5
  1544. package/dist/translations/th.js +0 -1
  1545. package/dist/translations/tl/agent-tools.js +0 -1
  1546. package/dist/translations/tl/charts.js +0 -1
  1547. package/dist/translations/tl/conversation.js +0 -1
  1548. package/dist/translations/tl/data.js +0 -1
  1549. package/dist/translations/tl/forms.js +0 -1
  1550. package/dist/translations/tl/layout.js +0 -1
  1551. package/dist/translations/tl/media.js +0 -1
  1552. package/dist/translations/tl/overlays.js +0 -1
  1553. package/dist/translations/tl/retrieval.js +0 -1
  1554. package/dist/translations/tl/shared.js +0 -1
  1555. package/dist/translations/tl/utility.js +0 -1
  1556. package/dist/translations/tl/viewers.js +0 -5
  1557. package/dist/translations/tl.js +0 -1
  1558. package/dist/translations/tr/agent-tools.js +0 -1
  1559. package/dist/translations/tr/charts.js +0 -1
  1560. package/dist/translations/tr/conversation.js +0 -1
  1561. package/dist/translations/tr/data.js +0 -1
  1562. package/dist/translations/tr/forms.js +0 -1
  1563. package/dist/translations/tr/layout.js +0 -1
  1564. package/dist/translations/tr/media.js +0 -1
  1565. package/dist/translations/tr/overlays.js +0 -1
  1566. package/dist/translations/tr/retrieval.js +0 -1
  1567. package/dist/translations/tr/shared.js +0 -1
  1568. package/dist/translations/tr/utility.js +0 -1
  1569. package/dist/translations/tr/viewers.js +0 -5
  1570. package/dist/translations/tr.js +0 -1
  1571. package/dist/translations/uk/agent-tools.js +0 -1
  1572. package/dist/translations/uk/charts.js +0 -1
  1573. package/dist/translations/uk/conversation.js +0 -1
  1574. package/dist/translations/uk/data.js +0 -1
  1575. package/dist/translations/uk/forms.js +0 -1
  1576. package/dist/translations/uk/layout.js +0 -1
  1577. package/dist/translations/uk/media.js +0 -1
  1578. package/dist/translations/uk/overlays.js +0 -1
  1579. package/dist/translations/uk/retrieval.js +0 -1
  1580. package/dist/translations/uk/shared.js +0 -1
  1581. package/dist/translations/uk/utility.js +0 -1
  1582. package/dist/translations/uk/viewers.js +0 -5
  1583. package/dist/translations/uk.js +0 -1
  1584. package/dist/translations/ur/agent-tools.js +0 -1
  1585. package/dist/translations/ur/charts.js +0 -1
  1586. package/dist/translations/ur/conversation.js +0 -1
  1587. package/dist/translations/ur/data.js +0 -1
  1588. package/dist/translations/ur/forms.js +0 -1
  1589. package/dist/translations/ur/layout.js +0 -1
  1590. package/dist/translations/ur/media.js +0 -1
  1591. package/dist/translations/ur/overlays.js +0 -1
  1592. package/dist/translations/ur/retrieval.js +0 -1
  1593. package/dist/translations/ur/shared.js +0 -1
  1594. package/dist/translations/ur/utility.js +0 -1
  1595. package/dist/translations/ur/viewers.js +0 -5
  1596. package/dist/translations/ur.js +0 -1
  1597. package/dist/translations/uz/agent-tools.js +0 -1
  1598. package/dist/translations/uz/charts.js +0 -1
  1599. package/dist/translations/uz/conversation.js +0 -1
  1600. package/dist/translations/uz/data.js +0 -1
  1601. package/dist/translations/uz/forms.js +0 -1
  1602. package/dist/translations/uz/layout.js +0 -1
  1603. package/dist/translations/uz/media.js +0 -1
  1604. package/dist/translations/uz/overlays.js +0 -1
  1605. package/dist/translations/uz/retrieval.js +0 -1
  1606. package/dist/translations/uz/shared.js +0 -1
  1607. package/dist/translations/uz/utility.js +0 -1
  1608. package/dist/translations/uz/viewers.js +0 -5
  1609. package/dist/translations/uz.js +0 -1
  1610. package/dist/translations/vi/agent-tools.js +0 -1
  1611. package/dist/translations/vi/charts.js +0 -1
  1612. package/dist/translations/vi/conversation.js +0 -1
  1613. package/dist/translations/vi/data.js +0 -1
  1614. package/dist/translations/vi/forms.js +0 -1
  1615. package/dist/translations/vi/layout.js +0 -1
  1616. package/dist/translations/vi/media.js +0 -1
  1617. package/dist/translations/vi/overlays.js +0 -1
  1618. package/dist/translations/vi/retrieval.js +0 -1
  1619. package/dist/translations/vi/shared.js +0 -1
  1620. package/dist/translations/vi/utility.js +0 -1
  1621. package/dist/translations/vi/viewers.js +0 -5
  1622. package/dist/translations/vi.js +0 -1
  1623. package/dist/translations/yo/agent-tools.js +0 -1
  1624. package/dist/translations/yo/charts.js +0 -1
  1625. package/dist/translations/yo/conversation.js +0 -1
  1626. package/dist/translations/yo/data.js +0 -1
  1627. package/dist/translations/yo/forms.js +0 -1
  1628. package/dist/translations/yo/layout.js +0 -1
  1629. package/dist/translations/yo/media.js +0 -1
  1630. package/dist/translations/yo/overlays.js +0 -1
  1631. package/dist/translations/yo/retrieval.js +0 -1
  1632. package/dist/translations/yo/shared.js +0 -1
  1633. package/dist/translations/yo/utility.js +0 -1
  1634. package/dist/translations/yo/viewers.js +0 -5
  1635. package/dist/translations/yo.js +0 -1
  1636. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1637. package/dist/translations/zh-CN/charts.js +0 -1
  1638. package/dist/translations/zh-CN/conversation.js +0 -1
  1639. package/dist/translations/zh-CN/data.js +0 -1
  1640. package/dist/translations/zh-CN/forms.js +0 -1
  1641. package/dist/translations/zh-CN/layout.js +0 -1
  1642. package/dist/translations/zh-CN/media.js +0 -1
  1643. package/dist/translations/zh-CN/overlays.js +0 -1
  1644. package/dist/translations/zh-CN/retrieval.js +0 -1
  1645. package/dist/translations/zh-CN/shared.js +0 -1
  1646. package/dist/translations/zh-CN/utility.js +0 -1
  1647. package/dist/translations/zh-CN/viewers.js +0 -5
  1648. package/dist/translations/zh-CN.js +0 -1
  1649. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1650. package/dist/translations/zh-TW/charts.js +0 -1
  1651. package/dist/translations/zh-TW/conversation.js +0 -1
  1652. package/dist/translations/zh-TW/data.js +0 -1
  1653. package/dist/translations/zh-TW/forms.js +0 -1
  1654. package/dist/translations/zh-TW/layout.js +0 -1
  1655. package/dist/translations/zh-TW/media.js +0 -1
  1656. package/dist/translations/zh-TW/overlays.js +0 -1
  1657. package/dist/translations/zh-TW/retrieval.js +0 -1
  1658. package/dist/translations/zh-TW/shared.js +0 -1
  1659. package/dist/translations/zh-TW/utility.js +0 -1
  1660. package/dist/translations/zh-TW/viewers.js +0 -5
  1661. package/dist/translations/zh-TW.js +0 -1
  1662. package/dist/translations/zu/agent-tools.js +0 -1
  1663. package/dist/translations/zu/charts.js +0 -1
  1664. package/dist/translations/zu/conversation.js +0 -1
  1665. package/dist/translations/zu/data.js +0 -1
  1666. package/dist/translations/zu/forms.js +0 -1
  1667. package/dist/translations/zu/layout.js +0 -1
  1668. package/dist/translations/zu/media.js +0 -1
  1669. package/dist/translations/zu/overlays.js +0 -1
  1670. package/dist/translations/zu/retrieval.js +0 -1
  1671. package/dist/translations/zu/shared.js +0 -1
  1672. package/dist/translations/zu/utility.js +0 -1
  1673. package/dist/translations/zu/viewers.js +0 -5
  1674. package/dist/translations/zu.js +0 -1
  1675. package/vscode-css-data.json +0 -1
  1676. package/vscode-html-data.json +0 -1
  1677. package/web-types.json +0 -1
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{styles}from"./highlight-layer.styles.js";import{maxPairedAnimationEndMs}from"./highlight-layer-timing.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{sanitizePercentRect}from"../../../internal/safe-css.js";import{activeElementIn}from"../../../internal/active-element.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{resolveCssTokenLength}from"../../../internal/css-token-length.js";import{LYRA_DEFAULT_highlightLayerLabel,LYRA_DEFAULT_highlightOfTotal,LYRA_DEFAULT_highlightWithLabel}from"../../../internal/default-strings.generated.js";function snapshotItems(value){if(!Array.isArray(value))return Object.freeze([]);const output=[],seenIds=new Set,length=Math.min(value.length,1e4);for(let index=0;index<length;index+=1)try{const candidate=value[index];if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const rawId=candidate.id;if(typeof rawId!="string")continue;const id=rawId.trim();if(id.length===0||seenIds.has(id)||!Array.isArray(candidate.rects))continue;seenIds.add(id),output.push(rawId===id?candidate:{...candidate,id})}catch{}return Object.freeze(output)}class LyraHighlightLayer extends LyraElement{constructor(){super(...arguments),this._items=Object.freeze([]),this.activeHighlightId=null,this.withoutInteraction=!1,this.focusedId=null,this.flashingId=null,this.actionList=!1,this.flashGeneration=0,this.pendingFocusId=null}static{this.defaultStrings={...super.defaultStrings,highlightLayerLabel:LYRA_DEFAULT_highlightLayerLabel,highlightOfTotal:LYRA_DEFAULT_highlightOfTotal,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["items"])}static{this.styles=[LyraElement.styles,styles]}get items(){return this._items}set items(value){const previous=this._items;this._items=snapshotItems(value),this.requestUpdate("items",previous)}connectedCallback(){super.connectedCallback();const Observer=this.ownerDocument.defaultView?.ResizeObserver;this.sizeObserver=Observer?new Observer(entries=>{this.boxSize=entries.at(-1)?.contentRect??this.boxSize}):void 0,this.sizeObserver?.observe(this)}willUpdate(changed){super.willUpdate(changed);const refocus=this.hasFocusedAction();if(changed.has("items")){const positionOf=(items,id)=>items?.findIndex(item=>item.id===id)??-1,previousItems=changed.get("items");if(this.focusedId!==null&&positionOf(this.items,this.focusedId)<0){const previousIndex=positionOf(previousItems,this.focusedId),nextIndex=this.itemIndexesWithRects(this.items.map(item=>this.safeRects(item))).reduce((nearest,index)=>nearest===null||Math.abs(index-previousIndex)<Math.abs(nearest-previousIndex)?index:nearest,null);this.focusedId=nextIndex===null?null:this.items[nextIndex].id;const previousTargetIndex=positionOf(previousItems,this.focusedId);refocus&&previousTargetIndex>=0&&this.primaryTarget(previousTargetIndex)?.focus()}changed.get("items")!==void 0&&this.clearFlash()}(changed.has("items")||changed.has("boxSize")||changed.has("withoutInteraction"))&&(this.actionList=!this.withoutInteraction&&this.hitAreasOverlap(),refocus&&(this.pendingFocusId=this.focusedId))}updated(changed){super.updated(changed);const pending=this.pendingFocusId;if(this.pendingFocusId=null,pending===null)return;const index=this.items.findIndex(item=>item.id===pending);index>=0&&this.focusRect(index)}disconnectedCallback(){super.disconnectedCallback(),this.sizeObserver?.disconnect(),this.focusedId=null,this.pendingFocusId=null,this.clearFlash()}hasFocusedAction(){return activeElementIn(this.shadowRoot)?.matches("[data-item-action]")??!1}hitAreasOverlap(){const view=this.ownerDocument?.defaultView;if(!view)return!1;const{width,height}=this.boxSize??this.getBoundingClientRect(),min=resolveCssTokenLength(view.getComputedStyle(this).getPropertyValue("--lr-icon-button-size").trim(),{host:this})??0,boxes=this.items.flatMap((item,index)=>this.safeRects(item).map(rect=>{const boxWidth=Math.max(rect.width/100*width,min),boxHeight=Math.max(rect.height/100*height,min),left=(rect.x+rect.width/2)/100*width-boxWidth/2,top=(rect.y+rect.height/2)/100*height-boxHeight/2;return{index,left,top,right:left+boxWidth,bottom:top+boxHeight}})).sort((first,second)=>first.left-second.left);for(let first=0;first<boxes.length;first++){const a=boxes[first];for(let second=first+1;second<boxes.length&&boxes[second].left<a.right;second++){const b=boxes[second];if(b.index!==a.index&&b.top<a.bottom&&a.top<b.bottom)return!0}}return!1}adoptedCallback(){super.adoptedCallback(),this.clearFlash()}flash(id){if(this.clearFlash(),!this.isConnected||!this.items.some(candidate=>candidate.id===id))return;this.flashingId=id;const generation=this.flashGeneration;this.updateComplete.then(()=>{if(generation!==this.flashGeneration||this.flashingId!==id||!this.isConnected)return;const rect=this.primaryVisualRect(this.items.findIndex(candidate=>candidate.id===id));if(!rect){this.flashingId=null;return}const ownerWindow=rect.ownerDocument.defaultView;if(!ownerWindow){this.flashingId=null;return}const computed=ownerWindow.getComputedStyle(rect),durationMs=maxPairedAnimationEndMs(computed.animationName,computed.animationDuration,computed.animationDelay);this.flashTimerWindow=ownerWindow,this.flashTimer=ownerWindow.setTimeout(()=>{generation!==this.flashGeneration||this.flashTimerWindow!==ownerWindow||(this.flashTimer=void 0,this.flashTimerWindow=void 0,this.flashingId=null)},durationMs)})}clearFlash(){this.flashTimer!==void 0&&this.flashTimerWindow?.clearTimeout(this.flashTimer),this.flashTimer=void 0,this.flashTimerWindow=void 0,this.flashGeneration+=1,this.flashingId=null}safeRects(item){return item.rects.map(sanitizePercentRect).filter(rect=>rect!==void 0)}itemIndexesWithRects(rectsByItem){const indexes=[];return rectsByItem.forEach((rects,index)=>{rects.length>0&&indexes.push(index)}),indexes}tabStopIndex(rectsByItem){const renderedIndexes=this.itemIndexesWithRects(rectsByItem);if(renderedIndexes.length===0)return null;if(this.focusedId!==null){const focusedIndex=this.items.findIndex(item=>item.id===this.focusedId);if(renderedIndexes.includes(focusedIndex))return focusedIndex}if(this.activeHighlightId){const activeIndex=this.items.findIndex((item,index)=>item.id===this.activeHighlightId&&rectsByItem[index].length>0);if(activeIndex>=0)return activeIndex}return renderedIndexes[0]}onRectClick(id){this.emit("lr-highlight-activate",{highlightId:id})}onRectFocus(item){this.focusedId=item.id}primaryTarget(itemIndex){return[...this.renderRoot.querySelectorAll("[data-item-action]")].find(target=>target.dataset.itemIndex===String(itemIndex))??null}primaryVisualRect(itemIndex){return[...this.renderRoot.querySelectorAll('[part="rect"][data-primary]')].find(rect=>rect.dataset.itemIndex===String(itemIndex))??null}focusRect(itemIndex){this.primaryTarget(itemIndex)?.focus()}onRectKeyDown(e,itemIndex){if(e.key==="Enter"||e.key===" "){e.preventDefault(),this.onRectClick(this.items[itemIndex].id);return}const rtl=this.effectiveDirection==="rtl",forward=e.key==="ArrowDown"||(rtl?e.key==="ArrowLeft":e.key==="ArrowRight"),backward=e.key==="ArrowUp"||(rtl?e.key==="ArrowRight":e.key==="ArrowLeft"),renderedIndexes=this.itemIndexesWithRects(this.items.map(item=>this.safeRects(item))),position=renderedIndexes.indexOf(itemIndex);let nextIndex;forward?nextIndex=renderedIndexes[Math.min(renderedIndexes.length-1,position+1)]:backward?nextIndex=renderedIndexes[Math.max(0,position-1)]:e.key==="Home"?nextIndex=renderedIndexes[0]:e.key==="End"&&(nextIndex=renderedIndexes.at(-1)),!(nextIndex===void 0||nextIndex===itemIndex)&&(e.preventDefault(),this.focusedId=this.items[nextIndex].id,this.scheduleAfterUpdate(()=>this.focusRect(nextIndex)))}rectLabel(item,index,total){const numberFormat=getNumberFormat(this.effectiveLocale);return item.label?this.localize("highlightWithLabel",void 0,{label:item.label}):this.localize("highlightOfTotal",void 0,{index:numberFormat.format(index+1),total:numberFormat.format(total)})}render(){if(this.items.length===0)return nothing;const rectsByItem=this.items.map(item=>this.safeRects(item)),renderedIndexes=this.itemIndexesWithRects(rectsByItem);if(renderedIndexes.length===0)return nothing;const tabStop=this.tabStopIndex(rectsByItem),activeIndex=this.activeHighlightId?this.items.findIndex((item,index)=>item.id===this.activeHighlightId&&rectsByItem[index].length>0):-1,renderedPosition=new Map(renderedIndexes.map((itemIndex,position)=>[itemIndex,position])),interactive=!this.withoutInteraction,useActionList=interactive&&this.actionList,ariaLabel=interactive?hostAriaLabel(this)??this.localize("highlightLayerLabel"):void 0;return html`
1
+ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{styles}from"./highlight-layer.styles.js";import{maxPairedAnimationEndMs}from"./highlight-layer-timing.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{sanitizePercentRect}from"../../../internal/safe-css.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{resolveCssTokenLength}from"../../../internal/css-token-length.js";import{LYRA_DEFAULT_highlightOfTotal,LYRA_DEFAULT_highlightWithLabel}from"../../../internal/default-strings/shared.generated.js";import{LYRA_DEFAULT_highlightLayerLabel}from"../../../internal/default-strings/viewers.generated.js";function snapshotItems(value){if(!Array.isArray(value))return Object.freeze([]);const output=[],seenIds=new Set,length=Math.min(value.length,1e4);for(let index=0;index<length;index+=1)try{const candidate=value[index];if(candidate===null||typeof candidate!="object"||Array.isArray(candidate))continue;const rawId=candidate.id;if(typeof rawId!="string")continue;const id=rawId.trim();if(id.length===0||seenIds.has(id)||!Array.isArray(candidate.rects))continue;seenIds.add(id),output.push(rawId===id?candidate:{...candidate,id})}catch{}return Object.freeze(output)}class LyraHighlightLayer extends LyraElement{constructor(){super(...arguments),this._items=Object.freeze([]),this.activeHighlightId=null,this.withoutInteraction=!1,this.focusedId=null,this.flashingId=null,this.actionList=!1,this.flashGeneration=0,this.pendingFocusId=null}static{this.defaultStrings={...super.defaultStrings,highlightLayerLabel:LYRA_DEFAULT_highlightLayerLabel,highlightOfTotal:LYRA_DEFAULT_highlightOfTotal,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["items"])}static{this.styles=[LyraElement.styles,styles]}get items(){return this._items}set items(value){const previous=this._items;this._items=snapshotItems(value),this.requestUpdate("items",previous)}connectedCallback(){super.connectedCallback();const Observer=this.ownerDocument.defaultView?.ResizeObserver;this.sizeObserver=Observer?new Observer(entries=>{this.boxSize=entries.at(-1)?.contentRect??this.boxSize}):void 0,this.sizeObserver?.observe(this)}willUpdate(changed){super.willUpdate(changed);const refocus=this.hasFocusedAction();if(changed.has("items")){const positionOf=(items,id)=>items?.findIndex(item=>item.id===id)??-1,previousItems=changed.get("items");if(this.focusedId!==null&&positionOf(this.items,this.focusedId)<0){const previousIndex=positionOf(previousItems,this.focusedId),nextIndex=this.itemIndexesWithRects(this.items.map(item=>this.safeRects(item))).reduce((nearest,index)=>nearest===null||Math.abs(index-previousIndex)<Math.abs(nearest-previousIndex)?index:nearest,null);this.focusedId=nextIndex===null?null:this.items[nextIndex].id;const previousTargetIndex=positionOf(previousItems,this.focusedId);refocus&&previousTargetIndex>=0&&this.primaryTarget(previousTargetIndex)?.focus()}changed.get("items")!==void 0&&this.clearFlash()}(changed.has("items")||changed.has("boxSize")||changed.has("withoutInteraction"))&&(this.actionList=!this.withoutInteraction&&this.hitAreasOverlap(),refocus&&(this.pendingFocusId=this.focusedId))}updated(changed){super.updated(changed);const pending=this.pendingFocusId;if(this.pendingFocusId=null,pending===null)return;const index=this.items.findIndex(item=>item.id===pending);index>=0&&this.focusRect(index)}disconnectedCallback(){super.disconnectedCallback(),this.sizeObserver?.disconnect(),this.focusedId=null,this.pendingFocusId=null,this.clearFlash()}hasFocusedAction(){return shadowFocusTarget(this)?.matches("[data-item-action]")??!1}hitAreasOverlap(){const view=this.ownerDocument?.defaultView;if(!view)return!1;const{width,height}=this.boxSize??this.getBoundingClientRect(),min=resolveCssTokenLength(view.getComputedStyle(this).getPropertyValue("--lr-icon-button-size").trim(),{host:this})??0,boxes=this.items.flatMap((item,index)=>this.safeRects(item).map(rect=>{const boxWidth=Math.max(rect.width/100*width,min),boxHeight=Math.max(rect.height/100*height,min),left=(rect.x+rect.width/2)/100*width-boxWidth/2,top=(rect.y+rect.height/2)/100*height-boxHeight/2;return{index,left,top,right:left+boxWidth,bottom:top+boxHeight}})).sort((first,second)=>first.left-second.left);for(let first=0;first<boxes.length;first++){const a=boxes[first];for(let second=first+1;second<boxes.length&&boxes[second].left<a.right;second++){const b=boxes[second];if(b.index!==a.index&&b.top<a.bottom&&a.top<b.bottom)return!0}}return!1}adoptedCallback(){super.adoptedCallback(),this.clearFlash()}flash(id){if(this.clearFlash(),!this.isConnected||!this.items.some(candidate=>candidate.id===id))return;this.flashingId=id;const generation=this.flashGeneration;this.updateComplete.then(()=>{if(generation!==this.flashGeneration||this.flashingId!==id||!this.isConnected)return;const rect=this.primaryVisualRect(this.items.findIndex(candidate=>candidate.id===id));if(!rect){this.flashingId=null;return}const ownerWindow=rect.ownerDocument.defaultView;if(!ownerWindow){this.flashingId=null;return}const computed=ownerWindow.getComputedStyle(rect),durationMs=maxPairedAnimationEndMs(computed.animationName,computed.animationDuration,computed.animationDelay);this.flashTimerWindow=ownerWindow,this.flashTimer=ownerWindow.setTimeout(()=>{generation!==this.flashGeneration||this.flashTimerWindow!==ownerWindow||(this.flashTimer=void 0,this.flashTimerWindow=void 0,this.flashingId=null)},durationMs)})}clearFlash(){this.flashTimer!==void 0&&this.flashTimerWindow?.clearTimeout(this.flashTimer),this.flashTimer=void 0,this.flashTimerWindow=void 0,this.flashGeneration+=1,this.flashingId=null}safeRects(item){return item.rects.map(sanitizePercentRect).filter(rect=>rect!==void 0)}itemIndexesWithRects(rectsByItem){const indexes=[];return rectsByItem.forEach((rects,index)=>{rects.length>0&&indexes.push(index)}),indexes}tabStopIndex(rectsByItem){const renderedIndexes=this.itemIndexesWithRects(rectsByItem);if(renderedIndexes.length===0)return null;if(this.focusedId!==null){const focusedIndex=this.items.findIndex(item=>item.id===this.focusedId);if(renderedIndexes.includes(focusedIndex))return focusedIndex}if(this.activeHighlightId){const activeIndex=this.items.findIndex((item,index)=>item.id===this.activeHighlightId&&rectsByItem[index].length>0);if(activeIndex>=0)return activeIndex}return renderedIndexes[0]}onRectClick(id){this.emit("lr-highlight-activate",{highlightId:id})}onRectFocus(item){this.focusedId=item.id}primaryTarget(itemIndex){return[...this.renderRoot.querySelectorAll("[data-item-action]")].find(target=>target.dataset.itemIndex===String(itemIndex))??null}primaryVisualRect(itemIndex){return[...this.renderRoot.querySelectorAll('[part="rect"][data-primary]')].find(rect=>rect.dataset.itemIndex===String(itemIndex))??null}focusRect(itemIndex){this.primaryTarget(itemIndex)?.focus()}onRectKeyDown(e,itemIndex){if(e.key==="Enter"||e.key===" "){e.preventDefault(),this.onRectClick(this.items[itemIndex].id);return}const rtl=this.effectiveDirection==="rtl",forward=e.key==="ArrowDown"||(rtl?e.key==="ArrowLeft":e.key==="ArrowRight"),backward=e.key==="ArrowUp"||(rtl?e.key==="ArrowRight":e.key==="ArrowLeft"),renderedIndexes=this.itemIndexesWithRects(this.items.map(item=>this.safeRects(item))),position=renderedIndexes.indexOf(itemIndex);let nextIndex;forward?nextIndex=renderedIndexes[Math.min(renderedIndexes.length-1,position+1)]:backward?nextIndex=renderedIndexes[Math.max(0,position-1)]:e.key==="Home"?nextIndex=renderedIndexes[0]:e.key==="End"&&(nextIndex=renderedIndexes.at(-1)),!(nextIndex===void 0||nextIndex===itemIndex)&&(e.preventDefault(),this.focusedId=this.items[nextIndex].id,this.scheduleAfterUpdate(()=>this.focusRect(nextIndex)))}rectLabel(item,index,total){const numberFormat=getNumberFormat(this.effectiveLocale);return item.label?this.localize("highlightWithLabel",void 0,{label:item.label}):this.localize("highlightOfTotal",void 0,{index:numberFormat.format(index+1),total:numberFormat.format(total)})}render(){if(this.items.length===0)return nothing;const rectsByItem=this.items.map(item=>this.safeRects(item)),renderedIndexes=this.itemIndexesWithRects(rectsByItem);if(renderedIndexes.length===0)return nothing;const tabStop=this.tabStopIndex(rectsByItem),activeIndex=this.activeHighlightId?this.items.findIndex((item,index)=>item.id===this.activeHighlightId&&rectsByItem[index].length>0):-1,renderedPosition=new Map(renderedIndexes.map((itemIndex,position)=>[itemIndex,position])),interactive=!this.withoutInteraction,useActionList=interactive&&this.actionList,ariaLabel=interactive?hostAriaLabel(this)??this.localize("highlightLayerLabel"):void 0;return html`
2
2
  <div
3
3
  part="base"
4
4
  role=${interactive?"group":nothing}
@@ -39,4 +39,6 @@ name:string;
39
39
  /** CSS length that caps the scrollable body; invalid values are ignored. */
40
40
  maxHeight:string;
41
41
  /** Shared text search and anchor-target API for sanitized HTML output. */
42
- search(query:string):Promise<number>;searchNext():Promise<boolean>;searchPrevious():Promise<boolean>;clearSearch():void;private fetchState;private generation;private readonly announcements;protected updated(changed:PropertyValues):void;connectedCallback():void;private readonly detached;disconnectedCallback():void;adoptedCallback():void;private load;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-html-viewer':LyraHtmlViewer;}}export{};
42
+ search(query:string):Promise<number>;searchNext():Promise<boolean>;searchPrevious():Promise<boolean>;clearSearch():void;private fetchState;private generation;private readonly announcements;protected updated(changed:PropertyValues):void;connectedCallback():void;private readonly detached;disconnectedCallback():void;adoptedCallback():void;private load;private renderBody;
43
+ /** Only the loaded content is searchable and quotable, never the empty-note, spinner or error text. */
44
+ protected textContentRoot():Element|null;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-html-viewer':LyraHtmlViewer;}}export{};
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{unsafeHTML}from"lit/directives/unsafe-html.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{loadHtmlSanitizer}from"./dompurify-loader.js";import{styles}from"./html-viewer.styles.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_documentViewerMissingSanitizer,LYRA_DEFAULT_htmlViewerLabel,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";class LyraHtmlViewerBase extends LyraElement{}class LyraHtmlViewer extends TextViewerTarget(LyraHtmlViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.fetchState={kind:"idle"},this.generation=0,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>{this.generation++,this.beginAbortableLoad(),this.fetchState={kind:"idle"}})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,documentViewerMissingSanitizer:LYRA_DEFAULT_documentViewerMissingSanitizer,htmlViewerLabel:LYRA_DEFAULT_htmlViewerLabel,loadingDocument:LYRA_DEFAULT_loadingDocument}}static{this.styles=[LyraElement.styles,styles,srOnly,viewerLoadingStyles]}async search(query){return super.search(query)}async searchNext(){return super.searchNext()}async searchPrevious(){return super.searchPrevious()}clearSearch(){super.clearSearch()}updated(changed){super.updated(changed),this.announcements.transition("load",this.fetchState.kind,this.fetchState.kind==="error"?this.fetchState.message:this.localize("loadingDocument")),changed.has("src")&&this.scheduleAfterUpdate(()=>{this.load()})}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}async load(){const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.fetchState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.fetchState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const sanitizer=await loadHtmlSanitizer();if(!this.isConnected||generation!==this.generation)return;if(!sanitizer)throw new LyraUserFacingError(this.localize("documentViewerMissingSanitizer"));const raw=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;const markup=sanitizePassiveMarkup(sanitizer,raw,this.ownerDocument,"passive-document");if(!this.isConnected||generation!==this.generation)return;this.isConnected&&generation===this.generation&&(this.fetchState={kind:"loaded",markup})}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.fetchState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}renderBody(){switch(this.fetchState.kind){case"loaded":return html`<div part="html" role=${viewerSemanticRole(this,"document")??nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("htmlViewerLabel"))??nothing}>${unsafeHTML(this.fetchState.markup)}</div>`;case"loading":return renderViewerLoading(this.localize("loadingDocument"));case"error":return html`<div part="error">${this.fetchState.message}</div>`;default:return html`<p class="empty-note">${this.localize("documentPreviewEmpty",void 0,{type:this.localize("documentPreviewTypeDocument")})}</p>`}}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" aria-busy=${this.fetchState.kind==="loading"?"true":"false"} style=${maxHeight?styleMap({"--lr-html-viewer-max-height":maxHeight}):nothing}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraHtmlViewer.prototype,"src",void 0),__decorate([property()],LyraHtmlViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraHtmlViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraHtmlViewer.prototype,"fetchState",void 0);export{LyraHtmlViewer};
1
+ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{unsafeHTML}from"lit/directives/unsafe-html.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{loadHtmlSanitizer}from"./dompurify-loader.js";import{styles}from"./html-viewer.styles.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{viewerFrameStyles}from"../viewer-frame.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_documentPreviewEmpty}from"../../../internal/default-strings/shared.generated.js";import{LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_documentViewerMissingSanitizer,LYRA_DEFAULT_htmlViewerLabel,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings/viewers.generated.js";class LyraHtmlViewerBase extends LyraElement{}class LyraHtmlViewer extends TextViewerTarget(LyraHtmlViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.fetchState={kind:"idle"},this.generation=0,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>{this.generation++,this.beginAbortableLoad(),this.fetchState={kind:"idle"}})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,documentViewerMissingSanitizer:LYRA_DEFAULT_documentViewerMissingSanitizer,htmlViewerLabel:LYRA_DEFAULT_htmlViewerLabel,loadingDocument:LYRA_DEFAULT_loadingDocument}}static{this.styles=[LyraElement.styles,styles,viewerFrameStyles,srOnly,viewerLoadingStyles]}async search(query){return super.search(query)}async searchNext(){return super.searchNext()}async searchPrevious(){return super.searchPrevious()}clearSearch(){super.clearSearch()}updated(changed){super.updated(changed),this.announcements.transition("load",this.fetchState.kind,this.fetchState.kind==="error"?this.fetchState.message:this.localize("loadingDocument")),changed.has("src")&&this.scheduleAfterUpdate(()=>{this.load()})}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}async load(){const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.fetchState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.fetchState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const sanitizer=await loadHtmlSanitizer();if(!this.isConnected||generation!==this.generation)return;if(!sanitizer)throw new LyraUserFacingError(this.localize("documentViewerMissingSanitizer"));const raw=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;const markup=sanitizePassiveMarkup(sanitizer,raw,this.ownerDocument,"passive-document");if(!this.isConnected||generation!==this.generation)return;this.isConnected&&generation===this.generation&&(this.fetchState={kind:"loaded",markup})}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.fetchState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}renderBody(){switch(this.fetchState.kind){case"loaded":return html`<div part="html" role=${viewerSemanticRole(this,"document")??nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("htmlViewerLabel"))??nothing}>${unsafeHTML(this.fetchState.markup)}</div>`;case"loading":return renderViewerLoading(this.localize("loadingDocument"));case"error":return html`<div part="error">${this.fetchState.message}</div>`;default:return html`<p class="empty-note">${this.localize("documentPreviewEmpty",void 0,{type:this.localize("documentPreviewTypeDocument")})}</p>`}}textContentRoot(){return this.fetchState.kind==="loaded"?super.textContentRoot():null}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" aria-busy=${this.fetchState.kind==="loading"?"true":"false"} style=${maxHeight?styleMap({"--lr-html-viewer-max-height":maxHeight}):nothing}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraHtmlViewer.prototype,"src",void 0),__decorate([property()],LyraHtmlViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraHtmlViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraHtmlViewer.prototype,"fetchState",void 0);export{LyraHtmlViewer};
@@ -1 +1 @@
1
- import{css}from"lit";const styles=css`:host{min-inline-size:0;max-inline-size:100%;display:block}[part=base]{box-sizing:border-box;border:var(--lr-border-width-thin) solid var(--lr-color-border-subtle);border-radius:var(--lr-radius);background:var(--lr-color-surface);flex-direction:column;display:flex;overflow:hidden}[part=body]{min-block-size:var(--lr-size-10rem);max-block-size:var(--lr-html-viewer-max-height,none);box-sizing:border-box;padding:var(--lr-space-m);overflow:auto}[part=html]{contain:paint;overflow-wrap:anywhere;max-inline-size:100%;display:block}[part=html] img{block-size:auto;max-inline-size:100%}.empty-note,[part=error]{color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);text-align:center;margin:0}[part=error]{color:var(--lr-color-danger)}`;export{styles};
1
+ import{css}from"lit";const styles=css`:host{min-inline-size:0;max-inline-size:100%;display:block}[part=body]{min-block-size:var(--lr-size-10rem);max-block-size:var(--lr-html-viewer-max-height,none);box-sizing:border-box;padding:var(--lr-space-m);overflow:auto}[part=html]{contain:paint;overflow-wrap:anywhere;max-inline-size:100%;display:block}[part=html] img{block-size:auto;max-inline-size:100%}.empty-note,[part=error]{color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);text-align:center;margin:0}[part=error]{color:var(--lr-color-danger)}`;export{styles};
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{html}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{literalSetConverter}from"../../../internal/converters.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{loadHtmlSanitizer}from"../html-viewer/dompurify-loader.js";import{acquireSanitizedIncludeResource,IncludeResourceError,invalidateIncludeResource,MAX_INCLUDE_BYTES}from"./include-resource.js";import{styles}from"./include.styles.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound}from"../../../internal/default-strings.generated.js";const INCLUDE_MODE=literalSetConverter(["cors","no-cors","same-origin"],"same-origin");class LyraIncludeBase extends LyraElement{}const ID_REFERENCE_ATTRIBUTES=["aria-activedescendant","aria-controls","aria-describedby","aria-details","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","for","form","headers","list"];let nextClonePrefix=0;function decodedFragment(hash){const encoded=hash.startsWith("#")?hash.slice(1):hash;try{return decodeURIComponent(encoded)}catch{return encoded}}function isTemplateElement(element){return element.localName==="template"&&"content"in element}function allElements(root){const elements=[...root.querySelectorAll("*")];for(const template of elements.filter(isTemplateElement))elements.push(...allElements(template.content));return elements}function elementWithId(root,id){for(const element of allElements(root))if(element.id===id)return element;return null}class LyraInclude extends TextViewerTarget(LyraIncludeBase){constructor(){super(...arguments),this.src="",this._mode="same-origin",this.withoutCache=!1,this.generation=0,this.clonePrefix=`include-fragment-${++nextClonePrefix}`,this.detached=new DeferredTeardown(()=>{this.generation++,this.releaseResourceLease(),this.setAttribute("aria-busy","false")})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound}}static{this.styles=[LyraElement.styles,styles,srOnly]}get mode(){return this._mode}set mode(next){const normalized=INCLUDE_MODE.normalizeReflected(this,"mode",next),old=this._mode;old!==normalized&&(this._mode=normalized,this.requestUpdate("mode",old))}async search(query){return super.search(query)}async searchNext(){return super.searchNext()}async searchPrevious(){return super.searchPrevious()}clearSearch(){super.clearSearch()}textContentRoot(){return this}updated(changed){super.updated(changed),(changed.has("src")||changed.has("mode")||changed.has("withoutCache"))&&this.scheduleAfterUpdate(()=>{this.load()})}connectedCallback(){super.connectedCallback(),!this.detached.cancel()&&(this.setAttribute("aria-busy","false"),this.hasUpdated&&this.src&&this.scheduleAfterUpdate(()=>{this.load()}))}disconnectedCallback(){super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush()}async reload(){const source=this.resolveSource();source?.kind==="remote"&&invalidateIncludeResource(source.url,this.effectiveMode,source.owner),await this.load()}get effectiveMode(){return this.mode}resolveSource(){const value=this.src.trim();if(!value)return null;if(value.startsWith("#"))return{kind:"same-page",fragment:decodedFragment(value)};const target=resolveOwnerFetchTarget(this,value);if(!target)return null;try{const parsed=new target.view.URL(target.url),fragment=decodedFragment(parsed.hash);return parsed.hash="",{kind:"remote",url:parsed.href,fragment,owner:target.view}}catch{return null}}releaseResourceLease(){this.resourceLease?.release(),this.resourceLease=void 0}async sanitizeSamePage(source,generation){const markup=source.innerHTML;if(new TextEncoder().encode(markup).byteLength>MAX_INCLUDE_BYTES)return this.fail(0,"resource-too-large"),null;const sanitizer=await loadHtmlSanitizer();return!this.isConnected||generation!==this.generation?null:sanitizer?sanitizePassiveMarkup(sanitizer,markup,this.ownerDocument,"transclusion"):(this.fail(0,"missing-sanitizer"),null)}fragmentFromSanitized(markup,fragmentId){const template=this.ownerDocument.createElement("template");template.innerHTML=markup;const output=this.ownerDocument.createDocumentFragment();if(fragmentId){const target=elementWithId(template.content,fragmentId);if(!target)return null;const children=isTemplateElement(target)?target.content.childNodes:target.childNodes;for(const child of children)output.append(child.cloneNode(!0))}else output.append(template.content.cloneNode(!0));return this.rebaseFragmentIds(output),output}rebaseFragmentIds(fragment){const idMap=new Map;let index=0;const elements=allElements(fragment);for(const element of elements){if(element.removeAttribute("name"),!element.id)continue;const original=element.id,next=`${this.clonePrefix}-${++index}`;idMap.has(original)||idMap.set(original,next),element.id=next}for(const element of elements){for(const attribute of ID_REFERENCE_ATTRIBUTES){if(!element.hasAttribute(attribute))continue;const replacements=element.getAttribute(attribute).split(/\s+/).filter(Boolean).map(token=>idMap.get(token)).filter(token=>!!token);replacements.length>0?element.setAttribute(attribute,replacements.join(" ")):element.removeAttribute(attribute)}for(const attribute of["href","xlink:href"]){const value=element.getAttribute(attribute);if(!value)continue;if(!value.startsWith("#")){element.removeAttribute(attribute);continue}const replacement=idMap.get(decodedFragment(value));replacement?element.setAttribute(attribute,`#${replacement}`):element.removeAttribute(attribute)}for(const attribute of element.getAttributeNames()){const value=element.getAttribute(attribute)??"";if(!/url\s*\(/i.test(value))continue;const match=/^\s*url\(\s*(['"]?)#([A-Za-z_][\w:.-]*)\1\s*\)\s*$/i.exec(value),replacement=match?idMap.get(match[2]):void 0;replacement?element.setAttribute(attribute,`url(#${replacement})`):element.removeAttribute(attribute)}}}async load(){const generation=++this.generation;if(this.releaseResourceLease(),this.setAttribute("aria-busy","false"),!this.src.trim()||!this.isConnected)return;const source=this.resolveSource();if(!source){this.emitError({status:0,reason:"blocked-url"});return}this.setAttribute("aria-busy","true");let lease;try{let markup,fragmentId=source.fragment;if(source.kind==="same-page"){const target=this.ownerDocument.getElementById(source.fragment);if(!target){this.fail(0,"missing-fragment");return}markup=await this.sanitizeSamePage(target,generation),fragmentId=""}else lease=acquireSanitizedIncludeResource(source.url,this.effectiveMode,!this.withoutCache,source.owner),this.resourceLease=lease,markup=await lease.promise;if(markup==null||!this.isConnected||generation!==this.generation||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;const fragment=this.fragmentFromSanitized(markup,fragmentId);if(!fragment){this.fail(0,"missing-fragment");return}if(generation!==this.generation||!this.isConnected||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;this.replaceChildren(fragment),this.requestUpdate(),this.setAttribute("aria-busy","false"),this.emit("lr-load",{src:this.src})}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;error instanceof IncludeResourceError?this.fail(error.status,error.reason,error.cause??error):this.fail(0,"network",error)}finally{this.resourceLease===lease&&(this.resourceLease=void 0),lease?.release()}}fail(status,reason,error){this.setAttribute("aria-busy","false"),this.emitError({status,reason,error})}emitError(detail){this.emit("lr-include-error",detail),this.emit("lr-error",detail)}render(){return html`<span part="base"><slot></slot></span>${this.renderAnchorLiveRegion()}`}}__decorate([property({reflect:!0})],LyraInclude.prototype,"src",void 0),__decorate([property({reflect:!0,converter:INCLUDE_MODE})],LyraInclude.prototype,"mode",null),__decorate([property({type:Boolean,attribute:"without-cache"})],LyraInclude.prototype,"withoutCache",void 0);export{LyraInclude};
1
+ import{__decorate}from"tslib";import{html}from"lit";import{property}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{literalSetConverter}from"../../../internal/converters.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{loadHtmlSanitizer}from"../html-viewer/dompurify-loader.js";import{acquireSanitizedIncludeResource,IncludeResourceError,invalidateIncludeResource,MAX_INCLUDE_BYTES}from"./include-resource.js";import{styles}from"./include.styles.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound}from"../../../internal/default-strings/shared.generated.js";const INCLUDE_MODE=literalSetConverter(["cors","no-cors","same-origin"],"same-origin");class LyraIncludeBase extends LyraElement{}const ID_REFERENCE_ATTRIBUTES=["aria-activedescendant","aria-controls","aria-describedby","aria-details","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","for","form","headers","list"];let nextClonePrefix=0;function decodedFragment(hash){const encoded=hash.startsWith("#")?hash.slice(1):hash;try{return decodeURIComponent(encoded)}catch{return encoded}}function isTemplateElement(element){return element.localName==="template"&&"content"in element}function allElements(root){const elements=[...root.querySelectorAll("*")];for(const template of elements.filter(isTemplateElement))elements.push(...allElements(template.content));return elements}function elementWithId(root,id){for(const element of allElements(root))if(element.id===id)return element;return null}class LyraInclude extends TextViewerTarget(LyraIncludeBase){constructor(){super(...arguments),this.src="",this._mode="same-origin",this.withoutCache=!1,this.generation=0,this.clonePrefix=`include-fragment-${++nextClonePrefix}`,this.detached=new DeferredTeardown(()=>{this.generation++,this.releaseResourceLease(),this.setAttribute("aria-busy","false")})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound}}static{this.styles=[LyraElement.styles,styles,srOnly]}get mode(){return this._mode}set mode(next){const normalized=INCLUDE_MODE.normalizeReflected(this,"mode",next),old=this._mode;old!==normalized&&(this._mode=normalized,this.requestUpdate("mode",old))}async search(query){return super.search(query)}async searchNext(){return super.searchNext()}async searchPrevious(){return super.searchPrevious()}clearSearch(){super.clearSearch()}textContentRoot(){return this}updated(changed){super.updated(changed),(changed.has("src")||changed.has("mode")||changed.has("withoutCache"))&&this.scheduleAfterUpdate(()=>{this.load()})}connectedCallback(){super.connectedCallback(),!this.detached.cancel()&&(this.setAttribute("aria-busy","false"),this.hasUpdated&&this.src&&this.scheduleAfterUpdate(()=>{this.load()}))}disconnectedCallback(){super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush()}async reload(){const source=this.resolveSource();source?.kind==="remote"&&invalidateIncludeResource(source.url,this.effectiveMode,source.owner),await this.load()}get effectiveMode(){return this.mode}resolveSource(){const value=this.src.trim();if(!value)return null;if(value.startsWith("#"))return{kind:"same-page",fragment:decodedFragment(value)};const target=resolveOwnerFetchTarget(this,value);if(!target)return null;try{const parsed=new target.view.URL(target.url),fragment=decodedFragment(parsed.hash);return parsed.hash="",{kind:"remote",url:parsed.href,fragment,owner:target.view}}catch{return null}}releaseResourceLease(){this.resourceLease?.release(),this.resourceLease=void 0}async sanitizeSamePage(source,generation){const markup=source.innerHTML;if(new TextEncoder().encode(markup).byteLength>MAX_INCLUDE_BYTES)return this.fail(0,"resource-too-large"),null;const sanitizer=await loadHtmlSanitizer();return!this.isConnected||generation!==this.generation?null:sanitizer?sanitizePassiveMarkup(sanitizer,markup,this.ownerDocument,"transclusion"):(this.fail(0,"missing-sanitizer"),null)}fragmentFromSanitized(markup,fragmentId){const template=this.ownerDocument.createElement("template");template.innerHTML=markup;const output=this.ownerDocument.createDocumentFragment();if(fragmentId){const target=elementWithId(template.content,fragmentId);if(!target)return null;const children=isTemplateElement(target)?target.content.childNodes:target.childNodes;for(const child of children)output.append(child.cloneNode(!0))}else output.append(template.content.cloneNode(!0));return this.rebaseFragmentIds(output),output}rebaseFragmentIds(fragment){const idMap=new Map;let index=0;const elements=allElements(fragment);for(const element of elements){if(element.removeAttribute("name"),!element.id)continue;const original=element.id,next=`${this.clonePrefix}-${++index}`;idMap.has(original)||idMap.set(original,next),element.id=next}for(const element of elements){for(const attribute of ID_REFERENCE_ATTRIBUTES){if(!element.hasAttribute(attribute))continue;const replacements=element.getAttribute(attribute).split(/\s+/).filter(Boolean).map(token=>idMap.get(token)).filter(token=>!!token);replacements.length>0?element.setAttribute(attribute,replacements.join(" ")):element.removeAttribute(attribute)}for(const attribute of["href","xlink:href"]){const value=element.getAttribute(attribute);if(!value)continue;if(!value.startsWith("#")){element.removeAttribute(attribute);continue}const replacement=idMap.get(decodedFragment(value));replacement?element.setAttribute(attribute,`#${replacement}`):element.removeAttribute(attribute)}for(const attribute of element.getAttributeNames()){const value=element.getAttribute(attribute)??"";if(!/url\s*\(/i.test(value))continue;const match=/^\s*url\(\s*(['"]?)#([A-Za-z_][\w:.-]*)\1\s*\)\s*$/i.exec(value),replacement=match?idMap.get(match[2]):void 0;replacement?element.setAttribute(attribute,`url(#${replacement})`):element.removeAttribute(attribute)}}}async load(){const generation=++this.generation;if(this.releaseResourceLease(),this.setAttribute("aria-busy","false"),!this.src.trim()||!this.isConnected)return;const source=this.resolveSource();if(!source){this.emitError({status:0,reason:"blocked-url"});return}this.setAttribute("aria-busy","true");let lease;try{let markup,fragmentId=source.fragment;if(source.kind==="same-page"){const target=this.ownerDocument.getElementById(source.fragment);if(!target){this.fail(0,"missing-fragment");return}markup=await this.sanitizeSamePage(target,generation),fragmentId=""}else lease=acquireSanitizedIncludeResource(source.url,this.effectiveMode,!this.withoutCache,source.owner),this.resourceLease=lease,markup=await lease.promise;if(markup==null||!this.isConnected||generation!==this.generation||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;const fragment=this.fragmentFromSanitized(markup,fragmentId);if(!fragment){this.fail(0,"missing-fragment");return}if(generation!==this.generation||!this.isConnected||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;this.replaceChildren(fragment),this.requestUpdate(),this.setAttribute("aria-busy","false"),this.emit("lr-load",{src:this.src})}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation||source.kind==="remote"&&this.ownerDocument.defaultView!==source.owner)return;error instanceof IncludeResourceError?this.fail(error.status,error.reason,error.cause??error):this.fail(0,"network",error)}finally{this.resourceLease===lease&&(this.resourceLease=void 0),lease?.release()}}fail(status,reason,error){this.setAttribute("aria-busy","false"),this.emitError({status,reason,error})}emitError(detail){this.emit("lr-include-error",detail),this.emit("lr-error",detail)}render(){return html`<span part="base"><slot></slot></span>${this.renderAnchorLiveRegion()}`}}__decorate([property({reflect:!0})],LyraInclude.prototype,"src",void 0),__decorate([property({reflect:!0,converter:INCLUDE_MODE})],LyraInclude.prototype,"mode",null),__decorate([property({type:Boolean,attribute:"without-cache"})],LyraInclude.prototype,"withoutCache",void 0);export{LyraInclude};
@@ -1 +1 @@
1
- import{isHtmlSanitizer,resolveOptionalPeerCapability}from"../../../internal/optional-peer-capabilities.js";import{devWarnOnce}from"../../../internal/dev-mode-attribute-warning.js";const NOTEBOOK_SANITIZER_WARNING_KEY="lyra-notebook-viewer-sanitizer-unavailable",NOTEBOOK_SANITIZER_WARNING="<lr-notebook-viewer> could not load its optional dompurify peer.";let sanitizer;async function loadNotebookSanitizerDeps(importDompurify=()=>import("dompurify")){try{const module=await importDompurify();return resolveOptionalPeerCapability(module,isHtmlSanitizer)}catch{return devWarnOnce(NOTEBOOK_SANITIZER_WARNING_KEY,NOTEBOOK_SANITIZER_WARNING),null}}function loadNotebookSanitizer(){return sanitizer||(sanitizer=loadNotebookSanitizerDeps()),sanitizer}function clearNotebookSanitizerCache(){sanitizer=void 0}function __setNotebookSanitizerForTesting(value){sanitizer=value===void 0?void 0:Promise.resolve(value)}export{__setNotebookSanitizerForTesting,clearNotebookSanitizerCache,loadNotebookSanitizer,loadNotebookSanitizerDeps};
1
+ import{clearDompurifyCache,loadDompurify}from"../../../internal/dompurify-loader.js";let override;function loadNotebookSanitizerDeps(importDompurify=()=>import("dompurify")){return loadDompurify(importDompurify)}function loadNotebookSanitizer(){return override??loadDompurify()}function clearNotebookSanitizerCache(){override=void 0,clearDompurifyCache()}function __setNotebookSanitizerForTesting(value){override=value===void 0?void 0:Promise.resolve(value)}export{__setNotebookSanitizerForTesting,clearNotebookSanitizerCache,loadNotebookSanitizer,loadNotebookSanitizerDeps};
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{unsafeHTML}from"lit/directives/unsafe-html.js";import{unsafeSVG}from"lit/directives/unsafe-svg.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{DocumentAnchorTarget,prioritizedHighlightCandidates}from"../../../internal/anchor-target.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{createAnsiParser}from"../../../internal/ansi.js";import{loadNotebookSanitizer}from"./dompurify-loader.js";import{styles}from"./notebook-viewer.styles.js";import{sanitizeCssColor,sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{resolveViewerSource}from"../viewer-source.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_documentViewerMissingSanitizer,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_notebookViewerCodeCell,LYRA_DEFAULT_notebookViewerCollapseOutput,LYRA_DEFAULT_notebookViewerErrorOutput,LYRA_DEFAULT_notebookViewerInPrompt,LYRA_DEFAULT_notebookViewerInPromptEmpty,LYRA_DEFAULT_notebookViewerInvalid,LYRA_DEFAULT_notebookViewerLabel,LYRA_DEFAULT_notebookViewerMarkdownCell,LYRA_DEFAULT_notebookViewerRawCell,LYRA_DEFAULT_notebookViewerShowAllOutput,LYRA_DEFAULT_notebookViewerTooManyCells,LYRA_DEFAULT_notebookViewerUnrenderedOutput,LYRA_DEFAULT_notebookViewerUnsupportedVersion}from"../../../internal/default-strings.generated.js";const MAX_CELLS=2e3,MAX_OUTPUTS=2e4,MAX_JSON_NODES=1e5,SUPPORTED_MAJOR=4,SUPPORTED_MINORS=[0,1,2,3,4,5],MAX_NOTEBOOK_PAINTED_HIGHLIGHTS=100,OMIT_NOTEBOOK_SNAPSHOT=Symbol("omit-notebook-snapshot");function invalidNotebookSnapshot(){return Object.freeze({})}function isNotebookDataRecord(value){try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;const parent=Object.getPrototypeOf(prototype),constructor=Object.getOwnPropertyDescriptor(prototype,"constructor");if(parent===null)return!constructor||"value"in constructor&&typeof constructor.value=="function"&&constructor.value.name==="Object";if(constructor)return!1;const parentConstructor=Object.getOwnPropertyDescriptor(parent,"constructor");return!!(Object.getPrototypeOf(parent)===null&&parentConstructor&&"value"in parentConstructor&&typeof parentConstructor.value=="function"&&parentConstructor.value.name==="Object")}catch{return!1}}function snapshotNotebookDocument(value){if(value===null||typeof value!="object"||Array.isArray(value))return OMIT_NOTEBOOK_SNAPSHOT;let remaining=MAX_JSON_NODES;const seen=new WeakSet,created=[],pending=[],createContainer=source=>{let array=!1;try{array=Array.isArray(source)}catch{return OMIT_NOTEBOOK_SNAPSHOT}let keys,target;if(array){let lengthDescriptor;try{lengthDescriptor=Object.getOwnPropertyDescriptor(source,"length")}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(!lengthDescriptor||!("value"in lengthDescriptor)||typeof lengthDescriptor.value!="number"||!Number.isSafeInteger(lengthDescriptor.value)||lengthDescriptor.value<0||lengthDescriptor.value>remaining)return OMIT_NOTEBOOK_SNAPSHOT;keys=Array.from({length:lengthDescriptor.value},(_,index)=>String(index)),target=new Array(lengthDescriptor.value)}else{if(!isNotebookDataRecord(source))return OMIT_NOTEBOOK_SNAPSHOT;try{keys=Object.keys(source)}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(keys.length>remaining)return OMIT_NOTEBOOK_SNAPSHOT;target={}}return seen.add(source),created.push(target),pending.push({source,target,keys,array}),target};remaining-=1;const root=createContainer(value);if(root===OMIT_NOTEBOOK_SNAPSHOT)return root;for(;pending.length;){const task=pending.pop();for(const key of task.keys){let descriptor;try{descriptor=Object.getOwnPropertyDescriptor(task.source,key)}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(!descriptor){if(task.array)continue;return OMIT_NOTEBOOK_SNAPSHOT}if(!descriptor.enumerable||!("value"in descriptor)||remaining<=0)return OMIT_NOTEBOOK_SNAPSHOT;remaining-=1;const entry=descriptor.value;let snapshot=entry;if(entry!==null&&(typeof entry=="object"||typeof entry=="function")){if(typeof entry=="function"||seen.has(entry))return OMIT_NOTEBOOK_SNAPSHOT;if(snapshot=createContainer(entry),snapshot===OMIT_NOTEBOOK_SNAPSHOT)return snapshot}Object.defineProperty(task.target,key,{value:snapshot,enumerable:!0,configurable:!1,writable:!1})}}for(let index=created.length-1;index>=0;index-=1)Object.freeze(created[index]);return root}function joinSource(source){return typeof source=="string"?source:source?.join("")??""}function isDenseArray(value){for(let index=0;index<value.length;index++)if(!Object.prototype.hasOwnProperty.call(value,index))return!1;return!0}function joinText(text){return typeof text=="string"?text:Array.isArray(text)&&isDenseArray(text)&&text.every(item=>typeof item=="string")?text.join(""):""}function*notebookSearchTextParts(text){if(typeof text=="string"){yield text;return}if(!(!Array.isArray(text)||!isDenseArray(text)))for(const part of text)typeof part=="string"&&(yield part)}const MARKUP_ENTITIES={lt:"<",gt:">",quot:'"',apos:"'",amp:"&"};function visibleMarkupText(markup){const lower=markup.toLowerCase();let text="",index=0;for(;index<markup.length;){const open=markup.indexOf("<",index);if(open<0){text+=markup.slice(index);break}if(text+=markup.slice(index,open)+" ",lower.startsWith("<!--",open)){const end=markup.indexOf("-->",open+4);index=end<0?markup.length:end+3;continue}const close=markup.indexOf(">",open+1);if(close<0)break;const rawText=lower.startsWith("<script",open)?"<\/script":lower.startsWith("<style",open)?"</style":"";if(rawText){const end=lower.indexOf(rawText,close+1),endClose=end<0?-1:markup.indexOf(">",end);index=endClose<0?markup.length:endClose+1;continue}index=close+1}return text.replace(/&(lt|gt|quot|apos|amp);/g,(_entity,name)=>MARKUP_ENTITIES[name])}function*notebookOutputSearchParts(outputs){for(const output of outputs){yield*notebookSearchTextParts(output.text);const data=output.data;data&&Object.prototype.hasOwnProperty.call(data,"text/plain")&&(yield*notebookSearchTextParts(data["text/plain"]),yield" "),data&&!data["image/png"]&&!data["image/jpeg"]&&(data["image/svg+xml"]?yield visibleMarkupText(joinText(data["image/svg+xml"])):data["text/html"]?yield visibleMarkupText(joinText(data["text/html"])):data["application/json"]&&(yield*notebookSearchTextParts(data["application/json"]))),yield" "}}function isTextValue(value){return typeof value=="string"||Array.isArray(value)&&isDenseArray(value)&&value.every(item=>typeof item=="string")}function isJsonValue(value){const pending=[value];let nodes=0;for(;pending.length;){const current=pending.pop();if(++nodes>MAX_JSON_NODES)return!1;if(!(current===null||typeof current=="string"||typeof current=="boolean")){if(typeof current=="number"){if(!Number.isFinite(current))return!1;continue}if(Array.isArray(current)){if(current.length>MAX_JSON_NODES-nodes-pending.length)return!1;for(let index=current.length-1;index>=0;index--)pending.push(current[index]);continue}if(typeof current!="object")return!1;for(const key in current)if(Object.prototype.hasOwnProperty.call(current,key)){if(pending.length>=MAX_JSON_NODES-nodes)return!1;pending.push(current[key])}}}return!0}function isNotebookOutput(value){if(typeof value!="object"||value===null)return!1;const output=value;if(!["stream","error","display_data","execute_result"].includes(String(output.output_type))||output.text!==void 0&&!isTextValue(output.text)||output.traceback!==void 0&&!isTextValue(output.traceback)||output.ename!==void 0&&typeof output.ename!="string"||output.evalue!==void 0&&typeof output.evalue!="string"||output.name!==void 0&&output.name!=="stdout"&&output.name!=="stderr")return!1;const data=output.data;if(data===void 0)return!0;if(typeof data!="object"||data===null||Array.isArray(data))return!1;const mimeData=data;for(const[mime,payload]of Object.entries(mimeData))if(mime==="application/json"){if(typeof payload=="string")try{if(!isJsonValue(JSON.parse(payload)))return!1}catch{return!1}else if(!isJsonValue(payload))return!1}else if(!isTextValue(payload)&&!isJsonValue(payload))return!1;return!0}function isNotebookShape(value){if(typeof value!="object"||value===null)return!1;const v=value;if(!Number.isInteger(v.nbformat)||!Number.isInteger(v.nbformat_minor)||!Array.isArray(v.cells))return!1;const cells=v.cells;let outputCount=0;for(let index=0;index<cells.length;index++){if(!Object.prototype.hasOwnProperty.call(cells,index))return!1;const value2=cells[index];if(typeof value2!="object"||value2===null)return!1;const cell=value2;if(!["markdown","code","raw"].includes(String(cell.cell_type))||!isTextValue(cell.source)||cell.id!==void 0&&typeof cell.id!="string"||cell.execution_count!==void 0&&cell.execution_count!==null&&(!Number.isInteger(cell.execution_count)||cell.execution_count<0))return!1;if(cell.outputs!==void 0&&(!Array.isArray(cell.outputs)||!isDenseArray(cell.outputs)||(outputCount+=cell.outputs.length,outputCount>MAX_OUTPUTS||!cell.outputs.every(isNotebookOutput))))return!1}return!0}class LyraNotebookViewerBase extends LyraElement{}class LyraNotebookViewer extends DocumentAnchorTarget(LyraNotebookViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.outputCollapseLines=40,this.maxHeight="",this.anchorKinds=["node-path","fragment"],this.loadState={kind:"idle"},this.expandedOutputs=new Set,this.activeCellIndex=null,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.activeSearchIndex=-1,this.cellKey=(item,index)=>item.id??index,this.highlightedCells=new Map,this.generation=0,this.lastSearchLocale="",this.sanitizerGeneration=0,this.sanitizerFailureReported=!1,this.sourceLoadScheduled=!1,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>this.releaseDetachedNotebook()),this.sanitizedOutputCache=new Map,this.sanitizationTasks=new Map,this.renderCell=(cell,index)=>{const c=cell,numberFormat=getNumberFormat(this.effectiveLocale),inCount=c.execution_count==null?this.localize("notebookViewerInPromptEmpty"):this.localize("notebookViewerInPrompt",void 0,{count:numberFormat.format(c.execution_count)}),rowLabel=c.cell_type==="code"?this.localize("notebookViewerCodeCell",void 0,{index:numberFormat.format(index+1)}):c.cell_type==="markdown"?this.localize("notebookViewerMarkdownCell",void 0,{index:numberFormat.format(index+1)}):this.localize("notebookViewerRawCell",void 0,{index:numberFormat.format(index+1)}),active=this.activeCellIndex===index,highlight=this.highlightedCells.get(index),highlighted=highlight!==void 0,parts=["cell"];return active&&parts.push("cell-active"),highlighted&&(parts.push("cell-highlighted",`cell-highlighted-${highlight.tone??"accent"}`),highlight.id===this.activeHighlightId&&parts.push("cell-highlight-active")),html`<div part=${parts.join(" ")} role="group" aria-label=${rowLabel} data-cell-type=${c.cell_type} ?data-active=${active} ?data-highlighted=${highlighted}>
1
+ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{unsafeHTML}from"lit/directives/unsafe-html.js";import{unsafeSVG}from"lit/directives/unsafe-svg.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-host-tokens.styles.js";import{DocumentAnchorTarget,prioritizedHighlightCandidates}from"../../../internal/anchor-target.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{finiteCount}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{createAnsiParser}from"../../../internal/ansi.js";import{loadNotebookSanitizer}from"./dompurify-loader.js";import{styles}from"./notebook-viewer.styles.js";import{sanitizeCssColor,sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{sanitizePassiveMarkup}from"../passive-markup.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{resolveViewerSource}from"../viewer-source.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_documentPreviewEmpty}from"../../../internal/default-strings/shared.generated.js";import{LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_documentViewerMissingSanitizer,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_notebookViewerCodeCell,LYRA_DEFAULT_notebookViewerCollapseOutput,LYRA_DEFAULT_notebookViewerErrorOutput,LYRA_DEFAULT_notebookViewerInPrompt,LYRA_DEFAULT_notebookViewerInPromptEmpty,LYRA_DEFAULT_notebookViewerInvalid,LYRA_DEFAULT_notebookViewerLabel,LYRA_DEFAULT_notebookViewerMarkdownCell,LYRA_DEFAULT_notebookViewerRawCell,LYRA_DEFAULT_notebookViewerShowAllOutput,LYRA_DEFAULT_notebookViewerTooManyCells,LYRA_DEFAULT_notebookViewerUnrenderedOutput,LYRA_DEFAULT_notebookViewerUnsupportedVersion}from"../../../internal/default-strings/viewers.generated.js";const MAX_CELLS=2e3,MAX_OUTPUTS=2e4,MAX_JSON_NODES=1e5,SUPPORTED_MAJOR=4,SUPPORTED_MINORS=[0,1,2,3,4,5],MAX_NOTEBOOK_PAINTED_HIGHLIGHTS=100,OMIT_NOTEBOOK_SNAPSHOT=Symbol("omit-notebook-snapshot");function invalidNotebookSnapshot(){return Object.freeze({})}function isNotebookDataRecord(value){try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;const parent=Object.getPrototypeOf(prototype),constructor=Object.getOwnPropertyDescriptor(prototype,"constructor");if(parent===null)return!constructor||"value"in constructor&&typeof constructor.value=="function"&&constructor.value.name==="Object";if(constructor)return!1;const parentConstructor=Object.getOwnPropertyDescriptor(parent,"constructor");return!!(Object.getPrototypeOf(parent)===null&&parentConstructor&&"value"in parentConstructor&&typeof parentConstructor.value=="function"&&parentConstructor.value.name==="Object")}catch{return!1}}function snapshotNotebookDocument(value){if(value===null||typeof value!="object"||Array.isArray(value))return OMIT_NOTEBOOK_SNAPSHOT;let remaining=MAX_JSON_NODES;const seen=new WeakSet,created=[],pending=[],createContainer=source=>{let array=!1;try{array=Array.isArray(source)}catch{return OMIT_NOTEBOOK_SNAPSHOT}let keys,target;if(array){let lengthDescriptor;try{lengthDescriptor=Object.getOwnPropertyDescriptor(source,"length")}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(!lengthDescriptor||!("value"in lengthDescriptor)||typeof lengthDescriptor.value!="number"||!Number.isSafeInteger(lengthDescriptor.value)||lengthDescriptor.value<0||lengthDescriptor.value>remaining)return OMIT_NOTEBOOK_SNAPSHOT;keys=Array.from({length:lengthDescriptor.value},(_,index)=>String(index)),target=new Array(lengthDescriptor.value)}else{if(!isNotebookDataRecord(source))return OMIT_NOTEBOOK_SNAPSHOT;try{keys=Object.keys(source)}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(keys.length>remaining)return OMIT_NOTEBOOK_SNAPSHOT;target={}}return seen.add(source),created.push(target),pending.push({source,target,keys,array}),target};remaining-=1;const root=createContainer(value);if(root===OMIT_NOTEBOOK_SNAPSHOT)return root;for(;pending.length;){const task=pending.pop();for(const key of task.keys){let descriptor;try{descriptor=Object.getOwnPropertyDescriptor(task.source,key)}catch{return OMIT_NOTEBOOK_SNAPSHOT}if(!descriptor){if(task.array)continue;return OMIT_NOTEBOOK_SNAPSHOT}if(!descriptor.enumerable||!("value"in descriptor)||remaining<=0)return OMIT_NOTEBOOK_SNAPSHOT;remaining-=1;const entry=descriptor.value;let snapshot=entry;if(entry!==null&&(typeof entry=="object"||typeof entry=="function")){if(typeof entry=="function"||seen.has(entry))return OMIT_NOTEBOOK_SNAPSHOT;if(snapshot=createContainer(entry),snapshot===OMIT_NOTEBOOK_SNAPSHOT)return snapshot}Object.defineProperty(task.target,key,{value:snapshot,enumerable:!0,configurable:!1,writable:!1})}}for(let index=created.length-1;index>=0;index-=1)Object.freeze(created[index]);return root}function joinSource(source){return typeof source=="string"?source:source?.join("")??""}function isDenseArray(value){for(let index=0;index<value.length;index++)if(!Object.prototype.hasOwnProperty.call(value,index))return!1;return!0}function joinText(text){return typeof text=="string"?text:Array.isArray(text)&&isDenseArray(text)&&text.every(item=>typeof item=="string")?text.join(""):""}function*notebookSearchTextParts(text){if(typeof text=="string"){yield text;return}if(!(!Array.isArray(text)||!isDenseArray(text)))for(const part of text)typeof part=="string"&&(yield part)}const MARKUP_ENTITIES={lt:"<",gt:">",quot:'"',apos:"'",amp:"&"};function visibleMarkupText(markup){const lower=markup.toLowerCase();let text="",index=0;for(;index<markup.length;){const open=markup.indexOf("<",index);if(open<0){text+=markup.slice(index);break}if(text+=markup.slice(index,open)+" ",lower.startsWith("<!--",open)){const end=markup.indexOf("-->",open+4);index=end<0?markup.length:end+3;continue}const close=markup.indexOf(">",open+1);if(close<0)break;const rawText=lower.startsWith("<script",open)?"<\/script":lower.startsWith("<style",open)?"</style":"";if(rawText){const end=lower.indexOf(rawText,close+1),endClose=end<0?-1:markup.indexOf(">",end);index=endClose<0?markup.length:endClose+1;continue}index=close+1}return text.replace(/&(lt|gt|quot|apos|amp);/g,(_entity,name)=>MARKUP_ENTITIES[name])}function*notebookOutputSearchParts(outputs){for(const output of outputs){yield*notebookSearchTextParts(output.text);const data=output.data;data&&Object.prototype.hasOwnProperty.call(data,"text/plain")&&(yield*notebookSearchTextParts(data["text/plain"]),yield" "),data&&!data["image/png"]&&!data["image/jpeg"]&&(data["image/svg+xml"]?yield visibleMarkupText(joinText(data["image/svg+xml"])):data["text/html"]?yield visibleMarkupText(joinText(data["text/html"])):data["application/json"]&&(yield*notebookSearchTextParts(data["application/json"]))),yield" "}}function isTextValue(value){return typeof value=="string"||Array.isArray(value)&&isDenseArray(value)&&value.every(item=>typeof item=="string")}function isJsonValue(value){const pending=[value];let nodes=0;for(;pending.length;){const current=pending.pop();if(++nodes>MAX_JSON_NODES)return!1;if(!(current===null||typeof current=="string"||typeof current=="boolean")){if(typeof current=="number"){if(!Number.isFinite(current))return!1;continue}if(Array.isArray(current)){if(current.length>MAX_JSON_NODES-nodes-pending.length)return!1;for(let index=current.length-1;index>=0;index--)pending.push(current[index]);continue}if(typeof current!="object")return!1;for(const key in current)if(Object.prototype.hasOwnProperty.call(current,key)){if(pending.length>=MAX_JSON_NODES-nodes)return!1;pending.push(current[key])}}}return!0}function isNotebookOutput(value){if(typeof value!="object"||value===null)return!1;const output=value;if(!["stream","error","display_data","execute_result"].includes(String(output.output_type))||output.text!==void 0&&!isTextValue(output.text)||output.traceback!==void 0&&!isTextValue(output.traceback)||output.ename!==void 0&&typeof output.ename!="string"||output.evalue!==void 0&&typeof output.evalue!="string"||output.name!==void 0&&output.name!=="stdout"&&output.name!=="stderr")return!1;const data=output.data;if(data===void 0)return!0;if(typeof data!="object"||data===null||Array.isArray(data))return!1;const mimeData=data;for(const[mime,payload]of Object.entries(mimeData))if(mime==="application/json"){if(typeof payload=="string")try{if(!isJsonValue(JSON.parse(payload)))return!1}catch{return!1}else if(!isJsonValue(payload))return!1}else if(!isTextValue(payload)&&!isJsonValue(payload))return!1;return!0}function isNotebookShape(value){if(typeof value!="object"||value===null)return!1;const v=value;if(!Number.isInteger(v.nbformat)||!Number.isInteger(v.nbformat_minor)||!Array.isArray(v.cells))return!1;const cells=v.cells;let outputCount=0;for(let index=0;index<cells.length;index++){if(!Object.prototype.hasOwnProperty.call(cells,index))return!1;const value2=cells[index];if(typeof value2!="object"||value2===null)return!1;const cell=value2;if(!["markdown","code","raw"].includes(String(cell.cell_type))||!isTextValue(cell.source)||cell.id!==void 0&&typeof cell.id!="string"||cell.execution_count!==void 0&&cell.execution_count!==null&&(!Number.isInteger(cell.execution_count)||cell.execution_count<0))return!1;if(cell.outputs!==void 0&&(!Array.isArray(cell.outputs)||!isDenseArray(cell.outputs)||(outputCount+=cell.outputs.length,outputCount>MAX_OUTPUTS||!cell.outputs.every(isNotebookOutput))))return!1}return!0}class LyraNotebookViewerBase extends LyraElement{}class LyraNotebookViewer extends DocumentAnchorTarget(LyraNotebookViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.outputCollapseLines=40,this.maxHeight="",this.anchorKinds=["node-path","fragment"],this.loadState={kind:"idle"},this.expandedOutputs=new Set,this.activeCellIndex=null,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.activeSearchIndex=-1,this.cellKey=(item,index)=>item.id??index,this.highlightedCells=new Map,this.generation=0,this.lastSearchLocale="",this.sanitizerGeneration=0,this.sanitizerFailureReported=!1,this.sourceLoadScheduled=!1,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>this.releaseDetachedNotebook()),this.sanitizedOutputCache=new Map,this.sanitizationTasks=new Map,this.renderCell=(cell,index)=>{const c=cell,numberFormat=getNumberFormat(this.effectiveLocale),inCount=c.execution_count==null?this.localize("notebookViewerInPromptEmpty"):this.localize("notebookViewerInPrompt",void 0,{count:numberFormat.format(c.execution_count)}),rowLabel=c.cell_type==="code"?this.localize("notebookViewerCodeCell",void 0,{index:numberFormat.format(index+1)}):c.cell_type==="markdown"?this.localize("notebookViewerMarkdownCell",void 0,{index:numberFormat.format(index+1)}):this.localize("notebookViewerRawCell",void 0,{index:numberFormat.format(index+1)}),active=this.activeCellIndex===index,highlight=this.highlightedCells.get(index),highlighted=highlight!==void 0,parts=["cell"];return active&&parts.push("cell-active"),highlighted&&(parts.push("cell-highlighted",`cell-highlighted-${highlight.tone??"accent"}`),highlight.id===this.activeHighlightId&&parts.push("cell-highlight-active")),html`<div part=${parts.join(" ")} role="group" aria-label=${rowLabel} data-cell-type=${c.cell_type} ?data-active=${active} ?data-highlighted=${highlighted}>
2
2
  <div part="cell-gutter">${c.cell_type==="code"?inCount:""}</div>
3
3
  <div part="cell-source">
4
4
  ${c.cell_type==="markdown"?html`<lr-markdown
@@ -42,7 +42,7 @@ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/co
42
42
  @lr-error=${this.stopOwnedEvent}
43
43
  @lr-copy-error=${this.stopOwnedEvent}
44
44
  @lr-search-change=${this.stopOwnedEvent}
45
- ></lr-json-viewer></div>`}return data["text/plain"]?this.renderTextOutput(key,joinText(data["text/plain"])):html`<div part="output" data-output-type=${output.output_type}>${this.localize("notebookViewerUnrenderedOutput")}</div>`}async ensureSanitized(raw,profile){const cacheKey=`${profile}:${raw}`;if(this.sanitizedOutputCache.has(cacheKey))return;const existing=this.sanitizationTasks.get(cacheKey);if(existing)return existing;const generation=this.sanitizerGeneration,task=(async()=>{try{const sanitizer=await loadNotebookSanitizer();if(!this.isConnected||generation!==this.sanitizerGeneration)return;const clean=sanitizer?sanitizePassiveMarkup(sanitizer,raw,this.ownerDocument,profile==="svg"?"passive-svg":"passive-document"):null;if(!this.isConnected||generation!==this.sanitizerGeneration)return;if(!sanitizer&&!this.sanitizerFailureReported){this.sanitizerFailureReported=!0;const message=this.localize("documentViewerMissingSanitizer");this.announcements.announceAssertive(message),this.emit("lr-render-error",{error:new LyraUserFacingError(message)})}this.sanitizedOutputCache.set(cacheKey,clean),this.requestUpdate()}catch(error){if(!this.isConnected||generation!==this.sanitizerGeneration)return;this.sanitizedOutputCache.set(cacheKey,null),this.sanitizerFailureReported||(this.sanitizerFailureReported=!0,this.announcements.announceAssertive(this.localize("documentViewerMissingSanitizer"))),this.emit("lr-render-error",{error}),this.requestUpdate()}finally{generation===this.sanitizerGeneration&&this.sanitizationTasks.delete(cacheKey)}})();return this.sanitizationTasks.set(cacheKey,task),task}renderSanitized(raw,profile,outputKey,textFallback){const cacheKey=`${profile}:${raw}`,cached=this.sanitizedOutputCache.get(cacheKey);return cached===void 0?(this.ensureSanitized(raw,profile),html`<span class="sr-only">${this.localize("loadingDocument")}</span>`):cached===null?textFallback?this.renderTextOutput(outputKey,textFallback):html`<p>${this.localize("documentViewerMissingSanitizer")}</p>`:profile==="svg"?html`${unsafeSVG(cached)}`:html`${unsafeHTML(cached)}`}notebookLanguage(){return this.loadState.kind==="loaded"?this.loadState.doc.metadata?.language_info?.name??this.loadState.doc.metadata?.kernelspec?.language??"":""}stopOwnedEvent(event){event.stopPropagation()}render(){const maxHeight=sanitizeCssLength(this.maxHeight),label=viewerSemanticLabel(this,this.name||this.localize("notebookViewerLabel"));return html`<div
45
+ ></lr-json-viewer></div>`}return data["text/plain"]?this.renderTextOutput(key,joinText(data["text/plain"])):html`<div part="output" data-output-type=${output.output_type}>${this.localize("notebookViewerUnrenderedOutput")}</div>`}async ensureSanitized(raw,profile){const cacheKey=`${profile}:${raw}`;if(this.sanitizedOutputCache.has(cacheKey))return;const existing=this.sanitizationTasks.get(cacheKey);if(existing)return existing;const generation=this.sanitizerGeneration,task=(async()=>{try{const sanitizer=await loadNotebookSanitizer();if(!this.isConnected||generation!==this.sanitizerGeneration)return;const clean=sanitizer?sanitizePassiveMarkup(sanitizer,raw,this.ownerDocument,profile==="svg"?"passive-svg":"passive-document"):null;if(!this.isConnected||generation!==this.sanitizerGeneration)return;if(!sanitizer&&!this.sanitizerFailureReported){this.sanitizerFailureReported=!0;const message=this.localize("documentViewerMissingSanitizer");this.announcements.announceAssertive(message),this.emit("lr-render-error",{error:new LyraUserFacingError(message)})}this.sanitizedOutputCache.set(cacheKey,clean),this.requestUpdate()}catch(error){if(!this.isConnected||generation!==this.sanitizerGeneration)return;this.sanitizedOutputCache.set(cacheKey,null),!this.sanitizerFailureReported&&!isResourceLimitError(error)&&(this.sanitizerFailureReported=!0,this.announcements.announceAssertive(this.localize("documentViewerMissingSanitizer"))),this.emit("lr-render-error",{error}),this.requestUpdate()}finally{generation===this.sanitizerGeneration&&this.sanitizationTasks.delete(cacheKey)}})();return this.sanitizationTasks.set(cacheKey,task),task}renderSanitized(raw,profile,outputKey,textFallback){const cacheKey=`${profile}:${raw}`,cached=this.sanitizedOutputCache.get(cacheKey);return cached===void 0?(this.ensureSanitized(raw,profile),html`<span class="sr-only">${this.localize("loadingDocument")}</span>`):cached===null?textFallback?this.renderTextOutput(outputKey,textFallback):html`<p>${this.localize("documentViewerMissingSanitizer")}</p>`:profile==="svg"?html`${unsafeSVG(cached)}`:html`${unsafeHTML(cached)}`}notebookLanguage(){return this.loadState.kind==="loaded"?this.loadState.doc.metadata?.language_info?.name??this.loadState.doc.metadata?.kernelspec?.language??"":""}stopOwnedEvent(event){event.stopPropagation()}render(){const maxHeight=sanitizeCssLength(this.maxHeight),label=viewerSemanticLabel(this,this.name||this.localize("notebookViewerLabel"));return html`<div
46
46
  part="base"
47
47
  style=${maxHeight?styleMap({"--lr-notebook-viewer-max-height":maxHeight}):nothing}
48
48
  role=${viewerSemanticRole(this,"region")??nothing}
@@ -71,4 +71,4 @@ get highlights():readonly LyraHighlight[];set highlights(value:readonly LyraHigh
71
71
  * attribute value parses to a number; an unresolvable value falls back to the default. */
72
72
  thumbWidth:number|string;
73
73
  /** Overrides the computed accessible name. */
74
- label:string;private resolvedPageCount;private thumbnailStates;private allocationWidth;private readonly thumbnailRefs;private readonly thumbnailTargets;private readonly thumbnailHandles;private boundViewer;private digitBuffer;private readonly digitBufferReset;private thumbnailGeneration;private resizeObserver?;private targetObserver?;private readonly ownerFrames;private pendingFocusPage;private focusRepairPending;private focusRepairGeneration;private pageSourceCount;private pageSource;private viewerSnapshotIdentity?;private viewerSnapshotStatus?;private readonly onViewerLoad;private readonly onViewerPageChange;private readonly onViewerStateChange;protected willUpdate(changed:PropertyValues):void;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;private resolveViewer;private observeForTarget;private unbindViewer;private applyViewerSnapshot;private lookupFor;private get safePageCount();private get safePage();private get safeThumbWidth();private effectivePageCount;private createPageSource;private indexedPages;private thumbnailRef;protected updated(changed:PropertyValues):void;private renderedPageButton;private isCurrentFocusRepair;private focusRepairIndex;private finishFocusRepair;private focusVirtualPage;private invalidateThumbnails;private disposeThumbnailHandle;private disposeThumbnailHandles;private loadThumbnail;private onPageActivate;private cancelDigitTimer;private resetDigitBuffer;private onKeyDown;private renderPageItem;private stopVirtualListEvent;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-page-rail':LyraPageRail;}}
74
+ label:string;private resolvedPageCount;private thumbnailStates;private allocationWidth;private readonly thumbnailRowRefs;private readonly thumbnailRefs;private readonly thumbnailTargets;private readonly thumbnailHandles;private boundViewer;private digitBuffer;private readonly digitBufferReset;private thumbnailGeneration;private resizeObserver?;private targetObserver?;private readonly ownerFrames;private pendingFocusPage;private focusRepairPending;private focusRepairGeneration;private pageSourceCount;private pageSource;private viewerSnapshotIdentity?;private viewerSnapshotStatus?;private readonly onViewerLoad;private readonly onViewerPageChange;private readonly onViewerStateChange;protected willUpdate(changed:PropertyValues):void;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;private resolveViewer;private observeForTarget;private unbindViewer;private applyViewerSnapshot;private lookupFor;private get safePageCount();private get safePage();private get safeThumbWidth();private effectivePageCount;private createPageSource;private indexedPages;private thumbnailRowRef;private thumbnailRef;protected updated(changed:PropertyValues):void;private renderedPageButton;private isCurrentFocusRepair;private focusRepairIndex;private finishFocusRepair;private focusVirtualPage;private invalidateThumbnails;private disposeThumbnailHandle;private disposeThumbnailHandles;private loadThumbnail;private onPageActivate;private cancelDigitTimer;private resetDigitBuffer;private onKeyDown;private renderPageItem;private stopVirtualListEvent;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-page-rail':LyraPageRail;}}
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{keyed}from"lit/directives/keyed.js";import{ref}from"lit/directives/ref.js";import{DebounceController}from"../../../internal/debounce-controller.js";import{OwnerAnimationFrameWaiter}from"../../../internal/owner-animation-frame.js";import{tag}from"../../../internal/prefix.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount,finiteInteger,finiteRange}from"../../../internal/numbers.js";import{resolveCssLength}from"../../../internal/css-length.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./page-rail.styles.js";import{activeElementIn}from"../../../internal/active-element.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{LYRA_DEFAULT_pageRailLabel,LYRA_DEFAULT_pageRailPage,LYRA_DEFAULT_pageRailPageHighlighted}from"../../../internal/default-strings.generated.js";import{PageViewerSnapshotController}from"./page-viewer-snapshot.js";const DIGIT_BUFFER_MS=500,MAX_PAGE_COUNT=1e5,DEFAULT_ALLOCATION_WIDTH=320,DEFAULT_THUMB_WIDTH=96,THUMB_WIDTH_CONVERTER={fromAttribute:value=>{if(value===null)return value;const number=Number(value);return Number.isNaN(number)?value:number}};class LyraPageRail extends LyraElement{constructor(){super(...arguments),this.viewer=null,this.for="",this.pageCount=0,this.page=1,this._highlights=snapshotLyraHighlights([]),this.pageTones=new Map,this.thumbWidth=96,this.label="",this.resolvedPageCount=0,this.thumbnailStates=new Map,this.allocationWidth=DEFAULT_ALLOCATION_WIDTH,this.thumbnailRefs=new Map,this.thumbnailTargets=new Map,this.thumbnailHandles=new Map,this.boundViewer=null,this.digitBuffer="",this.digitBufferReset=new DebounceController(DIGIT_BUFFER_MS,()=>{this.digitBuffer=""},()=>this.ownerDocument.defaultView),this.thumbnailGeneration=0,this.ownerFrames=new OwnerAnimationFrameWaiter(this),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration=0,this.pageSourceCount=-1,this.pageSource=this.createPageSource(0),this.onViewerLoad=e=>{this.resolvedPageCount=finiteCount(e.detail?.pageCount??0,0,MAX_PAGE_COUNT),this.invalidateThumbnails()},this.onViewerPageChange=e=>{this.page=e.detail.page},this.onViewerStateChange=event=>{const viewer=this.boundViewer;if(!viewer)return;const eventSnapshot=event.detail?.snapshot;this.applyViewerSnapshot(viewer.pageViewerSnapshot??eventSnapshot)},this.onKeyDown=e=>{const format=getNumberFormat(this.effectiveLocale),digit=/^[0-9]$/.test(e.key)?Number(e.key):Array.from({length:10},(_unused,value)=>format.format(value)).indexOf(e.key);if(e.altKey||e.ctrlKey||e.metaKey||digit<0)return;this.digitBuffer+=digit;const target=Number(this.digitBuffer);this.cancelDigitTimer(),this.ownerDocument.defaultView?this.digitBufferReset.push(void 0):this.digitBuffer="";const count=this.effectivePageCount();target>=1&&target<=count&&(this.boundViewer?this.onPageActivate(target):this.page=target)},this.renderPageItem=pageNumber=>{const number=pageNumber,numberFormat=getNumberFormat(this.effectiveLocale),tones=this.pageTones.get(number)??[],count=tones.length,thumbState=this.thumbnailStates.get(number),name=count===0?this.localize("pageRailPage",void 0,{page:numberFormat.format(number)}):this.localize("pageRailPageHighlighted",void 0,{page:numberFormat.format(number),count:numberFormat.format(count),pluralCount:count}),shownTones=tones.slice(0,3),overflow=tones.length-shownTones.length,isCurrent=this.safePage===number;return html`
1
+ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{keyed}from"lit/directives/keyed.js";import{ref}from"lit/directives/ref.js";import{DebounceController}from"../../../internal/debounce-controller.js";import{OwnerAnimationFrameWaiter}from"../../../internal/owner-animation-frame.js";import{tag}from"../../../internal/prefix.js";import{LyraElement}from"../../../internal/lyra-element.js";import{finiteCount,finiteInteger,finiteRange}from"../../../internal/numbers.js";import{resolveCssLength}from"../../../internal/css-length.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./page-rail.styles.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{LYRA_DEFAULT_pageRailLabel,LYRA_DEFAULT_pageRailPage,LYRA_DEFAULT_pageRailPageHighlighted}from"../../../internal/default-strings/viewers.generated.js";import{PageViewerSnapshotController}from"./page-viewer-snapshot.js";const DIGIT_BUFFER_MS=500,MAX_PAGE_COUNT=1e5,DEFAULT_ALLOCATION_WIDTH=320,DEFAULT_THUMB_WIDTH=96,THUMB_WIDTH_CONVERTER={fromAttribute:value=>{if(value===null)return value;const number=Number(value);return Number.isNaN(number)?value:number}};class LyraPageRail extends LyraElement{constructor(){super(...arguments),this.viewer=null,this.for="",this.pageCount=0,this.page=1,this._highlights=snapshotLyraHighlights([]),this.pageTones=new Map,this.thumbWidth=96,this.label="",this.resolvedPageCount=0,this.thumbnailStates=new Map,this.allocationWidth=DEFAULT_ALLOCATION_WIDTH,this.thumbnailRowRefs=new Map,this.thumbnailRefs=new Map,this.thumbnailTargets=new Map,this.thumbnailHandles=new Map,this.boundViewer=null,this.digitBuffer="",this.digitBufferReset=new DebounceController(DIGIT_BUFFER_MS,()=>{this.digitBuffer=""},()=>this.ownerDocument.defaultView),this.thumbnailGeneration=0,this.ownerFrames=new OwnerAnimationFrameWaiter(this),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration=0,this.pageSourceCount=-1,this.pageSource=this.createPageSource(0),this.onViewerLoad=e=>{this.resolvedPageCount=finiteCount(e.detail?.pageCount??0,0,MAX_PAGE_COUNT),this.invalidateThumbnails()},this.onViewerPageChange=e=>{this.page=e.detail.page},this.onViewerStateChange=event=>{const viewer=this.boundViewer;if(!viewer)return;const eventSnapshot=event.detail?.snapshot;this.applyViewerSnapshot(viewer.pageViewerSnapshot??eventSnapshot)},this.onKeyDown=e=>{const format=getNumberFormat(this.effectiveLocale),digit=/^[0-9]$/.test(e.key)?Number(e.key):Array.from({length:10},(_unused,value)=>format.format(value)).indexOf(e.key);if(e.altKey||e.ctrlKey||e.metaKey||digit<0)return;this.digitBuffer+=digit;const target=Number(this.digitBuffer);this.cancelDigitTimer(),this.ownerDocument.defaultView?this.digitBufferReset.push(void 0):this.digitBuffer="";const count=this.effectivePageCount();target>=1&&target<=count&&(this.boundViewer?this.onPageActivate(target):this.page=target)},this.renderPageItem=pageNumber=>{const number=pageNumber,numberFormat=getNumberFormat(this.effectiveLocale),tones=this.pageTones.get(number)??[],count=tones.length,thumbState=this.thumbnailStates.get(number),name=count===0?this.localize("pageRailPage",void 0,{page:numberFormat.format(number)}):this.localize("pageRailPageHighlighted",void 0,{page:numberFormat.format(number),count:numberFormat.format(count),pluralCount:count}),shownTones=tones.slice(0,3),overflow=tones.length-shownTones.length,isCurrent=this.safePage===number;return html`
2
2
  <button
3
3
  part=${isCurrent?"page page-current":"page"}
4
4
  type="button"
@@ -6,7 +6,7 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
6
6
  aria-current=${isCurrent?"true":"false"}
7
7
  @click=${()=>this.onPageActivate(number)}
8
8
  >
9
- <span part="thumbnail">
9
+ <span part="thumbnail" ${ref(this.thumbnailRowRef(number))}>
10
10
  ${this.boundViewer?thumbState==="unavailable"?html`<lr-file-icon decorative></lr-file-icon>`:html`${keyed(this.thumbnailGeneration,this.boundViewer.renderPageThumbnailToContainer?html`<div part="thumbnail-target" aria-hidden="true" ${ref(this.thumbnailRef(number))}></div>`:html`<canvas part="thumbnail-target" aria-hidden="true" ${ref(this.thumbnailRef(number))}></canvas>`)}${thumbState!=="ready"?html`<lr-skeleton shape="rect" .announce=${!1} aria-hidden="true"></lr-skeleton>`:nothing}`:html`<lr-file-icon decorative></lr-file-icon>`}
11
11
  </span>
12
12
  <span part="page-number" aria-hidden="true">${numberFormat.format(number)}</span>
@@ -15,7 +15,7 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
15
15
  ${overflow>0?html`<span part="heat-dot heat-dot-overflow" data-overflow="true">+${numberFormat.format(overflow)}</span>`:nothing}
16
16
  </span>`:nothing}
17
17
  </button>
18
- `}}static{this.defaultStrings={...super.defaultStrings,pageRailLabel:LYRA_DEFAULT_pageRailLabel,pageRailPage:LYRA_DEFAULT_pageRailPage,pageRailPageHighlighted:LYRA_DEFAULT_pageRailPageHighlighted}}static{this.styles=[LyraElement.styles,styles]}get highlights(){return this._highlights}set highlights(value){if(value===this._highlightsSource||value===this._highlights)return;const previous=this._highlights;this._highlightsSource=value,this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}willUpdate(changed){if(super.willUpdate(changed),changed.has("thumbWidth")&&changed.get("thumbWidth")!==void 0&&this.invalidateThumbnails(),changed.has("highlights")){this.pageTones=new Map;for(const{anchor,tone="accent"}of this.highlights){if(!("page"in anchor)||anchor.page===void 0)continue;const tones=this.pageTones.get(anchor.page)??[];tones.push(tone),this.pageTones.set(anchor.page,tones)}}if(changed.has("pageCount")||changed.has("resolvedPageCount")){const list=this.shadowRoot?.querySelector(tag("virtual-list")),focusedRowIndex=activeElementIn(list?.shadowRoot)?.closest("[data-row-index]")?.getAttribute("data-row-index"),focusedIndex=focusedRowIndex==null?-1:finiteInteger(Number(focusedRowIndex),-1,-1),nextCount=this.effectivePageCount();nextCount<=0?this.focusRepairPending&&(this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++):(focusedIndex>=nextCount||this.focusRepairPending)&&(this.pendingFocusPage=nextCount,this.focusRepairPending=!0,this.focusRepairGeneration++)}(!this.hasUpdated||changed.has("viewer")||changed.has("for"))&&(this.resolveViewer(),this.observeForTarget())}connectedCallback(){super.connectedCallback();const ResizeObserverCtor=this.ownerDocument.defaultView?.ResizeObserver;ResizeObserverCtor&&(this.resizeObserver=new ResizeObserverCtor(entries=>{const width=finiteRange(entries.at(-1)?.contentRect.width??DEFAULT_ALLOCATION_WIDTH,DEFAULT_ALLOCATION_WIDTH,0);width!==this.allocationWidth&&(this.allocationWidth=width,this.invalidateThumbnails())}),this.resizeObserver.observe(this)),this.observeForTarget(),this.hasUpdated&&this.resolveViewer()}disconnectedCallback(){this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.targetObserver?.disconnect(),this.targetObserver=void 0,this.unbindViewer(),this.thumbnailGeneration++,this.disposeThumbnailHandles(),this.ownerFrames.cancel(),this.resetDigitBuffer(),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.targetObserver?.disconnect(),this.targetObserver=void 0,this.ownerFrames.cancel(),this.resetDigitBuffer(),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++,this.unbindViewer(),this.resolvedPageCount=0,this.invalidateThumbnails()}resolveViewer(){const next=this.viewer??this.lookupFor();next!==this.boundViewer&&(this.unbindViewer(),this.resolvedPageCount=0,this.invalidateThumbnails(),this.boundViewer=next,next&&(next.pageViewerSnapshot?(next.addEventListener("lr-page-viewer-state-change",this.onViewerStateChange),this.applyViewerSnapshot(next.pageViewerSnapshot)):(this.page=next.page||this.page,next.addEventListener("lr-load",this.onViewerLoad),next.addEventListener("lr-page-change",this.onViewerPageChange))))}observeForTarget(){this.targetObserver?.disconnect(),this.targetObserver=void 0;const MutationObserverCtor=this.ownerDocument.defaultView?.MutationObserver;!this.isConnected||!this.for||!MutationObserverCtor||(this.targetObserver=new MutationObserverCtor(()=>this.resolveViewer()),this.targetObserver.observe(this.getRootNode(),{attributes:!0,attributeFilter:["id"],childList:!0,subtree:!0}))}unbindViewer(){this.boundViewer?.removeEventListener("lr-load",this.onViewerLoad),this.boundViewer?.removeEventListener("lr-page-change",this.onViewerPageChange),this.boundViewer?.removeEventListener("lr-page-viewer-state-change",this.onViewerStateChange),this.boundViewer=null,this.viewerSnapshotIdentity=void 0,this.viewerSnapshotStatus=void 0}applyViewerSnapshot(snapshot){if(!snapshot)return;const nextCount=snapshot.status==="ready"?finiteCount(snapshot.pageCount,0,MAX_PAGE_COUNT):0,nextPage=finiteInteger(snapshot.page,1,1,Math.max(1,nextCount)),previousCount=this.resolvedPageCount,documentChanged=this.viewerSnapshotIdentity!==snapshot.identity,statusChanged=this.viewerSnapshotStatus!==snapshot.status;this.viewerSnapshotIdentity=snapshot.identity,this.viewerSnapshotStatus=snapshot.status,this.resolvedPageCount=nextCount,this.page=nextPage,(documentChanged||statusChanged||previousCount!==nextCount)&&this.invalidateThumbnails()}lookupFor(){return this.for?this.getRootNode().getElementById?.(this.for)??null:null}get safePageCount(){return finiteCount(this.pageCount,0,MAX_PAGE_COUNT)}get safePage(){const count=this.effectivePageCount();return finiteInteger(this.page,1,1,Math.max(1,count))}get safeThumbWidth(){const allocation=finiteRange(this.allocationWidth,DEFAULT_ALLOCATION_WIDTH,0),thumbWidth=resolveCssLength(this.thumbWidth,{host:this,percentBase:allocation});return Math.min(finiteRange(thumbWidth??Number.NaN,DEFAULT_THUMB_WIDTH,0),allocation)}effectivePageCount(){return this.boundViewer?this.resolvedPageCount:this.safePageCount}createPageSource(count){return Object.freeze({count,itemAt:index=>index+1,keyAt:index=>index+1,indexOfKey:key=>typeof key=="number"?key-1:-1})}indexedPages(count){return count!==this.pageSourceCount&&(this.pageSourceCount=count,this.pageSource=this.createPageSource(count)),this.pageSource}thumbnailRef(pageNumber){let cb=this.thumbnailRefs.get(pageNumber);return cb||(cb=el=>{if(!el){this.thumbnailTargets.delete(pageNumber),this.disposeThumbnailHandle(pageNumber);return}this.thumbnailTargets.set(pageNumber,el),this.loadThumbnail(pageNumber,el)},this.thumbnailRefs.set(pageNumber,cb)),cb}updated(changed){super.updated(changed),this.shadowRoot?.querySelector(tag("virtual-list"))?.requestUpdate();const pendingFocusPage=this.pendingFocusPage;this.pendingFocusPage=null,pendingFocusPage!==null&&this.focusVirtualPage(pendingFocusPage,this.focusRepairGeneration)}renderedPageButton(list,index){return list.renderedRows.find(candidate=>finiteInteger(Number(candidate.dataset.rowIndex),-1,-1)===index)?.querySelector('[part~="page"]')??null}isCurrentFocusRepair(list,generation){return this.isConnected&&generation===this.focusRepairGeneration&&this.shadowRoot?.querySelector(tag("virtual-list"))===list}focusRepairIndex(pageNumber){const count=this.effectivePageCount();return count<=0?null:finiteInteger(pageNumber,count,1,count)-1}finishFocusRepair(generation){generation===this.focusRepairGeneration&&(this.focusRepairPending=!1)}async focusVirtualPage(pageNumber,generation){const list=this.shadowRoot?.querySelector(tag("virtual-list"));if(!list){this.finishFocusRepair(generation);return}if(await list.updateComplete,!this.isCurrentFocusRepair(list,generation))return;let index=this.focusRepairIndex(pageNumber);if(index===null){this.finishFocusRepair(generation);return}let button=this.renderedPageButton(list,index);if(button){button.focus(),this.finishFocusRepair(generation);return}list.scrollToIndex(index,{align:"auto",behavior:"auto"});for(let attempt=0;attempt<4;attempt++){if(!await this.ownerFrames.wait()||(await list.updateComplete,!this.isCurrentFocusRepair(list,generation)))return;if(index=this.focusRepairIndex(pageNumber),index===null){this.finishFocusRepair(generation);return}if(button=this.renderedPageButton(list,index),button){button.focus(),this.finishFocusRepair(generation);return}}this.finishFocusRepair(generation)}invalidateThumbnails(){this.thumbnailGeneration++,this.disposeThumbnailHandles(),this.thumbnailStates=new Map,this.pageSourceCount=-1}disposeThumbnailHandle(pageNumber){this.thumbnailHandles.get(pageNumber)?.dispose(),this.thumbnailHandles.delete(pageNumber)}disposeThumbnailHandles(){for(const handle of this.thumbnailHandles.values())handle.dispose();this.thumbnailHandles.clear()}async loadThumbnail(pageNumber,target){const viewer=this.boundViewer;if(!viewer)return;const generation=this.thumbnailGeneration,width=this.safeThumbWidth;this.disposeThumbnailHandle(pageNumber);const pending=new Map(this.thumbnailStates);pending.set(pageNumber,"pending"),this.thumbnailStates=pending;let ok,handle;try{if(viewer.renderPageThumbnailToContainer&&target.localName!=="canvas"){const result=await viewer.renderPageThumbnailToContainer(pageNumber,target,{width});ok=result!==!1,handle=result===!1?void 0:result}else viewer.renderPageThumbnail&&target.localName==="canvas"?ok=await viewer.renderPageThumbnail(pageNumber,target,{width}):ok=!1}catch{ok=!1}if(generation!==this.thumbnailGeneration||viewer!==this.boundViewer||width!==this.safeThumbWidth||this.thumbnailTargets.get(pageNumber)!==target){handle?.dispose();return}handle&&this.thumbnailHandles.set(pageNumber,handle);const settled=new Map(this.thumbnailStates);settled.set(pageNumber,ok?"ready":"unavailable"),this.thumbnailStates=settled}onPageActivate(pageNumber){this.boundViewer&&(this.boundViewer.page=pageNumber),this.emit("lr-page-select",{page:pageNumber})}cancelDigitTimer(){this.digitBufferReset.cancel()}resetDigitBuffer(){this.cancelDigitTimer(),this.digitBuffer=""}stopVirtualListEvent(event){event.stopPropagation()}render(){const count=this.effectivePageCount();return html`
18
+ `}}static{this.defaultStrings={...super.defaultStrings,pageRailLabel:LYRA_DEFAULT_pageRailLabel,pageRailPage:LYRA_DEFAULT_pageRailPage,pageRailPageHighlighted:LYRA_DEFAULT_pageRailPageHighlighted}}static{this.styles=[LyraElement.styles,styles]}get highlights(){return this._highlights}set highlights(value){if(value===this._highlightsSource||value===this._highlights)return;const previous=this._highlights;this._highlightsSource=value,this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}willUpdate(changed){if(super.willUpdate(changed),changed.has("thumbWidth")&&changed.get("thumbWidth")!==void 0&&this.invalidateThumbnails(),changed.has("highlights")){this.pageTones=new Map;for(const{anchor,tone="accent"}of this.highlights){if(!("page"in anchor)||anchor.page===void 0)continue;const tones=this.pageTones.get(anchor.page)??[];tones.push(tone),this.pageTones.set(anchor.page,tones)}}if(changed.has("pageCount")||changed.has("resolvedPageCount")){const list=this.shadowRoot?.querySelector(tag("virtual-list")),focusedRowIndex=(list?shadowFocusTarget(list):null)?.closest("[data-row-index]")?.getAttribute("data-row-index"),focusedIndex=focusedRowIndex==null?-1:finiteInteger(Number(focusedRowIndex),-1,-1),nextCount=this.effectivePageCount();nextCount<=0?this.focusRepairPending&&(this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++):(focusedIndex>=nextCount||this.focusRepairPending)&&(this.pendingFocusPage=nextCount,this.focusRepairPending=!0,this.focusRepairGeneration++)}(!this.hasUpdated||changed.has("viewer")||changed.has("for"))&&(this.resolveViewer(),this.observeForTarget())}connectedCallback(){super.connectedCallback();const ResizeObserverCtor=this.ownerDocument.defaultView?.ResizeObserver;ResizeObserverCtor&&(this.resizeObserver=new ResizeObserverCtor(entries=>{const width=finiteRange(entries.at(-1)?.contentRect.width??DEFAULT_ALLOCATION_WIDTH,DEFAULT_ALLOCATION_WIDTH,0);width!==this.allocationWidth&&(this.allocationWidth=width,this.invalidateThumbnails())}),this.resizeObserver.observe(this)),this.observeForTarget(),this.hasUpdated&&this.resolveViewer()}disconnectedCallback(){this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.targetObserver?.disconnect(),this.targetObserver=void 0,this.unbindViewer(),this.thumbnailGeneration++,this.disposeThumbnailHandles(),this.ownerFrames.cancel(),this.resetDigitBuffer(),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++,super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.targetObserver?.disconnect(),this.targetObserver=void 0,this.ownerFrames.cancel(),this.resetDigitBuffer(),this.pendingFocusPage=null,this.focusRepairPending=!1,this.focusRepairGeneration++,this.unbindViewer(),this.resolvedPageCount=0,this.invalidateThumbnails()}resolveViewer(){const next=this.viewer??this.lookupFor();next!==this.boundViewer&&(this.unbindViewer(),this.resolvedPageCount=0,this.invalidateThumbnails(),this.boundViewer=next,next&&(next.pageViewerSnapshot?(next.addEventListener("lr-page-viewer-state-change",this.onViewerStateChange),this.applyViewerSnapshot(next.pageViewerSnapshot)):(this.page=next.page||this.page,next.addEventListener("lr-load",this.onViewerLoad),next.addEventListener("lr-page-change",this.onViewerPageChange))))}observeForTarget(){this.targetObserver?.disconnect(),this.targetObserver=void 0;const MutationObserverCtor=this.ownerDocument.defaultView?.MutationObserver;!this.isConnected||!this.for||!MutationObserverCtor||(this.targetObserver=new MutationObserverCtor(()=>this.resolveViewer()),this.targetObserver.observe(this.getRootNode(),{attributes:!0,attributeFilter:["id"],childList:!0,subtree:!0}))}unbindViewer(){this.boundViewer?.removeEventListener("lr-load",this.onViewerLoad),this.boundViewer?.removeEventListener("lr-page-change",this.onViewerPageChange),this.boundViewer?.removeEventListener("lr-page-viewer-state-change",this.onViewerStateChange),this.boundViewer=null,this.viewerSnapshotIdentity=void 0,this.viewerSnapshotStatus=void 0}applyViewerSnapshot(snapshot){if(!snapshot)return;const nextCount=snapshot.status==="ready"?finiteCount(snapshot.pageCount,0,MAX_PAGE_COUNT):0,nextPage=finiteInteger(snapshot.page,1,1,Math.max(1,nextCount)),previousCount=this.resolvedPageCount,documentChanged=this.viewerSnapshotIdentity!==snapshot.identity,statusChanged=this.viewerSnapshotStatus!==snapshot.status;this.viewerSnapshotIdentity=snapshot.identity,this.viewerSnapshotStatus=snapshot.status,this.resolvedPageCount=nextCount,this.page=nextPage,(documentChanged||statusChanged||previousCount!==nextCount)&&this.invalidateThumbnails()}lookupFor(){return this.for?this.getRootNode().getElementById?.(this.for)??null:null}get safePageCount(){return finiteCount(this.pageCount,0,MAX_PAGE_COUNT)}get safePage(){const count=this.effectivePageCount();return finiteInteger(this.page,1,1,Math.max(1,count))}get safeThumbWidth(){const allocation=finiteRange(this.allocationWidth,DEFAULT_ALLOCATION_WIDTH,0),thumbWidth=resolveCssLength(this.thumbWidth,{host:this,percentBase:allocation});return Math.min(finiteRange(thumbWidth??Number.NaN,DEFAULT_THUMB_WIDTH,0),allocation)}effectivePageCount(){return this.boundViewer?this.resolvedPageCount:this.safePageCount}createPageSource(count){return Object.freeze({count,itemAt:index=>index+1,keyAt:index=>index+1,indexOfKey:key=>typeof key=="number"?key-1:-1})}indexedPages(count){return count!==this.pageSourceCount&&(this.pageSourceCount=count,this.pageSource=this.createPageSource(count)),this.pageSource}thumbnailRowRef(pageNumber){let callback=this.thumbnailRowRefs.get(pageNumber);return callback||(callback=element=>{if(element){this.thumbnailRowRefs.set(pageNumber,callback);return}this.thumbnailRowRefs.get(pageNumber)===callback&&(this.thumbnailRowRefs.delete(pageNumber),this.thumbnailRefs.delete(pageNumber),this.thumbnailStates.delete(pageNumber))},this.thumbnailRowRefs.set(pageNumber,callback)),callback}thumbnailRef(pageNumber){let cb=this.thumbnailRefs.get(pageNumber);if(!cb){let mounted;cb=el=>{if(!el){this.thumbnailTargets.get(pageNumber)===mounted&&(this.thumbnailTargets.delete(pageNumber),this.disposeThumbnailHandle(pageNumber)),mounted=void 0;return}mounted=el,this.thumbnailRefs.set(pageNumber,cb),this.thumbnailTargets.set(pageNumber,mounted),this.loadThumbnail(pageNumber,mounted)},this.thumbnailRefs.set(pageNumber,cb)}return cb}updated(changed){super.updated(changed),this.shadowRoot?.querySelector(tag("virtual-list"))?.requestUpdate();const pendingFocusPage=this.pendingFocusPage;this.pendingFocusPage=null,pendingFocusPage!==null&&this.focusVirtualPage(pendingFocusPage,this.focusRepairGeneration)}renderedPageButton(list,index){return list.renderedRows.find(candidate=>finiteInteger(Number(candidate.dataset.rowIndex),-1,-1)===index)?.querySelector('[part~="page"]')??null}isCurrentFocusRepair(list,generation){return this.isConnected&&generation===this.focusRepairGeneration&&this.shadowRoot?.querySelector(tag("virtual-list"))===list}focusRepairIndex(pageNumber){const count=this.effectivePageCount();return count<=0?null:finiteInteger(pageNumber,count,1,count)-1}finishFocusRepair(generation){generation===this.focusRepairGeneration&&(this.focusRepairPending=!1)}async focusVirtualPage(pageNumber,generation){const list=this.shadowRoot?.querySelector(tag("virtual-list"));if(!list){this.finishFocusRepair(generation);return}if(await list.updateComplete,!this.isCurrentFocusRepair(list,generation))return;let index=this.focusRepairIndex(pageNumber);if(index===null){this.finishFocusRepair(generation);return}let button=this.renderedPageButton(list,index);if(button){button.focus(),this.finishFocusRepair(generation);return}list.scrollToIndex(index,{align:"auto",behavior:"auto"});for(let attempt=0;attempt<4;attempt++){if(!await this.ownerFrames.wait()||(await list.updateComplete,!this.isCurrentFocusRepair(list,generation)))return;if(index=this.focusRepairIndex(pageNumber),index===null){this.finishFocusRepair(generation);return}if(button=this.renderedPageButton(list,index),button){button.focus(),this.finishFocusRepair(generation);return}}this.finishFocusRepair(generation)}invalidateThumbnails(){this.thumbnailGeneration++,this.disposeThumbnailHandles(),this.thumbnailStates=new Map,this.pageSourceCount=-1}disposeThumbnailHandle(pageNumber){this.thumbnailHandles.get(pageNumber)?.dispose(),this.thumbnailHandles.delete(pageNumber)}disposeThumbnailHandles(){for(const handle of this.thumbnailHandles.values())handle.dispose();this.thumbnailHandles.clear()}async loadThumbnail(pageNumber,target){const viewer=this.boundViewer;if(!viewer)return;const generation=this.thumbnailGeneration,width=this.safeThumbWidth;this.disposeThumbnailHandle(pageNumber),this.thumbnailStates.set(pageNumber,"pending"),this.requestUpdate();let ok,handle;try{if(viewer.renderPageThumbnailToContainer&&target.localName!=="canvas"){const result=await viewer.renderPageThumbnailToContainer(pageNumber,target,{width});ok=result!==!1,handle=result===!1?void 0:result}else viewer.renderPageThumbnail&&target.localName==="canvas"?ok=await viewer.renderPageThumbnail(pageNumber,target,{width}):ok=!1}catch{ok=!1}if(generation!==this.thumbnailGeneration||viewer!==this.boundViewer||width!==this.safeThumbWidth||this.thumbnailTargets.get(pageNumber)!==target){handle?.dispose();return}handle&&this.thumbnailHandles.set(pageNumber,handle),this.thumbnailStates.set(pageNumber,ok?"ready":"unavailable"),this.requestUpdate()}onPageActivate(pageNumber){this.boundViewer&&(this.boundViewer.page=pageNumber),this.emit("lr-page-select",{page:pageNumber})}cancelDigitTimer(){this.digitBufferReset.cancel()}resetDigitBuffer(){this.cancelDigitTimer(),this.digitBuffer=""}stopVirtualListEvent(event){event.stopPropagation()}render(){const count=this.effectivePageCount();return html`
19
19
  <div
20
20
  part="base"
21
21
  role=${viewerSemanticRole(this,"navigation")??nothing}
@@ -1 +1 @@
1
- const REMOVED_WITH_CONTENT=new Set(["a","button","details","dialog","fieldset","form","label","select","summary","textarea"]),REMOVED_ENTIRELY=new Set(["animate","animatemotion","animatetransform","applet","audio","base","canvas","embed","fencedframe","frame","iframe","input","link","meta","noscript","object","option","optgroup","picture","portal","script","set","discard","source","style","track","video"]),NETWORK_ATTRIBUTES=new Set(["action","background","cite","data","formaction","href","manifest","ping","poster","profile","src","srcdoc","srcset","usemap","xlink:href"]),INTERACTION_ATTRIBUTES=new Set(["autofocus","contenteditable","download","draggable","form","formaction","popover","tabindex","target"]),SVG_FRAGMENT_ATTRIBUTES=new Set(["clip-path","color-profile","cursor","fill","filter","marker","marker-end","marker-mid","marker-start","mask","stroke"]),LOCAL_FRAGMENT=/^#[A-Za-z_][\w:.-]*$/,LOCAL_FRAGMENT_URL=/^\s*url\(\s*(['"]?)#([A-Za-z_][\w:.-]*)\1\s*\)\s*$/i,INLINE_RASTER_DATA=/^data:image\/(?:gif|jpeg|png|webp);base64,[a-z\d+/=\s]+$/i;function replaceWithContents(element){const parent=element.parentNode;if(parent){for(;element.firstChild;)parent.insertBefore(element.firstChild,element);element.remove()}}function elementsIncludingTemplateContents(root){const elements=[...root.querySelectorAll("*")];for(let index=0;index<elements.length;index++){const element=elements[index];if(element.localName==="template"&&"content"in element)for(const child of element.content.querySelectorAll("*"))elements.push(child)}return elements}function sanitizePassiveMarkupFragment(sanitizer,raw,ownerDocument,profile="passive-document"){const purified=String(sanitizer.sanitize(raw,profile==="passive-svg"?{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["use"],ADD_ATTR:["href","xlink:href"]}:void 0)),template=ownerDocument.createElement("template");template.innerHTML=purified;for(const element of elementsIncludingTemplateContents(template.content)){const localName=element.localName.toLowerCase();if(REMOVED_ENTIRELY.has(localName)){element.remove();continue}const retainedTransclusionAnchor=profile==="transclusion"&&localName==="a";if(REMOVED_WITH_CONTENT.has(localName)&&!retainedTransclusionAnchor){replaceWithContents(element);continue}if(localName.includes("-")){replaceWithContents(element);continue}for(const attributeName of element.getAttributeNames()){const name=attributeName.toLowerCase(),value=element.getAttribute(attributeName)??"";if(name==="style"||name==="part"||name==="exportparts"||name.startsWith("on")||INTERACTION_ATTRIBUTES.has(name)){element.removeAttribute(attributeName);continue}if(NETWORK_ATTRIBUTES.has(name)){const keepSvgFragment=isSvgElement(element)&&(name==="href"||name==="xlink:href")&&LOCAL_FRAGMENT.test(value.trim()),keepInlineSvgRaster=profile==="passive-svg"&&isSvgElement(element)&&element.localName.toLowerCase()==="image"&&(name==="href"||name==="xlink:href"||name==="src")&&INLINE_RASTER_DATA.test(value.trim()),keepInlineDocumentRaster=profile==="passive-document"&&element.localName.toLowerCase()==="img"&&name==="src"&&INLINE_RASTER_DATA.test(value.trim()),keepTransclusionFragment=profile==="transclusion"&&name==="href"&&LOCAL_FRAGMENT.test(value.trim());!keepSvgFragment&&!keepInlineSvgRaster&&!keepInlineDocumentRaster&&!keepTransclusionFragment&&element.removeAttribute(attributeName);continue}SVG_FRAGMENT_ATTRIBUTES.has(name)&&/url\s*\(|\\/i.test(value)&&(!isSvgElement(element)||!LOCAL_FRAGMENT_URL.test(value))&&element.removeAttribute(attributeName)}profile==="passive-svg"&&!isSvgElement(element)&&replaceWithContents(element)}return template.content}function sanitizePassiveMarkup(sanitizer,raw,ownerDocument,profile="passive-document"){const template=ownerDocument.createElement("template");return template.content.append(sanitizePassiveMarkupFragment(sanitizer,raw,ownerDocument,profile)),template.innerHTML}import{isSvgElement}from"../../internal/dom-guards.js";export{sanitizePassiveMarkup,sanitizePassiveMarkupFragment};
1
+ const REMOVED_WITH_CONTENT=new Set(["a","button","details","dialog","fieldset","form","label","select","summary","textarea"]),REMOVED_ENTIRELY=new Set(["animate","animatemotion","animatetransform","applet","audio","base","canvas","embed","fencedframe","frame","iframe","input","link","meta","noscript","object","option","optgroup","picture","portal","script","set","discard","source","style","track","video"]),NETWORK_ATTRIBUTES=new Set(["action","background","cite","data","formaction","href","manifest","ping","poster","profile","src","srcdoc","srcset","usemap","xlink:href"]),INTERACTION_ATTRIBUTES=new Set(["autofocus","contenteditable","download","draggable","form","formaction","popover","tabindex","target"]),SVG_FRAGMENT_ATTRIBUTES=new Set(["clip-path","color-profile","cursor","fill","filter","marker","marker-end","marker-mid","marker-start","mask","stroke"]),LOCAL_FRAGMENT=/^#[A-Za-z_][\w:.-]*$/,LOCAL_FRAGMENT_URL=/^\s*url\(\s*(['"]?)#([A-Za-z_][\w:.-]*)\1\s*\)\s*$/i,INLINE_RASTER_DATA=/^data:image\/(?:gif|jpeg|png|webp);base64,[a-z\d+/=\s]+$/i,MAX_USE_CLONES=1e5;function useClones(root,scope,memo){let uses=[...scope.querySelectorAll("use")];scope===root&&(uses=uses.filter(use=>use.closest("defs, symbol")===null)),"localName"in scope&&scope.localName==="use"&&uses.push(scope);let total=0;for(const use of uses){const target=root.getElementById((use.getAttribute("href")??use.getAttribute("xlink:href")??"").trim().slice(1));if(!target)continue;let clones=memo.get(target);if(clones===void 0&&(memo.set(target,1/0),clones=1+target.querySelectorAll("*").length+useClones(root,target,memo),memo.set(target,clones)),total+=clones,total>MAX_USE_CLONES)return 1/0}return total}function replaceWithContents(element){const parent=element.parentNode;if(parent){for(;element.firstChild;)parent.insertBefore(element.firstChild,element);element.remove()}}function elementsIncludingTemplateContents(root){const elements=[...root.querySelectorAll("*")];for(let index=0;index<elements.length;index++){const element=elements[index];if(element.localName==="template"&&"content"in element)for(const child of element.content.querySelectorAll("*"))elements.push(child)}return elements}function sanitizePassiveMarkupFragment(sanitizer,raw,ownerDocument,profile="passive-document"){const purified=String(sanitizer.sanitize(raw,profile==="passive-svg"?{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["use"],ADD_ATTR:["href","xlink:href"]}:void 0)),template=ownerDocument.createElement("template");template.innerHTML=purified;for(const element of elementsIncludingTemplateContents(template.content)){const localName=element.localName.toLowerCase();if(REMOVED_ENTIRELY.has(localName)){element.remove();continue}const retainedTransclusionAnchor=profile==="transclusion"&&localName==="a";if(REMOVED_WITH_CONTENT.has(localName)&&!retainedTransclusionAnchor){replaceWithContents(element);continue}if(localName.includes("-")){replaceWithContents(element);continue}for(const attributeName of element.getAttributeNames()){const name=attributeName.toLowerCase(),value=element.getAttribute(attributeName)??"";if(name==="style"||name==="part"||name==="exportparts"||name.startsWith("on")||INTERACTION_ATTRIBUTES.has(name)){element.removeAttribute(attributeName);continue}if(NETWORK_ATTRIBUTES.has(name)){const keepSvgFragment=isSvgElement(element)&&(name==="href"||name==="xlink:href")&&LOCAL_FRAGMENT.test(value.trim()),keepInlineSvgRaster=profile==="passive-svg"&&isSvgElement(element)&&element.localName.toLowerCase()==="image"&&(name==="href"||name==="xlink:href"||name==="src")&&INLINE_RASTER_DATA.test(value.trim()),keepInlineDocumentRaster=profile==="passive-document"&&element.localName.toLowerCase()==="img"&&name==="src"&&INLINE_RASTER_DATA.test(value.trim()),keepTransclusionFragment=profile==="transclusion"&&name==="href"&&LOCAL_FRAGMENT.test(value.trim());!keepSvgFragment&&!keepInlineSvgRaster&&!keepInlineDocumentRaster&&!keepTransclusionFragment&&element.removeAttribute(attributeName);continue}SVG_FRAGMENT_ATTRIBUTES.has(name)&&/url\s*\(|\\/i.test(value)&&(!isSvgElement(element)||!LOCAL_FRAGMENT_URL.test(value))&&element.removeAttribute(attributeName)}profile==="passive-svg"&&!isSvgElement(element)&&replaceWithContents(element)}if(profile==="passive-svg"&&useClones(template.content,template.content,new Map)>MAX_USE_CLONES)throw new LyraResourceLimitError("The SVG expands too many <use> references.");return template.content}function sanitizePassiveMarkup(sanitizer,raw,ownerDocument,profile="passive-document"){const template=ownerDocument.createElement("template");return template.content.append(sanitizePassiveMarkupFragment(sanitizer,raw,ownerDocument,profile)),template.innerHTML}import{isSvgElement}from"../../internal/dom-guards.js";import{LyraResourceLimitError}from"../../internal/resource-loader.js";export{sanitizePassiveMarkup,sanitizePassiveMarkupFragment};
@@ -1 +1 @@
1
- import{unwrapOptionalPeerDefault}from"../../../internal/optional-peer-capabilities.js";import{devWarnOnce}from"../../../internal/dev-mode-attribute-warning.js";const PDF_JS_WARNING_KEY="lyra-pdf-viewer-pdfjs-unavailable",PDF_JS_WARNING="<lr-pdf-viewer> could not load its optional pdfjs-dist peer.";function isPdfJsApi(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&"getDocument"in value&&typeof value.getDocument=="function"&&"GlobalWorkerOptions"in value&&(typeof value.GlobalWorkerOptions=="object"||typeof value.GlobalWorkerOptions=="function")&&value.GlobalWorkerOptions!==null}let pdfjs;const PDF_WORKER_MODULE_SPECIFIER="pdfjs-dist/build/pdf.worker.min.mjs",ALLOWED_WORKER_PROTOCOLS=["http:","https:","blob:","file:"];function defaultWorkerModuleResolver(specifier){const resolver=import.meta.resolve;if(!resolver)return null;try{return resolver(specifier)}catch{return null}}function safeWorkerModuleUrl(value){if(!value)return null;try{const url=new URL(value);return ALLOWED_WORKER_PROTOCOLS.includes(url.protocol)?url.href:null}catch{return null}}function safeAuthoredWorkerUrl(value){if(!value)return null;try{const url=new URL(value,typeof document>"u"?void 0:document.baseURI);return ALLOWED_WORKER_PROTOCOLS.includes(url.protocol)?url.href:null}catch{return null}}function configurePdfJsWorker(pdfjsLib,authoredWorkerSrc,resolveWorkerModule){if(pdfjsLib.GlobalWorkerOptions.workerSrc)return;const workerSrc=safeAuthoredWorkerUrl(authoredWorkerSrc)??safeWorkerModuleUrl(resolveWorkerModule(PDF_WORKER_MODULE_SPECIFIER));workerSrc&&(pdfjsLib.GlobalWorkerOptions.workerSrc=workerSrc)}async function loadPdfJsDeps(importPdfjs=()=>import("pdfjs-dist"),resolveWorkerModule=defaultWorkerModuleResolver,workerSrc){try{const module=await importPdfjs(),direct=isPdfJsApi(module)?module:void 0,defaultExport=unwrapOptionalPeerDefault(module),pdfjsLib=direct??(isPdfJsApi(defaultExport)?defaultExport:null);return pdfjsLib?(configurePdfJsWorker(pdfjsLib,workerSrc,resolveWorkerModule),pdfjsLib):null}catch{return devWarnOnce(PDF_JS_WARNING_KEY,PDF_JS_WARNING),null}}function loadPdfJs(workerSrc){return pdfjs?pdfjs.then(pdfjsLib=>(pdfjsLib&&configurePdfJsWorker(pdfjsLib,workerSrc,defaultWorkerModuleResolver),pdfjsLib)):(pdfjs=loadPdfJsDeps(void 0,void 0,workerSrc),pdfjs)}function clearPdfJsCache(){pdfjs=void 0}export{clearPdfJsCache,loadPdfJs,loadPdfJsDeps};
1
+ import{createOptionalPeerLoader}from"../../../internal/optional-peer-capabilities.js";const PDF_JS_WARNING_KEY="lyra-pdf-viewer-pdfjs-unavailable",PDF_JS_WARNING="<lr-pdf-viewer> could not load its optional pdfjs-dist peer.";function isPdfJsApi(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&"getDocument"in value&&typeof value.getDocument=="function"&&"GlobalWorkerOptions"in value&&(typeof value.GlobalWorkerOptions=="object"||typeof value.GlobalWorkerOptions=="function")&&value.GlobalWorkerOptions!==null}const pdfjs=createOptionalPeerLoader({load:()=>import("pdfjs-dist"),isCapability:isPdfJsApi,warningKey:PDF_JS_WARNING_KEY,warning:PDF_JS_WARNING}),PDF_WORKER_MODULE_SPECIFIER="pdfjs-dist/build/pdf.worker.min.mjs",ALLOWED_WORKER_PROTOCOLS=["http:","https:","blob:","file:"];function defaultWorkerModuleResolver(specifier){const resolver=import.meta.resolve;if(!resolver)return null;try{return resolver(specifier)}catch{return null}}function safeWorkerModuleUrl(value){if(!value)return null;try{const url=new URL(value);return ALLOWED_WORKER_PROTOCOLS.includes(url.protocol)?url.href:null}catch{return null}}function safeAuthoredWorkerUrl(value){if(!value)return null;try{const url=new URL(value,typeof document>"u"?void 0:document.baseURI);return ALLOWED_WORKER_PROTOCOLS.includes(url.protocol)?url.href:null}catch{return null}}function configurePdfJsWorker(pdfjsLib,authoredWorkerSrc,resolveWorkerModule){if(pdfjsLib.GlobalWorkerOptions.workerSrc)return;const workerSrc=safeAuthoredWorkerUrl(authoredWorkerSrc)??safeWorkerModuleUrl(resolveWorkerModule(PDF_WORKER_MODULE_SPECIFIER));workerSrc&&(pdfjsLib.GlobalWorkerOptions.workerSrc=workerSrc)}async function loadPdfJsDeps(importPdfjs,resolveWorkerModule=defaultWorkerModuleResolver,workerSrc){const pdfjsLib=await pdfjs.loadWith(importPdfjs);return pdfjsLib&&configurePdfJsWorker(pdfjsLib,workerSrc,resolveWorkerModule),pdfjsLib}async function loadPdfJs(workerSrc){const pdfjsLib=await pdfjs.get();return pdfjsLib&&configurePdfJsWorker(pdfjsLib,workerSrc,defaultWorkerModuleResolver),pdfjsLib}function clearPdfJsCache(){pdfjs.clear()}export{clearPdfJsCache,loadPdfJs,loadPdfJsDeps};
@@ -130,7 +130,7 @@ workerSrc:string;
130
130
  /** Anchor kinds this viewer resolves. `page` and page-addressed `region` anchors require an
131
131
  * integer within the loaded document's range; unlike the public `page` property, anchors are
132
132
  * rejected rather than clamped. */
133
- readonly anchorKinds:readonly['page','text-quote','region'];private loadState;private readonly pageViewerState;private scrollDrivenPage;private loadLibrary;private generation;private readonly pageCanvases;private readonly pageRenderTasks;private readonly pageRenderVersions;private pageRenderGeneration;private readonly pageCanvasRefs;private readonly textLayerContainers;private readonly textLayerContainerRefs;private readonly textLayers;private readonly textLayerReadyPromises;private readonly pageTextCache;private readonly pageTextTruncated;private readonly pageSearchIndexes;private readonly mountedPageTextIndexes;private pdfTextScopeBuilds;private readonly thumbnailRenderTasks;private readonly thumbnailRenderVersions;private thumbnailRenderGeneration;private readonly pageHighlightItems;private readonly pageHighlightLayerElements;private readonly highlightLayerRefs;private textSelectionCleanup?;private readonly pendingPageMountWaitCancels;private pdfPageSourceCount;private pdfPageSource;private searchMatches;private searchMatchCountExact;private searchActiveIndex;private searchQuery;private searchGeneration;private textIndexLocale?;private pendingSearchResetEvent;private anchorOperationGeneration;private readonly announcements;
133
+ readonly anchorKinds:readonly['page','text-quote','region'];private loadState;private readonly pageViewerState;private scrollDrivenPage;private loadLibrary;private generation;private pendingDocument?;private readonly pageCanvases;private readonly pageRenderTasks;private readonly pageRenderVersions;private pageRenderGeneration;private readonly pageCanvasRefs;private readonly textLayerContainers;private readonly textLayerContainerRefs;private readonly textLayers;private readonly textLayerReadyPromises;private readonly pageTextCache;private readonly pageTextTruncated;private readonly pageSearchIndexes;private readonly mountedPageTextIndexes;private pdfTextScopeBuilds;private readonly thumbnailRenderTasks;private readonly thumbnailRenderVersions;private thumbnailRenderGeneration;private readonly pageHighlightItems;private readonly pageHighlightLayerElements;private readonly highlightLayerRefs;private textSelectionCleanup?;private readonly pendingPageMountWaitCancels;private pdfPageSourceCount;private pdfPageSource;private readonly searchState;private get searchMatches();private set searchMatches(value);private get searchActiveIndex();private set searchActiveIndex(value);private searchGeneration;private textIndexLocale?;private pendingSearchResetEvent;private anchorOperationGeneration;private readonly announcements;
134
134
  /**
135
135
  * Atomic readonly state for page-rail and other page-addressed integrations. Unlike the legacy
136
136
  * `lr-load`/`lr-page-change` pair, a late subscriber can read this immediately, and `identity`
@@ -142,7 +142,7 @@ get pageViewerSnapshot():LyraPageViewerSnapshot;
142
142
  * every consumer runs) the moment anything assigns to it, including a stray
143
143
  * `.pageViewerSnapshot=${x}` template binding; this no-op keeps that assignment harmless
144
144
  * instead of throwing from inside framework internals. */
145
- set pageViewerSnapshot(_value:LyraPageViewerSnapshot);private focusedToolbarPart;private keepToolbarFocus;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;firstUpdated(changed:PropertyValues):void;private readonly detached;connectedCallback():void;disconnectedCallback():void;private teardownDetachedDocument;adoptedCallback():void;private cancelPendingPageMountWaits;private destroyLoadedDoc;private clampPage;private publishPageViewerSnapshot;private createPageSource;private indexedPages;private load;nextPage():void;previousPage():void;zoomIn():void;zoomOut():void;
145
+ set pageViewerSnapshot(_value:LyraPageViewerSnapshot);private focusedToolbarPart;private keepToolbarFocus;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;firstUpdated(changed:PropertyValues):void;private readonly detached;connectedCallback():void;disconnectedCallback():void;private teardownDetachedDocument;adoptedCallback():void;private cancelPendingPageMountWaits;private destroyLoadedDoc;private retirePendingDocument;private clampPage;private publishPageViewerSnapshot;private createPageSource;private indexedPages;private load;nextPage():void;previousPage():void;zoomIn():void;zoomOut():void;
146
146
  /** Sets `page` and resolves once the target page's canvas has actually mounted inside the
147
147
  * virtualized list (bounded by a timeout, so a page that somehow never mounts can't hang this
148
148
  * promise forever). Resolves `false` without changing `page` for an out-of-range value. */
@@ -177,4 +177,4 @@ searchNext():Promise<boolean>;
177
177
  searchPrevious():Promise<boolean>;
178
178
  /** Clears the query, matches, and any painted marks, and resets `lr-search-change` to a
179
179
  * 0-match/no-active-index state. */
180
- clearSearch():void;private hasSearchState;private resetSearchState;private emitSearchChange;private focusSearchMatch;private clearSearchPaint;private paintSearchMatches;private remainingSearchMarkBudget;private resolveMountedPageHighlights;private mountedPagesForHighlight;private resolveHighlightRectsForPage;private highlightLayerRef;private onPageClick;private onHighlightLayerActivate;private renderToolbar;private renderPage;private setPageError;private renderTextLayer;private markTextRunParts;private pageCanvasRef;private textLayerContainerRef;private renderPageItem;private onVisibleRangeChanged;private stopInternalEvent;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-pdf-viewer':LyraPdfViewer;}}export{};
180
+ clearSearch():void;private resetSearchState;private focusSearchMatch;private clearSearchPaint;private paintSearchMatches;private remainingSearchMarkBudget;private resolveMountedPageHighlights;private mountedPagesForHighlight;private resolveHighlightRectsForPage;private highlightLayerRef;private onPageClick;private onHighlightLayerActivate;private renderToolbar;private renderPage;private setPageError;private renderTextLayer;private markTextRunParts;private pageCanvasRef;private textLayerContainerRef;private renderPageItem;private onVisibleRangeChanged;private stopInternalEvent;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-pdf-viewer':LyraPdfViewer;}}export{};