@aceshooting/lyra-ui 26.0.0 → 27.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1475) hide show
  1. package/CHANGELOG.md +63 -675
  2. package/README.md +281 -1130
  3. package/design-tokens.json +1 -1
  4. package/dist/ai/types.d.ts +5 -5
  5. package/dist/autoloader.js +1 -1
  6. package/dist/cli/agent-registry.mjs +1 -0
  7. package/dist/cli/component-inventory.mjs +1 -1
  8. package/dist/cli/init-agents.mjs +40 -0
  9. package/dist/cli/is-main-module.mjs +1 -0
  10. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  11. package/dist/cli/lyra-ui.mjs +11 -0
  12. package/dist/cli/migrate-wa.mjs +4 -2
  13. package/dist/cli/migration-contract.json +1 -1
  14. package/dist/cli/migration-renames.mjs +1 -1
  15. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  16. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  17. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  18. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  19. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  20. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  21. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  22. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  23. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  24. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  25. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  26. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  27. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  28. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  29. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  30. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  31. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  32. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  33. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  34. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  35. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  36. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  37. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  38. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  39. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  40. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  41. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  42. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  43. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  44. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  45. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  46. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  47. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  48. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  49. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  50. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  51. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  52. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  53. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  54. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  55. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  56. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  57. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  58. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  59. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  60. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  61. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  62. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  63. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  64. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  65. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  66. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  67. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  68. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  69. package/dist/components/charts/chart/box-plot.class.js +1 -1
  70. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  71. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  72. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  73. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  74. package/dist/components/charts/chart/chart.class.d.ts +2 -2
  75. package/dist/components/charts/chart/chart.class.js +2 -2
  76. package/dist/components/charts/chart/chart.styles.js +1 -1
  77. package/dist/components/charts/chart/histogram.class.js +1 -1
  78. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  79. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  80. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  81. package/dist/components/conversation/catalog-picker-element.js +1 -1
  82. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  83. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  84. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  85. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  86. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  87. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  88. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  89. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  90. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  91. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  92. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  93. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  94. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  95. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  96. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  97. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  98. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  99. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  100. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  101. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  102. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  103. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  104. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  105. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  106. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  107. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  108. package/dist/components/data/document-library/document-library.class.js +2 -2
  109. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  110. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  111. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  112. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  113. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  114. package/dist/components/data/table/table.class.d.ts +10 -195
  115. package/dist/components/data/table/table.class.js +2 -2
  116. package/dist/components/data/table/table.styles.js +1 -1
  117. package/dist/components/data/timeline/timeline.class.js +1 -1
  118. package/dist/components/data/tree/tree.class.js +1 -1
  119. package/dist/components/forms/button/button.class.d.ts +3 -3
  120. package/dist/components/forms/button/button.class.js +1 -1
  121. package/dist/components/forms/catalog-picker-base.js +1 -1
  122. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  123. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  124. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  125. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  126. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  127. package/dist/components/forms/color-picker/color-picker.class.js +1 -1
  128. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  129. package/dist/components/forms/combobox/combobox.class.js +3 -2
  130. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  131. package/dist/components/forms/combobox/option.class.js +2 -2
  132. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  133. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  134. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  135. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  136. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  137. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  138. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  139. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  140. package/dist/components/forms/input/input.styles.js +1 -1
  141. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  142. package/dist/components/forms/input/time-input.class.js +1 -1
  143. package/dist/components/forms/input/time-input.styles.js +1 -1
  144. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  145. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  146. package/dist/components/forms/otp-input/otp-input.class.js +1 -0
  147. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  148. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  149. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  150. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  151. package/dist/components/forms/radio/radio-group.class.js +1 -1
  152. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  153. package/dist/components/forms/radio/radio.class.js +2 -2
  154. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  155. package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
  156. package/dist/components/forms/select/select.class.d.ts +5 -7
  157. package/dist/components/forms/select/select.class.js +3 -2
  158. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  159. package/dist/components/forms/slider/slider.class.js +1 -1
  160. package/dist/components/forms/slider/slider.styles.js +1 -1
  161. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  162. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  163. package/dist/components/forms/switch/switch.class.js +2 -2
  164. package/dist/components/forms/textarea/textarea.class.js +1 -0
  165. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  166. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  167. package/dist/components/forms/time-range/time-range.class.js +1 -1
  168. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  169. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  170. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  171. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  172. package/dist/components/forms/token-input/token-input.class.js +1 -1
  173. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  174. package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -2
  175. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  176. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  177. package/dist/components/layout/card/card.class.js +1 -1
  178. package/dist/components/layout/carousel/carousel.class.js +1 -1
  179. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  180. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  181. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  182. package/dist/components/layout/details/accordion.class.js +1 -1
  183. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  184. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  185. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  186. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  187. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  188. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  189. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  190. package/dist/components/layout/menu/menu.class.js +1 -1
  191. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  192. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  193. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  194. package/dist/components/layout/page/page.class.d.ts +1 -1
  195. package/dist/components/layout/page/page.class.js +1 -1
  196. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  197. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  198. package/dist/components/layout/scroller/scroller.class.js +1 -1
  199. package/dist/components/layout/segmented/segmented.class.js +1 -1
  200. package/dist/components/layout/stepper/stepper.class.js +2 -2
  201. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  202. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  203. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  204. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  205. package/dist/components/layout/widget/widget.class.js +3 -3
  206. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  207. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  208. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  209. package/dist/components/media/file-input/file-input.class.js +2 -2
  210. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  211. package/dist/components/media/file-input/file-intake.js +1 -1
  212. package/dist/components/media/flag/flag.class.js +1 -1
  213. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  214. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  215. package/dist/components/media/map/map.class.js +2 -2
  216. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  217. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  218. package/dist/components/media/video/video.class.js +3 -3
  219. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  220. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  221. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  222. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  223. package/dist/components/overlays/alert/alert.class.js +1 -1
  224. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  225. package/dist/components/overlays/badge/badge.class.js +1 -1
  226. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  227. package/dist/components/overlays/badge/tag.class.js +3 -2
  228. package/dist/components/overlays/badge/tag.styles.js +1 -1
  229. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  230. package/dist/components/overlays/callout/callout.class.js +1 -1
  231. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  232. package/dist/components/overlays/chip/chip.class.js +2 -2
  233. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  234. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  235. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  236. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  237. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  238. package/dist/components/overlays/overlay/popover.class.js +1 -1
  239. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  240. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  241. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  242. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  243. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  244. package/dist/components/overlays/progress/progress-base.js +1 -0
  245. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  246. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  247. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  248. package/dist/components/overlays/rating/rating.class.js +1 -1
  249. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  250. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  251. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  252. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  253. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  254. package/dist/components/retrieval/graph/graph-model.js +1 -1
  255. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  256. package/dist/components/retrieval/graph/graph.class.js +1 -1
  257. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  258. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  259. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  260. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  261. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  262. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  263. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  264. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  265. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  266. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  267. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  268. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  269. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  270. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  271. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  272. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  273. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  274. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  275. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  276. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  277. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  278. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  279. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  280. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  281. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  282. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  283. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  284. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  285. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  286. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  287. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  288. package/dist/components/utility/export-button/export-button.class.js +1 -1
  289. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  290. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  291. package/dist/components/utility/known-date/known-date.class.js +1 -1
  292. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  293. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  294. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  295. package/dist/components/utility/random-content/random-content.class.js +1 -1
  296. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  297. package/dist/components/utility/tour/tour.class.js +1 -1
  298. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  299. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  300. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  301. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  302. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  303. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +1 -1
  304. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  305. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  306. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  307. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  308. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  309. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  310. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  311. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  312. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  313. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  314. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  315. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  316. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  317. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  318. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  319. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  320. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  321. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  322. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  323. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  324. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  325. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  326. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  327. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  328. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  329. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  330. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  331. package/dist/components/viewers/page-rail/page-rail.class.js +2 -2
  332. package/dist/components/viewers/passive-markup.js +1 -1
  333. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  334. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +2 -2
  335. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  336. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  337. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  338. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  339. package/dist/components/viewers/region-highlight-layer.js +15 -2
  340. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  341. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  342. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  343. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  344. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  345. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  346. package/dist/components/viewers/table-viewer-shared.js +15 -1
  347. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  348. package/dist/events.d.ts +19 -18
  349. package/dist/framework-types.d.ts +1 -1
  350. package/dist/internal/accessibility-visibility.d.ts +3 -1
  351. package/dist/internal/accessibility-visibility.js +1 -1
  352. package/dist/internal/accessible-text-controller.js +1 -1
  353. package/dist/internal/active-element.d.ts +11 -0
  354. package/dist/internal/active-element.js +1 -1
  355. package/dist/internal/adjacent-runs.js +1 -1
  356. package/dist/internal/approval-wait-until.d.ts +7 -0
  357. package/dist/internal/approval-wait-until.js +1 -0
  358. package/dist/internal/aria-controls.js +1 -1
  359. package/dist/internal/catalog-picker.d.ts +2 -2
  360. package/dist/internal/catalog-picker.js +1 -1
  361. package/dist/internal/composed-tree.d.ts +18 -0
  362. package/dist/internal/composed-tree.js +1 -1
  363. package/dist/internal/copy-feedback.js +1 -0
  364. package/dist/internal/css-length.js +1 -1
  365. package/dist/internal/css-motion-time.js +1 -1
  366. package/dist/internal/css-number.js +1 -0
  367. package/dist/internal/default-strings.generated.js +1 -1
  368. package/dist/internal/deferred-focus-return.d.ts +33 -0
  369. package/dist/internal/deferred-focus-return.js +1 -1
  370. package/dist/internal/fixed-containing-block.js +1 -1
  371. package/dist/internal/form-associated.d.ts +38 -2
  372. package/dist/internal/form-associated.js +1 -1
  373. package/dist/internal/form-control-element.d.ts +13 -0
  374. package/dist/internal/form-control-element.js +1 -0
  375. package/dist/internal/form-control.styles.js +1 -1
  376. package/dist/internal/inherited-attribute-hub.js +1 -1
  377. package/dist/internal/locale-loaders.generated.js +1 -1
  378. package/dist/internal/localization-types.d.ts +1 -1
  379. package/dist/internal/localization.js +1 -1
  380. package/dist/internal/modal-surface-controller.js +1 -1
  381. package/dist/internal/object-guards.js +1 -1
  382. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  383. package/dist/internal/optional-peer-capabilities.js +1 -1
  384. package/dist/internal/orientation-breakpoint.js +1 -1
  385. package/dist/internal/overlay-manager.d.ts +6 -1
  386. package/dist/internal/overlay-manager.js +1 -1
  387. package/dist/internal/overlay-stack.d.ts +7 -3
  388. package/dist/internal/overlay-stack.js +1 -1
  389. package/dist/internal/package-metadata.js +1 -1
  390. package/dist/internal/persisted-restore.js +1 -1
  391. package/dist/internal/popup-controller.js +1 -0
  392. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  393. package/dist/internal/rendered-tree-traversal.js +1 -1
  394. package/dist/internal/retry-forwarder.js +1 -0
  395. package/dist/internal/roving-toolbar.js +1 -1
  396. package/dist/internal/scoped-definitions.generated.js +1 -1
  397. package/dist/internal/score-tiers.d.ts +4 -0
  398. package/dist/internal/score-tiers.js +1 -0
  399. package/dist/internal/semantic-variant.d.ts +7 -0
  400. package/dist/internal/semantic-variant.js +1 -0
  401. package/dist/internal/shared-unions.d.ts +1 -1
  402. package/dist/internal/viewer-search.js +1 -1
  403. package/dist/lyra.d.ts +1 -1
  404. package/dist/testing/happy-dom-shims.d.ts +18 -0
  405. package/dist/testing/happy-dom-shims.js +1 -1
  406. package/dist/testing/index.d.ts +1 -1
  407. package/dist/testing/index.js +1 -1
  408. package/llms/components/lr-accordion-item.md +1 -1
  409. package/llms/components/lr-accordion.md +1 -1
  410. package/llms/components/lr-alert.md +2 -2
  411. package/llms/components/lr-app-rail-group.md +1 -1
  412. package/llms/components/lr-app-rail-item.md +1 -1
  413. package/llms/components/lr-app-rail.md +1 -1
  414. package/llms/components/lr-attachment-chip.md +1 -10
  415. package/llms/components/lr-attachment-trigger.md +0 -10
  416. package/llms/components/lr-avatar.md +4 -8
  417. package/llms/components/lr-badge.md +16 -20
  418. package/llms/components/lr-box-plot.md +1 -1
  419. package/llms/components/lr-breadcrumb-item.md +1 -1
  420. package/llms/components/lr-breadcrumb.md +1 -1
  421. package/llms/components/lr-button-group.md +1 -1
  422. package/llms/components/lr-button.md +1 -1
  423. package/llms/components/lr-calendar.md +1 -1
  424. package/llms/components/lr-callout.md +3 -13
  425. package/llms/components/lr-card.md +1 -1
  426. package/llms/components/lr-carousel-item.md +1 -1
  427. package/llms/components/lr-carousel.md +1 -1
  428. package/llms/components/lr-chart.md +5 -7
  429. package/llms/components/lr-checkbox-group.md +1 -1
  430. package/llms/components/lr-checkbox.md +2 -1
  431. package/llms/components/lr-chip.md +3 -17
  432. package/llms/components/lr-chunk-inspector.md +2 -1
  433. package/llms/components/lr-citation-badge.md +2 -2
  434. package/llms/components/lr-code-block.md +0 -10
  435. package/llms/components/lr-code-editor.md +1 -1
  436. package/llms/components/lr-color-picker.md +1 -1
  437. package/llms/components/lr-combobox.md +6 -3
  438. package/llms/components/lr-command-palette.md +5 -2
  439. package/llms/components/lr-commit-card.md +1 -3
  440. package/llms/components/lr-condition-builder.md +1 -1
  441. package/llms/components/lr-confirm-bar.md +7 -13
  442. package/llms/components/lr-connector-manager.md +3 -1
  443. package/llms/components/lr-context-inspector.md +1 -1
  444. package/llms/components/lr-context-meter.md +1 -1
  445. package/llms/components/lr-control-group.md +1 -1
  446. package/llms/components/lr-copy-button.md +8 -10
  447. package/llms/components/lr-country-picker.md +1 -1
  448. package/llms/components/lr-currency-picker.md +1 -1
  449. package/llms/components/lr-dashboard-grid.md +1 -1
  450. package/llms/components/lr-data-grid.md +1 -1
  451. package/llms/components/lr-date-input.md +1 -1
  452. package/llms/components/lr-date-picker.md +11 -4
  453. package/llms/components/lr-details.md +1 -1
  454. package/llms/components/lr-dialog.md +8 -31
  455. package/llms/components/lr-diff-view.md +1 -1
  456. package/llms/components/lr-divider.md +1 -1
  457. package/llms/components/lr-dock-panel.md +1 -1
  458. package/llms/components/lr-document-library.md +1 -1
  459. package/llms/components/lr-drawer.md +1 -13
  460. package/llms/components/lr-drilldown-panel.md +1 -1
  461. package/llms/components/lr-drop-zone.md +4 -0
  462. package/llms/components/lr-dropdown-item.md +1 -1
  463. package/llms/components/lr-ebook-viewer.md +4 -3
  464. package/llms/components/lr-emoji-picker.md +1 -1
  465. package/llms/components/lr-entity-chip.md +2 -2
  466. package/llms/components/lr-env-list.md +1 -1
  467. package/llms/components/lr-eval-dataset.md +4 -19
  468. package/llms/components/lr-export-button.md +3 -3
  469. package/llms/components/lr-file-icon.md +0 -5
  470. package/llms/components/lr-file-input.md +3 -5
  471. package/llms/components/lr-file-tree.md +1 -1
  472. package/llms/components/lr-filter-bar.md +5 -1
  473. package/llms/components/lr-flag.md +1 -2
  474. package/llms/components/lr-flow-canvas.md +1 -1
  475. package/llms/components/lr-flow-controls.md +1 -1
  476. package/llms/components/lr-flow-minimap.md +2 -2
  477. package/llms/components/lr-flow-node.md +1 -1
  478. package/llms/components/lr-flow-run-status.md +1 -1
  479. package/llms/components/lr-format-bytes.md +2 -3
  480. package/llms/components/lr-format-date.md +2 -3
  481. package/llms/components/lr-format-number.md +1 -1
  482. package/llms/components/lr-funnel.md +1 -1
  483. package/llms/components/lr-gauge.md +1 -1
  484. package/llms/components/lr-generation-metrics.md +1 -1
  485. package/llms/components/lr-graph-query-builder.md +1 -1
  486. package/llms/components/lr-heatmap.md +1 -1
  487. package/llms/components/lr-icon-button.md +1 -1
  488. package/llms/components/lr-icon.md +1 -1
  489. package/llms/components/lr-input.md +1 -1
  490. package/llms/components/lr-intersection-observer.md +1 -1
  491. package/llms/components/lr-json-viewer.md +1 -1
  492. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  493. package/llms/components/lr-known-date.md +1 -1
  494. package/llms/components/lr-lite-chart.md +3 -4
  495. package/llms/components/lr-live-region.md +1 -1
  496. package/llms/components/lr-locale-picker.md +1 -1
  497. package/llms/components/lr-map.md +1 -3
  498. package/llms/components/lr-media-card.md +1 -10
  499. package/llms/components/lr-memory-panel.md +2 -0
  500. package/llms/components/lr-mention-popover.md +3 -3
  501. package/llms/components/lr-menu-item.md +1 -1
  502. package/llms/components/lr-menu-label.md +1 -1
  503. package/llms/components/lr-menu.md +1 -1
  504. package/llms/components/lr-menubar-item.md +1 -1
  505. package/llms/components/lr-menubar.md +1 -1
  506. package/llms/components/lr-message-actions.md +1 -11
  507. package/llms/components/lr-message-parts.md +3 -5
  508. package/llms/components/lr-model-select.md +2 -4
  509. package/llms/components/lr-multi-split.md +1 -1
  510. package/llms/components/lr-mutation-observer.md +2 -2
  511. package/llms/components/lr-native-time-input.md +1 -1
  512. package/llms/components/lr-navigation-menu-item.md +1 -1
  513. package/llms/components/lr-navigation-menu.md +1 -1
  514. package/llms/components/lr-number-input.md +1 -1
  515. package/llms/components/lr-option.md +1 -1
  516. package/llms/components/lr-otp-input.md +1 -1
  517. package/llms/components/lr-page.md +1 -1
  518. package/llms/components/lr-pagination.md +1 -1
  519. package/llms/components/lr-pan-zoom.md +1 -3
  520. package/llms/components/lr-permission-grant.md +3 -1
  521. package/llms/components/lr-phone-input.md +7 -5
  522. package/llms/components/lr-poll-status.md +1 -1
  523. package/llms/components/lr-popover.md +5 -9
  524. package/llms/components/lr-popup.md +1 -3
  525. package/llms/components/lr-progress-bar.md +2 -1
  526. package/llms/components/lr-progress-ring.md +4 -8
  527. package/llms/components/lr-prompt-input.md +3 -1
  528. package/llms/components/lr-prompt-studio.md +4 -4
  529. package/llms/components/lr-radio-button.md +2 -2
  530. package/llms/components/lr-radio-group.md +1 -1
  531. package/llms/components/lr-radio.md +3 -2
  532. package/llms/components/lr-random-content.md +1 -1
  533. package/llms/components/lr-rating.md +2 -3
  534. package/llms/components/lr-relative-time.md +2 -3
  535. package/llms/components/lr-reorder-item.md +1 -1
  536. package/llms/components/lr-reorder-list.md +1 -1
  537. package/llms/components/lr-research-progress.md +2 -0
  538. package/llms/components/lr-resize-observer.md +1 -1
  539. package/llms/components/lr-responsive-panel.md +1 -1
  540. package/llms/components/lr-retrieval-compare.md +2 -0
  541. package/llms/components/lr-retrieval-trace.md +2 -0
  542. package/llms/components/lr-rubric-form.md +1 -1
  543. package/llms/components/lr-scroller.md +1 -1
  544. package/llms/components/lr-segmented.md +1 -1
  545. package/llms/components/lr-select.md +1 -1
  546. package/llms/components/lr-sequence-playback.md +1 -2
  547. package/llms/components/lr-sequence-strip.md +1 -1
  548. package/llms/components/lr-signature-pad.md +1 -1
  549. package/llms/components/lr-skeleton.md +2 -4
  550. package/llms/components/lr-slider.md +1 -1
  551. package/llms/components/lr-sparkline.md +1 -1
  552. package/llms/components/lr-split-panel.md +1 -1
  553. package/llms/components/lr-stat.md +1 -1
  554. package/llms/components/lr-stepper.md +1 -1
  555. package/llms/components/lr-swatch-picker.md +1 -1
  556. package/llms/components/lr-switch.md +2 -1
  557. package/llms/components/lr-tab-group.md +1 -1
  558. package/llms/components/lr-tab-panel.md +1 -1
  559. package/llms/components/lr-tab.md +1 -1
  560. package/llms/components/lr-table.md +3 -3
  561. package/llms/components/lr-task-list.md +3 -3
  562. package/llms/components/lr-test-results.md +2 -4
  563. package/llms/components/lr-textarea.md +1 -1
  564. package/llms/components/lr-time-input.md +1 -1
  565. package/llms/components/lr-time-range.md +5 -4
  566. package/llms/components/lr-time-zone-picker.md +1 -1
  567. package/llms/components/lr-timeline-item.md +1 -1
  568. package/llms/components/lr-timeline.md +1 -1
  569. package/llms/components/lr-toggle-group.md +1 -1
  570. package/llms/components/lr-toggle.md +1 -1
  571. package/llms/components/lr-token-input.md +1 -1
  572. package/llms/components/lr-tool-approval-dialog.md +12 -10
  573. package/llms/components/lr-tool-call-block.md +1 -1
  574. package/llms/components/lr-tool-call-chip.md +1 -3
  575. package/llms/components/lr-tool-result-view.md +3 -3
  576. package/llms/components/lr-tool-timeline.md +2 -2
  577. package/llms/components/lr-tooltip.md +8 -11
  578. package/llms/components/lr-tour.md +2 -2
  579. package/llms/components/lr-tree-item.md +1 -1
  580. package/llms/components/lr-tree.md +1 -1
  581. package/llms/components/lr-unit-picker.md +1 -1
  582. package/llms/components/lr-usage-badge.md +1 -3
  583. package/llms/components/lr-video.md +1 -2
  584. package/llms/components/lr-virtual-list.md +1 -1
  585. package/llms/components/lr-visually-hidden.md +1 -1
  586. package/llms/components/lr-voice-picker.md +1 -1
  587. package/llms/components/lr-widget.md +1 -1
  588. package/llms/components/lr-word-cloud.md +1 -1
  589. package/llms/components/lr-zoomable-frame.md +1 -6
  590. package/llms/migration.md +96 -2
  591. package/llms/peers.md +3 -2
  592. package/llms/shared/ai-and-peers.md +2 -2
  593. package/llms/shared/events-and-types.md +4 -1
  594. package/llms/shared/imports-and-registration.md +2 -2
  595. package/llms/shared/localization-and-rtl.md +18 -18
  596. package/llms/shared/styles-and-tokens.md +1 -1
  597. package/llms/shared/testing-and-utilities.md +44 -43
  598. package/llms/shared.md +71 -67
  599. package/llms.txt +14 -12
  600. package/locales.json +1002 -1002
  601. package/package.json +16 -6879
  602. package/registrations.json +1 -1
  603. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  604. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  605. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  606. package/skills/lyra-ui/SKILL.md +145 -0
  607. package/skills/lyra-ui/commands/frontend.md +37 -0
  608. package/skills/lyra-ui/commands/migrate.md +44 -0
  609. package/skills/lyra-ui/commands/new-component.md +19 -0
  610. package/skills/lyra-ui/commands/review.md +247 -0
  611. package/skills/lyra-ui/commands/update.md +30 -0
  612. package/skills/lyra-ui/reporting.md +137 -0
  613. package/custom-elements.json +0 -1
  614. package/dist/internal/side-effect-only.d.ts +0 -1
  615. package/dist/translations/am/agent-tools.js +0 -1
  616. package/dist/translations/am/charts.js +0 -1
  617. package/dist/translations/am/conversation.js +0 -1
  618. package/dist/translations/am/data.js +0 -1
  619. package/dist/translations/am/forms.js +0 -1
  620. package/dist/translations/am/layout.js +0 -1
  621. package/dist/translations/am/media.js +0 -1
  622. package/dist/translations/am/overlays.js +0 -1
  623. package/dist/translations/am/retrieval.js +0 -1
  624. package/dist/translations/am/shared.js +0 -1
  625. package/dist/translations/am/utility.js +0 -1
  626. package/dist/translations/am/viewers.js +0 -5
  627. package/dist/translations/am.js +0 -1
  628. package/dist/translations/ar/agent-tools.js +0 -1
  629. package/dist/translations/ar/charts.js +0 -1
  630. package/dist/translations/ar/conversation.js +0 -1
  631. package/dist/translations/ar/data.js +0 -1
  632. package/dist/translations/ar/forms.js +0 -1
  633. package/dist/translations/ar/layout.js +0 -1
  634. package/dist/translations/ar/media.js +0 -1
  635. package/dist/translations/ar/overlays.js +0 -1
  636. package/dist/translations/ar/retrieval.js +0 -1
  637. package/dist/translations/ar/shared.js +0 -1
  638. package/dist/translations/ar/utility.js +0 -1
  639. package/dist/translations/ar/viewers.js +0 -5
  640. package/dist/translations/ar.js +0 -1
  641. package/dist/translations/bho/agent-tools.js +0 -1
  642. package/dist/translations/bho/charts.js +0 -1
  643. package/dist/translations/bho/conversation.js +0 -1
  644. package/dist/translations/bho/data.js +0 -1
  645. package/dist/translations/bho/forms.js +0 -1
  646. package/dist/translations/bho/layout.js +0 -1
  647. package/dist/translations/bho/media.js +0 -1
  648. package/dist/translations/bho/overlays.js +0 -1
  649. package/dist/translations/bho/retrieval.js +0 -1
  650. package/dist/translations/bho/shared.js +0 -1
  651. package/dist/translations/bho/utility.js +0 -1
  652. package/dist/translations/bho/viewers.js +0 -5
  653. package/dist/translations/bho.js +0 -1
  654. package/dist/translations/bn/agent-tools.js +0 -1
  655. package/dist/translations/bn/charts.js +0 -1
  656. package/dist/translations/bn/conversation.js +0 -1
  657. package/dist/translations/bn/data.js +0 -1
  658. package/dist/translations/bn/forms.js +0 -1
  659. package/dist/translations/bn/layout.js +0 -1
  660. package/dist/translations/bn/media.js +0 -1
  661. package/dist/translations/bn/overlays.js +0 -1
  662. package/dist/translations/bn/retrieval.js +0 -1
  663. package/dist/translations/bn/shared.js +0 -1
  664. package/dist/translations/bn/utility.js +0 -1
  665. package/dist/translations/bn/viewers.js +0 -5
  666. package/dist/translations/bn.js +0 -1
  667. package/dist/translations/cs/agent-tools.js +0 -1
  668. package/dist/translations/cs/charts.js +0 -1
  669. package/dist/translations/cs/conversation.js +0 -1
  670. package/dist/translations/cs/data.js +0 -1
  671. package/dist/translations/cs/forms.js +0 -1
  672. package/dist/translations/cs/layout.js +0 -1
  673. package/dist/translations/cs/media.js +0 -1
  674. package/dist/translations/cs/overlays.js +0 -1
  675. package/dist/translations/cs/retrieval.js +0 -1
  676. package/dist/translations/cs/shared.js +0 -1
  677. package/dist/translations/cs/utility.js +0 -1
  678. package/dist/translations/cs/viewers.js +0 -5
  679. package/dist/translations/cs.js +0 -1
  680. package/dist/translations/da/agent-tools.js +0 -1
  681. package/dist/translations/da/charts.js +0 -1
  682. package/dist/translations/da/conversation.js +0 -1
  683. package/dist/translations/da/data.js +0 -1
  684. package/dist/translations/da/forms.js +0 -1
  685. package/dist/translations/da/layout.js +0 -1
  686. package/dist/translations/da/media.js +0 -1
  687. package/dist/translations/da/overlays.js +0 -1
  688. package/dist/translations/da/retrieval.js +0 -1
  689. package/dist/translations/da/shared.js +0 -1
  690. package/dist/translations/da/utility.js +0 -1
  691. package/dist/translations/da/viewers.js +0 -5
  692. package/dist/translations/da.js +0 -1
  693. package/dist/translations/de/agent-tools.js +0 -1
  694. package/dist/translations/de/charts.js +0 -1
  695. package/dist/translations/de/conversation.js +0 -1
  696. package/dist/translations/de/data.js +0 -1
  697. package/dist/translations/de/forms.js +0 -1
  698. package/dist/translations/de/layout.js +0 -1
  699. package/dist/translations/de/media.js +0 -1
  700. package/dist/translations/de/overlays.js +0 -1
  701. package/dist/translations/de/retrieval.js +0 -1
  702. package/dist/translations/de/shared.js +0 -1
  703. package/dist/translations/de/utility.js +0 -1
  704. package/dist/translations/de/viewers.js +0 -5
  705. package/dist/translations/de-CH/agent-tools.js +0 -1
  706. package/dist/translations/de-CH/charts.js +0 -1
  707. package/dist/translations/de-CH/conversation.js +0 -1
  708. package/dist/translations/de-CH/data.js +0 -1
  709. package/dist/translations/de-CH/forms.js +0 -1
  710. package/dist/translations/de-CH/layout.js +0 -1
  711. package/dist/translations/de-CH/media.js +0 -1
  712. package/dist/translations/de-CH/overlays.js +0 -1
  713. package/dist/translations/de-CH/retrieval.js +0 -1
  714. package/dist/translations/de-CH/shared.js +0 -1
  715. package/dist/translations/de-CH/utility.js +0 -1
  716. package/dist/translations/de-CH/viewers.js +0 -1
  717. package/dist/translations/de-CH.js +0 -1
  718. package/dist/translations/de.js +0 -1
  719. package/dist/translations/el/agent-tools.js +0 -1
  720. package/dist/translations/el/charts.js +0 -1
  721. package/dist/translations/el/conversation.js +0 -1
  722. package/dist/translations/el/data.js +0 -1
  723. package/dist/translations/el/forms.js +0 -1
  724. package/dist/translations/el/layout.js +0 -1
  725. package/dist/translations/el/media.js +0 -1
  726. package/dist/translations/el/overlays.js +0 -1
  727. package/dist/translations/el/retrieval.js +0 -1
  728. package/dist/translations/el/shared.js +0 -1
  729. package/dist/translations/el/utility.js +0 -1
  730. package/dist/translations/el/viewers.js +0 -5
  731. package/dist/translations/el.js +0 -1
  732. package/dist/translations/es/agent-tools.js +0 -1
  733. package/dist/translations/es/charts.js +0 -1
  734. package/dist/translations/es/conversation.js +0 -1
  735. package/dist/translations/es/data.js +0 -1
  736. package/dist/translations/es/forms.js +0 -1
  737. package/dist/translations/es/layout.js +0 -1
  738. package/dist/translations/es/media.js +0 -1
  739. package/dist/translations/es/overlays.js +0 -1
  740. package/dist/translations/es/retrieval.js +0 -1
  741. package/dist/translations/es/shared.js +0 -1
  742. package/dist/translations/es/utility.js +0 -1
  743. package/dist/translations/es/viewers.js +0 -5
  744. package/dist/translations/es.js +0 -1
  745. package/dist/translations/fa/agent-tools.js +0 -1
  746. package/dist/translations/fa/charts.js +0 -1
  747. package/dist/translations/fa/conversation.js +0 -1
  748. package/dist/translations/fa/data.js +0 -1
  749. package/dist/translations/fa/forms.js +0 -1
  750. package/dist/translations/fa/layout.js +0 -1
  751. package/dist/translations/fa/media.js +0 -1
  752. package/dist/translations/fa/overlays.js +0 -1
  753. package/dist/translations/fa/retrieval.js +0 -1
  754. package/dist/translations/fa/shared.js +0 -1
  755. package/dist/translations/fa/utility.js +0 -1
  756. package/dist/translations/fa/viewers.js +0 -5
  757. package/dist/translations/fa-AF/agent-tools.js +0 -1
  758. package/dist/translations/fa-AF/charts.js +0 -1
  759. package/dist/translations/fa-AF/conversation.js +0 -1
  760. package/dist/translations/fa-AF/data.js +0 -1
  761. package/dist/translations/fa-AF/forms.js +0 -1
  762. package/dist/translations/fa-AF/layout.js +0 -1
  763. package/dist/translations/fa-AF/media.js +0 -1
  764. package/dist/translations/fa-AF/overlays.js +0 -1
  765. package/dist/translations/fa-AF/retrieval.js +0 -1
  766. package/dist/translations/fa-AF/shared.js +0 -1
  767. package/dist/translations/fa-AF/utility.js +0 -1
  768. package/dist/translations/fa-AF/viewers.js +0 -5
  769. package/dist/translations/fa-AF.js +0 -1
  770. package/dist/translations/fa.js +0 -1
  771. package/dist/translations/fi/agent-tools.js +0 -1
  772. package/dist/translations/fi/charts.js +0 -1
  773. package/dist/translations/fi/conversation.js +0 -1
  774. package/dist/translations/fi/data.js +0 -1
  775. package/dist/translations/fi/forms.js +0 -1
  776. package/dist/translations/fi/layout.js +0 -1
  777. package/dist/translations/fi/media.js +0 -1
  778. package/dist/translations/fi/overlays.js +0 -1
  779. package/dist/translations/fi/retrieval.js +0 -1
  780. package/dist/translations/fi/shared.js +0 -1
  781. package/dist/translations/fi/utility.js +0 -1
  782. package/dist/translations/fi/viewers.js +0 -5
  783. package/dist/translations/fi.js +0 -1
  784. package/dist/translations/fr/agent-tools.js +0 -1
  785. package/dist/translations/fr/charts.js +0 -1
  786. package/dist/translations/fr/conversation.js +0 -1
  787. package/dist/translations/fr/data.js +0 -1
  788. package/dist/translations/fr/forms.js +0 -1
  789. package/dist/translations/fr/layout.js +0 -1
  790. package/dist/translations/fr/media.js +0 -1
  791. package/dist/translations/fr/overlays.js +0 -1
  792. package/dist/translations/fr/retrieval.js +0 -1
  793. package/dist/translations/fr/shared.js +0 -1
  794. package/dist/translations/fr/utility.js +0 -1
  795. package/dist/translations/fr/viewers.js +0 -5
  796. package/dist/translations/fr.js +0 -1
  797. package/dist/translations/gu/agent-tools.js +0 -1
  798. package/dist/translations/gu/charts.js +0 -1
  799. package/dist/translations/gu/conversation.js +0 -1
  800. package/dist/translations/gu/data.js +0 -1
  801. package/dist/translations/gu/forms.js +0 -1
  802. package/dist/translations/gu/layout.js +0 -1
  803. package/dist/translations/gu/media.js +0 -1
  804. package/dist/translations/gu/overlays.js +0 -1
  805. package/dist/translations/gu/retrieval.js +0 -1
  806. package/dist/translations/gu/shared.js +0 -1
  807. package/dist/translations/gu/utility.js +0 -1
  808. package/dist/translations/gu/viewers.js +0 -5
  809. package/dist/translations/gu.js +0 -1
  810. package/dist/translations/ha/agent-tools.js +0 -1
  811. package/dist/translations/ha/charts.js +0 -1
  812. package/dist/translations/ha/conversation.js +0 -1
  813. package/dist/translations/ha/data.js +0 -1
  814. package/dist/translations/ha/forms.js +0 -1
  815. package/dist/translations/ha/layout.js +0 -1
  816. package/dist/translations/ha/media.js +0 -1
  817. package/dist/translations/ha/overlays.js +0 -1
  818. package/dist/translations/ha/retrieval.js +0 -1
  819. package/dist/translations/ha/shared.js +0 -1
  820. package/dist/translations/ha/utility.js +0 -1
  821. package/dist/translations/ha/viewers.js +0 -5
  822. package/dist/translations/ha.js +0 -1
  823. package/dist/translations/he/agent-tools.js +0 -1
  824. package/dist/translations/he/charts.js +0 -1
  825. package/dist/translations/he/conversation.js +0 -1
  826. package/dist/translations/he/data.js +0 -1
  827. package/dist/translations/he/forms.js +0 -1
  828. package/dist/translations/he/layout.js +0 -1
  829. package/dist/translations/he/media.js +0 -1
  830. package/dist/translations/he/overlays.js +0 -1
  831. package/dist/translations/he/retrieval.js +0 -1
  832. package/dist/translations/he/shared.js +0 -1
  833. package/dist/translations/he/utility.js +0 -1
  834. package/dist/translations/he/viewers.js +0 -5
  835. package/dist/translations/he.js +0 -1
  836. package/dist/translations/hi/agent-tools.js +0 -1
  837. package/dist/translations/hi/charts.js +0 -1
  838. package/dist/translations/hi/conversation.js +0 -1
  839. package/dist/translations/hi/data.js +0 -1
  840. package/dist/translations/hi/forms.js +0 -1
  841. package/dist/translations/hi/layout.js +0 -1
  842. package/dist/translations/hi/media.js +0 -1
  843. package/dist/translations/hi/overlays.js +0 -1
  844. package/dist/translations/hi/retrieval.js +0 -1
  845. package/dist/translations/hi/shared.js +0 -1
  846. package/dist/translations/hi/utility.js +0 -1
  847. package/dist/translations/hi/viewers.js +0 -5
  848. package/dist/translations/hi.js +0 -1
  849. package/dist/translations/hr/agent-tools.js +0 -1
  850. package/dist/translations/hr/charts.js +0 -1
  851. package/dist/translations/hr/conversation.js +0 -1
  852. package/dist/translations/hr/data.js +0 -1
  853. package/dist/translations/hr/forms.js +0 -1
  854. package/dist/translations/hr/layout.js +0 -1
  855. package/dist/translations/hr/media.js +0 -1
  856. package/dist/translations/hr/overlays.js +0 -1
  857. package/dist/translations/hr/retrieval.js +0 -1
  858. package/dist/translations/hr/shared.js +0 -1
  859. package/dist/translations/hr/utility.js +0 -1
  860. package/dist/translations/hr/viewers.js +0 -5
  861. package/dist/translations/hr.js +0 -1
  862. package/dist/translations/hu/agent-tools.js +0 -1
  863. package/dist/translations/hu/charts.js +0 -1
  864. package/dist/translations/hu/conversation.js +0 -1
  865. package/dist/translations/hu/data.js +0 -1
  866. package/dist/translations/hu/forms.js +0 -1
  867. package/dist/translations/hu/layout.js +0 -1
  868. package/dist/translations/hu/media.js +0 -1
  869. package/dist/translations/hu/overlays.js +0 -1
  870. package/dist/translations/hu/retrieval.js +0 -1
  871. package/dist/translations/hu/shared.js +0 -1
  872. package/dist/translations/hu/utility.js +0 -1
  873. package/dist/translations/hu/viewers.js +0 -5
  874. package/dist/translations/hu.js +0 -1
  875. package/dist/translations/id/agent-tools.js +0 -1
  876. package/dist/translations/id/charts.js +0 -1
  877. package/dist/translations/id/conversation.js +0 -1
  878. package/dist/translations/id/data.js +0 -1
  879. package/dist/translations/id/forms.js +0 -1
  880. package/dist/translations/id/layout.js +0 -1
  881. package/dist/translations/id/media.js +0 -1
  882. package/dist/translations/id/overlays.js +0 -1
  883. package/dist/translations/id/retrieval.js +0 -1
  884. package/dist/translations/id/shared.js +0 -1
  885. package/dist/translations/id/utility.js +0 -1
  886. package/dist/translations/id/viewers.js +0 -5
  887. package/dist/translations/id.js +0 -1
  888. package/dist/translations/ig/agent-tools.js +0 -1
  889. package/dist/translations/ig/charts.js +0 -1
  890. package/dist/translations/ig/conversation.js +0 -1
  891. package/dist/translations/ig/data.js +0 -1
  892. package/dist/translations/ig/forms.js +0 -1
  893. package/dist/translations/ig/layout.js +0 -1
  894. package/dist/translations/ig/media.js +0 -1
  895. package/dist/translations/ig/overlays.js +0 -1
  896. package/dist/translations/ig/retrieval.js +0 -1
  897. package/dist/translations/ig/shared.js +0 -1
  898. package/dist/translations/ig/utility.js +0 -1
  899. package/dist/translations/ig/viewers.js +0 -5
  900. package/dist/translations/ig.js +0 -1
  901. package/dist/translations/it/agent-tools.js +0 -1
  902. package/dist/translations/it/charts.js +0 -1
  903. package/dist/translations/it/conversation.js +0 -1
  904. package/dist/translations/it/data.js +0 -1
  905. package/dist/translations/it/forms.js +0 -1
  906. package/dist/translations/it/layout.js +0 -1
  907. package/dist/translations/it/media.js +0 -1
  908. package/dist/translations/it/overlays.js +0 -1
  909. package/dist/translations/it/retrieval.js +0 -1
  910. package/dist/translations/it/shared.js +0 -1
  911. package/dist/translations/it/utility.js +0 -1
  912. package/dist/translations/it/viewers.js +0 -5
  913. package/dist/translations/it.js +0 -1
  914. package/dist/translations/ja/agent-tools.js +0 -1
  915. package/dist/translations/ja/charts.js +0 -1
  916. package/dist/translations/ja/conversation.js +0 -1
  917. package/dist/translations/ja/data.js +0 -1
  918. package/dist/translations/ja/forms.js +0 -1
  919. package/dist/translations/ja/layout.js +0 -1
  920. package/dist/translations/ja/media.js +0 -1
  921. package/dist/translations/ja/overlays.js +0 -1
  922. package/dist/translations/ja/retrieval.js +0 -1
  923. package/dist/translations/ja/shared.js +0 -1
  924. package/dist/translations/ja/utility.js +0 -1
  925. package/dist/translations/ja/viewers.js +0 -4
  926. package/dist/translations/ja.js +0 -1
  927. package/dist/translations/jv/agent-tools.js +0 -1
  928. package/dist/translations/jv/charts.js +0 -1
  929. package/dist/translations/jv/conversation.js +0 -1
  930. package/dist/translations/jv/data.js +0 -1
  931. package/dist/translations/jv/forms.js +0 -1
  932. package/dist/translations/jv/layout.js +0 -1
  933. package/dist/translations/jv/media.js +0 -1
  934. package/dist/translations/jv/overlays.js +0 -1
  935. package/dist/translations/jv/retrieval.js +0 -1
  936. package/dist/translations/jv/shared.js +0 -1
  937. package/dist/translations/jv/utility.js +0 -1
  938. package/dist/translations/jv/viewers.js +0 -5
  939. package/dist/translations/jv.js +0 -1
  940. package/dist/translations/kk/agent-tools.js +0 -1
  941. package/dist/translations/kk/charts.js +0 -1
  942. package/dist/translations/kk/conversation.js +0 -1
  943. package/dist/translations/kk/data.js +0 -1
  944. package/dist/translations/kk/forms.js +0 -1
  945. package/dist/translations/kk/layout.js +0 -1
  946. package/dist/translations/kk/media.js +0 -1
  947. package/dist/translations/kk/overlays.js +0 -1
  948. package/dist/translations/kk/retrieval.js +0 -1
  949. package/dist/translations/kk/shared.js +0 -1
  950. package/dist/translations/kk/utility.js +0 -1
  951. package/dist/translations/kk/viewers.js +0 -5
  952. package/dist/translations/kk.js +0 -1
  953. package/dist/translations/kn/agent-tools.js +0 -1
  954. package/dist/translations/kn/charts.js +0 -1
  955. package/dist/translations/kn/conversation.js +0 -1
  956. package/dist/translations/kn/data.js +0 -1
  957. package/dist/translations/kn/forms.js +0 -1
  958. package/dist/translations/kn/layout.js +0 -1
  959. package/dist/translations/kn/media.js +0 -1
  960. package/dist/translations/kn/overlays.js +0 -1
  961. package/dist/translations/kn/retrieval.js +0 -1
  962. package/dist/translations/kn/shared.js +0 -1
  963. package/dist/translations/kn/utility.js +0 -1
  964. package/dist/translations/kn/viewers.js +0 -5
  965. package/dist/translations/kn.js +0 -1
  966. package/dist/translations/ko/agent-tools.js +0 -1
  967. package/dist/translations/ko/charts.js +0 -1
  968. package/dist/translations/ko/conversation.js +0 -1
  969. package/dist/translations/ko/data.js +0 -1
  970. package/dist/translations/ko/forms.js +0 -1
  971. package/dist/translations/ko/layout.js +0 -1
  972. package/dist/translations/ko/media.js +0 -1
  973. package/dist/translations/ko/overlays.js +0 -1
  974. package/dist/translations/ko/retrieval.js +0 -1
  975. package/dist/translations/ko/shared.js +0 -1
  976. package/dist/translations/ko/utility.js +0 -1
  977. package/dist/translations/ko/viewers.js +0 -5
  978. package/dist/translations/ko.js +0 -1
  979. package/dist/translations/ln/agent-tools.js +0 -1
  980. package/dist/translations/ln/charts.js +0 -1
  981. package/dist/translations/ln/conversation.js +0 -1
  982. package/dist/translations/ln/data.js +0 -1
  983. package/dist/translations/ln/forms.js +0 -1
  984. package/dist/translations/ln/layout.js +0 -1
  985. package/dist/translations/ln/media.js +0 -1
  986. package/dist/translations/ln/overlays.js +0 -1
  987. package/dist/translations/ln/retrieval.js +0 -1
  988. package/dist/translations/ln/shared.js +0 -1
  989. package/dist/translations/ln/utility.js +0 -1
  990. package/dist/translations/ln/viewers.js +0 -5
  991. package/dist/translations/ln.js +0 -1
  992. package/dist/translations/ml/agent-tools.js +0 -1
  993. package/dist/translations/ml/charts.js +0 -1
  994. package/dist/translations/ml/conversation.js +0 -1
  995. package/dist/translations/ml/data.js +0 -1
  996. package/dist/translations/ml/forms.js +0 -1
  997. package/dist/translations/ml/layout.js +0 -1
  998. package/dist/translations/ml/media.js +0 -1
  999. package/dist/translations/ml/overlays.js +0 -1
  1000. package/dist/translations/ml/retrieval.js +0 -1
  1001. package/dist/translations/ml/shared.js +0 -1
  1002. package/dist/translations/ml/utility.js +0 -1
  1003. package/dist/translations/ml/viewers.js +0 -5
  1004. package/dist/translations/ml.js +0 -1
  1005. package/dist/translations/mr/agent-tools.js +0 -1
  1006. package/dist/translations/mr/charts.js +0 -1
  1007. package/dist/translations/mr/conversation.js +0 -1
  1008. package/dist/translations/mr/data.js +0 -1
  1009. package/dist/translations/mr/forms.js +0 -1
  1010. package/dist/translations/mr/layout.js +0 -1
  1011. package/dist/translations/mr/media.js +0 -1
  1012. package/dist/translations/mr/overlays.js +0 -1
  1013. package/dist/translations/mr/retrieval.js +0 -1
  1014. package/dist/translations/mr/shared.js +0 -1
  1015. package/dist/translations/mr/utility.js +0 -1
  1016. package/dist/translations/mr/viewers.js +0 -5
  1017. package/dist/translations/mr.js +0 -1
  1018. package/dist/translations/ms/agent-tools.js +0 -1
  1019. package/dist/translations/ms/charts.js +0 -1
  1020. package/dist/translations/ms/conversation.js +0 -1
  1021. package/dist/translations/ms/data.js +0 -1
  1022. package/dist/translations/ms/forms.js +0 -1
  1023. package/dist/translations/ms/layout.js +0 -1
  1024. package/dist/translations/ms/media.js +0 -1
  1025. package/dist/translations/ms/overlays.js +0 -1
  1026. package/dist/translations/ms/retrieval.js +0 -1
  1027. package/dist/translations/ms/shared.js +0 -1
  1028. package/dist/translations/ms/utility.js +0 -1
  1029. package/dist/translations/ms/viewers.js +0 -5
  1030. package/dist/translations/ms.js +0 -1
  1031. package/dist/translations/my/agent-tools.js +0 -1
  1032. package/dist/translations/my/charts.js +0 -1
  1033. package/dist/translations/my/conversation.js +0 -1
  1034. package/dist/translations/my/data.js +0 -1
  1035. package/dist/translations/my/forms.js +0 -1
  1036. package/dist/translations/my/layout.js +0 -1
  1037. package/dist/translations/my/media.js +0 -1
  1038. package/dist/translations/my/overlays.js +0 -1
  1039. package/dist/translations/my/retrieval.js +0 -1
  1040. package/dist/translations/my/shared.js +0 -1
  1041. package/dist/translations/my/utility.js +0 -1
  1042. package/dist/translations/my/viewers.js +0 -5
  1043. package/dist/translations/my.js +0 -1
  1044. package/dist/translations/nb/agent-tools.js +0 -1
  1045. package/dist/translations/nb/charts.js +0 -1
  1046. package/dist/translations/nb/conversation.js +0 -1
  1047. package/dist/translations/nb/data.js +0 -1
  1048. package/dist/translations/nb/forms.js +0 -1
  1049. package/dist/translations/nb/layout.js +0 -1
  1050. package/dist/translations/nb/media.js +0 -1
  1051. package/dist/translations/nb/overlays.js +0 -1
  1052. package/dist/translations/nb/retrieval.js +0 -1
  1053. package/dist/translations/nb/shared.js +0 -1
  1054. package/dist/translations/nb/utility.js +0 -1
  1055. package/dist/translations/nb/viewers.js +0 -5
  1056. package/dist/translations/nb.js +0 -1
  1057. package/dist/translations/ne/agent-tools.js +0 -1
  1058. package/dist/translations/ne/charts.js +0 -1
  1059. package/dist/translations/ne/conversation.js +0 -1
  1060. package/dist/translations/ne/data.js +0 -1
  1061. package/dist/translations/ne/forms.js +0 -1
  1062. package/dist/translations/ne/layout.js +0 -1
  1063. package/dist/translations/ne/media.js +0 -1
  1064. package/dist/translations/ne/overlays.js +0 -1
  1065. package/dist/translations/ne/retrieval.js +0 -1
  1066. package/dist/translations/ne/shared.js +0 -1
  1067. package/dist/translations/ne/utility.js +0 -1
  1068. package/dist/translations/ne/viewers.js +0 -5
  1069. package/dist/translations/ne.js +0 -1
  1070. package/dist/translations/nl/agent-tools.js +0 -1
  1071. package/dist/translations/nl/charts.js +0 -1
  1072. package/dist/translations/nl/conversation.js +0 -1
  1073. package/dist/translations/nl/data.js +0 -1
  1074. package/dist/translations/nl/forms.js +0 -1
  1075. package/dist/translations/nl/layout.js +0 -1
  1076. package/dist/translations/nl/media.js +0 -1
  1077. package/dist/translations/nl/overlays.js +0 -1
  1078. package/dist/translations/nl/retrieval.js +0 -1
  1079. package/dist/translations/nl/shared.js +0 -1
  1080. package/dist/translations/nl/utility.js +0 -1
  1081. package/dist/translations/nl/viewers.js +0 -5
  1082. package/dist/translations/nl.js +0 -1
  1083. package/dist/translations/nn/agent-tools.js +0 -1
  1084. package/dist/translations/nn/charts.js +0 -1
  1085. package/dist/translations/nn/conversation.js +0 -1
  1086. package/dist/translations/nn/data.js +0 -1
  1087. package/dist/translations/nn/forms.js +0 -1
  1088. package/dist/translations/nn/layout.js +0 -1
  1089. package/dist/translations/nn/media.js +0 -1
  1090. package/dist/translations/nn/overlays.js +0 -1
  1091. package/dist/translations/nn/retrieval.js +0 -1
  1092. package/dist/translations/nn/shared.js +0 -1
  1093. package/dist/translations/nn/utility.js +0 -1
  1094. package/dist/translations/nn/viewers.js +0 -5
  1095. package/dist/translations/nn.js +0 -1
  1096. package/dist/translations/om/agent-tools.js +0 -1
  1097. package/dist/translations/om/charts.js +0 -1
  1098. package/dist/translations/om/conversation.js +0 -1
  1099. package/dist/translations/om/data.js +0 -1
  1100. package/dist/translations/om/forms.js +0 -1
  1101. package/dist/translations/om/layout.js +0 -1
  1102. package/dist/translations/om/media.js +0 -1
  1103. package/dist/translations/om/overlays.js +0 -1
  1104. package/dist/translations/om/retrieval.js +0 -1
  1105. package/dist/translations/om/shared.js +0 -1
  1106. package/dist/translations/om/utility.js +0 -1
  1107. package/dist/translations/om/viewers.js +0 -5
  1108. package/dist/translations/om.js +0 -1
  1109. package/dist/translations/or/agent-tools.js +0 -1
  1110. package/dist/translations/or/charts.js +0 -1
  1111. package/dist/translations/or/conversation.js +0 -1
  1112. package/dist/translations/or/data.js +0 -1
  1113. package/dist/translations/or/forms.js +0 -1
  1114. package/dist/translations/or/layout.js +0 -1
  1115. package/dist/translations/or/media.js +0 -1
  1116. package/dist/translations/or/overlays.js +0 -1
  1117. package/dist/translations/or/retrieval.js +0 -1
  1118. package/dist/translations/or/shared.js +0 -1
  1119. package/dist/translations/or/utility.js +0 -1
  1120. package/dist/translations/or/viewers.js +0 -5
  1121. package/dist/translations/or.js +0 -1
  1122. package/dist/translations/pa/agent-tools.js +0 -1
  1123. package/dist/translations/pa/charts.js +0 -1
  1124. package/dist/translations/pa/conversation.js +0 -1
  1125. package/dist/translations/pa/data.js +0 -1
  1126. package/dist/translations/pa/forms.js +0 -1
  1127. package/dist/translations/pa/layout.js +0 -1
  1128. package/dist/translations/pa/media.js +0 -1
  1129. package/dist/translations/pa/overlays.js +0 -1
  1130. package/dist/translations/pa/retrieval.js +0 -1
  1131. package/dist/translations/pa/shared.js +0 -1
  1132. package/dist/translations/pa/utility.js +0 -1
  1133. package/dist/translations/pa/viewers.js +0 -5
  1134. package/dist/translations/pa.js +0 -1
  1135. package/dist/translations/pcm/agent-tools.js +0 -1
  1136. package/dist/translations/pcm/charts.js +0 -1
  1137. package/dist/translations/pcm/conversation.js +0 -1
  1138. package/dist/translations/pcm/data.js +0 -1
  1139. package/dist/translations/pcm/forms.js +0 -1
  1140. package/dist/translations/pcm/layout.js +0 -1
  1141. package/dist/translations/pcm/media.js +0 -1
  1142. package/dist/translations/pcm/overlays.js +0 -1
  1143. package/dist/translations/pcm/retrieval.js +0 -1
  1144. package/dist/translations/pcm/shared.js +0 -1
  1145. package/dist/translations/pcm/utility.js +0 -1
  1146. package/dist/translations/pcm/viewers.js +0 -5
  1147. package/dist/translations/pcm.js +0 -1
  1148. package/dist/translations/pl/agent-tools.js +0 -1
  1149. package/dist/translations/pl/charts.js +0 -1
  1150. package/dist/translations/pl/conversation.js +0 -1
  1151. package/dist/translations/pl/data.js +0 -1
  1152. package/dist/translations/pl/forms.js +0 -1
  1153. package/dist/translations/pl/layout.js +0 -1
  1154. package/dist/translations/pl/media.js +0 -1
  1155. package/dist/translations/pl/overlays.js +0 -1
  1156. package/dist/translations/pl/retrieval.js +0 -1
  1157. package/dist/translations/pl/shared.js +0 -1
  1158. package/dist/translations/pl/utility.js +0 -1
  1159. package/dist/translations/pl/viewers.js +0 -5
  1160. package/dist/translations/pl.js +0 -1
  1161. package/dist/translations/pnb/agent-tools.js +0 -1
  1162. package/dist/translations/pnb/charts.js +0 -1
  1163. package/dist/translations/pnb/conversation.js +0 -1
  1164. package/dist/translations/pnb/data.js +0 -1
  1165. package/dist/translations/pnb/forms.js +0 -1
  1166. package/dist/translations/pnb/layout.js +0 -1
  1167. package/dist/translations/pnb/media.js +0 -1
  1168. package/dist/translations/pnb/overlays.js +0 -1
  1169. package/dist/translations/pnb/retrieval.js +0 -1
  1170. package/dist/translations/pnb/shared.js +0 -1
  1171. package/dist/translations/pnb/utility.js +0 -1
  1172. package/dist/translations/pnb/viewers.js +0 -5
  1173. package/dist/translations/pnb.js +0 -1
  1174. package/dist/translations/ps/agent-tools.js +0 -1
  1175. package/dist/translations/ps/charts.js +0 -1
  1176. package/dist/translations/ps/conversation.js +0 -1
  1177. package/dist/translations/ps/data.js +0 -1
  1178. package/dist/translations/ps/forms.js +0 -1
  1179. package/dist/translations/ps/layout.js +0 -1
  1180. package/dist/translations/ps/media.js +0 -1
  1181. package/dist/translations/ps/overlays.js +0 -1
  1182. package/dist/translations/ps/retrieval.js +0 -1
  1183. package/dist/translations/ps/shared.js +0 -1
  1184. package/dist/translations/ps/utility.js +0 -1
  1185. package/dist/translations/ps/viewers.js +0 -5
  1186. package/dist/translations/ps.js +0 -1
  1187. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1188. package/dist/translations/pt-BR/charts.js +0 -1
  1189. package/dist/translations/pt-BR/conversation.js +0 -1
  1190. package/dist/translations/pt-BR/data.js +0 -1
  1191. package/dist/translations/pt-BR/forms.js +0 -1
  1192. package/dist/translations/pt-BR/layout.js +0 -1
  1193. package/dist/translations/pt-BR/media.js +0 -1
  1194. package/dist/translations/pt-BR/overlays.js +0 -1
  1195. package/dist/translations/pt-BR/retrieval.js +0 -1
  1196. package/dist/translations/pt-BR/shared.js +0 -1
  1197. package/dist/translations/pt-BR/utility.js +0 -1
  1198. package/dist/translations/pt-BR/viewers.js +0 -5
  1199. package/dist/translations/pt-BR.js +0 -1
  1200. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1201. package/dist/translations/pt-PT/charts.js +0 -1
  1202. package/dist/translations/pt-PT/conversation.js +0 -1
  1203. package/dist/translations/pt-PT/data.js +0 -1
  1204. package/dist/translations/pt-PT/forms.js +0 -1
  1205. package/dist/translations/pt-PT/layout.js +0 -1
  1206. package/dist/translations/pt-PT/media.js +0 -1
  1207. package/dist/translations/pt-PT/overlays.js +0 -1
  1208. package/dist/translations/pt-PT/retrieval.js +0 -1
  1209. package/dist/translations/pt-PT/shared.js +0 -1
  1210. package/dist/translations/pt-PT/utility.js +0 -1
  1211. package/dist/translations/pt-PT/viewers.js +0 -5
  1212. package/dist/translations/pt-PT.js +0 -1
  1213. package/dist/translations/ro/agent-tools.js +0 -1
  1214. package/dist/translations/ro/charts.js +0 -1
  1215. package/dist/translations/ro/conversation.js +0 -1
  1216. package/dist/translations/ro/data.js +0 -1
  1217. package/dist/translations/ro/forms.js +0 -1
  1218. package/dist/translations/ro/layout.js +0 -1
  1219. package/dist/translations/ro/media.js +0 -1
  1220. package/dist/translations/ro/overlays.js +0 -1
  1221. package/dist/translations/ro/retrieval.js +0 -1
  1222. package/dist/translations/ro/shared.js +0 -1
  1223. package/dist/translations/ro/utility.js +0 -1
  1224. package/dist/translations/ro/viewers.js +0 -5
  1225. package/dist/translations/ro.js +0 -1
  1226. package/dist/translations/ru/agent-tools.js +0 -1
  1227. package/dist/translations/ru/charts.js +0 -1
  1228. package/dist/translations/ru/conversation.js +0 -1
  1229. package/dist/translations/ru/data.js +0 -1
  1230. package/dist/translations/ru/forms.js +0 -1
  1231. package/dist/translations/ru/layout.js +0 -1
  1232. package/dist/translations/ru/media.js +0 -1
  1233. package/dist/translations/ru/overlays.js +0 -1
  1234. package/dist/translations/ru/retrieval.js +0 -1
  1235. package/dist/translations/ru/shared.js +0 -1
  1236. package/dist/translations/ru/utility.js +0 -1
  1237. package/dist/translations/ru/viewers.js +0 -5
  1238. package/dist/translations/ru.js +0 -1
  1239. package/dist/translations/sd/agent-tools.js +0 -1
  1240. package/dist/translations/sd/charts.js +0 -1
  1241. package/dist/translations/sd/conversation.js +0 -1
  1242. package/dist/translations/sd/data.js +0 -1
  1243. package/dist/translations/sd/forms.js +0 -1
  1244. package/dist/translations/sd/layout.js +0 -1
  1245. package/dist/translations/sd/media.js +0 -1
  1246. package/dist/translations/sd/overlays.js +0 -1
  1247. package/dist/translations/sd/retrieval.js +0 -1
  1248. package/dist/translations/sd/shared.js +0 -1
  1249. package/dist/translations/sd/utility.js +0 -1
  1250. package/dist/translations/sd/viewers.js +0 -5
  1251. package/dist/translations/sd.js +0 -1
  1252. package/dist/translations/sl/agent-tools.js +0 -1
  1253. package/dist/translations/sl/charts.js +0 -1
  1254. package/dist/translations/sl/conversation.js +0 -1
  1255. package/dist/translations/sl/data.js +0 -1
  1256. package/dist/translations/sl/forms.js +0 -1
  1257. package/dist/translations/sl/layout.js +0 -1
  1258. package/dist/translations/sl/media.js +0 -1
  1259. package/dist/translations/sl/overlays.js +0 -1
  1260. package/dist/translations/sl/retrieval.js +0 -1
  1261. package/dist/translations/sl/shared.js +0 -1
  1262. package/dist/translations/sl/utility.js +0 -1
  1263. package/dist/translations/sl/viewers.js +0 -5
  1264. package/dist/translations/sl.js +0 -1
  1265. package/dist/translations/su/agent-tools.js +0 -1
  1266. package/dist/translations/su/charts.js +0 -1
  1267. package/dist/translations/su/conversation.js +0 -1
  1268. package/dist/translations/su/data.js +0 -1
  1269. package/dist/translations/su/forms.js +0 -1
  1270. package/dist/translations/su/layout.js +0 -1
  1271. package/dist/translations/su/media.js +0 -1
  1272. package/dist/translations/su/overlays.js +0 -1
  1273. package/dist/translations/su/retrieval.js +0 -1
  1274. package/dist/translations/su/shared.js +0 -1
  1275. package/dist/translations/su/utility.js +0 -1
  1276. package/dist/translations/su/viewers.js +0 -5
  1277. package/dist/translations/su.js +0 -1
  1278. package/dist/translations/sv/agent-tools.js +0 -1
  1279. package/dist/translations/sv/charts.js +0 -1
  1280. package/dist/translations/sv/conversation.js +0 -1
  1281. package/dist/translations/sv/data.js +0 -1
  1282. package/dist/translations/sv/forms.js +0 -1
  1283. package/dist/translations/sv/layout.js +0 -1
  1284. package/dist/translations/sv/media.js +0 -1
  1285. package/dist/translations/sv/overlays.js +0 -1
  1286. package/dist/translations/sv/retrieval.js +0 -1
  1287. package/dist/translations/sv/shared.js +0 -1
  1288. package/dist/translations/sv/utility.js +0 -1
  1289. package/dist/translations/sv/viewers.js +0 -5
  1290. package/dist/translations/sv.js +0 -1
  1291. package/dist/translations/sw/agent-tools.js +0 -1
  1292. package/dist/translations/sw/charts.js +0 -1
  1293. package/dist/translations/sw/conversation.js +0 -1
  1294. package/dist/translations/sw/data.js +0 -1
  1295. package/dist/translations/sw/forms.js +0 -1
  1296. package/dist/translations/sw/layout.js +0 -1
  1297. package/dist/translations/sw/media.js +0 -1
  1298. package/dist/translations/sw/overlays.js +0 -1
  1299. package/dist/translations/sw/retrieval.js +0 -1
  1300. package/dist/translations/sw/shared.js +0 -1
  1301. package/dist/translations/sw/utility.js +0 -1
  1302. package/dist/translations/sw/viewers.js +0 -5
  1303. package/dist/translations/sw.js +0 -1
  1304. package/dist/translations/ta/agent-tools.js +0 -1
  1305. package/dist/translations/ta/charts.js +0 -1
  1306. package/dist/translations/ta/conversation.js +0 -1
  1307. package/dist/translations/ta/data.js +0 -1
  1308. package/dist/translations/ta/forms.js +0 -1
  1309. package/dist/translations/ta/layout.js +0 -1
  1310. package/dist/translations/ta/media.js +0 -1
  1311. package/dist/translations/ta/overlays.js +0 -1
  1312. package/dist/translations/ta/retrieval.js +0 -1
  1313. package/dist/translations/ta/shared.js +0 -1
  1314. package/dist/translations/ta/utility.js +0 -1
  1315. package/dist/translations/ta/viewers.js +0 -5
  1316. package/dist/translations/ta.js +0 -1
  1317. package/dist/translations/te/agent-tools.js +0 -1
  1318. package/dist/translations/te/charts.js +0 -1
  1319. package/dist/translations/te/conversation.js +0 -1
  1320. package/dist/translations/te/data.js +0 -1
  1321. package/dist/translations/te/forms.js +0 -1
  1322. package/dist/translations/te/layout.js +0 -1
  1323. package/dist/translations/te/media.js +0 -1
  1324. package/dist/translations/te/overlays.js +0 -1
  1325. package/dist/translations/te/retrieval.js +0 -1
  1326. package/dist/translations/te/shared.js +0 -1
  1327. package/dist/translations/te/utility.js +0 -1
  1328. package/dist/translations/te/viewers.js +0 -5
  1329. package/dist/translations/te.js +0 -1
  1330. package/dist/translations/th/agent-tools.js +0 -1
  1331. package/dist/translations/th/charts.js +0 -1
  1332. package/dist/translations/th/conversation.js +0 -1
  1333. package/dist/translations/th/data.js +0 -1
  1334. package/dist/translations/th/forms.js +0 -1
  1335. package/dist/translations/th/layout.js +0 -1
  1336. package/dist/translations/th/media.js +0 -1
  1337. package/dist/translations/th/overlays.js +0 -1
  1338. package/dist/translations/th/retrieval.js +0 -1
  1339. package/dist/translations/th/shared.js +0 -1
  1340. package/dist/translations/th/utility.js +0 -1
  1341. package/dist/translations/th/viewers.js +0 -5
  1342. package/dist/translations/th.js +0 -1
  1343. package/dist/translations/tl/agent-tools.js +0 -1
  1344. package/dist/translations/tl/charts.js +0 -1
  1345. package/dist/translations/tl/conversation.js +0 -1
  1346. package/dist/translations/tl/data.js +0 -1
  1347. package/dist/translations/tl/forms.js +0 -1
  1348. package/dist/translations/tl/layout.js +0 -1
  1349. package/dist/translations/tl/media.js +0 -1
  1350. package/dist/translations/tl/overlays.js +0 -1
  1351. package/dist/translations/tl/retrieval.js +0 -1
  1352. package/dist/translations/tl/shared.js +0 -1
  1353. package/dist/translations/tl/utility.js +0 -1
  1354. package/dist/translations/tl/viewers.js +0 -5
  1355. package/dist/translations/tl.js +0 -1
  1356. package/dist/translations/tr/agent-tools.js +0 -1
  1357. package/dist/translations/tr/charts.js +0 -1
  1358. package/dist/translations/tr/conversation.js +0 -1
  1359. package/dist/translations/tr/data.js +0 -1
  1360. package/dist/translations/tr/forms.js +0 -1
  1361. package/dist/translations/tr/layout.js +0 -1
  1362. package/dist/translations/tr/media.js +0 -1
  1363. package/dist/translations/tr/overlays.js +0 -1
  1364. package/dist/translations/tr/retrieval.js +0 -1
  1365. package/dist/translations/tr/shared.js +0 -1
  1366. package/dist/translations/tr/utility.js +0 -1
  1367. package/dist/translations/tr/viewers.js +0 -5
  1368. package/dist/translations/tr.js +0 -1
  1369. package/dist/translations/uk/agent-tools.js +0 -1
  1370. package/dist/translations/uk/charts.js +0 -1
  1371. package/dist/translations/uk/conversation.js +0 -1
  1372. package/dist/translations/uk/data.js +0 -1
  1373. package/dist/translations/uk/forms.js +0 -1
  1374. package/dist/translations/uk/layout.js +0 -1
  1375. package/dist/translations/uk/media.js +0 -1
  1376. package/dist/translations/uk/overlays.js +0 -1
  1377. package/dist/translations/uk/retrieval.js +0 -1
  1378. package/dist/translations/uk/shared.js +0 -1
  1379. package/dist/translations/uk/utility.js +0 -1
  1380. package/dist/translations/uk/viewers.js +0 -5
  1381. package/dist/translations/uk.js +0 -1
  1382. package/dist/translations/ur/agent-tools.js +0 -1
  1383. package/dist/translations/ur/charts.js +0 -1
  1384. package/dist/translations/ur/conversation.js +0 -1
  1385. package/dist/translations/ur/data.js +0 -1
  1386. package/dist/translations/ur/forms.js +0 -1
  1387. package/dist/translations/ur/layout.js +0 -1
  1388. package/dist/translations/ur/media.js +0 -1
  1389. package/dist/translations/ur/overlays.js +0 -1
  1390. package/dist/translations/ur/retrieval.js +0 -1
  1391. package/dist/translations/ur/shared.js +0 -1
  1392. package/dist/translations/ur/utility.js +0 -1
  1393. package/dist/translations/ur/viewers.js +0 -5
  1394. package/dist/translations/ur.js +0 -1
  1395. package/dist/translations/uz/agent-tools.js +0 -1
  1396. package/dist/translations/uz/charts.js +0 -1
  1397. package/dist/translations/uz/conversation.js +0 -1
  1398. package/dist/translations/uz/data.js +0 -1
  1399. package/dist/translations/uz/forms.js +0 -1
  1400. package/dist/translations/uz/layout.js +0 -1
  1401. package/dist/translations/uz/media.js +0 -1
  1402. package/dist/translations/uz/overlays.js +0 -1
  1403. package/dist/translations/uz/retrieval.js +0 -1
  1404. package/dist/translations/uz/shared.js +0 -1
  1405. package/dist/translations/uz/utility.js +0 -1
  1406. package/dist/translations/uz/viewers.js +0 -5
  1407. package/dist/translations/uz.js +0 -1
  1408. package/dist/translations/vi/agent-tools.js +0 -1
  1409. package/dist/translations/vi/charts.js +0 -1
  1410. package/dist/translations/vi/conversation.js +0 -1
  1411. package/dist/translations/vi/data.js +0 -1
  1412. package/dist/translations/vi/forms.js +0 -1
  1413. package/dist/translations/vi/layout.js +0 -1
  1414. package/dist/translations/vi/media.js +0 -1
  1415. package/dist/translations/vi/overlays.js +0 -1
  1416. package/dist/translations/vi/retrieval.js +0 -1
  1417. package/dist/translations/vi/shared.js +0 -1
  1418. package/dist/translations/vi/utility.js +0 -1
  1419. package/dist/translations/vi/viewers.js +0 -5
  1420. package/dist/translations/vi.js +0 -1
  1421. package/dist/translations/yo/agent-tools.js +0 -1
  1422. package/dist/translations/yo/charts.js +0 -1
  1423. package/dist/translations/yo/conversation.js +0 -1
  1424. package/dist/translations/yo/data.js +0 -1
  1425. package/dist/translations/yo/forms.js +0 -1
  1426. package/dist/translations/yo/layout.js +0 -1
  1427. package/dist/translations/yo/media.js +0 -1
  1428. package/dist/translations/yo/overlays.js +0 -1
  1429. package/dist/translations/yo/retrieval.js +0 -1
  1430. package/dist/translations/yo/shared.js +0 -1
  1431. package/dist/translations/yo/utility.js +0 -1
  1432. package/dist/translations/yo/viewers.js +0 -5
  1433. package/dist/translations/yo.js +0 -1
  1434. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1435. package/dist/translations/zh-CN/charts.js +0 -1
  1436. package/dist/translations/zh-CN/conversation.js +0 -1
  1437. package/dist/translations/zh-CN/data.js +0 -1
  1438. package/dist/translations/zh-CN/forms.js +0 -1
  1439. package/dist/translations/zh-CN/layout.js +0 -1
  1440. package/dist/translations/zh-CN/media.js +0 -1
  1441. package/dist/translations/zh-CN/overlays.js +0 -1
  1442. package/dist/translations/zh-CN/retrieval.js +0 -1
  1443. package/dist/translations/zh-CN/shared.js +0 -1
  1444. package/dist/translations/zh-CN/utility.js +0 -1
  1445. package/dist/translations/zh-CN/viewers.js +0 -5
  1446. package/dist/translations/zh-CN.js +0 -1
  1447. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1448. package/dist/translations/zh-TW/charts.js +0 -1
  1449. package/dist/translations/zh-TW/conversation.js +0 -1
  1450. package/dist/translations/zh-TW/data.js +0 -1
  1451. package/dist/translations/zh-TW/forms.js +0 -1
  1452. package/dist/translations/zh-TW/layout.js +0 -1
  1453. package/dist/translations/zh-TW/media.js +0 -1
  1454. package/dist/translations/zh-TW/overlays.js +0 -1
  1455. package/dist/translations/zh-TW/retrieval.js +0 -1
  1456. package/dist/translations/zh-TW/shared.js +0 -1
  1457. package/dist/translations/zh-TW/utility.js +0 -1
  1458. package/dist/translations/zh-TW/viewers.js +0 -5
  1459. package/dist/translations/zh-TW.js +0 -1
  1460. package/dist/translations/zu/agent-tools.js +0 -1
  1461. package/dist/translations/zu/charts.js +0 -1
  1462. package/dist/translations/zu/conversation.js +0 -1
  1463. package/dist/translations/zu/data.js +0 -1
  1464. package/dist/translations/zu/forms.js +0 -1
  1465. package/dist/translations/zu/layout.js +0 -1
  1466. package/dist/translations/zu/media.js +0 -1
  1467. package/dist/translations/zu/overlays.js +0 -1
  1468. package/dist/translations/zu/retrieval.js +0 -1
  1469. package/dist/translations/zu/shared.js +0 -1
  1470. package/dist/translations/zu/utility.js +0 -1
  1471. package/dist/translations/zu/viewers.js +0 -5
  1472. package/dist/translations/zu.js +0 -1
  1473. package/vscode-css-data.json +0 -1
  1474. package/vscode-html-data.json +0 -1
  1475. package/web-types.json +0 -1
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{utcDate}from"../../forms/date-picker/calendar-core.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{srOnly}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,isResourceLimitError,LyraResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{loadIcal}from"./calendar-loader.js";import{styles}from"./calendar-viewer.styles.js";import{viewerFrameStyles}from"../viewer-frame.js";import{getDateTimeFormat}from"../../../internal/intl-cache.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.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_calendarViewerEmpty,LYRA_DEFAULT_calendarViewerLabel,LYRA_DEFAULT_calendarViewerMissingParser,LYRA_DEFAULT_calendarViewerNoSummary,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeCalendar,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";const MAX_CALENDAR_EVENTS=250,MAX_CALENDAR_RENDERED_CHARS=2*1024*1024;function formatEventTime(event,locale){if(!event.start)return"";if(event.startKind==="date"){const formatter2=getDateTimeFormat(locale,{dateStyle:"medium",timeZone:"UTC"});if(!event.end||event.endKind!=="date")return formatter2.format(event.start);const inclusiveEnd=new Date(event.end.getTime());return inclusiveEnd.setUTCDate(inclusiveEnd.getUTCDate()-1),inclusiveEnd.getTime()<=event.start.getTime()?formatter2.format(event.start):formatter2.formatRange(event.start,inclusiveEnd)}const formatter=getDateTimeFormat(locale,{dateStyle:"medium",timeStyle:"short"});return event.end&&event.endKind==="date-time"?formatter.formatRange(event.start,event.end):formatter.format(event.start)}function parseCalendarTime(time){if(!time)return null;let value;if(time.isDate===!0&&Number.isInteger(time.year)&&Number.isInteger(time.month)&&Number.isInteger(time.day)){if(value=utcDate(time.year,time.month-1,time.day),value.getUTCFullYear()!==time.year||value.getUTCMonth()+1!==time.month||value.getUTCDate()!==time.day)throw new Error("Invalid all-day calendar date.")}else value=time.toJSDate();if(!Number.isFinite(value.getTime()))throw new Error("Invalid calendar date.");return{value,kind:time.isDate===!0?"date":"date-time"}}function eventTime(read){try{return parseCalendarTime(read())}catch{return null}}class LyraCalendarViewerBase extends LyraElement{}class LyraCalendarViewer extends TextViewerTarget(LyraCalendarViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.fetchState={kind:"idle"},this.generation=0,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>{this.generation++})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,calendarViewerEmpty:LYRA_DEFAULT_calendarViewerEmpty,calendarViewerLabel:LYRA_DEFAULT_calendarViewerLabel,calendarViewerMissingParser:LYRA_DEFAULT_calendarViewerMissingParser,calendarViewerNoSummary:LYRA_DEFAULT_calendarViewerNoSummary,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeCalendar:LYRA_DEFAULT_documentPreviewTypeCalendar,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,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()}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&(this.requestUpdate(),this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()}))}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}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()})}async load(){this.lastLoadSrc=this.src;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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const source=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;const events=await this.parse(source,generation);if(!this.isConnected||generation!==this.generation||!events)return;generation===this.generation&&(this.fetchState={kind:"loaded",events})}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})}}async parse(source,generation){const ical=await loadIcal();if(!this.isConnected||generation!==this.generation)return;if(!ical)throw new LyraUserFacingError(this.localize("calendarViewerMissingParser"));if((source.match(/^BEGIN:VEVENT\r?$/gim)?.length??0)>MAX_CALENDAR_EVENTS)throw new LyraResourceLimitError("The calendar contains too many events.");const subcomponents=new ical.Component(ical.parse(source)).getAllSubcomponents("vevent");if(subcomponents.length>MAX_CALENDAR_EVENTS)throw new LyraResourceLimitError("The calendar contains too many events.");let renderedChars=0;return subcomponents.map(subcomponent=>{const event=new ical.Event(subcomponent),parsedStart=eventTime(()=>event.startDate),parsedEnd=eventTime(()=>event.endDate),end=parsedStart&&parsedEnd&&(parsedStart.kind!==parsedEnd.kind||parsedEnd.value.getTime()<parsedStart.value.getTime())?null:parsedEnd,uid=event.uid??"",summary=event.summary??"",location=event.location??"",description=event.description??"";if(renderedChars+=uid.length+summary.length+location.length+description.length,renderedChars>MAX_CALENDAR_RENDERED_CHARS)throw new LyraResourceLimitError("The calendar contains too much rendered text.");return{uid,summary,start:parsedStart?.value??null,end:end?.value??null,startKind:parsedStart?.kind??null,endKind:end?.kind??null,location,description}})}renderEvent(event){return html`<li part="event"><span part="event-summary">${event.summary||this.localize("calendarViewerNoSummary")}</span><span part="event-time">${formatEventTime(event,this.effectiveLocale)}</span>${event.location?html`<span part="event-location">${event.location}</span>`:nothing}${event.description?html`<p part="event-description">${event.description}</p>`:nothing}</li>`}renderBody(){switch(this.fetchState.kind){case"loaded":return this.fetchState.events.length?html`<ul part="event-list">${this.fetchState.events.map(event=>this.renderEvent(event))}</ul>`:html`<p class="empty-note">${this.localize("calendarViewerEmpty")}</p>`;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("documentPreviewTypeCalendar")})}</p>`}}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" role=${viewerSemanticRole(this,"region")??nothing} style=${maxHeight?styleMap({"--lr-calendar-viewer-max-height":maxHeight}):nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("calendarViewerLabel"))??nothing} aria-busy=${this.fetchState.kind==="loading"?"true":"false"}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraCalendarViewer.prototype,"src",void 0),__decorate([property()],LyraCalendarViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraCalendarViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraCalendarViewer.prototype,"fetchState",void 0);export{LyraCalendarViewer};
1
+ import{__decorate}from"tslib";import{utcDate}from"../../forms/date-picker/calendar-core.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{srOnly}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import{TextViewerTarget}from"../../../internal/text-viewer-target.js";import{isAbortError,isResourceLimitError,LyraResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{loadIcal}from"./calendar-loader.js";import{styles}from"./calendar-viewer.styles.js";import{viewerFrameStyles}from"../viewer-frame.js";import{getDateTimeFormat}from"../../../internal/intl-cache.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.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_calendarViewerEmpty,LYRA_DEFAULT_calendarViewerLabel,LYRA_DEFAULT_calendarViewerMissingParser,LYRA_DEFAULT_calendarViewerNoSummary,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeCalendar,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";const MAX_CALENDAR_EVENTS=250,MAX_CALENDAR_RENDERED_CHARS=2*1024*1024;function formatEventTime(event,locale){if(!event.start)return"";if(event.startKind==="date"){const formatter2=getDateTimeFormat(locale,{dateStyle:"medium",timeZone:"UTC"});if(!event.end||event.endKind!=="date")return formatter2.format(event.start);const inclusiveEnd=new Date(event.end.getTime());return inclusiveEnd.setUTCDate(inclusiveEnd.getUTCDate()-1),inclusiveEnd.getTime()<=event.start.getTime()?formatter2.format(event.start):formatter2.formatRange(event.start,inclusiveEnd)}const formatter=getDateTimeFormat(locale,{dateStyle:"medium",timeStyle:"short"});return event.end&&event.endKind==="date-time"?formatter.formatRange(event.start,event.end):formatter.format(event.start)}function parseCalendarTime(time){if(!time)return null;let value;if(time.isDate===!0&&Number.isInteger(time.year)&&Number.isInteger(time.month)&&Number.isInteger(time.day)){if(value=utcDate(time.year,time.month-1,time.day),value.getUTCFullYear()!==time.year||value.getUTCMonth()+1!==time.month||value.getUTCDate()!==time.day)throw new Error("Invalid all-day calendar date.")}else value=time.toJSDate();if(!Number.isFinite(value.getTime()))throw new Error("Invalid calendar date.");return{value,kind:time.isDate===!0?"date":"date-time"}}function eventTime(read){try{return parseCalendarTime(read())}catch{return null}}class LyraCalendarViewerBase extends LyraElement{}class LyraCalendarViewer extends TextViewerTarget(LyraCalendarViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.fetchState={kind:"idle"},this.generation=0,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>{this.generation++})}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,calendarViewerEmpty:LYRA_DEFAULT_calendarViewerEmpty,calendarViewerLabel:LYRA_DEFAULT_calendarViewerLabel,calendarViewerMissingParser:LYRA_DEFAULT_calendarViewerMissingParser,calendarViewerNoSummary:LYRA_DEFAULT_calendarViewerNoSummary,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeCalendar:LYRA_DEFAULT_documentPreviewTypeCalendar,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,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()}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&(this.requestUpdate(),this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()}))}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}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()})}async load(){this.lastLoadSrc=this.src;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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const source=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;const events=await this.parse(source,generation);if(!this.isConnected||generation!==this.generation||!events)return;generation===this.generation&&(this.fetchState={kind:"loaded",events})}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})}}async parse(source,generation){const ical=await loadIcal();if(!this.isConnected||generation!==this.generation)return;if(!ical)throw new LyraUserFacingError(this.localize("calendarViewerMissingParser"));if((source.match(/^BEGIN:VEVENT\r?$/gim)?.length??0)>MAX_CALENDAR_EVENTS)throw new LyraResourceLimitError("The calendar contains too many events.");const subcomponents=new ical.Component(ical.parse(source)).getAllSubcomponents("vevent");if(subcomponents.length>MAX_CALENDAR_EVENTS)throw new LyraResourceLimitError("The calendar contains too many events.");let renderedChars=0;return subcomponents.map(subcomponent=>{const event=new ical.Event(subcomponent),parsedStart=eventTime(()=>event.startDate),parsedEnd=eventTime(()=>event.endDate),end=parsedStart&&parsedEnd&&(parsedStart.kind!==parsedEnd.kind||parsedEnd.value.getTime()<parsedStart.value.getTime())?null:parsedEnd,uid=event.uid??"",summary=event.summary??"",location=event.location??"",description=event.description??"";if(renderedChars+=uid.length+summary.length+location.length+description.length,renderedChars>MAX_CALENDAR_RENDERED_CHARS)throw new LyraResourceLimitError("The calendar contains too much rendered text.");return{uid,summary,start:parsedStart?.value??null,end:end?.value??null,startKind:parsedStart?.kind??null,endKind:end?.kind??null,location,description}})}renderEvent(event){return html`<li part="event"><span part="event-summary">${event.summary||this.localize("calendarViewerNoSummary")}</span><span part="event-time">${formatEventTime(event,this.effectiveLocale)}</span>${event.location?html`<span part="event-location">${event.location}</span>`:nothing}${event.description?html`<p part="event-description">${event.description}</p>`:nothing}</li>`}renderBody(){switch(this.fetchState.kind){case"loaded":return this.fetchState.events.length?html`<ul part="event-list">${this.fetchState.events.map(event=>this.renderEvent(event))}</ul>`:html`<p class="empty-note">${this.localize("calendarViewerEmpty")}</p>`;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("documentPreviewTypeCalendar")})}</p>`}}textContentRoot(){return this.fetchState.kind==="loaded"&&this.fetchState.events.length>0?super.textContentRoot():null}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" role=${viewerSemanticRole(this,"region")??nothing} style=${maxHeight?styleMap({"--lr-calendar-viewer-max-height":maxHeight}):nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("calendarViewerLabel"))??nothing} aria-busy=${this.fetchState.kind==="loading"?"true":"false"}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraCalendarViewer.prototype,"src",void 0),__decorate([property()],LyraCalendarViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraCalendarViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraCalendarViewer.prototype,"fetchState",void 0);export{LyraCalendarViewer};
@@ -45,4 +45,6 @@ headingLevel:LyraHeadingLevel;
45
45
  /** CSS length that caps the scrollable body; invalid values are ignored. */
