@aceshooting/lyra-ui 9.1.0 → 10.0.1
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 +843 -0
- package/README.md +7 -0
- package/custom-elements.json +1 -1
- package/dist/cli/migrate-wa.mjs +52 -0
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -2
- 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 +9 -7
- 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.class.js +1 -1
- 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.class.js +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
- package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
- 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.class.js +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
- package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
- 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 +2 -5
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
- 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 +1 -4
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- 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.class.js +1 -1
- 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.class.js +2 -2
- 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.class.js +2 -2
- 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.class.js +2 -2
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
- package/dist/components/charts/chart/bar-chart.class.js +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +0 -20
- package/dist/components/charts/chart/bubble-chart.class.js +1 -1
- 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 +93 -0
- package/dist/components/charts/chart/chart.class.js +3 -3
- package/dist/components/charts/chart/chart.styles.js +0 -27
- package/dist/components/charts/chart/doughnut-chart.class.js +1 -1
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/line-chart.class.js +1 -1
- 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/charts/chart/pie-chart.class.js +1 -1
- package/dist/components/charts/chart/polar-area-chart.class.js +1 -1
- package/dist/components/charts/chart/radar-chart.class.js +1 -1
- package/dist/components/charts/chart/scatter-chart.class.js +1 -1
- 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.class.js +2 -2
- package/dist/components/conversation/chat-message/chat-message.styles.js +13 -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/realtime-session/realtime-session.styles.js +1 -1
- 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 +5 -19
- 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.class.js +1 -1
- 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/file-tree/file-tree.class.js +1 -1
- 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 +85 -2
- 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.class.js +1 -1
- 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 +1 -106
- 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.js +2 -2
- package/dist/components/forms/combobox/combobox.styles.js +22 -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 +1 -0
- package/dist/components/forms/date-picker/date-picker.class.js +22 -20
- package/dist/components/forms/date-picker/date-picker.styles.js +36 -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 +3 -38
- 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 +5 -13
- 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.class.js +1 -1
- 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.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.styles.js +8 -51
- 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 +2 -2
- package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +4 -4
- 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.class.js +1 -1
- package/dist/components/media/file-input/file-input.styles.js +3 -24
- package/dist/components/media/flag/flag.class.d.ts +20 -0
- 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 +2 -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 +141 -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 +2 -13
- 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 +12 -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.class.js +1 -1
- 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 +9 -1
- 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 +2 -2
- package/dist/components/overlays/popup/popup.class.d.ts +1 -0
- package/dist/components/overlays/popup/popup.class.js +2 -2
- 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 +2 -5
- 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.class.js +1 -1
- 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/entity-dossier/entity-dossier.class.js +1 -1
- 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/grounding-summary/grounding-summary.class.js +2 -2
- 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 +6 -11
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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/contact-viewer/contact-viewer.class.js +1 -1
- 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.class.js +1 -1
- 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.class.js +1 -1
- 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 +56 -37
- 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 +30 -0
- package/dist/internal/dev-mode-attribute-warning.js +1 -0
- 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 +19 -113
- package/dist/lyra.d.ts +8 -5
- package/dist/styles/reservations.css +82 -0
- package/dist/svelte.d.ts +56 -37
- 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 +56 -37
- 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 +9 -6
- package/llms/components/lr-av-player.md +3 -1
- package/llms/components/lr-avatar.md +6 -6
- package/llms/components/lr-bar-chart.md +4 -3
- package/llms/components/lr-box-plot.md +1 -1
- package/llms/components/lr-browser-frame.md +7 -3
- package/llms/components/lr-bubble-chart.md +4 -3
- package/llms/components/lr-calendar.md +9 -2
- package/llms/components/lr-card.md +24 -0
- package/llms/components/lr-chart.md +32 -8
- 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 +5 -2
- 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-details.md +11 -2
- package/llms/components/lr-dialog.md +15 -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 +4 -3
- 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 +20 -5
- package/llms/components/lr-heatmap.md +29 -1
- package/llms/components/lr-histogram.md +3 -1
- 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 +4 -3
- package/llms/components/lr-lite-chart.md +16 -6
- package/llms/components/lr-map.md +72 -8
- 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 +5 -2
- package/llms/components/lr-pdf-viewer.md +62 -2
- package/llms/components/lr-pie-chart.md +4 -3
- package/llms/components/lr-polar-area-chart.md +4 -3
- package/llms/components/lr-popover.md +5 -0
- 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 +4 -3
- 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 +4 -3
- 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/index.md +1 -1
- package/llms/peers.md +13 -3
- package/llms/shared.md +83 -2
- package/llms-full.txt +1159 -288
- package/package.json +19 -7
- package/vscode-css-data.json +37 -2
- package/vscode-html-data.json +402 -45
- package/web-types.json +300 -56
|
@@ -21,11 +21,8 @@ import{css}from"lit";const styles=css`
|
|
|
21
21
|
[part='iframe'] {
|
|
22
22
|
position: absolute;
|
|
23
23
|
top: 0;
|
|
24
|
-
/* policy-allow(physical-css): the scaled iframe is a physical pixel canvas, so its origin
|
|
25
|
-
must stay at physical top-left under both text directions. */
|
|
26
24
|
right: auto;
|
|
27
25
|
bottom: auto;
|
|
28
|
-
/* policy-allow(physical-css): paired physical edge of the fixed transform canvas origin. */
|
|
29
26
|
left: 0;
|
|
30
27
|
display: block;
|
|
31
28
|
inline-size: calc(100% / var(--lr-zoomable-frame-zoom, 1));
|
|
@@ -33,8 +30,6 @@ import{css}from"lit";const styles=css`
|
|
|
33
30
|
border: 0;
|
|
34
31
|
background: var(--lr-color-surface);
|
|
35
32
|
transform: scale(var(--lr-zoomable-frame-zoom, 1));
|
|
36
|
-
/* Iframe pixels are a physical canvas; scaling must stay pinned to its physical top-left
|
|
37
|
-
corner under both LTR and RTL rather than mirroring the embedded document. */
|
|
38
33
|
transform-origin: top left;
|
|
39
34
|
}
|
|
40
35
|
|
|
@@ -11,8 +11,6 @@ import{css}from"lit";const styles=css`
|
|
|
11
11
|
display: block;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/* Shoelace calls its brand/default tone "primary". Re-point the shared semantic slots instead
|
|
15
|
-
of introducing a second colour vocabulary for this compatibility component. */
|
|
16
14
|
:host([variant='primary']) {
|
|
17
15
|
--lr-color-fill-quiet: var(--lr-color-brand-fill-quiet);
|
|
18
16
|
--lr-color-fill-normal: var(--lr-color-brand-fill-normal);
|
|
@@ -49,6 +47,10 @@ import{css}from"lit";const styles=css`
|
|
|
49
47
|
transform var(--lr-duration-fast) var(--lr-easing-standard);
|
|
50
48
|
}
|
|
51
49
|
|
|
50
|
+
[part='base'][hidden] {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
53
|
+
|
|
52
54
|
:host([data-alert-showing]) [part='base'],
|
|
53
55
|
:host([data-alert-hiding]) [part='base'] {
|
|
54
56
|
opacity: 0;
|
|
@@ -2,48 +2,22 @@ import{css}from"lit";const styles=css`
|
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-block;
|
|
4
4
|
max-inline-size: 100%;
|
|
5
|
-
/* The 'm' defaults exactly reproduce the original fixed badge treatment -- mirrors
|
|
6
|
-
<lr-chip>'s identical --lr-chip-font-size/-padding-inline/-min-height trio so a consumer
|
|
7
|
-
moving between the two sibling components finds the same size vocabulary. */
|
|
8
5
|
--_lr-badge-font-size: var(--lr-font-size-sm);
|
|
9
6
|
--_lr-badge-padding-inline: var(--lr-space-s);
|
|
10
7
|
--_lr-badge-min-height: var(--lr-size-1-25rem);
|
|
11
|
-
/* Space between the start slot, the label and the end slot. Collapses to nothing on its own
|
|
12
|
-
when a wrapper is empty, because the empty wrapper is display:none rather than zero-width. */
|
|
13
8
|
--_lr-badge-gap: var(--lr-space-2xs);
|
|
14
|
-
/* Rounded rectangle by default; the pill treatment is opt-in through the 'pill' attribute
|
|
15
|
-
below, matching the badge/tag shape vocabulary. Doesn't vary by size tier, so it's declared
|
|
16
|
-
once here rather than re-assigned per effective-size block -- mirrors lr-button's
|
|
17
|
-
identical --lr-button-radius. */
|
|
18
9
|
--_lr-badge-radius: var(--lr-radius);
|
|
19
10
|
|
|
20
|
-
/* --- Palette: what the 'variant' axis chooses. -------------------------------------------
|
|
21
|
-
Five semantic slots per variant, so the 'appearance' axis below can route them onto the
|
|
22
|
-
surface without every (variant, appearance) pair needing its own rule. Neutral is the
|
|
23
|
-
default set declared here: it is the only variant whose border color and text color differ
|
|
24
|
-
(a plain bordered surface reading as "no signal"), which is why -edge and -ink are separate
|
|
25
|
-
slots rather than one loud color.
|
|
26
|
-
-solid and -on-solid read the shared variants sheet's generic slots unconditionally, because
|
|
27
|
-
neutral's own values there already ARE the grid's neutral row; only -tint, -edge and -ink
|
|
28
|
-
need the non-neutral rule below. */
|
|
29
11
|
--_lr-badge-tint: var(--lr-color-surface);
|
|
30
12
|
--_lr-badge-solid: var(--lr-color-fill-loud);
|
|
31
13
|
--_lr-badge-edge: var(--lr-color-border);
|
|
32
14
|
--_lr-badge-ink: var(--lr-color-text);
|
|
33
15
|
--_lr-badge-on-solid: var(--lr-color-on-loud);
|
|
34
16
|
|
|
35
|
-
/* --- Surface: what the 'appearance' axis chooses from that palette. ----------------------
|
|
36
|
-
Kept separate from the public --lr-badge-background/-border/-color trio so those three stay
|
|
37
|
-
*undeclared* and therefore still inherit from a consumer's ancestor rule; they are consumed
|
|
38
|
-
as the first arm of the var() fallbacks on [part~='base'] below. The values here are the
|
|
39
|
-
'filled-outlined' default, restated per appearance further down. */
|
|
40
17
|
--_lr-badge-fill: var(--lr-badge-tint, var(--_lr-badge-tint));
|
|
41
18
|
--_lr-badge-stroke: var(--lr-badge-edge, var(--_lr-badge-edge));
|
|
42
19
|
--_lr-badge-text: var(--lr-badge-ink, var(--_lr-badge-ink));
|
|
43
20
|
|
|
44
|
-
/* --- Attention: the opt-in attention-seeking animation. ----------------------------------
|
|
45
|
-
Duration and easing are separate custom properties (not one compound transition token) so
|
|
46
|
-
the 'animation' shorthand below expands to exactly one timing function. */
|
|
47
21
|
--_lr-badge-attention-duration: var(--lr-duration-ambient, 1.8s);
|
|
48
22
|
--_lr-badge-attention-easing: var(--lr-easing-emphasized, ease-in-out);
|
|
49
23
|
--_lr-badge-pulse-color: var(
|
|
@@ -84,8 +58,6 @@ import{css}from"lit";const styles=css`
|
|
|
84
58
|
overflow: hidden;
|
|
85
59
|
align-items: center;
|
|
86
60
|
}
|
|
87
|
-
/* Defeats the display:inline-flex above -- the native [hidden] UA rule alone would lose to it at
|
|
88
|
-
equal specificity. Same fix <lr-chip>'s identical [part='icon'][hidden] override applies. */
|
|
89
61
|
[part='start'][hidden],
|
|
90
62
|
[part='end'][hidden] {
|
|
91
63
|
display: none;
|
|
@@ -96,9 +68,11 @@ import{css}from"lit";const styles=css`
|
|
|
96
68
|
min-inline-size: 0;
|
|
97
69
|
max-inline-size: 100%;
|
|
98
70
|
}
|
|
71
|
+
[part='start'] ::slotted([hidden]:not([hidden='until-found' i])),
|
|
72
|
+
[part='end'] ::slotted([hidden]:not([hidden='until-found' i])) {
|
|
73
|
+
display: none;
|
|
74
|
+
}
|
|
99
75
|
|
|
100
|
-
/* The label truncates, not the whole surface: keeping overflow off [part~='base'] lets the
|
|
101
|
-
removable tag's oversized hit target overhang the compact pill without being clipped. */
|
|
102
76
|
[part='content'] {
|
|
103
77
|
flex: 0 1 auto;
|
|
104
78
|
min-inline-size: 0;
|
|
@@ -107,23 +81,12 @@ import{css}from"lit";const styles=css`
|
|
|
107
81
|
white-space: nowrap;
|
|
108
82
|
}
|
|
109
83
|
|
|
110
|
-
/* --- variant: the palette ----------------------------------------------------------------
|
|
111
|
-
One rule for all four non-neutral variants, in place of the four near-identical blocks that
|
|
112
|
-
stood here: the shared variants sheet has already re-pointed --lr-color-fill-* at the active
|
|
113
|
-
variant's row of the semantic grid, so the badge reads generic slots and never names a
|
|
114
|
-
variant. Neutral is excluded rather than mapped, because it keeps the ambient
|
|
115
|
-
surface/border/text "no signal" treatment declared on :host above instead of the grid's grey
|
|
116
|
-
neutral row. Matching [variant] as well as :not([variant='neutral']) keeps a host that has not
|
|
117
|
-
yet reflected its default attribute on the same neutral values. */
|
|
118
84
|
:host([data-effective-variant]:not([data-effective-variant='neutral'])) {
|
|
119
85
|
--_lr-badge-tint: var(--lr-color-fill-quiet);
|
|
120
86
|
--_lr-badge-edge: var(--lr-color-fill-loud);
|
|
121
87
|
--_lr-badge-ink: var(--lr-color-fill-loud);
|
|
122
88
|
}
|
|
123
89
|
|
|
124
|
-
/* --- appearance: palette to surface ------------------------------------------------------
|
|
125
|
-
'transparent' rather than 'none' for the border-less appearances, so switching appearance
|
|
126
|
-
never changes the badge's own layout box. */
|
|
127
90
|
:host([appearance='filled-outlined']) {
|
|
128
91
|
--_lr-badge-fill: var(--lr-badge-tint, var(--_lr-badge-tint));
|
|
129
92
|
--_lr-badge-stroke: var(--lr-badge-edge, var(--_lr-badge-edge));
|
|
@@ -150,7 +113,6 @@ import{css}from"lit";const styles=css`
|
|
|
150
113
|
--_lr-badge-text: var(--lr-badge-ink, var(--_lr-badge-ink));
|
|
151
114
|
}
|
|
152
115
|
|
|
153
|
-
/* --- size --------------------------------------------------------------------------------- */
|
|
154
116
|
:host([data-effective-size='2xs']) {
|
|
155
117
|
--_lr-badge-font-size: var(--lr-font-size-2xs);
|
|
156
118
|
--_lr-badge-padding-inline: var(--lr-space-2xs);
|
|
@@ -177,7 +139,6 @@ import{css}from"lit";const styles=css`
|
|
|
177
139
|
--_lr-badge-min-height: var(--lr-size-1-75rem);
|
|
178
140
|
}
|
|
179
141
|
|
|
180
|
-
/* --- attention ---------------------------------------------------------------------------- */
|
|
181
142
|
:host([pulse]:not([attention])) [part~='base'],
|
|
182
143
|
:host([attention='pulse']) [part~='base'] {
|
|
183
144
|
animation: lr-badge-pulse var(--lr-badge-attention-duration, var(--_lr-badge-attention-duration)) var(--lr-badge-attention-easing, var(--_lr-badge-attention-easing))
|
|
@@ -200,8 +161,6 @@ import{css}from"lit";const styles=css`
|
|
|
200
161
|
}
|
|
201
162
|
}
|
|
202
163
|
|
|
203
|
-
/* Vertical, so it needs no logical-property mirroring: block-direction motion means the same
|
|
204
|
-
thing under dir="rtl". */
|
|
205
164
|
@keyframes lr-badge-bounce {
|
|
206
165
|
0%,
|
|
207
166
|
25%,
|
|
@@ -214,9 +173,6 @@ import{css}from"lit";const styles=css`
|
|
|
214
173
|
}
|
|
215
174
|
}
|
|
216
175
|
|
|
217
|
-
/* The attention animations are decorative and infinite, so they stop outright rather than
|
|
218
|
-
merely shortening. The shared token layer already clamps every animation's duration and
|
|
219
|
-
iteration count under this query; naming animation itself keeps the badge provably still. */
|
|
220
176
|
@media (prefers-reduced-motion: reduce) {
|
|
221
177
|
[part~='base'] {
|
|
222
178
|
animation: none !important;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
|
-
/* Matched to the pill's own corner so retuning one retunes both -- mirrors <lr-chip>'s
|
|
4
|
-
identical --lr-chip-radius reuse on its remove button. */
|
|
5
3
|
--_lr-tag-remove-radius: var(--lr-badge-radius, var(--_lr-badge-radius));
|
|
6
4
|
--_lr-tag-remove-hover-background: color-mix(in srgb, currentColor 16%, transparent);
|
|
7
5
|
}
|
|
@@ -10,15 +8,12 @@ import{css}from"lit";const styles=css`
|
|
|
10
8
|
min-block-size: max(var(--lr-badge-min-height, var(--_lr-badge-min-height)), var(--lr-icon-button-size));
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
/* Shoelace's variant="text" is a surface treatment rather than a semantic palette. The public
|
|
14
|
-
token remains verbatim while the badge base derives neutral as its private tone. */
|
|
15
11
|
:host([variant='text']) {
|
|
16
12
|
--_lr-badge-fill: transparent;
|
|
17
13
|
--_lr-badge-stroke: transparent;
|
|
18
14
|
--_lr-badge-text: var(--lr-badge-ink, var(--_lr-badge-ink));
|
|
19
15
|
}
|
|
20
16
|
|
|
21
|
-
/* The full hit target participates in layout so compact tags cannot overlap an adjacent target. */
|
|
22
17
|
[part~='remove-button'] {
|
|
23
18
|
flex: 0 0 auto;
|
|
24
19
|
display: inline-flex;
|
|
@@ -40,15 +35,6 @@ import{css}from"lit";const styles=css`
|
|
|
40
35
|
[part~='remove-button']:hover {
|
|
41
36
|
background: var(--lr-tag-remove-hover-background, var(--_lr-tag-remove-hover-background));
|
|
42
37
|
}
|
|
43
|
-
/* Pressed deepens the hover's own scrim -- currentColor mixed in again at the shared
|
|
44
|
-
--lr-color-mix-active share, landing the button at roughly double the hover's tint so the
|
|
45
|
-
press reads as a step past the hover rather than a repeat of it. Mixed toward currentColor
|
|
46
|
-
rather than --lr-color-mix-partner deliberately: this button sits INSIDE the badge, whose
|
|
47
|
-
variant may have painted a loud fill beneath it, and currentColor is then the pill's own ink,
|
|
48
|
-
the one colour guaranteed to contrast with that fill. --lr-color-mix-partner follows the PAGE
|
|
49
|
-
text, which on a solid-appearance badge (light ink on a loud fill) points the opposite way
|
|
50
|
-
from the hover -- hovering would lighten while pressing darkened. Layering on top of the hover
|
|
51
|
-
custom property also means a consumer who retints the hover gets a matching press for free. */
|
|
52
38
|
[part~='remove-button']:active {
|
|
53
39
|
background: color-mix(in srgb, currentColor var(--lr-color-mix-active), var(--lr-tag-remove-hover-background, var(--_lr-tag-remove-hover-background)));
|
|
54
40
|
}
|
|
@@ -3,18 +3,12 @@ import{css}from"lit";const styles=css`
|
|
|
3
3
|
display: block;
|
|
4
4
|
box-sizing: border-box;
|
|
5
5
|
max-inline-size: 100%;
|
|
6
|
-
/* The close hover is independently themeable so retinting it never changes the host surface. */
|
|
7
6
|
--_lr-callout-close-hover-bg: var(--lr-color-brand-quiet);
|
|
8
|
-
/* Unset nested callouts inherit the generic semantic and size slots. The second arms are the
|
|
9
|
-
standalone brand/m defaults; explicit attributes re-point the generic slots in the
|
|
10
|
-
contextual vocabulary sheets. */
|
|
11
7
|
--_lr-callout-background: var(--lr-color-fill-quiet, var(--lr-color-brand-fill-quiet));
|
|
12
8
|
--_lr-callout-border: var(--lr-color-fill-loud, var(--lr-color-brand-fill-loud));
|
|
13
9
|
--_lr-callout-color: var(--lr-color-fill-loud, var(--lr-color-brand-fill-loud));
|
|
14
10
|
--_lr-callout-font-size: var(--lr-form-control-font-size, var(--lr-font-size-m));
|
|
15
11
|
--_lr-callout-padding: var(--lr-form-control-padding-inline, var(--lr-space-m));
|
|
16
|
-
/* Separates three adjacent boxes rather than setting the panel's density, so it deliberately
|
|
17
|
-
does not vary by tier -- shrinking it at 2xs only crowds the close control. */
|
|
18
12
|
--_lr-callout-gap: var(--lr-space-s);
|
|
19
13
|
|
|
20
14
|
padding: var(--lr-callout-padding, var(--_lr-callout-padding));
|
|
@@ -67,13 +61,8 @@ import{css}from"lit";const styles=css`
|
|
|
67
61
|
[part='icon'] ::slotted(*) { max-inline-size: 100%; }
|
|
68
62
|
[part='icon'][hidden], [part='close-button'][hidden] { display: none; }
|
|
69
63
|
[part='heading'] { margin-block-end: var(--lr-space-xs); font-weight: var(--lr-font-weight-semibold); }
|
|
70
|
-
[part='content'] { grid-column: 2; min-inline-size: 0; overflow-wrap:
|
|
71
|
-
[part='message'] { min-inline-size: 0; overflow-wrap:
|
|
72
|
-
/* The interactive hit target meets the shared minimum tappable size (--lr-icon-button-size)
|
|
73
|
-
in both the default panel and the compact [inline] variant below -- the *visible* "×" glyph
|
|
74
|
-
is what shrinks for [inline] instead, rendered on the separate [part='close-icon'] child and
|
|
75
|
-
centered via this button's own flex layout, not by resizing the button itself. Mirrors
|
|
76
|
-
lr-swatch-picker's [part='swatch']/[part='swatch-fill'] split. */
|
|
64
|
+
[part='content'] { grid-column: 2; min-inline-size: 0; overflow-wrap: break-word; }
|
|
65
|
+
[part='message'] { min-inline-size: 0; overflow-wrap: break-word; }
|
|
77
66
|
[part='close-button'] { display: inline-flex; grid-column: 3; align-items: center; justify-content: center; min-inline-size: var(--lr-icon-button-size); min-block-size: var(--lr-icon-button-size); border: 0; border-radius: var(--lr-radius-pill); background: transparent; color: inherit; cursor: pointer; }
|
|
78
67
|
[part='close-button']:where(:hover) { background: var(--lr-callout-close-hover-bg, var(--_lr-callout-close-hover-bg)); }
|
|
79
68
|
[part='close-button']:where(:active) { background: color-mix(in oklab, var(--lr-callout-close-hover-bg, var(--_lr-callout-close-hover-bg)), var(--lr-color-mix-partner) var(--lr-color-mix-active)); }
|
|
@@ -8,11 +8,6 @@ import{css}from"lit";const styles=css`
|
|
|
8
8
|
align-items: center;
|
|
9
9
|
gap: var(--lr-space-xs);
|
|
10
10
|
}
|
|
11
|
-
/* Deliberately its own local pill styling rather than instantiating a
|
|
12
|
-
real <lr-chip> in the shadow DOM for this -- keeps the group's
|
|
13
|
-
rendering self-contained instead of depending on chip.ts's internal
|
|
14
|
-
shape, the same way this family's overlay-shaped components duplicate
|
|
15
|
-
rather than nest one another. */
|
|
16
11
|
[part='overflow-indicator'] {
|
|
17
12
|
display: inline-flex;
|
|
18
13
|
align-items: center;
|
|
@@ -36,18 +31,10 @@ import{css}from"lit";const styles=css`
|
|
|
36
31
|
border-color var(--lr-transition-fast),
|
|
37
32
|
color var(--lr-transition-fast);
|
|
38
33
|
}
|
|
39
|
-
/* Dashed border marks it as a structural "more" affordance, distinct at a
|
|
40
|
-
glance from the solid-bordered real chips it sits alongside. */
|
|
41
34
|
[part='overflow-indicator']:hover {
|
|
42
35
|
border-color: var(--lr-color-brand);
|
|
43
36
|
color: var(--lr-color-text);
|
|
44
37
|
}
|
|
45
|
-
/* Pressed adds what the hover deliberately leaves alone -- a fill -- so the press is a visible
|
|
46
|
-
step further in, not a restatement. The surface is mixed toward --lr-color-mix-partner (which
|
|
47
|
-
follows the text colour), so the tint darkens on a light theme and lightens on a dark one
|
|
48
|
-
without this rule knowing which is in force. The border and text treatments are restated
|
|
49
|
-
rather than inherited from the hover rule because keyboard activation (Space/Enter on the
|
|
50
|
-
focused indicator) raises :active with no :hover at all. */
|
|
51
38
|
[part='overflow-indicator']:active {
|
|
52
39
|
border-color: var(--lr-color-brand);
|
|
53
40
|
color: var(--lr-color-text);
|
|
@@ -57,11 +44,6 @@ import{css}from"lit";const styles=css`
|
|
|
57
44
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
58
45
|
outline-offset: var(--lr-focus-ring-offset);
|
|
59
46
|
}
|
|
60
|
-
/* :where() zeroes the [aria-expanded='true'] qualifier's specificity contribution -- otherwise
|
|
61
|
-
this (0,2,0) rule would beat a consumer's own ::part(overflow-indicator) color override
|
|
62
|
-
whenever the picker is open. Color and border style route through scoped cssprops (mirroring
|
|
63
|
-
lr-widget's [aria-pressed='true'] treatment) so a consumer can retint or reshape just the
|
|
64
|
-
expanded state without hijacking the shared tokens used everywhere else. */
|
|
65
47
|
[part='overflow-indicator']:where([aria-expanded='true']) {
|
|
66
48
|
border-style: var(--lr-chip-group-overflow-expanded-border-style, solid);
|
|
67
49
|
color: var(--lr-chip-group-overflow-expanded-color, var(--lr-color-text));
|
|
@@ -3,38 +3,16 @@ import{css}from"lit";const styles=css`
|
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
max-inline-size: 100%;
|
|
5
5
|
vertical-align: middle;
|
|
6
|
-
/* One custom-property trio swapped by the single non-neutral rule below,
|
|
7
|
-
rather than repeating background/color/border per part per variant —
|
|
8
|
-
mirrors lr-tool-call-chip's/lr-attachment-chip's identical
|
|
9
|
-
-accent/-bg/-border trio so a chip's colour vocabulary reads the same
|
|
10
|
-
everywhere in the library. These are the 'neutral' values: neutral
|
|
11
|
-
deliberately opts out of the semantic grid's own neutral row (see the
|
|
12
|
-
class doc) and reads as a plain bordered surface instead. */
|
|
13
6
|
--_lr-chip-accent: var(--lr-color-text);
|
|
14
7
|
--_lr-chip-bg: var(--lr-color-surface);
|
|
15
8
|
--_lr-chip-border: var(--lr-color-border);
|
|
16
|
-
/* The medium defaults exactly reproduce the original fixed chip treatment. */
|
|
17
9
|
--_lr-chip-font-size: var(--lr-font-size-sm);
|
|
18
10
|
--_lr-chip-padding-block: var(--lr-size-0-25rem);
|
|
19
11
|
--_lr-chip-padding-inline: var(--lr-space-s);
|
|
20
12
|
--_lr-chip-gap: var(--lr-space-xs);
|
|
21
13
|
--_lr-chip-icon-size: var(--lr-font-size-sm);
|
|
22
|
-
/* Doesn't vary by size tier, so it's declared once here rather than re-assigned per
|
|
23
|
-
:host([size='…']) block -- same precedent as lr-button's --lr-button-radius. Consumed on
|
|
24
|
-
both [part='base'] and [part='remove-button'] below so a consumer retuning the chip's
|
|
25
|
-
corner shape gets a consistent remove-button corner too, not a mismatched one.
|
|
26
|
-
The rounded rectangle is the default and the pill is opt-in via [pill] below, matching
|
|
27
|
-
lr-badge/lr-tag: while this was unconditionally --lr-radius-pill, a 'pill' attribute would
|
|
28
|
-
have been indistinguishable from its own absence. */
|
|
29
14
|
--_lr-chip-radius: var(--lr-radius);
|
|
30
|
-
/* Component density floor. Interactive controls also enforce the shared
|
|
31
|
-
--lr-icon-button-size hit target; non-interactive display chips get no floor. */
|
|
32
15
|
--_lr-chip-min-height: var(--lr-size-1-5rem);
|
|
33
|
-
/* --lr-chip-height is intentionally NOT declared here. It is a consumer-facing exact-height
|
|
34
|
-
escape hatch consumed only through the var() fallbacks on [part='base'] below; declaring
|
|
35
|
-
any value for it (even 'auto') would make those fallback arms unreachable and turn
|
|
36
|
-
--lr-chip-min-height into dead code. Left undeclared, both arms stay live: the per-tier
|
|
37
|
-
floor falls out of the fallback, and setting the property pins an exact height. */
|
|
38
16
|
}
|
|
39
17
|
|
|
40
18
|
:host([pill]) {
|
|
@@ -48,9 +26,6 @@ import{css}from"lit";const styles=css`
|
|
|
48
26
|
:host([size='3xs']) {
|
|
49
27
|
--_lr-chip-font-size: var(--lr-font-size-3xs);
|
|
50
28
|
--_lr-chip-padding-block: 0;
|
|
51
|
-
/* Below --lr-space-2xs (the space scale's own floor, still used by the 2xs tier) --
|
|
52
|
-
same precedent as 2xs's own padding-block above, which already bottoms out below
|
|
53
|
-
the space scale via a raw --lr-size-* token rather than reusing --lr-space-2xs. */
|
|
54
29
|
--_lr-chip-padding-inline: var(--lr-size-0-0625rem);
|
|
55
30
|
--_lr-chip-gap: var(--lr-space-2xs);
|
|
56
31
|
--_lr-chip-icon-size: var(--lr-font-size-3xs);
|
|
@@ -69,10 +44,6 @@ import{css}from"lit";const styles=css`
|
|
|
69
44
|
--_lr-chip-gap: var(--lr-space-2xs);
|
|
70
45
|
--_lr-chip-icon-size: var(--lr-font-size-xs);
|
|
71
46
|
}
|
|
72
|
-
/* 'small'/'large' are the Web Awesome/Shoelace spellings of these same two tiers -- accepted
|
|
73
|
-
verbatim by CHIP_SIZE (chip.class.ts) rather than normalised away, same precedent as
|
|
74
|
-
sizes.styles.ts/contextual-vocabulary.styles.ts. 'medium' needs no rule of its own: it is
|
|
75
|
-
the default tier already declared on :host above, exactly like the unaliased 'm'. */
|
|
76
47
|
:host([size='s']),
|
|
77
48
|
:host([size='small']) {
|
|
78
49
|
--_lr-chip-font-size: var(--lr-font-size-xs);
|
|
@@ -99,13 +70,6 @@ import{css}from"lit";const styles=css`
|
|
|
99
70
|
--_lr-chip-min-height: var(--lr-size-2rem);
|
|
100
71
|
}
|
|
101
72
|
|
|
102
|
-
/* One rule for all four non-neutral variants, in place of the four near-identical blocks that
|
|
103
|
-
stood here: the shared variants sheet has already re-pointed --lr-color-fill-* at the active
|
|
104
|
-
variant's row of the semantic grid, so the chip reads generic slots and never names a variant.
|
|
105
|
-
Neutral is excluded rather than mapped, because it keeps the plain bordered-surface "no
|
|
106
|
-
signal" treatment declared on :host above instead of the grid's grey neutral row. Matching
|
|
107
|
-
[variant] as well as :not([variant='neutral']) keeps a host that has not yet reflected its
|
|
108
|
-
default attribute on the same neutral values. */
|
|
109
73
|
:host([variant]:not([variant='neutral'])) {
|
|
110
74
|
--_lr-chip-accent: var(--lr-color-fill-loud);
|
|
111
75
|
--_lr-chip-bg: var(--lr-color-fill-quiet);
|
|
@@ -128,9 +92,6 @@ import{css}from"lit";const styles=css`
|
|
|
128
92
|
font-size: var(--lr-chip-font-size, var(--_lr-chip-font-size));
|
|
129
93
|
font-weight: var(--lr-font-weight-medium);
|
|
130
94
|
line-height: var(--lr-line-height-snug);
|
|
131
|
-
/* Pinned only when --lr-chip-height is set; 'auto' otherwise, so a display chip keeps growing
|
|
132
|
-
to fit its own content. Applies to interactive and non-interactive chips alike -- the
|
|
133
|
-
interactive floor lives on the toggleable-host rule below. */
|
|
134
95
|
block-size: var(--lr-chip-height, auto);
|
|
135
96
|
}
|
|
136
97
|
|
|
@@ -145,13 +106,6 @@ import{css}from"lit";const styles=css`
|
|
|
145
106
|
:host([toggleable]:not([removable]):not([disabled])) [part='base']:hover {
|
|
146
107
|
background: color-mix(in srgb, var(--lr-chip-accent, var(--_lr-chip-accent)) 8%, var(--lr-chip-bg, var(--_lr-chip-bg)));
|
|
147
108
|
}
|
|
148
|
-
/* Pressed deepens the hover's own accent wash to the shared --lr-color-mix-active share --
|
|
149
|
-
roughly triple the hover's 8%, so the press is unmistakably a step past it. The accent, not
|
|
150
|
-
--lr-color-mix-partner, is the partner here: on every non-neutral variant the chip is a loud
|
|
151
|
-
accent on a quiet fill, so the accent already IS this surface's contrast partner, while the
|
|
152
|
-
shared partner follows the page text and would wash the variant's hue out at the exact moment
|
|
153
|
-
of the click. :active matches here even though the actual button is [part='toggle-button']
|
|
154
|
-
stretched over the base, because :active applies to the activated element's ancestors too. */
|
|
155
109
|
:host([toggleable]:not([removable]):not([disabled])) [part='base']:active {
|
|
156
110
|
background: color-mix(in srgb, var(--lr-chip-accent, var(--_lr-chip-accent)) var(--lr-color-mix-active), var(--lr-chip-bg, var(--_lr-chip-bg)));
|
|
157
111
|
}
|
|
@@ -160,15 +114,7 @@ import{css}from"lit";const styles=css`
|
|
|
160
114
|
outline-offset: var(--lr-focus-ring-offset);
|
|
161
115
|
}
|
|
162
116
|
:host([toggleable][selected]:not([removable])) [part='base'] {
|
|
163
|
-
/* Falls back to --lr-chip-bg (today's exact value) so every existing consumer renders
|
|
164
|
-
byte-identical when unset. A consumer wanting a distinct "active" tint independent of the
|
|
165
|
-
resting background sets --lr-chip-pressed-bg directly. */
|
|
166
117
|
background: var(--lr-chip-pressed-bg, var(--lr-chip-bg, var(--_lr-chip-bg)));
|
|
167
|
-
/* Falls back to --lr-chip-accent (today's exact value) so every
|
|
168
|
-
existing consumer, including all four non-neutral variants, renders
|
|
169
|
-
byte-identical when unset. A consumer with a per-item arbitrary
|
|
170
|
-
color sets --lr-chip-pressed-border directly, leaving
|
|
171
|
-
--lr-chip-accent (and therefore the label text color) untouched. */
|
|
172
118
|
border-color: var(--lr-chip-pressed-border, var(--lr-chip-accent, var(--_lr-chip-accent)));
|
|
173
119
|
}
|
|
174
120
|
|
|
@@ -187,9 +133,9 @@ import{css}from"lit";const styles=css`
|
|
|
187
133
|
min-inline-size: 0;
|
|
188
134
|
max-inline-size: 100%;
|
|
189
135
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
136
|
+
[part='start'] ::slotted([hidden]:not([hidden='until-found' i])) {
|
|
137
|
+
display: none;
|
|
138
|
+
}
|
|
193
139
|
[part='start'][hidden] {
|
|
194
140
|
display: none;
|
|
195
141
|
}
|
|
@@ -217,8 +163,9 @@ import{css}from"lit";const styles=css`
|
|
|
217
163
|
min-inline-size: 0;
|
|
218
164
|
max-inline-size: 100%;
|
|
219
165
|
}
|
|
220
|
-
|
|
221
|
-
|
|
166
|
+
[part='end'] ::slotted([hidden]:not([hidden='until-found' i])) {
|
|
167
|
+
display: none;
|
|
168
|
+
}
|
|
222
169
|
[part='end'][hidden] {
|
|
223
170
|
display: none;
|
|
224
171
|
}
|
|
@@ -240,8 +187,6 @@ import{css}from"lit";const styles=css`
|
|
|
240
187
|
cursor: not-allowed;
|
|
241
188
|
}
|
|
242
189
|
|
|
243
|
-
/* Keep the full target inside the chip's layout box. Negative margins made compact/custom-height
|
|
244
|
-
chips overlap adjacent controls and could let the target escape its painted owner. */
|
|
245
190
|
[part='remove-button'] {
|
|
246
191
|
flex: 0 0 auto;
|
|
247
192
|
display: inline-flex;
|
|
@@ -263,14 +208,6 @@ import{css}from"lit";const styles=css`
|
|
|
263
208
|
[part='remove-button']:not(:disabled):hover {
|
|
264
209
|
background: color-mix(in srgb, currentColor 16%, transparent);
|
|
265
210
|
}
|
|
266
|
-
/* Pressed lays the shared --lr-color-mix-active share of currentColor over the hover's own
|
|
267
|
-
scrim, which more than doubles the tint the hover produced -- a step past it, not a repeat.
|
|
268
|
-
currentColor rather than --lr-color-mix-partner: this button sits INSIDE the pill, whose
|
|
269
|
-
variant may have painted a loud fill beneath it, so the pill's own ink is the only colour
|
|
270
|
-
guaranteed to contrast there, while --lr-color-mix-partner follows the PAGE text and would
|
|
271
|
-
point the opposite way from the hover on a non-neutral chip. The hover value is restated
|
|
272
|
-
rather than referenced because it is a literal here, not a public custom property (unlike
|
|
273
|
-
<lr-tag>'s --lr-tag-remove-hover-background). */
|
|
274
211
|
[part='remove-button']:not(:disabled):active {
|
|
275
212
|
background: color-mix(in srgb, currentColor var(--lr-color-mix-active), color-mix(in srgb, currentColor 16%, transparent));
|
|
276
213
|
}
|
|
@@ -9,9 +9,6 @@ export interface ConfirmOptions {
|
|
|
9
9
|
cancelLabel?: string;
|
|
10
10
|
/** `'danger'` fills the confirm button with `--lr-color-danger` instead of `--lr-color-brand` -- for destructive actions. */
|
|
11
11
|
variant?: 'neutral' | 'danger';
|
|
12
|
-
/** @deprecated Use `variant` instead. Kept as a one-major back-compat alias; `variant` wins when
|
|
13
|
-
* both are set. */
|
|
14
|
-
tone?: 'neutral' | 'danger';
|
|
15
12
|
}
|
|
16
13
|
/**
|
|
17
14
|
* Show a confirmation modal, resolving `true` only when the confirm button
|
|
@@ -25,7 +22,7 @@ export interface ConfirmOptions {
|
|
|
25
22
|
* mounted after that request settles.
|
|
26
23
|
*
|
|
27
24
|
* Every dismissal path (confirm button, cancel button, Escape, backdrop
|
|
28
|
-
* click) funnels through `<lr-dialog>`'s own `close()`/`lr-
|
|
25
|
+
* click) funnels through `<lr-dialog>`'s own `close()`/`lr-close`
|
|
29
26
|
* event, so there is exactly one place that resolves the promise and tears
|
|
30
27
|
* the dialog down. Because that event is cancelable, a veto leaves this
|
|
31
28
|
* promise pending and the transient dialog mounted until a later accepted
|
|
@@ -9,4 +9,4 @@ import{LyraDialog}from"./dialog.class.js";import{defineElement,tag}from"../../..
|
|
|
9
9
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
10
10
|
outline-offset: var(--lr-focus-ring-offset);
|
|
11
11
|
}
|
|
12
|
-
`;function createButton(label,style,onClick){const button=document.createElement("button");return button.type="button",button.textContent=label,button.setAttribute(CONFIRM_BUTTON_ATTRIBUTE,""),button.style.cssText=`${BUTTON_BASE_STYLE} ${style}`,button.addEventListener("click",onClick),button}function confirm(options){defineElement("dialog",LyraDialog);const{title,description,confirmLabel,cancelLabel,variant
|
|
12
|
+
`;function createButton(label,style,onClick){const button=document.createElement("button");return button.type="button",button.textContent=label,button.setAttribute(CONFIRM_BUTTON_ATTRIBUTE,""),button.style.cssText=`${BUTTON_BASE_STYLE} ${style}`,button.addEventListener("click",onClick),button}function confirm(options){defineElement("dialog",LyraDialog);const{title,description,confirmLabel,cancelLabel,variant}=options,resolvedVariant=variant??"neutral";return new Promise(resolve=>{const dialog=document.createElement(tag("dialog"));dialog.lightDismiss=!0;let settled=!1;const buttonStates=document.createElement("style");buttonStates.textContent=BUTTON_STATE_STYLE,dialog.appendChild(buttonStates);const heading=document.createElement("h2");if(heading.textContent=title,heading.style.cssText="margin: 0 0 var(--lr-space-s) 0; font-size: var(--lr-size-1-0625rem); font-weight: var(--lr-font-weight-semibold);",dialog.appendChild(heading),description){const desc=document.createElement("p");desc.textContent=description,desc.style.cssText="margin: var(--lr-space-xs) 0 0 0; color: var(--lr-color-text-quiet);",dialog.appendChild(desc)}dialog.addEventListener("lr-close",event=>{queueMicrotask(()=>{if(settled||event.defaultPrevented)return;settled=!0;const reason=event.detail;resolve(reason==="confirm"),dialog.remove()})});const cancelButton=createButton(resolveLyraString(dialog,"cancel",void 0,cancelLabel,void 0,CONFIRM_DEFAULT_STRINGS),CANCEL_STYLE,()=>dialog.close("cancel"));cancelButton.slot="footer";const confirmButton=createButton(resolveLyraString(dialog,"confirm",void 0,confirmLabel,void 0,CONFIRM_DEFAULT_STRINGS),CONFIRM_VARIANT_STYLE[resolvedVariant],()=>dialog.close("confirm"));confirmButton.slot="footer",dialog.appendChild(cancelButton),dialog.appendChild(confirmButton),dialog.open=!0,document.body.appendChild(dialog)})}export{confirm};
|
|
@@ -4,7 +4,7 @@ import { type LyraHeadingLevel } from '../../../internal/heading-level.js';
|
|
|
4
4
|
import { type OverlayDeactivateOptions } from '../../../internal/overlay-manager.js';
|
|
5
5
|
import { type RegisteredAnimationSpec } from '../../../internal/registered-animation.js';
|
|
6
6
|
/**
|
|
7
|
-
* Reason a dialog was dismissed, forwarded as the `lr-
|
|
7
|
+
* Reason a dialog was dismissed, forwarded as the `lr-close` event
|
|
8
8
|
* detail. `'escape'` and `'backdrop'` are emitted by the dialog's own built-in
|
|
9
9
|
* dismiss triggers; `'close-button'` by the built-in header close button
|
|
10
10
|
* (rendered when `closable` is set); `'unmount'` is emitted when the dialog is
|
|
@@ -36,7 +36,7 @@ export interface LyraDialogEventMap {
|
|
|
36
36
|
'lr-after-hide': CustomEvent<null>;
|
|
37
37
|
'lr-initial-focus': CustomEvent<null>;
|
|
38
38
|
'lr-request-close': CustomEvent<LyraDialogRequestCloseDetail>;
|
|
39
|
-
'lr-
|
|
39
|
+
'lr-close': CustomEvent<DialogCloseReason>;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* `<lr-dialog>` — a general-purpose modal/overlay. `role="dialog"`,
|
|
@@ -50,7 +50,7 @@ export interface LyraDialogEventMap {
|
|
|
50
50
|
*
|
|
51
51
|
* Lifecycle: `show()` emits `lr-show` (cancelable) and then, once the enter animation has
|
|
52
52
|
* finished, `lr-after-show`. `hide()`/`close()` emit `lr-hide` (cancelable), then
|
|
53
|
-
* `lr-
|
|
53
|
+
* `lr-close` (cancelable, carrying the dismissal reason), then — once the exit animation
|
|
54
54
|
* has finished — `lr-after-hide`. Assigning `open` runs the same lifecycle, so the property, the
|
|
55
55
|
* reflected attribute, and the two method calls can never disagree. Markup that renders open
|
|
56
56
|
* from the start emits nothing, matching `<lr-menu>`.
|
|
@@ -102,7 +102,7 @@ export interface LyraDialogEventMap {
|
|
|
102
102
|
* @event lr-show - The dialog is about to open. Cancelable — `preventDefault()` keeps it closed.
|
|
103
103
|
* @event lr-after-show - The dialog is open and its enter animation has finished.
|
|
104
104
|
* @event lr-hide - The dialog is about to close, for every dismissal path. Cancelable —
|
|
105
|
-
* `preventDefault()` keeps it open and stops `lr-
|
|
105
|
+
* `preventDefault()` keeps it open and stops `lr-close` from firing at all. Detail is
|
|
106
106
|
* `{ source: Element }`, the affordance or host that requested the transition. The single
|
|
107
107
|
* exception is an open dialog being removed from the document: the close has already happened
|
|
108
108
|
* and cannot be undone, so that one is announced non-cancelable.
|
|
@@ -112,12 +112,15 @@ export interface LyraDialogEventMap {
|
|
|
112
112
|
* dialogs defer it until rendered, and reconnecting the same open dialog does not repeat it.
|
|
113
113
|
* @event lr-request-close - A built-in affordance requested dismissal. Cancelable; detail is
|
|
114
114
|
* `{ source: 'close-button' | 'keyboard' | 'overlay' }`.
|
|
115
|
-
* @event lr-
|
|
115
|
+
* @event lr-close - `detail: DialogCloseReason`. Cancelable — a listener calling
|
|
116
116
|
* `preventDefault()` stops the dialog from closing, for every dismissal path (Escape, backdrop,
|
|
117
117
|
* the built-in close button, `hide()`, `open = false`, or a consumer's own `close()` call).
|
|
118
118
|
* Fires after `lr-hide` and carries the one thing `lr-hide` does not: which affordance asked
|
|
119
|
-
* for the close.
|
|
120
|
-
*
|
|
119
|
+
* for the close. The plain `lr-close` spelling matches `<lr-tool-select-dialog>`,
|
|
120
|
+
* `<lr-tool-result-dialog>`, and `<lr-tool-approval-dialog>`, whose own docs already describe
|
|
121
|
+
* their close-reason detail as mirroring this shape. Also fired (with reason `'unmount'`,
|
|
122
|
+
* non-cancelable there since the element is already being removed) when the dialog is removed
|
|
123
|
+
* from the DOM while still open.
|
|
121
124
|
* @csspart base - Shoelace wrapper alias.
|
|
122
125
|
* @csspart backdrop - The full-viewport scrim behind the panel; also carries `overlay`.
|
|
123
126
|
* @csspart overlay - Shoelace alias on the backdrop.
|
|
@@ -275,13 +278,13 @@ export declare class LyraDialog extends LyraElement<LyraDialogEventMap> {
|
|
|
275
278
|
hide(): Promise<void>;
|
|
276
279
|
/**
|
|
277
280
|
* Close the dialog and return focus to whatever had it before the dialog
|
|
278
|
-
* opened. `reason` is forwarded as the `lr-
|
|
281
|
+
* opened. `reason` is forwarded as the `lr-close` detail --
|
|
279
282
|
* built-in triggers pass `'escape'`/`'backdrop'`/`'close-button'`; a
|
|
280
283
|
* consumer's own close affordance (e.g. a footer Cancel button) should
|
|
281
284
|
* call this directly with its own reason string, so every dismissal path
|
|
282
285
|
* funnels through the same event instead of the consumer having to also
|
|
283
286
|
* toggle `open` itself. `lr-hide` is emitted first and vetoing it stops
|
|
284
|
-
* `lr-
|
|
287
|
+
* `lr-close` from being emitted at all.
|
|
285
288
|
*/
|
|
286
289
|
close(reason?: DialogCloseReason): Promise<void>;
|
|
287
290
|
private closeFrom;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{resolveHeadingLevel}from"../../../internal/heading-level.js";import{activateOverlay,collectFocusableElements}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{animateRegistered}from"../../../internal/registered-animation.js";import{styles}from"./dialog.styles.js";import{LYRA_DEFAULT_close}from"../../../internal/default-strings.generated.js";const HEADING_SELECTOR='h1, h2, h3, h4, h5, h6, [role="heading"]';class LyraDialog extends LyraElement{constructor(){super(...arguments),this._open=!1,this.label="",this.headingLevel="3",this.closable=!0,this.withoutHeader=!1,this.noHeader=!1,this.withFooter=!1,this.accessibleLabel="",this.hostAriaLabel=null,this.lightDismiss=!1,this.hasFooterSlot=!1,this.hasLabelSlot=!1,this.hasHeaderActionsSlot=!1,this.headingObserverGeneration=0,this.transitionToken=0,this.transitionAnimations=[],this.headingId=nextId("dialog-heading"),this.externalModalDepth=0,this.modal={activateExternal:()=>{this.externalModalDepth++,this.externalModalDepth===1&&this.overlay?.suspend()},deactivateExternal:()=>{this.externalModalDepth!==0&&(this.externalModalDepth--,this.externalModalDepth===0&&this.open&&this.modalSurface&&(this.overlay?.resume(),queueMicrotask(()=>this.focusInitial())))}},this.onDefaultSlotChange=()=>{this.detectLightDomChrome()},this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onBackdropClick=()=>{this.lightDismiss&&this.overlay?.dismissBackdrop()},this.onCloseButtonClick=()=>{const button=this.renderRoot.querySelector('[part~="close-button"]')??this;this.requestClose("close-button","close-button",button)}}static{this.defaultStrings={...super.defaultStrings,close:LYRA_DEFAULT_close}}static{this.styles=[LyraElement.styles,styles]}get open(){return this._open}set open(next){const normalized=!!next;if(!this.coalesceOpenRequest(normalized)&&normalized!==this._open){if(!this.hasUpdated){this.applyOpenState(normalized);return}normalized?this.show():this.close("api")}}get modalSurface(){return!0}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer"),this.detectLightDomChrome()),changed.has("open")&&(this.flushPendingScrollLockRelease(),this.open?this.isConnected&&this.modalSurface&&this.activateOverlay():this.pendingScrollLockRelease=this.deactivateOverlay({deferScrollLockRelease:!0}))}flushPendingScrollLockRelease(){const release=this.pendingScrollLockRelease;this.pendingScrollLockRelease=void 0,release?.()}updated(changed){super.updated(changed),changed.has("open")&&this.open&&this.isConnected&&this.modalSurface&&(this.enterTopLayer(),this.focusInitial())}connectedCallback(){super.connectedCallback(),this.armHeadingObserver(),this.hasUpdated&&this.open&&this.modalSurface&&(this.overlay?.isActive()?this.overlay.resume():this.activateOverlay(),this.enterTopLayer(),queueMicrotask(()=>this.focusInitial()))}disconnectedCallback(){this.resetHeadingObserver(),super.disconnectedCallback(),this.overlay?.suspend(),this.transitionToken++,this.flushPendingScrollLockRelease(),this.cancelTransitionAnimations(),this.removeAttribute("data-closing"),this.open&&queueMicrotask(()=>{if(!this.isConnected&&this.open){if(this.emit("lr-hide",{source:this},{cancelable:this.disconnectHideCancelable}).defaultPrevented){this.syncOpenAttribute();return}this.applyOpenState(!1),this.emit("lr-dialog-close","unmount"),this.emit("lr-after-hide")}})}adoptedCallback(){super.adoptedCallback(),this.resetHeadingObserver()}armHeadingObserver(){const ownerDocument=this.ownerDocument;if(!this.isConnected||this.headingObserver&&this.headingObserverDocument===ownerDocument)return;this.resetHeadingObserver();const MutationObserverCtor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverCtor)return;const generation=this.headingObserverGeneration,observer=new MutationObserverCtor(()=>{this.headingObserver!==observer||this.headingObserverDocument!==ownerDocument||this.headingObserverGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||this.detectLightDomChrome()});this.headingObserver=observer,this.headingObserverDocument=ownerDocument,observer.observe(this,{childList:!0,characterData:!0,subtree:!0})}resetHeadingObserver(){this.headingObserverGeneration+=1,this.headingObserver?.disconnect(),this.headingObserver=void 0,this.headingObserverDocument=void 0}get disconnectHideCancelable(){return!1}detectLightDomChrome(){const children=Array.from(this.children),heading=children.find(el=>el.getAttribute("slot")===null&&el.matches(HEADING_SELECTOR));this.headingText=heading?.textContent?.trim()||void 0,this.hasLabelSlot=children.some(el=>el.getAttribute("slot")==="label"),this.hasHeaderActionsSlot=children.some(el=>el.getAttribute("slot")==="header-actions")}show(){if(this.coalesceOpenRequest(!0)||this._open)return Promise.resolve();this.beginOpenRequest(!0);const prevented=this.emit("lr-show",null,{cancelable:!0}).defaultPrevented,superseded=this.openRequestWasSuperseded(!0);return this.finishOpenRequest(),prevented||superseded?(this.syncOpenAttribute(),Promise.resolve()):(this.cancelTransitionAnimations(),this.removeAttribute("data-closing"),this.applyOpenState(!0),this.settleTransition("lr-after-show"))}hide(){return this.close("api")}close(reason="api"){return this.closeFrom(reason,this)}closeFrom(reason,source){return this.coalesceOpenRequest(!1)||!this._open?Promise.resolve():(this.beginOpenRequest(!1),this.emit("lr-hide",{source},{cancelable:!0}).defaultPrevented||this.openRequestWasSuperseded(!1)?(this.finishOpenRequest(),this.syncOpenAttribute(),Promise.resolve()):this.emit("lr-dialog-close",reason,{cancelable:!0}).defaultPrevented||this.openRequestWasSuperseded(!1)?(this.finishOpenRequest(),this.syncOpenAttribute(),Promise.resolve()):(this.finishOpenRequest(),this.cancelTransitionAnimations(),this.isConnected&&this.setAttribute("data-closing",""),this.applyOpenState(!1),this.settleTransition("lr-after-hide")))}coalesceOpenRequest(next){return this.openRequestTarget===void 0?!1:(this.openRequestDuringPreflight=next,!0)}beginOpenRequest(next){this.openRequestTarget=next,this.openRequestDuringPreflight=void 0}openRequestWasSuperseded(next){return this.openRequestDuringPreflight!==void 0&&this.openRequestDuringPreflight!==next}finishOpenRequest(){this.openRequestTarget=void 0,this.openRequestDuringPreflight=void 0}applyOpenState(next){const old=this._open;this._open=next,next&&(this.initialFocusDecision=void 0),this.requestUpdate("open",old)}syncOpenAttribute(){this.toggleAttribute("open",this._open)}panelAnimationName(showing){return showing?"dialog.show":"dialog.hide"}overlayAnimationName(showing){return showing?"dialog.overlay.show":"dialog.overlay.hide"}panelAnimationSpec(showing){const offset="translateY(calc(-1 * var(--lr-size-0-5rem)))";return{keyframes:showing?[{opacity:0,transform:offset},{opacity:1,transform:"translateY(0)"}]:[{opacity:1,transform:"translateY(0)"},{opacity:0,transform:offset}],durationProperties:[showing?"--show-duration":"--hide-duration","--lr-dialog-panel-duration","--lr-duration-base"],easingProperties:["--lr-easing-standard"]}}overlayAnimationSpec(showing){return{keyframes:showing?[{opacity:0},{opacity:1}]:[{opacity:1},{opacity:0}],durationProperties:[showing?"--show-duration":"--hide-duration","--lr-dialog-backdrop-duration","--lr-duration-fast"],easingProperties:["--lr-easing-standard"]}}cancelTransitionAnimations(){for(const animation of this.transitionAnimations)animation.cancel();this.transitionAnimations=[]}async settleTransition(event){const token=++this.transitionToken;if(await this.updateComplete,this.transitionToken===token){if(this.isConnected){const root=this.renderRoot,panel=root.querySelector('[part~="panel"]'),backdrop=root.querySelector('[part~="backdrop"]'),showing=event==="lr-after-show",animations=[panel?animateRegistered(this,panel,this.panelAnimationName(showing),this.effectiveDirection,this.panelAnimationSpec(showing)):void 0,this.modalSurface&&backdrop?animateRegistered(this,backdrop,this.overlayAnimationName(showing),this.effectiveDirection,this.overlayAnimationSpec(showing)):void 0].filter(animation=>animation!==void 0);if(this.transitionAnimations=animations,await Promise.all(animations.map(animation=>animation.finished.catch(()=>{}))),this.transitionToken!==token)return;this.cancelTransitionAnimations()}event==="lr-after-hide"&&(this.removeAttribute("data-closing"),this.leaveTopLayer(),this.flushPendingScrollLockRelease()),this.emit(event)}}enterTopLayer(){if(!(!this.isConnected||typeof this.showPopover!="function")){this.getAttribute("popover")!=="manual"&&this.setAttribute("popover","manual");try{this.isTopLayer()||this.showPopover()}catch{}}}leaveTopLayer(){if(typeof this.hidePopover=="function")try{this.isTopLayer()&&this.hidePopover()}catch{}}isTopLayer(){try{return this.matches(":popover-open")}catch{return!1}}requestClose(source,reason,sourceElement){this.emit("lr-request-close",{source},{cancelable:!0}).defaultPrevented||this.closeFrom(reason,sourceElement)}focusInitial(){this.overlay?.focusInitial()}activateOverlay(){!this.isConnected||this.overlay?.isActive()||(this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part~="panel"]')??null,onEscape:()=>{const panel=this.renderRoot.querySelector('[part~="panel"]')??this;this.requestClose("keyboard","escape",panel)},onBackdrop:()=>{const backdrop=this.renderRoot.querySelector('[part~="backdrop"]')??this;this.requestClose("overlay","backdrop",backdrop)},preferredInitialFocus:()=>{const panel=this.renderRoot.querySelector('[part~="panel"]'),body=this.renderRoot.querySelector('[part="body"]'),stops=body?collectFocusableElements(body):[];return stops.find(stop=>stop!==body)??stops[0]??panel},beforeInitialFocus:()=>(this.initialFocusDecision===void 0&&(this.initialFocusDecision=!this.emit("lr-initial-focus",null,{cancelable:!0}).defaultPrevented),this.initialFocusDecision),lockScroll:!0,suspendWhenUnrendered:!0}),this.externalModalDepth>0&&this.overlay.suspend())}deactivateOverlay(options){const overlay=this.overlay;return this.overlay=void 0,overlay?.deactivate(options)}render(){const suppressHeader=this.withoutHeader||this.noHeader,renderHeading=!suppressHeader&&!this.headingText&&(this.hasLabelSlot||this.label.length>0||!!this.heading),hasHostName=this.hostAriaLabel!==null,explicitName=hasHostName?this.hostAriaLabel:this.accessibleLabel||this.headingText,hasExplicitName=hasHostName||!!explicitName,useHeadingForName=!hasExplicitName&&renderHeading,showHeader=!suppressHeader&&(renderHeading||this.hasHeaderActionsSlot||this.closable),headingLevel=resolveHeadingLevel(this.headingLevel);return html`
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{resolveHeadingLevel}from"../../../internal/heading-level.js";import{activateOverlay,collectFocusableElements}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{closeIcon}from"../../../internal/icons.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{animateRegistered}from"../../../internal/registered-animation.js";import{styles}from"./dialog.styles.js";import{LYRA_DEFAULT_close}from"../../../internal/default-strings.generated.js";const HEADING_SELECTOR='h1, h2, h3, h4, h5, h6, [role="heading"]';class LyraDialog extends LyraElement{constructor(){super(...arguments),this._open=!1,this.label="",this.headingLevel="3",this.closable=!0,this.withoutHeader=!1,this.noHeader=!1,this.withFooter=!1,this.accessibleLabel="",this.hostAriaLabel=null,this.lightDismiss=!1,this.hasFooterSlot=!1,this.hasLabelSlot=!1,this.hasHeaderActionsSlot=!1,this.headingObserverGeneration=0,this.transitionToken=0,this.transitionAnimations=[],this.headingId=nextId("dialog-heading"),this.externalModalDepth=0,this.modal={activateExternal:()=>{this.externalModalDepth++,this.externalModalDepth===1&&this.overlay?.suspend()},deactivateExternal:()=>{this.externalModalDepth!==0&&(this.externalModalDepth--,this.externalModalDepth===0&&this.open&&this.modalSurface&&(this.overlay?.resume(),queueMicrotask(()=>this.focusInitial())))}},this.onDefaultSlotChange=()=>{this.detectLightDomChrome()},this.onFooterSlotChange=e=>{this.hasFooterSlot=e.target.assignedElements({flatten:!0}).length>0},this.onBackdropClick=()=>{this.lightDismiss&&this.overlay?.dismissBackdrop()},this.onCloseButtonClick=()=>{const button=this.renderRoot.querySelector('[part~="close-button"]')??this;this.requestClose("close-button","close-button",button)}}static{this.defaultStrings={...super.defaultStrings,close:LYRA_DEFAULT_close}}static{this.styles=[LyraElement.styles,styles]}get open(){return this._open}set open(next){const normalized=!!next;if(!this.coalesceOpenRequest(normalized)&&normalized!==this._open){if(!this.hasUpdated){this.applyOpenState(normalized);return}normalized?this.show():this.close("api")}}get modalSurface(){return!0}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasFooterSlot=Array.from(this.children).some(el=>el.getAttribute("slot")==="footer"),this.detectLightDomChrome()),changed.has("open")&&(this.flushPendingScrollLockRelease(),this.open?this.isConnected&&this.modalSurface&&this.activateOverlay():this.pendingScrollLockRelease=this.deactivateOverlay({deferScrollLockRelease:!0}))}flushPendingScrollLockRelease(){const release=this.pendingScrollLockRelease;this.pendingScrollLockRelease=void 0,release?.()}updated(changed){super.updated(changed),changed.has("open")&&this.open&&this.isConnected&&this.modalSurface&&(this.enterTopLayer(),this.focusInitial())}connectedCallback(){super.connectedCallback(),this.armHeadingObserver(),this.hasUpdated&&this.open&&this.modalSurface&&(this.overlay?.isActive()?this.overlay.resume():this.activateOverlay(),this.enterTopLayer(),queueMicrotask(()=>this.focusInitial()))}disconnectedCallback(){this.resetHeadingObserver(),super.disconnectedCallback(),this.overlay?.suspend(),this.transitionToken++,this.flushPendingScrollLockRelease(),this.cancelTransitionAnimations(),this.removeAttribute("data-closing"),this.open&&queueMicrotask(()=>{if(!this.isConnected&&this.open){if(this.emit("lr-hide",{source:this},{cancelable:this.disconnectHideCancelable}).defaultPrevented){this.syncOpenAttribute();return}this.applyOpenState(!1),this.emit("lr-close","unmount"),this.emit("lr-after-hide")}})}adoptedCallback(){super.adoptedCallback(),this.resetHeadingObserver()}armHeadingObserver(){const ownerDocument=this.ownerDocument;if(!this.isConnected||this.headingObserver&&this.headingObserverDocument===ownerDocument)return;this.resetHeadingObserver();const MutationObserverCtor=ownerDocument.defaultView?.MutationObserver;if(!MutationObserverCtor)return;const generation=this.headingObserverGeneration,observer=new MutationObserverCtor(()=>{this.headingObserver!==observer||this.headingObserverDocument!==ownerDocument||this.headingObserverGeneration!==generation||!this.isConnected||this.ownerDocument!==ownerDocument||this.detectLightDomChrome()});this.headingObserver=observer,this.headingObserverDocument=ownerDocument,observer.observe(this,{childList:!0,characterData:!0,subtree:!0})}resetHeadingObserver(){this.headingObserverGeneration+=1,this.headingObserver?.disconnect(),this.headingObserver=void 0,this.headingObserverDocument=void 0}get disconnectHideCancelable(){return!1}detectLightDomChrome(){const children=Array.from(this.children),heading=children.find(el=>el.getAttribute("slot")===null&&el.matches(HEADING_SELECTOR));this.headingText=heading?.textContent?.trim()||void 0,this.hasLabelSlot=children.some(el=>el.getAttribute("slot")==="label"),this.hasHeaderActionsSlot=children.some(el=>el.getAttribute("slot")==="header-actions")}show(){if(this.coalesceOpenRequest(!0)||this._open)return Promise.resolve();this.beginOpenRequest(!0);const prevented=this.emit("lr-show",null,{cancelable:!0}).defaultPrevented,superseded=this.openRequestWasSuperseded(!0);return this.finishOpenRequest(),prevented||superseded?(this.syncOpenAttribute(),Promise.resolve()):(this.cancelTransitionAnimations(),this.removeAttribute("data-closing"),this.applyOpenState(!0),this.settleTransition("lr-after-show"))}hide(){return this.close("api")}close(reason="api"){return this.closeFrom(reason,this)}closeFrom(reason,source){return this.coalesceOpenRequest(!1)||!this._open?Promise.resolve():(this.beginOpenRequest(!1),this.emit("lr-hide",{source},{cancelable:!0}).defaultPrevented||this.openRequestWasSuperseded(!1)?(this.finishOpenRequest(),this.syncOpenAttribute(),Promise.resolve()):this.emit("lr-close",reason,{cancelable:!0}).defaultPrevented||this.openRequestWasSuperseded(!1)?(this.finishOpenRequest(),this.syncOpenAttribute(),Promise.resolve()):(this.finishOpenRequest(),this.cancelTransitionAnimations(),this.isConnected&&this.setAttribute("data-closing",""),this.applyOpenState(!1),this.settleTransition("lr-after-hide")))}coalesceOpenRequest(next){return this.openRequestTarget===void 0?!1:(this.openRequestDuringPreflight=next,!0)}beginOpenRequest(next){this.openRequestTarget=next,this.openRequestDuringPreflight=void 0}openRequestWasSuperseded(next){return this.openRequestDuringPreflight!==void 0&&this.openRequestDuringPreflight!==next}finishOpenRequest(){this.openRequestTarget=void 0,this.openRequestDuringPreflight=void 0}applyOpenState(next){const old=this._open;this._open=next,next&&(this.initialFocusDecision=void 0),this.requestUpdate("open",old)}syncOpenAttribute(){this.toggleAttribute("open",this._open)}panelAnimationName(showing){return showing?"dialog.show":"dialog.hide"}overlayAnimationName(showing){return showing?"dialog.overlay.show":"dialog.overlay.hide"}panelAnimationSpec(showing){const offset="translateY(calc(-1 * var(--lr-size-0-5rem)))";return{keyframes:showing?[{opacity:0,transform:offset},{opacity:1,transform:"translateY(0)"}]:[{opacity:1,transform:"translateY(0)"},{opacity:0,transform:offset}],durationProperties:[showing?"--show-duration":"--hide-duration","--lr-dialog-panel-duration","--lr-duration-base"],easingProperties:["--lr-easing-standard"]}}overlayAnimationSpec(showing){return{keyframes:showing?[{opacity:0},{opacity:1}]:[{opacity:1},{opacity:0}],durationProperties:[showing?"--show-duration":"--hide-duration","--lr-dialog-backdrop-duration","--lr-duration-fast"],easingProperties:["--lr-easing-standard"]}}cancelTransitionAnimations(){for(const animation of this.transitionAnimations)animation.cancel();this.transitionAnimations=[]}async settleTransition(event){const token=++this.transitionToken;if(await this.updateComplete,this.transitionToken===token){if(this.isConnected){const root=this.renderRoot,panel=root.querySelector('[part~="panel"]'),backdrop=root.querySelector('[part~="backdrop"]'),showing=event==="lr-after-show",animations=[panel?animateRegistered(this,panel,this.panelAnimationName(showing),this.effectiveDirection,this.panelAnimationSpec(showing)):void 0,this.modalSurface&&backdrop?animateRegistered(this,backdrop,this.overlayAnimationName(showing),this.effectiveDirection,this.overlayAnimationSpec(showing)):void 0].filter(animation=>animation!==void 0);if(this.transitionAnimations=animations,await Promise.all(animations.map(animation=>animation.finished.catch(()=>{}))),this.transitionToken!==token)return;this.cancelTransitionAnimations()}event==="lr-after-hide"&&(this.removeAttribute("data-closing"),this.leaveTopLayer(),this.flushPendingScrollLockRelease()),this.emit(event)}}enterTopLayer(){if(!(!this.isConnected||typeof this.showPopover!="function")){this.getAttribute("popover")!=="manual"&&this.setAttribute("popover","manual");try{this.isTopLayer()||this.showPopover()}catch{}}}leaveTopLayer(){if(typeof this.hidePopover=="function")try{this.isTopLayer()&&this.hidePopover()}catch{}}isTopLayer(){try{return this.matches(":popover-open")}catch{return!1}}requestClose(source,reason,sourceElement){this.emit("lr-request-close",{source},{cancelable:!0}).defaultPrevented||this.closeFrom(reason,sourceElement)}focusInitial(){this.overlay?.focusInitial()}activateOverlay(){!this.isConnected||this.overlay?.isActive()||(this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part~="panel"]')??null,onEscape:()=>{const panel=this.renderRoot.querySelector('[part~="panel"]')??this;this.requestClose("keyboard","escape",panel)},onBackdrop:()=>{const backdrop=this.renderRoot.querySelector('[part~="backdrop"]')??this;this.requestClose("overlay","backdrop",backdrop)},preferredInitialFocus:()=>{const panel=this.renderRoot.querySelector('[part~="panel"]'),body=this.renderRoot.querySelector('[part="body"]'),stops=body?collectFocusableElements(body):[];return stops.find(stop=>stop!==body)??stops[0]??panel},beforeInitialFocus:()=>(this.initialFocusDecision===void 0&&(this.initialFocusDecision=!this.emit("lr-initial-focus",null,{cancelable:!0}).defaultPrevented),this.initialFocusDecision),lockScroll:!0,suspendWhenUnrendered:!0}),this.externalModalDepth>0&&this.overlay.suspend())}deactivateOverlay(options){const overlay=this.overlay;return this.overlay=void 0,overlay?.deactivate(options)}render(){const suppressHeader=this.withoutHeader||this.noHeader,renderHeading=!suppressHeader&&!this.headingText&&(this.hasLabelSlot||this.label.length>0||!!this.heading),hasHostName=this.hostAriaLabel!==null,explicitName=hasHostName?this.hostAriaLabel:this.accessibleLabel||this.headingText,hasExplicitName=hasHostName||!!explicitName,useHeadingForName=!hasExplicitName&&renderHeading,showHeader=!suppressHeader&&(renderHeading||this.hasHeaderActionsSlot||this.closable),headingLevel=resolveHeadingLevel(this.headingLevel);return html`
|
|
2
2
|
<div part="base">
|
|
3
3
|
<div part="backdrop overlay" @click=${this.onBackdropClick}></div>
|
|
4
4
|
<div
|