@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
|
@@ -67,8 +67,6 @@ import{css}from"lit";const styles=css`
|
|
|
67
67
|
[part='evidence-toggle'][aria-expanded='true'] [part='evidence-toggle-icon'] svg {
|
|
68
68
|
transform: rotate(90deg);
|
|
69
69
|
}
|
|
70
|
-
/* Mirrors this family's own chevron-mirroring convention (see lr-trace-tree): rotation is
|
|
71
|
-
physical, so a collapsed chevron under RTL points the opposite way from LTR. */
|
|
72
70
|
:host(:dir(rtl)) [part='evidence-toggle']:not([aria-expanded='true']) [part='evidence-toggle-icon'] svg {
|
|
73
71
|
transform: rotate(180deg);
|
|
74
72
|
}
|
|
@@ -12,20 +12,10 @@ import{css}from"lit";const styles=css`
|
|
|
12
12
|
border-radius: var(--lr-radius);
|
|
13
13
|
background: var(--lr-color-surface);
|
|
14
14
|
}
|
|
15
|
-
/* Density escape -- same convention as lr-empty's compact. Source cards render in lists, so the
|
|
16
|
-
tuned values sit behind inline var() fallbacks (rather than a :host declaration, which every
|
|
17
|
-
instance re-declares and so shadows any ancestor value) letting a list retune every card at
|
|
18
|
-
once from the outside; the fallbacks are the pre-existing values scaled down one step, so an
|
|
19
|
-
unset card renders unchanged. */
|
|
20
15
|
:host([compact]) [part='base'] {
|
|
21
16
|
padding: var(--lr-source-card-compact-padding, var(--lr-space-xs));
|
|
22
17
|
gap: var(--lr-source-card-compact-gap, var(--lr-space-2xs));
|
|
23
18
|
}
|
|
24
|
-
/* MUST stay after :host([compact]): both selectors are :host([x]) [part='base'], i.e. equal
|
|
25
|
-
specificity, so source order alone decides which padding/gap wins when a card is both compact
|
|
26
|
-
and plain. plain is the stronger statement ("no chrome at all"), so it goes last. The title and
|
|
27
|
-
toggle affordances are brand-colored text with a hover underline, never a border, so they stay
|
|
28
|
-
legible with no chrome behind them. */
|
|
29
19
|
:host([frame='plain']) [part='base'] {
|
|
30
20
|
padding: 0;
|
|
31
21
|
border: 0;
|
|
@@ -53,9 +43,6 @@ import{css}from"lit";const styles=css`
|
|
|
53
43
|
[part='title']:hover {
|
|
54
44
|
text-decoration: underline;
|
|
55
45
|
}
|
|
56
|
-
/* Both affordances here are transparent-backed brand-colored text (see the frame='plain' note
|
|
57
|
-
above), so the pressed signal is a wash mixed from that transparent base -- the label itself has
|
|
58
|
-
to keep its brand color to stay readable as a link. */
|
|
59
46
|
[part='title']:active {
|
|
60
47
|
text-decoration: underline;
|
|
61
48
|
background: color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
@@ -47,13 +47,6 @@ import{css}from"lit";const styles=css`
|
|
|
47
47
|
:host([expanded]) [part='toggle'] {
|
|
48
48
|
transform: rotate(90deg);
|
|
49
49
|
}
|
|
50
|
-
/* RTL: the resting (collapsed) chevron mirrors to point left, the
|
|
51
|
-
conventional mirrored disclosure-triangle direction for RTL. Scoped to
|
|
52
|
-
the collapsed state specifically (rather than a plain :dir(rtl) rule) so
|
|
53
|
-
it never has to compete with the rule above for the expanded state, which
|
|
54
|
-
needs no mirroring: rotating this left-right-asymmetric glyph 90deg
|
|
55
|
-
already produces a left-right-symmetric down chevron. Mirrors
|
|
56
|
-
lr-code-block's identical toggle chevron. */
|
|
57
50
|
:host(:not([expanded]):dir(rtl)) [part='toggle'] {
|
|
58
51
|
transform: scaleX(-1);
|
|
59
52
|
}
|
|
@@ -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{styleMap}from"lit/directives/style-map.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isNonBlankIdentity}from"../retrieval-identity.js";import{isRtl}from"../../../internal/rtl.js";import"../../media/file-icon/file-icon.class.js";import"../../forms/input/input.class.js";import"../../forms/checkbox/checkbox.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./source-picker.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{activeElementIn}from"../../../internal/active-element.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_date,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_fileSizeUnitB,LYRA_DEFAULT_fileSizeUnitGb,LYRA_DEFAULT_fileSizeUnitKb,LYRA_DEFAULT_fileSizeUnitMb,LYRA_DEFAULT_fileSizeUnitTb,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_noMatches,LYRA_DEFAULT_open,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_selectAllSources,LYRA_DEFAULT_sourceListDefaultLabel,LYRA_DEFAULT_sourcePickerSelection,LYRA_DEFAULT_valueInvalid}from"../../../internal/default-strings.generated.js";const MAX_SOURCE_NODES=2e3,MAX_SOURCE_DEPTH=64;class LyraSourcePicker extends LyraElement{constructor(){super(...arguments),this.sources=[],this.selectedSourceIds=[],this.showSelectAll=!0,this.searchable=!0,this.accessibleLabel=null,this.expandedIds=new Set,this.query="",this.activeId=null,this.keyboardFocusGeneration=0,this.isMounting=!0,this.lastFilterAnnouncement="",this.onTreeKeyDown=e=>{const rows=this.visibleRows();if(rows.length===0)return;const currentIndex=Math.max(0,rows.findIndex(r=>r.entry.id===this.activeId)),current=rows[currentIndex],rtl=isRtl(this),expandKey=rtl?"ArrowLeft":"ArrowRight",collapseKey=rtl?"ArrowRight":"ArrowLeft";switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRowByIndex(Math.min(rows.length-1,currentIndex+1),rows);break;case"ArrowUp":e.preventDefault(),this.focusRowByIndex(Math.max(0,currentIndex-1),rows);break;case"Home":e.preventDefault(),this.focusRowByIndex(0,rows);break;case"End":e.preventDefault(),this.focusRowByIndex(rows.length-1,rows);break;case expandKey:if(e.preventDefault(),current.hasChildren&&!this.expandedIds.has(current.entry.id))this.expandedIds=new Set(this.expandedIds).add(current.entry.id);else if(current.hasChildren){const next=this.visibleRows()[currentIndex+1];next&&next.depth>current.depth&&this.focusRowByIndex(currentIndex+1,this.visibleRows())}break;case collapseKey:if(e.preventDefault(),current.hasChildren&&this.expandedIds.has(current.entry.id)){const set=new Set(this.expandedIds);set.delete(current.entry.id),this.expandedIds=set}else for(let i=currentIndex-1;i>=0;i--)if(rows[i].depth<current.depth){this.focusRowByIndex(i,rows);break}break;case"Enter":case" ":e.preventDefault(),this.toggleEntry(current.entry);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,date:LYRA_DEFAULT_date,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,fileSizeUnitB:LYRA_DEFAULT_fileSizeUnitB,fileSizeUnitGb:LYRA_DEFAULT_fileSizeUnitGb,fileSizeUnitKb:LYRA_DEFAULT_fileSizeUnitKb,fileSizeUnitMb:LYRA_DEFAULT_fileSizeUnitMb,fileSizeUnitTb:LYRA_DEFAULT_fileSizeUnitTb,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,noMatches:LYRA_DEFAULT_noMatches,open:LYRA_DEFAULT_open,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,selectAllSources:LYRA_DEFAULT_selectAllSources,sourceListDefaultLabel:LYRA_DEFAULT_sourceListDefaultLabel,sourcePickerSelection:LYRA_DEFAULT_sourcePickerSelection,valueInvalid:LYRA_DEFAULT_valueInvalid}}static{this.ownedCollectionProperties=Object.freeze(["sources","selectedSourceIds"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-sources-change"])}connectedCallback(){super.connectedCallback(),this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this})}disconnectedCallback(){this.isMounting=!0,this.lastFilterAnnouncement="",this.announcementSink?.release(),this.announcementSink=void 0,super.disconnectedCallback()}get sourceModel(){if(this.normalizedInput===this.sources&&this.normalizedModel)return this.normalizedModel;const roots=[],nodes=[],byEntry=new WeakMap,seenObjects=new WeakSet,seenIds=new Set;let limited=!1;const stack=[];stack.push({sources:this.sources,target:roots,depth:0,index:0});let inspected=0;for(;stack.length;){const frame=stack[stack.length-1];if(frame.index>=frame.sources.length){stack.pop();continue}if(inspected>=MAX_SOURCE_NODES){limited=!0;break}const source=frame.sources[frame.index++];if(inspected++,!source||typeof source!="object"||seenObjects.has(source)||!isNonBlankIdentity(source.id)||seenIds.has(source.id)){limited=!0;continue}if(nodes.length>=MAX_SOURCE_NODES||frame.depth>MAX_SOURCE_DEPTH){limited=!0;continue}seenObjects.add(source),seenIds.add(source.id);const declaredGroup=Array.isArray(source.children),entry={id:source.id,label:source.label,...source.mimeType!==void 0?{mimeType:source.mimeType}:{},...source.name!==void 0?{name:source.name}:{},...declaredGroup?{children:[]}:{}},node={entry,depth:frame.depth,children:[],leafIds:[]};declaredGroup&&(entry.children=node.children.map(child=>child.entry)),frame.target.push(node),nodes.push(node),byEntry.set(entry,node);const children=source.children??[];children.length&&frame.depth>=MAX_SOURCE_DEPTH&&(limited=!0),children.length&&frame.depth<MAX_SOURCE_DEPTH&&stack.push({sources:children,target:node.children,depth:frame.depth+1,index:0})}for(let index=nodes.length-1;index>=0;index--){const node=nodes[index];node.entry.children!==void 0&&(node.entry.children=node.children.map(child=>child.entry)),node.leafIds=node.entry.children===void 0?[node.entry.id]:[...new Set(node.children.flatMap(child=>child.leafIds))]}const leafIds=[...new Set(roots.flatMap(root=>root.leafIds))];return this.normalizedInput=this.sources,this.normalizedModel={roots,nodes,byEntry,leafIds,limited},this.normalizedModel}allLeafIds(){return this.sourceModel.leafIds}descendantLeafIds(entry){return this.sourceModel.byEntry.get(entry)?.leafIds??[]}normalizedSelectedSourceIds(){const valid=new Set(this.allLeafIds()),seen=new Set;return this.selectedSourceIds.filter(id=>!valid.has(id)||seen.has(id)?!1:(seen.add(id),!0))}checkedState(entry){const leaves=this.descendantLeafIds(entry),selected=leaves.filter(id=>this.selectedSourceIds.includes(id));return selected.length===0?"false":selected.length===leaves.length?"true":"mixed"}matchesQuery(entry){return entry.label.toLocaleLowerCase(this.effectiveLocale).includes(this.query.trim().toLocaleLowerCase(this.effectiveLocale))}isFiltering(){return this.searchable&&this.query.trim().length>0}visibleRows(){const rows=[],filtering=this.isFiltering(),matches=new Set;if(filtering)for(let index=this.sourceModel.nodes.length-1;index>=0;index--){const node=this.sourceModel.nodes[index];(this.matchesQuery(node.entry)||node.children.some(child=>matches.has(child)))&&matches.add(node)}const stack=[...this.sourceModel.roots].reverse();for(;stack.length;){const node=stack.pop();if(filtering&&!matches.has(node))continue;const hasChildren=node.entry.children!==void 0;if(rows.push({entry:node.entry,depth:node.depth,hasChildren}),hasChildren&&(filtering||this.expandedIds.has(node.entry.id)))for(let index=node.children.length-1;index>=0;index--)stack.push(node.children[index])}return rows}willUpdate(changed){if(super.willUpdate(changed),changed.has("sources")||changed.has("selectedSourceIds")){const normalized=this.normalizedSelectedSourceIds();(normalized.length!==this.selectedSourceIds.length||normalized.some((id,index)=>id!==this.selectedSourceIds[index]))&&(this.selectedSourceIds=normalized)}if(!changed.has("sources")&&!changed.has("query")&&!changed.has("expandedIds"))return;const focusedIndex=Array.from(this.renderRoot.querySelectorAll('[part~="item"]')).indexOf(activeElementIn(this.shadowRoot)),rows=this.visibleRows(),retainedIndex=rows.findIndex(row=>row.entry.id===this.activeId),nextIndex=retainedIndex>=0?retainedIndex:rows.length?Math.min(Math.max(focusedIndex,0),rows.length-1):-1;this.activeId=nextIndex>=0?rows[nextIndex].entry.id:null,focusedIndex>=0&&(this.pendingFocusIndex=nextIndex>=0?nextIndex:this.sources.length===0||!this.searchable?"base":"search")}updated(changed){super.updated(changed);const pending=this.pendingFocusIndex;pending!==void 0&&(this.pendingFocusIndex=void 0,pending==="search"?this.renderRoot.querySelector('[part~="search"]')?.focus():pending==="base"?this.renderRoot.querySelector('[part="base"]')?.focus():this.renderRoot.querySelectorAll('[part~="item"]')[pending]?.focus());const wasMounting=this.isMounting;if(this.isMounting=!1,wasMounting||!changed.has("query")&&!changed.has("sources"))return;if(!this.isFiltering()){this.lastFilterAnnouncement="";return}const count=this.visibleRows().length,signature=`${this.query.trim().toLocaleLowerCase(this.effectiveLocale)}\0${count}`;signature!==this.lastFilterAnnouncement&&(this.lastFilterAnnouncement=signature,count===0&&this.announcementSink?.announce(this.localize("noMatches")))}commitSelection(next){this.selectedSourceIds=next,this.emit("lr-sources-change",{selectedSourceIds:next})}toggleEntry(entry){const leaves=this.descendantLeafIds(entry),willSelect=this.checkedState(entry)!=="true",set=new Set(this.selectedSourceIds);for(const id of leaves)willSelect?set.add(id):set.delete(id);this.commitSelection([...set])}toggleSelectAll(){const all=this.allLeafIds(),allSelected=all.length>0&&all.every(id=>this.selectedSourceIds.includes(id));this.commitSelection(allSelected?[]:all)}focusRowByIndex(index,rows){const targetId=rows[index]?.entry.id;if(!targetId)return;this.activeId=targetId;const generation=++this.keyboardFocusGeneration;this.updateComplete.then(()=>{if(!this.isConnected||generation!==this.keyboardFocusGeneration)return;const currentIndex=this.visibleRows().findIndex(row=>row.entry.id===targetId);if(currentIndex<0)return;this.renderRoot.querySelectorAll('[part~="item"]')[currentIndex]?.focus()})}renderRow(row,active){const state2=this.checkedState(row.entry),expanded=row.hasChildren&&(this.expandedIds.has(row.entry.id)||this.isFiltering());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{styleMap}from"lit/directives/style-map.js";import{hostAriaLabel}from"../../../internal/a11y.js";import{LyraElement}from"../../../internal/lyra-element.js";import{isNonBlankIdentity}from"../retrieval-identity.js";import{isRtl}from"../../../internal/rtl.js";import"../../media/file-icon/file-icon.class.js";import"../../forms/input/input.class.js";import"../../forms/checkbox/checkbox.class.js";import"../../overlays/empty/empty.class.js";import{styles}from"./source-picker.styles.js";import{trueDefaultBooleanConverter}from"../../../internal/converters.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{activeElementIn}from"../../../internal/active-element.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_date,LYRA_DEFAULT_details,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_fileSizeUnitB,LYRA_DEFAULT_fileSizeUnitGb,LYRA_DEFAULT_fileSizeUnitKb,LYRA_DEFAULT_fileSizeUnitMb,LYRA_DEFAULT_fileSizeUnitTb,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_noMatches,LYRA_DEFAULT_open,LYRA_DEFAULT_popover,LYRA_DEFAULT_progress,LYRA_DEFAULT_restore,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_selectAllSources,LYRA_DEFAULT_sourceListDefaultLabel,LYRA_DEFAULT_sourcePickerSelection,LYRA_DEFAULT_valueInvalid}from"../../../internal/default-strings.generated.js";const MAX_SOURCE_NODES=2e3,MAX_SOURCE_DEPTH=64;class LyraSourcePicker extends LyraElement{constructor(){super(...arguments),this.sources=[],this.selectedSourceIds=[],this.showSelectAll=!0,this.searchable=!0,this.accessibleLabel=null,this.expandedIds=new Set,this.query="",this.activeId=null,this.keyboardFocusGeneration=0,this.isMounting=!0,this.lastFilterAnnouncement="",this.onTreeKeyDown=e=>{const rows=this.visibleRows();if(rows.length===0)return;const currentIndex=Math.max(0,rows.findIndex(r=>r.entry.id===this.activeId)),current=rows[currentIndex],rtl=isRtl(this),expandKey=rtl?"ArrowLeft":"ArrowRight",collapseKey=rtl?"ArrowRight":"ArrowLeft";switch(e.key){case"ArrowDown":e.preventDefault(),this.focusRowByIndex(Math.min(rows.length-1,currentIndex+1),rows);break;case"ArrowUp":e.preventDefault(),this.focusRowByIndex(Math.max(0,currentIndex-1),rows);break;case"Home":e.preventDefault(),this.focusRowByIndex(0,rows);break;case"End":e.preventDefault(),this.focusRowByIndex(rows.length-1,rows);break;case expandKey:if(e.preventDefault(),current.hasChildren&&!this.expandedIds.has(current.entry.id))this.expandedIds=new Set(this.expandedIds).add(current.entry.id);else if(current.hasChildren){const next=this.visibleRows()[currentIndex+1];next&&next.depth>current.depth&&this.focusRowByIndex(currentIndex+1,this.visibleRows())}break;case collapseKey:if(e.preventDefault(),current.hasChildren&&this.expandedIds.has(current.entry.id)){const set=new Set(this.expandedIds);set.delete(current.entry.id),this.expandedIds=set}else for(let i=currentIndex-1;i>=0;i--)if(rows[i].depth<current.depth){this.focusRowByIndex(i,rows);break}break;case"Enter":case" ":e.preventDefault(),this.toggleEntry(current.entry);break;default:return}}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,date:LYRA_DEFAULT_date,details:LYRA_DEFAULT_details,fieldRequired:LYRA_DEFAULT_fieldRequired,fileSizeUnitB:LYRA_DEFAULT_fileSizeUnitB,fileSizeUnitGb:LYRA_DEFAULT_fileSizeUnitGb,fileSizeUnitKb:LYRA_DEFAULT_fileSizeUnitKb,fileSizeUnitMb:LYRA_DEFAULT_fileSizeUnitMb,fileSizeUnitTb:LYRA_DEFAULT_fileSizeUnitTb,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,noMatches:LYRA_DEFAULT_noMatches,open:LYRA_DEFAULT_open,popover:LYRA_DEFAULT_popover,progress:LYRA_DEFAULT_progress,restore:LYRA_DEFAULT_restore,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,selectAllSources:LYRA_DEFAULT_selectAllSources,sourceListDefaultLabel:LYRA_DEFAULT_sourceListDefaultLabel,sourcePickerSelection:LYRA_DEFAULT_sourcePickerSelection,valueInvalid:LYRA_DEFAULT_valueInvalid}}static{this.ownedCollectionProperties=Object.freeze(["sources","selectedSourceIds"])}static{this.styles=[LyraElement.styles,styles]}static{this.immutableEventDetails=Object.freeze(["lr-sources-change"])}connectedCallback(){super.connectedCallback(),this.announcementSink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this})}disconnectedCallback(){this.isMounting=!0,this.lastFilterAnnouncement="",this.announcementSink?.release(),this.announcementSink=void 0,super.disconnectedCallback()}get sourceModel(){if(this.normalizedInput===this.sources&&this.normalizedModel)return this.normalizedModel;const roots=[],nodes=[],byEntry=new WeakMap,seenObjects=new WeakSet,seenIds=new Set;let limited=!1;const stack=[];stack.push({sources:this.sources,target:roots,depth:0,index:0});let inspected=0;for(;stack.length;){const frame=stack[stack.length-1];if(frame.index>=frame.sources.length){stack.pop();continue}if(inspected>=MAX_SOURCE_NODES){limited=!0;break}const source=frame.sources[frame.index++];if(inspected++,!source||typeof source!="object"||seenObjects.has(source)||!isNonBlankIdentity(source.id)||seenIds.has(source.id)){limited=!0;continue}if(nodes.length>=MAX_SOURCE_NODES||frame.depth>MAX_SOURCE_DEPTH){limited=!0;continue}seenObjects.add(source),seenIds.add(source.id);const declaredGroup=Array.isArray(source.children),entry={id:source.id,label:source.label,...source.mimeType!==void 0?{mimeType:source.mimeType}:{},...source.name!==void 0?{name:source.name}:{},...declaredGroup?{children:[]}:{}},node={entry,depth:frame.depth,children:[],leafIds:[]};declaredGroup&&(entry.children=node.children.map(child=>child.entry)),frame.target.push(node),nodes.push(node),byEntry.set(entry,node);const children=source.children??[];children.length&&frame.depth>=MAX_SOURCE_DEPTH&&(limited=!0),children.length&&frame.depth<MAX_SOURCE_DEPTH&&stack.push({sources:children,target:node.children,depth:frame.depth+1,index:0})}for(let index=nodes.length-1;index>=0;index--){const node=nodes[index];node.entry.children!==void 0&&(node.entry.children=node.children.map(child=>child.entry)),node.leafIds=node.entry.children===void 0?[node.entry.id]:[...new Set(node.children.flatMap(child=>child.leafIds))]}const leafIds=[...new Set(roots.flatMap(root=>root.leafIds))];return this.normalizedInput=this.sources,this.normalizedModel={roots,nodes,byEntry,leafIds,limited},this.normalizedModel}allLeafIds(){return this.sourceModel.leafIds}descendantLeafIds(entry){return this.sourceModel.byEntry.get(entry)?.leafIds??[]}normalizedSelectedSourceIds(){const valid=new Set(this.allLeafIds()),seen=new Set;return this.selectedSourceIds.filter(id=>!valid.has(id)||seen.has(id)?!1:(seen.add(id),!0))}checkedState(entry){const leaves=this.descendantLeafIds(entry),selected=leaves.filter(id=>this.selectedSourceIds.includes(id));return selected.length===0?"false":selected.length===leaves.length?"true":"mixed"}matchesQuery(entry){return entry.label.toLocaleLowerCase(this.effectiveLocale).includes(this.query.trim().toLocaleLowerCase(this.effectiveLocale))}isFiltering(){return this.searchable&&this.query.trim().length>0}visibleRows(){const rows=[],filtering=this.isFiltering(),matches=new Set;if(filtering)for(let index=this.sourceModel.nodes.length-1;index>=0;index--){const node=this.sourceModel.nodes[index];(this.matchesQuery(node.entry)||node.children.some(child=>matches.has(child)))&&matches.add(node)}const stack=[...this.sourceModel.roots].reverse();for(;stack.length;){const node=stack.pop();if(filtering&&!matches.has(node))continue;const hasChildren=node.entry.children!==void 0;if(rows.push({entry:node.entry,depth:node.depth,hasChildren}),hasChildren&&(filtering||this.expandedIds.has(node.entry.id)))for(let index=node.children.length-1;index>=0;index--)stack.push(node.children[index])}return rows}willUpdate(changed){if(super.willUpdate(changed),changed.has("sources")||changed.has("selectedSourceIds")){const normalized=this.normalizedSelectedSourceIds();(normalized.length!==this.selectedSourceIds.length||normalized.some((id,index)=>id!==this.selectedSourceIds[index]))&&(this.selectedSourceIds=normalized)}if(!changed.has("sources")&&!changed.has("query")&&!changed.has("expandedIds"))return;const focusedIndex=Array.from(this.renderRoot.querySelectorAll('[part~="item"]')).indexOf(activeElementIn(this.shadowRoot)),rows=this.visibleRows(),retainedIndex=rows.findIndex(row=>row.entry.id===this.activeId),nextIndex=retainedIndex>=0?retainedIndex:rows.length?Math.min(Math.max(focusedIndex,0),rows.length-1):-1;this.activeId=nextIndex>=0?rows[nextIndex].entry.id:null,focusedIndex>=0&&(this.pendingFocusIndex=nextIndex>=0?nextIndex:this.sources.length===0||!this.searchable?"base":"search")}updated(changed){super.updated(changed);const pending=this.pendingFocusIndex;pending!==void 0&&(this.pendingFocusIndex=void 0,pending==="search"?this.renderRoot.querySelector('[part~="search"]')?.focus():pending==="base"?this.renderRoot.querySelector('[part="base"]')?.focus():this.renderRoot.querySelectorAll('[part~="item"]')[pending]?.focus());const wasMounting=this.isMounting;if(this.isMounting=!1,wasMounting||!changed.has("query")&&!changed.has("sources"))return;if(!this.isFiltering()){this.lastFilterAnnouncement="";return}const count=this.visibleRows().length,signature=`${this.query.trim().toLocaleLowerCase(this.effectiveLocale)}\0${count}`;signature!==this.lastFilterAnnouncement&&(this.lastFilterAnnouncement=signature,count===0&&this.announcementSink?.announce(this.localize("noMatches")))}commitSelection(next){this.selectedSourceIds=next,this.emit("lr-sources-change",{selectedSourceIds:next})}toggleEntry(entry){const leaves=this.descendantLeafIds(entry),willSelect=this.checkedState(entry)!=="true",set=new Set(this.selectedSourceIds);for(const id of leaves)willSelect?set.add(id):set.delete(id);this.commitSelection([...set])}toggleSelectAll(){const all=this.allLeafIds(),allSelected=all.length>0&&all.every(id=>this.selectedSourceIds.includes(id));this.commitSelection(allSelected?[]:all)}focusRowByIndex(index,rows){const targetId=rows[index]?.entry.id;if(!targetId)return;this.activeId=targetId;const generation=++this.keyboardFocusGeneration;this.updateComplete.then(()=>{if(!this.isConnected||generation!==this.keyboardFocusGeneration)return;const currentIndex=this.visibleRows().findIndex(row=>row.entry.id===targetId);if(currentIndex<0)return;this.renderRoot.querySelectorAll('[part~="item"]')[currentIndex]?.focus()})}renderRow(row,active){const state2=this.checkedState(row.entry),expanded=row.hasChildren&&(this.expandedIds.has(row.entry.id)||this.isFiltering());return html`
|
|
2
2
|
<div
|
|
3
3
|
part="item"
|
|
4
4
|
role="treeitem"
|
|
@@ -43,10 +43,6 @@ import{css}from"lit";const styles=css`
|
|
|
43
43
|
min-inline-size: var(--lr-icon-button-size);
|
|
44
44
|
min-block-size: var(--lr-icon-button-size);
|
|
45
45
|
padding: var(--lr-size-4px) var(--lr-space-xs);
|
|
46
|
-
/* Per-level indent computed in CSS from the plain depth number the component writes inline,
|
|
47
|
-
rather than a pre-formatted dimension: that keeps the step a retheme-able token and lets the
|
|
48
|
-
indent be capped, so a deeply nested tree cannot push its labels off-screen with no way back.
|
|
49
|
-
Same shape lr-tree-item already uses. */
|
|
50
46
|
padding-inline-start: calc(
|
|
51
47
|
var(--lr-space-xs) +
|
|
52
48
|
min(
|
|
@@ -85,9 +81,6 @@ import{css}from"lit";const styles=css`
|
|
|
85
81
|
[part="item"]:hover {
|
|
86
82
|
background: color-mix(in srgb, var(--lr-color-text) 6%, transparent);
|
|
87
83
|
}
|
|
88
|
-
/* The row itself is the control here -- clicking anywhere in it toggles the source (the
|
|
89
|
-
[part='checkbox'] box inside is a painted div, not a focusable target), so the row earns a
|
|
90
|
-
pressed state of its own rather than deferring to something nested. */
|
|
91
84
|
[part="item"]:active {
|
|
92
85
|
background: color-mix(
|
|
93
86
|
in oklab,
|
|
@@ -8,8 +8,6 @@ import{css}from"lit";const styles=css`
|
|
|
8
8
|
slot:not([name]) {
|
|
9
9
|
display: contents;
|
|
10
10
|
}
|
|
11
|
-
/* Every selector below matches with ~= rather than =, because the button's part list gains a
|
|
12
|
-
state token ('base base-error') while the feedback state is showing. */
|
|
13
11
|
[part~='base'] {
|
|
14
12
|
display: inline-flex;
|
|
15
13
|
align-items: center;
|
|
@@ -27,9 +25,6 @@ import{css}from"lit";const styles=css`
|
|
|
27
25
|
-webkit-tap-highlight-color: transparent;
|
|
28
26
|
transition: background-color var(--lr-transition-fast);
|
|
29
27
|
}
|
|
30
|
-
/* :where() keeps this rule's specificity low ((0,1,0)) so a consumer's own
|
|
31
|
-
::part(base):hover override ((0,1,1)) wins without needing !important --
|
|
32
|
-
see lr-attachment-trigger's identical fix for the same reasoning. */
|
|
33
28
|
:where([part~='base']:not(:disabled)):hover {
|
|
34
29
|
background: color-mix(in srgb, var(--lr-color-text) 8%, transparent);
|
|
35
30
|
color: var(--lr-color-text);
|
|
@@ -38,9 +33,6 @@ import{css}from"lit";const styles=css`
|
|
|
38
33
|
background: color-mix(in oklab, transparent, var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
39
34
|
color: var(--lr-color-text);
|
|
40
35
|
}
|
|
41
|
-
/* After the hover and pressed rules, at equal specificity, so hovering or holding the failed
|
|
42
|
-
button still changes its background (the interactive affordance) without repainting the failure
|
|
43
|
-
color away. */
|
|
44
36
|
[part~='base-success'] {
|
|
45
37
|
color: var(--success-color, var(--lr-color-success));
|
|
46
38
|
}
|
|
@@ -63,8 +55,6 @@ import{css}from"lit";const styles=css`
|
|
|
63
55
|
[part~='base'] svg {
|
|
64
56
|
display: block;
|
|
65
57
|
}
|
|
66
|
-
/* The outcome is announced, not shown: the button is icon-only, so the status text exists for
|
|
67
|
-
assistive technology alone. Same clipped-1px pattern lr-pagination's live region uses. */
|
|
68
58
|
[part='feedback'] {
|
|
69
59
|
position: absolute;
|
|
70
60
|
inline-size: var(--lr-size-1px);
|
|
@@ -38,29 +38,15 @@ import{css}from"lit";const styles=css`
|
|
|
38
38
|
min-inline-size: 0;
|
|
39
39
|
}
|
|
40
40
|
[part="line"] {
|
|
41
|
-
/* Lives here (rather than on the ancestor pre element) so layout="split" -- whose lines sit
|
|
42
|
-
inside [part='side'], not a pre -- inherits the same monospace typography as the default
|
|
43
|
-
unified pre. font-family/font-size/line-height are all inheritable, so moving them here
|
|
44
|
-
from pre is visually identical for the unified layout (same computed values, just set
|
|
45
|
-
directly instead of inherited). */
|
|
46
41
|
font-family: var(--lr-diff-view-font, var(--_lr-diff-view-font));
|
|
47
42
|
font-size: var(--lr-font-size-sm);
|
|
48
43
|
line-height: var(--lr-line-height-snug);
|
|
49
44
|
white-space: pre-wrap;
|
|
50
|
-
/* The base/side owns horizontal scrolling while each line owns its change-state background.
|
|
51
|
-
Grow that painted box with an unbroken line, but keep short lines filling the scrollport. */
|
|
52
45
|
box-sizing: border-box;
|
|
53
46
|
inline-size: max-content;
|
|
54
47
|
min-inline-size: 100%;
|
|
55
48
|
}
|
|
56
49
|
[part="line"]:not([data-type="fold"]) {
|
|
57
|
-
/* Diffed source code is read left-to-right regardless of the surrounding document direction --
|
|
58
|
-
same rationale (and matching fix shape) as code-block.styles.ts's [part='pre']: without this,
|
|
59
|
-
an ancestor dir="rtl" bidi-reorders each line and right-aligns the block, making valid code
|
|
60
|
-
look syntactically broken. isolate keeps any RTL run inside a string/comment from leaking out
|
|
61
|
-
and reordering the surrounding code. Excludes [data-type='fold'] -- that line renders a
|
|
62
|
-
localized message ("N unchanged lines"), not code, and must keep following the ambient
|
|
63
|
-
(possibly RTL) direction like ordinary UI text. */
|
|
64
50
|
direction: ltr;
|
|
65
51
|
unicode-bidi: isolate;
|
|
66
52
|
}
|
|
@@ -17,15 +17,9 @@ import{css}from"lit";const styles=css`
|
|
|
17
17
|
min-block-size: var(--lr-icon-button-size);
|
|
18
18
|
cursor: pointer;
|
|
19
19
|
}
|
|
20
|
-
/* :where() zeroes the wrapped selectors' specificity contribution, leaving only :hover itself
|
|
21
|
-
-- (0,1,0) total, functionally identical selection to \`[part='trigger']:hover:not(:disabled)\`
|
|
22
|
-
((0,3,0)) but now losing (on the pseudo-element tiebreak) to a consumer's own
|
|
23
|
-
\`::part(trigger):hover\` override ((0,1,1)) without that consumer needing !important. */
|
|
24
20
|
:where([part='trigger']):hover:where(:not(:disabled)) {
|
|
25
21
|
border-color: var(--lr-color-brand);
|
|
26
22
|
}
|
|
27
|
-
/* Same :where() shape as the hover rule above, for the same reason -- a consumer's own
|
|
28
|
-
::part(trigger):active must still win without !important. */
|
|
29
23
|
:where([part='trigger']):active:where(:not(:disabled)) {
|
|
30
24
|
border-color: var(--lr-color-brand);
|
|
31
25
|
background: color-mix(in oklab, var(--lr-color-surface), var(--lr-color-mix-partner) var(--lr-color-mix-active));
|
|
@@ -39,18 +33,6 @@ import{css}from"lit";const styles=css`
|
|
|
39
33
|
outline-offset: var(--lr-focus-ring-offset);
|
|
40
34
|
}
|
|
41
35
|
[part='menu'] {
|
|
42
|
-
/* Closed state: invisible + slightly raised. visibility (not
|
|
43
|
-
display:none) so opacity/transform can actually transition; hit-testing
|
|
44
|
-
and a11y exposure stay off since this part is already position:fixed.
|
|
45
|
-
visibility deliberately isn't in the transition list below: a
|
|
46
|
-
transitioned property's computed value only settles to its new
|
|
47
|
-
target after the UA has run an actual style-change/rendering pass,
|
|
48
|
-
which lags behind a same-tick attribute write (e.g. updated()
|
|
49
|
-
synchronously focusing the first menu item right after flipping
|
|
50
|
-
open) -- that item would still resolve as visibility: hidden (and
|
|
51
|
-
so silently fail to focus) at the moment .focus() is called. Leaving
|
|
52
|
-
visibility untransitioned makes it apply immediately, in the same
|
|
53
|
-
synchronous style pass as the open attribute write. */
|
|
54
36
|
visibility: hidden;
|
|
55
37
|
position: fixed;
|
|
56
38
|
z-index: var(--lr-layer-dropdown);
|
|
@@ -71,7 +53,6 @@ import{css}from"lit";const styles=css`
|
|
|
71
53
|
background: var(--lr-color-surface);
|
|
72
54
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
73
55
|
border-radius: var(--lr-radius);
|
|
74
|
-
/* Anchored overlay: a positioner-placed menu floating over page content, not a modal layer. */
|
|
75
56
|
box-shadow: var(--lr-shadow-m);
|
|
76
57
|
opacity: 0;
|
|
77
58
|
transform: translateY(var(--lr-size-neg-4px));
|
|
@@ -95,7 +76,6 @@ import{css}from"lit";const styles=css`
|
|
|
95
76
|
align-items: start;
|
|
96
77
|
gap: var(--lr-size-1px);
|
|
97
78
|
box-sizing: border-box;
|
|
98
|
-
min-inline-size: 0;
|
|
99
79
|
inline-size: 100%;
|
|
100
80
|
min-inline-size: var(--lr-icon-button-size);
|
|
101
81
|
min-block-size: var(--lr-icon-button-size);
|
|
@@ -108,8 +88,6 @@ import{css}from"lit";const styles=css`
|
|
|
108
88
|
cursor: pointer;
|
|
109
89
|
border-radius: var(--lr-radius);
|
|
110
90
|
}
|
|
111
|
-
/* :where() zeroes the wrapped selectors' specificity contribution -- see the [part='trigger']
|
|
112
|
-
hover rule above for the full rationale. */
|
|
113
91
|
:where([part='menu-item']):hover:where(:not(:disabled)) {
|
|
114
92
|
background: var(--lr-color-brand-quiet);
|
|
115
93
|
}
|
|
@@ -24,9 +24,6 @@ import{css}from"lit";const styles=css`
|
|
|
24
24
|
justify-content: center;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
/* The custom-content slot is an assignment target only: syncCustomNodes() clones its trusted SVG
|
|
28
|
-
nodes into the component-owned svg above, where they have a real SVG parent and actually
|
|
29
|
-
paint. Rendering the slot itself would place the originals a second time, outside that svg. */
|
|
30
27
|
slot {
|
|
31
28
|
display: none;
|
|
32
29
|
}
|
|
@@ -46,8 +43,6 @@ import{css}from"lit";const styles=css`
|
|
|
46
43
|
block-size: var(--lr-icon-size, var(--lr-size-1-5em));
|
|
47
44
|
}
|
|
48
45
|
|
|
49
|
-
/* Rotate and flip are deliberately physical, not direction-relative. Directional glyphs are
|
|
50
|
-
mirrored by the wrapping part of the component that owns their reading-order semantics. */
|
|
51
46
|
:host(:where([rotate], [flip])) {
|
|
52
47
|
transform: rotate(var(--lr-icon-rotate, 0deg))
|
|
53
48
|
scale(
|
|
@@ -69,7 +64,6 @@ import{css}from"lit";const styles=css`
|
|
|
69
64
|
--_lr-icon-flip-y: -1;
|
|
70
65
|
}
|
|
71
66
|
|
|
72
|
-
/* Legacy Lyra alignment knob retained alongside the mirrored canvas vocabulary. */
|
|
73
67
|
:host(:where([fixed-width])) {
|
|
74
68
|
inline-size: var(--lr-icon-fixed-width, var(--lr-size-1-5em));
|
|
75
69
|
block-size: var(--lr-icon-size, var(--lr-size-1em));
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
-
/* Consumer-tunable scroll cap -- 'none' means the viewer grows with its
|
|
5
|
-
content, matching every other block-level component in this library
|
|
6
|
-
until a caller opts into an internal scrollbar via the max-height
|
|
7
|
-
attribute. */
|
|
8
4
|
--_lr-json-viewer-max-height: none;
|
|
9
|
-
/* Contained here (rather than left as a bare font-family literal) so a
|
|
10
|
-
host page can retheme it, same rationale as --lr-widget-overlay-color
|
|
11
|
-
in widget.styles.ts -- no shared --lr-* monospace token exists
|
|
12
|
-
to resolve through. */
|
|
13
5
|
--_lr-json-viewer-font: var(--lr-font-mono);
|
|
14
6
|
--_lr-json-viewer-active-outline: var(--lr-focus-ring-color);
|
|
15
7
|
--_lr-json-viewer-string-color: var(--lr-color-success);
|
|
@@ -43,13 +35,6 @@ import{css}from"lit";const styles=css`
|
|
|
43
35
|
}
|
|
44
36
|
[part="tree"] {
|
|
45
37
|
padding: var(--lr-space-s);
|
|
46
|
-
/* A JSON tree's structure -- key, colon, value, brackets, indentation -- reads
|
|
47
|
-
left-to-right regardless of the surrounding document direction, exactly like
|
|
48
|
-
code and like every JSON view (devtools, VS Code). Without this, an ancestor
|
|
49
|
-
dir="rtl" reverses each row to value-colon-key order, right-aligns the tree, and
|
|
50
|
-
flips the disclosure chevrons, so the data reads backwards. A key/value that
|
|
51
|
-
itself contains RTL text still renders that run correctly via the bidi algorithm;
|
|
52
|
-
only the LTR scaffolding is pinned. Matches code-block's [part='pre'] lock. */
|
|
53
38
|
direction: ltr;
|
|
54
39
|
}
|
|
55
40
|
.row {
|
|
@@ -62,17 +47,11 @@ import{css}from"lit";const styles=css`
|
|
|
62
47
|
.row:hover {
|
|
63
48
|
background: var(--lr-json-viewer-row-hover-bg, var(--lr-color-brand-quiet));
|
|
64
49
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
override ((0,1,1)) wins without needing !important -- same fix shape as
|
|
68
|
-
lr-attachment-trigger's/lr-copy-button's own :where()-wrapped hover rule. */
|
|
69
|
-
:where(.row):hover :where([part="copy-button"]),
|
|
70
|
-
:where(.row):focus-within :where([part="copy-button"]) {
|
|
50
|
+
.row:hover [part="copy-button"],
|
|
51
|
+
.row:focus-within [part="copy-button"] {
|
|
71
52
|
opacity: 1;
|
|
72
53
|
}
|
|
73
54
|
[part="toggle"] {
|
|
74
|
-
/* Keep the glyph compact while giving the interactive box the shared
|
|
75
|
-
minimum target size, even for deeply nested rows. */
|
|
76
55
|
inline-size: var(--lr-size-1-25rem);
|
|
77
56
|
block-size: var(--lr-size-1-25rem);
|
|
78
57
|
min-inline-size: var(--lr-icon-button-size);
|
|
@@ -89,12 +68,6 @@ import{css}from"lit";const styles=css`
|
|
|
89
68
|
border-radius: var(--lr-radius);
|
|
90
69
|
cursor: pointer;
|
|
91
70
|
}
|
|
92
|
-
/* The UA '[hidden] { display: none }' rule is author-overridable by any
|
|
93
|
-
same-origin declaration for that element regardless of specificity --
|
|
94
|
-
author rules always win over user-agent rules unless !important is
|
|
95
|
-
involved -- so this only needs to add visibility, not re-declare
|
|
96
|
-
display. Keeping the box (rather than display:none) preserves this
|
|
97
|
-
leaf/empty row's alignment with sibling rows that do have a chevron. */
|
|
98
71
|
[part="toggle"][hidden] {
|
|
99
72
|
visibility: hidden;
|
|
100
73
|
}
|
|
@@ -106,13 +79,6 @@ import{css}from"lit";const styles=css`
|
|
|
106
79
|
[part="toggle"][aria-expanded="true"] .chevron {
|
|
107
80
|
transform: rotate(90deg);
|
|
108
81
|
}
|
|
109
|
-
/* No RTL chevron override: [part='tree'] above is pinned direction:ltr, so a collapsed
|
|
110
|
-
row's disclosure chevron always points at the LTR-positioned children (to the right),
|
|
111
|
-
the same as it does in an LTR document. */
|
|
112
|
-
/* :where() zeroes the wrapped selectors' specificity contribution, leaving only :hover itself
|
|
113
|
-
-- (0,1,0) total, so a consumer's own ::part(toggle):hover override ((0,1,1)) wins without
|
|
114
|
-
needing !important -- same fix shape as lr-attachment-trigger's/lr-copy-button's own
|
|
115
|
-
:where()-wrapped hover rule. */
|
|
116
82
|
:where([part="toggle"]):hover:where(:not([hidden])) {
|
|
117
83
|
background: var(--lr-color-brand-quiet);
|
|
118
84
|
color: var(--lr-color-brand);
|
|
@@ -130,9 +96,6 @@ import{css}from"lit";const styles=css`
|
|
|
130
96
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
131
97
|
outline-offset: var(--lr-focus-ring-offset);
|
|
132
98
|
}
|
|
133
|
-
/* Stands in for [part='toggle'] on the closing-bracket row, so it must match the toggle's
|
|
134
|
-
actual used inline-size -- min-inline-size wins over the toggle's own smaller inline-size,
|
|
135
|
-
so the real box is --lr-icon-button-size, not --lr-size-1-25rem. */
|
|
136
99
|
.toggle-space {
|
|
137
100
|
inline-size: var(--lr-icon-button-size);
|
|
138
101
|
flex: 0 0 auto;
|
|
@@ -153,9 +116,6 @@ import{css}from"lit";const styles=css`
|
|
|
153
116
|
flex: 0 0 auto;
|
|
154
117
|
color: var(--lr-color-text-quiet);
|
|
155
118
|
}
|
|
156
|
-
/* --lr-json-viewer-match-bg indirection (rather than the bare --lr-color-warning-quiet token)
|
|
157
|
-
lets a consumer retheme just this component's search-match highlight without repainting
|
|
158
|
-
every other warning-toned surface on the page that reads the same shared token. */
|
|
159
119
|
[part="key"][data-match],
|
|
160
120
|
[part="value"][data-match] {
|
|
161
121
|
background: var(--lr-json-viewer-match-bg, var(--lr-color-warning-quiet));
|
|
@@ -227,9 +187,6 @@ import{css}from"lit";const styles=css`
|
|
|
227
187
|
background: var(--lr-color-brand-quiet);
|
|
228
188
|
color: var(--lr-color-brand);
|
|
229
189
|
}
|
|
230
|
-
/* This is also the pressed state for the row-hover reveal rule further up: that rule only fades
|
|
231
|
-
the button in when its row is hovered, it is not itself a hover treatment on the button, and the
|
|
232
|
-
button's own held state belongs here next to its hover. */
|
|
233
190
|
[part="copy-button"]:active {
|
|
234
191
|
background: color-mix(
|
|
235
192
|
in oklab,
|
|
@@ -238,9 +195,6 @@ import{css}from"lit";const styles=css`
|
|
|
238
195
|
);
|
|
239
196
|
color: var(--lr-color-brand);
|
|
240
197
|
}
|
|
241
|
-
/* Per-node copy buttons stay out of the way until the row is actually
|
|
242
|
-
being interacted with -- the toolbar's own top-level copy button is
|
|
243
|
-
exempt (it has no ancestor .row, so this rule never matches it). */
|
|
244
198
|
.row [part="copy-button"] {
|
|
245
199
|
opacity: 0;
|
|
246
200
|
}
|
|
@@ -99,8 +99,9 @@ declare const LyraKnownDate_base: typeof LyraKnownDateBase & (new (...args: any[
|
|
|
99
99
|
* @csspart fieldset - The `<fieldset>` grouping the three fields.
|
|
100
100
|
* @csspart legend - The `<legend>` element.
|
|
101
101
|
* @csspart form-control-label - The visible label wrapper inside the legend.
|
|
102
|
-
* @csspart label - Deprecated in 8.0.0; compatibility alias for `form-control-label
|
|
103
|
-
*
|
|
102
|
+
* @csspart label - Deprecated in 8.0.0; compatibility alias for `form-control-label`. Web Awesome
|
|
103
|
+
* still publishes its own deprecated `label` part on `<wa-known-date>`, so this alias stays on
|
|
104
|
+
* the same node until upstream drops it.
|
|
104
105
|
* @csspart fields - The row wrapping the three field blocks.
|
|
105
106
|
* @csspart form-control-input - Alias on the fields row matching other form controls.
|
|
106
107
|
* @csspart field - Each field block (label + input), repeated three times; distinguished by
|
|
@@ -233,7 +234,10 @@ export declare class LyraKnownDate extends LyraKnownDate_base {
|
|
|
233
234
|
private readonly dayId;
|
|
234
235
|
private readonly monthId;
|
|
235
236
|
private readonly yearId;
|
|
236
|
-
/** Hidden native date mirror used by integrations that inspect native constraints directly.
|
|
237
|
+
/** Hidden native date mirror used by integrations that inspect native constraints directly.
|
|
238
|
+
* Stays a writable `@query` field rather than a readonly `get`: `wa-known-date` declares it
|
|
239
|
+
* writable, and check-pinned-upstream-manifests treats a readonly-vs-writable difference on a
|
|
240
|
+
* mirrored member as an `unsupported` surface drift -- a release blocker. */
|
|
237
241
|
valueInput: HTMLInputElement;
|
|
238
242
|
private validationTargetOverride?;
|
|
239
243
|
constructor();
|
|
@@ -1,52 +1,33 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
-
/* Every per-tier value below comes from the library's one shared size ladder
|
|
5
|
-
(internal/sizes.styles.ts), which re-points --lr-form-control-* per :host([size='...']) and
|
|
6
|
-
matches BOTH spellings of every tier in the same selector list -- so small/medium/large work
|
|
7
|
-
here for free. This component's own --lr-known-date-field-* surface is unchanged and still
|
|
8
|
-
the documented override point; only the values behind it moved, which is what keeps a
|
|
9
|
-
birthdate field the same height as the <lr-input>/<lr-date-input> beside it in a form row at
|
|
10
|
-
every tier instead of drifting from a hand-kept copy of that scale. */
|
|
11
4
|
--_lr-known-date-field-padding-block: var(--lr-form-control-padding-block);
|
|
12
5
|
--_lr-known-date-field-padding-inline: var(
|
|
13
6
|
--lr-form-control-padding-inline
|
|
14
7
|
);
|
|
15
8
|
--_lr-known-date-field-font-size: var(--lr-form-control-font-size);
|
|
16
|
-
/* Not --lr-form-control-gap: that knob is the rhythm between one control's own inline
|
|
17
|
-
affordances, an order of magnitude tighter than the gap between three separate field
|
|
18
|
-
blocks. Constant across tiers by design. */
|
|
19
9
|
--_lr-known-date-field-gap: var(--lr-space-s);
|
|
10
|
+
--_lr-known-date-field-fill: var(--lr-color-surface);
|
|
11
|
+
--_lr-known-date-field-border-color: var(--lr-color-border);
|
|
20
12
|
--_lr-known-date-year-field-width: var(--lr-size-5em);
|
|
21
13
|
--_lr-known-date-day-field-width: var(--lr-size-3-5em);
|
|
22
14
|
--_lr-known-date-month-field-width: var(--lr-size-3-5em);
|
|
23
|
-
/* max() rather than the bare ladder height: the ladder's 2xs tier resolves to 1.25rem/20px,
|
|
24
|
-
and a field a pointer has to hit floors at WCAG 2.2 SC 2.5.8's 24px minimum. Above that the
|
|
25
|
-
floor tracks the ladder exactly. At the small tiers the floor exceeds the field's own
|
|
26
|
-
padding/font-driven content height and actively pins the rendered box; at l/xl the content
|
|
27
|
-
height stays under it, so the floor is inert there. */
|
|
28
15
|
--_lr-known-date-field-min-height: max(
|
|
29
16
|
var(--lr-form-control-height),
|
|
30
17
|
var(--lr-size-24px)
|
|
31
18
|
);
|
|
32
|
-
/* --lr-known-date-field-height is intentionally NOT declared here. It is a consumer-facing
|
|
33
|
-
exact-height escape hatch consumed only through the var() fallbacks on [part='field-input']
|
|
34
|
-
below; declaring any value for it (even 'auto') would make those fallback arms unreachable
|
|
35
|
-
and turn --lr-known-date-field-min-height into dead code (the lr-select trap). Left
|
|
36
|
-
undeclared, both arms stay live: the per-tier floor falls out of the fallback, and setting
|
|
37
|
-
the property pins an exact height. */
|
|
38
19
|
}
|
|
39
20
|
|
|
40
21
|
[part~="form-control"] {
|
|
41
22
|
min-inline-size: 0;
|
|
42
23
|
}
|
|
43
24
|
|
|
44
|
-
:host([appearance="filled"])
|
|
45
|
-
border-color: transparent;
|
|
46
|
-
|
|
25
|
+
:host([appearance="filled"]) {
|
|
26
|
+
--_lr-known-date-field-border-color: transparent;
|
|
27
|
+
--_lr-known-date-field-fill: var(--lr-color-surface-raised);
|
|
47
28
|
}
|
|
48
|
-
:host([appearance="filled-outlined"])
|
|
49
|
-
|
|
29
|
+
:host([appearance="filled-outlined"]) {
|
|
30
|
+
--_lr-known-date-field-fill: var(--lr-color-surface-raised);
|
|
50
31
|
}
|
|
51
32
|
:host([pill]) [part="field-input"] {
|
|
52
33
|
border-radius: var(--lr-radius-pill);
|
|
@@ -68,22 +49,9 @@ import{css}from"lit";const styles=css`
|
|
|
68
49
|
font-weight: var(--lr-font-weight-semibold);
|
|
69
50
|
overflow-wrap: anywhere;
|
|
70
51
|
}
|
|
71
|
-
/* [part] always contains a literal <slot> child regardless of assigned
|
|
72
|
-
content, so :empty never matches -- real emptiness is tracked in JS
|
|
73
|
-
(hasLabelSlot) and reflected via [hidden] instead (same fix as every
|
|
74
|
-
other lyra form control's label/hint/error chrome). Without this the
|
|
75
|
-
required marker below (attached to this box) would render a stray glyph
|
|
76
|
-
with nothing before it whenever no label is set. */
|
|
77
52
|
[part="legend"][hidden] {
|
|
78
53
|
display: none;
|
|
79
54
|
}
|
|
80
|
-
/* The one component that does NOT take its marker rule from
|
|
81
|
-
internal/form-control.styles.ts, only its custom properties. That sheet
|
|
82
|
-
attaches the marker to [part~="form-control-label"], which here is a span
|
|
83
|
-
INSIDE this legend; the marker belongs to the legend box itself, after the
|
|
84
|
-
whole label, so the selector is local while the glyph, colour and offset
|
|
85
|
-
stay the same three consumer-settable properties every other control
|
|
86
|
-
resolves. Keep these declarations identical to that sheet's. */
|
|
87
55
|
:host([required]) [part="legend"]::after {
|
|
88
56
|
content: var(--lr-form-control-required-content, ' *');
|
|
89
57
|
color: var(--lr-form-control-required-color, var(--lr-color-danger));
|
|
@@ -117,8 +85,6 @@ import{css}from"lit";const styles=css`
|
|
|
117
85
|
var(--_lr-known-date-field-min-height)
|
|
118
86
|
)
|
|
119
87
|
);
|
|
120
|
-
/* Pinned only when --lr-known-date-field-height is set; 'auto' otherwise, so the field keeps
|
|
121
|
-
growing to fit its own padding/font content. */
|
|
122
88
|
block-size: var(--lr-known-date-field-height, auto);
|
|
123
89
|
padding-block: var(
|
|
124
90
|
--lr-known-date-field-padding-block,
|
|
@@ -128,9 +94,10 @@ import{css}from"lit";const styles=css`
|
|
|
128
94
|
--lr-known-date-field-padding-inline,
|
|
129
95
|
var(--_lr-known-date-field-padding-inline)
|
|
130
96
|
);
|
|
131
|
-
border: var(--lr-border-width-thin) solid
|
|
97
|
+
border: var(--lr-border-width-thin) solid
|
|
98
|
+
var(--_lr-known-date-field-border-color);
|
|
132
99
|
border-radius: var(--lr-form-control-radius);
|
|
133
|
-
background: var(--
|
|
100
|
+
background: var(--_lr-known-date-field-fill);
|
|
134
101
|
color: var(--lr-color-text);
|
|
135
102
|
font-family: inherit;
|
|
136
103
|
font-size: var(
|
|
@@ -157,11 +124,6 @@ import{css}from"lit";const styles=css`
|
|
|
157
124
|
var(--_lr-known-date-year-field-width)
|
|
158
125
|
);
|
|
159
126
|
}
|
|
160
|
-
/* Mouse-hover parity with the keyboard :focus-visible ring below -- same border-retint
|
|
161
|
-
treatment as lr-color-picker's own bordered [part='input']:hover.
|
|
162
|
-
no-pressed-state: a press on a number field lands the caret rather than activating a control,
|
|
163
|
-
so a pressed tint would show only for the length of the mousedown and then be replaced by the
|
|
164
|
-
:focus-visible ring below, which is the state that actually persists and communicates. */
|
|
165
127
|
[part="field-input"]:hover {
|
|
166
128
|
border-color: var(--lr-color-brand);
|
|
167
129
|
}
|
|
@@ -169,9 +131,6 @@ import{css}from"lit";const styles=css`
|
|
|
169
131
|
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
170
132
|
outline-offset: var(--lr-focus-ring-offset);
|
|
171
133
|
}
|
|
172
|
-
/* --lr-known-date-invalid-border-color indirection (rather than the bare --lr-color-danger
|
|
173
|
-
token) lets a consumer retheme just this component's invalid-field border without
|
|
174
|
-
repainting every other component in the app that reads the same shared danger token. */
|
|
175
134
|
:host([data-invalid]) [part="field-input"] {
|
|
176
135
|
border-color: var(
|
|
177
136
|
--lr-known-date-invalid-border-color,
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import{css}from"lit";const styles=css`
|
|
2
|
-
/* The host contributes no box of its own -- \`.sr-only\` (composed in via
|
|
3
|
-
internal/a11y.ts's shared \`srOnly\`) already takes the single child out
|
|
4
|
-
of flow via absolute positioning, so a wrapping host box would just be
|
|
5
|
-
an empty, purposeless inline element sitting in the document. */
|
|
6
2
|
:host {
|
|
7
3
|
display: contents;
|
|
8
4
|
}
|
|
@@ -3,17 +3,10 @@ import{css}from"lit";const styles=css`
|
|
|
3
3
|
display: contents;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
/* Positioned by internal/positioner.js's place() -- same fixed/z-index
|
|
7
|
-
shape as lr-combobox's/lr-select's own [part='listbox']. Closed
|
|
8
|
-
state: invisible + slightly raised, transitioning in on :host([open]),
|
|
9
|
-
same as those two. */
|
|
10
6
|
[part='listbox'] {
|
|
11
7
|
position: fixed;
|
|
12
8
|
z-index: var(--lr-layer-dropdown);
|
|
13
9
|
box-sizing: border-box;
|
|
14
|
-
/* Clamped against internal/positioner.js's place()-published available-space custom
|
|
15
|
-
properties (see menu.styles.ts's/combobox.styles.ts's identical [part='listbox']
|
|
16
|
-
treatment) so this popup can't overflow off-screen on a short/keyboard-shrunk viewport. */
|
|
17
10
|
max-block-size: min(var(--lr-size-16rem), var(--lr-positioner-available-block-size, var(--lr-size-16rem)));
|
|
18
11
|
overflow-y: auto;
|
|
19
12
|
overflow-x: clip;
|
|
@@ -24,7 +17,6 @@ import{css}from"lit";const styles=css`
|
|
|
24
17
|
background: var(--lr-color-surface);
|
|
25
18
|
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
26
19
|
border-radius: var(--lr-radius);
|
|
27
|
-
/* Anchored overlay: a positioner-placed listbox floating over page content, not a modal layer. */
|
|
28
20
|
box-shadow: var(--lr-shadow-m);
|
|
29
21
|
visibility: hidden;
|
|
30
22
|
opacity: 0;
|
|
@@ -56,19 +48,10 @@ import{css}from"lit";const styles=css`
|
|
|
56
48
|
border-radius: var(--lr-radius);
|
|
57
49
|
cursor: pointer;
|
|
58
50
|
}
|
|
59
|
-
/* --lr-mention-popover-option-active-bg indirection (rather than the bare --lr-color-brand-quiet
|
|
60
|
-
token) lets a consumer retheme just this component's highlighted/active suggestion row
|
|
61
|
-
without repainting every other component that reuses the same shared brand-quiet token --
|
|
62
|
-
same indirection lr-select's/lr-combobox's identical-looking [part='option'][data-active]
|
|
63
|
-
background is missing (checklist's own named example for this check). */
|
|
64
51
|
[part='option']:hover,
|
|
65
52
|
[part='option'][data-active] {
|
|
66
53
|
background: var(--lr-mention-popover-option-active-bg, var(--lr-color-brand-quiet));
|
|
67
54
|
}
|
|
68
|
-
/* Mixed from the same overridable highlight the hover/active-row rule uses, so a consumer who
|
|
69
|
-
retints --lr-mention-popover-option-active-bg gets a matching pressed state for free. This also
|
|
70
|
-
serves the [part='option-description'] hover rule below, which is a descendant treatment of this
|
|
71
|
-
same row rather than a hover state of its own. */
|
|
72
55
|
[part='option']:active {
|
|
73
56
|
background: color-mix(
|
|
74
57
|
in oklab,
|
|
@@ -104,14 +87,6 @@ import{css}from"lit";const styles=css`
|
|
|
104
87
|
text-overflow: ellipsis;
|
|
105
88
|
white-space: nowrap;
|
|
106
89
|
}
|
|
107
|
-
/* --lr-color-text-quiet-on-brand-quiet fails WCAG AA (~4.24:1, needs
|
|
108
|
-
4.5:1) -- unlike lr-combobox's/lr-select's identical-looking
|
|
109
|
-
[part='option'][data-active] background (which never has this problem
|
|
110
|
-
in practice, since those default their active index to -1/none until a
|
|
111
|
-
user actually arrows through the list), this component always opens
|
|
112
|
-
with row 0 pre-highlighted (see the activeIndex field's own doc), so the
|
|
113
|
-
active/quiet-text combination is the default state, not an edge case --
|
|
114
|
-
it must pass contrast on its own. */
|
|
115
90
|
[part='option']:hover [part='option-description'],
|
|
116
91
|
[part='option'][data-active] [part='option-description'] {
|
|
117
92
|
color: var(--lr-color-text);
|
|
@@ -15,10 +15,6 @@ import{css}from"lit";const styles=css`
|
|
|
15
15
|
block-size: var(--lr-size-0-375rem);
|
|
16
16
|
border-radius: var(--lr-radius-pill);
|
|
17
17
|
background: var(--lr-color-brand);
|
|
18
|
-
/* Same token/rationale as lr-stream-status's and lr-typing-indicator's
|
|
19
|
-
own looping pulse: --lr-transition-ambient is the length the library
|
|
20
|
-
reserves for ambient "still alive" motion, so every looping indicator
|
|
21
|
-
shares one calm rhythm instead of hand-rolling its own duration. */
|
|
22
18
|
animation: lr-poll-status-pulse var(--lr-transition-ambient) infinite;
|
|
23
19
|
}
|
|
24
20
|
[part='indicator'][data-due] {
|