46
46
  maxHeight:string;
47
47
  /** Shared text search and anchor-target API for the rendered contact cards. */
48
- search(query:string):Promise<number>;searchNext():Promise<boolean>;searchPrevious():Promise<boolean>;clearSearch():void;private fetchState;private generation;private lastLoadSrc;private readonly announcements;connectedCallback():void;private readonly detached;disconnectedCallback():void;adoptedCallback():void;protected updated(changed:PropertyValues):void;private load;private formatList;private formatAddress;private formatType;private formatTypedValue;private renderContact;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-contact-viewer':LyraContactViewer;}}export{};
48
+ search(query:string):Promise<number>;searchNext():Promise<boolean>;searchPrevious():Promise<boolean>;clearSearch():void;private fetchState;private generation;private lastLoadSrc;private readonly announcements;connectedCallback():void;private readonly detached;disconnectedCallback():void;adoptedCallback():void;protected updated(changed:PropertyValues):void;private load;private formatList;private formatAddress;private formatType;private formatTypedValue;private renderContact;private renderBody;
49
+ /** Only the loaded content is searchable and quotable, never the empty-note, spinner or error text. */
50
+ protected textContentRoot():Element|null;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-contact-viewer':LyraContactViewer;}}export{};
@@ -9,4 +9,4 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
9
9
  ${contact.tel.length?html`<ul part="contact-tel" aria-label=${this.localize("contactViewerPhoneLabel")}>${contact.tel.map(tel=>html`<li>${this.formatTypedValue(tel.value,tel.types)}</li>`)}</ul>`:nothing}
