@aceshooting/lyra-ui 13.0.1 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +329 -0
- package/custom-elements.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +23 -15
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +9 -6
- package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts +12 -3
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +2 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +4 -2
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +3 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.js +2 -2
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +6 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +8 -8
- package/dist/components/agent-tools/result-card/result-card.class.d.ts +1 -1
- package/dist/components/agent-tools/result-card/result-card.class.js +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.d.ts +1 -1
- package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +5 -5
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +23 -10
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +13 -6
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +3 -3
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace-parse.js +3 -3
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +1 -2
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -2
- package/dist/components/agent-tools/terminal/terminal.class.js +5 -5
- package/dist/components/agent-tools/terminal/terminal.styles.js +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.d.ts +4 -2
- package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -2
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +3 -2
- package/dist/components/agent-tools/tool-param-form/tool-param-form.d.ts +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +2 -2
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +2 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +18 -12
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +7 -7
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +9 -3
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
- package/dist/components/agent-tools/trace-tree/span.d.ts +3 -1
- package/dist/components/agent-tools/trace-tree/span.js +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +12 -3
- package/dist/components/charts/chart/box-plot.class.js +9 -9
- package/dist/components/charts/chart/box-plot.styles.js +1 -1
- package/dist/components/charts/chart/chart-core-loader.js +1 -1
- package/dist/components/charts/chart/chart-feature-loader.js +1 -1
- package/dist/components/charts/chart/chart-preload.d.ts +1 -1
- package/dist/components/charts/chart/chart-preload.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +33 -10
- package/dist/components/charts/chart/chart.class.js +23 -14
- package/dist/components/charts/chart/chart.styles.js +1 -1
- package/dist/components/charts/chart/histogram-bin.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +20 -11
- package/dist/components/charts/chart/lite-chart.class.js +17 -11
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +1 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +2 -2
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +10 -5
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +4 -2
- package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.styles.js +1 -1
- package/dist/components/conversation/chat-composer/chat-composer.class.d.ts +6 -2
- package/dist/components/conversation/chat-composer/chat-composer.class.js +3 -3
- package/dist/components/conversation/chat-composer/chat-composer.styles.js +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts +4 -3
- package/dist/components/conversation/chat-message/chat-message.class.js +2 -2
- package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +4 -3
- package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts +3 -3
- package/dist/components/conversation/code-block/code-block-shared.js +2 -2
- package/dist/components/conversation/code-block/code-block.class.d.ts +4 -3
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +1 -1
- package/dist/components/conversation/code-block/code-loader.d.ts +1 -1
- package/dist/components/conversation/code-block/code-loader.js +1 -1
- package/dist/components/conversation/code-block/shiki-types.d.ts +2 -0
- package/dist/components/conversation/code-block/shiki-types.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +1 -1
- package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +1 -1
- package/dist/components/conversation/markdown/katex-loader.d.ts +4 -4
- package/dist/components/conversation/markdown/katex-loader.js +1 -1
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts +1 -1
- package/dist/components/conversation/markdown/markdown-loader.d.ts +1 -1
- package/dist/components/conversation/markdown/markdown-loader.js +1 -1
- package/dist/components/conversation/markdown/markdown-shared.d.ts +6 -1
- package/dist/components/conversation/markdown/markdown-shared.js +5 -4
- package/dist/components/conversation/markdown/markdown.class.d.ts +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.d.ts +18 -3
- package/dist/components/conversation/message-actions/message-actions.class.js +2 -2
- package/dist/components/conversation/message-actions/message-actions.styles.js +1 -1
- package/dist/components/conversation/message-actions/toolbar-actions.d.ts +3 -1
- package/dist/components/conversation/message-actions/toolbar-actions.js +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +40 -15
- package/dist/components/conversation/message-feedback/message-feedback.class.js +7 -3
- package/dist/components/conversation/message-feedback/message-feedback.styles.js +1 -1
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +10 -4
- package/dist/components/conversation/message-parts/message-parts.class.js +2 -2
- package/dist/components/conversation/message-parts/message-parts.styles.js +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +5 -2
- package/dist/components/conversation/model-select/model-select.class.js +8 -5
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts +3 -5
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +2 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +9 -2
- package/dist/components/conversation/prompt-input/prompt-input.class.js +3 -3
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +20 -4
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.js +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +17 -8
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +6 -3
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +14 -4
- package/dist/components/conversation/thread-list/thread-list.class.js +11 -11
- package/dist/components/conversation/thread-list/thread-list.styles.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +2 -0
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +2 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
- package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.d.ts +3 -0
- package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.js +1 -0
- package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +4 -2
- package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +12 -4
- package/dist/components/conversation/voice-picker/voice-picker.class.js +8 -5
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/conversation/widget-renderer/resolve.d.ts +4 -6
- package/dist/components/conversation/widget-renderer/resolve.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +16 -5
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/calendar/calendar.styles.js +1 -1
- package/dist/components/data/condition-builder/condition-builder.class.d.ts +3 -1
- package/dist/components/data/condition-builder/condition-builder.class.js +15 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +3 -1
- package/dist/components/data/context-meter/context-meter.class.js +4 -4
- package/dist/components/data/data-grid/data-grid.class.d.ts +51 -6
- package/dist/components/data/data-grid/data-grid.class.js +25 -11
- package/dist/components/data/data-grid/data-grid.styles.js +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts +5 -2
- package/dist/components/data/document-library/document-library.class.js +1 -1
- package/dist/components/data/env-list/env-list.class.js +1 -1
- package/dist/components/data/file-tree/file-tree.class.d.ts +2 -1
- package/dist/components/data/file-tree/file-tree.class.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +24 -14
- package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -2
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
- package/dist/components/data/flow-canvas/flow-model.js +1 -1
- package/dist/components/data/flow-canvas/flow-types.d.ts +2 -1
- package/dist/components/data/flow-controls/flow-controls.styles.js +1 -1
- package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
- package/dist/components/data/funnel/funnel.class.d.ts +1 -0
- package/dist/components/data/funnel/funnel.class.js +1 -1
- package/dist/components/data/gauge/gauge.class.d.ts +4 -1
- package/dist/components/data/gauge/gauge.class.js +6 -6
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +5 -2
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +15 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +7 -4
- package/dist/components/data/heatmap/heatmap.class.js +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
- package/dist/components/data/sparkline/sparkline.class.d.ts +2 -1
- package/dist/components/data/sparkline/sparkline.class.js +1 -1
- package/dist/components/data/stat/stat.class.d.ts +6 -2
- package/dist/components/data/stat/stat.class.js +1 -1
- package/dist/components/data/table/table.class.d.ts +15 -16
- package/dist/components/data/table/table.class.js +5 -4
- package/dist/components/data/table/table.styles.js +1 -1
- package/dist/components/data/timeline/timeline.class.d.ts +7 -2
- package/dist/components/data/timeline/timeline.class.js +1 -1
- package/dist/components/data/timeline/timeline.styles.js +1 -1
- package/dist/components/data/tree/tree-item.class.d.ts +3 -1
- package/dist/components/data/tree/tree-item.class.js +1 -1
- package/dist/components/data/tree/tree-item.styles.js +1 -1
- package/dist/components/data/tree/tree.class.d.ts +4 -1
- package/dist/components/data/tree/tree.class.js +1 -1
- package/dist/components/data/word-cloud/word-cloud-layout.d.ts +2 -1
- package/dist/components/data/word-cloud/word-cloud-layout.js +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +2 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
- package/dist/components/forms/button/button.class.d.ts +5 -3
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
- package/dist/components/forms/checkbox/checkbox.class.js +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +7 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +16 -4
- package/dist/components/forms/code-editor/code-editor.class.js +19 -9
- package/dist/components/forms/code-editor/code-editor.styles.js +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts +6 -2
- package/dist/components/forms/color-picker/color-picker.class.js +4 -4
- package/dist/components/forms/combobox/combobox.class.d.ts +19 -8
- package/dist/components/forms/combobox/combobox.class.js +3 -3
- package/dist/components/forms/combobox/combobox.styles.js +1 -1
- package/dist/components/forms/combobox/option.class.d.ts +4 -0
- package/dist/components/forms/combobox/option.class.js +2 -2
- package/dist/components/forms/date-picker/calendar-core.d.ts +1 -1
- package/dist/components/forms/date-picker/calendar-core.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +20 -10
- package/dist/components/forms/date-picker/date-input.class.js +4 -4
- package/dist/components/forms/date-picker/date-picker.class.d.ts +33 -15
- package/dist/components/forms/date-picker/date-picker.class.js +8 -8
- package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +11 -3
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -3
- package/dist/components/forms/emoji-picker/emoji-types.d.ts +2 -2
- package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -2
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/input/input.class.d.ts +16 -5
- package/dist/components/forms/input/input.class.js +7 -1
- package/dist/components/forms/input/native-time-input.class.d.ts +3 -0
- package/dist/components/forms/input/number-input.class.d.ts +3 -0
- package/dist/components/forms/input/time-input.class.d.ts +11 -2
- package/dist/components/forms/input/time-input.class.js +2 -2
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +22 -4
- package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.d.ts +5 -1
- package/dist/components/forms/otp-input/otp-input.class.js +1 -1
- package/dist/components/forms/phone-input/phone-input.class.d.ts +21 -8
- package/dist/components/forms/phone-input/phone-input.class.js +1 -1
- package/dist/components/forms/radio/radio-button.class.d.ts +4 -0
- package/dist/components/forms/radio/radio-group.class.d.ts +4 -1
- package/dist/components/forms/radio/radio-group.class.js +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +6 -2
- package/dist/components/forms/radio/radio.class.js +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +3 -3
- package/dist/components/forms/select/select.class.d.ts +8 -2
- package/dist/components/forms/select/select.class.js +2 -2
- package/dist/components/forms/select/select.styles.js +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +12 -6
- package/dist/components/forms/slider/slider.class.js +2 -2
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +4 -0
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +5 -1
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +3 -0
- package/dist/components/forms/textarea/textarea.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +3 -0
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +8 -2
- package/dist/components/forms/token-input/token-input.class.js +2 -2
- package/dist/components/forms/token-input/token-input.styles.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +9 -5
- package/dist/components/layout/app-rail/app-rail.class.js +4 -3
- package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
- package/dist/components/layout/carousel/carousel.class.d.ts +3 -2
- package/dist/components/layout/carousel/carousel.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +2 -2
- package/dist/components/layout/command-palette/command-palette.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +2 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
- package/dist/components/layout/details/details.class.d.ts +16 -15
- package/dist/components/layout/details/details.class.js +43 -34
- package/dist/components/layout/details/details.styles.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +4 -3
- package/dist/components/layout/dock-panel/dock-panel.class.js +2 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -1
- package/dist/components/layout/filter-bar/filter-bar.class.js +2 -2
- package/dist/components/layout/menu/menu-item.class.js +2 -2
- package/dist/components/layout/menu/menu-label.class.d.ts +3 -3
- package/dist/components/layout/menu/menu.class.d.ts +4 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.class.d.ts +19 -8
- package/dist/components/layout/multi-split/multi-split.class.js +2 -1
- package/dist/components/layout/multi-split/multi-split.styles.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts +2 -1
- package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-owner.js +1 -1
- package/dist/components/layout/scroller/scroller.class.d.ts +4 -4
- package/dist/components/layout/scroller/scroller.styles.js +1 -1
- package/dist/components/layout/split-panel/split-panel.class.d.ts +5 -3
- package/dist/components/layout/split-panel/split-panel.class.js +3 -2
- package/dist/components/layout/tab-group/tab-group.class.d.ts +3 -1
- package/dist/components/layout/tab-group/tab-group.class.js +1 -1
- package/dist/components/layout/tab-group/tab-group.styles.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +2 -2
- package/dist/components/layout/widget/widget.class.d.ts +6 -2
- package/dist/components/layout/widget/widget.class.js +1 -1
- package/dist/components/layout/widget/widget.styles.js +1 -1
- package/dist/components/media/animation/animation.class.d.ts +3 -2
- package/dist/components/media/animation/animation.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +4 -3
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/av-player/av-metadata.d.ts +3 -2
- package/dist/components/media/av-player/av-player.class.d.ts +4 -3
- package/dist/components/media/av-player/av-player.class.js +3 -3
- package/dist/components/media/av-player/av-player.styles.js +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts +2 -1
- package/dist/components/media/avatar/avatar.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +4 -2
- package/dist/components/media/file-input/file-input.class.js +1 -1
- package/dist/components/media/file-input/file-input.styles.js +1 -1
- package/dist/components/media/flag/flag.class.js +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
- package/dist/components/media/image-viewer/image-viewer.class.js +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
- package/dist/components/media/lightbox/lightbox.styles.js +1 -1
- package/dist/components/media/map/map-loader.js +1 -1
- package/dist/components/media/map/map.class.d.ts +22 -34
- package/dist/components/media/map/map.class.js +1 -1
- package/dist/components/media/map/map.styles.js +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +1 -1
- package/dist/components/media/media-card/media-card.class.js +1 -1
- package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
- package/dist/components/media/qr-code/qr-code-loader.js +1 -1
- package/dist/components/media/qr-code/qr-code.class.d.ts +5 -2
- package/dist/components/media/qr-code/qr-code.class.js +2 -2
- package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +3 -3
- package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
- package/dist/components/media/sequence-playback/sequence-playback.styles.js +1 -1
- package/dist/components/media/video/video.class.d.ts +2 -1
- package/dist/components/media/video/video.styles.js +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
- package/dist/components/overlays/alert/alert.styles.js +1 -1
- package/dist/components/overlays/callout/callout.styles.js +1 -1
- package/dist/components/overlays/chip/chip-group.class.d.ts +2 -0
- package/dist/components/overlays/chip/chip-group.class.js +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +2 -0
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/dialog/dialog.styles.js +1 -1
- package/dist/components/overlays/empty/empty.class.d.ts +2 -0
- package/dist/components/overlays/empty/empty.class.js +1 -1
- package/dist/components/overlays/kbd/kbd.class.d.ts +2 -0
- package/dist/components/overlays/kbd/kbd.class.js +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +3 -1
- package/dist/components/overlays/overlay/popover.class.js +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts +3 -1
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/rating/rating.class.d.ts +2 -0
- package/dist/components/overlays/rating/rating.class.js +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts +11 -5
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +3 -3
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +2 -2
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts +5 -2
- package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +4 -2
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph-loader.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +10 -8
- package/dist/components/retrieval/graph/graph.class.js +10 -10
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts +4 -2
- package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +15 -9
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +7 -5
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +3 -2
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +4 -3
- package/dist/components/retrieval/knowledge-base/knowledge-base.styles.js +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +7 -3
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +8 -3
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +15 -6
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts +17 -12
- package/dist/components/retrieval/node-palette/node-palette.class.js +2 -2
- package/dist/components/retrieval/node-palette/node-palette.styles.js +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +2 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +5 -5
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts +2 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +2 -2
- package/dist/components/utility/copy-button/copy-button.class.d.ts +2 -1
- package/dist/components/utility/copy-button/copy-button.class.js +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +4 -1
- package/dist/components/utility/diff-view/diff-view.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +2 -2
- package/dist/components/utility/export-button/export-button.class.js +1 -1
- package/dist/components/utility/export-button/export-button.styles.js +1 -1
- package/dist/components/utility/format/format-date.class.js +1 -1
- package/dist/components/utility/format/format-number.class.d.ts +3 -1
- package/dist/components/utility/format/format-options.js +1 -1
- package/dist/components/utility/format/relative-time.class.js +1 -1
- package/dist/components/utility/icon/dompurify-loader.js +1 -1
- package/dist/components/utility/icon/icon-library.js +1 -1
- package/dist/components/utility/intersection-observer/intersection-observer.class.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +6 -3
- package/dist/components/utility/json-viewer/json-viewer.class.js +5 -5
- package/dist/components/utility/known-date/known-date.class.d.ts +9 -5
- package/dist/components/utility/known-date/known-date.class.js +2 -2
- package/dist/components/utility/known-date/known-date.styles.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +32 -45
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
- package/dist/components/utility/poll-status/poll-status.class.d.ts +3 -0
- package/dist/components/utility/poll-status/poll-status.styles.js +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-loader.js +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +1 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +11 -8
- package/dist/components/viewers/document-compare/document-compare.class.js +2 -2
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +8 -4
- package/dist/components/viewers/document-preview/document-preview.class.js +4 -4
- package/dist/components/viewers/document-preview/document-preview.styles.js +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +5 -2
- package/dist/components/viewers/document-viewer/document-viewer.class.js +2 -2
- package/dist/components/viewers/document-viewer/document-viewer.styles.js +1 -1
- package/dist/components/viewers/document-viewer/registry-ownership.d.ts +1 -0
- package/dist/components/viewers/document-viewer/registry-ownership.js +1 -0
- package/dist/components/viewers/document-viewer/registry.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-loader.d.ts +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +8 -2
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +1 -1
- package/dist/components/viewers/email-viewer/email-loader.js +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +3 -2
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
- package/dist/components/viewers/html-viewer/dompurify-loader.js +1 -1
- package/dist/components/viewers/include/include-resource.js +1 -1
- package/dist/components/viewers/include/include.class.d.ts +3 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +4 -2
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +4 -4
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +1 -1
- package/dist/components/viewers/passive-markup.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-loader.js +1 -1
- package/dist/components/viewers/svg-viewer/dompurify-loader.js +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +2 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
- package/dist/components/viewers/viewer-loading.js +1 -1
- package/dist/components/viewers/viewer-search-limits.d.ts +2 -0
- package/dist/components/viewers/viewer-search-limits.js +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +2 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.js +1 -1
- package/dist/custom-elements-jsx.d.ts +1 -1
- package/dist/events.d.ts +13 -6
- package/dist/internal/aria-controls.d.ts +16 -13
- package/dist/internal/aria-controls.js +1 -1
- package/dist/internal/aria-reflection.js +1 -1
- package/dist/internal/catalog-picker.d.ts +2 -2
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/chart-annotation-registration.d.ts +1 -0
- package/dist/internal/chart-annotation-registration.js +1 -0
- package/dist/internal/data-descriptors.d.ts +13 -0
- package/dist/internal/data-descriptors.js +1 -0
- package/dist/internal/default-strings.generated.d.ts +1 -1
- package/dist/internal/default-strings.generated.js +2 -2
- package/dist/internal/dev-mode-attribute-warning.d.ts +3 -0
- package/dist/internal/dev-mode-attribute-warning.js +1 -1
- package/dist/internal/element-internals.d.ts +4 -3
- package/dist/internal/element-internals.js +1 -1
- package/dist/internal/form-associated.js +1 -1
- package/dist/internal/highlight-collection.d.ts +2 -0
- package/dist/internal/highlight-collection.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +2 -2
- package/dist/internal/lyra-element.d.ts +10 -1
- package/dist/internal/lyra-element.js +2 -1
- package/dist/internal/native-control-description.d.ts +7 -0
- package/dist/internal/native-control-description.js +1 -0
- package/dist/internal/option-selection.js +1 -1
- package/dist/internal/overlay-order.d.ts +6 -0
- package/dist/internal/overlay-order.js +1 -0
- package/dist/internal/overlay-stack.d.ts +1 -1
- package/dist/internal/overlay-stack.js +1 -1
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/papaparse-loader.js +1 -1
- package/dist/internal/positioner.d.ts +5 -4
- package/dist/internal/pseudo-localization.js +1 -1
- package/dist/internal/reactive-property-writes.d.ts +1 -0
- package/dist/internal/reactive-property-writes.js +1 -0
- package/dist/internal/safe-css.js +1 -1
- package/dist/internal/step-value.d.ts +6 -0
- package/dist/internal/step-value.js +1 -0
- package/dist/internal/svg-title.d.ts +3 -0
- package/dist/internal/svg-title.js +1 -0
- package/dist/internal/text-quote.js +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/translations/ar.js +2 -2
- package/dist/translations/de.js +2 -2
- package/dist/translations/es.js +2 -2
- package/dist/translations/fa.js +2 -2
- package/dist/translations/fr.js +2 -2
- package/dist/translations/he.js +2 -2
- package/dist/translations/ja.js +2 -2
- package/dist/translations/pseudo/ar-XB.js +1 -1
- package/dist/translations/pt-BR.js +2 -2
- package/dist/translations/ru.js +2 -2
- package/dist/translations/zh-CN.js +2 -2
- package/dist/vue.d.ts +1 -1
- package/llms/components/lr-accordion-item.md +10 -5
- package/llms/components/lr-accordion.md +10 -5
- package/llms/components/lr-activity-feed.md +6 -5
- package/llms/components/lr-agent-run.md +1 -1
- package/llms/components/lr-agent-trace.md +3 -0
- package/llms/components/lr-agent-workspace.md +3 -2
- package/llms/components/lr-animation.md +4 -0
- package/llms/components/lr-app-rail-item.md +4 -2
- package/llms/components/lr-app-rail.md +4 -2
- package/llms/components/lr-attachment-chip.md +8 -3
- package/llms/components/lr-audio-visualizer.md +9 -6
- package/llms/components/lr-av-player.md +14 -0
- package/llms/components/lr-avatar.md +4 -0
- package/llms/components/lr-bar-chart.md +2 -2
- package/llms/components/lr-box-plot.md +15 -6
- package/llms/components/lr-bubble-chart.md +2 -2
- package/llms/components/lr-button.md +11 -3
- package/llms/components/lr-calendar-viewer.md +4 -0
- package/llms/components/lr-calendar.md +15 -4
- package/llms/components/lr-carousel.md +5 -0
- package/llms/components/lr-chart.md +24 -9
- package/llms/components/lr-chat-composer.md +2 -1
- package/llms/components/lr-chat-message.md +4 -0
- package/llms/components/lr-checkbox.md +3 -0
- package/llms/components/lr-chip-group.md +3 -0
- package/llms/components/lr-chip.md +3 -0
- package/llms/components/lr-chunk-inspector.md +2 -2
- package/llms/components/lr-code-block-core.md +20 -8
- package/llms/components/lr-code-block.md +17 -14
- package/llms/components/lr-code-editor.md +20 -5
- package/llms/components/lr-color-picker.md +9 -0
- package/llms/components/lr-combobox.md +35 -4
- package/llms/components/lr-command-palette.md +4 -0
- package/llms/components/lr-commit-card.md +3 -0
- package/llms/components/lr-compare-panel.md +7 -0
- package/llms/components/lr-condition-builder.md +5 -0
- package/llms/components/lr-conversation-item.md +3 -0
- package/llms/components/lr-copy-button.md +10 -1
- package/llms/components/lr-dashboard-grid.md +5 -0
- package/llms/components/lr-data-grid.md +22 -3
- package/llms/components/lr-dataset-viewer.md +3 -2
- package/llms/components/lr-date-input.md +50 -6
- package/llms/components/lr-date-picker.md +51 -7
- package/llms/components/lr-details.md +10 -5
- package/llms/components/lr-dialog.md +4 -0
- package/llms/components/lr-diff-view.md +6 -0
- package/llms/components/lr-document-compare.md +6 -2
- package/llms/components/lr-document-library.md +4 -0
- package/llms/components/lr-document-preview.md +18 -4
- package/llms/components/lr-document-viewer.md +14 -4
- package/llms/components/lr-docx-viewer.md +6 -0
- package/llms/components/lr-doughnut-chart.md +2 -2
- package/llms/components/lr-dropdown-item.md +4 -0
- package/llms/components/lr-dropdown.md +3 -0
- package/llms/components/lr-ebook-viewer.md +12 -3
- package/llms/components/lr-email-viewer.md +10 -0
- package/llms/components/lr-emoji-picker.md +17 -3
- package/llms/components/lr-empty.md +3 -0
- package/llms/components/lr-entity-card.md +3 -0
- package/llms/components/lr-entity-chip.md +4 -0
- package/llms/components/lr-eval-dataset.md +2 -2
- package/llms/components/lr-export-button.md +9 -0
- package/llms/components/lr-file-input.md +12 -8
- package/llms/components/lr-file-tree.md +5 -1
- package/llms/components/lr-filter-bar.md +5 -0
- package/llms/components/lr-flow-canvas.md +8 -1
- package/llms/components/lr-flow-node.md +2 -1
- package/llms/components/lr-flow-run-status.md +1 -1
- package/llms/components/lr-format-date.md +3 -1
- package/llms/components/lr-format-number.md +4 -0
- package/llms/components/lr-funnel.md +4 -0
- package/llms/components/lr-gauge.md +4 -0
- package/llms/components/lr-generation-metrics.md +5 -0
- package/llms/components/lr-graph-legend.md +4 -2
- package/llms/components/lr-graph-query-builder.md +6 -0
- package/llms/components/lr-graph.md +8 -2
- package/llms/components/lr-grounding-summary.md +8 -8
- package/llms/components/lr-heatmap.md +13 -0
- package/llms/components/lr-histogram.md +2 -2
- package/llms/components/lr-icon-button.md +7 -0
- package/llms/components/lr-image-viewer.md +9 -0
- package/llms/components/lr-include.md +5 -0
- package/llms/components/lr-ingestion-queue.md +5 -1
- package/llms/components/lr-input.md +22 -8
- package/llms/components/lr-intersection-observer.md +9 -0
- package/llms/components/lr-json-viewer.md +10 -1
- package/llms/components/lr-kbd.md +3 -0
- package/llms/components/lr-knowledge-base.md +10 -1
- package/llms/components/lr-knowledge-graph-explorer.md +7 -0
- package/llms/components/lr-known-date.md +7 -0
- package/llms/components/lr-line-chart.md +2 -2
- package/llms/components/lr-lite-chart.md +29 -9
- package/llms/components/lr-live-region.md +3 -0
- package/llms/components/lr-locale-picker.md +12 -0
- package/llms/components/lr-map.md +23 -5
- package/llms/components/lr-markdown-core.md +4 -0
- package/llms/components/lr-markdown.md +15 -8
- package/llms/components/lr-media-card.md +5 -8
- package/llms/components/lr-mention-popover.md +17 -10
- package/llms/components/lr-menu-item.md +4 -0
- package/llms/components/lr-menu-label.md +4 -3
- package/llms/components/lr-menu.md +4 -0
- package/llms/components/lr-message-actions.md +13 -3
- package/llms/components/lr-message-feedback.md +24 -7
- package/llms/components/lr-message-parts.md +6 -3
- package/llms/components/lr-model-select.md +13 -2
- package/llms/components/lr-multi-split.md +20 -7
- package/llms/components/lr-mutation-observer.md +8 -0
- package/llms/components/lr-native-time-input.md +10 -0
- package/llms/components/lr-node-palette.md +8 -2
- package/llms/components/lr-notebook-viewer.md +4 -1
- package/llms/components/lr-number-input.md +12 -1
- package/llms/components/lr-option.md +35 -4
- package/llms/components/lr-otp-input.md +10 -0
- package/llms/components/lr-pan-zoom.md +1 -2
- package/llms/components/lr-phone-input.md +20 -5
- package/llms/components/lr-pie-chart.md +2 -2
- package/llms/components/lr-polar-area-chart.md +2 -2
- package/llms/components/lr-poll-status.md +4 -0
- package/llms/components/lr-popover.md +3 -0
- package/llms/components/lr-popup.md +3 -2
- package/llms/components/lr-prompt-input.md +7 -3
- package/llms/components/lr-prompt-queue.md +6 -0
- package/llms/components/lr-prompt-studio.md +7 -0
- package/llms/components/lr-provenance-panel.md +3 -0
- package/llms/components/lr-push-to-talk.md +8 -0
- package/llms/components/lr-qr-code.md +6 -0
- package/llms/components/lr-radar-chart.md +2 -2
- package/llms/components/lr-radio-button.md +13 -4
- package/llms/components/lr-radio-group.md +5 -0
- package/llms/components/lr-radio.md +9 -0
- package/llms/components/lr-rating.md +8 -0
- package/llms/components/lr-relative-time.md +2 -0
- package/llms/components/lr-reorder-item.md +6 -0
- package/llms/components/lr-reorder-list.md +6 -0
- package/llms/components/lr-result-card.md +6 -3
- package/llms/components/lr-result-field.md +6 -3
- package/llms/components/lr-retrieval-results.md +1 -1
- package/llms/components/lr-rubric-form.md +12 -0
- package/llms/components/lr-scatter-chart.md +2 -2
- package/llms/components/lr-scroller.md +5 -5
- package/llms/components/lr-select.md +9 -0
- package/llms/components/lr-sequence-playback.md +5 -2
- package/llms/components/lr-slider.md +19 -5
- package/llms/components/lr-source-picker.md +4 -0
- package/llms/components/lr-span-waterfall.md +3 -0
- package/llms/components/lr-sparkline.md +4 -0
- package/llms/components/lr-split-panel.md +4 -0
- package/llms/components/lr-stack-trace.md +3 -0
- package/llms/components/lr-stat.md +10 -0
- package/llms/components/lr-streaming-text.md +2 -3
- package/llms/components/lr-subagent-panel.md +3 -2
- package/llms/components/lr-svg-viewer.md +3 -0
- package/llms/components/lr-swatch-picker.md +4 -0
- package/llms/components/lr-switch.md +6 -0
- package/llms/components/lr-tab-group.md +4 -0
- package/llms/components/lr-table.md +10 -2
- package/llms/components/lr-terminal.md +17 -5
- package/llms/components/lr-textarea.md +9 -0
- package/llms/components/lr-thinking-panel.md +3 -1
- package/llms/components/lr-thread-list.md +26 -4
- package/llms/components/lr-time-input.md +3 -0
- package/llms/components/lr-time-range.md +5 -0
- package/llms/components/lr-timeline-item.md +6 -0
- package/llms/components/lr-timeline.md +6 -0
- package/llms/components/lr-token-input.md +14 -0
- package/llms/components/lr-tool-call-chip.md +7 -5
- package/llms/components/lr-tool-param-form.md +6 -2
- package/llms/components/lr-tool-result-dialog.md +4 -0
- package/llms/components/lr-tool-result-view.md +2 -3
- package/llms/components/lr-tool-select-dialog.md +6 -2
- package/llms/components/lr-tooltip.md +6 -0
- package/llms/components/lr-trace-tree.md +3 -0
- package/llms/components/lr-transcript-feed.md +3 -0
- package/llms/components/lr-tree-item.md +12 -5
- package/llms/components/lr-tree.md +12 -5
- package/llms/components/lr-typing-indicator.md +3 -0
- package/llms/components/lr-usage-badge.md +4 -0
- package/llms/components/lr-video.md +8 -2
- package/llms/components/lr-virtual-list.md +5 -3
- package/llms/components/lr-voice-picker.md +15 -2
- package/llms/components/lr-widget-renderer.md +21 -13
- package/llms/components/lr-widget.md +4 -2
- package/llms/components/lr-word-cloud.md +4 -0
- package/llms/components/lr-xml-viewer.md +9 -2
- package/llms/components/lr-zoomable-frame.md +6 -3
- package/llms/peers.md +5 -5
- package/llms/shared.md +74 -63
- package/llms-full.txt +4705 -2954
- package/package.json +19 -14
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
- package/dist/components/viewers/docx-viewer/fixtures/minimal-docx-fixture.d.ts +0 -1
- package/dist/components/viewers/docx-viewer/fixtures/minimal-docx-fixture.js +0 -1
- package/dist/components/viewers/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +0 -1
- package/dist/components/viewers/ebook-viewer/fixtures/minimal-epub-fixture.js +0 -1
- package/dist/components/viewers/spreadsheet-viewer/fixtures/minimal-xlsx-fixture.d.ts +0 -1
- package/dist/components/viewers/spreadsheet-viewer/fixtures/minimal-xlsx-fixture.js +0 -1
|
@@ -6,6 +6,7 @@ endKind:ParsedCalendarTimeKind|null;location:string;description:string;}export i
|
|
|
6
6
|
/**
|
|
7
7
|
* Parses `.ics` calendars with the optional `ical.js` peer and renders each
|
|
8
8
|
* VEVENT as plain text, preserving summaries, DATE/DATE-TIME semantics, locations, and details.
|
|
9
|
+
* Early all-day years retain UTC calendar semantics and the exclusive DTEND display boundary.
|
|
9
10
|
* At most 250 events and 2 MiB of rendered event text are retained so search, selection and
|
|
10
11
|
* text-quote anchors continue to cover the complete accepted document without eager 10k-row DOM.
|
|
11
12
|
* The inherited fragment path performs an exact DOM `id` lookup, but generated event markup has
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,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{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{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=
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{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{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{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"}}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)}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,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.hasUpdated&&this.src&&(this.requestUpdate(),this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()}))}disconnectedCallback(){this.generation++,this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),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"));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=parseCalendarTime(event.startDate),parsedEnd=parseCalendarTime(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};
|
|
@@ -79,7 +79,8 @@ name:string;
|
|
|
79
79
|
maxHeight:string;private _scrollMode;
|
|
80
80
|
/**
|
|
81
81
|
* Which element scrolls when the table overflows. `'self'` preserves contained horizontal
|
|
82
|
-
* scrolling and applies `maxHeight`. `'page'`
|
|
82
|
+
* scrolling and applies `maxHeight`. `'page'` removes intervening scroll containers while
|
|
83
|
+
* retaining rounded header corners, making the page the sticky header's scrollport; a
|
|
83
84
|
* wide dataset can consequently overflow its host.
|
|
84
85
|
*/
|
|
85
86
|
get scrollMode():DatasetViewerScrollMode;set scrollMode(next:DatasetViewerScrollMode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from"lit";const styles=css`:host{--_lr-dataset-viewer-max-height:none;min-inline-size:0;display:block}[part=base]{box-sizing:border-box;border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);flex-direction:column;min-inline-size:0;display:flex;overflow:hidden}[part=body]{box-sizing:border-box;max-block-size:var(--lr-dataset-viewer-max-height,var(--_lr-dataset-viewer-max-height));overflow:auto}:host([scroll-mode=page]) [part=body]{max-block-size:none;overflow:visible}[part=table]{min-inline-size:max-content;font-size:var(--lr-font-size-sm);flex-direction:column;display:flex}[part=header-row]{grid-auto-flow:column;grid-auto-columns:minmax(var(--lr-size-8rem), 1fr);z-index:var(--lr-layer-content);background: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);display:grid;position:sticky;inset-block-start:0}[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);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}lr-virtual-list::part(data-row){grid-auto-flow:column;grid-auto-columns:minmax(var(--lr-size-8rem), 1fr);display:grid}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);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);text-overflow:ellipsis;white-space:nowrap;color:var(--lr-color-text);overflow:hidden}[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;inline-size:100%;min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);padding:var(--lr-space-xs) var(--lr-space-s);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:block;overflow:hidden}[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]{padding:var(--lr-space-m);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}[part=error]{padding:var(--lr-space-l);color:var(--lr-color-danger);text-align:center}`;export{styles};
|
|
1
|
+
import{css}from"lit";const styles=css`:host{--_lr-dataset-viewer-max-height:none;min-inline-size:0;display:block}[part=base]{box-sizing:border-box;border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);flex-direction:column;min-inline-size:0;display:flex;overflow:hidden}[part=body]{box-sizing:border-box;max-block-size:var(--lr-dataset-viewer-max-height,var(--_lr-dataset-viewer-max-height));overflow:auto}: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]{max-block-size:none;overflow:visible}[part=table]{min-inline-size:max-content;font-size:var(--lr-font-size-sm);flex-direction:column;display:flex}[part=header-row]{grid-auto-flow:column;grid-auto-columns:minmax(var(--lr-size-8rem), 1fr);z-index:var(--lr-layer-content);background: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);display:grid;position:sticky;inset-block-start:0}[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);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}lr-virtual-list::part(data-row){grid-auto-flow:column;grid-auto-columns:minmax(var(--lr-size-8rem), 1fr);display:grid}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);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);text-overflow:ellipsis;white-space:nowrap;color:var(--lr-color-text);overflow:hidden}[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;inline-size:100%;min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);padding:var(--lr-space-xs) var(--lr-space-s);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:block;overflow:hidden}[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]{padding:var(--lr-space-m);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}[part=error]{padding:var(--lr-space-l);color:var(--lr-color-danger);text-align:center}`;export{styles};
|
|
@@ -95,18 +95,21 @@ export declare class LyraDocumentCompare extends LyraElement<LyraDocumentCompare
|
|
|
95
95
|
* independently-scrollable `<lr-document-preview>` panes -- see the class doc's "Synchronized
|
|
96
96
|
* anchors" section for how the two panes are kept in sync. Unsupported values normalize to
|
|
97
97
|
* reflected `diff`. */
|
|
98
|
-
private _view;get view():LyraDocumentCompareView;set view(next:LyraDocumentCompareView);
|
|
99
|
-
/** The "before" version.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
private _view;get view():LyraDocumentCompareView;set view(next:LyraDocumentCompareView);private _oldVersion?;
|
|
99
|
+
/** The "before" version. Display fields are copied through own data descriptors at assignment,
|
|
100
|
+
* while invalid records render as an unset pane. */
|
|
101
|
+
get oldVersion():DocumentCompareVersion|undefined;set oldVersion(value:DocumentCompareVersion|undefined);private _newVersion?;
|
|
102
|
+
/** The "after" version. Display fields are copied through own data descriptors at assignment,
|
|
103
|
+
* while invalid records render as an unset pane. */
|
|
104
|
+
get newVersion():DocumentCompareVersion|undefined;set newVersion(value:DocumentCompareVersion|undefined);
|
|
103
105
|
/** Forwarded to the internal `<lr-diff-view>`'s own `layout` property while `view="diff"`;
|
|
104
106
|
* unsupported values normalize to reflected `unified`. */
|
|
105
107
|
private _diffLayout;get diffLayout():LyraDiffViewLayout;set diffLayout(next:LyraDiffViewLayout);
|
|
106
108
|
/** Forwarded to the internal `<lr-diff-view>`'s own `copyable` property while `view="diff"`. */
|
|
107
|
-
copyable:boolean;
|
|
108
|
-
/** Forwarded to the internal `<lr-diff-view>`'s own `language` property while `view="diff"`.
|
|
109
|
-
|
|
109
|
+
copyable:boolean;private _language;
|
|
110
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `language` property while `view="diff"`.
|
|
111
|
+
* Runtime values outside the documented string contract fall back to no highlighting. */
|
|
112
|
+
get language():string;set language(value:string);
|
|
110
113
|
/** Forwarded to the internal `<lr-diff-view>`'s own `languages` property while `view="diff"`. */
|
|
111
114
|
languages?:Readonly<Record<string,ShikiLanguageInput>>;
|
|
112
115
|
/** Whether scrolling one `view="side-by-side"` pane proportionally scrolls the other. See the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter,trueDefaultBooleanConverter}from"../../../internal/converters.js";import{styles}from"./document-compare.styles.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_details,LYRA_DEFAULT_documentCompareLabel,LYRA_DEFAULT_documentCompareNewVersion,LYRA_DEFAULT_documentCompareNoVersion,LYRA_DEFAULT_documentCompareOldVersion,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const DOCUMENT_COMPARE_VIEW=literalSetConverter(["diff","side-by-side"],"diff"),DOCUMENT_COMPARE_DIFF_LAYOUT=literalSetConverter(["unified","split"],"unified");function versionSourceIdentity(version){return version?JSON.stringify([version.id??"",version.uri??"",version.version??"",version.mimeType??"",version.name??""]):""}class LyraDocumentCompare extends LyraElement{constructor(){super(...arguments),this._view="diff",this._diffLayout="unified",this.copyable=!1,this.
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter,trueDefaultBooleanConverter}from"../../../internal/converters.js";import{styles}from"./document-compare.styles.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{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_details,LYRA_DEFAULT_documentCompareLabel,LYRA_DEFAULT_documentCompareNewVersion,LYRA_DEFAULT_documentCompareNoVersion,LYRA_DEFAULT_documentCompareOldVersion,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_search,LYRA_DEFAULT_select}from"../../../internal/default-strings.generated.js";const DOCUMENT_COMPARE_VIEW=literalSetConverter(["diff","side-by-side"],"diff"),DOCUMENT_COMPARE_DIFF_LAYOUT=literalSetConverter(["unified","split"],"unified"),DOCUMENT_COMPARE_VERSION_FIELDS=["id","name","mimeType","uri","version","text","highlights"];function projectDocumentCompareVersion(value){try{if(value===null||typeof value!="object"||Array.isArray(value))return;const descriptors=new Map;for(const field of DOCUMENT_COMPARE_VERSION_FIELDS)descriptors.set(field,getOwnDataDescriptor(value,field));const fieldValue=field=>{const descriptor=descriptors.get(field);if(!(descriptor===void 0||descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR))return descriptor.value},idDescriptor=descriptors.get("id"),nameDescriptor=descriptors.get("name");if(idDescriptor===void 0||idDescriptor===MISSING_OWN_DATA_DESCRIPTOR||idDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR||nameDescriptor===void 0||nameDescriptor===MISSING_OWN_DATA_DESCRIPTOR||nameDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;const id=fieldValue("id"),name=fieldValue("name");if(typeof id!="string"||typeof name!="string")return;const mimeType=fieldValue("mimeType"),uri=fieldValue("uri"),version=fieldValue("version"),text=fieldValue("text"),highlights=fieldValue("highlights");return Object.freeze({id,name,...typeof mimeType=="string"?{mimeType}:{},...typeof uri=="string"?{uri}:{},...typeof version=="string"?{version}:{},...typeof text=="string"?{text}:{},...highlights===void 0?{}:{highlights:snapshotLyraHighlights(highlights)}})}catch{return}}function versionSourceIdentity(version){return version?JSON.stringify([version.id??"",version.uri??"",version.version??"",version.mimeType??"",version.name??""]):""}class LyraDocumentCompare extends LyraElement{constructor(){super(...arguments),this._view="diff",this._diffLayout="unified",this.copyable=!1,this._language="",this.syncScroll=!0,this.anchor=null,this.suppressSync=!1,this.onPaneScroll=source=>()=>{if(!this.syncScroll||this.suppressSync)return;const from=source==="old"?this.paneOldEl:this.paneNewEl,to=source==="old"?this.paneNewEl:this.paneOldEl;if(!from||!to)return;const fromMax=from.scrollHeight-from.clientHeight,toMax=to.scrollHeight-to.clientHeight;if(fromMax<=0)return;const fraction=from.scrollTop/fromMax;this.suppressSync=!0,to.scrollTop=fraction*toMax,this.scheduleSyncRelease()}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,details:LYRA_DEFAULT_details,documentCompareLabel:LYRA_DEFAULT_documentCompareLabel,documentCompareNewVersion:LYRA_DEFAULT_documentCompareNewVersion,documentCompareNoVersion:LYRA_DEFAULT_documentCompareNoVersion,documentCompareOldVersion:LYRA_DEFAULT_documentCompareOldVersion,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select}}static{this.styles=[LyraElement.styles,styles]}get view(){return this._view}set view(next){const normalized=DOCUMENT_COMPARE_VIEW.normalizeReflected(this,"view",next),old=this._view;old!==normalized&&(this._view=normalized,this.requestUpdate("view",old))}get oldVersion(){return this._oldVersion}set oldVersion(value){const previous=this._oldVersion;this._oldVersion=projectDocumentCompareVersion(value),this.requestUpdate("oldVersion",previous)}get newVersion(){return this._newVersion}set newVersion(value){const previous=this._newVersion;this._newVersion=projectDocumentCompareVersion(value),this.requestUpdate("newVersion",previous)}get diffLayout(){return this._diffLayout}set diffLayout(next){const normalized=DOCUMENT_COMPARE_DIFF_LAYOUT.normalizeReflected(this,"diff-layout",next),old=this._diffLayout;old!==normalized&&(this._diffLayout=normalized,this.requestUpdate("diffLayout",old))}get language(){return this._language}set language(value){const normalized=typeof value=="string"?value:"",previous=this._language;previous!==normalized&&(this._language=normalized,this.requestUpdate("language",previous))}disconnectedCallback(){this.cancelSyncRelease(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.cancelSyncRelease()}cancelSyncRelease(){this.syncReleaseFrame!==void 0&&this.syncReleaseView?.cancelAnimationFrame(this.syncReleaseFrame),this.syncReleaseFrame=void 0,this.syncReleaseView=void 0,this.suppressSync=!1}scheduleSyncRelease(){const view=this.ownerDocument.defaultView;if(!view){this.suppressSync=!1;return}const frame=view.requestAnimationFrame(()=>{this.syncReleaseView!==view||this.syncReleaseFrame!==frame||(this.syncReleaseFrame=void 0,this.syncReleaseView=void 0,this.suppressSync=!1)});this.syncReleaseView=view,this.syncReleaseFrame=frame}updated(changed){super.updated(changed);const anchor=this.anchor,sourceChanged=property2=>changed.has(property2)&&versionSourceIdentity(changed.get(property2))!==versionSourceIdentity(this[property2]),oldSourceChanged=sourceChanged("oldVersion"),newSourceChanged=sourceChanged("newVersion");if(anchor!=null){(changed.has("anchor")||this.view==="side-by-side"&&(changed.has("view")||changed.has("oldVersion")||changed.has("newVersion")))&&(this.previewOldEl?.scrollToAnchor(anchor),this.previewNewEl?.scrollToAnchor(anchor));return}this.view!=="side-by-side"||!oldSourceChanged&&!newSourceChanged||(this.cancelSyncRelease(),(this.syncScroll||oldSourceChanged)&&this.paneOldEl&&(this.paneOldEl.scrollTop=0),(this.syncScroll||newSourceChanged)&&this.paneNewEl&&(this.paneNewEl.scrollTop=0))}onHighlightActivate(side,event){const{highlightId}=event.detail,otherPreview=side==="old"?this.previewNewEl:this.previewOldEl;otherPreview?.highlights.some(highlight=>highlight.id===highlightId)&&otherPreview?.scrollToAnchor(highlightId)}versionLabel(version,fallbackKey){return version?.name||version?.version||this.localize(fallbackKey)}renderDiff(){return html`
|
|
2
2
|
<lr-diff-view
|
|
3
3
|
part="diff"
|
|
4
4
|
.oldText=${this.oldVersion?.text??""}
|
|
@@ -31,4 +31,4 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
31
31
|
<div part="base" role=${viewerSemanticRole(this,"group")??nothing} aria-label=${viewerSemanticLabel(this,this.localize("documentCompareLabel"))??nothing}>
|
|
32
32
|
${this.view==="side-by-side"?this.renderSideBySide():this.renderDiff()}
|
|
33
33
|
</div>
|
|
34
|
-
`}}__decorate([property({reflect:!0,converter:DOCUMENT_COMPARE_VIEW})],LyraDocumentCompare.prototype,"view",null),__decorate([property({attribute:!1})],LyraDocumentCompare.prototype,"oldVersion",
|
|
34
|
+
`}}__decorate([property({reflect:!0,converter:DOCUMENT_COMPARE_VIEW})],LyraDocumentCompare.prototype,"view",null),__decorate([property({attribute:!1})],LyraDocumentCompare.prototype,"oldVersion",null),__decorate([property({attribute:!1})],LyraDocumentCompare.prototype,"newVersion",null),__decorate([property({attribute:"diff-layout",reflect:!0,converter:DOCUMENT_COMPARE_DIFF_LAYOUT})],LyraDocumentCompare.prototype,"diffLayout",null),__decorate([property({type:Boolean})],LyraDocumentCompare.prototype,"copyable",void 0),__decorate([property()],LyraDocumentCompare.prototype,"language",null),__decorate([property({attribute:!1})],LyraDocumentCompare.prototype,"languages",void 0),__decorate([property({attribute:"sync-scroll",converter:trueDefaultBooleanConverter})],LyraDocumentCompare.prototype,"syncScroll",void 0),__decorate([property({attribute:!1,hasChanged:()=>!0})],LyraDocumentCompare.prototype,"anchor",void 0),__decorate([query('[part="pane-old"]')],LyraDocumentCompare.prototype,"paneOldEl",void 0),__decorate([query('[part="pane-new"]')],LyraDocumentCompare.prototype,"paneNewEl",void 0),__decorate([query('[part="pane-old"] lr-document-preview')],LyraDocumentCompare.prototype,"previewOldEl",void 0),__decorate([query('[part="pane-new"] lr-document-preview')],LyraDocumentCompare.prototype,"previewNewEl",void 0);export{LyraDocumentCompare};
|
|
@@ -91,6 +91,8 @@ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from
|
|
|
91
91
|
* @csspart region-highlight-action - One action in the non-overlapping highlight action list.
|
|
92
92
|
* @cssprop [--lr-document-preview-max-height=none] - Maximum body block size before the preview scrolls internally.
|
|
93
93
|
* @cssprop [--lr-document-preview-font=var(--lr-font-mono)] - Font used for plain-text previews.
|
|
94
|
+
* @cssprop [--lr-document-preview-download-link-hover-bg=color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-hover))] - Hover background of the generic download link.
|
|
95
|
+
* @cssprop [--lr-document-preview-download-link-active-bg=color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active))] - Pressed background of the generic download link.
|
|
94
96
|
* @cssprop [--lr-document-preview-spin-duration=var(--lr-transition-ambient)] - Timing of one
|
|
95
97
|
* indeterminate loading-indicator rotation.
|
|
96
98
|
* @cssprop [--lr-document-preview-progress=0] - Unitless 0-100 completion of the determinate
|
|
@@ -113,7 +115,8 @@ export declare class LyraDocumentPreview extends LyraElement<LyraDocumentPreview
|
|
|
113
115
|
* a sink-specific scheme allowlist before use. Optional — gracefully
|
|
114
116
|
* absent while, e.g., a conversion is still in progress. */
|
|
115
117
|
src:string;
|
|
116
|
-
/** Drives format dispatch
|
|
118
|
+
/** Drives format dispatch using the case-insensitive MIME essence before parameters.
|
|
119
|
+
* Removing the attribute is treated as an absent format at render time. */
|
|
117
120
|
mimeType:string;
|
|
118
121
|
/** Shown in the header and used as the download link's suggested filename. */
|
|
119
122
|
filename:string;
|
|
@@ -135,7 +138,8 @@ progress?:number;
|
|
|
135
138
|
errorText:string;
|
|
136
139
|
/** A CSS length (e.g. `"24rem"`); once set, `[part="body"]` scrolls
|
|
137
140
|
* internally past this height instead of growing the page — same
|
|
138
|
-
* contract as `<lr-json-viewer>`'s identically-named prop.
|
|
141
|
+
* contract as `<lr-json-viewer>`'s identically-named prop. Fitting images stay centered;
|
|
142
|
+
* oversized images start inside the reachable scroll range. Invalid values are ignored. */
|
|
139
143
|
maxHeight:string;
|
|
140
144
|
/** Wraps the rendered image (image format only) in an internal `<lr-pan-zoom>`. `false`
|
|
141
145
|
* (the default) preserves today's exact DOM -- an inline thumbnail (e.g. in a chat stream) must
|
|
@@ -143,7 +147,7 @@ maxHeight:string;
|
|
|
143
147
|
zoomable:boolean;
|
|
144
148
|
/** Omits the generic fallback's download action when a composing shell owns that action.
|
|
145
149
|
* Property-only: this is a composition control rather than author-facing markup state. */
|
|
146
|
-
suppressDownload:boolean;private _highlights;
|
|
150
|
+
suppressDownload:boolean;private _highlights;private _regionHighlights;
|
|
147
151
|
/** Display-only region highlights over the image-format preview (see the class doc's format-
|
|
148
152
|
* dispatch scope -- text/generic formats never render these). IDs are trimmed and must be
|
|
149
153
|
* nonempty; the first record for an ID is retained and blank or later duplicates are ignored. */
|
|
@@ -159,7 +163,7 @@ private renderSpinner;private renderError;private renderTextPreview;private rend
|
|
|
159
163
|
* (plus the highlight layer, which needs the same relatively-positioned sibling context either
|
|
160
164
|
* way) unwrapped, preserving pre-`zoomable` DOM exactly. Mirrors `<lr-svg-viewer>`'s identical
|
|
161
165
|
* helper. */
|
|
162
|
-
private renderZoomableWrapper;private regionHighlights;private highlightActionLabel;private renderHighlightLayer;private renderHighlightActions;
|
|
166
|
+
private renderZoomableWrapper;private projectRegionHighlights;private regionHighlights;private highlightActionLabel;private renderHighlightLayer;private renderHighlightActions;
|
|
163
167
|
/** Scrolls a `region` highlight into view (image format only). See `<lr-svg-viewer>`'s
|
|
164
168
|
* identical method for the id/anchor-reference resolution and no-retry-loop rationale. */
|
|
165
169
|
scrollToAnchor(target:LyraAnchor|string):Promise<boolean>;private renderDownloadFallback;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,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{sanitizeCssLength,sanitizePercentRect}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.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.trim().toLowerCase();return mt.startsWith("text/")||mt==="application/json"?"text":mt.startsWith("image/")?"image":"generic"}function
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing,svg}from"lit";import{property,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{sanitizeCssLength,sanitizePercentRect}from"../../../internal/safe-css.js";import{ViewerAnnouncementController}from"../viewer-announcements.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`
|
|
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 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
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.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.onUnsupportedSlotChange=e=>{this.hasUnsupportedSlot=e.target.assignedElements({flatten:!0}).length>0},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,srOnly]}get highlights(){return this._highlights}set highlights(value){const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.src&&classifyFormat(this.mimeType)==="text"&&(this.textFetch=IDLE_TEXT_FETCH,this.scheduleAfterUpdate(()=>{const url=safeFetchUrl(this.src);url&&this.status!=="converting"&&this.status!=="error"&&this.fetchText(url)}))}disconnectedCallback(){this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH,this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported"))}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)}):this.textFetch.kind!=="idle"&&(this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH)}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.onUnsupportedSlotChange=e=>{this.hasUnsupportedSlot=e.target.assignedElements({flatten:!0}).length>0},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,srOnly]}get highlights(){return this._highlights}set highlights(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(),this.hasUpdated&&this.src&&classifyFormat(this.mimeType)==="text"&&(this.textFetch=IDLE_TEXT_FETCH,this.scheduleAfterUpdate(()=>{const url=safeFetchUrl(this.src);url&&this.status!=="converting"&&this.status!=="error"&&this.fetchText(url)}))}disconnectedCallback(){this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH,this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasUnsupportedSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="unsupported"))}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)}):this.textFetch.kind!=="idle"&&(this.generation++,this.beginAbortableLoad(),this.textFetch=IDLE_TEXT_FETCH)}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,7 +37,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
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)}`}
|
|
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&®ions.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 regionHighlights.length?html`<div part="highlight-layer">
|
|
41
41
|
${regionHighlights.map((h,index)=>html`
|
|
42
42
|
${interactive?html`<button
|
|
43
43
|
part="region-highlight-target"
|
|
@@ -69,7 +69,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
69
69
|
${highlight.label||label}
|
|
70
70
|
</button>
|
|
71
71
|
`})}
|
|
72
|
-
</div>`}async scrollToAnchor(target){
|
|
72
|
+
</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.ownerDocument.defaultView)?"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`
|
|
73
73
|
<div class="fallback">
|
|
74
74
|
<span class="fallback-icon" aria-hidden="true">${fileIcon()}</span>
|
|
75
75
|
<p class="fallback-text">${this.localize("documentPreviewNotAvailable",void 0,{label})}</p>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from"lit";const styles=css`:host{--_lr-document-preview-max-height:none;--_lr-document-preview-font:var(--lr-font-mono);--_lr-document-preview-spin-duration:var(--lr-transition-ambient);display:block}[part=base]{box-sizing:border-box;border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);flex-direction:column;display:flex;overflow:hidden}[part=header]{align-items:center;gap:var(--lr-space-s);padding:var(--lr-space-s) var(--lr-space-m);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);display:flex}[part=header][hidden]{display:none}[part=filename]{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--lr-font-weight-semibold);font-size:var(--lr-font-size-md-sm);color:var(--lr-color-text);overflow:hidden}[part=body]{min-block-size:var(--lr-size-10rem);max-block-size:var(--lr-document-preview-max-height,var(--_lr-document-preview-max-height));box-sizing:border-box;flex-direction:column;flex:auto;justify-content:center;align-items:center;display:flex;overflow:auto}pre.text{box-sizing:border-box;padding:var(--lr-space-m);font-family:var(--lr-document-preview-font,var(--_lr-document-preview-font));font-size:var(--lr-font-size-sm);line-height:var(--lr-line-height-loose);white-space:pre;color:var(--lr-color-text);align-self:stretch;margin:0;overflow:auto}[part=body] img{object-fit:contain;max-block-size:100%;max-inline-size:100%;display:block}.zoom-content{position:relative}[part=highlight-layer]{pointer-events:none;position:absolute;inset:0}[part=region-highlight]{--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-accent-color,var(--lr-color-brand));pointer-events:none;border:var(--lr-border-width-thick) solid var(--_lr-document-preview-highlight-color);border-radius:var(--lr-radius-xs);position:absolute}[part=region-highlight-target]{z-index:var(--lr-layer-content);box-sizing:border-box;pointer-events:auto;cursor:pointer;min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);background:0 0;border:0;position:absolute;transform:translate(-50%,-50%)}[part=region-highlight]:where([data-tone=success]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-success-color,var(--lr-color-success))}[part=region-highlight]:where([data-tone=warning]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-warning-color,var(--lr-color-warning))}[part=region-highlight]:where([data-tone=danger]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-danger-color,var(--lr-color-danger))}[part=region-highlight]:where([data-tone=neutral]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-neutral-color,var(--lr-color-neutral))}[part=region-highlight]:where([data-active]){border-color:var(--lr-document-preview-active-border,var(--lr-color-warning,var(--lr-color-brand)))}[part=region-highlight-target]:hover+[part=region-highlight]{background:color-mix(in srgb, var(--_lr-document-preview-highlight-color) 20%, transparent)}[part=region-highlight-target]:active+[part=region-highlight]{background:color-mix(in oklab, color-mix(in srgb, var(--_lr-document-preview-highlight-color) 20%, transparent), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=region-highlight-target]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=highlight-actions]{gap:var(--lr-space-xs);box-sizing:border-box;inline-size:100%;padding:var(--lr-space-xs);display:grid}[part=region-highlight-action]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius-xs);color:var(--lr-color-text);background:var(--lr-color-surface);cursor:pointer}[part=region-highlight-action]:hover{background:var(--lr-color-surface-raised)}[part=region-highlight-action]:active{background:color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=region-highlight-action]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}.empty-note{padding:var(--lr-space-m);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}.fallback{align-items:center;gap:var(--lr-space-s);padding:var(--lr-space-l);text-align:center;flex-direction:column;display:flex}.fallback-icon{font-size:var(--lr-font-size-3xl);color:var(--lr-color-text-quiet);display:inline-flex}.fallback-icon svg{display:block}.fallback-text{color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}[part=download-link]{align-items:center;gap:var(--lr-space-xs);padding:var(--lr-space-xs) var(--lr-space-m);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-weight:var(--lr-font-weight-semibold);font-size:var(--lr-font-size-sm);cursor:pointer;transition:background-color var(--lr-transition-fast);text-decoration:none;display:inline-flex}[part=download-link]:hover{background:
|
|
1
|
+
import{css}from"lit";const styles=css`:host{--_lr-document-preview-max-height:none;--_lr-document-preview-font:var(--lr-font-mono);--_lr-document-preview-spin-duration:var(--lr-transition-ambient);--_lr-document-preview-download-link-hover-bg:color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-hover));--_lr-document-preview-download-link-active-bg:color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active));display:block}[part=base]{box-sizing:border-box;border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);flex-direction:column;display:flex;overflow:hidden}[part=header]{align-items:center;gap:var(--lr-space-s);padding:var(--lr-space-s) var(--lr-space-m);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);display:flex}[part=header][hidden]{display:none}[part=filename]{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--lr-font-weight-semibold);font-size:var(--lr-font-size-md-sm);color:var(--lr-color-text);overflow:hidden}[part=body]{min-block-size:var(--lr-size-10rem);max-block-size:var(--lr-document-preview-max-height,var(--_lr-document-preview-max-height));box-sizing:border-box;flex-direction:column;flex:auto;justify-content:safe center;align-items:safe center;display:flex;overflow:auto}pre.text{box-sizing:border-box;padding:var(--lr-space-m);font-family:var(--lr-document-preview-font,var(--_lr-document-preview-font));font-size:var(--lr-font-size-sm);line-height:var(--lr-line-height-loose);white-space:pre;color:var(--lr-color-text);align-self:stretch;margin:0;overflow:auto}[part=body] img{object-fit:contain;max-block-size:100%;max-inline-size:100%;display:block}.zoom-content{position:relative}[part=highlight-layer]{pointer-events:none;position:absolute;inset:0}[part=region-highlight]{--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-accent-color,var(--lr-color-brand));pointer-events:none;border:var(--lr-border-width-thick) solid var(--_lr-document-preview-highlight-color);border-radius:var(--lr-radius-xs);position:absolute}[part=region-highlight-target]{z-index:var(--lr-layer-content);box-sizing:border-box;pointer-events:auto;cursor:pointer;min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);background:0 0;border:0;position:absolute;transform:translate(-50%,-50%)}[part=region-highlight]:where([data-tone=success]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-success-color,var(--lr-color-success))}[part=region-highlight]:where([data-tone=warning]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-warning-color,var(--lr-color-warning))}[part=region-highlight]:where([data-tone=danger]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-danger-color,var(--lr-color-danger))}[part=region-highlight]:where([data-tone=neutral]){--_lr-document-preview-highlight-color:var(--lr-document-preview-highlight-neutral-color,var(--lr-color-neutral))}[part=region-highlight]:where([data-active]){border-color:var(--lr-document-preview-active-border,var(--lr-color-warning,var(--lr-color-brand)))}[part=region-highlight-target]:hover+[part=region-highlight]{background:color-mix(in srgb, var(--_lr-document-preview-highlight-color) 20%, transparent)}[part=region-highlight-target]:active+[part=region-highlight]{background:color-mix(in oklab, color-mix(in srgb, var(--_lr-document-preview-highlight-color) 20%, transparent), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=region-highlight-target]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=highlight-actions]{gap:var(--lr-space-xs);box-sizing:border-box;inline-size:100%;padding:var(--lr-space-xs);display:grid}[part=region-highlight-action]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius-xs);color:var(--lr-color-text);background:var(--lr-color-surface);cursor:pointer}[part=region-highlight-action]:hover{background:var(--lr-color-surface-raised)}[part=region-highlight-action]:active{background:color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=region-highlight-action]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}.empty-note{padding:var(--lr-space-m);color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}.fallback{align-items:center;gap:var(--lr-space-s);padding:var(--lr-space-l);text-align:center;flex-direction:column;display:flex}.fallback-icon{font-size:var(--lr-font-size-3xl);color:var(--lr-color-text-quiet);display:inline-flex}.fallback-icon svg{display:block}.fallback-text{color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-md-sm);margin:0}[part=download-link]{align-items:center;gap:var(--lr-space-xs);padding:var(--lr-space-xs) var(--lr-space-m);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-weight:var(--lr-font-weight-semibold);font-size:var(--lr-font-size-sm);cursor:pointer;transition:background-color var(--lr-transition-fast);text-decoration:none;display:inline-flex}[part=download-link]:hover{background:var(--lr-document-preview-download-link-hover-bg,var(--_lr-document-preview-download-link-hover-bg))}[part=download-link]:active{background:var(--lr-document-preview-download-link-active-bg,var(--_lr-document-preview-download-link-active-bg))}[part=download-link]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=download-link] svg{display:block}[part=spinner]{align-items:center;gap:var(--lr-space-s);padding:var(--lr-space-l);flex-direction:column;display:flex}.ring{inline-size:var(--lr-size-2rem);block-size:var(--lr-size-2rem);border:var(--lr-border-width-thick) solid var(--lr-color-border);border-block-start-color:var(--lr-color-brand);animation:lr-document-preview-spin var(--lr-document-preview-spin-duration,var(--_lr-document-preview-spin-duration)) infinite;border-radius:50%;display:inline-block}.ring.determinate{background:conic-gradient(var(--lr-color-brand) calc(var(--lr-document-preview-progress,0) * 1%), var(--lr-color-border) 0);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--lr-size-3px)), var(--lr-mask-opaque) calc(100% - var(--lr-size-3px)));mask:radial-gradient(farthest-side, transparent calc(100% - var(--lr-size-3px)), var(--lr-mask-opaque) calc(100% - var(--lr-size-3px)));border-color:#0000;animation:none}.spinner-text{color:var(--lr-color-text-quiet);font-size:var(--lr-font-size-sm);font-variant-numeric:tabular-nums}@keyframes lr-document-preview-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ring{animation:none!important}}[part=error]{padding:var(--lr-space-l);color:var(--lr-color-danger);font-size:var(--lr-font-size-md-sm);text-align:center;margin:0}`;export{styles};
|
|
@@ -32,6 +32,8 @@ import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from
|
|
|
32
32
|
* the shared document-level polite/assertive sinks.
|
|
33
33
|
* @csspart download-link - The native download action shown when `src` is safe.
|
|
34
34
|
* @cssprop [--lr-document-viewer-max-height=70vh] - Maximum block size of the dialog body before it scrolls internally.
|
|
35
|
+
* @cssprop [--lr-document-viewer-download-link-hover-bg=color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-hover))] - Hover background of the download link.
|
|
36
|
+
* @cssprop [--lr-document-viewer-download-link-active-bg=color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active))] - Pressed background of the download link.
|
|
35
37
|
* @status stable
|
|
36
38
|
* @since 4.0.0
|
|
37
39
|
*/
|
|
@@ -51,10 +53,11 @@ src:string;private _payload?;
|
|
|
51
53
|
* renderer/fallback input, and download; `name`, `mimeType`, `src`, `anchor`, `highlights`, and
|
|
52
54
|
* `alt` resume their legacy authority when this is reset to `undefined`.
|
|
53
55
|
*/
|
|
54
|
-
get payload():LyraDocumentRendererPayload|undefined;set payload(value:LyraDocumentRendererPayload|undefined);
|
|
56
|
+
get payload():LyraDocumentRendererPayload|undefined;set payload(value:LyraDocumentRendererPayload|undefined);private registrySource?;private _registry?;
|
|
55
57
|
/** Optional per-instance immutable/read-only registry override. Native maps and definition
|
|
56
58
|
* records are synchronously cloned and frozen while callback identities are retained; later
|
|
57
|
-
* source-map mutation is not observed.
|
|
59
|
+
* source-map mutation is not observed. Factory-created immutable registries use the same bounded
|
|
60
|
+
* snapshot boundary. When unset, this instance owns a snapshot of the built-ins
|
|
58
61
|
* that existed when it was constructed; later registrations cannot mutate it. A consumer matcher
|
|
59
62
|
* or renderer that throws is contained as the localized error state, and a pending anchor
|
|
60
63
|
* completes once with `{ found: false }`. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{safeDownloadHref}from"../../../internal/safe-url.js";import{adaptDocumentRenderer,createDocumentRendererRegistry,findDocumentRenderer,loadDocumentRenderer,snapshotLyraDocumentRendererPayload}from"./registry.js";import{styles}from"./document-viewer.styles.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{LYRA_DEFAULT_documentPreviewGenericError,LYRA_DEFAULT_documentViewerLabel,LYRA_DEFAULT_download,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";class LyraDocumentViewer extends LyraElement{constructor(){super(...arguments),this.open=!1,this.name="",this.mimeType="",this.src="",this.anchor=null,this._highlights=snapshotLyraHighlights([]),this.renderState={kind:"fallback"},this.generation=0,this.builtInRegistry=createDocumentRendererRegistry(),this.announcements=new ViewerAnnouncementController(this),this.onDialogClose=event=>{event.target===event.currentTarget&&(event.stopPropagation(),this.open=!1,this.emit("lr-close",event.detail))},this.onDownload=()=>{const file=this.currentFile();this.emit("lr-download",{src:file.src,filename:file.name})}}static{this.defaultStrings={...super.defaultStrings,documentPreviewGenericError:LYRA_DEFAULT_documentPreviewGenericError,documentViewerLabel:LYRA_DEFAULT_documentViewerLabel,download:LYRA_DEFAULT_download,loadingDocument:LYRA_DEFAULT_loadingDocument}}static{this.ownedCollectionProperties=Object.freeze(["highlights","registry"])}static{this.styles=[LyraElement.styles,styles]}get payload(){return this._payload}set payload(value){const old=this._payload;this._payload=value===void 0?void 0:snapshotLyraDocumentRendererPayload(value),this.requestUpdate("payload",old)}get highlights(){return this._highlights}set highlights(value){const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.open&&this.resolve()}disconnectedCallback(){this.generation++,this.renderState={kind:"fallback"},this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}willUpdate(changed){if(super.willUpdate(changed),!this.open){changed.has("open")&&(this.generation++,this.renderState={kind:"fallback"});return}const legacyFileChanged=this.payload===void 0&&(changed.has("name")||changed.has("mimeType")||changed.has("src")||changed.has("anchor")||changed.has("highlights")||changed.has("alt"));(!this.hasUpdated||changed.has("open")||changed.has("payload")||changed.has("registry")||legacyFileChanged)&&this.resolve()}updated(changed){super.updated(changed),this.announcements.transition("renderer",this.renderState.kind,this.renderState.kind==="error"?this.localize("documentPreviewGenericError"):this.localize("loadingDocument"))}currentFile(){if(this.payload){const file=this.payload.file;return{name:file.name,mimeType:file.mimeType,src:file.src,...file.anchor!==void 0?{anchor:file.anchor}:{},...file.highlights?{highlights:[...file.highlights]}:{},...file.alt!==void 0?{alt:file.alt}:{}}}return{name:this.name,mimeType:this.mimeType,src:this.src,anchor:this.anchor??void 0,highlights:this.highlights,alt:this.alt}}async resolve(){if(!this.isConnected||!this.open)return;const generation=++this.generation,file=this.currentFile(),registry=this.registry??this.builtInRegistry;let def;try{def=findDocumentRenderer(file,registry)}catch{this.failResolution(file,generation);return}if(!def){this.resolvedLazy=void 0,this.renderState={kind:"fallback"},this.finishAnchorResult(void 0,file,generation,!0);return}if(this.resolvedLazy?.def===def){const capabilities2=this.renderWith(this.resolvedLazy.resolved,file);if(capabilities2===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities2,file,generation);return}if(!def.load){this.resolvedLazy={def,resolved:def};const capabilities2=this.renderWith(def,file);if(capabilities2===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities2,file,generation);return}this.renderState={kind:"loading"};let resolved;try{resolved=await loadDocumentRenderer(def)}catch{generation===this.generation&&this.isConnected&&this.open&&(this.renderState={kind:"error"},this.finishAnchorResult(void 0,file,generation));return}if(generation!==this.generation||!this.isConnected||!this.open)return;this.resolvedLazy={def,resolved};const capabilities=this.renderWith(resolved,file);if(capabilities===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities,file,generation)}failResolution(file,generation){generation!==this.generation||!this.isConnected||!this.open||(this.renderState={kind:"error"},file.anchor!=null&&this.scheduleAfterUpdate(()=>{generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found:!1})}))}finishAnchorResult(capabilities,file,generation,fallback=!1){if(file.anchor!=null&&!(generation!==this.generation||!this.isConnected||!this.open)){if(fallback){this.scheduleAfterUpdate(()=>{(async()=>{const found=await this.fallbackPreviewEl?.scrollToAnchor(file.anchor)??!1;generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found})})()});return}this.isAnchorCapable(capabilities,file.anchor)||this.scheduleAfterUpdate(()=>{generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found:!1})})}}isAnchorCapable(capabilities,anchor){const anchors=capabilities?.anchors;return!anchors||anchors.length===0?!1:typeof anchor=="string"?!0:anchors.includes(anchor.kind)}renderWith(definition,file){try{const adapted=adaptDocumentRenderer(definition,file,this.payload);return this.renderState={kind:"rendered",template:adapted.render()},adapted.capabilities}catch{return!1}}renderBody(){const file=this.currentFile();switch(this.renderState.kind){case"rendered":return this.renderState.template;case"loading":return html`<p>${this.localize("loadingDocument")}</p>`;case"error":return html`<div>${this.localize("documentPreviewGenericError")}</div>`;default:return html`
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{LyraElement,snapshotPublicCollection}from"../../../internal/lyra-element.js";import{documentRendererRegistrySource}from"./registry-ownership.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{safeDownloadHref}from"../../../internal/safe-url.js";import{adaptDocumentRenderer,createDocumentRendererRegistry,findDocumentRenderer,loadDocumentRenderer,snapshotLyraDocumentRendererPayload}from"./registry.js";import{styles}from"./document-viewer.styles.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{LYRA_DEFAULT_documentPreviewGenericError,LYRA_DEFAULT_documentViewerLabel,LYRA_DEFAULT_download,LYRA_DEFAULT_loadingDocument}from"../../../internal/default-strings.generated.js";class LyraDocumentViewer extends LyraElement{constructor(){super(...arguments),this.open=!1,this.name="",this.mimeType="",this.src="",this.anchor=null,this._highlights=snapshotLyraHighlights([]),this.renderState={kind:"fallback"},this.generation=0,this.builtInRegistry=createDocumentRendererRegistry(),this.announcements=new ViewerAnnouncementController(this),this.onDialogClose=event=>{event.target===event.currentTarget&&(event.stopPropagation(),this.open=!1,this.emit("lr-close",event.detail))},this.onDownload=()=>{const file=this.currentFile();this.emit("lr-download",{src:file.src,filename:file.name})}}static{this.defaultStrings={...super.defaultStrings,documentPreviewGenericError:LYRA_DEFAULT_documentPreviewGenericError,documentViewerLabel:LYRA_DEFAULT_documentViewerLabel,download:LYRA_DEFAULT_download,loadingDocument:LYRA_DEFAULT_loadingDocument}}static{this.ownedCollectionProperties=Object.freeze(["highlights","registry"])}static{this.styles=[LyraElement.styles,styles]}get payload(){return this._payload}set payload(value){const old=this._payload;this._payload=value===void 0?void 0:snapshotLyraDocumentRendererPayload(value),this.requestUpdate("payload",old)}static{Object.defineProperty(this.prototype,"registry",{configurable:!0,enumerable:!0,get(){return this._registry},set(value){if(value===this.registrySource||value===this._registry)return;const old=this._registry;this._registry=snapshotPublicCollection(documentRendererRegistrySource(value),this.ownerDocument?.defaultView),this.registrySource=value,this.requestUpdate("registry",old)}})}get highlights(){return this._highlights}set highlights(value){const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.open&&this.resolve()}disconnectedCallback(){this.generation++,this.renderState={kind:"fallback"},this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}willUpdate(changed){if(super.willUpdate(changed),!this.open){changed.has("open")&&(this.generation++,this.renderState={kind:"fallback"});return}const legacyFileChanged=this.payload===void 0&&(changed.has("name")||changed.has("mimeType")||changed.has("src")||changed.has("anchor")||changed.has("highlights")||changed.has("alt"));(!this.hasUpdated||changed.has("open")||changed.has("payload")||changed.has("registry")||legacyFileChanged)&&this.resolve()}updated(changed){super.updated(changed),this.announcements.transition("renderer",this.renderState.kind,this.renderState.kind==="error"?this.localize("documentPreviewGenericError"):this.localize("loadingDocument"))}currentFile(){if(this.payload){const file=this.payload.file;return{name:file.name,mimeType:file.mimeType,src:file.src,...file.anchor!==void 0?{anchor:file.anchor}:{},...file.highlights?{highlights:[...file.highlights]}:{},...file.alt!==void 0?{alt:file.alt}:{}}}return{name:this.name,mimeType:this.mimeType,src:this.src,anchor:this.anchor??void 0,highlights:this.highlights,alt:this.alt}}async resolve(){if(!this.isConnected||!this.open)return;const generation=++this.generation,file=this.currentFile(),registry=this.registry??this.builtInRegistry;let def;try{def=findDocumentRenderer(file,registry)}catch{this.failResolution(file,generation);return}if(!def){this.resolvedLazy=void 0,this.renderState={kind:"fallback"},this.finishAnchorResult(void 0,file,generation,!0);return}if(this.resolvedLazy?.def===def){const capabilities2=this.renderWith(this.resolvedLazy.resolved,file);if(capabilities2===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities2,file,generation);return}if(!def.load){this.resolvedLazy={def,resolved:def};const capabilities2=this.renderWith(def,file);if(capabilities2===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities2,file,generation);return}this.renderState={kind:"loading"};let resolved;try{resolved=await loadDocumentRenderer(def)}catch{generation===this.generation&&this.isConnected&&this.open&&(this.renderState={kind:"error"},this.finishAnchorResult(void 0,file,generation));return}if(generation!==this.generation||!this.isConnected||!this.open)return;this.resolvedLazy={def,resolved};const capabilities=this.renderWith(resolved,file);if(capabilities===!1){this.failResolution(file,generation);return}this.finishAnchorResult(capabilities,file,generation)}failResolution(file,generation){generation!==this.generation||!this.isConnected||!this.open||(this.renderState={kind:"error"},file.anchor!=null&&this.scheduleAfterUpdate(()=>{generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found:!1})}))}finishAnchorResult(capabilities,file,generation,fallback=!1){if(file.anchor!=null&&!(generation!==this.generation||!this.isConnected||!this.open)){if(fallback){this.scheduleAfterUpdate(()=>{(async()=>{const found=await this.fallbackPreviewEl?.scrollToAnchor(file.anchor)??!1;generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found})})()});return}this.isAnchorCapable(capabilities,file.anchor)||this.scheduleAfterUpdate(()=>{generation!==this.generation||!this.isConnected||!this.open||this.emit("lr-anchor-result",{found:!1})})}}isAnchorCapable(capabilities,anchor){const anchors=capabilities?.anchors;return!anchors||anchors.length===0?!1:typeof anchor=="string"?!0:anchors.includes(anchor.kind)}renderWith(definition,file){try{const adapted=adaptDocumentRenderer(definition,file,this.payload);return this.renderState={kind:"rendered",template:adapted.render()},adapted.capabilities}catch{return!1}}renderBody(){const file=this.currentFile();switch(this.renderState.kind){case"rendered":return this.renderState.template;case"loading":return html`<p>${this.localize("loadingDocument")}</p>`;case"error":return html`<div>${this.localize("documentPreviewGenericError")}</div>`;default:return html`
|
|
2
2
|
<lr-document-preview
|
|
3
3
|
src=${file.src}
|
|
4
4
|
mime-type=${file.mimeType}
|
|
@@ -29,4 +29,4 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
29
29
|
>${this.localize("download")}</a>
|
|
30
30
|
`:nothing}
|
|
31
31
|
</lr-dialog>
|
|
32
|
-
`}}__decorate([property({type:Boolean,reflect:!0})],LyraDocumentViewer.prototype,"open",void 0),__decorate([property()],LyraDocumentViewer.prototype,"name",void 0),__decorate([property({attribute:"mime-type"})],LyraDocumentViewer.prototype,"mimeType",void 0),__decorate([property()],LyraDocumentViewer.prototype,"src",void 0),__decorate([property({attribute:!1})],LyraDocumentViewer.prototype,"payload",null),__decorate([property({attribute:!1})],LyraDocumentViewer.prototype,"registry",void 0),__decorate([property({attribute:!1,hasChanged:()=>!0})],LyraDocumentViewer.prototype,"anchor",void 0),__decorate([property({attribute:!1})],LyraDocumentViewer.prototype,"highlights",null),__decorate([property()],LyraDocumentViewer.prototype,"alt",void 0),__decorate([state()],LyraDocumentViewer.prototype,"renderState",void 0),__decorate([query("lr-document-preview")],LyraDocumentViewer.prototype,"fallbackPreviewEl",void 0);export{LyraDocumentViewer};
|
|
32
|
+
`}}__decorate([property({type:Boolean,reflect:!0})],LyraDocumentViewer.prototype,"open",void 0),__decorate([property()],LyraDocumentViewer.prototype,"name",void 0),__decorate([property({attribute:"mime-type"})],LyraDocumentViewer.prototype,"mimeType",void 0),__decorate([property()],LyraDocumentViewer.prototype,"src",void 0),__decorate([property({attribute:!1})],LyraDocumentViewer.prototype,"payload",null),__decorate([property({attribute:!1,noAccessor:!0})],LyraDocumentViewer.prototype,"registry",void 0),__decorate([property({attribute:!1,hasChanged:()=>!0})],LyraDocumentViewer.prototype,"anchor",void 0),__decorate([property({attribute:!1})],LyraDocumentViewer.prototype,"highlights",null),__decorate([property()],LyraDocumentViewer.prototype,"alt",void 0),__decorate([state()],LyraDocumentViewer.prototype,"renderState",void 0),__decorate([query("lr-document-preview")],LyraDocumentViewer.prototype,"fallbackPreviewEl",void 0);export{LyraDocumentViewer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from"lit";const styles=css`:host{--_lr-document-viewer-max-height:70vh;display:contents}[part=body]{min-block-size:var(--lr-size-12rem);max-block-size:var(--lr-document-viewer-max-height,var(--_lr-document-viewer-max-height));padding-inline:var(--lr-space-l);padding-block:var(--lr-space-l);flex-direction:column;min-inline-size:0;display:flex;overflow:auto}[part=body] img{block-size:auto;max-inline-size:100%}[part=download-link]{min-block-size:var(--lr-size-2rem);padding-inline:var(--lr-space-m);border:var(--lr-border-width-thin) solid var(--lr-color-brand);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-weight:var(--lr-font-weight-semibold);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}[part=download-link]:hover{background:
|
|
1
|
+
import{css}from"lit";const styles=css`:host{--_lr-document-viewer-max-height:70vh;--_lr-document-viewer-download-link-hover-bg:color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-hover));--_lr-document-viewer-download-link-active-bg:color-mix(in oklab, var(--lr-color-brand), var(--lr-color-mix-partner) var(--lr-color-mix-active));display:contents}[part=body]{min-block-size:var(--lr-size-12rem);max-block-size:var(--lr-document-viewer-max-height,var(--_lr-document-viewer-max-height));padding-inline:var(--lr-space-l);padding-block:var(--lr-space-l);flex-direction:column;min-inline-size:0;display:flex;overflow:auto}[part=body] img{block-size:auto;max-inline-size:100%}[part=download-link]{min-block-size:var(--lr-size-2rem);padding-inline:var(--lr-space-m);border:var(--lr-border-width-thin) solid var(--lr-color-brand);border-radius:var(--lr-radius);background:var(--lr-color-brand);color:var(--lr-color-on-brand);font:inherit;font-weight:var(--lr-font-weight-semibold);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}[part=download-link]:hover{background:var(--lr-document-viewer-download-link-hover-bg,var(--_lr-document-viewer-download-link-hover-bg))}[part=download-link]:active{background:var(--lr-document-viewer-download-link-active-bg,var(--_lr-document-viewer-download-link-active-bg))}[part=download-link]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}`;export{styles};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const factorySources=new WeakMap;function rememberDocumentRendererRegistry(registry,entries){factorySources.set(registry,entries)}function documentRendererRegistrySource(value){return value!==null&&typeof value=="object"?factorySources.get(value)??value:value}export{documentRendererRegistrySource,rememberDocumentRendererRegistry};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{snapshotLyraAvCues,snapshotLyraAvTracks}from"../../media/av-player/av-metadata.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";function snapshotDocumentFile(value){if(value===null||typeof value!="object")throw new TypeError("A document renderer payload must provide a file object.");const file=value;if(typeof file.name!="string"||typeof file.mimeType!="string"||typeof file.src!="string")throw new TypeError("A document renderer payload file must provide string name, mimeType, and src fields.");const highlights=file.highlights===void 0?void 0:snapshotLyraHighlights(file.highlights);return Object.freeze({name:file.name,mimeType:file.mimeType,src:file.src,...file.anchor!==void 0?{anchor:file.anchor}:{},...highlights?{highlights}:{},...typeof file.alt=="string"?{alt:file.alt}:{}})}function snapshotLyraDocumentRendererPayload(value){if(value===null||typeof value!="object")throw new TypeError("A document renderer payload must be an object.");const candidate=value,file=snapshotDocumentFile(candidate.file);if(candidate.kind==="document")return Object.freeze({kind:"document",file});if(candidate.kind==="av")return Object.freeze({kind:"av",file,cues:snapshotLyraAvCues(candidate.cues),tracks:snapshotLyraAvTracks(candidate.tracks)});throw new TypeError("A document renderer payload has an unsupported kind.")}const DOCUMENT_RENDERER_ADAPTER=Symbol("document-renderer-adapter"),builtInDefinitions=new Map;let loadCache=new WeakMap,validatedDefinitionCache=new WeakMap;function normalizeRegistryKey(key){const normalized=key.trim().toLowerCase();if(!normalized)throw new TypeError("A document renderer key must not be empty.");return normalized.includes("/")?normalized.split(";",1)[0].trim():normalized}function freezeCapabilities(capabilities){if(capabilities){if(capabilities.anchors!==void 0&&(!Array.isArray(capabilities.anchors)||capabilities.anchors.some(kind=>typeof kind!="string"))||capabilities.search!==void 0&&typeof capabilities.search!="boolean"||capabilities.textSelect!==void 0&&typeof capabilities.textSelect!="boolean")throw new TypeError("A document renderer has an invalid capabilities declaration.");return Object.freeze({...capabilities,...capabilities.anchors?{anchors:Object.freeze([...capabilities.anchors])}:{}})}}function createDocumentRendererAdapter(definition){const kind=definition.kind,adapt=definition.adapt,capabilities=definition.capabilities,render=definition.render;if(kind!=="document"&&kind!=="av"||typeof adapt!="function"||typeof capabilities!="function"||typeof render!="function")throw new TypeError("A document renderer adapter definition is invalid.");const assertKind=payload=>{if(payload.kind!==kind)throw new TypeError("A document renderer adapter returned or received the wrong payload kind.");return payload}
|
|
1
|
+
import{rememberDocumentRendererRegistry}from"./registry-ownership.js";import{snapshotLyraAvCues,snapshotLyraAvTracks}from"../../media/av-player/av-metadata.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";function snapshotDocumentFile(value){if(value===null||typeof value!="object")throw new TypeError("A document renderer payload must provide a file object.");const file=value;if(typeof file.name!="string"||typeof file.mimeType!="string"||typeof file.src!="string")throw new TypeError("A document renderer payload file must provide string name, mimeType, and src fields.");const highlights=file.highlights===void 0?void 0:snapshotLyraHighlights(file.highlights);return Object.freeze({name:file.name,mimeType:file.mimeType,src:file.src,...file.anchor!==void 0?{anchor:file.anchor}:{},...highlights?{highlights}:{},...typeof file.alt=="string"?{alt:file.alt}:{}})}function snapshotLyraDocumentRendererPayload(value){if(value===null||typeof value!="object")throw new TypeError("A document renderer payload must be an object.");const candidate=value,file=snapshotDocumentFile(candidate.file);if(candidate.kind==="document")return Object.freeze({kind:"document",file});if(candidate.kind==="av")return Object.freeze({kind:"av",file,cues:snapshotLyraAvCues(candidate.cues),tracks:snapshotLyraAvTracks(candidate.tracks)});throw new TypeError("A document renderer payload has an unsupported kind.")}const DOCUMENT_RENDERER_ADAPTER=Symbol("document-renderer-adapter"),factoryAdapters=new WeakMap,builtInDefinitions=new Map;let loadCache=new WeakMap,validatedDefinitionCache=new WeakMap;function normalizeRegistryKey(key){const normalized=key.trim().toLowerCase();if(!normalized)throw new TypeError("A document renderer key must not be empty.");return normalized.includes("/")?normalized.split(";",1)[0].trim():normalized}function freezeCapabilities(capabilities){if(capabilities){if(capabilities.anchors!==void 0&&(!Array.isArray(capabilities.anchors)||capabilities.anchors.some(kind=>typeof kind!="string"))||capabilities.search!==void 0&&typeof capabilities.search!="boolean"||capabilities.textSelect!==void 0&&typeof capabilities.textSelect!="boolean")throw new TypeError("A document renderer has an invalid capabilities declaration.");return Object.freeze({...capabilities,...capabilities.anchors?{anchors:Object.freeze([...capabilities.anchors])}:{}})}}function createDocumentRendererAdapter(definition){const kind=definition.kind,adapt=definition.adapt,capabilities=definition.capabilities,render=definition.render;if(kind!=="document"&&kind!=="av"||typeof adapt!="function"||typeof capabilities!="function"||typeof render!="function")throw new TypeError("A document renderer adapter definition is invalid.");const assertKind=payload=>{if(payload.kind!==kind)throw new TypeError("A document renderer adapter returned or received the wrong payload kind.");return payload},adapter=Object.freeze({[DOCUMENT_RENDERER_ADAPTER]:!0,kind,adapt(file,supplied){return assertKind(snapshotLyraDocumentRendererPayload(adapt(file,supplied)))},capabilities(payload){return freezeCapabilities(capabilities(assertKind(payload)))},render(payload){return render(assertKind(payload))}});return factoryAdapters.set(adapter.adapt,adapter),adapter}function resolveDocumentRendererAdapter(value){if(!(value===null||typeof value!="object"))try{const adapt=Object.getOwnPropertyDescriptor(value,"adapt")?.value;if(typeof adapt!="function")return;const trusted=factoryAdapters.get(adapt);if(!trusted)return;for(const key of["kind","capabilities","render"]){const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor||!("value"in descriptor)||descriptor.value!==trusted[key])return}return trusted}catch{return}}function validateDefinition(value){if(typeof value!="object"||value===null)throw new TypeError("A document renderer definition must be an object.");const cached=validatedDefinitionCache.get(value);if(cached)return cached;const candidate=value,hasRender=typeof candidate.render=="function",hasLoad=typeof candidate.load=="function",hasAdapter=candidate.adapter!==void 0;if(Number(hasRender)+Number(hasLoad)+Number(hasAdapter)!==1)throw new TypeError("A document renderer definition must provide exactly one of render, adapter, or load.");if(candidate.matches!==void 0&&typeof candidate.matches!="function")throw new TypeError("A document renderer matcher must be a function.");const adapter=hasAdapter?resolveDocumentRendererAdapter(candidate.adapter):void 0;if(hasAdapter&&!adapter)throw new TypeError("A document renderer adapter must be created with createDocumentRendererAdapter().");if(hasAdapter&&candidate.capabilities!==void 0)throw new TypeError("A payload adapter must derive its capabilities instead of declaring static capabilities.");const capabilities=freezeCapabilities(candidate.capabilities),base={...candidate.matches?{matches:candidate.matches}:{}},validated=Object.freeze(adapter?{...base,adapter}:hasRender?{...base,...capabilities?{capabilities}:{},render:candidate.render}:{...base,...capabilities?{capabilities}:{},load:candidate.load});return validatedDefinitionCache.set(value,validated),validatedDefinitionCache.set(validated,validated),validated}function adaptDocumentRenderer(candidate,file,supplied){const definition=validateDefinition(candidate);if("load"in definition&&definition.load)throw new TypeError("A lazy document renderer must be loaded before it can be adapted.");const immutableSupplied=supplied?snapshotLyraDocumentRendererPayload(supplied):void 0,immutableFile=snapshotDocumentFile(file);if("adapter"in definition&&definition.adapter){const payload2=definition.adapter.adapt(immutableFile,immutableSupplied),capabilities=definition.adapter.capabilities(payload2);return Object.freeze({payload:payload2,...capabilities?{capabilities}:{},render:()=>definition.adapter.render(payload2)})}const payload=immutableSupplied??snapshotLyraDocumentRendererPayload({kind:"document",file:immutableFile});return Object.freeze({payload,...definition.capabilities?{capabilities:definition.capabilities}:{},render:()=>definition.render(immutableFile)})}class ImmutableDocumentRendererRegistry{#entries;constructor(entries){this.#entries=new Map(entries),rememberDocumentRendererRegistry(this,this.#entries)}get size(){return this.#entries.size}get(key){return this.#entries.get(normalizeRegistryKey(key))}has(key){return this.#entries.has(normalizeRegistryKey(key))}entries(){return this.#entries.entries()}keys(){return this.#entries.keys()}values(){return this.#entries.values()}forEach(callbackfn,thisArg){for(const[key,value]of this.#entries)callbackfn.call(thisArg,value,key,this)}[Symbol.iterator](){return this.entries()}}function createDocumentRendererRegistry(overrides=[]){const entries=new Map(builtInDefinitions);for(const[key,definition]of overrides)entries.set(normalizeRegistryKey(key),validateDefinition(definition));return new ImmutableDocumentRendererRegistry(entries)}function registerDocumentRenderer(key,definition){builtInDefinitions.set(normalizeRegistryKey(key),validateDefinition(definition))}function getDefaultDocumentRendererRegistry(){return createDocumentRendererRegistry()}function findDocumentRenderer(file,registry=createDocumentRendererRegistry()){const exact=registry.get(normalizeRegistryKey(file.mimeType));if(exact)return validateDefinition(exact);for(const candidate of registry.values()){const definition=validateDefinition(candidate);if(definition.matches?.(file))return definition}}function unwrapLoadedDefinition(value){return typeof value=="object"&&value!==null&&"default"in value?value.default:value}function loadDocumentRenderer(candidate){const definition=validateDefinition(candidate);if(!("load"in definition)||!definition.load)return Promise.resolve(definition);const cached=loadCache.get(definition);if(cached)return cached;const promise=definition.load().then(value=>{const resolved=validateDefinition(unwrapLoadedDefinition(value));if(!("render"in resolved)||typeof resolved.render!="function")throw new TypeError("A lazy document renderer must resolve to a direct renderer.");return resolved});return loadCache.set(definition,promise),promise.catch(()=>loadCache.delete(definition)),promise}function clearDocumentRenderers(){builtInDefinitions.clear(),loadCache=new WeakMap,validatedDefinitionCache=new WeakMap}export{adaptDocumentRenderer,clearDocumentRenderers,createDocumentRendererAdapter,createDocumentRendererRegistry,findDocumentRenderer,getDefaultDocumentRendererRegistry,loadDocumentRenderer,registerDocumentRenderer,snapshotLyraDocumentRendererPayload};
|
|
@@ -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
|
|
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};
|