@aceshooting/lyra-ui 9.1.1 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +785 -0
- package/custom-elements.json +1 -1
- package/design-tokens.json +13 -0
- package/dist/cli/migrate-wa.mjs +216 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
- package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
- package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
- package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
- package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
- package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
- package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
- package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
- package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
- package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
- package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
- package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
- package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
- package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
- package/dist/components/charts/chart/box-plot.class.d.ts +27 -0
- package/dist/components/charts/chart/box-plot.class.js +14 -4
- package/dist/components/charts/chart/box-plot.styles.js +28 -20
- package/dist/components/charts/chart/chart-colors.d.ts +1 -1
- package/dist/components/charts/chart/chart-colors.js +1 -1
- package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
- package/dist/components/charts/chart/chart-core-loader.js +1 -1
- package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
- package/dist/components/charts/chart/chart-feature-loader.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +120 -0
- package/dist/components/charts/chart/chart.class.js +16 -6
- package/dist/components/charts/chart/chart.styles.js +28 -27
- package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/charts/chart/lite-chart.styles.js +0 -27
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
- package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
- package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
- package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
- package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
- package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +4 -95
- package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
- package/dist/components/conversation/code-block/code-loader.js +1 -1
- package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
- package/dist/components/conversation/code-block/shiki-types.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
- package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
- package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown.styles.js +0 -41
- package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
- package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
- package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/model-select/model-select.styles.js +12 -47
- package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
- package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
- package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
- package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
- package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
- package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
- package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
- package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
- package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
- package/dist/components/conversation/widget-renderer/resolve.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +15 -2
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/calendar/calendar.styles.js +2 -28
- package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
- package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
- package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
- package/dist/components/data/context-meter/context-meter.styles.js +0 -24
- package/dist/components/data/data-grid/data-grid.class.js +3 -3
- package/dist/components/data/data-grid/data-grid.styles.js +0 -22
- package/dist/components/data/document-library/document-library.class.js +2 -2
- package/dist/components/data/document-library/document-library.styles.js +0 -4
- package/dist/components/data/env-list/env-list.class.js +1 -1
- package/dist/components/data/env-list/env-list.styles.js +7 -4
- package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
- package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
- package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
- package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
- package/dist/components/data/flow-node/flow-node.styles.js +0 -23
- package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
- package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
- package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
- package/dist/components/data/heatmap/heatmap-scale.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +117 -1
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/heatmap/heatmap.styles.js +0 -54
- package/dist/components/data/pagination/pagination.styles.js +23 -46
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
- package/dist/components/data/sparkline/sparkline.class.js +1 -1
- package/dist/components/data/stat/stat.styles.js +0 -67
- package/dist/components/data/table/table.class.d.ts +42 -3
- package/dist/components/data/table/table.class.js +4 -4
- package/dist/components/data/table/table.styles.js +20 -91
- package/dist/components/data/timeline/timeline-item.styles.js +0 -30
- package/dist/components/data/timeline/timeline.class.d.ts +89 -1
- package/dist/components/data/timeline/timeline.class.js +2 -2
- package/dist/components/data/timeline/timeline.styles.js +111 -31
- package/dist/components/data/tree/tree-item.styles.js +1 -28
- package/dist/components/data/tree/tree.class.js +2 -2
- package/dist/components/data/tree/tree.styles.js +0 -6
- package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/button/button.styles.js +0 -105
- 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/checkbox.styles.js +0 -39
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
- package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
- package/dist/components/forms/color-picker/color-picker.class.js +2 -2
- package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
- package/dist/components/forms/combobox/combobox.class.d.ts +71 -3
- package/dist/components/forms/combobox/combobox.class.js +5 -3
- package/dist/components/forms/combobox/combobox.styles.js +31 -111
- package/dist/components/forms/combobox/option.styles.js +7 -1
- package/dist/components/forms/date-picker/date-input.class.js +1 -1
- package/dist/components/forms/date-picker/date-input.styles.js +12 -67
- package/dist/components/forms/date-picker/date-picker.class.d.ts +47 -0
- package/dist/components/forms/date-picker/date-picker.class.js +36 -22
- package/dist/components/forms/date-picker/date-picker.styles.js +82 -29
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
- package/dist/components/forms/input/input.styles.js +0 -54
- package/dist/components/forms/input/number-input.styles.d.ts +4 -5
- package/dist/components/forms/input/number-input.styles.js +0 -11
- package/dist/components/forms/input/time-input-shared.d.ts +11 -0
- package/dist/components/forms/input/time-input-shared.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +11 -2
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/input/time-input.styles.js +0 -6
- package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
- package/dist/components/forms/otp-input/otp-input.class.js +3 -3
- package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
- package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
- package/dist/components/forms/phone-input/phone-input.class.js +2 -2
- package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
- package/dist/components/forms/radio/radio-button.styles.js +1 -30
- package/dist/components/forms/radio/radio-group.styles.js +0 -4
- package/dist/components/forms/radio/radio.styles.js +0 -44
- package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/select/select.styles.js +14 -114
- package/dist/components/forms/slider/slider.styles.js +0 -55
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
- package/dist/components/forms/switch/switch.class.d.ts +3 -0
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/switch/switch.styles.js +0 -37
- package/dist/components/forms/textarea/textarea.styles.js +0 -28
- package/dist/components/forms/time-range/time-range.styles.js +12 -84
- package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +1 -54
- package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
- package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
- package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
- package/dist/components/layout/button-group/button-group.styles.js +0 -6
- package/dist/components/layout/card/card.class.d.ts +12 -0
- package/dist/components/layout/card/card.styles.js +3 -11
- package/dist/components/layout/carousel/carousel.styles.js +0 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
- package/dist/components/layout/command-palette/command-palette.class.js +3 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
- package/dist/components/layout/control-group/control-group.styles.js +0 -7
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
- package/dist/components/layout/details/accordion.class.d.ts +13 -0
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/details/details.class.js +1 -1
- package/dist/components/layout/details/details.styles.js +0 -12
- package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
- package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
- package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
- package/dist/components/layout/menu/menu-item.class.js +1 -1
- package/dist/components/layout/menu/menu-item.styles.js +0 -49
- package/dist/components/layout/menu/menu-label.styles.js +0 -2
- package/dist/components/layout/menu/menu.styles.js +0 -18
- package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
- package/dist/components/layout/page/page.class.d.ts +4 -0
- package/dist/components/layout/page/page.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
- package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
- package/dist/components/layout/scroller/scroller.styles.js +0 -20
- package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
- package/dist/components/layout/segmented/segmented.class.js +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +69 -37
- package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
- package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
- package/dist/components/layout/stepper/stepper.class.js +1 -1
- package/dist/components/layout/stepper/stepper.styles.js +140 -41
- package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
- package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
- package/dist/components/layout/tab-group/tab.styles.js +0 -2
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
- package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
- package/dist/components/layout/widget/widget.class.d.ts +5 -1
- package/dist/components/layout/widget/widget.class.js +1 -1
- package/dist/components/layout/widget/widget.styles.js +97 -40
- package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
- package/dist/components/media/animated-image/animated-image.class.js +1 -1
- package/dist/components/media/animated-image/animated-image.styles.js +0 -28
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
- package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
- package/dist/components/media/av-player/av-player.class.d.ts +5 -6
- package/dist/components/media/av-player/av-player.class.js +1 -1
- package/dist/components/media/av-player/av-player.styles.js +0 -45
- package/dist/components/media/avatar/avatar.styles.js +3 -16
- package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +12 -0
- package/dist/components/media/file-input/file-input.styles.js +3 -24
- package/dist/components/media/flag/flag.class.d.ts +23 -1
- package/dist/components/media/flag/flag.class.js +4 -2
- package/dist/components/media/flag/flag.styles.js +7 -1
- package/dist/components/media/flag/language-map.d.ts +10 -0
- package/dist/components/media/flag/language-map.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
- package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
- package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
- package/dist/components/media/lightbox/lightbox.class.js +0 -2
- package/dist/components/media/lightbox/lightbox.styles.js +0 -21
- package/dist/components/media/map/map-loader.d.ts +19 -1
- package/dist/components/media/map/map-loader.js +1 -1
- package/dist/components/media/map/map.class.d.ts +178 -1
- package/dist/components/media/map/map.class.js +15 -3
- package/dist/components/media/map/map.styles.js +20 -17
- package/dist/components/media/media-card/media-card.class.d.ts +14 -3
- package/dist/components/media/media-card/media-card.class.js +1 -1
- package/dist/components/media/media-card/media-card.styles.js +2 -28
- package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
- package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
- package/dist/components/media/qr-code/qr-code.class.js +2 -2
- package/dist/components/media/qr-code/qr-code.styles.js +0 -3
- package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
- package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
- package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
- package/dist/components/media/video/video.class.d.ts +23 -2
- package/dist/components/media/video/video.class.js +3 -3
- package/dist/components/media/video/video.styles.js +4 -2
- 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/media/zoomable-frame/zoomable-frame.styles.js +0 -5
- package/dist/components/overlays/alert/alert.styles.js +4 -2
- package/dist/components/overlays/badge/badge.styles.js +4 -48
- package/dist/components/overlays/badge/tag.styles.js +0 -14
- package/dist/components/overlays/callout/callout.styles.js +0 -11
- package/dist/components/overlays/chip/chip-group.styles.js +0 -18
- package/dist/components/overlays/chip/chip.styles.js +6 -69
- package/dist/components/overlays/dialog/confirm.d.ts +1 -4
- package/dist/components/overlays/dialog/confirm.js +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +32 -9
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/dialog/dialog.styles.js +0 -43
- package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
- package/dist/components/overlays/drawer/drawer.styles.js +0 -9
- package/dist/components/overlays/empty/empty.styles.js +0 -12
- package/dist/components/overlays/kbd/kbd.styles.js +0 -8
- package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
- package/dist/components/overlays/overlay/dropdown.class.js +2 -2
- package/dist/components/overlays/overlay/overlay.styles.js +0 -28
- package/dist/components/overlays/overlay/popover.class.d.ts +28 -4
- package/dist/components/overlays/overlay/popover.class.js +2 -2
- package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/popup/popup.class.d.ts +1 -0
- package/dist/components/overlays/popup/popup.class.js +1 -1
- package/dist/components/overlays/popup/popup.styles.js +0 -15
- package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
- package/dist/components/overlays/progress/progress-ring.class.js +3 -3
- package/dist/components/overlays/progress/progress.styles.js +0 -21
- package/dist/components/overlays/rating/rating.styles.js +0 -25
- package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
- package/dist/components/overlays/spinner/spinner.styles.js +0 -3
- package/dist/components/overlays/toast/toast-item.styles.js +3 -45
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
- package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
- package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
- package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
- package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
- package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
- package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
- package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
- package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +0 -30
- package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
- package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
- package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
- package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
- package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
- package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
- package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
- package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
- package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
- package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
- package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
- package/dist/components/utility/export-button/export-button.styles.js +0 -22
- package/dist/components/utility/icon/icon.styles.js +0 -6
- package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
- package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
- package/dist/components/utility/known-date/known-date.styles.js +10 -51
- package/dist/components/utility/live-region/live-region.styles.js +0 -4
- package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
- package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
- package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
- package/dist/components/utility/random-content/random-content.class.js +3 -2
- package/dist/components/utility/random-content/random-content.styles.js +6 -13
- package/dist/components/utility/tour/tour.class.d.ts +4 -2
- package/dist/components/utility/tour/tour.class.js +3 -3
- package/dist/components/utility/tour/tour.styles.js +0 -13
- package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
- package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
- package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
- package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
- package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
- package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
- package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
- package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
- package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
- package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
- package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
- package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
- package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
- package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
- package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
- package/dist/custom-elements-jsx.d.ts +72 -40
- package/dist/events.d.ts +43 -33
- package/dist/internal/agent-status-variants.d.ts +18 -0
- package/dist/internal/agent-status-variants.js +1 -0
- package/dist/internal/announcer.d.ts +8 -3
- package/dist/internal/announcer.js +1 -1
- package/dist/internal/autoloader-manifest.js +1 -1
- package/dist/internal/canvas-color.d.ts +16 -0
- package/dist/internal/canvas-color.js +1 -1
- package/dist/internal/catalog-picker.d.ts +0 -1
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/default-strings.generated.d.ts +1 -0
- package/dist/internal/default-strings.generated.js +1 -1
- package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
- package/dist/internal/dev-mode-attribute-warning.js +1 -1
- package/dist/internal/localization-runtime.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +1 -1
- package/dist/internal/lyra-element.d.ts +13 -0
- package/dist/internal/lyra-element.js +1 -1
- package/dist/internal/media-controller.js +1 -1
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/scroll-overflow.d.ts +35 -13
- package/dist/internal/scroll-overflow.js +1 -1
- package/dist/internal/sizes.styles.js +0 -2
- package/dist/internal/specialist-tokens.styles.js +6 -11
- package/dist/internal/text-highlights.d.ts +4 -1
- package/dist/internal/text-highlights.js +1 -1
- package/dist/internal/tokens/palette.styles.js +0 -15
- package/dist/internal/tokens.styles.js +20 -113
- package/dist/lyra.d.ts +9 -6
- package/dist/styles/reservations.css +82 -0
- package/dist/svelte.d.ts +72 -40
- package/dist/translations/ar.js +1 -1
- package/dist/translations/de.js +1 -1
- package/dist/translations/es.js +1 -1
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/he.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/translations/pt-BR.js +1 -1
- package/dist/translations/ru.js +1 -1
- package/dist/translations/zh-CN.js +1 -1
- package/dist/vue.d.ts +72 -40
- package/llms/components/lr-accordion-item.md +12 -3
- package/llms/components/lr-accordion.md +11 -2
- package/llms/components/lr-agent-eval-dashboard.md +1 -1
- package/llms/components/lr-agent-trace.md +3 -1
- package/llms/components/lr-agent-workspace.md +20 -0
- package/llms/components/lr-artifact-panel.md +10 -4
- package/llms/components/lr-attachment-chip.md +7 -4
- package/llms/components/lr-attachment-trigger.md +7 -4
- package/llms/components/lr-av-player.md +3 -1
- package/llms/components/lr-avatar.md +6 -6
- package/llms/components/lr-bar-chart.md +8 -6
- package/llms/components/lr-box-plot.md +15 -4
- package/llms/components/lr-browser-frame.md +7 -3
- package/llms/components/lr-bubble-chart.md +8 -6
- package/llms/components/lr-calendar.md +9 -2
- package/llms/components/lr-card.md +24 -0
- package/llms/components/lr-chart.md +45 -11
- package/llms/components/lr-chat-viewport.md +7 -2
- package/llms/components/lr-checkbox-group.md +13 -5
- package/llms/components/lr-checkbox.md +5 -2
- package/llms/components/lr-checkpoint.md +6 -2
- package/llms/components/lr-combobox.md +47 -8
- package/llms/components/lr-command-palette.md +4 -1
- package/llms/components/lr-confirm-bar.md +7 -3
- package/llms/components/lr-context-meter.md +12 -11
- package/llms/components/lr-conversation-item.md +7 -4
- package/llms/components/lr-date-input.md +22 -2
- package/llms/components/lr-date-picker.md +23 -3
- package/llms/components/lr-details.md +11 -2
- package/llms/components/lr-dialog.md +16 -10
- package/llms/components/lr-dock-panel.md +7 -10
- package/llms/components/lr-document-preview.md +6 -1
- package/llms/components/lr-document-viewer.md +3 -2
- package/llms/components/lr-doughnut-chart.md +8 -6
- package/llms/components/lr-drawer.md +3 -3
- package/llms/components/lr-entity-card.md +3 -3
- package/llms/components/lr-entity-chip.md +1 -1
- package/llms/components/lr-entity-dossier.md +4 -1
- package/llms/components/lr-file-input.md +2 -2
- package/llms/components/lr-flag.md +30 -8
- package/llms/components/lr-heatmap.md +46 -0
- package/llms/components/lr-histogram.md +7 -4
- package/llms/components/lr-icon.md +1 -1
- package/llms/components/lr-json-schema-viewer.md +2 -1
- package/llms/components/lr-knowledge-graph-explorer.md +8 -3
- package/llms/components/lr-known-date.md +4 -2
- package/llms/components/lr-line-chart.md +8 -6
- package/llms/components/lr-lite-chart.md +16 -6
- package/llms/components/lr-map.md +91 -10
- package/llms/components/lr-markdown-core.md +3 -2
- package/llms/components/lr-media-card.md +28 -12
- package/llms/components/lr-message-parts.md +2 -1
- package/llms/components/lr-model-select.md +9 -10
- package/llms/components/lr-model-settings-panel.md +9 -9
- package/llms/components/lr-neighbor-list.md +1 -1
- package/llms/components/lr-notebook-viewer.md +6 -3
- package/llms/components/lr-option.md +46 -7
- package/llms/components/lr-pdf-viewer.md +62 -2
- package/llms/components/lr-pie-chart.md +8 -6
- package/llms/components/lr-polar-area-chart.md +8 -6
- package/llms/components/lr-popover.md +25 -1
- package/llms/components/lr-progress-ring.md +8 -1
- package/llms/components/lr-prompt-studio.md +1 -1
- package/llms/components/lr-provenance-panel.md +4 -2
- package/llms/components/lr-qr-code.md +1 -1
- package/llms/components/lr-radar-chart.md +8 -6
- package/llms/components/lr-rag-eval-dashboard.md +2 -2
- package/llms/components/lr-random-content.md +13 -0
- package/llms/components/lr-reorder-item.md +6 -1
- package/llms/components/lr-reorder-list.md +6 -1
- package/llms/components/lr-responsive-panel.md +11 -7
- package/llms/components/lr-scatter-chart.md +8 -6
- package/llms/components/lr-sequence-strip.md +16 -2
- package/llms/components/lr-slider.md +12 -5
- package/llms/components/lr-sparkline.md +1 -1
- package/llms/components/lr-suggestion-chips.md +7 -2
- package/llms/components/lr-swatch-picker.md +5 -5
- package/llms/components/lr-switch.md +5 -2
- package/llms/components/lr-table.md +30 -4
- package/llms/components/lr-terminal.md +3 -1
- package/llms/components/lr-thread-list.md +8 -8
- package/llms/components/lr-time-input.md +6 -1
- package/llms/components/lr-timeline-item.md +24 -0
- package/llms/components/lr-timeline.md +25 -1
- package/llms/components/lr-token-input.md +7 -2
- package/llms/components/lr-tool-approval-dialog.md +7 -8
- package/llms/components/lr-tool-call-chip.md +5 -1
- package/llms/components/lr-tool-param-form.md +14 -12
- package/llms/components/lr-tool-result-dialog.md +11 -9
- package/llms/components/lr-tool-result-view.md +7 -6
- package/llms/components/lr-tool-select-dialog.md +18 -16
- package/llms/components/lr-trace-tree.md +3 -1
- package/llms/components/lr-usage-badge.md +4 -1
- package/llms/components/lr-video-playlist.md +1 -1
- package/llms/components/lr-virtual-list.md +22 -14
- package/llms/components/lr-voice-picker.md +8 -5
- package/llms/components/lr-widget-renderer.md +3 -3
- package/llms/components/lr-widget.md +1 -1
- package/llms/components/lr-word-cloud.md +6 -2
- package/llms/peers.md +12 -2
- package/llms/shared.md +70 -2
- package/llms/tokens.md +15 -1
- package/llms-full.txt +1335 -306
- package/package.json +17 -5
- package/vscode-css-data.json +93 -2
- package/vscode-html-data.json +513 -59
- package/web-types.json +457 -72
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
|
-
/* Backdrop scrim color -- component-specific so a host can retheme it
|
|
4
|
-
without a raw literal leaking into the public API (no shared
|
|
5
|
-
--lr-*-overlay token exists in the design system to resolve through,
|
|
6
|
-
same rationale as lr-dialog's --lr-dialog-overlay-color and
|
|
7
|
-
lr-tool-select-dialog's --lr-tool-select-dialog-overlay-color). */
|
|
8
3
|
--_lr-tool-approval-dialog-overlay-color: var(--lr-color-overlay);
|
|
9
|
-
/* Contained here (rather than a bare font-family literal on the
|
|
10
|
-
textarea) so a host page can retheme it -- same rationale as
|
|
11
|
-
lr-json-viewer's --lr-json-viewer-font; raw args are code, not
|
|
12
|
-
prose, so the editor gets the same monospace treatment as that
|
|
13
|
-
viewer's own tree rendering. */
|
|
14
4
|
--_lr-tool-approval-dialog-mono-font: var(--lr-font-mono);
|
|
15
5
|
display: none;
|
|
16
6
|
position: fixed;
|
|
@@ -43,13 +33,9 @@ import{css}from"lit";const styles=css`
|
|
|
43
33
|
flex-direction: column;
|
|
44
34
|
inline-size: min(var(--lr-size-32rem), 100%);
|
|
45
35
|
max-block-size: min(var(--lr-size-36rem), 100%);
|
|
46
|
-
/* Modal-panel surface, not the page surface -- in dark mode the two resolve to the same
|
|
47
|
-
near-black and the dialog reads as a scrim with floating text instead of a panel. */
|
|
48
36
|
background: var(--lr-color-surface-overlay);
|
|
49
37
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
50
38
|
border-radius: var(--lr-radius);
|
|
51
|
-
/* Modal layer, top step: a centered, scrimmed dialog floating free on all four edges --
|
|
52
|
-
the same role as lr-dialog, so the same elevation. */
|
|
53
39
|
box-shadow: var(--lr-shadow-xl);
|
|
54
40
|
overflow: hidden;
|
|
55
41
|
}
|
|
@@ -81,11 +67,6 @@ import{css}from"lit";const styles=css`
|
|
|
81
67
|
overflow: auto;
|
|
82
68
|
}
|
|
83
69
|
[part="args-view"] {
|
|
84
|
-
/* lr-json-viewer grows with its content by default (its own
|
|
85
|
-
max-height is 'none'); this component's [part='body'] is what caps
|
|
86
|
-
and scrolls it instead, so it stays consistent with the plain
|
|
87
|
-
[part='args-editor'] textarea below, which has no scroll cap of its
|
|
88
|
-
own either. */
|
|
89
70
|
flex: 1 1 auto;
|
|
90
71
|
min-block-size: 0;
|
|
91
72
|
}
|
|
@@ -110,16 +91,6 @@ import{css}from"lit";const styles=css`
|
|
|
110
91
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
111
92
|
outline-offset: var(--lr-focus-ring-offset);
|
|
112
93
|
}
|
|
113
|
-
/* Gives mouse users the same 'this is interactive' cue the :focus-visible ring above already
|
|
114
|
-
gives keyboard users -- mirrors lr-textarea's [part='textarea']:hover pattern, gated via
|
|
115
|
-
:host(:not([pending])) rather than :not(:disabled) since this raw <textarea> is not a
|
|
116
|
-
form-associated control and carries no disabled state of its own; a decision in flight
|
|
117
|
-
(pending reflected) freezes it to readonly instead, so hover shouldn't relight it. */
|
|
118
|
-
/* no-pressed-state: pressing inside a text surface places a caret, it does not actuate anything.
|
|
119
|
-
The mousedown that would match :active is the same gesture that focuses the field, so a pressed
|
|
120
|
-
treatment would render for one frame between the hover border and the focus ring and read as a
|
|
121
|
-
flicker; focus is this control's real "you are acting on me" state (mirrors lr-textarea's
|
|
122
|
-
identical reasoning for its own [part='textarea']). */
|
|
123
94
|
:host(:not([pending])) [part="args-editor"]:not([aria-invalid="true"]):hover {
|
|
124
95
|
border-color: var(
|
|
125
96
|
--lr-tool-approval-dialog-hover-border-color,
|
|
@@ -151,17 +122,9 @@ import{css}from"lit";const styles=css`
|
|
|
151
122
|
border-block-start: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
152
123
|
}
|
|
153
124
|
[part="footer"] ::slotted(*) {
|
|
154
|
-
/* Any consumer-supplied footer content sits ahead of the built-in
|
|
155
|
-
buttons and soaks up the row's remaining space, so it reads as
|
|
156
|
-
start-aligned while Deny/Edit/Approve stay pinned to the end (the
|
|
157
|
-
row itself is justify-content: flex-end for the empty-slot case). */
|
|
158
125
|
margin-inline-end: auto;
|
|
159
126
|
}
|
|
160
127
|
|
|
161
|
-
/* deny-button/approve-button are <lr-button> hosts (see tool-approval-dialog.class.ts's
|
|
162
|
-
render()); their own padding/border/background/color/hover/focus-visible/disabled chrome now
|
|
163
|
-
lives entirely inside lr-button's own styles.ts. edit-button alone stays a raw <button> and
|
|
164
|
-
keeps its own rules below. */
|
|
165
128
|
[part="edit-button"] {
|
|
166
129
|
font: inherit;
|
|
167
130
|
font-size: var(--lr-font-size-md-sm);
|
|
@@ -175,10 +138,6 @@ import{css}from"lit";const styles=css`
|
|
|
175
138
|
:where([part="edit-button"]):not(:disabled):hover {
|
|
176
139
|
background: var(--lr-color-brand-quiet);
|
|
177
140
|
}
|
|
178
|
-
/* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
|
|
179
|
-
--lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
|
|
180
|
-
than hover in both light and dark themes rather than repeating it. The lr-button-hosted
|
|
181
|
-
Deny/Approve siblings get the equivalent step from lr-button's own styles. */
|
|
182
141
|
:where([part="edit-button"]):not(:disabled):active {
|
|
183
142
|
background: color-mix(
|
|
184
143
|
in oklab,
|
|
@@ -2,10 +2,6 @@ import{css}from"lit";const styles=css`
|
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
max-inline-size: 100%;
|
|
5
|
-
/* Per-status accent -- one custom property swapped by the :host([status])
|
|
6
|
-
rules below rather than repeating background/color per part per status.
|
|
7
|
-
Defaults to the 'pending' tone so an unset/unknown status still reads
|
|
8
|
-
as neutral instead of unstyled. */
|
|
9
5
|
--_lr-tool-call-chip-accent: var(--lr-color-text-quiet);
|
|
10
6
|
--_lr-tool-call-chip-bg: var(--lr-color-surface);
|
|
11
7
|
--_lr-tool-call-chip-border: var(--lr-color-border);
|
|
@@ -27,10 +23,6 @@ import{css}from"lit";const styles=css`
|
|
|
27
23
|
--_lr-tool-call-chip-bg: var(--lr-color-danger-quiet);
|
|
28
24
|
--_lr-tool-call-chip-border: transparent;
|
|
29
25
|
}
|
|
30
|
-
/* 'denied' reads as a policy rejection, not a runtime failure -- the
|
|
31
|
-
warning (not danger) tint keeps it visually distinct from 'error',
|
|
32
|
-
matching lr-tool-result-dialog's identical status vocabulary/tone so
|
|
33
|
-
the two components agree on what "denied" looks like. */
|
|
34
26
|
:host([status="denied"]) {
|
|
35
27
|
--_lr-tool-call-chip-accent: var(--lr-color-warning);
|
|
36
28
|
--_lr-tool-call-chip-bg: var(--lr-color-warning-quiet);
|
|
@@ -62,10 +54,6 @@ import{css}from"lit";const styles=css`
|
|
|
62
54
|
[part="base"]:hover {
|
|
63
55
|
border-color: var(--lr-color-brand);
|
|
64
56
|
}
|
|
65
|
-
/* The hover moves the border only, which leaves the pressed step nothing to deepen -- so pressed
|
|
66
|
-
tints the chip's own fill toward --lr-color-mix-partner (which follows the text colour). The
|
|
67
|
-
fill is already a custom property, so this one declaration covers all five status tints without
|
|
68
|
-
restating any of them, and darkens in a light theme while lightening in a dark one. */
|
|
69
57
|
[part="base"]:active {
|
|
70
58
|
background: color-mix(
|
|
71
59
|
in oklab,
|
|
@@ -88,16 +76,10 @@ import{css}from"lit";const styles=css`
|
|
|
88
76
|
[part="icon"] svg {
|
|
89
77
|
display: block;
|
|
90
78
|
}
|
|
91
|
-
/* A three-quarter arc (not a full ring) is what actually reads as
|
|
92
|
-
spinning once rotated -- a full circle looks identical at every
|
|
93
|
-
rotation frame. */
|
|
94
79
|
:host([status="running"]) [part="icon"] svg {
|
|
95
80
|
animation: lr-tool-call-chip-spin
|
|
96
81
|
var(--lr-tool-call-chip-spin, var(--_lr-tool-call-chip-spin)) infinite;
|
|
97
82
|
}
|
|
98
|
-
/* Subtler than the spin -- a slow opacity breathe, so a list of several
|
|
99
|
-
still-queued chips doesn't compete visually with any 'running' ones
|
|
100
|
-
next to it. */
|
|
101
83
|
:host([status="pending"]) [part="icon"] svg {
|
|
102
84
|
animation: lr-tool-call-chip-pulse var(--lr-transition-ambient) infinite;
|
|
103
85
|
}
|
|
@@ -116,11 +98,6 @@ import{css}from"lit";const styles=css`
|
|
|
116
98
|
overflow: hidden;
|
|
117
99
|
text-overflow: ellipsis;
|
|
118
100
|
white-space: nowrap;
|
|
119
|
-
/* Full-strength text, not --lr-color-text-quiet -- this sits on top of
|
|
120
|
-
the per-status *-quiet tint backgrounds above (e.g. success-quiet),
|
|
121
|
-
and text-quiet's gray fails WCAG AA contrast against several of those
|
|
122
|
-
tints even though it comfortably passes against the plain surface
|
|
123
|
-
background used by the resting/denied states. */
|
|
124
101
|
color: var(--lr-color-text);
|
|
125
102
|
font-size: var(--lr-size-0-6875rem);
|
|
126
103
|
font-weight: var(--lr-font-weight-semibold);
|
|
@@ -145,7 +122,6 @@ import{css}from"lit";const styles=css`
|
|
|
145
122
|
overflow: hidden;
|
|
146
123
|
text-overflow: ellipsis;
|
|
147
124
|
white-space: nowrap;
|
|
148
|
-
/* See [part='category']'s comment above -- same contrast rationale. */
|
|
149
125
|
color: var(--lr-color-text);
|
|
150
126
|
}
|
|
151
127
|
[part="summary"]::before {
|
|
@@ -176,17 +152,11 @@ import{css}from"lit";const styles=css`
|
|
|
176
152
|
text-align: end;
|
|
177
153
|
}
|
|
178
154
|
[part="duration"] {
|
|
179
|
-
/* See [part='category']'s comment above -- same contrast rationale. */
|
|
180
155
|
color: var(--lr-color-text);
|
|
181
156
|
font-variant-numeric: tabular-nums;
|
|
182
157
|
white-space: nowrap;
|
|
183
158
|
}
|
|
184
159
|
|
|
185
|
-
/* Positioned by internal/positioner.js's place() -- see combobox's
|
|
186
|
-
[part='listbox'] for the identical fixed/z-index/max-size shape. Unlike
|
|
187
|
-
that popup this one has no open/close transition: a tooltip that
|
|
188
|
-
tracks the pointer/focus target benefits from appearing instantly, not
|
|
189
|
-
chasing a fade. */
|
|
190
160
|
[part="tooltip"] {
|
|
191
161
|
position: fixed;
|
|
192
162
|
z-index: var(--lr-layer-dropdown);
|
|
@@ -4,7 +4,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
4
4
|
.hint=${prop.description??""}
|
|
5
5
|
.errorText=${errorMessage}
|
|
6
6
|
.required=${!1}
|
|
7
|
-
aria-required=${required?"true":
|
|
7
|
+
aria-required=${required?"true":"false"}
|
|
8
8
|
.value=${typeof effective=="string"?effective:""}
|
|
9
9
|
?disabled=${this.effectiveDisabled}
|
|
10
10
|
@input=${this.stopNestedControlEvent}
|
|
@@ -22,8 +22,8 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
22
22
|
type="text"
|
|
23
23
|
id=${fieldId}
|
|
24
24
|
aria-describedby=${describedBy||nothing}
|
|
25
|
-
aria-required=${required?"true":
|
|
26
|
-
aria-invalid=${errorMessage?"true":
|
|
25
|
+
aria-required=${required?"true":"false"}
|
|
26
|
+
aria-invalid=${errorMessage?"true":"false"}
|
|
27
27
|
autocomplete=${prop.autocomplete||nothing}
|
|
28
28
|
.spellcheck=${prop.spellcheck??!0}
|
|
29
29
|
autocapitalize=${prop.autocapitalize||nothing}
|
|
@@ -42,8 +42,8 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
42
42
|
id=${fieldId}
|
|
43
43
|
step=${prop.type==="integer"?"1":"any"}
|
|
44
44
|
aria-describedby=${describedBy||nothing}
|
|
45
|
-
aria-required=${required?"true":
|
|
46
|
-
aria-invalid=${errorMessage?"true":
|
|
45
|
+
aria-required=${required?"true":"false"}
|
|
46
|
+
aria-invalid=${errorMessage?"true":"false"}
|
|
47
47
|
.value=${numValue}
|
|
48
48
|
?disabled=${this.effectiveDisabled}
|
|
49
49
|
@input=${e=>this.onNumberInput(key,e)}
|
|
@@ -55,7 +55,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
55
55
|
.hint=${prop.description??""}
|
|
56
56
|
.errorText=${errorMessage}
|
|
57
57
|
.required=${!1}
|
|
58
|
-
aria-required=${required?"true":
|
|
58
|
+
aria-required=${required?"true":"false"}
|
|
59
59
|
.value=${selected}
|
|
60
60
|
?disabled=${this.effectiveDisabled}
|
|
61
61
|
@input=${this.stopNestedControlEvent}
|
|
@@ -30,11 +30,6 @@ import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/for
|
|
|
30
30
|
font-size: var(--lr-font-size-md-sm);
|
|
31
31
|
font-weight: var(--lr-font-weight-semibold);
|
|
32
32
|
}
|
|
33
|
-
/* The shared required marker (internal/form-control.styles.ts). This is the
|
|
34
|
-
one component where "required" is per FIELD rather than per host, which is
|
|
35
|
-
why that sheet carries a second selector keyed on
|
|
36
|
-
[part="field"][data-required] alongside the usual :host([required]) one.
|
|
37
|
-
Boolean and enum labels are owned by their nested <lr-select> instead. */
|
|
38
33
|
${formControlRequiredMarker}
|
|
39
34
|
|
|
40
35
|
[part='field'] > lr-select,
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
|
-
/* Backdrop scrim color -- component-specific so a host can retheme it
|
|
4
|
-
without a raw literal leaking into the public API (no shared
|
|
5
|
-
--lr-*-overlay token exists in the design system to resolve through,
|
|
6
|
-
same rationale as lr-dialog's --lr-dialog-overlay-color and
|
|
7
|
-
lr-widget's --lr-widget-overlay-color). */
|
|
8
3
|
--_lr-tool-result-dialog-overlay-color: var(--lr-color-overlay);
|
|
9
|
-
/* Inset applied to the panel while [maximized] -- overridable the same
|
|
10
|
-
way lr-widget's --lr-widget-fullscreen-inset is, e.g. to leave a
|
|
11
|
-
persistent app rail visible. */
|
|
12
4
|
--_lr-tool-result-dialog-maximized-inset: max(
|
|
13
5
|
var(--lr-space-l),
|
|
14
6
|
var(--lr-safe-area-top)
|
|
@@ -60,13 +52,9 @@ import{css}from"lit";const styles=css`
|
|
|
60
52
|
min-inline-size: 0;
|
|
61
53
|
max-block-size: 100%;
|
|
62
54
|
box-sizing: border-box;
|
|
63
|
-
/* Modal-panel surface, not the page surface -- in dark mode the two resolve to the same
|
|
64
|
-
near-black and the dialog reads as a scrim with floating text instead of a panel. */
|
|
65
55
|
background: var(--lr-color-surface-overlay);
|
|
66
56
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
67
57
|
border-radius: var(--lr-radius);
|
|
68
|
-
/* Modal layer, top step: a centered, scrimmed dialog floating free on all four edges --
|
|
69
|
-
the same role as lr-dialog, so the same elevation. */
|
|
70
58
|
box-shadow: var(--lr-shadow-xl);
|
|
71
59
|
overflow: hidden;
|
|
72
60
|
transition: inline-size var(--lr-transition-base),
|
|
@@ -142,8 +130,6 @@ import{css}from"lit";const styles=css`
|
|
|
142
130
|
min-inline-size: 0;
|
|
143
131
|
overflow-wrap: anywhere;
|
|
144
132
|
}
|
|
145
|
-
/* Pending is the resting state before a tool call has done anything worth
|
|
146
|
-
calling out; its foreground and background remain independently themeable. */
|
|
147
133
|
:host([status="running"]) [part="status"] {
|
|
148
134
|
color: var(
|
|
149
135
|
--lr-tool-result-dialog-running-color,
|
|
@@ -174,9 +160,6 @@ import{css}from"lit";const styles=css`
|
|
|
174
160
|
var(--_lr-tool-result-dialog-error-bg)
|
|
175
161
|
);
|
|
176
162
|
}
|
|
177
|
-
/* 'denied' is a policy rejection, not a runtime failure -- the warning
|
|
178
|
-
(not danger) tinted-background reads that distinction without relying on
|
|
179
|
-
the status text alone. */
|
|
180
163
|
:host([status="denied"]) [part="status"] {
|
|
181
164
|
color: var(
|
|
182
165
|
--lr-tool-result-dialog-denied-color,
|
|
@@ -224,9 +207,6 @@ import{css}from"lit";const styles=css`
|
|
|
224
207
|
background: var(--lr-color-brand-quiet);
|
|
225
208
|
color: var(--lr-color-brand);
|
|
226
209
|
}
|
|
227
|
-
/* Pressed is the hovered tint pushed a further --lr-color-mix-active toward
|
|
228
|
-
--lr-color-mix-partner (which follows the text colour), so it reads as a distinctly deeper step
|
|
229
|
-
than hover in both light and dark themes rather than repeating it. */
|
|
230
210
|
[part="maximize-button"]:active,
|
|
231
211
|
[part="close-button"]:active {
|
|
232
212
|
background: color-mix(
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
-
/* Chains through the shared monospace token (like lr-json-viewer's
|
|
5
|
-
--lr-json-viewer-font and lr-tool-approval-dialog's mono font) so a
|
|
6
|
-
consumer retheming --lr-theme-font-family-mono also repaints the plain-text
|
|
7
|
-
fallback view, instead of it being stuck on the hardcoded system stack. */
|
|
8
4
|
--_lr-tool-result-view-font: var(--lr-font-mono);
|
|
9
5
|
}
|
|
10
6
|
[part="base"] {
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
|
-
/* Backdrop scrim color -- component-specific so a host can retheme it
|
|
4
|
-
without a raw literal leaking into the public API (no shared
|
|
5
|
-
--lr-*-overlay token exists in the design system to resolve through,
|
|
6
|
-
same rationale as lr-dialog's --lr-dialog-overlay-color and
|
|
7
|
-
lr-tool-result-dialog's --lr-tool-result-dialog-overlay-color). */
|
|
8
3
|
--_lr-tool-select-dialog-overlay-color: var(--lr-color-overlay);
|
|
9
4
|
display: none;
|
|
10
5
|
position: fixed;
|
|
@@ -39,13 +34,9 @@ import{css}from"lit";const styles=css`
|
|
|
39
34
|
min-inline-size: 0;
|
|
40
35
|
max-inline-size: 100%;
|
|
41
36
|
block-size: min(var(--lr-size-38rem), 100%);
|
|
42
|
-
/* Modal-panel surface, not the page surface -- in dark mode the two resolve to the same
|
|
43
|
-
near-black and the dialog reads as a scrim with floating text instead of a panel. */
|
|
44
37
|
background: var(--lr-color-surface-overlay);
|
|
45
38
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
46
39
|
border-radius: var(--lr-radius);
|
|
47
|
-
/* Modal layer, top step: a centered, scrimmed dialog floating free on all four edges --
|
|
48
|
-
the same role as lr-dialog, so the same elevation. */
|
|
49
40
|
box-shadow: var(--lr-shadow-xl);
|
|
50
41
|
overflow: hidden;
|
|
51
42
|
}
|
|
@@ -89,9 +80,6 @@ import{css}from"lit";const styles=css`
|
|
|
89
80
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
90
81
|
outline-offset: var(--lr-focus-ring-offset);
|
|
91
82
|
}
|
|
92
|
-
/* no-pressed-state: a search field is a caret target, not a push target -- pointer-down places an
|
|
93
|
-
insertion point and hands the affordance to :focus-visible, so a pressed tint would flash for
|
|
94
|
-
one frame and then be contradicted by the focus ring. */
|
|
95
83
|
:where([part="search-input"]):hover {
|
|
96
84
|
border-color: var(--lr-color-brand);
|
|
97
85
|
}
|
|
@@ -113,12 +101,6 @@ import{css}from"lit";const styles=css`
|
|
|
113
101
|
}
|
|
114
102
|
[part="defaults-hint"] {
|
|
115
103
|
margin: 0;
|
|
116
|
-
/* Lines the hint up under the switch's label text, not its track --
|
|
117
|
-
lr-switch's own [part="base"] uses a fixed 2.25rem track
|
|
118
|
-
inline-size plus a --lr-space-s gap before its label (both defined
|
|
119
|
-
in switch.styles.ts, not exposed as tokens), so this indent is
|
|
120
|
-
coupled to that fixed geometry rather than derived from an unrelated
|
|
121
|
-
component's token. */
|
|
122
104
|
padding-inline-start: calc(var(--lr-size-2-25rem) + var(--lr-space-s));
|
|
123
105
|
font-size: var(--lr-font-size-xs);
|
|
124
106
|
color: var(--lr-color-text-quiet);
|
|
@@ -136,7 +118,6 @@ import{css}from"lit";const styles=css`
|
|
|
136
118
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
137
119
|
outline-offset: calc(-1 * var(--lr-focus-ring-width));
|
|
138
120
|
}
|
|
139
|
-
/* no-pressed-state: the focusable body is a scroll viewport, not an activation target. */
|
|
140
121
|
:where([part="body"]):hover {
|
|
141
122
|
outline: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
142
123
|
outline-offset: calc(-1 * var(--lr-border-width-thin));
|
|
@@ -284,8 +265,6 @@ import{css}from"lit";const styles=css`
|
|
|
284
265
|
color: var(--lr-color-text-quiet);
|
|
285
266
|
}
|
|
286
267
|
[part="tool-disabled-reason"] {
|
|
287
|
-
/* Slotted into lr-checkbox's owned hint surface alongside tool-description, so the stable
|
|
288
|
-
checkbox-hint bridge describes the control without lengthening its accessible name. */
|
|
289
268
|
display: block;
|
|
290
269
|
min-inline-size: 0;
|
|
291
270
|
max-inline-size: 100%;
|
|
@@ -71,39 +71,23 @@ import{css}from"lit";const styles=css`
|
|
|
71
71
|
[part='row'][data-active] {
|
|
72
72
|
background: var(--lr-trace-tree-row-active-bg, var(--lr-color-brand-quiet));
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
[part='row']:where([data-active]):hover {
|
|
75
|
+
background: color-mix(
|
|
76
|
+
in oklab,
|
|
77
|
+
var(--lr-trace-tree-row-active-bg, var(--lr-color-brand-quiet)),
|
|
78
|
+
var(--lr-color-mix-partner) var(--lr-color-mix-hover)
|
|
79
|
+
);
|
|
80
|
+
}
|
|
79
81
|
[part='row']:active {
|
|
80
82
|
background: color-mix(in oklab, var(--lr-color-surface-raised), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
/* text-quiet's contrast ratio against brand-quiet lands at ~4.25:1 -- just under the WCAG AA
|
|
84
|
-
4.5:1 floor for normal-size text -- even though it comfortably passes against the plain
|
|
85
|
-
(non-active) row background used the rest of the time. Darkening the active tint instead would
|
|
86
|
-
make it worse, since every failing foreground here is dark text; the fix is to raise the
|
|
87
|
-
foreground to full strength once the row is active, as lr-conversation-item does for the same
|
|
88
|
-
bug. --lr-color-text flips with the color scheme, so this raises contrast in both.
|
|
89
|
-
[data-status='pending'] is included because its color *is* --lr-color-text-quiet: same failure,
|
|
90
|
-
same fix. The other statuses keep their semantic hue -- see the mix below. */
|
|
91
85
|
[part='row'][data-active]
|
|
92
86
|
:is([part='detail'], [part='duration'], [part='tokens-in'], [part='tokens-out'], [part='cost']),
|
|
93
87
|
[part='row'][data-active] [part='status-text'][data-status='pending'] {
|
|
94
88
|
color: var(--lr-trace-tree-row-active-color, var(--lr-color-text));
|
|
95
89
|
}
|
|
96
90
|
|
|
97
|
-
/* The semantic status labels keep their hue on the active row -- an error row that stops being
|
|
98
|
-
red once selected is an information-design regression, and the hue is the fastest scan signal
|
|
99
|
-
in a trace list -- but get pulled 25% toward the text color so they clear the same AA floor
|
|
100
|
-
(success 4.46 -> 6.18, denied/warning 4.28 -> 5.96 against the default tint). Applied to every
|
|
101
|
-
tone rather than only the two that fail at the shipped defaults: a per-status carve-out is
|
|
102
|
-
theme-fragile, since a consumer retheming one --lr-color-* moves that ratio and would silently
|
|
103
|
-
re-break. The mix is theme-symmetric by construction -- --lr-color-text flips with the scheme,
|
|
104
|
-
so the same declaration darkens in light mode and lightens in dark mode.
|
|
105
|
-
Scoped to [part='status-text'] rather than redefining the tokens inside the active row, which
|
|
106
|
-
would silently re-point a consumer's own token override and drag [part='bar'] along with it. */
|
|
107
91
|
[part='row'][data-active] [part='status-text'][data-status='success'] {
|
|
108
92
|
color: color-mix(
|
|
109
93
|
in srgb,
|
|
@@ -134,9 +118,6 @@ import{css}from"lit";const styles=css`
|
|
|
134
118
|
}
|
|
135
119
|
|
|
136
120
|
[part='toggle'] {
|
|
137
|
-
/* Keep the chevron glyph compact while giving the interactive box the shared minimum
|
|
138
|
-
tappable size -- same "small glyph, padded hit box" pattern as lr-code-block's/
|
|
139
|
-
lr-json-viewer's own [part='toggle']. */
|
|
140
121
|
flex: 0 0 auto;
|
|
141
122
|
inline-size: var(--lr-size-1-25rem);
|
|
142
123
|
block-size: var(--lr-size-1-25rem);
|
|
@@ -254,15 +235,10 @@ import{css}from"lit";const styles=css`
|
|
|
254
235
|
background-size: 200% 100%;
|
|
255
236
|
animation: lr-trace-tree-stripe var(--lr-transition-ambient) infinite;
|
|
256
237
|
}
|
|
257
|
-
/* background-position animates in physical coordinates, so the sweep needs
|
|
258
|
-
an explicit mirrored keyframe track to travel inline-start -> inline-end
|
|
259
|
-
in RTL as well. */
|
|
260
238
|
:host(:dir(rtl)) [part='bar'][data-status='running'] {
|
|
261
239
|
animation-name: lr-trace-tree-stripe-rtl;
|
|
262
240
|
}
|
|
263
241
|
@media (prefers-reduced-motion: reduce) {
|
|
264
|
-
/* the RTL selector outranks the bare one, so it must be silenced here
|
|
265
|
-
explicitly or its animation-name would win over 'animation: none' */
|
|
266
242
|
[part='bar'][data-status='running'],
|
|
267
243
|
:host(:dir(rtl)) [part='bar'][data-status='running'] {
|
|
268
244
|
animation: none;
|
|
@@ -49,6 +49,12 @@ export interface LyraBoxPlotEventMap {
|
|
|
49
49
|
* @csspart legend-swatch - The resolved series-color swatch in a legend item.
|
|
50
50
|
* @csspart description - The accessible box-plot summary.
|
|
51
51
|
* @csspart data-table - The optional generated or slotted data table.
|
|
52
|
+
* @csspart data-table-toggle - The disclosure button rendered by `dataTableToggle`.
|
|
53
|
+
* @cssprop [--lr-box-plot-data-table-toggle-hover-bg=var(--lr-color-brand-quiet)] - Hover
|
|
54
|
+
* background of the `dataTableToggle` disclosure button.
|
|
55
|
+
* @cssprop --lr-box-plot-data-table-toggle-active-bg - Pressed background of the `dataTableToggle`
|
|
56
|
+
* disclosure button; defaults to a mix of the hover background with the shared active mix
|
|
57
|
+
* partner.
|
|
52
58
|
* @csspart error - Static visible error shown instead of the canvas when the optional box-plot
|
|
53
59
|
* peer fails to load; its transition is announced through a shared light-DOM alert.
|
|
54
60
|
* @csspart data-truncation - Explanation shown when the generated accessible alternative samples
|
|
@@ -104,6 +110,27 @@ export declare class LyraBoxPlot extends LyraElement<LyraBoxPlotEventMap> {
|
|
|
104
110
|
description: string | null;
|
|
105
111
|
/** Makes the generated data table visible; it remains screen-reader available when false. */
|
|
106
112
|
showDataTable: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Render a disclosure button above the accessible data table so a sighted reader can reveal the
|
|
115
|
+
* numbers behind the plot on demand. `showDataTable` alone is all-or-nothing -- the table is
|
|
116
|
+
* either permanently screen-reader-only or permanently visible -- which left a consumer wrapping
|
|
117
|
+
* a duplicated table in their own `<details>`.
|
|
118
|
+
*
|
|
119
|
+
* With this set, `showDataTable` becomes the disclosure's *initial* state rather than its whole
|
|
120
|
+
* behavior. The table stays in the DOM in both states, so assistive technology never loses it.
|
|
121
|
+
* @default false
|
|
122
|
+
*/
|
|
123
|
+
dataTableToggle: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Live disclosure state. Null until the reader actually toggles, so an untouched control keeps
|
|
126
|
+
* following `showDataTable` (including a later change to it) instead of freezing a seeded copy.
|
|
127
|
+
*/
|
|
128
|
+
private dataTableExpandedOverride;
|
|
129
|
+
private readonly dataTableId;
|
|
130
|
+
/** Whether the data table is currently visible. Identical to `showDataTable` whenever
|
|
131
|
+
* `dataTableToggle` is off, which is what keeps the unset path byte-identical to before. */
|
|
132
|
+
private get dataTableVisible();
|
|
133
|
+
private toggleDataTable;
|
|
107
134
|
/** Formats numeric axes, tooltips, generated table cells, summaries, and CSV export. */
|
|
108
135
|
valueFormatter?: LyraChartValueFormatter;
|
|
109
136
|
/** Unified context-object formatter shared with the other chart surfaces. */
|
|
@@ -1,6 +1,6 @@
|
|
|
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{nextId,srOnly}from"../../../internal/a11y.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{loadChartJs}from"./chart-core-loader.js";import{styles}from"./box-plot.styles.js";import"../../overlays/skeleton/skeleton.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{trueDefaultBooleanFromAttributeConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{resolveCanvasColor,seriesPalette}from"./chart-colors.js";import{createForcedColorPattern,forcedColorEncoding,forcedColorsActive}from"./chart-forced-colors.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{ThemeWatcher}from"../../../internal/theme-watcher.js";import{resolveOptionalPeerCapability,unwrapOptionalPeerDefault}from"../../../internal/optional-peer-capabilities.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{legendVisibilityDetail,normalizeHiddenDatasets}from"./chart-legend-visibility.js";import{sampleChartTableIndexes}from"./chart-table-sampling.js";import{escapeCsvField}from"../../utility/export-button/csv.js";import{chartChromeLegendPlacement,normalizeChartChromeLegendPosition}from"./chart-chrome.js";import{LYRA_DEFAULT_boxPlot,LYRA_DEFAULT_boxPlotData,LYRA_DEFAULT_boxPlotMax,LYRA_DEFAULT_boxPlotMedian,LYRA_DEFAULT_boxPlotMin,LYRA_DEFAULT_boxPlotMissingLibrary,LYRA_DEFAULT_boxPlotQ1,LYRA_DEFAULT_boxPlotQ3,LYRA_DEFAULT_boxPlotSeriesSummary,LYRA_DEFAULT_boxPlotSummaryEmpty,LYRA_DEFAULT_boxPlotSummaryWithData,LYRA_DEFAULT_chartCategory,LYRA_DEFAULT_chartDataSampled,LYRA_DEFAULT_chartPointLabel,LYRA_DEFAULT_chartSeriesLabel,LYRA_DEFAULT_chartSeriesNoData,LYRA_DEFAULT_chartSummarySeparator,LYRA_DEFAULT_chartTrendDecreasing,LYRA_DEFAULT_chartTrendFlat,LYRA_DEFAULT_chartTrendIncreasing,LYRA_DEFAULT_chartValueLabel,LYRA_DEFAULT_liteChartMarkSummary,LYRA_DEFAULT_loading}from"../../../internal/default-strings.generated.js";const FALLBACK_GRID_COLOR="#8a8a90",FALLBACK_TICK_COLOR="#6b7280",FALLBACK_LEGEND_COLOR="#1a1a1a",FALLBACK_TOOLTIP_BG="#fff",FALLBACK_TOOLTIP_TEXT="#1a1a1a";function summaryOf(point){return{min:point.min,q1:point.q1,median:point.median,q3:point.q3,max:point.max}}let boxPlotPlugin;function isConstructor(value){if(typeof value!="function")return!1;try{return Reflect.construct(Object,[],value),!0}catch{return!1}}function missingBoxPlotCapability(candidate){if(typeof candidate!="object"&&typeof candidate!="function"||candidate===null)return"module namespace";const module=candidate;if(!isConstructor(module.BoxPlotController))return"BoxPlotController";if(!isConstructor(module.BoxAndWiskers))return"BoxAndWiskers"}function isBoxPlotModule(candidate){return missingBoxPlotCapability(candidate)===void 0}function resolveBoxPlotModule(value){const module=resolveOptionalPeerCapability(value,isBoxPlotModule);if(module)return module;const candidate=unwrapOptionalPeerDefault(value),missing=missingBoxPlotCapability(candidate)??"module namespace";throw new Error(`Invalid optional peer \`@sgratzl/chartjs-chart-boxplot\`: missing or invalid \`${missing}\` constructor.`)}async function loadBoxPlotAndRegister(loadChart=loadChartJs,importBoxPlot=()=>import("@sgratzl/chartjs-chart-boxplot")){try{const[chartMod,imported]=await Promise.all([loadChart(),importBoxPlot()]);if(!chartMod)return null;const boxMod=resolveBoxPlotModule(imported);return chartMod.Chart.register(boxMod.BoxPlotController,boxMod.BoxAndWiskers),boxMod}catch(error){return console.warn("<lr-box-plot> needs the optional peer dependency `@sgratzl/chartjs-chart-boxplot` \u2014 install it with `pnpm add @sgratzl/chartjs-chart-boxplot`.",error),null}}function loadBoxPlotPlugin(){return boxPlotPlugin||(boxPlotPlugin=loadBoxPlotAndRegister()),boxPlotPlugin}class LyraBoxPlot extends LyraElement{static{this.defaultStrings={...super.defaultStrings,boxPlot:LYRA_DEFAULT_boxPlot,boxPlotData:LYRA_DEFAULT_boxPlotData,boxPlotMax:LYRA_DEFAULT_boxPlotMax,boxPlotMedian:LYRA_DEFAULT_boxPlotMedian,boxPlotMin:LYRA_DEFAULT_boxPlotMin,boxPlotMissingLibrary:LYRA_DEFAULT_boxPlotMissingLibrary,boxPlotQ1:LYRA_DEFAULT_boxPlotQ1,boxPlotQ3:LYRA_DEFAULT_boxPlotQ3,boxPlotSeriesSummary:LYRA_DEFAULT_boxPlotSeriesSummary,boxPlotSummaryEmpty:LYRA_DEFAULT_boxPlotSummaryEmpty,boxPlotSummaryWithData:LYRA_DEFAULT_boxPlotSummaryWithData,chartCategory:LYRA_DEFAULT_chartCategory,chartDataSampled:LYRA_DEFAULT_chartDataSampled,chartPointLabel:LYRA_DEFAULT_chartPointLabel,chartSeriesLabel:LYRA_DEFAULT_chartSeriesLabel,chartSeriesNoData:LYRA_DEFAULT_chartSeriesNoData,chartSummarySeparator:LYRA_DEFAULT_chartSummarySeparator,chartTrendDecreasing:LYRA_DEFAULT_chartTrendDecreasing,chartTrendFlat:LYRA_DEFAULT_chartTrendFlat,chartTrendIncreasing:LYRA_DEFAULT_chartTrendIncreasing,chartValueLabel:LYRA_DEFAULT_chartValueLabel,liteChartMarkSummary:LYRA_DEFAULT_liteChartMarkSummary,loading:LYRA_DEFAULT_loading}}static{this.ownedCollectionProperties=Object.freeze(["labels","datasets","hiddenDatasets"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly]}static{this.immutableEventDetails=Object.freeze(["lr-before-legend-visibility-change","lr-legend-visibility-change"])}constructor(){super(),this.labels=[],this.datasets=[],this.legend=!1,this.legendPosition="bottom",this.height="280px",this.yLabel="",this.beginAtZero=!0,this.label=null,this.description=null,this.showDataTable=!1,this.loading=!0,this.loadFailed=!1,this.visible=!0,this.keyboardDatumIndex=0,this.keyboardDatumAnnouncement="",this.intersectionGeneration=0,this.loadGeneration=0,this.descriptionId=nextId("box-plot-description"),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.onReducedMotionChange=()=>{!this.isConnected||this.ownerWindow!==this.reducedMotionWindow||this.drawIfVisible()},new ThemeWatcher(this,()=>{this.chart&&this.refreshTheme()})}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSinks(),this.visible=!0,this.armReducedMotionWatcher();const generation=++this.loadGeneration;loadBoxPlotPlugin().then(boxMod=>this.onBoxPlotPluginLoaded(boxMod,generation));const IntersectionObserverCtor=this.ownerWindow?.IntersectionObserver;if(IntersectionObserverCtor){const ownerWindow=this.ownerWindow,observerGeneration=++this.intersectionGeneration,observer=new IntersectionObserverCtor(entries=>{if(observerGeneration!==this.intersectionGeneration||this.intersectionObserver!==observer||!this.isConnected||this.ownerWindow!==ownerWindow)return;const wasVisible=this.visible;this.visible=entries[0]?.isIntersecting??!0,this.visible&&!wasVisible&&this.drawIfVisible()});this.intersectionObserver=observer,observer.observe(this)}}async onBoxPlotPluginLoaded(boxMod,generation=this.loadGeneration){if(generation!==this.loadGeneration||!this.isConnected)return;try{await this.updateComplete}catch{return}if(await new Promise(resolve=>this.updateBrowserDerivedState(resolve)),generation!==this.loadGeneration||!this.isConnected)return;if(this.loading=!1,!boxMod){this.loadFailed=!0,this.chart?.destroy(),this.chart=void 0,this.chartJsModule=void 0;return}this.loadFailed=!1;const chartMod=await loadChartJs();generation!==this.loadGeneration||!this.isConnected||(this.chartJsModule=chartMod??void 0,this.drawIfVisible())}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSinks(),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.loadGeneration+=1,this.chart?.destroy(),this.chart=void 0,this.intersectionObserver?.disconnect(),this.intersectionObserver=void 0,this.intersectionGeneration+=1,this.visible=!0,this.disarmReducedMotionWatcher()}adoptedCallback(){super.adoptedCallback(),this.releaseAnnouncementSinks(),this.syncAnnouncementSinks(),this.armReducedMotionWatcher()}armReducedMotionWatcher(){const ownerWindow=this.ownerWindow;ownerWindow?.matchMedia&&(this.reducedMotionWindow===ownerWindow&&this.reducedMotionQuery||(this.disarmReducedMotionWatcher(),this.reducedMotionWindow=ownerWindow,this.reducedMotionQuery=ownerWindow.matchMedia("(prefers-reduced-motion: reduce)"),this.reducedMotionQuery.addEventListener("change",this.onReducedMotionChange)))}disarmReducedMotionWatcher(){this.reducedMotionQuery?.removeEventListener("change",this.onReducedMotionChange),this.reducedMotionQuery=void 0,this.reducedMotionWindow=void 0}syncAnnouncementSinks(){this.isConnected&&(this.politeAnnouncementSink?.element.ownerDocument===this.ownerDocument&&this.assertiveAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.releaseAnnouncementSinks(),this.politeAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.assertiveAnnouncementSink=acquireAnnouncementSink("assertive",{document:this.ownerDocument,source:this})))}releaseAnnouncementSinks(){this.politeAnnouncementSink?.release(),this.politeAnnouncementSink=void 0,this.assertiveAnnouncementSink?.release(),this.assertiveAnnouncementSink=void 0}get ownerWindow(){return this.ownerDocument?.defaultView??void 0}effectiveHiddenDatasetIndexes(){return normalizeHiddenDatasets(this.hiddenDatasets,this.datasets.length)??[]}applyDatasetVisibility(){if(!this.chart)return!1;const datasetCount=this.chart.data.datasets?.length??0,sourceSeriesIndexes=this.dataTableSample().seriesIndexes,controlled=normalizeHiddenDatasets(this.hiddenDatasets,this.datasets.length);if(controlled===void 0){for(let index=0;index<datasetCount;index++){const metadata=this.chart.getDatasetMeta?.(index);metadata&&(metadata.hidden=null)}return datasetCount>0}const hidden=new Set(controlled);for(let index=0;index<datasetCount;index++)this.chart.setDatasetVisibility(index,!hidden.has(sourceSeriesIndexes[index]??index));return datasetCount>0}updated(changed){if(super.updated(changed),!this.isConnected)return;const wasMounting=this.isMounting;this.isMounting=!1,changed.has("keyboardDatumAnnouncement")&&changed.get("keyboardDatumAnnouncement")!==void 0&&this.keyboardDatumAnnouncement!==""&&this.politeAnnouncementSink?.announce(this.keyboardDatumAnnouncement),changed.has("loadFailed")&&changed.get("loadFailed")!==void 0&&this.loadFailed&&this.assertiveAnnouncementSink?.announce(this.localize("boxPlotMissingLibrary"));const dataTruncation=this.dataTruncationMessage();if(wasMounting&&(this.lastDataTruncationAnnouncement=dataTruncation),!this.loading&&!this.loadFailed&&!wasMounting&&dataTruncation!==this.lastDataTruncationAnnouncement&&(this.lastDataTruncationAnnouncement=dataTruncation,dataTruncation&&this.politeAnnouncementSink?.announce(dataTruncation)),this.setAttribute("aria-busy",String(this.loading)),changed.has("height")){const height=sanitizeCssLength(this.height,"height");height?this.style.setProperty("--_lr-chart-height",height):this.style.removeProperty("--_lr-chart-height")}if(this.loading)return;const contentChanged=["labels","datasets","hiddenDatasets","legend","legendPosition","height","yLabel","beginAtZero","label","description","valueFormatter","formatter","locale","strings","loading"].some(name=>changed.has(name)),direction=this.effectiveDirection,locale=this.effectiveLocale,contextChanged=this.lastDrawnDirection!==void 0&&this.lastDrawnDirection!==direction||this.lastDrawnLocale!==void 0&&this.lastDrawnLocale!==locale;this.lastDrawnDirection=direction,this.lastDrawnLocale=locale,!(!contentChanged&&!contextChanged)&&this.drawIfVisible()}themeColors(){const view=this.ownerWindow,cs=view?view.getComputedStyle(this):this.style;return{grid:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-grid-color").trim()||cs.getPropertyValue("--_lr-chart-grid-color").trim(),FALLBACK_GRID_COLOR),tick:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tick-color").trim()||cs.getPropertyValue("--_lr-chart-tick-color").trim(),FALLBACK_TICK_COLOR),legend:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-legend-color").trim()||cs.getPropertyValue("--_lr-chart-legend-color").trim(),FALLBACK_LEGEND_COLOR),tooltipBg:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tooltip-bg").trim()||cs.getPropertyValue("--_lr-chart-tooltip-bg").trim(),FALLBACK_TOOLTIP_BG),tooltipText:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tooltip-text").trim()||cs.getPropertyValue("--_lr-chart-tooltip-text").trim(),FALLBACK_TOOLTIP_TEXT)}}seriesColor(index,palette=seriesPalette(this)){const fallback=palette[index%palette.length]??"transparent",series=this.datasets[index];return series?.color?resolveCanvasColor(this,series.color,fallback):fallback}forcedColorFill(index,background){return!this.ownerWindow||!forcedColorsActive(this.ownerWindow)?background:createForcedColorPattern(this.ownerDocument,index,background,this.styleColor("--lr-color-surface",FALLBACK_TOOLTIP_BG))}styleColor(name,fallback){const view=this.ownerWindow,value=(view?view.getComputedStyle(this):this.style).getPropertyValue(name).trim();return value?resolveCanvasColor(this,value,fallback):fallback}buildConfig(){const theme=this.themeColors(),palette=seriesPalette(this),sample=this.dataTableSample();return{type:"boxplot",data:{labels:sample.rowIndexes.map(index=>this.labels[index]??""),datasets:sample.seriesIndexes.map(sourceIndex=>{const s=this.datasets[sourceIndex],color=this.seriesColor(sourceIndex,palette);return{label:s.label,data:sample.rowIndexes.map(index=>{const point=s.data[index];return this.validPoint(point)?summaryOf(point):null}),backgroundColor:this.forcedColorFill(sourceIndex,color),borderColor:color}})},options:{locale:this.effectiveLocale,responsive:!0,maintainAspectRatio:!1,animation:prefersReducedMotion(this.ownerWindow)?!1:void 0,onClick:(event,_elements,chart)=>this.handlePointClick(event,chart),plugins:{legend:{display:!1,labels:{color:theme.legend}},tooltip:{backgroundColor:theme.tooltipBg,titleColor:theme.tooltipText,bodyColor:theme.tooltipText,...this.formatter||this.valueFormatter?{callbacks:{label:context=>{const raw=context.raw,point=this.validPoint(raw)?raw:void 0;if(!point)return;const value=this.formatValue(point.median,"tooltip"),label=String(context.dataset?.label??"");return label?this.localize("chartValueLabel",void 0,{label,value}):value}}}:{}}},scales:{y:{position:this.effectiveDirection==="rtl"?"right":"left",beginAtZero:this.beginAtZero,title:{display:!!this.yLabel,text:this.yLabel,color:theme.tick},ticks:{color:theme.tick,...this.formatter||this.valueFormatter?{callback:value=>this.formatValue(Number(value),"tick")}:{}},grid:{color:theme.grid}}}}}}draw(){if(!this.chartJsModule||!this.canvasEl)return;const config=this.buildConfig();if(this.chart){this.chart.data=config.data,this.chart.options=config.options??{},this.applyDatasetVisibility(),this.chart.update("none");return}this.chart=new this.chartJsModule.Chart(this.canvasEl,config),this.hiddenDatasets!==void 0&&(this.applyDatasetVisibility(),this.chart.update("none"))}drawIfVisible(){!this.isConnected||!this.visible||this.draw()}refreshTheme(){this.drawIfVisible(),this.legend&&this.requestUpdate()}formatValue(value,context){return this.formatter?.({value,surface:context})??this.valueFormatter?.(value,context)??getNumberFormat(this.effectiveLocale).format(value)}exportData(format){if(format==="png")return this.chart?.toBase64Image?.()??"";const header=["category","series","min","q1","median","q3","max"].map(escapeCsvField).join(","),rows=[];return this.datasets.forEach(series=>{series.data.forEach((point,index)=>{this.validPoint(point)&&rows.push([this.labels[index]??"",series.label,this.formatValue(point.min,"table"),this.formatValue(point.q1,"table"),this.formatValue(point.median,"table"),this.formatValue(point.q3,"table"),this.formatValue(point.max,"table")].map(escapeCsvField).join(","))})}),[header,...rows].join(`\r
|
|
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{nextId,srOnly}from"../../../internal/a11y.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{loadChartJs}from"./chart-core-loader.js";import{styles}from"./box-plot.styles.js";import"../../overlays/skeleton/skeleton.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{trueDefaultBooleanFromAttributeConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{resolveCanvasColor,seriesPalette}from"./chart-colors.js";import{createForcedColorPattern,forcedColorEncoding,forcedColorsActive}from"./chart-forced-colors.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{ThemeWatcher}from"../../../internal/theme-watcher.js";import{resolveOptionalPeerCapability,unwrapOptionalPeerDefault}from"../../../internal/optional-peer-capabilities.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{legendVisibilityDetail,normalizeHiddenDatasets}from"./chart-legend-visibility.js";import{sampleChartTableIndexes}from"./chart-table-sampling.js";import{escapeCsvField}from"../../utility/export-button/csv.js";import{chartChromeLegendPlacement,normalizeChartChromeLegendPosition}from"./chart-chrome.js";import{LYRA_DEFAULT_boxPlot,LYRA_DEFAULT_boxPlotData,LYRA_DEFAULT_boxPlotMax,LYRA_DEFAULT_boxPlotMedian,LYRA_DEFAULT_boxPlotMin,LYRA_DEFAULT_boxPlotMissingLibrary,LYRA_DEFAULT_boxPlotQ1,LYRA_DEFAULT_boxPlotQ3,LYRA_DEFAULT_boxPlotSeriesSummary,LYRA_DEFAULT_boxPlotSummaryEmpty,LYRA_DEFAULT_boxPlotSummaryWithData,LYRA_DEFAULT_chartCategory,LYRA_DEFAULT_chartDataSampled,LYRA_DEFAULT_chartPointLabel,LYRA_DEFAULT_chartSeriesLabel,LYRA_DEFAULT_chartSeriesNoData,LYRA_DEFAULT_chartSummarySeparator,LYRA_DEFAULT_chartTrendDecreasing,LYRA_DEFAULT_chartTrendFlat,LYRA_DEFAULT_chartTrendIncreasing,LYRA_DEFAULT_chartValueLabel,LYRA_DEFAULT_liteChartMarkSummary,LYRA_DEFAULT_loading}from"../../../internal/default-strings.generated.js";const FALLBACK_GRID_COLOR="#8a8a90",FALLBACK_TICK_COLOR="#6b7280",FALLBACK_LEGEND_COLOR="#1a1a1a",FALLBACK_TOOLTIP_BG="#fff",FALLBACK_TOOLTIP_TEXT="#1a1a1a";function summaryOf(point){return{min:point.min,q1:point.q1,median:point.median,q3:point.q3,max:point.max}}let boxPlotPlugin;function isConstructor(value){if(typeof value!="function")return!1;try{return Reflect.construct(Object,[],value),!0}catch{return!1}}function missingBoxPlotCapability(candidate){if(typeof candidate!="object"&&typeof candidate!="function"||candidate===null)return"module namespace";const module=candidate;if(!isConstructor(module.BoxPlotController))return"BoxPlotController";if(!isConstructor(module.BoxAndWiskers))return"BoxAndWiskers"}function isBoxPlotModule(candidate){return missingBoxPlotCapability(candidate)===void 0}function resolveBoxPlotModule(value){const module=resolveOptionalPeerCapability(value,isBoxPlotModule);if(module)return module;const candidate=unwrapOptionalPeerDefault(value),missing=missingBoxPlotCapability(candidate)??"module namespace";throw new Error(`Invalid optional peer \`@sgratzl/chartjs-chart-boxplot\`: missing or invalid \`${missing}\` constructor.`)}async function loadBoxPlotAndRegister(loadChart=loadChartJs,importBoxPlot=()=>import("@sgratzl/chartjs-chart-boxplot")){try{const[chartMod,imported]=await Promise.all([loadChart(),importBoxPlot()]);if(!chartMod)return null;const boxMod=resolveBoxPlotModule(imported);return chartMod.Chart.register(boxMod.BoxPlotController,boxMod.BoxAndWiskers),boxMod}catch(error){return console.warn("<lr-box-plot> needs the optional peer dependency `@sgratzl/chartjs-chart-boxplot` \u2014 install it with `pnpm add @sgratzl/chartjs-chart-boxplot`.",error),null}}function loadBoxPlotPlugin(){return boxPlotPlugin||(boxPlotPlugin=loadBoxPlotAndRegister()),boxPlotPlugin}class LyraBoxPlot extends LyraElement{static{this.defaultStrings={...super.defaultStrings,boxPlot:LYRA_DEFAULT_boxPlot,boxPlotData:LYRA_DEFAULT_boxPlotData,boxPlotMax:LYRA_DEFAULT_boxPlotMax,boxPlotMedian:LYRA_DEFAULT_boxPlotMedian,boxPlotMin:LYRA_DEFAULT_boxPlotMin,boxPlotMissingLibrary:LYRA_DEFAULT_boxPlotMissingLibrary,boxPlotQ1:LYRA_DEFAULT_boxPlotQ1,boxPlotQ3:LYRA_DEFAULT_boxPlotQ3,boxPlotSeriesSummary:LYRA_DEFAULT_boxPlotSeriesSummary,boxPlotSummaryEmpty:LYRA_DEFAULT_boxPlotSummaryEmpty,boxPlotSummaryWithData:LYRA_DEFAULT_boxPlotSummaryWithData,chartCategory:LYRA_DEFAULT_chartCategory,chartDataSampled:LYRA_DEFAULT_chartDataSampled,chartPointLabel:LYRA_DEFAULT_chartPointLabel,chartSeriesLabel:LYRA_DEFAULT_chartSeriesLabel,chartSeriesNoData:LYRA_DEFAULT_chartSeriesNoData,chartSummarySeparator:LYRA_DEFAULT_chartSummarySeparator,chartTrendDecreasing:LYRA_DEFAULT_chartTrendDecreasing,chartTrendFlat:LYRA_DEFAULT_chartTrendFlat,chartTrendIncreasing:LYRA_DEFAULT_chartTrendIncreasing,chartValueLabel:LYRA_DEFAULT_chartValueLabel,liteChartMarkSummary:LYRA_DEFAULT_liteChartMarkSummary,loading:LYRA_DEFAULT_loading}}static{this.ownedCollectionProperties=Object.freeze(["labels","datasets","hiddenDatasets"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly]}static{this.immutableEventDetails=Object.freeze(["lr-before-legend-visibility-change","lr-legend-visibility-change"])}constructor(){super(),this.labels=[],this.datasets=[],this.legend=!1,this.legendPosition="bottom",this.height="280px",this.yLabel="",this.beginAtZero=!0,this.label=null,this.description=null,this.showDataTable=!1,this.dataTableToggle=!1,this.dataTableExpandedOverride=null,this.dataTableId=nextId("box-plot-data-table"),this.loading=!0,this.loadFailed=!1,this.visible=!0,this.keyboardDatumIndex=0,this.keyboardDatumAnnouncement="",this.intersectionGeneration=0,this.loadGeneration=0,this.descriptionId=nextId("box-plot-description"),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.onReducedMotionChange=()=>{!this.isConnected||this.ownerWindow!==this.reducedMotionWindow||this.drawIfVisible()},new ThemeWatcher(this,()=>{this.chart&&this.refreshTheme()})}get dataTableVisible(){return this.dataTableToggle?this.dataTableExpandedOverride??this.showDataTable:this.showDataTable}toggleDataTable(){this.dataTableExpandedOverride=!this.dataTableVisible}connectedCallback(){super.connectedCallback(),this.syncAnnouncementSinks(),this.visible=!0,this.armReducedMotionWatcher();const generation=++this.loadGeneration;loadBoxPlotPlugin().then(boxMod=>this.onBoxPlotPluginLoaded(boxMod,generation));const IntersectionObserverCtor=this.ownerWindow?.IntersectionObserver;if(IntersectionObserverCtor){const ownerWindow=this.ownerWindow,observerGeneration=++this.intersectionGeneration,observer=new IntersectionObserverCtor(entries=>{if(observerGeneration!==this.intersectionGeneration||this.intersectionObserver!==observer||!this.isConnected||this.ownerWindow!==ownerWindow)return;const wasVisible=this.visible;this.visible=entries[0]?.isIntersecting??!0,this.visible&&!wasVisible&&this.drawIfVisible()});this.intersectionObserver=observer,observer.observe(this)}}async onBoxPlotPluginLoaded(boxMod,generation=this.loadGeneration){if(generation!==this.loadGeneration||!this.isConnected)return;try{await this.updateComplete}catch{return}if(await new Promise(resolve=>this.updateBrowserDerivedState(resolve)),generation!==this.loadGeneration||!this.isConnected)return;if(this.loading=!1,!boxMod){this.loadFailed=!0,this.chart?.destroy(),this.chart=void 0,this.chartJsModule=void 0;return}this.loadFailed=!1;const chartMod=await loadChartJs();generation!==this.loadGeneration||!this.isConnected||(this.chartJsModule=chartMod??void 0,this.drawIfVisible())}disconnectedCallback(){super.disconnectedCallback(),this.releaseAnnouncementSinks(),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.loadGeneration+=1,this.chart?.destroy(),this.chart=void 0,this.intersectionObserver?.disconnect(),this.intersectionObserver=void 0,this.intersectionGeneration+=1,this.visible=!0,this.disarmReducedMotionWatcher()}adoptedCallback(){super.adoptedCallback(),this.releaseAnnouncementSinks(),this.syncAnnouncementSinks(),this.armReducedMotionWatcher()}armReducedMotionWatcher(){const ownerWindow=this.ownerWindow;ownerWindow?.matchMedia&&(this.reducedMotionWindow===ownerWindow&&this.reducedMotionQuery||(this.disarmReducedMotionWatcher(),this.reducedMotionWindow=ownerWindow,this.reducedMotionQuery=ownerWindow.matchMedia("(prefers-reduced-motion: reduce)"),this.reducedMotionQuery.addEventListener("change",this.onReducedMotionChange)))}disarmReducedMotionWatcher(){this.reducedMotionQuery?.removeEventListener("change",this.onReducedMotionChange),this.reducedMotionQuery=void 0,this.reducedMotionWindow=void 0}syncAnnouncementSinks(){this.isConnected&&(this.politeAnnouncementSink?.element.ownerDocument===this.ownerDocument&&this.assertiveAnnouncementSink?.element.ownerDocument===this.ownerDocument||(this.releaseAnnouncementSinks(),this.politeAnnouncementSink=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this}),this.assertiveAnnouncementSink=acquireAnnouncementSink("assertive",{document:this.ownerDocument,source:this})))}releaseAnnouncementSinks(){this.politeAnnouncementSink?.release(),this.politeAnnouncementSink=void 0,this.assertiveAnnouncementSink?.release(),this.assertiveAnnouncementSink=void 0}get ownerWindow(){return this.ownerDocument?.defaultView??void 0}effectiveHiddenDatasetIndexes(){return normalizeHiddenDatasets(this.hiddenDatasets,this.datasets.length)??[]}applyDatasetVisibility(){if(!this.chart)return!1;const datasetCount=this.chart.data.datasets?.length??0,sourceSeriesIndexes=this.dataTableSample().seriesIndexes,controlled=normalizeHiddenDatasets(this.hiddenDatasets,this.datasets.length);if(controlled===void 0){for(let index=0;index<datasetCount;index++){const metadata=this.chart.getDatasetMeta?.(index);metadata&&(metadata.hidden=null)}return datasetCount>0}const hidden=new Set(controlled);for(let index=0;index<datasetCount;index++)this.chart.setDatasetVisibility(index,!hidden.has(sourceSeriesIndexes[index]??index));return datasetCount>0}updated(changed){if(super.updated(changed),!this.isConnected)return;const wasMounting=this.isMounting;this.isMounting=!1,changed.has("keyboardDatumAnnouncement")&&changed.get("keyboardDatumAnnouncement")!==void 0&&this.keyboardDatumAnnouncement!==""&&this.politeAnnouncementSink?.announce(this.keyboardDatumAnnouncement),changed.has("loadFailed")&&changed.get("loadFailed")!==void 0&&this.loadFailed&&this.assertiveAnnouncementSink?.announce(this.localize("boxPlotMissingLibrary"));const dataTruncation=this.dataTruncationMessage();if(wasMounting&&(this.lastDataTruncationAnnouncement=dataTruncation),!this.loading&&!this.loadFailed&&!wasMounting&&dataTruncation!==this.lastDataTruncationAnnouncement&&(this.lastDataTruncationAnnouncement=dataTruncation,dataTruncation&&this.politeAnnouncementSink?.announce(dataTruncation)),this.setAttribute("aria-busy",String(this.loading)),changed.has("height")){const height=sanitizeCssLength(this.height,"height");height?this.style.setProperty("--_lr-chart-height",height):this.style.removeProperty("--_lr-chart-height")}if(this.loading)return;const contentChanged=["labels","datasets","hiddenDatasets","legend","legendPosition","height","yLabel","beginAtZero","label","description","valueFormatter","formatter","locale","strings","loading"].some(name=>changed.has(name)),direction=this.effectiveDirection,locale=this.effectiveLocale,contextChanged=this.lastDrawnDirection!==void 0&&this.lastDrawnDirection!==direction||this.lastDrawnLocale!==void 0&&this.lastDrawnLocale!==locale;this.lastDrawnDirection=direction,this.lastDrawnLocale=locale,!(!contentChanged&&!contextChanged)&&this.drawIfVisible()}themeColors(){const view=this.ownerWindow,cs=view?view.getComputedStyle(this):this.style;return{grid:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-grid-color").trim()||cs.getPropertyValue("--_lr-chart-grid-color").trim(),FALLBACK_GRID_COLOR),tick:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tick-color").trim()||cs.getPropertyValue("--_lr-chart-tick-color").trim(),FALLBACK_TICK_COLOR),legend:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-legend-color").trim()||cs.getPropertyValue("--_lr-chart-legend-color").trim(),FALLBACK_LEGEND_COLOR),tooltipBg:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tooltip-bg").trim()||cs.getPropertyValue("--_lr-chart-tooltip-bg").trim(),FALLBACK_TOOLTIP_BG),tooltipText:resolveCanvasColor(this,cs.getPropertyValue("--lr-chart-tooltip-text").trim()||cs.getPropertyValue("--_lr-chart-tooltip-text").trim(),FALLBACK_TOOLTIP_TEXT)}}seriesColor(index,palette=seriesPalette(this)){const fallback=palette[index%palette.length]??"transparent",series=this.datasets[index];return series?.color?resolveCanvasColor(this,series.color,fallback):fallback}forcedColorFill(index,background){return!this.ownerWindow||!forcedColorsActive(this.ownerWindow)?background:createForcedColorPattern(this.ownerDocument,index,background,this.styleColor("--lr-color-surface",FALLBACK_TOOLTIP_BG))}styleColor(name,fallback){const view=this.ownerWindow,value=(view?view.getComputedStyle(this):this.style).getPropertyValue(name).trim();return value?resolveCanvasColor(this,value,fallback):fallback}buildConfig(){const theme=this.themeColors(),palette=seriesPalette(this),sample=this.dataTableSample();return{type:"boxplot",data:{labels:sample.rowIndexes.map(index=>this.labels[index]??""),datasets:sample.seriesIndexes.map(sourceIndex=>{const s=this.datasets[sourceIndex],color=this.seriesColor(sourceIndex,palette);return{label:s.label,data:sample.rowIndexes.map(index=>{const point=s.data[index];return this.validPoint(point)?summaryOf(point):null}),backgroundColor:this.forcedColorFill(sourceIndex,color),borderColor:color}})},options:{locale:this.effectiveLocale,responsive:!0,maintainAspectRatio:!1,animation:prefersReducedMotion(this.ownerWindow)?!1:void 0,onClick:(event,_elements,chart)=>this.handlePointClick(event,chart),plugins:{legend:{display:!1,labels:{color:theme.legend}},tooltip:{backgroundColor:theme.tooltipBg,titleColor:theme.tooltipText,bodyColor:theme.tooltipText,...this.formatter||this.valueFormatter?{callbacks:{label:context=>{const raw=context.raw,point=this.validPoint(raw)?raw:void 0;if(!point)return;const value=this.formatValue(point.median,"tooltip"),label=String(context.dataset?.label??"");return label?this.localize("chartValueLabel",void 0,{label,value}):value}}}:{}}},scales:{y:{position:this.effectiveDirection==="rtl"?"right":"left",beginAtZero:this.beginAtZero,title:{display:!!this.yLabel,text:this.yLabel,color:theme.tick},ticks:{color:theme.tick,...this.formatter||this.valueFormatter?{callback:value=>this.formatValue(Number(value),"tick")}:{}},grid:{color:theme.grid}}}}}}draw(){if(!this.chartJsModule||!this.canvasEl)return;const config=this.buildConfig();if(this.chart){this.chart.data=config.data,this.chart.options=config.options??{},this.applyDatasetVisibility(),this.chart.update("none");return}this.chart=new this.chartJsModule.Chart(this.canvasEl,config),this.hiddenDatasets!==void 0&&(this.applyDatasetVisibility(),this.chart.update("none"))}drawIfVisible(){!this.isConnected||!this.visible||this.draw()}refreshTheme(){this.drawIfVisible(),this.legend&&this.requestUpdate()}formatValue(value,context){return this.formatter?.({value,surface:context})??this.valueFormatter?.(value,context)??getNumberFormat(this.effectiveLocale).format(value)}exportData(format){if(format==="png")return this.chart?.toBase64Image?.()??"";const header=["category","series","min","q1","median","q3","max"].map(escapeCsvField).join(","),rows=[];return this.datasets.forEach(series=>{series.data.forEach((point,index)=>{this.validPoint(point)&&rows.push([this.labels[index]??"",series.label,this.formatValue(point.min,"table"),this.formatValue(point.q1,"table"),this.formatValue(point.median,"table"),this.formatValue(point.q3,"table"),this.formatValue(point.max,"table")].map(escapeCsvField).join(","))})}),[header,...rows].join(`\r
|
|
2
2
|
`)}boxPlotDescription(){if(this.description)return this.description;const summaries=this.dataTableSample().seriesIndexes.map(index=>{const series=this.datasets[index];let count=0,first=0,last=0,min=0,max=0;for(const point of series.data)this.validPoint(point)&&(count===0&&(first=point.median,min=point.median,max=point.median),last=point.median,min=Math.min(min,point.median),max=Math.max(max,point.median),count++);if(count===0)return this.localize("chartSeriesNoData",void 0,{label:series.label});const trend=last>first?this.localize("chartTrendIncreasing"):last<first?this.localize("chartTrendDecreasing"):this.localize("chartTrendFlat");return this.localize("boxPlotSeriesSummary",void 0,{label:series.label,count:getNumberFormat(this.effectiveLocale).format(count),min:this.formatValue(min,"table"),max:this.formatValue(max,"table"),trend})});return summaries.length?this.localize("boxPlotSummaryWithData",void 0,{summaries:summaries.join(this.localize("chartSummarySeparator"))}):this.localize("boxPlotSummaryEmpty")}boxDatums(){const sample=this.dataTableSample(),datums=[];for(const datasetIndex of sample.seriesIndexes){const series=this.datasets[datasetIndex];if(series)for(const index of sample.rowIndexes){const point=series.data[index];this.validPoint(point)&&datums.push({datasetIndex,index,label:this.labels[index]||void 0,value:summaryOf(point)})}}return datums}boxAnnouncement(datum,position,total){const numberFormat=getNumberFormat(this.effectiveLocale),point=datum.value,summary=(point?[[this.localize("boxPlotMin"),point.min],[this.localize("boxPlotQ1"),point.q1],[this.localize("boxPlotMedian"),point.median],[this.localize("boxPlotQ3"),point.q3],[this.localize("boxPlotMax"),point.max]]:[]).filter(([,value])=>Number.isFinite(value)).map(([label,value])=>this.localize("chartValueLabel",void 0,{label,value:numberFormat.format(value)})).join(this.localize("chartSummarySeparator"));return this.localize("liteChartMarkSummary",void 0,{series:this.datasets[datum.datasetIndex]?.label||this.localize("chartSeriesLabel"),label:datum.label??this.localize("chartPointLabel",void 0,{n:numberFormat.format(datum.index+1)}),value:summary,index:numberFormat.format(position+1),total:numberFormat.format(total)})}activateBox(datum){const datums=this.boxDatums(),position=datums.findIndex(candidate=>candidate.datasetIndex===datum.datasetIndex&&candidate.index===datum.index);position>=0&&(this.keyboardDatumIndex=position,this.keyboardDatumAnnouncement=this.boxAnnouncement(datum,position,datums.length)),this.emit("lr-datum-activate",{...datum,kind:"box"}),this.emit("lr-point-click",datum)}handlePointClick(event,chart){const hit=chart.getElementsAtEventForMode?.(event,"nearest",{intersect:!0},!0)?.[0];if(!hit)return;const sample=this.dataTableSample(),datasetIndex=sample.seriesIndexes[hit.datasetIndex],index=sample.rowIndexes[hit.index];if(datasetIndex===void 0||index===void 0)return;const point=this.datasets[datasetIndex]?.data[index];this.activateBox({datasetIndex,index,label:this.labels[index]||void 0,value:this.validPoint(point)?summaryOf(point):null})}onCanvasFocus(){const datums=this.boxDatums();datums.length&&(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),this.keyboardDatumAnnouncement=this.boxAnnouncement(datums[this.keyboardDatumIndex],this.keyboardDatumIndex,datums.length))}onCanvasKeyDown(event){const datums=this.boxDatums();if(!datums.length)return;if(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),event.key==="Enter"||event.key===" "){event.preventDefault(),this.activateBox(datums[this.keyboardDatumIndex]);return}const rtl=this.effectiveDirection==="rtl",forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft";let next=this.keyboardDatumIndex;if(event.key===forward||event.key==="ArrowDown")next=Math.min(datums.length-1,next+1);else if(event.key===backward||event.key==="ArrowUp")next=Math.max(0,next-1);else if(event.key==="Home")next=0;else if(event.key==="End")next=datums.length-1;else return;event.preventDefault(),this.keyboardDatumIndex=next,this.keyboardDatumAnnouncement=this.boxAnnouncement(datums[next],next,datums.length)}validPoint(point){return!!point&&[point.min,point.q1,point.median,point.q3,point.max].every(Number.isFinite)&&point.min<=point.q1&&point.q1<=point.median&&point.median<=point.q3&&point.q3<=point.max}accessibleName(fallback){return this.getAttribute("aria-label")??this.label??fallback}dataTableSample(){let rowCount=this.labels.length;for(const series of this.datasets)rowCount=Math.max(rowCount,series.data.length);const indexes=sampleChartTableIndexes(rowCount,this.datasets.length);return{rowCount,seriesCount:this.datasets.length,...indexes}}generatedDataIsSampled(){if(this.hasCustomDataTable())return!1;const sample=this.dataTableSample();return sample.rowCount===0||sample.seriesCount===0?!1:sample.rowIndexes.length<sample.rowCount||sample.seriesIndexes.length<sample.seriesCount}dataTruncationMessage(){return this.generatedDataIsSampled()?this.localize("chartDataSampled"):""}renderDataTable(){const numberFormat=getNumberFormat(this.effectiveLocale),sample=this.dataTableSample();return html`
|
|
3
|
-
<table class=${this.
|
|
3
|
+
<table class=${this.dataTableVisible?"":"sr-only"}>
|
|
4
4
|
<caption>${this.accessibleName(this.localize("boxPlotData"))}</caption>
|
|
5
5
|
<thead>
|
|
6
6
|
<tr>
|
|
@@ -75,12 +75,22 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
75
75
|
<p part="description" id=${this.descriptionId} class="sr-only">${description}</p>
|
|
76
76
|
<p class="sr-only" aria-hidden="true">${this.keyboardDatumAnnouncement}</p>
|
|
77
77
|
${this.dataTruncationMessage()?html`<p part="data-truncation">${this.dataTruncationMessage()}</p>`:nothing}
|
|
78
|
+
${this.dataTableToggle?html`<button
|
|
79
|
+
part="data-table-toggle"
|
|
80
|
+
type="button"
|
|
81
|
+
aria-expanded=${this.dataTableVisible?"true":"false"}
|
|
82
|
+
aria-controls=${this.dataTableId}
|
|
83
|
+
@click=${()=>this.toggleDataTable()}
|
|
84
|
+
>
|
|
85
|
+
${this.localize("boxPlotData")}
|
|
86
|
+
</button>`:nothing}
|
|
78
87
|
<div
|
|
88
|
+
id=${this.dataTableId}
|
|
79
89
|
part="data-table"
|
|
80
|
-
?data-visually-hidden=${!hasCustomDataTable&&!this.
|
|
90
|
+
?data-visually-hidden=${!hasCustomDataTable&&!this.dataTableVisible}
|
|
81
91
|
>
|
|
82
92
|
<slot name="data-table" @slotchange=${()=>this.requestUpdate()}></slot>
|
|
83
93
|
${hasCustomDataTable?nothing:this.renderDataTable()}
|
|
84
94
|
</div>
|
|
85
95
|
</div>
|
|
86
|
-
`}}__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"labels",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"datasets",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"hiddenDatasets",void 0),__decorate([property({type:Boolean})],LyraBoxPlot.prototype,"legend",void 0),__decorate([property({attribute:"legend-position",converter:{fromAttribute:normalizeChartChromeLegendPosition}})],LyraBoxPlot.prototype,"legendPosition",void 0),__decorate([property()],LyraBoxPlot.prototype,"height",void 0),__decorate([property({attribute:"y-label"})],LyraBoxPlot.prototype,"yLabel",void 0),__decorate([property({type:Boolean,attribute:"begin-at-zero",converter:trueDefaultBooleanConverter})],LyraBoxPlot.prototype,"beginAtZero",void 0),__decorate([property()],LyraBoxPlot.prototype,"label",void 0),__decorate([property()],LyraBoxPlot.prototype,"description",void 0),__decorate([property({type:Boolean,attribute:"show-data-table"})],LyraBoxPlot.prototype,"showDataTable",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"valueFormatter",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"formatter",void 0),__decorate([state()],LyraBoxPlot.prototype,"loading",void 0),__decorate([state()],LyraBoxPlot.prototype,"loadFailed",void 0),__decorate([state()],LyraBoxPlot.prototype,"visible",void 0),__decorate([state()],LyraBoxPlot.prototype,"keyboardDatumAnnouncement",void 0),__decorate([query("canvas")],LyraBoxPlot.prototype,"canvasEl",void 0);export{LyraBoxPlot,loadBoxPlotAndRegister};
|
|
96
|
+
`}}__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"labels",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"datasets",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"hiddenDatasets",void 0),__decorate([property({type:Boolean})],LyraBoxPlot.prototype,"legend",void 0),__decorate([property({attribute:"legend-position",converter:{fromAttribute:normalizeChartChromeLegendPosition}})],LyraBoxPlot.prototype,"legendPosition",void 0),__decorate([property()],LyraBoxPlot.prototype,"height",void 0),__decorate([property({attribute:"y-label"})],LyraBoxPlot.prototype,"yLabel",void 0),__decorate([property({type:Boolean,attribute:"begin-at-zero",converter:trueDefaultBooleanConverter})],LyraBoxPlot.prototype,"beginAtZero",void 0),__decorate([property()],LyraBoxPlot.prototype,"label",void 0),__decorate([property()],LyraBoxPlot.prototype,"description",void 0),__decorate([property({type:Boolean,attribute:"show-data-table"})],LyraBoxPlot.prototype,"showDataTable",void 0),__decorate([property({type:Boolean,attribute:"data-table-toggle"})],LyraBoxPlot.prototype,"dataTableToggle",void 0),__decorate([state()],LyraBoxPlot.prototype,"dataTableExpandedOverride",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"valueFormatter",void 0),__decorate([property({attribute:!1})],LyraBoxPlot.prototype,"formatter",void 0),__decorate([state()],LyraBoxPlot.prototype,"loading",void 0),__decorate([state()],LyraBoxPlot.prototype,"loadFailed",void 0),__decorate([state()],LyraBoxPlot.prototype,"visible",void 0),__decorate([state()],LyraBoxPlot.prototype,"keyboardDatumAnnouncement",void 0),__decorate([query("canvas")],LyraBoxPlot.prototype,"canvasEl",void 0);export{LyraBoxPlot,loadBoxPlotAndRegister};
|