10
10
  ${contact.email.length?html`<ul part="contact-email" aria-label=${this.localize("contactViewerEmailLabel")}>${contact.email.map(email=>html`<li>${this.formatTypedValue(email.value,email.types)}</li>`)}</ul>`:nothing}
11
11
  ${contact.adr.length?html`<ul part="contact-adr" aria-label=${this.localize("contactViewerAddressLabel")}>${contact.adr.map(address=>html`<li>${this.formatTypedValue(this.formatAddress(address),address.types)}</li>`)}</ul>`:nothing}
12
- </article>`}renderBody(){switch(this.fetchState.kind){case"loaded":return html`${this.fetchState.contacts.map(contact=>this.renderContact(contact))}`;case"loading":return renderViewerLoading(this.localize("loadingDocument"));case"empty":return html`<p class="empty-note">${this.localize("contactViewerNoContacts")}</p>`;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("documentPreviewTypeContact")})}</p>`}}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" role=${viewerSemanticRole(this,"region")??nothing} style=${maxHeight?styleMap({"--lr-contact-viewer-max-height":maxHeight}):nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("contactViewerLabel"))??nothing} aria-busy=${this.fetchState.kind==="loading"?"true":"false"}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraContactViewer.prototype,"src",void 0),__decorate([property()],LyraContactViewer.prototype,"name",void 0),__decorate([property({attribute:"heading-level",reflect:!0})],LyraContactViewer.prototype,"headingLevel",void 0),__decorate([property({attribute:"max-height"})],LyraContactViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraContactViewer.prototype,"fetchState",void 0);export{LyraContactViewer};
12
+ </article>`}renderBody(){switch(this.fetchState.kind){case"loaded":return html`${this.fetchState.contacts.map(contact=>this.renderContact(contact))}`;case"loading":return renderViewerLoading(this.localize("loadingDocument"));case"empty":return html`<p class="empty-note">${this.localize("contactViewerNoContacts")}</p>`;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("documentPreviewTypeContact")})}</p>`}}textContentRoot(){return this.fetchState.kind==="loaded"?super.textContentRoot():null}render(){const maxHeight=sanitizeCssLength(this.maxHeight);return html`<div part="base" role=${viewerSemanticRole(this,"region")??nothing} style=${maxHeight?styleMap({"--lr-contact-viewer-max-height":maxHeight}):nothing} aria-label=${viewerSemanticLabel(this,this.name||this.localize("contactViewerLabel"))??nothing} aria-busy=${this.fetchState.kind==="loading"?"true":"false"}><div part="body">${this.renderBody()}</div>${this.renderAnchorLiveRegion()}</div>`}}__decorate([property()],LyraContactViewer.prototype,"src",void 0),__decorate([property()],LyraContactViewer.prototype,"name",void 0),__decorate([property({attribute:"heading-level",reflect:!0})],LyraContactViewer.prototype,"headingLevel",void 0),__decorate([property({attribute:"max-height"})],LyraContactViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraContactViewer.prototype,"fetchState",void 0);export{LyraContactViewer};
@@ -70,7 +70,7 @@ withoutHeaderRow:boolean;
70
70
  /** CSS length that caps the scrollable body; invalid values are ignored. */
71
71
  maxHeight:string;
72
72
  /** Anchor kinds this viewer resolves via `scrollToAnchor()`. */
73
- readonly anchorKinds:readonly LyraAnchorKind[];private fetchState;private activeRowKey;private cellHighlights;private searchMatches;private searchMatchCountExact;private searchActiveIndex;private searchQuery;private lastSearchLocale;private pendingSearchResetEvent;private loadTask;private loadLibrary;private lastLoadSrc;private readonly announcements;private readonly tableScroll;private readonly detached;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private load;private cellHighlightsForRow;private renderCell;private renderRow;private jumpToCell;protected applyAnchor(anchor:LyraAnchor):Promise<boolean>;private scrollColumnIntoView;
73
+ readonly anchorKinds:readonly LyraAnchorKind[];private fetchState;private loadTask;private loadLibrary;private readonly table;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private load;private renderCell;private renderRow;private jumpToCell;protected applyAnchor(anchor:LyraAnchor):Promise<boolean>;private scrollColumnIntoView;
74
74
  /** Case-insensitive substring search over every raw-grid cell's stringified value (the same
75
75
  * stringification `cell()` renders), ordered row then column -- the header row is included when
76
76
  * present, the same raw-grid convention `cell-range` anchors use. An empty/whitespace-only query
@@ -85,4 +85,4 @@ searchNext():Promise<boolean>;
85
85
  searchPrevious():Promise<boolean>;
86
86
  /** Clears the query, matches, and active index, and resets `lr-search-change` to a
87
87
  * 0-match/no-active-index state. */
88
- clearSearch():void;private emitSearchChange;private stopInternalEvent;private virtualListInputsCache?;private virtualListInputs;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-csv-viewer':LyraCsvViewer;}}
88
+ clearSearch():void;private stopInternalEvent;private virtualListInputsCache?;private virtualListInputs;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-csv-viewer':LyraCsvViewer;}}
@@ -1,25 +1,11 @@
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{LyraElement}from"../../../internal/lyra-element.js";import{tag}from"../../../internal/prefix.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{hostAriaLabel,srOnly}from"../../../internal/a11y.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{TableViewerScrollController,tableHighlightsForColumn,tableHighlightsForRow}from"../table-viewer-shared.js";import{advanceViewerSearchIndex,viewerSearchDetail}from"../../../internal/viewer-search.js";import{DocumentAnchorTarget,prioritizedHighlightCandidates}from"../../../internal/anchor-target.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{parseCellRange}from"../../../internal/cell-range.js";import{loadPapaParseCached}from"../../../internal/papaparse-loader.js";import{styles}from"./csv-viewer.styles.js";import{delimitedCellText as cell,delimitedColumnCount as columns,parseDelimitedGrid}from"../../../internal/delimited-data.js";import{LatestTask}from"../../../internal/latest-task.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_csvViewerLabel,LYRA_DEFAULT_csvViewerUnavailable,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_noData,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const MAX_SEARCH_MATCHES=1e3;function headerOffset(hasHeaderRow){return hasHeaderRow?1:0}function indexKeyFunction(_item,index){return index}class LyraCsvViewerBase extends LyraElement{}class LyraCsvViewer extends DocumentAnchorTarget(LyraCsvViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.withoutHeaderRow=!1,this.maxHeight="",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.activeRowKey="",this.cellHighlights=[],this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.searchQuery="",this.lastSearchLocale="",this.pendingSearchResetEvent=!1,this.loadTask=new LatestTask,this.loadLibrary=loadPapaParseCached,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.tableScroll=new TableViewerScrollController(this),this.detached=new DeferredTeardown(()=>{this.loadTask.next(),this.tableScroll.cancel()}),this.stopInternalEvent=event=>{event.stopPropagation()}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,csvViewerLabel:LYRA_DEFAULT_csvViewerLabel,csvViewerUnavailable:LYRA_DEFAULT_csvViewerUnavailable,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loadingDocument:LYRA_DEFAULT_loadingDocument,noData:LYRA_DEFAULT_noData,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}static{this.styles=[LyraElement.styles,styles,srOnly,viewerLoadingStyles]}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.tableScroll.cancel(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&(this.pendingSearchResetEvent||=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.searchActiveIndex!==-1,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey=""),(changed.has("highlights")||changed.has("activeHighlightId"))&&(this.cellHighlights=prioritizedHighlightCandidates(this.highlights,this.activeHighlightId).flatMap(highlight=>{if(highlight.anchor.kind!=="cell-range"||highlight.anchor.sheet)return[];const parsed=parseCellRange(highlight.anchor.range);return parsed?[{highlight,parsed}]:[]}))}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()}),changed.has("src")&&this.pendingSearchResetEvent&&(this.pendingSearchResetEvent=!1,this.emitSearchChange());const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=!!this.searchQuery;this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}async load(){this.lastLoadSrc=this.src;const generation=this.loadTask.next(),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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const library=await this.loadLibrary();if(!this.isConnected||!this.loadTask.isCurrent(generation))return;if(!library){const error=new LyraUserFacingError(this.localize("csvViewerUnavailable"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}const source=await readResponseText(response);if(!this.isConnected||!this.loadTask.isCurrent(generation))return;const result=parseDelimitedGrid(library,source);if(!this.isConnected||!this.loadTask.isCurrent(generation)||(this.fetchState={kind:"loaded",rows:result.data},this.searchQuery&&await this.search(this.searchQuery),!this.isConnected||!this.loadTask.isCurrent(generation)))return;result.errors.length&&this.emit("lr-viewer-diagnostic",{diagnostic:Object.freeze({code:"delimited-parse-diagnostic",severity:"warning",fatal:!1,source:"papaparse",cause:result.errors})})}catch(error){if(isAbortError(error)||!this.isConnected||!this.loadTask.isCurrent(generation))return;this.fetchState={kind:"error",message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}cellHighlightsForRow(rawRow){return tableHighlightsForRow(this.cellHighlights,rawRow)}renderCell(value,colIndex,rowHighlights,role){const colHighlights=tableHighlightsForColumn(rowHighlights,colIndex);if(!colHighlights.length)return html`<div part="cell" role=${role}>${cell(value)}</div>`;const active=colHighlights.find(entry=>entry.highlight.id===this.activeHighlightId),primary=active??colHighlights[0],text=cell(value),accessibleLabel=primary.highlight.label?this.localize("cellHighlightWithLabel",void 0,{value:text,label:primary.highlight.label}):this.localize("highlightWithLabel",void 0,{label:text});return html`<div
2
- part="cell cell-highlight"
3
- role=${role}
4
- ?data-active=${!!active}
5
- style=${active?"--_lr-csv-viewer-highlight-color: var(--lr-color-warning, var(--lr-color-brand))":""}
6
- >
7
- <button
8
- part="cell-highlight-action"
9
- type="button"
10
- aria-label=${accessibleLabel}
11
- @click=${()=>{this.emit("lr-highlight-activate",{highlightId:primary.highlight.id})}}
12
- >
13
- ${text}
14
- </button>
15
- </div>`}renderRow(row,count,part,rawRow){const rowHighlights=this.cellHighlightsForRow(rawRow),header=part==="header-row";return html`<div
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{LyraElement}from"../../../internal/lyra-element.js";import{tag}from"../../../internal/prefix.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{hostAriaLabel,srOnly}from"../../../internal/a11y.js";import{TableViewerController}from"../table-viewer-shared.js";import{DocumentAnchorTarget}from"../../../internal/anchor-target.js";import{parseCellRange}from"../../../internal/cell-range.js";import{loadPapaParseCached}from"../../../internal/papaparse-loader.js";import{styles}from"./csv-viewer.styles.js";import{delimitedCellText as cell,delimitedColumnCount as columns,parseDelimitedGrid}from"../../../internal/delimited-data.js";import{LatestTask}from"../../../internal/latest-task.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_csvViewerLabel,LYRA_DEFAULT_csvViewerUnavailable,LYRA_DEFAULT_details,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loading,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";function headerOffset(hasHeaderRow){return hasHeaderRow?1:0}function indexKeyFunction(_item,index){return index}class LyraCsvViewerBase extends LyraElement{}class LyraCsvViewer extends DocumentAnchorTarget(LyraCsvViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.withoutHeaderRow=!1,this.maxHeight="",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.loadTask=new LatestTask,this.loadLibrary=loadPapaParseCached,this.table=new TableViewerController(this,{emitSearch:detail=>this.emit("lr-search-change",detail),emitActivate:highlightId=>this.emit("lr-highlight-activate",{highlightId}),localize:(key,fallback,values)=>this.localize(key,fallback,values),locale:()=>this.effectiveLocale,schedule:(callback,key)=>this.scheduleAfterUpdate(callback,key),load:()=>this.load(),research:query=>this.search(query),jump:match=>this.jumpToCell(match.row,match.col),teardown:()=>this.loadTask.next()}),this.stopInternalEvent=event=>{event.stopPropagation()}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,csvViewerLabel:LYRA_DEFAULT_csvViewerLabel,csvViewerUnavailable:LYRA_DEFAULT_csvViewerUnavailable,details:LYRA_DEFAULT_details,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loading:LYRA_DEFAULT_loading,loadingDocument:LYRA_DEFAULT_loadingDocument,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}static{this.styles=[LyraElement.styles,styles,srOnly,viewerLoadingStyles]}connectedCallback(){super.connectedCallback(),this.table.connected()}disconnectedCallback(){this.table.disconnecting(),super.disconnectedCallback(),this.table.disconnected()}adoptedCallback(){super.adoptedCallback(),this.table.adopted()}willUpdate(changed){super.willUpdate(changed),this.table.willUpdate(changed,this.highlights,this.activeHighlightId,!1)}updated(changed){super.updated(changed),this.table.updated(changed,this.fetchState)}async load(){this.table.lastLoadSrc=this.src;const generation=this.loadTask.next(),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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const library=await this.loadLibrary();if(!this.isConnected||!this.loadTask.isCurrent(generation))return;if(!library){const error=new LyraUserFacingError(this.localize("csvViewerUnavailable"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}const source=await readResponseText(response);if(!this.isConnected||!this.loadTask.isCurrent(generation))return;const result=parseDelimitedGrid(library,source);if(!this.isConnected||!this.loadTask.isCurrent(generation)||(this.fetchState={kind:"loaded",rows:result.data},this.table.search.query&&await this.search(this.table.search.query),!this.isConnected||!this.loadTask.isCurrent(generation)))return;result.errors.length&&this.emit("lr-viewer-diagnostic",{diagnostic:Object.freeze({code:"delimited-parse-diagnostic",severity:"warning",fatal:!1,source:"papaparse",cause:result.errors})})}catch(error){if(isAbortError(error)||!this.isConnected||!this.loadTask.isCurrent(generation))return;this.fetchState={kind:"error",message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}renderCell(value,colIndex,rowHighlights,role){return this.table.renderCell(cell(value),colIndex,rowHighlights,role,"cell","--_lr-csv-viewer-highlight-color",this.activeHighlightId)}renderRow(row,count,part,rawRow){const rowHighlights=this.table.highlightsForRow(rawRow),header=part==="header-row";return html`<div
16
2
  part=${part}
17
3
  role=${header?"row":"presentation"}
18
4
  aria-rowindex=${header?"1":nothing}
19
5
  style=${`grid-template-columns:repeat(${count},minmax(var(--lr-size-8rem),1fr))`}
20
6
  >
21
7
  ${Array.from({length:count},(_unused,index)=>this.renderCell(row[index],index,rowHighlights,header?"columnheader":"cell"))}
22
- </div>`}async jumpToCell(rawRow,col){const loadedState=this.fetchState;if(loadedState.kind!=="loaded")return!1;const{rows}=loadedState;if(rawRow<1||rawRow>rows.length||col<0||col>=columns(rows))return!1;const bodyIndex=rawRow-1-headerOffset(!this.withoutHeaderRow);if(bodyIndex<0){const target=this.renderRoot.querySelector('[part="header-row"]')?.querySelectorAll('[part~="cell"]')[col];return target?.scrollIntoView({behavior:prefersReducedMotion(this)?"auto":"smooth",block:"nearest",inline:"nearest"}),!!target}return this.activeRowKey=bodyIndex,await this.updateComplete,await this.scrollColumnIntoView(col),this.fetchState===loadedState}async applyAnchor(anchor){if(anchor.kind!=="cell-range"||anchor.sheet)return!1;const parsed=parseCellRange(anchor.range);return parsed?this.jumpToCell(parsed.startRow+1,parsed.startCol):!1}async scrollColumnIntoView(col){const list=this.renderRoot.querySelector(tag("virtual-list"));await this.tableScroll.scrollColumnIntoView(list,col)}async search(query){this.searchQuery=query,this.lastSearchLocale=this.effectiveLocale;const boundedQuery=boundedViewerSearchQuery(query,this.effectiveLocale),trimmed=boundedQuery.needle,matches=[];let matchCountExact=boundedQuery.accepted;if(boundedQuery.accepted&&trimmed&&this.fetchState.kind==="loaded"){const budget=new ViewerSearchWorkBudget,{rows}=this.fetchState;searchRows:for(let r=0;r<rows.length;r++){const row=rows[r];for(let c=0;c<row.length;c++){if(budget.includes(cell(row[c]),trimmed,this.effectiveLocale)){if(matches.length===MAX_SEARCH_MATCHES){matchCountExact=!1;break searchRows}matches.push({row:r+1,col:c})}if(!budget.complete){matchCountExact=!1;break searchRows}}}}return this.searchMatches=matches,this.searchMatchCountExact=matchCountExact,this.searchActiveIndex=matches.length>0?0:-1,this.emitSearchChange(),this.searchActiveIndex>=0&&await this.jumpToCell(matches[0].row,matches[0].col),matches.length}async searchNext(){if(!this.searchMatches.length)return!1;this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,1),this.emitSearchChange();const match=this.searchMatches[this.searchActiveIndex];return await this.jumpToCell(match.row,match.col),!0}async searchPrevious(){if(!this.searchMatches.length)return!1;this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,-1),this.emitSearchChange();const match=this.searchMatches[this.searchActiveIndex];return await this.jumpToCell(match.row,match.col),!0}clearSearch(){this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.emit("lr-search-change",viewerSearchDetail("",0,!0,-1))}emitSearchChange(){this.emit("lr-search-change",viewerSearchDetail(this.searchQuery,this.searchMatches.length,this.searchMatchCountExact,this.searchActiveIndex))}virtualListInputs(rows,hasHeaderRow){const cached=this.virtualListInputsCache;if(cached&&cached.rows===rows&&cached.hasHeaderRow===hasHeaderRow)return cached;const body=hasHeaderRow?rows.slice(1):rows,count=columns(rows),next={rows,hasHeaderRow,body,renderItem:(row,index)=>this.renderRow(row,count,"data-row",index+1+headerOffset(hasHeaderRow))};return this.virtualListInputsCache=next,next}render(){const label=viewerSemanticLabel(this,this.name||this.localize("csvViewerLabel"));let content;if(this.fetchState.kind==="loaded"){const rows=this.fetchState.rows;if(!rows.length)content=html`<p class="empty-note">${this.localize("noData")}</p>`;else{const hasHeaderRow=!this.withoutHeaderRow,header=hasHeaderRow?rows[0]:void 0,count=columns(rows),{body,renderItem}=this.virtualListInputs(rows,hasHeaderRow),tableLabel=hostAriaLabel(this)??(this.name||this.localize("csvViewerLabel"));content=html`<div
8
+ </div>`}async jumpToCell(rawRow,col){const loadedState=this.fetchState;if(loadedState.kind!=="loaded")return!1;const{rows}=loadedState;if(rawRow<1||rawRow>rows.length||col<0||col>=columns(rows))return!1;const bodyIndex=rawRow-1-headerOffset(!this.withoutHeaderRow);return bodyIndex<0?this.table.revealCell(this.renderRoot.querySelector('[part="header-row"]')?.querySelectorAll('[part~="cell"]')[col]):(this.table.setActiveRow(bodyIndex),await this.updateComplete,await this.scrollColumnIntoView(col),this.fetchState===loadedState)}async applyAnchor(anchor){if(anchor.kind!=="cell-range"||anchor.sheet)return!1;const parsed=parseCellRange(anchor.range);return parsed?this.jumpToCell(parsed.startRow+1,parsed.startCol):!1}async scrollColumnIntoView(col){await this.table.scrollColumnIntoView(this.renderRoot,tag("virtual-list"),col)}async search(query){return this.table.runSearch(query,this.fetchState.kind==="loaded",visit=>{if(this.fetchState.kind!=="loaded")return;const{rows}=this.fetchState;for(let r=0;r<rows.length;r++){const row=rows[r];for(let c=0;c<row.length;c++)if(!visit(cell(row[c]),{row:r+1,col:c}))return}})}async searchNext(){return this.table.step(1)}async searchPrevious(){return this.table.step(-1)}clearSearch(){this.table.clearSearch()}virtualListInputs(rows,hasHeaderRow){let cached=this.virtualListInputsCache;(!cached||cached.rows!==rows||cached.hasHeaderRow!==hasHeaderRow)&&(cached={rows,hasHeaderRow,body:hasHeaderRow?rows.slice(1):rows,count:columns(rows)},this.virtualListInputsCache=cached);const{body,count}=cached;return{body,renderItem:(row,index)=>this.renderRow(row,count,"data-row",index+1+headerOffset(hasHeaderRow))}}render(){const label=viewerSemanticLabel(this,this.name||this.localize("csvViewerLabel"));let content;if(this.fetchState.kind==="loaded"){const rows=this.fetchState.rows;if(!rows.length)content=html`<p class="empty-note">${this.localize("noData")}</p>`;else{const hasHeaderRow=!this.withoutHeaderRow,header=hasHeaderRow?rows[0]:void 0,count=columns(rows),{body,renderItem}=this.virtualListInputs(rows,hasHeaderRow),tableLabel=hostAriaLabel(this)??(this.name||this.localize("csvViewerLabel"));content=html`<div
23
9
  part="sheet"
24
10
  role="table"
25
11
  aria-label=${tableLabel}
@@ -32,7 +18,7 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
32
18
  .items=${body}
33
19
  .renderItem=${renderItem}
34
20
  .keyFunction=${indexKeyFunction}
35
- .activeItemId=${this.activeRowKey}
21
+ .activeItemId=${this.table.activeRowKey}
36
22
  item-role="row"
37
23
  row-index-offset=${hasHeaderRow?"1":"0"}
38
24
  @lr-load-more=${this.stopInternalEvent}
@@ -48,4 +34,4 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
48
34
  >
49
35
  <div part="body">${content}</div>
50
36
  ${this.renderAnchorLiveRegion()}
51
- </div>`}}__decorate([property()],LyraCsvViewer.prototype,"src",void 0),__decorate([property()],LyraCsvViewer.prototype,"name",void 0),__decorate([property({type:Boolean,attribute:"without-header-row"})],LyraCsvViewer.prototype,"withoutHeaderRow",void 0),__decorate([property({attribute:"max-height"})],LyraCsvViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraCsvViewer.prototype,"fetchState",void 0),__decorate([state()],LyraCsvViewer.prototype,"activeRowKey",void 0),__decorate([state()],LyraCsvViewer.prototype,"searchMatches",void 0),__decorate([state()],LyraCsvViewer.prototype,"searchActiveIndex",void 0);export{LyraCsvViewer};
37
+ </div>`}}__decorate([property()],LyraCsvViewer.prototype,"src",void 0),__decorate([property()],LyraCsvViewer.prototype,"name",void 0),__decorate([property({type:Boolean,attribute:"without-header-row"})],LyraCsvViewer.prototype,"withoutHeaderRow",void 0),__decorate([property({attribute:"max-height"})],LyraCsvViewer.prototype,"maxHeight",void 0),__decorate([state()],LyraCsvViewer.prototype,"fetchState",void 0);export{LyraCsvViewer};
@@ -1 +1 @@
1
- import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";const styles=css` :host { display: block; min-inline-size: 0; } [part='base'], [part='body'], [part='sheet'] { display: flex; flex-direction: column; min-inline-size: 0; } [part='body'] { box-sizing: border-box; overflow-y: auto; overflow-x: hidden; max-block-size: var(--lr-csv-viewer-max-height, none); } [part='sheet'] { overflow-x: auto; overflow-y: hidden; } [part='header-row'] { display: grid; min-inline-size: max-content; align-items: center; background: var(--lr-color-surface); color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); border-block-end: var(--lr-border-width-medium) solid var(--lr-color-border-subtle); } [part='cell'] { padding: var(--lr-space-2xs) var(--lr-space-xs); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--lr-font-size-sm); color: var(--lr-color-text); } lr-virtual-list::part(data-row) { display: grid; min-inline-size: max-content; align-items: center; } lr-virtual-list::part(cell) { padding: var(--lr-space-2xs) var(--lr-space-xs); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--lr-font-size-sm); color: var(--lr-color-text); } [part~='cell-highlight'], lr-virtual-list::part(cell-highlight) { outline: var(--lr-border-width-medium) solid var( --lr-csv-viewer-highlight-color, var(--_lr-csv-viewer-highlight-color, var(--lr-color-brand)) ); outline-offset: calc(-1 * var(--lr-border-width-medium)); cursor: pointer; padding: 0; } [part='cell-highlight-action'], lr-virtual-list::part(cell-highlight-action) { all: unset; box-sizing: border-box; display: block; inline-size: 100%; ${iconHitTarget} padding: var(--lr-space-2xs) var(--lr-space-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; transition: background-color var(--lr-transition-fast); } [part='cell-highlight-action']:hover, lr-virtual-list::part(cell-highlight-action):hover { background: var(--lr-color-brand-quiet); } [part='cell-highlight-action']:active, lr-virtual-list::part(cell-highlight-action):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part='cell-highlight-action']:focus-visible, lr-virtual-list::part(cell-highlight-action):focus-visible { outline: var(--lr-focus-ring); outline-offset: calc(var(--lr-focus-ring-offset) * -1); } [part='rows'] { --lr-virtual-list-height: var(--lr-size-20rem); min-inline-size: max-content; } .empty-note, [part='error'] { margin: 0; padding: var(--lr-space-m); color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-md-sm); } [part='error'] { color: var(--lr-color-danger); text-align: center; } `;export{styles};
1
+ import{delimitedGridStyles,tableCellHighlightStyles}from"../table-viewer-shared.styles.js";import{css}from"lit";const styles=css` :host { display: block; min-inline-size: 0; } ${delimitedGridStyles(css`var(--lr-csv-viewer-max-height, none)`)} ${tableCellHighlightStyles({color:css`var(--lr-csv-viewer-highlight-color, var(--_lr-csv-viewer-highlight-color, var(--lr-color-brand)))`,padding:css`var(--lr-space-2xs) var(--lr-space-xs)`})} [part='rows'] { --lr-virtual-list-height: var(--lr-size-20rem); min-inline-size: max-content; } .empty-note, [part='error'] { margin: 0; padding: var(--lr-space-m); color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-md-sm); } [part='error'] { color: var(--lr-color-danger); text-align: center; } `;export{styles};
@@ -88,7 +88,7 @@ maxHeight:string;private _scrollMode;
88
88
  */
89
89
  get scrollMode():DatasetViewerScrollMode;set scrollMode(next:DatasetViewerScrollMode);
90
90
  /** Anchor kinds this viewer resolves via `scrollToAnchor()`. */
91
- readonly anchorKinds:readonly LyraAnchorKind[];private fetchState;private activeRowKey;private cellHighlights;private searchMatches;private searchMatchCountExact;private searchActiveIndex;private searchQuery;private lastSearchLocale;private pendingSearchResetEvent;private loadTask;private lastLoadSrc;private readonly announcements;private readonly tableScroll;private readonly detached;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private load;private parse;private cellHighlightsForRow;private renderCell;private renderRow;private jumpToCell;private scrollColumnIntoView;protected applyAnchor(anchor:LyraAnchor):Promise<boolean>;
91
+ readonly anchorKinds:readonly LyraAnchorKind[];private fetchState;private loadTask;private readonly table;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private load;private parse;private renderCell;private renderRow;private jumpToCell;private scrollColumnIntoView;protected applyAnchor(anchor:LyraAnchor):Promise<boolean>;
92
92
  /** Locale-aware case-insensitive substring search over the header fields followed by every body
93
93
  * cell's raw string value, ordered row then column. An empty/whitespace-only query behaves like
94
94
  * `clearSearch()` and resolves `0`. Returns at most 1,000 retained matches;
@@ -102,4 +102,4 @@ searchNext():Promise<boolean>;
102
102
  searchPrevious():Promise<boolean>;
103
103
  /** Clears the query, matches, and active index, and resets `lr-search-change` to a
104
104
  * 0-match/no-active-index state. */
105
- clearSearch():void;private emitSearchChange;private stopInternalEvent;private readonly virtualListKeyFunction;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-dataset-viewer':LyraDatasetViewer;}}
105
+ clearSearch():void;private stopInternalEvent;private readonly virtualListKeyFunction;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-dataset-viewer':LyraDatasetViewer;}}
@@ -1,20 +1,6 @@
1
- import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{tag}from"../../../internal/prefix.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{loadPapaParseCached}from"../../../internal/papaparse-loader.js";import{parseCellRange}from"../../../internal/cell-range.js";import{DocumentAnchorTarget,prioritizedHighlightCandidates}from"../../../internal/anchor-target.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{styles}from"./dataset-viewer.styles.js";import{parseDelimitedRecords}from"../../../internal/delimited-data.js";import{LatestTask}from"../../../internal/latest-task.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{TableViewerScrollController,tableHighlightsForColumn,tableHighlightsForRow}from"../table-viewer-shared.js";import{advanceViewerSearchIndex,viewerSearchDetail}from"../../../internal/viewer-search.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{literalSetConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_datasetViewerCaption,LYRA_DEFAULT_datasetViewerCaptionNamed,LYRA_DEFAULT_datasetViewerEmpty,LYRA_DEFAULT_datasetViewerMissingParser,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDataset,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const MAX_SEARCH_MATCHES=1e3,DATASET_VIEWER_SCROLL_MODE=literalSetConverter(["self","page"],"self");class LyraDatasetViewerBase extends LyraElement{}class LyraDatasetViewer extends DocumentAnchorTarget(LyraDatasetViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this._scrollMode="self",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.activeRowKey="",this.cellHighlights=[],this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.searchQuery="",this.lastSearchLocale="",this.pendingSearchResetEvent=!1,this.loadTask=new LatestTask,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.tableScroll=new TableViewerScrollController(this),this.detached=new DeferredTeardown(()=>{this.loadTask.next(),this.tableScroll.cancel()}),this.renderRow=(row,index,fields)=>{const rawRow=index+2,rowHighlights=this.cellHighlightsForRow(rawRow);return html`<div part="data-row" role="presentation">
1
+ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{tag}from"../../../internal/prefix.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{srOnly}from"../../../internal/a11y.js";import{loadPapaParseCached}from"../../../internal/papaparse-loader.js";import{parseCellRange}from"../../../internal/cell-range.js";import{DocumentAnchorTarget}from"../../../internal/anchor-target.js";import{styles}from"./dataset-viewer.styles.js";import{parseDelimitedRecords}from"../../../internal/delimited-data.js";import{LatestTask}from"../../../internal/latest-task.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{TableViewerController}from"../table-viewer-shared.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{literalSetConverter}from"../../../internal/converters.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_datasetViewerCaption,LYRA_DEFAULT_datasetViewerCaptionNamed,LYRA_DEFAULT_datasetViewerEmpty,LYRA_DEFAULT_datasetViewerMissingParser,LYRA_DEFAULT_details,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDataset,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loading,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const DATASET_VIEWER_SCROLL_MODE=literalSetConverter(["self","page"],"self");class LyraDatasetViewerBase extends LyraElement{}class LyraDatasetViewer extends DocumentAnchorTarget(LyraDatasetViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this._scrollMode="self",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.loadTask=new LatestTask,this.table=new TableViewerController(this,{emitSearch:detail=>this.emit("lr-search-change",detail),emitActivate:highlightId=>this.emit("lr-highlight-activate",{highlightId}),localize:(key,fallback,values)=>this.localize(key,fallback,values),locale:()=>this.effectiveLocale,schedule:(callback,key)=>this.scheduleAfterUpdate(callback,key),load:()=>this.load(),research:query=>this.search(query),jump:match=>this.jumpToCell(match.row,match.col),teardown:()=>this.loadTask.next()}),this.renderRow=(row,index,fields)=>{const rawRow=index+2,rowHighlights=this.table.highlightsForRow(rawRow);return html`<div part="data-row" role="presentation">
2
2
  ${fields.map((field,col)=>this.renderCell(row[field]??"",col,rowHighlights))}
3
- </div>`},this.stopInternalEvent=event=>{event.stopPropagation()},this.virtualListKeyFunction=(_item,index)=>index}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,datasetViewerCaption:LYRA_DEFAULT_datasetViewerCaption,datasetViewerCaptionNamed:LYRA_DEFAULT_datasetViewerCaptionNamed,datasetViewerEmpty:LYRA_DEFAULT_datasetViewerEmpty,datasetViewerMissingParser:LYRA_DEFAULT_datasetViewerMissingParser,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDataset:LYRA_DEFAULT_documentPreviewTypeDataset,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loadingDocument:LYRA_DEFAULT_loadingDocument,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}static{this.styles=[LyraElement.styles,styles,srOnly,viewerLoadingStyles]}get scrollMode(){return this._scrollMode}set scrollMode(next){const normalized=DATASET_VIEWER_SCROLL_MODE.normalizeReflected(this,"scroll-mode",next),previous=this._scrollMode;previous!==normalized&&(this._scrollMode=normalized,this.requestUpdate("scrollMode",previous))}connectedCallback(){super.connectedCallback(),this.announcements.connect(),!this.detached.cancel()&&this.hasUpdated&&this.src&&this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.tableScroll.cancel(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&(this.pendingSearchResetEvent||=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.searchActiveIndex!==-1,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey=""),(changed.has("highlights")||changed.has("activeHighlightId"))&&(this.cellHighlights=prioritizedHighlightCandidates(this.highlights,this.activeHighlightId).flatMap(highlight=>{if(highlight.anchor.kind!=="cell-range"||highlight.anchor.sheet)return[];const parsed=parseCellRange(highlight.anchor.range);return parsed?[{highlight,parsed}]:[]}))}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()}),changed.has("src")&&this.pendingSearchResetEvent&&(this.pendingSearchResetEvent=!1,this.emitSearchChange());const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=!!this.searchQuery;this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}async load(){this.lastLoadSrc=this.src;const generation=this.loadTask.next(),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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const source=await readResponseText(response);if(!this.isConnected||!this.loadTask.isCurrent(generation))return;const parsed=await this.parse(source,generation);if(parsed===void 0)return;if(this.isConnected&&this.loadTask.isCurrent(generation)){const{table}=parsed;this.fetchState=table?{kind:"loaded",table}:{kind:"empty"},table&&this.searchQuery&&await this.search(this.searchQuery),parsed.errors.length&&this.isConnected&&this.loadTask.isCurrent(generation)&&this.emit("lr-viewer-diagnostic",{diagnostic:Object.freeze({code:"delimited-parse-diagnostic",severity:"warning",fatal:!1,source:"papaparse",cause:parsed.errors})})}}catch(error){if(isAbortError(error)||!this.isConnected||!this.loadTask.isCurrent(generation))return;this.fetchState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}async parse(text,generation){const papa=await loadPapaParseCached();if(!this.isConnected||!this.loadTask.isCurrent(generation))return;if(!papa)throw new LyraUserFacingError(this.localize("datasetViewerMissingParser"));const result=parseDelimitedRecords(papa,text);return!result.fields.length||!result.rows.length?{table:null,errors:result.errors}:{table:{fields:result.fields,rows:result.rows},errors:result.errors}}cellHighlightsForRow(rawRow){return tableHighlightsForRow(this.cellHighlights,rawRow)}renderCell(value,colIndex,rowHighlights,role="cell"){const colHighlights=tableHighlightsForColumn(rowHighlights,colIndex),part=role==="columnheader"?"header-cell":"cell";if(!colHighlights.length)return html`<div part=${part} role=${role}>${value}</div>`;const active=colHighlights.find(entry=>entry.highlight.id===this.activeHighlightId),primary=active??colHighlights[0],accessibleLabel=primary.highlight.label?this.localize("cellHighlightWithLabel",void 0,{value,label:primary.highlight.label}):this.localize("highlightWithLabel",void 0,{label:value});return html`<div
4
- part="${part} cell-highlight"
5
- role=${role}
6
- ?data-active=${!!active}
7
- style=${active?"--_lr-dataset-viewer-highlight-color: var(--lr-color-warning, var(--lr-color-brand))":""}
8
- >
9
- <button
10
- part="cell-highlight-action"
11
- type="button"
12
- aria-label=${accessibleLabel}
13
- @click=${()=>{this.emit("lr-highlight-activate",{highlightId:primary.highlight.id})}}
14
- >
15
- ${value}
16
- </button>
17
- </div>`}async jumpToCell(rawRow,col){const loadedState=this.fetchState;if(loadedState.kind!=="loaded")return!1;const{fields,rows}=loadedState.table;if(rawRow<1||rawRow>rows.length+1||col<0||col>=fields.length)return!1;const bodyIndex=rawRow-2;if(bodyIndex<0){const target=this.renderRoot.querySelector('[part="header-row"]')?.querySelectorAll('[part~="header-cell"]')[col];return target?.scrollIntoView({behavior:prefersReducedMotion(this)?"auto":"smooth",block:"nearest",inline:"nearest"}),!!target}return this.activeRowKey=bodyIndex,await this.updateComplete,await this.scrollColumnIntoView(col),this.fetchState===loadedState}async scrollColumnIntoView(col){const list=this.renderRoot.querySelector(tag("virtual-list"));await this.tableScroll.scrollColumnIntoView(list,col)}async applyAnchor(anchor){if(anchor.kind!=="cell-range"||anchor.sheet)return!1;const parsed=parseCellRange(anchor.range);return parsed?this.jumpToCell(parsed.startRow+1,parsed.startCol):!1}async search(query){this.searchQuery=query,this.lastSearchLocale=this.effectiveLocale;const boundedQuery=boundedViewerSearchQuery(query,this.effectiveLocale),trimmed=boundedQuery.needle,matches=[];let matchCountExact=boundedQuery.accepted;if(boundedQuery.accepted&&trimmed&&this.fetchState.kind==="loaded"){const budget=new ViewerSearchWorkBudget,{fields,rows}=this.fetchState.table;searchCells:{for(let c=0;c<fields.length;c++){if(budget.includes(fields[c],trimmed,this.effectiveLocale)){if(matches.length===MAX_SEARCH_MATCHES){matchCountExact=!1;break searchCells}matches.push({row:1,col:c})}if(!budget.complete){matchCountExact=!1;break searchCells}}for(let r=0;r<rows.length;r++){const row=rows[r];for(let c=0;c<fields.length;c++){if(budget.includes(row[fields[c]]??"",trimmed,this.effectiveLocale)){if(matches.length===MAX_SEARCH_MATCHES){matchCountExact=!1;break searchCells}matches.push({row:r+2,col:c})}if(!budget.complete){matchCountExact=!1;break searchCells}}}}}return this.searchMatches=matches,this.searchMatchCountExact=matchCountExact,this.searchActiveIndex=matches.length>0?0:-1,this.emitSearchChange(),this.searchActiveIndex>=0&&await this.jumpToCell(matches[0].row,matches[0].col),matches.length}async searchNext(){return this.searchMatches.length?(this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,1),this.emitSearchChange(),await this.jumpToCell(this.searchMatches[this.searchActiveIndex].row,this.searchMatches[this.searchActiveIndex].col),!0):!1}async searchPrevious(){return this.searchMatches.length?(this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,-1),this.emitSearchChange(),await this.jumpToCell(this.searchMatches[this.searchActiveIndex].row,this.searchMatches[this.searchActiveIndex].col),!0):!1}clearSearch(){this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.emit("lr-search-change",viewerSearchDetail("",0,!0,-1))}emitSearchChange(){this.emit("lr-search-change",viewerSearchDetail(this.searchQuery,this.searchMatches.length,this.searchMatchCountExact,this.searchActiveIndex))}renderBody(){switch(this.fetchState.kind){case"loaded":{const{fields,rows}=this.fetchState.table,localizedCount=getNumberFormat(this.effectiveLocale).format(rows.length),label=this.name?this.localize("datasetViewerCaptionNamed",void 0,{name:this.name,count:localizedCount}):this.localize("datasetViewerCaption",void 0,{count:localizedCount}),headerHighlights=this.cellHighlightsForRow(1);return html`
3
+ </div>`},this.stopInternalEvent=event=>{event.stopPropagation()},this.virtualListKeyFunction=(_item,index)=>index}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,datasetViewerCaption:LYRA_DEFAULT_datasetViewerCaption,datasetViewerCaptionNamed:LYRA_DEFAULT_datasetViewerCaptionNamed,datasetViewerEmpty:LYRA_DEFAULT_datasetViewerEmpty,datasetViewerMissingParser:LYRA_DEFAULT_datasetViewerMissingParser,details:LYRA_DEFAULT_details,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDataset:LYRA_DEFAULT_documentPreviewTypeDataset,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loading:LYRA_DEFAULT_loading,loadingDocument:LYRA_DEFAULT_loadingDocument,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}static{this.styles=[LyraElement.styles,styles,srOnly,viewerLoadingStyles]}get scrollMode(){return this._scrollMode}set scrollMode(next){const normalized=DATASET_VIEWER_SCROLL_MODE.normalizeReflected(this,"scroll-mode",next),previous=this._scrollMode;previous!==normalized&&(this._scrollMode=normalized,this.requestUpdate("scrollMode",previous))}connectedCallback(){super.connectedCallback(),this.table.connected()}disconnectedCallback(){this.table.disconnecting(),super.disconnectedCallback(),this.table.disconnected()}adoptedCallback(){super.adoptedCallback(),this.table.adopted()}willUpdate(changed){super.willUpdate(changed),this.table.willUpdate(changed,this.highlights,this.activeHighlightId,!1)}updated(changed){super.updated(changed),this.table.updated(changed,this.fetchState)}async load(){this.table.lastLoadSrc=this.src;const generation=this.loadTask.next(),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(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const source=await readResponseText(response);if(!this.isConnected||!this.loadTask.isCurrent(generation))return;const parsed=await this.parse(source,generation);if(parsed===void 0)return;if(this.isConnected&&this.loadTask.isCurrent(generation)){const{table}=parsed;this.fetchState=table?{kind:"loaded",table}:{kind:"empty"},table&&this.table.search.query&&await this.search(this.table.search.query),parsed.errors.length&&this.isConnected&&this.loadTask.isCurrent(generation)&&this.emit("lr-viewer-diagnostic",{diagnostic:Object.freeze({code:"delimited-parse-diagnostic",severity:"warning",fatal:!1,source:"papaparse",cause:parsed.errors})})}}catch(error){if(isAbortError(error)||!this.isConnected||!this.loadTask.isCurrent(generation))return;this.fetchState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}async parse(text,generation){const papa=await loadPapaParseCached();if(!this.isConnected||!this.loadTask.isCurrent(generation))return;if(!papa)throw new LyraUserFacingError(this.localize("datasetViewerMissingParser"));const result=parseDelimitedRecords(papa,text);return!result.fields.length||!result.rows.length?{table:null,errors:result.errors}:{table:{fields:result.fields,rows:result.rows},errors:result.errors}}renderCell(value,colIndex,rowHighlights,role="cell"){return this.table.renderCell(value,colIndex,rowHighlights,role,role==="columnheader"?"header-cell":"cell","--_lr-dataset-viewer-highlight-color",this.activeHighlightId)}async jumpToCell(rawRow,col){const loadedState=this.fetchState;if(loadedState.kind!=="loaded")return!1;const{fields,rows}=loadedState.table;if(rawRow<1||rawRow>rows.length+1||col<0||col>=fields.length)return!1;const bodyIndex=rawRow-2;return bodyIndex<0?this.table.revealCell(this.renderRoot.querySelector('[part="header-row"]')?.querySelectorAll('[part~="header-cell"]')[col]):(this.table.setActiveRow(bodyIndex),await this.updateComplete,await this.scrollColumnIntoView(col),this.fetchState===loadedState)}async scrollColumnIntoView(col){await this.table.scrollColumnIntoView(this.renderRoot,tag("virtual-list"),col)}async applyAnchor(anchor){if(anchor.kind!=="cell-range"||anchor.sheet)return!1;const parsed=parseCellRange(anchor.range);return parsed?this.jumpToCell(parsed.startRow+1,parsed.startCol):!1}async search(query){return this.table.runSearch(query,this.fetchState.kind==="loaded",visit=>{if(this.fetchState.kind!=="loaded")return;const{fields,rows}=this.fetchState.table;for(let c=0;c<fields.length;c++)if(!visit(fields[c],{row:1,col:c}))return;for(let r=0;r<rows.length;r++){const row=rows[r];for(let c=0;c<fields.length;c++)if(!visit(row[fields[c]]??"",{row:r+2,col:c}))return}})}async searchNext(){return this.table.step(1)}async searchPrevious(){return this.table.step(-1)}clearSearch(){this.table.clearSearch()}renderBody(){switch(this.fetchState.kind){case"loaded":{const{fields,rows}=this.fetchState.table,localizedCount=getNumberFormat(this.effectiveLocale).format(rows.length),label=this.name?this.localize("datasetViewerCaptionNamed",void 0,{name:this.name,count:localizedCount}):this.localize("datasetViewerCaption",void 0,{count:localizedCount}),headerHighlights=this.table.highlightsForRow(1);return html`
18
4
  <div
19
5
  part="table"
20
6
  role="table"
@@ -30,7 +16,7 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
30
16
  .items=${guard([rows],()=>rows)}
31
17
  .renderItem=${(row,index)=>this.renderRow(row,index,fields)}
32
18
  .keyFunction=${this.virtualListKeyFunction}
33
- .activeItemId=${this.activeRowKey}
19
+ .activeItemId=${this.table.activeRowKey}
34
20
  .scrollElement=${this.scrollMode==="page"?this.ownerDocument.defaultView??void 0:void 0}
35
21
  item-role="row"
36
22
  row-index-offset="1"
@@ -48,4 +34,4 @@ import{__decorate}from"tslib";import{html,nothing}from"lit";import{property,stat
48
34
  >
49
35
  <div part="body">${this.renderBody()}</div>
50
36
  ${this.renderAnchorLiveRegion()}
51
- </div>`}}__decorate([property()],LyraDatasetViewer.prototype,"src",void 0),__decorate([property()],LyraDatasetViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraDatasetViewer.prototype,"maxHeight",void 0),__decorate([property({reflect:!0,attribute:"scroll-mode",converter:DATASET_VIEWER_SCROLL_MODE})],LyraDatasetViewer.prototype,"scrollMode",null),__decorate([state()],LyraDatasetViewer.prototype,"fetchState",void 0),__decorate([state()],LyraDatasetViewer.prototype,"activeRowKey",void 0),__decorate([state()],LyraDatasetViewer.prototype,"searchMatches",void 0),__decorate([state()],LyraDatasetViewer.prototype,"searchActiveIndex",void 0);export{LyraDatasetViewer};
37
+ </div>`}}__decorate([property()],LyraDatasetViewer.prototype,"src",void 0),__decorate([property()],LyraDatasetViewer.prototype,"name",void 0),__decorate([property({attribute:"max-height"})],LyraDatasetViewer.prototype,"maxHeight",void 0),__decorate([property({reflect:!0,attribute:"scroll-mode",converter:DATASET_VIEWER_SCROLL_MODE})],LyraDatasetViewer.prototype,"scrollMode",null),__decorate([state()],LyraDatasetViewer.prototype,"fetchState",void 0);export{LyraDatasetViewer};
@@ -1 +1 @@
1
- import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";const styles=css` :host { display: block; min-inline-size: 0; } [part='base'] { display: flex; flex-direction: column; box-sizing: border-box; min-inline-size: 0; border: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-radius: var(--lr-radius); background: var(--lr-color-surface); overflow: hidden; } [part='body'] { box-sizing: border-box; overflow: auto; max-block-size: var(--lr-dataset-viewer-max-height, none); } :host([scroll-mode='page']) [part='base'] { overflow: visible; } :host([scroll-mode='page']) [part='header-row'] { border-start-start-radius: calc(var(--lr-radius) - var(--lr-border-width-thin)); border-start-end-radius: calc(var(--lr-radius) - var(--lr-border-width-thin)); overflow: clip; } :host([scroll-mode='page']) [part='body'] { overflow: visible; max-block-size: none; } [part='table'] { display: flex; flex-direction: column; min-inline-size: max-content; font-size: var(--lr-font-size-sm); } [part='header-row'] { position: sticky; inset-block-start: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--lr-size-8rem), 1fr); z-index: var(--lr-layer-content); background: var(--lr-dataset-viewer-header-row-bg, var(--lr-color-brand-quiet)); color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); border-block-end: var(--lr-border-width-medium) solid var(--lr-color-border-subtle); } [part='header-cell'] { padding: var(--lr-space-xs) var(--lr-space-s); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } lr-virtual-list::part(data-row) { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--lr-size-8rem), 1fr); } lr-virtual-list::part(cell) { padding: var(--lr-space-xs) var(--lr-space-s); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-block-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); } [part~='cell-highlight'], lr-virtual-list::part(cell-highlight) { outline: var(--lr-border-width-medium) solid var( --lr-dataset-viewer-highlight-color, var(--_lr-dataset-viewer-highlight-color, var(--lr-color-brand)) ); outline-offset: calc(-1 * var(--lr-border-width-medium)); cursor: pointer; padding: 0; } [part='cell-highlight-action'], lr-virtual-list::part(cell-highlight-action) { all: unset; box-sizing: border-box; display: block; inline-size: 100%; ${iconHitTarget} padding: var(--lr-space-xs) var(--lr-space-s); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; transition: background-color var(--lr-transition-fast); } [part='cell-highlight-action']:hover, lr-virtual-list::part(cell-highlight-action):hover { background: var(--lr-color-brand-quiet); } [part='cell-highlight-action']:active, lr-virtual-list::part(cell-highlight-action):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part='cell-highlight-action']:focus-visible, lr-virtual-list::part(cell-highlight-action):focus-visible { outline: var(--lr-focus-ring); outline-offset: calc(var(--lr-focus-ring-offset) * -1); } lr-virtual-list { --lr-virtual-list-height: var(--lr-size-20rem); min-inline-size: max-content; } .empty-note, [part='error'] { margin: 0; padding: var(--lr-space-m); color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-md-sm); } [part='error'] { padding: var(--lr-space-l); color: var(--lr-color-danger); text-align: center; } `;export{styles};
1
+ import{tableCellHighlightStyles}from"../table-viewer-shared.styles.js";import{css}from"lit";const styles=css` :host { display: block; min-inline-size: 0; } [part='base'] { display: flex; flex-direction: column; box-sizing: border-box; min-inline-size: 0; border: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-radius: var(--lr-radius); background: var(--lr-color-surface); overflow: hidden; } [part='body'] { box-sizing: border-box; overflow: auto; max-block-size: var(--lr-dataset-viewer-max-height, none); } :host([scroll-mode='page']) [part='base'] { overflow: visible; } :host([scroll-mode='page']) [part='header-row'] { border-start-start-radius: calc(var(--lr-radius) - var(--lr-border-width-thin)); border-start-end-radius: calc(var(--lr-radius) - var(--lr-border-width-thin)); overflow: clip; } :host([scroll-mode='page']) [part='body'] { overflow: visible; max-block-size: none; } [part='table'] { display: flex; flex-direction: column; min-inline-size: max-content; font-size: var(--lr-font-size-sm); } [part='header-row'] { position: sticky; inset-block-start: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--lr-size-8rem), 1fr); z-index: var(--lr-layer-content); background: var(--lr-dataset-viewer-header-row-bg, var(--lr-color-brand-quiet)); color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); border-block-end: var(--lr-border-width-medium) solid var(--lr-color-border-subtle); } [part='header-cell'] { padding: var(--lr-space-xs) var(--lr-space-s); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } lr-virtual-list::part(data-row) { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--lr-size-8rem), 1fr); } lr-virtual-list::part(cell) { padding: var(--lr-space-xs) var(--lr-space-s); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); border-block-end: var(--lr-border-width-thin) solid var(--lr-color-border-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); } ${tableCellHighlightStyles({color:css`var(--lr-dataset-viewer-highlight-color, var(--_lr-dataset-viewer-highlight-color, var(--lr-color-brand)))`,padding:css`var(--lr-space-xs) var(--lr-space-s)`})} lr-virtual-list { --lr-virtual-list-height: var(--lr-size-20rem); min-inline-size: max-content; } .empty-note, [part='error'] { margin: 0; padding: var(--lr-space-m); color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-md-sm); } [part='error'] { padding: var(--lr-space-l); color: var(--lr-color-danger); text-align: center; } `;export{styles};
@@ -155,7 +155,7 @@ suppressDownload:boolean;private _highlights;private highlightsSource?;private _
155
155
  * dispatch scope -- text/generic formats never render these). IDs are trimmed and must be
156
156
  * nonempty; the first record for an ID is retained and blank or later duplicates are ignored.
157
157
  * Re-assigning the same array is a no-op. */
158
- get highlights():readonly LyraHighlight[];set highlights(value:readonly LyraHighlight[]);activeHighlightId:string|null;readonly anchorKinds:LyraAnchor['kind'][];private hasUnsupportedSlot;private textFetch;private generation;private invalidUrlReportedFor;private readonly announcements;private readonly detached;connectedCallback():void;disconnectedCallback():void;private releaseDetachedPreview;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private syncAnnouncementState;private fetchText;private onUnsupportedSlotChange;private onDownloadClick;private renderSpinner;private renderError;private renderTextPreview;private renderImagePreview;private stopPanZoomEvent;private renderZoomableWrapper;private projectRegionHighlights;private regionHighlights;private highlightActionLabel;private renderHighlightLayer;private onHighlightActionKeyDown;private renderHighlightActions;
158
+ get highlights():readonly LyraHighlight[];set highlights(value:readonly LyraHighlight[]);activeHighlightId:string|null;readonly anchorKinds:LyraAnchor['kind'][];private hasUnsupportedSlot;private textFetch;private generation;private invalidUrlReportedFor;private readonly announcements;private readonly detached;connectedCallback():void;disconnectedCallback():void;private releaseDetachedPreview;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private syncAnnouncementState;private fetchText;private onUnsupportedSlotChange;private onDownloadClick;private renderSpinner;private renderError;private renderTextPreview;private renderImagePreview;private stopPanZoomEvent;private renderZoomableWrapper;private projectRegionHighlights;private regionHighlights;private highlightActionLabel;private renderHighlightLayer;private renderHighlightActions;
159
159
  /** Scrolls a `region` highlight into view (image format only). See `<lr-svg-viewer>`'s
160
160
  * identical method for the id/anchor-reference resolution and no-retry-loop rationale. */
161
161
  scrollToAnchor(target:LyraAnchor|string):Promise<boolean>;private renderDownloadFallback;private renderGenericFallback;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-document-preview':LyraDocumentPreview;}}
@@ -1,4 +1,4 @@
1
- import{__decorate}from"tslib";import{html,nothing,svg}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{fileIcon}from"../../../internal/icons.js";import{srOnly}from"../../../internal/a11y.js";import{safeDownloadHref,safeFetchUrl,safeMediaSrc}from"../../../internal/safe-url.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./document-preview.styles.js";import{viewerFrameStyles}from"../viewer-frame.js";import{renderRegionHighlightLayer}from"../region-highlight-layer.js";import{sanitizeCssLength,sanitizePercentRect}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{snapshotLyraHighlightAnchorKind,snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{LYRA_DEFAULT_convertingDocument,LYRA_DEFAULT_documentPreviewAlt,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewGenericError,LYRA_DEFAULT_documentPreviewGenericFile,LYRA_DEFAULT_documentPreviewNotAvailable,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewTypeImage,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_download,LYRA_DEFAULT_highlightOfTotal,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";const IDLE_TEXT_FETCH={kind:"idle"};function classifyFormat(mimeType){const mt=(mimeType??"").split(";",1)[0].trim().toLowerCase();return mt.startsWith("text/")||mt==="application/json"?"text":mt.startsWith("image/")?"image":"generic"}const EMPTY_REGION_HIGHLIGHTS=Object.freeze([]);function projectRegionAnchor(value,knownRegionKind=!1){try{if(value===null||typeof value!="object"||Array.isArray(value))return;if(!knownRegionKind){const kind=getOwnDataDescriptor(value,"kind");if(kind===MISSING_OWN_DATA_DESCRIPTOR||kind===UNSAFE_OWN_DATA_DESCRIPTOR||kind.value!=="region")return}const rectDescriptor=getOwnDataDescriptor(value,"rect");if(rectDescriptor===MISSING_OWN_DATA_DESCRIPTOR||rectDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;const rect=sanitizePercentRect(rectDescriptor.value);if(!rect)return;const pageDescriptor=getOwnDataDescriptor(value,"page"),page=pageDescriptor===MISSING_OWN_DATA_DESCRIPTOR||pageDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:pageDescriptor.value;return Object.freeze({rect,...typeof page=="number"&&Number.isFinite(page)?{page}:{}})}catch{return}}function sameRegionAnchor(a,b){return a.page===b.page&&a.rect.x===b.rect.x&&a.rect.y===b.rect.y&&a.rect.width===b.rect.width&&a.rect.height===b.rect.height}const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function downloadIcon(){return icon(svg`
1
+ import{__decorate}from"tslib";import{html,nothing,svg}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{fileIcon}from"../../../internal/icons.js";import{srOnly}from"../../../internal/a11y.js";import{safeDownloadHref,safeFetchUrl,safeMediaSrc}from"../../../internal/safe-url.js";import{isAbortError,isResourceLimitError,LyraUserFacingError,readResponseText,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{finiteRange}from"../../../internal/numbers.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{styles}from"./document-preview.styles.js";import{viewerFrameStyles}from"../viewer-frame.js";import{regionHighlightLabel,renderRegionHighlightActions,renderRegionHighlightLayer,sameRegionRect}from"../region-highlight-layer.js";import{sanitizeCssLength,sanitizePercentRect}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{DeferredTeardown}from"../document-viewer/deferred-teardown.js";import{snapshotLyraHighlightAnchorKind,snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_convertingDocument,LYRA_DEFAULT_details,LYRA_DEFAULT_documentPreviewAlt,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewGenericError,LYRA_DEFAULT_documentPreviewGenericFile,LYRA_DEFAULT_documentPreviewNotAvailable,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewTypeImage,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_download,LYRA_DEFAULT_highlightOfTotal,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loading,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const IDLE_TEXT_FETCH={kind:"idle"};function classifyFormat(mimeType){const mt=(mimeType??"").split(";",1)[0].trim().toLowerCase();return mt.startsWith("text/")||mt==="application/json"?"text":mt.startsWith("image/")?"image":"generic"}const EMPTY_REGION_HIGHLIGHTS=Object.freeze([]);function projectRegionAnchor(value,knownRegionKind=!1){try{if(value===null||typeof value!="object"||Array.isArray(value))return;if(!knownRegionKind){const kind=getOwnDataDescriptor(value,"kind");if(kind===MISSING_OWN_DATA_DESCRIPTOR||kind===UNSAFE_OWN_DATA_DESCRIPTOR||kind.value!=="region")return}const rectDescriptor=getOwnDataDescriptor(value,"rect");if(rectDescriptor===MISSING_OWN_DATA_DESCRIPTOR||rectDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;const rect=sanitizePercentRect(rectDescriptor.value);if(!rect)return;const pageDescriptor=getOwnDataDescriptor(value,"page"),page=pageDescriptor===MISSING_OWN_DATA_DESCRIPTOR||pageDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:pageDescriptor.value;return Object.freeze({rect,...typeof page=="number"&&Number.isFinite(page)?{page}:{}})}catch{return}}const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function downloadIcon(){return icon(svg`
2
2
  <path d="M12 3v12"></path>
3
3
  <polyline points="7 11 12 16 17 11"></polyline>
4
4
  <path d="M4 18v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"></path>
@@ -15,7 +15,7 @@ import{__decorate}from"tslib";import{html,nothing,svg}from"lit";import{property,
15
15
  aria-hidden="true"
16
16
  focusable="false"
17
17
  >${paths}</svg>
18
- `}class LyraDocumentPreview extends LyraElement{constructor(){super(...arguments),this.src="",this.mimeType="",this.filename="",this.status="idle",this.errorText="",this.maxHeight="",this.zoomable=!1,this.suppressDownload=!1,this._highlights=snapshotLyraHighlights([]),this._regionHighlights=EMPTY_REGION_HIGHLIGHTS,this.activeHighlightId=null,this.anchorKinds=["region"],this.hasUnsupportedSlot=!1,this.textFetch=IDLE_TEXT_FETCH,this.generation=0,this.invalidUrlReportedFor=null,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>this.releaseDetachedPreview()),this.onUnsupportedSlotChange=()=>{this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported")},this.onDownloadClick=()=>{this.emit("lr-download",{src:this.src,filename:this.filename})}}static{this.defaultStrings={...super.defaultStrings,convertingDocument:LYRA_DEFAULT_convertingDocument,documentPreviewAlt:LYRA_DEFAULT_documentPreviewAlt,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewGenericError:LYRA_DEFAULT_documentPreviewGenericError,documentPreviewGenericFile:LYRA_DEFAULT_documentPreviewGenericFile,documentPreviewNotAvailable:LYRA_DEFAULT_documentPreviewNotAvailable,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewTypeImage:LYRA_DEFAULT_documentPreviewTypeImage,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,download:LYRA_DEFAULT_download,highlightOfTotal:LYRA_DEFAULT_highlightOfTotal,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loadingDocument:LYRA_DEFAULT_loadingDocument}}static{this.styles=[LyraElement.styles,styles,viewerFrameStyles,srOnly]}get highlights(){return this._highlights}set highlights(value){if(value===this.highlightsSource||value===this._highlights)return;this.highlightsSource=value;const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this._regionHighlights=this.projectRegionHighlights(this._highlights),this.requestUpdate("highlights",previous)}connectedCallback(){super.connectedCallback(),this.announcements.connect();const moved=this.detached.cancel();this.hasUpdated&&this.src&&classifyFormat(this.mimeType)==="text"&&!moved&&(this.textFetch=IDLE_TEXT_FETCH,this.scheduleAfterUpdate(()=>{const url=safeFetchUrl(this.src);url&&this.status!=="converting"&&this.status!=="error"&&this.fetchText(url)}))}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}releaseDetachedPreview(){this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported")),this.textFetch.kind!=="idle"&&(classifyFormat(this.mimeType)!=="text"||safeFetchUrl(this.src)===null||this.status==="converting"||this.status==="error")&&(this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH)}updated(changed){super.updated(changed),this.syncAnnouncementState();const safeTextSrc=safeFetchUrl(this.src);classifyFormat(this.mimeType)==="text"&&safeTextSrc!==null&&this.status!=="converting"&&this.status!=="error"&&(changed.has("src")||changed.has("mimeType")||changed.has("status")&&this.textFetch.kind==="idle")&&this.scheduleAfterUpdate(()=>{this.fetchText(safeTextSrc)})}syncAnnouncementState(){if(this.status==="converting"){if(this.progress!=null&&Number.isFinite(this.progress)){this.announcements.transition("preview","progress");return}this.announcements.transition("preview","loading",this.localize("convertingDocument"));return}if(this.status==="error"){this.announcements.transition("preview","error",this.errorText||this.localize("documentPreviewGenericError"));return}if(classifyFormat(this.mimeType)!=="text"||this.src===""){this.announcements.transition("preview","idle");return}if(safeFetchUrl(this.src)===null){this.announcements.transition("preview","error",this.localize("documentPreviewUrlNotAllowed"));return}if(this.textFetch.kind==="error"){this.announcements.transition("preview","error",this.textFetch.message);return}if(this.textFetch.kind==="loaded"){this.announcements.transition("preview","loaded");return}this.announcements.transition("preview","loading",this.localize("loadingDocument"))}async fetchText(url){const generation=++this.generation,signal=this.beginAbortableLoad(),fetchTarget=resolveOwnerFetchTarget(this,url);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.textFetch={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.textFetch={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 text=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;this.textFetch={kind:"loaded",text}}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;const message=this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad");this.textFetch={kind:"error",message},this.emit("lr-render-error",{error})}}renderSpinner(label,progressValue){if(progressValue!=null&&Number.isFinite(progressValue)){const clamped=finiteRange(progressValue,0,0,100),rounded=Math.round(clamped),formatted=getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:0}).format(clamped/100);return html`
18
+ `}class LyraDocumentPreview extends LyraElement{constructor(){super(...arguments),this.src="",this.mimeType="",this.filename="",this.status="idle",this.errorText="",this.maxHeight="",this.zoomable=!1,this.suppressDownload=!1,this._highlights=snapshotLyraHighlights([]),this._regionHighlights=EMPTY_REGION_HIGHLIGHTS,this.activeHighlightId=null,this.anchorKinds=["region"],this.hasUnsupportedSlot=!1,this.textFetch=IDLE_TEXT_FETCH,this.generation=0,this.invalidUrlReportedFor=null,this.announcements=new ViewerAnnouncementController(this),this.detached=new DeferredTeardown(()=>this.releaseDetachedPreview()),this.onUnsupportedSlotChange=()=>{this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported")},this.onDownloadClick=()=>{this.emit("lr-download",{src:this.src,filename:this.filename})}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,convertingDocument:LYRA_DEFAULT_convertingDocument,details:LYRA_DEFAULT_details,documentPreviewAlt:LYRA_DEFAULT_documentPreviewAlt,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewGenericError:LYRA_DEFAULT_documentPreviewGenericError,documentPreviewGenericFile:LYRA_DEFAULT_documentPreviewGenericFile,documentPreviewNotAvailable:LYRA_DEFAULT_documentPreviewNotAvailable,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewTypeImage:LYRA_DEFAULT_documentPreviewTypeImage,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,download:LYRA_DEFAULT_download,highlightOfTotal:LYRA_DEFAULT_highlightOfTotal,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loading:LYRA_DEFAULT_loading,loadingDocument:LYRA_DEFAULT_loadingDocument,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.styles=[LyraElement.styles,styles,viewerFrameStyles,srOnly]}get highlights(){return this._highlights}set highlights(value){if(value===this.highlightsSource||value===this._highlights)return;this.highlightsSource=value;const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this._regionHighlights=this.projectRegionHighlights(this._highlights),this.requestUpdate("highlights",previous)}connectedCallback(){super.connectedCallback(),this.announcements.connect();const moved=this.detached.cancel();this.hasUpdated&&this.src&&classifyFormat(this.mimeType)==="text"&&!moved&&(this.textFetch=IDLE_TEXT_FETCH,this.scheduleAfterUpdate(()=>{const url=safeFetchUrl(this.src);url&&this.status!=="converting"&&this.status!=="error"&&this.fetchText(url)}))}disconnectedCallback(){this.announcements.disconnect(),super.disconnectedCallback(),this.detached.schedule()}releaseDetachedPreview(){this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH}adoptedCallback(){super.adoptedCallback(),this.detached.flush(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported")),this.textFetch.kind!=="idle"&&(classifyFormat(this.mimeType)!=="text"||safeFetchUrl(this.src)===null||this.status==="converting"||this.status==="error")&&(this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH)}updated(changed){super.updated(changed),this.syncAnnouncementState();const safeTextSrc=safeFetchUrl(this.src);classifyFormat(this.mimeType)==="text"&&safeTextSrc!==null&&this.status!=="converting"&&this.status!=="error"&&(changed.has("src")||changed.has("mimeType")||changed.has("status")&&this.textFetch.kind==="idle")&&this.scheduleAfterUpdate(()=>{this.fetchText(safeTextSrc)})}syncAnnouncementState(){if(this.status==="converting"){if(this.progress!=null&&Number.isFinite(this.progress)){this.announcements.transition("preview","progress");return}this.announcements.transition("preview","loading",this.localize("convertingDocument"));return}if(this.status==="error"){this.announcements.transition("preview","error",this.errorText||this.localize("documentPreviewGenericError"));return}if(classifyFormat(this.mimeType)!=="text"||this.src===""){this.announcements.transition("preview","idle");return}if(safeFetchUrl(this.src)===null){this.announcements.transition("preview","error",this.localize("documentPreviewUrlNotAllowed"));return}if(this.textFetch.kind==="error"){this.announcements.transition("preview","error",this.textFetch.message);return}if(this.textFetch.kind==="loaded"){this.announcements.transition("preview","loaded");return}this.announcements.transition("preview","loading",this.localize("loadingDocument"))}async fetchText(url){const generation=++this.generation,signal=this.beginAbortableLoad(),fetchTarget=resolveOwnerFetchTarget(this,url);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.textFetch={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.textFetch={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 text=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;this.textFetch={kind:"loaded",text}}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;const message=this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad");this.textFetch={kind:"error",message},this.emit("lr-render-error",{error})}}renderSpinner(label,progressValue){if(progressValue!=null&&Number.isFinite(progressValue)){const clamped=finiteRange(progressValue,0,0,100),rounded=Math.round(clamped),formatted=getNumberFormat(this.effectiveLocale,{style:"percent",maximumFractionDigits:0}).format(clamped/100);return html`
19
19
  <div
20
20
  part="spinner"
21
21
  role="progressbar"
@@ -37,20 +37,7 @@ import{__decorate}from"tslib";import{html,nothing,svg}from"lit";import{property,
37
37
  </div>`,frame=this.zoomable?html`<lr-pan-zoom
38
38
  exportparts="viewport:frame-viewport, content:frame-content, controls:frame-controls, zoom-in:frame-zoom-in, zoom-out:frame-zoom-out, reset:frame-reset"
39
39
  @lr-zoom-change=${this.stopPanZoomEvent}
40
- >${inner}</lr-pan-zoom>`:inner;return html`${frame}${this.renderHighlightActions(regionHighlights)}`}projectRegionHighlights(highlights){const regions=[];for(const highlight of highlights){if(snapshotLyraHighlightAnchorKind(highlight)!=="region")continue;const anchor=projectRegionAnchor(highlight.anchor,!0);anchor&&regions.push(Object.freeze({id:highlight.id,...typeof highlight.label=="string"?{label:highlight.label}:{},...highlight.tone===void 0?{}:{tone:highlight.tone},anchor}))}return Object.freeze(regions)}regionHighlights(){return this._regionHighlights}highlightActionLabel(highlight,index,total){if(highlight.label)return this.localize("highlightWithLabel",void 0,{label:highlight.label});const numberFormat=getNumberFormat(this.effectiveLocale);return this.localize("highlightOfTotal",void 0,{index:numberFormat.format(index+1),total:numberFormat.format(total)})}renderHighlightLayer(regionHighlights,interactive){return renderRegionHighlightLayer(regionHighlights,this.activeHighlightId,interactive,(highlight,index,total)=>this.highlightActionLabel(highlight,index,total),highlightId=>this.emit("lr-highlight-activate",{highlightId}))}onHighlightActionKeyDown(e,index,total){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");let nextIndex;forward?nextIndex=Math.min(total-1,index+1):backward?nextIndex=Math.max(0,index-1):e.key==="Home"?nextIndex=0:e.key==="End"&&(nextIndex=total-1),!(nextIndex===void 0||nextIndex===index)&&(e.preventDefault(),this.renderRoot.querySelectorAll('[part="region-highlight-action"]')[nextIndex]?.focus())}renderHighlightActions(regionHighlights){return regionHighlights.length<2?nothing:html`<div part="highlight-actions">
41
- ${regionHighlights.map((highlight,index)=>{const label=this.highlightActionLabel(highlight,index,regionHighlights.length);return html`
42
- <button
43
- part="region-highlight-action"
44
- type="button"
45
- data-highlight-id=${highlight.id}
46
- aria-label=${label}
47
- @click=${()=>this.emit("lr-highlight-activate",{highlightId:highlight.id})}
48
- @keydown=${e=>this.onHighlightActionKeyDown(e,index,regionHighlights.length)}
49
- >
50
- ${highlight.label||label}
51
- </button>
52
- `})}
53
- </div>`}async scrollToAnchor(target){let region;if(typeof target=="string")region=this._regionHighlights.find(highlight=>highlight.id===target);else{const directHighlight=this.highlights.find(highlight=>highlight.anchor===target);if(directHighlight)region=this._regionHighlights.find(highlight=>highlight.id===directHighlight.id);else{const targetRegion=projectRegionAnchor(target);targetRegion&&(region=this._regionHighlights.find(highlight=>sameRegionAnchor(highlight.anchor,targetRegion)))}}const ready=classifyFormat(this.mimeType)==="image"&&safeMediaSrc(this.src)!==null;if(!region||!ready)return!1;await this.updateComplete;const regionElement=[...this.renderRoot.querySelectorAll('[part~="region-highlight"][data-id]')].find(candidate=>candidate.getAttribute("data-id")===region.id);if(!regionElement)return!1;const behavior=prefersReducedMotion(this)?"auto":"smooth";return regionElement.scrollIntoView({behavior,block:"center",inline:"center"}),!0}renderDownloadFallback(){const label=this.filename||this.localize("documentPreviewGenericFile"),href=safeDownloadHref(this.src);return html`
40
+ >${inner}</lr-pan-zoom>`:inner;return html`${frame}${this.renderHighlightActions(regionHighlights)}`}projectRegionHighlights(highlights){const regions=[];for(const highlight of highlights){if(snapshotLyraHighlightAnchorKind(highlight)!=="region")continue;const anchor=projectRegionAnchor(highlight.anchor,!0);anchor&&regions.push(Object.freeze({id:highlight.id,...typeof highlight.label=="string"?{label:highlight.label}:{},...highlight.tone===void 0?{}:{tone:highlight.tone},anchor}))}return Object.freeze(regions)}regionHighlights(){return this._regionHighlights}highlightActionLabel(highlight,index,total){return regionHighlightLabel(highlight,index,total,this.effectiveLocale,(key,values)=>this.localize(key,void 0,values))}renderHighlightLayer(regionHighlights,interactive){return renderRegionHighlightLayer(regionHighlights,this.activeHighlightId,interactive,(highlight,index,total)=>this.highlightActionLabel(highlight,index,total),highlightId=>this.emit("lr-highlight-activate",{highlightId}))}renderHighlightActions(regionHighlights){return renderRegionHighlightActions(regionHighlights,(highlight,index,total)=>this.highlightActionLabel(highlight,index,total),this.renderRoot,this.effectiveDirection==="rtl",highlightId=>this.emit("lr-highlight-activate",{highlightId}))}async scrollToAnchor(target){let region;if(typeof target=="string")region=this._regionHighlights.find(highlight=>highlight.id===target);else{const directHighlight=this.highlights.find(highlight=>highlight.anchor===target);if(directHighlight)region=this._regionHighlights.find(highlight=>highlight.id===directHighlight.id);else{const targetRegion=projectRegionAnchor(target);targetRegion&&(region=this._regionHighlights.find(highlight=>sameRegionRect(highlight.anchor,targetRegion)))}}const ready=classifyFormat(this.mimeType)==="image"&&safeMediaSrc(this.src)!==null;if(!region||!ready)return!1;await this.updateComplete;const regionElement=[...this.renderRoot.querySelectorAll('[part~="region-highlight"][data-id]')].find(candidate=>candidate.getAttribute("data-id")===region.id);if(!regionElement)return!1;const behavior=prefersReducedMotion(this)?"auto":"smooth";return regionElement.scrollIntoView({behavior,block:"center",inline:"center"}),!0}renderDownloadFallback(){const label=this.filename||this.localize("documentPreviewGenericFile"),href=safeDownloadHref(this.src);return html`
54
41
  <div class="fallback">
55
42
  <span class="fallback-icon" aria-hidden="true">${fileIcon()}</span>
56
43
  <p class="fallback-text">${this.localize("documentPreviewNotAvailable",void 0,{label})}</p>
@@ -0,0 +1 @@
1
+ import{LyraResourceLimitError}from"../../../internal/resource-loader.js";import{assertZipArchiveWithinLimits,createXmlComplexityInspectorFactory,zipEntryLookupNames}from"../archive-viewer/zip-resource-guard.js";const MAX_RELATIONSHIP_BYTES=8*1024*1024,RELATIONSHIP_PART_NAME=/^(?:(.*)\/)?_rels\/[^/]*\.rels$/i,OFFICE_RELATIONSHIP="http://schemas.openxmlformats.org/officeDocument/2006/relationships/",XML_ENTITIES={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function isXmlSpace(character){return character!==void 0&&(character<=" "||character==="€")}function decodeAttributeValue(value){return value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,reference=>{const name=reference.slice(1,-1);if(Object.hasOwn(XML_ENTITIES,name))return XML_ENTITIES[name];if(!name.startsWith("#"))return reference;const code=parseInt(name.slice(1).replace("x","0x"));return Number.isInteger(code)&&code>=0&&code<=1114111?String.fromCodePoint(code):reference})}function isTagDelimiter(character){return character===void 0||isXmlSpace(character)||`<>/="'`.includes(character)}function relationshipPartTargets(text,isPartType){const targets=[];for(let start=text.indexOf("<");start>=0;start=text.indexOf("<",start+1)){let index=start+1;for(;!isTagDelimiter(text[index]);)index++;const name=text.slice(start+1,index);if(name.slice(name.lastIndexOf(":")+1)!=="Relationship")continue;let partType=!1;const values=[];for(;index<text.length&&text[index]!==">"&&text[index]!=="<";){if(isXmlSpace(text[index])||text[index]==="/"){index++;continue}const attributeStart=index;for(;!isTagDelimiter(text[index]);)index++;const attribute=text.slice(attributeStart,index);for(;isXmlSpace(text[index]);)index++;if(text[index]==="=")for(index++;isXmlSpace(text[index]);)index++;const quote=text[index];let value="";if(quote==='"'||quote==="'"){const end=text.indexOf(quote,index+1);if(end<0)break;value=text.slice(index+1,end),index=end+1}else if(isTagDelimiter(quote)){if(attribute==="")break}else{const valueStart=index;for(;!isTagDelimiter(text[index]);)index++;value=text.slice(valueStart,index)}attribute==="Type"&&isPartType(decodeAttributeValue(value))&&(partType=!0),attribute==="Target"&&values.push(decodeAttributeValue(value))}partType&&targets.push(...values)}return targets}function joinPartPath(base,target){const joined=target.startsWith("/")?target:[base,target].filter(Boolean).join("/");return joined.startsWith("/")?joined.slice(1):joined}async function assertOoxmlPartsWithinLimits(source,config){const{guardOptions,extend}=config;let countEveryEntry=!1;const countNodes=createXmlComplexityInspectorFactory({includeEntry:name=>countEveryEntry||config.partName.test(name),maxNodes:config.maxNodes}),skipped=[],relationshipParts=[];let relationshipBytes=0;await assertZipArchiveWithinLimits(source,{...guardOptions,createInspector:entry=>{const counter=countNodes(entry);if(!counter){skipped.push(entry.name);return}const inspect=extend?extend(counter):counter;if(!zipEntryLookupNames(entry.name).some(name=>RELATIONSHIP_PART_NAME.test(name)))return inspect;const part={name:entry.name,chunks:[]};return relationshipParts.push(part),{write(chunk){if(inspect.write(chunk),relationshipBytes+=chunk.byteLength,relationshipBytes>MAX_RELATIONSHIP_BYTES)throw new LyraResourceLimitError(`The ${guardOptions.description} archive contains too many document relationships.`);part.chunks.push(chunk)},close:()=>inspect.close()}}});const candidates=new Set;for(const part of relationshipParts){const decoder=new TextDecoder,targets=relationshipPartTargets(part.chunks.map(chunk=>decoder.decode(chunk,{stream:!0})).join("")+decoder.decode(),config.isPartType);for(const name of zipEntryLookupNames(part.name)){const match=RELATIONSHIP_PART_NAME.exec(name);if(match)for(const target of targets)for(const lookup of zipEntryLookupNames(joinPartPath(match[1]??"",target)))candidates.add(lookup)}}const uncounted=new Set(skipped.filter(name=>zipEntryLookupNames(name).some(lookup=>candidates.has(lookup))));uncounted.size!==0&&(countEveryEntry=!0,await assertZipArchiveWithinLimits(source,{...guardOptions,createInspector:entry=>{if(!uncounted.has(entry.name))return;const counter=countNodes(entry);return counter&&extend?extend(counter):counter}}))}export{OFFICE_RELATIONSHIP,assertOoxmlPartsWithinLimits};
@@ -1 +1 @@
1
- import{isHtmlSanitizer,resolveOptionalPeerCapability}from"../../../internal/optional-peer-capabilities.js";let depsPromise,resolvedDeps;function isMammothApi(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&"convertToHtml"in value&&typeof value.convertToHtml=="function"}async function loadMammothAndSanitizer(importMammoth=()=>import("mammoth/mammoth.browser.js"),importDompurify=()=>import("dompurify")){let mammoth;try{mammoth=resolveOptionalPeerCapability(await importMammoth(),isMammothApi)??void 0}catch(error){console.warn("<lr-docx-viewer> needs the optional peer dependency `mammoth` to convert DOCX documents — install it with `pnpm add mammoth`:",error)}let DOMPurify;try{DOMPurify=resolveOptionalPeerCapability(await importDompurify(),isHtmlSanitizer)??void 0}catch(error){console.warn("<lr-docx-viewer> needs the optional peer dependency `dompurify` to sanitize converted HTML — install it with `pnpm add dompurify`:",error)}return{mammoth,DOMPurify}}function loadDocxDeps(){return depsPromise||(depsPromise=loadMammothAndSanitizer().then(resolved=>(resolvedDeps=resolved,resolved))),depsPromise}function getDocxDepsIfLoaded(){return resolvedDeps}function clearDocxDepsCache(){depsPromise=void 0,resolvedDeps=void 0}export{clearDocxDepsCache,getDocxDepsIfLoaded,loadDocxDeps,loadMammothAndSanitizer};
1
+ import{loadDompurify}from"../../../internal/dompurify-loader.js";import{createOptionalPeerLoader}from"../../../internal/optional-peer-capabilities.js";let depsPromise,resolvedDeps;function isMammothApi(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&"convertToHtml"in value&&typeof value.convertToHtml=="function"}const mammothLoader=createOptionalPeerLoader({load:()=>import("mammoth/mammoth.browser.js"),isCapability:isMammothApi,warningKey:"lyra-docx-viewer-mammoth-unavailable",warning:"<lr-docx-viewer> could not load its optional mammoth peer."});async function loadMammothAndSanitizer(importMammoth,importDompurify){const[mammoth,DOMPurify]=await Promise.all([importMammoth?mammothLoader.loadWith(importMammoth):mammothLoader.get(),loadDompurify(importDompurify)]);return{mammoth:mammoth??void 0,DOMPurify:DOMPurify??void 0}}function loadDocxDeps(){return depsPromise||(depsPromise=loadMammothAndSanitizer().then(resolved=>(resolvedDeps=resolved,resolved))),depsPromise}function getDocxDepsIfLoaded(){return resolvedDeps}function clearDocxDepsCache(){depsPromise=void 0,resolvedDeps=void 0,mammothLoader.clear()}export{clearDocxDepsCache,getDocxDepsIfLoaded,loadDocxDeps,loadMammothAndSanitizer};
@@ -1 +1 @@
1
- import{LyraResourceLimitError}from"../../../internal/resource-loader.js";import{DOCX_ZIP_LIMITS,DocxZipAdmissionError,inspectDocxZip}from"../../../internal/docx-zip-admission.js";import{assertZipArchiveWithinLimits,createXmlComplexityInspectorFactory,zipEntryLookupNames}from"../archive-viewer/zip-resource-guard.js";const DEFAULT_MAX_DOCX_ENTRIES=DOCX_ZIP_LIMITS.entries,DEFAULT_MAX_DOCX_UNCOMPRESSED_BYTES=DOCX_ZIP_LIMITS.expanded,DEFAULT_MAX_DOCX_XML_NODES=DOCX_ZIP_LIMITS.nodes,MAX_DOCX_RELATIONSHIP_BYTES=8*1024*1024,DOCX_XML_PART_NAME=/\.(?:xml|rels)$/i,RELATIONSHIP_PART_NAME=/^(?:(.*)\/)?_rels\/[^/]*\.rels$/i,OFFICE_RELATIONSHIP="http://schemas.openxmlformats.org/officeDocument/2006/relationships/",MAMMOTH_XML_PART_TYPES=new Set(["officeDocument","styles","numbering","footnotes","endnotes","comments"].map(kind=>OFFICE_RELATIONSHIP+kind)),XML_ENTITIES={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function createDocxXmlDepthInspector(maxDepth){const decoder=new TextDecoder("utf-8",{fatal:!0});let depth=0,state="text",bang="",tail="",quote="",lastNonSpace="",tagName="",readingTagName=!1,closeName="",closeNameEnded=!1;const names=[],invalid=()=>{throw new LyraResourceLimitError("The DOCX archive contains invalid XML.")},consume=text=>{for(const char of text){if(state==="text"){char==="<"&&(state="open");continue}if(state==="open"){if(char==="!")state="bang",bang="";else if(char==="?")state="pi",tail="";else if(char==="/")state="close",closeName="",closeNameEnded=!1;else if(/^[\p{L}_:]$/u.test(char)){if(++depth>maxDepth)throw new LyraResourceLimitError("The DOCX archive contains overly deep XML.");state="tag",quote="",lastNonSpace=char,tagName=char,readingTagName=!0}else invalid();continue}if(state==="bang"){bang+=char,"--".startsWith(bang)&&bang==="--"?(state="comment",tail=""):"[CDATA[".startsWith(bang)&&bang==="[CDATA["?(state="cdata",tail=""):!"--".startsWith(bang)&&!"[CDATA[".startsWith(bang)&&invalid();continue}if(state==="comment"||state==="cdata"||state==="pi"){tail=(tail+char).slice(-3),(state==="comment"&&tail==="-->"||state==="cdata"&&tail==="]]>"||state==="pi"&&tail.endsWith("?>"))&&(state="text",tail="");continue}if(state==="close"){char===">"?((!closeName||names.pop()!==closeName)&&invalid(),depth--,state="text"):!closeNameEnded&&/^[\p{L}\p{N}\p{M}_.:-]$/u.test(char)?closeName+=char:/\s/u.test(char)&&closeName?closeNameEnded=!0:invalid();continue}if(readingTagName){if(/^[\p{L}\p{N}\p{M}_.:-]$/u.test(char)){tagName+=char,lastNonSpace=char;continue}names.push(tagName),readingTagName=!1}if(quote){char===quote&&(quote="");continue}char==='"'||char==="'"?quote=char:char===">"?(lastNonSpace==="/"&&(names.pop(),depth--),state="text"):char==="<"?invalid():/\s/u.test(char)||(lastNonSpace=char)}};return{write(chunk){try{consume(decoder.decode(chunk,{stream:!0}))}catch(error){if(error instanceof LyraResourceLimitError)throw error;invalid()}},close(){try{consume(decoder.decode())}catch(error){if(error instanceof LyraResourceLimitError)throw error;invalid()}(state!=="text"||depth!==0||names.length!==0)&&invalid()}}}function isXmlSpace(character){return character!==void 0&&(character<=" "||character==="€")}function decodeAttributeValue(value){return value.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,reference=>{const name=reference.slice(1,-1);if(Object.hasOwn(XML_ENTITIES,name))return XML_ENTITIES[name];if(!name.startsWith("#"))return reference;const code=parseInt(name.slice(1).replace("x","0x"));return Number.isInteger(code)&&code>=0&&code<=1114111?String.fromCodePoint(code):reference})}function isTagDelimiter(character){return character===void 0||isXmlSpace(character)||`<>/="'`.includes(character)}function mammothPartTargets(text){const targets=[];for(let start=text.indexOf("<");start>=0;start=text.indexOf("<",start+1)){let index=start+1;for(;!isTagDelimiter(text[index]);)index++;const name=text.slice(start+1,index);if(name.slice(name.lastIndexOf(":")+1)!=="Relationship")continue;let partType=!1;const values=[];for(;index<text.length&&text[index]!==">"&&text[index]!=="<";){if(isXmlSpace(text[index])||text[index]==="/"){index++;continue}const attributeStart=index;for(;!isTagDelimiter(text[index]);)index++;const attribute=text.slice(attributeStart,index);for(;isXmlSpace(text[index]);)index++;if(text[index]==="=")for(index++;isXmlSpace(text[index]);)index++;const quote=text[index];let value="";if(quote==='"'||quote==="'"){const end=text.indexOf(quote,index+1);if(end<0)break;value=text.slice(index+1,end),index=end+1}else if(isTagDelimiter(quote)){if(attribute==="")break}else{const valueStart=index;for(;!isTagDelimiter(text[index]);)index++;value=text.slice(valueStart,index)}attribute==="Type"&&MAMMOTH_XML_PART_TYPES.has(decodeAttributeValue(value))&&(partType=!0),attribute==="Target"&&values.push(decodeAttributeValue(value))}partType&&targets.push(...values)}return targets}function joinPartPath(base,target){const joined=target.startsWith("/")?target:[base,target].filter(Boolean).join("/");return joined.startsWith("/")?joined.slice(1):joined}async function assertDocxArchiveWithinLimits(source,maxEntries=DEFAULT_MAX_DOCX_ENTRIES,maxUncompressedBytes=DEFAULT_MAX_DOCX_UNCOMPRESSED_BYTES,options={}){if(options.strictAdmission)try{inspectDocxZip(new Uint8Array(source),options.signal)}catch(error){throw error instanceof DocxZipAdmissionError&&error.code==="aborted"?new DOMException("The operation was aborted.","AbortError"):new LyraResourceLimitError("The DOCX archive is malformed or exceeds its resource limits.")}let countEveryEntry=!1;const countNodes=createXmlComplexityInspectorFactory({includeEntry:name=>countEveryEntry||DOCX_XML_PART_NAME.test(name),maxNodes:options.maxXmlNodes??DEFAULT_MAX_DOCX_XML_NODES}),guardOptions={description:"DOCX",maxEntries,maxUncompressedBytes,maxEntryBytes:options.strictAdmission?DOCX_ZIP_LIMITS.entry:void 0,verifyCrc:options.strictAdmission,signal:options.signal},skipped=[],relationshipParts=[];let relationshipBytes=0;await assertZipArchiveWithinLimits(source,{...guardOptions,createInspector:entry=>{const counter=countNodes(entry);if(!counter){skipped.push(entry.name);return}const depth=options.strictAdmission?createDocxXmlDepthInspector(DOCX_ZIP_LIMITS.depth):void 0,inspect=depth?{write(chunk){counter.write(chunk),depth.write(chunk)},close(){counter.close(),depth.close()}}:counter;if(!zipEntryLookupNames(entry.name).some(name=>RELATIONSHIP_PART_NAME.test(name)))return inspect;const part={name:entry.name,chunks:[]};return relationshipParts.push(part),{write(chunk){if(inspect.write(chunk),relationshipBytes+=chunk.byteLength,relationshipBytes>MAX_DOCX_RELATIONSHIP_BYTES)throw new LyraResourceLimitError("The DOCX archive contains too many document relationships.");part.chunks.push(chunk)},close:()=>inspect.close()}}});const candidates=new Set;for(const part of relationshipParts){const decoder=new TextDecoder,targets=mammothPartTargets(part.chunks.map(chunk=>decoder.decode(chunk,{stream:!0})).join("")+decoder.decode());for(const name of zipEntryLookupNames(part.name)){const match=RELATIONSHIP_PART_NAME.exec(name);if(match)for(const target of targets)for(const lookup of zipEntryLookupNames(joinPartPath(match[1]??"",target)))candidates.add(lookup)}}const uncounted=new Set(skipped.filter(name=>zipEntryLookupNames(name).some(lookup=>candidates.has(lookup))));uncounted.size!==0&&(countEveryEntry=!0,await assertZipArchiveWithinLimits(source,{...guardOptions,createInspector:entry=>{if(!uncounted.has(entry.name))return;const counter=countNodes(entry);if(!counter||!options.strictAdmission)return counter;const depth=createDocxXmlDepthInspector(DOCX_ZIP_LIMITS.depth);return{write(chunk){counter.write(chunk),depth.write(chunk)},close(){counter.close(),depth.close()}}}}))}export{assertDocxArchiveWithinLimits,createDocxXmlDepthInspector};
1
+ import{LyraResourceLimitError}from"../../../internal/resource-loader.js";import{DOCX_ZIP_LIMITS,DocxZipAdmissionError,inspectDocxZip}from"../../../internal/docx-zip-admission.js";import{assertOoxmlPartsWithinLimits,OFFICE_RELATIONSHIP}from"../document-viewer/ooxml-part-guard.js";const DEFAULT_MAX_DOCX_ENTRIES=DOCX_ZIP_LIMITS.entries,DEFAULT_MAX_DOCX_UNCOMPRESSED_BYTES=DOCX_ZIP_LIMITS.expanded,DEFAULT_MAX_DOCX_XML_NODES=DOCX_ZIP_LIMITS.nodes,DOCX_XML_PART_NAME=/\.(?:xml|rels)$/i,MAMMOTH_XML_PART_TYPES=new Set(["officeDocument","styles","numbering","footnotes","endnotes","comments"].map(kind=>OFFICE_RELATIONSHIP+kind));function createDocxXmlDepthInspector(maxDepth){const decoder=new TextDecoder("utf-8",{fatal:!0});let depth=0,state="text",bang="",tail="",quote="",lastNonSpace="",tagName="",readingTagName=!1,closeName="",closeNameEnded=!1;const names=[],invalid=()=>{throw new LyraResourceLimitError("The DOCX archive contains invalid XML.")},consume=text=>{for(const char of text){if(state==="text"){char==="<"&&(state="open");continue}if(state==="open"){if(char==="!")state="bang",bang="";else if(char==="?")state="pi",tail="";else if(char==="/")state="close",closeName="",closeNameEnded=!1;else if(/^[\p{L}_:]$/u.test(char)){if(++depth>maxDepth)throw new LyraResourceLimitError("The DOCX archive contains overly deep XML.");state="tag",quote="",lastNonSpace=char,tagName=char,readingTagName=!0}else invalid();continue}if(state==="bang"){bang+=char,"--".startsWith(bang)&&bang==="--"?(state="comment",tail=""):"[CDATA[".startsWith(bang)&&bang==="[CDATA["?(state="cdata",tail=""):!"--".startsWith(bang)&&!"[CDATA[".startsWith(bang)&&invalid();continue}if(state==="comment"||state==="cdata"||state==="pi"){tail=(tail+char).slice(-3),(state==="comment"&&tail==="-->"||state==="cdata"&&tail==="]]>"||state==="pi"&&tail.endsWith("?>"))&&(state="text",tail="");continue}if(state==="close"){char===">"?((!closeName||names.pop()!==closeName)&&invalid(),depth--,state="text"):!closeNameEnded&&/^[\p{L}\p{N}\p{M}_.:-]$/u.test(char)?closeName+=char:/\s/u.test(char)&&closeName?closeNameEnded=!0:invalid();continue}if(readingTagName){if(/^[\p{L}\p{N}\p{M}_.:-]$/u.test(char)){tagName+=char,lastNonSpace=char;continue}names.push(tagName),readingTagName=!1}if(quote){char===quote&&(quote="");continue}char==='"'||char==="'"?quote=char:char===">"?(lastNonSpace==="/"&&(names.pop(),depth--),state="text"):char==="<"?invalid():/\s/u.test(char)||(lastNonSpace=char)}};return{write(chunk){try{consume(decoder.decode(chunk,{stream:!0}))}catch(error){if(error instanceof LyraResourceLimitError)throw error;invalid()}},close(){try{consume(decoder.decode())}catch(error){if(error instanceof LyraResourceLimitError)throw error;invalid()}(state!=="text"||depth!==0||names.length!==0)&&invalid()}}}async function assertDocxArchiveWithinLimits(source,maxEntries=DEFAULT_MAX_DOCX_ENTRIES,maxUncompressedBytes=DEFAULT_MAX_DOCX_UNCOMPRESSED_BYTES,options={}){if(options.strictAdmission)try{inspectDocxZip(new Uint8Array(source),options.signal)}catch(error){throw error instanceof DocxZipAdmissionError&&error.code==="aborted"?new DOMException("The operation was aborted.","AbortError"):new LyraResourceLimitError("The DOCX archive is malformed or exceeds its resource limits.")}await assertOoxmlPartsWithinLimits(source,{guardOptions:{description:"DOCX",maxEntries,maxUncompressedBytes,maxEntryBytes:options.strictAdmission?DOCX_ZIP_LIMITS.entry:void 0,verifyCrc:options.strictAdmission,signal:options.signal},partName:DOCX_XML_PART_NAME,isPartType:type=>MAMMOTH_XML_PART_TYPES.has(type),maxNodes:options.maxXmlNodes??DEFAULT_MAX_DOCX_XML_NODES,extend:options.strictAdmission?counter=>{const depth=createDocxXmlDepthInspector(DOCX_ZIP_LIMITS.depth);return{write(chunk){counter.write(chunk),depth.write(chunk)},close(){counter.close(),depth.close()}}}:void 0})}export{assertDocxArchiveWithinLimits,createDocxXmlDepthInspector};
@@ -88,7 +88,7 @@ name:string;
88
88
  /** A CSS `max-height` that caps the scrollable document body; invalid values are ignored. */
89
89
  maxHeight:string;
90
90
  /** Anchor kinds this viewer resolves via `scrollToAnchor()`. Readonly. */
91
- readonly anchorKinds:readonly['fragment','text-quote'];private fetchState;private searchMatches;private searchMatchCountExact;private searchActiveIndex;private resolvedHighlightActions;private generation;private lastLoadSrc;private loadLibrary;private readonly announcements;private headingTree;private highlightHandle?;private resolvedHighlightRanges;private pendingResolvedHighlightActions;private resolvedHighlightActionSyncPending;private searchQuery;private paintedSearchMarks;private textIndexCache;private textIndexMappingDirty;private textIndexLocale?;private readonly detached;connectedCallback():void;disconnectedCallback():void;private releaseDetachedDocument;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private contentRoot;private resetSearchForContentChange;private load;private failWithLocalizedMessage;private stampHeadings;
91
+ readonly anchorKinds:readonly['fragment','text-quote'];private fetchState;private readonly searchState;private resolvedHighlightActions;private generation;private lastLoadSrc;private loadLibrary;private readonly announcements;private headingTree;private highlightHandle?;private resolvedHighlightRanges;private pendingResolvedHighlightActions;private resolvedHighlightActionSyncPending;private paintedSearchMarks;private textIndexCache;private textIndexMappingDirty;private textIndexLocale?;private readonly detached;connectedCallback():void;disconnectedCallback():void;private releaseDetachedDocument;adoptedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private contentRoot;private resetSearchForContentChange;private load;private failWithLocalizedMessage;private stampHeadings;
92
92
  /** A document-ordered, flattened heading outline -- empty until a document has finished loading. */
93
93
  getHeadingTree():DocxHeadingItem[];protected applyAnchor(anchor:LyraAnchor):Promise<boolean>;private applyFragmentAnchor;private applyTextQuoteAnchor;
94
94
  /** Overrides `DocumentAnchorTarget`'s default (whole render-root) selection scope -- only
@@ -108,7 +108,7 @@ search(query:string):Promise<number>;
108
108
  searchNext():Promise<boolean>;
109
109
  /** Moves to the previous match, wrapping to the last before the first. Resolves `false` (no-op)
110
110
  * when there are no matches. */
111
- searchPrevious():Promise<boolean>;
111
+ searchPrevious():Promise<boolean>;private stepSearch;
112
112
  /** Clears the query, matches, and any painted marks, and resets `lr-search-change` to a
113
113
  * 0-match/no-active-index state. */
114
- clearSearch():void;private emitSearchChange;private scrollToActiveSearchMatch;private clearSearchPaint;private paintSearchMatches;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-docx-viewer':LyraDocxViewer;}}
114
+ clearSearch():void;private scrollToActiveSearchMatch;private clearSearchPaint;private paintSearchMatches;private renderBody;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-docx-viewer':LyraDocxViewer;}}